diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1ef7525c..d3c82899 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,7 +22,8 @@ jobs: # Disabled until custom_lint is removed # - packages/freezed_lint channel: - - stable + # - stable + - master dependencies: - get - downgrade @@ -54,7 +55,7 @@ jobs: - name: Check format # Check dart format only on stable - if: matrix.channel == 'stable' + if: matrix.channel == 'master' run: dart format --set-exit-if-changed . working-directory: ${{ matrix.package }} @@ -71,7 +72,7 @@ jobs: - name: Run tests run: | - if grep -q "name: example" "pubspec.yaml"; then + if grep -q "name: freezed_example" "pubspec.yaml"; then flutter test else dart test diff --git a/.gitignore b/.gitignore index b4db8079..56c718d5 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ *.iml build/ node_modules -/package-lock.json \ No newline at end of file +/package-lock.json +.dart_tool \ No newline at end of file diff --git a/packages/freezed/CHANGELOG.md b/packages/freezed/CHANGELOG.md index 85fb61d8..aba5b968 100644 --- a/packages/freezed/CHANGELOG.md +++ b/packages/freezed/CHANGELOG.md @@ -1,3 +1,7 @@ +## Unreleased 3.2.6-dev.1 + +Support analyzer 12.0 + ## 3.2.5 - 2026-02-03 Support analyzer 10.0 diff --git a/packages/freezed/example/pubspec.yaml b/packages/freezed/example/pubspec.yaml index 85e85406..2fec0a49 100644 --- a/packages/freezed/example/pubspec.yaml +++ b/packages/freezed/example/pubspec.yaml @@ -19,6 +19,8 @@ dev_dependencies: build_runner: flutter_test: sdk: flutter + # To support "downgrade" checks due to a transitive dependency not handling it correctly + file: ">=7.0.0" dependency_overrides: freezed: diff --git a/packages/freezed/example/test/diagnosticable_test.dart b/packages/freezed/example/test/diagnosticable_test.dart index 2e8b47e8..a412e73d 100644 --- a/packages/freezed/example/test/diagnosticable_test.dart +++ b/packages/freezed/example/test/diagnosticable_test.dart @@ -1,9 +1,9 @@ -import 'package:example/diagnosticable.dart' as diagnosticable; -import 'package:example/non_diagnosticable.dart' as non_diagnosticable; -import 'package:example/time_slot.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; +import 'package:freezed_example/diagnosticable.dart' as diagnosticable; +import 'package:freezed_example/non_diagnosticable.dart' as non_diagnosticable; +import 'package:freezed_example/time_slot.dart'; void main() { test('overriding toString works', () { diff --git a/packages/freezed/example/test/json_test.dart b/packages/freezed/example/test/json_test.dart index 8bfe4259..6c0580f4 100644 --- a/packages/freezed/example/test/json_test.dart +++ b/packages/freezed/example/test/json_test.dart @@ -1,5 +1,5 @@ -import 'package:example/main.dart'; import 'package:flutter_test/flutter_test.dart'; +import 'package:freezed_example/main.dart'; void main() { test('Union toJson', () { diff --git a/packages/freezed/lib/src/ast.dart b/packages/freezed/lib/src/ast.dart index d6c6ab27..986a6e0c 100644 --- a/packages/freezed/lib/src/ast.dart +++ b/packages/freezed/lib/src/ast.dart @@ -1,22 +1,18 @@ import 'package:analyzer/dart/ast/ast.dart'; -import 'package:analyzer/dart/ast/token.dart'; import 'package:analyzer/dart/element/element.dart'; extension AstX on AstNode { String? get documentation { - final builder = StringBuffer(); - - for ( - Token? token = beginToken.precedingComments; - token != null; - token = token.next - ) { - builder.writeln(token); - } + final node = switch (this) { + DefaultFormalParameter(:final parameter) => parameter, + _ => this, + }; - if (builder.isEmpty) return null; + if (node case AnnotatedNode(:final documentationComment?)) { + return '${documentationComment.tokens.map((token) => token.lexeme).join('\n')}\n'; + } - return builder.toString(); + return null; } } diff --git a/packages/freezed/lib/src/models.dart b/packages/freezed/lib/src/models.dart index 8e59aae0..4a312858 100644 --- a/packages/freezed/lib/src/models.dart +++ b/packages/freezed/lib/src/models.dart @@ -278,7 +278,7 @@ When specifying fields in non-factory constructor then specifying factory constr _assertValidFreezedConstructorUsage( constructor, - className: declaration.name.lexeme, + className: declaration.namePart.typeName.lexeme, ); final excludedProperties = @@ -299,7 +299,7 @@ When specifying fields in non-factory constructor then specifying factory constr final isEjected = unitsExcludingGeneratedFiles.any( (e) => e.declarations .whereType() - .map((e) => e.name.lexeme) + .map((e) => e.namePart.typeName.lexeme) .contains(redirectedName), ); @@ -522,7 +522,7 @@ class CopyWithTarget { extension on NamedType { bool isSuperMixin(ClassDeclaration declaration) => - name.lexeme == '_\$${declaration.name.lexeme.public}'; + name.lexeme == '_\$${declaration.namePart.typeName.lexeme.public}'; } class Class { @@ -582,7 +582,7 @@ class Class { false; if (!has$ClassMixin) { throw InvalidGenerationSourceError( - 'Classes using @freezed must use `with _\$${declaration.name.lexeme.public}`.', + 'Classes using @freezed must use `with _\$${declaration.namePart.typeName.lexeme.public}`.', element: declaration.declaredFragment?.element, node: declaration, ); @@ -624,7 +624,7 @@ class Class { if (cloneableProperty == null) { throw InvalidGenerationSourceError( ''' -The class ${declaration.name.lexeme} requested a copyWith implementation, yet the parameter `${param.name}` is not cloneable. +The class ${declaration.namePart.typeName.lexeme} requested a copyWith implementation, yet the parameter `${param.name}` is not cloneable. To fix, either: - Disable copyWith using @Freezed(copyWith: false) @@ -669,7 +669,7 @@ To fix, either: return Class( node: declaration, - name: declaration.name.lexeme, + name: declaration.namePart.typeName.lexeme, copyWithTarget: copyWithInvocation, properties: properties, superCall: superCall, @@ -1076,7 +1076,7 @@ To fix, either: if (!shouldUseExtends && field.getter != null && !field.getter!.isAbstract && - !field.getter!.isSynthetic) { + field.getter!.isOriginDeclaration) { throw InvalidGenerationSourceError( 'Getters require a MyClass._() constructor', element: field, @@ -1332,14 +1332,26 @@ extension ClassDeclarationX on ClassDeclaration { } Iterable get constructors { - return members.whereType(); + final that = body; + switch (that) { + case BlockClassBody(): + return that.members.whereType(); + default: + return const []; + } } Iterable<(FieldDeclaration, VariableDeclaration)> get properties { - return members - .whereType() - .where((e) => !e.isStatic) - .expand((e) => e.fields.variables.map((f) => (e, f))); + final that = body; + switch (that) { + case BlockClassBody(): + return that.members + .whereType() + .where((e) => !e.isStatic) + .expand((e) => e.fields.variables.map((f) => (e, f))); + default: + return const []; + } } bool needsJsonSerializable(Library library) { diff --git a/packages/freezed/pubspec.yaml b/packages/freezed/pubspec.yaml index 7b1c6c77..66191d37 100644 --- a/packages/freezed/pubspec.yaml +++ b/packages/freezed/pubspec.yaml @@ -10,7 +10,7 @@ environment: sdk: ">=3.8.0 <4.0.0" dependencies: - analyzer: '>=9.0.0 <11.0.0' + analyzer: '>=12.0.0 <13.0.0' build: ">=3.0.0 <5.0.0" build_config: ^1.1.0 collection: ^1.15.0 @@ -31,3 +31,6 @@ dev_dependencies: expect_error: ^1.0.10 flutter: sdk: flutter + + # To support "downgrade" checks due to a transitive dependency not handling it correctly + file: '>=7.0.0' diff --git a/packages/freezed/test/common_types_test.dart b/packages/freezed/test/common_types_test.dart index 62924c28..3003ce90 100644 --- a/packages/freezed/test/common_types_test.dart +++ b/packages/freezed/test/common_types_test.dart @@ -83,7 +83,7 @@ void main() { nullabilityDifference: 42, typeDifference: 21, ); - // expect-error: UNDEFINED_GETTER + // expect-error: undefined_getter value.unknown; } '''), @@ -120,10 +120,10 @@ void main() { param.copyWith( // Since not all unions have a nullable property, we cannot assign "null" // on the shared interface. - // expect-error: ARGUMENT_TYPE_NOT_ASSIGNABLE + // expect-error: argument_type_not_assignable nullabilityDifference: null, // Since not all unions use the same type, we can't clone that property at all. - // expect-error: UNDEFINED_NAMED_PARAMETER + // expect-error: undefined_named_parameter typeDifference: 42, ); } @@ -174,10 +174,10 @@ void main() { param.copyWith.value( // Since not all unions have a nullable property, we cannot assign "null" // on the shared interface. - // expect-error: ARGUMENT_TYPE_NOT_ASSIGNABLE + // expect-error: argument_type_not_assignable nullabilityDifference: null, // Since not all unions use the same type, we can't clone that property at all. - // expect-error: UNDEFINED_NAMED_PARAMETER + // expect-error: undefined_named_parameter typeDifference: 42, ); } @@ -204,7 +204,7 @@ import 'integration/common_types.dart'; void main() { final param = CommonUnfreezed.one(a: 42, b: 3.14); - // expect-error: ASSIGNMENT_TO_FINAL_NO_SETTER + // expect-error: assignment_to_final_no_setter param.a = 42.24; // OK since all union cases are typed the same param.b = 42; diff --git a/packages/freezed/test/decorator_test.dart b/packages/freezed/test/decorator_test.dart index cf83e4f7..113aebd8 100644 --- a/packages/freezed/test/decorator_test.dart +++ b/packages/freezed/test/decorator_test.dart @@ -97,20 +97,20 @@ void main() { errorResult.errors.map((e) => e.errorCode.name), anyOf([ [ - 'UNUSED_RESULT', - 'UNUSED_RESULT', - 'DEPRECATED_MEMBER_USE_FROM_SAME_PACKAGE', - 'DEPRECATED_MEMBER_USE_FROM_SAME_PACKAGE', - 'DEPRECATED_MEMBER_USE_FROM_SAME_PACKAGE', - 'DEPRECATED_MEMBER_USE_FROM_SAME_PACKAGE', + 'unused_result', + 'unused_result', + 'deprecated_member_use_from_same_package', + 'deprecated_member_use_from_same_package', + 'deprecated_member_use_from_same_package', + 'deprecated_member_use_from_same_package', ], [ - 'UNUSED_RESULT', - 'UNUSED_RESULT', - 'DEPRECATED_MEMBER_USE', - 'DEPRECATED_MEMBER_USE', - 'DEPRECATED_MEMBER_USE', - 'DEPRECATED_MEMBER_USE', + 'unused_result', + 'unused_result', + 'deprecated_member_use', + 'deprecated_member_use', + 'deprecated_member_use', + 'deprecated_member_use', ], ]), ); diff --git a/packages/freezed/test/deep_copy_test.dart b/packages/freezed/test/deep_copy_test.dart index bdb9c74e..95a1506e 100644 --- a/packages/freezed/test/deep_copy_test.dart +++ b/packages/freezed/test/deep_copy_test.dart @@ -734,8 +734,8 @@ void main() { as ErrorsResult; expect(errorResult.errors.map((e) => e.errorCode.name), [ - 'UNUSED_RESULT', - 'UNUSED_RESULT', + 'unused_result', + 'unused_result', ]); }); } diff --git a/packages/freezed/test/integration/decorator.dart b/packages/freezed/test/integration/decorator.dart index d39adb3c..36689db7 100644 --- a/packages/freezed/test/integration/decorator.dart +++ b/packages/freezed/test/integration/decorator.dart @@ -11,6 +11,7 @@ abstract class Decorator with _$Decorator { } class _WeirdDecorator { + // ignore: unused_element_parameter, false positive https://github.com/dart-lang/sdk/issues/63229 const _WeirdDecorator(this.a, {this.b}); final String a; diff --git a/packages/freezed/test/json_test.dart b/packages/freezed/test/json_test.dart index 07b6c615..df787979 100644 --- a/packages/freezed/test/json_test.dart +++ b/packages/freezed/test/json_test.dart @@ -9,7 +9,7 @@ import 'integration/json.dart'; Future main() async { final jsonFile = await resolveSources( - readAllSourcesFromFilesystem: true, + readAllSourcesFromFilesystem: true, {'freezed|test/integration/json.dart': useAssetReader}, (r) => r.libraries.firstWhere( (element) => element.firstFragment.source.toString().contains('json'), diff --git a/pubspec.lock b/pubspec.lock new file mode 100644 index 00000000..b1886236 --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,644 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + sha256: a49d6cf99e8d8e7a8e93668d09ced0bbdb954d0b4fccc2f5f9241c6b87fad95c + url: "https://pub.dev" + source: hosted + version: "99.0.0" + analyzer: + dependency: transitive + description: + name: analyzer + sha256: "663efa951fb8a45e06f491223a604c93820598f20e6a99c25617a1576065e8b7" + url: "https://pub.dev" + source: hosted + version: "12.1.0" + args: + dependency: transitive + description: + name: args + sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 + url: "https://pub.dev" + source: hosted + version: "2.7.0" + async: + dependency: transitive + description: + name: async + sha256: e2eb0491ba5ddb6177742d2da23904574082139b07c1e33b8503b9f46f3e1a37 + url: "https://pub.dev" + source: hosted + version: "2.13.1" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + build: + dependency: transitive + description: + name: build + sha256: aadd943f4f8cc946882c954c187e6115a84c98c81ad1d9c6cbf0895a8c85da9c + url: "https://pub.dev" + source: hosted + version: "4.0.5" + build_config: + dependency: transitive + description: + name: build_config + sha256: "4070d2a59f8eec34c97c86ceb44403834899075f66e8a9d59706f8e7834f6f71" + url: "https://pub.dev" + source: hosted + version: "1.3.0" + build_daemon: + dependency: transitive + description: + name: build_daemon + sha256: bf05f6e12cfea92d3c09308d7bcdab1906cd8a179b023269eed00c071004b957 + url: "https://pub.dev" + source: hosted + version: "4.1.1" + build_runner: + dependency: transitive + description: + name: build_runner + sha256: "4425a87d87d0d1303540f867994303f5b141ad2f6ecac7ac2cf8851f41c0cef1" + url: "https://pub.dev" + source: hosted + version: "2.14.0" + build_test: + dependency: transitive + description: + name: build_test + sha256: ddd2def30c208a735b09909111a74c57cc22ba29c0f68a733ad7371f85e15c71 + url: "https://pub.dev" + source: hosted + version: "3.5.13" + built_collection: + dependency: transitive + description: + name: built_collection + sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" + url: "https://pub.dev" + source: hosted + version: "5.1.1" + built_value: + dependency: transitive + description: + name: built_value + sha256: "0730c18c770d05636a8f945c32a4d7d81cb6e0f0148c8db4ad12e7748f7e49af" + url: "https://pub.dev" + source: hosted + version: "8.12.5" + characters: + dependency: transitive + description: + name: characters + sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b + url: "https://pub.dev" + source: hosted + version: "1.4.1" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f" + url: "https://pub.dev" + source: hosted + version: "2.0.4" + cli_config: + dependency: transitive + description: + name: cli_config + sha256: ac20a183a07002b700f0c25e61b7ee46b23c309d76ab7b7640a028f18e4d99ec + url: "https://pub.dev" + source: hosted + version: "0.2.0" + clock: + dependency: transitive + description: + name: clock + sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b + url: "https://pub.dev" + source: hosted + version: "1.1.2" + collection: + dependency: transitive + description: + name: collection + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" + url: "https://pub.dev" + source: hosted + version: "1.19.1" + convert: + dependency: transitive + description: + name: convert + sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 + url: "https://pub.dev" + source: hosted + version: "3.1.2" + coverage: + dependency: transitive + description: + name: coverage + sha256: "5da775aa218eaf2151c721b16c01c7676fbfdd99cebba2bf64e8b807a28ff94d" + url: "https://pub.dev" + source: hosted + version: "1.15.0" + crypto: + dependency: transitive + description: + name: crypto + sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf + url: "https://pub.dev" + source: hosted + version: "3.0.7" + csslib: + dependency: transitive + description: + name: csslib + sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e" + url: "https://pub.dev" + source: hosted + version: "1.0.2" + dart_style: + dependency: transitive + description: + name: dart_style + sha256: a4c1ccfee44c7e75ed80484071a5c142a385345e658fd8bd7c4b5c97e7198f98 + url: "https://pub.dev" + source: hosted + version: "3.1.8" + expect_error: + dependency: transitive + description: + name: expect_error + sha256: "226eb455e961785cdc6bdb56cd067fe8887b7b86c701f7d3fe09bcc2270b7552" + url: "https://pub.dev" + source: hosted + version: "1.0.14" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44" + url: "https://pub.dev" + source: hosted + version: "1.3.3" + file: + dependency: "direct overridden" + description: + name: file + sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" + url: "https://pub.dev" + source: hosted + version: "6.1.4" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be + url: "https://pub.dev" + source: hosted + version: "1.1.1" + flutter: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + flutter_test: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + freezed_annotation: + dependency: "direct overridden" + description: + path: "packages/freezed_annotation" + relative: true + source: path + version: "3.1.0" + frontend_server_client: + dependency: "direct overridden" + description: + name: frontend_server_client + sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 + url: "https://pub.dev" + source: hosted + version: "4.0.0" + glob: + dependency: transitive + description: + name: glob + sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de + url: "https://pub.dev" + source: hosted + version: "2.1.3" + graphs: + dependency: transitive + description: + name: graphs + sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + html: + dependency: transitive + description: + name: html + sha256: "6d1264f2dffa1b1101c25a91dff0dc2daee4c18e87cd8538729773c073dbf602" + url: "https://pub.dev" + source: hosted + version: "0.15.6" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8 + url: "https://pub.dev" + source: hosted + version: "3.2.2" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" + url: "https://pub.dev" + source: hosted + version: "4.1.2" + io: + dependency: transitive + description: + name: io + sha256: dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b + url: "https://pub.dev" + source: hosted + version: "1.0.5" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: cb09e7dac6210041fad964ed7fbee004f14258b4eca4040f72d1234062ace4c8 + url: "https://pub.dev" + source: hosted + version: "4.11.0" + json_serializable: + dependency: transitive + description: + name: json_serializable + sha256: fbcf404b03520e6e795f6b9b39badb2b788407dfc0a50cf39158a6ae1ca78925 + url: "https://pub.dev" + source: hosted + version: "6.13.1" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" + url: "https://pub.dev" + source: hosted + version: "11.0.2" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" + url: "https://pub.dev" + source: hosted + version: "3.0.10" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" + url: "https://pub.dev" + source: hosted + version: "3.0.2" + logging: + dependency: transitive + description: + name: logging + sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 + url: "https://pub.dev" + source: hosted + version: "1.3.0" + matcher: + dependency: transitive + description: + name: matcher + sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861 + url: "https://pub.dev" + source: hosted + version: "0.12.19" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b" + url: "https://pub.dev" + source: hosted + version: "0.13.0" + meta: + dependency: transitive + description: + name: meta + sha256: df0c643f44ad098eb37988027a8e2b2b5a031fd3977f06bbfd3a76637e8df739 + url: "https://pub.dev" + source: hosted + version: "1.18.2" + mime: + dependency: transitive + description: + name: mime + sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + node_preamble: + dependency: transitive + description: + name: node_preamble + sha256: "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db" + url: "https://pub.dev" + source: hosted + version: "2.0.2" + package_config: + dependency: transitive + description: + name: package_config + sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc + url: "https://pub.dev" + source: hosted + version: "2.2.0" + path: + dependency: transitive + description: + name: path + sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" + url: "https://pub.dev" + source: hosted + version: "1.9.1" + pool: + dependency: transitive + description: + name: pool + sha256: "978783255c543aa3586a1b3c21f6e9d720eb315376a915872c61ef8b5c20177d" + url: "https://pub.dev" + source: hosted + version: "1.5.2" + pub_semver: + dependency: "direct overridden" + description: + name: pub_semver + sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585" + url: "https://pub.dev" + source: hosted + version: "2.2.0" + pubspec_parse: + dependency: transitive + description: + name: pubspec_parse + sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082" + url: "https://pub.dev" + source: hosted + version: "1.5.0" + quiver: + dependency: "direct overridden" + description: + name: quiver + sha256: ea0b925899e64ecdfbf9c7becb60d5b50e706ade44a85b2363be2a22d88117d2 + url: "https://pub.dev" + source: hosted + version: "3.2.2" + shelf: + dependency: transitive + description: + name: shelf + sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 + url: "https://pub.dev" + source: hosted + version: "1.4.2" + shelf_packages_handler: + dependency: transitive + description: + name: shelf_packages_handler + sha256: "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e" + url: "https://pub.dev" + source: hosted + version: "3.0.2" + shelf_static: + dependency: transitive + description: + name: shelf_static + sha256: c87c3875f91262785dade62d135760c2c69cb217ac759485334c5857ad89f6e3 + url: "https://pub.dev" + source: hosted + version: "1.1.3" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925" + url: "https://pub.dev" + source: hosted + version: "3.0.0" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + source_gen: + dependency: transitive + description: + name: source_gen + sha256: "732792cfd197d2161a65bb029606a46e0a18ff30ef9e141a7a82172b05ea8ecd" + url: "https://pub.dev" + source: hosted + version: "4.2.2" + source_gen_test: + dependency: transitive + description: + name: source_gen_test + sha256: f053d7d3157a6d816128449a60ac89b8af20ee563eb234c560093c0a45af2124 + url: "https://pub.dev" + source: hosted + version: "1.3.5" + source_helper: + dependency: transitive + description: + name: source_helper + sha256: "1d3b229b2934034fb2e691fbb3d53e0f75a4af7b1407f88425ed8f209bcb1b8f" + url: "https://pub.dev" + source: hosted + version: "1.3.11" + source_map_stack_trace: + dependency: transitive + description: + name: source_map_stack_trace + sha256: c0713a43e323c3302c2abe2a1cc89aa057a387101ebd280371d6a6c9fa68516b + url: "https://pub.dev" + source: hosted + version: "2.1.2" + source_maps: + dependency: transitive + description: + name: source_maps + sha256: "190222579a448b03896e0ca6eca5998fa810fda630c1d65e2f78b3f638f54812" + url: "https://pub.dev" + source: hosted + version: "0.10.13" + source_span: + dependency: transitive + description: + name: source_span + sha256: "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab" + url: "https://pub.dev" + source: hosted + version: "1.10.2" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" + url: "https://pub.dev" + source: hosted + version: "1.12.1" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + stream_transform: + dependency: transitive + description: + name: stream_transform + sha256: ad47125e588cfd37a9a7f86c7d6356dde8dfe89d071d293f80ca9e9273a33871 + url: "https://pub.dev" + source: hosted + version: "2.1.1" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" + url: "https://pub.dev" + source: hosted + version: "1.4.1" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" + url: "https://pub.dev" + source: hosted + version: "1.2.2" + test: + dependency: transitive + description: + name: test + sha256: "8d9ceddbab833f180fbefed08afa76d7c03513dfdba87ffcec2718b02bbcbf20" + url: "https://pub.dev" + source: hosted + version: "1.31.0" + test_api: + dependency: transitive + description: + name: test_api + sha256: "949a932224383300f01be9221c39180316445ecb8e7547f70a41a35bf421fb9e" + url: "https://pub.dev" + source: hosted + version: "0.7.11" + test_core: + dependency: transitive + description: + name: test_core + sha256: "1991d4cfe85d5043241acac92962c3977c8d2f2add1ee73130c7b286417d1d34" + url: "https://pub.dev" + source: hosted + version: "0.6.17" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 + url: "https://pub.dev" + source: hosted + version: "1.4.0" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: "47a1b32ee755c3fcffa33db52a7258c137f97bdb2209a1075be847809fac4ccf" + url: "https://pub.dev" + source: hosted + version: "2.3.0" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: "046d3928e16fa4dc46e8350415661755ab759d9fc97fc21b5ab295f71e4f0499" + url: "https://pub.dev" + source: hosted + version: "15.1.0" + watcher: + dependency: "direct overridden" + description: + name: watcher + sha256: "1398c9f081a753f9226febe8900fce8f7d0a67163334e1c94a2438339d79d635" + url: "https://pub.dev" + source: hosted + version: "1.2.1" + web: + dependency: transitive + description: + name: web + sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + web_socket: + dependency: transitive + description: + name: web_socket + sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8 + url: "https://pub.dev" + source: hosted + version: "3.0.3" + webkit_inspection_protocol: + dependency: transitive + description: + name: webkit_inspection_protocol + sha256: "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572" + url: "https://pub.dev" + source: hosted + version: "1.2.1" + yaml: + dependency: transitive + description: + name: yaml + sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce + url: "https://pub.dev" + source: hosted + version: "3.1.3" +sdks: + dart: ">=3.10.0 <4.0.0" + flutter: ">=3.18.0-18.0.pre.54"