renovate 44.111.1 → 44.111.2

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.
@@ -147,12 +147,12 @@ function getNewValue({ currentValue, rangeStrategy, currentVersion, newVersion }
147
147
  let newValue = null;
148
148
  if (isVersion(currentValue)) newValue = newVersion;
149
149
  else if (regEx(/^[~^](?:0\.[1-9][0-9]*)$/).test(currentValue)) {
150
- const operator = currentValue.substring(0, 1);
150
+ const operator = currentValue.at(0);
151
151
  if (toMajor === 0) newValue = `${operator}0.${toMinor}`;
152
152
  else newValue = `${operator}${toMajor}.0`;
153
- } else if (regEx(/^[~^](?:[0-9]*)$/).test(currentValue)) newValue = `${currentValue.substring(0, 1)}${toMajor}`;
153
+ } else if (regEx(/^[~^](?:[0-9]*)$/).test(currentValue)) newValue = `${currentValue.at(0)}${toMajor}`;
154
154
  else if (toMajor && regEx(/^[~^](?:[0-9]*(?:\.[0-9]*)?)$/).test(currentValue)) {
155
- const operator = currentValue.substring(0, 1);
155
+ const operator = currentValue.at(0);
156
156
  if (rangeStrategy === "bump") newValue = `${operator}${newVersion}`;
157
157
  else if (isNumber(currentMajor) && toMajor > currentMajor || !toMinor) newValue = `${operator}${toMajor}.0`;
158
158
  else newValue = `${operator}${toMajor}.${toMinor}`;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["npm"],"sources":["../../../../lib/modules/versioning/composer/index.ts"],"sourcesContent":["import { isNumber } from '@sindresorhus/is';\nimport semver from 'semver';\nimport { parseRange } from 'semver-utils';\nimport { logger } from '../../../logger/index.ts';\nimport type { RangeStrategy } from '../../../types/versioning.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { api as npm } from '../npm/index.ts';\nimport type { NewValueConfig, VersioningApi } from '../types.ts';\n\nexport const id = 'composer';\nexport const displayName = 'Composer';\nexport const urls = [\n '[Composer versions](https://getcomposer.org/doc/articles/versions.md)',\n '[composer/semver package](https://packagist.org/packages/composer/semver)',\n '[Tilde and caret constraints](https://madewithlove.be/tilde-and-caret-constraints/)',\n '[Composer semver checker](https://semver.mwl.be)',\n];\nexport const supportsRanges = true;\nexport const supportedRangeStrategies: RangeStrategy[] = [\n 'bump',\n 'widen',\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)(?<label>beta|alpha|rc)(?<num>[1-9][0-9]*)(?: |$)/gi),\n '$<label>.$<num>',\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 // Strip leading + prefix (not a valid composer constraint operator)\n output = output.replace(regEx(/^\\+/), '');\n output = output.replace(regEx(/(?<prefix>^|>|>=|\\^|~)v/i), '$<prefix>');\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 = regEx(\n /^v?\\d+(?:\\.\\d+(?:\\.\\d+(?:\\.\\d+)?)?)?(?<suffix>-p[1-9]\\d*)$/gi,\n );\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)~(?<minVersion>[1-9][0-9]*(?:\\.[0-9]*)?)(?: |$)/g),\n '^$<minVersion>',\n );\n // ~0.4 to >=0.4 <1\n output = output.replace(\n regEx(/(?:^|\\s)~(?<minVersion>0\\.[1-9][0-9]*)(?: |$)/g),\n '>=$<minVersion> <1',\n );\n\n // add extra digits to <8-DEV and <8.0-DEV\n output = output\n .replace(regEx(/^(?<version><\\d+(?:\\.\\d+)?)$/g), '$<version>.0')\n .replace(regEx(/^(?<version><\\d+(?:\\.\\d+)?)$/g), '$<version>.0');\n\n return output + stability;\n })\n .map((part) =>\n part.replace(\n regEx(/(?<letter>[a-z])(?<digit>[0-9])/gi),\n '$<letter>.$<digit>',\n ),\n )\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 === '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 ((isNumber(currentMajor) && toMajor > currentMajor) || !toMinor) {\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.at(-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 {\n // the recursive call above always produces a value: `getNewValue`\n // falls back to the new version when nothing else matched\n const parsedRange = parseRange(replacementValue!);\n const element = parsedRange.at(-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(/(?<digit>[0-9])/), 'v$<digit>');\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 }\n if (npm.equals(composer2npm(aWithoutPatch), composer2npm(bWithoutPatch))) {\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 }\n // All other cases can be compared correctly by npm\n return npm.sortVersions(composer2npm(a), composer2npm(b));\n}\n\nfunction isCompatible(version: string): boolean {\n return isVersion(version);\n}\n\nfunction isBreaking(current: string, version: string): boolean {\n return npm.isBreaking!(composer2npm(current), composer2npm(version));\n}\n\nexport const api: VersioningApi = {\n equals,\n getMajor,\n getMinor,\n getPatch,\n isBreaking,\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"],"mappings":";;;;;;;AASA,MAAa,KAAK;AAgBlB,SAAS,gBAAgB,OAAiC;CACxD,MAAM,eAAe,MAAM,MAAM,GAAG;CACpC,IAAI,aAAa,WAAW,GAC1B,OAAO,CAAC,OAAO,EAAE;CAGnB,OAAO,CAAC,aAAa,IAAI,IAAI,aAAa,IAAI;AAChD;AAEA,SAAS,UAAU,OAAuB;CACxC,MAAM,CAAC,QAAQ,aAAa,gBAAgB,KAAK;CAEjD,MAAM,WAAW,OAAO,MAAM,GAAG;CACjC,OAAO,SAAS,SAAS,GACvB,SAAS,KAAK,GAAG;CAEnB,OAAO,GAAG,SAAS,KAAK,GAAG,IAAI;AACjC;AAEA,SAAS,yBAAyB,OAAuB;CAEvD,MAAM,eAAe,MAAM,MAAM,GAAG;CACpC,IAAI,aAAa,WAAW,GAC1B,OAAO;CAIT,MAAM,YAAY,aAAa,EAAE,CAAC,QAChC,MAAM,6DAA6D,GACnE,iBACF;CAIA,OAAO,GAAG,UAAU,aAAa,EAAE,EAAE,GAAG;AAC1C;AAEA,SAAS,iBAAiB,OAAuB;CAC/C,IAAI,SAAS;CAEb,SAAS,OAAO,QAAQ,MAAM,KAAK,GAAG,EAAE;CACxC,SAAS,OAAO,QAAQ,MAAM,0BAA0B,GAAG,WAAW;CACtE,OAAO,yBAAyB,MAAM;AACxC;;;;;;;AAQA,SAAS,kCACP,UACA,OACA,SACe;CAEf,MAAM,iBAAiB,SAAS,KAAK,MAAM;EACzC,OAAO;GACL,UAAU;GACV,SAAS,gCAAgC,CAAC;GAC1C,YAAY,aAAa,gCAAgC,CAAC,CAAC,CAAC,EAAE;EAChE;CACF,CAAC;CAED,MAAM,cAAc,eAAe,KAAK,MAAM,EAAE,UAAU;CAC1D,MAAM,aAAa,UACfA,MAAI,qBAAqB,aAAa,aAAa,KAAK,CAAC,IACzDA,MAAI,qBAAqB,aAAa,aAAa,KAAK,CAAC;CAE7D,IAAI,CAAC,YACH,OAAO;CAQT,OAJmB,eAChB,QAAQ,MAAM,EAAE,eAAe,UAAU,CAAC,CAC1C,MAAM,GAAG,OAAO,UAAU,IAAI,MAAM,aAAa,EAAE,UAAU,EAAE,QAAQ,CAE1D,CAAC,CAAC,EAAE,CAAC;AACvB;;;;;AAMA,SAAS,gCAAgC,OAAkC;CAKzE,MAAM,QAHU,MACd,8DAEkB,CAAC,CAAC,KAAK,KAAK;CAEhC,OAAO,QACH,CAAC,MAAM,QAAQ,MAAM,OAAQ,QAAQ,EAAE,GAAG,IAAI,IAC9C,CAAC,OAAO,KAAK;AACnB;AAEA,SAAS,aAAa,OAAuB;CAC3C,OAAO,MACJ,MAAM,MAAM,cAAc,CAAC,CAAC,CAC5B,KAAK,SAAiB;EACrB,MAAM,aAAa,iBAAiB,IAAI;EACxC,IAAIA,MAAI,UAAU,UAAU,GAC1B,OAAO;EAET,IAAIA,MAAI,UAAU,UAAU,UAAU,CAAC,GACrC,OAAO,UAAU,UAAU;EAE7B,MAAM,CAAC,WAAW,aAAa,gBAAgB,UAAU;EACzD,IAAI,SAAS;EAGb,SAAS,OAAO,QACd,MAAM,0DAA0D,GAChE,gBACF;EAEA,SAAS,OAAO,QACd,MAAM,gDAAgD,GACtD,oBACF;EAGA,SAAS,OACN,QAAQ,MAAM,+BAA+B,GAAG,cAAc,CAAC,CAC/D,QAAQ,MAAM,+BAA+B,GAAG,cAAc;EAEjE,OAAO,SAAS;CAClB,CAAC,CAAC,CACD,KAAK,SACJ,KAAK,QACH,MAAM,mCAAmC,GACzC,oBACF,CACF,CAAC,CACA,KAAK,MAAM;AAChB;AAEA,SAAS,OAAO,GAAW,GAAoB;CAC7C,OAAOA,MAAI,OAAO,aAAa,CAAC,GAAG,aAAa,CAAC,CAAC;AACpD;AAEA,SAAS,SAAS,SAAgC;CAChD,MAAM,gBAAgB,OAAO,OAAO,aAAa,OAAO,CAAC;CACzD,OAAO,gBAAgBA,MAAI,SAAS,aAAa,IAAI;AACvD;AAEA,SAAS,SAAS,SAAgC;CAChD,MAAM,gBAAgB,OAAO,OAAO,aAAa,OAAO,CAAC;CACzD,OAAO,gBAAgBA,MAAI,SAAS,aAAa,IAAI;AACvD;AAEA,SAAS,SAAS,SAAgC;CAChD,MAAM,gBAAgB,OAAO,OAAO,aAAa,OAAO,CAAC;CAIzD,OAAO,gBAAgBA,MAAI,SAAS,aAAa,IAAI;AACvD;AAEA,SAAS,cAAc,GAAW,GAAoB;CACpD,OAAO,aAAa,GAAG,CAAC,MAAM;AAChC;AAEA,SAAS,gBAAgB,SAAiB,OAAwB;CAChE,OAAO,CAAC,CAACA,MAAI,kBAAkB,aAAa,OAAO,GAAG,aAAa,KAAK,CAAC;AAC3E;AAEA,SAAS,gBAAgB,OAAwB;CAC/C,OAAO,CAAC,CAAC,SAASA,MAAI,gBAAgB,aAAa,KAAK,CAAC;AAC3D;AAEA,SAAS,SAAS,SAA0B;CAC1C,IAAI,SAAS;EAGX,MAAM,CAAC,gBAAgB,gCAAgC,OAAO;EAC9D,OAAOA,MAAI,SAAS,aAAa,YAAY,CAAC;CAChD;CAEA,OAAO;AACT;AAEA,SAAgB,QAAQ,OAAwB;CAC9C,OAAO,CAAC,CAAC,SAASA,MAAI,QAAQ,aAAa,KAAK,CAAC;AACnD;AAEA,SAAgB,UAAU,OAAwB;CAChD,OAAO,CAAC,CAAC,SAASA,MAAI,UAAU,aAAa,KAAK,CAAC;AACrD;AAEA,SAAS,QAAQ,SAAiB,OAAwB;CACxD,OAAOA,MAAI,QAAQ,aAAa,OAAO,GAAG,aAAa,KAAK,CAAC;AAC/D;AAEA,SAAS,qBACP,UACA,OACe;CACf,OAAO,kCAAkC,UAAU,OAAO,KAAK;AACjE;AAEA,SAAS,qBACP,UACA,OACe;CACf,OAAO,kCAAkC,UAAU,OAAO,IAAI;AAChE;AAEA,SAAS,OAAO,UAAkB,YAAyC;CACzE,IAAI;EACF,OAAOA,MAAI,OAAQ,aAAa,QAAQ,GAAG,aAAa,UAAU,CAAC;CACrE,SAAS,KAAK;EACZ,OAAO,MAAM,EAAE,IAAI,GAAG,uBAAuB;EAC7C,OAAO;CACT;AACF;AAEA,SAAS,WAAW,UAAkB,YAA6B;CACjE,IAAI;EACF,OAAOA,MAAI,WAAY,aAAa,QAAQ,GAAG,aAAa,UAAU,CAAC;CACzE,SAAS,KAAK;EACZ,OAAO,MAAM,EAAE,IAAI,GAAG,2BAA2B;EACjD,OAAO;CACT;AACF;AAEA,SAAS,YAAY,EACnB,cACA,eACA,gBACA,cACgC;CAChC,IAAI,kBAAkB,mBAAmB;EACvC,IAAI,QAAQ,YAAY,YAAY,GAClC,OAAO;EAET,OAAO,YAAY;GACjB;GACA,eAAe;GACf;GACA;EACF,CAAC;CACH;CACA,MAAM,eAAe,iBAAiB,SAAS,cAAc,IAAI;CACjE,MAAM,UAAU,SAAS,UAAU;CACnC,MAAM,UAAU,SAAS,UAAU;CACnC,IAAI,WAA0B;CAC9B,IAAI,UAAU,YAAY,GACxB,WAAW;MACN,IAAI,MAAM,0BAA0B,CAAC,CAAC,KAAK,YAAY,GAAG;EAC/D,MAAM,WAAW,aAAa,UAAU,GAAG,CAAC;EAE5C,IAAI,YAAY,GAEd,WAAW,GAAG,SAAS,IAAI;OAG3B,WAAW,GAAG,WAAW,QAAS;CAEtC,OAAO,IAAI,MAAM,kBAAkB,CAAC,CAAC,KAAK,YAAY,GAIpD,WAAW,GAFM,aAAa,UAAU,GAAG,CAEtB,IAAI;MACpB,IACL,WACA,MAAM,+BAA+B,CAAC,CAAC,KAAK,YAAY,GACxD;EACA,MAAM,WAAW,aAAa,UAAU,GAAG,CAAC;EAC5C,IAAI,kBAAkB,QACpB,WAAW,GAAG,WAAW;OACpB,IAAK,SAAS,YAAY,KAAK,UAAU,gBAAiB,CAAC,SAEhE,WAAW,GAAG,WAAW,QAAQ;OAEjC,WAAW,GAAG,WAAW,QAAQ,GAAG;CAExC,OAAO,IACL,kBACAA,MAAI,UAAU,UAAU,iBAAiB,UAAU,CAAC,CAAC,KACrDA,MAAI,QAAQ,iBAAiB,YAAY,CAAC,KAC1C,aAAa,YAAY,MAAM,iBAAiB,YAAY,GAE5D,WAAWA,MAAI,YAAY;EACzB,cAAc,iBAAiB,YAAY;EAC3C;EACA,gBAAgB,UAAU,iBAAiB,cAAc,CAAC;EAC1D,YAAY,UAAU,iBAAiB,UAAU,CAAC;CACpD,CAAC;CAGH,IAAI,kBAAkB,WAAW,QAAQ,YAAY,YAAY,GAC/D,WAAW;MAGX,IADc,aAAa,SAAS,MAC5B,KAAK,kBAAkB,SAAS;EAGtC,MAAM,mBAAmB,YAAY;GACnC,cAHkB,aAAa,MAAM,IACX,CAAC,CAAC,GAAG,EAET,CAAC,CAAC,KAAK;GAC7B,eAAe;GACf;GACA;EACF,CAAC;EACD,IAAI,kBAAkB,WACpB,WAAW;OACN;GAIL,MAAM,UADc,WAAW,gBACL,CAAC,CAAC,GAAG,EAAE;GACjC,IAAI,QAAQ,UAAU,WAAW,GAAG,GAAG;IACrC,MAAM,eAAe,aAAa,MAAM,QAAQ,QAAQ;IACxD,aAAa,IAAI;IACjB,WAAW,GAAG,aAAa,KAAK,QAAQ,QAAQ,IAAI;GACtD,OACE,WAAW,GAAG,aAAa,MAAM;EAErC;CACF;CAGF,IAAI,CAAC,UAAU;EACb,OAAO,KACL;GAAE;GAAc;GAAe;GAAgB;EAAW,GAC1D,4BACF;EACA,WAAW;CACb;CACA,IAAI,aAAa,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,SAAS,GAAG,GACzC,WAAW,SAAS,QAAQ,MAAM,iBAAiB,GAAG,WAAW;CAInE,IAAI,aAAa,SAAS,GAAG,GAC3B,YAAY,IAAI,aAAa,MAAM,GAAG,CAAC,CAAC;CAG1C,OAAO;AACT;AAEA,SAAS,aAAa,GAAW,GAAmB;CAClD,MAAM,CAAC,eAAe,kBAAkB,gCAAgC,CAAC;CACzE,MAAM,CAAC,eAAe,kBAAkB,gCAAgC,CAAC;CAEzE,IAAI,mBAAmB,gBAErB,OAAOA,MAAI,aAAa,aAAa,CAAC,GAAG,aAAa,CAAC,CAAC;CAE1D,IAAIA,MAAI,OAAO,aAAa,aAAa,GAAG,aAAa,aAAa,CAAC,GAErE,OAAO,iBAAiB,IAAI;CAG9B,OAAOA,MAAI,aAAa,aAAa,CAAC,GAAG,aAAa,CAAC,CAAC;AAC1D;AAEA,SAAS,aAAa,SAA0B;CAC9C,OAAO,UAAU,OAAO;AAC1B;AAEA,SAAS,WAAW,SAAiB,SAA0B;CAC7D,OAAOA,MAAI,WAAY,aAAa,OAAO,GAAG,aAAa,OAAO,CAAC;AACrE;AAEA,MAAa,MAAqB;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF"}
