import { presets as presets$1 } from "./monorepos.preset.js";
//#region lib/config/presets/internal/group.preset.ts
const nonPinUpdateTypes = [
	"digest",
	"patch",
	"minor",
	"major"
];
const config = {
	all: {
		description: "Group all updates together.",
		groupName: "all dependencies",
		groupSlug: "all",
		packageRules: [{
			groupName: "all dependencies",
			groupSlug: "all",
			matchPackageNames: ["*"]
		}],
		separateMajorMinor: false
	},
	allApollographql: {
		description: "Group all packages published by Apollo GraphQL together.",
		packageRules: [{
			extends: ["packages:apollographql"],
			groupName: "Apollo GraphQL packages"
		}]
	},
	allDigest: {
		description: "Group all `digest` updates together.",
		packageRules: [{
			groupName: "all digest updates",
			groupSlug: "all-digest",
			matchPackageNames: ["*"],
			matchUpdateTypes: ["digest"]
		}]
	},
	allNonMajor: {
		description: "Group all `minor` and `patch` updates together.",
		packageRules: [{
			groupName: "all non-major dependencies",
			groupSlug: "all-minor-patch",
			matchPackageNames: ["*"],
			matchUpdateTypes: ["minor", "patch"]
		}]
	},
	apiPlatform: {
		description: "Group PHP API Platform packages together.",
		packageRules: [{
			groupName: "api-platform packages",
			groupSlug: "api-platform",
			matchDatasources: ["packagist"],
			matchPackageNames: [
				"api-platform/*",
				"!api-platform/admin-meta",
				"!api-platform/admin-pack",
				"!api-platform/api-pack",
				"!api-platform/api-platform",
				"!api-platform/parameter-validator",
				"!api-platform/postman-collection-generator",
				"!api-platform/schema-generator"
			]
		}]
	},
	atlaskit: {
		description: "Group all Atlassian `@atlaskit` packages together.",
		packageRules: [{
			extends: ["packages:atlaskit"],
			groupName: "Atlassian Atlaskit packages"
		}]
	},
	codemirror: {
		description: "Group CodeMirror packages together.",
		packageRules: [{
			groupName: "CodeMirror",
			matchPackageNames: ["@codemirror/**"]
		}]
	},
	definitelyTyped: {
		description: "Group all `@types` packages together.",
		packageRules: [{
			groupName: "definitelyTyped",
			matchPackageNames: ["@types/**"]
		}]
	},
	dotNetCore: {
		description: ".NET Core Docker containers.",
		packageRules: [{
			groupName: ".NET Core Docker containers",
			matchDatasources: ["docker"],
			matchPackageNames: ["mcr.microsoft.com/dotnet/**"]
		}]
	},
	"drupal-core": {
		description: "Group Drupal core updates.",
		packageRules: [{
			groupName: "Drupal core",
			matchPackageNames: ["drupal/core", "drupal/core-*"]
		}]
	},
	flyway: {
		description: "Group Java Flyway packages.",
		packageRules: [{
			groupName: "flyway",
			matchPackageNames: ["org.flywaydb:*", "org.flywaydb.flyway:*"]
		}]
	},
	fortawesome: {
		description: "Group all packages by Font Awesome together.",
		packageRules: [{
			groupName: "Font Awesome",
			matchPackageNames: ["@fortawesome/**"]
		}]
	},
	fusionjs: {
		description: "Group Fusion.js packages together.",
		packageRules: [{
			groupName: "Fusion.js packages",
			matchPackageNames: [
				"fusion-cli",
				"fusion-core",
				"fusion-test-utils",
				"fusion-tokens",
				"fusion-plugin-**",
				"fusion-react**",
				"fusion-apollo**"
			]
		}]
	},
	githubArtifactActions: {
		description: "Group `download-artifact` and `upload-artifact` major updates together.",
		packageRules: [{
			groupName: "GitHub Artifact Actions",
			matchManagers: ["github-actions"],
			matchPackageNames: ["actions/download-artifact", "actions/upload-artifact"],
			matchUpdateTypes: ["major"]
		}]
	},
	glimmer: {
		description: "Group Glimmer.js packages together.",
		packageRules: [{
			groupName: "Glimmer.js packages",
			groupSlug: "glimmer",
			matchPackageNames: ["@glimmer/component", "@glimmer/tracking"]
		}]
	},
	googleapis: {
		description: "Group `googleapis` packages together.",
		packageRules: [{
			extends: ["packages:googleapis"],
			groupName: "googleapis packages"
		}]
	},
	goOpenapi: {
		description: "Group `go-openapi` packages together.",
		packageRules: [{
			groupName: "go-openapi packages",
			groupSlug: "go-openapi",
			matchDatasources: ["go"],
			matchPackageNames: ["github.com/go-openapi/**"]
		}]
	},
	gradle: {
		description: "Group anything that looks like Gradle together so that it's updated together.",
		packageRules: [{
			commitMessageTopic: "Gradle",
			matchDatasources: ["docker", "gradle-version"],
			matchPackageNames: ["/(?:^|/)gradle$/"]
		}]
	},
	hibernateCommons: {
		description: "Group Java Hibernate Commons packages.",
		packageRules: [{
			groupName: "hibernate commons",
			matchPackageNames: ["org.hibernate.common:**"]
		}]
	},
	hibernateCore: {
		description: "Group Java Hibernate Core packages.",
		packageRules: [{
			groupName: "hibernate core",
			matchPackageNames: ["org.hibernate:**"]
		}]
	},
	hibernateOgm: {
		description: "Group Java Hibernate OGM packages.",
		packageRules: [{
			groupName: "hibernate ogm",
			matchPackageNames: ["org.hibernate.ogm:**"]
		}]
	},
	hibernateValidator: {
		description: "Group Java Hibernate Validator packages.",
		packageRules: [{
			groupName: "hibernate validator",
			matchPackageNames: ["org.hibernate.validator:**"]
		}]
	},
	illuminate: {
		description: "Group PHP Illuminate packages together.",
		packageRules: [{
			groupName: "illuminate packages",
			groupSlug: "illuminate",
			matchPackageNames: ["illuminate/**"]
		}]
	},
	jekyllEcosystem: {
		description: "Group Jekyll and related Ruby packages together.",
		packageRules: [{
			groupName: "jekyll ecosystem packages",
			matchSourceUrls: ["https://github.com/jekyll/**", "https://github.com/github/pages-gem**"]
		}]
	},
	jestPlusTSJest: {
		description: "Add `ts-jest` `major` update to Jest monorepo.",
		packageRules: [{
			groupName: "jest monorepo",
			matchSourceUrls: ["https://github.com/kulshekhar/ts-jest"],
			matchUpdateTypes: ["major"]
		}]
	},
	jestPlusTypes: {
		description: "Add `@types/jest` update to Jest monorepo.",
		packageRules: [{
			groupName: "jest monorepo",
			matchPackageNames: ["@types/jest"],
			matchUpdateTypes: nonPinUpdateTypes
		}]
	},
	jsTest: {
		description: "Group JS test packages together.",
		packageRules: [{
			extends: ["packages:jsTest"],
			groupName: "JS test packages"
		}]
	},
	jsTestNonMajor: {
		description: "Group non-major JS test package updates together.",
		packageRules: [{
			extends: ["packages:jsTest"],
			groupName: "JS test packages",
			matchUpdateTypes: ["minor", "patch"]
		}]
	},
	jsUnitTest: {
		description: "Group JavaScript unit test packages together.",
		packageRules: [{
			extends: ["packages:jsUnitTest"],
			groupName: "JS unit test packages"
		}]
	},
	jsUnitTestNonMajor: {
		description: "Group JavaScipt unit test packages together for non-major updates.",
		packageRules: [{
			extends: ["packages:jsUnitTest"],
			groupName: "JS unit test packages",
			matchUpdateTypes: ["minor", "patch"]
		}]
	},
	jwtFramework: {
		description: "Group JWT Framework packages together.",
		packageRules: [{
			groupName: "JWT Framework packages",
			matchDatasources: ["packagist"],
			matchPackageNames: ["web-token/**"]
		}]
	},
	linters: {
		description: "Group various lint packages together.",
		packageRules: [{
			extends: ["packages:linters"],
			groupName: "linters"
		}]
	},
	micrometer: {
		description: "Group Micrometer packages together, e.g. 'io.micrometer:micrometer-core'.",
		packageRules: [{
			groupName: "micrometer",
			matchPackageNames: ["io.micrometer:micrometer-**"]
		}]
	},
	nodeJs: {
		description: "Group anything that looks like Node.js together so that it's updated together.",
		packageRules: [{
			commitMessageTopic: "Node.js",
			matchDatasources: ["docker", "node-version"],
			matchPackageNames: [
				"/(?:^|/)node$/",
				"!calico/node",
				"!docker.io/calico/node",
				"!ghcr.io/devcontainers/features/node",
				"!kindest/node",
				"!docker.io/kindest/node"
			]
		}]
	},
	phpstan: {
		description: "Group PHPStan packages together.",
		packageRules: [{
			groupName: "PHPStan packages",
			matchDatasources: ["packagist"],
			matchPackageNames: [
				"phpstan/phpstan",
				"//phpstan-/",
				"//larastan/",
				"phpstan/extension-installer"
			]
		}]
	},
	pnpm: {
		description: "Group pnpm packages together.",
		packageRules: [{
			groupName: "pnpm packages",
			matchDatasources: ["docker", "npm"],
			matchPackageNames: ["pnpm", "ghcr.io/pnpm/pnpm"]
		}]
	},
	polymer: {
		description: "Group all `@polymer` packages together.",
		packageRules: [{
			groupName: "polymer packages",
			matchPackageNames: ["@polymer/**"]
		}]
	},
	postcss: {
		description: "Group PostCSS packages together.",
		packageRules: [{
			extends: ["packages:postcss"],
			groupName: "postcss packages"
		}]
	},
	pulumi: {
		description: "Group Pulumi packages together.",
		packageRules: [
			{
				description: "Group Pulumi Node.JS packages together.",
				groupName: "Pulumi",
				groupSlug: "pulumi-node",
				matchDatasources: ["npm"],
				matchPackageNames: ["@pulumi/**"]
			},
			{
				description: "Group Pulumi Python packages together.",
				groupName: "Pulumi",
				groupSlug: "pulumi-python",
				matchDatasources: ["pypi"],
				matchPackageNames: ["pulumi-**"]
			},
			{
				description: "Group Pulumi Go packages together.",
				groupName: "Pulumi",
				groupSlug: "pulumi-go",
				matchDatasources: ["go"],
				matchPackageNames: ["github.com/pulumi/**"]
			},
			{
				description: "Group Pulumi Java packages together.",
				groupName: "Pulumi",
				groupSlug: "pulumi-java",
				matchDatasources: ["maven"],
				matchPackageNames: ["com.pulumi**"]
			},
			{
				description: "Group Pulumi .NET packages together.",
				groupName: "Pulumi",
				groupSlug: "pulumi-dotnet",
				matchDatasources: ["nuget"],
				matchPackageNames: ["Pulumi**"]
			}
		]
	},
	puppeteer: {
		description: "Group Puppeteer packages together.",
		packageRules: [{
			groupName: "Puppeteer",
			matchDatasources: ["npm"],
			matchPackageNames: ["puppeteer", "puppeteer-core"]
		}]
	},
	react: {
		description: "Group React and corresponding `@types` packages together.",
		packageRules: [{
			groupName: "react monorepo",
			matchPackageNames: [
				"@types/react",
				"@types/react-dom",
				"@types/react-is"
			]
		}]
	},
	recommended: {
		description: "Use curated list of recommended non-monorepo package groupings.",
		extends: [
			"group:nodeJs",
			"group:allApollographql",
			"group:apiPlatform",
			"group:codemirror",
			"group:flyway",
			"group:fortawesome",
			"group:fusionjs",
			"group:githubArtifactActions",
			"group:glimmer",
			"group:goOpenapi",
			"group:gradle",
			"group:hibernateCore",
			"group:hibernateValidator",
			"group:hibernateOgm",
			"group:hibernateCommons",
			"group:illuminate",
			"group:jekyllEcosystem",
			"group:jestPlusTSJest",
			"group:jestPlusTypes",
			"group:jwtFramework",
			"group:micrometer",
			"group:phpstan",
			"group:polymer",
			"group:puppeteer",
			"group:react",
			"group:remark",
			"group:resilience4j",
			"group:rubyOnRails",
			"group:rubyOmniauth",
			"group:socketio",
			"group:springAmqp",
			"group:springAndroid",
			"group:springBatch",
			"group:springBoot",
			"group:springCloud",
			"group:springCore",
			"group:springData",
			"group:springHateoas",
			"group:springIntegration",
			"group:springKafka",
			"group:springLdap",
			"group:springMobile",
			"group:springOsgi",
			"group:springRestDocs",
			"group:springRoo",
			"group:springScala",
			"group:springSecurity",
			"group:springSession",
			"group:springShell",
			"group:springSocial",
			"group:springStatemachine",
			"group:springWebflow",
			"group:springWs",
			"group:symfony"
		],
		ignoreDeps: []
	},
	remark: {
		description: "Group remark packages together.",
		packageRules: [{
			groupName: "remark",
			matchDatasources: ["npm"],
			matchSourceUrls: ["https://github.com/remarkjs/**"]
		}]
	},
	resilience4j: {
		description: "Group Java Resilience4j packages.",
		packageRules: [{
			groupName: "resilience4j",
			matchPackageNames: ["io.github.resilience4j:**"]
		}]
	},
	rubyOmniauth: {
		description: "Group OmniAuth packages together.",
		packageRules: [{
			groupName: "omniauth packages",
			matchDatasources: ["rubygems"],
			matchPackageNames: ["omniauth**"]
		}]
	},
	rubyOnRails: {
		description: "Group Ruby on Rails packages together.",
		packageRules: [{
			groupName: "Ruby on Rails packages",
			matchDatasources: ["rubygems"],
			matchPackageNames: [
				"actioncable",
				"actionmailbox",
				"actionmailer",
				"actionpack",
				"actiontext",
				"actionview",
				"activejob",
				"activemodel",
				"activerecord",
				"activestorage",
				"activesupport",
				"railties",
				"rails"
			]
		}]
	},
	socketio: {
		description: "Group socket.io packages.",
		packageRules: [{
			groupName: "socket.io packages",
			matchPackageNames: ["socket.io**"]
		}]
	},
	springAmqp: {
		description: "Group Java Spring AMQP packages.",
		packageRules: [{
			groupName: "spring amqp",
			matchPackageNames: ["org.springframework.amqp:**"]
		}]
	},
	springAndroid: {
		description: "Group Java Spring Android packages.",
		packageRules: [{
			groupName: "spring android",
			matchPackageNames: ["org.springframework.android:**"]
		}]
	},
	springBatch: {
		description: "Group Java Spring Batch packages.",
		packageRules: [{
			groupName: "spring batch",
			matchPackageNames: ["org.springframework.batch:**"]
		}]
	},
	springBoot: {
		description: "Group Java Spring Boot packages.",
		packageRules: [{
			groupName: "spring boot",
			matchDepNames: ["org.springframework.boot"]
		}, {
			groupName: "spring boot",
			matchPackageNames: ["org.springframework.boot:**"]
		}]
	},
	springCloud: {
		description: "Group Java Spring Cloud packages.",
		packageRules: [{
			groupName: "spring cloud",
			matchPackageNames: ["org.springframework.cloud:**"]
		}]
	},
	springCore: {
		description: "Group Java Spring Core packages.",
		packageRules: [{
			groupName: "spring core",
			matchPackageNames: ["org.springframework:**"]
		}]
	},
	springData: {
		description: "Group Java Spring Data packages.",
		packageRules: [{
			groupName: "spring data",
			matchPackageNames: ["org.springframework.data:**"]
		}]
	},
	springHateoas: {
		description: "Group Java Spring HATEOAS packages.",
		packageRules: [{
			groupName: "spring hateoas",
			matchPackageNames: ["org.springframework.hateoas:**"]
		}]
	},
	springIntegration: {
		description: "Group Java Spring Integration packages.",
		packageRules: [{
			groupName: "spring integration",
			matchPackageNames: ["org.springframework.integration:**"]
		}]
	},
	springKafka: {
		description: "Group Java Spring Kafka packages.",
		packageRules: [{
			groupName: "spring kafka",
			matchPackageNames: ["org.springframework.kafka:**"]
		}]
	},
	springLdap: {
		description: "Group Java Spring LDAP packages.",
		packageRules: [{
			groupName: "spring ldap",
			matchPackageNames: ["org.springframework.ldap:**"]
		}]
	},
	springMobile: {
		description: "Group Java Spring Mobile packages.",
		packageRules: [{
			groupName: "spring mobile",
			matchPackageNames: ["org.springframework.mobile:**"]
		}]
	},
	springOsgi: {
		description: "Group Java Spring OSGi packages.",
		packageRules: [{
			groupName: "spring osgi",
			matchPackageNames: ["org.springframework.osgi:**"]
		}]
	},
	springRestDocs: {
		description: "Group Java Spring REST Docs packages.",
		packageRules: [{
			groupName: "spring restdocs",
			matchPackageNames: ["org.springframework.restdocs:**"]
		}]
	},
	springRoo: {
		description: "Group Java Spring Roo packages.",
		packageRules: [{
			groupName: "spring roo",
			matchPackageNames: ["org.springframework.roo:**"]
		}]
	},
	springScala: {
		description: "Group Java Spring Scala packages.",
		packageRules: [{
			groupName: "spring scala",
			matchPackageNames: ["org.springframework.scala:**"]
		}]
	},
	springSecurity: {
		description: "Group Java Spring Security packages.",
		packageRules: [{
			groupName: "spring security",
			matchPackageNames: ["org.springframework.security:**"]
		}]
	},
	springSession: {
		description: "Group Java Spring Session packages.",
		packageRules: [{
			groupName: "spring session",
			matchPackageNames: ["org.springframework.session:**"]
		}]
	},
	springShell: {
		description: "Group Java Spring Shell packages.",
		packageRules: [{
			groupName: "spring shell",
			matchPackageNames: ["org.springframework.shell:**"]
		}]
	},
	springSocial: {
		description: "Group Java Spring Social packages.",
		packageRules: [{
			groupName: "spring social",
			matchPackageNames: ["org.springframework.social:**"]
		}]
	},
	springStatemachine: {
		description: "Group Java Spring Statemachine packages.",
		packageRules: [{
			groupName: "spring statemachine",
			matchPackageNames: ["org.springframework.statemachine:**"]
		}]
	},
	springWebflow: {
		description: "Group Java Spring WebFlow packages.",
		packageRules: [{
			groupName: "spring webflow",
			matchPackageNames: ["org.springframework.webflow:**"]
		}]
	},
	springWs: {
		description: "Group Java Spring WS packages.",
		packageRules: [{
			groupName: "spring ws",
			matchPackageNames: ["org.springframework.ws:**"]
		}]
	},
	stylelint: {
		description: "Group stylelint packages together.",
		packageRules: [{
			extends: ["packages:stylelint"],
			groupName: "stylelint packages",
			groupSlug: "stylelint",
			separateMajorMinor: false
		}]
	},
	symfony: {
		description: "Group PHP Symfony packages together.",
		packageRules: [{
			groupName: "symfony packages",
			groupSlug: "symfony",
			matchDatasources: ["packagist"],
			matchPackageNames: [
				"symfony/*",
				"!symfony/*contracts",
				"!symfony/*pack",
				"!symfony/flex",
				"!symfony/maker-bundle",
				"!symfony/monolog-bundle",
				"!symfony/panther",
				"!symfony/polyfill*",
				"!symfony/proxy-manager-bridge",
				"!symfony/security-guard",
				"!symfony/stimulus-bundle",
				"!symfony/templating",
				"!symfony/thanks",
				"!symfony/ux*",
				"!symfony/webpack-encore-bundle"
			]
		}]
	},
	test: {
		description: "Group all test packages together.",
		packageRules: [{
			extends: ["packages:test"],
			groupName: "test packages"
		}]
	},
	testNonMajor: {
		description: "Group all non-major test package updates together.",
		packageRules: [{
			extends: ["packages:test"],
			groupName: "test packages",
			matchUpdateTypes: ["minor", "patch"]
		}]
	},
	unitTest: {
		description: "Group all unit test packages together.",
		packageRules: [{
			extends: ["packages:unitTest"],
			groupName: "unit test packages"
		}]
	},
	unitTestNonMajor: {
		description: "Group all unit test packages together for non-major updates.",
		packageRules: [{
			extends: ["packages:unitTest"],
			groupName: "unit test packages",
			matchUpdateTypes: ["minor", "patch"]
		}]
	},
	vite: {
		description: "Group all Vite related packages together.",
		packageRules: [{
			extends: ["packages:vite"],
			groupName: "Vite packages"
		}]
	}
};
const monorepoNames = [];
for (const monorepo of Object.keys(presets$1)) {
	const name = `${monorepo}Monorepo`;
	monorepoNames.push(`group:${name}`);
	config[name] = { packageRules: [{
		description: `Group packages from ${monorepo} monorepo together.`,
		extends: [`monorepo:${monorepo}`],
		groupName: `${monorepo} monorepo`,
		matchUpdateTypes: nonPinUpdateTypes
	}] };
}
config.monorepos = {
	description: "Group known monorepo packages together.",
	extends: monorepoNames,
	ignoreDeps: []
};
const presets = config;
//#endregion
export { presets };

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