)]}'
{
  "commit": "e11179d5300fab0e1917144b9570cf1bb86da4ab",
  "tree": "089368ed2958ef9b36add767367c876050ba8511",
  "parents": [
    "fcbb0ce87ffb1940e8b4d7d0242e8d8f2c8ac4a6"
  ],
  "author": {
    "name": "Chris Yang",
    "email": "ychris@google.com",
    "time": "Mon May 10 14:32:25 2021 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon May 10 14:32:25 2021 -0700"
  },
  "message": "[in_app_purchase] platform interface improvement (#3821)\n\nAdds some improvements to the platform interface. \r\n\r\n1. Make `InAppPurchasePlatformAddition` a subclass of `PlatformInterface` to take advantage of the existing token checking logic. (I also consider `InAppPurchasePlatformAddition` a `PlatformInterface` because it works in a similar way.\r\n2. Make the `instance` variable `late` as we should never access it before setter.\r\n3. Add tests for `InAppPurchasePlatformAddition`\r\n\r\npart of flutter/flutter#78525\r\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5e7f54560b8cc00a8beddf977985b1bec673bed9",
      "old_mode": 33188,
      "old_path": "packages/in_app_purchase/in_app_purchase/CHANGELOG.md",
      "new_id": "45b8b7661203be98d7ffc68de7f3355cc3b93958",
      "new_mode": 33188,
      "new_path": "packages/in_app_purchase/in_app_purchase/CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "ccdec42b7303fd41fc0c815b4073811f6534b969",
      "old_mode": 33188,
      "old_path": "packages/in_app_purchase/in_app_purchase/lib/src/in_app_purchase/product_details.dart",
      "new_id": "4ba61305e44510c07fb0f45bf07678eecd83f8ab",
      "new_mode": 33188,
      "new_path": "packages/in_app_purchase/in_app_purchase/lib/src/in_app_purchase/product_details.dart"
    },
    {
      "type": "modify",
      "old_id": "f8dc4c998494f6aad53a01a7d4a012b6881bb7f7",
      "old_mode": 33188,
      "old_path": "packages/in_app_purchase/in_app_purchase_platform_interface/lib/src/in_app_purchase_platform.dart",
      "new_id": "eac4a0712078f0ceee6f791bbf76824497f6c502",
      "new_mode": 33188,
      "new_path": "packages/in_app_purchase/in_app_purchase_platform_interface/lib/src/in_app_purchase_platform.dart"
    },
    {
      "type": "modify",
      "old_id": "5c41f138ecea4a3bff839aba490e63fda0787afe",
      "old_mode": 33188,
      "old_path": "packages/in_app_purchase/in_app_purchase_platform_interface/lib/src/in_app_purchase_platform_addition.dart",
      "new_id": "746675549295c4d82cb9aa387886565e5b96bcf8",
      "new_mode": 33188,
      "new_path": "packages/in_app_purchase/in_app_purchase_platform_interface/lib/src/in_app_purchase_platform_addition.dart"
    },
    {
      "type": "modify",
      "old_id": "d981f73b401915fdbbc559647ae067cdd2f9defb",
      "old_mode": 33188,
      "old_path": "packages/in_app_purchase/in_app_purchase_platform_interface/lib/src/in_app_purchase_platform_addition_provider.dart",
      "new_id": "642bbb419c6e3d5eea50c5e1753ca49a0f8807b4",
      "new_mode": 33188,
      "new_path": "packages/in_app_purchase/in_app_purchase_platform_interface/lib/src/in_app_purchase_platform_addition_provider.dart"
    },
    {
      "type": "modify",
      "old_id": "868f9428add2443deb677e4b342dbc351694ec73",
      "old_mode": 33188,
      "old_path": "packages/in_app_purchase/in_app_purchase_platform_interface/lib/src/types/product_details_response.dart",
      "new_id": "11b244a84ae3699b08cb119880f6f3d1d24cba49",
      "new_mode": 33188,
      "new_path": "packages/in_app_purchase/in_app_purchase_platform_interface/lib/src/types/product_details_response.dart"
    },
    {
      "type": "modify",
      "old_id": "d5c1ae5fc127605635c6886b41585fbe3f2d917f",
      "old_mode": 33188,
      "old_path": "packages/in_app_purchase/in_app_purchase_platform_interface/test/in_app_purchase_platform_test.dart",
      "new_id": "9c0f2dc000206e07c43dc30c55d1cc2a261962db",
      "new_mode": 33188,
      "new_path": "packages/in_app_purchase/in_app_purchase_platform_interface/test/in_app_purchase_platform_test.dart"
    }
  ]
}
