# GENERATED BY: test/dependency_services/dependency_services_test.dart

$ cat pubspec.yaml
{"name":"app","dependencies":{"foo":"^1.0.0","bar":{"git":{"url":"../bar.git"}}},"environment":{"sdk":">=0.1.2 <1.0.0"}}
$ cat pubspec.lock
No such file pubspec.lock.
-------------------------------- END OF OUTPUT ---------------------------------

## Section list
$ dependency_services list
{
  "dependencies": [
    {
      "name": "bar",
      "version": "5373af3230028f3e31e9ee39e326228db83710cb",
      "kind": "direct",
      "constraint": "any",
      "source": {
        "type": "git",
        "description": {
          "url": "../bar.git",
          "ref": "HEAD",
          "resolved-ref": "5373af3230028f3e31e9ee39e326228db83710cb",
          "path": "."
        }
      }
    },
    {
      "name": "foo",
      "version": "1.2.3",
      "kind": "direct",
      "constraint": "^1.0.0",
      "source": {
        "type": "hosted",
        "description": {
          "name": "foo",
          "url": "http://localhost:$PORT",
          "sha256": "72f6a04c4af0d78e4f1a1e2eb00a850843e6c0c5233ac2ca911aa061cbd5f8f1"
        }
      }
    },
    {
      "name": "transitive",
      "version": "1.0.0",
      "kind": "transitive",
      "constraint": "null",
      "source": {
        "type": "hosted",
        "description": {
          "name": "transitive",
          "url": "http://localhost:$PORT",
          "sha256": "8d245de5cde3ab3293e4cdea516c6a0395e24d338688279bab5f6c97bffa0915"
        }
      }
    }
  ]
}

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

## Section report
$ dependency_services report
{
  "dependencies": [
    {
      "name": "bar",
      "version": "5373af3230028f3e31e9ee39e326228db83710cb",
      "kind": "direct",
      "source": {
        "type": "git",
        "description": {
          "url": "../bar.git",
          "ref": "HEAD",
          "resolved-ref": "5373af3230028f3e31e9ee39e326228db83710cb",
          "path": "."
        }
      },
      "latest": "5373af3230028f3e31e9ee39e326228db83710cb",
      "constraint": "any",
      "compatible": [],
      "singleBreaking": [],
      "multiBreaking": [
        {
          "name": "foo",
          "version": "2.2.3",
          "kind": "direct",
          "source": {
            "type": "hosted",
            "description": {
              "name": "foo",
              "url": "http://localhost:$PORT",
              "sha256": "bf378a3f6c4840f911d66ab375f6d3eae78a015a41f0b8b202c31d4af010892e"
            }
          },
          "constraintBumped": "^2.2.3",
          "constraintWidened": ">=1.0.0 <3.0.0",
          "constraintBumpedIfNeeded": "^2.2.3",
          "previousVersion": "1.2.3",
          "previousConstraint": "^1.0.0",
          "previousSource": {
            "type": "hosted",
            "description": {
              "name": "foo",
              "url": "http://localhost:$PORT",
              "sha256": "72f6a04c4af0d78e4f1a1e2eb00a850843e6c0c5233ac2ca911aa061cbd5f8f1"
            }
          }
        }
      ]
    },
    {
      "name": "foo",
      "version": "1.2.3",
      "kind": "direct",
      "source": {
        "type": "hosted",
        "description": {
          "name": "foo",
          "url": "http://localhost:$PORT",
          "sha256": "72f6a04c4af0d78e4f1a1e2eb00a850843e6c0c5233ac2ca911aa061cbd5f8f1"
        }
      },
      "latest": "2.2.3",
      "constraint": "^1.0.0",
      "compatible": [],
      "singleBreaking": [
        {
          "name": "foo",
          "version": "2.2.3",
          "kind": "direct",
          "source": {
            "type": "hosted",
            "description": {
              "name": "foo",
              "url": "http://localhost:$PORT",
              "sha256": "bf378a3f6c4840f911d66ab375f6d3eae78a015a41f0b8b202c31d4af010892e"
            }
          },
          "constraintBumped": "^2.2.3",
          "constraintWidened": ">=1.0.0 <3.0.0",
          "constraintBumpedIfNeeded": "^2.2.3",
          "previousVersion": "1.2.3",
          "previousConstraint": "^1.0.0",
          "previousSource": {
            "type": "hosted",
            "description": {
              "name": "foo",
              "url": "http://localhost:$PORT",
              "sha256": "72f6a04c4af0d78e4f1a1e2eb00a850843e6c0c5233ac2ca911aa061cbd5f8f1"
            }
          }
        }
      ],
      "multiBreaking": [
        {
          "name": "foo",
          "version": "2.2.3",
          "kind": "direct",
          "source": {
            "type": "hosted",
            "description": {
              "name": "foo",
              "url": "http://localhost:$PORT",
              "sha256": "bf378a3f6c4840f911d66ab375f6d3eae78a015a41f0b8b202c31d4af010892e"
            }
          },
          "constraintBumped": "^2.2.3",
          "constraintWidened": ">=1.0.0 <3.0.0",
          "constraintBumpedIfNeeded": "^2.2.3",
          "previousVersion": "1.2.3",
          "previousConstraint": "^1.0.0",
          "previousSource": {
            "type": "hosted",
            "description": {
              "name": "foo",
              "url": "http://localhost:$PORT",
              "sha256": "72f6a04c4af0d78e4f1a1e2eb00a850843e6c0c5233ac2ca911aa061cbd5f8f1"
            }
          }
        }
      ]
    },
    {
      "name": "transitive",
      "version": "1.0.0",
      "kind": "transitive",
      "source": {
        "type": "hosted",
        "description": {
          "name": "transitive",
          "url": "http://localhost:$PORT",
          "sha256": "8d245de5cde3ab3293e4cdea516c6a0395e24d338688279bab5f6c97bffa0915"
        }
      },
      "latest": "1.0.0",
      "constraint": null,
      "compatible": [],
      "singleBreaking": [],
      "multiBreaking": []
    }
  ]
}

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

## Section apply
$ echo '{"dependencyChanges":[{"name":"foo","version":"2.2.3"},{"name":"transitive","version":null}]}' | dependency_services apply
{"dependencies":[]}

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

$ cat pubspec.yaml
{"name":"app","dependencies":{"foo":^2.2.3,"bar":{"git":{"url":"../bar.git"}}},"environment":{"sdk":">=0.1.2 <1.0.0"}}
$ cat pubspec.lock
No such file pubspec.lock.
