version: 2
updates:
  # npm dependencies
  - package-ecosystem: npm
    directory: "/"
    schedule:
      interval: weekly
      day: monday
      time: "06:00"
      timezone: Europe/London
    open-pull-requests-limit: 10
    labels: ["dependencies"]
    groups:
      # Coupled peer pairs must upgrade together or npm hits ERESOLVE.
      # Listed first so they take precedence over the type-based groups
      # below, and intentionally unrestricted on update-types so majors
      # (e.g. eslint 9->10) bump alongside their peers in one PR.
      eslint:
        patterns: ["eslint", "@eslint/*"]
      vitest:
        patterns: ["vitest", "@vitest/*"]
      dev-dependencies:
        dependency-type: development
        update-types: ["minor", "patch"]
      production-dependencies:
        dependency-type: production
        update-types: ["minor", "patch"]
    commit-message:
      prefix: "chore(deps)"
      prefix-development: "chore(dev-deps)"

  # GitHub Actions used in workflows
  - package-ecosystem: github-actions
    directory: "/"
    schedule:
      interval: weekly
      day: monday
      time: "06:00"
      timezone: Europe/London
    labels: ["ci", "dependencies"]
    commit-message:
      prefix: "ci(actions)"