1
+ {"version":3,"file":"index.js","names":["npm"],"sources":["../../../../lib/modules/versioning/composer/index.ts"],"sourcesContent":["import { isNumber } from '@sindresorhus/is';\nimport semver from 'semver';\nimport { parseRange } from 'semver-utils';\nimport { logger } from '../../../logger/index.ts';\nimport type { RangeStrategy } from '../../../types/versioning.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { api as npm } from '../npm/index.ts';\nimport type { NewValueConfig, VersioningApi } from '../types.ts';\n\nexport const id = 'composer';\nexport const displayName = 'Composer';\nexport const urls = [\n '[Composer versions](https://getcomposer.org/doc/articles/versions.md)',\n '[composer/semver package](https://packagist.org/packages/composer/semver)',\n '[Tilde and caret constraints](https://madewithlove.be/tilde-and-caret-constraints/)',\n '[Composer semver checker](https://semver.mwl.be)',\n];\nexport const supportsRanges = true;\nexport const supportedRangeStrategies: RangeStrategy[] = [\n 'bump',\n 'widen',\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)(?<label>beta|alpha|rc)(?<num>[1-9][0-9]*)(?: |$)/gi),\n '$<label>.$<num>',\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 // Strip leading + prefix (not a valid composer constraint operator)\n output = output.replace(regEx(/^\\+/), '');\n output = output.replace(regEx(/(?<prefix>^|>|>=|\\^|~)v/i), '$<prefix>');\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 = regEx(\n /^v?\\d+(?:\\.\\d+(?:\\.\\d+(?:\\.\\d+)?)?)?(?<suffix>-p[1-9]\\d*)$/gi,\n );\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)~(?<minVersion>[1-9][0-9]*(?:\\.[0-9]*)?)(?: |$)/g),\n '^$<minVersion>',\n );\n // ~0.4 to >=0.4 <1\n output = output.replace(\n regEx(/(?:^|\\s)~(?<minVersion>0\\.[1-9][0-9]*)(?: |$)/g),\n '>=$<minVersion> <1',\n );\n\n // add extra digits to <8-DEV and <8.0-DEV\n output = output\n .replace(regEx(/^(?<version><\\d+(?:\\.\\d+)?)$/g), '$<version>.0')\n .replace(regEx(/^(?<version><\\d+(?:\\.\\d+)?)$/g), '$<version>.0');\n\n return output + stability;\n })\n .map((part) =>\n part.replace(\n regEx(/(?<letter>[a-z])(?<digit>[0-9])/gi),\n '$<letter>.$<digit>',\n ),\n )\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 === '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.at(0)!;\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.at(0)!;\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.at(0)!;\n if (rangeStrategy === 'bump') {\n newValue = `${operator}${newVersion}`;\n } else if ((isNumber(currentMajor) && toMajor > currentMajor) || !toMinor) {\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.at(-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 {\n // the recursive call above always produces a value: `getNewValue`\n // falls back to the new version when nothing else matched\n const parsedRange = parseRange(replacementValue!);\n const element = parsedRange.at(-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(/(?<digit>[0-9])/), 'v$<digit>');\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 }\n if (npm.equals(composer2npm(aWithoutPatch), composer2npm(bWithoutPatch))) {\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 }\n // All other cases can be compared correctly by npm\n return npm.sortVersions(composer2npm(a), composer2npm(b));\n}\n\nfunction isCompatible(version: string): boolean {\n return isVersion(version);\n}\n\nfunction isBreaking(current: string, version: string): boolean {\n return npm.isBreaking!(composer2npm(current), composer2npm(version));\n}\n\nexport const api: VersioningApi = {\n equals,\n getMajor,\n getMinor,\n getPatch,\n isBreaking,\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"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "renovate",
3
3
  "description": "Automated dependency updates. Flexible so you don't need to be.",
4
- "version": "44.111.1",
4
+ "version": "44.111.2",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "renovate": "dist/renovate.js",
@@ -158,7 +158,7 @@
158
158
  "github-url-from-git": "1.5.0",
159
159
  "glob": "13.0.6",
160
160
  "global-agent": "3.0.0",
161
- "google-auth-library": "11.0.2",
161
+ "google-auth-library": "11.1.0",
162
162
  "got": "16.0.0",
163
163
  "graph-data-structure": "4.5.0",
164
164
  "handlebars": "4.7.9",
@@ -223,7 +223,7 @@
223
223
  "@hyrious/marshal": "0.3.4",
224
224
  "@ls-lint/ls-lint": "2.3.1",
225
225
  "@openpgp/web-stream-tools": "0.3.1",
226
- "@oxlint/plugins": "1.82.0",
226
+ "@oxlint/plugins": "1.83.0",
227
227
  "@semantic-release/exec": "7.1.0",
228
228
  "@smithy/util-stream": "4.8.2",
229
229
  "@types/adm-zip": "0.5.8",
@@ -279,7 +279,7 @@
279
279
  "nock": "14.0.17",
280
280
  "npm-run-all2": "9.0.3",
281
281
  "nyc": "18.0.0",
282
- "oxlint": "1.82.0",
282
+ "oxlint": "1.83.0",
283
283
  "oxlint-tsgolint": "7.0.2001",
284
284
  "rimraf": "6.1.3",
285
285
  "semantic-release": "25.0.9",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$id": "https://docs.renovatebot.com/renovate-schema.json",
3
- "title": "JSON schema for Renovate 44.111.1 config files (https://renovatebot.com/)",
3
+ "title": "JSON schema for Renovate 44.111.2 config files (https://renovatebot.com/)",
4
4
  "$schema": "http://json-schema.org/draft-07/schema#",
5
- "x-renovate-version": "44.111.1",
5
+ "x-renovate-version": "44.111.2",
6
6
  "allowComments": true,
7
7
  "type": "object",
8
8
  "definitions": {