renovate 39.188.2 → 39.188.4

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.
@@ -13,7 +13,7 @@ class RebaseStalePrsMigration extends abstract_migration_1.AbstractMigration {
13
13
  if (is_1.default.boolean(value)) {
14
14
  this.setSafely('rebaseWhen', value ? 'behind-base-branch' : 'conflicted');
15
15
  }
16
- if (is_1.default.null_(value)) {
16
+ if (null === value) {
17
17
  this.setSafely('rebaseWhen', 'auto');
18
18
  }
19
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rebase-stale-prs-migration.js","sourceRoot":"","sources":["../../../../lib/config/migrations/custom/rebase-stale-prs-migration.ts"],"names":[],"mappings":";;;;AAAA,kEAAkC;AAClC,mEAA+D;AAE/D,MAAa,uBAAwB,SAAQ,sCAAiB;IAC1C,UAAU,GAAG,IAAI,CAAC;IAClB,YAAY,GAAG,gBAAgB,CAAC;IAEzC,GAAG,CAAC,KAAc;QACzB,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAE5D,IAAI,mBAAmB,KAAK,KAAK,EAAE,CAAC;YAClC,IAAI,YAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,SAAS,CACZ,YAAY,EACZ,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,YAAY,CAC5C,CAAC;YACJ,CAAC;YAED,IAAI,YAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;CACF;AApBD,0DAoBC","sourcesContent":["import is from '@sindresorhus/is';\nimport { AbstractMigration } from '../base/abstract-migration';\n\nexport class RebaseStalePrsMigration extends AbstractMigration {\n override readonly deprecated = true;\n override readonly propertyName = 'rebaseStalePrs';\n\n override run(value: unknown): void {\n const rebaseConflictedPrs = this.get('rebaseConflictedPrs');\n\n if (rebaseConflictedPrs !== false) {\n if (is.boolean(value)) {\n this.setSafely(\n 'rebaseWhen',\n value ? 'behind-base-branch' : 'conflicted',\n );\n }\n\n if (is.null_(value)) {\n this.setSafely('rebaseWhen', 'auto');\n }\n }\n }\n}\n"]}
1
+ {"version":3,"file":"rebase-stale-prs-migration.js","sourceRoot":"","sources":["../../../../lib/config/migrations/custom/rebase-stale-prs-migration.ts"],"names":[],"mappings":";;;;AAAA,kEAAkC;AAClC,mEAA+D;AAE/D,MAAa,uBAAwB,SAAQ,sCAAiB;IAC1C,UAAU,GAAG,IAAI,CAAC;IAClB,YAAY,GAAG,gBAAgB,CAAC;IAEzC,GAAG,CAAC,KAAc;QACzB,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAE5D,IAAI,mBAAmB,KAAK,KAAK,EAAE,CAAC;YAClC,IAAI,YAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,SAAS,CACZ,YAAY,EACZ,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,YAAY,CAC5C,CAAC;YACJ,CAAC;YAED,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;gBACnB,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;CACF;AApBD,0DAoBC","sourcesContent":["import is from '@sindresorhus/is';\nimport { AbstractMigration } from '../base/abstract-migration';\n\nexport class RebaseStalePrsMigration extends AbstractMigration {\n override readonly deprecated = true;\n override readonly propertyName = 'rebaseStalePrs';\n\n override run(value: unknown): void {\n const rebaseConflictedPrs = this.get('rebaseConflictedPrs');\n\n if (rebaseConflictedPrs !== false) {\n if (is.boolean(value)) {\n this.setSafely(\n 'rebaseWhen',\n value ? 'behind-base-branch' : 'conflicted',\n );\n }\n\n if (null === value) {\n this.setSafely('rebaseWhen', 'auto');\n }\n }\n }\n}\n"]}
@@ -561,7 +561,7 @@ async function validateConfig(configType, config, isPreset, parentPath) {
561
561
  message: `Invalid \`${currentPath}.${key}.${statusCheckKey}\` configuration: key is not allowed.`,
562
562
  });
563
563
  }
