renovate 43.139.2 → 43.139.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.
@@ -1,4 +1,4 @@
1
- import { DatasourceApi, DigestConfig, GetDigestInputConfig, GetPkgReleasesConfig, GetReleasesConfig, PostprocessReleaseConfig, PostprocessReleaseResult, RegistryStrategy, Release, ReleaseResult, SourceUrlSupport } from "./types.js";
1
+ import { DatasourceApi, DigestConfig, GetDigestInputConfig, GetPkgReleasesConfig, GetReleasesConfig, PostprocessReleaseConfig, PostprocessReleaseResult, RegistryStrategy, Release, ReleaseResult, ReleaseTags, SourceUrlSupport } from "./types.js";
2
2
  import { AsyncResult } from "../../util/result.js";
3
3
  import { isGetPkgReleasesConfig } from "./common.js";
4
4
 
@@ -12,5 +12,5 @@ declare function supportsDigests(datasource: string | undefined): boolean;
12
12
  declare function getDigest(config: GetDigestInputConfig, value?: string): Promise<string | null>;
13
13
  declare function getDefaultConfig(datasource: string): Promise<Record<string, unknown>>;
14
14
  //#endregion
15
- export { DatasourceApi, DigestConfig, GetDigestInputConfig, GetPkgReleasesConfig, GetReleasesConfig, PostprocessReleaseConfig, PostprocessReleaseResult, RegistryStrategy, Release, ReleaseResult, SourceUrlSupport, applyDatasourceFilters, getDatasourceList, getDatasources, getDefaultConfig, getDigest, getPkgReleases, getRawPkgReleases, isGetPkgReleasesConfig, supportsDigests };
15
+ export { DatasourceApi, DigestConfig, GetDigestInputConfig, GetPkgReleasesConfig, GetReleasesConfig, PostprocessReleaseConfig, PostprocessReleaseResult, RegistryStrategy, Release, ReleaseResult, ReleaseTags, SourceUrlSupport, applyDatasourceFilters, getDatasourceList, getDatasources, getDefaultConfig, getDigest, getPkgReleases, getRawPkgReleases, isGetPkgReleasesConfig, supportsDigests };
16
16
  //# sourceMappingURL=index.d.ts.map
@@ -74,11 +74,16 @@ interface Release {
74
74
  isLatest?: boolean;
75
75
  attestation?: boolean;
76
76
  }
