# GENERATED BY: test/outdated/outdated_test.dart

## Section 0
$ pub outdated --json
{
  "packages": [
    {
      "package": "bar",
      "current": {
        "version": "1.0.1",
        "overridden": true
      },
      "upgradable": {
        "version": "1.0.1",
        "overridden": true
      },
      "resolvable": {
        "version": "1.0.1",
        "overridden": true
      },
      "latest": {
        "version": "2.0.0"
      }
    },
    {
      "package": "baz",
      "current": {
        "version": "2.0.0",
        "overridden": true
      },
      "upgradable": {
        "version": "2.0.0",
        "overridden": true
      },
      "resolvable": {
        "version": "2.0.0",
        "overridden": true
      },
      "latest": {
        "version": "2.0.0"
      }
    },
    {
      "package": "foo",
      "current": {
        "version": "1.0.1",
        "overridden": true
      },
      "upgradable": {
        "version": "1.0.1",
        "overridden": true
      },
      "resolvable": {
        "version": "1.0.1",
        "overridden": true
      },
      "latest": {
        "version": "2.0.0"
      }
    }
  ]
}

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

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

Package Name  Current              Upgradable           Resolvable           Latest  

direct dependencies:
bar           *1.0.1 (overridden)  *1.0.1 (overridden)  *1.0.1 (overridden)  2.0.0   
baz           *2.0.0 (overridden)  *2.0.0 (overridden)  *2.0.0 (overridden)  2.0.0   
foo           *1.0.1 (overridden)  *1.0.1 (overridden)  *1.0.1 (overridden)  2.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 2
$ pub outdated --no-color --no-transitive
Showing outdated packages.
[*] indicates versions that are not the latest available.

Package Name  Current              Upgradable           Resolvable           Latest  

direct dependencies:
bar           *1.0.1 (overridden)  *1.0.1 (overridden)  *1.0.1 (overridden)  2.0.0   
baz           *2.0.0 (overridden)  *2.0.0 (overridden)  *2.0.0 (overridden)  2.0.0   
foo           *1.0.1 (overridden)  *1.0.1 (overridden)  *1.0.1 (overridden)  2.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 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:
bar           *1.0.1 (overridden)  *1.0.1 (overridden)  *1.0.1 (overridden)  2.0.0   
baz           *2.0.0 (overridden)  *2.0.0 (overridden)  *2.0.0 (overridden)  2.0.0   
foo           *1.0.1 (overridden)  *1.0.1 (overridden)  *1.0.1 (overridden)  2.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.

Package Name  Current              Upgradable           Resolvable           Latest  

direct dependencies:
bar           *1.0.1 (overridden)  *1.0.1 (overridden)  *1.0.1 (overridden)  2.0.0   
baz           *2.0.0 (overridden)  *2.0.0 (overridden)  *2.0.0 (overridden)  2.0.0   
foo           *1.0.1 (overridden)  *1.0.1 (overridden)  *1.0.1 (overridden)  2.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 5
$ pub outdated --no-color --no-dev-dependencies
Showing outdated packages.
[*] indicates versions that are not the latest available.

Package Name  Current              Upgradable           Resolvable           Latest  

direct dependencies:
bar           *1.0.1 (overridden)  *1.0.1 (overridden)  *1.0.1 (overridden)  2.0.0   
baz           *2.0.0 (overridden)  *2.0.0 (overridden)  *2.0.0 (overridden)  2.0.0   
foo           *1.0.1 (overridden)  *1.0.1 (overridden)  *1.0.1 (overridden)  2.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 6
$ pub outdated --no-color --no-dependency-overrides
Showing outdated packages.
[*] indicates versions that are not the latest available.

Package Name  Current              Upgradable  Resolvable  Latest  

direct dependencies:
bar           *1.0.1 (overridden)  2.0.0       2.0.0       2.0.0   
baz           *2.0.0 (overridden)  *1.0.0      2.0.0       2.0.0   
foo           *1.0.1 (overridden)  *1.0.0      *1.0.0      2.0.0   