564
- if (!(is_1.default.string(statusCheckValue) || is_1.default.null_(statusCheckValue))) {
564
+ if (!(is_1.default.string(statusCheckValue) || null === statusCheckValue)) {
565
565
  errors.push({
566
566
  topic: 'Configuration Error',
567
567
  message: `Invalid \`${currentPath}.${statusCheckKey}\` configuration: status check is not a string.`,
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../lib/config/validation.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { allManagersList, getManagerList } from '../modules/manager';\nimport { isCustomManager } from '../modules/manager/custom';\nimport type { CustomManager } from '../modules/manager/custom/types';\nimport type { HostRule } from '../types';\nimport { getExpression } from '../util/jsonata';\nimport { regEx } from '../util/regex';\nimport {\n getRegexPredicate,\n isRegexMatch,\n matchRegexOrGlobList,\n} from '../util/string-match';\nimport * as template from '../util/template';\nimport { parseUrl } from '../util/url';\nimport {\n hasValidSchedule,\n hasValidTimezone,\n} from '../workers/repository/update/branch/schedule';\nimport { configFileNames } from './app-strings';\nimport { GlobalConfig } from './global';\nimport { migrateConfig } from './migration';\nimport { getOptions } from './options';\nimport { resolveConfigPresets } from './presets';\nimport { supportedDatasources } from './presets/internal/merge-confidence';\nimport type {\n AllowedParents,\n RenovateConfig,\n RenovateOptions,\n StatusCheckKey,\n ValidationMessage,\n ValidationResult,\n} from './types';\nimport { allowedStatusCheckStrings } from './types';\nimport * as managerValidator from './validation-helpers/managers';\nimport * as matchBaseBranchesValidator from './validation-helpers/match-base-branches';\nimport * as regexOrGlobValidator from './validation-helpers/regex-glob-matchers';\nimport {\n getParentName,\n isFalseGlobal,\n validateJSONataManagerFields,\n validateNumber,\n validatePlainObject,\n validateRegexManagerFields,\n} from './validation-helpers/utils';\n\nconst options = getOptions();\n\nlet optionsInitialized = false;\nlet optionTypes: Record<string, RenovateOptions['type']>;\nlet optionParents: Record<string, AllowedParents[]>;\nlet optionGlobals: Set<string>;\nlet optionInherits: Set<string>;\nlet optionRegexOrGlob: Set<string>;\nlet optionAllowsNegativeIntegers: Set<string>;\n\nconst managerList = getManagerList();\n\nconst topLevelObjects = [...managerList, 'env'];\n\nconst ignoredNodes = [\n '$schema',\n 'headers',\n 'depType',\n 'npmToken',\n 'packageFile',\n 'forkToken',\n 'repository',\n 'vulnerabilityAlertsOnly',\n 'vulnerabilityAlert',\n 'isVulnerabilityAlert',\n 'vulnerabilityFixVersion', // not intended to be used by end users but may be by Mend apps\n 'copyLocalLibs', // deprecated - functionality is now enabled by default\n 'prBody', // deprecated\n 'minimumConfidence', // undocumented feature flag\n];\nconst tzRe = regEx(/^:timezone\\((.+)\\)$/);\nconst rulesRe = regEx(/p.*Rules\\[\\d+\\]$/);\n\nfunction isManagerPath(parentPath: string): boolean {\n return (\n regEx(/^customManagers\\[[0-9]+]$/).test(parentPath) ||\n managerList.includes(parentPath)\n );\n}\n\nfunction isIgnored(key: string): boolean {\n return ignoredNodes.includes(key);\n}\n\nfunction getUnsupportedEnabledManagers(enabledManagers: string[]): string[] {\n return enabledManagers.filter(\n (manager) => !allManagersList.includes(manager.replace('custom.', '')),\n );\n}\n\nfunction getDeprecationMessage(option: string): string | undefined {\n const deprecatedOptions: Record<string, string | undefined> = {\n branchName: `Direct editing of branchName is now deprecated. Please edit branchPrefix, additionalBranchPrefix, or branchTopic instead`,\n commitMessage: `Direct editing of commitMessage is now deprecated. Please edit commitMessage's subcomponents instead.`,\n prTitle: `Direct editing of prTitle is now deprecated. Please edit commitMessage subcomponents instead as they will be passed through to prTitle.`,\n };\n return deprecatedOptions[option];\n}\n\nfunction isInhertConfigOption(key: string): boolean {\n return optionInherits.has(key);\n}\n\nfunction isRegexOrGlobOption(key: string): boolean {\n return optionRegexOrGlob.has(key);\n}\n\nfunction isGlobalOption(key: string): boolean {\n return optionGlobals.has(key);\n}\n\nfunction initOptions(): void {\n if (optionsInitialized) {\n return;\n }\n\n optionParents = {};\n optionInherits = new Set();\n optionTypes = {};\n optionRegexOrGlob = new Set();\n optionGlobals = new Set();\n optionAllowsNegativeIntegers = new Set();\n\n for (const option of options) {\n optionTypes[option.name] = option.type;\n\n if (option.parents) {\n optionParents[option.name] = option.parents;\n }\n\n if (option.inheritConfigSupport) {\n optionInherits.add(option.name);\n }\n\n if (option.patternMatch) {\n optionRegexOrGlob.add(option.name);\n }\n\n if (option.globalOnly) {\n optionGlobals.add(option.name);\n }\n\n if (option.allowNegative) {\n optionAllowsNegativeIntegers.add(option.name);\n }\n }\n\n optionsInitialized = true;\n}\n\nexport async function validateConfig(\n configType: 'global' | 'inherit' | 'repo',\n config: RenovateConfig,\n isPreset?: boolean,\n parentPath?: string,\n): Promise<ValidationResult> {\n initOptions();\n\n let errors: ValidationMessage[] = [];\n let warnings: ValidationMessage[] = [];\n\n for (const [key, val] of Object.entries(config)) {\n const currentPath = parentPath ? `${parentPath}.${key}` : key;\n /* v8 ignore next 7: TODO: test me */\n if (key === '__proto__') {\n errors.push({\n topic: 'Config security error',\n message: '__proto__',\n });\n continue;\n }\n if (\n parentPath &&\n parentPath !== 'onboardingConfig' &&\n topLevelObjects.includes(key)\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `The \"${key}\" object can only be configured at the top level of a config but was found inside \"${parentPath}\"`,\n });\n }\n\n if (isGlobalOption(key)) {\n if (configType === 'global') {\n await validateGlobalConfig(\n key,\n val,\n optionTypes[key],\n warnings,\n errors,\n currentPath,\n config,\n );\n continue;\n } else if (\n !isFalseGlobal(key, parentPath) &&\n !(configType === 'inherit' && isInhertConfigOption(key))\n ) {\n warnings.push({\n topic: 'Configuration Error',\n message: `The \"${key}\" option is a global option reserved only for Renovate's global configuration and cannot be configured within a repository's config file.`,\n });\n continue;\n }\n }\n if (key === 'enabledManagers' && val) {\n const unsupportedManagers = getUnsupportedEnabledManagers(\n val as string[],\n );\n if (is.nonEmptyArray(unsupportedManagers)) {\n errors.push({\n topic: 'Configuration Error',\n message: `The following managers configured in enabledManagers are not supported: \"${unsupportedManagers.join(\n ', ',\n )}\"`,\n });\n }\n }\n if (key === 'fileMatch') {\n if (parentPath === undefined) {\n errors.push({\n topic: 'Config error',\n message: `\"fileMatch\" may not be defined at the top level of a config and must instead be within a manager block`,\n });\n } else if (!isManagerPath(parentPath)) {\n warnings.push({\n topic: 'Config warning',\n message: `\"fileMatch\" must be configured in a manager block and not here: ${parentPath}`,\n });\n }\n }\n if (\n !isIgnored(key) && // We need to ignore some reserved keys\n !(is as any).function(val) // Ignore all functions\n ) {\n if (getDeprecationMessage(key)) {\n warnings.push({\n topic: 'Deprecation Warning',\n message: getDeprecationMessage(key)!,\n });\n }\n const templateKeys = [\n 'branchName',\n 'commitBody',\n 'commitMessage',\n 'prTitle',\n 'semanticCommitScope',\n ];\n if ((key.endsWith('Template') || templateKeys.includes(key)) && val) {\n try {\n // TODO: validate string #22198\n let res = template.compile((val as string).toString(), config, false);\n res = template.compile(res, config, false);\n template.compile(res, config, false);\n } catch {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid template in config path: ${currentPath}`,\n });\n }\n }\n const parentName = getParentName(parentPath);\n if (\n !isPreset &&\n optionParents[key] &&\n !optionParents[key].includes(parentName as AllowedParents)\n ) {\n // TODO: types (#22198)\n const message = `${key} should only be configured within one of \"${optionParents[\n key\n ]?.join(' or ')}\" objects. Was found in ${parentName}`;\n warnings.push({\n topic: `${parentPath ? `${parentPath}.` : ''}${key}`,\n message,\n });\n }\n if (!optionTypes[key]) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid configuration option: ${currentPath}`,\n });\n } else if (key === 'schedule') {\n const [validSchedule, errorMessage] = hasValidSchedule(val as string[]);\n if (!validSchedule) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid ${currentPath}: \\`${errorMessage}\\``,\n });\n }\n } else if (\n [\n 'allowedVersions',\n 'matchCurrentVersion',\n 'matchCurrentValue',\n 'matchNewValue',\n ].includes(key) &&\n isRegexMatch(val)\n ) {\n if (!getRegexPredicate(val)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid regExp for ${currentPath}: \\`${val}\\``,\n });\n }\n } else if (key === 'timezone' && val !== null) {\n const [validTimezone, errorMessage] = hasValidTimezone(val as string);\n if (!validTimezone) {\n errors.push({\n topic: 'Configuration Error',\n message: `${currentPath}: ${errorMessage}`,\n });\n }\n } else if (val !== null) {\n const type = optionTypes[key];\n if (type === 'boolean') {\n if (val !== true && val !== false) {\n errors.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be boolean. Found: ${JSON.stringify(\n val,\n )} (${typeof val})`,\n });\n }\n } else if (type === 'integer') {\n const allowsNegative = optionAllowsNegativeIntegers.has(key);\n errors.push(...validateNumber(key, val, allowsNegative, currentPath));\n } else if (type === 'array' && val) {\n if (is.array(val)) {\n for (const [subIndex, subval] of val.entries()) {\n if (is.object(subval)) {\n const subValidation = await validateConfig(\n configType,\n subval as RenovateConfig,\n isPreset,\n `${currentPath}[${subIndex}]`,\n );\n warnings = warnings.concat(subValidation.warnings);\n errors = errors.concat(subValidation.errors);\n }\n }\n if (isRegexOrGlobOption(key)) {\n errors.push(\n ...regexOrGlobValidator.check({\n val,\n currentPath,\n }),\n );\n }\n if (key === 'extends') {\n for (const subval of val) {\n if (is.string(subval)) {\n if (\n parentName === 'packageRules' &&\n subval.startsWith('group:')\n ) {\n warnings.push({\n topic: 'Configuration Warning',\n message: `${currentPath}: you should not extend \"group:\" presets`,\n });\n }\n if (tzRe.test(subval)) {\n const [, timezone] = tzRe.exec(subval)!;\n const [validTimezone, errorMessage] =\n hasValidTimezone(timezone);\n if (!validTimezone) {\n errors.push({\n topic: 'Configuration Error',\n message: `${currentPath}: ${errorMessage}`,\n });\n }\n }\n } else {\n errors.push({\n topic: 'Configuration Warning',\n message: `${currentPath}: preset value is not a string`,\n });\n }\n }\n }\n\n const selectors = [\n 'matchFileNames',\n 'matchLanguages',\n 'matchCategories',\n 'matchBaseBranches',\n 'matchManagers',\n 'matchDatasources',\n 'matchDepTypes',\n 'matchDepNames',\n 'matchPackageNames',\n 'matchCurrentValue',\n 'matchCurrentVersion',\n 'matchSourceUrls',\n 'matchUpdateTypes',\n 'matchConfidence',\n 'matchCurrentAge',\n 'matchRepositories',\n 'matchNewValue',\n 'matchJsonata',\n ];\n if (key === 'packageRules') {\n for (const [subIndex, packageRule] of val.entries()) {\n if (is.object(packageRule)) {\n const resolvedRule = migrateConfig({\n packageRules: [\n await resolveConfigPresets(\n packageRule as RenovateConfig,\n config,\n ),\n ],\n }).migratedConfig.packageRules![0];\n errors.push(\n ...managerValidator.check({ resolvedRule, currentPath }),\n );\n warnings.push(\n ...matchBaseBranchesValidator.check({\n resolvedRule,\n currentPath: `${currentPath}[${subIndex}]`,\n baseBranches: config.baseBranches!,\n }),\n );\n const selectorLength = Object.keys(resolvedRule).filter(\n (ruleKey) => selectors.includes(ruleKey),\n ).length;\n if (!selectorLength) {\n const message = `${currentPath}[${subIndex}]: Each packageRule must contain at least one match* or exclude* selector. Rule: ${JSON.stringify(\n packageRule,\n )}`;\n errors.push({\n topic: 'Configuration Error',\n message,\n });\n }\n if (selectorLength === Object.keys(resolvedRule).length) {\n const message = `${currentPath}[${subIndex}]: Each packageRule must contain at least one non-match* or non-exclude* field. Rule: ${JSON.stringify(\n packageRule,\n )}`;\n warnings.push({\n topic: 'Configuration Error',\n message,\n });\n }\n // It's too late to apply any of these options once you already have updates determined\n const preLookupOptions = [\n 'allowedVersions',\n 'extractVersion',\n 'followTag',\n 'ignoreDeps',\n 'ignoreUnstable',\n 'rangeStrategy',\n 'registryUrls',\n 'respectLatest',\n 'rollbackPrs',\n 'separateMajorMinor',\n 'separateMinorPatch',\n 'separateMultipleMajor',\n 'separateMultipleMinor',\n 'versioning',\n ];\n if (is.nonEmptyArray(resolvedRule.matchUpdateTypes)) {\n for (const option of preLookupOptions) {\n if (resolvedRule[option] !== undefined) {\n const message = `${currentPath}[${subIndex}]: packageRules cannot combine both matchUpdateTypes and ${option}. Rule: ${JSON.stringify(\n packageRule,\n )}`;\n errors.push({\n topic: 'Configuration Error',\n message,\n });\n }\n }\n }\n } else {\n errors.push({\n topic: 'Configuration Error',\n message: `${currentPath} must contain JSON objects`,\n });\n }\n }\n }\n if (key === 'customManagers') {\n const allowedKeys = [\n 'customType',\n 'description',\n 'fileFormat',\n 'fileMatch',\n 'matchStrings',\n 'matchStringsStrategy',\n 'depNameTemplate',\n 'packageNameTemplate',\n 'datasourceTemplate',\n 'versioningTemplate',\n 'registryUrlTemplate',\n 'currentValueTemplate',\n 'extractVersionTemplate',\n 'autoReplaceStringTemplate',\n 'depTypeTemplate',\n ];\n for (const customManager of val as CustomManager[]) {\n if (\n Object.keys(customManager).some(\n (k) => !allowedKeys.includes(k),\n )\n ) {\n const disallowedKeys = Object.keys(customManager).filter(\n (k) => !allowedKeys.includes(k),\n );\n errors.push({\n topic: 'Configuration Error',\n message: `Custom Manager contains disallowed fields: ${disallowedKeys.join(\n ', ',\n )}`,\n });\n } else if (\n is.nonEmptyString(customManager.customType) &&\n isCustomManager(customManager.customType)\n ) {\n if (is.nonEmptyArray(customManager.fileMatch)) {\n switch (customManager.customType) {\n case 'regex':\n validateRegexManagerFields(\n customManager,\n currentPath,\n errors,\n );\n break;\n case 'jsonata':\n validateJSONataManagerFields(\n customManager,\n currentPath,\n errors,\n );\n break;\n }\n } else {\n errors.push({\n topic: 'Configuration Error',\n message: `Each Custom Manager must contain a non-empty fileMatch array`,\n });\n }\n } else {\n if (\n is.emptyString(customManager.customType) ||\n is.undefined(customManager.customType)\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `Each Custom Manager must contain a non-empty customType string`,\n });\n } else {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid customType: ${customManager.customType}. Key is not a custom manager`,\n });\n }\n }\n }\n }\n if (['matchPackageNames', 'matchDepNames'].includes(key)) {\n const startPattern = regEx(/!?\\//);\n const endPattern = regEx(/\\/g?i?$/);\n for (const pattern of val as string[]) {\n if (startPattern.test(pattern) && endPattern.test(pattern)) {\n try {\n // regEx isn't aware of our !/ prefix but can handle the suffix\n regEx(pattern.replace(startPattern, '/'));\n } catch {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid regExp for ${currentPath}: \\`${pattern}\\``,\n });\n }\n }\n }\n }\n if (key === 'fileMatch') {\n for (const fileMatch of val as string[]) {\n try {\n regEx(fileMatch);\n } catch {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid regExp for ${currentPath}: \\`${fileMatch}\\``,\n });\n }\n }\n }\n if (key === 'baseBranches') {\n for (const baseBranch of val as string[]) {\n if (\n isRegexMatch(baseBranch) &&\n !getRegexPredicate(baseBranch)\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid regExp for ${currentPath}: \\`${baseBranch}\\``,\n });\n }\n }\n }\n if (\n (selectors.includes(key) ||\n key === 'matchCurrentVersion' ||\n key === 'matchCurrentValue') &&\n // TODO: can be undefined ? #22198\n !rulesRe.test(parentPath!) && // Inside a packageRule\n (is.string(parentPath) || !isPreset) // top level in a preset\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `${currentPath}: ${key} should be inside a \\`packageRule\\` only`,\n });\n }\n } else {\n errors.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be a list (Array)`,\n });\n }\n } else if (type === 'string') {\n if (!is.string(val)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be a string`,\n });\n }\n } else if (\n type === 'object' &&\n currentPath !== 'compatibility' &&\n key !== 'constraints'\n ) {\n if (is.plainObject(val)) {\n if (key === 'registryAliases') {\n const res = validatePlainObject(val);\n if (res !== true) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${key}.${res}\\` configuration: value is not a string`,\n });\n }\n } else if (key === 'env') {\n const allowedEnvVars =\n configType === 'global'\n ? ((config.allowedEnv as string[]) ?? [])\n : GlobalConfig.get('allowedEnv', []);\n for (const [envVarName, envVarValue] of Object.entries(val)) {\n if (!is.string(envVarValue)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid env variable value: \\`${currentPath}.${envVarName}\\` must be a string.`,\n });\n }\n if (!matchRegexOrGlobList(envVarName, allowedEnvVars)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Env variable name \\`${envVarName}\\` is not allowed by this bot's \\`allowedEnv\\`.`,\n });\n }\n }\n } else if (key === 'statusCheckNames') {\n for (const [statusCheckKey, statusCheckValue] of Object.entries(\n val,\n )) {\n if (\n !allowedStatusCheckStrings.includes(\n statusCheckKey as StatusCheckKey,\n )\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${key}.${statusCheckKey}\\` configuration: key is not allowed.`,\n });\n }\n if (\n !(is.string(statusCheckValue) || is.null_(statusCheckValue))\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${statusCheckKey}\\` configuration: status check is not a string.`,\n });\n continue;\n }\n }\n } else if (key === 'customDatasources') {\n const allowedKeys = [\n 'description',\n 'defaultRegistryUrlTemplate',\n 'format',\n 'transformTemplates',\n ];\n for (const [\n customDatasourceName,\n customDatasourceValue,\n ] of Object.entries(val)) {\n if (!is.plainObject(customDatasourceValue)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${customDatasourceName}\\` configuration: customDatasource is not an object`,\n });\n continue;\n }\n for (const [subKey, subValue] of Object.entries(\n customDatasourceValue,\n )) {\n if (!allowedKeys.includes(subKey)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${subKey}\\` configuration: key is not allowed`,\n });\n } else if (subKey === 'transformTemplates') {\n if (!is.array(subValue, is.string)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${subKey}\\` configuration: is not an array of string`,\n });\n }\n } else if (subKey === 'description') {\n if (\n !(is.string(subValue) || is.array(subValue, is.string))\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${subKey}\\` configuration: is not an array of strings`,\n });\n }\n } else if (!is.string(subValue)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${subKey}\\` configuration: is a string`,\n });\n }\n }\n }\n } else {\n const ignoredObjects = options\n .filter((option) => option.freeChoice)\n .map((option) => option.name);\n if (!ignoredObjects.includes(key)) {\n const subValidation = await validateConfig(\n configType,\n val,\n isPreset,\n currentPath,\n );\n warnings = warnings.concat(subValidation.warnings);\n errors = errors.concat(subValidation.errors);\n }\n }\n } else {\n errors.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be a json object`,\n });\n }\n }\n }\n }\n\n if (key === 'hostRules' && is.array(val)) {\n const allowedHeaders =\n configType === 'global'\n ? ((config.allowedHeaders as string[]) ?? [])\n : GlobalConfig.get('allowedHeaders', []);\n for (const rule of val as HostRule[]) {\n if (is.nonEmptyString(rule.matchHost)) {\n if (rule.matchHost.includes('://')) {\n if (parseUrl(rule.matchHost) === null) {\n errors.push({\n topic: 'Configuration Error',\n message: `hostRules matchHost \\`${rule.matchHost}\\` is not a valid URL.`,\n });\n }\n }\n } else if (is.emptyString(rule.matchHost)) {\n errors.push({\n topic: 'Configuration Error',\n message:\n 'Invalid value for hostRules matchHost. It cannot be an empty string.',\n });\n }\n\n if (!rule.headers) {\n continue;\n }\n for (const [header, value] of Object.entries(rule.headers)) {\n if (!is.string(value)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid hostRules headers value configuration: header must be a string.`,\n });\n }\n if (!matchRegexOrGlobList(header, allowedHeaders)) {\n errors.push({\n topic: 'Configuration Error',\n message: `hostRules header \\`${header}\\` is not allowed by this bot's \\`allowedHeaders\\`.`,\n });\n }\n }\n }\n }\n\n if (key === 'matchJsonata' && is.array(val, is.string)) {\n for (const expression of val) {\n const res = getExpression(expression);\n if (res instanceof Error) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid JSONata expression for ${currentPath}: ${res.message}`,\n });\n }\n }\n }\n }\n\n function sortAll(a: ValidationMessage, b: ValidationMessage): number {\n if (a.topic === b.topic) {\n return a.message > b.message ? 1 : -1;\n }\n return a.topic > b.topic ? 1 : -1;\n }\n\n errors.sort(sortAll);\n warnings.sort(sortAll);\n return { errors, warnings };\n}\n\n/**\n * Basic validation for global config options\n */\nasync function validateGlobalConfig(\n key: string,\n val: unknown,\n type: string,\n warnings: ValidationMessage[],\n errors: ValidationMessage[],\n currentPath: string | undefined,\n config: RenovateConfig,\n): Promise<void> {\n /* v8 ignore next 5: not testable yet */\n if (getDeprecationMessage(key)) {\n warnings.push({\n topic: 'Deprecation Warning',\n message: getDeprecationMessage(key)!,\n });\n }\n if (val !== null) {\n if (type === 'string') {\n if (is.string(val)) {\n if (\n key === 'onboardingConfigFileName' &&\n !configFileNames.includes(val)\n ) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value \\`${val}\\` for \\`${currentPath}\\`. The allowed values are ${configFileNames.join(', ')}.`,\n });\n } else if (\n key === 'repositoryCache' &&\n !['enabled', 'disabled', 'reset'].includes(val)\n ) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value \\`${val}\\` for \\`${currentPath}\\`. The allowed values are ${['enabled', 'disabled', 'reset'].join(', ')}.`,\n });\n } else if (\n key === 'dryRun' &&\n !['extract', 'lookup', 'full'].includes(val)\n ) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value \\`${val}\\` for \\`${currentPath}\\`. The allowed values are ${['extract', 'lookup', 'full'].join(', ')}.`,\n });\n } else if (\n key === 'binarySource' &&\n !['docker', 'global', 'install', 'hermit'].includes(val)\n ) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value \\`${val}\\` for \\`${currentPath}\\`. The allowed values are ${['docker', 'global', 'install', 'hermit'].join(', ')}.`,\n });\n } else if (\n key === 'requireConfig' &&\n !['required', 'optional', 'ignored'].includes(val)\n ) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value \\`${val}\\` for \\`${currentPath}\\`. The allowed values are ${['required', 'optional', 'ignored'].join(', ')}.`,\n });\n } else if (\n key === 'gitUrl' &&\n !['default', 'ssh', 'endpoint'].includes(val)\n ) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value \\`${val}\\` for \\`${currentPath}\\`. The allowed values are ${['default', 'ssh', 'endpoint'].join(', ')}.`,\n });\n }\n\n if (\n key === 'reportType' &&\n ['s3', 'file'].includes(val) &&\n !is.string(config.reportPath)\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `reportType '${val}' requires a configured reportPath`,\n });\n }\n } else {\n warnings.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be a string.`,\n });\n }\n } else if (type === 'integer') {\n const allowsNegative = optionAllowsNegativeIntegers.has(key);\n warnings.push(...validateNumber(key, val, allowsNegative, currentPath));\n } else if (type === 'boolean') {\n if (val !== true && val !== false) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be a boolean. Found: ${JSON.stringify(\n val,\n )} (${typeof val}).`,\n });\n }\n } else if (type === 'array') {\n if (is.array(val)) {\n if (isRegexOrGlobOption(key)) {\n warnings.push(\n ...regexOrGlobValidator.check({\n val,\n currentPath: currentPath!,\n }),\n );\n }\n if (key === 'gitNoVerify') {\n const allowedValues = ['commit', 'push'];\n for (const value of val as string[]) {\n if (!allowedValues.includes(value)) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value for \\`${currentPath}\\`. The allowed values are ${allowedValues.join(', ')}.`,\n });\n }\n }\n }\n if (key === 'mergeConfidenceDatasources') {\n const allowedValues = supportedDatasources;\n for (const value of val as string[]) {\n if (!allowedValues.includes(value)) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value \\`${value}\\` for \\`${currentPath}\\`. The allowed values are ${allowedValues.join(', ')}.`,\n });\n }\n }\n }\n } else {\n warnings.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be a list (Array).`,\n });\n }\n } else if (type === 'object') {\n if (is.plainObject(val)) {\n if (key === 'onboardingConfig') {\n const subValidation = await validateConfig('repo', val);\n for (const warning of subValidation.warnings.concat(\n subValidation.errors,\n )) {\n warnings.push(warning);\n }\n } else if (key === 'force') {\n const subValidation = await validateConfig('global', val);\n for (const warning of subValidation.warnings.concat(\n subValidation.errors,\n )) {\n warnings.push(warning);\n }\n } else if (key === 'cacheTtlOverride') {\n for (const [subKey, subValue] of Object.entries(val)) {\n const allowsNegative = optionAllowsNegativeIntegers.has(key);\n warnings.push(\n ...validateNumber(\n key,\n subValue,\n allowsNegative,\n currentPath,\n subKey,\n ),\n );\n }\n } else {\n const res = validatePlainObject(val);\n if (res !== true) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${res}\\` configuration: value must be a string.`,\n });\n }\n }\n } else {\n warnings.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be a JSON object.`,\n });\n }\n }\n }\n}\n"]}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../lib/config/validation.ts"],"names":[],"mappings":";;AA2JA,wCAkqBC;;AA7zBD,kEAAkC;AAClC,gDAAqE;AACrE,sDAA4D;AAG5D,6CAAgD;AAChD,yCAAsC;AACtC,uDAI8B;AAC9B,mEAA6C;AAC7C,qCAAuC;AACvC,2EAGsD;AACtD,+CAAgD;AAChD,qCAAwC;AACxC,2CAA4C;AAC5C,uCAAuC;AACvC,uCAAiD;AACjD,0EAA2E;AAS3E,mCAAoD;AACpD,wFAAkE;AAClE,6GAAuF;AACvF,uGAAiF;AACjF,sDAOoC;AAEpC,MAAM,OAAO,GAAG,IAAA,oBAAU,GAAE,CAAC;AAE7B,IAAI,kBAAkB,GAAG,KAAK,CAAC;AAC/B,IAAI,WAAoD,CAAC;AACzD,IAAI,aAA+C,CAAC;AACpD,IAAI,aAA0B,CAAC;AAC/B,IAAI,cAA2B,CAAC;AAChC,IAAI,iBAA8B,CAAC;AACnC,IAAI,4BAAyC,CAAC;AAE9C,MAAM,WAAW,GAAG,IAAA,wBAAc,GAAE,CAAC;AAErC,MAAM,eAAe,GAAG,CAAC,GAAG,WAAW,EAAE,KAAK,CAAC,CAAC;AAEhD,MAAM,YAAY,GAAG;IACnB,SAAS;IACT,SAAS;IACT,SAAS;IACT,UAAU;IACV,aAAa;IACb,WAAW;IACX,YAAY;IACZ,yBAAyB;IACzB,oBAAoB;IACpB,sBAAsB;IACtB,yBAAyB,EAAE,+DAA+D;IAC1F,eAAe,EAAE,uDAAuD;IACxE,QAAQ,EAAE,aAAa;IACvB,mBAAmB,EAAE,4BAA4B;CAClD,CAAC;AACF,MAAM,IAAI,GAAG,IAAA,aAAK,EAAC,qBAAqB,CAAC,CAAC;AAC1C,MAAM,OAAO,GAAG,IAAA,aAAK,EAAC,kBAAkB,CAAC,CAAC;AAE1C,SAAS,aAAa,CAAC,UAAkB;IACvC,OAAO,CACL,IAAA,aAAK,EAAC,2BAA2B,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QACnD,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CACjC,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,OAAO,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,6BAA6B,CAAC,eAAyB;IAC9D,OAAO,eAAe,CAAC,MAAM,CAC3B,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,yBAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CACvE,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAc;IAC3C,MAAM,iBAAiB,GAAuC;QAC5D,UAAU,EAAE,0HAA0H;QACtI,aAAa,EAAE,uGAAuG;QACtH,OAAO,EAAE,yIAAyI;KACnJ,CAAC;IACF,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAW;IACvC,OAAO,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAW;IACtC,OAAO,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,OAAO,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,WAAW;IAClB,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,aAAa,GAAG,EAAE,CAAC;IACnB,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;IAC3B,WAAW,GAAG,EAAE,CAAC;IACjB,iBAAiB,GAAG,IAAI,GAAG,EAAE,CAAC;IAC9B,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;IAC1B,4BAA4B,GAAG,IAAI,GAAG,EAAE,CAAC;IAEzC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;QAEvC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9C,CAAC;QAED,IAAI,MAAM,CAAC,oBAAoB,EAAE,CAAC;YAChC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,4BAA4B,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,kBAAkB,GAAG,IAAI,CAAC;AAC5B,CAAC;AAEM,KAAK,UAAU,cAAc,CAClC,UAAyC,EACzC,MAAsB,EACtB,QAAkB,EAClB,UAAmB;IAEnB,WAAW,EAAE,CAAC;IAEd,IAAI,MAAM,GAAwB,EAAE,CAAC;IACrC,IAAI,QAAQ,GAAwB,EAAE,CAAC;IAEvC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAC9D,qCAAqC;QACrC,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,uBAAuB;gBAC9B,OAAO,EAAE,WAAW;aACrB,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,IACE,UAAU;YACV,UAAU,KAAK,kBAAkB;YACjC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,EAC7B,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,qBAAqB;gBAC5B,OAAO,EAAE,QAAQ,GAAG,sFAAsF,UAAU,GAAG;aACxH,CAAC,CAAC;QACL,CAAC;QAED,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,oBAAoB,CACxB,GAAG,EACH,GAAG,EACH,WAAW,CAAC,GAAG,CAAC,EAChB,QAAQ,EACR,MAAM,EACN,WAAW,EACX,MAAM,CACP,CAAC;gBACF,SAAS;YACX,CAAC;iBAAM,IACL,CAAC,IAAA,qBAAa,EAAC,GAAG,EAAE,UAAU,CAAC;gBAC/B,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC,EACxD,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC;oBACZ,KAAK,EAAE,qBAAqB;oBAC5B,OAAO,EAAE,QAAQ,GAAG,2IAA2I;iBAChK,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;QACH,CAAC;QACD,IAAI,GAAG,KAAK,iBAAiB,IAAI,GAAG,EAAE,CAAC;YACrC,MAAM,mBAAmB,GAAG,6BAA6B,CACvD,GAAe,CAChB,CAAC;YACF,IAAI,YAAE,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAC1C,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,qBAAqB;oBAC5B,OAAO,EAAE,4EAA4E,mBAAmB,CAAC,IAAI,CAC3G,IAAI,CACL,GAAG;iBACL,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YACxB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,cAAc;oBACrB,OAAO,EAAE,wGAAwG;iBAClH,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtC,QAAQ,CAAC,IAAI,CAAC;oBACZ,KAAK,EAAE,gBAAgB;oBACvB,OAAO,EAAE,mEAAmE,UAAU,EAAE;iBACzF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,IACE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,uCAAuC;YAC1D,CAAE,YAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,uBAAuB;UAClD,CAAC;YACD,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,QAAQ,CAAC,IAAI,CAAC;oBACZ,KAAK,EAAE,qBAAqB;oBAC5B,OAAO,EAAE,qBAAqB,CAAC,GAAG,CAAE;iBACrC,CAAC,CAAC;YACL,CAAC;YACD,MAAM,YAAY,GAAG;gBACnB,YAAY;gBACZ,YAAY;gBACZ,eAAe;gBACf,SAAS;gBACT,qBAAqB;aACtB,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;gBACpE,IAAI,CAAC;oBACH,+BAA+B;oBAC/B,IAAI,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAE,GAAc,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;oBACtE,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;oBAC3C,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;gBACvC,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,qBAAqB;wBAC5B,OAAO,EAAE,oCAAoC,WAAW,EAAE;qBAC3D,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,MAAM,UAAU,GAAG,IAAA,qBAAa,EAAC,UAAU,CAAC,CAAC;YAC7C,IACE,CAAC,QAAQ;gBACT,aAAa,CAAC,GAAG,CAAC;gBAClB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,UAA4B,CAAC,EAC1D,CAAC;gBACD,uBAAuB;gBACvB,MAAM,OAAO,GAAG,GAAG,GAAG,6CAA6C,aAAa,CAC9E,GAAG,CACJ,EAAE,IAAI,CAAC,MAAM,CAAC,2BAA2B,UAAU,EAAE,CAAC;gBACvD,QAAQ,CAAC,IAAI,CAAC;oBACZ,KAAK,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE;oBACpD,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,qBAAqB;oBAC5B,OAAO,EAAE,iCAAiC,WAAW,EAAE;iBACxD,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;gBAC9B,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,GAAG,IAAA,2BAAgB,EAAC,GAAe,CAAC,CAAC;gBACxE,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,qBAAqB;wBAC5B,OAAO,EAAE,WAAW,WAAW,OAAO,YAAY,IAAI;qBACvD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,IACL;gBACE,iBAAiB;gBACjB,qBAAqB;gBACrB,mBAAmB;gBACnB,eAAe;aAChB,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACf,IAAA,2BAAY,EAAC,GAAG,CAAC,EACjB,CAAC;gBACD,IAAI,CAAC,IAAA,gCAAiB,EAAC,GAAG,CAAC,EAAE,CAAC;oBAC5B,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,qBAAqB;wBAC5B,OAAO,EAAE,sBAAsB,WAAW,OAAO,GAAG,IAAI;qBACzD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBAC9C,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,GAAG,IAAA,2BAAgB,EAAC,GAAa,CAAC,CAAC;gBACtE,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,qBAAqB;wBAC5B,OAAO,EAAE,GAAG,WAAW,KAAK,YAAY,EAAE;qBAC3C,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;gBAC9B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;wBAClC,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,qBAAqB;4BAC5B,OAAO,EAAE,0BAA0B,WAAW,gCAAgC,IAAI,CAAC,SAAS,CAC1F,GAAG,CACJ,KAAK,OAAO,GAAG,GAAG;yBACpB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;qBAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC9B,MAAM,cAAc,GAAG,4BAA4B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC7D,MAAM,CAAC,IAAI,CAAC,GAAG,IAAA,sBAAc,EAAC,GAAG,EAAE,GAAG,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;gBACxE,CAAC;qBAAM,IAAI,IAAI,KAAK,OAAO,IAAI,GAAG,EAAE,CAAC;oBACnC,IAAI,YAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;wBAClB,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;4BAC/C,IAAI,YAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gCACtB,MAAM,aAAa,GAAG,MAAM,cAAc,CACxC,UAAU,EACV,MAAwB,EACxB,QAAQ,EACR,GAAG,WAAW,IAAI,QAAQ,GAAG,CAC9B,CAAC;gCACF,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gCACnD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;4BAC/C,CAAC;wBACH,CAAC;wBACD,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;4BAC7B,MAAM,CAAC,IAAI,CACT,GAAG,oBAAoB,CAAC,KAAK,CAAC;gCAC5B,GAAG;gCACH,WAAW;6BACZ,CAAC,CACH,CAAC;wBACJ,CAAC;wBACD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;4BACtB,KAAK,MAAM,MAAM,IAAI,GAAG,EAAE,CAAC;gCACzB,IAAI,YAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;oCACtB,IACE,UAAU,KAAK,cAAc;wCAC7B,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC3B,CAAC;wCACD,QAAQ,CAAC,IAAI,CAAC;4CACZ,KAAK,EAAE,uBAAuB;4CAC9B,OAAO,EAAE,GAAG,WAAW,0CAA0C;yCAClE,CAAC,CAAC;oCACL,CAAC;oCACD,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;wCACtB,MAAM,CAAC,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAE,CAAC;wCACxC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,GACjC,IAAA,2BAAgB,EAAC,QAAQ,CAAC,CAAC;wCAC7B,IAAI,CAAC,aAAa,EAAE,CAAC;4CACnB,MAAM,CAAC,IAAI,CAAC;gDACV,KAAK,EAAE,qBAAqB;gDAC5B,OAAO,EAAE,GAAG,WAAW,KAAK,YAAY,EAAE;6CAC3C,CAAC,CAAC;wCACL,CAAC;oCACH,CAAC;gCACH,CAAC;qCAAM,CAAC;oCACN,MAAM,CAAC,IAAI,CAAC;wCACV,KAAK,EAAE,uBAAuB;wCAC9B,OAAO,EAAE,GAAG,WAAW,gCAAgC;qCACxD,CAAC,CAAC;gCACL,CAAC;4BACH,CAAC;wBACH,CAAC;wBAED,MAAM,SAAS,GAAG;4BAChB,gBAAgB;4BAChB,gBAAgB;4BAChB,iBAAiB;4BACjB,mBAAmB;4BACnB,eAAe;4BACf,kBAAkB;4BAClB,eAAe;4BACf,eAAe;4BACf,mBAAmB;4BACnB,mBAAmB;4BACnB,qBAAqB;4BACrB,iBAAiB;4BACjB,kBAAkB;4BAClB,iBAAiB;4BACjB,iBAAiB;4BACjB,mBAAmB;4BACnB,eAAe;4BACf,cAAc;yBACf,CAAC;wBACF,IAAI,GAAG,KAAK,cAAc,EAAE,CAAC;4BAC3B,KAAK,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;gCACpD,IAAI,YAAE,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;oCAC3B,MAAM,YAAY,GAAG,IAAA,yBAAa,EAAC;wCACjC,YAAY,EAAE;4CACZ,MAAM,IAAA,8BAAoB,EACxB,WAA6B,EAC7B,MAAM,CACP;yCACF;qCACF,CAAC,CAAC,cAAc,CAAC,YAAa,CAAC,CAAC,CAAC,CAAC;oCACnC,MAAM,CAAC,IAAI,CACT,GAAG,gBAAgB,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CACzD,CAAC;oCACF,QAAQ,CAAC,IAAI,CACX,GAAG,0BAA0B,CAAC,KAAK,CAAC;wCAClC,YAAY;wCACZ,WAAW,EAAE,GAAG,WAAW,IAAI,QAAQ,GAAG;wCAC1C,YAAY,EAAE,MAAM,CAAC,YAAa;qCACnC,CAAC,CACH,CAAC;oCACF,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CACrD,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CACzC,CAAC,MAAM,CAAC;oCACT,IAAI,CAAC,cAAc,EAAE,CAAC;wCACpB,MAAM,OAAO,GAAG,GAAG,WAAW,IAAI,QAAQ,oFAAoF,IAAI,CAAC,SAAS,CAC1I,WAAW,CACZ,EAAE,CAAC;wCACJ,MAAM,CAAC,IAAI,CAAC;4CACV,KAAK,EAAE,qBAAqB;4CAC5B,OAAO;yCACR,CAAC,CAAC;oCACL,CAAC;oCACD,IAAI,cAAc,KAAK,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,CAAC;wCACxD,MAAM,OAAO,GAAG,GAAG,WAAW,IAAI,QAAQ,yFAAyF,IAAI,CAAC,SAAS,CAC/I,WAAW,CACZ,EAAE,CAAC;wCACJ,QAAQ,CAAC,IAAI,CAAC;4CACZ,KAAK,EAAE,qBAAqB;4CAC5B,OAAO;yCACR,CAAC,CAAC;oCACL,CAAC;oCACD,uFAAuF;oCACvF,MAAM,gBAAgB,GAAG;wCACvB,iBAAiB;wCACjB,gBAAgB;wCAChB,WAAW;wCACX,YAAY;wCACZ,gBAAgB;wCAChB,eAAe;wCACf,cAAc;wCACd,eAAe;wCACf,aAAa;wCACb,oBAAoB;wCACpB,oBAAoB;wCACpB,uBAAuB;wCACvB,uBAAuB;wCACvB,YAAY;qCACb,CAAC;oCACF,IAAI,YAAE,CAAC,aAAa,CAAC,YAAY,CAAC,gBAAgB,CAAC,EAAE,CAAC;wCACpD,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;4CACtC,IAAI,YAAY,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;gDACvC,MAAM,OAAO,GAAG,GAAG,WAAW,IAAI,QAAQ,4DAA4D,MAAM,WAAW,IAAI,CAAC,SAAS,CACnI,WAAW,CACZ,EAAE,CAAC;gDACJ,MAAM,CAAC,IAAI,CAAC;oDACV,KAAK,EAAE,qBAAqB;oDAC5B,OAAO;iDACR,CAAC,CAAC;4CACL,CAAC;wCACH,CAAC;oCACH,CAAC;gCACH,CAAC;qCAAM,CAAC;oCACN,MAAM,CAAC,IAAI,CAAC;wCACV,KAAK,EAAE,qBAAqB;wCAC5B,OAAO,EAAE,GAAG,WAAW,4BAA4B;qCACpD,CAAC,CAAC;gCACL,CAAC;4BACH,CAAC;wBACH,CAAC;wBACD,IAAI,GAAG,KAAK,gBAAgB,EAAE,CAAC;4BAC7B,MAAM,WAAW,GAAG;gCAClB,YAAY;gCACZ,aAAa;gCACb,YAAY;gCACZ,WAAW;gCACX,cAAc;gCACd,sBAAsB;gCACtB,iBAAiB;gCACjB,qBAAqB;gCACrB,oBAAoB;gCACpB,oBAAoB;gCACpB,qBAAqB;gCACrB,sBAAsB;gCACtB,wBAAwB;gCACxB,2BAA2B;gCAC3B,iBAAiB;6BAClB,CAAC;4BACF,KAAK,MAAM,aAAa,IAAI,GAAsB,EAAE,CAAC;gCACnD,IACE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAChC,EACD,CAAC;oCACD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CACtD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAChC,CAAC;oCACF,MAAM,CAAC,IAAI,CAAC;wCACV,KAAK,EAAE,qBAAqB;wCAC5B,OAAO,EAAE,8CAA8C,cAAc,CAAC,IAAI,CACxE,IAAI,CACL,EAAE;qCACJ,CAAC,CAAC;gCACL,CAAC;qCAAM,IACL,YAAE,CAAC,cAAc,CAAC,aAAa,CAAC,UAAU,CAAC;oCAC3C,IAAA,wBAAe,EAAC,aAAa,CAAC,UAAU,CAAC,EACzC,CAAC;oCACD,IAAI,YAAE,CAAC,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;wCAC9C,QAAQ,aAAa,CAAC,UAAU,EAAE,CAAC;4CACjC,KAAK,OAAO;gDACV,IAAA,kCAA0B,EACxB,aAAa,EACb,WAAW,EACX,MAAM,CACP,CAAC;gDACF,MAAM;4CACR,KAAK,SAAS;gDACZ,IAAA,oCAA4B,EAC1B,aAAa,EACb,WAAW,EACX,MAAM,CACP,CAAC;gDACF,MAAM;wCACV,CAAC;oCACH,CAAC;yCAAM,CAAC;wCACN,MAAM,CAAC,IAAI,CAAC;4CACV,KAAK,EAAE,qBAAqB;4CAC5B,OAAO,EAAE,8DAA8D;yCACxE,CAAC,CAAC;oCACL,CAAC;gCACH,CAAC;qCAAM,CAAC;oCACN,IACE,YAAE,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC;wCACxC,YAAE,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,EACtC,CAAC;wCACD,MAAM,CAAC,IAAI,CAAC;4CACV,KAAK,EAAE,qBAAqB;4CAC5B,OAAO,EAAE,gEAAgE;yCAC1E,CAAC,CAAC;oCACL,CAAC;yCAAM,CAAC;wCACN,MAAM,CAAC,IAAI,CAAC;4CACV,KAAK,EAAE,qBAAqB;4CAC5B,OAAO,EAAE,uBAAuB,aAAa,CAAC,UAAU,+BAA+B;yCACxF,CAAC,CAAC;oCACL,CAAC;gCACH,CAAC;4BACH,CAAC;wBACH,CAAC;wBACD,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;4BACzD,MAAM,YAAY,GAAG,IAAA,aAAK,EAAC,MAAM,CAAC,CAAC;4BACnC,MAAM,UAAU,GAAG,IAAA,aAAK,EAAC,SAAS,CAAC,CAAC;4BACpC,KAAK,MAAM,OAAO,IAAI,GAAe,EAAE,CAAC;gCACtC,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;oCAC3D,IAAI,CAAC;wCACH,+DAA+D;wCAC/D,IAAA,aAAK,EAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC;oCAC5C,CAAC;oCAAC,MAAM,CAAC;wCACP,MAAM,CAAC,IAAI,CAAC;4CACV,KAAK,EAAE,qBAAqB;4CAC5B,OAAO,EAAE,sBAAsB,WAAW,OAAO,OAAO,IAAI;yCAC7D,CAAC,CAAC;oCACL,CAAC;gCACH,CAAC;4BACH,CAAC;wBACH,CAAC;wBACD,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;4BACxB,KAAK,MAAM,SAAS,IAAI,GAAe,EAAE,CAAC;gCACxC,IAAI,CAAC;oCACH,IAAA,aAAK,EAAC,SAAS,CAAC,CAAC;gCACnB,CAAC;gCAAC,MAAM,CAAC;oCACP,MAAM,CAAC,IAAI,CAAC;wCACV,KAAK,EAAE,qBAAqB;wCAC5B,OAAO,EAAE,sBAAsB,WAAW,OAAO,SAAS,IAAI;qCAC/D,CAAC,CAAC;gCACL,CAAC;4BACH,CAAC;wBACH,CAAC;wBACD,IAAI,GAAG,KAAK,cAAc,EAAE,CAAC;4BAC3B,KAAK,MAAM,UAAU,IAAI,GAAe,EAAE,CAAC;gCACzC,IACE,IAAA,2BAAY,EAAC,UAAU,CAAC;oCACxB,CAAC,IAAA,gCAAiB,EAAC,UAAU,CAAC,EAC9B,CAAC;oCACD,MAAM,CAAC,IAAI,CAAC;wCACV,KAAK,EAAE,qBAAqB;wCAC5B,OAAO,EAAE,sBAAsB,WAAW,OAAO,UAAU,IAAI;qCAChE,CAAC,CAAC;gCACL,CAAC;4BACH,CAAC;wBACH,CAAC;wBACD,IACE,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;4BACtB,GAAG,KAAK,qBAAqB;4BAC7B,GAAG,KAAK,mBAAmB,CAAC;4BAC9B,kCAAkC;4BAClC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAW,CAAC,IAAI,uBAAuB;4BACrD,CAAC,YAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,wBAAwB;0BAC7D,CAAC;4BACD,MAAM,CAAC,IAAI,CAAC;gCACV,KAAK,EAAE,qBAAqB;gCAC5B,OAAO,EAAE,GAAG,WAAW,KAAK,GAAG,0CAA0C;6BAC1E,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,qBAAqB;4BAC5B,OAAO,EAAE,0BAA0B,WAAW,6BAA6B;yBAC5E,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;qBAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,IAAI,CAAC,YAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;wBACpB,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,qBAAqB;4BAC5B,OAAO,EAAE,0BAA0B,WAAW,uBAAuB;yBACtE,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;qBAAM,IACL,IAAI,KAAK,QAAQ;oBACjB,WAAW,KAAK,eAAe;oBAC/B,GAAG,KAAK,aAAa,EACrB,CAAC;oBACD,IAAI,YAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;wBACxB,IAAI,GAAG,KAAK,iBAAiB,EAAE,CAAC;4BAC9B,MAAM,GAAG,GAAG,IAAA,2BAAmB,EAAC,GAAG,CAAC,CAAC;4BACrC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gCACjB,MAAM,CAAC,IAAI,CAAC;oCACV,KAAK,EAAE,qBAAqB;oCAC5B,OAAO,EAAE,aAAa,WAAW,IAAI,GAAG,IAAI,GAAG,yCAAyC;iCACzF,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;6BAAM,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;4BACzB,MAAM,cAAc,GAClB,UAAU,KAAK,QAAQ;gCACrB,CAAC,CAAC,CAAE,MAAM,CAAC,UAAuB,IAAI,EAAE,CAAC;gCACzC,CAAC,CAAC,qBAAY,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;4BACzC,KAAK,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gCAC5D,IAAI,CAAC,YAAE,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;oCAC5B,MAAM,CAAC,IAAI,CAAC;wCACV,KAAK,EAAE,qBAAqB;wCAC5B,OAAO,EAAE,iCAAiC,WAAW,IAAI,UAAU,sBAAsB;qCAC1F,CAAC,CAAC;gCACL,CAAC;gCACD,IAAI,CAAC,IAAA,mCAAoB,EAAC,UAAU,EAAE,cAAc,CAAC,EAAE,CAAC;oCACtD,MAAM,CAAC,IAAI,CAAC;wCACV,KAAK,EAAE,qBAAqB;wCAC5B,OAAO,EAAE,uBAAuB,UAAU,iDAAiD;qCAC5F,CAAC,CAAC;gCACL,CAAC;4BACH,CAAC;wBACH,CAAC;6BAAM,IAAI,GAAG,KAAK,kBAAkB,EAAE,CAAC;4BACtC,KAAK,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAAC,IAAI,MAAM,CAAC,OAAO,CAC7D,GAAG,CACJ,EAAE,CAAC;gCACF,IACE,CAAC,iCAAyB,CAAC,QAAQ,CACjC,cAAgC,CACjC,EACD,CAAC;oCACD,MAAM,CAAC,IAAI,CAAC;wCACV,KAAK,EAAE,qBAAqB;wCAC5B,OAAO,EAAE,aAAa,WAAW,IAAI,GAAG,IAAI,cAAc,uCAAuC;qCAClG,CAAC,CAAC;gCACL,CAAC;gCACD,IACE,CAAC,CAAC,YAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,IAAI,KAAK,gBAAgB,CAAC,EAC3D,CAAC;oCACD,MAAM,CAAC,IAAI,CAAC;wCACV,KAAK,EAAE,qBAAqB;wCAC5B,OAAO,EAAE,aAAa,WAAW,IAAI,cAAc,iDAAiD;qCACrG,CAAC,CAAC;oCACH,SAAS;gCACX,CAAC;4BACH,CAAC;wBACH,CAAC;6BAAM,IAAI,GAAG,KAAK,mBAAmB,EAAE,CAAC;4BACvC,MAAM,WAAW,GAAG;gCAClB,aAAa;gCACb,4BAA4B;gCAC5B,QAAQ;gCACR,oBAAoB;6BACrB,CAAC;4BACF,KAAK,MAAM,CACT,oBAAoB,EACpB,qBAAqB,EACtB,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gCACzB,IAAI,CAAC,YAAE,CAAC,WAAW,CAAC,qBAAqB,CAAC,EAAE,CAAC;oCAC3C,MAAM,CAAC,IAAI,CAAC;wCACV,KAAK,EAAE,qBAAqB;wCAC5B,OAAO,EAAE,aAAa,WAAW,IAAI,oBAAoB,qDAAqD;qCAC/G,CAAC,CAAC;oCACH,SAAS;gCACX,CAAC;gCACD,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAC7C,qBAAqB,CACtB,EAAE,CAAC;oCACF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;wCAClC,MAAM,CAAC,IAAI,CAAC;4CACV,KAAK,EAAE,qBAAqB;4CAC5B,OAAO,EAAE,aAAa,WAAW,IAAI,MAAM,sCAAsC;yCAClF,CAAC,CAAC;oCACL,CAAC;yCAAM,IAAI,MAAM,KAAK,oBAAoB,EAAE,CAAC;wCAC3C,IAAI,CAAC,YAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAE,CAAC,MAAM,CAAC,EAAE,CAAC;4CACnC,MAAM,CAAC,IAAI,CAAC;gDACV,KAAK,EAAE,qBAAqB;gDAC5B,OAAO,EAAE,aAAa,WAAW,IAAI,MAAM,6CAA6C;6CACzF,CAAC,CAAC;wCACL,CAAC;oCACH,CAAC;yCAAM,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;wCACpC,IACE,CAAC,CAAC,YAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,YAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAE,CAAC,MAAM,CAAC,CAAC,EACvD,CAAC;4CACD,MAAM,CAAC,IAAI,CAAC;gDACV,KAAK,EAAE,qBAAqB;gDAC5B,OAAO,EAAE,aAAa,WAAW,IAAI,MAAM,8CAA8C;6CAC1F,CAAC,CAAC;wCACL,CAAC;oCACH,CAAC;yCAAM,IAAI,CAAC,YAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;wCAChC,MAAM,CAAC,IAAI,CAAC;4CACV,KAAK,EAAE,qBAAqB;4CAC5B,OAAO,EAAE,aAAa,WAAW,IAAI,MAAM,+BAA+B;yCAC3E,CAAC,CAAC;oCACL,CAAC;gCACH,CAAC;4BACH,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACN,MAAM,cAAc,GAAG,OAAO;iCAC3B,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;iCACrC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;4BAChC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gCAClC,MAAM,aAAa,GAAG,MAAM,cAAc,CACxC,UAAU,EACV,GAAG,EACH,QAAQ,EACR,WAAW,CACZ,CAAC;gCACF,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gCACnD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;4BAC/C,CAAC;wBACH,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,qBAAqB;4BAC5B,OAAO,EAAE,0BAA0B,WAAW,4BAA4B;yBAC3E,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,GAAG,KAAK,WAAW,IAAI,YAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,cAAc,GAClB,UAAU,KAAK,QAAQ;gBACrB,CAAC,CAAC,CAAE,MAAM,CAAC,cAA2B,IAAI,EAAE,CAAC;gBAC7C,CAAC,CAAC,qBAAY,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAC7C,KAAK,MAAM,IAAI,IAAI,GAAiB,EAAE,CAAC;gBACrC,IAAI,YAAE,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;oBACtC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;wBACnC,IAAI,IAAA,cAAQ,EAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;4BACtC,MAAM,CAAC,IAAI,CAAC;gCACV,KAAK,EAAE,qBAAqB;gCAC5B,OAAO,EAAE,yBAAyB,IAAI,CAAC,SAAS,wBAAwB;6BACzE,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,IAAI,YAAE,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC1C,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,qBAAqB;wBAC5B,OAAO,EACL,sEAAsE;qBACzE,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,SAAS;gBACX,CAAC;gBACD,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC3D,IAAI,CAAC,YAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;wBACtB,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,qBAAqB;4BAC5B,OAAO,EAAE,yEAAyE;yBACnF,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,CAAC,IAAA,mCAAoB,EAAC,MAAM,EAAE,cAAc,CAAC,EAAE,CAAC;wBAClD,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,qBAAqB;4BAC5B,OAAO,EAAE,sBAAsB,MAAM,qDAAqD;yBAC3F,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,GAAG,KAAK,cAAc,IAAI,YAAE,CAAC,KAAK,CAAC,GAAG,EAAE,YAAE,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,KAAK,MAAM,UAAU,IAAI,GAAG,EAAE,CAAC;gBAC7B,MAAM,GAAG,GAAG,IAAA,uBAAa,EAAC,UAAU,CAAC,CAAC;gBACtC,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;oBACzB,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,qBAAqB;wBAC5B,OAAO,EAAE,kCAAkC,WAAW,KAAK,GAAG,CAAC,OAAO,EAAE;qBACzE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,SAAS,OAAO,CAAC,CAAoB,EAAE,CAAoB;QACzD,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,oBAAoB,CACjC,GAAW,EACX,GAAY,EACZ,IAAY,EACZ,QAA6B,EAC7B,MAA2B,EAC3B,WAA+B,EAC/B,MAAsB;IAEtB,wCAAwC;IACxC,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,qBAAqB;YAC5B,OAAO,EAAE,qBAAqB,CAAC,GAAG,CAAE;SACrC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,IAAI,YAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnB,IACE,GAAG,KAAK,0BAA0B;oBAClC,CAAC,6BAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,EAC9B,CAAC;oBACD,QAAQ,CAAC,IAAI,CAAC;wBACZ,KAAK,EAAE,qBAAqB;wBAC5B,OAAO,EAAE,mBAAmB,GAAG,YAAY,WAAW,8BAA8B,6BAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;qBAClH,CAAC,CAAC;gBACL,CAAC;qBAAM,IACL,GAAG,KAAK,iBAAiB;oBACzB,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAC/C,CAAC;oBACD,QAAQ,CAAC,IAAI,CAAC;wBACZ,KAAK,EAAE,qBAAqB;wBAC5B,OAAO,EAAE,mBAAmB,GAAG,YAAY,WAAW,8BAA8B,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;qBACnI,CAAC,CAAC;gBACL,CAAC;qBAAM,IACL,GAAG,KAAK,QAAQ;oBAChB,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAC5C,CAAC;oBACD,QAAQ,CAAC,IAAI,CAAC;wBACZ,KAAK,EAAE,qBAAqB;wBAC5B,OAAO,EAAE,mBAAmB,GAAG,YAAY,WAAW,8BAA8B,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;qBAChI,CAAC,CAAC;gBACL,CAAC;qBAAM,IACL,GAAG,KAAK,cAAc;oBACtB,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EACxD,CAAC;oBACD,QAAQ,CAAC,IAAI,CAAC;wBACZ,KAAK,EAAE,qBAAqB;wBAC5B,OAAO,EAAE,mBAAmB,GAAG,YAAY,WAAW,8BAA8B,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;qBAC5I,CAAC,CAAC;gBACL,CAAC;qBAAM,IACL,GAAG,KAAK,eAAe;oBACvB,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAClD,CAAC;oBACD,QAAQ,CAAC,IAAI,CAAC;wBACZ,KAAK,EAAE,qBAAqB;wBAC5B,OAAO,EAAE,mBAAmB,GAAG,YAAY,WAAW,8BAA8B,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;qBACtI,CAAC,CAAC;gBACL,CAAC;qBAAM,IACL,GAAG,KAAK,QAAQ;oBAChB,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAC7C,CAAC;oBACD,QAAQ,CAAC,IAAI,CAAC;wBACZ,KAAK,EAAE,qBAAqB;wBAC5B,OAAO,EAAE,mBAAmB,GAAG,YAAY,WAAW,8BAA8B,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;qBACjI,CAAC,CAAC;gBACL,CAAC;gBAED,IACE,GAAG,KAAK,YAAY;oBACpB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAC5B,CAAC,YAAE,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAC7B,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,qBAAqB;wBAC5B,OAAO,EAAE,eAAe,GAAG,oCAAoC;qBAChE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CAAC;oBACZ,KAAK,EAAE,qBAAqB;oBAC5B,OAAO,EAAE,0BAA0B,WAAW,wBAAwB;iBACvE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,cAAc,GAAG,4BAA4B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC7D,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAA,sBAAc,EAAC,GAAG,EAAE,GAAG,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;QAC1E,CAAC;aAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBAClC,QAAQ,CAAC,IAAI,CAAC;oBACZ,KAAK,EAAE,qBAAqB;oBAC5B,OAAO,EAAE,0BAA0B,WAAW,kCAAkC,IAAI,CAAC,SAAS,CAC5F,GAAG,CACJ,KAAK,OAAO,GAAG,IAAI;iBACrB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,IAAI,YAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClB,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7B,QAAQ,CAAC,IAAI,CACX,GAAG,oBAAoB,CAAC,KAAK,CAAC;wBAC5B,GAAG;wBACH,WAAW,EAAE,WAAY;qBAC1B,CAAC,CACH,CAAC;gBACJ,CAAC;gBACD,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;oBAC1B,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;oBACzC,KAAK,MAAM,KAAK,IAAI,GAAe,EAAE,CAAC;wBACpC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;4BACnC,QAAQ,CAAC,IAAI,CAAC;gCACZ,KAAK,EAAE,qBAAqB;gCAC5B,OAAO,EAAE,uBAAuB,WAAW,8BAA8B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;6BACrG,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,IAAI,GAAG,KAAK,4BAA4B,EAAE,CAAC;oBACzC,MAAM,aAAa,GAAG,uCAAoB,CAAC;oBAC3C,KAAK,MAAM,KAAK,IAAI,GAAe,EAAE,CAAC;wBACpC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;4BACnC,QAAQ,CAAC,IAAI,CAAC;gCACZ,KAAK,EAAE,qBAAqB;gCAC5B,OAAO,EAAE,mBAAmB,KAAK,YAAY,WAAW,8BAA8B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;6BAClH,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CAAC;oBACZ,KAAK,EAAE,qBAAqB;oBAC5B,OAAO,EAAE,0BAA0B,WAAW,8BAA8B;iBAC7E,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,YAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,IAAI,GAAG,KAAK,kBAAkB,EAAE,CAAC;oBAC/B,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;oBACxD,KAAK,MAAM,OAAO,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,CACjD,aAAa,CAAC,MAAM,CACrB,EAAE,CAAC;wBACF,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC;qBAAM,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;oBAC3B,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;oBAC1D,KAAK,MAAM,OAAO,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,CACjD,aAAa,CAAC,MAAM,CACrB,EAAE,CAAC;wBACF,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC;qBAAM,IAAI,GAAG,KAAK,kBAAkB,EAAE,CAAC;oBACtC,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;wBACrD,MAAM,cAAc,GAAG,4BAA4B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBAC7D,QAAQ,CAAC,IAAI,CACX,GAAG,IAAA,sBAAc,EACf,GAAG,EACH,QAAQ,EACR,cAAc,EACd,WAAW,EACX,MAAM,CACP,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,GAAG,IAAA,2BAAmB,EAAC,GAAG,CAAC,CAAC;oBACrC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;wBACjB,QAAQ,CAAC,IAAI,CAAC;4BACZ,KAAK,EAAE,qBAAqB;4BAC5B,OAAO,EAAE,aAAa,WAAW,IAAI,GAAG,2CAA2C;yBACpF,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CAAC;oBACZ,KAAK,EAAE,qBAAqB;oBAC5B,OAAO,EAAE,0BAA0B,WAAW,6BAA6B;iBAC5E,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC","sourcesContent":["import is from '@sindresorhus/is';\nimport { allManagersList, getManagerList } from '../modules/manager';\nimport { isCustomManager } from '../modules/manager/custom';\nimport type { CustomManager } from '../modules/manager/custom/types';\nimport type { HostRule } from '../types';\nimport { getExpression } from '../util/jsonata';\nimport { regEx } from '../util/regex';\nimport {\n getRegexPredicate,\n isRegexMatch,\n matchRegexOrGlobList,\n} from '../util/string-match';\nimport * as template from '../util/template';\nimport { parseUrl } from '../util/url';\nimport {\n hasValidSchedule,\n hasValidTimezone,\n} from '../workers/repository/update/branch/schedule';\nimport { configFileNames } from './app-strings';\nimport { GlobalConfig } from './global';\nimport { migrateConfig } from './migration';\nimport { getOptions } from './options';\nimport { resolveConfigPresets } from './presets';\nimport { supportedDatasources } from './presets/internal/merge-confidence';\nimport type {\n AllowedParents,\n RenovateConfig,\n RenovateOptions,\n StatusCheckKey,\n ValidationMessage,\n ValidationResult,\n} from './types';\nimport { allowedStatusCheckStrings } from './types';\nimport * as managerValidator from './validation-helpers/managers';\nimport * as matchBaseBranchesValidator from './validation-helpers/match-base-branches';\nimport * as regexOrGlobValidator from './validation-helpers/regex-glob-matchers';\nimport {\n getParentName,\n isFalseGlobal,\n validateJSONataManagerFields,\n validateNumber,\n validatePlainObject,\n validateRegexManagerFields,\n} from './validation-helpers/utils';\n\nconst options = getOptions();\n\nlet optionsInitialized = false;\nlet optionTypes: Record<string, RenovateOptions['type']>;\nlet optionParents: Record<string, AllowedParents[]>;\nlet optionGlobals: Set<string>;\nlet optionInherits: Set<string>;\nlet optionRegexOrGlob: Set<string>;\nlet optionAllowsNegativeIntegers: Set<string>;\n\nconst managerList = getManagerList();\n\nconst topLevelObjects = [...managerList, 'env'];\n\nconst ignoredNodes = [\n '$schema',\n 'headers',\n 'depType',\n 'npmToken',\n 'packageFile',\n 'forkToken',\n 'repository',\n 'vulnerabilityAlertsOnly',\n 'vulnerabilityAlert',\n 'isVulnerabilityAlert',\n 'vulnerabilityFixVersion', // not intended to be used by end users but may be by Mend apps\n 'copyLocalLibs', // deprecated - functionality is now enabled by default\n 'prBody', // deprecated\n 'minimumConfidence', // undocumented feature flag\n];\nconst tzRe = regEx(/^:timezone\\((.+)\\)$/);\nconst rulesRe = regEx(/p.*Rules\\[\\d+\\]$/);\n\nfunction isManagerPath(parentPath: string): boolean {\n return (\n regEx(/^customManagers\\[[0-9]+]$/).test(parentPath) ||\n managerList.includes(parentPath)\n );\n}\n\nfunction isIgnored(key: string): boolean {\n return ignoredNodes.includes(key);\n}\n\nfunction getUnsupportedEnabledManagers(enabledManagers: string[]): string[] {\n return enabledManagers.filter(\n (manager) => !allManagersList.includes(manager.replace('custom.', '')),\n );\n}\n\nfunction getDeprecationMessage(option: string): string | undefined {\n const deprecatedOptions: Record<string, string | undefined> = {\n branchName: `Direct editing of branchName is now deprecated. Please edit branchPrefix, additionalBranchPrefix, or branchTopic instead`,\n commitMessage: `Direct editing of commitMessage is now deprecated. Please edit commitMessage's subcomponents instead.`,\n prTitle: `Direct editing of prTitle is now deprecated. Please edit commitMessage subcomponents instead as they will be passed through to prTitle.`,\n };\n return deprecatedOptions[option];\n}\n\nfunction isInhertConfigOption(key: string): boolean {\n return optionInherits.has(key);\n}\n\nfunction isRegexOrGlobOption(key: string): boolean {\n return optionRegexOrGlob.has(key);\n}\n\nfunction isGlobalOption(key: string): boolean {\n return optionGlobals.has(key);\n}\n\nfunction initOptions(): void {\n if (optionsInitialized) {\n return;\n }\n\n optionParents = {};\n optionInherits = new Set();\n optionTypes = {};\n optionRegexOrGlob = new Set();\n optionGlobals = new Set();\n optionAllowsNegativeIntegers = new Set();\n\n for (const option of options) {\n optionTypes[option.name] = option.type;\n\n if (option.parents) {\n optionParents[option.name] = option.parents;\n }\n\n if (option.inheritConfigSupport) {\n optionInherits.add(option.name);\n }\n\n if (option.patternMatch) {\n optionRegexOrGlob.add(option.name);\n }\n\n if (option.globalOnly) {\n optionGlobals.add(option.name);\n }\n\n if (option.allowNegative) {\n optionAllowsNegativeIntegers.add(option.name);\n }\n }\n\n optionsInitialized = true;\n}\n\nexport async function validateConfig(\n configType: 'global' | 'inherit' | 'repo',\n config: RenovateConfig,\n isPreset?: boolean,\n parentPath?: string,\n): Promise<ValidationResult> {\n initOptions();\n\n let errors: ValidationMessage[] = [];\n let warnings: ValidationMessage[] = [];\n\n for (const [key, val] of Object.entries(config)) {\n const currentPath = parentPath ? `${parentPath}.${key}` : key;\n /* v8 ignore next 7: TODO: test me */\n if (key === '__proto__') {\n errors.push({\n topic: 'Config security error',\n message: '__proto__',\n });\n continue;\n }\n if (\n parentPath &&\n parentPath !== 'onboardingConfig' &&\n topLevelObjects.includes(key)\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `The \"${key}\" object can only be configured at the top level of a config but was found inside \"${parentPath}\"`,\n });\n }\n\n if (isGlobalOption(key)) {\n if (configType === 'global') {\n await validateGlobalConfig(\n key,\n val,\n optionTypes[key],\n warnings,\n errors,\n currentPath,\n config,\n );\n continue;\n } else if (\n !isFalseGlobal(key, parentPath) &&\n !(configType === 'inherit' && isInhertConfigOption(key))\n ) {\n warnings.push({\n topic: 'Configuration Error',\n message: `The \"${key}\" option is a global option reserved only for Renovate's global configuration and cannot be configured within a repository's config file.`,\n });\n continue;\n }\n }\n if (key === 'enabledManagers' && val) {\n const unsupportedManagers = getUnsupportedEnabledManagers(\n val as string[],\n );\n if (is.nonEmptyArray(unsupportedManagers)) {\n errors.push({\n topic: 'Configuration Error',\n message: `The following managers configured in enabledManagers are not supported: \"${unsupportedManagers.join(\n ', ',\n )}\"`,\n });\n }\n }\n if (key === 'fileMatch') {\n if (parentPath === undefined) {\n errors.push({\n topic: 'Config error',\n message: `\"fileMatch\" may not be defined at the top level of a config and must instead be within a manager block`,\n });\n } else if (!isManagerPath(parentPath)) {\n warnings.push({\n topic: 'Config warning',\n message: `\"fileMatch\" must be configured in a manager block and not here: ${parentPath}`,\n });\n }\n }\n if (\n !isIgnored(key) && // We need to ignore some reserved keys\n !(is as any).function(val) // Ignore all functions\n ) {\n if (getDeprecationMessage(key)) {\n warnings.push({\n topic: 'Deprecation Warning',\n message: getDeprecationMessage(key)!,\n });\n }\n const templateKeys = [\n 'branchName',\n 'commitBody',\n 'commitMessage',\n 'prTitle',\n 'semanticCommitScope',\n ];\n if ((key.endsWith('Template') || templateKeys.includes(key)) && val) {\n try {\n // TODO: validate string #22198\n let res = template.compile((val as string).toString(), config, false);\n res = template.compile(res, config, false);\n template.compile(res, config, false);\n } catch {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid template in config path: ${currentPath}`,\n });\n }\n }\n const parentName = getParentName(parentPath);\n if (\n !isPreset &&\n optionParents[key] &&\n !optionParents[key].includes(parentName as AllowedParents)\n ) {\n // TODO: types (#22198)\n const message = `${key} should only be configured within one of \"${optionParents[\n key\n ]?.join(' or ')}\" objects. Was found in ${parentName}`;\n warnings.push({\n topic: `${parentPath ? `${parentPath}.` : ''}${key}`,\n message,\n });\n }\n if (!optionTypes[key]) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid configuration option: ${currentPath}`,\n });\n } else if (key === 'schedule') {\n const [validSchedule, errorMessage] = hasValidSchedule(val as string[]);\n if (!validSchedule) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid ${currentPath}: \\`${errorMessage}\\``,\n });\n }\n } else if (\n [\n 'allowedVersions',\n 'matchCurrentVersion',\n 'matchCurrentValue',\n 'matchNewValue',\n ].includes(key) &&\n isRegexMatch(val)\n ) {\n if (!getRegexPredicate(val)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid regExp for ${currentPath}: \\`${val}\\``,\n });\n }\n } else if (key === 'timezone' && val !== null) {\n const [validTimezone, errorMessage] = hasValidTimezone(val as string);\n if (!validTimezone) {\n errors.push({\n topic: 'Configuration Error',\n message: `${currentPath}: ${errorMessage}`,\n });\n }\n } else if (val !== null) {\n const type = optionTypes[key];\n if (type === 'boolean') {\n if (val !== true && val !== false) {\n errors.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be boolean. Found: ${JSON.stringify(\n val,\n )} (${typeof val})`,\n });\n }\n } else if (type === 'integer') {\n const allowsNegative = optionAllowsNegativeIntegers.has(key);\n errors.push(...validateNumber(key, val, allowsNegative, currentPath));\n } else if (type === 'array' && val) {\n if (is.array(val)) {\n for (const [subIndex, subval] of val.entries()) {\n if (is.object(subval)) {\n const subValidation = await validateConfig(\n configType,\n subval as RenovateConfig,\n isPreset,\n `${currentPath}[${subIndex}]`,\n );\n warnings = warnings.concat(subValidation.warnings);\n errors = errors.concat(subValidation.errors);\n }\n }\n if (isRegexOrGlobOption(key)) {\n errors.push(\n ...regexOrGlobValidator.check({\n val,\n currentPath,\n }),\n );\n }\n if (key === 'extends') {\n for (const subval of val) {\n if (is.string(subval)) {\n if (\n parentName === 'packageRules' &&\n subval.startsWith('group:')\n ) {\n warnings.push({\n topic: 'Configuration Warning',\n message: `${currentPath}: you should not extend \"group:\" presets`,\n });\n }\n if (tzRe.test(subval)) {\n const [, timezone] = tzRe.exec(subval)!;\n const [validTimezone, errorMessage] =\n hasValidTimezone(timezone);\n if (!validTimezone) {\n errors.push({\n topic: 'Configuration Error',\n message: `${currentPath}: ${errorMessage}`,\n });\n }\n }\n } else {\n errors.push({\n topic: 'Configuration Warning',\n message: `${currentPath}: preset value is not a string`,\n });\n }\n }\n }\n\n const selectors = [\n 'matchFileNames',\n 'matchLanguages',\n 'matchCategories',\n 'matchBaseBranches',\n 'matchManagers',\n 'matchDatasources',\n 'matchDepTypes',\n 'matchDepNames',\n 'matchPackageNames',\n 'matchCurrentValue',\n 'matchCurrentVersion',\n 'matchSourceUrls',\n 'matchUpdateTypes',\n 'matchConfidence',\n 'matchCurrentAge',\n 'matchRepositories',\n 'matchNewValue',\n 'matchJsonata',\n ];\n if (key === 'packageRules') {\n for (const [subIndex, packageRule] of val.entries()) {\n if (is.object(packageRule)) {\n const resolvedRule = migrateConfig({\n packageRules: [\n await resolveConfigPresets(\n packageRule as RenovateConfig,\n config,\n ),\n ],\n }).migratedConfig.packageRules![0];\n errors.push(\n ...managerValidator.check({ resolvedRule, currentPath }),\n );\n warnings.push(\n ...matchBaseBranchesValidator.check({\n resolvedRule,\n currentPath: `${currentPath}[${subIndex}]`,\n baseBranches: config.baseBranches!,\n }),\n );\n const selectorLength = Object.keys(resolvedRule).filter(\n (ruleKey) => selectors.includes(ruleKey),\n ).length;\n if (!selectorLength) {\n const message = `${currentPath}[${subIndex}]: Each packageRule must contain at least one match* or exclude* selector. Rule: ${JSON.stringify(\n packageRule,\n )}`;\n errors.push({\n topic: 'Configuration Error',\n message,\n });\n }\n if (selectorLength === Object.keys(resolvedRule).length) {\n const message = `${currentPath}[${subIndex}]: Each packageRule must contain at least one non-match* or non-exclude* field. Rule: ${JSON.stringify(\n packageRule,\n )}`;\n warnings.push({\n topic: 'Configuration Error',\n message,\n });\n }\n // It's too late to apply any of these options once you already have updates determined\n const preLookupOptions = [\n 'allowedVersions',\n 'extractVersion',\n 'followTag',\n 'ignoreDeps',\n 'ignoreUnstable',\n 'rangeStrategy',\n 'registryUrls',\n 'respectLatest',\n 'rollbackPrs',\n 'separateMajorMinor',\n 'separateMinorPatch',\n 'separateMultipleMajor',\n 'separateMultipleMinor',\n 'versioning',\n ];\n if (is.nonEmptyArray(resolvedRule.matchUpdateTypes)) {\n for (const option of preLookupOptions) {\n if (resolvedRule[option] !== undefined) {\n const message = `${currentPath}[${subIndex}]: packageRules cannot combine both matchUpdateTypes and ${option}. Rule: ${JSON.stringify(\n packageRule,\n )}`;\n errors.push({\n topic: 'Configuration Error',\n message,\n });\n }\n }\n }\n } else {\n errors.push({\n topic: 'Configuration Error',\n message: `${currentPath} must contain JSON objects`,\n });\n }\n }\n }\n if (key === 'customManagers') {\n const allowedKeys = [\n 'customType',\n 'description',\n 'fileFormat',\n 'fileMatch',\n 'matchStrings',\n 'matchStringsStrategy',\n 'depNameTemplate',\n 'packageNameTemplate',\n 'datasourceTemplate',\n 'versioningTemplate',\n 'registryUrlTemplate',\n 'currentValueTemplate',\n 'extractVersionTemplate',\n 'autoReplaceStringTemplate',\n 'depTypeTemplate',\n ];\n for (const customManager of val as CustomManager[]) {\n if (\n Object.keys(customManager).some(\n (k) => !allowedKeys.includes(k),\n )\n ) {\n const disallowedKeys = Object.keys(customManager).filter(\n (k) => !allowedKeys.includes(k),\n );\n errors.push({\n topic: 'Configuration Error',\n message: `Custom Manager contains disallowed fields: ${disallowedKeys.join(\n ', ',\n )}`,\n });\n } else if (\n is.nonEmptyString(customManager.customType) &&\n isCustomManager(customManager.customType)\n ) {\n if (is.nonEmptyArray(customManager.fileMatch)) {\n switch (customManager.customType) {\n case 'regex':\n validateRegexManagerFields(\n customManager,\n currentPath,\n errors,\n );\n break;\n case 'jsonata':\n validateJSONataManagerFields(\n customManager,\n currentPath,\n errors,\n );\n break;\n }\n } else {\n errors.push({\n topic: 'Configuration Error',\n message: `Each Custom Manager must contain a non-empty fileMatch array`,\n });\n }\n } else {\n if (\n is.emptyString(customManager.customType) ||\n is.undefined(customManager.customType)\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `Each Custom Manager must contain a non-empty customType string`,\n });\n } else {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid customType: ${customManager.customType}. Key is not a custom manager`,\n });\n }\n }\n }\n }\n if (['matchPackageNames', 'matchDepNames'].includes(key)) {\n const startPattern = regEx(/!?\\//);\n const endPattern = regEx(/\\/g?i?$/);\n for (const pattern of val as string[]) {\n if (startPattern.test(pattern) && endPattern.test(pattern)) {\n try {\n // regEx isn't aware of our !/ prefix but can handle the suffix\n regEx(pattern.replace(startPattern, '/'));\n } catch {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid regExp for ${currentPath}: \\`${pattern}\\``,\n });\n }\n }\n }\n }\n if (key === 'fileMatch') {\n for (const fileMatch of val as string[]) {\n try {\n regEx(fileMatch);\n } catch {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid regExp for ${currentPath}: \\`${fileMatch}\\``,\n });\n }\n }\n }\n if (key === 'baseBranches') {\n for (const baseBranch of val as string[]) {\n if (\n isRegexMatch(baseBranch) &&\n !getRegexPredicate(baseBranch)\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid regExp for ${currentPath}: \\`${baseBranch}\\``,\n });\n }\n }\n }\n if (\n (selectors.includes(key) ||\n key === 'matchCurrentVersion' ||\n key === 'matchCurrentValue') &&\n // TODO: can be undefined ? #22198\n !rulesRe.test(parentPath!) && // Inside a packageRule\n (is.string(parentPath) || !isPreset) // top level in a preset\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `${currentPath}: ${key} should be inside a \\`packageRule\\` only`,\n });\n }\n } else {\n errors.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be a list (Array)`,\n });\n }\n } else if (type === 'string') {\n if (!is.string(val)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be a string`,\n });\n }\n } else if (\n type === 'object' &&\n currentPath !== 'compatibility' &&\n key !== 'constraints'\n ) {\n if (is.plainObject(val)) {\n if (key === 'registryAliases') {\n const res = validatePlainObject(val);\n if (res !== true) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${key}.${res}\\` configuration: value is not a string`,\n });\n }\n } else if (key === 'env') {\n const allowedEnvVars =\n configType === 'global'\n ? ((config.allowedEnv as string[]) ?? [])\n : GlobalConfig.get('allowedEnv', []);\n for (const [envVarName, envVarValue] of Object.entries(val)) {\n if (!is.string(envVarValue)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid env variable value: \\`${currentPath}.${envVarName}\\` must be a string.`,\n });\n }\n if (!matchRegexOrGlobList(envVarName, allowedEnvVars)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Env variable name \\`${envVarName}\\` is not allowed by this bot's \\`allowedEnv\\`.`,\n });\n }\n }\n } else if (key === 'statusCheckNames') {\n for (const [statusCheckKey, statusCheckValue] of Object.entries(\n val,\n )) {\n if (\n !allowedStatusCheckStrings.includes(\n statusCheckKey as StatusCheckKey,\n )\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${key}.${statusCheckKey}\\` configuration: key is not allowed.`,\n });\n }\n if (\n !(is.string(statusCheckValue) || null === statusCheckValue)\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${statusCheckKey}\\` configuration: status check is not a string.`,\n });\n continue;\n }\n }\n } else if (key === 'customDatasources') {\n const allowedKeys = [\n 'description',\n 'defaultRegistryUrlTemplate',\n 'format',\n 'transformTemplates',\n ];\n for (const [\n customDatasourceName,\n customDatasourceValue,\n ] of Object.entries(val)) {\n if (!is.plainObject(customDatasourceValue)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${customDatasourceName}\\` configuration: customDatasource is not an object`,\n });\n continue;\n }\n for (const [subKey, subValue] of Object.entries(\n customDatasourceValue,\n )) {\n if (!allowedKeys.includes(subKey)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${subKey}\\` configuration: key is not allowed`,\n });\n } else if (subKey === 'transformTemplates') {\n if (!is.array(subValue, is.string)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${subKey}\\` configuration: is not an array of string`,\n });\n }\n } else if (subKey === 'description') {\n if (\n !(is.string(subValue) || is.array(subValue, is.string))\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${subKey}\\` configuration: is not an array of strings`,\n });\n }\n } else if (!is.string(subValue)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${subKey}\\` configuration: is a string`,\n });\n }\n }\n }\n } else {\n const ignoredObjects = options\n .filter((option) => option.freeChoice)\n .map((option) => option.name);\n if (!ignoredObjects.includes(key)) {\n const subValidation = await validateConfig(\n configType,\n val,\n isPreset,\n currentPath,\n );\n warnings = warnings.concat(subValidation.warnings);\n errors = errors.concat(subValidation.errors);\n }\n }\n } else {\n errors.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be a json object`,\n });\n }\n }\n }\n }\n\n if (key === 'hostRules' && is.array(val)) {\n const allowedHeaders =\n configType === 'global'\n ? ((config.allowedHeaders as string[]) ?? [])\n : GlobalConfig.get('allowedHeaders', []);\n for (const rule of val as HostRule[]) {\n if (is.nonEmptyString(rule.matchHost)) {\n if (rule.matchHost.includes('://')) {\n if (parseUrl(rule.matchHost) === null) {\n errors.push({\n topic: 'Configuration Error',\n message: `hostRules matchHost \\`${rule.matchHost}\\` is not a valid URL.`,\n });\n }\n }\n } else if (is.emptyString(rule.matchHost)) {\n errors.push({\n topic: 'Configuration Error',\n message:\n 'Invalid value for hostRules matchHost. It cannot be an empty string.',\n });\n }\n\n if (!rule.headers) {\n continue;\n }\n for (const [header, value] of Object.entries(rule.headers)) {\n if (!is.string(value)) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid hostRules headers value configuration: header must be a string.`,\n });\n }\n if (!matchRegexOrGlobList(header, allowedHeaders)) {\n errors.push({\n topic: 'Configuration Error',\n message: `hostRules header \\`${header}\\` is not allowed by this bot's \\`allowedHeaders\\`.`,\n });\n }\n }\n }\n }\n\n if (key === 'matchJsonata' && is.array(val, is.string)) {\n for (const expression of val) {\n const res = getExpression(expression);\n if (res instanceof Error) {\n errors.push({\n topic: 'Configuration Error',\n message: `Invalid JSONata expression for ${currentPath}: ${res.message}`,\n });\n }\n }\n }\n }\n\n function sortAll(a: ValidationMessage, b: ValidationMessage): number {\n if (a.topic === b.topic) {\n return a.message > b.message ? 1 : -1;\n }\n return a.topic > b.topic ? 1 : -1;\n }\n\n errors.sort(sortAll);\n warnings.sort(sortAll);\n return { errors, warnings };\n}\n\n/**\n * Basic validation for global config options\n */\nasync function validateGlobalConfig(\n key: string,\n val: unknown,\n type: string,\n warnings: ValidationMessage[],\n errors: ValidationMessage[],\n currentPath: string | undefined,\n config: RenovateConfig,\n): Promise<void> {\n /* v8 ignore next 5: not testable yet */\n if (getDeprecationMessage(key)) {\n warnings.push({\n topic: 'Deprecation Warning',\n message: getDeprecationMessage(key)!,\n });\n }\n if (val !== null) {\n if (type === 'string') {\n if (is.string(val)) {\n if (\n key === 'onboardingConfigFileName' &&\n !configFileNames.includes(val)\n ) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value \\`${val}\\` for \\`${currentPath}\\`. The allowed values are ${configFileNames.join(', ')}.`,\n });\n } else if (\n key === 'repositoryCache' &&\n !['enabled', 'disabled', 'reset'].includes(val)\n ) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value \\`${val}\\` for \\`${currentPath}\\`. The allowed values are ${['enabled', 'disabled', 'reset'].join(', ')}.`,\n });\n } else if (\n key === 'dryRun' &&\n !['extract', 'lookup', 'full'].includes(val)\n ) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value \\`${val}\\` for \\`${currentPath}\\`. The allowed values are ${['extract', 'lookup', 'full'].join(', ')}.`,\n });\n } else if (\n key === 'binarySource' &&\n !['docker', 'global', 'install', 'hermit'].includes(val)\n ) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value \\`${val}\\` for \\`${currentPath}\\`. The allowed values are ${['docker', 'global', 'install', 'hermit'].join(', ')}.`,\n });\n } else if (\n key === 'requireConfig' &&\n !['required', 'optional', 'ignored'].includes(val)\n ) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value \\`${val}\\` for \\`${currentPath}\\`. The allowed values are ${['required', 'optional', 'ignored'].join(', ')}.`,\n });\n } else if (\n key === 'gitUrl' &&\n !['default', 'ssh', 'endpoint'].includes(val)\n ) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value \\`${val}\\` for \\`${currentPath}\\`. The allowed values are ${['default', 'ssh', 'endpoint'].join(', ')}.`,\n });\n }\n\n if (\n key === 'reportType' &&\n ['s3', 'file'].includes(val) &&\n !is.string(config.reportPath)\n ) {\n errors.push({\n topic: 'Configuration Error',\n message: `reportType '${val}' requires a configured reportPath`,\n });\n }\n } else {\n warnings.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be a string.`,\n });\n }\n } else if (type === 'integer') {\n const allowsNegative = optionAllowsNegativeIntegers.has(key);\n warnings.push(...validateNumber(key, val, allowsNegative, currentPath));\n } else if (type === 'boolean') {\n if (val !== true && val !== false) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be a boolean. Found: ${JSON.stringify(\n val,\n )} (${typeof val}).`,\n });\n }\n } else if (type === 'array') {\n if (is.array(val)) {\n if (isRegexOrGlobOption(key)) {\n warnings.push(\n ...regexOrGlobValidator.check({\n val,\n currentPath: currentPath!,\n }),\n );\n }\n if (key === 'gitNoVerify') {\n const allowedValues = ['commit', 'push'];\n for (const value of val as string[]) {\n if (!allowedValues.includes(value)) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value for \\`${currentPath}\\`. The allowed values are ${allowedValues.join(', ')}.`,\n });\n }\n }\n }\n if (key === 'mergeConfidenceDatasources') {\n const allowedValues = supportedDatasources;\n for (const value of val as string[]) {\n if (!allowedValues.includes(value)) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid value \\`${value}\\` for \\`${currentPath}\\`. The allowed values are ${allowedValues.join(', ')}.`,\n });\n }\n }\n }\n } else {\n warnings.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be a list (Array).`,\n });\n }\n } else if (type === 'object') {\n if (is.plainObject(val)) {\n if (key === 'onboardingConfig') {\n const subValidation = await validateConfig('repo', val);\n for (const warning of subValidation.warnings.concat(\n subValidation.errors,\n )) {\n warnings.push(warning);\n }\n } else if (key === 'force') {\n const subValidation = await validateConfig('global', val);\n for (const warning of subValidation.warnings.concat(\n subValidation.errors,\n )) {\n warnings.push(warning);\n }\n } else if (key === 'cacheTtlOverride') {\n for (const [subKey, subValue] of Object.entries(val)) {\n const allowsNegative = optionAllowsNegativeIntegers.has(key);\n warnings.push(\n ...validateNumber(\n key,\n subValue,\n allowsNegative,\n currentPath,\n subKey,\n ),\n );\n }\n } else {\n const res = validatePlainObject(val);\n if (res !== true) {\n warnings.push({\n topic: 'Configuration Error',\n message: `Invalid \\`${currentPath}.${res}\\` configuration: value must be a string.`,\n });\n }\n }\n } else {\n warnings.push({\n topic: 'Configuration Error',\n message: `Configuration option \\`${currentPath}\\` should be a JSON object.`,\n });\n }\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/bundler/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport {\n BUNDLER_INVALID_CREDENTIALS,\n TEMPORARY_ERROR,\n} from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport type { HostRule } from '../../../types';\nimport * as memCache from '../../../util/cache/memory';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions } from '../../../util/exec/types';\nimport {\n ensureCacheDir,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport { newlineRegex, regEx } from '../../../util/regex';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types';\nimport {\n getBundlerConstraint,\n getLockFilePath,\n getRubyConstraint,\n} from './common';\nimport {\n findAllAuthenticatable,\n getAuthenticationHeaderValue,\n} from './host-rules';\n\nconst hostConfigVariablePrefix = 'BUNDLE_';\n\nfunction buildBundleHostVariable(hostRule: HostRule): Record<string, string> {\n // istanbul ignore if: doesn't happen in practice\n if (!hostRule.resolvedHost) {\n return {};\n }\n const varName = hostConfigVariablePrefix.concat(\n hostRule.resolvedHost\n .toUpperCase()\n .split('.')\n .join('__')\n .split('-')\n .join('___'),\n );\n return {\n [varName]: `${getAuthenticationHeaderValue(hostRule)}`,\n };\n}\n\nconst resolvedPkgRegex = regEx(\n /(?<pkg>\\S+)(?:\\s*\\([^)]+\\)\\s*)? was resolved to/,\n);\n\nfunction getResolvedPackages(input: string): string[] {\n const lines = input.split(newlineRegex);\n const result: string[] = [];\n for (const line of lines) {\n const resolveMatchGroups = line.match(resolvedPkgRegex)?.groups;\n if (resolveMatchGroups) {\n const { pkg } = resolveMatchGroups;\n result.push(pkg);\n }\n }\n\n return [...new Set(result)];\n}\n\nexport async function updateArtifacts(\n updateArtifact: UpdateArtifact,\n recursionLimit = 10,\n): Promise<UpdateArtifactsResult[] | null> {\n const { packageFileName, updatedDeps, newPackageFileContent, config } =\n updateArtifact;\n logger.debug(`bundler.updateArtifacts(${packageFileName})`);\n const existingError = memCache.get<string>('bundlerArtifactsError');\n // istanbul ignore if\n if (existingError) {\n logger.debug('Aborting Bundler artifacts due to previous failed attempt');\n throw new Error(existingError);\n }\n const lockFileName = await getLockFilePath(packageFileName);\n const existingLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!existingLockFileContent) {\n logger.debug('No Gemfile.lock found');\n return null;\n }\n\n const updatedDepNames = updatedDeps\n .map(({ depName }) => depName)\n .filter(is.nonEmptyStringAndNotWhitespace);\n\n try {\n await writeLocalFile(packageFileName, newPackageFileContent);\n\n const commands: string[] = [];\n\n if (config.isLockFileMaintenance) {\n commands.push('bundler lock --update');\n } else {\n const bundlerUpgraded = updatedDeps\n .map((dep) => dep.depName)\n .includes('bundler');\n if (bundlerUpgraded) {\n commands.push('bundler lock --update --bundler');\n }\n\n const updateTypes = {\n patch: '--patch ',\n minor: '--minor ',\n major: '',\n };\n for (const [updateType, updateArg] of Object.entries(updateTypes)) {\n const deps = updatedDeps\n .filter((dep) => (dep.updateType ?? 'major') === updateType)\n .map((dep) => dep.depName)\n .filter(is.string)\n .filter((dep) => dep !== 'ruby' && dep !== 'bundler');\n let additionalArgs = '';\n if (config.postUpdateOptions?.includes('bundlerConservative')) {\n additionalArgs = '--conservative ';\n }\n if (deps.length) {\n const cmd = `bundler lock ${updateArg}${additionalArgs}--update ${deps\n .map(quote)\n .join(' ')}`;\n commands.push(cmd);\n }\n }\n\n const rubyUpgraded = updatedDeps\n .map((dep) => dep.depName)\n .includes('ruby');\n if (rubyUpgraded) {\n commands.push('bundler lock');\n }\n }\n\n const bundlerHostRules = findAllAuthenticatable({\n hostType: 'rubygems',\n });\n\n const bundlerHostRulesVariables = bundlerHostRules.reduce(\n (variables, hostRule) => ({\n ...variables,\n ...buildBundleHostVariable(hostRule),\n }),\n {} as Record<string, string>,\n );\n\n const bundler = getBundlerConstraint(\n updateArtifact,\n existingLockFileContent,\n );\n const preCommands = ['ruby --version'];\n\n const execOptions: ExecOptions = {\n cwdFile: lockFileName,\n userConfiguredEnv: config.env,\n extraEnv: {\n ...bundlerHostRulesVariables,\n GEM_HOME: await ensureCacheDir('bundler'),\n },\n docker: {},\n toolConstraints: [\n {\n toolName: 'ruby',\n constraint: await getRubyConstraint(updateArtifact),\n },\n {\n toolName: 'bundler',\n constraint: bundler,\n },\n ],\n preCommands,\n };\n await exec(commands, execOptions);\n\n const status = await getRepoStatus();\n if (!status.modified.includes(lockFileName)) {\n return null;\n }\n logger.debug('Returning updated Gemfile.lock');\n const lockFileContent = await readLocalFile(lockFileName);\n return [\n {\n file: {\n type: 'addition',\n path: lockFileName,\n contents: lockFileContent,\n },\n },\n ];\n } catch (err) {\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n const output = `${String(err.stdout)}\\n${String(err.stderr)}`;\n if (\n err.message.includes('fatal: Could not parse object') ||\n output.includes('but that version could not be found')\n ) {\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: output,\n },\n },\n ];\n }\n if (\n err.stdout?.includes('Please supply credentials for this source') ||\n err.stderr?.includes('Authentication is required') ||\n err.stderr?.includes(\n 'Please make sure you have the correct access rights',\n )\n ) {\n logger.debug(\n { err },\n 'Gemfile.lock update failed due to missing credentials - skipping branch',\n );\n // Do not generate these PRs because we don't yet support Bundler authentication\n memCache.set('bundlerArtifactsError', BUNDLER_INVALID_CREDENTIALS);\n throw new Error(BUNDLER_INVALID_CREDENTIALS);\n }\n const resolveMatches: string[] = getResolvedPackages(output).filter(\n (depName) => !updatedDepNames.includes(depName),\n );\n if (\n recursionLimit > 0 &&\n resolveMatches.length &&\n !config.isLockFileMaintenance\n ) {\n logger.debug(\n { resolveMatches, updatedDeps },\n 'Found new resolve matches - reattempting recursively',\n );\n const newUpdatedDeps = [\n ...new Set([\n ...updatedDeps,\n ...resolveMatches.map((match) => ({ depName: match })),\n ]),\n ];\n return updateArtifacts(\n {\n packageFileName,\n updatedDeps: newUpdatedDeps,\n newPackageFileContent,\n config,\n },\n recursionLimit - 1,\n );\n }\n\n logger.info({ err }, 'Gemfile.lock update failed due to an unknown reason');\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: `${String(err.stdout)}\\n${String(err.stderr)}`,\n },\n },\n ];\n }\n}\n"]}
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/bundler/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport {\n BUNDLER_INVALID_CREDENTIALS,\n TEMPORARY_ERROR,\n} from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport type { HostRule } from '../../../types';\nimport * as memCache from '../../../util/cache/memory';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions } from '../../../util/exec/types';\nimport {\n ensureCacheDir,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport { newlineRegex, regEx } from '../../../util/regex';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types';\nimport {\n getBundlerConstraint,\n getLockFilePath,\n getRubyConstraint,\n} from './common';\nimport {\n findAllAuthenticatable,\n getAuthenticationHeaderValue,\n} from './host-rules';\n\nconst hostConfigVariablePrefix = 'BUNDLE_';\n\nfunction buildBundleHostVariable(hostRule: HostRule): Record<string, string> {\n // istanbul ignore if: doesn't happen in practice\n if (!hostRule.resolvedHost) {\n return {};\n }\n const varName = hostConfigVariablePrefix.concat(\n hostRule.resolvedHost\n .toUpperCase()\n .split('.')\n .join('__')\n .split('-')\n .join('___'),\n );\n return {\n [varName]: `${getAuthenticationHeaderValue(hostRule)}`,\n };\n}\n\nconst resolvedPkgRegex = regEx(\n /(?<pkg>\\S+)(?:\\s*\\([^)]+\\)\\s*)? was resolved to/,\n);\n\nfunction getResolvedPackages(input: string): string[] {\n const lines = input.split(newlineRegex);\n const result: string[] = [];\n for (const line of lines) {\n const resolveMatchGroups = line.match(resolvedPkgRegex)?.groups;\n if (resolveMatchGroups) {\n const { pkg } = resolveMatchGroups;\n result.push(pkg);\n }\n }\n\n return [...new Set(result)];\n}\n\nexport async function updateArtifacts(\n updateArtifact: UpdateArtifact,\n recursionLimit = 10,\n): Promise<UpdateArtifactsResult[] | null> {\n const { packageFileName, updatedDeps, newPackageFileContent, config } =\n updateArtifact;\n logger.debug(`bundler.updateArtifacts(${packageFileName})`);\n const existingError = memCache.get<string>('bundlerArtifactsError');\n // istanbul ignore if\n if (existingError) {\n logger.debug('Aborting Bundler artifacts due to previous failed attempt');\n throw new Error(existingError);\n }\n const lockFileName = await getLockFilePath(packageFileName);\n const existingLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!existingLockFileContent) {\n logger.debug('No Gemfile.lock found');\n return null;\n }\n\n const updatedDepNames: string[] = updatedDeps\n .map(({ depName }) => depName)\n .filter(is.nonEmptyStringAndNotWhitespace);\n\n try {\n await writeLocalFile(packageFileName, newPackageFileContent);\n\n const commands: string[] = [];\n\n if (config.isLockFileMaintenance) {\n commands.push('bundler lock --update');\n } else {\n const bundlerUpgraded = updatedDeps\n .map((dep) => dep.depName)\n .includes('bundler');\n if (bundlerUpgraded) {\n commands.push('bundler lock --update --bundler');\n }\n\n const updateTypes = {\n patch: '--patch ',\n minor: '--minor ',\n major: '',\n };\n for (const [updateType, updateArg] of Object.entries(updateTypes)) {\n const deps = updatedDeps\n .filter((dep) => (dep.updateType ?? 'major') === updateType)\n .map((dep) => dep.depName)\n .filter(is.string)\n .filter((dep) => dep !== 'ruby' && dep !== 'bundler');\n let additionalArgs = '';\n if (config.postUpdateOptions?.includes('bundlerConservative')) {\n additionalArgs = '--conservative ';\n }\n if (deps.length) {\n const cmd = `bundler lock ${updateArg}${additionalArgs}--update ${deps\n .map(quote)\n .join(' ')}`;\n commands.push(cmd);\n }\n }\n\n const rubyUpgraded = updatedDeps\n .map((dep) => dep.depName)\n .includes('ruby');\n if (rubyUpgraded) {\n commands.push('bundler lock');\n }\n }\n\n const bundlerHostRules = findAllAuthenticatable({\n hostType: 'rubygems',\n });\n\n const bundlerHostRulesVariables = bundlerHostRules.reduce(\n (variables, hostRule) => ({\n ...variables,\n ...buildBundleHostVariable(hostRule),\n }),\n {} as Record<string, string>,\n );\n\n const bundler = getBundlerConstraint(\n updateArtifact,\n existingLockFileContent,\n );\n const preCommands = ['ruby --version'];\n\n const execOptions: ExecOptions = {\n cwdFile: lockFileName,\n userConfiguredEnv: config.env,\n extraEnv: {\n ...bundlerHostRulesVariables,\n GEM_HOME: await ensureCacheDir('bundler'),\n },\n docker: {},\n toolConstraints: [\n {\n toolName: 'ruby',\n constraint: await getRubyConstraint(updateArtifact),\n },\n {\n toolName: 'bundler',\n constraint: bundler,\n },\n ],\n preCommands,\n };\n await exec(commands, execOptions);\n\n const status = await getRepoStatus();\n if (!status.modified.includes(lockFileName)) {\n return null;\n }\n logger.debug('Returning updated Gemfile.lock');\n const lockFileContent = await readLocalFile(lockFileName);\n return [\n {\n file: {\n type: 'addition',\n path: lockFileName,\n contents: lockFileContent,\n },\n },\n ];\n } catch (err) {\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n const output = `${String(err.stdout)}\\n${String(err.stderr)}`;\n if (\n err.message.includes('fatal: Could not parse object') ||\n output.includes('but that version could not be found')\n ) {\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: output,\n },\n },\n ];\n }\n if (\n err.stdout?.includes('Please supply credentials for this source') ||\n err.stderr?.includes('Authentication is required') ||\n err.stderr?.includes(\n 'Please make sure you have the correct access rights',\n )\n ) {\n logger.debug(\n { err },\n 'Gemfile.lock update failed due to missing credentials - skipping branch',\n );\n // Do not generate these PRs because we don't yet support Bundler authentication\n memCache.set('bundlerArtifactsError', BUNDLER_INVALID_CREDENTIALS);\n throw new Error(BUNDLER_INVALID_CREDENTIALS);\n }\n const resolveMatches: string[] = getResolvedPackages(output).filter(\n (depName) => !updatedDepNames.includes(depName),\n );\n if (\n recursionLimit > 0 &&\n resolveMatches.length &&\n !config.isLockFileMaintenance\n ) {\n logger.debug(\n { resolveMatches, updatedDeps },\n 'Found new resolve matches - reattempting recursively',\n );\n const newUpdatedDeps = [\n ...new Set([\n ...updatedDeps,\n ...resolveMatches.map((match) => ({ depName: match })),\n ]),\n ];\n return updateArtifacts(\n {\n packageFileName,\n updatedDeps: newUpdatedDeps,\n newPackageFileContent,\n config,\n },\n recursionLimit - 1,\n );\n }\n\n logger.info({ err }, 'Gemfile.lock update failed due to an unknown reason');\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: `${String(err.stdout)}\\n${String(err.stderr)}`,\n },\n },\n ];\n }\n}\n"]}
@@ -6,7 +6,9 @@ exports.getPhpConstraint = getPhpConstraint;
6
6
  exports.requireComposerDependencyInstallation = requireComposerDependencyInstallation;
7
7
  exports.extractConstraints = extractConstraints;
8
8
  exports.isArtifactAuthEnabled = isArtifactAuthEnabled;
9
+ const tslib_1 = require("tslib");
9
10
  // TODO: types (#22198)
11
+ const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
10
12
  const shlex_1 = require("shlex");
11
13
  const global_1 = require("../../../config/global");
12
14
  const logger_1 = require("../../../logger");
@@ -18,12 +20,13 @@ function getComposerArguments(config, toolConstraint) {
18
20
  let args = '';
19
21
  if (config.composerIgnorePlatformReqs) {
20
22
  if (config.composerIgnorePlatformReqs.length === 0) {
21
- // TODO: toolConstraint.constraint can be null or undefined? (#22198)
22
- const major = composer_1.api.getMajor(toolConstraint.constraint);
23
- const minor = composer_1.api.getMinor(toolConstraint.constraint);
24
- args += composer_1.api.matches(`${major}.${minor}`, '^2.2')
25
- ? " --ignore-platform-req='ext-*' --ignore-platform-req='lib-*'"
26
- : ' --ignore-platform-reqs';
23
+ if (is_1.default.string(toolConstraint.constraint) &&
24
+ composer_1.api.intersects(toolConstraint.constraint, '^2.2')) {
25
+ args += " --ignore-platform-req='ext-*' --ignore-platform-req='lib-*'";
26
+ }
27
+ else {
28
+ args += ' --ignore-platform-reqs';
29
+ }
27
30
  }
28
31
  else {
29
32
  config.composerIgnorePlatformReqs.forEach((req) => {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../lib/modules/manager/composer/utils.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO: types (#22198)\nimport { quote } from 'shlex';\nimport { GlobalConfig } from '../../../config/global';\nimport { logger } from '../../../logger';\nimport type { CombinedHostRule } from '../../../types';\nimport type { ToolConstraint } from '../../../util/exec/types';\nimport { coerceNumber } from '../../../util/number';\nimport { api, id as composerVersioningId } from '../../versioning/composer';\nimport type { UpdateArtifactsConfig } from '../types';\nimport type { Lockfile, PackageFile } from './schema';\n\nexport { composerVersioningId };\n\nconst depRequireInstall = new Set(['symfony/flex']);\n\nexport function getComposerArguments(\n config: UpdateArtifactsConfig,\n toolConstraint: ToolConstraint,\n): string {\n let args = '';\n\n if (config.composerIgnorePlatformReqs) {\n if (config.composerIgnorePlatformReqs.length === 0) {\n // TODO: toolConstraint.constraint can be null or undefined? (#22198)\n const major = api.getMajor(toolConstraint.constraint!);\n const minor = api.getMinor(toolConstraint.constraint!);\n args += api.matches(`${major}.${minor}`, '^2.2')\n ? \" --ignore-platform-req='ext-*' --ignore-platform-req='lib-*'\"\n : ' --ignore-platform-reqs';\n } else {\n config.composerIgnorePlatformReqs.forEach((req) => {\n args += ' --ignore-platform-req ' + quote(req);\n });\n }\n }\n\n args += ' --no-ansi --no-interaction';\n if (!GlobalConfig.get('allowScripts') || config.ignoreScripts) {\n args += ' --no-scripts --no-autoloader';\n }\n\n if (!GlobalConfig.get('allowPlugins') || config.ignorePlugins) {\n args += ' --no-plugins';\n }\n\n return args;\n}\n\nexport function getPhpConstraint(\n constraints: Record<string, string>,\n): string | null {\n const { php } = constraints;\n\n if (php) {\n logger.debug('Using php constraint from config');\n return php;\n }\n\n return null;\n}\n\nexport function requireComposerDependencyInstallation({\n packages,\n packagesDev,\n}: Lockfile): boolean {\n return (\n packages.some((p) => depRequireInstall.has(p.name)) === true ||\n packagesDev.some((p) => depRequireInstall.has(p.name)) === true\n );\n}\n\nexport function extractConstraints(\n { config, require, requireDev }: PackageFile,\n { pluginApiVersion }: Lockfile,\n): Record<string, string> {\n const res: Record<string, string> = { composer: '1.*' };\n\n // extract php\n const phpVersion = config?.platform.php;\n if (phpVersion) {\n const major = api.getMajor(phpVersion);\n const minor = coerceNumber(api.getMinor(phpVersion));\n const patch = coerceNumber(api.getPatch(phpVersion));\n res.php = `<=${major}.${minor}.${patch}`;\n } else if (require.php) {\n res.php = require.php;\n }\n\n // extract direct composer dependency\n if (require['composer/composer']) {\n res.composer = require['composer/composer'];\n } else if (requireDev['composer/composer']) {\n res.composer = requireDev['composer/composer'];\n }\n // composer platform package\n else if (require.composer) {\n res.composer = require.composer;\n } else if (requireDev.composer) {\n res.composer = requireDev.composer;\n }\n // check last used composer version\n else if (pluginApiVersion) {\n const major = api.getMajor(pluginApiVersion);\n const minor = api.getMinor(pluginApiVersion);\n res.composer = `^${major}.${minor}`;\n }\n // check composer api dependency\n else if (require['composer-runtime-api']) {\n const major = api.getMajor(require['composer-runtime-api']);\n const minor = api.getMinor(require['composer-runtime-api']);\n res.composer = `^${major}.${minor}`;\n }\n return res;\n}\n\nexport function isArtifactAuthEnabled(rule: CombinedHostRule): boolean {\n return !rule.artifactAuth || rule.artifactAuth.includes('composer');\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../lib/modules/manager/composer/utils.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO: types (#22198)\nimport is from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport { GlobalConfig } from '../../../config/global';\nimport { logger } from '../../../logger';\nimport type { CombinedHostRule } from '../../../types';\nimport type { ToolConstraint } from '../../../util/exec/types';\nimport { coerceNumber } from '../../../util/number';\nimport { api, id as composerVersioningId } from '../../versioning/composer';\nimport type { UpdateArtifactsConfig } from '../types';\nimport type { Lockfile, PackageFile } from './schema';\n\nexport { composerVersioningId };\n\nconst depRequireInstall = new Set(['symfony/flex']);\n\nexport function getComposerArguments(\n config: UpdateArtifactsConfig,\n toolConstraint: ToolConstraint,\n): string {\n let args = '';\n\n if (config.composerIgnorePlatformReqs) {\n if (config.composerIgnorePlatformReqs.length === 0) {\n if (\n is.string(toolConstraint.constraint) &&\n api.intersects!(toolConstraint.constraint, '^2.2')\n ) {\n args += \" --ignore-platform-req='ext-*' --ignore-platform-req='lib-*'\";\n } else {\n args += ' --ignore-platform-reqs';\n }\n } else {\n config.composerIgnorePlatformReqs.forEach((req) => {\n args += ' --ignore-platform-req ' + quote(req);\n });\n }\n }\n\n args += ' --no-ansi --no-interaction';\n if (!GlobalConfig.get('allowScripts') || config.ignoreScripts) {\n args += ' --no-scripts --no-autoloader';\n }\n\n if (!GlobalConfig.get('allowPlugins') || config.ignorePlugins) {\n args += ' --no-plugins';\n }\n\n return args;\n}\n\nexport function getPhpConstraint(\n constraints: Record<string, string>,\n): string | null {\n const { php } = constraints;\n\n if (php) {\n logger.debug('Using php constraint from config');\n return php;\n }\n\n return null;\n}\n\nexport function requireComposerDependencyInstallation({\n packages,\n packagesDev,\n}: Lockfile): boolean {\n return (\n packages.some((p) => depRequireInstall.has(p.name)) === true ||\n packagesDev.some((p) => depRequireInstall.has(p.name)) === true\n );\n}\n\nexport function extractConstraints(\n { config, require, requireDev }: PackageFile,\n { pluginApiVersion }: Lockfile,\n): Record<string, string> {\n const res: Record<string, string> = { composer: '1.*' };\n\n // extract php\n const phpVersion = config?.platform.php;\n if (phpVersion) {\n const major = api.getMajor(phpVersion);\n const minor = coerceNumber(api.getMinor(phpVersion));\n const patch = coerceNumber(api.getPatch(phpVersion));\n res.php = `<=${major}.${minor}.${patch}`;\n } else if (require.php) {\n res.php = require.php;\n }\n\n // extract direct composer dependency\n if (require['composer/composer']) {\n res.composer = require['composer/composer'];\n } else if (requireDev['composer/composer']) {\n res.composer = requireDev['composer/composer'];\n }\n // composer platform package\n else if (require.composer) {\n res.composer = require.composer;\n } else if (requireDev.composer) {\n res.composer = requireDev.composer;\n }\n // check last used composer version\n else if (pluginApiVersion) {\n const major = api.getMajor(pluginApiVersion);\n const minor = api.getMinor(pluginApiVersion);\n res.composer = `^${major}.${minor}`;\n }\n // check composer api dependency\n else if (require['composer-runtime-api']) {\n const major = api.getMajor(require['composer-runtime-api']);\n const minor = api.getMinor(require['composer-runtime-api']);\n res.composer = `^${major}.${minor}`;\n }\n return res;\n}\n\nexport function isArtifactAuthEnabled(rule: CombinedHostRule): boolean {\n return !rule.artifactAuth || rule.artifactAuth.includes('composer');\n}\n"]}
@@ -26,7 +26,7 @@ exports.hashMap.set('cdnurl', '47cca9f24b9b403d5406608d2e4a35ab35234c8726062f541
26
26
  exports.hashMap.set('circleci', '484389d287082ed41f8d8b763197c78af8e3513fa64f98122d92b821775b6d20');
27
27
  exports.hashMap.set('cloudbuild', '03dff1a999971305efd975f99f652433dd7d1d4aab5b21b78961dea525267310');
28
28
  exports.hashMap.set('cocoapods', '51db6584368d13c23d5623de360e07d5be361ee6b417742785943d03ed7c724a');
29
- exports.hashMap.set('composer', '71b3988ead0b94aad55dd90d3bb215f0b294b197c3c87f7a97b530525a24537f');
29
+ exports.hashMap.set('composer', '3e6b05e855dbad758072826d3669442b95a4f8458d35453b30e41d2667e64540');
30
30
  exports.hashMap.set('conan', '9db48a893bdd3cd21d2dc080fef0c2eb61976df1f43466f48435432253584daf');
31
31
  exports.hashMap.set('copier', 'b7be1de98f4616163b81f047f5c943690d19e7e6db787f8b63dd1c398b6bb6ae');
32
32
  exports.hashMap.set('cpanfile', '9b354db9666eee2485b27e44a6e61eaadc86ec2f2c6af9bb7bbc9fab54f31642');
@@ -46,7 +46,7 @@ exports.hashMap.set('gitlabci', 'a6b9faa686756f3c5d3d515b53afdbbdde2831e38d65c5b
46
46
  exports.hashMap.set('gitlabci-include', '997a736793457d4ec62545d285b582736d79de6e0efce2c4c58a18efe9fc4782');
47
47
  exports.hashMap.set('glasskube', 'fc313573e00f776e3d595acf7a69f16a7736ad52f2eef745bcd9da32f9781dbf');
48
48
  exports.hashMap.set('gleam', '0d350c63afeb65b9ede88108121b03e21c00662e272b7acabbcfeee9d3f09977');
49
- exports.hashMap.set('gomod', 'e26be1b760314a8b379fb0b0130e84d1a33e64b2fd21e7e50d9a1101bbe7ff08');
49
+ exports.hashMap.set('gomod', 'dc7be34db7598612157401e5850ccd0bef074244541c56b2fae282d4c6ca6176');
50
50
  exports.hashMap.set('gradle', 'eb6fcdbc27c975dcf925b6e3195fafcf57d304e3e0a0bf16bb2094bc8cf6fd16');
51
51
  exports.hashMap.set('gradle-wrapper', 'a5c53f194436487370f7ff2423c3d8e68825c6ee9138b2e4caffcc88cdc0068d');
52
52
  exports.hashMap.set('haskell-cabal', 'a2bf118238529952d0f2f352112dfbc86fb5533ef819625161a130f39c8ca713');
@@ -1 +1 @@
1
- {"version":3,"file":"fingerprint.generated.js","sourceRoot":"","sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"names":[],"mappings":"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","sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','82b5ae4c50286abb2a1bb298be035f5124c55f4516a691db16bacee23b6571ad');\nhashMap.set('ansible-galaxy','931341f8f942cdb91352173c3dc2069bd2e0e295b822a1e415983ae21da8c79e');\nhashMap.set('argocd','9faa5dc34541f099823785d2590b43a433350ac5abdd11b89be71e123c67d9e5');\nhashMap.set('asdf','be1913ee9260b861edb04ca359c45c5aa78fd0ded147150c5395b78a5e488775');\nhashMap.set('azure-pipelines','4a57ee599aa5432cfb3de657df1e9eafdd6d6ddebb8678613d56360b8a1de970');\nhashMap.set('batect','523e8d7a309b4814a02819371313b2dac3764eab64cabfaf1d58b6e89de4ce43');\nhashMap.set('batect-wrapper','81efd8400e445894e64b9352cf175736085a15d21967455f046b4a60b56a9c92');\nhashMap.set('bazel','64f8e1f960739c9e908737133a4fd697a511d40c5ab8cdc2d13766b7513c0d4a');\nhashMap.set('bazel-module','fce90be23ab19f429215597f2c36d41fb888c04e395946680dea0e93474335f9');\nhashMap.set('bazelisk','6fbef61d534724ff259ea6e4fc1cd0a3d5a46d740c375128fa59b225daddd39f');\nhashMap.set('bicep','fbbd74998411012cfba829526701109d1fc184ade0cb11a28e4ca2956174b0f1');\nhashMap.set('bitbucket-pipelines','1ffc62c9948db58cf9dd63f2f15382fc705859f76712483b0012ea6ebba5229a');\nhashMap.set('bitrise','d18d2dcd356e19c4cd94912511a88636198c23b64e54f31da273be11044970cf');\nhashMap.set('buildkite','ac713ce38da057ff3ceb08d092291356dfc74f5b33b75f010bb9db1a211439c0');\nhashMap.set('buildpacks','cc8bbe937416a012df36a5c7ab01ae3cdedbed03615549bbe9f0f27fa40a150b');\nhashMap.set('bun','4e58773a8ea03fc62b77d91a66f8287a66e3c6a20e83b1224f5f06f52296aa30');\nhashMap.set('bun-version','49194d7fcb6b7bdd7e7a1264f71532bb2be8142d48478bf74716f7a9d4b306b9');\nhashMap.set('bundler','42a824a73cacedd41f251e6f69b03473b43e1ebf2a95a01812c5f1fc05e4da78');\nhashMap.set('cake','4f42bf5e1202986d0f0b0bf906122c1b7d7630e4167903abaab378af4c539bd0');\nhashMap.set('cargo','c8939694d36bf441406292b60deac3bbe0589a5fbc8b8000910dd2ca796d6fbd');\nhashMap.set('cdnurl','47cca9f24b9b403d5406608d2e4a35ab35234c8726062f5410e88d4e31c90172');\nhashMap.set('circleci','484389d287082ed41f8d8b763197c78af8e3513fa64f98122d92b821775b6d20');\nhashMap.set('cloudbuild','03dff1a999971305efd975f99f652433dd7d1d4aab5b21b78961dea525267310');\nhashMap.set('cocoapods','51db6584368d13c23d5623de360e07d5be361ee6b417742785943d03ed7c724a');\nhashMap.set('composer','71b3988ead0b94aad55dd90d3bb215f0b294b197c3c87f7a97b530525a24537f');\nhashMap.set('conan','9db48a893bdd3cd21d2dc080fef0c2eb61976df1f43466f48435432253584daf');\nhashMap.set('copier','b7be1de98f4616163b81f047f5c943690d19e7e6db787f8b63dd1c398b6bb6ae');\nhashMap.set('cpanfile','9b354db9666eee2485b27e44a6e61eaadc86ec2f2c6af9bb7bbc9fab54f31642');\nhashMap.set('crossplane','c0873b443836a9dd12a61cecef4da56dfc6c6af446af58d823747c1e72e4fd0b');\nhashMap.set('deps-edn','ad88e1a2190140795c6ae873178c1307e3ece258bc4d24f4c7a42cb8ccaea662');\nhashMap.set('devbox','2725cffa81c0a5f1efd88d358c147c61d73891bd1a6573564757987d2f032825');\nhashMap.set('devcontainer','4fc86c93667d4215e645b2048f1e98c547a744e1b3a65bc14d8732d512404659');\nhashMap.set('docker-compose','3ec6aa79e6fa44801a35cfe1551b7b067ff9125f431928c404bba6ac7daa6e0a');\nhashMap.set('dockerfile','91c229d3c9049411fb2ddc1469ed5625b11045483c740ab0265721bcc68f47de');\nhashMap.set('droneci','6466e5192f59e9b59113b51e3f83921860002b829befe99b141f9173fae41dc9');\nhashMap.set('fleet','7c088a2ee643cb038f4fdcdeb114a70284c1382fbdb73f55effd13b5967e3867');\nhashMap.set('flux','c16d154fd8154e7418f22ea1fc5f66a03be2a52a7a1c5eb0b981587b20b21caa');\nhashMap.set('fvm','aa154dd5ffe3caced30713a9a55967360b7a0f35edd2fc06bd6f3e73c5c87570');\nhashMap.set('git-submodules','299b5e7e82aebedafae0588aa60345869f8e30bdf9feac8032dda11ad4b9c098');\nhashMap.set('github-actions','99987f82816dd23c2f53aa735125711e9daf1c68f86026518e40febfd209f1d2');\nhashMap.set('gitlabci','a6b9faa686756f3c5d3d515b53afdbbdde2831e38d65c5b4afc95c0c063a7709');\nhashMap.set('gitlabci-include','997a736793457d4ec62545d285b582736d79de6e0efce2c4c58a18efe9fc4782');\nhashMap.set('glasskube','fc313573e00f776e3d595acf7a69f16a7736ad52f2eef745bcd9da32f9781dbf');\nhashMap.set('gleam','0d350c63afeb65b9ede88108121b03e21c00662e272b7acabbcfeee9d3f09977');\nhashMap.set('gomod','e26be1b760314a8b379fb0b0130e84d1a33e64b2fd21e7e50d9a1101bbe7ff08');\nhashMap.set('gradle','eb6fcdbc27c975dcf925b6e3195fafcf57d304e3e0a0bf16bb2094bc8cf6fd16');\nhashMap.set('gradle-wrapper','a5c53f194436487370f7ff2423c3d8e68825c6ee9138b2e4caffcc88cdc0068d');\nhashMap.set('haskell-cabal','a2bf118238529952d0f2f352112dfbc86fb5533ef819625161a130f39c8ca713');\nhashMap.set('helm-requirements','e9c2551a4346d16a83256e05e742d96086cb7bf429bb3819dfb2e60d4949a644');\nhashMap.set('helm-values','533d938b56283692a63a9227181b5a3b7697755d8b900063a2e10b0a57de31b2');\nhashMap.set('helmfile','095b46f0566031cc29991d5f03fb1880f5fbc0e9e5b82169c08ea608f491629d');\nhashMap.set('helmsman','c6c6db7f82c7c983bd2f5fa909ffdf48e55296e413b728f75ff4ba05da8b9717');\nhashMap.set('helmv3','8c43b4f590015353fa4540cfb0500bf47c7f3cb9a3d80300a295f84ea2122703');\nhashMap.set('hermit','cf0b57ff837f13e6de0719ebe48e3caa0fa432348479220f0af9a16423b894ff');\nhashMap.set('homebrew','ed5d88362dfb01ab608408ece9676d590fef2aed7fa86954eb8e3986da2d58e2');\nhashMap.set('html','724454ac0bebcb0d1d71402980c905f5cf55b485b24e25bdc5c30fbea287ff27');\nhashMap.set('jenkins','aaf4705a5e59cd2f8e3fa1a38db9d4484b9337d181be66fdeacf79128be3b921');\nhashMap.set('jsonnet-bundler','2e31b1080a2f37156f450d1e6d572b12d11db69db134e61c0292aea3992f4d19');\nhashMap.set('kotlin-script','b3ba662db27a003ac3d644d5aa98b36362d6e0f0832573a14971f1ba1a63f48a');\nhashMap.set('kubernetes','e7e844cd3c693e7ddb987c13dd113c843a42169511ffc3125179f1d115dab3bc');\nhashMap.set('kustomize','74fad6ba2d4f5d739396f1099ddddf2b8c85887e49642a49b9ff2c401de3d5c8');\nhashMap.set('leiningen','5e662117d3ed7e2885d583ed69644b37943a00f9fc89f20aa9b60fde09cdefc4');\nhashMap.set('maven','e47482599fb6f87b190c4e782fdf03b9fdf7602b3c484f8288befc547116de2e');\nhashMap.set('maven-wrapper','f37c57006dc49ae15dd98508299aa3d78929249eb6e810cbd4f6ee858fb574de');\nhashMap.set('meteor','00ab5fc89abb363595e0ee38866f92b9ffdb5fed674f568c8ba778bf20aebd12');\nhashMap.set('mint','7072e37f18bb57500018406eb8711b2615b1916f073867f30653cdd4a99dab81');\nhashMap.set('mise','9dcc123e01777066f6b682d4679894789110ae5e922a8ade1a13454cbd826cd9');\nhashMap.set('mix','975c939c6730fc23fe19a2d4ec7f5025c1ef2e789c4bb0ed00786e4f51f3f50f');\nhashMap.set('nix','cb6b73fba10834cc5ac9db06ac240dfd27f7ad136b8fb3228dcec84f933c4eb5');\nhashMap.set('nodenv','d159174d53e39af2013443cf86df88e14aac79a5a8d602180af229dcb2ddeda9');\nhashMap.set('npm','b3ae6b4a4e6e2f38790a9ed2cba6864c0e1bf6a6e86e9478f94d52a318e58036');\nhashMap.set('nuget','39cc028b7ef27f36dbabf64b89f07b8a3f8af786fa20e90f848441b5cb605398');\nhashMap.set('nvm','1928fd50bd6cc9f42d73262630056f2c0f8b0e061282bd02e58d116fc1788e2b');\nhashMap.set('ocb','55559051102728868b619820a6dc95753cdfbbb8aed46840e53db6733bc2ede4');\nhashMap.set('osgi','dae012cd486843eb53da4b032105e54d18f4e7537bd59c5321313950dd108a95');\nhashMap.set('pep621','688f89cc34eedecc84bd023527bfa9cb3f6b24c5bef76fd0d14684335f9bf517');\nhashMap.set('pep723','bf07d466ea1bc9513c8d2cb475fcca3bc9b61f2184bd9af0a7a28d45b6f57ecd');\nhashMap.set('pip-compile','d78e01e6896216bd9a27758781f9f635ab0b198f6dd92aa67335efbcfacecc9e');\nhashMap.set('pip_requirements','1e6f1efccfce4b9af83038a3b82d13815ea77aac35f2b9ca2e7ccb7f4c94c189');\nhashMap.set('pip_setup','8a81b67b249666cd7037ca5abdf44d0a9c4edea6aee7509cb47c9761f7a8e999');\nhashMap.set('pipenv','06d21a14af2625ce1ba7684254a5f289140ad803d5440b3eeb3a6453348f26b2');\nhashMap.set('poetry','8f7350d5b5412d03fb95098559ba468d4b03720744a3a417120441a0d33509b7');\nhashMap.set('pre-commit','4b0c5fe9f769b321540efb915e7da0c948a640d6c5cde38643ef1f54110ee33a');\nhashMap.set('pub','fc27bcb987e8035683af16534ad5c9ad74a10903602c046d458511ce78aa0e97');\nhashMap.set('puppet','ada8a1260068ce08307fb3b6efabc2e6ecd7d396ed48db5174413d22a9d0151a');\nhashMap.set('pyenv','4e520570d9a1407864aa7c5461d4008372d889254067e405cee2212d0ef8990b');\nhashMap.set('ruby-version','4aac2178a20ccdf8136363030e5156017f3d44368b4192b3280997df596dcacc');\nhashMap.set('runtime-version','dbf80ce2a5f07dd34bc9a008159b4f08052cc6fd0d92cbd2aeb0026c8008fa72');\nhashMap.set('sbt','0a8cac802b48a726ee771e10207df4f067dd0ac9fac6501d874da22799ec7682');\nhashMap.set('scalafmt','06ab7baa0f0dc355ca9bb583c4a584236ff69ebfd973b7f87a6bce78a27ee2ba');\nhashMap.set('setup-cfg','dc4899bbe699876ff20a9212601747e56f6853f2326e71caf02e989e34dd1627');\nhashMap.set('sveltos','a69f9e206526af08685e20a72344b22d856f2effd882e67333a153a989a0a047');\nhashMap.set('swift','079016c9df036f4e87cac24b9e6df544a66106c49cd39360d118909a34724253');\nhashMap.set('tekton','b160e57509c644fc8286bc1e9c01e52aeca587aa5fdf7b0653767a25856c96d1');\nhashMap.set('terraform','56dca81f7711fbd6fddeb37fcb48051bedce504ded2c7968f65ec7beb24fda46');\nhashMap.set('terraform-version','b08480f326c45daf3daeccc2d2f593a723c30a50437a66ac2290d671b427a355');\nhashMap.set('terragrunt','befdc3e2984b9900b0b040b7a5159cacc6bbb2da3b120a5f85acef18e1e673f4');\nhashMap.set('terragrunt-version','45f221b13a193a42687f318e10cf1558079e28c970e91ce25c370f35f88f2f58');\nhashMap.set('tflint-plugin','40ab6d0c975ff0b8e42651c088e159afe9f0d0c43a1dbf7c1295ec03c77bdc7c');\nhashMap.set('travis','da7b4a64148c39fe19c648f5da6e1537b92be8ed4ed9a4a36c55503a8fe8c6b7');\nhashMap.set('velaci','19f265237b1bda5d28c54133e2cd3259181ffa6c5af544c1240f9a8635ec5718');\nhashMap.set('vendir','0ef4ccdc2f273238dba3c445934290780adc7c7d249d28d1b8507e91d8f3d300');\nhashMap.set('woodpecker','9bcc581026e2797b2d6dd9060b4384f7352aa38bb12247445ff36ec271dfa6da');\nhashMap.set('jsonata','61294a22c613ad11701d907e9dd3f67defc9fe79a4a65964cb2cb7f6cabceb2d');\nhashMap.set('regex','e28c82f8017d96a81ef1b5c807d805c5a498f057dd72bbac480a5dc6a2e4cc82');"]}
1
+ {"version":3,"file":"fingerprint.generated.js","sourceRoot":"","sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"names":[],"mappings":"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","sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','82b5ae4c50286abb2a1bb298be035f5124c55f4516a691db16bacee23b6571ad');\nhashMap.set('ansible-galaxy','931341f8f942cdb91352173c3dc2069bd2e0e295b822a1e415983ae21da8c79e');\nhashMap.set('argocd','9faa5dc34541f099823785d2590b43a433350ac5abdd11b89be71e123c67d9e5');\nhashMap.set('asdf','be1913ee9260b861edb04ca359c45c5aa78fd0ded147150c5395b78a5e488775');\nhashMap.set('azure-pipelines','4a57ee599aa5432cfb3de657df1e9eafdd6d6ddebb8678613d56360b8a1de970');\nhashMap.set('batect','523e8d7a309b4814a02819371313b2dac3764eab64cabfaf1d58b6e89de4ce43');\nhashMap.set('batect-wrapper','81efd8400e445894e64b9352cf175736085a15d21967455f046b4a60b56a9c92');\nhashMap.set('bazel','64f8e1f960739c9e908737133a4fd697a511d40c5ab8cdc2d13766b7513c0d4a');\nhashMap.set('bazel-module','fce90be23ab19f429215597f2c36d41fb888c04e395946680dea0e93474335f9');\nhashMap.set('bazelisk','6fbef61d534724ff259ea6e4fc1cd0a3d5a46d740c375128fa59b225daddd39f');\nhashMap.set('bicep','fbbd74998411012cfba829526701109d1fc184ade0cb11a28e4ca2956174b0f1');\nhashMap.set('bitbucket-pipelines','1ffc62c9948db58cf9dd63f2f15382fc705859f76712483b0012ea6ebba5229a');\nhashMap.set('bitrise','d18d2dcd356e19c4cd94912511a88636198c23b64e54f31da273be11044970cf');\nhashMap.set('buildkite','ac713ce38da057ff3ceb08d092291356dfc74f5b33b75f010bb9db1a211439c0');\nhashMap.set('buildpacks','cc8bbe937416a012df36a5c7ab01ae3cdedbed03615549bbe9f0f27fa40a150b');\nhashMap.set('bun','4e58773a8ea03fc62b77d91a66f8287a66e3c6a20e83b1224f5f06f52296aa30');\nhashMap.set('bun-version','49194d7fcb6b7bdd7e7a1264f71532bb2be8142d48478bf74716f7a9d4b306b9');\nhashMap.set('bundler','42a824a73cacedd41f251e6f69b03473b43e1ebf2a95a01812c5f1fc05e4da78');\nhashMap.set('cake','4f42bf5e1202986d0f0b0bf906122c1b7d7630e4167903abaab378af4c539bd0');\nhashMap.set('cargo','c8939694d36bf441406292b60deac3bbe0589a5fbc8b8000910dd2ca796d6fbd');\nhashMap.set('cdnurl','47cca9f24b9b403d5406608d2e4a35ab35234c8726062f5410e88d4e31c90172');\nhashMap.set('circleci','484389d287082ed41f8d8b763197c78af8e3513fa64f98122d92b821775b6d20');\nhashMap.set('cloudbuild','03dff1a999971305efd975f99f652433dd7d1d4aab5b21b78961dea525267310');\nhashMap.set('cocoapods','51db6584368d13c23d5623de360e07d5be361ee6b417742785943d03ed7c724a');\nhashMap.set('composer','3e6b05e855dbad758072826d3669442b95a4f8458d35453b30e41d2667e64540');\nhashMap.set('conan','9db48a893bdd3cd21d2dc080fef0c2eb61976df1f43466f48435432253584daf');\nhashMap.set('copier','b7be1de98f4616163b81f047f5c943690d19e7e6db787f8b63dd1c398b6bb6ae');\nhashMap.set('cpanfile','9b354db9666eee2485b27e44a6e61eaadc86ec2f2c6af9bb7bbc9fab54f31642');\nhashMap.set('crossplane','c0873b443836a9dd12a61cecef4da56dfc6c6af446af58d823747c1e72e4fd0b');\nhashMap.set('deps-edn','ad88e1a2190140795c6ae873178c1307e3ece258bc4d24f4c7a42cb8ccaea662');\nhashMap.set('devbox','2725cffa81c0a5f1efd88d358c147c61d73891bd1a6573564757987d2f032825');\nhashMap.set('devcontainer','4fc86c93667d4215e645b2048f1e98c547a744e1b3a65bc14d8732d512404659');\nhashMap.set('docker-compose','3ec6aa79e6fa44801a35cfe1551b7b067ff9125f431928c404bba6ac7daa6e0a');\nhashMap.set('dockerfile','91c229d3c9049411fb2ddc1469ed5625b11045483c740ab0265721bcc68f47de');\nhashMap.set('droneci','6466e5192f59e9b59113b51e3f83921860002b829befe99b141f9173fae41dc9');\nhashMap.set('fleet','7c088a2ee643cb038f4fdcdeb114a70284c1382fbdb73f55effd13b5967e3867');\nhashMap.set('flux','c16d154fd8154e7418f22ea1fc5f66a03be2a52a7a1c5eb0b981587b20b21caa');\nhashMap.set('fvm','aa154dd5ffe3caced30713a9a55967360b7a0f35edd2fc06bd6f3e73c5c87570');\nhashMap.set('git-submodules','299b5e7e82aebedafae0588aa60345869f8e30bdf9feac8032dda11ad4b9c098');\nhashMap.set('github-actions','99987f82816dd23c2f53aa735125711e9daf1c68f86026518e40febfd209f1d2');\nhashMap.set('gitlabci','a6b9faa686756f3c5d3d515b53afdbbdde2831e38d65c5b4afc95c0c063a7709');\nhashMap.set('gitlabci-include','997a736793457d4ec62545d285b582736d79de6e0efce2c4c58a18efe9fc4782');\nhashMap.set('glasskube','fc313573e00f776e3d595acf7a69f16a7736ad52f2eef745bcd9da32f9781dbf');\nhashMap.set('gleam','0d350c63afeb65b9ede88108121b03e21c00662e272b7acabbcfeee9d3f09977');\nhashMap.set('gomod','dc7be34db7598612157401e5850ccd0bef074244541c56b2fae282d4c6ca6176');\nhashMap.set('gradle','eb6fcdbc27c975dcf925b6e3195fafcf57d304e3e0a0bf16bb2094bc8cf6fd16');\nhashMap.set('gradle-wrapper','a5c53f194436487370f7ff2423c3d8e68825c6ee9138b2e4caffcc88cdc0068d');\nhashMap.set('haskell-cabal','a2bf118238529952d0f2f352112dfbc86fb5533ef819625161a130f39c8ca713');\nhashMap.set('helm-requirements','e9c2551a4346d16a83256e05e742d96086cb7bf429bb3819dfb2e60d4949a644');\nhashMap.set('helm-values','533d938b56283692a63a9227181b5a3b7697755d8b900063a2e10b0a57de31b2');\nhashMap.set('helmfile','095b46f0566031cc29991d5f03fb1880f5fbc0e9e5b82169c08ea608f491629d');\nhashMap.set('helmsman','c6c6db7f82c7c983bd2f5fa909ffdf48e55296e413b728f75ff4ba05da8b9717');\nhashMap.set('helmv3','8c43b4f590015353fa4540cfb0500bf47c7f3cb9a3d80300a295f84ea2122703');\nhashMap.set('hermit','cf0b57ff837f13e6de0719ebe48e3caa0fa432348479220f0af9a16423b894ff');\nhashMap.set('homebrew','ed5d88362dfb01ab608408ece9676d590fef2aed7fa86954eb8e3986da2d58e2');\nhashMap.set('html','724454ac0bebcb0d1d71402980c905f5cf55b485b24e25bdc5c30fbea287ff27');\nhashMap.set('jenkins','aaf4705a5e59cd2f8e3fa1a38db9d4484b9337d181be66fdeacf79128be3b921');\nhashMap.set('jsonnet-bundler','2e31b1080a2f37156f450d1e6d572b12d11db69db134e61c0292aea3992f4d19');\nhashMap.set('kotlin-script','b3ba662db27a003ac3d644d5aa98b36362d6e0f0832573a14971f1ba1a63f48a');\nhashMap.set('kubernetes','e7e844cd3c693e7ddb987c13dd113c843a42169511ffc3125179f1d115dab3bc');\nhashMap.set('kustomize','74fad6ba2d4f5d739396f1099ddddf2b8c85887e49642a49b9ff2c401de3d5c8');\nhashMap.set('leiningen','5e662117d3ed7e2885d583ed69644b37943a00f9fc89f20aa9b60fde09cdefc4');\nhashMap.set('maven','e47482599fb6f87b190c4e782fdf03b9fdf7602b3c484f8288befc547116de2e');\nhashMap.set('maven-wrapper','f37c57006dc49ae15dd98508299aa3d78929249eb6e810cbd4f6ee858fb574de');\nhashMap.set('meteor','00ab5fc89abb363595e0ee38866f92b9ffdb5fed674f568c8ba778bf20aebd12');\nhashMap.set('mint','7072e37f18bb57500018406eb8711b2615b1916f073867f30653cdd4a99dab81');\nhashMap.set('mise','9dcc123e01777066f6b682d4679894789110ae5e922a8ade1a13454cbd826cd9');\nhashMap.set('mix','975c939c6730fc23fe19a2d4ec7f5025c1ef2e789c4bb0ed00786e4f51f3f50f');\nhashMap.set('nix','cb6b73fba10834cc5ac9db06ac240dfd27f7ad136b8fb3228dcec84f933c4eb5');\nhashMap.set('nodenv','d159174d53e39af2013443cf86df88e14aac79a5a8d602180af229dcb2ddeda9');\nhashMap.set('npm','b3ae6b4a4e6e2f38790a9ed2cba6864c0e1bf6a6e86e9478f94d52a318e58036');\nhashMap.set('nuget','39cc028b7ef27f36dbabf64b89f07b8a3f8af786fa20e90f848441b5cb605398');\nhashMap.set('nvm','1928fd50bd6cc9f42d73262630056f2c0f8b0e061282bd02e58d116fc1788e2b');\nhashMap.set('ocb','55559051102728868b619820a6dc95753cdfbbb8aed46840e53db6733bc2ede4');\nhashMap.set('osgi','dae012cd486843eb53da4b032105e54d18f4e7537bd59c5321313950dd108a95');\nhashMap.set('pep621','688f89cc34eedecc84bd023527bfa9cb3f6b24c5bef76fd0d14684335f9bf517');\nhashMap.set('pep723','bf07d466ea1bc9513c8d2cb475fcca3bc9b61f2184bd9af0a7a28d45b6f57ecd');\nhashMap.set('pip-compile','d78e01e6896216bd9a27758781f9f635ab0b198f6dd92aa67335efbcfacecc9e');\nhashMap.set('pip_requirements','1e6f1efccfce4b9af83038a3b82d13815ea77aac35f2b9ca2e7ccb7f4c94c189');\nhashMap.set('pip_setup','8a81b67b249666cd7037ca5abdf44d0a9c4edea6aee7509cb47c9761f7a8e999');\nhashMap.set('pipenv','06d21a14af2625ce1ba7684254a5f289140ad803d5440b3eeb3a6453348f26b2');\nhashMap.set('poetry','8f7350d5b5412d03fb95098559ba468d4b03720744a3a417120441a0d33509b7');\nhashMap.set('pre-commit','4b0c5fe9f769b321540efb915e7da0c948a640d6c5cde38643ef1f54110ee33a');\nhashMap.set('pub','fc27bcb987e8035683af16534ad5c9ad74a10903602c046d458511ce78aa0e97');\nhashMap.set('puppet','ada8a1260068ce08307fb3b6efabc2e6ecd7d396ed48db5174413d22a9d0151a');\nhashMap.set('pyenv','4e520570d9a1407864aa7c5461d4008372d889254067e405cee2212d0ef8990b');\nhashMap.set('ruby-version','4aac2178a20ccdf8136363030e5156017f3d44368b4192b3280997df596dcacc');\nhashMap.set('runtime-version','dbf80ce2a5f07dd34bc9a008159b4f08052cc6fd0d92cbd2aeb0026c8008fa72');\nhashMap.set('sbt','0a8cac802b48a726ee771e10207df4f067dd0ac9fac6501d874da22799ec7682');\nhashMap.set('scalafmt','06ab7baa0f0dc355ca9bb583c4a584236ff69ebfd973b7f87a6bce78a27ee2ba');\nhashMap.set('setup-cfg','dc4899bbe699876ff20a9212601747e56f6853f2326e71caf02e989e34dd1627');\nhashMap.set('sveltos','a69f9e206526af08685e20a72344b22d856f2effd882e67333a153a989a0a047');\nhashMap.set('swift','079016c9df036f4e87cac24b9e6df544a66106c49cd39360d118909a34724253');\nhashMap.set('tekton','b160e57509c644fc8286bc1e9c01e52aeca587aa5fdf7b0653767a25856c96d1');\nhashMap.set('terraform','56dca81f7711fbd6fddeb37fcb48051bedce504ded2c7968f65ec7beb24fda46');\nhashMap.set('terraform-version','b08480f326c45daf3daeccc2d2f593a723c30a50437a66ac2290d671b427a355');\nhashMap.set('terragrunt','befdc3e2984b9900b0b040b7a5159cacc6bbb2da3b120a5f85acef18e1e673f4');\nhashMap.set('terragrunt-version','45f221b13a193a42687f318e10cf1558079e28c970e91ce25c370f35f88f2f58');\nhashMap.set('tflint-plugin','40ab6d0c975ff0b8e42651c088e159afe9f0d0c43a1dbf7c1295ec03c77bdc7c');\nhashMap.set('travis','da7b4a64148c39fe19c648f5da6e1537b92be8ed4ed9a4a36c55503a8fe8c6b7');\nhashMap.set('velaci','19f265237b1bda5d28c54133e2cd3259181ffa6c5af544c1240f9a8635ec5718');\nhashMap.set('vendir','0ef4ccdc2f273238dba3c445934290780adc7c7d249d28d1b8507e91d8f3d300');\nhashMap.set('woodpecker','9bcc581026e2797b2d6dd9060b4384f7352aa38bb12247445ff36ec271dfa6da');\nhashMap.set('jsonata','61294a22c613ad11701d907e9dd3f67defc9fe79a4a65964cb2cb7f6cabceb2d');\nhashMap.set('regex','e28c82f8017d96a81ef1b5c807d805c5a498f057dd72bbac480a5dc6a2e4cc82');"]}
@@ -117,7 +117,7 @@ async function updateArtifacts({ packageFileName: goModFileName, updatedDeps, ne
117
117
  logger_1.logger.debug('Removed some relative replace statements and comments from go.mod');
118
118
  }
119
119
  }
120
- const goConstraints = config.constraints?.go ?? (await getGoConstraints(goModFileName));
120
+ const goConstraints = config.constraints?.go ?? getGoConstraints(newGoModContent);
121
121
  try {
122
122
  await (0, fs_1.writeLocalFile)(goModFileName, massagedGoMod);
123
123
  const cmd = 'go';
@@ -132,9 +132,8 @@ async function updateArtifacts({ packageFileName: goModFileName, updatedDeps, ne
132
132
  GONOSUMDB: process.env.GONOSUMDB,
133
133
  GOSUMDB: process.env.GOSUMDB,
134
134
  GOINSECURE: process.env.GOINSECURE,
135
- GOFLAGS: useModcacherw(goConstraints)
136
- ? '-modcacherw'
137
- : /* istanbul ignore next: hard to test */ null,
135
+ /* v8 ignore next -- TODO: add test */
136
+ GOFLAGS: useModcacherw(goConstraints) ? '-modcacherw' : null,
138
137
  CGO_ENABLED: global_1.GlobalConfig.get('binarySource') === 'docker' ? '0' : null,
139
138
  ...(0, auth_1.getGitEnvironmentVariables)(['go']),
140
139
  },
@@ -333,16 +332,12 @@ async function updateArtifacts({ packageFileName: goModFileName, updatedDeps, ne
333
332
  ];
334
333
  }
335
334
  }
336
- async function getGoConstraints(goModFileName) {
337
- const content = (await (0, fs_1.readLocalFile)(goModFileName, 'utf8')) ?? null;
338
- if (!content) {
339
- return undefined;
340
- }
335
+ function getGoConstraints(content) {
341
336
  const re = (0, regex_1.regEx)(/^go\s*(?<gover>\d+\.\d+)$/m);
342
337
  const match = re.exec(content);
343
338
  if (!match?.groups?.gover) {
344
339
  return undefined;
345
340
  }
346
- return '^' + match.groups.gover;
341
+ return `^${match.groups.gover}`;
347
342
  }
348
343
  //# sourceMappingURL=artifacts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gomod/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport semver from 'semver';\nimport { quote } from 'shlex';\nimport upath from 'upath';\nimport { GlobalConfig } from '../../../config/global';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions } from '../../../util/exec/types';\nimport { filterMap } from '../../../util/filter-map';\nimport {\n ensureCacheDir,\n findLocalSiblingOrParent,\n isValidLocalPath,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport { getGitEnvironmentVariables } from '../../../util/git/auth';\nimport { regEx } from '../../../util/regex';\nimport { isValid } from '../../versioning/semver';\nimport type {\n PackageDependency,\n UpdateArtifact,\n UpdateArtifactsConfig,\n UpdateArtifactsResult,\n} from '../types';\nimport { getExtraDepsNotice } from './artifacts-extra';\n\nconst { major, valid } = semver;\n\nfunction getUpdateImportPathCmds(\n updatedDeps: PackageDependency[],\n { constraints }: UpdateArtifactsConfig,\n): string[] {\n // Check if we fail to parse any major versions and log that they're skipped\n const invalidMajorDeps = updatedDeps.filter(\n ({ newVersion }) => !valid(newVersion),\n );\n if (invalidMajorDeps.length > 0) {\n invalidMajorDeps.forEach(({ depName }) =>\n logger.warn(\n { depName },\n 'Ignoring dependency: Could not get major version',\n ),\n );\n }\n\n const updateImportCommands = updatedDeps\n .filter(\n ({ newVersion }) =>\n valid(newVersion) && !newVersion!.endsWith('+incompatible'),\n )\n .map(({ depName, newVersion }) => ({\n depName: depName!,\n newMajor: major(newVersion!),\n }))\n // Skip path updates going from v0 to v1\n .filter(\n ({ depName, newMajor }) =>\n depName.startsWith('gopkg.in/') || newMajor > 1,\n )\n\n .map(\n ({ depName, newMajor }) =>\n `mod upgrade --mod-name=${depName} -t=${newMajor}`,\n );\n\n if (updateImportCommands.length > 0) {\n let installMarwanModArgs =\n 'install github.com/marwan-at-work/mod/cmd/mod@latest';\n const gomodModCompatibility = constraints?.gomodMod;\n if (gomodModCompatibility) {\n if (\n gomodModCompatibility.startsWith('v') &&\n isValid(gomodModCompatibility.replace(regEx(/^v/), ''))\n ) {\n installMarwanModArgs = installMarwanModArgs.replace(\n regEx(/@latest$/),\n `@${gomodModCompatibility}`,\n );\n } else {\n logger.debug(\n { gomodModCompatibility },\n 'marwan-at-work/mod compatibility range is not valid - skipping',\n );\n }\n } else {\n logger.debug(\n 'No marwan-at-work/mod compatibility range found - installing marwan-at-work/mod latest',\n );\n }\n updateImportCommands.unshift(`go ${installMarwanModArgs}`);\n }\n\n return updateImportCommands;\n}\n\nfunction useModcacherw(goVersion: string | undefined): boolean {\n if (!is.string(goVersion)) {\n return true;\n }\n\n const [, majorPart, minorPart] = coerceArray(\n regEx(/(\\d+)\\.(\\d+)/).exec(goVersion),\n );\n const [major, minor] = [majorPart, minorPart].map((x) => parseInt(x, 10));\n\n return (\n !Number.isNaN(major) &&\n !Number.isNaN(minor) &&\n (major > 1 || (major === 1 && minor >= 14))\n );\n}\n\nexport async function updateArtifacts({\n packageFileName: goModFileName,\n updatedDeps,\n newPackageFileContent: newGoModContent,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`gomod.updateArtifacts(${goModFileName})`);\n\n const sumFileName = goModFileName.replace(regEx(/\\.mod$/), '.sum');\n const existingGoSumContent = await readLocalFile(sumFileName);\n if (!existingGoSumContent) {\n logger.debug('No go.sum found');\n return null;\n }\n\n const goModDir = upath.dirname(goModFileName);\n\n const vendorDir = upath.join(goModDir, 'vendor/');\n const vendorModulesFileName = upath.join(vendorDir, 'modules.txt');\n const useVendor =\n !!config.postUpdateOptions?.includes('gomodVendor') ||\n (!config.postUpdateOptions?.includes('gomodSkipVendor') &&\n (await readLocalFile(vendorModulesFileName)) !== null);\n let massagedGoMod = newGoModContent;\n\n if (config.postUpdateOptions?.includes('gomodMassage')) {\n // Regex match inline replace directive, example:\n // replace golang.org/x/net v1.2.3 => example.com/fork/net v1.4.5\n // https://go.dev/ref/mod#go-mod-file-replace\n\n // replace bracket after comments, so it doesn't break the regex, doing a complex regex causes problems\n // when there's a comment and \")\" after it, the regex will read replace block until comment.. and stop.\n massagedGoMod = massagedGoMod\n .split('\\n')\n .map((line) => {\n if (line.trim().startsWith('//')) {\n return line.replace(')', 'renovate-replace-bracket');\n }\n return line;\n })\n .join('\\n');\n\n const inlineReplaceRegEx = regEx(\n /(\\r?\\n)(replace\\s+[^\\s]+\\s+=>\\s+\\.\\.\\/.*)/g,\n );\n\n // $1 will be matched with the (\\r?n) group\n // $2 will be matched with the inline replace match, example\n // \"// renovate-replace replace golang.org/x/net v1.2.3 => example.com/fork/net v1.4.5\"\n const inlineCommentOut = '$1// renovate-replace $2';\n\n // Regex match replace directive block, example:\n // replace (\n // golang.org/x/net v1.2.3 => example.com/fork/net v1.4.5\n // )\n const blockReplaceRegEx = regEx(/(\\r?\\n)replace\\s*\\([^)]+\\s*\\)/g);\n\n /**\n * replacerFunction for commenting out replace blocks\n * @param match A string representing a golang replace directive block\n * @returns A commented out block with // renovate-replace\n */\n const blockCommentOut = (match: string): string =>\n match.replace(/(\\r?\\n)/g, '$1// renovate-replace ');\n\n // Comment out golang replace directives\n massagedGoMod = massagedGoMod\n .replace(inlineReplaceRegEx, inlineCommentOut)\n .replace(blockReplaceRegEx, blockCommentOut);\n\n if (massagedGoMod !== newGoModContent) {\n logger.debug(\n 'Removed some relative replace statements and comments from go.mod',\n );\n }\n }\n const goConstraints =\n config.constraints?.go ?? (await getGoConstraints(goModFileName));\n\n try {\n await writeLocalFile(goModFileName, massagedGoMod);\n\n const cmd = 'go';\n const execOptions: ExecOptions = {\n cwdFile: goModFileName,\n userConfiguredEnv: config.env,\n extraEnv: {\n GOPATH: await ensureCacheDir('go'),\n GOPROXY: process.env.GOPROXY,\n GOPRIVATE: process.env.GOPRIVATE,\n GONOPROXY: process.env.GONOPROXY,\n GONOSUMDB: process.env.GONOSUMDB,\n GOSUMDB: process.env.GOSUMDB,\n GOINSECURE: process.env.GOINSECURE,\n GOFLAGS: useModcacherw(goConstraints)\n ? '-modcacherw'\n : /* istanbul ignore next: hard to test */ null,\n CGO_ENABLED: GlobalConfig.get('binarySource') === 'docker' ? '0' : null,\n ...getGitEnvironmentVariables(['go']),\n },\n docker: {},\n toolConstraints: [\n {\n toolName: 'golang',\n constraint: goConstraints,\n },\n ],\n };\n\n const execCommands: string[] = [];\n\n let goGetDirs: string | undefined;\n if (config.goGetDirs) {\n goGetDirs = config.goGetDirs\n .filter((dir) => {\n const isValid = isValidLocalPath(dir);\n if (!isValid) {\n logger.warn({ dir }, 'Invalid path in goGetDirs');\n }\n return isValid;\n })\n .map(quote)\n .join(' ');\n\n if (goGetDirs === '') {\n throw new Error('Invalid goGetDirs');\n }\n }\n\n let args = `get -d -t ${goGetDirs ?? './...'}`;\n logger.trace({ cmd, args }, 'go get command included');\n execCommands.push(`${cmd} ${args}`);\n\n // Update import paths on major updates\n const isImportPathUpdateRequired =\n config.postUpdateOptions?.includes('gomodUpdateImportPaths') &&\n config.updateType === 'major';\n\n if (isImportPathUpdateRequired) {\n const updateImportCmds = getUpdateImportPathCmds(updatedDeps, config);\n if (updateImportCmds.length > 0) {\n logger.debug(updateImportCmds, 'update import path commands included');\n // The updates\n execCommands.push(...updateImportCmds);\n }\n }\n\n const mustSkipGoModTidy =\n !config.postUpdateOptions?.includes('gomodUpdateImportPaths') &&\n config.updateType === 'major';\n if (mustSkipGoModTidy) {\n logger.debug('go mod tidy command skipped');\n }\n\n let tidyOpts = '';\n if (config.postUpdateOptions?.includes('gomodTidy1.17')) {\n tidyOpts += ' -compat=1.17';\n }\n if (config.postUpdateOptions?.includes('gomodTidyE')) {\n tidyOpts += ' -e';\n }\n\n const isGoModTidyRequired =\n !mustSkipGoModTidy &&\n (config.postUpdateOptions?.includes('gomodTidy') === true ||\n config.postUpdateOptions?.includes('gomodTidy1.17') === true ||\n config.postUpdateOptions?.includes('gomodTidyE') === true ||\n (config.updateType === 'major' && isImportPathUpdateRequired));\n if (isGoModTidyRequired) {\n args = 'mod tidy' + tidyOpts;\n logger.debug('go mod tidy command included');\n execCommands.push(`${cmd} ${args}`);\n }\n\n const goWorkSumFileName = upath.join(goModDir, 'go.work.sum');\n if (useVendor) {\n // If we find a go.work, then use go workspace vendoring.\n const goWorkFile = await findLocalSiblingOrParent(\n goModFileName,\n 'go.work',\n );\n\n if (goWorkFile) {\n args = 'work vendor';\n logger.debug('using go work vendor');\n execCommands.push(`${cmd} ${args}`);\n\n args = 'work sync';\n logger.debug('using go work sync');\n execCommands.push(`${cmd} ${args}`);\n } else {\n args = 'mod vendor';\n logger.debug('using go mod vendor');\n execCommands.push(`${cmd} ${args}`);\n }\n\n if (isGoModTidyRequired) {\n args = 'mod tidy' + tidyOpts;\n logger.debug('go mod tidy command included');\n execCommands.push(`${cmd} ${args}`);\n }\n }\n\n // We tidy one more time as a solution for #6795\n if (isGoModTidyRequired) {\n args = 'mod tidy' + tidyOpts;\n logger.debug('go mod tidy command included');\n execCommands.push(`${cmd} ${args}`);\n }\n\n await exec(execCommands, execOptions);\n\n const status = await getRepoStatus();\n if (\n !status.modified.includes(sumFileName) &&\n !status.modified.includes(goModFileName) &&\n !status.modified.includes(goWorkSumFileName)\n ) {\n return null;\n }\n\n const res: UpdateArtifactsResult[] = [];\n if (status.modified.includes(sumFileName)) {\n logger.debug('Returning updated go.sum');\n res.push({\n file: {\n type: 'addition',\n path: sumFileName,\n contents: await readLocalFile(sumFileName),\n },\n });\n }\n\n if (status.modified.includes(goWorkSumFileName)) {\n logger.debug('Returning updated go.work.sum');\n res.push({\n file: {\n type: 'addition',\n path: goWorkSumFileName,\n contents: await readLocalFile(goWorkSumFileName),\n },\n });\n }\n\n // Include all the .go file import changes\n if (isImportPathUpdateRequired) {\n logger.debug('Returning updated go source files for import path changes');\n for (const f of status.modified) {\n if (f.endsWith('.go')) {\n res.push({\n file: {\n type: 'addition',\n path: f,\n contents: await readLocalFile(f),\n },\n });\n }\n }\n }\n\n if (useVendor) {\n for (const f of status.modified.concat(status.not_added)) {\n if (f.startsWith(vendorDir)) {\n res.push({\n file: {\n type: 'addition',\n path: f,\n contents: await readLocalFile(f),\n },\n });\n }\n }\n for (const f of coerceArray(status.deleted)) {\n res.push({\n file: {\n type: 'deletion',\n path: f,\n },\n });\n }\n }\n\n // TODO: throws in tests (#22198)\n const finalGoModContent = (await readLocalFile(goModFileName, 'utf8'))!\n .replace(regEx(/\\/\\/ renovate-replace /g), '')\n .replace(regEx(/renovate-replace-bracket/g), ')');\n if (finalGoModContent !== newGoModContent) {\n const artifactResult: UpdateArtifactsResult = {\n file: {\n type: 'addition',\n path: goModFileName,\n contents: finalGoModContent,\n },\n };\n\n const updatedDepNames = filterMap(updatedDeps, (dep) => dep?.depName);\n const extraDepsNotice = getExtraDepsNotice(\n newGoModContent,\n finalGoModContent,\n updatedDepNames,\n );\n\n if (extraDepsNotice) {\n artifactResult.notice = {\n file: goModFileName,\n message: extraDepsNotice,\n };\n }\n\n logger.debug('Found updated go.mod after go.sum update');\n res.push(artifactResult);\n }\n return res;\n } catch (err) {\n // istanbul ignore if\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.debug({ err }, 'Failed to update go.sum');\n return [\n {\n artifactError: {\n lockFile: sumFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n\nasync function getGoConstraints(\n goModFileName: string,\n): Promise<string | undefined> {\n const content = (await readLocalFile(goModFileName, 'utf8')) ?? null;\n if (!content) {\n return undefined;\n }\n const re = regEx(/^go\\s*(?<gover>\\d+\\.\\d+)$/m);\n const match = re.exec(content);\n if (!match?.groups?.gover) {\n return undefined;\n }\n return '^' + match.groups.gover;\n}\n"]}
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gomod/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport semver from 'semver';\nimport { quote } from 'shlex';\nimport upath from 'upath';\nimport { GlobalConfig } from '../../../config/global';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions } from '../../../util/exec/types';\nimport { filterMap } from '../../../util/filter-map';\nimport {\n ensureCacheDir,\n findLocalSiblingOrParent,\n isValidLocalPath,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport { getGitEnvironmentVariables } from '../../../util/git/auth';\nimport { regEx } from '../../../util/regex';\nimport { isValid } from '../../versioning/semver';\nimport type {\n PackageDependency,\n UpdateArtifact,\n UpdateArtifactsConfig,\n UpdateArtifactsResult,\n} from '../types';\nimport { getExtraDepsNotice } from './artifacts-extra';\n\nconst { major, valid } = semver;\n\nfunction getUpdateImportPathCmds(\n updatedDeps: PackageDependency[],\n { constraints }: UpdateArtifactsConfig,\n): string[] {\n // Check if we fail to parse any major versions and log that they're skipped\n const invalidMajorDeps = updatedDeps.filter(\n ({ newVersion }) => !valid(newVersion),\n );\n if (invalidMajorDeps.length > 0) {\n invalidMajorDeps.forEach(({ depName }) =>\n logger.warn(\n { depName },\n 'Ignoring dependency: Could not get major version',\n ),\n );\n }\n\n const updateImportCommands = updatedDeps\n .filter(\n ({ newVersion }) =>\n valid(newVersion) && !newVersion!.endsWith('+incompatible'),\n )\n .map(({ depName, newVersion }) => ({\n depName: depName!,\n newMajor: major(newVersion!),\n }))\n // Skip path updates going from v0 to v1\n .filter(\n ({ depName, newMajor }) =>\n depName.startsWith('gopkg.in/') || newMajor > 1,\n )\n\n .map(\n ({ depName, newMajor }) =>\n `mod upgrade --mod-name=${depName} -t=${newMajor}`,\n );\n\n if (updateImportCommands.length > 0) {\n let installMarwanModArgs =\n 'install github.com/marwan-at-work/mod/cmd/mod@latest';\n const gomodModCompatibility = constraints?.gomodMod;\n if (gomodModCompatibility) {\n if (\n gomodModCompatibility.startsWith('v') &&\n isValid(gomodModCompatibility.replace(regEx(/^v/), ''))\n ) {\n installMarwanModArgs = installMarwanModArgs.replace(\n regEx(/@latest$/),\n `@${gomodModCompatibility}`,\n );\n } else {\n logger.debug(\n { gomodModCompatibility },\n 'marwan-at-work/mod compatibility range is not valid - skipping',\n );\n }\n } else {\n logger.debug(\n 'No marwan-at-work/mod compatibility range found - installing marwan-at-work/mod latest',\n );\n }\n updateImportCommands.unshift(`go ${installMarwanModArgs}`);\n }\n\n return updateImportCommands;\n}\n\nfunction useModcacherw(goVersion: string | undefined): boolean {\n if (!is.string(goVersion)) {\n return true;\n }\n\n const [, majorPart, minorPart] = coerceArray(\n regEx(/(\\d+)\\.(\\d+)/).exec(goVersion),\n );\n const [major, minor] = [majorPart, minorPart].map((x) => parseInt(x, 10));\n\n return (\n !Number.isNaN(major) &&\n !Number.isNaN(minor) &&\n (major > 1 || (major === 1 && minor >= 14))\n );\n}\n\nexport async function updateArtifacts({\n packageFileName: goModFileName,\n updatedDeps,\n newPackageFileContent: newGoModContent,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`gomod.updateArtifacts(${goModFileName})`);\n\n const sumFileName = goModFileName.replace(regEx(/\\.mod$/), '.sum');\n const existingGoSumContent = await readLocalFile(sumFileName);\n if (!existingGoSumContent) {\n logger.debug('No go.sum found');\n return null;\n }\n\n const goModDir = upath.dirname(goModFileName);\n\n const vendorDir = upath.join(goModDir, 'vendor/');\n const vendorModulesFileName = upath.join(vendorDir, 'modules.txt');\n const useVendor =\n !!config.postUpdateOptions?.includes('gomodVendor') ||\n (!config.postUpdateOptions?.includes('gomodSkipVendor') &&\n (await readLocalFile(vendorModulesFileName)) !== null);\n let massagedGoMod = newGoModContent;\n\n if (config.postUpdateOptions?.includes('gomodMassage')) {\n // Regex match inline replace directive, example:\n // replace golang.org/x/net v1.2.3 => example.com/fork/net v1.4.5\n // https://go.dev/ref/mod#go-mod-file-replace\n\n // replace bracket after comments, so it doesn't break the regex, doing a complex regex causes problems\n // when there's a comment and \")\" after it, the regex will read replace block until comment.. and stop.\n massagedGoMod = massagedGoMod\n .split('\\n')\n .map((line) => {\n if (line.trim().startsWith('//')) {\n return line.replace(')', 'renovate-replace-bracket');\n }\n return line;\n })\n .join('\\n');\n\n const inlineReplaceRegEx = regEx(\n /(\\r?\\n)(replace\\s+[^\\s]+\\s+=>\\s+\\.\\.\\/.*)/g,\n );\n\n // $1 will be matched with the (\\r?n) group\n // $2 will be matched with the inline replace match, example\n // \"// renovate-replace replace golang.org/x/net v1.2.3 => example.com/fork/net v1.4.5\"\n const inlineCommentOut = '$1// renovate-replace $2';\n\n // Regex match replace directive block, example:\n // replace (\n // golang.org/x/net v1.2.3 => example.com/fork/net v1.4.5\n // )\n const blockReplaceRegEx = regEx(/(\\r?\\n)replace\\s*\\([^)]+\\s*\\)/g);\n\n /**\n * replacerFunction for commenting out replace blocks\n * @param match A string representing a golang replace directive block\n * @returns A commented out block with // renovate-replace\n */\n const blockCommentOut = (match: string): string =>\n match.replace(/(\\r?\\n)/g, '$1// renovate-replace ');\n\n // Comment out golang replace directives\n massagedGoMod = massagedGoMod\n .replace(inlineReplaceRegEx, inlineCommentOut)\n .replace(blockReplaceRegEx, blockCommentOut);\n\n if (massagedGoMod !== newGoModContent) {\n logger.debug(\n 'Removed some relative replace statements and comments from go.mod',\n );\n }\n }\n const goConstraints =\n config.constraints?.go ?? getGoConstraints(newGoModContent);\n\n try {\n await writeLocalFile(goModFileName, massagedGoMod);\n\n const cmd = 'go';\n const execOptions: ExecOptions = {\n cwdFile: goModFileName,\n userConfiguredEnv: config.env,\n extraEnv: {\n GOPATH: await ensureCacheDir('go'),\n GOPROXY: process.env.GOPROXY,\n GOPRIVATE: process.env.GOPRIVATE,\n GONOPROXY: process.env.GONOPROXY,\n GONOSUMDB: process.env.GONOSUMDB,\n GOSUMDB: process.env.GOSUMDB,\n GOINSECURE: process.env.GOINSECURE,\n /* v8 ignore next -- TODO: add test */\n GOFLAGS: useModcacherw(goConstraints) ? '-modcacherw' : null,\n CGO_ENABLED: GlobalConfig.get('binarySource') === 'docker' ? '0' : null,\n ...getGitEnvironmentVariables(['go']),\n },\n docker: {},\n toolConstraints: [\n {\n toolName: 'golang',\n constraint: goConstraints,\n },\n ],\n };\n\n const execCommands: string[] = [];\n\n let goGetDirs: string | undefined;\n if (config.goGetDirs) {\n goGetDirs = config.goGetDirs\n .filter((dir) => {\n const isValid = isValidLocalPath(dir);\n if (!isValid) {\n logger.warn({ dir }, 'Invalid path in goGetDirs');\n }\n return isValid;\n })\n .map(quote)\n .join(' ');\n\n if (goGetDirs === '') {\n throw new Error('Invalid goGetDirs');\n }\n }\n\n let args = `get -d -t ${goGetDirs ?? './...'}`;\n logger.trace({ cmd, args }, 'go get command included');\n execCommands.push(`${cmd} ${args}`);\n\n // Update import paths on major updates\n const isImportPathUpdateRequired =\n config.postUpdateOptions?.includes('gomodUpdateImportPaths') &&\n config.updateType === 'major';\n\n if (isImportPathUpdateRequired) {\n const updateImportCmds = getUpdateImportPathCmds(updatedDeps, config);\n if (updateImportCmds.length > 0) {\n logger.debug(updateImportCmds, 'update import path commands included');\n // The updates\n execCommands.push(...updateImportCmds);\n }\n }\n\n const mustSkipGoModTidy =\n !config.postUpdateOptions?.includes('gomodUpdateImportPaths') &&\n config.updateType === 'major';\n if (mustSkipGoModTidy) {\n logger.debug('go mod tidy command skipped');\n }\n\n let tidyOpts = '';\n if (config.postUpdateOptions?.includes('gomodTidy1.17')) {\n tidyOpts += ' -compat=1.17';\n }\n if (config.postUpdateOptions?.includes('gomodTidyE')) {\n tidyOpts += ' -e';\n }\n\n const isGoModTidyRequired =\n !mustSkipGoModTidy &&\n (config.postUpdateOptions?.includes('gomodTidy') === true ||\n config.postUpdateOptions?.includes('gomodTidy1.17') === true ||\n config.postUpdateOptions?.includes('gomodTidyE') === true ||\n (config.updateType === 'major' && isImportPathUpdateRequired));\n if (isGoModTidyRequired) {\n args = 'mod tidy' + tidyOpts;\n logger.debug('go mod tidy command included');\n execCommands.push(`${cmd} ${args}`);\n }\n\n const goWorkSumFileName = upath.join(goModDir, 'go.work.sum');\n if (useVendor) {\n // If we find a go.work, then use go workspace vendoring.\n const goWorkFile = await findLocalSiblingOrParent(\n goModFileName,\n 'go.work',\n );\n\n if (goWorkFile) {\n args = 'work vendor';\n logger.debug('using go work vendor');\n execCommands.push(`${cmd} ${args}`);\n\n args = 'work sync';\n logger.debug('using go work sync');\n execCommands.push(`${cmd} ${args}`);\n } else {\n args = 'mod vendor';\n logger.debug('using go mod vendor');\n execCommands.push(`${cmd} ${args}`);\n }\n\n if (isGoModTidyRequired) {\n args = 'mod tidy' + tidyOpts;\n logger.debug('go mod tidy command included');\n execCommands.push(`${cmd} ${args}`);\n }\n }\n\n // We tidy one more time as a solution for #6795\n if (isGoModTidyRequired) {\n args = 'mod tidy' + tidyOpts;\n logger.debug('go mod tidy command included');\n execCommands.push(`${cmd} ${args}`);\n }\n\n await exec(execCommands, execOptions);\n\n const status = await getRepoStatus();\n if (\n !status.modified.includes(sumFileName) &&\n !status.modified.includes(goModFileName) &&\n !status.modified.includes(goWorkSumFileName)\n ) {\n return null;\n }\n\n const res: UpdateArtifactsResult[] = [];\n if (status.modified.includes(sumFileName)) {\n logger.debug('Returning updated go.sum');\n res.push({\n file: {\n type: 'addition',\n path: sumFileName,\n contents: await readLocalFile(sumFileName),\n },\n });\n }\n\n if (status.modified.includes(goWorkSumFileName)) {\n logger.debug('Returning updated go.work.sum');\n res.push({\n file: {\n type: 'addition',\n path: goWorkSumFileName,\n contents: await readLocalFile(goWorkSumFileName),\n },\n });\n }\n\n // Include all the .go file import changes\n if (isImportPathUpdateRequired) {\n logger.debug('Returning updated go source files for import path changes');\n for (const f of status.modified) {\n if (f.endsWith('.go')) {\n res.push({\n file: {\n type: 'addition',\n path: f,\n contents: await readLocalFile(f),\n },\n });\n }\n }\n }\n\n if (useVendor) {\n for (const f of status.modified.concat(status.not_added)) {\n if (f.startsWith(vendorDir)) {\n res.push({\n file: {\n type: 'addition',\n path: f,\n contents: await readLocalFile(f),\n },\n });\n }\n }\n for (const f of coerceArray(status.deleted)) {\n res.push({\n file: {\n type: 'deletion',\n path: f,\n },\n });\n }\n }\n\n // TODO: throws in tests (#22198)\n const finalGoModContent = (await readLocalFile(goModFileName, 'utf8'))!\n .replace(regEx(/\\/\\/ renovate-replace /g), '')\n .replace(regEx(/renovate-replace-bracket/g), ')');\n if (finalGoModContent !== newGoModContent) {\n const artifactResult: UpdateArtifactsResult = {\n file: {\n type: 'addition',\n path: goModFileName,\n contents: finalGoModContent,\n },\n };\n\n const updatedDepNames = filterMap(updatedDeps, (dep) => dep?.depName);\n const extraDepsNotice = getExtraDepsNotice(\n newGoModContent,\n finalGoModContent,\n updatedDepNames,\n );\n\n if (extraDepsNotice) {\n artifactResult.notice = {\n file: goModFileName,\n message: extraDepsNotice,\n };\n }\n\n logger.debug('Found updated go.mod after go.sum update');\n res.push(artifactResult);\n }\n return res;\n } catch (err) {\n // istanbul ignore if\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.debug({ err }, 'Failed to update go.sum');\n return [\n {\n artifactError: {\n lockFile: sumFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n\nfunction getGoConstraints(content: string): string | undefined {\n const re = regEx(/^go\\s*(?<gover>\\d+\\.\\d+)$/m);\n const match = re.exec(content);\n if (!match?.groups?.gover) {\n return undefined;\n }\n return `^${match.groups.gover}`;\n}\n"]}
@@ -20,13 +20,13 @@ function updateDependency({ fileContent, upgrade, }) {
20
20
  logger_1.logger.warn('gomod manager does not support replacement updates yet');
21
21
  return null;
22
22
  }
23
- // istanbul ignore if: should never happen
23
+ /* v8 ignore next 3: should never happen */
24
24
  if (!currentName || !upgrade.managerData) {
25
25
  return null;
26
26
  }
27
27
  const currentNameNoVersion = getNameWithNoVersion(currentName);
28
28
  const lines = fileContent.split(regex_1.newlineRegex);
29
- // istanbul ignore if: hard to test
29
+ /* v8 ignore next 4: hard to test */
30
30
  if (lines.length <= upgrade.managerData.lineNumber) {
31
31
  logger_1.logger.warn('go.mod current line no longer exists after update');
32
32
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gomod/update.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO: types (#22198)\nimport { logger } from '../../../logger';\nimport { newlineRegex, regEx } from '../../../util/regex';\nimport type { UpdateDependencyConfig } from '../types';\n\nfunction getNameWithNoVersion(name: string): string {\n let nameNoVersion = name.split('/').slice(0, 3).join('/');\n if (nameNoVersion.startsWith('gopkg.in')) {\n nameNoVersion = nameNoVersion.replace(regEx(/\\.v\\d+$/), '');\n }\n return nameNoVersion;\n}\n\nexport function updateDependency({\n fileContent,\n upgrade,\n}: UpdateDependencyConfig): string | null {\n try {\n logger.debug(`gomod.updateDependency: ${upgrade.newValue}`);\n const { depType, updateType } = upgrade;\n const currentName = upgrade.depName;\n if (updateType === 'replacement') {\n logger.warn('gomod manager does not support replacement updates yet');\n return null;\n }\n // istanbul ignore if: should never happen\n if (!currentName || !upgrade.managerData) {\n return null;\n }\n const currentNameNoVersion = getNameWithNoVersion(currentName);\n const lines = fileContent.split(newlineRegex);\n // istanbul ignore if: hard to test\n if (lines.length <= upgrade.managerData.lineNumber) {\n logger.warn('go.mod current line no longer exists after update');\n return null;\n }\n const lineToChange = lines[upgrade.managerData.lineNumber];\n logger.trace({ upgrade, lineToChange }, 'go.mod current line');\n if (\n !lineToChange.includes(currentNameNoVersion) &&\n !lineToChange.includes('rethinkdb/rethinkdb-go.v5')\n ) {\n logger.debug(\n { lineToChange, depName: currentName },\n \"go.mod current line doesn't contain dependency\",\n );\n return null;\n }\n let updateLineExp: RegExp | undefined;\n\n if (depType === 'golang' || depType === 'toolchain') {\n updateLineExp = regEx(\n /(?<depPart>(?:toolchain )?go)(?<divider>\\s*)([^\\s]+|[\\w]+)/,\n );\n }\n if (depType === 'replace') {\n if (upgrade.managerData.multiLine) {\n updateLineExp = regEx(\n /^(?<depPart>\\s+[^\\s]+[\\s]+[=][>]+\\s+)(?<divider>[^\\s]+\\s+)[^\\s]+/,\n );\n } else {\n updateLineExp = regEx(\n /^(?<depPart>replace\\s+[^\\s]+[\\s]+[=][>]+\\s+)(?<divider>[^\\s]+\\s+)[^\\s]+/,\n );\n }\n } else if (depType === 'require' || depType === 'indirect') {\n if (upgrade.managerData.multiLine) {\n updateLineExp = regEx(/^(?<depPart>\\s+[^\\s]+)(?<divider>\\s+)[^\\s]+/);\n } else {\n updateLineExp = regEx(\n /^(?<depPart>require\\s+[^\\s]+)(?<divider>\\s+)[^\\s]+/,\n );\n }\n }\n if (updateLineExp && !updateLineExp.test(lineToChange)) {\n logger.debug('No line found to update');\n return null;\n }\n let newLine: string;\n if (upgrade.updateType === 'digest') {\n const newDigestRightSized = upgrade.newDigest!.substring(\n 0,\n upgrade.currentDigest!.length,\n );\n if (lineToChange.includes(newDigestRightSized)) {\n return fileContent;\n }\n logger.debug(\n { depName: currentName, lineToChange, newDigestRightSized },\n 'gomod: need to update digest',\n );\n newLine = lineToChange.replace(\n // TODO: can be undefined? (#22198)\n updateLineExp!,\n `$<depPart>$<divider>${newDigestRightSized}`,\n );\n } else {\n newLine = lineToChange.replace(\n // TODO: can be undefined? (#22198)\n updateLineExp!,\n `$<depPart>$<divider>${upgrade.newValue}`,\n );\n }\n if (upgrade.updateType === 'major') {\n logger.debug(`gomod: major update for ${currentName}`);\n if (currentName.startsWith('gopkg.in/')) {\n const oldV = currentName.split('.').pop();\n newLine = newLine.replace(`.${oldV}`, `.v${upgrade.newMajor}`);\n // Package renames - I couldn't think of a better place to do this\n newLine = newLine.replace(\n 'gorethink/gorethink.v5',\n 'rethinkdb/rethinkdb-go.v5',\n );\n } else if (\n upgrade.newMajor! > 1 &&\n !newLine.includes(`/v${upgrade.newMajor}`) &&\n !upgrade.newValue!.endsWith('+incompatible')\n ) {\n if (currentName === currentNameNoVersion) {\n // If package currently has no version, pin to latest one.\n newLine = newLine.replace(\n currentName,\n `${currentName}/v${upgrade.newMajor}`,\n );\n } else {\n // Replace version\n const [oldV] = upgrade.currentValue!.split('.');\n newLine = newLine.replace(\n regEx(`/${oldV}(\\\\s+)`, undefined, false),\n `/v${upgrade.newMajor}$1`,\n );\n }\n }\n }\n if (\n lineToChange.endsWith('+incompatible') &&\n !upgrade.newValue?.endsWith('+incompatible')\n ) {\n let toAdd = '+incompatible';\n\n if (upgrade.updateType === 'major' && upgrade.newMajor! >= 2) {\n toAdd = '';\n }\n newLine += toAdd;\n }\n if (newLine === lineToChange) {\n logger.debug('No changes necessary');\n return fileContent;\n }\n\n if (depType === 'indirect') {\n newLine = newLine.replace(\n regEx(/\\s*(?:\\/\\/\\s*indirect(?:\\s*;)?\\s*)*$/),\n ' // indirect',\n );\n }\n\n lines[upgrade.managerData.lineNumber] = newLine;\n return lines.join('\\n');\n } catch (err) {\n logger.debug({ err }, 'Error setting new go.mod version');\n return null;\n }\n}\n"]}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gomod/update.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO: types (#22198)\nimport { logger } from '../../../logger';\nimport { newlineRegex, regEx } from '../../../util/regex';\nimport type { UpdateDependencyConfig } from '../types';\n\nfunction getNameWithNoVersion(name: string): string {\n let nameNoVersion = name.split('/').slice(0, 3).join('/');\n if (nameNoVersion.startsWith('gopkg.in')) {\n nameNoVersion = nameNoVersion.replace(regEx(/\\.v\\d+$/), '');\n }\n return nameNoVersion;\n}\n\nexport function updateDependency({\n fileContent,\n upgrade,\n}: UpdateDependencyConfig): string | null {\n try {\n logger.debug(`gomod.updateDependency: ${upgrade.newValue}`);\n const { depType, updateType } = upgrade;\n const currentName = upgrade.depName;\n if (updateType === 'replacement') {\n logger.warn('gomod manager does not support replacement updates yet');\n return null;\n }\n /* v8 ignore next 3: should never happen */\n if (!currentName || !upgrade.managerData) {\n return null;\n }\n const currentNameNoVersion = getNameWithNoVersion(currentName);\n const lines = fileContent.split(newlineRegex);\n /* v8 ignore next 4: hard to test */\n if (lines.length <= upgrade.managerData.lineNumber) {\n logger.warn('go.mod current line no longer exists after update');\n return null;\n }\n const lineToChange = lines[upgrade.managerData.lineNumber];\n logger.trace({ upgrade, lineToChange }, 'go.mod current line');\n if (\n !lineToChange.includes(currentNameNoVersion) &&\n !lineToChange.includes('rethinkdb/rethinkdb-go.v5')\n ) {\n logger.debug(\n { lineToChange, depName: currentName },\n \"go.mod current line doesn't contain dependency\",\n );\n return null;\n }\n let updateLineExp: RegExp | undefined;\n\n if (depType === 'golang' || depType === 'toolchain') {\n updateLineExp = regEx(\n /(?<depPart>(?:toolchain )?go)(?<divider>\\s*)([^\\s]+|[\\w]+)/,\n );\n }\n if (depType === 'replace') {\n if (upgrade.managerData.multiLine) {\n updateLineExp = regEx(\n /^(?<depPart>\\s+[^\\s]+[\\s]+[=][>]+\\s+)(?<divider>[^\\s]+\\s+)[^\\s]+/,\n );\n } else {\n updateLineExp = regEx(\n /^(?<depPart>replace\\s+[^\\s]+[\\s]+[=][>]+\\s+)(?<divider>[^\\s]+\\s+)[^\\s]+/,\n );\n }\n } else if (depType === 'require' || depType === 'indirect') {\n if (upgrade.managerData.multiLine) {\n updateLineExp = regEx(/^(?<depPart>\\s+[^\\s]+)(?<divider>\\s+)[^\\s]+/);\n } else {\n updateLineExp = regEx(\n /^(?<depPart>require\\s+[^\\s]+)(?<divider>\\s+)[^\\s]+/,\n );\n }\n }\n if (updateLineExp && !updateLineExp.test(lineToChange)) {\n logger.debug('No line found to update');\n return null;\n }\n let newLine: string;\n if (upgrade.updateType === 'digest') {\n const newDigestRightSized = upgrade.newDigest!.substring(\n 0,\n upgrade.currentDigest!.length,\n );\n if (lineToChange.includes(newDigestRightSized)) {\n return fileContent;\n }\n logger.debug(\n { depName: currentName, lineToChange, newDigestRightSized },\n 'gomod: need to update digest',\n );\n newLine = lineToChange.replace(\n // TODO: can be undefined? (#22198)\n updateLineExp!,\n `$<depPart>$<divider>${newDigestRightSized}`,\n );\n } else {\n newLine = lineToChange.replace(\n // TODO: can be undefined? (#22198)\n updateLineExp!,\n `$<depPart>$<divider>${upgrade.newValue}`,\n );\n }\n if (upgrade.updateType === 'major') {\n logger.debug(`gomod: major update for ${currentName}`);\n if (currentName.startsWith('gopkg.in/')) {\n const oldV = currentName.split('.').pop();\n newLine = newLine.replace(`.${oldV}`, `.v${upgrade.newMajor}`);\n // Package renames - I couldn't think of a better place to do this\n newLine = newLine.replace(\n 'gorethink/gorethink.v5',\n 'rethinkdb/rethinkdb-go.v5',\n );\n } else if (\n upgrade.newMajor! > 1 &&\n !newLine.includes(`/v${upgrade.newMajor}`) &&\n !upgrade.newValue!.endsWith('+incompatible')\n ) {\n if (currentName === currentNameNoVersion) {\n // If package currently has no version, pin to latest one.\n newLine = newLine.replace(\n currentName,\n `${currentName}/v${upgrade.newMajor}`,\n );\n } else {\n // Replace version\n const [oldV] = upgrade.currentValue!.split('.');\n newLine = newLine.replace(\n regEx(`/${oldV}(\\\\s+)`, undefined, false),\n `/v${upgrade.newMajor}$1`,\n );\n }\n }\n }\n if (\n lineToChange.endsWith('+incompatible') &&\n !upgrade.newValue?.endsWith('+incompatible')\n ) {\n let toAdd = '+incompatible';\n\n if (upgrade.updateType === 'major' && upgrade.newMajor! >= 2) {\n toAdd = '';\n }\n newLine += toAdd;\n }\n if (newLine === lineToChange) {\n logger.debug('No changes necessary');\n return fileContent;\n }\n\n if (depType === 'indirect') {\n newLine = newLine.replace(\n regEx(/\\s*(?:\\/\\/\\s*indirect(?:\\s*;)?\\s*)*$/),\n ' // indirect',\n );\n }\n\n lines[upgrade.managerData.lineNumber] = newLine;\n return lines.join('\\n');\n } catch (err) {\n logger.debug({ err }, 'Error setting new go.mod version');\n return null;\n }\n}\n"]}
@@ -36,7 +36,7 @@ function parseVersion(toolData) {
36
36
  // e.g. 'erlang = ["23.3", "24.0"]'
37
37
  return toolData.length ? toolData[0] : null; // Get the first version in the array
38
38
  }
39
- if (is_1.default.nonEmptyString(toolData.version)) {
39
+ if (is_1.default.object(toolData) && is_1.default.nonEmptyString(toolData.version)) {
40
40
  // Handle the object case with a string version
41
41
  // e.g. 'python = { version = "3.11.2" }'
42
42
  return toolData.version;
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/mise/extract.ts"],"names":[],"mappings":";;AASA,gDAyBC;;AAlCD,kEAAkC;AAClC,4CAAyC;AAKzC,+DAAiE;AACjE,mCAAwC;AAExC,SAAgB,kBAAkB,CAChC,OAAe,EACf,WAAmB;IAEnB,eAAM,CAAC,KAAK,CAAC,2BAA2B,WAAW,GAAG,CAAC,CAAC;IAExD,MAAM,QAAQ,GAAG,IAAA,qBAAa,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACrD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAwB,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAE7B,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACrD,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;YAC3D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,CAAC;AAED,SAAS,YAAY,CAAC,QAAwB;IAC5C,IAAI,YAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChC,yBAAyB;QACzB,yBAAyB;QACzB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,YAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAE,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,wBAAwB;QACxB,mCAAmC;QACnC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,qCAAqC;IACpF,CAAC;IACD,IAAI,YAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,+CAA+C;QAC/C,yCAAyC;QACzC,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC;IACD,OAAO,IAAI,CAAC,CAAC,qCAAqC;AACpD,CAAC;AAED,SAAS,aAAa,CACpB,IAAY,EACZ,OAAsB;IAEtB,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,CAAC,kCAAkC;IACjD,CAAC;IAED,iEAAiE;IACjE,OAAO,CACL,oBAAoB,CAAC,iCAAW,EAAE,IAAI,EAAE,OAAO,CAAC;QAChD,oBAAoB,CAAC,iCAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CACjD,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,aAAgD,EAChD,IAAY,EACZ,OAAe;IAEf,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,4CAA4C;IAE9C,OAAO,CACL,CAAC,OAAO,cAAc,CAAC,MAAM,KAAK,UAAU;QAC1C,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC;QAChC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,IAAI,CACnC,CAAC,CAAC,+CAA+C;AACpD,CAAC;AAED,SAAS,gBAAgB,CACvB,IAAY,EACZ,OAAsB,EACtB,MAA4B;IAE5B,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,qBAAqB,EAAE,CAAC;IAC9D,CAAC;IACD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,wBAAwB,EAAE,CAAC;IACjE,CAAC;IACD,OAAO;QACL,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,OAAO;QACrB,GAAG,MAAM;KACV,CAAC;AACJ,CAAC","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport type { ToolingConfig } from '../asdf/upgradeable-tooling';\nimport type { PackageDependency, PackageFileContent } from '../types';\nimport type { MiseToolSchema } from './schema';\nimport type { ToolingDefinition } from './upgradeable-tooling';\nimport { asdfTooling, miseTooling } from './upgradeable-tooling';\nimport { parseTomlFile } from './utils';\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n): PackageFileContent | null {\n logger.trace(`mise.extractPackageFile(${packageFile})`);\n\n const misefile = parseTomlFile(content, packageFile);\n if (!misefile) {\n return null;\n }\n\n const deps: PackageDependency[] = [];\n const tools = misefile.tools;\n\n if (tools) {\n for (const [name, toolData] of Object.entries(tools)) {\n const version = parseVersion(toolData);\n const depName = name.trim();\n const toolConfig = getToolConfig(depName, version);\n const dep = createDependency(depName, version, toolConfig);\n deps.push(dep);\n }\n }\n\n return deps.length ? { deps } : null;\n}\n\nfunction parseVersion(toolData: MiseToolSchema): string | null {\n if (is.nonEmptyString(toolData)) {\n // Handle the string case\n // e.g. 'erlang = \"23.3\"'\n return toolData;\n }\n if (is.array(toolData, is.string)) {\n // Handle the array case\n // e.g. 'erlang = [\"23.3\", \"24.0\"]'\n return toolData.length ? toolData[0] : null; // Get the first version in the array\n }\n if (is.nonEmptyString(toolData.version)) {\n // Handle the object case with a string version\n // e.g. 'python = { version = \"3.11.2\" }'\n return toolData.version;\n }\n return null; // Return null if no version is found\n}\n\nfunction getToolConfig(\n name: string,\n version: string | null,\n): ToolingConfig | null {\n if (version === null) {\n return null; // Early return if version is null\n }\n\n // Try to get the config from miseTooling first, then asdfTooling\n return (\n getConfigFromTooling(miseTooling, name, version) ??\n getConfigFromTooling(asdfTooling, name, version)\n );\n}\n\nfunction getConfigFromTooling(\n toolingSource: Record<string, ToolingDefinition>,\n name: string,\n version: string,\n): ToolingConfig | null {\n const toolDefinition = toolingSource[name];\n if (!toolDefinition) {\n return null;\n } // Return null if no toolDefinition is found\n\n return (\n (typeof toolDefinition.config === 'function'\n ? toolDefinition.config(version)\n : toolDefinition.config) ?? null\n ); // Ensure null is returned instead of undefined\n}\n\nfunction createDependency(\n name: string,\n version: string | null,\n config: ToolingConfig | null,\n): PackageDependency {\n if (version === null) {\n return { depName: name, skipReason: 'unspecified-version' };\n }\n if (config === null) {\n return { depName: name, skipReason: 'unsupported-datasource' };\n }\n return {\n depName: name,\n currentValue: version,\n ...config,\n };\n}\n"]}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/mise/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport type { ToolingConfig } from '../asdf/upgradeable-tooling';\nimport type { PackageDependency, PackageFileContent } from '../types';\nimport type { MiseToolSchema } from './schema';\nimport type { ToolingDefinition } from './upgradeable-tooling';\nimport { asdfTooling, miseTooling } from './upgradeable-tooling';\nimport { parseTomlFile } from './utils';\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n): PackageFileContent | null {\n logger.trace(`mise.extractPackageFile(${packageFile})`);\n\n const misefile = parseTomlFile(content, packageFile);\n if (!misefile) {\n return null;\n }\n\n const deps: PackageDependency[] = [];\n const tools = misefile.tools;\n\n if (tools) {\n for (const [name, toolData] of Object.entries(tools)) {\n const version = parseVersion(toolData);\n const depName = name.trim();\n const toolConfig = getToolConfig(depName, version);\n const dep = createDependency(depName, version, toolConfig);\n deps.push(dep);\n }\n }\n\n return deps.length ? { deps } : null;\n}\n\nfunction parseVersion(toolData: MiseToolSchema): string | null {\n if (is.nonEmptyString(toolData)) {\n // Handle the string case\n // e.g. 'erlang = \"23.3\"'\n return toolData;\n }\n if (is.array(toolData, is.string)) {\n // Handle the array case\n // e.g. 'erlang = [\"23.3\", \"24.0\"]'\n return toolData.length ? toolData[0] : null; // Get the first version in the array\n }\n if (is.object(toolData) && is.nonEmptyString(toolData.version)) {\n // Handle the object case with a string version\n // e.g. 'python = { version = \"3.11.2\" }'\n return toolData.version;\n }\n return null; // Return null if no version is found\n}\n\nfunction getToolConfig(\n name: string,\n version: string | null,\n): ToolingConfig | null {\n if (version === null) {\n return null; // Early return if version is null\n }\n\n // Try to get the config from miseTooling first, then asdfTooling\n return (\n getConfigFromTooling(miseTooling, name, version) ??\n getConfigFromTooling(asdfTooling, name, version)\n );\n}\n\nfunction getConfigFromTooling(\n toolingSource: Record<string, ToolingDefinition>,\n name: string,\n version: string,\n): ToolingConfig | null {\n const toolDefinition = toolingSource[name];\n if (!toolDefinition) {\n return null;\n } // Return null if no toolDefinition is found\n\n return (\n (typeof toolDefinition.config === 'function'\n ? toolDefinition.config(version)\n : toolDefinition.config) ?? null\n ); // Ensure null is returned instead of undefined\n}\n\nfunction createDependency(\n name: string,\n version: string | null,\n config: ToolingConfig | null,\n): PackageDependency {\n if (version === null) {\n return { depName: name, skipReason: 'unspecified-version' };\n }\n if (config === null) {\n return { depName: name, skipReason: 'unsupported-datasource' };\n }\n return {\n depName: name,\n currentValue: version,\n ...config,\n };\n}\n"]}
@@ -183,6 +183,15 @@ function subset(subRange, superRange) {
183
183
  return false;
184
184
  }
185
185
  }
186
+ function intersects(subRange, superRange) {
187
+ try {
188
+ return npm_1.api.intersects(composer2npm(subRange), composer2npm(superRange));
189
+ }
190
+ catch (err) {
191
+ logger_1.logger.trace({ err }, 'composer.intersects error');
192
+ return false;
193
+ }
194
+ }
186
195
  function getNewValue({ currentValue, rangeStrategy, currentVersion, newVersion, }) {
187
196
  if (rangeStrategy === 'pin') {
188
197
  return newVersion;
@@ -330,6 +339,7 @@ exports.api = {
330
339
  getNewValue,
331
340
  sortVersions,
332
341
  subset,
342
+ intersects,
333
343
  };
334
344
  exports.default = exports.api;
335
345
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/versioning/composer/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport semver from 'semver';\nimport { parseRange } from 'semver-utils';\nimport { logger } from '../../../logger';\nimport type { RangeStrategy } from '../../../types/versioning';\nimport { regEx } from '../../../util/regex';\nimport { api as npm } from '../npm';\nimport type { NewValueConfig, VersioningApi } from '../types';\n\nexport const id = 'composer';\nexport const displayName = 'Composer';\nexport const urls = [\n 'https://getcomposer.org/doc/articles/versions.md',\n 'https://packagist.org/packages/composer/semver',\n 'https://madewithlove.be/tilde-and-caret-constraints/',\n 'https://semver.mwl.be',\n];\nexport const supportsRanges = true;\nexport const supportedRangeStrategies: RangeStrategy[] = [\n 'bump',\n 'widen',\n 'pin',\n 'replace',\n 'update-lockfile',\n];\n\nfunction getVersionParts(input: string): [string, string] {\n const versionParts = input.split('-');\n if (versionParts.length === 1) {\n return [input, ''];\n }\n\n return [versionParts[0], '-' + versionParts[1]];\n}\n\nfunction padZeroes(input: string): string {\n const [output, stability] = getVersionParts(input);\n\n const sections = output.split('.');\n while (sections.length < 3) {\n sections.push('0');\n }\n return sections.join('.') + stability;\n}\n\nfunction convertStabilityModifier(input: string): string {\n // Handle stability modifiers.\n const versionParts = input.split('@');\n if (versionParts.length === 1) {\n return input;\n }\n\n // 1.0@beta2 to 1.0-beta.2\n const stability = versionParts[1].replace(\n regEx(/(?:^|\\s)(beta|alpha|rc)([1-9][0-9]*)(?: |$)/gi),\n '$1.$2',\n );\n\n // If there is a stability part, npm semver expects the version\n // to be full\n return padZeroes(versionParts[0]) + '-' + stability;\n}\n\nfunction normalizeVersion(input: string): string {\n let output = input;\n output = output.replace(regEx(/(^|>|>=|\\^|~)v/i), '$1');\n return convertStabilityModifier(output);\n}\n\n/**\n * @param versions Version list in any format, it recognizes the specific patch format x.x.x-pXX\n * @param range Range in composer format\n * @param minMode If true, it will calculate minSatisfyingVersion, if false, it calculates the maxSatisfyingVersion\n * @returns min or max satisfyingVersion from the input\n */\nfunction calculateSatisfyingVersionIntenal(\n versions: string[],\n range: string,\n minMode: boolean,\n): string | null {\n // Because composer -p versions are considered stable, we have to remove the suffix for the npm.XXX functions.\n const versionsMapped = versions.map((x) => {\n return {\n origianl: x,\n cleaned: removeComposerSpecificPatchPart(x),\n npmVariant: composer2npm(removeComposerSpecificPatchPart(x)[0]),\n };\n });\n\n const npmVersions = versionsMapped.map((x) => x.npmVariant);\n const npmVersion = minMode\n ? npm.minSatisfyingVersion(npmVersions, composer2npm(range))\n : npm.getSatisfyingVersion(npmVersions, composer2npm(range));\n\n if (!npmVersion) {\n return null;\n }\n\n // After we find the npm versions, we select from them back in the mapping the possible patches.\n const candidates = versionsMapped\n .filter((x) => x.npmVariant === npmVersion)\n .sort((a, b) => (minMode ? 1 : -1) * sortVersions(a.origianl, b.origianl));\n\n return candidates[0].origianl;\n}\n\n/**\n * @param intput Version in any format, it recognizes the specific patch format x.x.x-pXX\n * @returns If input contains the specific patch, it returns the input with removed the patch and true, otherwise it retunrs the same string and false.\n */\nfunction removeComposerSpecificPatchPart(input: string): [string, boolean] {\n // the regex is based on the original from composer implementation https://github.com/composer/semver/blob/fa1ec24f0ab1efe642671ec15c51a3ab879f59bf/src/VersionParser.php#L137\n const pattern = /^v?\\d+(\\.\\d+(\\.\\d+(\\.\\d+)?)?)?(?<suffix>-p[1-9]\\d*)$/gi;\n const match = pattern.exec(input);\n\n return match\n ? [input.replace(match.groups!.suffix, ''), true]\n : [input, false];\n}\n\nfunction composer2npm(input: string): string {\n return input\n .split(regEx(/\\s*\\|\\|?\\s*/g))\n .map((part): string => {\n const cleanInput = normalizeVersion(part);\n if (npm.isVersion(cleanInput)) {\n return cleanInput;\n }\n if (npm.isVersion(padZeroes(cleanInput))) {\n return padZeroes(cleanInput);\n }\n const [versionId, stability] = getVersionParts(cleanInput);\n let output = versionId;\n\n // ~4 to ^4 and ~4.1 to ^4.1\n output = output.replace(\n regEx(/(?:^|\\s)~([1-9][0-9]*(?:\\.[0-9]*)?)(?: |$)/g),\n '^$1',\n );\n // ~0.4 to >=0.4 <1\n output = output.replace(\n regEx(/(?:^|\\s)~(0\\.[1-9][0-9]*)(?: |$)/g),\n '>=$1 <1',\n );\n\n // add extra digits to <8-DEV and <8.0-DEV\n output = output\n .replace(regEx(/^(<\\d+(\\.\\d+)?)$/g), '$1.0')\n .replace(regEx(/^(<\\d+(\\.\\d+)?)$/g), '$1.0');\n\n return output + stability;\n })\n .map((part) => part.replace(/([a-z])([0-9])/gi, '$1.$2'))\n .join(' || ');\n}\n\nfunction equals(a: string, b: string): boolean {\n return npm.equals(composer2npm(a), composer2npm(b));\n}\n\nfunction getMajor(version: string): number | null {\n const semverVersion = semver.coerce(composer2npm(version));\n return semverVersion ? npm.getMajor(semverVersion) : null;\n}\n\nfunction getMinor(version: string): number | null {\n const semverVersion = semver.coerce(composer2npm(version));\n return semverVersion ? npm.getMinor(semverVersion) : null;\n}\n\nfunction getPatch(version: string): number | null {\n const semverVersion = semver.coerce(composer2npm(version));\n\n // This returns only the numbers without the optional `-pXX` patch version supported by composer. Fixing that would require a bigger\n // refactoring, because the API supports only numbers.\n return semverVersion ? npm.getPatch(semverVersion) : null;\n}\n\nfunction isGreaterThan(a: string, b: string): boolean {\n return sortVersions(a, b) === 1;\n}\n\nfunction isLessThanRange(version: string, range: string): boolean {\n return !!npm.isLessThanRange?.(composer2npm(version), composer2npm(range));\n}\n\nfunction isSingleVersion(input: string): boolean {\n return !!input && npm.isSingleVersion(composer2npm(input));\n}\n\nfunction isStable(version: string): boolean {\n if (version) {\n // Composer considers patches `-pXX` as stable: https://github.com/composer/semver/blob/fa1ec24f0ab1efe642671ec15c51a3ab879f59bf/src/VersionParser.php#L568 but npm not.\n // In order to be able to use the standard npm.isStable function, we remove the potential patch version for the check.\n const [withoutPatch] = removeComposerSpecificPatchPart(version);\n return npm.isStable(composer2npm(withoutPatch));\n }\n\n return false;\n}\n\nexport function isValid(input: string): boolean {\n return !!input && npm.isValid(composer2npm(input));\n}\n\nexport function isVersion(input: string): boolean {\n return !!input && npm.isVersion(composer2npm(input));\n}\n\nfunction matches(version: string, range: string): boolean {\n return npm.matches(composer2npm(version), composer2npm(range));\n}\n\nfunction getSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n return calculateSatisfyingVersionIntenal(versions, range, false);\n}\n\nfunction minSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n return calculateSatisfyingVersionIntenal(versions, range, true);\n}\n\nfunction subset(subRange: string, superRange: string): boolean | undefined {\n try {\n return npm.subset!(composer2npm(subRange), composer2npm(superRange));\n } catch (err) {\n logger.trace({ err }, 'composer.subset error');\n return false;\n }\n}\n\nfunction getNewValue({\n currentValue,\n rangeStrategy,\n currentVersion,\n newVersion,\n}: NewValueConfig): string | null {\n if (rangeStrategy === 'pin') {\n return newVersion;\n }\n if (rangeStrategy === 'update-lockfile') {\n if (matches(newVersion, currentValue)) {\n return currentValue;\n }\n return getNewValue({\n currentValue,\n rangeStrategy: 'replace',\n currentVersion,\n newVersion,\n });\n }\n const currentMajor = currentVersion ? getMajor(currentVersion) : null;\n const toMajor = getMajor(newVersion);\n const toMinor = getMinor(newVersion);\n let newValue: string | null = null;\n if (isVersion(currentValue)) {\n newValue = newVersion;\n } else if (regEx(/^[~^](0\\.[1-9][0-9]*)$/).test(currentValue)) {\n const operator = currentValue.substring(0, 1);\n // handle ~0.4 case first\n if (toMajor === 0) {\n // TODO: types (#22198)\n newValue = `${operator}0.${toMinor!}`;\n } else {\n // TODO: types (#22198)\n newValue = `${operator}${toMajor!}.0`;\n }\n } else if (regEx(/^[~^]([0-9]*)$/).test(currentValue)) {\n // handle ~4 case\n const operator = currentValue.substring(0, 1);\n // TODO: types (#22198)\n newValue = `${operator}${toMajor!}`;\n } else if (\n toMajor &&\n regEx(/^[~^]([0-9]*(?:\\.[0-9]*)?)$/).test(currentValue)\n ) {\n const operator = currentValue.substring(0, 1);\n if (rangeStrategy === 'bump') {\n newValue = `${operator}${newVersion}`;\n } else if (\n (is.number(currentMajor) && toMajor > currentMajor) ||\n !toMinor\n ) {\n // handle ~4.1 case\n newValue = `${operator}${toMajor}.0`;\n } else {\n newValue = `${operator}${toMajor}.${toMinor}`;\n }\n } else if (\n currentVersion &&\n npm.isVersion(padZeroes(normalizeVersion(newVersion))) &&\n npm.isValid(normalizeVersion(currentValue)) &&\n composer2npm(currentValue) === normalizeVersion(currentValue)\n ) {\n newValue = npm.getNewValue({\n currentValue: normalizeVersion(currentValue),\n rangeStrategy,\n currentVersion: padZeroes(normalizeVersion(currentVersion)),\n newVersion: padZeroes(normalizeVersion(newVersion)),\n });\n }\n\n if (rangeStrategy === 'widen' && matches(newVersion, currentValue)) {\n newValue = currentValue;\n } else {\n const hasOr = currentValue.includes(' || ');\n if (hasOr || rangeStrategy === 'widen') {\n const splitValues = currentValue.split('||');\n const lastValue = splitValues[splitValues.length - 1];\n const replacementValue = getNewValue({\n currentValue: lastValue.trim(),\n rangeStrategy: 'replace',\n currentVersion,\n newVersion,\n });\n if (rangeStrategy === 'replace') {\n newValue = replacementValue;\n } else if (replacementValue) {\n const parsedRange = parseRange(replacementValue);\n const element = parsedRange[parsedRange.length - 1];\n if (element.operator?.startsWith('<')) {\n const splitCurrent = currentValue.split(element.operator);\n splitCurrent.pop();\n newValue = splitCurrent.join(element.operator) + replacementValue;\n } else {\n newValue = currentValue + ' || ' + replacementValue;\n }\n }\n }\n }\n\n if (!newValue) {\n logger.warn(\n { currentValue, rangeStrategy, currentVersion, newVersion },\n 'Unsupported composer value',\n );\n newValue = newVersion;\n }\n if (currentValue.split('.')[0].includes('v')) {\n newValue = newValue.replace(regEx(/([0-9])/), 'v$1');\n }\n\n // Preserve original min-stability specifier\n if (currentValue.includes('@')) {\n newValue += '@' + currentValue.split('@')[1];\n }\n\n return newValue;\n}\n\nfunction sortVersions(a: string, b: string): number {\n const [aWithoutPatch, aContainsPatch] = removeComposerSpecificPatchPart(a);\n const [bWithoutPatch, bContainsPatch] = removeComposerSpecificPatchPart(b);\n\n if (aContainsPatch === bContainsPatch) {\n // If both [a and b] contain patch version or both [a and b] do not contain patch version, then npm comparison deliveres correct results\n return npm.sortVersions(composer2npm(a), composer2npm(b));\n } else if (\n npm.equals(composer2npm(aWithoutPatch), composer2npm(bWithoutPatch))\n ) {\n // If only one [a or b] contains patch version and the parts without patch versions are equal, then the version with patch is greater (this is the case where npm comparison fails)\n return aContainsPatch ? 1 : -1;\n } else {\n // All other cases can be compared correctly by npm\n return npm.sortVersions(composer2npm(a), composer2npm(b));\n }\n}\n\nfunction isCompatible(version: string): boolean {\n return isVersion(version);\n}\n\nexport const api: VersioningApi = {\n equals,\n getMajor,\n getMinor,\n getPatch,\n isCompatible,\n isGreaterThan,\n isLessThanRange,\n isSingleVersion,\n isStable,\n isValid,\n isVersion,\n matches,\n getSatisfyingVersion,\n minSatisfyingVersion,\n getNewValue,\n sortVersions,\n subset,\n};\nexport default api;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/versioning/composer/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport semver from 'semver';\nimport { parseRange } from 'semver-utils';\nimport { logger } from '../../../logger';\nimport type { RangeStrategy } from '../../../types/versioning';\nimport { regEx } from '../../../util/regex';\nimport { api as npm } from '../npm';\nimport type { NewValueConfig, VersioningApi } from '../types';\n\nexport const id = 'composer';\nexport const displayName = 'Composer';\nexport const urls = [\n 'https://getcomposer.org/doc/articles/versions.md',\n 'https://packagist.org/packages/composer/semver',\n 'https://madewithlove.be/tilde-and-caret-constraints/',\n 'https://semver.mwl.be',\n];\nexport const supportsRanges = true;\nexport const supportedRangeStrategies: RangeStrategy[] = [\n 'bump',\n 'widen',\n 'pin',\n 'replace',\n 'update-lockfile',\n];\n\nfunction getVersionParts(input: string): [string, string] {\n const versionParts = input.split('-');\n if (versionParts.length === 1) {\n return [input, ''];\n }\n\n return [versionParts[0], '-' + versionParts[1]];\n}\n\nfunction padZeroes(input: string): string {\n const [output, stability] = getVersionParts(input);\n\n const sections = output.split('.');\n while (sections.length < 3) {\n sections.push('0');\n }\n return sections.join('.') + stability;\n}\n\nfunction convertStabilityModifier(input: string): string {\n // Handle stability modifiers.\n const versionParts = input.split('@');\n if (versionParts.length === 1) {\n return input;\n }\n\n // 1.0@beta2 to 1.0-beta.2\n const stability = versionParts[1].replace(\n regEx(/(?:^|\\s)(beta|alpha|rc)([1-9][0-9]*)(?: |$)/gi),\n '$1.$2',\n );\n\n // If there is a stability part, npm semver expects the version\n // to be full\n return padZeroes(versionParts[0]) + '-' + stability;\n}\n\nfunction normalizeVersion(input: string): string {\n let output = input;\n output = output.replace(regEx(/(^|>|>=|\\^|~)v/i), '$1');\n return convertStabilityModifier(output);\n}\n\n/**\n * @param versions Version list in any format, it recognizes the specific patch format x.x.x-pXX\n * @param range Range in composer format\n * @param minMode If true, it will calculate minSatisfyingVersion, if false, it calculates the maxSatisfyingVersion\n * @returns min or max satisfyingVersion from the input\n */\nfunction calculateSatisfyingVersionIntenal(\n versions: string[],\n range: string,\n minMode: boolean,\n): string | null {\n // Because composer -p versions are considered stable, we have to remove the suffix for the npm.XXX functions.\n const versionsMapped = versions.map((x) => {\n return {\n origianl: x,\n cleaned: removeComposerSpecificPatchPart(x),\n npmVariant: composer2npm(removeComposerSpecificPatchPart(x)[0]),\n };\n });\n\n const npmVersions = versionsMapped.map((x) => x.npmVariant);\n const npmVersion = minMode\n ? npm.minSatisfyingVersion(npmVersions, composer2npm(range))\n : npm.getSatisfyingVersion(npmVersions, composer2npm(range));\n\n if (!npmVersion) {\n return null;\n }\n\n // After we find the npm versions, we select from them back in the mapping the possible patches.\n const candidates = versionsMapped\n .filter((x) => x.npmVariant === npmVersion)\n .sort((a, b) => (minMode ? 1 : -1) * sortVersions(a.origianl, b.origianl));\n\n return candidates[0].origianl;\n}\n\n/**\n * @param intput Version in any format, it recognizes the specific patch format x.x.x-pXX\n * @returns If input contains the specific patch, it returns the input with removed the patch and true, otherwise it retunrs the same string and false.\n */\nfunction removeComposerSpecificPatchPart(input: string): [string, boolean] {\n // the regex is based on the original from composer implementation https://github.com/composer/semver/blob/fa1ec24f0ab1efe642671ec15c51a3ab879f59bf/src/VersionParser.php#L137\n const pattern = /^v?\\d+(\\.\\d+(\\.\\d+(\\.\\d+)?)?)?(?<suffix>-p[1-9]\\d*)$/gi;\n const match = pattern.exec(input);\n\n return match\n ? [input.replace(match.groups!.suffix, ''), true]\n : [input, false];\n}\n\nfunction composer2npm(input: string): string {\n return input\n .split(regEx(/\\s*\\|\\|?\\s*/g))\n .map((part): string => {\n const cleanInput = normalizeVersion(part);\n if (npm.isVersion(cleanInput)) {\n return cleanInput;\n }\n if (npm.isVersion(padZeroes(cleanInput))) {\n return padZeroes(cleanInput);\n }\n const [versionId, stability] = getVersionParts(cleanInput);\n let output = versionId;\n\n // ~4 to ^4 and ~4.1 to ^4.1\n output = output.replace(\n regEx(/(?:^|\\s)~([1-9][0-9]*(?:\\.[0-9]*)?)(?: |$)/g),\n '^$1',\n );\n // ~0.4 to >=0.4 <1\n output = output.replace(\n regEx(/(?:^|\\s)~(0\\.[1-9][0-9]*)(?: |$)/g),\n '>=$1 <1',\n );\n\n // add extra digits to <8-DEV and <8.0-DEV\n output = output\n .replace(regEx(/^(<\\d+(\\.\\d+)?)$/g), '$1.0')\n .replace(regEx(/^(<\\d+(\\.\\d+)?)$/g), '$1.0');\n\n return output + stability;\n })\n .map((part) => part.replace(/([a-z])([0-9])/gi, '$1.$2'))\n .join(' || ');\n}\n\nfunction equals(a: string, b: string): boolean {\n return npm.equals(composer2npm(a), composer2npm(b));\n}\n\nfunction getMajor(version: string): number | null {\n const semverVersion = semver.coerce(composer2npm(version));\n return semverVersion ? npm.getMajor(semverVersion) : null;\n}\n\nfunction getMinor(version: string): number | null {\n const semverVersion = semver.coerce(composer2npm(version));\n return semverVersion ? npm.getMinor(semverVersion) : null;\n}\n\nfunction getPatch(version: string): number | null {\n const semverVersion = semver.coerce(composer2npm(version));\n\n // This returns only the numbers without the optional `-pXX` patch version supported by composer. Fixing that would require a bigger\n // refactoring, because the API supports only numbers.\n return semverVersion ? npm.getPatch(semverVersion) : null;\n}\n\nfunction isGreaterThan(a: string, b: string): boolean {\n return sortVersions(a, b) === 1;\n}\n\nfunction isLessThanRange(version: string, range: string): boolean {\n return !!npm.isLessThanRange?.(composer2npm(version), composer2npm(range));\n}\n\nfunction isSingleVersion(input: string): boolean {\n return !!input && npm.isSingleVersion(composer2npm(input));\n}\n\nfunction isStable(version: string): boolean {\n if (version) {\n // Composer considers patches `-pXX` as stable: https://github.com/composer/semver/blob/fa1ec24f0ab1efe642671ec15c51a3ab879f59bf/src/VersionParser.php#L568 but npm not.\n // In order to be able to use the standard npm.isStable function, we remove the potential patch version for the check.\n const [withoutPatch] = removeComposerSpecificPatchPart(version);\n return npm.isStable(composer2npm(withoutPatch));\n }\n\n return false;\n}\n\nexport function isValid(input: string): boolean {\n return !!input && npm.isValid(composer2npm(input));\n}\n\nexport function isVersion(input: string): boolean {\n return !!input && npm.isVersion(composer2npm(input));\n}\n\nfunction matches(version: string, range: string): boolean {\n return npm.matches(composer2npm(version), composer2npm(range));\n}\n\nfunction getSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n return calculateSatisfyingVersionIntenal(versions, range, false);\n}\n\nfunction minSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n return calculateSatisfyingVersionIntenal(versions, range, true);\n}\n\nfunction subset(subRange: string, superRange: string): boolean | undefined {\n try {\n return npm.subset!(composer2npm(subRange), composer2npm(superRange));\n } catch (err) {\n logger.trace({ err }, 'composer.subset error');\n return false;\n }\n}\n\nfunction intersects(subRange: string, superRange: string): boolean {\n try {\n return npm.intersects!(composer2npm(subRange), composer2npm(superRange));\n } catch (err) {\n logger.trace({ err }, 'composer.intersects error');\n return false;\n }\n}\n\nfunction getNewValue({\n currentValue,\n rangeStrategy,\n currentVersion,\n newVersion,\n}: NewValueConfig): string | null {\n if (rangeStrategy === 'pin') {\n return newVersion;\n }\n if (rangeStrategy === 'update-lockfile') {\n if (matches(newVersion, currentValue)) {\n return currentValue;\n }\n return getNewValue({\n currentValue,\n rangeStrategy: 'replace',\n currentVersion,\n newVersion,\n });\n }\n const currentMajor = currentVersion ? getMajor(currentVersion) : null;\n const toMajor = getMajor(newVersion);\n const toMinor = getMinor(newVersion);\n let newValue: string | null = null;\n if (isVersion(currentValue)) {\n newValue = newVersion;\n } else if (regEx(/^[~^](0\\.[1-9][0-9]*)$/).test(currentValue)) {\n const operator = currentValue.substring(0, 1);\n // handle ~0.4 case first\n if (toMajor === 0) {\n // TODO: types (#22198)\n newValue = `${operator}0.${toMinor!}`;\n } else {\n // TODO: types (#22198)\n newValue = `${operator}${toMajor!}.0`;\n }\n } else if (regEx(/^[~^]([0-9]*)$/).test(currentValue)) {\n // handle ~4 case\n const operator = currentValue.substring(0, 1);\n // TODO: types (#22198)\n newValue = `${operator}${toMajor!}`;\n } else if (\n toMajor &&\n regEx(/^[~^]([0-9]*(?:\\.[0-9]*)?)$/).test(currentValue)\n ) {\n const operator = currentValue.substring(0, 1);\n if (rangeStrategy === 'bump') {\n newValue = `${operator}${newVersion}`;\n } else if (\n (is.number(currentMajor) && toMajor > currentMajor) ||\n !toMinor\n ) {\n // handle ~4.1 case\n newValue = `${operator}${toMajor}.0`;\n } else {\n newValue = `${operator}${toMajor}.${toMinor}`;\n }\n } else if (\n currentVersion &&\n npm.isVersion(padZeroes(normalizeVersion(newVersion))) &&\n npm.isValid(normalizeVersion(currentValue)) &&\n composer2npm(currentValue) === normalizeVersion(currentValue)\n ) {\n newValue = npm.getNewValue({\n currentValue: normalizeVersion(currentValue),\n rangeStrategy,\n currentVersion: padZeroes(normalizeVersion(currentVersion)),\n newVersion: padZeroes(normalizeVersion(newVersion)),\n });\n }\n\n if (rangeStrategy === 'widen' && matches(newVersion, currentValue)) {\n newValue = currentValue;\n } else {\n const hasOr = currentValue.includes(' || ');\n if (hasOr || rangeStrategy === 'widen') {\n const splitValues = currentValue.split('||');\n const lastValue = splitValues[splitValues.length - 1];\n const replacementValue = getNewValue({\n currentValue: lastValue.trim(),\n rangeStrategy: 'replace',\n currentVersion,\n newVersion,\n });\n if (rangeStrategy === 'replace') {\n newValue = replacementValue;\n } else if (replacementValue) {\n const parsedRange = parseRange(replacementValue);\n const element = parsedRange[parsedRange.length - 1];\n if (element.operator?.startsWith('<')) {\n const splitCurrent = currentValue.split(element.operator);\n splitCurrent.pop();\n newValue = splitCurrent.join(element.operator) + replacementValue;\n } else {\n newValue = currentValue + ' || ' + replacementValue;\n }\n }\n }\n }\n\n if (!newValue) {\n logger.warn(\n { currentValue, rangeStrategy, currentVersion, newVersion },\n 'Unsupported composer value',\n );\n newValue = newVersion;\n }\n if (currentValue.split('.')[0].includes('v')) {\n newValue = newValue.replace(regEx(/([0-9])/), 'v$1');\n }\n\n // Preserve original min-stability specifier\n if (currentValue.includes('@')) {\n newValue += '@' + currentValue.split('@')[1];\n }\n\n return newValue;\n}\n\nfunction sortVersions(a: string, b: string): number {\n const [aWithoutPatch, aContainsPatch] = removeComposerSpecificPatchPart(a);\n const [bWithoutPatch, bContainsPatch] = removeComposerSpecificPatchPart(b);\n\n if (aContainsPatch === bContainsPatch) {\n // If both [a and b] contain patch version or both [a and b] do not contain patch version, then npm comparison deliveres correct results\n return npm.sortVersions(composer2npm(a), composer2npm(b));\n } else if (\n npm.equals(composer2npm(aWithoutPatch), composer2npm(bWithoutPatch))\n ) {\n // If only one [a or b] contains patch version and the parts without patch versions are equal, then the version with patch is greater (this is the case where npm comparison fails)\n return aContainsPatch ? 1 : -1;\n } else {\n // All other cases can be compared correctly by npm\n return npm.sortVersions(composer2npm(a), composer2npm(b));\n }\n}\n\nfunction isCompatible(version: string): boolean {\n return isVersion(version);\n}\n\nexport const api: VersioningApi = {\n equals,\n getMajor,\n getMinor,\n getPatch,\n isCompatible,\n isGreaterThan,\n isLessThanRange,\n isSingleVersion,\n isStable,\n isValid,\n isVersion,\n matches,\n getSatisfyingVersion,\n minSatisfyingVersion,\n getNewValue,\n sortVersions,\n subset,\n intersects,\n};\nexport default api;\n"]}
@@ -20,7 +20,7 @@ exports.supportedRangeStrategies = [
20
20
  'pin',
21
21
  'replace',
22
22
  ];
23
- const { compare: sortVersions, maxSatisfying: getSatisfyingVersion, minSatisfying: minSatisfyingVersion, major: getMajor, minor: getMinor, patch: getPatch, satisfies: matches, valid, validRange, ltr: isLessThanRange, gt: isGreaterThan, eq: equals, subset, } = semver_1.default;
23
+ const { compare: sortVersions, maxSatisfying: getSatisfyingVersion, minSatisfying: minSatisfyingVersion, major: getMajor, minor: getMinor, patch: getPatch, satisfies: matches, valid, validRange, ltr: isLessThanRange, gt: isGreaterThan, eq: equals, subset, intersects, } = semver_1.default;
24
24
  // If this is left as an alias, inputs like "17.04.0" throw errors
25
25
  const isValid = (input) => !!validRange(input);
26
26
  exports.isValid = isValid;
@@ -48,6 +48,7 @@ exports.api = {
48
48
  minSatisfyingVersion,
49
49
  sortVersions,
50
50
  subset,
51
+ intersects,
51
52
  };
52
53
  exports.default = exports.api;
53
54
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/versioning/npm/index.ts"],"names":[],"mappings":";;;;AAAA,4DAA4B;AAC5B,0EAAmC;AAGnC,mCAAsC;AAEzB,QAAA,EAAE,GAAG,KAAK,CAAC;AACX,QAAA,WAAW,GAAG,KAAK,CAAC;AACpB,QAAA,IAAI,GAAG;IAClB,qBAAqB;IACrB,sCAAsC;IACtC,kDAAkD;IAClD,2BAA2B;CAC5B,CAAC;AACW,QAAA,cAAc,GAAG,IAAI,CAAC;AACtB,QAAA,wBAAwB,GAAoB;IACvD,MAAM;IACN,OAAO;IACP,KAAK;IACL,SAAS;CACV,CAAC;AAEF,MAAM,EACJ,OAAO,EAAE,YAAY,EACrB,aAAa,EAAE,oBAAoB,EACnC,aAAa,EAAE,oBAAoB,EACnC,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,OAAO,EAClB,KAAK,EACL,UAAU,EACV,GAAG,EAAE,eAAe,EACpB,EAAE,EAAE,aAAa,EACjB,EAAE,EAAE,MAAM,EACV,MAAM,GACP,GAAG,gBAAM,CAAC;AAEX,kEAAkE;AAC3D,MAAM,OAAO,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAA1D,QAAA,OAAO,WAAmD;AAChE,MAAM,SAAS,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAAvD,QAAA,SAAS,aAA8C;AAEpE,SAAS,eAAe,CAAC,UAAkB;IACzC,OAAO,CACL,IAAA,iBAAS,EAAC,UAAU,CAAC;QACrB,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,IAAA,iBAAS,EAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAC3E,CAAC;AACJ,CAAC;AAEY,QAAA,GAAG,GAAkB;IAChC,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,WAAW,EAAX,mBAAW;IACX,QAAQ;IACR,YAAY,EAAE,iBAAS;IACvB,aAAa;IACb,eAAe;IACf,eAAe;IACf,QAAQ,EAAE,uBAAM,CAAC,EAAE;IACnB,OAAO,EAAP,eAAO;IACP,SAAS,EAAT,iBAAS;IACT,OAAO;IACP,oBAAoB;IACpB,oBAAoB;IACpB,YAAY;IACZ,MAAM;CACP,CAAC;AAEF,kBAAe,WAAG,CAAC","sourcesContent":["import semver from 'semver';\nimport stable from 'semver-stable';\nimport type { RangeStrategy } from '../../../types/versioning';\nimport type { VersioningApi } from '../types';\nimport { getNewValue } from './range';\n\nexport const id = 'npm';\nexport const displayName = 'npm';\nexport const urls = [\n 'https://semver.org/',\n 'https://www.npmjs.com/package/semver',\n 'https://docs.npmjs.com/about-semantic-versioning',\n 'https://semver.npmjs.com/',\n];\nexport const supportsRanges = true;\nexport const supportedRangeStrategies: RangeStrategy[] = [\n 'bump',\n 'widen',\n 'pin',\n 'replace',\n];\n\nconst {\n compare: sortVersions,\n maxSatisfying: getSatisfyingVersion,\n minSatisfying: minSatisfyingVersion,\n major: getMajor,\n minor: getMinor,\n patch: getPatch,\n satisfies: matches,\n valid,\n validRange,\n ltr: isLessThanRange,\n gt: isGreaterThan,\n eq: equals,\n subset,\n} = semver;\n\n// If this is left as an alias, inputs like \"17.04.0\" throw errors\nexport const isValid = (input: string): boolean => !!validRange(input);\nexport const isVersion = (input: string): boolean => !!valid(input);\n\nfunction isSingleVersion(constraint: string): boolean {\n return (\n isVersion(constraint) ||\n (constraint?.startsWith('=') && isVersion(constraint.substring(1).trim()))\n );\n}\n\nexport const api: VersioningApi = {\n equals,\n getMajor,\n getMinor,\n getNewValue,\n getPatch,\n isCompatible: isVersion,\n isGreaterThan,\n isLessThanRange,\n isSingleVersion,\n isStable: stable.is,\n isValid,\n isVersion,\n matches,\n getSatisfyingVersion,\n minSatisfyingVersion,\n sortVersions,\n subset,\n};\n\nexport default api;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/versioning/npm/index.ts"],"names":[],"mappings":";;;;AAAA,4DAA4B;AAC5B,0EAAmC;AAGnC,mCAAsC;AAEzB,QAAA,EAAE,GAAG,KAAK,CAAC;AACX,QAAA,WAAW,GAAG,KAAK,CAAC;AACpB,QAAA,IAAI,GAAG;IAClB,qBAAqB;IACrB,sCAAsC;IACtC,kDAAkD;IAClD,2BAA2B;CAC5B,CAAC;AACW,QAAA,cAAc,GAAG,IAAI,CAAC;AACtB,QAAA,wBAAwB,GAAoB;IACvD,MAAM;IACN,OAAO;IACP,KAAK;IACL,SAAS;CACV,CAAC;AAEF,MAAM,EACJ,OAAO,EAAE,YAAY,EACrB,aAAa,EAAE,oBAAoB,EACnC,aAAa,EAAE,oBAAoB,EACnC,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,OAAO,EAClB,KAAK,EACL,UAAU,EACV,GAAG,EAAE,eAAe,EACpB,EAAE,EAAE,aAAa,EACjB,EAAE,EAAE,MAAM,EACV,MAAM,EACN,UAAU,GACX,GAAG,gBAAM,CAAC;AAEX,kEAAkE;AAC3D,MAAM,OAAO,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAA1D,QAAA,OAAO,WAAmD;AAChE,MAAM,SAAS,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAAvD,QAAA,SAAS,aAA8C;AAEpE,SAAS,eAAe,CAAC,UAAkB;IACzC,OAAO,CACL,IAAA,iBAAS,EAAC,UAAU,CAAC;QACrB,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,IAAA,iBAAS,EAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAC3E,CAAC;AACJ,CAAC;AAEY,QAAA,GAAG,GAAkB;IAChC,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,WAAW,EAAX,mBAAW;IACX,QAAQ;IACR,YAAY,EAAE,iBAAS;IACvB,aAAa;IACb,eAAe;IACf,eAAe;IACf,QAAQ,EAAE,uBAAM,CAAC,EAAE;IACnB,OAAO,EAAP,eAAO;IACP,SAAS,EAAT,iBAAS;IACT,OAAO;IACP,oBAAoB;IACpB,oBAAoB;IACpB,YAAY;IACZ,MAAM;IACN,UAAU;CACX,CAAC;AAEF,kBAAe,WAAG,CAAC","sourcesContent":["import semver from 'semver';\nimport stable from 'semver-stable';\nimport type { RangeStrategy } from '../../../types/versioning';\nimport type { VersioningApi } from '../types';\nimport { getNewValue } from './range';\n\nexport const id = 'npm';\nexport const displayName = 'npm';\nexport const urls = [\n 'https://semver.org/',\n 'https://www.npmjs.com/package/semver',\n 'https://docs.npmjs.com/about-semantic-versioning',\n 'https://semver.npmjs.com/',\n];\nexport const supportsRanges = true;\nexport const supportedRangeStrategies: RangeStrategy[] = [\n 'bump',\n 'widen',\n 'pin',\n 'replace',\n];\n\nconst {\n compare: sortVersions,\n maxSatisfying: getSatisfyingVersion,\n minSatisfying: minSatisfyingVersion,\n major: getMajor,\n minor: getMinor,\n patch: getPatch,\n satisfies: matches,\n valid,\n validRange,\n ltr: isLessThanRange,\n gt: isGreaterThan,\n eq: equals,\n subset,\n intersects,\n} = semver;\n\n// If this is left as an alias, inputs like \"17.04.0\" throw errors\nexport const isValid = (input: string): boolean => !!validRange(input);\nexport const isVersion = (input: string): boolean => !!valid(input);\n\nfunction isSingleVersion(constraint: string): boolean {\n return (\n isVersion(constraint) ||\n (constraint?.startsWith('=') && isVersion(constraint.substring(1).trim()))\n );\n}\n\nexport const api: VersioningApi = {\n equals,\n getMajor,\n getMinor,\n getNewValue,\n getPatch,\n isCompatible: isVersion,\n isGreaterThan,\n isLessThanRange,\n isSingleVersion,\n isStable: stable.is,\n isValid,\n isVersion,\n matches,\n getSatisfyingVersion,\n minSatisfyingVersion,\n sortVersions,\n subset,\n intersects,\n};\n\nexport default api;\n"]}
@@ -102,6 +102,10 @@ export interface VersioningApi {
102
102
  * @param superRange - the dom range
103
103
  */
104
104
  subset?(subRange: string, superRange: string): boolean | undefined;
105
+ /**
106
+ * Checks whether subRange intersects superRange.
107
+ */
108
+ intersects?(subRange: string, superRange: string): boolean;
105
109
  /**
106
110
  * Return whether unstable-to-unstable upgrades within the same major version are allowed.
107
111
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/modules/versioning/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { SemVer } from 'semver';\nimport type { RangeStrategy } from '../../types';\n\nexport interface NewValueConfig {\n currentValue: string;\n rangeStrategy: RangeStrategy;\n currentVersion?: string;\n newVersion: string;\n isReplacement?: boolean;\n}\nexport interface VersioningApi {\n // validation\n\n /**\n * Check whether the `input` is the valid version or range.\n *\n * For some managers, ranges are called \"constraints\",\"specifiers\", \"requirements\", etc.\n * We stick to the term \"range\" for all of it.\n */\n isValid(input: string): boolean;\n\n /**\n * Check whether the `input` is a valid version.\n *\n * There is no direct way to determine whether the `input` is the range,\n * but combination of `isVersion` and `isValid` can be used for that:\n *\n * `isValid(input) && !isVersion(input)`\n */\n isVersion(input: string | undefined | null): boolean;\n\n /**\n * Check whether the `input` is the:\n *\n * 1. Version, or\n * 2. Range with the special syntax of matching exactly one version:\n * - `==1.2.3` or `===1.2.3` for Python,\n * - `=1.2.3` for NPM,\n * - `[1.2.3]` for Maven or NuGet.\n *\n * This is used to provide pinning functionality.\n */\n isSingleVersion(input: string): boolean;\n\n /**\n * Check whether the `version` is considered to be \"stable\".\n */\n isStable(version: string): boolean;\n\n /**\n * Determines whether the version is compatible with the current one,\n * in some manager-dependent way.\n *\n * For most managers, all valid versions are compatible between each other.\n *\n * However, for example, Docker versions `1.2.3` and `1.2.4-alpine` are not compatible,\n * i.e. `1.2.4-alpine` is not a valid upgrade for `1.2.3`.\n */\n isCompatible(version: string, current?: string): boolean;\n\n // digestion of version\n\n getMajor(version: string | SemVer): null | number;\n getMinor(version: string | SemVer): null | number;\n getPatch(version: string | SemVer): null | number;\n\n // comparison\n\n /**\n * Check whether `version` and `other` are logically equivalent, even if\n * they're not the exact same string.\n *\n * For example, with Semver the build metadata should be ignored when comparing.\n */\n equals(version: string, other: string): boolean;\n\n /**\n * Check whether `version` is \"greater\" than the `other` version.\n */\n isGreaterThan(version: string, other: string): boolean;\n\n /**\n * Check whether the `version` is \"less\" than all the versions possible in\n * the `range`.\n */\n isLessThanRange?(version: string, range: string): boolean;\n\n /**\n * Select the highest version from `versions` that is within the given\n * `range` constraint, or return `null` if there is no matching version.\n */\n getSatisfyingVersion(versions: string[], range: string): string | null;\n\n /**\n * Select the lowest version from `versions` that is within the given\n * `range` constraint, or return `null` if there is no matching version.\n */\n minSatisfyingVersion(versions: string[], range: string): string | null;\n\n /**\n * Calculate a new version constraint based on the current constraint, the\n * `rangeStrategy` option, and the current and new version.\n */\n getNewValue(newValueConfig: NewValueConfig): string | null;\n\n /**\n * Compare two versions. Return `0` if `v1 == v2`, or `1` if `v1` is\n * greater, or `-1` if `v2` is greater.\n */\n sortVersions(version: string, other: string): number;\n\n /**\n * Check whether the `version` satisfies the `range` constraint.\n */\n matches(version: string, range: string): boolean;\n\n valueToVersion?(version: string): string;\n\n /**\n * @returns true if subRange is entirely contained by superRange, false otherwise,\n * and undefined if it cannot determine it.\n *\n * @param subRange - the sub range\n * @param superRange - the dom range\n */\n subset?(subRange: string, superRange: string): boolean | undefined;\n\n /**\n * Return whether unstable-to-unstable upgrades within the same major version are allowed.\n */\n allowUnstableMajorUpgrades?: boolean;\n\n /**\n * Check whether the `type` in the `a` and `b` version numbers match.\n * Both `a` and `b` must pass `isVersion`.\n */\n isSame?(type: 'major' | 'minor' | 'patch', a: string, b: string): boolean;\n}\n\nexport type VersioningApiConstructor = new (config?: string) => VersioningApi;\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/modules/versioning/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { SemVer } from 'semver';\nimport type { RangeStrategy } from '../../types';\n\nexport interface NewValueConfig {\n currentValue: string;\n rangeStrategy: RangeStrategy;\n currentVersion?: string;\n newVersion: string;\n isReplacement?: boolean;\n}\nexport interface VersioningApi {\n // validation\n\n /**\n * Check whether the `input` is the valid version or range.\n *\n * For some managers, ranges are called \"constraints\",\"specifiers\", \"requirements\", etc.\n * We stick to the term \"range\" for all of it.\n */\n isValid(input: string): boolean;\n\n /**\n * Check whether the `input` is a valid version.\n *\n * There is no direct way to determine whether the `input` is the range,\n * but combination of `isVersion` and `isValid` can be used for that:\n *\n * `isValid(input) && !isVersion(input)`\n */\n isVersion(input: string | undefined | null): boolean;\n\n /**\n * Check whether the `input` is the:\n *\n * 1. Version, or\n * 2. Range with the special syntax of matching exactly one version:\n * - `==1.2.3` or `===1.2.3` for Python,\n * - `=1.2.3` for NPM,\n * - `[1.2.3]` for Maven or NuGet.\n *\n * This is used to provide pinning functionality.\n */\n isSingleVersion(input: string): boolean;\n\n /**\n * Check whether the `version` is considered to be \"stable\".\n */\n isStable(version: string): boolean;\n\n /**\n * Determines whether the version is compatible with the current one,\n * in some manager-dependent way.\n *\n * For most managers, all valid versions are compatible between each other.\n *\n * However, for example, Docker versions `1.2.3` and `1.2.4-alpine` are not compatible,\n * i.e. `1.2.4-alpine` is not a valid upgrade for `1.2.3`.\n */\n isCompatible(version: string, current?: string): boolean;\n\n // digestion of version\n\n getMajor(version: string | SemVer): null | number;\n getMinor(version: string | SemVer): null | number;\n getPatch(version: string | SemVer): null | number;\n\n // comparison\n\n /**\n * Check whether `version` and `other` are logically equivalent, even if\n * they're not the exact same string.\n *\n * For example, with Semver the build metadata should be ignored when comparing.\n */\n equals(version: string, other: string): boolean;\n\n /**\n * Check whether `version` is \"greater\" than the `other` version.\n */\n isGreaterThan(version: string, other: string): boolean;\n\n /**\n * Check whether the `version` is \"less\" than all the versions possible in\n * the `range`.\n */\n isLessThanRange?(version: string, range: string): boolean;\n\n /**\n * Select the highest version from `versions` that is within the given\n * `range` constraint, or return `null` if there is no matching version.\n */\n getSatisfyingVersion(versions: string[], range: string): string | null;\n\n /**\n * Select the lowest version from `versions` that is within the given\n * `range` constraint, or return `null` if there is no matching version.\n */\n minSatisfyingVersion(versions: string[], range: string): string | null;\n\n /**\n * Calculate a new version constraint based on the current constraint, the\n * `rangeStrategy` option, and the current and new version.\n */\n getNewValue(newValueConfig: NewValueConfig): string | null;\n\n /**\n * Compare two versions. Return `0` if `v1 == v2`, or `1` if `v1` is\n * greater, or `-1` if `v2` is greater.\n */\n sortVersions(version: string, other: string): number;\n\n /**\n * Check whether the `version` satisfies the `range` constraint.\n */\n matches(version: string, range: string): boolean;\n\n valueToVersion?(version: string): string;\n\n /**\n * @returns true if subRange is entirely contained by superRange, false otherwise,\n * and undefined if it cannot determine it.\n *\n * @param subRange - the sub range\n * @param superRange - the dom range\n */\n subset?(subRange: string, superRange: string): boolean | undefined;\n\n /**\n * Checks whether subRange intersects superRange.\n */\n intersects?(subRange: string, superRange: string): boolean;\n\n /**\n * Return whether unstable-to-unstable upgrades within the same major version are allowed.\n */\n allowUnstableMajorUpgrades?: boolean;\n\n /**\n * Check whether the `type` in the `a` and `b` version numbers match.\n * Both `a` and `b` must pass `isVersion`.\n */\n isSame?(type: 'major' | 'minor' | 'patch', a: string, b: string): boolean;\n}\n\nexport type VersioningApiConstructor = new (config?: string) => VersioningApi;\n"]}
@@ -23,7 +23,9 @@ function getScheduleDesc(config) {
23
23
  function getDescriptionArray(config) {
24
24
  logger_1.logger.debug('getDescriptionArray()');
25
25
  logger_1.logger.trace({ config });
26
- const desc = is_1.default.nonEmptyArray(config.description) ? config.description : [];
26
+ const desc = is_1.default.array(config.description, is_1.default.string)
27
+ ? config.description
28
+ : [];
27
29
  return desc.concat(getScheduleDesc(config));
28
30
  }
29
31
  function getConfigDesc(config, packageFiles) {
@@ -1 +1 @@
1
- {"version":3,"file":"config-description.js","sourceRoot":"","sources":["../../../../../lib/workers/repository/onboarding/pr/config-description.ts"],"names":[],"mappings":";;AASA,0CAaC;AASD,sCAgCC;;AA/DD,kEAAkC;AAClC,gEAAiE;AAEjE,+CAA4C;AAE5C,kDAAiD;AAEjD,MAAM,iBAAiB,GAAG,6BAAe,CAAC,CAAC,CAAC,CAAC;AAE7C,SAAgB,eAAe,CAAC,MAAsB;IACpD,eAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAClC,eAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACzB,IACE,CAAC,MAAM,CAAC,QAAQ;QACf,MAAM,CAAC,QAAkB,KAAK,aAAa;QAC5C,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,aAAa,EACpC,CAAC;QACD,eAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,IAAI,GAAG,uCAAuC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC9E,OAAO,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAsB;IACjD,eAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACtC,eAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACzB,MAAM,IAAI,GAAG,YAAE,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,SAAgB,aAAa,CAC3B,MAAsB,EACtB,YAA4C;IAE5C,sBAAsB;IACtB,MAAM,UAAU,GAAG,6BAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,wBAAyB,CAAC;QAC3E,CAAC,CAAC,MAAM,CAAC,wBAAyB;QAClC,CAAC,CAAC,iBAAiB,CAAC;IACtB,eAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAChC,eAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACzB,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACnD,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;QAC3B,eAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC5C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,eAAM,CAAC,KAAK,CAAC,uCAAuC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,IAAI,IAAI,GAAG,0FAA0F,CAAC;IACtG,IAAI,IAAI,uEAAuE,CAAC;IAChF,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QAC3B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IACvB,CAAC,CAAC,CAAC;IACH,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,IAAI,IAAA,eAAO,EACb,uEAAuE,CACxE,CAAC;IACF,IAAI,IAAI,gCAAgC,UAAU,oBAChD,MAAM,CAAC,wBAAwB;QAC7B,CAAC,CAAC,6CAA6C;QAC/C,CAAC,CAAC,EACN,4EAA4E,CAAC;IAC7E,IAAI,IAAI,WAAW,CAAC;IACpB,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["import is from '@sindresorhus/is';\nimport { configFileNames } from '../../../../config/app-strings';\nimport type { RenovateConfig } from '../../../../config/types';\nimport { logger } from '../../../../logger';\nimport type { PackageFile } from '../../../../modules/manager/types';\nimport { emojify } from '../../../../util/emoji';\n\nconst defaultConfigFile = configFileNames[0];\n\nexport function getScheduleDesc(config: RenovateConfig): string[] {\n logger.debug('getScheduleDesc()');\n logger.trace({ config });\n if (\n !config.schedule ||\n (config.schedule as never) === 'at any time' ||\n config.schedule[0] === 'at any time'\n ) {\n logger.debug('No schedule');\n return [];\n }\n const desc = `Run Renovate on following schedule: ${String(config.schedule)}`;\n return [desc];\n}\n\nfunction getDescriptionArray(config: RenovateConfig): string[] {\n logger.debug('getDescriptionArray()');\n logger.trace({ config });\n const desc = is.nonEmptyArray(config.description) ? config.description : [];\n return desc.concat(getScheduleDesc(config));\n}\n\nexport function getConfigDesc(\n config: RenovateConfig,\n packageFiles?: Record<string, PackageFile[]>,\n): string {\n // TODO: type (#22198)\n const configFile = configFileNames.includes(config.onboardingConfigFileName!)\n ? config.onboardingConfigFileName!\n : defaultConfigFile;\n logger.debug('getConfigDesc()');\n logger.trace({ config });\n const descriptionArr = getDescriptionArray(config);\n if (!descriptionArr.length) {\n logger.debug('No config description found');\n return '';\n }\n logger.debug(`Found description array with length:${descriptionArr.length}`);\n let desc = `\\n### Configuration Summary\\n\\nBased on the default config's presets, Renovate will:\\n\\n`;\n desc += ` - Start dependency updates only once this onboarding PR is merged\\n`;\n descriptionArr.forEach((d) => {\n desc += ` - ${d}\\n`;\n });\n desc += '\\n';\n desc += emojify(\n `:abcd: Do you want to change how Renovate upgrades your dependencies?`,\n );\n desc += ` Add your custom config to \\`${configFile}\\` in this branch${\n config.onboardingRebaseCheckbox\n ? ' and select the Retry/Rebase checkbox below'\n : ''\n }. Renovate will update the Pull Request description the next time it runs.`;\n desc += '\\n\\n---\\n';\n return desc;\n}\n"]}
1
+ {"version":3,"file":"config-description.js","sourceRoot":"","sources":["../../../../../lib/workers/repository/onboarding/pr/config-description.ts"],"names":[],"mappings":";;AASA,0CAaC;AAWD,sCAgCC;;AAjED,kEAAkC;AAClC,gEAAiE;AAEjE,+CAA4C;AAE5C,kDAAiD;AAEjD,MAAM,iBAAiB,GAAG,6BAAe,CAAC,CAAC,CAAC,CAAC;AAE7C,SAAgB,eAAe,CAAC,MAAsB;IACpD,eAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAClC,eAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACzB,IACE,CAAC,MAAM,CAAC,QAAQ;QACf,MAAM,CAAC,QAAkB,KAAK,aAAa;QAC5C,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,aAAa,EACpC,CAAC;QACD,eAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,IAAI,GAAG,uCAAuC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC9E,OAAO,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAsB;IACjD,eAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACtC,eAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACzB,MAAM,IAAI,GAAG,YAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,YAAE,CAAC,MAAM,CAAC;QAClD,CAAC,CAAC,MAAM,CAAC,WAAW;QACpB,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,SAAgB,aAAa,CAC3B,MAAsB,EACtB,YAA4C;IAE5C,sBAAsB;IACtB,MAAM,UAAU,GAAG,6BAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,wBAAyB,CAAC;QAC3E,CAAC,CAAC,MAAM,CAAC,wBAAyB;QAClC,CAAC,CAAC,iBAAiB,CAAC;IACtB,eAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAChC,eAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACzB,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACnD,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;QAC3B,eAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC5C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,eAAM,CAAC,KAAK,CAAC,uCAAuC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,IAAI,IAAI,GAAG,0FAA0F,CAAC;IACtG,IAAI,IAAI,uEAAuE,CAAC;IAChF,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QAC3B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IACvB,CAAC,CAAC,CAAC;IACH,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,IAAI,IAAA,eAAO,EACb,uEAAuE,CACxE,CAAC;IACF,IAAI,IAAI,gCAAgC,UAAU,oBAChD,MAAM,CAAC,wBAAwB;QAC7B,CAAC,CAAC,6CAA6C;QAC/C,CAAC,CAAC,EACN,4EAA4E,CAAC;IAC7E,IAAI,IAAI,WAAW,CAAC;IACpB,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["import is from '@sindresorhus/is';\nimport { configFileNames } from '../../../../config/app-strings';\nimport type { RenovateConfig } from '../../../../config/types';\nimport { logger } from '../../../../logger';\nimport type { PackageFile } from '../../../../modules/manager/types';\nimport { emojify } from '../../../../util/emoji';\n\nconst defaultConfigFile = configFileNames[0];\n\nexport function getScheduleDesc(config: RenovateConfig): string[] {\n logger.debug('getScheduleDesc()');\n logger.trace({ config });\n if (\n !config.schedule ||\n (config.schedule as never) === 'at any time' ||\n config.schedule[0] === 'at any time'\n ) {\n logger.debug('No schedule');\n return [];\n }\n const desc = `Run Renovate on following schedule: ${String(config.schedule)}`;\n return [desc];\n}\n\nfunction getDescriptionArray(config: RenovateConfig): string[] {\n logger.debug('getDescriptionArray()');\n logger.trace({ config });\n const desc = is.array(config.description, is.string)\n ? config.description\n : [];\n return desc.concat(getScheduleDesc(config));\n}\n\nexport function getConfigDesc(\n config: RenovateConfig,\n packageFiles?: Record<string, PackageFile[]>,\n): string {\n // TODO: type (#22198)\n const configFile = configFileNames.includes(config.onboardingConfigFileName!)\n ? config.onboardingConfigFileName!\n : defaultConfigFile;\n logger.debug('getConfigDesc()');\n logger.trace({ config });\n const descriptionArr = getDescriptionArray(config);\n if (!descriptionArr.length) {\n logger.debug('No config description found');\n return '';\n }\n logger.debug(`Found description array with length:${descriptionArr.length}`);\n let desc = `\\n### Configuration Summary\\n\\nBased on the default config's presets, Renovate will:\\n\\n`;\n desc += ` - Start dependency updates only once this onboarding PR is merged\\n`;\n descriptionArr.forEach((d) => {\n desc += ` - ${d}\\n`;\n });\n desc += '\\n';\n desc += emojify(\n `:abcd: Do you want to change how Renovate upgrades your dependencies?`,\n );\n desc += ` Add your custom config to \\`${configFile}\\` in this branch${\n config.onboardingRebaseCheckbox\n ? ' and select the Retry/Rebase checkbox below'\n : ''\n }. Renovate will update the Pull Request description the next time it runs.`;\n desc += '\\n\\n---\\n';\n return desc;\n}\n"]}
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": "39.188.2",
4
+ "version": "39.188.4",
5
5
  "type": "commonjs",
6
6
  "bin": {
7
7
  "renovate": "dist/renovate.js",
@@ -16,7 +16,7 @@
16
16
  "compile:ts": "tsc -p tsconfig.app.json",
17
17
  "config-validator": "tsx lib/config-validator.ts",
18
18
  "create-json-schema": "tsx tools/generate-schema.ts && prettier --write --cache 'renovate-schema.json'",
19
- "debug": "NODE_OPTIONS=--inspect-brk tsx lib/renovate.ts",
19
+ "debug": "tsx --inspect-brk lib/renovate.ts",
20
20
  "doc-fix": "run-s markdown-lint-fix prettier-fix",
21
21
  "doc-fix-everything": "run-s doc-fix doc-fence-check lint-documentation",
22
22
  "doc-fence-check": "node tools/check-fenced-code.mjs",