{
  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
  "extends": ["config:base", "docker:pinDigests"],
  "minimumReleaseAge": "5 days",
  "packageRules": [
    {
      "matchFileNames": [
        "cli/**",
        "docs/**",
        "e2e/**",
        "open-api/**",
        "server/**",
        "web/**"
      ],
      "groupName": "typescript-projects",
      "matchUpdateTypes": ["minor", "patch"],
      "excludePackagePrefixes": ["exiftool", "reflect-metadata"],
      "excludePackageNames": ["node", "@types/node", "@mapbox/mapbox-gl-rtl-text"],
      "schedule": "on tuesday"
    },
    {
      "matchFileNames": ["machine-learning/**"],
      "groupName": "machine-learning",
      "rangeStrategy": "in-range-only",
      "schedule": "on tuesday"
    },
    {
      "matchFileNames": ["mobile/**"],
      "groupName": "mobile",
      "matchUpdateTypes": ["minor", "patch"],
      "schedule": "on tuesday",
      "addLabels": ["📱mobile"]
    },
    {
      "groupName": "flutter",
      "matchPackagePatterns": ["flutter"],
      "schedule": "on tuesday"
    },
    {
      "groupName": "exiftool",
      "matchPackagePrefixes": ["exiftool"],
      "schedule": "on tuesday"
    },
    {
      "groupName": "svelte",
      "matchUpdateTypes": ["major"],
      "matchPackagePrefixes": ["@sveltejs"],
      "schedule": "on tuesday"
    },
    {
      "matchFileNames": [".github/**"],
      "groupName": "github-actions",
      "schedule": "on tuesday"
    },
    {
      "groupName": "base-image",
      "matchPackagePrefixes": ["ghcr.io/immich-app/base-server"],
      "minimumReleaseAge": "0"
    },
    {
      "matchDatasources": ["npm"],
      "rangeStrategy": "bump",
      "groupName": "node",
      "versioning": "node",
      "matchPackageNames": ["node", "@types/node"],
      "schedule": "on tuesday"
    },
    {
      "groupName": "node",
      "matchDatasources": ["docker"],
      "matchPackageNames": ["node"],
      "versionCompatibility": "^(?<version>[^-]+)(?<compatibility>-.*)?$",
      "versioning": "node",
      "schedule": "on tuesday"
    },
    {
      "packageNames": ["com.google.guava:guava"],
      "versionScheme": "docker",
      "schedule": "on tuesday"
    }
  ],
  "ignorePaths": [
    "mobile/openapi/pubspec.yaml",
    "mobile/ios",
    "mobile/android"
  ],
  "ignoreDeps": ["http", "intl"],
  "labels": ["dependencies", "changelog:skip"]
}