3 upgradable dependencies are locked (in pubspec.lock) to older versions.
To update these dependencies, use `dart pub upgrade`.

1 dependency is constrained to a version that is older than a resolvable version.
To update it, edit pubspec.yaml, or run `dart pub upgrade --major-versions`.

-------------------------------- 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:
bar           ✗1.0.1 (overridden)  ✗1.0.1 (overridden)  ✗1.0.1 (overridden)  ✗2.0.0  
baz           ✗2.0.0 (overridden)  ✗2.0.0 (overridden)  ✗2.0.0 (overridden)  ✗2.0.0  
foo           ✗1.0.1 (overridden)  ✗1.0.1 (overridden)  ✗1.0.1 (overridden)  ✗2.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 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:
bar           ✗1.0.1 (overridden)  ✗1.0.1 (overridden)  ✗1.0.1 (overridden)  ✗2.0.0  
baz           ✗2.0.0 (overridden)  ✗2.0.0 (overridden)  ✗2.0.0 (overridden)  ✗2.0.0  
foo           ✗1.0.1 (overridden)  ✗1.0.1 (overridden)  ✗1.0.1 (overridden)  ✗2.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 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:
bar           ✗1.0.1 (overridden)  ✗1.0.1 (overridden)  ✗1.0.1 (overridden)  ✗2.0.0  
baz           ✗2.0.0 (overridden)  ✗2.0.0 (overridden)  ✗2.0.0 (overridden)  ✗2.0.0  
foo           ✗1.0.1 (overridden)  ✗1.0.1 (overridden)  ✗1.0.1 (overridden)  ✗2.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 10
$ pub outdated --json --mode=null-safety
{
  "packages": [
    {
      "package": "bar",
      "current": {
        "version": "1.0.1",
        "overridden": true,
        "nullSafety": false
      },
      "upgradable": {
        "version": "1.0.1",
        "overridden": true,
        "nullSafety": false
      },
      "resolvable": {
        "version": "1.0.1",
        "overridden": true,
        "nullSafety": false
      },
      "latest": {
        "version": "2.0.0",
        "nullSafety": false
      }
    },
    {
      "package": "baz",
      "current": {
        "version": "2.0.0",
        "overridden": true,
        "nullSafety": false
      },
      "upgradable": {
        "version": "2.0.0",
        "overridden": true,
        "nullSafety": false
      },
      "resolvable": {
        "version": "2.0.0",
        "overridden": true,
        "nullSafety": false
      },
      "latest": {
        "version": "2.0.0",
        "nullSafety": false
      }
    },
    {
      "package": "foo",
      "current": {
        "version": "1.0.1",
        "overridden": true,
        "nullSafety": false
      },
      "upgradable": {
        "version": "1.0.1",
        "overridden": true,
        "nullSafety": false
      },
      "resolvable": {
        "version": "1.0.1",
        "overridden": true,
        "nullSafety": false
      },
      "latest": {
        "version": "2.0.0",
        "nullSafety": false
      }
    }
  ]
}

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

## Section 11
$ pub outdated --json --no-dev-dependencies
{
  "packages": [
    {
      "package": "bar",
      "current": {
        "version": "1.0.1",
        "overridden": true
      },
      "upgradable": {
        "version": "1.0.1",
        "overridden": true
      },
      "resolvable": {
        "version": "1.0.1",
        "overridden": true
      },
      "latest": {
        "version": "2.0.0"
      }
    },
    {
      "package": "baz",
      "current": {
        "version": "2.0.0",
        "overridden": true
      },
      "upgradable": {
        "version": "2.0.0",
        "overridden": true
      },
      "resolvable": {
        "version": "2.0.0",
        "overridden": true
      },
      "latest": {
        "version": "2.0.0"
      }
    },
    {
      "package": "foo",
      "current": {
        "version": "1.0.1",
        "overridden": true
      },
      "upgradable": {
        "version": "1.0.1",
        "overridden": true
      },
      "resolvable": {
        "version": "1.0.1",
        "overridden": true
      },
      "latest": {
        "version": "2.0.0"
      }
    }
  ]
}