77
+ interface ReleaseTags {
78
+ /** The latest release, according to the datasource **/
79
+ latest?: string;
80
+ [key: string]: string | undefined;
81
+ }
77
82
  interface ReleaseResult {
78
83
  deprecationMessage?: string;
79
84
  isPrivate?: boolean;
80
85
  releases: Release[];
81
- tags?: Record<string, string> | undefined;
86
+ tags?: ReleaseTags | undefined;
82
87
  changelogContent?: string;
83
88
  changelogUrl?: string;
84
89
  dependencyUrl?: string;
@@ -162,5 +167,5 @@ interface DatasourceApi extends ModuleApi {
162
167
  postprocessRelease(config: PostprocessReleaseConfig, release: Release): Promise<PostprocessReleaseResult>;
163
168
  }
164
169
  //#endregion
165
- export { DatasourceApi, DigestConfig, GetDigestInputConfig, GetPkgReleasesConfig, GetReleasesConfig, PostprocessReleaseConfig, PostprocessReleaseResult, RegistryStrategy, Release, ReleaseResult, SourceUrlSupport };
170
+ export { DatasourceApi, DigestConfig, GetDigestInputConfig, GetPkgReleasesConfig, GetReleasesConfig, PostprocessReleaseConfig, PostprocessReleaseResult, RegistryStrategy, Release, ReleaseResult, ReleaseTags, SourceUrlSupport };
166
171
  //# sourceMappingURL=types.d.ts.map
@@ -74,6 +74,7 @@ function isGreaterThan(x, y) {
74
74
  return semver.gt(a, b);
75
75
  }
76
76
  function matches(version, range) {
77
+ if (parseVersionCoerced(version) && massageValue(version) === massageValue(range)) return true;
77
78
  const v = parseVersion(version);
78
79
  if (!v) return false;
79
80
  const rv = parseVersion(range);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../lib/modules/versioning/github-actions/index.ts"],"sourcesContent":["import { isUndefined } from '@sindresorhus/is';\nimport type { SemVer } from 'semver';\nimport semver from 'semver';\nimport { logger } from '../../../logger/index.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport type { NewValueConfig, VersioningApi } from '../types.ts';\n\nexport const id = 'github-actions';\nexport const displayName = 'GitHub Actions';\nexport const urls = [\n 'https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/find-and-customize-actions#using-release-management-for-your-custom-actions',\n];\nexport const supportsRanges = true;\nexport const supportedRangeStrategies = ['pin', 'replace'];\n\nfunction massageValue(input: string): string {\n return input.trim().replace(regEx(/^v/i), '');\n}\n\nfunction parseVersion(input: string): SemVer | null {\n return semver.parse(massageValue(input));\n}\n\ninterface Range {\n major: number;\n minor?: number;\n}\n\nfunction parseRange(input: string): Range | null {\n const stripped = massageValue(input);\n const coerced = semver.coerce(stripped);\n if (!coerced) {\n return null;\n }\n const { major, minor } = coerced;\n\n if (regEx(/^\\d+$/).test(stripped)) {\n return { major };\n }\n\n return { major, minor };\n}\n\n/*\n * Like parseVersion but also accepts floating tags (e.g. `v1`, `v1.2`)\n * by coercing them to full semver.\n */\nfunction parseVersionCoerced(input: string): SemVer | null {\n const v = parseVersion(input);\n if (v) {\n return v;\n }\n const stripped = massageValue(input);\n if (!regEx(/^\\d/).test(stripped)) {\n return null;\n }\n return semver.coerce(stripped);\n}\n\nfunction isValid(input: string): boolean {\n return !!parseVersion(input) || !!parseRange(input);\n}\n\nfunction isVersion(input: string | undefined | null): boolean {\n if (!input) {\n return false;\n }\n\n if (parseVersion(input)) {\n return true;\n }\n\n const stripped = massageValue(input);\n if (!regEx(/^\\d/).test(stripped)) {\n return false;\n }\n\n return parseRange(input) !== null;\n}\n\nfunction isStable(version: string): boolean {\n const v = parseVersionCoerced(version);\n if (!v) {\n return false;\n }\n\n return v.prerelease.length === 0;\n}\n\nfunction isSingleVersion(input: string): boolean {\n return !!parseVersion(input);\n}\n\nfunction getMajor(version: string): number | null {\n return parseVersionCoerced(version)?.major ?? null;\n}\n\nfunction getMinor(version: string): number | null {\n return parseVersionCoerced(version)?.minor ?? null;\n}\n\nfunction getPatch(version: string): number | null {\n return parseVersionCoerced(version)?.patch ?? null;\n}\n\nfunction sortVersions(x: string, y: string): number {\n const a = parseVersionCoerced(x);\n const b = parseVersionCoerced(y);\n if (!a || !b) {\n return 0;\n }\n return semver.compare(a, b);\n}\n\nfunction equals(x: string, y: string): boolean {\n const a = parseVersionCoerced(x);\n const b = parseVersionCoerced(y);\n if (!a || !b) {\n return false;\n }\n return semver.eq(a, b);\n}\n\nfunction isGreaterThan(x: string, y: string): boolean {\n const a = parseVersionCoerced(x);\n const b = parseVersionCoerced(y);\n if (!a || !b) {\n return false;\n }\n return semver.gt(a, b);\n}\n\nfunction matches(version: string, range: string): boolean {\n const v = parseVersion(version);\n if (!v) {\n return false;\n }\n\n const rv = parseVersion(range);\n if (rv) {\n return semver.eq(v, rv);\n }\n\n const r = parseRange(range);\n if (!r) {\n return false;\n }\n\n if (v.prerelease.length > 0) {\n return false;\n }\n\n if (v.major !== r.major) {\n return false;\n }\n\n if (isUndefined(r.minor)) {\n return true;\n }\n\n return v.minor === r.minor;\n}\n\nfunction getSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n const sortedVersions = versions.sort(sortVersions).reverse();\n for (const version of sortedVersions) {\n if (matches(version, range)) {\n return version;\n }\n }\n return null;\n}\n\nfunction minSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n const sortedVersions = versions.sort(sortVersions);\n for (const version of sortedVersions) {\n if (matches(version, range)) {\n return version;\n }\n }\n return null;\n}\n\nfunction isLessThanRange(version: string, range: string): boolean {\n const v = parseVersionCoerced(version);\n const r = parseRange(range);\n\n if (!v || !r) {\n return false;\n }\n\n if (v.major !== r.major) {\n return v.major < r.major;\n }\n\n if (isUndefined(r.minor)) {\n return false;\n }\n\n if (v.minor !== r.minor) {\n return v.minor < r.minor;\n }\n\n return false;\n}\n\nfunction getNewValue({\n currentValue,\n currentVersion,\n rangeStrategy,\n newVersion,\n allVersions,\n}: NewValueConfig): string | null {\n if (rangeStrategy === 'pin') {\n return newVersion;\n }\n\n const range = parseRange(currentValue);\n if (!range) {\n return newVersion;\n }\n\n // When a minor (i.e. `v1.2`), don't return a less-specific tag (i.e. `v1`), even if it's found in `allVersions`\n const minLevel = isUndefined(range.minor) ? 'major' : 'minor';\n const [prefix] = currentValue.split(massageValue(currentValue));\n const newParsed = parseVersion(newVersion);\n if (!newParsed) {\n const newCoerced = parseVersionCoerced(newVersion);\n if (newCoerced) {\n // check that we're not returning a version that doesn't exist\n // for instance, in the case `v5.5` is tagged, but there's no `v5` (or if it's been deleted)\n const shortest = getShortestMatchingVersion(\n prefix,\n newCoerced,\n allVersions ?? new Set(),\n minLevel,\n );\n if (shortest) {\n return shortest;\n }\n }\n return newVersion;\n }\n\n // Check if currentValue is a full version (has patch component)\n const currentParsed = parseVersion(currentValue);\n if (currentParsed) {\n // currentValue is a full version, return full newVersion\n return newVersion;\n }\n\n if (isUndefined(allVersions) || allVersions.size === 0) {\n if (isUndefined(range.minor)) {\n return `${prefix}${newParsed.major}`;\n }\n\n return `${prefix}${newParsed.major}.${newParsed.minor}`;\n }\n\n // If a major (i.e. `v7`), and the proposed update is a minor i.e. (`v7.6`), return the existing major version instead of updating to the new minor, as the major should have been re-tagged, too\n if (isUndefined(range.minor) && newParsed.major === range.major) {\n return `${prefix}${newParsed.major}`;\n }\n\n const shortest = getShortestMatchingVersion(\n prefix,\n newParsed,\n allVersions,\n minLevel,\n );\n if (shortest) {\n return shortest;\n }\n\n logger.once.debug(\n {\n versioning: id,\n currentValue,\n currentVersion,\n newVersion,\n rangeStrategy,\n allVersions,\n },\n `Suggested newValue \\`${newVersion}\\` was not included in allVersions, but it should have been. Returning it anyway`,\n );\n\n return newVersion;\n}\n\nfunction getShortestMatchingVersion(\n prefix: string,\n newParsed: SemVer,\n allVersions: Set<string>,\n minLevel: 'major' | 'minor' = 'major',\n): string | null {\n const { major, minor, patch } = newParsed;\n const versions = new Set(allVersions);\n\n // in shortest-first order: major, minor, patch, full\n if (minLevel === 'major') {\n const v = `${prefix}${major}`;\n if (versions.has(v)) {\n return v;\n }\n }\n\n const v = `${prefix}${major}.${minor}`;\n if (versions.has(v)) {\n return v;\n }\n\n const patchVersion = `${prefix}${major}.${minor}.${patch}`;\n if (versions.has(patchVersion)) {\n return patchVersion;\n }\n\n const fullVersion = `${prefix}${newParsed.toString()}`;\n if (versions.has(fullVersion)) {\n return fullVersion;\n }\n\n return null;\n}\n\nfunction isCompatible(version: string): boolean {\n return isValid(version);\n}\n\nfunction isBreaking(version: string, current: string): boolean {\n const versionParsed = parseVersion(version);\n const currentParsed = parseVersion(current);\n\n if (!versionParsed || !currentParsed) {\n return false;\n }\n\n if (currentParsed.major === 0) {\n return versionParsed.major > 0 || versionParsed.minor > currentParsed.minor;\n }\n\n return versionParsed.major > currentParsed.major;\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};\n\nexport default api;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../lib/modules/versioning/github-actions/index.ts"],"sourcesContent":["import { isUndefined } from '@sindresorhus/is';\nimport type { SemVer } from 'semver';\nimport semver from 'semver';\nimport { logger } from '../../../logger/index.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport type { NewValueConfig, VersioningApi } from '../types.ts';\n\nexport const id = 'github-actions';\nexport const displayName = 'GitHub Actions';\nexport const urls = [\n 'https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/find-and-customize-actions#using-release-management-for-your-custom-actions',\n];\nexport const supportsRanges = true;\nexport const supportedRangeStrategies = ['pin', 'replace'];\n\nfunction massageValue(input: string): string {\n return input.trim().replace(regEx(/^v/i), '');\n}\n\nfunction parseVersion(input: string): SemVer | null {\n return semver.parse(massageValue(input));\n}\n\ninterface Range {\n major: number;\n minor?: number;\n}\n\nfunction parseRange(input: string): Range | null {\n const stripped = massageValue(input);\n const coerced = semver.coerce(stripped);\n if (!coerced) {\n return null;\n }\n const { major, minor } = coerced;\n\n if (regEx(/^\\d+$/).test(stripped)) {\n return { major };\n }\n\n return { major, minor };\n}\n\n/*\n * Like parseVersion but also accepts floating tags (e.g. `v1`, `v1.2`)\n * by coercing them to full semver.\n */\nfunction parseVersionCoerced(input: string): SemVer | null {\n const v = parseVersion(input);\n if (v) {\n return v;\n }\n const stripped = massageValue(input);\n if (!regEx(/^\\d/).test(stripped)) {\n return null;\n }\n return semver.coerce(stripped);\n}\n\nfunction isValid(input: string): boolean {\n return !!parseVersion(input) || !!parseRange(input);\n}\n\nfunction isVersion(input: string | undefined | null): boolean {\n if (!input) {\n return false;\n }\n\n if (parseVersion(input)) {\n return true;\n }\n\n const stripped = massageValue(input);\n if (!regEx(/^\\d/).test(stripped)) {\n return false;\n }\n\n return parseRange(input) !== null;\n}\n\nfunction isStable(version: string): boolean {\n const v = parseVersionCoerced(version);\n if (!v) {\n return false;\n }\n\n return v.prerelease.length === 0;\n}\n\nfunction isSingleVersion(input: string): boolean {\n return !!parseVersion(input);\n}\n\nfunction getMajor(version: string): number | null {\n return parseVersionCoerced(version)?.major ?? null;\n}\n\nfunction getMinor(version: string): number | null {\n return parseVersionCoerced(version)?.minor ?? null;\n}\n\nfunction getPatch(version: string): number | null {\n return parseVersionCoerced(version)?.patch ?? null;\n}\n\nfunction sortVersions(x: string, y: string): number {\n const a = parseVersionCoerced(x);\n const b = parseVersionCoerced(y);\n if (!a || !b) {\n return 0;\n }\n return semver.compare(a, b);\n}\n\nfunction equals(x: string, y: string): boolean {\n const a = parseVersionCoerced(x);\n const b = parseVersionCoerced(y);\n if (!a || !b) {\n return false;\n }\n return semver.eq(a, b);\n}\n\nfunction isGreaterThan(x: string, y: string): boolean {\n const a = parseVersionCoerced(x);\n const b = parseVersionCoerced(y);\n if (!a || !b) {\n return false;\n }\n return semver.gt(a, b);\n}\n\nfunction matches(version: string, range: string): boolean {\n // if we have a valid floating tag provided, and it's the same as the range, treat it as the same\n if (\n parseVersionCoerced(version) &&\n massageValue(version) === massageValue(range)\n ) {\n return true;\n }\n\n const v = parseVersion(version);\n if (!v) {\n return false;\n }\n\n const rv = parseVersion(range);\n if (rv) {\n return semver.eq(v, rv);\n }\n\n const r = parseRange(range);\n if (!r) {\n return false;\n }\n\n if (v.prerelease.length > 0) {\n return false;\n }\n\n if (v.major !== r.major) {\n return false;\n }\n\n if (isUndefined(r.minor)) {\n return true;\n }\n\n return v.minor === r.minor;\n}\n\nfunction getSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n const sortedVersions = versions.sort(sortVersions).reverse();\n for (const version of sortedVersions) {\n if (matches(version, range)) {\n return version;\n }\n }\n return null;\n}\n\nfunction minSatisfyingVersion(\n versions: string[],\n range: string,\n): string | null {\n const sortedVersions = versions.sort(sortVersions);\n for (const version of sortedVersions) {\n if (matches(version, range)) {\n return version;\n }\n }\n return null;\n}\n\nfunction isLessThanRange(version: string, range: string): boolean {\n const v = parseVersionCoerced(version);\n const r = parseRange(range);\n\n if (!v || !r) {\n return false;\n }\n\n if (v.major !== r.major) {\n return v.major < r.major;\n }\n\n if (isUndefined(r.minor)) {\n return false;\n }\n\n if (v.minor !== r.minor) {\n return v.minor < r.minor;\n }\n\n return false;\n}\n\nfunction getNewValue({\n currentValue,\n currentVersion,\n rangeStrategy,\n newVersion,\n allVersions,\n}: NewValueConfig): string | null {\n if (rangeStrategy === 'pin') {\n return newVersion;\n }\n\n const range = parseRange(currentValue);\n if (!range) {\n return newVersion;\n }\n\n // When a minor (i.e. `v1.2`), don't return a less-specific tag (i.e. `v1`), even if it's found in `allVersions`\n const minLevel = isUndefined(range.minor) ? 'major' : 'minor';\n const [prefix] = currentValue.split(massageValue(currentValue));\n const newParsed = parseVersion(newVersion);\n if (!newParsed) {\n const newCoerced = parseVersionCoerced(newVersion);\n if (newCoerced) {\n // check that we're not returning a version that doesn't exist\n // for instance, in the case `v5.5` is tagged, but there's no `v5` (or if it's been deleted)\n const shortest = getShortestMatchingVersion(\n prefix,\n newCoerced,\n allVersions ?? new Set(),\n minLevel,\n );\n if (shortest) {\n return shortest;\n }\n }\n return newVersion;\n }\n\n // Check if currentValue is a full version (has patch component)\n const currentParsed = parseVersion(currentValue);\n if (currentParsed) {\n // currentValue is a full version, return full newVersion\n return newVersion;\n }\n\n if (isUndefined(allVersions) || allVersions.size === 0) {\n if (isUndefined(range.minor)) {\n return `${prefix}${newParsed.major}`;\n }\n\n return `${prefix}${newParsed.major}.${newParsed.minor}`;\n }\n\n // If a major (i.e. `v7`), and the proposed update is a minor i.e. (`v7.6`), return the existing major version instead of updating to the new minor, as the major should have been re-tagged, too\n if (isUndefined(range.minor) && newParsed.major === range.major) {\n return `${prefix}${newParsed.major}`;\n }\n\n const shortest = getShortestMatchingVersion(\n prefix,\n newParsed,\n allVersions,\n minLevel,\n );\n if (shortest) {\n return shortest;\n }\n\n logger.once.debug(\n {\n versioning: id,\n currentValue,\n currentVersion,\n newVersion,\n rangeStrategy,\n allVersions,\n },\n `Suggested newValue \\`${newVersion}\\` was not included in allVersions, but it should have been. Returning it anyway`,\n );\n\n return newVersion;\n}\n\nfunction getShortestMatchingVersion(\n prefix: string,\n newParsed: SemVer,\n allVersions: Set<string>,\n minLevel: 'major' | 'minor' = 'major',\n): string | null {\n const { major, minor, patch } = newParsed;\n const versions = new Set(allVersions);\n\n // in shortest-first order: major, minor, patch, full\n if (minLevel === 'major') {\n const v = `${prefix}${major}`;\n if (versions.has(v)) {\n return v;\n }\n }\n\n const v = `${prefix}${major}.${minor}`;\n if (versions.has(v)) {\n return v;\n }\n\n const patchVersion = `${prefix}${major}.${minor}.${patch}`;\n if (versions.has(patchVersion)) {\n return patchVersion;\n }\n\n const fullVersion = `${prefix}${newParsed.toString()}`;\n if (versions.has(fullVersion)) {\n return fullVersion;\n }\n\n return null;\n}\n\nfunction isCompatible(version: string): boolean {\n return isValid(version);\n}\n\nfunction isBreaking(version: string, current: string): boolean {\n const versionParsed = parseVersion(version);\n const currentParsed = parseVersion(current);\n\n if (!versionParsed || !currentParsed) {\n return false;\n }\n\n if (currentParsed.major === 0) {\n return versionParsed.major > 0 || versionParsed.minor > currentParsed.minor;\n }\n\n return versionParsed.major > currentParsed.major;\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};\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": "43.139.2",
4
+ "version": "43.139.4",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "renovate": "dist/renovate.js",
@@ -119,7 +119,7 @@
119
119
  "@renovatebot/good-enough-parser": "2.0.0",
120
120
  "@renovatebot/osv-offline": "2.5.0",
121
121
  "@renovatebot/pep440": "4.2.2",
122
- "@renovatebot/pgp": "1.3.6",
122
+ "@renovatebot/pgp": "1.3.7",
123
123
  "@renovatebot/ruby-semver": "4.1.2",
124
124
  "@sindresorhus/is": "7.2.0",
125
125
  "@yarnpkg/core": "4.6.0",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$id": "https://docs.renovatebot.com/renovate-schema.json",
3
- "title": "JSON schema for Renovate 43.139.2 config files (https://renovatebot.com/)",
3
+ "title": "JSON schema for Renovate 43.139.4 config files (https://renovatebot.com/)",
4
4
  "$schema": "http://json-schema.org/draft-07/schema#",
5
- "x-renovate-version": "43.139.2",
5
+ "x-renovate-version": "43.139.4",
6
6
  "allowComments": true,
7
7
  "type": "object",
8
8
  "properties": {