# GENERATED BY: test/outdated/outdated_test.dart

## Section 0
$ pub outdated --json
{
  "packages": []
}

-------------------------------- END OF OUTPUT ---------------------------------

## Section 1
$ pub outdated --no-color
Showing outdated packages.
[*] indicates versions that are not the latest available.

Found no outdated packages

-------------------------------- END OF OUTPUT ---------------------------------

## Section 2
$ pub outdated --no-color --no-transitive
Showing outdated packages.
[*] indicates versions that are not the latest available.

Found no outdated packages

-------------------------------- END OF OUTPUT ---------------------------------

## Section 3
$ pub outdated --no-color --up-to-date
Showing outdated packages.
[*] indicates versions that are not the latest available.

Package Name   Current  Upgradable  Resolvable  Latest  

direct dependencies:
foo            2.0.0    2.0.0       2.0.0       2.0.0   

dev_dependencies:
bar            2.0.0    2.0.0       2.0.0       2.0.0   

transitive dev_dependencies:
devTransitive  1.0.0    1.0.0       1.0.0       1.0.0   
You are already using the newest resolvable versions listed in the 'Resolvable' column.
Newer versions, listed in 'Latest', may not be mutually compatible.

-------------------------------- END OF OUTPUT ---------------------------------

## Section 4
$ pub outdated --no-color --prereleases
Showing outdated packages.
[*] indicates versions that are not the latest available.

Found no outdated packages

-------------------------------- END OF OUTPUT ---------------------------------

## Section 5
$ pub outdated --no-color --no-dev-dependencies
Showing outdated packages.
[*] indicates versions that are not the latest available.

Found no outdated packages

-------------------------------- END OF OUTPUT ---------------------------------

## Section 6
$ pub outdated --no-color --no-dependency-overrides
Showing outdated packages.
[*] indicates versions that are not the latest available.

Found no outdated packages

-------------------------------- END OF OUTPUT ---------------------------------

## Section 7
$ pub outdated --no-color --mode=null-safety
Showing dependencies that are currently not opted in to null-safety.
[✗] indicates versions without null safety support.
[✓] indicates versions opting in to null safety.

Package Name  Current  Upgradable  Resolvable  Latest  

direct dependencies: all support null safety.

dev_dependencies: all support null safety.
All dependencies opt in to null-safety.

-------------------------------- END OF OUTPUT ---------------------------------

## Section 8
$ pub outdated --no-color --mode=null-safety --transitive
Showing dependencies that are currently not opted in to null-safety.
[✗] indicates versions without null safety support.
[✓] indicates versions opting in to null safety.

Package Name   Current  Upgradable  Resolvable  Latest  

direct dependencies: all support null safety.

dev_dependencies: all support null safety.

transitive dev_dependencies:
devTransitive  ✗1.0.0   ✗1.0.0      ✗1.0.0      ✗1.0.0  
All dependencies opt in to null-safety.

-------------------------------- END OF OUTPUT ---------------------------------

## Section 9
$ pub outdated --no-color --mode=null-safety --no-prereleases
Showing dependencies that are currently not opted in to null-safety.
[✗] indicates versions without null safety support.
[✓] indicates versions opting in to null safety.

Package Name  Current  Upgradable  Resolvable  Latest  

direct dependencies: all support null safety.

dev_dependencies: all support null safety.
All dependencies opt in to null-safety.

-------------------------------- END OF OUTPUT ---------------------------------

## Section 10
$ pub outdated --json --mode=null-safety
{
  "packages": [
    {
      "package": "devTransitive",
      "current": {
        "version": "1.0.0",
        "nullSafety": false
      },
      "upgradable": {
        "version": "1.0.0",
        "nullSafety": false
      },
      "resolvable": {
        "version": "1.0.0",
        "nullSafety": false
      },
      "latest": {
        "version": "1.0.0",
        "nullSafety": false
      }
    }
  ]
}

-------------------------------- END OF OUTPUT ---------------------------------

## Section 11
$ pub outdated --json --no-dev-dependencies
{
  "packages": []
}

