//#region lib/config/presets/internal/workarounds.preset.ts
const presets = {
	all: {
		description: ["Apply crowd-sourced workarounds for known problems with packages."],
		extends: [
			"workarounds:mavenCommonsAncientVersion",
			"workarounds:ignoreSpringCloudNumeric",
			"workarounds:ignoreWeb3jCoreWithOldReleaseTimestamp",
			"workarounds:ignoreHttp4sDigestMilestones",
			"workarounds:typesNodeVersioning",
			"workarounds:nodeDockerVersioning",
			"workarounds:doNotUpgradeFromAlpineStableToEdge",
			"workarounds:supportRedHatImageVersion",
			"workarounds:javaLTSVersions",
			"workarounds:disableEclipseLifecycleMapping",
			"workarounds:disableGradleReplacements",
			"workarounds:disableMavenParentRoot",
			"workarounds:containerbase",
			"workarounds:bitnamiDockerImageVersioning",
			"workarounds:clamavDockerImageVersioning",
			"workarounds:grafanaDockerImageVersioning",
			"workarounds:k3sKubernetesVersioning",
			"workarounds:rke2KubernetesVersioning",
			"workarounds:libericaJdkDockerVersioning",
			"workarounds:ubuntuDockerVersioning"
		],
		ignoreDeps: []
	},
	bitnamiDockerImageVersioning: {
		description: "Use custom regex versioning for bitnami images",
		packageRules: [{
			matchCurrentValue: "/^(?<major>\\d+)(?:\\.(?<minor>\\d+)(?:\\.(?<patch>\\d+))?)?-(?<compatibility>.+)-(?<build>\\d+)(?:-r(?<revision>\\d+))?$/",
			matchDatasources: ["docker"],
			matchPackageNames: [
				"bitnami/**",
				"docker.io/bitnami/**",
				"gcr.io/bitnami-containers/**",
				"*-docker.pkg.dev/vmw-app-catalog/**"
			],
			versioning: "regex:^(?<major>\\d+)(?:\\.(?<minor>\\d+)(?:\\.(?<patch>\\d+))?)?(:?-(?<compatibility>.+)-(?<build>\\d+)(?:-r(?<revision>\\d+))?)?$"
		}]
	},
	clamavDockerImageVersioning: {
		description: "Use custom regex versioning for ClamAV images",
		packageRules: [{
			matchDatasources: ["docker"],
			matchPackageNames: ["clamav/clamav", "clamav/clamav-debian"],
			versioning: "regex:^(?<major>\\d+)\\.(?<minor>\\d+)(\\.(?<patch>\\d+))?(-(?<build>\\d+))?(_(?<compatibility>.+))?$"
		}]
	},
	containerbase: {
		description: "Add some containerbase overrides.",
		packageRules: [{
			description: "Use node versioning for `(containerbase|renovate)/node` images",
			matchDatasources: ["docker"],
			matchPackageNames: ["/^(?:(?:docker|ghcr)\\.io/)?(?:containerbase|renovate)/node$/"],
			versioning: "node"
		}]
	},
	disableEclipseLifecycleMapping: {
		description: "Disable Eclipse m2e lifecycle-mapping placeholder package.",
		packageRules: [{
			enabled: false,
			matchDatasources: ["maven"],
			matchPackageNames: ["org.eclipse.m2e:lifecycle-mapping"]
		}]
	},
	disableGradleReplacements: {
		description: "Disable package replacement updates for gradle dependencies.",
		packageRules: [{
			enabled: false,
			matchManagers: ["gradle"],
			matchUpdateTypes: ["replacement"]
		}]
	},
	disableMavenParentRoot: {
		description: "Avoid version fetching for Maven packages detected as project root.",
		packageRules: [{
			enabled: false,
			matchDepTypes: ["parent-root"],
			matchManagers: ["maven"]
		}]
	},
	doNotUpgradeFromAlpineStableToEdge: {
		description: "Do not upgrade from Alpine stable to edge.",
		packageRules: [{
			allowedVersions: "<20000000",
			matchCurrentVersion: "!/^\\d{8}$/",
			matchDatasources: ["docker"],
			matchDepNames: ["alpine"]
		}, {
			allowedVersions: "<20000000",
			matchCurrentVersion: "!/^\\d{8}$/",
			matchDatasources: ["docker"],
			matchPackageNames: ["alpine"]
		}]
	},
	grafanaDockerImageVersioning: {
		description: "Support security releases on Grafana (product) images",
		packageRules: [{
			matchDatasources: ["docker"],
			matchPackageNames: [
				"grafana/grafana",
				"docker.io/grafana/grafana",
				"grafana/grafana-enterprise",
				"docker.io/grafana/grafana-enterprise"
			],
			versioning: "regex:^(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)(?:-security-(?<build>\\d+))?(?:-(?<compatibility>.*))?$"
		}]
	},
	ignoreHttp4sDigestMilestones: {
		description: "Ignore `http4s` digest-based `1.x` milestones.",
		packageRules: [{
			allowedVersions: `!/^1\\.0-\\d+-[a-fA-F0-9]{7}$/`,
			matchManagers: ["sbt"],
			matchPackageNames: ["org.http4s:**"]
		}]
	},
	ignoreSpringCloudNumeric: {
		description: "Ignore spring cloud `1.x` releases.",
		packageRules: [{
			allowedVersions: "/^[A-Z]/",
			matchDatasources: ["maven"],
			matchPackageNames: ["org.springframework.cloud:spring-cloud-starter-parent"]
		}]
	},
	ignoreWeb3jCoreWithOldReleaseTimestamp: {
		description: "Ignore `web3j` `5.0.0` release.",
		packageRules: [{
			allowedVersions: "!/^5\\.0\\.0/",
			matchDatasources: ["maven"],
			matchPackageNames: ["org.web3j:core"]
		}]
	},
	javaLTSVersions: {
		description: "Limit Java runtime versions to LTS releases.",
		packageRules: [
			{
				allowedVersions: "/^(?:8|11|17|21|25)(?:\\.|-|$)/",
				description: "Limit Java runtime versions to LTS releases. To receive all major releases add `workarounds:javaLTSVersions` to the `ignorePresets` array.",
				matchDatasources: ["docker", "java-version"],
				matchPackageNames: [
					"eclipse-temurin",
					"amazoncorretto",
					"adoptopenjdk",
					"openjdk",
					"java",
					"java-jdk",
					"java-jre",
					"sapmachine",
					"/^azul/zulu-openjdk/",
					"/^bellsoft/liberica-openj(dk|re)-/",
					"/^cimg/openjdk/"
				],
				versioning: "regex:^(?<major>\\d+)?(\\.(?<minor>\\d+))?(\\.(?<patch>\\d+))?([\\._+](?<build>(\\d\\.?)+)(LTS)?)?(-(?<compatibility>.*))?$"
			},
			{
				allowedVersions: "/^(?:8|11|17|21|25)(?:\\.|-|$)/",
				description: "Limit Java runtime versions to LTS releases. To receive all major releases add `workarounds:javaLTSVersions` to the `ignorePresets` array.",
				matchDatasources: ["docker", "java-version"],
				matchDepNames: [
					"eclipse-temurin",
					"amazoncorretto",
					"adoptopenjdk",
					"openjdk",
					"java",
					"java-jre",
					"sapmachine"
				],
				versioning: "regex:^(?<major>\\d+)?(\\.(?<minor>\\d+))?(\\.(?<patch>\\d+))?([\\._+](?<build>(\\d\\.?)+)(LTS)?)?(-(?<compatibility>.*))?$"
			},
			{
				description: "Use docker versioning for major-only Java image tags so rolling tags (e.g. 21-jre) are not upgraded to full-precision tags (e.g. 21.0.11_10-jre).",
				matchCurrentValue: "/^\\d+(-|$)/",
				matchDatasources: ["docker"],
				matchPackageNames: [
					"eclipse-temurin",
					"amazoncorretto",
					"adoptopenjdk",
					"openjdk",
					"java",
					"java-jdk",
					"java-jre",
					"sapmachine",
					"/^azul/zulu-openjdk/",
					"/^bellsoft/liberica-openj(dk|re)-/",
					"/^cimg/openjdk/"
				],
				versioning: "docker"
			},
			{
				description: "Use docker versioning for major-only Java image tags so rolling tags (e.g. 21-jre) are not upgraded to full-precision tags (e.g. 21.0.11_10-jre).",
				matchCurrentValue: "/^\\d+(-|$)/",
				matchDatasources: ["docker"],
				matchDepNames: [
					"eclipse-temurin",
					"amazoncorretto",
					"adoptopenjdk",
					"openjdk",
					"java",
					"java-jre",
					"sapmachine"
				],
				versioning: "docker"
			},
			{
				allowedVersions: "/^(?:jdk|jdk-all|jre)-(?:8|11|17|21|25)(?:\\.|-|$)/",
				description: "Limit Java runtime versions to LTS releases. To receive all major releases add `workarounds:javaLTSVersions` to the `ignorePresets` array.",
				matchDatasources: ["docker"],
				matchPackageNames: ["bellsoft/hardened-liberica-runtime-container", "bellsoft/liberica-runtime-container"]
			}
		]
	},
	k3sKubernetesVersioning: {
		description: "Use custom regex versioning for k3s-io/k3s",
		packageRules: [{
			matchDatasources: ["github-releases"],
			matchPackageNames: ["k3s-io/k3s"],
			versioning: "regex:^v(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)(?:-(?<prerelease>[a-z]+\\d+))?(?<compatibility>\\+k3s)(?<build>\\d+)$"
		}]
	},
	libericaJdkDockerVersioning: {
		description: "Use custom regex versioning for bellsoft/liberica-runtime-container",
		packageRules: [
			{
				description: "Liberica JDK Lite version optimized for the Cloud",
				matchCurrentValue: "/^jdk-[^a][^l]{2}/",
				matchDatasources: ["docker"],
				matchPackageNames: ["bellsoft/hardened-liberica-runtime-container", "bellsoft/liberica-runtime-container"],
				versioning: "regex:^jdk-(?<major>\\d+)?(\\.(?<minor>\\d+))?(\\.(?<patch>\\d+))?([\\._+](?<build>(\\d\\.?)+))?(-(?<compatibility>.*))?$"
			},
			{
				description: "Liberica JDK that can be used to create a custom runtime with a help of jlink tool",
				matchCurrentValue: "/^jdk-all/",
				matchDatasources: ["docker"],
				matchPackageNames: ["bellsoft/hardened-liberica-runtime-container", "bellsoft/liberica-runtime-container"],
				versioning: "regex:^jdk-all-(?<major>\\d+)?(\\.(?<minor>\\d+))?(\\.(?<patch>\\d+))?([\\._+](?<build>(\\d\\.?)+))?(-(?<compatibility>.*))?$"
			},
			{
				description: "Liberica JRE (only the runtime without the rest of JDK tools) for running Java applications",
				matchCurrentValue: "/^jre-/",
				matchDatasources: ["docker"],
				matchPackageNames: ["bellsoft/hardened-liberica-runtime-container", "bellsoft/liberica-runtime-container"],
				versioning: "regex:^jre-(?<major>\\d+)?(\\.(?<minor>\\d+))?(\\.(?<patch>\\d+))?([\\._+](?<build>(\\d\\.?)+))?(-(?<compatibility>.*))?$"
			}
		]
	},
	mavenCommonsAncientVersion: {
		description: "Fix some problems with very old Maven commons versions.",
		packageRules: [{
			allowedVersions: "!/^200\\d{5}(\\.\\d+)?/",
			matchDatasources: ["maven", "sbt-package"],
			matchPackageNames: ["commons-**"]
		}]
	},
	nodeDockerVersioning: {
		description: "Use node versioning for `node` docker images.",
		packageRules: [{
			matchDatasources: ["docker"],
			matchPackageNames: [
				"/(?:^|/)node$/",
				"!calico/node",
				"!docker.io/calico/node",
				"!ghcr.io/devcontainers/features/node",
				"!kindest/node",
				"!docker.io/kindest/node"
			],
			versionCompatibility: "^(?<version>[^-]+)(?<compatibility>-.*)?$",
			versioning: "node"
		}]
	},
	rke2KubernetesVersioning: {
		description: "Use custom regex versioning for rancher/rke2",
		packageRules: [{
			matchDatasources: ["github-releases"],
			matchPackageNames: ["rancher/rke2"],
			versioning: "regex:^v(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)(?:-(?<prerelease>[a-z]+\\d+))?(?<compatibility>\\+rke2r)(?<build>\\d+)$"
		}]
	},
	supportRedHatImageVersion: {
		description: "Use specific versioning for Red Hat-maintained container images.",
		packageRules: [{
			matchDatasources: ["docker"],
			matchPackageNames: [
				"registry.access.redhat.com/rhel",
				"registry.access.redhat.com/rhel-atomic",
				"registry.access.redhat.com/rhel-init",
				"registry.access.redhat.com/rhel-minimal",
				"registry.access.redhat.com/rhceph/**",
				"registry.access.redhat.com/rhgs3/**",
				"registry.access.redhat.com/rhel7**",
				"registry.access.redhat.com/rhel8/**",
				"registry.access.redhat.com/rhel9/**",
				"registry.access.redhat.com/rhscl/**",
				"registry.access.redhat.com/ubi*{,/}**",
				"redhat/**"
			],
			versioning: "redhat"
		}]
	},
	typesNodeVersioning: {
		description: "Use node versioning for `@types/node`.",
		packageRules: [{
			matchManagers: ["npm"],
			matchPackageNames: ["@types/node"],
			versioning: `node`
		}]
	},
	ubuntuDockerVersioning: {
		description: "Use ubuntu versioning for `ubuntu` docker images.",
		packageRules: [{
			matchDatasources: ["docker"],
			matchDepNames: ["ubuntu"],
			versioning: "ubuntu"
		}]
	}
};
//#endregion
export { presets };

//# sourceMappingURL=workarounds.preset.js.map