renovate 44.57.3 → 44.58.0

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.
@@ -732,6 +732,13 @@ const config = {
732
732
  extends: ["packages:vite"],
733
733
  groupName: "Vite packages"
734
734
  }]
735
+ },
736
+ vitePlus: {
737
+ description: "Group all Vite+ related packages together.",
738
+ packageRules: [{
739
+ extends: ["packages:vitePlus"],
740
+ groupName: "Vite+ packages"
741
+ }]
735
742
  }
736
743
  };
737
744
  const monorepoNames = [];
@@ -1 +1 @@
1
- {"version":3,"file":"group.preset.js","names":["monorepos.presets"],"sources":["../../../../lib/config/presets/internal/group.preset.ts"],"sourcesContent":["import type { Preset } from '../types.ts';\nimport * as monorepos from './monorepos.preset.ts';\n\nconst nonPinUpdateTypes = ['digest', 'patch', 'minor', 'major'];\n\nconst staticGroups = {\n all: {\n description: 'Group all updates together.',\n groupName: 'all dependencies',\n groupSlug: 'all',\n packageRules: [\n {\n groupName: 'all dependencies',\n groupSlug: 'all',\n matchPackageNames: ['*'],\n },\n ],\n\n separateMajorMinor: false,\n },\n allApollographql: {\n description: 'Group all packages published by Apollo GraphQL together.',\n packageRules: [\n {\n extends: ['packages:apollographql'],\n groupName: 'Apollo GraphQL packages',\n },\n ],\n },\n allDigest: {\n description: 'Group all `digest` updates together.',\n packageRules: [\n {\n groupName: 'all digest updates',\n groupSlug: 'all-digest',\n matchPackageNames: ['*'],\n matchUpdateTypes: ['digest'],\n },\n ],\n },\n allNonMajor: {\n description: 'Group all `minor` and `patch` updates together.',\n packageRules: [\n {\n groupName: 'all non-major dependencies',\n groupSlug: 'all-minor-patch',\n matchPackageNames: ['*'],\n matchUpdateTypes: ['minor', 'patch'],\n },\n ],\n },\n apiPlatform: {\n description: 'Group PHP API Platform packages together.',\n packageRules: [\n {\n groupName: 'api-platform packages',\n groupSlug: 'api-platform',\n matchDatasources: ['packagist'],\n matchPackageNames: [\n 'api-platform/*',\n '!api-platform/admin-meta',\n '!api-platform/admin-pack',\n '!api-platform/api-pack',\n '!api-platform/api-platform',\n '!api-platform/parameter-validator',\n '!api-platform/postman-collection-generator',\n '!api-platform/schema-generator',\n ],\n },\n ],\n },\n atlaskit: {\n description: 'Group all Atlassian `@atlaskit` packages together.',\n packageRules: [\n {\n extends: ['packages:atlaskit'],\n groupName: 'Atlassian Atlaskit packages',\n },\n ],\n },\n codemirror: {\n description: 'Group CodeMirror packages together.',\n packageRules: [\n {\n groupName: 'CodeMirror',\n matchPackageNames: ['@codemirror/**'],\n },\n ],\n },\n definitelyTyped: {\n description: 'Group all `@types` packages together.',\n packageRules: [\n {\n groupName: 'definitelyTyped',\n matchPackageNames: ['@types/**'],\n },\n ],\n },\n dotNetCore: {\n description: '.NET Core Docker containers.',\n packageRules: [\n {\n groupName: '.NET Core Docker containers',\n matchDatasources: ['docker'],\n matchPackageNames: ['mcr.microsoft.com/dotnet/**'],\n },\n ],\n },\n 'drupal-core': {\n description: 'Group Drupal core updates.',\n packageRules: [\n {\n groupName: 'Drupal core',\n matchPackageNames: ['drupal/core', 'drupal/core-*'],\n },\n ],\n },\n flyway: {\n description: 'Group Java Flyway packages.',\n packageRules: [\n {\n groupName: 'flyway',\n matchPackageNames: ['org.flywaydb:*', 'org.flywaydb.flyway:*'],\n },\n ],\n },\n fortawesome: {\n description: 'Group all packages by Font Awesome together.',\n packageRules: [\n {\n groupName: 'Font Awesome',\n matchPackageNames: ['@fortawesome/**'],\n },\n ],\n },\n fusionjs: {\n description: 'Group Fusion.js packages together.',\n packageRules: [\n {\n groupName: 'Fusion.js packages',\n matchPackageNames: [\n 'fusion-cli',\n 'fusion-core',\n 'fusion-test-utils',\n 'fusion-tokens',\n 'fusion-plugin-**',\n 'fusion-react**',\n 'fusion-apollo**',\n ],\n },\n ],\n },\n githubArtifactActions: {\n description:\n 'Group `download-artifact` and `upload-artifact` major updates together.',\n packageRules: [\n {\n groupName: 'GitHub Artifact Actions',\n matchManagers: ['github-actions'],\n matchPackageNames: [\n 'actions/download-artifact',\n 'actions/upload-artifact',\n ],\n matchUpdateTypes: ['major'],\n },\n ],\n },\n glimmer: {\n description: 'Group Glimmer.js packages together.',\n packageRules: [\n {\n groupName: 'Glimmer.js packages',\n groupSlug: 'glimmer',\n matchPackageNames: ['@glimmer/component', '@glimmer/tracking'],\n },\n ],\n },\n googleapis: {\n description: 'Group `googleapis` packages together.',\n packageRules: [\n {\n extends: ['packages:googleapis'],\n groupName: 'googleapis packages',\n },\n ],\n },\n goOpenapi: {\n description: 'Group `go-openapi` packages together.',\n packageRules: [\n {\n groupName: 'go-openapi packages',\n groupSlug: 'go-openapi',\n matchDatasources: ['go'],\n matchPackageNames: ['github.com/go-openapi/**'],\n },\n ],\n },\n gradle: {\n description:\n \"Group anything that looks like Gradle together so that it's updated together.\",\n packageRules: [\n {\n commitMessageTopic: 'Gradle',\n matchDatasources: ['docker', 'gradle-version'],\n matchPackageNames: [\n '/(?:^|/)gradle$/', // gradle or ends with \"/gradle\"\n ],\n },\n ],\n },\n hibernateCommons: {\n description: 'Group Java Hibernate Commons packages.',\n packageRules: [\n {\n groupName: 'hibernate commons',\n matchPackageNames: ['org.hibernate.common:**'],\n },\n ],\n },\n hibernateCore: {\n description: 'Group Java Hibernate Core packages.',\n packageRules: [\n {\n groupName: 'hibernate core',\n matchPackageNames: ['org.hibernate:**'],\n },\n ],\n },\n hibernateOgm: {\n description: 'Group Java Hibernate OGM packages.',\n packageRules: [\n {\n groupName: 'hibernate ogm',\n matchPackageNames: ['org.hibernate.ogm:**'],\n },\n ],\n },\n hibernateValidator: {\n description: 'Group Java Hibernate Validator packages.',\n packageRules: [\n {\n groupName: 'hibernate validator',\n matchPackageNames: ['org.hibernate.validator:**'],\n },\n ],\n },\n illuminate: {\n description: 'Group PHP Illuminate packages together.',\n packageRules: [\n {\n groupName: 'illuminate packages',\n groupSlug: 'illuminate',\n matchPackageNames: ['illuminate/**'],\n },\n ],\n },\n jekyllEcosystem: {\n description: 'Group Jekyll and related Ruby packages together.',\n packageRules: [\n {\n groupName: 'jekyll ecosystem packages',\n matchSourceUrls: [\n 'https://github.com/jekyll/**',\n 'https://github.com/github/pages-gem**',\n ],\n },\n ],\n },\n jestPlusTSJest: {\n description: 'Add `ts-jest` `major` update to Jest monorepo.',\n packageRules: [\n {\n groupName: 'jest monorepo',\n matchSourceUrls: ['https://github.com/kulshekhar/ts-jest'],\n matchUpdateTypes: ['major'],\n },\n ],\n },\n jestPlusTypes: {\n description: 'Add `@types/jest` update to Jest monorepo.',\n packageRules: [\n {\n groupName: 'jest monorepo',\n matchPackageNames: ['@types/jest'],\n matchUpdateTypes: nonPinUpdateTypes,\n },\n ],\n },\n jsTest: {\n description: 'Group JS test packages together.',\n packageRules: [\n {\n extends: ['packages:jsTest'],\n groupName: 'JS test packages',\n },\n ],\n },\n jsTestNonMajor: {\n description: 'Group non-major JS test package updates together.',\n packageRules: [\n {\n extends: ['packages:jsTest'],\n groupName: 'JS test packages',\n matchUpdateTypes: ['minor', 'patch'],\n },\n ],\n },\n jsUnitTest: {\n description: 'Group JavaScript unit test packages together.',\n packageRules: [\n {\n extends: ['packages:jsUnitTest'],\n groupName: 'JS unit test packages',\n },\n ],\n },\n jsUnitTestNonMajor: {\n description:\n 'Group JavaScipt unit test packages together for non-major updates.',\n packageRules: [\n {\n extends: ['packages:jsUnitTest'],\n groupName: 'JS unit test packages',\n matchUpdateTypes: ['minor', 'patch'],\n },\n ],\n },\n jwtFramework: {\n description: 'Group JWT Framework packages together.',\n packageRules: [\n {\n groupName: 'JWT Framework packages',\n matchDatasources: ['packagist'],\n matchPackageNames: ['web-token/**'],\n },\n ],\n },\n linters: {\n description: 'Group various lint packages together.',\n packageRules: [\n {\n extends: ['packages:linters'],\n groupName: 'linters',\n },\n ],\n },\n micrometer: {\n description:\n \"Group Micrometer packages together, e.g. 'io.micrometer:micrometer-core'.\",\n packageRules: [\n {\n groupName: 'micrometer',\n matchPackageNames: ['io.micrometer:micrometer-**'],\n },\n ],\n },\n nodeJs: {\n description:\n \"Group anything that looks like Node.js together so that it's updated together.\",\n packageRules: [\n {\n commitMessageTopic: 'Node.js',\n matchDatasources: ['docker', 'node-version'],\n matchPackageNames: [\n '/(?:^|/)node$/', // node or ends with \"/node, except those below\"\n '!calico/node',\n '!docker.io/calico/node',\n '!ghcr.io/devcontainers/features/node',\n '!kindest/node',\n '!docker.io/kindest/node',\n ],\n },\n ],\n },\n phpstan: {\n description: 'Group PHPStan packages together.',\n packageRules: [\n {\n groupName: 'PHPStan packages',\n matchDatasources: ['packagist'],\n matchPackageNames: [\n 'phpstan/phpstan',\n '//phpstan-/',\n '//larastan/',\n 'phpstan/extension-installer',\n ],\n },\n ],\n },\n pnpm: {\n description: 'Group pnpm packages together.',\n packageRules: [\n {\n groupName: 'pnpm packages',\n matchDatasources: ['docker', 'npm'],\n matchPackageNames: ['pnpm', 'ghcr.io/pnpm/pnpm'],\n },\n ],\n },\n polymer: {\n description: 'Group all `@polymer` packages together.',\n packageRules: [\n {\n groupName: 'polymer packages',\n matchPackageNames: ['@polymer/**'],\n },\n ],\n },\n postcss: {\n description: 'Group PostCSS packages together.',\n packageRules: [\n {\n extends: ['packages:postcss'],\n groupName: 'postcss packages',\n },\n ],\n },\n pulumi: {\n description: 'Group Pulumi packages together.',\n packageRules: [\n {\n description: 'Group Pulumi Node.JS packages together.',\n groupName: 'Pulumi',\n groupSlug: 'pulumi-node',\n matchDatasources: ['npm'],\n matchPackageNames: ['@pulumi/**'],\n },\n {\n description: 'Group Pulumi Python packages together.',\n groupName: 'Pulumi',\n groupSlug: 'pulumi-python',\n matchDatasources: ['pypi'],\n matchPackageNames: ['pulumi-**'],\n },\n {\n description: 'Group Pulumi Go packages together.',\n groupName: 'Pulumi',\n groupSlug: 'pulumi-go',\n matchDatasources: ['go'],\n matchPackageNames: ['github.com/pulumi/**'],\n },\n {\n description: 'Group Pulumi Java packages together.',\n groupName: 'Pulumi',\n groupSlug: 'pulumi-java',\n matchDatasources: ['maven'],\n matchPackageNames: ['com.pulumi**'],\n },\n {\n description: 'Group Pulumi .NET packages together.',\n groupName: 'Pulumi',\n groupSlug: 'pulumi-dotnet',\n matchDatasources: ['nuget'],\n matchPackageNames: ['Pulumi**'],\n },\n ],\n },\n puppeteer: {\n description: 'Group Puppeteer packages together.',\n packageRules: [\n {\n groupName: 'Puppeteer',\n matchDatasources: ['npm'],\n matchPackageNames: ['puppeteer', 'puppeteer-core'],\n },\n ],\n },\n react: {\n description: 'Group React and corresponding `@types` packages together.',\n packageRules: [\n {\n groupName: 'react monorepo',\n matchPackageNames: [\n '@types/react',\n '@types/react-dom',\n '@types/react-is',\n ],\n },\n ],\n },\n recommended: {\n extends: [\n 'group:nodeJs',\n 'group:allApollographql',\n 'group:apiPlatform',\n 'group:codemirror',\n 'group:flyway',\n 'group:fortawesome',\n 'group:fusionjs',\n 'group:githubArtifactActions',\n 'group:glimmer',\n 'group:goOpenapi',\n 'group:gradle',\n 'group:hibernateCore',\n 'group:hibernateValidator',\n 'group:hibernateOgm',\n 'group:hibernateCommons',\n 'group:illuminate',\n 'group:jekyllEcosystem',\n 'group:jestPlusTSJest',\n 'group:jestPlusTypes',\n 'group:jwtFramework',\n 'group:micrometer',\n 'group:phpstan',\n 'group:polymer',\n 'group:puppeteer',\n 'group:react',\n 'group:remark',\n 'group:resilience4j',\n 'group:rubyOnRails',\n 'group:rubyOmniauth',\n 'group:socketio',\n 'group:springAmqp',\n 'group:springAndroid',\n 'group:springBatch',\n 'group:springBoot',\n 'group:springCloud',\n 'group:springCore',\n 'group:springData',\n 'group:springHateoas',\n 'group:springIntegration',\n 'group:springKafka',\n 'group:springLdap',\n 'group:springMobile',\n 'group:springOsgi',\n 'group:springRestDocs',\n 'group:springRoo',\n 'group:springScala',\n 'group:springSecurity',\n 'group:springSession',\n 'group:springShell',\n 'group:springSocial',\n 'group:springStatemachine',\n 'group:springWebflow',\n 'group:springWs',\n 'group:symfony',\n ],\n overrideDescription:\n 'Use curated list of recommended non-monorepo package groupings.',\n },\n remark: {\n description: 'Group remark packages together.',\n packageRules: [\n {\n groupName: 'remark',\n matchDatasources: ['npm'],\n matchSourceUrls: ['https://github.com/remarkjs/**'],\n },\n ],\n },\n resilience4j: {\n description: 'Group Java Resilience4j packages.',\n packageRules: [\n {\n groupName: 'resilience4j',\n matchPackageNames: ['io.github.resilience4j:**'],\n },\n ],\n },\n rubyOmniauth: {\n description: 'Group OmniAuth packages together.',\n packageRules: [\n {\n groupName: 'omniauth packages',\n matchDatasources: ['rubygems'],\n matchPackageNames: ['omniauth**'],\n },\n ],\n },\n rubyOnRails: {\n description: 'Group Ruby on Rails packages together.',\n packageRules: [\n {\n groupName: 'Ruby on Rails packages',\n matchDatasources: ['rubygems'],\n matchPackageNames: [\n 'actioncable',\n 'actionmailbox',\n 'actionmailer',\n 'actionpack',\n 'actiontext',\n 'actionview',\n 'activejob',\n 'activemodel',\n 'activerecord',\n 'activestorage',\n 'activesupport',\n 'railties',\n 'rails',\n ],\n },\n ],\n },\n socketio: {\n description: 'Group socket.io packages.',\n packageRules: [\n {\n groupName: 'socket.io packages',\n matchPackageNames: ['socket.io**'],\n },\n ],\n },\n springAmqp: {\n description: 'Group Java Spring AMQP packages.',\n packageRules: [\n {\n groupName: 'spring amqp',\n matchPackageNames: ['org.springframework.amqp:**'],\n },\n ],\n },\n springAndroid: {\n description: 'Group Java Spring Android packages.',\n packageRules: [\n {\n groupName: 'spring android',\n matchPackageNames: ['org.springframework.android:**'],\n },\n ],\n },\n springBatch: {\n description: 'Group Java Spring Batch packages.',\n packageRules: [\n {\n groupName: 'spring batch',\n matchPackageNames: ['org.springframework.batch:**'],\n },\n ],\n },\n springBoot: {\n description: 'Group Java Spring Boot packages.',\n packageRules: [\n {\n groupName: 'spring boot',\n matchDepNames: ['org.springframework.boot'],\n },\n {\n groupName: 'spring boot',\n matchPackageNames: ['org.springframework.boot:**'],\n },\n ],\n },\n springCloud: {\n description: 'Group Java Spring Cloud packages.',\n packageRules: [\n {\n groupName: 'spring cloud',\n matchPackageNames: ['org.springframework.cloud:**'],\n },\n ],\n },\n springCore: {\n description: 'Group Java Spring Core packages.',\n packageRules: [\n {\n groupName: 'spring core',\n matchPackageNames: ['org.springframework:**'],\n },\n ],\n },\n springData: {\n description: 'Group Java Spring Data packages.',\n packageRules: [\n {\n groupName: 'spring data',\n matchPackageNames: ['org.springframework.data:**'],\n },\n ],\n },\n springHateoas: {\n description: 'Group Java Spring HATEOAS packages.',\n packageRules: [\n {\n groupName: 'spring hateoas',\n matchPackageNames: ['org.springframework.hateoas:**'],\n },\n ],\n },\n springIntegration: {\n description: 'Group Java Spring Integration packages.',\n packageRules: [\n {\n groupName: 'spring integration',\n matchPackageNames: ['org.springframework.integration:**'],\n },\n ],\n },\n springKafka: {\n description: 'Group Java Spring Kafka packages.',\n packageRules: [\n {\n groupName: 'spring kafka',\n matchPackageNames: ['org.springframework.kafka:**'],\n },\n ],\n },\n springLdap: {\n description: 'Group Java Spring LDAP packages.',\n packageRules: [\n {\n groupName: 'spring ldap',\n matchPackageNames: ['org.springframework.ldap:**'],\n },\n ],\n },\n springMobile: {\n description: 'Group Java Spring Mobile packages.',\n packageRules: [\n {\n groupName: 'spring mobile',\n matchPackageNames: ['org.springframework.mobile:**'],\n },\n ],\n },\n springOsgi: {\n description: 'Group Java Spring OSGi packages.',\n packageRules: [\n {\n groupName: 'spring osgi',\n matchPackageNames: ['org.springframework.osgi:**'],\n },\n ],\n },\n springRestDocs: {\n description: 'Group Java Spring REST Docs packages.',\n packageRules: [\n {\n groupName: 'spring restdocs',\n matchPackageNames: ['org.springframework.restdocs:**'],\n },\n ],\n },\n springRoo: {\n description: 'Group Java Spring Roo packages.',\n packageRules: [\n {\n groupName: 'spring roo',\n matchPackageNames: ['org.springframework.roo:**'],\n },\n ],\n },\n springScala: {\n description: 'Group Java Spring Scala packages.',\n packageRules: [\n {\n groupName: 'spring scala',\n matchPackageNames: ['org.springframework.scala:**'],\n },\n ],\n },\n springSecurity: {\n description: 'Group Java Spring Security packages.',\n packageRules: [\n {\n groupName: 'spring security',\n matchPackageNames: ['org.springframework.security:**'],\n },\n ],\n },\n springSession: {\n description: 'Group Java Spring Session packages.',\n packageRules: [\n {\n groupName: 'spring session',\n matchPackageNames: ['org.springframework.session:**'],\n },\n ],\n },\n springShell: {\n description: 'Group Java Spring Shell packages.',\n packageRules: [\n {\n groupName: 'spring shell',\n matchPackageNames: ['org.springframework.shell:**'],\n },\n ],\n },\n springSocial: {\n description: 'Group Java Spring Social packages.',\n packageRules: [\n {\n groupName: 'spring social',\n matchPackageNames: ['org.springframework.social:**'],\n },\n ],\n },\n springStatemachine: {\n description: 'Group Java Spring Statemachine packages.',\n packageRules: [\n {\n groupName: 'spring statemachine',\n matchPackageNames: ['org.springframework.statemachine:**'],\n },\n ],\n },\n springWebflow: {\n description: 'Group Java Spring WebFlow packages.',\n packageRules: [\n {\n groupName: 'spring webflow',\n matchPackageNames: ['org.springframework.webflow:**'],\n },\n ],\n },\n springWs: {\n description: 'Group Java Spring WS packages.',\n packageRules: [\n {\n groupName: 'spring ws',\n matchPackageNames: ['org.springframework.ws:**'],\n },\n ],\n },\n stylelint: {\n description: 'Group stylelint packages together.',\n packageRules: [\n {\n extends: ['packages:stylelint'],\n groupName: 'stylelint packages',\n groupSlug: 'stylelint',\n separateMajorMinor: false,\n },\n ],\n },\n symfony: {\n description: 'Group PHP Symfony packages together.',\n packageRules: [\n {\n groupName: 'symfony packages',\n groupSlug: 'symfony',\n matchDatasources: ['packagist'],\n matchPackageNames: [\n 'symfony/*',\n '!symfony/*contracts',\n '!symfony/*pack',\n '!symfony/flex',\n '!symfony/maker-bundle',\n '!symfony/monolog-bundle',\n '!symfony/panther',\n '!symfony/polyfill*',\n '!symfony/proxy-manager-bridge',\n '!symfony/security-guard',\n '!symfony/stimulus-bundle',\n '!symfony/templating',\n '!symfony/thanks',\n '!symfony/ux*',\n '!symfony/webpack-encore-bundle',\n ],\n },\n ],\n },\n test: {\n description: 'Group all test packages together.',\n packageRules: [\n {\n extends: ['packages:test'],\n groupName: 'test packages',\n },\n ],\n },\n testNonMajor: {\n description: 'Group all non-major test package updates together.',\n packageRules: [\n {\n extends: ['packages:test'],\n groupName: 'test packages',\n matchUpdateTypes: ['minor', 'patch'],\n },\n ],\n },\n unitTest: {\n description: 'Group all unit test packages together.',\n packageRules: [\n {\n extends: ['packages:unitTest'],\n groupName: 'unit test packages',\n },\n ],\n },\n unitTestNonMajor: {\n description: 'Group all unit test packages together for non-major updates.',\n packageRules: [\n {\n extends: ['packages:unitTest'],\n groupName: 'unit test packages',\n matchUpdateTypes: ['minor', 'patch'],\n },\n ],\n },\n vite: {\n description: 'Group all Vite related packages together.',\n packageRules: [\n {\n extends: ['packages:vite'],\n groupName: 'Vite packages',\n },\n ],\n },\n};\n\nconst config: any = { ...staticGroups };\n\nconst monorepoNames = [];\nfor (const monorepo of Object.keys(monorepos.presets)) {\n const name = `${monorepo}Monorepo`;\n monorepoNames.push(`group:${name}`);\n config[name] = {\n packageRules: [\n {\n description: `Group packages from ${monorepo} monorepo together.`,\n extends: [`monorepo:${monorepo}`],\n groupName: `${monorepo} monorepo`,\n matchUpdateTypes: nonPinUpdateTypes,\n },\n ],\n };\n}\nconfig.monorepos = {\n extends: monorepoNames,\n overrideDescription: 'Group known monorepo packages together.',\n};\n\nexport const presets: Record<string, Preset> = config;\n"],"mappings":";;AAGA,MAAM,oBAAoB;CAAC;CAAU;CAAS;CAAS;AAAO;AAi4B9D,MAAM,SAAc;CA93BlB,KAAK;EACH,aAAa;EACb,WAAW;EACX,WAAW;EACX,cAAc,CACZ;GACE,WAAW;GACX,WAAW;GACX,mBAAmB,CAAC,GAAG;EACzB,CACF;EAEA,oBAAoB;CACtB;CACA,kBAAkB;EAChB,aAAa;EACb,cAAc,CACZ;GACE,SAAS,CAAC,wBAAwB;GAClC,WAAW;EACb,CACF;CACF;CACA,WAAW;EACT,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,WAAW;GACX,mBAAmB,CAAC,GAAG;GACvB,kBAAkB,CAAC,QAAQ;EAC7B,CACF;CACF;CACA,aAAa;EACX,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,WAAW;GACX,mBAAmB,CAAC,GAAG;GACvB,kBAAkB,CAAC,SAAS,OAAO;EACrC,CACF;CACF;CACA,aAAa;EACX,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,WAAW;GACX,kBAAkB,CAAC,WAAW;GAC9B,mBAAmB;IACjB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACF;EACF,CACF;CACF;CACA,UAAU;EACR,aAAa;EACb,cAAc,CACZ;GACE,SAAS,CAAC,mBAAmB;GAC7B,WAAW;EACb,CACF;CACF;CACA,YAAY;EACV,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,gBAAgB;EACtC,CACF;CACF;CACA,iBAAiB;EACf,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,WAAW;EACjC,CACF;CACF;CACA,YAAY;EACV,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,kBAAkB,CAAC,QAAQ;GAC3B,mBAAmB,CAAC,6BAA6B;EACnD,CACF;CACF;CACA,eAAe;EACb,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,eAAe,eAAe;EACpD,CACF;CACF;CACA,QAAQ;EACN,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,kBAAkB,uBAAuB;EAC/D,CACF;CACF;CACA,aAAa;EACX,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,iBAAiB;EACvC,CACF;CACF;CACA,UAAU;EACR,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB;IACjB;IACA;IACA;IACA;IACA;IACA;IACA;GACF;EACF,CACF;CACF;CACA,uBAAuB;EACrB,aACE;EACF,cAAc,CACZ;GACE,WAAW;GACX,eAAe,CAAC,gBAAgB;GAChC,mBAAmB,CACjB,6BACA,yBACF;GACA,kBAAkB,CAAC,OAAO;EAC5B,CACF;CACF;CACA,SAAS;EACP,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,WAAW;GACX,mBAAmB,CAAC,sBAAsB,mBAAmB;EAC/D,CACF;CACF;CACA,YAAY;EACV,aAAa;EACb,cAAc,CACZ;GACE,SAAS,CAAC,qBAAqB;GAC/B,WAAW;EACb,CACF;CACF;CACA,WAAW;EACT,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,WAAW;GACX,kBAAkB,CAAC,IAAI;GACvB,mBAAmB,CAAC,0BAA0B;EAChD,CACF;CACF;CACA,QAAQ;EACN,aACE;EACF,cAAc,CACZ;GACE,oBAAoB;GACpB,kBAAkB,CAAC,UAAU,gBAAgB;GAC7C,mBAAmB,CACjB,kBACF;EACF,CACF;CACF;CACA,kBAAkB;EAChB,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,yBAAyB;EAC/C,CACF;CACF;CACA,eAAe;EACb,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,kBAAkB;EACxC,CACF;CACF;CACA,cAAc;EACZ,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,sBAAsB;EAC5C,CACF;CACF;CACA,oBAAoB;EAClB,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,4BAA4B;EAClD,CACF;CACF;CACA,YAAY;EACV,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,WAAW;GACX,mBAAmB,CAAC,eAAe;EACrC,CACF;CACF;CACA,iBAAiB;EACf,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,iBAAiB,CACf,gCACA,uCACF;EACF,CACF;CACF;CACA,gBAAgB;EACd,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,iBAAiB,CAAC,uCAAuC;GACzD,kBAAkB,CAAC,OAAO;EAC5B,CACF;CACF;CACA,eAAe;EACb,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,aAAa;GACjC,kBAAkB;EACpB,CACF;CACF;CACA,QAAQ;EACN,aAAa;EACb,cAAc,CACZ;GACE,SAAS,CAAC,iBAAiB;GAC3B,WAAW;EACb,CACF;CACF;CACA,gBAAgB;EACd,aAAa;EACb,cAAc,CACZ;GACE,SAAS,CAAC,iBAAiB;GAC3B,WAAW;GACX,kBAAkB,CAAC,SAAS,OAAO;EACrC,CACF;CACF;CACA,YAAY;EACV,aAAa;EACb,cAAc,CACZ;GACE,SAAS,CAAC,qBAAqB;GAC/B,WAAW;EACb,CACF;CACF;CACA,oBAAoB;EAClB,aACE;EACF,cAAc,CACZ;GACE,SAAS,CAAC,qBAAqB;GAC/B,WAAW;GACX,kBAAkB,CAAC,SAAS,OAAO;EACrC,CACF;CACF;CACA,cAAc;EACZ,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,kBAAkB,CAAC,WAAW;GAC9B,mBAAmB,CAAC,cAAc;EACpC,CACF;CACF;CACA,SAAS;EACP,aAAa;EACb,cAAc,CACZ;GACE,SAAS,CAAC,kBAAkB;GAC5B,WAAW;EACb,CACF;CACF;CACA,YAAY;EACV,aACE;EACF,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,6BAA6B;EACnD,CACF;CACF;CACA,QAAQ;EACN,aACE;EACF,cAAc,CACZ;GACE,oBAAoB;GACpB,kBAAkB,CAAC,UAAU,cAAc;GAC3C,mBAAmB;IACjB;IACA;IACA;IACA;IACA;IACA;GACF;EACF,CACF;CACF;CACA,SAAS;EACP,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,kBAAkB,CAAC,WAAW;GAC9B,mBAAmB;IACjB;IACA;IACA;IACA;GACF;EACF,CACF;CACF;CACA,MAAM;EACJ,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,kBAAkB,CAAC,UAAU,KAAK;GAClC,mBAAmB,CAAC,QAAQ,mBAAmB;EACjD,CACF;CACF;CACA,SAAS;EACP,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,aAAa;EACnC,CACF;CACF;CACA,SAAS;EACP,aAAa;EACb,cAAc,CACZ;GACE,SAAS,CAAC,kBAAkB;GAC5B,WAAW;EACb,CACF;CACF;CACA,QAAQ;EACN,aAAa;EACb,cAAc;GACZ;IACE,aAAa;IACb,WAAW;IACX,WAAW;IACX,kBAAkB,CAAC,KAAK;IACxB,mBAAmB,CAAC,YAAY;GAClC;GACA;IACE,aAAa;IACb,WAAW;IACX,WAAW;IACX,kBAAkB,CAAC,MAAM;IACzB,mBAAmB,CAAC,WAAW;GACjC;GACA;IACE,aAAa;IACb,WAAW;IACX,WAAW;IACX,kBAAkB,CAAC,IAAI;IACvB,mBAAmB,CAAC,sBAAsB;GAC5C;GACA;IACE,aAAa;IACb,WAAW;IACX,WAAW;IACX,kBAAkB,CAAC,OAAO;IAC1B,mBAAmB,CAAC,cAAc;GACpC;GACA;IACE,aAAa;IACb,WAAW;IACX,WAAW;IACX,kBAAkB,CAAC,OAAO;IAC1B,mBAAmB,CAAC,UAAU;GAChC;EACF;CACF;CACA,WAAW;EACT,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,kBAAkB,CAAC,KAAK;GACxB,mBAAmB,CAAC,aAAa,gBAAgB;EACnD,CACF;CACF;CACA,OAAO;EACL,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB;IACjB;IACA;IACA;GACF;EACF,CACF;CACF;CACA,aAAa;EACX,SAAS;GACP;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF;EACA,qBACE;CACJ;CACA,QAAQ;EACN,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,kBAAkB,CAAC,KAAK;GACxB,iBAAiB,CAAC,gCAAgC;EACpD,CACF;CACF;CACA,cAAc;EACZ,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,2BAA2B;EACjD,CACF;CACF;CACA,cAAc;EACZ,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,kBAAkB,CAAC,UAAU;GAC7B,mBAAmB,CAAC,YAAY;EAClC,CACF;CACF;CACA,aAAa;EACX,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,kBAAkB,CAAC,UAAU;GAC7B,mBAAmB;IACjB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACF;EACF,CACF;CACF;CACA,UAAU;EACR,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,aAAa;EACnC,CACF;CACF;CACA,YAAY;EACV,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,6BAA6B;EACnD,CACF;CACF;CACA,eAAe;EACb,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,gCAAgC;EACtD,CACF;CACF;CACA,aAAa;EACX,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,8BAA8B;EACpD,CACF;CACF;CACA,YAAY;EACV,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,eAAe,CAAC,0BAA0B;EAC5C,GACA;GACE,WAAW;GACX,mBAAmB,CAAC,6BAA6B;EACnD,CACF;CACF;CACA,aAAa;EACX,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,8BAA8B;EACpD,CACF;CACF;CACA,YAAY;EACV,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,wBAAwB;EAC9C,CACF;CACF;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"}
1
+ {"version":3,"file":"group.preset.js","names":["monorepos.presets"],"sources":["../../../../lib/config/presets/internal/group.preset.ts"],"sourcesContent":["import type { Preset } from '../types.ts';\nimport * as monorepos from './monorepos.preset.ts';\n\nconst nonPinUpdateTypes = ['digest', 'patch', 'minor', 'major'];\n\nconst staticGroups = {\n all: {\n description: 'Group all updates together.',\n groupName: 'all dependencies',\n groupSlug: 'all',\n packageRules: [\n {\n groupName: 'all dependencies',\n groupSlug: 'all',\n matchPackageNames: ['*'],\n },\n ],\n\n separateMajorMinor: false,\n },\n allApollographql: {\n description: 'Group all packages published by Apollo GraphQL together.',\n packageRules: [\n {\n extends: ['packages:apollographql'],\n groupName: 'Apollo GraphQL packages',\n },\n ],\n },\n allDigest: {\n description: 'Group all `digest` updates together.',\n packageRules: [\n {\n groupName: 'all digest updates',\n groupSlug: 'all-digest',\n matchPackageNames: ['*'],\n matchUpdateTypes: ['digest'],\n },\n ],\n },\n allNonMajor: {\n description: 'Group all `minor` and `patch` updates together.',\n packageRules: [\n {\n groupName: 'all non-major dependencies',\n groupSlug: 'all-minor-patch',\n matchPackageNames: ['*'],\n matchUpdateTypes: ['minor', 'patch'],\n },\n ],\n },\n apiPlatform: {\n description: 'Group PHP API Platform packages together.',\n packageRules: [\n {\n groupName: 'api-platform packages',\n groupSlug: 'api-platform',\n matchDatasources: ['packagist'],\n matchPackageNames: [\n 'api-platform/*',\n '!api-platform/admin-meta',\n '!api-platform/admin-pack',\n '!api-platform/api-pack',\n '!api-platform/api-platform',\n '!api-platform/parameter-validator',\n '!api-platform/postman-collection-generator',\n '!api-platform/schema-generator',\n ],\n },\n ],\n },\n atlaskit: {\n description: 'Group all Atlassian `@atlaskit` packages together.',\n packageRules: [\n {\n extends: ['packages:atlaskit'],\n groupName: 'Atlassian Atlaskit packages',\n },\n ],\n },\n codemirror: {\n description: 'Group CodeMirror packages together.',\n packageRules: [\n {\n groupName: 'CodeMirror',\n matchPackageNames: ['@codemirror/**'],\n },\n ],\n },\n definitelyTyped: {\n description: 'Group all `@types` packages together.',\n packageRules: [\n {\n groupName: 'definitelyTyped',\n matchPackageNames: ['@types/**'],\n },\n ],\n },\n dotNetCore: {\n description: '.NET Core Docker containers.',\n packageRules: [\n {\n groupName: '.NET Core Docker containers',\n matchDatasources: ['docker'],\n matchPackageNames: ['mcr.microsoft.com/dotnet/**'],\n },\n ],\n },\n 'drupal-core': {\n description: 'Group Drupal core updates.',\n packageRules: [\n {\n groupName: 'Drupal core',\n matchPackageNames: ['drupal/core', 'drupal/core-*'],\n },\n ],\n },\n flyway: {\n description: 'Group Java Flyway packages.',\n packageRules: [\n {\n groupName: 'flyway',\n matchPackageNames: ['org.flywaydb:*', 'org.flywaydb.flyway:*'],\n },\n ],\n },\n fortawesome: {\n description: 'Group all packages by Font Awesome together.',\n packageRules: [\n {\n groupName: 'Font Awesome',\n matchPackageNames: ['@fortawesome/**'],\n },\n ],\n },\n fusionjs: {\n description: 'Group Fusion.js packages together.',\n packageRules: [\n {\n groupName: 'Fusion.js packages',\n matchPackageNames: [\n 'fusion-cli',\n 'fusion-core',\n 'fusion-test-utils',\n 'fusion-tokens',\n 'fusion-plugin-**',\n 'fusion-react**',\n 'fusion-apollo**',\n ],\n },\n ],\n },\n githubArtifactActions: {\n description:\n 'Group `download-artifact` and `upload-artifact` major updates together.',\n packageRules: [\n {\n groupName: 'GitHub Artifact Actions',\n matchManagers: ['github-actions'],\n matchPackageNames: [\n 'actions/download-artifact',\n 'actions/upload-artifact',\n ],\n matchUpdateTypes: ['major'],\n },\n ],\n },\n glimmer: {\n description: 'Group Glimmer.js packages together.',\n packageRules: [\n {\n groupName: 'Glimmer.js packages',\n groupSlug: 'glimmer',\n matchPackageNames: ['@glimmer/component', '@glimmer/tracking'],\n },\n ],\n },\n googleapis: {\n description: 'Group `googleapis` packages together.',\n packageRules: [\n {\n extends: ['packages:googleapis'],\n groupName: 'googleapis packages',\n },\n ],\n },\n goOpenapi: {\n description: 'Group `go-openapi` packages together.',\n packageRules: [\n {\n groupName: 'go-openapi packages',\n groupSlug: 'go-openapi',\n matchDatasources: ['go'],\n matchPackageNames: ['github.com/go-openapi/**'],\n },\n ],\n },\n gradle: {\n description:\n \"Group anything that looks like Gradle together so that it's updated together.\",\n packageRules: [\n {\n commitMessageTopic: 'Gradle',\n matchDatasources: ['docker', 'gradle-version'],\n matchPackageNames: [\n '/(?:^|/)gradle$/', // gradle or ends with \"/gradle\"\n ],\n },\n ],\n },\n hibernateCommons: {\n description: 'Group Java Hibernate Commons packages.',\n packageRules: [\n {\n groupName: 'hibernate commons',\n matchPackageNames: ['org.hibernate.common:**'],\n },\n ],\n },\n hibernateCore: {\n description: 'Group Java Hibernate Core packages.',\n packageRules: [\n {\n groupName: 'hibernate core',\n matchPackageNames: ['org.hibernate:**'],\n },\n ],\n },\n hibernateOgm: {\n description: 'Group Java Hibernate OGM packages.',\n packageRules: [\n {\n groupName: 'hibernate ogm',\n matchPackageNames: ['org.hibernate.ogm:**'],\n },\n ],\n },\n hibernateValidator: {\n description: 'Group Java Hibernate Validator packages.',\n packageRules: [\n {\n groupName: 'hibernate validator',\n matchPackageNames: ['org.hibernate.validator:**'],\n },\n ],\n },\n illuminate: {\n description: 'Group PHP Illuminate packages together.',\n packageRules: [\n {\n groupName: 'illuminate packages',\n groupSlug: 'illuminate',\n matchPackageNames: ['illuminate/**'],\n },\n ],\n },\n jekyllEcosystem: {\n description: 'Group Jekyll and related Ruby packages together.',\n packageRules: [\n {\n groupName: 'jekyll ecosystem packages',\n matchSourceUrls: [\n 'https://github.com/jekyll/**',\n 'https://github.com/github/pages-gem**',\n ],\n },\n ],\n },\n jestPlusTSJest: {\n description: 'Add `ts-jest` `major` update to Jest monorepo.',\n packageRules: [\n {\n groupName: 'jest monorepo',\n matchSourceUrls: ['https://github.com/kulshekhar/ts-jest'],\n matchUpdateTypes: ['major'],\n },\n ],\n },\n jestPlusTypes: {\n description: 'Add `@types/jest` update to Jest monorepo.',\n packageRules: [\n {\n groupName: 'jest monorepo',\n matchPackageNames: ['@types/jest'],\n matchUpdateTypes: nonPinUpdateTypes,\n },\n ],\n },\n jsTest: {\n description: 'Group JS test packages together.',\n packageRules: [\n {\n extends: ['packages:jsTest'],\n groupName: 'JS test packages',\n },\n ],\n },\n jsTestNonMajor: {\n description: 'Group non-major JS test package updates together.',\n packageRules: [\n {\n extends: ['packages:jsTest'],\n groupName: 'JS test packages',\n matchUpdateTypes: ['minor', 'patch'],\n },\n ],\n },\n jsUnitTest: {\n description: 'Group JavaScript unit test packages together.',\n packageRules: [\n {\n extends: ['packages:jsUnitTest'],\n groupName: 'JS unit test packages',\n },\n ],\n },\n jsUnitTestNonMajor: {\n description:\n 'Group JavaScipt unit test packages together for non-major updates.',\n packageRules: [\n {\n extends: ['packages:jsUnitTest'],\n groupName: 'JS unit test packages',\n matchUpdateTypes: ['minor', 'patch'],\n },\n ],\n },\n jwtFramework: {\n description: 'Group JWT Framework packages together.',\n packageRules: [\n {\n groupName: 'JWT Framework packages',\n matchDatasources: ['packagist'],\n matchPackageNames: ['web-token/**'],\n },\n ],\n },\n linters: {\n description: 'Group various lint packages together.',\n packageRules: [\n {\n extends: ['packages:linters'],\n groupName: 'linters',\n },\n ],\n },\n micrometer: {\n description:\n \"Group Micrometer packages together, e.g. 'io.micrometer:micrometer-core'.\",\n packageRules: [\n {\n groupName: 'micrometer',\n matchPackageNames: ['io.micrometer:micrometer-**'],\n },\n ],\n },\n nodeJs: {\n description:\n \"Group anything that looks like Node.js together so that it's updated together.\",\n packageRules: [\n {\n commitMessageTopic: 'Node.js',\n matchDatasources: ['docker', 'node-version'],\n matchPackageNames: [\n '/(?:^|/)node$/', // node or ends with \"/node, except those below\"\n '!calico/node',\n '!docker.io/calico/node',\n '!ghcr.io/devcontainers/features/node',\n '!kindest/node',\n '!docker.io/kindest/node',\n ],\n },\n ],\n },\n phpstan: {\n description: 'Group PHPStan packages together.',\n packageRules: [\n {\n groupName: 'PHPStan packages',\n matchDatasources: ['packagist'],\n matchPackageNames: [\n 'phpstan/phpstan',\n '//phpstan-/',\n '//larastan/',\n 'phpstan/extension-installer',\n ],\n },\n ],\n },\n pnpm: {\n description: 'Group pnpm packages together.',\n packageRules: [\n {\n groupName: 'pnpm packages',\n matchDatasources: ['docker', 'npm'],\n matchPackageNames: ['pnpm', 'ghcr.io/pnpm/pnpm'],\n },\n ],\n },\n polymer: {\n description: 'Group all `@polymer` packages together.',\n packageRules: [\n {\n groupName: 'polymer packages',\n matchPackageNames: ['@polymer/**'],\n },\n ],\n },\n postcss: {\n description: 'Group PostCSS packages together.',\n packageRules: [\n {\n extends: ['packages:postcss'],\n groupName: 'postcss packages',\n },\n ],\n },\n pulumi: {\n description: 'Group Pulumi packages together.',\n packageRules: [\n {\n description: 'Group Pulumi Node.JS packages together.',\n groupName: 'Pulumi',\n groupSlug: 'pulumi-node',\n matchDatasources: ['npm'],\n matchPackageNames: ['@pulumi/**'],\n },\n {\n description: 'Group Pulumi Python packages together.',\n groupName: 'Pulumi',\n groupSlug: 'pulumi-python',\n matchDatasources: ['pypi'],\n matchPackageNames: ['pulumi-**'],\n },\n {\n description: 'Group Pulumi Go packages together.',\n groupName: 'Pulumi',\n groupSlug: 'pulumi-go',\n matchDatasources: ['go'],\n matchPackageNames: ['github.com/pulumi/**'],\n },\n {\n description: 'Group Pulumi Java packages together.',\n groupName: 'Pulumi',\n groupSlug: 'pulumi-java',\n matchDatasources: ['maven'],\n matchPackageNames: ['com.pulumi**'],\n },\n {\n description: 'Group Pulumi .NET packages together.',\n groupName: 'Pulumi',\n groupSlug: 'pulumi-dotnet',\n matchDatasources: ['nuget'],\n matchPackageNames: ['Pulumi**'],\n },\n ],\n },\n puppeteer: {\n description: 'Group Puppeteer packages together.',\n packageRules: [\n {\n groupName: 'Puppeteer',\n matchDatasources: ['npm'],\n matchPackageNames: ['puppeteer', 'puppeteer-core'],\n },\n ],\n },\n react: {\n description: 'Group React and corresponding `@types` packages together.',\n packageRules: [\n {\n groupName: 'react monorepo',\n matchPackageNames: [\n '@types/react',\n '@types/react-dom',\n '@types/react-is',\n ],\n },\n ],\n },\n recommended: {\n extends: [\n 'group:nodeJs',\n 'group:allApollographql',\n 'group:apiPlatform',\n 'group:codemirror',\n 'group:flyway',\n 'group:fortawesome',\n 'group:fusionjs',\n 'group:githubArtifactActions',\n 'group:glimmer',\n 'group:goOpenapi',\n 'group:gradle',\n 'group:hibernateCore',\n 'group:hibernateValidator',\n 'group:hibernateOgm',\n 'group:hibernateCommons',\n 'group:illuminate',\n 'group:jekyllEcosystem',\n 'group:jestPlusTSJest',\n 'group:jestPlusTypes',\n 'group:jwtFramework',\n 'group:micrometer',\n 'group:phpstan',\n 'group:polymer',\n 'group:puppeteer',\n 'group:react',\n 'group:remark',\n 'group:resilience4j',\n 'group:rubyOnRails',\n 'group:rubyOmniauth',\n 'group:socketio',\n 'group:springAmqp',\n 'group:springAndroid',\n 'group:springBatch',\n 'group:springBoot',\n 'group:springCloud',\n 'group:springCore',\n 'group:springData',\n 'group:springHateoas',\n 'group:springIntegration',\n 'group:springKafka',\n 'group:springLdap',\n 'group:springMobile',\n 'group:springOsgi',\n 'group:springRestDocs',\n 'group:springRoo',\n 'group:springScala',\n 'group:springSecurity',\n 'group:springSession',\n 'group:springShell',\n 'group:springSocial',\n 'group:springStatemachine',\n 'group:springWebflow',\n 'group:springWs',\n 'group:symfony',\n ],\n overrideDescription:\n 'Use curated list of recommended non-monorepo package groupings.',\n },\n remark: {\n description: 'Group remark packages together.',\n packageRules: [\n {\n groupName: 'remark',\n matchDatasources: ['npm'],\n matchSourceUrls: ['https://github.com/remarkjs/**'],\n },\n ],\n },\n resilience4j: {\n description: 'Group Java Resilience4j packages.',\n packageRules: [\n {\n groupName: 'resilience4j',\n matchPackageNames: ['io.github.resilience4j:**'],\n },\n ],\n },\n rubyOmniauth: {\n description: 'Group OmniAuth packages together.',\n packageRules: [\n {\n groupName: 'omniauth packages',\n matchDatasources: ['rubygems'],\n matchPackageNames: ['omniauth**'],\n },\n ],\n },\n rubyOnRails: {\n description: 'Group Ruby on Rails packages together.',\n packageRules: [\n {\n groupName: 'Ruby on Rails packages',\n matchDatasources: ['rubygems'],\n matchPackageNames: [\n 'actioncable',\n 'actionmailbox',\n 'actionmailer',\n 'actionpack',\n 'actiontext',\n 'actionview',\n 'activejob',\n 'activemodel',\n 'activerecord',\n 'activestorage',\n 'activesupport',\n 'railties',\n 'rails',\n ],\n },\n ],\n },\n socketio: {\n description: 'Group socket.io packages.',\n packageRules: [\n {\n groupName: 'socket.io packages',\n matchPackageNames: ['socket.io**'],\n },\n ],\n },\n springAmqp: {\n description: 'Group Java Spring AMQP packages.',\n packageRules: [\n {\n groupName: 'spring amqp',\n matchPackageNames: ['org.springframework.amqp:**'],\n },\n ],\n },\n springAndroid: {\n description: 'Group Java Spring Android packages.',\n packageRules: [\n {\n groupName: 'spring android',\n matchPackageNames: ['org.springframework.android:**'],\n },\n ],\n },\n springBatch: {\n description: 'Group Java Spring Batch packages.',\n packageRules: [\n {\n groupName: 'spring batch',\n matchPackageNames: ['org.springframework.batch:**'],\n },\n ],\n },\n springBoot: {\n description: 'Group Java Spring Boot packages.',\n packageRules: [\n {\n groupName: 'spring boot',\n matchDepNames: ['org.springframework.boot'],\n },\n {\n groupName: 'spring boot',\n matchPackageNames: ['org.springframework.boot:**'],\n },\n ],\n },\n springCloud: {\n description: 'Group Java Spring Cloud packages.',\n packageRules: [\n {\n groupName: 'spring cloud',\n matchPackageNames: ['org.springframework.cloud:**'],\n },\n ],\n },\n springCore: {\n description: 'Group Java Spring Core packages.',\n packageRules: [\n {\n groupName: 'spring core',\n matchPackageNames: ['org.springframework:**'],\n },\n ],\n },\n springData: {\n description: 'Group Java Spring Data packages.',\n packageRules: [\n {\n groupName: 'spring data',\n matchPackageNames: ['org.springframework.data:**'],\n },\n ],\n },\n springHateoas: {\n description: 'Group Java Spring HATEOAS packages.',\n packageRules: [\n {\n groupName: 'spring hateoas',\n matchPackageNames: ['org.springframework.hateoas:**'],\n },\n ],\n },\n springIntegration: {\n description: 'Group Java Spring Integration packages.',\n packageRules: [\n {\n groupName: 'spring integration',\n matchPackageNames: ['org.springframework.integration:**'],\n },\n ],\n },\n springKafka: {\n description: 'Group Java Spring Kafka packages.',\n packageRules: [\n {\n groupName: 'spring kafka',\n matchPackageNames: ['org.springframework.kafka:**'],\n },\n ],\n },\n springLdap: {\n description: 'Group Java Spring LDAP packages.',\n packageRules: [\n {\n groupName: 'spring ldap',\n matchPackageNames: ['org.springframework.ldap:**'],\n },\n ],\n },\n springMobile: {\n description: 'Group Java Spring Mobile packages.',\n packageRules: [\n {\n groupName: 'spring mobile',\n matchPackageNames: ['org.springframework.mobile:**'],\n },\n ],\n },\n springOsgi: {\n description: 'Group Java Spring OSGi packages.',\n packageRules: [\n {\n groupName: 'spring osgi',\n matchPackageNames: ['org.springframework.osgi:**'],\n },\n ],\n },\n springRestDocs: {\n description: 'Group Java Spring REST Docs packages.',\n packageRules: [\n {\n groupName: 'spring restdocs',\n matchPackageNames: ['org.springframework.restdocs:**'],\n },\n ],\n },\n springRoo: {\n description: 'Group Java Spring Roo packages.',\n packageRules: [\n {\n groupName: 'spring roo',\n matchPackageNames: ['org.springframework.roo:**'],\n },\n ],\n },\n springScala: {\n description: 'Group Java Spring Scala packages.',\n packageRules: [\n {\n groupName: 'spring scala',\n matchPackageNames: ['org.springframework.scala:**'],\n },\n ],\n },\n springSecurity: {\n description: 'Group Java Spring Security packages.',\n packageRules: [\n {\n groupName: 'spring security',\n matchPackageNames: ['org.springframework.security:**'],\n },\n ],\n },\n springSession: {\n description: 'Group Java Spring Session packages.',\n packageRules: [\n {\n groupName: 'spring session',\n matchPackageNames: ['org.springframework.session:**'],\n },\n ],\n },\n springShell: {\n description: 'Group Java Spring Shell packages.',\n packageRules: [\n {\n groupName: 'spring shell',\n matchPackageNames: ['org.springframework.shell:**'],\n },\n ],\n },\n springSocial: {\n description: 'Group Java Spring Social packages.',\n packageRules: [\n {\n groupName: 'spring social',\n matchPackageNames: ['org.springframework.social:**'],\n },\n ],\n },\n springStatemachine: {\n description: 'Group Java Spring Statemachine packages.',\n packageRules: [\n {\n groupName: 'spring statemachine',\n matchPackageNames: ['org.springframework.statemachine:**'],\n },\n ],\n },\n springWebflow: {\n description: 'Group Java Spring WebFlow packages.',\n packageRules: [\n {\n groupName: 'spring webflow',\n matchPackageNames: ['org.springframework.webflow:**'],\n },\n ],\n },\n springWs: {\n description: 'Group Java Spring WS packages.',\n packageRules: [\n {\n groupName: 'spring ws',\n matchPackageNames: ['org.springframework.ws:**'],\n },\n ],\n },\n stylelint: {\n description: 'Group stylelint packages together.',\n packageRules: [\n {\n extends: ['packages:stylelint'],\n groupName: 'stylelint packages',\n groupSlug: 'stylelint',\n separateMajorMinor: false,\n },\n ],\n },\n symfony: {\n description: 'Group PHP Symfony packages together.',\n packageRules: [\n {\n groupName: 'symfony packages',\n groupSlug: 'symfony',\n matchDatasources: ['packagist'],\n matchPackageNames: [\n 'symfony/*',\n '!symfony/*contracts',\n '!symfony/*pack',\n '!symfony/flex',\n '!symfony/maker-bundle',\n '!symfony/monolog-bundle',\n '!symfony/panther',\n '!symfony/polyfill*',\n '!symfony/proxy-manager-bridge',\n '!symfony/security-guard',\n '!symfony/stimulus-bundle',\n '!symfony/templating',\n '!symfony/thanks',\n '!symfony/ux*',\n '!symfony/webpack-encore-bundle',\n ],\n },\n ],\n },\n test: {\n description: 'Group all test packages together.',\n packageRules: [\n {\n extends: ['packages:test'],\n groupName: 'test packages',\n },\n ],\n },\n testNonMajor: {\n description: 'Group all non-major test package updates together.',\n packageRules: [\n {\n extends: ['packages:test'],\n groupName: 'test packages',\n matchUpdateTypes: ['minor', 'patch'],\n },\n ],\n },\n unitTest: {\n description: 'Group all unit test packages together.',\n packageRules: [\n {\n extends: ['packages:unitTest'],\n groupName: 'unit test packages',\n },\n ],\n },\n unitTestNonMajor: {\n description: 'Group all unit test packages together for non-major updates.',\n packageRules: [\n {\n extends: ['packages:unitTest'],\n groupName: 'unit test packages',\n matchUpdateTypes: ['minor', 'patch'],\n },\n ],\n },\n vite: {\n description: 'Group all Vite related packages together.',\n packageRules: [\n {\n extends: ['packages:vite'],\n groupName: 'Vite packages',\n },\n ],\n },\n vitePlus: {\n description: 'Group all Vite+ related packages together.',\n packageRules: [\n {\n extends: ['packages:vitePlus'],\n groupName: 'Vite+ packages',\n },\n ],\n },\n};\n\nconst config: any = { ...staticGroups };\n\nconst monorepoNames = [];\nfor (const monorepo of Object.keys(monorepos.presets)) {\n const name = `${monorepo}Monorepo`;\n monorepoNames.push(`group:${name}`);\n config[name] = {\n packageRules: [\n {\n description: `Group packages from ${monorepo} monorepo together.`,\n extends: [`monorepo:${monorepo}`],\n groupName: `${monorepo} monorepo`,\n matchUpdateTypes: nonPinUpdateTypes,\n },\n ],\n };\n}\nconfig.monorepos = {\n extends: monorepoNames,\n overrideDescription: 'Group known monorepo packages together.',\n};\n\nexport const presets: Record<string, Preset> = config;\n"],"mappings":";;AAGA,MAAM,oBAAoB;CAAC;CAAU;CAAS;CAAS;AAAO;AA04B9D,MAAM,SAAc;CAv4BlB,KAAK;EACH,aAAa;EACb,WAAW;EACX,WAAW;EACX,cAAc,CACZ;GACE,WAAW;GACX,WAAW;GACX,mBAAmB,CAAC,GAAG;EACzB,CACF;EAEA,oBAAoB;CACtB;CACA,kBAAkB;EAChB,aAAa;EACb,cAAc,CACZ;GACE,SAAS,CAAC,wBAAwB;GAClC,WAAW;EACb,CACF;CACF;CACA,WAAW;EACT,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,WAAW;GACX,mBAAmB,CAAC,GAAG;GACvB,kBAAkB,CAAC,QAAQ;EAC7B,CACF;CACF;CACA,aAAa;EACX,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,WAAW;GACX,mBAAmB,CAAC,GAAG;GACvB,kBAAkB,CAAC,SAAS,OAAO;EACrC,CACF;CACF;CACA,aAAa;EACX,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,WAAW;GACX,kBAAkB,CAAC,WAAW;GAC9B,mBAAmB;IACjB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACF;EACF,CACF;CACF;CACA,UAAU;EACR,aAAa;EACb,cAAc,CACZ;GACE,SAAS,CAAC,mBAAmB;GAC7B,WAAW;EACb,CACF;CACF;CACA,YAAY;EACV,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,gBAAgB;EACtC,CACF;CACF;CACA,iBAAiB;EACf,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,WAAW;EACjC,CACF;CACF;CACA,YAAY;EACV,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,kBAAkB,CAAC,QAAQ;GAC3B,mBAAmB,CAAC,6BAA6B;EACnD,CACF;CACF;CACA,eAAe;EACb,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,eAAe,eAAe;EACpD,CACF;CACF;CACA,QAAQ;EACN,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,kBAAkB,uBAAuB;EAC/D,CACF;CACF;CACA,aAAa;EACX,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,iBAAiB;EACvC,CACF;CACF;CACA,UAAU;EACR,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB;IACjB;IACA;IACA;IACA;IACA;IACA;IACA;GACF;EACF,CACF;CACF;CACA,uBAAuB;EACrB,aACE;EACF,cAAc,CACZ;GACE,WAAW;GACX,eAAe,CAAC,gBAAgB;GAChC,mBAAmB,CACjB,6BACA,yBACF;GACA,kBAAkB,CAAC,OAAO;EAC5B,CACF;CACF;CACA,SAAS;EACP,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,WAAW;GACX,mBAAmB,CAAC,sBAAsB,mBAAmB;EAC/D,CACF;CACF;CACA,YAAY;EACV,aAAa;EACb,cAAc,CACZ;GACE,SAAS,CAAC,qBAAqB;GAC/B,WAAW;EACb,CACF;CACF;CACA,WAAW;EACT,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,WAAW;GACX,kBAAkB,CAAC,IAAI;GACvB,mBAAmB,CAAC,0BAA0B;EAChD,CACF;CACF;CACA,QAAQ;EACN,aACE;EACF,cAAc,CACZ;GACE,oBAAoB;GACpB,kBAAkB,CAAC,UAAU,gBAAgB;GAC7C,mBAAmB,CACjB,kBACF;EACF,CACF;CACF;CACA,kBAAkB;EAChB,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,yBAAyB;EAC/C,CACF;CACF;CACA,eAAe;EACb,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,kBAAkB;EACxC,CACF;CACF;CACA,cAAc;EACZ,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,sBAAsB;EAC5C,CACF;CACF;CACA,oBAAoB;EAClB,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,4BAA4B;EAClD,CACF;CACF;CACA,YAAY;EACV,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,WAAW;GACX,mBAAmB,CAAC,eAAe;EACrC,CACF;CACF;CACA,iBAAiB;EACf,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,iBAAiB,CACf,gCACA,uCACF;EACF,CACF;CACF;CACA,gBAAgB;EACd,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,iBAAiB,CAAC,uCAAuC;GACzD,kBAAkB,CAAC,OAAO;EAC5B,CACF;CACF;CACA,eAAe;EACb,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,aAAa;GACjC,kBAAkB;EACpB,CACF;CACF;CACA,QAAQ;EACN,aAAa;EACb,cAAc,CACZ;GACE,SAAS,CAAC,iBAAiB;GAC3B,WAAW;EACb,CACF;CACF;CACA,gBAAgB;EACd,aAAa;EACb,cAAc,CACZ;GACE,SAAS,CAAC,iBAAiB;GAC3B,WAAW;GACX,kBAAkB,CAAC,SAAS,OAAO;EACrC,CACF;CACF;CACA,YAAY;EACV,aAAa;EACb,cAAc,CACZ;GACE,SAAS,CAAC,qBAAqB;GAC/B,WAAW;EACb,CACF;CACF;CACA,oBAAoB;EAClB,aACE;EACF,cAAc,CACZ;GACE,SAAS,CAAC,qBAAqB;GAC/B,WAAW;GACX,kBAAkB,CAAC,SAAS,OAAO;EACrC,CACF;CACF;CACA,cAAc;EACZ,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,kBAAkB,CAAC,WAAW;GAC9B,mBAAmB,CAAC,cAAc;EACpC,CACF;CACF;CACA,SAAS;EACP,aAAa;EACb,cAAc,CACZ;GACE,SAAS,CAAC,kBAAkB;GAC5B,WAAW;EACb,CACF;CACF;CACA,YAAY;EACV,aACE;EACF,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,6BAA6B;EACnD,CACF;CACF;CACA,QAAQ;EACN,aACE;EACF,cAAc,CACZ;GACE,oBAAoB;GACpB,kBAAkB,CAAC,UAAU,cAAc;GAC3C,mBAAmB;IACjB;IACA;IACA;IACA;IACA;IACA;GACF;EACF,CACF;CACF;CACA,SAAS;EACP,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,kBAAkB,CAAC,WAAW;GAC9B,mBAAmB;IACjB;IACA;IACA;IACA;GACF;EACF,CACF;CACF;CACA,MAAM;EACJ,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,kBAAkB,CAAC,UAAU,KAAK;GAClC,mBAAmB,CAAC,QAAQ,mBAAmB;EACjD,CACF;CACF;CACA,SAAS;EACP,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,aAAa;EACnC,CACF;CACF;CACA,SAAS;EACP,aAAa;EACb,cAAc,CACZ;GACE,SAAS,CAAC,kBAAkB;GAC5B,WAAW;EACb,CACF;CACF;CACA,QAAQ;EACN,aAAa;EACb,cAAc;GACZ;IACE,aAAa;IACb,WAAW;IACX,WAAW;IACX,kBAAkB,CAAC,KAAK;IACxB,mBAAmB,CAAC,YAAY;GAClC;GACA;IACE,aAAa;IACb,WAAW;IACX,WAAW;IACX,kBAAkB,CAAC,MAAM;IACzB,mBAAmB,CAAC,WAAW;GACjC;GACA;IACE,aAAa;IACb,WAAW;IACX,WAAW;IACX,kBAAkB,CAAC,IAAI;IACvB,mBAAmB,CAAC,sBAAsB;GAC5C;GACA;IACE,aAAa;IACb,WAAW;IACX,WAAW;IACX,kBAAkB,CAAC,OAAO;IAC1B,mBAAmB,CAAC,cAAc;GACpC;GACA;IACE,aAAa;IACb,WAAW;IACX,WAAW;IACX,kBAAkB,CAAC,OAAO;IAC1B,mBAAmB,CAAC,UAAU;GAChC;EACF;CACF;CACA,WAAW;EACT,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,kBAAkB,CAAC,KAAK;GACxB,mBAAmB,CAAC,aAAa,gBAAgB;EACnD,CACF;CACF;CACA,OAAO;EACL,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB;IACjB;IACA;IACA;GACF;EACF,CACF;CACF;CACA,aAAa;EACX,SAAS;GACP;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF;EACA,qBACE;CACJ;CACA,QAAQ;EACN,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,kBAAkB,CAAC,KAAK;GACxB,iBAAiB,CAAC,gCAAgC;EACpD,CACF;CACF;CACA,cAAc;EACZ,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,2BAA2B;EACjD,CACF;CACF;CACA,cAAc;EACZ,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,kBAAkB,CAAC,UAAU;GAC7B,mBAAmB,CAAC,YAAY;EAClC,CACF;CACF;CACA,aAAa;EACX,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,kBAAkB,CAAC,UAAU;GAC7B,mBAAmB;IACjB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACF;EACF,CACF;CACF;CACA,UAAU;EACR,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,aAAa;EACnC,CACF;CACF;CACA,YAAY;EACV,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,6BAA6B;EACnD,CACF;CACF;CACA,eAAe;EACb,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,gCAAgC;EACtD,CACF;CACF;CACA,aAAa;EACX,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,8BAA8B;EACpD,CACF;CACF;CACA,YAAY;EACV,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,eAAe,CAAC,0BAA0B;EAC5C,GACA;GACE,WAAW;GACX,mBAAmB,CAAC,6BAA6B;EACnD,CACF;CACF;CACA,aAAa;EACX,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,8BAA8B;EACpD,CACF;CACF;CACA,YAAY;EACV,aAAa;EACb,cAAc,CACZ;GACE,WAAW;GACX,mBAAmB,CAAC,wBAAwB;EAC9C,CACF;CACF;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"}
@@ -171,6 +171,10 @@ const presets = {
171
171
  "**vite-plugin**",
172
172
  "@vitejs/**"
173
173
  ]
