# GENERATED BY: test/outdated/outdated_test.dart

## Section 0
$ pub outdated --json
{
  "packages": [
    {
      "package": "bar",
      "kind": "direct",
      "isDiscontinued": false,
      "isCurrentRetracted": false,
      "isCurrentAffectedByAdvisory": false,
      "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",
      "kind": "direct",
      "isDiscontinued": false,
      "isCurrentRetracted": false,
      "isCurrentAffectedByAdvisory": false,
      "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",
      "kind": "direct",
      "isDiscontinued": false,
      "isCurrentRetracted": false,
      "isCurrentAffectedByAdvisory": false,
      "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   

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 --json --no-dev-dependencies
{
  "packages": [
    {
      "package": "bar",
      "kind": "direct",
      "isDiscontinued": false,
      "isCurrentRetracted": false,
      "isCurrentAffectedByAdvisory": false,
      "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",
      "kind": "direct",
      "isDiscontinued": false,
      "isCurrentRetracted": false,
      "isCurrentAffectedByAdvisory": false,
      "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",
      "kind": "direct",
      "isDiscontinued": false,
      "isCurrentRetracted": false,
      "isCurrentAffectedByAdvisory": false,
      "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"
      }
    }
  ]
}

