)]}'
{
  "commit": "779d005c72afbf66305ea2726cc2184c375263fa",
  "tree": "847cb6a831fcdc32b5cf3694507de9d5751057dc",
  "parents": [
    "cc3aa64a133e7b0c38f5e83453e7f40cc8ad92f4"
  ],
  "author": {
    "name": "Nikechukwu",
    "email": "150845642+nikeokoronkwo@users.noreply.github.com",
    "time": "Thu Aug 14 21:17:22 2025 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Aug 14 21:17:22 2025 -0400"
  },
  "message": "[interop] Add Support for Anonymous Declarations (#434)\n\nThis adds support for generating declarations for anonymous declarations, such as anonymous objects, unions, closures and constructor types.\n\nThis also adds support for nullable types (types unioned with undefined and/or null).\n\nA hashing function is used for consistently hashing string objects, which is used for hashing identifiers for anonymous unions, objects and more, as well as comparing such names to allow reusing of such types.\n\n* wip: union types\n\n* wip: completed anonymous unions\n\n* implemented JS Tuple\n\n* completed nullability support for `undefined` and `null`\n\n* wip: object decl\n\n* implemented anonymous objects\n\n* added support for closures and constructors\n\n* wip: type hierarchy\n\n* implemented sub type deduction\n\n* added type generics to union types\n\n* changed `.reduce` to `.fold`\n\n* resolved newline and license headers\n\n* isNullable updates and renamed `DeclarationAssociatedType`\n\n* updated algorithm to use LCA via Topological Ordering\n\n* resolved some more comments\n\n* rm hasher_test\n\n* resolved some more comments\n\n* refactored tuple generation (common types) and more\n\n* added LCA test\n\n* removed stray prints\n\n* added doc support and resolved merge\n\n* updated documentation formatting using formatting.dart",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "02426349afda3f0d072b6c542818c3abcad87e92",
      "old_mode": 33188,
      "old_path": "web_generator/analysis_options.yaml",
      "new_id": "5cb8d06db400d44b20f06cf0cb77148c5b1392f3",
      "new_mode": 33188,
      "new_path": "web_generator/analysis_options.yaml"
    },
    {
      "type": "modify",
      "old_id": "54158a62e6e793038b4915c95603af85b5cbb4fd",
      "old_mode": 33188,
      "old_path": "web_generator/lib/src/ast/base.dart",
      "new_id": "bc356b70686f71f217209186b436ecc2de43795d",
      "new_mode": 33188,
      "new_path": "web_generator/lib/src/ast/base.dart"
    },
    {
      "type": "modify",
      "old_id": "24d83584df07dd74a38d4ab37078657f02b726b5",
      "old_mode": 33188,
      "old_path": "web_generator/lib/src/ast/builtin.dart",
      "new_id": "a46d7e307f0bd3c563a34bd76cc59cb20d95d11f",
      "new_mode": 33188,
      "new_path": "web_generator/lib/src/ast/builtin.dart"
    },
    {
      "type": "modify",
      "old_id": "6fc23576759ff71be833775918486b36d59fd3f6",
      "old_mode": 33188,
      "old_path": "web_generator/lib/src/ast/declarations.dart",
      "new_id": "1ede563c8684a3e8cd6dcba388f0ab6d75af5735",
      "new_mode": 33188,
      "new_path": "web_generator/lib/src/ast/declarations.dart"
    },
    {
      "type": "modify",
      "old_id": "472ade68572ba57e88b77e8250a0952285987e91",
      "old_mode": 33188,
      "old_path": "web_generator/lib/src/ast/helpers.dart",
      "new_id": "4d071e9c9797e6f8aee3f15816a03a20a80c8de5",
      "new_mode": 33188,
      "new_path": "web_generator/lib/src/ast/helpers.dart"
    },
    {
      "type": "modify",
      "old_id": "8c8a7c102097218fede5f8c576a45e2fbc647905",
      "old_mode": 33188,
      "old_path": "web_generator/lib/src/ast/types.dart",
      "new_id": "5e5552a9983a8412ba404102246c8fa42e5caa45",
      "new_mode": 33188,
      "new_path": "web_generator/lib/src/ast/types.dart"
    },
    {
      "type": "modify",
      "old_id": "0b4cde26eb43641103439d75cd7bc1d41e73d554",
      "old_mode": 33188,
      "old_path": "web_generator/lib/src/dart_main.dart",
      "new_id": "2f5a8ef59e2039549d2eda41625d0bbe1e44dbf8",
      "new_mode": 33188,
      "new_path": "web_generator/lib/src/dart_main.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "117bfa09a3af197991d2a9478e39a26ca69f5571",
      "new_mode": 33188,
      "new_path": "web_generator/lib/src/interop_gen/hasher.dart"
    },
    {
      "type": "modify",
      "old_id": "519e1445be5294183f5bad403b43d6bd58e74923",
      "old_mode": 33188,
      "old_path": "web_generator/lib/src/interop_gen/namer.dart",
      "new_id": "1e64351cb31a69b7b2b8470fc8242765c1469ffb",
      "new_mode": 33188,
      "new_path": "web_generator/lib/src/interop_gen/namer.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "016898676312a62d8296e2a7dcc51f7017f1a0e0",
      "new_mode": 33188,
      "new_path": "web_generator/lib/src/interop_gen/sub_type.dart"
    },
    {
      "type": "modify",
      "old_id": "f60bfde632e29740e4d6c1f477c7f2f4a5f324c5",
      "old_mode": 33188,
      "old_path": "web_generator/lib/src/interop_gen/transform.dart",
      "new_id": "87d5d67845e06c9e80df9d546135214cf0092c5c",
      "new_mode": 33188,
      "new_path": "web_generator/lib/src/interop_gen/transform.dart"
    },
    {
      "type": "modify",
      "old_id": "a026f221e062860c014eeb24fca43a4b25f98c35",
      "old_mode": 33188,
      "old_path": "web_generator/lib/src/interop_gen/transform/transformer.dart",
      "new_id": "167ed26ee16bb8cebab142388576fe09fde824ce",
      "new_mode": 33188,
      "new_path": "web_generator/lib/src/interop_gen/transform/transformer.dart"
    },
    {
      "type": "modify",
      "old_id": "b0c51b6e24f3afef23963f3757b739a0fd6dc4d9",
      "old_mode": 33188,
      "old_path": "web_generator/lib/src/js/typescript.types.dart",
      "new_id": "d2c322db8c3f56df9115d1874f0f60d5748b275b",
      "new_mode": 33188,
      "new_path": "web_generator/lib/src/js/typescript.types.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "652494b88a6e022f83b161f77f4effa72111a2f0",
      "new_mode": 33188,
      "new_path": "web_generator/lib/src/utils/case.dart"
    },
    {
      "type": "modify",
      "old_id": "ccd0d045272ca81aec28128384439a4fd0458ba4",
      "old_mode": 33188,
      "old_path": "web_generator/pubspec.yaml",
      "new_id": "f03237a9858d7bad2c7fc9ba6002a5bf57d6af5c",
      "new_mode": 33188,
      "new_path": "web_generator/pubspec.yaml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ff7ac1f62690a20363052850ac353b1168ca414a",
      "new_mode": 33188,
      "new_path": "web_generator/test/integration/interop_gen/_tuples.dart"
    },
    {
      "type": "modify",
      "old_id": "49d010fa596c9aaf74557756103f421ffa3c512e",
      "old_mode": 33188,
      "old_path": "web_generator/test/integration/interop_gen/classes_expected.dart",
      "new_id": "05330aab57e780f5c7827a141e008ab51c11cb9a",
      "new_mode": 33188,
      "new_path": "web_generator/test/integration/interop_gen/classes_expected.dart"
    },
    {
      "type": "modify",
      "old_id": "8a4951844352dc2e227a10e94530423d4ee09cc0",
      "old_mode": 33188,
      "old_path": "web_generator/test/integration/interop_gen/enum_expected.dart",
      "new_id": "01e5be79d0b86747f5080295bca586e85678e20d",
      "new_mode": 33188,
      "new_path": "web_generator/test/integration/interop_gen/enum_expected.dart"
    },
    {
      "type": "modify",
      "old_id": "41262e733277f405028b546a160ae9fdd218b35c",
      "old_mode": 33188,
      "old_path": "web_generator/test/integration/interop_gen/interfaces_expected.dart",
      "new_id": "a8a7ffaa8b077abfa89a4a0c08ba9b5e8b8449fc",
      "new_mode": 33188,
      "new_path": "web_generator/test/integration/interop_gen/interfaces_expected.dart"
    },
    {
      "type": "modify",
      "old_id": "8227441f0f05d1e206daf8e3c16cc58678478617",
      "old_mode": 33188,
      "old_path": "web_generator/test/integration/interop_gen/namespaces_expected.dart",
      "new_id": "ea1d3579a08fd56928cdb062e5f9eb04e22b610f",
      "new_mode": 33188,
      "new_path": "web_generator/test/integration/interop_gen/namespaces_expected.dart"
    },
    {
      "type": "modify",
      "old_id": "7b1d3b8013135a7e08e20416940b3d2e7547e20c",
      "old_mode": 33188,
      "old_path": "web_generator/test/integration/interop_gen/namespaces_input.d.ts",
      "new_id": "724223f367026ed2b89ea717a2f9a88b8a3ceead",
      "new_mode": 33188,
      "new_path": "web_generator/test/integration/interop_gen/namespaces_input.d.ts"
    },
    {
      "type": "modify",
      "old_id": "fee72b9e3055ac58194deec71610de002ab632be",
      "old_mode": 33188,
      "old_path": "web_generator/test/integration/interop_gen/project/output/b.dart",
      "new_id": "dd1b6837234de50c60d8b26bbce8f5279b9b5a9b",
      "new_mode": 33188,
      "new_path": "web_generator/test/integration/interop_gen/project/output/b.dart"
    },
    {
      "type": "modify",
      "old_id": "ba70d515e82d9c694ebd536b0033dba09dcad525",
      "old_mode": 33188,
      "old_path": "web_generator/test/integration/interop_gen/project/output/c.dart",
      "new_id": "4d1081d96e6b50fb83bb7adf51ca6f9111301e2a",
      "new_mode": 33188,
      "new_path": "web_generator/test/integration/interop_gen/project/output/c.dart"
    },
    {
      "type": "modify",
      "old_id": "65e7fe92cd77cc2cfa2761aa9528b8ad25be0869",
      "old_mode": 33188,
      "old_path": "web_generator/test/integration/interop_gen/ts_typing_expected.dart",
      "new_id": "9962ca38192b7bb9fe3e9df887dfec5349771970",
      "new_mode": 33188,
      "new_path": "web_generator/test/integration/interop_gen/ts_typing_expected.dart"
    },
    {
      "type": "modify",
      "old_id": "e665d780f0e4f2fe9d09f95b964524067354d5e8",
      "old_mode": 33188,
      "old_path": "web_generator/test/integration/interop_gen/ts_typing_input.d.ts",
      "new_id": "b47a6cce2ccc7e516944f1481de8818669c8e1af",
      "new_mode": 33188,
      "new_path": "web_generator/test/integration/interop_gen/ts_typing_input.d.ts"
    },
    {
      "type": "modify",
      "old_id": "f5aa6ce71673d4d6ae5d7ce1acc975613d983409",
      "old_mode": 33188,
      "old_path": "web_generator/test/integration/interop_gen/typealias_expected.dart",
      "new_id": "d229bb10a0b343aa15b087fe3e4aa04d573efa3c",
      "new_mode": 33188,
      "new_path": "web_generator/test/integration/interop_gen/typealias_expected.dart"
    },
    {
      "type": "modify",
      "old_id": "52e2b7ae0e849ef94743d6d84c03640f5440eb03",
      "old_mode": 33188,
      "old_path": "web_generator/test/integration/interop_gen/typealias_input.d.ts",
      "new_id": "debe1e87851ef19846f147542639ba76899c3a5e",
      "new_mode": 33188,
      "new_path": "web_generator/test/integration/interop_gen/typealias_input.d.ts"
    },
    {
      "type": "modify",
      "old_id": "3de6a1d5dd3c20c23311ebcfbd7c84efa9fb1641",
      "old_mode": 33188,
      "old_path": "web_generator/test/integration/interop_gen/web_types_expected.dart",
      "new_id": "d8b2915db47a700189c1461bf99c26f74b4f6e61",
      "new_mode": 33188,
      "new_path": "web_generator/test/integration/interop_gen/web_types_expected.dart"
    },
    {
      "type": "modify",
      "old_id": "366cf5387292a868918615cada96728d0a75be56",
      "old_mode": 33188,
      "old_path": "web_generator/test/integration/interop_gen/web_types_input.d.ts",
      "new_id": "7caa6fabc9efb2c837153b98df45cc69aa834338",
      "new_mode": 33188,
      "new_path": "web_generator/test/integration/interop_gen/web_types_input.d.ts"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1d6f34de7071a3b8326c3b8b72dd08701b3f758a",
      "new_mode": 33188,
      "new_path": "web_generator/test/type_map_test.dart"
    }
  ]
}