174
+ },
175
+ vitePlus: {
176
+ description: "All Vite+ related packages",
177
+ extends: ["monorepo:vite-plus", "monorepo:vitest"]
174
178
  }
175
179
  };
176
180
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"packages.preset.js","names":[],"sources":["../../../../lib/config/presets/internal/packages.preset.ts"],"sourcesContent":["import type { Preset } from '../types.ts';\n\nexport const presets: Record<string, Preset> = {\n angularJs: {\n description: 'All AngularJS packages.',\n matchPackageNames: [\n 'angular',\n 'angular-animate',\n 'angular-scroll',\n 'angular-sanitize',\n ],\n },\n apollographql: {\n description: 'All packages published by Apollo GraphQL.',\n matchSourceUrls: ['https://github.com/apollographql/**'],\n },\n atlaskit: {\n description: 'All @atlaskit packages published by Atlassian.',\n matchPackageNames: ['@atlaskit/**'],\n },\n emberTemplateLint: {\n description: 'All ember-template-lint packages.',\n matchPackageNames: ['ember-template-lint**'],\n },\n eslint: {\n description: 'All ESLint packages.',\n matchPackageNames: [\n '*/eslint-plugin',\n '@babel/eslint-parser',\n '@eslint/**',\n '@eslint-community/**',\n '@stylistic/eslint-plugin**',\n '@types/eslint',\n '@types/eslint__**',\n '@typescript-eslint/**',\n 'babel-eslint',\n 'eslint**',\n 'typescript-eslint',\n ],\n },\n gatsby: {\n description: 'All packages published by Gatsby.',\n extends: ['monorepo:gatsby'],\n },\n googleapis: {\n description: 'All `googleapis` packages.',\n matchDatasources: ['npm'],\n matchPackageNames: [\n '@google-cloud/**',\n 'google-auth-library',\n 'googleapis',\n ],\n },\n jsTest: {\n description: 'JavaScript test packages.',\n extends: ['packages:jsUnitTest'],\n },\n jsUnitTest: {\n description: 'Unit test packages for JavaScript.',\n matchPackageNames: [\n '@types/chai',\n '@types/ember-mocha',\n '@types/ember-qunit',\n '@types/enzyme',\n '@types/istanbul',\n '@types/jest',\n '@types/mocha',\n '@types/mock-fs',\n '@types/proxyquire',\n '@types/sinon',\n '@types/supertest',\n 'coveralls',\n 'ember-exam',\n 'ember-mocha',\n 'ember-qunit',\n 'enzyme',\n 'istanbul',\n 'mock-fs',\n 'nock',\n 'nyc',\n 'proxyquire',\n 'supertest',\n 'ts-auto-mock',\n 'ts-jest',\n 'vitest',\n '@jest/**',\n '@testing-library/**',\n '@types/testing-library__**',\n '@vitest/**',\n 'chai**',\n 'jest**',\n 'mocha**',\n 'qunit**',\n 'should**',\n 'sinon**',\n ],\n },\n linters: {\n description: 'All lint-related packages.',\n extends: [\n 'packages:emberTemplateLint',\n 'packages:eslint',\n 'packages:phpLinters',\n 'packages:stylelint',\n 'packages:tslint',\n ],\n matchPackageNames: [\n '@oxlint/**',\n 'oxlint',\n 'prettier',\n 'remark-lint',\n 'standard',\n ],\n },\n mapbox: {\n description: 'All Mapbox-related packages.',\n matchPackageNames: ['leaflet**', 'mapbox**'],\n },\n phpLinters: {\n description: 'All PHP lint-related packages.',\n matchPackageNames: [\n 'friendsofphp/php-cs-fixer',\n 'squizlabs/php_codesniffer',\n 'symplify/easy-coding-standard',\n ],\n },\n phpUnitTest: {\n description: 'Unit test packages for PHP.',\n matchPackageNames: [\n 'behat/behat',\n 'brianium/paratest',\n 'facile-it/paraunit',\n 'mockery/mockery',\n 'phpspec/prophecy',\n 'phpspec/prophecy-phpunit',\n 'phpspec/phpspec',\n 'phpunit/phpunit',\n 'pestphp/**',\n 'php-mock/**',\n ],\n },\n postcss: {\n description: 'All PostCSS packages.',\n matchPackageNames: ['postcss', 'postcss-**'],\n },\n react: {\n description: 'All React packages.',\n matchDatasources: ['npm'],\n matchPackageNames: ['@types/react**', 'react**'],\n },\n stylelint: {\n description: 'All Stylelint packages.',\n matchPackageNames: ['stylelint**'],\n },\n test: {\n description: 'Test packages.',\n extends: ['packages:unitTest'],\n },\n tslint: {\n description: 'All TSLint packages.',\n matchPackageNames: ['codelyzer', '/\\\\btslint\\\\b/'],\n },\n unitTest: {\n description: 'All unit test packages.',\n extends: ['packages:jsUnitTest', 'packages:phpUnitTest'],\n },\n vite: {\n description: 'All Vite related packages',\n matchDatasources: ['npm'],\n matchPackageNames: ['vite', '**vite-plugin**', '@vitejs/**'],\n },\n};\n"],"mappings":";AAEA,MAAa,UAAkC;CAC7C,WAAW;EACT,aAAa;EACb,mBAAmB;GACjB;GACA;GACA;GACA;EACF;CACF;CACA,eAAe;EACb,aAAa;EACb,iBAAiB,CAAC,qCAAqC;CACzD;CACA,UAAU;EACR,aAAa;EACb,mBAAmB,CAAC,cAAc;CACpC;CACA,mBAAmB;EACjB,aAAa;EACb,mBAAmB,CAAC,uBAAuB;CAC7C;CACA,QAAQ;EACN,aAAa;EACb,mBAAmB;GACjB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF;CACF;CACA,QAAQ;EACN,aAAa;EACb,SAAS,CAAC,iBAAiB;CAC7B;CACA,YAAY;EACV,aAAa;EACb,kBAAkB,CAAC,KAAK;EACxB,mBAAmB;GACjB;GACA;GACA;EACF;CACF;CACA,QAAQ;EACN,aAAa;EACb,SAAS,CAAC,qBAAqB;CACjC;CACA,YAAY;EACV,aAAa;EACb,mBAAmB;GACjB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF;CACF;CACA,SAAS;EACP,aAAa;EACb,SAAS;GACP;GACA;GACA;GACA;GACA;EACF;EACA,mBAAmB;GACjB;GACA;GACA;GACA;GACA;EACF;CACF;CACA,QAAQ;EACN,aAAa;EACb,mBAAmB,CAAC,aAAa,UAAU;CAC7C;CACA,YAAY;EACV,aAAa;EACb,mBAAmB;GACjB;GACA;GACA;EACF;CACF;CACA,aAAa;EACX,aAAa;EACb,mBAAmB;GACjB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF;CACF;CACA,SAAS;EACP,aAAa;EACb,mBAAmB,CAAC,WAAW,YAAY;CAC7C;CACA,OAAO;EACL,aAAa;EACb,kBAAkB,CAAC,KAAK;EACxB,mBAAmB,CAAC,kBAAkB,SAAS;CACjD;CACA,WAAW;EACT,aAAa;EACb,mBAAmB,CAAC,aAAa;CACnC;CACA,MAAM;EACJ,aAAa;EACb,SAAS,CAAC,mBAAmB;CAC/B;CACA,QAAQ;EACN,aAAa;EACb,mBAAmB,CAAC,aAAa,gBAAgB;CACnD;CACA,UAAU;EACR,aAAa;EACb,SAAS,CAAC,uBAAuB,sBAAsB;CACzD;CACA,MAAM;EACJ,aAAa;EACb,kBAAkB,CAAC,KAAK;EACxB,mBAAmB;GAAC;GAAQ;GAAmB;EAAY;CAC7D;AACF"}
1
+ {"version":3,"file":"packages.preset.js","names":[],"sources":["../../../../lib/config/presets/internal/packages.preset.ts"],"sourcesContent":["import type { Preset } from '../types.ts';\n\nexport const presets: Record<string, Preset> = {\n angularJs: {\n description: 'All AngularJS packages.',\n matchPackageNames: [\n 'angular',\n 'angular-animate',\n 'angular-scroll',\n 'angular-sanitize',\n ],\n },\n apollographql: {\n description: 'All packages published by Apollo GraphQL.',\n matchSourceUrls: ['https://github.com/apollographql/**'],\n },\n atlaskit: {\n description: 'All @atlaskit packages published by Atlassian.',\n matchPackageNames: ['@atlaskit/**'],\n },\n emberTemplateLint: {\n description: 'All ember-template-lint packages.',\n matchPackageNames: ['ember-template-lint**'],\n },\n eslint: {\n description: 'All ESLint packages.',\n matchPackageNames: [\n '*/eslint-plugin',\n '@babel/eslint-parser',\n '@eslint/**',\n '@eslint-community/**',\n '@stylistic/eslint-plugin**',\n '@types/eslint',\n '@types/eslint__**',\n '@typescript-eslint/**',\n 'babel-eslint',\n 'eslint**',\n 'typescript-eslint',\n ],\n },\n gatsby: {\n description: 'All packages published by Gatsby.',\n extends: ['monorepo:gatsby'],\n },\n googleapis: {\n description: 'All `googleapis` packages.',\n matchDatasources: ['npm'],\n matchPackageNames: [\n '@google-cloud/**',\n 'google-auth-library',\n 'googleapis',\n ],\n },\n jsTest: {\n description: 'JavaScript test packages.',\n extends: ['packages:jsUnitTest'],\n },\n jsUnitTest: {\n description: 'Unit test packages for JavaScript.',\n matchPackageNames: [\n '@types/chai',\n '@types/ember-mocha',\n '@types/ember-qunit',\n '@types/enzyme',\n '@types/istanbul',\n '@types/jest',\n '@types/mocha',\n '@types/mock-fs',\n '@types/proxyquire',\n '@types/sinon',\n '@types/supertest',\n 'coveralls',\n 'ember-exam',\n 'ember-mocha',\n 'ember-qunit',\n 'enzyme',\n 'istanbul',\n 'mock-fs',\n 'nock',\n 'nyc',\n 'proxyquire',\n 'supertest',\n 'ts-auto-mock',\n 'ts-jest',\n 'vitest',\n '@jest/**',\n '@testing-library/**',\n '@types/testing-library__**',\n '@vitest/**',\n 'chai**',\n 'jest**',\n 'mocha**',\n 'qunit**',\n 'should**',\n 'sinon**',\n ],\n },\n linters: {\n description: 'All lint-related packages.',\n extends: [\n 'packages:emberTemplateLint',\n 'packages:eslint',\n 'packages:phpLinters',\n 'packages:stylelint',\n 'packages:tslint',\n ],\n matchPackageNames: [\n '@oxlint/**',\n 'oxlint',\n 'prettier',\n 'remark-lint',\n 'standard',\n ],\n },\n mapbox: {\n description: 'All Mapbox-related packages.',\n matchPackageNames: ['leaflet**', 'mapbox**'],\n },\n phpLinters: {\n description: 'All PHP lint-related packages.',\n matchPackageNames: [\n 'friendsofphp/php-cs-fixer',\n 'squizlabs/php_codesniffer',\n 'symplify/easy-coding-standard',\n ],\n },\n phpUnitTest: {\n description: 'Unit test packages for PHP.',\n matchPackageNames: [\n 'behat/behat',\n 'brianium/paratest',\n 'facile-it/paraunit',\n 'mockery/mockery',\n 'phpspec/prophecy',\n 'phpspec/prophecy-phpunit',\n 'phpspec/phpspec',\n 'phpunit/phpunit',\n 'pestphp/**',\n 'php-mock/**',\n ],\n },\n postcss: {\n description: 'All PostCSS packages.',\n matchPackageNames: ['postcss', 'postcss-**'],\n },\n react: {\n description: 'All React packages.',\n matchDatasources: ['npm'],\n matchPackageNames: ['@types/react**', 'react**'],\n },\n stylelint: {\n description: 'All Stylelint packages.',\n matchPackageNames: ['stylelint**'],\n },\n test: {\n description: 'Test packages.',\n extends: ['packages:unitTest'],\n },\n tslint: {\n description: 'All TSLint packages.',\n matchPackageNames: ['codelyzer', '/\\\\btslint\\\\b/'],\n },\n unitTest: {\n description: 'All unit test packages.',\n extends: ['packages:jsUnitTest', 'packages:phpUnitTest'],\n },\n vite: {\n description: 'All Vite related packages',\n matchDatasources: ['npm'],\n matchPackageNames: ['vite', '**vite-plugin**', '@vitejs/**'],\n },\n vitePlus: {\n description: 'All Vite+ related packages',\n extends: ['monorepo:vite-plus', 'monorepo:vitest'],\n },\n};\n"],"mappings":";AAEA,MAAa,UAAkC;CAC7C,WAAW;EACT,aAAa;EACb,mBAAmB;GACjB;GACA;GACA;GACA;EACF;CACF;CACA,eAAe;EACb,aAAa;EACb,iBAAiB,CAAC,qCAAqC;CACzD;CACA,UAAU;EACR,aAAa;EACb,mBAAmB,CAAC,cAAc;CACpC;CACA,mBAAmB;EACjB,aAAa;EACb,mBAAmB,CAAC,uBAAuB;CAC7C;CACA,QAAQ;EACN,aAAa;EACb,mBAAmB;GACjB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF;CACF;CACA,QAAQ;EACN,aAAa;EACb,SAAS,CAAC,iBAAiB;CAC7B;CACA,YAAY;EACV,aAAa;EACb,kBAAkB,CAAC,KAAK;EACxB,mBAAmB;GACjB;GACA;GACA;EACF;CACF;CACA,QAAQ;EACN,aAAa;EACb,SAAS,CAAC,qBAAqB;CACjC;CACA,YAAY;EACV,aAAa;EACb,mBAAmB;GACjB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF;CACF;CACA,SAAS;EACP,aAAa;EACb,SAAS;GACP;GACA;GACA;GACA;GACA;EACF;EACA,mBAAmB;GACjB;GACA;GACA;GACA;GACA;EACF;CACF;CACA,QAAQ;EACN,aAAa;EACb,mBAAmB,CAAC,aAAa,UAAU;CAC7C;CACA,YAAY;EACV,aAAa;EACb,mBAAmB;GACjB;GACA;GACA;EACF;CACF;CACA,aAAa;EACX,aAAa;EACb,mBAAmB;GACjB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF;CACF;CACA,SAAS;EACP,aAAa;EACb,mBAAmB,CAAC,WAAW,YAAY;CAC7C;CACA,OAAO;EACL,aAAa;EACb,kBAAkB,CAAC,KAAK;EACxB,mBAAmB,CAAC,kBAAkB,SAAS;CACjD;CACA,WAAW;EACT,aAAa;EACb,mBAAmB,CAAC,aAAa;CACnC;CACA,MAAM;EACJ,aAAa;EACb,SAAS,CAAC,mBAAmB;CAC/B;CACA,QAAQ;EACN,aAAa;EACb,mBAAmB,CAAC,aAAa,gBAAgB;CACnD;CACA,UAAU;EACR,aAAa;EACb,SAAS,CAAC,uBAAuB,sBAAsB;CACzD;CACA,MAAM;EACJ,aAAa;EACb,kBAAkB,CAAC,KAAK;EACxB,mBAAmB;GAAC;GAAQ;GAAmB;EAAY;CAC7D;CACA,UAAU;EACR,aAAa;EACb,SAAS,CAAC,sBAAsB,iBAAiB;CACnD;AACF"}
@@ -723,6 +723,7 @@ var repoGroups = {
723
723
  "vaadinWebComponents": "https://github.com/vaadin/web-components",
724
724
  "vanilla-extract": "https://github.com/vanilla-extract-css/vanilla-extract",
725
725
  "visx": "https://github.com/airbnb/visx",
726
+ "vite-plus": "https://github.com/voidzero-dev/vite-plus",
726
727
  "vitest": "https://github.com/vitest-dev/vitest",
727
728
  "vstest": "https://github.com/microsoft/vstest",
728
729
  "vue": ["https://github.com/vuejs/vue", "https://github.com/vuejs/core"],
@@ -23,7 +23,7 @@ const globalConfigOptionDefaults = {
23
23
  "detectHostRulesFromEnv": false,
24
24
  "dockerChildPrefix": "renovate_",
25
25
  "dockerMaxPages": 20,
26
- "dockerSidecarImage": "ghcr.io/renovatebot/base-image:13.95.5",
26
+ "dockerSidecarImage": "ghcr.io/renovatebot/base-image:13.95.6",
27
27
  "dockerUser": "12021",
28
28
  "executionTimeout": 15,
29
29
  "exposeAllEnv": false,
@@ -1 +1 @@
1
- {"version":3,"file":"global-config-option-defaults.generated.js","names":[],"sources":["../lib/global-config-option-defaults.generated.ts"],"sourcesContent":["\nexport const globalConfigOptionDefaults: Record<string, unknown> = {\n \"allowCustomCrateRegistries\": false,\n \"allowedCommands\": [],\n \"allowedEnv\": [],\n \"allowedHeaders\": [\n \"X-*\"\n ],\n \"allowedUnsafeExecutions\": [],\n \"allowPlugins\": false,\n \"allowScripts\": false,\n \"allowShellExecutorForPostUpgradeCommands\": false,\n \"autodiscover\": false,\n \"bbUseDevelopmentBranch\": false,\n \"binarySource\": \"install\",\n \"cacheHardTtlMinutes\": 10080,\n \"cachePrivatePackages\": false,\n \"cacheTtlOverride\": {},\n \"checkedBranches\": [],\n \"configValidationError\": false,\n \"customEnvVariables\": {},\n \"deleteAdditionalConfigFile\": false,\n \"deleteConfigFile\": false,\n \"detectGlobalManagerConfig\": false,\n \"detectHostRulesFromEnv\": false,\n \"dockerChildPrefix\": \"renovate_\",\n \"dockerMaxPages\": 20,\n \"dockerSidecarImage\": \"ghcr.io/renovatebot/base-image:13.95.5\",\n \"dockerUser\": \"12021\",\n \"executionTimeout\": 15,\n \"exposeAllEnv\": false,\n \"forceCli\": true,\n \"forkCreation\": true,\n \"githubTokenWarn\": true,\n \"gitNoVerify\": [\n \"commit\",\n \"push\"\n ],\n \"gitTimeout\": 0,\n \"gitUrl\": \"default\",\n \"httpCacheTtlDays\": 90,\n \"ignorePrAuthor\": false,\n \"includeMirrors\": false,\n \"inheritConfig\": false,\n \"inheritConfigFileName\": \"org-inherited-config.json\",\n \"inheritConfigRepoName\": \"{{parentOrg}}/renovate-config\",\n \"inheritConfigStrict\": false,\n \"mergeConfidenceDatasources\": [\n \"go\",\n \"maven\",\n \"npm\",\n \"nuget\",\n \"packagist\",\n \"pypi\",\n \"rubygems\"\n ],\n \"mergeConfidenceEndpoint\": \"https://developer.mend.io/\",\n \"migratePresets\": {},\n \"onboardingBranch\": \"renovate/configure\",\n \"onboardingConfig\": {\n \"$schema\": \"https://docs.renovatebot.com/renovate-schema.json\"\n },\n \"onboardingConfigFileName\": \"renovate.json\",\n \"onboardingNoDeps\": \"auto\",\n \"onboardingPrTitle\": \"Configure Renovate\",\n \"onboardingRebaseCheckbox\": false,\n \"optimizeForDisabled\": false,\n \"persistRepoData\": false,\n \"platform\": \"github\",\n \"prCacheSyncMaxPages\": 100,\n \"prCommitsPerRunLimit\": 0,\n \"presetCachePersistence\": false,\n \"processEnv\": {},\n \"productLinks\": {\n \"documentation\": \"https://docs.renovatebot.com/\",\n \"help\": \"https://github.com/renovatebot/renovate/discussions\",\n \"homepage\": \"https://github.com/renovatebot/renovate\"\n },\n \"rebaseAllOpenBranches\": false,\n \"reportFormatting\": false,\n \"repositoryCache\": \"disabled\",\n \"repositoryCacheForceLocal\": false,\n \"repositoryCacheType\": \"local\",\n \"requireConfig\": \"required\",\n \"s3PathStyle\": false,\n \"secrets\": {},\n \"unicodeEmoji\": true,\n \"useCloudMetadataServices\": true,\n \"userAgent\": \"Renovate/{{renovateVersion}} (https://github.com/renovatebot/renovate)\",\n \"variables\": {}\n};\n"],"mappings":";AACA,MAAa,6BAAsD;CACjE,8BAA8B;CAC9B,mBAAmB,CAAC;CACpB,cAAc,CAAC;CACf,kBAAkB,CAChB,KACF;CACA,2BAA2B,CAAC;CAC5B,gBAAgB;CAChB,gBAAgB;CAChB,4CAA4C;CAC5C,gBAAgB;CAChB,0BAA0B;CAC1B,gBAAgB;CAChB,uBAAuB;CACvB,wBAAwB;CACxB,oBAAoB,CAAC;CACrB,mBAAmB,CAAC;CACpB,yBAAyB;CACzB,sBAAsB,CAAC;CACvB,8BAA8B;CAC9B,oBAAoB;CACpB,6BAA6B;CAC7B,0BAA0B;CAC1B,qBAAqB;CACrB,kBAAkB;CAClB,sBAAsB;CACtB,cAAc;CACd,oBAAoB;CACpB,gBAAgB;CAChB,YAAY;CACZ,gBAAgB;CAChB,mBAAmB;CACnB,eAAe,CACb,UACA,MACF;CACA,cAAc;CACd,UAAU;CACV,oBAAoB;CACpB,kBAAkB;CAClB,kBAAkB;CAClB,iBAAiB;CACjB,yBAAyB;CACzB,yBAAyB;CACzB,uBAAuB;CACvB,8BAA8B;EAC5B;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,2BAA2B;CAC3B,kBAAkB,CAAC;CACnB,oBAAoB;CACpB,oBAAoB,EAClB,WAAW,oDACb;CACA,4BAA4B;CAC5B,oBAAoB;CACpB,qBAAqB;CACrB,4BAA4B;CAC5B,uBAAuB;CACvB,mBAAmB;CACnB,YAAY;CACZ,uBAAuB;CACvB,wBAAwB;CACxB,0BAA0B;CAC1B,cAAc,CAAC;CACf,gBAAgB;EACd,iBAAiB;EACjB,QAAQ;EACR,YAAY;CACd;CACA,yBAAyB;CACzB,oBAAoB;CACpB,mBAAmB;CACnB,6BAA6B;CAC7B,uBAAuB;CACvB,iBAAiB;CACjB,eAAe;CACf,WAAW,CAAC;CACZ,gBAAgB;CAChB,4BAA4B;CAC5B,aAAa;CACb,aAAa,CAAC;AAChB"}
1
+ {"version":3,"file":"global-config-option-defaults.generated.js","names":[],"sources":["../lib/global-config-option-defaults.generated.ts"],"sourcesContent":["\nexport const globalConfigOptionDefaults: Record<string, unknown> = {\n \"allowCustomCrateRegistries\": false,\n \"allowedCommands\": [],\n \"allowedEnv\": [],\n \"allowedHeaders\": [\n \"X-*\"\n ],\n \"allowedUnsafeExecutions\": [],\n \"allowPlugins\": false,\n \"allowScripts\": false,\n \"allowShellExecutorForPostUpgradeCommands\": false,\n \"autodiscover\": false,\n \"bbUseDevelopmentBranch\": false,\n \"binarySource\": \"install\",\n \"cacheHardTtlMinutes\": 10080,\n \"cachePrivatePackages\": false,\n \"cacheTtlOverride\": {},\n \"checkedBranches\": [],\n \"configValidationError\": false,\n \"customEnvVariables\": {},\n \"deleteAdditionalConfigFile\": false,\n \"deleteConfigFile\": false,\n \"detectGlobalManagerConfig\": false,\n \"detectHostRulesFromEnv\": false,\n \"dockerChildPrefix\": \"renovate_\",\n \"dockerMaxPages\": 20,\n \"dockerSidecarImage\": \"ghcr.io/renovatebot/base-image:13.95.6\",\n \"dockerUser\": \"12021\",\n \"executionTimeout\": 15,\n \"exposeAllEnv\": false,\n \"forceCli\": true,\n \"forkCreation\": true,\n \"githubTokenWarn\": true,\n \"gitNoVerify\": [\n \"commit\",\n \"push\"\n ],\n \"gitTimeout\": 0,\n \"gitUrl\": \"default\",\n \"httpCacheTtlDays\": 90,\n \"ignorePrAuthor\": false,\n \"includeMirrors\": false,\n \"inheritConfig\": false,\n \"inheritConfigFileName\": \"org-inherited-config.json\",\n \"inheritConfigRepoName\": \"{{parentOrg}}/renovate-config\",\n \"inheritConfigStrict\": false,\n \"mergeConfidenceDatasources\": [\n \"go\",\n \"maven\",\n \"npm\",\n \"nuget\",\n \"packagist\",\n \"pypi\",\n \"rubygems\"\n ],\n \"mergeConfidenceEndpoint\": \"https://developer.mend.io/\",\n \"migratePresets\": {},\n \"onboardingBranch\": \"renovate/configure\",\n \"onboardingConfig\": {\n \"$schema\": \"https://docs.renovatebot.com/renovate-schema.json\"\n },\n \"onboardingConfigFileName\": \"renovate.json\",\n \"onboardingNoDeps\": \"auto\",\n \"onboardingPrTitle\": \"Configure Renovate\",\n \"onboardingRebaseCheckbox\": false,\n \"optimizeForDisabled\": false,\n \"persistRepoData\": false,\n \"platform\": \"github\",\n \"prCacheSyncMaxPages\": 100,\n \"prCommitsPerRunLimit\": 0,\n \"presetCachePersistence\": false,\n \"processEnv\": {},\n \"productLinks\": {\n \"documentation\": \"https://docs.renovatebot.com/\",\n \"help\": \"https://github.com/renovatebot/renovate/discussions\",\n \"homepage\": \"https://github.com/renovatebot/renovate\"\n },\n \"rebaseAllOpenBranches\": false,\n \"reportFormatting\": false,\n \"repositoryCache\": \"disabled\",\n \"repositoryCacheForceLocal\": false,\n \"repositoryCacheType\": \"local\",\n \"requireConfig\": \"required\",\n \"s3PathStyle\": false,\n \"secrets\": {},\n \"unicodeEmoji\": true,\n \"useCloudMetadataServices\": true,\n \"userAgent\": \"Renovate/{{renovateVersion}} (https://github.com/renovatebot/renovate)\",\n \"variables\": {}\n};\n"],"mappings":";AACA,MAAa,6BAAsD;CACjE,8BAA8B;CAC9B,mBAAmB,CAAC;CACpB,cAAc,CAAC;CACf,kBAAkB,CAChB,KACF;CACA,2BAA2B,CAAC;CAC5B,gBAAgB;CAChB,gBAAgB;CAChB,4CAA4C;CAC5C,gBAAgB;CAChB,0BAA0B;CAC1B,gBAAgB;CAChB,uBAAuB;CACvB,wBAAwB;CACxB,oBAAoB,CAAC;CACrB,mBAAmB,CAAC;CACpB,yBAAyB;CACzB,sBAAsB,CAAC;CACvB,8BAA8B;CAC9B,oBAAoB;CACpB,6BAA6B;CAC7B,0BAA0B;CAC1B,qBAAqB;CACrB,kBAAkB;CAClB,sBAAsB;CACtB,cAAc;CACd,oBAAoB;CACpB,gBAAgB;CAChB,YAAY;CACZ,gBAAgB;CAChB,mBAAmB;CACnB,eAAe,CACb,UACA,MACF;CACA,cAAc;CACd,UAAU;CACV,oBAAoB;CACpB,kBAAkB;CAClB,kBAAkB;CAClB,iBAAiB;CACjB,yBAAyB;CACzB,yBAAyB;CACzB,uBAAuB;CACvB,8BAA8B;EAC5B;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,2BAA2B;CAC3B,kBAAkB,CAAC;CACnB,oBAAoB;CACpB,oBAAoB,EAClB,WAAW,oDACb;CACA,4BAA4B;CAC5B,oBAAoB;CACpB,qBAAqB;CACrB,4BAA4B;CAC5B,uBAAuB;CACvB,mBAAmB;CACnB,YAAY;CACZ,uBAAuB;CACvB,wBAAwB;CACxB,0BAA0B;CAC1B,cAAc,CAAC;CACf,gBAAgB;EACd,iBAAiB;EACjB,QAAQ;EACR,YAAY;CACd;CACA,yBAAyB;CACzB,oBAAoB;CACpB,mBAAmB;CACnB,6BAA6B;CAC7B,uBAAuB;CACvB,iBAAiB;CACjB,eAAe;CACf,WAAW,CAAC;CACZ,gBAAgB;CAChB,4BAA4B;CAC5B,aAAa;CACb,aAAa,CAAC;AAChB"}
@@ -144,8 +144,12 @@ async function initRepo({ repository, cloneSubmodules, cloneSubmodulesFilter })
144
144
  info = repoInfo;
145
145
  mainBranch = info.mainbranch;
146
146
  if (getInheritedOrGlobal("bbUseDevelopmentBranch")) {
147
- const developmentBranch = (await bitbucketHttp.getJsonUnchecked(`/2.0/repositories/${repository}/branching-model`)).body.development?.branch?.name;
148
- if (developmentBranch) mainBranch = developmentBranch;
147
+ logger.debug("bbUseDevelopmentBranch is true - Checking BitBucket's development branch");
148
+ const developmentBranch = (await bitbucketHttp.getJsonUnchecked(`/2.0/repositories/${repository}/effective-branching-model`)).body.development?.name;
149
+ if (developmentBranch) {
150
+ mainBranch = developmentBranch;
151
+ logger.debug(`${developmentBranch} is BitBucket's development branch - using it as default branch`);
152
+ }
149
153
  }
150
154
  config.defaultBranch = mainBranch;
151
155
  config = {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["promises.map","hostRules.find","git.getUrl","git.initRepo","utils.prInfo","reopenComments","comments.reopenComments","comments.REOPEN_PR_COMMENT_KEYWORD","utils.buildStates","comments.ensureComment","comments.ensureCommentRemoval"],"sources":["../../../../lib/modules/platform/bitbucket/index.ts"],"sourcesContent":["import { isNonEmptyArray, isNonEmptyString } from '@sindresorhus/is';\nimport { GlobalConfig } from '../../../config/global.ts';\nimport { REPOSITORY_NOT_FOUND } from '../../../constants/error-messages.ts';\nimport { logger } from '../../../logger/index.ts';\nimport type { BranchStatus } from '../../../types/index.ts';\nimport { getInheritedOrGlobal, parseJson } from '../../../util/common.ts';\nimport * as git from '../../../util/git/index.ts';\nimport * as hostRules from '../../../util/host-rules.ts';\nimport type { BitbucketHttpOptions } from '../../../util/http/bitbucket.ts';\nimport { BitbucketHttp, setBaseUrl } from '../../../util/http/bitbucket.ts';\nimport { memCacheProvider } from '../../../util/http/cache/memory-http-cache-provider.ts';\nimport {\n aggressiveRepoCacheProvider,\n repoCacheProvider,\n} from '../../../util/http/cache/repository-http-cache-provider.ts';\nimport type { HttpOptions } from '../../../util/http/types.ts';\nimport * as promises from '../../../util/promises.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { sanitize } from '../../../util/sanitize.ts';\nimport { UUIDRegex, matchRegexOrGlobList } from '../../../util/string-match.ts';\nimport { parseUrl } from '../../../util/url.ts';\nimport type {\n AutodiscoverConfig,\n BranchStatusConfig,\n CreatePRConfig,\n EnsureCommentConfig,\n EnsureCommentRemovalConfig,\n EnsureIssueConfig,\n EnsureIssueResult,\n FindPRConfig,\n Issue,\n MergePRConfig,\n PlatformParams,\n PlatformResult,\n Pr,\n RepoParams,\n RepoResult,\n UpdatePrConfig,\n} from '../types.ts';\nimport { repoFingerprint } from '../util.ts';\nimport { smartTruncate } from '../utils/pr-body.ts';\nimport * as comments from './comments.ts';\nimport { BitbucketPrCache } from './pr-cache.ts';\nimport {\n RepoInfo,\n Repositories,\n UnresolvedPrTasks,\n WorkspaceAccesses,\n} from './schema.ts';\nimport type {\n Account,\n BitbucketStatus,\n BranchResponse,\n Config,\n EffectiveReviewer,\n PagedResult,\n PrResponse,\n RepoBranchingModel,\n} from './types.ts';\nimport * as utils from './utils.ts';\nimport { mergeBodyTransformer } from './utils.ts';\n\nexport const id = 'bitbucket';\n\nconst bitbucketHttp = new BitbucketHttp();\n\nconst BITBUCKET_PROD_ENDPOINT = 'https://api.bitbucket.org/';\n\nlet config: Config = {} as any;\n\nexport function resetPlatform(): void {\n config = {} as any;\n renovateUserUuid = null;\n}\n\nconst defaults = { endpoint: BITBUCKET_PROD_ENDPOINT };\n\nconst pathSeparator = '/';\n\nlet renovateUserUuid: string | null = null;\n\nexport async function initPlatform({\n endpoint,\n username,\n password,\n token,\n}: PlatformParams): Promise<PlatformResult> {\n if (!(username && password) && !token) {\n throw new Error(\n 'Init: You must configure either a Bitbucket token or username and password',\n );\n }\n if (endpoint && endpoint !== BITBUCKET_PROD_ENDPOINT) {\n logger.warn(\n { endpoint, defaultEndpoint: BITBUCKET_PROD_ENDPOINT },\n 'Init: Bitbucket Cloud endpoint should generally be the default but is being configured to a different value. Did you mean to use Bitbucket Server?',\n );\n defaults.endpoint = endpoint;\n }\n setBaseUrl(defaults.endpoint);\n renovateUserUuid = null;\n const options: HttpOptions = { memCache: false };\n if (token) {\n options.token = token;\n } else {\n options.username = username;\n options.password = password;\n }\n try {\n const { uuid } = (\n await bitbucketHttp.getJsonUnchecked<Account>('/2.0/user', options)\n ).body;\n renovateUserUuid = uuid;\n } catch (err) {\n if (\n err.statusCode === 403 &&\n err.body?.error?.detail?.required?.includes('account')\n ) {\n logger.warn(`Bitbucket: missing 'account' scope for password`);\n } else {\n logger.debug({ err }, 'Unknown error fetching Bitbucket user identity');\n }\n }\n // TODO: Add a connection check that endpoint/username/password combination are valid (#9594)\n const platformConfig: PlatformResult = {\n endpoint: endpoint ?? BITBUCKET_PROD_ENDPOINT,\n };\n return Promise.resolve(platformConfig);\n}\n\n// Get all repositories that the user has access to\nexport async function getRepos(config: AutodiscoverConfig): Promise<string[]> {\n logger.debug('Autodiscovering Bitbucket Cloud repositories');\n try {\n // Determine which workspaces to query.\n // If the caller supplied explicit namespaces use them directly;\n // otherwise discover all workspaces the authenticated user belongs to.\n // The old cross-workspace endpoint GET /2.0/repositories?role=contributor\n // was removed by Bitbucket on 2026-03-31 (CHANGE-2770).\n let workspaceSlugs: string[];\n const autodiscoverNamespaces = config.namespaces;\n if (isNonEmptyArray(autodiscoverNamespaces)) {\n logger.debug(\n { autodiscoverNamespaces },\n 'Using configured namespaces as Bitbucket workspaces',\n );\n workspaceSlugs = autodiscoverNamespaces;\n } else {\n logger.debug('Fetching Bitbucket workspaces for the current user');\n const { body: slugs } = await bitbucketHttp.getJson(\n '/2.0/user/workspaces',\n { paginate: true },\n WorkspaceAccesses,\n );\n workspaceSlugs = slugs;\n logger.debug(\n { workspaceSlugs },\n `Found ${workspaceSlugs.length} Bitbucket workspace(s)`,\n );\n }\n\n // Fetch repositories for every workspace in parallel (concurrency-limited).\n const repoArrays = await promises.map(workspaceSlugs, (workspace) =>\n bitbucketHttp\n .getJson(\n `/2.0/repositories/${workspace}`,\n { paginate: true },\n Repositories,\n )\n .then(({ body }) => body),\n );\n\n let repos = repoArrays.flat();\n\n // if autodiscoverProjects is configured, filter the repos list\n const autodiscoverProjects = config.projects;\n if (isNonEmptyArray(autodiscoverProjects)) {\n logger.debug(\n { autodiscoverProjects: config.projects },\n 'Applying autodiscoverProjects filter',\n );\n repos = repos.filter(\n (repo) =>\n repo.projectName &&\n matchRegexOrGlobList(repo.projectName, autodiscoverProjects),\n );\n }\n\n return repos.map(({ owner, name }) => `${owner}/${name}`);\n } catch (err) /* v8 ignore next -- defensive: repo listing failures are logged and rethrown, not simulated in specs */ {\n logger.error({ err }, `bitbucket getRepos error`);\n throw err;\n }\n}\n\nexport async function getRawFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<string | null> {\n // See: https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/src/%7Bcommit%7D/%7Bpath%7D\n const repo = repoName ?? config.repository;\n const path = fileName;\n\n let finalBranchOrTag = branchOrTag;\n if (branchOrTag?.includes(pathSeparator)) {\n // Branch name contains slash, so we have to replace branch name with SHA1 of the head commit; otherwise the API will not work.\n finalBranchOrTag = await getBranchCommit(branchOrTag);\n }\n\n const url = `/2.0/repositories/${repo}/src/${finalBranchOrTag ?? `HEAD`}/${path}`;\n const res = await bitbucketHttp.getText(url, {\n cacheProvider: repoCacheProvider,\n });\n return res.body;\n}\n\nexport async function getJsonFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<any> {\n // TODO #22198\n const raw = await getRawFile(fileName, repoName, branchOrTag);\n return parseJson(raw, fileName);\n}\n\n// Initialize bitbucket by getting base branch and SHA\nexport async function initRepo({\n repository,\n cloneSubmodules,\n cloneSubmodulesFilter,\n}: RepoParams): Promise<RepoResult> {\n logger.debug(`initRepo(\"${repository}\")`);\n const opts = hostRules.find({\n hostType: 'bitbucket',\n url: defaults.endpoint,\n });\n config = {\n repository,\n ignorePrAuthor: GlobalConfig.get('ignorePrAuthor'),\n } as Config;\n let info: RepoInfo;\n let mainBranch: string;\n try {\n const { body: repoInfo } = await bitbucketHttp.getJson(\n `/2.0/repositories/${repository}`,\n RepoInfo,\n );\n info = repoInfo;\n\n mainBranch = info.mainbranch;\n\n if (getInheritedOrGlobal('bbUseDevelopmentBranch')) {\n // Fetch Bitbucket development branch\n const developmentBranch = (\n await bitbucketHttp.getJsonUnchecked<RepoBranchingModel>(\n `/2.0/repositories/${repository}/branching-model`,\n )\n ).body.development?.branch?.name;\n\n if (developmentBranch) {\n mainBranch = developmentBranch;\n }\n }\n\n config.defaultBranch = mainBranch;\n\n config = {\n ...config,\n owner: info.owner,\n mergeMethod: info.mergeMethod,\n is_private: info.is_private,\n };\n\n logger.debug(`${repository} owner = ${config.owner}`);\n } catch (err) /* v8 ignore next -- initRepo error mapping (404 to not-found) is not mocked in specs */ {\n if (err.statusCode === 404) {\n throw new Error(REPOSITORY_NOT_FOUND);\n }\n logger.debug({ err }, 'Unknown Bitbucket initRepo error');\n throw err;\n }\n\n const parsedEndpoint = parseUrl(defaults.endpoint);\n // v8 ignore if: endpoint is a constant\n if (!parsedEndpoint) {\n throw new Error(`Invalid Bitbucket endpoint: ${defaults.endpoint}`);\n }\n const { hostname } = parsedEndpoint;\n\n // Converts API hostnames to their respective HTTP git hosts:\n // `api.bitbucket.org` to `bitbucket.org`\n // `api-staging.<host>` to `staging.<host>`\n // TODO #22198\n const hostnameWithoutApiPrefix = regEx(/api[.|-](.+)/).exec(hostname)?.[1];\n\n let auth = '';\n if (opts.token) {\n auth = `x-token-auth:${opts.token}`;\n } else if (opts.password?.startsWith('ATAT')) {\n auth = `x-bitbucket-api-token-auth:${opts.password}`;\n } else {\n auth = `${opts.username!}:${opts.password!}`;\n }\n\n const url = git.getUrl({\n protocol: 'https',\n auth,\n hostname: hostnameWithoutApiPrefix,\n repository,\n });\n\n await git.initRepo({\n ...config,\n url,\n cloneSubmodules,\n cloneSubmodulesFilter,\n });\n const repoConfig: RepoResult = {\n defaultBranch: mainBranch,\n isFork: info.isFork,\n repoFingerprint: repoFingerprint(info.uuid, defaults.endpoint),\n };\n return repoConfig;\n}\n\n/* v8 ignore next -- covered only through findPr callers, never invoked directly in specs */\nfunction matchesState(state: string, desiredState: string): boolean {\n if (desiredState === 'all') {\n return true;\n }\n if (desiredState.startsWith('!')) {\n return state !== desiredState.substring(1);\n }\n return state === desiredState;\n}\n\nexport async function getPrList(): Promise<Pr[]> {\n logger.trace('getPrList()');\n return await BitbucketPrCache.getPrs(\n bitbucketHttp,\n config.repository,\n renovateUserUuid,\n );\n}\n\nexport async function findPr({\n branchName,\n prTitle,\n state = 'all',\n includeOtherAuthors,\n}: FindPRConfig): Promise<Pr | null> {\n logger.debug(`findPr(${branchName}, ${prTitle}, ${state})`);\n\n if (includeOtherAuthors) {\n // PR might have been created by anyone, so don't use the cached Renovate PR list\n const prs = (\n await bitbucketHttp.getJsonUnchecked<PagedResult<PrResponse>>(\n `/2.0/repositories/${config.repository}/pullrequests?q=source.branch.name=\"${branchName}\"&state=open`,\n { cacheProvider: memCacheProvider },\n )\n ).body.values;\n\n if (prs.length === 0) {\n logger.debug(`No PR found for branch ${branchName}`);\n return null;\n }\n\n return utils.prInfo(prs[0]);\n }\n\n const prList = await getPrList();\n const pr = prList.find(\n (p) =>\n p.sourceBranch === branchName &&\n (!prTitle || p.title.toUpperCase() === prTitle.toUpperCase()) &&\n matchesState(p.state, state),\n );\n\n if (!pr) {\n return null;\n }\n logger.debug(`Found PR #${pr.number}`);\n\n /**\n * Bitbucket doesn't support renaming or reopening declined PRs.\n * Instead, we have to use comment-driven signals.\n */\n if (pr.state === 'closed') {\n const reopenComments = await comments.reopenComments(config, pr.number);\n\n if (isNonEmptyArray(reopenComments)) {\n if (config.is_private) {\n // Only workspace members could have commented on a private repository\n logger.debug(\n `Found '${comments.REOPEN_PR_COMMENT_KEYWORD}' comment from workspace member. Renovate will reopen PR ${pr.number} as a new PR`,\n );\n return null;\n }\n\n for (const comment of reopenComments) {\n if (await isAccountMemberOfWorkspace(comment.user, config.repository)) {\n logger.debug(\n `Found '${comments.REOPEN_PR_COMMENT_KEYWORD}' comment from workspace member. Renovate will reopen PR ${pr.number} as a new PR`,\n );\n return null;\n }\n }\n }\n }\n\n return pr;\n}\n\n// Gets details for a PR\nexport async function getPr(prNo: number): Promise<Pr | null> {\n const pr = (\n await bitbucketHttp.getJsonUnchecked<PrResponse>(\n `/2.0/repositories/${config.repository}/pullrequests/${prNo}`,\n { cacheProvider: aggressiveRepoCacheProvider },\n )\n ).body;\n\n /* v8 ignore next -- defensive: the PR endpoint returns a body or throws, never an empty body */\n if (!pr) {\n return null;\n }\n\n const res: Pr = {\n ...utils.prInfo(pr),\n };\n\n if (isNonEmptyArray(pr.reviewers)) {\n res.reviewers = pr.reviewers\n .map(({ uuid }) => uuid)\n .filter(isNonEmptyString);\n }\n\n return res;\n}\n\nfunction escapeHash(input: string): string {\n return input?.replace(regEx(/#/g), '%23');\n}\n\n// Return the commit SHA for a branch\nasync function getBranchCommit(\n branchName: string,\n): Promise<string | undefined> {\n try {\n const branch = (\n await bitbucketHttp.getJsonUnchecked<BranchResponse>(\n `/2.0/repositories/${config.repository}/refs/branches/${escapeHash(\n branchName,\n )}`,\n { cacheProvider: aggressiveRepoCacheProvider },\n )\n ).body;\n return branch.target.hash;\n } catch (err) /* v8 ignore next -- defensive: missing branch is logged and mapped to undefined, not mocked in specs */ {\n logger.debug({ err }, `getBranchCommit('${branchName}') failed'`);\n return undefined;\n }\n}\n\n// Returns the Pull Request for a branch. Null if not exists.\nexport async function getBranchPr(branchName: string): Promise<Pr | null> {\n logger.debug(`getBranchPr(${branchName})`);\n const existingPr = await findPr({\n branchName,\n state: 'open',\n });\n return existingPr ? getPr(existingPr.number) : null;\n}\n\nasync function getStatus(\n branchName: string,\n memCache = true,\n): Promise<BitbucketStatus[]> {\n const sha = await getBranchCommit(branchName);\n const opts: BitbucketHttpOptions = { paginate: true };\n /* v8 ignore next: temporary code */\n if (memCache) {\n opts.cacheProvider = aggressiveRepoCacheProvider;\n } else {\n opts.memCache = false;\n }\n return (\n await bitbucketHttp.getJsonUnchecked<PagedResult<BitbucketStatus>>(\n `/2.0/repositories/${config.repository}/commit/${sha!}/statuses`,\n opts,\n )\n ).body.values;\n}\n// Returns the combined status for a branch.\nexport async function getBranchStatus(\n branchName: string,\n internalChecksAsSuccess: boolean,\n): Promise<BranchStatus> {\n logger.debug(`getBranchStatus(${branchName})`);\n const statuses = await getStatus(branchName);\n logger.debug({ branch: branchName, statuses }, 'branch status check result');\n if (!statuses.length) {\n logger.debug('empty branch status check result = returning \"pending\"');\n return 'yellow';\n }\n const noOfFailures = statuses.filter(\n (status: { state: string }) =>\n status.state === 'FAILED' || status.state === 'STOPPED',\n ).length;\n if (noOfFailures) {\n return 'red';\n }\n const noOfPending = statuses.filter(\n (status: { state: string }) => status.state === 'INPROGRESS',\n ).length;\n if (noOfPending) {\n return 'yellow';\n }\n if (\n !internalChecksAsSuccess &&\n statuses.every(\n (status) =>\n status.state === 'SUCCESSFUL' && status.key?.startsWith('renovate/'),\n )\n ) {\n logger.debug(\n 'Successful checks are all internal renovate/ checks, so returning \"pending\" branch status',\n );\n return 'yellow';\n }\n return 'green';\n}\n\nconst bbToRenovateStatusMapping: Record<string, BranchStatus> = {\n SUCCESSFUL: 'green',\n INPROGRESS: 'yellow',\n FAILED: 'red',\n};\n\nexport async function getBranchStatusCheck(\n branchName: string,\n context: string,\n): Promise<BranchStatus | null> {\n const statuses = await getStatus(branchName);\n const bbState = statuses.find((status) => status.key === context)?.state;\n // TODO #22198\n return bbToRenovateStatusMapping[bbState!] || null;\n}\n\nexport async function setBranchStatus({\n branchName,\n context,\n description,\n state,\n url: targetUrl,\n}: BranchStatusConfig): Promise<void> {\n const sha = await getBranchCommit(branchName);\n\n // TargetUrl can not be empty so default to bitbucket\n /* v8 ignore next -- specs always pass a targetUrl, fallback exists for direct API constraints */\n const url = targetUrl ?? 'https://bitbucket.org';\n\n const body = {\n name: context,\n state: utils.buildStates[state],\n key: context,\n description,\n url,\n };\n\n await bitbucketHttp.postJson(\n `/2.0/repositories/${config.repository}/commit/${sha}/statuses/build`,\n { body },\n );\n\n // invalidate status cache\n const branchStatusesUrl = bitbucketHttp\n .resolveUrl(`/2.0/repositories/${config.repository}/commit/${sha}/statuses`)\n .toString();\n aggressiveRepoCacheProvider.markSynced('get', branchStatusesUrl, false);\n}\n\n/**\n * Remove or transform markdown into Bitbucket supported syntax.\n *\n * See https://bitbucket.org/tutorials/markdowndemo/src for supported markdown syntax\n */\nexport function massageMarkdown(input: string): string {\n let massaged = smartTruncate(input, maxBodyLength())\n .replace(\n 'you tick the rebase/retry checkbox',\n 'by renaming this PR to start with \"rebase!\"',\n )\n .replace(\n 'checking the rebase/retry box above',\n 'renaming the PR to start with \"rebase!\"',\n )\n .replace(\n regEx(\n /<details>\\n(<summary>View abandoned dependencies.*<\\/summary>\\n\\n)([\\s\\S]*?)<\\/details>/,\n ),\n '$2',\n )\n .replace(regEx(`\\n---\\n\\n.*?<!-- rebase-check -->.*?\\n`), '')\n .replace(regEx(/\\]\\(\\.\\.\\/issues\\//g), '](../../issues/')\n .replace(regEx(/\\]\\(\\.\\.\\/pull\\//g), '](../../pull-requests/')\n .replace(regEx(/<!--renovate-(?:debug|config-hash):.*?-->/g), '');\n\n massaged = massageDetailSummaryHtmlToNestedLists(massaged);\n\n return massageCodeblockMarkdown(massaged);\n}\n\n/**\n * Massage codeblocks indentation to ensure correct rendering in Bitbucket.\n */\nfunction massageCodeblockMarkdown(body: string): string {\n const codeBlockRegex = regEx(\n /^(?<indent>[ \\t]*)```(?<lang>\\w*)[^\\n]*\\n(?<code>[\\s\\S]*?)\\n[ \\t]*```/gm,\n );\n let codeMatch;\n let result = body;\n\n while ((codeMatch = codeBlockRegex.exec(body)) !== null) {\n const { indent, lang, code } = codeMatch.groups!;\n const indentLength = indent.length;\n const lines = code.split('\\n');\n const cleanedLines = lines.map((line) =>\n // Remove `indentLength` characters from the start of each line\n line.slice(indentLength),\n );\n\n const cleaned = cleanedLines.join('\\n');\n const replacement = `\\`\\`\\`${lang}\\n${cleaned}\\n\\`\\`\\``;\n\n result = result.replace(codeMatch[0], replacement);\n }\n\n return result;\n}\n\n/**\n * Massage collapsible html sections into nested unordered lists.\n *\n * Bitbucket doesn't currently support collapsible syntax; https://jira.atlassian.com/browse/BCLOUD-20231\n */\nfunction massageDetailSummaryHtmlToNestedLists(body: string): string {\n let depth = 0;\n // Parse detail parts to calculate correct list depth\n const detailsParts = body.split('<details>').map((raw) => {\n const partDepth = depth;\n\n depth += 1;\n const countClosingDetailsTags = raw.split('</details>').length - 1;\n depth = Math.max(0, depth - countClosingDetailsTags);\n\n return { raw, partDepth };\n });\n\n // Reassemble parts while replacing collapsible html elements with markdown list\n return detailsParts\n .map(({ raw, partDepth }) => {\n let t = raw;\n\n if (partDepth === 0) {\n return t;\n }\n\n const partIndentation = '\\t'.repeat(partDepth - 1);\n const nestedListItemIndentation = '\\t'.repeat(partDepth);\n\n const rawContainsBlockquote = raw.includes('<blockquote>');\n\n t = t.replace(regEx(/<\\/?summary>/g), partDepth === 1 ? '**' : '`');\n\n if (partDepth > 1) {\n t = t.replace(\n regEx(/^([ \\t]*- [`[])/gm),\n `${nestedListItemIndentation}$1`,\n );\n }\n\n let result = partIndentation;\n if (rawContainsBlockquote || partDepth > 1) {\n result += ' - ';\n }\n result += t;\n\n return result;\n })\n .join('')\n .replace(regEx(/<\\/?(summary|details|blockquote)>/g), '');\n}\n\nexport function maxBodyLength(): number {\n return 250000;\n}\n\nfunction logIssuesRemoved(): void {\n logger.once.debug(\n 'Bitbucket Cloud has removed its issue tracker, so Renovate features which rely on issues, like the Dependency Dashboard, do not work. See https://developer.atlassian.com/cloud/bitbucket/changelog/#CHANGE-3071',\n );\n}\n\nexport function findIssue(title: string): Promise<Issue | null> {\n logger.debug(`findIssue(${title})`);\n logIssuesRemoved();\n return Promise.resolve(null);\n}\n\nexport function ensureIssue({\n title,\n}: EnsureIssueConfig): Promise<EnsureIssueResult | null> {\n logger.once.warn({ title }, 'Cannot ensure issue');\n logIssuesRemoved();\n return Promise.resolve(null);\n}\n\nexport function getIssueList(): Promise<Issue[]> {\n logger.debug(`getIssueList()`);\n logIssuesRemoved();\n return Promise.resolve([]);\n}\n\nexport function ensureIssueClosing(title: string): Promise<void> {\n logger.debug(`ensureIssueClosing(${title})`);\n logIssuesRemoved();\n return Promise.resolve();\n}\n\nexport function addAssignees(\n _prNr: number,\n _assignees: string[],\n): Promise<void> {\n // Bitbucket supports \"participants\" and \"reviewers\" so does not seem to have the concept of \"assignee\"\n logger.warn('Cannot add assignees');\n return Promise.resolve();\n}\n\nexport async function addReviewers(\n prId: number,\n reviewers: string[],\n): Promise<void> {\n logger.debug(`Adding reviewers '${reviewers.join(', ')}' to #${prId}`);\n\n // TODO #22198\n const { title } = (await getPr(prId))!;\n\n const body = {\n title,\n reviewers: reviewers.map((username: string) => {\n const isUUID =\n username.startsWith('{') &&\n username.endsWith('}') &&\n UUIDRegex.test(username.slice(1, -1));\n const key = isUUID ? 'uuid' : 'username';\n return {\n [key]: username,\n };\n }),\n };\n\n await bitbucketHttp.putJson(\n `/2.0/repositories/${config.repository}/pullrequests/${prId}`,\n {\n body,\n },\n );\n}\n\n/* v8 ignore next -- stub: Bitbucket Cloud has no PR labels, callers never reach this */\nexport function deleteLabel(): never {\n throw new Error('deleteLabel not implemented');\n}\n\nexport function ensureComment({\n number,\n topic,\n content,\n}: EnsureCommentConfig): Promise<boolean> {\n // https://developer.atlassian.com/bitbucket/api/2/reference/search?q=pullrequest+comment\n return comments.ensureComment({\n config,\n number,\n topic,\n content: sanitize(content),\n });\n}\n\nexport function ensureCommentRemoval(\n deleteConfig: EnsureCommentRemovalConfig,\n): Promise<void> {\n return comments.ensureCommentRemoval(config, deleteConfig);\n}\n\nasync function sanitizeReviewers(\n reviewers: Account[],\n err: any,\n): Promise<Account[] | undefined> {\n if (err.statusCode === 400 && err.body?.error?.fields?.reviewers) {\n const sanitizedReviewers: Account[] = [];\n\n const MSG_AUTHOR_AND_REVIEWER =\n 'is the author and cannot be included as a reviewer.';\n const MSG_MALFORMED_REVIEWERS_LIST = 'Malformed reviewers list';\n const MSG_NOT_WORKSPACE_MEMBER =\n 'is not a member of this workspace and cannot be added to this pull request';\n\n for (const msg of err.body.error.fields.reviewers) {\n // Bitbucket returns a 400 if any of the PR reviewer accounts are now inactive (ie: disabled/suspended)\n if (msg === MSG_MALFORMED_REVIEWERS_LIST) {\n logger.debug(\n { err },\n 'PR contains reviewers that may be either inactive or no longer a member of this workspace. Will try setting only active reviewers',\n );\n\n // Validate that each previous PR reviewer account is still active\n for (const reviewer of reviewers) {\n const reviewerUser = (\n await bitbucketHttp.getJsonUnchecked<Account>(\n `/2.0/users/${reviewer.uuid}`,\n { cacheProvider: aggressiveRepoCacheProvider },\n )\n ).body;\n\n // There are cases where an active user may still not be a member of a workspace\n if (\n reviewerUser.account_status === 'active' &&\n (await isAccountMemberOfWorkspace(reviewer, config.repository))\n ) {\n sanitizedReviewers.push(reviewer);\n }\n }\n // Bitbucket returns a 400 if any of the PR reviewer accounts are no longer members of this workspace\n } else if (msg.endsWith(MSG_NOT_WORKSPACE_MEMBER)) {\n logger.debug(\n { err },\n 'PR contains reviewer accounts which are no longer member of this workspace. Will try setting only member reviewers',\n );\n\n // Validate that each previous PR reviewer account is still a member of this workspace\n for (const reviewer of reviewers) {\n if (await isAccountMemberOfWorkspace(reviewer, config.repository)) {\n sanitizedReviewers.push(reviewer);\n }\n }\n } else if (msg.endsWith(MSG_AUTHOR_AND_REVIEWER)) {\n logger.debug(\n { err },\n 'PR contains reviewer accounts which are also the author. Will try setting only non-author reviewers',\n );\n const author = msg.replace(MSG_AUTHOR_AND_REVIEWER, '').trim();\n for (const reviewer of reviewers) {\n if (reviewer.display_name !== author) {\n sanitizedReviewers.push(reviewer);\n }\n }\n } else {\n return undefined;\n }\n }\n\n return sanitizedReviewers;\n }\n\n return undefined;\n}\n\nasync function isAccountMemberOfWorkspace(\n reviewer: Account,\n repository: string,\n): Promise<boolean> {\n const workspace = repository.split('/')[0];\n\n try {\n await bitbucketHttp.get(\n `/2.0/workspaces/${workspace}/members/${reviewer.uuid}`,\n { cacheProvider: aggressiveRepoCacheProvider },\n );\n\n return true;\n } catch (err) {\n // HTTP 404: User cannot be found, or the user is not a member of this workspace.\n if (err.statusCode === 404) {\n logger.debug(\n { err },\n `User ${reviewer.display_name} is not a member of the workspace ${workspace}. Will be removed from the PR`,\n );\n\n return false;\n }\n throw err;\n }\n}\n\n// Creates PR and returns PR number\nexport async function createPr({\n sourceBranch,\n targetBranch,\n prTitle: title,\n prBody: description,\n draftPR = false,\n platformPrOptions,\n}: CreatePRConfig): Promise<Pr> {\n // labels is not supported in Bitbucket: https://bitbucket.org/site/master/issues/11976/ability-to-add-labels-to-pull-requests-bb\n\n const base = targetBranch;\n\n logger.debug({ repository: config.repository, title, base }, 'Creating PR');\n\n let reviewers: Account[] = [];\n\n if (platformPrOptions?.bbUseDefaultReviewers) {\n const reviewersResponse = (\n await bitbucketHttp.getJsonUnchecked<PagedResult<EffectiveReviewer>>(\n `/2.0/repositories/${config.repository}/effective-default-reviewers`,\n {\n paginate: true,\n cacheProvider: aggressiveRepoCacheProvider,\n },\n )\n ).body;\n reviewers = reviewersResponse.values.map((reviewer: EffectiveReviewer) => ({\n uuid: reviewer.user.uuid,\n display_name: reviewer.user.display_name,\n }));\n }\n\n const body = {\n title,\n description: sanitize(description),\n source: {\n branch: {\n name: sourceBranch,\n },\n },\n destination: {\n branch: {\n name: base,\n },\n },\n close_source_branch: true,\n reviewers,\n draft: draftPR,\n };\n\n try {\n const prRes = (\n await bitbucketHttp.postJson<PrResponse>(\n `/2.0/repositories/${config.repository}/pullrequests`,\n {\n body,\n },\n )\n ).body;\n const pr = utils.prInfo(prRes);\n await BitbucketPrCache.setPr(\n bitbucketHttp,\n config.repository,\n renovateUserUuid,\n pr,\n );\n if (platformPrOptions?.bbAutoResolvePrTasks) {\n await autoResolvePrTasks(pr);\n }\n return pr;\n } catch (err) /* v8 ignore next -- reviewer-sanitizing retry path depends on API error shapes not mocked in specs */ {\n // Try sanitizing reviewers\n const sanitizedReviewers = await sanitizeReviewers(reviewers, err);\n\n if (sanitizedReviewers === undefined) {\n logger.warn({ err }, 'Error creating pull request');\n throw err;\n } else {\n const prRes = (\n await bitbucketHttp.postJson<PrResponse>(\n `/2.0/repositories/${config.repository}/pullrequests`,\n {\n body: {\n ...body,\n reviewers: sanitizedReviewers,\n },\n },\n )\n ).body;\n const pr = utils.prInfo(prRes);\n await BitbucketPrCache.setPr(\n bitbucketHttp,\n config.repository,\n renovateUserUuid,\n pr,\n );\n if (platformPrOptions?.bbAutoResolvePrTasks) {\n await autoResolvePrTasks(pr);\n }\n return pr;\n }\n }\n}\n\nasync function autoResolvePrTasks(pr: Pr): Promise<void> {\n logger.debug(`Auto resolve PR tasks in #${pr.number}`);\n try {\n const unResolvedTasks = (\n await bitbucketHttp.getJson(\n `/2.0/repositories/${config.repository}/pullrequests/${pr.number}/tasks`,\n { paginate: true, pagelen: 100 },\n UnresolvedPrTasks,\n )\n ).body;\n\n logger.trace(\n {\n prId: pr.number,\n listTaskRes: unResolvedTasks,\n },\n 'List PR tasks',\n );\n\n for (const task of unResolvedTasks) {\n const res = await bitbucketHttp.putJson(\n `/2.0/repositories/${config.repository}/pullrequests/${pr.number}/tasks/${task.id}`,\n {\n body: {\n state: 'RESOLVED',\n content: {\n raw: task.content.raw,\n },\n },\n },\n );\n logger.trace(\n {\n prId: pr.number,\n updateTaskResponse: res,\n },\n 'Put PR tasks - mark resolved',\n );\n }\n } catch (err) {\n logger.warn({ prId: pr.number, err }, 'Error resolving PR tasks');\n }\n}\n\nexport async function updatePr({\n number: prNo,\n prTitle: title,\n prBody: description,\n state,\n targetBranch,\n}: UpdatePrConfig): Promise<void> {\n logger.debug(`updatePr(${prNo}, ${title}, body)`);\n // Updating a PR in Bitbucket will clear the reviewers if reviewers is not present\n const pr = (\n await bitbucketHttp.getJsonUnchecked<PrResponse>(\n `/2.0/repositories/${config.repository}/pullrequests/${prNo}`,\n )\n ).body;\n\n let updatedPrRes: PrResponse;\n try {\n const body: any = {\n title,\n description: sanitize(description),\n reviewers: pr.reviewers,\n };\n if (targetBranch) {\n body.destination = {\n branch: {\n name: targetBranch,\n },\n };\n }\n\n updatedPrRes = (\n await bitbucketHttp.putJson<PrResponse>(\n `/2.0/repositories/${config.repository}/pullrequests/${prNo}`,\n { body },\n )\n ).body;\n } catch (err) {\n // Try sanitizing reviewers\n const sanitizedReviewers = await sanitizeReviewers(pr.reviewers, err);\n\n if (sanitizedReviewers === undefined) {\n throw err;\n } else {\n updatedPrRes = (\n await bitbucketHttp.putJson<PrResponse>(\n `/2.0/repositories/${config.repository}/pullrequests/${prNo}`,\n {\n body: {\n title,\n description: sanitize(description),\n reviewers: sanitizedReviewers,\n },\n },\n )\n ).body;\n }\n }\n\n if (state === 'closed' && pr) {\n await bitbucketHttp.postJson(\n `/2.0/repositories/${config.repository}/pullrequests/${prNo}/decline`,\n );\n }\n\n // update pr cache\n await BitbucketPrCache.setPr(\n bitbucketHttp,\n config.repository,\n renovateUserUuid,\n utils.prInfo({ ...updatedPrRes, ...(state && { state }) }),\n );\n}\n\nexport async function mergePr({\n branchName,\n id: prNo,\n strategy: mergeStrategy,\n}: MergePRConfig): Promise<boolean> {\n logger.debug(`mergePr(${prNo}, ${branchName}, ${mergeStrategy})`);\n\n // Bitbucket Cloud does not support a rebase-alike; https://jira.atlassian.com/browse/BCLOUD-16610\n if (mergeStrategy === 'rebase') {\n logger.warn('Bitbucket Cloud does not support a \"rebase\" strategy.');\n return false;\n }\n\n try {\n await bitbucketHttp.postJson(\n `/2.0/repositories/${config.repository}/pullrequests/${prNo}/merge`,\n {\n body: mergeBodyTransformer(mergeStrategy),\n },\n );\n logger.debug('Automerging succeeded');\n } catch (err) /* v8 ignore next -- defensive: merge failures are logged and mapped to false, not simulated in specs */ {\n logger.debug({ err }, `PR merge error`);\n logger.info({ pr: prNo }, 'PR automerge failed');\n return false;\n }\n return true;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["promises.map","hostRules.find","git.getUrl","git.initRepo","utils.prInfo","reopenComments","comments.reopenComments","comments.REOPEN_PR_COMMENT_KEYWORD","utils.buildStates","comments.ensureComment","comments.ensureCommentRemoval"],"sources":["../../../../lib/modules/platform/bitbucket/index.ts"],"sourcesContent":["import { isNonEmptyArray, isNonEmptyString } from '@sindresorhus/is';\nimport { GlobalConfig } from '../../../config/global.ts';\nimport { REPOSITORY_NOT_FOUND } from '../../../constants/error-messages.ts';\nimport { logger } from '../../../logger/index.ts';\nimport type { BranchStatus } from '../../../types/index.ts';\nimport { getInheritedOrGlobal, parseJson } from '../../../util/common.ts';\nimport * as git from '../../../util/git/index.ts';\nimport * as hostRules from '../../../util/host-rules.ts';\nimport type { BitbucketHttpOptions } from '../../../util/http/bitbucket.ts';\nimport { BitbucketHttp, setBaseUrl } from '../../../util/http/bitbucket.ts';\nimport { memCacheProvider } from '../../../util/http/cache/memory-http-cache-provider.ts';\nimport {\n aggressiveRepoCacheProvider,\n repoCacheProvider,\n} from '../../../util/http/cache/repository-http-cache-provider.ts';\nimport type { HttpOptions } from '../../../util/http/types.ts';\nimport * as promises from '../../../util/promises.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport { sanitize } from '../../../util/sanitize.ts';\nimport { UUIDRegex, matchRegexOrGlobList } from '../../../util/string-match.ts';\nimport { parseUrl } from '../../../util/url.ts';\nimport type {\n AutodiscoverConfig,\n BranchStatusConfig,\n CreatePRConfig,\n EnsureCommentConfig,\n EnsureCommentRemovalConfig,\n EnsureIssueConfig,\n EnsureIssueResult,\n FindPRConfig,\n Issue,\n MergePRConfig,\n PlatformParams,\n PlatformResult,\n Pr,\n RepoParams,\n RepoResult,\n UpdatePrConfig,\n} from '../types.ts';\nimport { repoFingerprint } from '../util.ts';\nimport { smartTruncate } from '../utils/pr-body.ts';\nimport * as comments from './comments.ts';\nimport { BitbucketPrCache } from './pr-cache.ts';\nimport {\n RepoInfo,\n Repositories,\n UnresolvedPrTasks,\n WorkspaceAccesses,\n} from './schema.ts';\nimport type {\n Account,\n BitbucketStatus,\n BranchResponse,\n Config,\n EffectiveReviewer,\n PagedResult,\n PrResponse,\n RepoBranchingModel,\n} from './types.ts';\nimport * as utils from './utils.ts';\nimport { mergeBodyTransformer } from './utils.ts';\n\nexport const id = 'bitbucket';\n\nconst bitbucketHttp = new BitbucketHttp();\n\nconst BITBUCKET_PROD_ENDPOINT = 'https://api.bitbucket.org/';\n\nlet config: Config = {} as any;\n\nexport function resetPlatform(): void {\n config = {} as any;\n renovateUserUuid = null;\n}\n\nconst defaults = { endpoint: BITBUCKET_PROD_ENDPOINT };\n\nconst pathSeparator = '/';\n\nlet renovateUserUuid: string | null = null;\n\nexport async function initPlatform({\n endpoint,\n username,\n password,\n token,\n}: PlatformParams): Promise<PlatformResult> {\n if (!(username && password) && !token) {\n throw new Error(\n 'Init: You must configure either a Bitbucket token or username and password',\n );\n }\n if (endpoint && endpoint !== BITBUCKET_PROD_ENDPOINT) {\n logger.warn(\n { endpoint, defaultEndpoint: BITBUCKET_PROD_ENDPOINT },\n 'Init: Bitbucket Cloud endpoint should generally be the default but is being configured to a different value. Did you mean to use Bitbucket Server?',\n );\n defaults.endpoint = endpoint;\n }\n setBaseUrl(defaults.endpoint);\n renovateUserUuid = null;\n const options: HttpOptions = { memCache: false };\n if (token) {\n options.token = token;\n } else {\n options.username = username;\n options.password = password;\n }\n try {\n const { uuid } = (\n await bitbucketHttp.getJsonUnchecked<Account>('/2.0/user', options)\n ).body;\n renovateUserUuid = uuid;\n } catch (err) {\n if (\n err.statusCode === 403 &&\n err.body?.error?.detail?.required?.includes('account')\n ) {\n logger.warn(`Bitbucket: missing 'account' scope for password`);\n } else {\n logger.debug({ err }, 'Unknown error fetching Bitbucket user identity');\n }\n }\n // TODO: Add a connection check that endpoint/username/password combination are valid (#9594)\n const platformConfig: PlatformResult = {\n endpoint: endpoint ?? BITBUCKET_PROD_ENDPOINT,\n };\n return Promise.resolve(platformConfig);\n}\n\n// Get all repositories that the user has access to\nexport async function getRepos(config: AutodiscoverConfig): Promise<string[]> {\n logger.debug('Autodiscovering Bitbucket Cloud repositories');\n try {\n // Determine which workspaces to query.\n // If the caller supplied explicit namespaces use them directly;\n // otherwise discover all workspaces the authenticated user belongs to.\n // The old cross-workspace endpoint GET /2.0/repositories?role=contributor\n // was removed by Bitbucket on 2026-03-31 (CHANGE-2770).\n let workspaceSlugs: string[];\n const autodiscoverNamespaces = config.namespaces;\n if (isNonEmptyArray(autodiscoverNamespaces)) {\n logger.debug(\n { autodiscoverNamespaces },\n 'Using configured namespaces as Bitbucket workspaces',\n );\n workspaceSlugs = autodiscoverNamespaces;\n } else {\n logger.debug('Fetching Bitbucket workspaces for the current user');\n const { body: slugs } = await bitbucketHttp.getJson(\n '/2.0/user/workspaces',\n { paginate: true },\n WorkspaceAccesses,\n );\n workspaceSlugs = slugs;\n logger.debug(\n { workspaceSlugs },\n `Found ${workspaceSlugs.length} Bitbucket workspace(s)`,\n );\n }\n\n // Fetch repositories for every workspace in parallel (concurrency-limited).\n const repoArrays = await promises.map(workspaceSlugs, (workspace) =>\n bitbucketHttp\n .getJson(\n `/2.0/repositories/${workspace}`,\n { paginate: true },\n Repositories,\n )\n .then(({ body }) => body),\n );\n\n let repos = repoArrays.flat();\n\n // if autodiscoverProjects is configured, filter the repos list\n const autodiscoverProjects = config.projects;\n if (isNonEmptyArray(autodiscoverProjects)) {\n logger.debug(\n { autodiscoverProjects: config.projects },\n 'Applying autodiscoverProjects filter',\n );\n repos = repos.filter(\n (repo) =>\n repo.projectName &&\n matchRegexOrGlobList(repo.projectName, autodiscoverProjects),\n );\n }\n\n return repos.map(({ owner, name }) => `${owner}/${name}`);\n } catch (err) /* v8 ignore next -- defensive: repo listing failures are logged and rethrown, not simulated in specs */ {\n logger.error({ err }, `bitbucket getRepos error`);\n throw err;\n }\n}\n\nexport async function getRawFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<string | null> {\n // See: https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/src/%7Bcommit%7D/%7Bpath%7D\n const repo = repoName ?? config.repository;\n const path = fileName;\n\n let finalBranchOrTag = branchOrTag;\n if (branchOrTag?.includes(pathSeparator)) {\n // Branch name contains slash, so we have to replace branch name with SHA1 of the head commit; otherwise the API will not work.\n finalBranchOrTag = await getBranchCommit(branchOrTag);\n }\n\n const url = `/2.0/repositories/${repo}/src/${finalBranchOrTag ?? `HEAD`}/${path}`;\n const res = await bitbucketHttp.getText(url, {\n cacheProvider: repoCacheProvider,\n });\n return res.body;\n}\n\nexport async function getJsonFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<any> {\n // TODO #22198\n const raw = await getRawFile(fileName, repoName, branchOrTag);\n return parseJson(raw, fileName);\n}\n\n// Initialize bitbucket by getting base branch and SHA\nexport async function initRepo({\n repository,\n cloneSubmodules,\n cloneSubmodulesFilter,\n}: RepoParams): Promise<RepoResult> {\n logger.debug(`initRepo(\"${repository}\")`);\n const opts = hostRules.find({\n hostType: 'bitbucket',\n url: defaults.endpoint,\n });\n config = {\n repository,\n ignorePrAuthor: GlobalConfig.get('ignorePrAuthor'),\n } as Config;\n let info: RepoInfo;\n let mainBranch: string;\n try {\n const { body: repoInfo } = await bitbucketHttp.getJson(\n `/2.0/repositories/${repository}`,\n RepoInfo,\n );\n info = repoInfo;\n\n mainBranch = info.mainbranch;\n\n if (getInheritedOrGlobal('bbUseDevelopmentBranch')) {\n logger.debug(\n \"bbUseDevelopmentBranch is true - Checking BitBucket's development branch\",\n );\n const developmentBranch = (\n await bitbucketHttp.getJsonUnchecked<RepoBranchingModel>(\n `/2.0/repositories/${repository}/effective-branching-model`,\n )\n ).body.development?.name;\n\n if (developmentBranch) {\n mainBranch = developmentBranch;\n logger.debug(\n `${developmentBranch} is BitBucket's development branch - using it as default branch`,\n );\n }\n }\n\n config.defaultBranch = mainBranch;\n\n config = {\n ...config,\n owner: info.owner,\n mergeMethod: info.mergeMethod,\n is_private: info.is_private,\n };\n\n logger.debug(`${repository} owner = ${config.owner}`);\n } catch (err) /* v8 ignore next -- initRepo error mapping (404 to not-found) is not mocked in specs */ {\n if (err.statusCode === 404) {\n throw new Error(REPOSITORY_NOT_FOUND);\n }\n logger.debug({ err }, 'Unknown Bitbucket initRepo error');\n throw err;\n }\n\n const parsedEndpoint = parseUrl(defaults.endpoint);\n // v8 ignore if: endpoint is a constant\n if (!parsedEndpoint) {\n throw new Error(`Invalid Bitbucket endpoint: ${defaults.endpoint}`);\n }\n const { hostname } = parsedEndpoint;\n\n // Converts API hostnames to their respective HTTP git hosts:\n // `api.bitbucket.org` to `bitbucket.org`\n // `api-staging.<host>` to `staging.<host>`\n // TODO #22198\n const hostnameWithoutApiPrefix = regEx(/api[.|-](.+)/).exec(hostname)?.[1];\n\n let auth = '';\n if (opts.token) {\n auth = `x-token-auth:${opts.token}`;\n } else if (opts.password?.startsWith('ATAT')) {\n auth = `x-bitbucket-api-token-auth:${opts.password}`;\n } else {\n auth = `${opts.username!}:${opts.password!}`;\n }\n\n const url = git.getUrl({\n protocol: 'https',\n auth,\n hostname: hostnameWithoutApiPrefix,\n repository,\n });\n\n await git.initRepo({\n ...config,\n url,\n cloneSubmodules,\n cloneSubmodulesFilter,\n });\n const repoConfig: RepoResult = {\n defaultBranch: mainBranch,\n isFork: info.isFork,\n repoFingerprint: repoFingerprint(info.uuid, defaults.endpoint),\n };\n return repoConfig;\n}\n\n/* v8 ignore next -- covered only through findPr callers, never invoked directly in specs */\nfunction matchesState(state: string, desiredState: string): boolean {\n if (desiredState === 'all') {\n return true;\n }\n if (desiredState.startsWith('!')) {\n return state !== desiredState.substring(1);\n }\n return state === desiredState;\n}\n\nexport async function getPrList(): Promise<Pr[]> {\n logger.trace('getPrList()');\n return await BitbucketPrCache.getPrs(\n bitbucketHttp,\n config.repository,\n renovateUserUuid,\n );\n}\n\nexport async function findPr({\n branchName,\n prTitle,\n state = 'all',\n includeOtherAuthors,\n}: FindPRConfig): Promise<Pr | null> {\n logger.debug(`findPr(${branchName}, ${prTitle}, ${state})`);\n\n if (includeOtherAuthors) {\n // PR might have been created by anyone, so don't use the cached Renovate PR list\n const prs = (\n await bitbucketHttp.getJsonUnchecked<PagedResult<PrResponse>>(\n `/2.0/repositories/${config.repository}/pullrequests?q=source.branch.name=\"${branchName}\"&state=open`,\n { cacheProvider: memCacheProvider },\n )\n ).body.values;\n\n if (prs.length === 0) {\n logger.debug(`No PR found for branch ${branchName}`);\n return null;\n }\n\n return utils.prInfo(prs[0]);\n }\n\n const prList = await getPrList();\n const pr = prList.find(\n (p) =>\n p.sourceBranch === branchName &&\n (!prTitle || p.title.toUpperCase() === prTitle.toUpperCase()) &&\n matchesState(p.state, state),\n );\n\n if (!pr) {\n return null;\n }\n logger.debug(`Found PR #${pr.number}`);\n\n /**\n * Bitbucket doesn't support renaming or reopening declined PRs.\n * Instead, we have to use comment-driven signals.\n */\n if (pr.state === 'closed') {\n const reopenComments = await comments.reopenComments(config, pr.number);\n\n if (isNonEmptyArray(reopenComments)) {\n if (config.is_private) {\n // Only workspace members could have commented on a private repository\n logger.debug(\n `Found '${comments.REOPEN_PR_COMMENT_KEYWORD}' comment from workspace member. Renovate will reopen PR ${pr.number} as a new PR`,\n );\n return null;\n }\n\n for (const comment of reopenComments) {\n if (await isAccountMemberOfWorkspace(comment.user, config.repository)) {\n logger.debug(\n `Found '${comments.REOPEN_PR_COMMENT_KEYWORD}' comment from workspace member. Renovate will reopen PR ${pr.number} as a new PR`,\n );\n return null;\n }\n }\n }\n }\n\n return pr;\n}\n\n// Gets details for a PR\nexport async function getPr(prNo: number): Promise<Pr | null> {\n const pr = (\n await bitbucketHttp.getJsonUnchecked<PrResponse>(\n `/2.0/repositories/${config.repository}/pullrequests/${prNo}`,\n { cacheProvider: aggressiveRepoCacheProvider },\n )\n ).body;\n\n /* v8 ignore next -- defensive: the PR endpoint returns a body or throws, never an empty body */\n if (!pr) {\n return null;\n }\n\n const res: Pr = {\n ...utils.prInfo(pr),\n };\n\n if (isNonEmptyArray(pr.reviewers)) {\n res.reviewers = pr.reviewers\n .map(({ uuid }) => uuid)\n .filter(isNonEmptyString);\n }\n\n return res;\n}\n\nfunction escapeHash(input: string): string {\n return input?.replace(regEx(/#/g), '%23');\n}\n\n// Return the commit SHA for a branch\nasync function getBranchCommit(\n branchName: string,\n): Promise<string | undefined> {\n try {\n const branch = (\n await bitbucketHttp.getJsonUnchecked<BranchResponse>(\n `/2.0/repositories/${config.repository}/refs/branches/${escapeHash(\n branchName,\n )}`,\n { cacheProvider: aggressiveRepoCacheProvider },\n )\n ).body;\n return branch.target.hash;\n } catch (err) /* v8 ignore next -- defensive: missing branch is logged and mapped to undefined, not mocked in specs */ {\n logger.debug({ err }, `getBranchCommit('${branchName}') failed'`);\n return undefined;\n }\n}\n\n// Returns the Pull Request for a branch. Null if not exists.\nexport async function getBranchPr(branchName: string): Promise<Pr | null> {\n logger.debug(`getBranchPr(${branchName})`);\n const existingPr = await findPr({\n branchName,\n state: 'open',\n });\n return existingPr ? getPr(existingPr.number) : null;\n}\n\nasync function getStatus(\n branchName: string,\n memCache = true,\n): Promise<BitbucketStatus[]> {\n const sha = await getBranchCommit(branchName);\n const opts: BitbucketHttpOptions = { paginate: true };\n /* v8 ignore next: temporary code */\n if (memCache) {\n opts.cacheProvider = aggressiveRepoCacheProvider;\n } else {\n opts.memCache = false;\n }\n return (\n await bitbucketHttp.getJsonUnchecked<PagedResult<BitbucketStatus>>(\n `/2.0/repositories/${config.repository}/commit/${sha!}/statuses`,\n opts,\n )\n ).body.values;\n}\n// Returns the combined status for a branch.\nexport async function getBranchStatus(\n branchName: string,\n internalChecksAsSuccess: boolean,\n): Promise<BranchStatus> {\n logger.debug(`getBranchStatus(${branchName})`);\n const statuses = await getStatus(branchName);\n logger.debug({ branch: branchName, statuses }, 'branch status check result');\n if (!statuses.length) {\n logger.debug('empty branch status check result = returning \"pending\"');\n return 'yellow';\n }\n const noOfFailures = statuses.filter(\n (status: { state: string }) =>\n status.state === 'FAILED' || status.state === 'STOPPED',\n ).length;\n if (noOfFailures) {\n return 'red';\n }\n const noOfPending = statuses.filter(\n (status: { state: string }) => status.state === 'INPROGRESS',\n ).length;\n if (noOfPending) {\n return 'yellow';\n }\n if (\n !internalChecksAsSuccess &&\n statuses.every(\n (status) =>\n status.state === 'SUCCESSFUL' && status.key?.startsWith('renovate/'),\n )\n ) {\n logger.debug(\n 'Successful checks are all internal renovate/ checks, so returning \"pending\" branch status',\n );\n return 'yellow';\n }\n return 'green';\n}\n\nconst bbToRenovateStatusMapping: Record<string, BranchStatus> = {\n SUCCESSFUL: 'green',\n INPROGRESS: 'yellow',\n FAILED: 'red',\n};\n\nexport async function getBranchStatusCheck(\n branchName: string,\n context: string,\n): Promise<BranchStatus | null> {\n const statuses = await getStatus(branchName);\n const bbState = statuses.find((status) => status.key === context)?.state;\n // TODO #22198\n return bbToRenovateStatusMapping[bbState!] || null;\n}\n\nexport async function setBranchStatus({\n branchName,\n context,\n description,\n state,\n url: targetUrl,\n}: BranchStatusConfig): Promise<void> {\n const sha = await getBranchCommit(branchName);\n\n // TargetUrl can not be empty so default to bitbucket\n /* v8 ignore next -- specs always pass a targetUrl, fallback exists for direct API constraints */\n const url = targetUrl ?? 'https://bitbucket.org';\n\n const body = {\n name: context,\n state: utils.buildStates[state],\n key: context,\n description,\n url,\n };\n\n await bitbucketHttp.postJson(\n `/2.0/repositories/${config.repository}/commit/${sha}/statuses/build`,\n { body },\n );\n\n // invalidate status cache\n const branchStatusesUrl = bitbucketHttp\n .resolveUrl(`/2.0/repositories/${config.repository}/commit/${sha}/statuses`)\n .toString();\n aggressiveRepoCacheProvider.markSynced('get', branchStatusesUrl, false);\n}\n\n/**\n * Remove or transform markdown into Bitbucket supported syntax.\n *\n * See https://bitbucket.org/tutorials/markdowndemo/src for supported markdown syntax\n */\nexport function massageMarkdown(input: string): string {\n let massaged = smartTruncate(input, maxBodyLength())\n .replace(\n 'you tick the rebase/retry checkbox',\n 'by renaming this PR to start with \"rebase!\"',\n )\n .replace(\n 'checking the rebase/retry box above',\n 'renaming the PR to start with \"rebase!\"',\n )\n .replace(\n regEx(\n /<details>\\n(<summary>View abandoned dependencies.*<\\/summary>\\n\\n)([\\s\\S]*?)<\\/details>/,\n ),\n '$2',\n )\n .replace(regEx(`\\n---\\n\\n.*?<!-- rebase-check -->.*?\\n`), '')\n .replace(regEx(/\\]\\(\\.\\.\\/issues\\//g), '](../../issues/')\n .replace(regEx(/\\]\\(\\.\\.\\/pull\\//g), '](../../pull-requests/')\n .replace(regEx(/<!--renovate-(?:debug|config-hash):.*?-->/g), '');\n\n massaged = massageDetailSummaryHtmlToNestedLists(massaged);\n\n return massageCodeblockMarkdown(massaged);\n}\n\n/**\n * Massage codeblocks indentation to ensure correct rendering in Bitbucket.\n */\nfunction massageCodeblockMarkdown(body: string): string {\n const codeBlockRegex = regEx(\n /^(?<indent>[ \\t]*)```(?<lang>\\w*)[^\\n]*\\n(?<code>[\\s\\S]*?)\\n[ \\t]*```/gm,\n );\n let codeMatch;\n let result = body;\n\n while ((codeMatch = codeBlockRegex.exec(body)) !== null) {\n const { indent, lang, code } = codeMatch.groups!;\n const indentLength = indent.length;\n const lines = code.split('\\n');\n const cleanedLines = lines.map((line) =>\n // Remove `indentLength` characters from the start of each line\n line.slice(indentLength),\n );\n\n const cleaned = cleanedLines.join('\\n');\n const replacement = `\\`\\`\\`${lang}\\n${cleaned}\\n\\`\\`\\``;\n\n result = result.replace(codeMatch[0], replacement);\n }\n\n return result;\n}\n\n/**\n * Massage collapsible html sections into nested unordered lists.\n *\n * Bitbucket doesn't currently support collapsible syntax; https://jira.atlassian.com/browse/BCLOUD-20231\n */\nfunction massageDetailSummaryHtmlToNestedLists(body: string): string {\n let depth = 0;\n // Parse detail parts to calculate correct list depth\n const detailsParts = body.split('<details>').map((raw) => {\n const partDepth = depth;\n\n depth += 1;\n const countClosingDetailsTags = raw.split('</details>').length - 1;\n depth = Math.max(0, depth - countClosingDetailsTags);\n\n return { raw, partDepth };\n });\n\n // Reassemble parts while replacing collapsible html elements with markdown list\n return detailsParts\n .map(({ raw, partDepth }) => {\n let t = raw;\n\n if (partDepth === 0) {\n return t;\n }\n\n const partIndentation = '\\t'.repeat(partDepth - 1);\n const nestedListItemIndentation = '\\t'.repeat(partDepth);\n\n const rawContainsBlockquote = raw.includes('<blockquote>');\n\n t = t.replace(regEx(/<\\/?summary>/g), partDepth === 1 ? '**' : '`');\n\n if (partDepth > 1) {\n t = t.replace(\n regEx(/^([ \\t]*- [`[])/gm),\n `${nestedListItemIndentation}$1`,\n );\n }\n\n let result = partIndentation;\n if (rawContainsBlockquote || partDepth > 1) {\n result += ' - ';\n }\n result += t;\n\n return result;\n })\n .join('')\n .replace(regEx(/<\\/?(summary|details|blockquote)>/g), '');\n}\n\nexport function maxBodyLength(): number {\n return 250000;\n}\n\nfunction logIssuesRemoved(): void {\n logger.once.debug(\n 'Bitbucket Cloud has removed its issue tracker, so Renovate features which rely on issues, like the Dependency Dashboard, do not work. See https://developer.atlassian.com/cloud/bitbucket/changelog/#CHANGE-3071',\n );\n}\n\nexport function findIssue(title: string): Promise<Issue | null> {\n logger.debug(`findIssue(${title})`);\n logIssuesRemoved();\n return Promise.resolve(null);\n}\n\nexport function ensureIssue({\n title,\n}: EnsureIssueConfig): Promise<EnsureIssueResult | null> {\n logger.once.warn({ title }, 'Cannot ensure issue');\n logIssuesRemoved();\n return Promise.resolve(null);\n}\n\nexport function getIssueList(): Promise<Issue[]> {\n logger.debug(`getIssueList()`);\n logIssuesRemoved();\n return Promise.resolve([]);\n}\n\nexport function ensureIssueClosing(title: string): Promise<void> {\n logger.debug(`ensureIssueClosing(${title})`);\n logIssuesRemoved();\n return Promise.resolve();\n}\n\nexport function addAssignees(\n _prNr: number,\n _assignees: string[],\n): Promise<void> {\n // Bitbucket supports \"participants\" and \"reviewers\" so does not seem to have the concept of \"assignee\"\n logger.warn('Cannot add assignees');\n return Promise.resolve();\n}\n\nexport async function addReviewers(\n prId: number,\n reviewers: string[],\n): Promise<void> {\n logger.debug(`Adding reviewers '${reviewers.join(', ')}' to #${prId}`);\n\n // TODO #22198\n const { title } = (await getPr(prId))!;\n\n const body = {\n title,\n reviewers: reviewers.map((username: string) => {\n const isUUID =\n username.startsWith('{') &&\n username.endsWith('}') &&\n UUIDRegex.test(username.slice(1, -1));\n const key = isUUID ? 'uuid' : 'username';\n return {\n [key]: username,\n };\n }),\n };\n\n await bitbucketHttp.putJson(\n `/2.0/repositories/${config.repository}/pullrequests/${prId}`,\n {\n body,\n },\n );\n}\n\n/* v8 ignore next -- stub: Bitbucket Cloud has no PR labels, callers never reach this */\nexport function deleteLabel(): never {\n throw new Error('deleteLabel not implemented');\n}\n\nexport function ensureComment({\n number,\n topic,\n content,\n}: EnsureCommentConfig): Promise<boolean> {\n // https://developer.atlassian.com/bitbucket/api/2/reference/search?q=pullrequest+comment\n return comments.ensureComment({\n config,\n number,\n topic,\n content: sanitize(content),\n });\n}\n\nexport function ensureCommentRemoval(\n deleteConfig: EnsureCommentRemovalConfig,\n): Promise<void> {\n return comments.ensureCommentRemoval(config, deleteConfig);\n}\n\nasync function sanitizeReviewers(\n reviewers: Account[],\n err: any,\n): Promise<Account[] | undefined> {\n if (err.statusCode === 400 && err.body?.error?.fields?.reviewers) {\n const sanitizedReviewers: Account[] = [];\n\n const MSG_AUTHOR_AND_REVIEWER =\n 'is the author and cannot be included as a reviewer.';\n const MSG_MALFORMED_REVIEWERS_LIST = 'Malformed reviewers list';\n const MSG_NOT_WORKSPACE_MEMBER =\n 'is not a member of this workspace and cannot be added to this pull request';\n\n for (const msg of err.body.error.fields.reviewers) {\n // Bitbucket returns a 400 if any of the PR reviewer accounts are now inactive (ie: disabled/suspended)\n if (msg === MSG_MALFORMED_REVIEWERS_LIST) {\n logger.debug(\n { err },\n 'PR contains reviewers that may be either inactive or no longer a member of this workspace. Will try setting only active reviewers',\n );\n\n // Validate that each previous PR reviewer account is still active\n for (const reviewer of reviewers) {\n const reviewerUser = (\n await bitbucketHttp.getJsonUnchecked<Account>(\n `/2.0/users/${reviewer.uuid}`,\n { cacheProvider: aggressiveRepoCacheProvider },\n )\n ).body;\n\n // There are cases where an active user may still not be a member of a workspace\n if (\n reviewerUser.account_status === 'active' &&\n (await isAccountMemberOfWorkspace(reviewer, config.repository))\n ) {\n sanitizedReviewers.push(reviewer);\n }\n }\n // Bitbucket returns a 400 if any of the PR reviewer accounts are no longer members of this workspace\n } else if (msg.endsWith(MSG_NOT_WORKSPACE_MEMBER)) {\n logger.debug(\n { err },\n 'PR contains reviewer accounts which are no longer member of this workspace. Will try setting only member reviewers',\n );\n\n // Validate that each previous PR reviewer account is still a member of this workspace\n for (const reviewer of reviewers) {\n if (await isAccountMemberOfWorkspace(reviewer, config.repository)) {\n sanitizedReviewers.push(reviewer);\n }\n }\n } else if (msg.endsWith(MSG_AUTHOR_AND_REVIEWER)) {\n logger.debug(\n { err },\n 'PR contains reviewer accounts which are also the author. Will try setting only non-author reviewers',\n );\n const author = msg.replace(MSG_AUTHOR_AND_REVIEWER, '').trim();\n for (const reviewer of reviewers) {\n if (reviewer.display_name !== author) {\n sanitizedReviewers.push(reviewer);\n }\n }\n } else {\n return undefined;\n }\n }\n\n return sanitizedReviewers;\n }\n\n return undefined;\n}\n\nasync function isAccountMemberOfWorkspace(\n reviewer: Account,\n repository: string,\n): Promise<boolean> {\n const workspace = repository.split('/')[0];\n\n try {\n await bitbucketHttp.get(\n `/2.0/workspaces/${workspace}/members/${reviewer.uuid}`,\n { cacheProvider: aggressiveRepoCacheProvider },\n );\n\n return true;\n } catch (err) {\n // HTTP 404: User cannot be found, or the user is not a member of this workspace.\n if (err.statusCode === 404) {\n logger.debug(\n { err },\n `User ${reviewer.display_name} is not a member of the workspace ${workspace}. Will be removed from the PR`,\n );\n\n return false;\n }\n throw err;\n }\n}\n\n// Creates PR and returns PR number\nexport async function createPr({\n sourceBranch,\n targetBranch,\n prTitle: title,\n prBody: description,\n draftPR = false,\n platformPrOptions,\n}: CreatePRConfig): Promise<Pr> {\n // labels is not supported in Bitbucket: https://bitbucket.org/site/master/issues/11976/ability-to-add-labels-to-pull-requests-bb\n\n const base = targetBranch;\n\n logger.debug({ repository: config.repository, title, base }, 'Creating PR');\n\n let reviewers: Account[] = [];\n\n if (platformPrOptions?.bbUseDefaultReviewers) {\n const reviewersResponse = (\n await bitbucketHttp.getJsonUnchecked<PagedResult<EffectiveReviewer>>(\n `/2.0/repositories/${config.repository}/effective-default-reviewers`,\n {\n paginate: true,\n cacheProvider: aggressiveRepoCacheProvider,\n },\n )\n ).body;\n reviewers = reviewersResponse.values.map((reviewer: EffectiveReviewer) => ({\n uuid: reviewer.user.uuid,\n display_name: reviewer.user.display_name,\n }));\n }\n\n const body = {\n title,\n description: sanitize(description),\n source: {\n branch: {\n name: sourceBranch,\n },\n },\n destination: {\n branch: {\n name: base,\n },\n },\n close_source_branch: true,\n reviewers,\n draft: draftPR,\n };\n\n try {\n const prRes = (\n await bitbucketHttp.postJson<PrResponse>(\n `/2.0/repositories/${config.repository}/pullrequests`,\n {\n body,\n },\n )\n ).body;\n const pr = utils.prInfo(prRes);\n await BitbucketPrCache.setPr(\n bitbucketHttp,\n config.repository,\n renovateUserUuid,\n pr,\n );\n if (platformPrOptions?.bbAutoResolvePrTasks) {\n await autoResolvePrTasks(pr);\n }\n return pr;\n } catch (err) /* v8 ignore next -- reviewer-sanitizing retry path depends on API error shapes not mocked in specs */ {\n // Try sanitizing reviewers\n const sanitizedReviewers = await sanitizeReviewers(reviewers, err);\n\n if (sanitizedReviewers === undefined) {\n logger.warn({ err }, 'Error creating pull request');\n throw err;\n } else {\n const prRes = (\n await bitbucketHttp.postJson<PrResponse>(\n `/2.0/repositories/${config.repository}/pullrequests`,\n {\n body: {\n ...body,\n reviewers: sanitizedReviewers,\n },\n },\n )\n ).body;\n const pr = utils.prInfo(prRes);\n await BitbucketPrCache.setPr(\n bitbucketHttp,\n config.repository,\n renovateUserUuid,\n pr,\n );\n if (platformPrOptions?.bbAutoResolvePrTasks) {\n await autoResolvePrTasks(pr);\n }\n return pr;\n }\n }\n}\n\nasync function autoResolvePrTasks(pr: Pr): Promise<void> {\n logger.debug(`Auto resolve PR tasks in #${pr.number}`);\n try {\n const unResolvedTasks = (\n await bitbucketHttp.getJson(\n `/2.0/repositories/${config.repository}/pullrequests/${pr.number}/tasks`,\n { paginate: true, pagelen: 100 },\n UnresolvedPrTasks,\n )\n ).body;\n\n logger.trace(\n {\n prId: pr.number,\n listTaskRes: unResolvedTasks,\n },\n 'List PR tasks',\n );\n\n for (const task of unResolvedTasks) {\n const res = await bitbucketHttp.putJson(\n `/2.0/repositories/${config.repository}/pullrequests/${pr.number}/tasks/${task.id}`,\n {\n body: {\n state: 'RESOLVED',\n content: {\n raw: task.content.raw,\n },\n },\n },\n );\n logger.trace(\n {\n prId: pr.number,\n updateTaskResponse: res,\n },\n 'Put PR tasks - mark resolved',\n );\n }\n } catch (err) {\n logger.warn({ prId: pr.number, err }, 'Error resolving PR tasks');\n }\n}\n\nexport async function updatePr({\n number: prNo,\n prTitle: title,\n prBody: description,\n state,\n targetBranch,\n}: UpdatePrConfig): Promise<void> {\n logger.debug(`updatePr(${prNo}, ${title}, body)`);\n // Updating a PR in Bitbucket will clear the reviewers if reviewers is not present\n const pr = (\n await bitbucketHttp.getJsonUnchecked<PrResponse>(\n `/2.0/repositories/${config.repository}/pullrequests/${prNo}`,\n )\n ).body;\n\n let updatedPrRes: PrResponse;\n try {\n const body: any = {\n title,\n description: sanitize(description),\n reviewers: pr.reviewers,\n };\n if (targetBranch) {\n body.destination = {\n branch: {\n name: targetBranch,\n },\n };\n }\n\n updatedPrRes = (\n await bitbucketHttp.putJson<PrResponse>(\n `/2.0/repositories/${config.repository}/pullrequests/${prNo}`,\n { body },\n )\n ).body;\n } catch (err) {\n // Try sanitizing reviewers\n const sanitizedReviewers = await sanitizeReviewers(pr.reviewers, err);\n\n if (sanitizedReviewers === undefined) {\n throw err;\n } else {\n updatedPrRes = (\n await bitbucketHttp.putJson<PrResponse>(\n `/2.0/repositories/${config.repository}/pullrequests/${prNo}`,\n {\n body: {\n title,\n description: sanitize(description),\n reviewers: sanitizedReviewers,\n },\n },\n )\n ).body;\n }\n }\n\n if (state === 'closed' && pr) {\n await bitbucketHttp.postJson(\n `/2.0/repositories/${config.repository}/pullrequests/${prNo}/decline`,\n );\n }\n\n // update pr cache\n await BitbucketPrCache.setPr(\n bitbucketHttp,\n config.repository,\n renovateUserUuid,\n utils.prInfo({ ...updatedPrRes, ...(state && { state }) }),\n );\n}\n\nexport async function mergePr({\n branchName,\n id: prNo,\n strategy: mergeStrategy,\n}: MergePRConfig): Promise<boolean> {\n logger.debug(`mergePr(${prNo}, ${branchName}, ${mergeStrategy})`);\n\n // Bitbucket Cloud does not support a rebase-alike; https://jira.atlassian.com/browse/BCLOUD-16610\n if (mergeStrategy === 'rebase') {\n logger.warn('Bitbucket Cloud does not support a \"rebase\" strategy.');\n return false;\n }\n\n try {\n await bitbucketHttp.postJson(\n `/2.0/repositories/${config.repository}/pullrequests/${prNo}/merge`,\n {\n body: mergeBodyTransformer(mergeStrategy),\n },\n );\n logger.debug('Automerging succeeded');\n } catch (err) /* v8 ignore next -- defensive: merge failures are logged and mapped to false, not simulated in specs */ {\n logger.debug({ err }, `PR merge error`);\n logger.info({ pr: prNo }, 'PR automerge failed');\n return false;\n }\n return true;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DA,MAAa,KAAK;AAElB,MAAM,gBAAgB,IAAI,cAAc;AAExC,MAAM,0BAA0B;AAEhC,IAAI,SAAiB,CAAC;AAEtB,SAAgB,gBAAsB;CACpC,SAAS,CAAC;CACV,mBAAmB;AACrB;AAEA,MAAM,WAAW,EAAE,UAAU,wBAAwB;AAErD,MAAM,gBAAgB;AAEtB,IAAI,mBAAkC;AAEtC,eAAsB,aAAa,EACjC,UACA,UACA,UACA,SAC0C;CAC1C,IAAI,EAAE,YAAY,aAAa,CAAC,OAC9B,MAAM,IAAI,MACR,4EACF;CAEF,IAAI,YAAY,aAAa,yBAAyB;EACpD,OAAO,KACL;GAAE;GAAU,iBAAiB;EAAwB,GACrD,oJACF;EACA,SAAS,WAAW;CACtB;CACA,WAAW,SAAS,QAAQ;CAC5B,mBAAmB;CACnB,MAAM,UAAuB,EAAE,UAAU,MAAM;CAC/C,IAAI,OACF,QAAQ,QAAQ;MACX;EACL,QAAQ,WAAW;EACnB,QAAQ,WAAW;CACrB;CACA,IAAI;EACF,MAAM,EAAE,UACN,MAAM,cAAc,iBAA0B,aAAa,OAAO,EAAA,CAClE;EACF,mBAAmB;CACrB,SAAS,KAAK;EACZ,IACE,IAAI,eAAe,OACnB,IAAI,MAAM,OAAO,QAAQ,UAAU,SAAS,SAAS,GAErD,OAAO,KAAK,iDAAiD;OAE7D,OAAO,MAAM,EAAE,IAAI,GAAG,gDAAgD;CAE1E;CAEA,MAAM,iBAAiC,EACrC,UAAU,YAAY,wBACxB;CACA,OAAO,QAAQ,QAAQ,cAAc;AACvC;AAGA,eAAsB,SAAS,QAA+C;CAC5E,OAAO,MAAM,8CAA8C;CAC3D,IAAI;EAMF,IAAI;EACJ,MAAM,yBAAyB,OAAO;EACtC,IAAI,gBAAgB,sBAAsB,GAAG;GAC3C,OAAO,MACL,EAAE,uBAAuB,GACzB,qDACF;GACA,iBAAiB;EACnB,OAAO;GACL,OAAO,MAAM,oDAAoD;GACjE,MAAM,EAAE,MAAM,UAAU,MAAM,cAAc,QAC1C,wBACA,EAAE,UAAU,KAAK,GACjB,iBACF;GACA,iBAAiB;GACjB,OAAO,MACL,EAAE,eAAe,GACjB,SAAS,eAAe,OAAO,wBACjC;EACF;EAaA,IAAI,SAAQ,MAVaA,IAAa,iBAAiB,cACrD,cACG,QACC,qBAAqB,aACrB,EAAE,UAAU,KAAK,GACjB,YACF,CAAC,CACA,MAAM,EAAE,WAAW,IAAI,CAC5B,EAAA,CAEuB,KAAK;EAG5B,MAAM,uBAAuB,OAAO;EACpC,IAAI,gBAAgB,oBAAoB,GAAG;GACzC,OAAO,MACL,EAAE,sBAAsB,OAAO,SAAS,GACxC,sCACF;GACA,QAAQ,MAAM,QACX,SACC,KAAK,eACL,qBAAqB,KAAK,aAAa,oBAAoB,CAC/D;EACF;EAEA,OAAO,MAAM,KAAK,EAAE,OAAO,WAAW,GAAG,MAAM,GAAG,MAAM;CAC1D,SAAS,8GAA8G;EACrH,OAAO,MAAM,EAAE,IAAI,GAAG,0BAA0B;EAChD,MAAM;CACR;AACF;AAEA,eAAsB,WACpB,UACA,UACA,aACwB;CAExB,MAAM,OAAO,YAAY,OAAO;CAChC,MAAM,OAAO;CAEb,IAAI,mBAAmB;CACvB,IAAI,aAAa,SAAS,aAAa,GAErC,mBAAmB,MAAM,gBAAgB,WAAW;CAGtD,MAAM,MAAM,qBAAqB,KAAK,OAAO,oBAAoB,OAAO,GAAG;CAI3E,QAAO,MAHW,cAAc,QAAQ,KAAK,EAC3C,eAAe,kBACjB,CAAC,EAAA,CACU;AACb;AAEA,eAAsB,YACpB,UACA,UACA,aACc;CAEd,MAAM,MAAM,MAAM,WAAW,UAAU,UAAU,WAAW;CAC5D,OAAO,UAAU,KAAK,QAAQ;AAChC;AAGA,eAAsB,SAAS,EAC7B,YACA,iBACA,yBACkC;CAClC,OAAO,MAAM,aAAa,WAAW,GAAG;CACxC,MAAM,OAAOC,KAAe;EAC1B,UAAU;EACV,KAAK,SAAS;CAChB,CAAC;CACD,SAAS;EACP;EACA,gBAAgB,aAAa,IAAI,gBAAgB;CACnD;CACA,IAAI;CACJ,IAAI;CACJ,IAAI;EACF,MAAM,EAAE,MAAM,aAAa,MAAM,cAAc,QAC7C,qBAAqB,cACrB,QACF;EACA,OAAO;EAEP,aAAa,KAAK;EAElB,IAAI,qBAAqB,wBAAwB,GAAG;GAClD,OAAO,MACL,0EACF;GACA,MAAM,qBACJ,MAAM,cAAc,iBAClB,qBAAqB,WAAW,2BAClC,EAAA,CACA,KAAK,aAAa;GAEpB,IAAI,mBAAmB;IACrB,aAAa;IACb,OAAO,MACL,GAAG,kBAAkB,gEACvB;GACF;EACF;EAEA,OAAO,gBAAgB;EAEvB,SAAS;GACP,GAAG;GACH,OAAO,KAAK;GACZ,aAAa,KAAK;GAClB,YAAY,KAAK;EACnB;EAEA,OAAO,MAAM,GAAG,WAAW,WAAW,OAAO,OAAO;CACtD,SAAS,8FAA8F;EACrG,IAAI,IAAI,eAAe,KACrB,MAAM,IAAI,MAAM,oBAAoB;EAEtC,OAAO,MAAM,EAAE,IAAI,GAAG,kCAAkC;EACxD,MAAM;CACR;CAEA,MAAM,iBAAiB,SAAS,SAAS,QAAQ;;CAEjD,IAAI,CAAC,gBACH,MAAM,IAAI,MAAM,+BAA+B,SAAS,UAAU;CAEpE,MAAM,EAAE,aAAa;CAMrB,MAAM,2BAA2B,MAAM,cAAc,CAAC,CAAC,KAAK,QAAQ,CAAC,GAAG;CAExE,IAAI,OAAO;CACX,IAAI,KAAK,OACP,OAAO,gBAAgB,KAAK;MACvB,IAAI,KAAK,UAAU,WAAW,MAAM,GACzC,OAAO,8BAA8B,KAAK;MAE1C,OAAO,GAAG,KAAK,SAAU,GAAG,KAAK;CAGnC,MAAM,MAAMC,OAAW;EACrB,UAAU;EACV;EACA,UAAU;EACV;CACF,CAAC;CAED,MAAMC,WAAa;EACjB,GAAG;EACH;EACA;EACA;CACF,CAAC;CAMD,OAAO;EAJL,eAAe;EACf,QAAQ,KAAK;EACb,iBAAiB,gBAAgB,KAAK,MAAM,SAAS,QAAQ;CAE/C;AAClB;;AAGA,SAAS,aAAa,OAAe,cAA+B;CAClE,IAAI,iBAAiB,OACnB,OAAO;CAET,IAAI,aAAa,WAAW,GAAG,GAC7B,OAAO,UAAU,aAAa,UAAU,CAAC;CAE3C,OAAO,UAAU;AACnB;AAEA,eAAsB,YAA2B;CAC/C,OAAO,MAAM,aAAa;CAC1B,OAAO,MAAM,iBAAiB,OAC5B,eACA,OAAO,YACP,gBACF;AACF;AAEA,eAAsB,OAAO,EAC3B,YACA,SACA,QAAQ,OACR,uBACmC;CACnC,OAAO,MAAM,UAAU,WAAW,IAAI,QAAQ,IAAI,MAAM,EAAE;CAE1D,IAAI,qBAAqB;EAEvB,MAAM,OACJ,MAAM,cAAc,iBAClB,qBAAqB,OAAO,WAAW,sCAAsC,WAAW,eACxF,EAAE,eAAe,iBAAiB,CACpC,EAAA,CACA,KAAK;EAEP,IAAI,IAAI,WAAW,GAAG;GACpB,OAAO,MAAM,0BAA0B,YAAY;GACnD,OAAO;EACT;EAEA,OAAOC,OAAa,IAAI,EAAE;CAC5B;CAGA,MAAM,MAAK,MADU,UAAU,EAAA,CACb,MACf,MACC,EAAE,iBAAiB,eAClB,CAAC,WAAW,EAAE,MAAM,YAAY,MAAM,QAAQ,YAAY,MAC3D,aAAa,EAAE,OAAO,KAAK,CAC/B;CAEA,IAAI,CAAC,IACH,OAAO;CAET,OAAO,MAAM,aAAa,GAAG,QAAQ;;;;;CAMrC,IAAI,GAAG,UAAU,UAAU;EACzB,MAAMC,mBAAiB,MAAMC,eAAwB,QAAQ,GAAG,MAAM;EAEtE,IAAI,gBAAgBD,gBAAc,GAAG;GACnC,IAAI,OAAO,YAAY;IAErB,OAAO,MACL,UAAUE,0BAAmC,2DAA2D,GAAG,OAAO,aACpH;IACA,OAAO;GACT;GAEA,KAAK,MAAM,WAAWF,kBACpB,IAAI,MAAM,2BAA2B,QAAQ,MAAM,OAAO,UAAU,GAAG;IACrE,OAAO,MACL,UAAUE,0BAAmC,2DAA2D,GAAG,OAAO,aACpH;IACA,OAAO;GACT;EAEJ;CACF;CAEA,OAAO;AACT;AAGA,eAAsB,MAAM,MAAkC;CAC5D,MAAM,MACJ,MAAM,cAAc,iBAClB,qBAAqB,OAAO,WAAW,gBAAgB,QACvD,EAAE,eAAe,4BAA4B,CAC/C,EAAA,CACA;;CAGF,IAAI,CAAC,IACH,OAAO;CAGT,MAAM,MAAU,EACd,GAAGH,OAAa,EAAE,EACpB;CAEA,IAAI,gBAAgB,GAAG,SAAS,GAC9B,IAAI,YAAY,GAAG,UAChB,KAAK,EAAE,WAAW,IAAI,CAAC,CACvB,OAAO,gBAAgB;CAG5B,OAAO;AACT;AAEA,SAAS,WAAW,OAAuB;CACzC,OAAO,OAAO,QAAQ,MAAM,IAAI,GAAG,KAAK;AAC1C;AAGA,eAAe,gBACb,YAC6B;CAC7B,IAAI;EASF,QAPE,MAAM,cAAc,iBAClB,qBAAqB,OAAO,WAAW,iBAAiB,WACtD,UACF,KACA,EAAE,eAAe,4BAA4B,CAC/C,EAAA,CACA,KACY,OAAO;CACvB,SAAS,8GAA8G;EACrH,OAAO,MAAM,EAAE,IAAI,GAAG,oBAAoB,WAAW,WAAW;EAChE;CACF;AACF;AAGA,eAAsB,YAAY,YAAwC;CACxE,OAAO,MAAM,eAAe,WAAW,EAAE;CACzC,MAAM,aAAa,MAAM,OAAO;EAC9B;EACA,OAAO;CACT,CAAC;CACD,OAAO,aAAa,MAAM,WAAW,MAAM,IAAI;AACjD;AAEA,eAAe,UACb,YACA,WAAW,MACiB;CAC5B,MAAM,MAAM,MAAM,gBAAgB,UAAU;CAC5C,MAAM,OAA6B,EAAE,UAAU,KAAK;;CAEpD,IAAI,UACF,KAAK,gBAAgB;MAErB,KAAK,WAAW;CAElB,QACE,MAAM,cAAc,iBAClB,qBAAqB,OAAO,WAAW,UAAU,IAAK,YACtD,IACF,EAAA,CACA,KAAK;AACT;AAEA,eAAsB,gBACpB,YACA,yBACuB;CACvB,OAAO,MAAM,mBAAmB,WAAW,EAAE;CAC7C,MAAM,WAAW,MAAM,UAAU,UAAU;CAC3C,OAAO,MAAM;EAAE,QAAQ;EAAY;CAAS,GAAG,4BAA4B;CAC3E,IAAI,CAAC,SAAS,QAAQ;EACpB,OAAO,MAAM,0DAAwD;EACrE,OAAO;CACT;CAKA,IAJqB,SAAS,QAC3B,WACC,OAAO,UAAU,YAAY,OAAO,UAAU,SAClD,CAAC,CAAC,QAEA,OAAO;CAKT,IAHoB,SAAS,QAC1B,WAA8B,OAAO,UAAU,YAClD,CAAC,CAAC,QAEA,OAAO;CAET,IACE,CAAC,2BACD,SAAS,OACN,WACC,OAAO,UAAU,gBAAgB,OAAO,KAAK,WAAW,WAAW,CACvE,GACA;EACA,OAAO,MACL,6FACF;EACA,OAAO;CACT;CACA,OAAO;AACT;AAEA,MAAM,4BAA0D;CAC9D,YAAY;CACZ,YAAY;CACZ,QAAQ;AACV;AAEA,eAAsB,qBACpB,YACA,SAC8B;CAE9B,MAAM,WAAU,MADO,UAAU,UAAU,EAAA,CAClB,MAAM,WAAW,OAAO,QAAQ,OAAO,CAAC,EAAE;CAEnE,OAAO,0BAA0B,YAAa;AAChD;AAEA,eAAsB,gBAAgB,EACpC,YACA,SACA,aACA,OACA,KAAK,aAC+B;CACpC,MAAM,MAAM,MAAM,gBAAgB,UAAU;;CAI5C,MAAM,MAAM,aAAa;CAEzB,MAAM,OAAO;EACX,MAAM;EACN,OAAOI,YAAkB;EACzB,KAAK;EACL;EACA;CACF;CAEA,MAAM,cAAc,SAClB,qBAAqB,OAAO,WAAW,UAAU,IAAI,kBACrD,EAAE,KAAK,CACT;CAGA,MAAM,oBAAoB,cACvB,WAAW,qBAAqB,OAAO,WAAW,UAAU,IAAI,UAAU,CAAC,CAC3E,SAAS;CACZ,4BAA4B,WAAW,OAAO,mBAAmB,KAAK;AACxE;;;;;;AAOA,SAAgB,gBAAgB,OAAuB;CACrD,IAAI,WAAW,cAAc,OAAO,cAAc,CAAC,CAAC,CACjD,QACC,sCACA,+CACF,CAAC,CACA,QACC,uCACA,2CACF,CAAC,CACA,QACC,MACE,yFACF,GACA,IACF,CAAC,CACA,QAAQ,MAAM,wCAAwC,GAAG,EAAE,CAAC,CAC5D,QAAQ,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,CACxD,QAAQ,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,CAC7D,QAAQ,MAAM,4CAA4C,GAAG,EAAE;CAElE,WAAW,sCAAsC,QAAQ;CAEzD,OAAO,yBAAyB,QAAQ;AAC1C;;;;AAKA,SAAS,yBAAyB,MAAsB;CACtD,MAAM,iBAAiB,MACrB,yEACF;CACA,IAAI;CACJ,IAAI,SAAS;CAEb,QAAQ,YAAY,eAAe,KAAK,IAAI,OAAO,MAAM;EACvD,MAAM,EAAE,QAAQ,MAAM,SAAS,UAAU;EACzC,MAAM,eAAe,OAAO;EAQ5B,MAAM,cAAc,SAAS,KAAK,IAPpB,KAAK,MAAM,IACA,CAAC,CAAC,KAAK,SAE9B,KAAK,MAAM,YAAY,CAGE,CAAC,CAAC,KAAK,IACU,EAAE;EAE9C,SAAS,OAAO,QAAQ,UAAU,IAAI,WAAW;CACnD;CAEA,OAAO;AACT;;;;;;AAOA,SAAS,sCAAsC,MAAsB;CACnE,IAAI,QAAQ;CAaZ,OAXqB,KAAK,MAAM,WAAW,CAAC,CAAC,KAAK,QAAQ;EACxD,MAAM,YAAY;EAElB,SAAS;EACT,MAAM,0BAA0B,IAAI,MAAM,YAAY,CAAC,CAAC,SAAS;EACjE,QAAQ,KAAK,IAAI,GAAG,QAAQ,uBAAuB;EAEnD,OAAO;GAAE;GAAK;EAAU;CAC1B,CAGkB,CAAC,CAChB,KAAK,EAAE,KAAK,gBAAgB;EAC3B,IAAI,IAAI;EAER,IAAI,cAAc,GAChB,OAAO;EAGT,MAAM,kBAAkB,IAAK,OAAO,YAAY,CAAC;EACjD,MAAM,4BAA4B,IAAK,OAAO,SAAS;EAEvD,MAAM,wBAAwB,IAAI,SAAS,cAAc;EAEzD,IAAI,EAAE,QAAQ,MAAM,eAAe,GAAG,cAAc,IAAI,OAAO,GAAG;EAElE,IAAI,YAAY,GACd,IAAI,EAAE,QACJ,MAAM,mBAAmB,GACzB,GAAG,0BAA0B,GAC/B;EAGF,IAAI,SAAS;EACb,IAAI,yBAAyB,YAAY,GACvC,UAAU;EAEZ,UAAU;EAEV,OAAO;CACT,CAAC,CAAC,CACD,KAAK,EAAE,CAAC,CACR,QAAQ,MAAM,oCAAoC,GAAG,EAAE;AAC5D;AAEA,SAAgB,gBAAwB;CACtC,OAAO;AACT;AAEA,SAAS,mBAAyB;CAChC,OAAO,KAAK,MACV,kNACF;AACF;AAEA,SAAgB,UAAU,OAAsC;CAC9D,OAAO,MAAM,aAAa,MAAM,EAAE;CAClC,iBAAiB;CACjB,OAAO,QAAQ,QAAQ,IAAI;AAC7B;AAEA,SAAgB,YAAY,EAC1B,SACuD;CACvD,OAAO,KAAK,KAAK,EAAE,MAAM,GAAG,qBAAqB;CACjD,iBAAiB;CACjB,OAAO,QAAQ,QAAQ,IAAI;AAC7B;AAEA,SAAgB,eAAiC;CAC/C,OAAO,MAAM,gBAAgB;CAC7B,iBAAiB;CACjB,OAAO,QAAQ,QAAQ,CAAC,CAAC;AAC3B;AAEA,SAAgB,mBAAmB,OAA8B;CAC/D,OAAO,MAAM,sBAAsB,MAAM,EAAE;CAC3C,iBAAiB;CACjB,OAAO,QAAQ,QAAQ;AACzB;AAEA,SAAgB,aACd,OACA,YACe;CAEf,OAAO,KAAK,sBAAsB;CAClC,OAAO,QAAQ,QAAQ;AACzB;AAEA,eAAsB,aACpB,MACA,WACe;CACf,OAAO,MAAM,qBAAqB,UAAU,KAAK,IAAI,EAAE,QAAQ,MAAM;CAGrE,MAAM,EAAE,UAAW,MAAM,MAAM,IAAI;CAEnC,MAAM,OAAO;EACX;EACA,WAAW,UAAU,KAAK,aAAqB;GAM7C,OAAO,GAJL,SAAS,WAAW,GAAG,KACvB,SAAS,SAAS,GAAG,KACrB,UAAU,KAAK,SAAS,MAAM,GAAG,EAAE,CAAC,IACjB,SAAS,aAErB,SACT;EACF,CAAC;CACH;CAEA,MAAM,cAAc,QAClB,qBAAqB,OAAO,WAAW,gBAAgB,QACvD,EACE,KACF,CACF;AACF;;AAGA,SAAgB,cAAqB;CACnC,MAAM,IAAI,MAAM,6BAA6B;AAC/C;AAEA,SAAgB,cAAc,EAC5B,QACA,OACA,WACwC;CAExC,OAAOC,gBAAuB;EAC5B;EACA;EACA;EACA,SAAS,SAAS,OAAO;CAC3B,CAAC;AACH;AAEA,SAAgB,qBACd,cACe;CACf,OAAOC,uBAA8B,QAAQ,YAAY;AAC3D;AAEA,eAAe,kBACb,WACA,KACgC;CAChC,IAAI,IAAI,eAAe,OAAO,IAAI,MAAM,OAAO,QAAQ,WAAW;EAChE,MAAM,qBAAgC,CAAC;EAEvC,MAAM,0BACJ;EACF,MAAM,+BAA+B;EACrC,MAAM,2BACJ;EAEF,KAAK,MAAM,OAAO,IAAI,KAAK,MAAM,OAAO,WAEtC,IAAI,QAAQ,8BAA8B;GACxC,OAAO,MACL,EAAE,IAAI,GACN,mIACF;GAGA,KAAK,MAAM,YAAY,WASrB,KAPE,MAAM,cAAc,iBAClB,cAAc,SAAS,QACvB,EAAE,eAAe,4BAA4B,CAC/C,EAAA,CACA,KAIa,mBAAmB,YAC/B,MAAM,2BAA2B,UAAU,OAAO,UAAU,GAE7D,mBAAmB,KAAK,QAAQ;EAItC,OAAO,IAAI,IAAI,SAAS,wBAAwB,GAAG;GACjD,OAAO,MACL,EAAE,IAAI,GACN,oHACF;GAGA,KAAK,MAAM,YAAY,WACrB,IAAI,MAAM,2BAA2B,UAAU,OAAO,UAAU,GAC9D,mBAAmB,KAAK,QAAQ;EAGtC,OAAO,IAAI,IAAI,SAAS,uBAAuB,GAAG;GAChD,OAAO,MACL,EAAE,IAAI,GACN,qGACF;GACA,MAAM,SAAS,IAAI,QAAQ,yBAAyB,EAAE,CAAC,CAAC,KAAK;GAC7D,KAAK,MAAM,YAAY,WACrB,IAAI,SAAS,iBAAiB,QAC5B,mBAAmB,KAAK,QAAQ;EAGtC,OACE;EAIJ,OAAO;CACT;AAGF;AAEA,eAAe,2BACb,UACA,YACkB;CAClB,MAAM,YAAY,WAAW,MAAM,GAAG,CAAC,CAAC;CAExC,IAAI;EACF,MAAM,cAAc,IAClB,mBAAmB,UAAU,WAAW,SAAS,QACjD,EAAE,eAAe,4BAA4B,CAC/C;EAEA,OAAO;CACT,SAAS,KAAK;EAEZ,IAAI,IAAI,eAAe,KAAK;GAC1B,OAAO,MACL,EAAE,IAAI,GACN,QAAQ,SAAS,aAAa,oCAAoC,UAAU,8BAC9E;GAEA,OAAO;EACT;EACA,MAAM;CACR;AACF;AAGA,eAAsB,SAAS,EAC7B,cACA,cACA,SAAS,OACT,QAAQ,aACR,UAAU,OACV,qBAC8B;CAG9B,MAAM,OAAO;CAEb,OAAO,MAAM;EAAE,YAAY,OAAO;EAAY;EAAO;CAAK,GAAG,aAAa;CAE1E,IAAI,YAAuB,CAAC;CAE5B,IAAI,mBAAmB,uBAUrB,aARE,MAAM,cAAc,iBAClB,qBAAqB,OAAO,WAAW,+BACvC;EACE,UAAU;EACV,eAAe;CACjB,CACF,EAAA,CACA,KAC4B,OAAO,KAAK,cAAiC;EACzE,MAAM,SAAS,KAAK;EACpB,cAAc,SAAS,KAAK;CAC9B,EAAE;CAGJ,MAAM,OAAO;EACX;EACA,aAAa,SAAS,WAAW;EACjC,QAAQ,EACN,QAAQ,EACN,MAAM,aACR,EACF;EACA,aAAa,EACX,QAAQ,EACN,MAAM,KACR,EACF;EACA,qBAAqB;EACrB;EACA,OAAO;CACT;CAEA,IAAI;EACF,MAAM,SACJ,MAAM,cAAc,SAClB,qBAAqB,OAAO,WAAW,gBACvC,EACE,KACF,CACF,EAAA,CACA;EACF,MAAM,KAAKN,OAAa,KAAK;EAC7B,MAAM,iBAAiB,MACrB,eACA,OAAO,YACP,kBACA,EACF;EACA,IAAI,mBAAmB,sBACrB,MAAM,mBAAmB,EAAE;EAE7B,OAAO;CACT,SAAS,4GAA4G;EAEnH,MAAM,qBAAqB,MAAM,kBAAkB,WAAW,GAAG;EAEjE,IAAI,uBAAuB,KAAA,GAAW;GACpC,OAAO,KAAK,EAAE,IAAI,GAAG,6BAA6B;GAClD,MAAM;EACR,OAAO;GACL,MAAM,SACJ,MAAM,cAAc,SAClB,qBAAqB,OAAO,WAAW,gBACvC,EACE,MAAM;IACJ,GAAG;IACH,WAAW;GACb,EACF,CACF,EAAA,CACA;GACF,MAAM,KAAKA,OAAa,KAAK;GAC7B,MAAM,iBAAiB,MACrB,eACA,OAAO,YACP,kBACA,EACF;GACA,IAAI,mBAAmB,sBACrB,MAAM,mBAAmB,EAAE;GAE7B,OAAO;EACT;CACF;AACF;AAEA,eAAe,mBAAmB,IAAuB;CACvD,OAAO,MAAM,6BAA6B,GAAG,QAAQ;CACrD,IAAI;EACF,MAAM,mBACJ,MAAM,cAAc,QAClB,qBAAqB,OAAO,WAAW,gBAAgB,GAAG,OAAO,SACjE;GAAE,UAAU;GAAM,SAAS;EAAI,GAC/B,iBACF,EAAA,CACA;EAEF,OAAO,MACL;GACE,MAAM,GAAG;GACT,aAAa;EACf,GACA,eACF;EAEA,KAAK,MAAM,QAAQ,iBAAiB;GAClC,MAAM,MAAM,MAAM,cAAc,QAC9B,qBAAqB,OAAO,WAAW,gBAAgB,GAAG,OAAO,SAAS,KAAK,MAC/E,EACE,MAAM;IACJ,OAAO;IACP,SAAS,EACP,KAAK,KAAK,QAAQ,IACpB;GACF,EACF,CACF;GACA,OAAO,MACL;IACE,MAAM,GAAG;IACT,oBAAoB;GACtB,GACA,8BACF;EACF;CACF,SAAS,KAAK;EACZ,OAAO,KAAK;GAAE,MAAM,GAAG;GAAQ;EAAI,GAAG,0BAA0B;CAClE;AACF;AAEA,eAAsB,SAAS,EAC7B,QAAQ,MACR,SAAS,OACT,QAAQ,aACR,OACA,gBACgC;CAChC,OAAO,MAAM,YAAY,KAAK,IAAI,MAAM,QAAQ;CAEhD,MAAM,MACJ,MAAM,cAAc,iBAClB,qBAAqB,OAAO,WAAW,gBAAgB,MACzD,EAAA,CACA;CAEF,IAAI;CACJ,IAAI;EACF,MAAM,OAAY;GAChB;GACA,aAAa,SAAS,WAAW;GACjC,WAAW,GAAG;EAChB;EACA,IAAI,cACF,KAAK,cAAc,EACjB,QAAQ,EACN,MAAM,aACR,EACF;EAGF,gBACE,MAAM,cAAc,QAClB,qBAAqB,OAAO,WAAW,gBAAgB,QACvD,EAAE,KAAK,CACT,EAAA,CACA;CACJ,SAAS,KAAK;EAEZ,MAAM,qBAAqB,MAAM,kBAAkB,GAAG,WAAW,GAAG;EAEpE,IAAI,uBAAuB,KAAA,GACzB,MAAM;OAEN,gBACE,MAAM,cAAc,QAClB,qBAAqB,OAAO,WAAW,gBAAgB,QACvD,EACE,MAAM;GACJ;GACA,aAAa,SAAS,WAAW;GACjC,WAAW;EACb,EACF,CACF,EAAA,CACA;CAEN;CAEA,IAAI,UAAU,YAAY,IACxB,MAAM,cAAc,SAClB,qBAAqB,OAAO,WAAW,gBAAgB,KAAK,SAC9D;CAIF,MAAM,iBAAiB,MACrB,eACA,OAAO,YACP,kBACAA,OAAa;EAAE,GAAG;EAAc,GAAI,SAAS,EAAE,MAAM;CAAG,CAAC,CAC3D;AACF;AAEA,eAAsB,QAAQ,EAC5B,YACA,IAAI,MACJ,UAAU,iBACwB;CAClC,OAAO,MAAM,WAAW,KAAK,IAAI,WAAW,IAAI,cAAc,EAAE;CAGhE,IAAI,kBAAkB,UAAU;EAC9B,OAAO,KAAK,yDAAuD;EACnE,OAAO;CACT;CAEA,IAAI;EACF,MAAM,cAAc,SAClB,qBAAqB,OAAO,WAAW,gBAAgB,KAAK,SAC5D,EACE,MAAM,qBAAqB,aAAa,EAC1C,CACF;EACA,OAAO,MAAM,uBAAuB;CACtC,SAAS,8GAA8G;EACrH,OAAO,MAAM,EAAE,IAAI,GAAG,gBAAgB;EACtC,OAAO,KAAK,EAAE,IAAI,KAAK,GAAG,qBAAqB;EAC/C,OAAO;CACT;CACA,OAAO;AACT"}
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.57.3",
4
+ "version": "44.58.0",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "renovate": "dist/renovate.js",
@@ -214,7 +214,7 @@
214
214
  "re2": "1.26.1"
215
215
  },
216
216
  "devDependencies": {
217
- "@biomejs/biome": "2.5.9",
217
+ "@biomejs/biome": "2.5.10",
218
218
  "@commander-js/extra-typings": "14.0.0",
219
219
  "@containerbase/istanbul-reports-html": "2.0.17",
220
220
  "@containerbase/semantic-release-pnpm": "1.4.3",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$id": "https://docs.renovatebot.com/renovate-schema.json",
3
- "title": "JSON schema for Renovate 44.57.3 config files (https://renovatebot.com/)",
3
+ "title": "JSON schema for Renovate 44.58.0 config files (https://renovatebot.com/)",
4
4
  "$schema": "http://json-schema.org/draft-07/schema#",
5
- "x-renovate-version": "44.57.3",
5
+ "x-renovate-version": "44.58.0",
6
6
  "allowComments": true,
7
7
  "type": "object",
8
8
  "definitions": {