diff --git a/.github/workflows/pipeline.yml b/.github/workflows/pipeline.yml index 6d885e7a..ca9cf748 100644 --- a/.github/workflows/pipeline.yml +++ b/.github/workflows/pipeline.yml @@ -1,16 +1,18 @@ name: Pipeline -on: push +on: + workflow_dispatch: + push: jobs: test_mapper: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@main - name: '>> unit & performance tests for mapper <<' uses: k-paxian/dart-package-publisher@master with: - dryRunOnly: true + testRunOnly: true credentialJson: ${{ secrets.CREDENTIAL_JSON }} relativePath: perf-test @@ -18,15 +20,12 @@ jobs: needs: [test_mapper] runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - run: | - cp README.md ./mapper/README.md - cp banner.svg ./mapper/banner.svg - cp -f LICENSE ./mapper/LICENSE + - uses: actions/checkout@main - name: '>> publish mapper package to pub.dev <<' id: publish uses: k-paxian/dart-package-publisher@master with: + force: true credentialJson: ${{ secrets.CREDENTIAL_JSON }} relativePath: mapper - name: 'Commit release tag' @@ -45,8 +44,8 @@ jobs: adapter: ["flutter", "built", "fixnum", "mobx"] steps: - - uses: actions/checkout@v2 - - run: cp -f LICENSE ./adapters/${{ matrix.adapter }}/LICENSE + - uses: actions/checkout@main + - run: cp -f ./mapper/LICENSE ./adapters/${{ matrix.adapter }}/LICENSE - name: '>> test & publish adapter / ${{ matrix.adapter }} <<' id: publish uses: k-paxian/dart-package-publisher@master diff --git a/.gitignore b/.gitignore index 801d605f..a3be7707 100644 --- a/.gitignore +++ b/.gitignore @@ -7,12 +7,6 @@ build/ # If you're building an application, you may want to check-in your pubspec.lock pubspec.lock - -# Directory created by dartdoc -# If you don't generate documentation locally you can remove this line. -doc/api/ - +# Idea stuff *.iml -.idea - -*.reflectable.dart \ No newline at end of file +.idea \ No newline at end of file diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 63951996..00000000 --- a/LICENSE +++ /dev/null @@ -1,29 +0,0 @@ -BSD 3-Clause License - -Copyright (c) 2018-2021, Alexander Mazuruk -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/LICENSE b/LICENSE new file mode 120000 index 00000000..0b28e3bd --- /dev/null +++ b/LICENSE @@ -0,0 +1 @@ +./mapper/LICENSE \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index 1a328d10..00000000 --- a/README.md +++ /dev/null @@ -1,1331 +0,0 @@ -[![Build Status][ci-badge]][ci-badge-url] -[![pub package](https://img.shields.io/pub/v/dart_json_mapper.svg)](https://pub.dartlang.org/packages/dart_json_mapper) - -This package allows programmers to annotate Dart objects in order to - Serialize / Deserialize them to / from JSON. - -## Why? - -* Compatible with **all** target platforms for Dart language, **NO** dependency on `dart:mirrors`, one of the reasons is described [here][1]. -* No need to extend your classes from **any** mixins/base/abstract classes to keep code leaner -* No enforced [private constructors][17], do not require any constructors at all for your data-only classes -* No magic `_$` prefixes, No enforced `static` fields in your classes -* Clean and simple setup, transparent and straight-forward usage with **no heavy maintenance** -* Inspired by [json2typescript][4], [serde][5], [gson][6], feature parity with highly popular [Java Jackson][12] and only **4** [annotations](#annotations) to remember to cover all possible use cases. -* **No extra boilerplate**, no messy extra `*.g.dart` files per *each* meaningful file (single root-level file which contains all of the generated code) -* **Complementary adapters** full control over the process when you strive for maximum flexibility. -* `Configuration over code` brings **predictability** to your codebase, while reducing overall amount of code to read / maintain -* Because Serialization/Deserialization is **NOT** a responsibility of your Model classes. - -Dart classes reflection mechanism is based on [reflectable][3] library. -This means "extended types information" is auto-generated out of existing Dart program -guided by the annotated classes **only**, as the result types information is accessible at runtime, at a reduced cost. - - -![](banner.svg) - -* [Basic setup](#basic-setup) -* [Annotations](#annotations) -* [Builder](#builder) -* [Known limitations](#known-limitations) -* [Documentation][docs] -* [Configuration use cases](#format-datetime--num-types) - * [Extended classes](#inherited-classes-derived-from-abstract--base-class) - * [Classes with Mixins](#classes-enhanced-with-mixins-derived-from-abstract-class) - * [Immutable classes](#example-with-immutable-class) - * [Get or Set fields](#get-or-set-fields) - * [Constructor parameters](#constructor-parameters) - * [Unmapped properties](#unmapped-properties) - * [DateTime / num types](#format-datetime--num-types) - * [Iterable types](#iterable-types) - * [Value injection](#value-injection) - * [Enum types](#enum-types) - * [Enums having String / num values](#enums-having-string--num-values) - * [Name casing styles](#name-casing-styles-pascal-kebab-snake-snakeallcaps) - * [Serialization template](#serialization-template) - * [Deserialization template](#deserialization-template) - * [Custom types](#custom-types) - * [Nesting](#nesting-configuration) - * [Name aliases](#name-aliases-configuration) - * [Relative path reference to parent field from nested object "../id"](#relative-path-reference-to-parent-field-from-nested-object-id) - * [Relative path reference to parent itself from nested object ".."](#relative-path-reference-to-parent-itself-from-nested-object-) - * [Schemes](#schemes) - * [Objects flattening](#objects-flattening) - * [Objects cloning](#objects-cloning) -* [Adapters](#complementary-adapter-libraries) - * [How to use adapter?](#complementary-adapter-libraries) - * [![pub package](https://img.shields.io/pub/v/dart_json_mapper_built.svg)](https://pub.dartlang.org/packages/dart_json_mapper_built) | [dart_json_mapper_built](adapters/built) | [Built Collection][16] - * [![pub package](https://img.shields.io/pub/v/dart_json_mapper_mobx.svg)](https://pub.dartlang.org/packages/dart_json_mapper_mobx) | [dart_json_mapper_mobx](adapters/mobx) | [MobX][7] - * [![pub package](https://img.shields.io/pub/v/dart_json_mapper_fixnum.svg)](https://pub.dartlang.org/packages/dart_json_mapper_fixnum) | [dart_json_mapper_fixnum](adapters/fixnum) | [Fixnum][8] - * [![pub package](https://img.shields.io/pub/v/dart_json_mapper_flutter.svg)](https://pub.dartlang.org/packages/dart_json_mapper_flutter) | [dart_json_mapper_flutter](adapters/flutter) | [Flutter][11] - -## Basic setup - -Please add the following dependencies to your `pubspec.yaml`: - -```yaml -dependencies: - dart_json_mapper: -dev_dependencies: - build_runner: -``` - -Say, you have a dart program *main.dart* having some classes intended to be traveling to JSON and back. -- First thing you should do is to put `@jsonSerializable` annotation on each of those classes -- Next step is to auto generate *main.mapper.g.dart* file. And afterwards import that file into *main.dart* - -**lib/main.dart** -```dart -import 'package:dart_json_mapper/dart_json_mapper.dart' show JsonMapper, jsonSerializable, JsonProperty; - -import 'main.mapper.g.dart' show initializeJsonMapper; - -@jsonSerializable // This annotation let instances of MyData travel to/from JSON -class MyData { - int a = 123; - - @JsonProperty(ignore: true) - bool b; - - @JsonProperty(name: 'd') - String c; - - MyData(this.a, this.b, this.c); -} - -void main() { - initializeJsonMapper(); - - print(JsonMapper.serialize(MyData(456, true, "yes"))); -} -``` -output: -```json -{ - "a": 456, - "d": "yes" -} -``` - -Go ahead and create / update `build.yaml` file in your project root directory with the following snippet: - -```yaml -targets: - $default: - builders: - dart_json_mapper: - generate_for: - # here should be listed entry point files having 'void main()' function - - lib/main.dart - - # This part is needed to tell original reflectable builder to stay away - # it overrides default options for reflectable builder to an **empty** set of files - reflectable: - generate_for: - - no/files -``` - -Now run the code generation step with the root of your package as the current directory: - -```shell -> dart run build_runner build --delete-conflicting-outputs -``` - -**You'll need to re-run code generation each time you are making changes to `lib/main.dart`** -So for development time, use `watch` like this - -```shell -> dart run build_runner watch --delete-conflicting-outputs -``` - -Each time you modify your project code, all `*.mapper.g.dart` files will be updated as well. -- Next step is to add `*.mapper.g.dart` to your .gitignore -- And this is it, you are all set and ready to go. Happy coding! - -## Format DateTime / num types - -In order to format `DateTime` or `num` instance as a JSON string, it is possible to -provide [intl][2] based formatting patterns. - -**DateTime** -```dart -@JsonProperty(converterParams: {'format': 'MM-dd-yyyy H:m:s'}) -DateTime lastPromotionDate = DateTime(2008, 05, 13, 22, 33, 44); - -@JsonProperty(converterParams: {'format': 'MM/dd/yyyy'}) -DateTime hireDate = DateTime(2003, 02, 28); -``` -output: -```json -{ -"lastPromotionDate": "05-13-2008 22:33:44", -"hireDate": "02/28/2003" -} -``` - -**num** -```dart -@JsonProperty(converterParams: {'format': '##.##'}) -num salary = 1200000.246; -``` -output: -```json -{ -"salary": "1200000.25" -} -``` - -As well, it is possible to utilize `converterParams` map to provide custom -parameters to your [custom converters](#custom-types). - -## Get or Set fields - -When relying on Dart `getters / setters`, no need to annotate them. -But when you have custom `getter / setter` methods, you should provide annotations for them. - -```dart -@jsonSerializable -class AllPrivateFields { - String? _name; - String? _lastName; - - set name(dynamic value) { - _name = value; - } - - String? get name => _name; - - @JsonProperty(name: 'lastName') - void setLastName(dynamic value) { - _lastName = value; - } - - @JsonProperty(name: 'lastName') - String? getLastName() => _lastName; -} - -// given -final json = '''{"name":"Bob","lastName":"Marley"}'''; - -// when -final instance = JsonMapper.deserialize(json); - -// then -expect(instance.name, 'Bob'); -expect(instance.getLastName(), 'Marley'); - -// when -final targetJson = JsonMapper.serialize(instance, SerializationOptions(indent: '')); - -// then -expect(targetJson, json); -``` - -## Example with immutable class - -```dart -@jsonSerializable -enum Color { red, blue, green, brown, yellow, black, white } - -@jsonSerializable -class Car { - @JsonProperty(name: 'modelName') - String model; - - Color color; - - @JsonProperty(ignore: true) - Car replacement; - - Car(this.model, this.color); -} - -@jsonSerializable -class Immutable { - final int id; - final String name; - final Car car; - - const Immutable(this.id, this.name, this.car); -} - -print( - JsonMapper.serialize( - Immutable(1, 'Bob', Car('Audi', Color.green)) - ) -); -``` -output: -```json -{ - "id": 1, - "name": "Bob", - "car": { - "modelName": "Audi", - "color": "green" - } -} -``` - -## Constructor parameters - -Sometimes you don't really care or don't want to store some json property as a dedicated class field, -but instead, you would like to use it's value in constructor to calculate other class properties. -This way you don't have a convenience to annotate a class field, but you could utilize constructor parameter for that. - -With the input JSON like this: -```json -{"LogistikTeileInOrdnung":"true"} -``` - -You could potentially have a class like this: -```dart -@jsonSerializable -class BusinessObject { - final bool logisticsChecked; - final bool logisticsOK; - - BusinessObject() - : logisticsChecked = false, - logisticsOK = true; - - @jsonConstructor - BusinessObject.fromJson( - @JsonProperty(name: 'LogistikTeileInOrdnung') String processed) - : logisticsChecked = processed != null && processed != 'null', - logisticsOK = processed == 'true'; -} -``` - -## Unmapped properties - -If you are looking for an alternative to Java Jackson `@JsonAnySetter / @JsonAnyGetter` -It is possible to configure the same scenario as follows: - -```dart -@jsonSerializable -class UnmappedProperties { - String name; - - Map _extraPropsMap = {}; - - @jsonProperty - void unmappedSet(String name, dynamic value) { - _extraPropsMap[name] = value; - } - - @jsonProperty - Map unmappedGet() { - return _extraPropsMap; - } -} - -// given -final json = '''{"name":"Bob","extra1":1,"extra2":"xxx"}'''; - -// when -final instance = JsonMapper.deserialize(json); - -// then -expect(instance.name, 'Bob'); -expect(instance._extraPropsMap['name'], null); -expect(instance._extraPropsMap['extra1'], 1); -expect(instance._extraPropsMap['extra2'], 'xxx'); -``` - -## Iterable types - -Since Dart language has no possibility to create typed iterables dynamically, it's a bit of a challenge -to create exact typed lists/sets/etc via reflection approach. Those types has to be declared explicitly. - -For example List() will produce `List` type which can't be directly set to the concrete -target field `List` for instance. So obvious workaround will be to cast -`List => List`, which can be performed as `List().cast()`. - -Basic iterable based generics using Dart built-in types like `List, List, List, -List, Set, Set, Set, Set, etc.` supported out of the box. - -In order to do so, we'll use `Value Decorator Functions` inspired by Decorator pattern. - -To solve this we have a few options: - -### Provide value decorator functions manually - -* As a global adapter - ```dart - JsonMapper().useAdapter(JsonMapperAdapter( - valueDecorators: { - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast() - }) - ); - - final json = '[{"modelName": "Audi", "color": "green"}]'; - final myCarsList = JsonMapper.deserialize>(json); - final myCarsSet = JsonMapper.deserialize>(json); - ``` - -* As an class inline code - ```dart - @jsonSerializable - @Json(valueDecorators: CarsContainer.valueDecorators) - class CarsContainer { - static Map valueDecorators() => - { - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast() - }; - - List myCarsList; - Set myCarsSet; - } - ``` - -### Rely on builder to generate global adapter having value decorator functions automatically - -Builder will scan project code during build pass and will generate value decorator functions for **all** -annotated public classes in advance. - -For custom iterable types like `List / Set` we **don't** have to provide value decorators -as showed in a code snippet below, thanks to the [Builder](#builder) - -```dart -final json = '[{"modelName": "Audi", "color": "green"}]'; -final myCarsList = JsonMapper.deserialize>(json); -final myCarsSet = JsonMapper.deserialize>(json); -``` - -For custom iterable types like `HashSet / UnmodifiableListView` we should configure -[Builder](#builder) to support that. - -### OR an *easy case* - -When you are able to pre-initialize your Iterables with an empty instance, -like on example below, you don't need to mess around with value decorators. - -```dart -@jsonSerializable -class Item {} - -@jsonSerializable -class IterablesContainer { - List list = []; - Set set = {}; -} - -// given -final json = '''{"list":[{}, {}],"set":[{}, {}]}'''; - -// when -final target = JsonMapper.deserialize(json); - -// then -expect(target.list, TypeMatcher>()); -expect(target.list.first, TypeMatcher()); -expect(target.list.length, 2); - -expect(target.set, TypeMatcher>()); -expect(target.set.first, TypeMatcher()); -expect(target.set.length, 2); -``` - -### List of Lists of Lists ... - -Using value decorators, it's possible to configure nested lists of -virtually any depth. - -```dart -@jsonSerializable -class Item {} - -@jsonSerializable -@Json(valueDecorators: ListOfLists.valueDecorators) -class ListOfLists { - static Map valueDecorators() => - { - typeOf>>(): (value) => value.cast>(), - typeOf>(): (value) => value.cast() - }; - - List>? lists; -} - -// given -final json = '''{ - "lists": [ - [{}, {}], - [{}, {}, {}] - ] -}'''; - -// when -final target = JsonMapper.deserialize(json)!; - -// then -expect(target.lists?.length, 2); -expect(target.lists?.first.length, 2); -expect(target.lists?.last.length, 3); -expect(target.lists?.first.first, TypeMatcher()); -expect(target.lists?.last.first, TypeMatcher()); -``` - -## Enum types - -Enum construction in Dart has a specific meaning, and has to be treated accordingly. - -Generally, we always have to bear in mind following cases around Enums: - -* Your own Enums declared as part of your program code, thus they **can** be annotated. - - So whenever possible, you should annotate your Enum declarations as follows - ```dart - @jsonSerializable - enum Color { red, blue, green, brown, yellow, black, white } - ``` - -* Standalone Enums from third party packages, they **can not** be annotated. - - So you should register those enums via adapter as follows: - ```dart - import 'package:some_package' show ThirdPartyEnum, ThirdPartyEnum2; - - JsonMapper().useAdapter( - JsonMapperAdapter(enumValues: { - ThirdPartyEnum: ThirdPartyEnum.values, - ThirdPartyEnum2: ThirdPartyEnum2.values - }) - ); - ``` - - Enum`.values` refers to a list of all possible enum values, it's a handy built in capability of all - enum based types. Without providing all values it's not possible to traverse it's values properly. - -There are few enum converters provided out of the box: - -* `enumConverterShort` produces values like: ["red", "blue", "green"], unless custom value mappings provided -* `enumConverter` produces values like: ["Color.red", "Color.blue", "Color.green"] -* `enumConverterNumeric` produces values like: [0, 1, 2] - -Default converter for **all** enums is `enumConverterShort` - -In case we would like to make a switch **globally** to the different one, or even custom converter for all enums - -```dart -// lib/main.dart -void main() { - initializeJsonMapper(adapters: [ - JsonMapperAdapter(converters: {Enum: enumConverter}) - ]); -} -``` - -## Enums having `String` / `num` values - -What are the options if you would like to serialize / deserialize Enum values as custom values? - -* Wrap each enum as a class, to reflect it's values as something different -* Use other libraries for sealed classes like [SuperEnum][14], [Freezed][15] - -OR - -While registering standalone enums via adapter it is possible to specify value `mapping` for each enum, -alongside `defaultValue` which will be used during deserialization of _unknown_ Enum values. - -```dart -import 'package:some_package' show ThirdPartyEnum, ThirdPartyEnum2, ThirdPartyEnum3; - -JsonMapper().useAdapter( - JsonMapperAdapter(enumValues: { - ThirdPartyEnum: ThirdPartyEnum.values, - ThirdPartyEnum2: EnumDescriptor( - values: ThirdPartyEnum2.values, - mapping: { - ThirdPartyEnum2.A: 'AAA', - ThirdPartyEnum2.B: 'BBB', - ThirdPartyEnum2.C: 'CCC' - } - ), - ThirdPartyEnum3: EnumDescriptor( - values: ThirdPartyEnum3.values, - defaultValue: ThirdPartyEnum3.A, - mapping: { - ThirdPartyEnum3.A: -1.2, - ThirdPartyEnum3.B: 2323, - ThirdPartyEnum3.C: 1.2344 - } - ) - }) -); -``` - -So this way, you'll still operate on classic / pure Dart enums and with all that sending & receiving -them as mapped values. After registering those enums once, no matter where in the code you'll use them -later they will be handled according to the configuration given w/o annotating them beforehand. - -## Inherited classes derived from abstract / base class - -Please use complementary `@Json(discriminatorProperty: 'type')` annotation for **abstract or base** class -to specify which class field(`type` in this snippet below) will be used to store a value for distinguishing concrete subclass type. - -Please use complementary `@Json(discriminatorValue: )` annotation for **subclasses** -derived from abstract or base class. If this annotation omitted, **class name** will be used as `discriminatorValue` - -This ensures, that _dart-json-mapper_ will be able to reconstruct the object with the proper type during deserialization process. - -``` dart -@jsonSerializable -enum BusinessType { Private, Public } - -@jsonSerializable -@Json(discriminatorProperty: 'type') -abstract class Business { - String? name; - BusinessType? type; -} - -@jsonSerializable -@Json(discriminatorValue: BusinessType.Private) -class Hotel extends Business { - int stars; - - Hotel(this.stars); -} - -@jsonSerializable -@Json(discriminatorValue: BusinessType.Public) -class Startup extends Business { - int userCount; - - Startup(this.userCount); -} - -@jsonSerializable -class Stakeholder { - String fullName; - List businesses = []; - - Stakeholder(this.fullName, this.businesses); -} - -// given -final jack = Stakeholder("Jack", [Startup(10), Hotel(4)]); - -// when -final String json = JsonMapper.serialize(jack); -final Stakeholder target = JsonMapper.deserialize(json); - -// then -expect(target.businesses[0], TypeMatcher()); -expect(target.businesses[1], TypeMatcher()); -``` - -## Classes enhanced with Mixins derived from abstract class - -Similar configuration as above also works well for class mixins - -```dart -@Json(discriminatorProperty: 'type') -@jsonSerializable -abstract class A {} - -@jsonSerializable -mixin B on A {} - -@jsonSerializable -class C extends A with B {} - -@jsonSerializable -class MixinContainer { - final Set ints; - final B b; - - const MixinContainer(this.ints, this.b); -} - -// given -final json = r'''{"ints":[1,2,3],"b":{"type":"C"}}'''; -final instance = MixinContainer({1, 2, 3}, C()); - -// when -final targetJson = JsonMapper.serialize(instance); -final target = JsonMapper.deserialize(targetJson); - -// then -expect(targetJson, json); -expect(target, TypeMatcher()); -expect(target.b, TypeMatcher()); -``` - -## Serialization template - -In case you already have an instance of huge JSON Map object -and portion of it needs to be surgically updated, then you can pass -your `Map` instance as a `template` parameter for -`SerializationOptions` - -```dart -// given -final template = {'a': 'a', 'b': true}; - -// when -final json = JsonMapper.serialize(Car('Tesla S3', Color.black), - SerializationOptions(indent: '', template: template)); - -// then -expect(json, - '''{"a":"a","b":true,"modelName":"Tesla S3","color":"black"}'''); -``` - -## Deserialization template - -In case you need to deserialize specific `Map` type then you can pass -typed instance of it as a `template` parameter for `DeserializationOptions`. - -Since typed `Map` instance cannot be created dynamically due to Dart -language nature, so you are providing ready made instance to use for deserialization output. - -```dart -// given -final json = '{"black":1,"blue":2}'; - -// when -final target = JsonMapper.deserialize( - json, DeserializationOptions(template: {})); - -// then -expect(target, TypeMatcher>()); -expect(target.containsKey(Color.black), true); -expect(target.containsKey(Color.blue), true); -expect(target[Color.black], 1); -expect(target[Color.blue], 2); -``` - -## Name casing styles [Pascal, Kebab, Snake, SnakeAllCaps] - -Assuming your Dart code is following [Camel case style][9], but that is not -always `true` for JSON models, they could follow -[one of those popular - Pascal, Kebab, Snake, SnakeAllCaps][10] styles, right? - -That's why we need a smart way to manage that, instead of -hand coding each property using `@JsonProperty(name: ...)` it is possible to pass -`CaseStyle` parameter to serialization / deserialization methods OR specify this -preference on a class level using `@Json(caseStyle: CaseStyle.kebab)`. - -```dart -@jsonSerializable -enum Color { red, blue, gray, grayMetallic, green, brown, yellow, black, white } - -@jsonSerializable -@Json(caseStyle: CaseStyle.kebab) -class NameCaseObject { - String mainTitle; - bool hasMainProperty; - Color primaryColor; - - NameCaseObject({ - this.mainTitle, - this.hasMainProperty, - this.primaryColor = Color.grayMetallic}); -} - -/// Serialization - -// given -final instance = NameCaseObject(mainTitle: 'title', hasMainProperty: true); -// when -final json = JsonMapper.serialize(instance, SerializationOptions(indent: '')); -// then -expect(json, '''{"main-title":"title","has-main-property":true,"primary-color":"gray-metallic"}'''); - -/// Deserialization - -// given -final json = '''{"main-title":"title","has-main-property":true,"primary-color":"gray-metallic"}'''; -// when -final instance = JsonMapper.deserialize(json); -// then -expect(instance.mainTitle, 'title'); -expect(instance.hasMainProperty, true); -expect(instance.primaryColor, Color.grayMetallic); -``` - -## Nesting configuration - -In case if you need to operate on particular portions of huge JSON object and -you don't have a true desire to reconstruct the same deep nested JSON objects -hierarchy with corresponding Dart classes. This section is for you! - -Say, you have a json similar to this one -```json -{ - "root": { - "foo": { - "bar": { - "baz": { - "items": [ - "a", - "b", - "c" - ] - } - } - } - } -} -``` - -And with code similar to this one - -``` dart -@jsonSerializable -@Json(name: 'root/foo/bar') -class BarObject { - @JsonProperty(name: 'baz/items') - List items; - - BarObject({this.items}); -} - -// when -final instance = JsonMapper.deserialize(json); - -// then -expect(instance.items.length, 3); -expect(instance.items, ['a', 'b', 'c']); -``` -you'll have it done nice and quick. - -`@Json(name: 'root/foo/bar')` provides a *root nesting* for the entire annotated class, -this means all class fields will be nested under this 'root/foo/bar' path in Json. - -`@JsonProperty(name: 'baz/items')` provides a field nesting relative to the class *root nesting* - -`name` is compliant with [RFC 6901][rfc6901] JSON pointer - -## Relative path reference to parent field from nested object "../id" - -When it's handy to refer to the parent fields values, it's possible to use path like notation "../" - -```json -[ - {"id":1,"name":"category1","products":[ - {"id":3629,"name":"Apple","features":[{"id":9,"name":"Red Color"}]}, - {"id":5674,"name":"Banana"}]}, - {"id":2,"name":"category2","products":[ - {"id":7834,"name":"Car"}, - {"id":2386,"name":"Truck"} - ]} -] -``` - -```dart -@jsonSerializable -class Feature { - @JsonProperty(name: '../../id') - num categoryId; - - @JsonProperty(name: '../id') - num productId; - - num id; - String name; - - Feature({this.name, this.id}); -} - -@jsonSerializable -class Product { - @JsonProperty(name: '../id') - num categoryId; - - num id; - String name; - - @JsonProperty(ignoreIfNull: true) - List features; - - Product({this.name, this.id, this.features}); -} - -@jsonSerializable -class ProductCategory { - num id; - String name; - List products; - - ProductCategory({this.id, this.name, this.products}); -} -``` - -### Relative path reference to parent itself from nested object ".." - -In some cases objects need to interact with their (owning) parent object. The easiest pattern is to -add a referencing field for the parent which is initialized during construction of the child object. -The path notation ".." supports this pattern: - -```dart -@jsonSerializable -class Parent { - String? lastName; - List children = []; -} - -@jsonSerializable -class Child { - String? firstName; - - @JsonProperty(name: '..') - Parent parent; - - Child(this.parent); -} -``` - -You are now able to deserialize the following structure: - -```json -{ - "lastName": "Doe", - "children": [ - {"firstName": "Eve"}, - {"firstName": "Bob"}, - {"firstName": "Alice"} -]} -``` - -and each `Child` object will have a reference on it's parent. And this parent field will not leak out -to the serialized JSON object - -## Value injection - -Sometimes you have to *inject* certain values residing outside of a JSON string into the target -deserialized object. Using the `JsonProperty.inject` flag, one may do so. - -```dart -class Outside {} - -@jsonSerializable -class Inside { - String? foo; - - @JsonProperty(name: 'data/instance', inject: true) - Outside? outside; -} -``` - -You may then inject the values in the `deserialize` method: - -```json -{ - "foo": "Bar" -} -``` - -```dart -Outside outsideInstance = Outside(); -final target = JsonMapper.deserialize(json, - DeserializationOptions(injectableValues: {'data': {'instance': outsideInstance}})!; -``` - -## Name aliases configuration - -For cases when aliasing technique is desired, it's possible to optionally merge / route *many* json properties -into *one* class field. First name from the list is treated as *primary* i.e. used for serialization -direction. The rest of items are treated as aliases joined by the `??` operation. - -```dart -@jsonSerializable -class FieldAliasObject { - // same as => alias ?? fullName ?? name - @JsonProperty(name: ['alias', 'fullName', 'name']) - final String name; - - const FieldAliasObject({ - this.name, - }); -} -``` - -## Schemes - -Scheme - is a set of annotations associated with common scheme id. -This enables the possibility to map a **single** Dart class to **many** different JSON structures. - -This approach usually useful for distinguishing [DEV, PROD, TEST, ...] environments, w/o producing separate -Dart classes for each environment. - -``` dart -enum Scheme { A, B } - -@jsonSerializable -@Json(name: 'default') -@Json(name: '_', scheme: Scheme.B) -@Json(name: 'root', scheme: Scheme.A) -class Object { - @JsonProperty(name: 'title_test', scheme: Scheme.B) - String title; - - Object(this.title); -} - -// given -final instance = Object('Scheme A'); -// when -final json = JsonMapper.serialize(instance, SerializationOptions(indent: '', scheme: Scheme.A)); -// then -expect(json, '''{"root":{"title":"Scheme A"}}'''); - -// given -final instance = Object('Scheme B'); -// when -final json = JsonMapper.serialize(instance, SerializationOptions(indent: '', scheme: Scheme.B)); -// then -expect(json, '''{"_":{"title_test":"Scheme B"}}'''); - -// given -final instance = Object('No Scheme'); -// when -final json = JsonMapper.serialize(instance, SerializationOptions(indent: '')); -// then -expect(json, '''{"default":{"title":"No Scheme"}}'''); -``` - -## Objects flattening - -Consider a paginated API which returns a page of results along with pagination metadata that -identifies how many results were requested, how far into the total set of results we are looking at, -and how many results exist in total. If we are paging through a total of 1053 results 100 at a time, -the third page may look like this: - -```json -{ - "limit": 100, - "offset": 200, - "total": 1053, - "users": [ - {"id": "49824073-979f-4814-be10-5ea416ee1c2f", "username": "john_doe"}, - ... - ] -} -``` - -This same scheme with `limit` and `offset` and `total` fields may be shared across lots of different API queries. -For example we may want paginated results when querying for users, for issues, for projects, etc. - -In this case it can be convenient to factor the common pagination metadata fields into a -reusable `Pagination` shared class that can be flattened & blended into each API response object. - -```dart -@jsonSerializable -class Pagination { - num? limit; - num? offset; - num? total; -} - -@jsonSerializable -class UsersPage { - @JsonProperty(flatten: true) - Pagination? pagination; - - List? users; -} -``` - -If it's desired to define common prefix for flattened fields -`@JsonProperty.name` attribute could be utilized for that alongside with `flatten: true` attribute. - -Case style could be defined as usual, on a class level `@Json(caseStyle: CaseStyle.snake)` and/or global scope -with `DeserializationOptions(caseStyle: CaseStyle.kebab)` and `SerializationOptions(caseStyle: CaseStyle.kebab)` -If omitted, `CaseStyle.camel` is used by default. - -```dart -@jsonSerializable -class Pagination { - num? limit; - num? offset; - num? total; -} - -@jsonSerializable -@Json(caseStyle: CaseStyle.snake) -class UsersPage { - @JsonProperty(name: 'pagination', flatten: true) - Pagination? pagination; - - List? users; -} -``` - -This will output - -```json -{ - "pagination_limit": 100, - "pagination_offset": 200, - "pagination_total": 1053, - "users": [ - {"id": "49824073-979f-4814-be10-5ea416ee1c2f", "username": "john_doe"}, - ... - ] -} -``` - -## Objects cloning - -If you are wondering how to deep-clone Dart Objects, -or even considering using libraries like [Freezed][15] to accomplish that, -then this section probably will be useful for you - -```dart -// given -final car = Car('Tesla S3', Color.black); - -// when -final cloneCar = JsonMapper.copy(car); - -// then -expect(cloneCar == car, false); -expect(cloneCar.color == car.color, true); -expect(cloneCar.model == car.model, true); -``` - -Or if you would like to override some properties for the clonned object instance - -```dart -// given -final car = Car('Tesla S3', Color.black); - -// when -final cloneCar = JsonMapper.copyWith(car, {'color': 'blue'}); // overriding Black by Blue - -// then -expect(cloneCar == car, false); -expect(cloneCar.color, Color.blue); -expect(cloneCar.model, car.model); -``` - -## Custom types - -For the very custom types, specific ones, or doesn't currently supported by this library, you can -provide your own custom Converter class per each custom runtimeType. - -```dart -/// Abstract class for custom converters implementations -abstract class ICustomConverter { - dynamic toJSON(T object, SerializationContext context); - T fromJSON(dynamic jsonValue, DeserializationContext context); -} -``` - -All you need to get going with this, is to implement this abstract class - -```dart -class CustomStringConverter implements ICustomConverter { - const CustomStringConverter() : super(); - - @override - String fromJSON(dynamic jsonValue, DeserializationContext context) { - return jsonValue; - } - - @override - dynamic toJSON(String object, SerializationContext context) { - return '_${object}_'; - } -} -``` - -And register it afterwards, if you want to have it applied for **all** occurrences of specified type - -```dart -JsonMapper().useAdapter(JsonMapperAdapter( - converters: { - String: CustomStringConverter() - }) -); -``` - -OR use it individually on selected class fields, via `@JsonProperty` annotation - -```dart -@JsonProperty(converter: CustomStringConverter()) -String title; -``` - -## Annotations - -* `@JsonSerializable()` or `@jsonSerializable` for short, It's a **required** marker annotation for Class, Mixin, or Enum declarations. -Use it to mark all the Dart objects you'd like to be traveling to / from JSON - * Has **NO** params -* `@JsonConstructor()` or `@jsonConstructor` for short, It's an **optional** constructor only marker annotation. -Use it to mark specific Dart class constructor you'd like to be used during deserialization. - * *scheme* dynamic [Scheme](#schemes) marker to associate this meta information with particular mapping scheme -* `@Json(...)` It's an **optional** annotation for class declaration, describes a Dart object to JSON Object mapping. -Why it's not a `@JsonObject()`? just for you to type less characters :smile: - * *name* Defines [RFC 6901][rfc6901] JSON pointer, denotes the json Object root name/path to be used for mapping. -Example: `'foo', 'bar', 'foo/bar/baz'` - * *caseStyle* The most popular ways to combine words into a single string. Based on assumption: That all Dart class fields initially given as CaseStyle.camel - * *discriminatorProperty* Defines a class property to be used as a source of truth for discrimination logic in a hierarchy of inherited classes. Usually used on annotation of [abstract] class - * *discriminatorValue* Defines a custom override value for a discriminator. Usually used on annotations of subclasses, to distinguish it from each other. Default value: annotated _class name_ - * *valueDecorators* Provides an inline way to specify a static function which will return a Map of value decorators, to support type casting activities for Map, and other generic Iterables instead of global adapter approach - * *ignoreNullMembers* If set to `true` Null class members will be excluded from serialization process - * *ignoreDefaultMembers* If set to `true` Class members having default value will be excluded from serialization process - * *processAnnotatedMembersOnly* If set to `true` Only annotated class members will be processed - * *allowCircularReferences* As of `int` type. Allows certain number of circular object references during serialization. - * *scheme* dynamic [Scheme](#schemes) marker to associate this meta information with particular mapping scheme -* `@JsonProperty(...)` It's an **optional** class member annotation, describes JSON Object property mapping. - * *name* Defines [RFC 6901][rfc6901] JSON pointer, denotes the name/path/aliases to be used for property mapping relative to the class *root nesting* -Example: `'foo', 'bar', 'foo/bar/baz', ['foo', 'bar', 'baz'], '../foo/bar'` - * *scheme* dynamic [Scheme](#schemes) marker to associate this meta information with particular mapping scheme - * *converter* Declares custom converter instance, to be used for annotated field serialization / deserialization - * *converterParams* A `Map` of parameters to be passed to the converter instance - * *flatten* Declares annotated field to be flattened and merged with the host object - * *notNull* A bool declares annotated field as NOT NULL for serialization / deserialization process - * *required* A bool declares annotated field as required for serialization / deserialization process i.e. needs to be present explicitly - * *inject* A bool Declares annotated field value to be directly injected from [DeserializationOptions.injectableValues] during deserialization process - * *ignore* A bool declares annotated field as ignored so it will be excluded from serialization / deserialization process - * *ignoreForSerialization* A bool declares annotated field as excluded from serialization process - * *ignoreForDeserialization* A bool declares annotated field as excluded from deserialization process - * *ignoreIfNull* A bool declares annotated field as ignored if it's value is null so it will be excluded from serialization process - * *ignoreIfDefault* A bool declares annotated field as ignored if it's value is equals to default so it will be excluded from serialization process - * *defaultValue* Defines field default value - -## Builder - -This library introduces own builder used to pre-build Default adapter for your application code. -Technically, provided builder wraps the [reflectable][3] builder output and adds a bit more generated code to it. - -Builder can be configured using `build.yaml` file at the root of your project. - -```yaml -targets: - $default: - builders: - # This part configures dart_json_mapper builder - dart_json_mapper: - options: - iterables: List, Set, HashSet, UnmodifiableListView - generate_for: - - example/**.dart - - test/_test.dart - - # This part is needed to tell original reflectable builder to stay away - # it overrides default options for reflectable builder to an **empty** set of files - reflectable: - generate_for: - - no/files -``` - -Primary mission for the builder at this point is to generate Iterables support for your custom classes. - -Options: - -```yaml -iterables: List, Set, HashSet, UnmodifiableListView -``` - -This option if omitted defaults to `List, Set` is used to configure a list of iterables you would like -to be supported for you out of the box. For example you have a `Car` class in your app and -would like to have `List` and `Set` support for deserialization, then you could omit this option. - -And when you would like to have a deserialization support for other iterables like `HashSet, UnmodifiableListView` -you could add them to the list for this option. - -## Known limitations - -* [Dart code obfuscation][obfuscation]. If you are using or planning to use `extra-gen-snapshot-options=--obfuscate` option with your Flutter project, -this library shouldn't be your primary choice then. At the moment there is no workaround for this to play nicely together. - -## Complementary adapter libraries - -If you want a seamless integration with popular use cases, feel free to pick an -existing adapter or create one for your use case and make a PR to this repo. - -**Adapter** - is a library which contains a bundle of pre-configured: - -* custom [converters](#custom-types) -* custom [value decorators](#iterable-types) -* custom typeInfo decorators - -For example, you would like to refer to `Color` type from Flutter in your model class. - -* Make sure you have following dependencies in your `pubspec.yaml`: - - ```yaml - dependencies: - dart_json_mapper: - dart_json_mapper_flutter: - dev_dependencies: - build_runner: - ``` -* Usually, adapter library exposes `final` adapter definition instance, to be provided as a parameter to `JsonMapper().useAdapter(adapter)` - - ```dart - import 'dart:ui' show Color; - import 'package:dart_json_mapper/dart_json_mapper.dart' show JsonMapper, jsonSerializable; - import 'package:dart_json_mapper_flutter/dart_json_mapper_flutter.dart' show flutterAdapter; - - import 'main.mapper.g.dart' show initializeJsonMapper; - - @jsonSerializable - class ColorfulItem { - String name; - Color color; - - ColorfulItem(this.name, this.color); - } - - void main() { - initializeJsonMapper(adapters: [flutterAdapter]); - - print(JsonMapper.serialize( - ColorfulItem('Item 1', Color(0x003f4f5f)) - )); - } - ``` - output: - ```json - { - "name": "Item 1", - "color": "#003F4F5F" - } - ``` - -### You can easily mix and combine several adapters using following one-liner: - -```dart -JsonMapper() - .useAdapter(fixnumAdapter) - .useAdapter(flutterAdapter) - .useAdapter(mobXAdapter) - .useAdapter(builtAdapter) - .info(); // print out a list of used adapters to console -``` - -[1]: https://github.com/flutter/flutter/issues/1150 -[2]: https://pub.dartlang.org/packages/intl -[3]: https://pub.dartlang.org/packages/reflectable -[4]: https://github.com/appvision-gmbh/json2typescript -[5]: https://github.com/serde-rs/serde -[6]: https://github.com/google/gson -[7]: https://github.com/mobxjs/mobx.dart -[8]: https://github.com/dart-lang/fixnum -[9]: https://en.wikipedia.org/wiki/Camel_case -[10]: https://medium.com/better-programming/string-case-styles-camel-pascal-snake-and-kebab-case-981407998841 -[11]: https://github.com/flutter/flutter -[12]: https://www.baeldung.com/jackson-annotations -[13]: https://pub.dev/packages/build#implementing-your-own-builders -[14]: https://pub.dev/packages/super_enum -[15]: https://pub.dev/packages/freezed -[16]: https://pub.dev/packages/built_collection -[17]: https://github.com/google/json_serializable.dart/issues/1038 - -[obfuscation]: https://flutter.dev/docs/deployment/obfuscate - -[rfc6901]: https://tools.ietf.org/html/rfc6901 - -[docs]: https://pub.dev/documentation/dart_json_mapper/latest/dart_json_mapper/dart_json_mapper-library.html - -[ci-badge]: https://github.com/k-paxian/dart-json-mapper/workflows/Pipeline/badge.svg -[ci-badge-url]: https://github.com/k-paxian/dart-json-mapper/actions?query=workflow%3A%22Pipeline%22 diff --git a/README.md b/README.md new file mode 120000 index 00000000..ae8f9097 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +./mapper/README.md \ No newline at end of file diff --git a/adapters/built/LICENSE b/adapters/built/LICENSE deleted file mode 100644 index e69de29b..00000000 diff --git a/adapters/built/analysis_options.yaml b/adapters/built/analysis_options.yaml index e79fa071..3f9ea865 100644 --- a/adapters/built/analysis_options.yaml +++ b/adapters/built/analysis_options.yaml @@ -1,6 +1,7 @@ -include: package:pedantic/analysis_options.yaml -analyzer: - exclude: - - /*.mapper.g.dart - strong-mode: - implicit-casts: true \ No newline at end of file +include: package:lints/recommended.yaml + +linter: + rules: + unnecessary_parenthesis: true + prefer_const_constructors: true + prefer_final_locals: true \ No newline at end of file diff --git a/adapters/built/lib/dart_json_mapper_built.dart b/adapters/built/lib/dart_json_mapper_built.dart index 755ab590..1c04ef7d 100644 --- a/adapters/built/lib/dart_json_mapper_built.dart +++ b/adapters/built/lib/dart_json_mapper_built.dart @@ -20,24 +20,27 @@ final builtTypeInfoDecorator = BuiltTypeInfoDecorator(); /// Type info decorator provides support for Built types like /// BuiltList, BuiltMap, BuiltSet class BuiltTypeInfoDecorator extends DefaultTypeInfoDecorator { - bool isBuiltList(TypeInfo typeInfo) => - typeInfo.typeName!.indexOf('_BuiltList<') == 0 || - typeInfo.typeName!.indexOf('BuiltList<') == 0; - - bool isBuiltMap(TypeInfo typeInfo) => - typeInfo.typeName!.indexOf('_BuiltMap<') == 0 || - typeInfo.typeName!.indexOf('BuiltMap<') == 0; - - bool isBuiltSet(TypeInfo typeInfo) => - typeInfo.typeName!.indexOf('_BuiltSet<') == 0 || - typeInfo.typeName!.indexOf('BuiltSet<') == 0; + final Map _collectionTypePredicates = { + BuiltList: (TypeInfo typeInfo) => + typeInfo.typeName!.startsWith('_BuiltList<') || + typeInfo.typeName!.startsWith('BuiltList<'), + BuiltMap: (TypeInfo typeInfo) => + typeInfo.typeName!.startsWith('_BuiltMap<') || + typeInfo.typeName!.startsWith('BuiltMap<'), + BuiltSet: (TypeInfo typeInfo) => + typeInfo.typeName!.startsWith('_BuiltSet<') || + typeInfo.typeName!.startsWith('BuiltSet<'), + }; @override TypeInfo decorate(TypeInfo typeInfo) { typeInfo = super.decorate(typeInfo); - typeInfo.isList = typeInfo.isList || isBuiltList(typeInfo); - typeInfo.isSet = typeInfo.isSet || isBuiltSet(typeInfo); - typeInfo.isMap = typeInfo.isMap || isBuiltMap(typeInfo); + typeInfo.isList = + typeInfo.isList || _collectionTypePredicates[BuiltList]!(typeInfo); + typeInfo.isSet = + typeInfo.isSet || _collectionTypePredicates[BuiltSet]!(typeInfo); + typeInfo.isMap = + typeInfo.isMap || _collectionTypePredicates[BuiltMap]!(typeInfo); typeInfo.isIterable = typeInfo.isIterable || typeInfo.isList || typeInfo.isSet; typeInfo.genericType = detectGenericType(typeInfo); @@ -46,14 +49,10 @@ class BuiltTypeInfoDecorator extends DefaultTypeInfoDecorator { @override Type? detectGenericType(TypeInfo typeInfo) { - if (isBuiltList(typeInfo)) { - return BuiltList; - } - if (isBuiltSet(typeInfo)) { - return BuiltSet; - } - if (isBuiltMap(typeInfo)) { - return BuiltMap; + for (var entry in _collectionTypePredicates.entries) { + if (entry.value(typeInfo)) { + return entry.key; + } } return super.detectGenericType(typeInfo); } @@ -112,4 +111,4 @@ final builtAdapter = JsonMapperAdapter( BuiltList: defaultIterableConverter, BuiltSet: defaultIterableConverter, BuiltMap: builtMapConverter, - }); + }); \ No newline at end of file diff --git a/adapters/built/pubspec.yaml b/adapters/built/pubspec.yaml index a8267b1f..2b1800a3 100644 --- a/adapters/built/pubspec.yaml +++ b/adapters/built/pubspec.yaml @@ -6,13 +6,13 @@ description: > serialize / deserialize them from / to JSON. homepage: https://github.com/k-paxian/dart-json-mapper/tree/master/adapters/built environment: - sdk: '>=2.12.0 <3.0.0' + sdk: '>=3.0.0 <4.0.0' dependencies: dart_json_mapper: '>=2.1.12 <3.0.0' built_collection: ^5.1.1 dev_dependencies: reflectable: - pedantic: + lints: build_runner: build_test: test: diff --git a/adapters/fixnum/LICENSE b/adapters/fixnum/LICENSE deleted file mode 100644 index e69de29b..00000000 diff --git a/adapters/fixnum/analysis_options.yaml b/adapters/fixnum/analysis_options.yaml index e79fa071..ea2c9e94 100644 --- a/adapters/fixnum/analysis_options.yaml +++ b/adapters/fixnum/analysis_options.yaml @@ -1,6 +1 @@ -include: package:pedantic/analysis_options.yaml -analyzer: - exclude: - - /*.mapper.g.dart - strong-mode: - implicit-casts: true \ No newline at end of file +include: package:lints/recommended.yaml \ No newline at end of file diff --git a/adapters/fixnum/lib/dart_json_mapper_fixnum.dart b/adapters/fixnum/lib/dart_json_mapper_fixnum.dart index 6e8c13f0..40988012 100644 --- a/adapters/fixnum/lib/dart_json_mapper_fixnum.dart +++ b/adapters/fixnum/lib/dart_json_mapper_fixnum.dart @@ -43,7 +43,7 @@ class Int32Converter implements ICustomConverter { @override dynamic toJSON(Int32 object, SerializationContext context) { - return object is Int32 ? object.toInt() : object; + return object.toInt(); } } @@ -64,7 +64,7 @@ class Int64Converter implements ICustomConverter { @override dynamic toJSON(Int64 object, SerializationContext context) { - return object is Int64 ? object.toInt() : object; + return object.toInt(); } } diff --git a/adapters/fixnum/pubspec.yaml b/adapters/fixnum/pubspec.yaml index ebdef362..9f357aa5 100644 --- a/adapters/fixnum/pubspec.yaml +++ b/adapters/fixnum/pubspec.yaml @@ -6,13 +6,13 @@ description: > serialize / deserialize them from / to JSON. homepage: https://github.com/k-paxian/dart-json-mapper/tree/master/adapters/fixnum environment: - sdk: '>=2.14.0 <3.0.0' + sdk: '>=3.0.0 <4.0.0' dependencies: dart_json_mapper: '>=2.1.12 <3.0.0' fixnum: ^1.0.0 dev_dependencies: reflectable: - pedantic: + lints: build_runner: build_test: test: diff --git a/adapters/fixnum/test/test.basics.dart b/adapters/fixnum/test/test.basics.dart index fb8436d7..02636f11 100644 --- a/adapters/fixnum/test/test.basics.dart +++ b/adapters/fixnum/test/test.basics.dart @@ -1,4 +1,4 @@ -part of json_mapper_fixnum.test; +part of '_test.dart'; @jsonSerializable class Int32IntData { diff --git a/adapters/flutter/LICENSE b/adapters/flutter/LICENSE deleted file mode 100644 index e69de29b..00000000 diff --git a/adapters/flutter/analysis_options.yaml b/adapters/flutter/analysis_options.yaml index e79fa071..ea2c9e94 100644 --- a/adapters/flutter/analysis_options.yaml +++ b/adapters/flutter/analysis_options.yaml @@ -1,6 +1 @@ -include: package:pedantic/analysis_options.yaml -analyzer: - exclude: - - /*.mapper.g.dart - strong-mode: - implicit-casts: true \ No newline at end of file +include: package:lints/recommended.yaml \ No newline at end of file diff --git a/adapters/flutter/example/example.mapper.g.dart b/adapters/flutter/example/example.mapper.g.dart index e274e723..4e94ef48 100644 --- a/adapters/flutter/example/example.mapper.g.dart +++ b/adapters/flutter/example/example.mapper.g.dart @@ -1,21 +1,21 @@ -// This file has been generated by the dart_json_mapper package. +// This file has been generated by the dart_json_mapper v2.2.9 // https://github.com/k-paxian/dart-json-mapper // @dart = 2.12 import 'example.dart' as x0 show FlutterClass; -import 'package:dart_json_mapper/dart_json_mapper.dart' show JsonMapper, JsonMapperAdapter, typeOf; +import 'package:dart_json_mapper/dart_json_mapper.dart' show JsonMapper, JsonMapperAdapter, SerializationOptions, DeserializationOptions, typeOf; // This file has been generated by the reflectable package. // https://github.com/dart-lang/reflectable. - import 'dart:core'; import 'dart:ui' as prefix2; import 'example.dart' as prefix1; import 'package:dart_json_mapper/src/model/annotations.dart' as prefix0; +// ignore_for_file: camel_case_types +// ignore_for_file: implementation_imports // ignore_for_file: prefer_adjacent_string_concatenation // ignore_for_file: prefer_collection_literals // ignore_for_file: unnecessary_const -// ignore_for_file: implementation_imports // ignore:unused_import import 'package:reflectable/mirrors.dart' as m; @@ -24,7 +24,7 @@ import 'package:reflectable/src/reflectable_builder_based.dart' as r; // ignore:unused_import import 'package:reflectable/reflectable.dart' as r show Reflectable; -final _data = {const prefix0.JsonSerializable(): r.ReflectorData([r.NonGenericClassMirrorImpl(r'FlutterClass', r'json_mapper_flutter.example.FlutterClass', 7, 0, const prefix0.JsonSerializable(), const [0, 3], const [4, 5, 6, 7, 8, 1, 2], const [], -1, {}, {}, {r'': (bool b) => (color) => b ? prefix1.FlutterClass(color) : null}, -1, 0, const [], const [prefix0.jsonSerializable], null)], [r.VariableMirrorImpl(r'color', 32773, 0, const prefix0.JsonSerializable(), -1, 1, 1, const [], const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 0, 1), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 0, 2), r.MethodMirrorImpl(r'', 0, 0, -1, 0, 0, const [], const [0], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'==', 131074, -1, -1, 2, 2, const [], const [2], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toString', 131074, -1, -1, 3, 3, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'noSuchMethod', 65538, -1, -1, -1, -1, const [], const [3], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'hashCode', 131075, -1, -1, 4, 4, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'runtimeType', 131075, -1, -1, 5, 5, const [], const [], const prefix0.JsonSerializable(), const [])], [r.ParameterMirrorImpl(r'color', 33798, 3, const prefix0.JsonSerializable(), -1, 1, 1, const [], const [], null, null), r.ParameterMirrorImpl(r'_color', 32870, 2, const prefix0.JsonSerializable(), -1, 1, 1, const [], const [], null, null), r.ParameterMirrorImpl(r'other', 32774, 4, const prefix0.JsonSerializable(), -1, 6, 6, const [], const [], null, null), r.ParameterMirrorImpl(r'invocation', 32774, 6, const prefix0.JsonSerializable(), -1, 7, 7, const [], const [], null, null)], [prefix1.FlutterClass, prefix2.Color, bool, String, int, Type, Object, Invocation], 1, {r'==': (dynamic instance) => (x) => instance == x, r'toString': (dynamic instance) => instance.toString, r'noSuchMethod': (dynamic instance) => instance.noSuchMethod, r'hashCode': (dynamic instance) => instance.hashCode, r'runtimeType': (dynamic instance) => instance.runtimeType, r'color': (dynamic instance) => instance.color}, {r'color=': (dynamic instance, value) => instance.color = value}, null, [])}; +final _data = {const prefix0.JsonSerializable(): r.ReflectorData([r.NonGenericClassMirrorImpl(r'FlutterClass', r'json_mapper_flutter.example.FlutterClass', 134217735, 0, const prefix0.JsonSerializable(), const [0, 3], const [4, 5, 6, 7, 8, 1, 2], const [], -1, {}, {}, {r'': (bool b) => (color) => b ? prefix1.FlutterClass(color) : null}, -1, 0, const [], const [prefix0.jsonSerializable], null)], [r.VariableMirrorImpl(r'color', 134348805, 0, const prefix0.JsonSerializable(), -1, 1, 1, const [], const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 0, 1), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 0, 2), r.MethodMirrorImpl(r'', 0, 0, -1, 0, 0, const [], const [0], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'==', 2097154, -1, -1, 2, 2, const [], const [2], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toString', 2097154, -1, -1, 3, 3, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'noSuchMethod', 524290, -1, -1, -1, -1, const [], const [3], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'hashCode', 2097155, -1, -1, 4, 4, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'runtimeType', 2097155, -1, -1, 5, 5, const [], const [], const prefix0.JsonSerializable(), const [])], [r.ParameterMirrorImpl(r'color', 134349830, 3, const prefix0.JsonSerializable(), -1, 1, 1, const [], const [], null, null), r.ParameterMirrorImpl(r'_color', 134348902, 2, const prefix0.JsonSerializable(), -1, 1, 1, const [], const [], null, null), r.ParameterMirrorImpl(r'other', 134348806, 4, const prefix0.JsonSerializable(), -1, 6, 6, const [], const [], null, null), r.ParameterMirrorImpl(r'invocation', 134348806, 6, const prefix0.JsonSerializable(), -1, 7, 7, const [], const [], null, null)], [prefix1.FlutterClass, prefix2.Color, bool, String, int, Type, Object, Invocation], 1, {r'==': (dynamic instance) => (x) => instance == x, r'toString': (dynamic instance) => instance.toString, r'noSuchMethod': (dynamic instance) => instance.noSuchMethod, r'hashCode': (dynamic instance) => instance.hashCode, r'runtimeType': (dynamic instance) => instance.runtimeType, r'color': (dynamic instance) => instance.color}, {r'color=': (dynamic instance, value) => instance.color = value}, null, [])}; final _memberSymbolMap = null; @@ -38,8 +38,9 @@ void _initializeReflectable(JsonMapperAdapter adapter) { } final exampleGeneratedAdapter = JsonMapperAdapter( - title: 'Example Generated Adapter', + title: 'dart_json_mapper_flutter', url: 'asset:dart_json_mapper_flutter/example/example.dart', + refUrl: 'https://github.com/k-paxian/dart-json-mapper/tree/master/adapters/flutter', reflectableData: _data, memberSymbolMap: _memberSymbolMap, valueDecorators: { @@ -50,9 +51,11 @@ final exampleGeneratedAdapter = JsonMapperAdapter( }); -Future initializeJsonMapperAsync({Iterable adapters = const []}) => Future(() => initializeJsonMapper(adapters: adapters)); +Future initializeJsonMapperAsync({Iterable adapters = const [], SerializationOptions? serializationOptions, DeserializationOptions? deserializationOptions}) => Future(() => initializeJsonMapper(adapters: adapters, serializationOptions: serializationOptions, deserializationOptions: deserializationOptions)); -JsonMapper initializeJsonMapper({Iterable adapters = const []}) { +JsonMapper initializeJsonMapper({Iterable adapters = const [], SerializationOptions? serializationOptions, DeserializationOptions? deserializationOptions}) { + JsonMapper.globalSerializationOptions = serializationOptions ?? JsonMapper.globalSerializationOptions; + JsonMapper.globalDeserializationOptions = deserializationOptions ?? JsonMapper.globalDeserializationOptions; JsonMapper.enumerateAdapters([...adapters, exampleGeneratedAdapter], (JsonMapperAdapter adapter) { _initializeReflectable(adapter); JsonMapper().useAdapter(adapter); diff --git a/adapters/flutter/lib/dart_json_mapper_flutter.dart b/adapters/flutter/lib/dart_json_mapper_flutter.dart index 53c00f9e..531b3e77 100644 --- a/adapters/flutter/lib/dart_json_mapper_flutter.dart +++ b/adapters/flutter/lib/dart_json_mapper_flutter.dart @@ -27,7 +27,7 @@ class ColorConverter implements ICustomConverter { @override dynamic toJSON(Color object, SerializationContext context) { - return object is Color ? colorToString(object) : object; + return colorToString(object); } String colorToString(Color color) { diff --git a/adapters/flutter/pubspec.yaml b/adapters/flutter/pubspec.yaml index 129c051a..d0d88211 100644 --- a/adapters/flutter/pubspec.yaml +++ b/adapters/flutter/pubspec.yaml @@ -6,7 +6,7 @@ description: > serialize / deserialize them from / to JSON. homepage: https://github.com/k-paxian/dart-json-mapper/tree/master/adapters/flutter environment: - sdk: '>=2.12.0 <3.0.0' + sdk: '>=3.0.0 <4.0.0' dependencies: dart_json_mapper: '>=2.1.12 <3.0.0' flutter: @@ -15,7 +15,7 @@ dev_dependencies: reflectable: flutter_test: sdk: flutter - pedantic: + lints: build_runner: build_test: #dependency_overrides: diff --git a/adapters/flutter/test/_test.mapper.g.dart b/adapters/flutter/test/_test.mapper.g.dart index 39e2a160..d9f3ed23 100644 --- a/adapters/flutter/test/_test.mapper.g.dart +++ b/adapters/flutter/test/_test.mapper.g.dart @@ -1,21 +1,21 @@ -// This file has been generated by the dart_json_mapper package. +// This file has been generated by the dart_json_mapper v2.2.9 // https://github.com/k-paxian/dart-json-mapper // @dart = 2.12 -import '_test.dart' as x0 show FlutterData; -import 'package:dart_json_mapper/dart_json_mapper.dart' show JsonMapper, JsonMapperAdapter, typeOf; +import '_test.dart' as x0 show ColorfulItem; +import 'package:dart_json_mapper/dart_json_mapper.dart' show JsonMapper, JsonMapperAdapter, SerializationOptions, DeserializationOptions, typeOf; // This file has been generated by the reflectable package. // https://github.com/dart-lang/reflectable. - import 'dart:core'; import '_test.dart' as prefix1; import 'dart:ui' as prefix2; import 'package:dart_json_mapper/src/model/annotations.dart' as prefix0; +// ignore_for_file: camel_case_types +// ignore_for_file: implementation_imports // ignore_for_file: prefer_adjacent_string_concatenation // ignore_for_file: prefer_collection_literals // ignore_for_file: unnecessary_const -// ignore_for_file: implementation_imports // ignore:unused_import import 'package:reflectable/mirrors.dart' as m; @@ -24,7 +24,7 @@ import 'package:reflectable/src/reflectable_builder_based.dart' as r; // ignore:unused_import import 'package:reflectable/reflectable.dart' as r show Reflectable; -final _data = {const prefix0.JsonSerializable(): r.ReflectorData([r.NonGenericClassMirrorImpl(r'FlutterData', r'json_mapper_flutter.test.FlutterData', 7, 0, const prefix0.JsonSerializable(), const [0, 3], const [4, 5, 6, 7, 8, 1, 2], const [], -1, {}, {}, {r'': (bool b) => (color) => b ? prefix1.FlutterData(color) : null}, -1, 0, const [], const [prefix0.jsonSerializable], null)], [r.VariableMirrorImpl(r'color', 32773, 0, const prefix0.JsonSerializable(), -1, 1, 1, const [], const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 0, 1), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 0, 2), r.MethodMirrorImpl(r'', 0, 0, -1, 0, 0, const [], const [0], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'==', 131074, -1, -1, 2, 2, const [], const [2], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toString', 131074, -1, -1, 3, 3, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'noSuchMethod', 65538, -1, -1, -1, -1, const [], const [3], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'hashCode', 131075, -1, -1, 4, 4, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'runtimeType', 131075, -1, -1, 5, 5, const [], const [], const prefix0.JsonSerializable(), const [])], [r.ParameterMirrorImpl(r'color', 33798, 3, const prefix0.JsonSerializable(), -1, 1, 1, const [], const [], null, null), r.ParameterMirrorImpl(r'_color', 32870, 2, const prefix0.JsonSerializable(), -1, 1, 1, const [], const [], null, null), r.ParameterMirrorImpl(r'other', 32774, 4, const prefix0.JsonSerializable(), -1, 6, 6, const [], const [], null, null), r.ParameterMirrorImpl(r'invocation', 32774, 6, const prefix0.JsonSerializable(), -1, 7, 7, const [], const [], null, null)], [prefix1.FlutterData, prefix2.Color, bool, String, int, Type, Object, Invocation], 1, {r'==': (dynamic instance) => (x) => instance == x, r'toString': (dynamic instance) => instance.toString, r'noSuchMethod': (dynamic instance) => instance.noSuchMethod, r'hashCode': (dynamic instance) => instance.hashCode, r'runtimeType': (dynamic instance) => instance.runtimeType, r'color': (dynamic instance) => instance.color}, {r'color=': (dynamic instance, value) => instance.color = value}, null, [])}; +final _data = {const prefix0.JsonSerializable(): r.ReflectorData([r.NonGenericClassMirrorImpl(r'ColorfulItem', r'json_mapper_flutter.test.ColorfulItem', 134217735, 0, const prefix0.JsonSerializable(), const [0, 1, 6], const [7, 8, 9, 10, 11, 2, 3, 4, 5], const [], -1, {}, {}, {r'': (bool b) => (name, color) => b ? prefix1.ColorfulItem(name, color) : null}, -1, 0, const [], const [prefix0.jsonSerializable], null)], [r.VariableMirrorImpl(r'name', 134348805, 0, const prefix0.JsonSerializable(), -1, 1, 1, const [], const []), r.VariableMirrorImpl(r'color', 134348805, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 0, 2), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 0, 3), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 1, 4), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 1, 5), r.MethodMirrorImpl(r'', 0, 0, -1, 0, 0, const [], const [0, 1], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'==', 2097154, -1, -1, 3, 3, const [], const [4], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toString', 2097154, -1, -1, 1, 1, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'noSuchMethod', 524290, -1, -1, -1, -1, const [], const [5], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'hashCode', 2097155, -1, -1, 4, 4, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'runtimeType', 2097155, -1, -1, 5, 5, const [], const [], const prefix0.JsonSerializable(), const [])], [r.ParameterMirrorImpl(r'name', 134349830, 6, const prefix0.JsonSerializable(), -1, 1, 1, const [], const [], null, null), r.ParameterMirrorImpl(r'color', 134349830, 6, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_name', 134348902, 3, const prefix0.JsonSerializable(), -1, 1, 1, const [], const [], null, null), r.ParameterMirrorImpl(r'_color', 134348902, 5, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'other', 134348806, 7, const prefix0.JsonSerializable(), -1, 6, 6, const [], const [], null, null), r.ParameterMirrorImpl(r'invocation', 134348806, 9, const prefix0.JsonSerializable(), -1, 7, 7, const [], const [], null, null)], [prefix1.ColorfulItem, String, prefix2.Color, bool, int, Type, Object, Invocation], 1, {r'==': (dynamic instance) => (x) => instance == x, r'toString': (dynamic instance) => instance.toString, r'noSuchMethod': (dynamic instance) => instance.noSuchMethod, r'hashCode': (dynamic instance) => instance.hashCode, r'runtimeType': (dynamic instance) => instance.runtimeType, r'name': (dynamic instance) => instance.name, r'color': (dynamic instance) => instance.color}, {r'name=': (dynamic instance, value) => instance.name = value, r'color=': (dynamic instance, value) => instance.color = value}, null, [])}; final _memberSymbolMap = null; @@ -38,21 +38,24 @@ void _initializeReflectable(JsonMapperAdapter adapter) { } final testGeneratedAdapter = JsonMapperAdapter( - title: 'Test Generated Adapter', + title: 'dart_json_mapper_flutter', url: 'asset:dart_json_mapper_flutter/test/_test.dart', + refUrl: 'https://github.com/k-paxian/dart-json-mapper/tree/master/adapters/flutter', reflectableData: _data, memberSymbolMap: _memberSymbolMap, valueDecorators: { - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast() + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast() }, enumValues: { }); -Future initializeJsonMapperAsync({Iterable adapters = const []}) => Future(() => initializeJsonMapper(adapters: adapters)); +Future initializeJsonMapperAsync({Iterable adapters = const [], SerializationOptions? serializationOptions, DeserializationOptions? deserializationOptions}) => Future(() => initializeJsonMapper(adapters: adapters, serializationOptions: serializationOptions, deserializationOptions: deserializationOptions)); -JsonMapper initializeJsonMapper({Iterable adapters = const []}) { +JsonMapper initializeJsonMapper({Iterable adapters = const [], SerializationOptions? serializationOptions, DeserializationOptions? deserializationOptions}) { + JsonMapper.globalSerializationOptions = serializationOptions ?? JsonMapper.globalSerializationOptions; + JsonMapper.globalDeserializationOptions = deserializationOptions ?? JsonMapper.globalDeserializationOptions; JsonMapper.enumerateAdapters([...adapters, testGeneratedAdapter], (JsonMapperAdapter adapter) { _initializeReflectable(adapter); JsonMapper().useAdapter(adapter); diff --git a/adapters/flutter/test/test.basics.dart b/adapters/flutter/test/test.basics.dart index 540fd771..f7bfa37b 100644 --- a/adapters/flutter/test/test.basics.dart +++ b/adapters/flutter/test/test.basics.dart @@ -2,10 +2,11 @@ part of json_mapper_flutter.test; /// Sample flutter data class container @jsonSerializable -class FlutterData { +class ColorfulItem { + String name; Color color; - FlutterData(this.color); + ColorfulItem(this.name, this.color); } /// Shorthand for serialization options instance @@ -14,17 +15,12 @@ final compactOptions = SerializationOptions(indent: ''); void testBasics() { test('Color type', () { // given - final color = Color(0x113f4f5f); - final rawString = '#113F4F5F'; - final json = '{"color":"$rawString"}'; + final color = Color(0x003f4f5f); // when - final targetJson = JsonMapper.serialize(FlutterData(color), compactOptions); - // then - expect(targetJson, json); + final json = JsonMapper.serialize(ColorfulItem('Item 1', color)); + final target = JsonMapper.deserialize(json)!; - // when - final target = JsonMapper.deserialize(json)!; // then expect(target.color, color); }); diff --git a/adapters/mobx/LICENSE b/adapters/mobx/LICENSE deleted file mode 100644 index e69de29b..00000000 diff --git a/adapters/mobx/example/example.mapper.g.dart b/adapters/mobx/example/example.mapper.g.dart index 84179d87..7d1463c3 100644 --- a/adapters/mobx/example/example.mapper.g.dart +++ b/adapters/mobx/example/example.mapper.g.dart @@ -1,4 +1,4 @@ -// This file has been generated by the dart_json_mapper package. +// This file has been generated by the dart_json_mapper v2.2.6 // https://github.com/k-paxian/dart-json-mapper // @dart = 2.12 import 'example.dart' as x0 show MobX; @@ -12,10 +12,11 @@ import 'example.dart' as prefix1; import 'package:dart_json_mapper/src/model/annotations.dart' as prefix0; import 'package:mobx/src/api/observable_collections.dart' as prefix2; +// ignore_for_file: camel_case_types +// ignore_for_file: implementation_imports // ignore_for_file: prefer_adjacent_string_concatenation // ignore_for_file: prefer_collection_literals // ignore_for_file: unnecessary_const -// ignore_for_file: implementation_imports // ignore:unused_import import 'package:reflectable/mirrors.dart' as m; @@ -24,7 +25,7 @@ import 'package:reflectable/src/reflectable_builder_based.dart' as r; // ignore:unused_import import 'package:reflectable/reflectable.dart' as r show Reflectable; -final _data = {const prefix0.JsonSerializable(): r.ReflectorData([r.NonGenericClassMirrorImpl(r'MobX', r'json_mapper_mobx.example.MobX', 7, 0, const prefix0.JsonSerializable(), const [0, 3], const [4, 5, 6, 7, 8, 1, 2], const [], -1, {}, {}, {r'': (bool b) => (mailingList) => b ? prefix1.MobX(mailingList) : null}, -1, 0, const [], const [prefix0.jsonSerializable], null)], [r.VariableMirrorImpl(r'mailingList', 2129925, 0, const prefix0.JsonSerializable(), -1, 1, 2, const [3], const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 0, 1), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 0, 2), r.MethodMirrorImpl(r'', 0, 0, -1, 0, 0, const [], const [0], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'==', 131074, -1, -1, 4, 4, const [], const [2], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toString', 131074, -1, -1, 3, 3, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'noSuchMethod', 65538, -1, -1, -1, -1, const [], const [3], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'hashCode', 131075, -1, -1, 5, 5, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'runtimeType', 131075, -1, -1, 6, 6, const [], const [], const prefix0.JsonSerializable(), const [])], [r.ParameterMirrorImpl(r'mailingList', 2130950, 3, const prefix0.JsonSerializable(), -1, 1, 2, const [3], const [], null, null), r.ParameterMirrorImpl(r'_mailingList', 2130022, 2, const prefix0.JsonSerializable(), -1, 1, 2, const [3], const [], null, null), r.ParameterMirrorImpl(r'other', 32774, 4, const prefix0.JsonSerializable(), -1, 7, 7, const [], const [], null, null), r.ParameterMirrorImpl(r'invocation', 32774, 6, const prefix0.JsonSerializable(), -1, 8, 8, const [], const [], null, null)], [prefix1.MobX, const m.TypeValue>().type, prefix2.ObservableList, String, bool, int, Type, Object, Invocation], 1, {r'==': (dynamic instance) => (x) => instance == x, r'toString': (dynamic instance) => instance.toString, r'noSuchMethod': (dynamic instance) => instance.noSuchMethod, r'hashCode': (dynamic instance) => instance.hashCode, r'runtimeType': (dynamic instance) => instance.runtimeType, r'mailingList': (dynamic instance) => instance.mailingList}, {r'mailingList=': (dynamic instance, value) => instance.mailingList = value}, null, [])}; +final _data = {const prefix0.JsonSerializable(): r.ReflectorData([r.NonGenericClassMirrorImpl(r'MobX', r'json_mapper_mobx.example.MobX', 134217735, 0, const prefix0.JsonSerializable(), const [0, 3], const [4, 5, 6, 7, 8, 1, 2], const [], -1, {}, {}, {r'': (bool b) => (mailingList) => b ? prefix1.MobX(mailingList) : null}, -1, 0, const [], const [prefix0.jsonSerializable], null)], [r.VariableMirrorImpl(r'mailingList', 151126021, 0, const prefix0.JsonSerializable(), -1, 1, 2, const [3], const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 0, 1), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 0, 2), r.MethodMirrorImpl(r'', 0, 0, -1, 0, 0, const [], const [0], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'==', 2097154, -1, -1, 4, 4, const [], const [2], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toString', 2097154, -1, -1, 3, 3, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'noSuchMethod', 524290, -1, -1, -1, -1, const [], const [3], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'hashCode', 2097155, -1, -1, 5, 5, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'runtimeType', 2097155, -1, -1, 6, 6, const [], const [], const prefix0.JsonSerializable(), const [])], [r.ParameterMirrorImpl(r'mailingList', 151127046, 3, const prefix0.JsonSerializable(), -1, 1, 2, const [3], const [], null, null), r.ParameterMirrorImpl(r'_mailingList', 151126118, 2, const prefix0.JsonSerializable(), -1, 1, 2, const [3], const [], null, null), r.ParameterMirrorImpl(r'other', 134348806, 4, const prefix0.JsonSerializable(), -1, 7, 7, const [], const [], null, null), r.ParameterMirrorImpl(r'invocation', 134348806, 6, const prefix0.JsonSerializable(), -1, 8, 8, const [], const [], null, null)], [prefix1.MobX, const m.TypeValue>().type, prefix2.ObservableList, String, bool, int, Type, Object, Invocation], 1, {r'==': (dynamic instance) => (x) => instance == x, r'toString': (dynamic instance) => instance.toString, r'noSuchMethod': (dynamic instance) => instance.noSuchMethod, r'hashCode': (dynamic instance) => instance.hashCode, r'runtimeType': (dynamic instance) => instance.runtimeType, r'mailingList': (dynamic instance) => instance.mailingList}, {r'mailingList=': (dynamic instance, value) => instance.mailingList = value}, null, [])}; final _memberSymbolMap = null; @@ -38,8 +39,9 @@ void _initializeReflectable(JsonMapperAdapter adapter) { } final exampleGeneratedAdapter = JsonMapperAdapter( - title: 'Example Generated Adapter', + title: 'dart_json_mapper_mobx', url: 'asset:dart_json_mapper_mobx/example/example.dart', + refUrl: 'https://github.com/k-paxian/dart-json-mapper/tree/master/adapters/mobx', reflectableData: _data, memberSymbolMap: _memberSymbolMap, valueDecorators: { diff --git a/adapters/mobx/lib/dart_json_mapper_mobx.dart b/adapters/mobx/lib/dart_json_mapper_mobx.dart index 2a12dac8..1179090e 100644 --- a/adapters/mobx/lib/dart_json_mapper_mobx.dart +++ b/adapters/mobx/lib/dart_json_mapper_mobx.dart @@ -54,8 +54,8 @@ class ObservableStringConverter const ObservableStringConverter() : super(); @override - Observable? fromJSON(dynamic jsonValue, - DeserializationContext context) => + Observable? fromJSON( + dynamic jsonValue, DeserializationContext context) => jsonValue is String ? Observable(jsonValue) : jsonValue; @override @@ -73,16 +73,15 @@ class ObservableDateTimeConverter const ObservableDateTimeConverter() : super(); @override - Observable? fromJSON(dynamic jsonValue, - DeserializationContext context) => + Observable? fromJSON( + dynamic jsonValue, DeserializationContext context) => jsonValue is String ? Observable( dateConverter.fromJSON(jsonValue, context) as DateTime) : jsonValue; @override - dynamic toJSON(Observable? object, - SerializationContext context) => + dynamic toJSON(Observable? object, SerializationContext context) => dateConverter.toJSON(object!.value, context); } @@ -94,8 +93,8 @@ class ObservableNumConverter implements ICustomConverter?> { const ObservableNumConverter() : super(); @override - Observable? fromJSON(dynamic jsonValue, - DeserializationContext context) => + Observable? fromJSON( + dynamic jsonValue, DeserializationContext context) => (jsonValue is String || jsonValue is num) ? Observable(numberConverter.fromJSON(jsonValue, context) as num) : jsonValue; @@ -113,8 +112,8 @@ class ObservableIntConverter implements ICustomConverter?> { const ObservableIntConverter() : super(); @override - Observable? fromJSON(dynamic jsonValue, - DeserializationContext context) => + Observable? fromJSON( + dynamic jsonValue, DeserializationContext context) => (jsonValue is String || jsonValue is int) ? Observable(numberConverter.fromJSON(jsonValue, context) as int) : jsonValue; @@ -133,8 +132,8 @@ class ObservableDoubleConverter const ObservableDoubleConverter() : super(); @override - Observable? fromJSON(dynamic jsonValue, - DeserializationContext context) => + Observable? fromJSON( + dynamic jsonValue, DeserializationContext context) => (jsonValue is String || jsonValue is double) ? Observable( numberConverter.fromJSON(jsonValue, context) as double) @@ -153,8 +152,8 @@ class ObservableBoolConverter implements ICustomConverter?> { const ObservableBoolConverter() : super(); @override - Observable? fromJSON(dynamic jsonValue, - DeserializationContext context) => + Observable? fromJSON( + dynamic jsonValue, DeserializationContext context) => (jsonValue is String || jsonValue is bool) ? Observable( defaultConverter.fromJSON(jsonValue, context) as bool) diff --git a/adapters/mobx/pubspec.yaml b/adapters/mobx/pubspec.yaml index 9bc6fede..325d8b51 100644 --- a/adapters/mobx/pubspec.yaml +++ b/adapters/mobx/pubspec.yaml @@ -5,10 +5,10 @@ description: > provides support for MobX Stores to persist as JSON. homepage: https://github.com/k-paxian/dart-json-mapper/tree/master/adapters/mobx environment: - sdk: '>=2.12.0 <3.0.0' + sdk: '>=3.0.0 <4.0.0' dependencies: dart_json_mapper: '>=2.1.12 <3.0.0' - mobx: ^2.0.4 + mobx: ^2.0.7 dev_dependencies: mobx_codegen: reflectable: diff --git a/adapters/mobx/test/_test.dart b/adapters/mobx/test/_test.dart index 81d403ed..0934c6d0 100644 --- a/adapters/mobx/test/_test.dart +++ b/adapters/mobx/test/_test.dart @@ -4,6 +4,7 @@ import 'package:dart_json_mapper/dart_json_mapper.dart' show SerializationOptions, jsonSerializable, + JsonProperty, JsonMapper, Json, typeOf, @@ -18,6 +19,7 @@ import 'package:mobx/mobx.dart' Observable, Atom, AtomSpyReporter, + ReactiveContext, Store, observable; import 'package:test/test.dart'; diff --git a/adapters/mobx/test/_test.g.dart b/adapters/mobx/test/_test.g.dart index bffb02b4..c34d2d62 100644 --- a/adapters/mobx/test/_test.g.dart +++ b/adapters/mobx/test/_test.g.dart @@ -1,15 +1,15 @@ // GENERATED CODE - DO NOT MODIFY BY HAND -part of json_mapper_mobx.test; +part of '_test.dart'; // ************************************************************************** // StoreGenerator // ************************************************************************** -// ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic +// ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic, no_leading_underscores_for_local_identifiers mixin _$Test on TestBase, Store { - final _$valueAtom = Atom(name: 'TestBase.value'); + late final _$valueAtom = Atom(name: 'TestBase.value', context: context); @override String get value { diff --git a/adapters/mobx/test/_test.mapper.g.dart b/adapters/mobx/test/_test.mapper.g.dart index 2935a580..0e2d70ee 100644 --- a/adapters/mobx/test/_test.mapper.g.dart +++ b/adapters/mobx/test/_test.mapper.g.dart @@ -1,4 +1,4 @@ -// This file has been generated by the dart_json_mapper package. +// This file has been generated by the dart_json_mapper v2.2.6 // https://github.com/k-paxian/dart-json-mapper // @dart = 2.12 import '_test.dart' as x0 show Test, TestBase, Item, ItemsList, MobX, MobXMaps; @@ -14,10 +14,11 @@ import 'package:mobx/src/api/annotations.dart' as prefix2; import 'package:mobx/src/api/observable_collections.dart' as prefix3; import 'package:mobx/src/core.dart' as prefix4; +// ignore_for_file: camel_case_types +// ignore_for_file: implementation_imports // ignore_for_file: prefer_adjacent_string_concatenation // ignore_for_file: prefer_collection_literals // ignore_for_file: unnecessary_const -// ignore_for_file: implementation_imports // ignore:unused_import import 'package:reflectable/mirrors.dart' as m; @@ -26,7 +27,7 @@ import 'package:reflectable/src/reflectable_builder_based.dart' as r; // ignore:unused_import import 'package:reflectable/reflectable.dart' as r show Reflectable; -final _data = {const prefix0.JsonSerializable(): r.ReflectorData([r.NonGenericClassMirrorImpl(r'Test', r'json_mapper_mobx.test.Test', 7, 0, const prefix0.JsonSerializable(), const [23], const [24, 25, 26, 27, 28, 29, 30], const [], 1, {}, {}, {r'': (bool b) => (value) => b ? prefix1.Test(value) : null}, -1, 0, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'TestBase', r'json_mapper_mobx.test.TestBase', 519, 1, const prefix0.JsonSerializable(), const [0, 31], const [24, 25, 26, 27, 28, 29, 30], const [], 6, {}, {}, {}, -1, 1, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Item', r'json_mapper_mobx.test.Item', 7, 2, const prefix0.JsonSerializable(), const [32], const [24, 25, 26, 27, 28], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix1.Item() : null}, -1, 2, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ItemsList', r'json_mapper_mobx.test.ItemsList', 7, 3, const prefix0.JsonSerializable(), const [1, 2, 37], const [24, 25, 26, 27, 28, 33, 34, 35, 36], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix1.ItemsList() : null}, -1, 3, const [], const [prefix0.jsonSerializable, const prefix0.Json(valueDecorators: prefix1.ItemsList.valueDecorators)], null), r.NonGenericClassMirrorImpl(r'MobX', r'json_mapper_mobx.test.MobX', 7, 4, const prefix0.JsonSerializable(), const [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 74], const [24, 25, 26, 27, 28, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73], const [], -1, {}, {}, {r'': (bool b) => ({stringList, numList, boolList, dateTimeList, doubleList, intList, boolSet, dateTimeSet, doubleSet, intSet, numSet, stringSet, stringObservable, dateTimeObservable, numObservable, intObservable, doubleObservable, boolObservable}) => b ? prefix1.MobX(boolList: boolList, boolObservable: boolObservable, boolSet: boolSet, dateTimeList: dateTimeList, dateTimeObservable: dateTimeObservable, dateTimeSet: dateTimeSet, doubleList: doubleList, doubleObservable: doubleObservable, doubleSet: doubleSet, intList: intList, intObservable: intObservable, intSet: intSet, numList: numList, numObservable: numObservable, numSet: numSet, stringList: stringList, stringObservable: stringObservable, stringSet: stringSet) : null}, -1, 4, const [], const [prefix0.jsonSerializable, const prefix0.Json(ignoreNullMembers: true)], null), r.NonGenericClassMirrorImpl(r'MobXMaps', r'json_mapper_mobx.test.MobXMaps', 7, 5, const prefix0.JsonSerializable(), const [21, 22, 79], const [24, 25, 26, 27, 28, 75, 76, 77, 78], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix1.MobXMaps() : null}, -1, 5, const [], const [prefix0.jsonSerializable, const prefix0.Json(ignoreNullMembers: true, valueDecorators: prefix1.MobXMaps.valueDecorators)], null), r.NonGenericClassMirrorImpl(r'dart.core.Object with .Store', r'json_mapper_mobx.test.dart.core.Object with .Store', 583, 6, const prefix0.JsonSerializable(), const [], const [24, 25, 26, 27, 28], const [], -1, const {}, const {}, const {}, -1, -1, const [], const [], null)], [r.VariableMirrorImpl(r'value', 32773, 1, const prefix0.JsonSerializable(), -1, 7, 7, const [], const [prefix2.observable]), r.VariableMirrorImpl(r'items', 2129925, 3, const prefix0.JsonSerializable(), -1, 8, 9, const [2], const []), r.VariableMirrorImpl(r'itemsSet', 2129925, 3, const prefix0.JsonSerializable(), -1, 10, 11, const [2], const []), r.VariableMirrorImpl(r'stringList', 2129925, 4, const prefix0.JsonSerializable(), -1, 12, 13, const [7], const []), r.VariableMirrorImpl(r'numList', 2129925, 4, const prefix0.JsonSerializable(), -1, 14, 15, const [16], const []), r.VariableMirrorImpl(r'boolList', 2129925, 4, const prefix0.JsonSerializable(), -1, 17, 18, const [19], const []), r.VariableMirrorImpl(r'dateTimeList', 2129925, 4, const prefix0.JsonSerializable(), -1, 20, 21, const [22], const []), r.VariableMirrorImpl(r'intList', 2129925, 4, const prefix0.JsonSerializable(), -1, 23, 24, const [25], const []), r.VariableMirrorImpl(r'doubleList', 2129925, 4, const prefix0.JsonSerializable(), -1, 26, 27, const [28], const []), r.VariableMirrorImpl(r'stringSet', 2129925, 4, const prefix0.JsonSerializable(), -1, 29, 30, const [7], const []), r.VariableMirrorImpl(r'numSet', 2129925, 4, const prefix0.JsonSerializable(), -1, 31, 32, const [16], const []), r.VariableMirrorImpl(r'boolSet', 2129925, 4, const prefix0.JsonSerializable(), -1, 33, 34, const [19], const []), r.VariableMirrorImpl(r'dateTimeSet', 2129925, 4, const prefix0.JsonSerializable(), -1, 35, 36, const [22], const []), r.VariableMirrorImpl(r'intSet', 2129925, 4, const prefix0.JsonSerializable(), -1, 37, 38, const [25], const []), r.VariableMirrorImpl(r'doubleSet', 2129925, 4, const prefix0.JsonSerializable(), -1, 39, 40, const [28], const []), r.VariableMirrorImpl(r'stringObservable', 2129925, 4, const prefix0.JsonSerializable(), -1, 41, 42, const [7], const []), r.VariableMirrorImpl(r'dateTimeObservable', 2129925, 4, const prefix0.JsonSerializable(), -1, 43, 44, const [22], const []), r.VariableMirrorImpl(r'boolObservable', 2129925, 4, const prefix0.JsonSerializable(), -1, 45, 46, const [19], const []), r.VariableMirrorImpl(r'numObservable', 2129925, 4, const prefix0.JsonSerializable(), -1, 47, 48, const [16], const []), r.VariableMirrorImpl(r'intObservable', 2129925, 4, const prefix0.JsonSerializable(), -1, 49, 50, const [25], const []), r.VariableMirrorImpl(r'doubleObservable', 2129925, 4, const prefix0.JsonSerializable(), -1, 51, 52, const [28], const []), r.VariableMirrorImpl(r'map', 2129925, 5, const prefix0.JsonSerializable(), -1, 53, 54, null, const []), r.VariableMirrorImpl(r'mapItem', 2129925, 5, const prefix0.JsonSerializable(), -1, 55, 56, const [7, 2], const []), r.MethodMirrorImpl(r'', 0, 0, -1, 0, 0, const [], const [0], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'==', 131074, -1, -1, 19, 19, const [], const [1], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toString', 131074, -1, -1, 7, 7, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'noSuchMethod', 65538, -1, -1, -1, -1, const [], const [2], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'hashCode', 131075, -1, -1, 25, 25, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'runtimeType', 131075, -1, -1, 57, 57, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 0, 29), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 0, 30), r.MethodMirrorImpl(r'', 0, 1, -1, 1, 1, const [], const [4], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 2, -1, 2, 2, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 1, 33), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 1, 34), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 2, 35), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 2, 36), r.MethodMirrorImpl(r'', 64, 3, -1, 3, 3, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 3, 38), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 3, 39), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 4, 40), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 4, 41), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 5, 42), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 5, 43), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 6, 44), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 6, 45), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 7, 46), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 7, 47), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 8, 48), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 8, 49), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 9, 50), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 9, 51), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 10, 52), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 10, 53), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 11, 54), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 11, 55), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 12, 56), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 12, 57), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 13, 58), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 13, 59), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 14, 60), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 14, 61), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 15, 62), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 15, 63), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 16, 64), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 16, 65), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 17, 66), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 17, 67), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 18, 68), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 18, 69), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 19, 70), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 19, 71), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 20, 72), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 20, 73), r.MethodMirrorImpl(r'', 0, 4, -1, 4, 4, const [], const [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 21, 75), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 21, 76), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 22, 77), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 22, 78), r.MethodMirrorImpl(r'', 64, 5, -1, 5, 5, const [], const [], const prefix0.JsonSerializable(), const [])], [r.ParameterMirrorImpl(r'value', 32774, 23, const prefix0.JsonSerializable(), -1, 7, 7, const [], const [], null, null), r.ParameterMirrorImpl(r'other', 32774, 24, const prefix0.JsonSerializable(), -1, 58, 58, const [], const [], null, null), r.ParameterMirrorImpl(r'invocation', 32774, 26, const prefix0.JsonSerializable(), -1, 59, 59, const [], const [], null, null), r.ParameterMirrorImpl(r'_value', 32870, 30, const prefix0.JsonSerializable(), -1, 7, 7, const [], const [], null, null), r.ParameterMirrorImpl(r'value', 41990, 31, const prefix0.JsonSerializable(), -1, 7, 7, const [], const [], null, #value), r.ParameterMirrorImpl(r'_items', 2130022, 34, const prefix0.JsonSerializable(), -1, 8, 9, const [2], const [], null, null), r.ParameterMirrorImpl(r'_itemsSet', 2130022, 36, const prefix0.JsonSerializable(), -1, 10, 11, const [2], const [], null, null), r.ParameterMirrorImpl(r'stringList', 2143238, 74, const prefix0.JsonSerializable(), -1, 12, 13, const [7], const [], null, #stringList), r.ParameterMirrorImpl(r'numList', 2143238, 74, const prefix0.JsonSerializable(), -1, 14, 15, const [16], const [], null, #numList), r.ParameterMirrorImpl(r'boolList', 2143238, 74, const prefix0.JsonSerializable(), -1, 17, 18, const [19], const [], null, #boolList), r.ParameterMirrorImpl(r'dateTimeList', 2143238, 74, const prefix0.JsonSerializable(), -1, 20, 21, const [22], const [], null, #dateTimeList), r.ParameterMirrorImpl(r'doubleList', 2143238, 74, const prefix0.JsonSerializable(), -1, 26, 27, const [28], const [], null, #doubleList), r.ParameterMirrorImpl(r'intList', 2143238, 74, const prefix0.JsonSerializable(), -1, 23, 24, const [25], const [], null, #intList), r.ParameterMirrorImpl(r'boolSet', 2143238, 74, const prefix0.JsonSerializable(), -1, 33, 34, const [19], const [], null, #boolSet), r.ParameterMirrorImpl(r'dateTimeSet', 2143238, 74, const prefix0.JsonSerializable(), -1, 35, 36, const [22], const [], null, #dateTimeSet), r.ParameterMirrorImpl(r'doubleSet', 2143238, 74, const prefix0.JsonSerializable(), -1, 39, 40, const [28], const [], null, #doubleSet), r.ParameterMirrorImpl(r'intSet', 2143238, 74, const prefix0.JsonSerializable(), -1, 37, 38, const [25], const [], null, #intSet), r.ParameterMirrorImpl(r'numSet', 2143238, 74, const prefix0.JsonSerializable(), -1, 31, 32, const [16], const [], null, #numSet), r.ParameterMirrorImpl(r'stringSet', 2143238, 74, const prefix0.JsonSerializable(), -1, 29, 30, const [7], const [], null, #stringSet), r.ParameterMirrorImpl(r'stringObservable', 2143238, 74, const prefix0.JsonSerializable(), -1, 41, 42, const [7], const [], null, #stringObservable), r.ParameterMirrorImpl(r'dateTimeObservable', 2143238, 74, const prefix0.JsonSerializable(), -1, 43, 44, const [22], const [], null, #dateTimeObservable), r.ParameterMirrorImpl(r'numObservable', 2143238, 74, const prefix0.JsonSerializable(), -1, 47, 48, const [16], const [], null, #numObservable), r.ParameterMirrorImpl(r'intObservable', 2143238, 74, const prefix0.JsonSerializable(), -1, 49, 50, const [25], const [], null, #intObservable), r.ParameterMirrorImpl(r'doubleObservable', 2143238, 74, const prefix0.JsonSerializable(), -1, 51, 52, const [28], const [], null, #doubleObservable), r.ParameterMirrorImpl(r'boolObservable', 2143238, 74, const prefix0.JsonSerializable(), -1, 45, 46, const [19], const [], null, #boolObservable), r.ParameterMirrorImpl(r'_stringList', 2130022, 39, const prefix0.JsonSerializable(), -1, 12, 13, const [7], const [], null, null), r.ParameterMirrorImpl(r'_numList', 2130022, 41, const prefix0.JsonSerializable(), -1, 14, 15, const [16], const [], null, null), r.ParameterMirrorImpl(r'_boolList', 2130022, 43, const prefix0.JsonSerializable(), -1, 17, 18, const [19], const [], null, null), r.ParameterMirrorImpl(r'_dateTimeList', 2130022, 45, const prefix0.JsonSerializable(), -1, 20, 21, const [22], const [], null, null), r.ParameterMirrorImpl(r'_intList', 2130022, 47, const prefix0.JsonSerializable(), -1, 23, 24, const [25], const [], null, null), r.ParameterMirrorImpl(r'_doubleList', 2130022, 49, const prefix0.JsonSerializable(), -1, 26, 27, const [28], const [], null, null), r.ParameterMirrorImpl(r'_stringSet', 2130022, 51, const prefix0.JsonSerializable(), -1, 29, 30, const [7], const [], null, null), r.ParameterMirrorImpl(r'_numSet', 2130022, 53, const prefix0.JsonSerializable(), -1, 31, 32, const [16], const [], null, null), r.ParameterMirrorImpl(r'_boolSet', 2130022, 55, const prefix0.JsonSerializable(), -1, 33, 34, const [19], const [], null, null), r.ParameterMirrorImpl(r'_dateTimeSet', 2130022, 57, const prefix0.JsonSerializable(), -1, 35, 36, const [22], const [], null, null), r.ParameterMirrorImpl(r'_intSet', 2130022, 59, const prefix0.JsonSerializable(), -1, 37, 38, const [25], const [], null, null), r.ParameterMirrorImpl(r'_doubleSet', 2130022, 61, const prefix0.JsonSerializable(), -1, 39, 40, const [28], const [], null, null), r.ParameterMirrorImpl(r'_stringObservable', 2130022, 63, const prefix0.JsonSerializable(), -1, 41, 42, const [7], const [], null, null), r.ParameterMirrorImpl(r'_dateTimeObservable', 2130022, 65, const prefix0.JsonSerializable(), -1, 43, 44, const [22], const [], null, null), r.ParameterMirrorImpl(r'_boolObservable', 2130022, 67, const prefix0.JsonSerializable(), -1, 45, 46, const [19], const [], null, null), r.ParameterMirrorImpl(r'_numObservable', 2130022, 69, const prefix0.JsonSerializable(), -1, 47, 48, const [16], const [], null, null), r.ParameterMirrorImpl(r'_intObservable', 2130022, 71, const prefix0.JsonSerializable(), -1, 49, 50, const [25], const [], null, null), r.ParameterMirrorImpl(r'_doubleObservable', 2130022, 73, const prefix0.JsonSerializable(), -1, 51, 52, const [28], const [], null, null), r.ParameterMirrorImpl(r'_map', 2130022, 76, const prefix0.JsonSerializable(), -1, 53, 54, null, const [], null, null), r.ParameterMirrorImpl(r'_mapItem', 2130022, 78, const prefix0.JsonSerializable(), -1, 55, 56, const [7, 2], const [], null, null)], [prefix1.Test, prefix1.TestBase, prefix1.Item, prefix1.ItemsList, prefix1.MobX, prefix1.MobXMaps, const r.FakeType(r'json_mapper_mobx.test.dart.core.Object with .Store'), String, const m.TypeValue>().type, prefix3.ObservableList, const m.TypeValue>().type, prefix3.ObservableSet, const m.TypeValue>().type, prefix3.ObservableList, const m.TypeValue>().type, prefix3.ObservableList, num, const m.TypeValue>().type, prefix3.ObservableList, bool, const m.TypeValue>().type, prefix3.ObservableList, DateTime, const m.TypeValue>().type, prefix3.ObservableList, int, const m.TypeValue>().type, prefix3.ObservableList, double, const m.TypeValue>().type, prefix3.ObservableSet, const m.TypeValue>().type, prefix3.ObservableSet, const m.TypeValue>().type, prefix3.ObservableSet, const m.TypeValue>().type, prefix3.ObservableSet, const m.TypeValue>().type, prefix3.ObservableSet, const m.TypeValue>().type, prefix3.ObservableSet, const m.TypeValue>().type, prefix4.Observable, const m.TypeValue>().type, prefix4.Observable, const m.TypeValue>().type, prefix4.Observable, const m.TypeValue>().type, prefix4.Observable, const m.TypeValue>().type, prefix4.Observable, const m.TypeValue>().type, prefix4.Observable, const m.TypeValue>().type, prefix3.ObservableMap, const m.TypeValue>().type, prefix3.ObservableMap, Type, Object, Invocation], 7, {r'==': (dynamic instance) => (x) => instance == x, r'toString': (dynamic instance) => instance.toString, r'noSuchMethod': (dynamic instance) => instance.noSuchMethod, r'hashCode': (dynamic instance) => instance.hashCode, r'runtimeType': (dynamic instance) => instance.runtimeType, r'value': (dynamic instance) => instance.value, r'items': (dynamic instance) => instance.items, r'itemsSet': (dynamic instance) => instance.itemsSet, r'stringList': (dynamic instance) => instance.stringList, r'numList': (dynamic instance) => instance.numList, r'boolList': (dynamic instance) => instance.boolList, r'dateTimeList': (dynamic instance) => instance.dateTimeList, r'intList': (dynamic instance) => instance.intList, r'doubleList': (dynamic instance) => instance.doubleList, r'stringSet': (dynamic instance) => instance.stringSet, r'numSet': (dynamic instance) => instance.numSet, r'boolSet': (dynamic instance) => instance.boolSet, r'dateTimeSet': (dynamic instance) => instance.dateTimeSet, r'intSet': (dynamic instance) => instance.intSet, r'doubleSet': (dynamic instance) => instance.doubleSet, r'stringObservable': (dynamic instance) => instance.stringObservable, r'dateTimeObservable': (dynamic instance) => instance.dateTimeObservable, r'boolObservable': (dynamic instance) => instance.boolObservable, r'numObservable': (dynamic instance) => instance.numObservable, r'intObservable': (dynamic instance) => instance.intObservable, r'doubleObservable': (dynamic instance) => instance.doubleObservable, r'map': (dynamic instance) => instance.map, r'mapItem': (dynamic instance) => instance.mapItem}, {r'value=': (dynamic instance, value) => instance.value = value, r'items=': (dynamic instance, value) => instance.items = value, r'itemsSet=': (dynamic instance, value) => instance.itemsSet = value, r'stringList=': (dynamic instance, value) => instance.stringList = value, r'numList=': (dynamic instance, value) => instance.numList = value, r'boolList=': (dynamic instance, value) => instance.boolList = value, r'dateTimeList=': (dynamic instance, value) => instance.dateTimeList = value, r'intList=': (dynamic instance, value) => instance.intList = value, r'doubleList=': (dynamic instance, value) => instance.doubleList = value, r'stringSet=': (dynamic instance, value) => instance.stringSet = value, r'numSet=': (dynamic instance, value) => instance.numSet = value, r'boolSet=': (dynamic instance, value) => instance.boolSet = value, r'dateTimeSet=': (dynamic instance, value) => instance.dateTimeSet = value, r'intSet=': (dynamic instance, value) => instance.intSet = value, r'doubleSet=': (dynamic instance, value) => instance.doubleSet = value, r'stringObservable=': (dynamic instance, value) => instance.stringObservable = value, r'dateTimeObservable=': (dynamic instance, value) => instance.dateTimeObservable = value, r'boolObservable=': (dynamic instance, value) => instance.boolObservable = value, r'numObservable=': (dynamic instance, value) => instance.numObservable = value, r'intObservable=': (dynamic instance, value) => instance.intObservable = value, r'doubleObservable=': (dynamic instance, value) => instance.doubleObservable = value, r'map=': (dynamic instance, value) => instance.map = value, r'mapItem=': (dynamic instance, value) => instance.mapItem = value}, null, [])}; +final _data = {const prefix0.JsonSerializable(): r.ReflectorData([r.NonGenericClassMirrorImpl(r'Test', r'json_mapper_mobx.test.Test', 134217735, 0, const prefix0.JsonSerializable(), const [23], const [24, 25, 26, 27, 28, 29, 30, 31], const [], 1, {}, {}, {r'': (bool b) => (value) => b ? prefix1.Test(value) : null}, -1, 0, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'TestBase', r'json_mapper_mobx.test.TestBase', 134218247, 1, const prefix0.JsonSerializable(), const [0, 29, 32], const [24, 25, 26, 27, 28, 29, 30, 31], const [], 6, {}, {}, {}, -1, 1, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Item', r'json_mapper_mobx.test.Item', 134217735, 2, const prefix0.JsonSerializable(), const [33], const [24, 25, 26, 27, 28], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix1.Item() : null}, -1, 2, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ItemsList', r'json_mapper_mobx.test.ItemsList', 134217735, 3, const prefix0.JsonSerializable(), const [1, 2, 38], const [24, 25, 26, 27, 28, 34, 35, 36, 37], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix1.ItemsList() : null}, -1, 3, const [], const [prefix0.jsonSerializable, const prefix0.Json(valueDecorators: prefix1.ItemsList.valueDecorators)], null), r.NonGenericClassMirrorImpl(r'MobX', r'json_mapper_mobx.test.MobX', 134217735, 4, const prefix0.JsonSerializable(), const [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 75], const [24, 25, 26, 27, 28, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74], const [], -1, {}, {}, {r'': (bool b) => ({stringList, numList, boolList, dateTimeList, doubleList, intList, boolSet, dateTimeSet, doubleSet, intSet, numSet, stringSet, stringObservable, dateTimeObservable, numObservable, intObservable, doubleObservable, boolObservable}) => b ? prefix1.MobX(boolList: boolList, boolObservable: boolObservable, boolSet: boolSet, dateTimeList: dateTimeList, dateTimeObservable: dateTimeObservable, dateTimeSet: dateTimeSet, doubleList: doubleList, doubleObservable: doubleObservable, doubleSet: doubleSet, intList: intList, intObservable: intObservable, intSet: intSet, numList: numList, numObservable: numObservable, numSet: numSet, stringList: stringList, stringObservable: stringObservable, stringSet: stringSet) : null}, -1, 4, const [], const [prefix0.jsonSerializable, const prefix0.Json(ignoreNullMembers: true)], null), r.NonGenericClassMirrorImpl(r'MobXMaps', r'json_mapper_mobx.test.MobXMaps', 134217735, 5, const prefix0.JsonSerializable(), const [21, 22, 80], const [24, 25, 26, 27, 28, 76, 77, 78, 79], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix1.MobXMaps() : null}, -1, 5, const [], const [prefix0.jsonSerializable, const prefix0.Json(ignoreNullMembers: true, valueDecorators: prefix1.MobXMaps.valueDecorators)], null), r.NonGenericClassMirrorImpl(r'dart.core.Object with .Store', r'json_mapper_mobx.test.dart.core.Object with .Store', 134218311, 6, const prefix0.JsonSerializable(), const [81], const [24, 25, 26, 27, 28, 81], const [], -1, const {}, const {}, const {}, -1, -1, const [], const [], null)], [r.VariableMirrorImpl(r'value', 134348805, 1, const prefix0.JsonSerializable(), -1, 7, 7, const [], const [prefix2.observable]), r.VariableMirrorImpl(r'items', 151126021, 3, const prefix0.JsonSerializable(), -1, 8, 9, const [2], const []), r.VariableMirrorImpl(r'itemsSet', 151126021, 3, const prefix0.JsonSerializable(), -1, 10, 11, const [2], const []), r.VariableMirrorImpl(r'stringList', 84017157, 4, const prefix0.JsonSerializable(), -1, 12, 13, const [7], const []), r.VariableMirrorImpl(r'numList', 84017157, 4, const prefix0.JsonSerializable(), -1, 14, 15, const [16], const []), r.VariableMirrorImpl(r'boolList', 84017157, 4, const prefix0.JsonSerializable(), -1, 17, 18, const [19], const []), r.VariableMirrorImpl(r'dateTimeList', 84017157, 4, const prefix0.JsonSerializable(), -1, 20, 21, const [22], const []), r.VariableMirrorImpl(r'intList', 84017157, 4, const prefix0.JsonSerializable(), -1, 23, 24, const [25], const []), r.VariableMirrorImpl(r'doubleList', 84017157, 4, const prefix0.JsonSerializable(), -1, 26, 27, const [28], const []), r.VariableMirrorImpl(r'stringSet', 84017157, 4, const prefix0.JsonSerializable(), -1, 29, 30, const [7], const []), r.VariableMirrorImpl(r'numSet', 84017157, 4, const prefix0.JsonSerializable(), -1, 31, 32, const [16], const []), r.VariableMirrorImpl(r'boolSet', 84017157, 4, const prefix0.JsonSerializable(), -1, 33, 34, const [19], const []), r.VariableMirrorImpl(r'dateTimeSet', 84017157, 4, const prefix0.JsonSerializable(), -1, 35, 36, const [22], const []), r.VariableMirrorImpl(r'intSet', 84017157, 4, const prefix0.JsonSerializable(), -1, 37, 38, const [25], const []), r.VariableMirrorImpl(r'doubleSet', 84017157, 4, const prefix0.JsonSerializable(), -1, 39, 40, const [28], const []), r.VariableMirrorImpl(r'stringObservable', 84017157, 4, const prefix0.JsonSerializable(), -1, 41, 42, const [7], const []), r.VariableMirrorImpl(r'dateTimeObservable', 84017157, 4, const prefix0.JsonSerializable(), -1, 43, 44, const [22], const []), r.VariableMirrorImpl(r'boolObservable', 84017157, 4, const prefix0.JsonSerializable(), -1, 45, 46, const [19], const []), r.VariableMirrorImpl(r'numObservable', 84017157, 4, const prefix0.JsonSerializable(), -1, 47, 48, const [16], const []), r.VariableMirrorImpl(r'intObservable', 84017157, 4, const prefix0.JsonSerializable(), -1, 49, 50, const [25], const []), r.VariableMirrorImpl(r'doubleObservable', 84017157, 4, const prefix0.JsonSerializable(), -1, 51, 52, const [28], const []), r.VariableMirrorImpl(r'map', 84017157, 5, const prefix0.JsonSerializable(), -1, 53, 54, null, const []), r.VariableMirrorImpl(r'mapItem', 84017157, 5, const prefix0.JsonSerializable(), -1, 55, 56, const [7, 2], const []), r.MethodMirrorImpl(r'', 0, 0, -1, 0, 0, const [], const [0], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'==', 2097154, -1, -1, 19, 19, const [], const [1], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toString', 2097154, -1, -1, 7, 7, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'noSuchMethod', 524290, -1, -1, -1, -1, const [], const [2], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'hashCode', 2097155, -1, -1, 25, 25, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'runtimeType', 2097155, -1, -1, 57, 57, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'context', 2097155, 1, -1, 58, 58, const [], const [], const prefix0.JsonSerializable(), const [override, const prefix0.JsonProperty(ignore: true)]), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 0, 30), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 0, 31), r.MethodMirrorImpl(r'', 0, 1, -1, 1, 1, const [], const [4], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 2, -1, 2, 2, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 1, 34), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 1, 35), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 2, 36), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 2, 37), r.MethodMirrorImpl(r'', 64, 3, -1, 3, 3, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 3, 39), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 3, 40), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 4, 41), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 4, 42), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 5, 43), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 5, 44), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 6, 45), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 6, 46), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 7, 47), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 7, 48), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 8, 49), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 8, 50), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 9, 51), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 9, 52), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 10, 53), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 10, 54), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 11, 55), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 11, 56), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 12, 57), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 12, 58), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 13, 59), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 13, 60), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 14, 61), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 14, 62), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 15, 63), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 15, 64), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 16, 65), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 16, 66), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 17, 67), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 17, 68), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 18, 69), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 18, 70), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 19, 71), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 19, 72), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 20, 73), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 20, 74), r.MethodMirrorImpl(r'', 0, 4, -1, 4, 4, const [], const [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 21, 76), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 21, 77), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 22, 78), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 22, 79), r.MethodMirrorImpl(r'', 64, 5, -1, 5, 5, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'context', 2097155, -1, -1, 58, 58, const [], const [], const prefix0.JsonSerializable(), const [])], [r.ParameterMirrorImpl(r'value', 134348806, 23, const prefix0.JsonSerializable(), -1, 7, 7, const [], const [], null, null), r.ParameterMirrorImpl(r'other', 134348806, 24, const prefix0.JsonSerializable(), -1, 59, 59, const [], const [], null, null), r.ParameterMirrorImpl(r'invocation', 134348806, 26, const prefix0.JsonSerializable(), -1, 60, 60, const [], const [], null, null), r.ParameterMirrorImpl(r'_value', 134348902, 31, const prefix0.JsonSerializable(), -1, 7, 7, const [], const [], null, null), r.ParameterMirrorImpl(r'value', 134358022, 32, const prefix0.JsonSerializable(), -1, 7, 7, const [], const [], null, #value), r.ParameterMirrorImpl(r'_items', 151126118, 35, const prefix0.JsonSerializable(), -1, 8, 9, const [2], const [], null, null), r.ParameterMirrorImpl(r'_itemsSet', 151126118, 37, const prefix0.JsonSerializable(), -1, 10, 11, const [2], const [], null, null), r.ParameterMirrorImpl(r'stringList', 84030470, 75, const prefix0.JsonSerializable(), -1, 12, 13, const [7], const [], null, #stringList), r.ParameterMirrorImpl(r'numList', 84030470, 75, const prefix0.JsonSerializable(), -1, 14, 15, const [16], const [], null, #numList), r.ParameterMirrorImpl(r'boolList', 84030470, 75, const prefix0.JsonSerializable(), -1, 17, 18, const [19], const [], null, #boolList), r.ParameterMirrorImpl(r'dateTimeList', 84030470, 75, const prefix0.JsonSerializable(), -1, 20, 21, const [22], const [], null, #dateTimeList), r.ParameterMirrorImpl(r'doubleList', 84030470, 75, const prefix0.JsonSerializable(), -1, 26, 27, const [28], const [], null, #doubleList), r.ParameterMirrorImpl(r'intList', 84030470, 75, const prefix0.JsonSerializable(), -1, 23, 24, const [25], const [], null, #intList), r.ParameterMirrorImpl(r'boolSet', 84030470, 75, const prefix0.JsonSerializable(), -1, 33, 34, const [19], const [], null, #boolSet), r.ParameterMirrorImpl(r'dateTimeSet', 84030470, 75, const prefix0.JsonSerializable(), -1, 35, 36, const [22], const [], null, #dateTimeSet), r.ParameterMirrorImpl(r'doubleSet', 84030470, 75, const prefix0.JsonSerializable(), -1, 39, 40, const [28], const [], null, #doubleSet), r.ParameterMirrorImpl(r'intSet', 84030470, 75, const prefix0.JsonSerializable(), -1, 37, 38, const [25], const [], null, #intSet), r.ParameterMirrorImpl(r'numSet', 84030470, 75, const prefix0.JsonSerializable(), -1, 31, 32, const [16], const [], null, #numSet), r.ParameterMirrorImpl(r'stringSet', 84030470, 75, const prefix0.JsonSerializable(), -1, 29, 30, const [7], const [], null, #stringSet), r.ParameterMirrorImpl(r'stringObservable', 84030470, 75, const prefix0.JsonSerializable(), -1, 41, 42, const [7], const [], null, #stringObservable), r.ParameterMirrorImpl(r'dateTimeObservable', 84030470, 75, const prefix0.JsonSerializable(), -1, 43, 44, const [22], const [], null, #dateTimeObservable), r.ParameterMirrorImpl(r'numObservable', 84030470, 75, const prefix0.JsonSerializable(), -1, 47, 48, const [16], const [], null, #numObservable), r.ParameterMirrorImpl(r'intObservable', 84030470, 75, const prefix0.JsonSerializable(), -1, 49, 50, const [25], const [], null, #intObservable), r.ParameterMirrorImpl(r'doubleObservable', 84030470, 75, const prefix0.JsonSerializable(), -1, 51, 52, const [28], const [], null, #doubleObservable), r.ParameterMirrorImpl(r'boolObservable', 84030470, 75, const prefix0.JsonSerializable(), -1, 45, 46, const [19], const [], null, #boolObservable), r.ParameterMirrorImpl(r'_stringList', 84017254, 40, const prefix0.JsonSerializable(), -1, 12, 13, const [7], const [], null, null), r.ParameterMirrorImpl(r'_numList', 84017254, 42, const prefix0.JsonSerializable(), -1, 14, 15, const [16], const [], null, null), r.ParameterMirrorImpl(r'_boolList', 84017254, 44, const prefix0.JsonSerializable(), -1, 17, 18, const [19], const [], null, null), r.ParameterMirrorImpl(r'_dateTimeList', 84017254, 46, const prefix0.JsonSerializable(), -1, 20, 21, const [22], const [], null, null), r.ParameterMirrorImpl(r'_intList', 84017254, 48, const prefix0.JsonSerializable(), -1, 23, 24, const [25], const [], null, null), r.ParameterMirrorImpl(r'_doubleList', 84017254, 50, const prefix0.JsonSerializable(), -1, 26, 27, const [28], const [], null, null), r.ParameterMirrorImpl(r'_stringSet', 84017254, 52, const prefix0.JsonSerializable(), -1, 29, 30, const [7], const [], null, null), r.ParameterMirrorImpl(r'_numSet', 84017254, 54, const prefix0.JsonSerializable(), -1, 31, 32, const [16], const [], null, null), r.ParameterMirrorImpl(r'_boolSet', 84017254, 56, const prefix0.JsonSerializable(), -1, 33, 34, const [19], const [], null, null), r.ParameterMirrorImpl(r'_dateTimeSet', 84017254, 58, const prefix0.JsonSerializable(), -1, 35, 36, const [22], const [], null, null), r.ParameterMirrorImpl(r'_intSet', 84017254, 60, const prefix0.JsonSerializable(), -1, 37, 38, const [25], const [], null, null), r.ParameterMirrorImpl(r'_doubleSet', 84017254, 62, const prefix0.JsonSerializable(), -1, 39, 40, const [28], const [], null, null), r.ParameterMirrorImpl(r'_stringObservable', 84017254, 64, const prefix0.JsonSerializable(), -1, 41, 42, const [7], const [], null, null), r.ParameterMirrorImpl(r'_dateTimeObservable', 84017254, 66, const prefix0.JsonSerializable(), -1, 43, 44, const [22], const [], null, null), r.ParameterMirrorImpl(r'_boolObservable', 84017254, 68, const prefix0.JsonSerializable(), -1, 45, 46, const [19], const [], null, null), r.ParameterMirrorImpl(r'_numObservable', 84017254, 70, const prefix0.JsonSerializable(), -1, 47, 48, const [16], const [], null, null), r.ParameterMirrorImpl(r'_intObservable', 84017254, 72, const prefix0.JsonSerializable(), -1, 49, 50, const [25], const [], null, null), r.ParameterMirrorImpl(r'_doubleObservable', 84017254, 74, const prefix0.JsonSerializable(), -1, 51, 52, const [28], const [], null, null), r.ParameterMirrorImpl(r'_map', 84017254, 77, const prefix0.JsonSerializable(), -1, 53, 54, null, const [], null, null), r.ParameterMirrorImpl(r'_mapItem', 84017254, 79, const prefix0.JsonSerializable(), -1, 55, 56, const [7, 2], const [], null, null)], [prefix1.Test, prefix1.TestBase, prefix1.Item, prefix1.ItemsList, prefix1.MobX, prefix1.MobXMaps, const r.FakeType(r'json_mapper_mobx.test.dart.core.Object with .Store'), String, const m.TypeValue>().type, prefix3.ObservableList, const m.TypeValue>().type, prefix3.ObservableSet, const m.TypeValue>().type, prefix3.ObservableList, const m.TypeValue>().type, prefix3.ObservableList, num, const m.TypeValue>().type, prefix3.ObservableList, bool, const m.TypeValue>().type, prefix3.ObservableList, DateTime, const m.TypeValue>().type, prefix3.ObservableList, int, const m.TypeValue>().type, prefix3.ObservableList, double, const m.TypeValue>().type, prefix3.ObservableSet, const m.TypeValue>().type, prefix3.ObservableSet, const m.TypeValue>().type, prefix3.ObservableSet, const m.TypeValue>().type, prefix3.ObservableSet, const m.TypeValue>().type, prefix3.ObservableSet, const m.TypeValue>().type, prefix3.ObservableSet, const m.TypeValue>().type, prefix4.Observable, const m.TypeValue>().type, prefix4.Observable, const m.TypeValue>().type, prefix4.Observable, const m.TypeValue>().type, prefix4.Observable, const m.TypeValue>().type, prefix4.Observable, const m.TypeValue>().type, prefix4.Observable, const m.TypeValue>().type, prefix3.ObservableMap, const m.TypeValue>().type, prefix3.ObservableMap, Type, prefix4.ReactiveContext, Object, Invocation], 7, {r'==': (dynamic instance) => (x) => instance == x, r'toString': (dynamic instance) => instance.toString, r'noSuchMethod': (dynamic instance) => instance.noSuchMethod, r'hashCode': (dynamic instance) => instance.hashCode, r'runtimeType': (dynamic instance) => instance.runtimeType, r'context': (dynamic instance) => instance.context, r'value': (dynamic instance) => instance.value, r'items': (dynamic instance) => instance.items, r'itemsSet': (dynamic instance) => instance.itemsSet, r'stringList': (dynamic instance) => instance.stringList, r'numList': (dynamic instance) => instance.numList, r'boolList': (dynamic instance) => instance.boolList, r'dateTimeList': (dynamic instance) => instance.dateTimeList, r'intList': (dynamic instance) => instance.intList, r'doubleList': (dynamic instance) => instance.doubleList, r'stringSet': (dynamic instance) => instance.stringSet, r'numSet': (dynamic instance) => instance.numSet, r'boolSet': (dynamic instance) => instance.boolSet, r'dateTimeSet': (dynamic instance) => instance.dateTimeSet, r'intSet': (dynamic instance) => instance.intSet, r'doubleSet': (dynamic instance) => instance.doubleSet, r'stringObservable': (dynamic instance) => instance.stringObservable, r'dateTimeObservable': (dynamic instance) => instance.dateTimeObservable, r'boolObservable': (dynamic instance) => instance.boolObservable, r'numObservable': (dynamic instance) => instance.numObservable, r'intObservable': (dynamic instance) => instance.intObservable, r'doubleObservable': (dynamic instance) => instance.doubleObservable, r'map': (dynamic instance) => instance.map, r'mapItem': (dynamic instance) => instance.mapItem}, {r'value=': (dynamic instance, value) => instance.value = value, r'items=': (dynamic instance, value) => instance.items = value, r'itemsSet=': (dynamic instance, value) => instance.itemsSet = value, r'stringList=': (dynamic instance, value) => instance.stringList = value, r'numList=': (dynamic instance, value) => instance.numList = value, r'boolList=': (dynamic instance, value) => instance.boolList = value, r'dateTimeList=': (dynamic instance, value) => instance.dateTimeList = value, r'intList=': (dynamic instance, value) => instance.intList = value, r'doubleList=': (dynamic instance, value) => instance.doubleList = value, r'stringSet=': (dynamic instance, value) => instance.stringSet = value, r'numSet=': (dynamic instance, value) => instance.numSet = value, r'boolSet=': (dynamic instance, value) => instance.boolSet = value, r'dateTimeSet=': (dynamic instance, value) => instance.dateTimeSet = value, r'intSet=': (dynamic instance, value) => instance.intSet = value, r'doubleSet=': (dynamic instance, value) => instance.doubleSet = value, r'stringObservable=': (dynamic instance, value) => instance.stringObservable = value, r'dateTimeObservable=': (dynamic instance, value) => instance.dateTimeObservable = value, r'boolObservable=': (dynamic instance, value) => instance.boolObservable = value, r'numObservable=': (dynamic instance, value) => instance.numObservable = value, r'intObservable=': (dynamic instance, value) => instance.intObservable = value, r'doubleObservable=': (dynamic instance, value) => instance.doubleObservable = value, r'map=': (dynamic instance, value) => instance.map = value, r'mapItem=': (dynamic instance, value) => instance.mapItem = value}, null, [])}; final _memberSymbolMap = null; @@ -40,8 +41,9 @@ void _initializeReflectable(JsonMapperAdapter adapter) { } final testGeneratedAdapter = JsonMapperAdapter( - title: 'Test Generated Adapter', + title: 'dart_json_mapper_mobx', url: 'asset:dart_json_mapper_mobx/test/_test.dart', + refUrl: 'https://github.com/k-paxian/dart-json-mapper/tree/master/adapters/mobx', reflectableData: _data, memberSymbolMap: _memberSymbolMap, valueDecorators: { diff --git a/adapters/mobx/test/test.observables.dart b/adapters/mobx/test/test.observables.dart index 263315b3..ebdc1298 100644 --- a/adapters/mobx/test/test.observables.dart +++ b/adapters/mobx/test/test.observables.dart @@ -1,4 +1,4 @@ -part of json_mapper_mobx.test; +part of '_test.dart'; @jsonSerializable class Test extends TestBase with _$Test { @@ -11,6 +11,10 @@ abstract class TestBase with Store { @observable String value; + @override + @JsonProperty(ignore: true) + ReactiveContext get context => ReactiveContext(); + TestBase({required this.value}); } @@ -217,7 +221,7 @@ void testObservables() { test('ObservableSet', () { // given final json = - '''{"stringSet":["bb@test.com","aa@test.com","cc@test.com"]}'''; + '''{"stringSet":["aa@test.com","bb@test.com","cc@test.com"]}'''; final m = MobX( stringSet: ObservableSet.of( ['aa@test.com', 'bb@test.com', 'cc@test.com'])); @@ -232,7 +236,7 @@ void testObservables() { test('ObservableSet', () { // given - final json = '''{"numSet":[2.1,1,3]}'''; + final json = '''{"numSet":[1,2.1,3]}'''; final m = MobX(numSet: ObservableSet.of([1, 2.1, 3])); // when final targetJson = JsonMapper.serialize(m, compactOptions); @@ -258,7 +262,7 @@ void testObservables() { test('ObservableSet', () { // given - final json = '''{"doubleSet":[1.0003,3.01,2.01]}'''; + final json = '''{"doubleSet":[1.0003,2.01,3.01]}'''; final m = MobX(doubleSet: ObservableSet.of([1.0003, 2.01, 3.01])); // when final targetJson = JsonMapper.serialize(m, compactOptions); @@ -271,7 +275,7 @@ void testObservables() { test('ObservableSet', () { // given - final json = '''{"boolSet":[false,true]}'''; + final json = '''{"boolSet":[true,false]}'''; final m = MobX(boolSet: ObservableSet.of([true, false, true])); // when final targetJson = JsonMapper.serialize(m, compactOptions); @@ -285,7 +289,7 @@ void testObservables() { test('ObservableSet', () { // given final json = - '''{"dateTimeSet":["2014-02-20 00:00:00.000","2013-01-23 00:00:00.000","2003-02-28 00:00:00.000"]}'''; + '''{"dateTimeSet":["2003-02-28 00:00:00.000","2013-01-23 00:00:00.000","2014-02-20 00:00:00.000"]}'''; final m = MobX( dateTimeSet: ObservableSet.of([ DateTime.parse('2003-02-28 00:00:00.000'), diff --git a/mapper/CHANGELOG.md b/mapper/CHANGELOG.md index 79013a26..e98fcddb 100644 --- a/mapper/CHANGELOG.md +++ b/mapper/CHANGELOG.md @@ -1,3 +1,144 @@ +## 2.2.20 + +* #234, Bug: Cannot map uppercase int´s or doubles + +## 2.2.19 + +* #230, Bug: @JsonProperty(flatten: true) fails on deserialization + +## 2.2.18 + +* #130, (feat) Introduce `rawJson` attribute to `@JsonProperty` meta + +## 2.2.17 + +* bump dependencies to support wider compatibility #231 + +## 2.2.16 + +* clean up lints + +## 2.2.15 + +* bump dependencies to latest possible +* clean up lints + +## 2.2.14 + +* bump dependencies to latest +* Fix #227 Deserializing error: Unable to instantiate class. Improved error message + +## 2.2.13 + +* bump dependencies to latest + +## 2.2.12+1 + +* downgrade `meta` dependency to improve package compatibility + +## 2.2.12 + +* bump dependencies + +## 2.2.11 + +* bump dependencies + +## 2.2.10 + +* bump dependencies + +## 2.2.9 + +* Improve web platform support #13 + +## 2.2.8 + +* Improve class instance creation error handling #211 + +## 2.2.7+5 + +* downgrade dependencies to improve package compatibility + +## 2.2.7+4 + +* downgrade dependencies to improve package compatibility + +## 2.2.7+3 + +* (fix): `JsonMapper.copyWith` doesn't respect deep merge #209 + +## 2.2.7+2 + +* bump dependencies +* (fix): Add additional error handling for `discriminatorValue` mismatch errors #206 + +## 2.2.7+1 + +* bump dependencies +* (fix): Problem converting enum with following uppercase character #203 + +## 2.2.7 + +* bump dependencies + +## 2.2.6+1 + +* #196 Allow to pass global default options for serialization/deserialization to `initializeJsonMapper` method + +## 2.2.6 + +* #195 Deserializing with String discriminatorProperty throws JsonFormatError(FormatException) + +## 2.2.5+3 + +* #193 (fix) downgrade dependencies to improve package compatibility + +## 2.2.5+2 + +* pin analyzer 4.3.0 since further versions are incompatible with reflectable 3.0.9 + +## 2.2.5+1 + +* bump dependencies +* #191 Incorrect detection of circular reference if hashCode has been overridden + +## 2.2.5 + +* bump dependencies + +## 2.2.4+2 + +* #190 (fix) type 'Null' is not a subtype of type 'Object' when serializing Null element in List and Set + +## 2.2.4+1 + +* #188 (fix) downgrade dependencies to improve package compatibility + +## 2.2.4 + +* #187 (fix) defaultValue always overwrites the deserialized value + +## 2.2.3 + +* #184 (fix) "It seems your class 'Uint8List' has not been annotated with @jsonSerializable" error when using `Uint8ListConverter` + +## 2.2.2+1 + +* bump the dependencies versions + +## 2.2.2 + +* #181 (fix) The `JsonProperty.name` support for aliases doesn't work as advertised + +## 2.2.1+3 + +* bump the dependencies versions + +## 2.2.1+2 + +* #178 (fix) Uncompilable `main.mapper.g.dart` when no classes has been annotated with `@jsonSerializable` + ## 2.2.1+1 * format code @@ -120,8 +261,8 @@ ## 2.0.5 * #120, Support for subclass using a discriminator property `@Json(typeNameProperty)` => `@Json(discriminatorProperty)` - For migration from old versions just replace all `typeNameProperty` by `discriminatorProperty`. - Global option `DeserializationOptions.typeNameProperty` has been removed. + For migration from old versions just replace all `typeNameProperty` by `discriminatorProperty`. + Global option `DeserializationOptions.typeNameProperty` has been removed. ## 2.0.4 @@ -236,8 +377,8 @@ ## 1.6.0 * Own builder introduced, to support `List, Set, HashSet, UnmodifiableListView` iterables to slightly ease the pain -of manual adding value decorators per each model class. From now on, support for `List, Set` iterables will be -out of the box by default. + of manual adding value decorators per each model class. From now on, support for `List, Set` iterables will be + out of the box by default. * `Duration` converter introduced ## 1.5.24 @@ -307,7 +448,7 @@ out of the box by default. ## 1.5.8 * #47, Introduced support for `composition over inheritance` -using composition of `Generic` with `T`. + using composition of `Generic` with `T`. ## 1.5.7 @@ -334,22 +475,22 @@ using composition of `Generic` with `T`. ## 1.5.2 -* #36, Allow serialize same object instances same nesting level. +* #36, Allow serialize same object instances same nesting level. ## 1.5.1 -* Adapters management improved. Easily extend & configure mapper capabilities via modular approach. +* Adapters management improved. Easily extend & configure mapper capabilities via modular approach. ## 1.5.0 -* #34, Default Iterables converter introduced. -Partial solution to avoid value decorators approach for the cases when -it is possible to pre-initialize Iterable field with an empty instance. +* #34, Default Iterables converter introduced. + Partial solution to avoid value decorators approach for the cases when + it is possible to pre-initialize Iterable field with an empty instance. ## 1.4.4 * #33, Provide default values for `@JsonProperty(defaultValue: ...)` -* #35, SerializationOptions enriched with global `ignoreNullMembers` flag +* #35, SerializationOptions enriched with global `ignoreNullMembers` flag ## 1.4.3 @@ -365,8 +506,8 @@ it is possible to pre-initialize Iterable field with an empty instance. ## 1.4.0 -* Enhancement #21 implemented, support @JsonConstructor to pick appropriate -constructor for deserialization. +* Enhancement #21 implemented, support @JsonConstructor to pick appropriate + constructor for deserialization. * Enhancement #23 implemented, support for field names casing options for serialization. [Pascal, Kebab, Snake, SnakeAllCaps] ## 1.3.5 @@ -389,7 +530,7 @@ constructor for deserialization. ## 1.3.1 * Imports refactored, from now on *everything* is imported from a single -`import 'package:dart_json_mapper/dart_json_mapper.dart';` instead of several imports + `import 'package:dart_json_mapper/dart_json_mapper.dart';` instead of several imports ## 1.2.10 @@ -397,12 +538,12 @@ constructor for deserialization. ## 1.2.9 -* Introduced possibility to specify number of allowed circular references `@Json(allowCircularReferences: 1)` +* Introduced possibility to specify number of allowed circular references `@Json(allowCircularReferences: 1)` ## 1.2.8 * Schemes introduced. Scheme - is a set of meta annotations associated with common scheme id. -This enables the possibility to map *single* Dart class to *many* JSON structures. + This enables the possibility to map *single* Dart class to *many* JSON structures. ## 1.2.7 @@ -581,10 +722,10 @@ This enables the possibility to map *single* Dart class to *many* JSON structure ## 0.0.4 -* Convert Enum values to string by default, to skip a disordered values drawback -with indexed enum values. -* Enum's does not have to be annotated, since almost all of them are parts of -third party libraries w/o access for modification. +* Convert Enum values to string by default, to skip a disordered values drawback + with indexed enum values. +* Enum's does not have to be annotated, since almost all of them are parts of + third party libraries w/o access for modification. * dateTimeConverter introduced ## 0.0.2 diff --git a/mapper/LICENSE b/mapper/LICENSE index e69de29b..8fe9ff1a 100644 --- a/mapper/LICENSE +++ b/mapper/LICENSE @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2018-2025, Alexander Mazuruk +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/mapper/README.md b/mapper/README.md new file mode 100644 index 00000000..0da38857 --- /dev/null +++ b/mapper/README.md @@ -0,0 +1,1388 @@ +[![SWUbanner](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine) +[![Build Status][ci-badge]][ci-badge-url] +[![pub package](https://img.shields.io/pub/v/dart_json_mapper.svg)](https://pub.dev/packages/dart_json_mapper) +[![Pub Points](https://img.shields.io/pub/points/dart_json_mapper)](https://pub.dev/packages/dart_json_mapper/score) + +This package allows programmers to annotate Dart objects to serialize/deserialize them to/from JSON. + +## Introduction + +This library provides a powerful and flexible way to handle JSON serialization and deserialization in Dart. It is designed to be compatible with all Dart platforms, including Flutter, by avoiding `dart:mirrors`. The library is inspired by popular serialization libraries like Jackson, Gson, and Serde, offering a rich feature set with a simple and clean API. + +The core philosophy of this library is to keep your model classes clean and free of serialization logic. This is achieved through a powerful code generation mechanism that generates a single `*.mapper.g.dart` file for your entire project, containing all the necessary mapping logic. + +## Why dart_json_mapper? + +- **Cross-Platform Compatibility**: Works on all platforms where Dart runs, with no dependency on `dart:mirrors`. +- **Leaner Code**: No need to extend your classes from any mixins or base classes. +- **No Magic**: No enforced private constructors, `_$` prefixes, or `static` fields. +- **Predictable and Maintainable**: The "configuration over code" approach brings predictability to your codebase and reduces the amount of code you need to read and maintain. +- **Separation of Concerns**: Serialization and deserialization are not the responsibility of your model classes. + +This library's reflection mechanism is based on the [reflectable][3] library. This means that "extended types information" is auto-generated from your existing Dart program, guided only by the annotated classes. As a result, type information is accessible at runtime at a reduced cost. + +## Comparison with `json_serializable` + +While Google's `json_serializable` is the standard for JSON serialization in Dart, `dart_json_mapper` offers a different approach with a richer feature set. Here's a quick comparison: + +| Feature | `json_serializable` | `dart_json_mapper` | +| ----------------------- | ------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Code Generation** | Generates a separate `*.g.dart` file for each class. | Generates a single `main.mapper.g.dart` file for the entire project. | +| **API & Boilerplate** | Requires a factory constructor (`fromJson`), a `toJson` method, and a mixin in your model classes. | Uses a central `JsonMapper` object for serialization, keeping your model classes clean. | +| **Advanced Features** | Core serialization features, with custom converters for advanced scenarios. | Rich, built-in feature set, including polymorphism, object cloning, advanced mapping, and schemes. | +| **Community & Support** | Backed by Google and has a large, active community, making it a safe and reliable choice for most projects. | A powerful and flexible alternative with a smaller community, ideal for projects that require its advanced features. | + +In summary, `json_serializable` is the more standard, straightforward, and widely adopted solution from the Dart team. `dart_json_mapper` offers a more feature-rich, "batteries-included" experience with more powerful out-of-the-box capabilities, potentially at the cost of being a less common choice. + +![](banner.svg) + +* [Basic setup](#basic-setup) +* [Annotations](#annotations) +* [Builder](#builder) +* [Known limitations](#known-limitations) +* [Documentation][docs] +* [Error Handling](#error-handling) +* [Configuration use cases](#format-datetime--num-types) + * [Extended classes](#inherited-classes-derived-from-abstract--base-class) + * [Classes with Mixins](#classes-enhanced-with-mixins-derived-from-abstract-class) + * [Immutable classes](#example-with-immutable-class) + * [Get or Set fields](#get-or-set-fields) + * [Constructor parameters](#constructor-parameters) + * [Unmapped properties](#unmapped-properties) + * [DateTime / num types](#format-datetime--num-types) + * [Iterable types](#iterable-types) + * [Value injection](#value-injection) + * [Enum types](#enum-types) + * [Enums having String / num values](#enums-having-string--num-values) + * [Name casing styles](#name-casing-styles-pascal-kebab-snake-snakeallcaps) + * [Serialization template](#serialization-template) + * [Deserialization template](#deserialization-template) + * [Custom types](#custom-types) + * [Nesting](#nesting-configuration) + * [Name aliases](#name-aliases-configuration) + * [Relative path reference to parent field from nested object "../id"](#relative-path-reference-to-parent-field-from-nested-object-id) + * [Relative path reference to parent itself from nested object ".."](#relative-path-reference-to-parent-itself-from-nested-object-) + * [Schemes](#schemes) + * [Objects flattening](#objects-flattening) + * [Objects cloning](#objects-cloning) + * [URI Conversion](#uri-conversion) +* [Adapters](#complementary-adapter-libraries) + * [How to use adapter?](#complementary-adapter-libraries) + * [![pub package](https://img.shields.io/pub/v/dart_json_mapper_built.svg)](https://pub.dev/packages/dart_json_mapper_built) | [dart_json_mapper_built](adapters/built) | [Built Collection][16] + * [![pub package](https://img.shields.io/pub/v/dart_json_mapper_mobx.svg)](https://pub.dev/packages/dart_json_mapper_mobx) | [dart_json_mapper_mobx](adapters/mobx) | [MobX][7] + * [![pub package](https://img.shields.io/pub/v/dart_json_mapper_fixnum.svg)](https://pub.dev/packages/dart_json_mapper_fixnum) | [dart_json_mapper_fixnum](adapters/fixnum) | [Fixnum][8] + * [![pub package](https://img.shields.io/pub/v/dart_json_mapper_flutter.svg)](https://pub.dev/packages/dart_json_mapper_flutter) | [dart_json_mapper_flutter](adapters/flutter) | [Flutter][11] + +## Basic setup + +Please add the following dependencies to your `pubspec.yaml`: + +```yaml +dependencies: + dart_json_mapper: +dev_dependencies: + build_runner: +``` + +Say, you have a dart program *main.dart* having some classes intended to be traveling to JSON and back. +- First thing you should do is to put `@jsonSerializable` annotation on each of those classes +- Next step is to auto generate *main.mapper.g.dart* file. And afterwards import that file into *main.dart* + +**lib/main.dart** +```dart +import 'package:dart_json_mapper/dart_json_mapper.dart' + show JsonMapper, jsonSerializable, JsonProperty; + +import 'main.mapper.g.dart' show initializeJsonMapper; + +@jsonSerializable +class MyData { + final int a; + @JsonProperty(name: 'd') + final String c; + + @JsonProperty(ignore: true) + final bool b; + + const MyData({required this.a, required this.b, required this.c}); +} + +void main() { + initializeJsonMapper(); + + final myData = MyData(a: 456, b: true, c: 'yes'); + final json = JsonMapper.serialize(myData); + + print(json); +} +``` +Output: +```json +{"a":456,"d":"yes"} +``` + +Go ahead and create / update `build.yaml` file in your project root directory with the following snippet: + +```yaml +targets: + $default: + builders: + dart_json_mapper: + generate_for: + # here should be listed entry point files having 'void main()' function + - lib/main.dart + # dart_json_mapper is a wrapper around the reflectable builder. + # This configuration is needed to prevent the original reflectable builder from running. + reflectable_builder: + generate_for: + - no/files +``` + +Now run the code generation step with the root of your package as the current directory: + +```shell +dart run build_runner build --delete-conflicting-outputs +``` + +**You'll need to re-run code generation each time you are making changes to `lib/main.dart`** +So for development time, use `watch` like this: + +```shell +dart run build_runner watch --delete-conflicting-outputs +``` + +Each time you modify your project code, all `*.mapper.g.dart` files will be updated as well. +- Next step is to add `*.mapper.g.dart` to your .gitignore +- And this is it, you are all set and ready to go. Happy coding! + +## Format DateTime / num types + +In order to format `DateTime` or `num` instance as a JSON string, it is possible to +provide [intl][2] based formatting patterns. + +**DateTime** +```dart +@jsonSerializable +class MyDates { + @JsonProperty(converterParams: {'format': 'MM-dd-yyyy H:m:s'}) + final DateTime lastPromotionDate; + + @JsonProperty(converterParams: {'format': 'MM/dd/yyyy'}) + final DateTime hireDate; + + const MyDates({required this.lastPromotionDate, required this.hireDate}); +} +``` +Output: +```json +{"lastPromotionDate":"05-13-2008 22:33:44","hireDate":"02/28/2003"} +``` + +**num** +```dart +@jsonSerializable +class MyNumbers { + @JsonProperty(converterParams: {'format': '##.##'}) + final num salary; + + const MyNumbers({required this.salary}); +} +``` +Output: +```json +{"salary":"1200000.25"} +``` + +As well, it is possible to utilize `converterParams` map to provide custom +parameters to your [custom converters](#custom-types). + +## Get or Set fields + +When relying on Dart `getters / setters`, no need to annotate them. But when you have custom `getter / setter` methods, you should provide annotations for them. + +```dart +@jsonSerializable +class AllPrivateFields { + String? _name; + String? _lastName; + + set name(dynamic value) { + _name = value; + } + + String? get name => _name; + + @JsonProperty(name: 'lastName') + void setLastName(dynamic value) { + _lastName = value; + } + + @JsonProperty(name: 'lastName') + String? getLastName() => _lastName; +} +``` + +## Example with immutable class + +```dart +@jsonSerializable +enum Color { red, blue, green, brown, yellow, black, white } + +@jsonSerializable +class Car { + @JsonProperty(name: 'modelName') + final String model; + final Color color; + + @JsonProperty(ignore: true) + final Car? replacement; + + const Car({required this.model, required this.color, this.replacement}); +} + +@jsonSerializable +class Immutable { + final int id; + final String name; + final Car car; + + const Immutable({required this.id, required this.name, required this.car}); +} +``` + +## Constructor parameters + +Sometimes you don't really care or don't want to store some json property as a dedicated class field, +but instead, you would like to use it's value in constructor to calculate other class properties. +This way you don't have a convenience to annotate a class field, but you could utilize constructor parameter for that. + +With the input JSON like this: +```json +{"LogistikTeileInOrdnung":"true"} +``` + +You could potentially have a class like this: +```dart +@jsonSerializable +class BusinessObject { + final bool logisticsChecked; + final bool logisticsOK; + + BusinessObject() + : logisticsChecked = false, + logisticsOK = true; + + @jsonConstructor + BusinessObject.fromJson( + @JsonProperty(name: 'LogistikTeileInOrdnung') String processed) + : logisticsChecked = processed != null && processed != 'null', + logisticsOK = processed == 'true'; +} +``` + +## Unmapped properties + +If you are looking for an alternative to Java Jackson `@JsonAnySetter / @JsonAnyGetter` +It is possible to configure the same scenario as follows: + +```dart +@jsonSerializable +class UnmappedProperties { + String name; + + Map _extraPropsMap = {}; + + @jsonProperty + void unmappedSet(String name, dynamic value) { + _extraPropsMap[name] = value; + } + + @jsonProperty + Map unmappedGet() { + return _extraPropsMap; + } +} + +// given +final json = '''{"name":"Bob","extra1":1,"extra2":"xxx"}'''; + +// when +final instance = JsonMapper.deserialize(json); + +// then +expect(instance.name, 'Bob'); +expect(instance._extraPropsMap['name'], null); +expect(instance._extraPropsMap['extra1'], 1); +expect(instance._extraPropsMap['extra2'], 'xxx'); +``` + +## Iterable types + +Due to Dart's limitations with reflection, deserializing generic iterable types like `List` or `Set` requires special handling. This library offers several ways to manage this, from automatic code generation to manual configuration. + +### Automatic Deserialization with the Builder + +The recommended approach is to let the builder handle iterable deserialization automatically. The builder scans your code and generates the necessary value decorator functions for all annotated public classes. This means that for most common cases, like `List` or `Set`, you don't need to do anything extra. + +```dart +final json = '[{"modelName": "Audi", "color": "green"}]'; +final myCarsList = JsonMapper.deserialize>(json); +final myCarsSet = JsonMapper.deserialize>(json); +``` + +For custom iterable types like `HashSet` or `UnmodifiableListView`, you can configure the [Builder](#builder) to support them. + +### Pre-initialized Iterables + +If you can pre-initialize your iterables with an empty instance, you don't need to worry about value decorators at all. + +```dart +@jsonSerializable +class Item {} + +@jsonSerializable +class IterablesContainer { + List list = []; + Set set = {}; +} + +// given +final json = '''{"list":[{}, {}],"set":[{}, {}]}'''; + +// when +final target = JsonMapper.deserialize(json); + +// then +expect(target.list, TypeMatcher>()); +expect(target.list.length, 2); +expect(target.set, TypeMatcher>()); +expect(target.set.length, 2); +``` + +### Manual Value Decorator Functions + +For more complex scenarios, you can provide value decorator functions manually, either globally or on a per-class basis. + +* **Global Adapter**: + +```dart +JsonMapper().useAdapter(JsonMapperAdapter( + valueDecorators: { + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast() + }) +); + +final json = '[{"modelName": "Audi", "color": "green"}]'; +final myCarsList = JsonMapper.deserialize>(json); +final myCarsSet = JsonMapper.deserialize>(json); +``` + +* **Inline in a Class**: + +```dart +@jsonSerializable +@Json(valueDecorators: CarsContainer.valueDecorators) +class CarsContainer { + static Map valueDecorators() => + { + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast() + }; + + List myCarsList; + Set myCarsSet; +} +``` + +### Nested Lists + +Using value decorators, it's possible to configure nested lists of virtually any depth. + +```dart +@jsonSerializable +class Item {} + +@jsonSerializable +@Json(valueDecorators: ListOfLists.valueDecorators) +class ListOfLists { + static Map valueDecorators() => + { + typeOf>>(): (value) => value.cast>(), + typeOf>(): (value) => value.cast() + }; + + List>? lists; +} + +// given +final json = '''{ + "lists": [ + [{}, {}], + [{}, {}, {}] + ] +}'''; + +// when +final target = JsonMapper.deserialize(json)!; + +// then +expect(target.lists?.length, 2); +``` + +## Enum types + +This library provides full support for enums, whether they are part of your codebase or from a third-party package. + +### Your Own Enums + +If the enum is part of your project, you can make it serializable by adding the `@jsonSerializable` annotation. + +```dart +@jsonSerializable +enum Color { red, blue, green, brown, yellow, black, white } +``` + +### Third-Party Enums + +If you need to serialize an enum from a third-party package, you can register it using an adapter. + +```dart +import 'package:some_package' show ThirdPartyEnum; + +JsonMapper().useAdapter( + JsonMapperAdapter(enumValues: { + ThirdPartyEnum: ThirdPartyEnum.values, + }) +); +``` + +### Enum Converters + +This library provides three built-in enum converters: + +- `enumConverterShort`: Produces short string values (e.g., `"red"`, `"blue"`). This is the default. +- `enumConverter`: Produces fully qualified string values (e.g., `"Color.red"`, `"Color.blue"`). +- `enumConverterNumeric`: Produces numeric values (e.g., `0`, `1`). + +You can change the default converter globally like this: + +```dart +// lib/main.dart +void main() { + initializeJsonMapper(adapters: [ + JsonMapperAdapter(converters: {Enum: enumConverter}) + ]); +} +``` + +### Enums with Custom Values + +You can map enums to custom `String` or `num` values by providing a `mapping` and an optional `defaultValue` when registering the enum. + +```dart +import 'package:some_package' show ThirdPartyEnum; + +JsonMapper().useAdapter( + JsonMapperAdapter(enumValues: { + ThirdPartyEnum: EnumDescriptor( + values: ThirdPartyEnum.values, + defaultValue: ThirdPartyEnum.A, + mapping: { + ThirdPartyEnum.A: 'AAA', + ThirdPartyEnum.B: 123, + ThirdPartyEnum.C: true + } + ) + }) +); +``` + +## Inherited classes derived from abstract / base class + +Please use complementary `@Json(discriminatorProperty: 'type')` annotation for **abstract or base** class +to specify which class field(`type` in this snippet below) will be used to store a value for distinguishing concrete subclass type. + +Please use complementary `@Json(discriminatorValue: )` annotation for **subclasses** +derived from abstract or base class. If this annotation omitted, **class name** will be used as `discriminatorValue` + +This ensures, that _dart-json-mapper_ will be able to reconstruct the object with the proper type during deserialization process. + +```dart +@jsonSerializable +enum BusinessType { Private, Public } + +@jsonSerializable +@Json(discriminatorProperty: 'type') +abstract class Business { + String? name; + BusinessType? type; +} + +@jsonSerializable +@Json(discriminatorValue: BusinessType.Private) +class Hotel extends Business { + int stars; + + Hotel(this.stars); +} + +@jsonSerializable +@Json(discriminatorValue: BusinessType.Public) +class Startup extends Business { + int userCount; + + Startup(this.userCount); +} + +@jsonSerializable +class Stakeholder { + String fullName; + List businesses = []; + + Stakeholder(this.fullName, this.businesses); +} + +// given +final jack = Stakeholder("Jack", [Startup(10), Hotel(4)]); + +// when +final String json = JsonMapper.serialize(jack); +final Stakeholder target = JsonMapper.deserialize(json); + +// then +expect(target.businesses[0], TypeMatcher()); +expect(target.businesses[1], TypeMatcher()); +``` + +## Classes enhanced with Mixins derived from abstract class + +Similar configuration as above also works well for class mixins + +```dart +@Json(discriminatorProperty: 'type') +@jsonSerializable +abstract class A {} + +@jsonSerializable +mixin B on A {} + +@jsonSerializable +class C extends A with B {} + +@jsonSerializable +class MixinContainer { + final Set ints; + final B b; + + const MixinContainer(this.ints, this.b); +} + +// given +final json = r'''{"ints":[1,2,3],"b":{"type":"C"}}'''; +final instance = MixinContainer({1, 2, 3}, C()); + +// when +final targetJson = JsonMapper.serialize(instance); +final target = JsonMapper.deserialize(targetJson); + +// then +expect(targetJson, json); +expect(target, TypeMatcher()); +expect(target.b, TypeMatcher()); +``` + +## Serialization template + +In case you already have an instance of huge JSON Map object +and portion of it needs to be surgically updated, then you can pass +your `Map` instance as a `template` parameter for +`SerializationOptions` + +```dart +// given +final template = {'a': 'a', 'b': true}; + +// when +final json = JsonMapper.serialize(Car('Tesla S3', Color.black), + SerializationOptions(indent: '', template: template)); + +// then +expect(json, + '''{"a":"a","b":true,"modelName":"Tesla S3","color":"black"}'''); +``` + +## Deserialization template + +In case you need to deserialize specific `Map` type then you can pass +typed instance of it as a `template` parameter for `DeserializationOptions`. + +Since typed `Map` instance cannot be created dynamically due to Dart +language nature, so you are providing ready made instance to use for deserialization output. + +```dart +// given +final json = '{"black":1,"blue":2}'; + +// when +final target = JsonMapper.deserialize( + json, DeserializationOptions(template: {})); + +// then +expect(target, TypeMatcher>()); +expect(target.containsKey(Color.black), true); +expect(target.containsKey(Color.blue), true); +expect(target[Color.black], 1); +expect(target[Color.blue], 2); +``` + +## Name casing styles [Pascal, Kebab, Snake, SnakeAllCaps] + +Assuming your Dart code is following [Camel case style][9], but that is not +always `true` for JSON models, they could follow +[one of those popular - Pascal, Kebab, Snake, SnakeAllCaps][10] styles, right? + +That's why we need a smart way to manage that, instead of +hand coding each property using `@JsonProperty(name: ...)` it is possible to pass +`CaseStyle` parameter to serialization / deserialization methods OR specify this +preference on a class level using `@Json(caseStyle: CaseStyle.kebab)`. + +```dart +@jsonSerializable +enum Color { red, blue, gray, grayMetallic, green, brown, yellow, black, white } + +@jsonSerializable +@Json(caseStyle: CaseStyle.kebab) +class NameCaseObject { + String mainTitle; + bool hasMainProperty; + Color primaryColor; + + NameCaseObject({ + this.mainTitle, + this.hasMainProperty, + this.primaryColor = Color.grayMetallic}); +} + +/// Serialization + +// given +final instance = NameCaseObject(mainTitle: 'title', hasMainProperty: true); +// when +final json = JsonMapper.serialize(instance, SerializationOptions(indent: '')); +// then +expect(json, '''{"main-title":"title","has-main-property":true,"primary-color":"gray-metallic"}'''); + +/// Deserialization + +// given +final json = '''{"main-title":"title","has-main-property":true,"primary-color":"gray-metallic"}'''; +// when +final instance = JsonMapper.deserialize(json); +// then +expect(instance.mainTitle, 'title'); +expect(instance.hasMainProperty, true); +expect(instance.primaryColor, Color.grayMetallic); +``` + +## Nesting configuration + +In case if you need to operate on particular portions of huge JSON object and +you don't have a true desire to reconstruct the same deep nested JSON objects +hierarchy with corresponding Dart classes. This section is for you! + +Say, you have a json similar to this one: +```json +{ + "root": { + "foo": { + "bar": { + "baz": { + "items": [ + "a", + "b", + "c" + ] + } + } + } + } +} +``` + +And with code similar to this one: + +```dart +@jsonSerializable +@Json(name: 'root/foo/bar') +class BarObject { + @JsonProperty(name: 'baz/items') + List items; + + BarObject({this.items}); +} + +// when +final instance = JsonMapper.deserialize(json); + +// then +expect(instance.items.length, 3); +expect(instance.items, ['a', 'b', 'c']); +``` +you'll have it done nice and quick. + +`@Json(name: 'root/foo/bar')` provides a *root nesting* for the entire annotated class, +this means all class fields will be nested under this 'root/foo/bar' path in Json. + +`@JsonProperty(name: 'baz/items')` provides a field nesting relative to the class *root nesting* + +`name` is compliant with [RFC 6901][rfc6901] JSON pointer + +## Relative path reference to parent field from nested object "../id" + +When it's handy to refer to the parent fields values, it's possible to use path like notation "../" + +```json +[ + {"id":1,"name":"category1","products":[ + {"id":3629,"name":"Apple","features":[{"id":9,"name":"Red Color"}]}, + {"id":5674,"name":"Banana"}]}, + {"id":2,"name":"category2","products":[ + {"id":7834,"name":"Car"}, + {"id":2386,"name":"Truck"} + ]} +] +``` + +```dart +@jsonSerializable +class Feature { + @JsonProperty(name: '../../id') + num categoryId; + + @JsonProperty(name: '../id') + num productId; + + num id; + String name; + + Feature({this.name, this.id}); +} + +@jsonSerializable +class Product { + @JsonProperty(name: '../id') + num categoryId; + + num id; + String name; + + @JsonProperty(ignoreIfNull: true) + List features; + + Product({this.name, this.id, this.features}); +} + +@jsonSerializable +class ProductCategory { + num id; + String name; + List products; + + ProductCategory({this.id, this.name, this.products}); +} +``` + +### Relative path reference to parent itself from nested object ".." + +In some cases objects need to interact with their (owning) parent object. The easiest pattern is to +add a referencing field for the parent which is initialized during construction of the child object. +The path notation ".." supports this pattern: + +```dart +@jsonSerializable +class Parent { + String? lastName; + List children = []; +} + +@jsonSerializable +class Child { + String? firstName; + + @JsonProperty(name: '..') + Parent parent; + + Child(this.parent); +} +``` + +You are now able to deserialize the following structure: + +```json +{ + "lastName": "Doe", + "children": [ + {"firstName": "Eve"}, + {"firstName": "Bob"}, + {"firstName": "Alice"} +]} +``` + +and each `Child` object will have a reference on it's parent. And this parent field will not leak out +to the serialized JSON object + +## Value injection + +Sometimes you have to *inject* certain values residing outside of a JSON string into the target +deserialized object. Using the `JsonProperty.inject` flag, one may do so. + +```dart +class Outside {} + +@jsonSerializable +class Inside { + String? foo; + + @JsonProperty(name: 'data/instance', inject: true) + Outside? outside; +} +``` + +You may then inject the values in the `deserialize` method: + +```json +{ + "foo": "Bar" +} +``` + +```dart +Outside outsideInstance = Outside(); +final target = JsonMapper.deserialize(json, + DeserializationOptions(injectableValues: {'data': {'instance': outsideInstance}})!; +``` + +## Name aliases configuration + +For cases when aliasing technique is desired, it's possible to optionally merge / route *many* json properties +into *one* class field. First name from the list is treated as *primary* i.e. used for serialization +direction. The rest of items are treated as aliases joined by the `??` operation. + +```dart +@jsonSerializable +class FieldAliasObject { + // same as => alias ?? fullName ?? name + @JsonProperty(name: ['alias', 'fullName', 'name']) + final String name; + + const FieldAliasObject({ + this.name, + }); +} +``` + +## Schemes + +Scheme - is a set of annotations associated with common scheme id. +This enables the possibility to map a **single** Dart class to **many** different JSON structures. + +This approach usually useful for distinguishing [DEV, PROD, TEST, ...] environments, w/o producing separate +Dart classes for each environment. + +```dart +enum Scheme { A, B } + +@jsonSerializable +@Json(name: 'default') +@Json(name: '_', scheme: Scheme.B) +@Json(name: 'root', scheme: Scheme.A) +class Object { + @JsonProperty(name: 'title_test', scheme: Scheme.B) + String title; + + Object(this.title); +} + +// given +final instance = Object('Scheme A'); +// when +final json = JsonMapper.serialize(instance, SerializationOptions(indent: '', scheme: Scheme.A)); +// then +expect(json, '''{"root":{"title":"Scheme A"}}'''); + +// given +final instance = Object('Scheme B'); +// when +final json = JsonMapper.serialize(instance, SerializationOptions(indent: '', scheme: Scheme.B)); +// then +expect(json, '''{"_":{"title_test":"Scheme B"}}'''); + +// given +final instance = Object('No Scheme'); +// when +final json = JsonMapper.serialize(instance, SerializationOptions(indent: '')); +// then +expect(json, '''{"default":{"title":"No Scheme"}}'''); +``` + +## Objects flattening + +Consider a paginated API which returns a page of results along with pagination metadata that +identifies how many results were requested, how far into the total set of results we are looking at, +and how many results exist in total. If we are paging through a total of 1053 results 100 at a time, +the third page may look like this: + +```json +{ + "limit": 100, + "offset": 200, + "total": 1053, + "users": [ + {"id": "49824073-979f-4814-be10-5ea416ee1c2f", "username": "john_doe"}, + ... + ] +} +``` + +This same scheme with `limit` and `offset` and `total` fields may be shared across lots of different API queries. +For example we may want paginated results when querying for users, for issues, for projects, etc. + +In this case it can be convenient to factor the common pagination metadata fields into a +reusable `Pagination` shared class that can be flattened & blended into each API response object. + +```dart +@jsonSerializable +class Pagination { + num? limit; + num? offset; + num? total; +} + +@jsonSerializable +class UsersPage { + @JsonProperty(flatten: true) + Pagination? pagination; + + List? users; +} +``` + +If it's desired to define common prefix for flattened fields +`@JsonProperty.name` attribute could be utilized for that alongside with `flatten: true` attribute. + +Case style could be defined as usual, on a class level `@Json(caseStyle: CaseStyle.snake)` and/or global scope +with `DeserializationOptions(caseStyle: CaseStyle.kebab)` and `SerializationOptions(caseStyle: CaseStyle.kebab)` +If omitted, `CaseStyle.camel` is used by default. + +```dart +@jsonSerializable +class Pagination { + num? limit; + num? offset; + num? total; +} + +@jsonSerializable +@Json(caseStyle: CaseStyle.snake) +class UsersPage { + @JsonProperty(name: 'pagination', flatten: true) + Pagination? pagination; + + List? users; +} +``` + +This will output: + +```json +{ + "pagination_limit": 100, + "pagination_offset": 200, + "pagination_total": 1053, + "users": [ + {"id": "49824073-979f-4814-be10-5ea416ee1c2f", "username": "john_doe"}, + ... + ] +} +``` + +## Objects cloning + +If you are wondering how to deep-clone Dart Objects, or even considering using libraries like [Freezed][15] to accomplish that, then this section will probably be useful for you. + +### `clone()` / `copy()` + +You can create a deep clone of an object using the `clone()` or `copy()` methods. + +```dart +// given +final car = Car('Tesla S3', Color.black); + +// when +final cloneCar = JsonMapper.copy(car); + +// then +expect(cloneCar == car, false); +expect(cloneCar.color == car.color, true); +expect(cloneCar.model == car.model, true); +``` + +### `copyWith()` + +You can also create a copy of an object with some properties overridden using the `copyWith()` method. + +```dart +// given +final car = Car('Tesla S3', Color.black); + +// when +final cloneCar = JsonMapper.copyWith(car, {'color': 'blue'}); // overriding Black by Blue + +// then +expect(cloneCar == car, false); +expect(cloneCar.color, Color.blue); +expect(cloneCar.model, car.model); +``` + +### `mergeMaps()` + +You can recursively merge two maps using the `mergeMaps()` method. + +```dart +// given +final mapA = {'a': 1, 'b': {'c': 2}}; +final mapB = {'b': {'d': 3}, 'e': 4}; + +// when +final mergedMap = JsonMapper.mergeMaps(mapA, mapB); + +// then +expect(mergedMap, {'a': 1, 'b': {'c': 2, 'd': 3}, 'e': 4}); +``` + +## Raw JSON string + +It is possible to embed a raw JSON string into a target object without any extra quotes. +This could be useful for cases when you have a string field, that is already a valid JSON string. + +```dart +@jsonSerializable +class RawBean { + String? name; + + @JsonProperty(rawJson: true) + String? json; + + RawBean(this.name, this.json); +} + +final bean = RawBean('My bean', '{"attr":false}'); +``` + +should produce: + +```json +{ + "name":"My bean", + "json":{ + "attr":false + } +} +``` + +## Debugging + +You can print out the current mapper configuration to the console using the `info()` method. This is useful for debugging issues with adapters. + +```dart +JsonMapper().info(); +``` + +## Custom types + +For the very custom types, specific ones, or doesn't currently supported by this library, you can +provide your own custom Converter class per each custom runtimeType. + +```dart +/// Abstract class for custom converters implementations +abstract class ICustomConverter { + dynamic toJSON(T object, SerializationContext context); + T fromJSON(dynamic jsonValue, DeserializationContext context); +} +``` + +All you need to get going with this, is to implement this abstract class: + +```dart +class CustomStringConverter implements ICustomConverter { + const CustomStringConverter() : super(); + + @override + String fromJSON(dynamic jsonValue, DeserializationContext context) { + return jsonValue; + } + + @override + dynamic toJSON(String object, SerializationContext context) { + return '_${object}_'; + } +} +``` + +And register it afterwards, if you want to have it applied for **all** occurrences of specified type: + +```dart +JsonMapper().useAdapter(JsonMapperAdapter( + converters: { + String: CustomStringConverter() + }) +); +``` + +OR use it individually on selected class fields, via `@JsonProperty` annotation: + +```dart +@JsonProperty(converter: CustomStringConverter()) +String title; +``` + +## Annotations + +This library provides a set of annotations to control the serialization and deserialization process. + +### `@jsonSerializable` + +A **required** marker annotation for classes, mixins, or enums that you want to be serializable. + +| Parameter | Description | +| --- | --- | +| **None** | This annotation has no parameters. | + +### `@jsonConstructor` + +An **optional** annotation to mark a specific constructor to be used for deserialization. + +| Parameter | Description | +| --- | --- | +| `scheme` | A dynamic [Scheme](#schemes) marker to associate this meta information with a particular mapping scheme. | + +### `@Json` + +An **optional** annotation for class declarations that describes the mapping between a Dart object and a JSON object. + +| Parameter | Description | +| --- | --- | +| `name` | Defines the [RFC 6901][rfc6901] JSON pointer that denotes the JSON object's root name/path to be used for mapping (e.g., `'foo'`, `'foo/bar/baz'`). | +| `caseStyle` | The case style to use for the JSON keys (e.g., `CaseStyle.snake`). | +| `discriminatorProperty` | Defines the class property to be used as a source of truth for discrimination logic in a hierarchy of inherited classes. | +| `discriminatorValue` | Defines a custom override value for the discriminator. | +| `valueDecorators` | Provides an inline way to specify a static function that returns a map of value decorators to support type casting for `Map` and other generic iterables. | +| `ignoreNullMembers` | If `true`, `null` class members will be excluded from the serialization process. | +| `ignoreDefaultMembers` | If `true`, class members with default values will be excluded from the serialization process. | +| `processAnnotatedMembersOnly` | If `true`, only annotated class members will be processed. | +| `allowCircularReferences` | An `int` that allows a certain number of circular object references during serialization. | +| `scheme` | A dynamic [Scheme](#schemes) marker to associate this meta information with a particular mapping scheme. | + +### `@JsonProperty` + +An **optional** annotation for class members that describes the mapping of a JSON object property. + +| Parameter | Description | +| --- | --- | +| `name` | Defines the [RFC 6901][rfc6901] JSON pointer that denotes the name/path/aliases to be used for property mapping relative to the class root nesting (e.g., `'foo'`, `['foo', 'bar']`, `'../foo'`). | +| `scheme` | A dynamic [Scheme](#schemes) marker to associate this meta information with a particular mapping scheme. | +| `converter` | Declares a custom converter instance to be used for the annotated field. | +| `converterParams` | A `Map` of parameters to be passed to the converter instance. | +| `flatten` | Declares the annotated field to be flattened and merged with the host object. | +| `notNull` | A `bool` that declares the annotated field as NOT NULL. | +| `required` | A `bool` that declares the annotated field as required. | +| `inject` | A `bool` that declares the annotated field value to be directly injected from `DeserializationOptions.injectableValues`. | +| `ignore` | A `bool` that declares the annotated field as ignored. | +| `ignoreForSerialization` | A `bool` that declares the annotated field as excluded from serialization. | +| `ignoreForDeserialization` | A `bool` that declares the annotated field as excluded from deserialization. | +| `ignoreIfNull` | A `bool` that declares the annotated field as ignored if its value is `null`. | +| `ignoreIfDefault` | A `bool` that declares the annotated field as ignored if its value is equal to the default. | +| `defaultValue` | Defines the field's default value. | + +## Builder + +This library introduces own builder used to pre-build Default adapter for your application code. +Technically, provided builder wraps the [reflectable][3] builder output and adds a bit more generated code to it. + +Builder can be configured using `build.yaml` file at the root of your project. + +```yaml +targets: + $default: + builders: + # This part configures dart_json_mapper builder + dart_json_mapper: + options: + iterables: List, Set, HashSet, UnmodifiableListView + generate_for: + - example/**.dart + - test/_test.dart + + # This part is needed to tell original reflectable builder to stay away + # it overrides default options for reflectable builder to an **empty** set of files + reflectable_builder: + generate_for: + - no/files +``` + +Primary mission for the builder at this point is to generate Iterables support for your custom classes. + +Options: + +```yaml +iterables: List, Set, HashSet, UnmodifiableListView +``` + +This option if omitted defaults to `List, Set` is used to configure a list of iterables you would like +to be supported for you out of the box. For example you have a `Car` class in your app and +would like to have `List` and `Set` support for deserialization, then you could omit this option. + +And when you would like to have a deserialization support for other iterables like `HashSet, UnmodifiableListView` +you could add them to the list for this option. + +## Known limitations + +* [Dart code obfuscation][obfuscation]. If you are using or planning to use `extra-gen-snapshot-options=--obfuscate` option with your Flutter project, +this library shouldn't be your primary choice then. At the moment there is no workaround for this to play nicely together. + +## Complementary adapter libraries + +If you want a seamless integration with popular use cases, feel free to pick an +existing adapter or create one for your use case and make a PR to this repo. + +**Adapter** - is a library which contains a bundle of pre-configured: + +* custom [converters](#custom-types) +* custom [value decorators](#iterable-types) +* custom typeInfo decorators + +For example, you would like to refer to `Color` type from Flutter in your model class. + +* Make sure you have following dependencies in your `pubspec.yaml`: + + ```yaml + dependencies: + dart_json_mapper: + dart_json_mapper_flutter: + dev_dependencies: + build_runner: + ``` +* Usually, adapter library exposes `final` adapter definition instance, to be provided as a parameter to `JsonMapper().useAdapter(adapter)` + + ```dart + import 'dart:ui' show Color; + import 'package:dart_json_mapper/dart_json_mapper.dart' show JsonMapper, jsonSerializable; + import 'package:dart_json_mapper_flutter/dart_json_mapper_flutter.dart' show flutterAdapter; + + import 'main.mapper.g.dart' show initializeJsonMapper; + + @jsonSerializable + class ColorfulItem { + String name; + Color color; + + ColorfulItem(this.name, this.color); + } + + void main() { + initializeJsonMapper(adapters: [flutterAdapter]); + + print(JsonMapper.serialize( + ColorfulItem('Item 1', Color(0x003f4f5f)) + )); + } + ``` + Output: + ```json + { + "name": "Item 1", + "color": "#003F4F5F" + } + ``` + +### You can easily mix and combine several adapters using following one-liner: + +```dart +JsonMapper() + .useAdapter(fixnumAdapter) + .useAdapter(flutterAdapter) + .useAdapter(mobXAdapter) + .useAdapter(builtAdapter) + .info(); // print out a list of used adapters to console +``` + +[1]: https://github.com/flutter/flutter/issues/1150 +[2]: https://pub.dartlang.org/packages/intl +[3]: https://pub.dartlang.org/packages/reflectable +[4]: https://github.com/appvision-gmbh/json2typescript +[5]: https://github.com/serde-rs/serde +[6]: https://github.com/google/gson +[7]: https://github.com/mobxjs/mobx.dart +[8]: https://github.com/dart-lang/fixnum +[9]: https://en.wikipedia.org/wiki/Camel_case +[10]: https://medium.com/better-programming/string-case-styles-camel-pascal-snake-and-kebab-case-981407998841 +[11]: https://github.com/flutter/flutter +[12]: https://www.baeldung.com/jackson-annotations +[13]: https://pub.dev/packages/build#implementing-your-own-builders +[14]: https://pub.dev/packages/super_enum +[15]: https://pub.dev/packages/freezed +[16]: https://pub.dev/packages/built_collection + +[obfuscation]: https://flutter.dev/docs/deployment/obfuscate + +[rfc6901]: https://tools.ietf.org/html/rfc6901 + +[docs]: https://pub.dev/documentation/dart_json_mapper/latest/dart_json_mapper/dart_json_mapper-library.html + +## URI Conversion + +You can easily convert a Dart object to a URI for a GET request using the `toUri` method. This is useful for building API clients. + +```dart +@jsonSerializable +class SearchParams { + String query; + int limit; + + SearchParams(this.query, this.limit); +} + +// given +final params = SearchParams('dart', 10); + +// when +final uri = JsonMapper.toUri(getParams: params, baseUrl: 'https://api.example.com/search'); + +// then +expect(uri.toString(), 'https://api.example.com/search?query=dart&limit=10'); +``` + +## Error Handling + +This library defines a set of custom exception classes to help you handle errors during serialization and deserialization. All exceptions inherit from `JsonMapperError`. Here are some of the most common exceptions: + +- `MissingAnnotationOnTypeError`: Thrown when you try to serialize or deserialize a class that is not annotated with `@jsonSerializable`. +- `FieldCannotBeNullError`: Thrown when a field that is marked as not-nullable is `null`. +- `FieldIsRequiredError`: Thrown when a required field is missing from the JSON. +- `CircularReferenceError`: Thrown when a circular reference is detected during serialization. +- `JsonMapperSubtypeError`: Thrown when the discriminator value for a subtype is not recognized. +- `CannotCreateInstanceError`: Thrown when an instance of a class cannot be created. + +You can catch these exceptions to implement custom error handling logic in your application. + +```dart +try { + final user = JsonMapper.deserialize('{"name": null}'); +} on FieldCannotBeNullError catch (e) { + print(e); +} +``` + +[ci-badge]: https://github.com/k-paxian/dart-json-mapper/workflows/Pipeline/badge.svg +[ci-badge-url]: https://github.com/k-paxian/dart-json-mapper/actions?query=workflow%3A%22Pipeline%22 diff --git a/mapper/analysis_options.yaml b/mapper/analysis_options.yaml index ea2c9e94..ca7c9d85 100644 --- a/mapper/analysis_options.yaml +++ b/mapper/analysis_options.yaml @@ -1 +1,10 @@ -include: package:lints/recommended.yaml \ No newline at end of file +include: package:lints/recommended.yaml + +analyzer: + errors: + deprecated_member_use: ignore +linter: + rules: + unnecessary_parenthesis: true + prefer_const_constructors: true + prefer_final_locals: true \ No newline at end of file diff --git a/mapper/banner.svg b/mapper/banner.svg new file mode 100644 index 00000000..5ce0dcf6 --- /dev/null +++ b/mapper/banner.svg @@ -0,0 +1,50 @@ + + + + + Layer 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + First class travel to JSON and back + + \ No newline at end of file diff --git a/mapper/build.yaml b/mapper/build.yaml index 0995c6f4..271b12e1 100644 --- a/mapper/build.yaml +++ b/mapper/build.yaml @@ -29,8 +29,6 @@ targets: dart_json_mapper: options: iterables: List, Set - generate_for: - - example/**.dart - reflectable: + reflectable_builder: generate_for: - no/files \ No newline at end of file diff --git a/mapper/example/example.mapper.g.dart b/mapper/example/example.mapper.g.dart index 6267921d..ef481b74 100644 --- a/mapper/example/example.mapper.g.dart +++ b/mapper/example/example.mapper.g.dart @@ -1,30 +1,30 @@ -// This file has been generated by the dart_json_mapper package. +// This file has been generated by the dart_json_mapper v2.2.17 // https://github.com/k-paxian/dart-json-mapper // @dart = 2.12 import 'example.dart' as x0 show Car, Person, Color; -import 'package:dart_json_mapper/dart_json_mapper.dart' show JsonMapper, JsonMapperAdapter, typeOf; +import 'package:dart_json_mapper/dart_json_mapper.dart' show JsonMapper, JsonMapperAdapter, SerializationOptions, DeserializationOptions, typeOf; +import 'package:dart_json_mapper/src/identifier_casing.dart' as x1 show CaseStyle; +import 'package:dart_json_mapper/src/model/index.dart' as x2 show ConversionDirection; // This file has been generated by the reflectable package. // https://github.com/dart-lang/reflectable. - - import 'dart:core'; import 'example.dart' as prefix1; import 'package:dart_json_mapper/src/model/annotations.dart' as prefix0; import 'package:dart_json_mapper/src/model/converters.dart' as prefix2; +// ignore_for_file: camel_case_types +// ignore_for_file: implementation_imports // ignore_for_file: prefer_adjacent_string_concatenation // ignore_for_file: prefer_collection_literals // ignore_for_file: unnecessary_const -// ignore_for_file: implementation_imports +// ignore_for_file: unused_import +// ignore_for_file: sdk_version_since -// ignore:unused_import import 'package:reflectable/mirrors.dart' as m; -// ignore:unused_import import 'package:reflectable/src/reflectable_builder_based.dart' as r; -// ignore:unused_import import 'package:reflectable/reflectable.dart' as r show Reflectable; -final _data = {const prefix0.JsonSerializable(): r.ReflectorData([r.NonGenericClassMirrorImpl(r'Car', r'.Car', 7, 0, const prefix0.JsonSerializable(), const [0, 1, 15, 20], const [21, 15, 22, 23, 24, 16, 17, 18, 19], const [], -1, {}, {}, {r'': (bool b) => (model, color) => b ? prefix1.Car(model, color) : null}, -1, 0, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Person', r'.Person', 7, 1, const prefix0.JsonSerializable(), const [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 49, 50], const [21, 51, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix1.Person() : null}, -1, 1, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Color', r'.Color', 524295, 2, const prefix0.JsonSerializable(), const [52], const [21, 52, 22, 23, 24, 53], const [], -1, {}, {}, {}, -1, 2, const [], const [prefix0.jsonSerializable], null)], [r.VariableMirrorImpl(r'model', 32773, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [const prefix0.JsonProperty(name: 'modelName')]), r.VariableMirrorImpl(r'color', 32773, 0, const prefix0.JsonSerializable(), 2, 2, 2, const [], const []), r.VariableMirrorImpl(r'skills', 2129925, 1, const prefix0.JsonSerializable(), -1, 4, 5, const [3], const []), r.VariableMirrorImpl(r'lastPromotionDate', 32773, 1, const prefix0.JsonSerializable(), -1, 6, 6, const [], const [const prefix0.JsonProperty(name: 'last_promotion_date', ignore: true)]), r.VariableMirrorImpl(r'hireDate', 32773, 1, const prefix0.JsonSerializable(), -1, 7, 7, const [], const [const prefix0.JsonProperty(name: 'hire_date')]), r.VariableMirrorImpl(r'married', 32773, 1, const prefix0.JsonSerializable(), -1, 8, 8, const [], const []), r.VariableMirrorImpl(r'name', 32773, 1, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'salary', 32773, 1, const prefix0.JsonSerializable(), -1, 9, 9, const [], const [const prefix0.JsonProperty(ignore: true)]), r.VariableMirrorImpl(r'dob', 32773, 1, const prefix0.JsonSerializable(), -1, 9, 9, const [], const []), r.VariableMirrorImpl(r'age', 32773, 1, const prefix0.JsonSerializable(), -1, 10, 10, const [], const []), r.VariableMirrorImpl(r'lastName', 32773, 1, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'eyeColor', 32773, 1, const prefix0.JsonSerializable(), 2, 2, 2, const [], const [const prefix0.JsonProperty(name: 'eye_color')]), r.VariableMirrorImpl(r'hairColor', 32773, 1, const prefix0.JsonSerializable(), 2, 2, 2, const [], const [const prefix0.JsonProperty(converter: prefix2.enumConverterNumeric)]), r.VariableMirrorImpl(r'vehicles', 2129925, 1, const prefix0.JsonSerializable(), -1, 11, 12, const [0], const []), r.VariableMirrorImpl(r'index', 33861, 2, const prefix0.JsonSerializable(), -1, 13, 13, const [], const []), r.MethodMirrorImpl(r'toString', 131074, 0, -1, 3, 3, const [], const [], const prefix0.JsonSerializable(), const [override]), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 0, 16), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 0, 17), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 1, 18), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 1, 19), r.MethodMirrorImpl(r'', 0, 0, -1, 0, 0, const [], const [0, 1], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'==', 131074, -1, -1, 8, 8, const [], const [4], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'noSuchMethod', 65538, -1, -1, -1, -1, const [], const [5], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'hashCode', 131075, -1, -1, 13, 13, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'runtimeType', 131075, -1, -1, 14, 14, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 2, 25), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 2, 26), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 3, 27), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 3, 28), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 4, 29), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 4, 30), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 5, 31), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 5, 32), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 6, 33), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 6, 34), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 7, 35), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 7, 36), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 8, 37), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 8, 38), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 9, 39), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 9, 40), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 10, 41), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 10, 42), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 11, 43), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 11, 44), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 12, 45), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 12, 46), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 13, 47), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 13, 48), r.MethodMirrorImpl(r'fullName', 131075, 1, -1, 3, 3, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 1, -1, 1, 1, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toString', 131074, -1, -1, 3, 3, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toString', 131138, 2, -1, 3, 3, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 14, 53)], [r.ParameterMirrorImpl(r'model', 33798, 20, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'color', 33798, 20, const prefix0.JsonSerializable(), 2, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_model', 32870, 17, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_color', 32870, 19, const prefix0.JsonSerializable(), 2, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'other', 32774, 21, const prefix0.JsonSerializable(), -1, 15, 15, const [], const [], null, null), r.ParameterMirrorImpl(r'invocation', 32774, 22, const prefix0.JsonSerializable(), -1, 16, 16, const [], const [], null, null), r.ParameterMirrorImpl(r'_skills', 2130022, 26, const prefix0.JsonSerializable(), -1, 4, 5, const [3], const [], null, null), r.ParameterMirrorImpl(r'_lastPromotionDate', 32870, 28, const prefix0.JsonSerializable(), -1, 6, 6, const [], const [], null, null), r.ParameterMirrorImpl(r'_hireDate', 32870, 30, const prefix0.JsonSerializable(), -1, 7, 7, const [], const [], null, null), r.ParameterMirrorImpl(r'_married', 32870, 32, const prefix0.JsonSerializable(), -1, 8, 8, const [], const [], null, null), r.ParameterMirrorImpl(r'_name', 32870, 34, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_salary', 32870, 36, const prefix0.JsonSerializable(), -1, 9, 9, const [], const [], null, null), r.ParameterMirrorImpl(r'_dob', 32870, 38, const prefix0.JsonSerializable(), -1, 9, 9, const [], const [], null, null), r.ParameterMirrorImpl(r'_age', 32870, 40, const prefix0.JsonSerializable(), -1, 10, 10, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 32870, 42, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_eyeColor', 32870, 44, const prefix0.JsonSerializable(), 2, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_hairColor', 32870, 46, const prefix0.JsonSerializable(), 2, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_vehicles', 2130022, 48, const prefix0.JsonSerializable(), -1, 11, 12, const [0], const [], null, null)], [prefix1.Car, prefix1.Person, prefix1.Color, String, const m.TypeValue>().type, List, DateTime, DateTime, bool, num, num, const m.TypeValue>().type, List, int, Type, Object, Invocation], 3, {r'==': (dynamic instance) => (x) => instance == x, r'toString': (dynamic instance) => instance.toString, r'noSuchMethod': (dynamic instance) => instance.noSuchMethod, r'hashCode': (dynamic instance) => instance.hashCode, r'runtimeType': (dynamic instance) => instance.runtimeType, r'model': (dynamic instance) => instance.model, r'color': (dynamic instance) => instance.color, r'skills': (dynamic instance) => instance.skills, r'lastPromotionDate': (dynamic instance) => instance.lastPromotionDate, r'hireDate': (dynamic instance) => instance.hireDate, r'married': (dynamic instance) => instance.married, r'name': (dynamic instance) => instance.name, r'salary': (dynamic instance) => instance.salary, r'dob': (dynamic instance) => instance.dob, r'age': (dynamic instance) => instance.age, r'lastName': (dynamic instance) => instance.lastName, r'eyeColor': (dynamic instance) => instance.eyeColor, r'hairColor': (dynamic instance) => instance.hairColor, r'vehicles': (dynamic instance) => instance.vehicles, r'fullName': (dynamic instance) => instance.fullName, r'index': (dynamic instance) => instance.index}, {r'model=': (dynamic instance, value) => instance.model = value, r'color=': (dynamic instance, value) => instance.color = value, r'skills=': (dynamic instance, value) => instance.skills = value, r'lastPromotionDate=': (dynamic instance, value) => instance.lastPromotionDate = value, r'hireDate=': (dynamic instance, value) => instance.hireDate = value, r'married=': (dynamic instance, value) => instance.married = value, r'name=': (dynamic instance, value) => instance.name = value, r'salary=': (dynamic instance, value) => instance.salary = value, r'dob=': (dynamic instance, value) => instance.dob = value, r'age=': (dynamic instance, value) => instance.age = value, r'lastName=': (dynamic instance, value) => instance.lastName = value, r'eyeColor=': (dynamic instance, value) => instance.eyeColor = value, r'hairColor=': (dynamic instance, value) => instance.hairColor = value, r'vehicles=': (dynamic instance, value) => instance.vehicles = value}, null, [])}; +final _data = {const prefix0.JsonSerializable(): r.ReflectorData([r.NonGenericClassMirrorImpl(r'Car', r'.Car', 134217735, 0, const prefix0.JsonSerializable(), const [0, 1, 14, 19], const [20, 14, 21, 22, 23, 15, 16, 17, 18], const [], -1, {}, {}, {r'': (bool b) => (model, color) => b ? prefix1.Car(model, color) : null}, -1, 0, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Person', r'.Person', 134217735, 1, const prefix0.JsonSerializable(), const [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 48, 49], const [20, 50, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix1.Person() : null}, -1, 1, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Color', r'.Color', 138412039, 2, const prefix0.JsonSerializable(), const [51], const [20, 50, 21, 22, 23, 52], const [], -1, {}, {}, {}, -1, 2, const [], const [prefix0.jsonSerializable], null)], [r.VariableMirrorImpl(r'model', 134348805, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [const prefix0.JsonProperty(name: 'modelName')]), r.VariableMirrorImpl(r'color', 134348805, 0, const prefix0.JsonSerializable(), 2, 2, 2, const [], const []), r.VariableMirrorImpl(r'skills', 151126021, 1, const prefix0.JsonSerializable(), -1, 4, 5, const [3], const []), r.VariableMirrorImpl(r'lastPromotionDate', 67239941, 1, const prefix0.JsonSerializable(), -1, 6, 6, const [], const [const prefix0.JsonProperty(name: 'last_promotion_date', ignore: true)]), r.VariableMirrorImpl(r'hireDate', 134348805, 1, const prefix0.JsonSerializable(), -1, 7, 7, const [], const [const prefix0.JsonProperty(name: 'hire_date')]), r.VariableMirrorImpl(r'married', 134348805, 1, const prefix0.JsonSerializable(), -1, 8, 8, const [], const []), r.VariableMirrorImpl(r'name', 134348805, 1, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'salary', 67239941, 1, const prefix0.JsonSerializable(), -1, 9, 9, const [], const [const prefix0.JsonProperty(ignore: true)]), r.VariableMirrorImpl(r'dob', 67239941, 1, const prefix0.JsonSerializable(), -1, 9, 9, const [], const []), r.VariableMirrorImpl(r'age', 134348805, 1, const prefix0.JsonSerializable(), -1, 10, 10, const [], const []), r.VariableMirrorImpl(r'lastName', 134348805, 1, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'eyeColor', 134348805, 1, const prefix0.JsonSerializable(), 2, 2, 2, const [], const [const prefix0.JsonProperty(name: 'eye_color')]), r.VariableMirrorImpl(r'hairColor', 134348805, 1, const prefix0.JsonSerializable(), 2, 2, 2, const [], const [const prefix0.JsonProperty(converter: prefix2.enumConverterNumeric)]), r.VariableMirrorImpl(r'vehicles', 151126021, 1, const prefix0.JsonSerializable(), -1, 11, 12, const [0], const []), r.MethodMirrorImpl(r'toString', 2097154, 0, -1, 3, 3, const [], const [], const prefix0.JsonSerializable(), const [override]), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 0, 15), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 0, 16), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 1, 17), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 1, 18), r.MethodMirrorImpl(r'', 0, 0, -1, 0, 0, const [], const [0, 1], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'==', 2097154, -1, -1, 8, 8, const [], const [4], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'noSuchMethod', 524290, -1, -1, -1, -1, const [], const [5], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'hashCode', 2097155, -1, -1, 13, 13, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'runtimeType', 2097155, -1, -1, 14, 14, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 2, 24), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 2, 25), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 3, 26), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 3, 27), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 4, 28), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 4, 29), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 5, 30), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 5, 31), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 6, 32), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 6, 33), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 7, 34), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 7, 35), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 8, 36), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 8, 37), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 9, 38), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 9, 39), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 10, 40), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 10, 41), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 11, 42), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 11, 43), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 12, 44), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 12, 45), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 13, 46), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 13, 47), r.MethodMirrorImpl(r'fullName', 2097155, 1, -1, 3, 3, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 1, -1, 1, 1, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toString', 2097154, -1, -1, 3, 3, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 192, 2, -1, 2, 2, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'index', 2097155, -1, -1, 13, 13, const [], const [], const prefix0.JsonSerializable(), const [])], [r.ParameterMirrorImpl(r'model', 134349830, 19, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'color', 134349830, 19, const prefix0.JsonSerializable(), 2, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_model', 134348902, 16, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_color', 134348902, 18, const prefix0.JsonSerializable(), 2, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'other', 134348806, 20, const prefix0.JsonSerializable(), -1, 15, 15, const [], const [], null, null), r.ParameterMirrorImpl(r'invocation', 134348806, 21, const prefix0.JsonSerializable(), -1, 16, 16, const [], const [], null, null), r.ParameterMirrorImpl(r'_skills', 151126118, 25, const prefix0.JsonSerializable(), -1, 4, 5, const [3], const [], null, null), r.ParameterMirrorImpl(r'_lastPromotionDate', 67240038, 27, const prefix0.JsonSerializable(), -1, 6, 6, const [], const [], null, null), r.ParameterMirrorImpl(r'_hireDate', 134348902, 29, const prefix0.JsonSerializable(), -1, 7, 7, const [], const [], null, null), r.ParameterMirrorImpl(r'_married', 134348902, 31, const prefix0.JsonSerializable(), -1, 8, 8, const [], const [], null, null), r.ParameterMirrorImpl(r'_name', 134348902, 33, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_salary', 67240038, 35, const prefix0.JsonSerializable(), -1, 9, 9, const [], const [], null, null), r.ParameterMirrorImpl(r'_dob', 67240038, 37, const prefix0.JsonSerializable(), -1, 9, 9, const [], const [], null, null), r.ParameterMirrorImpl(r'_age', 134348902, 39, const prefix0.JsonSerializable(), -1, 10, 10, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 134348902, 41, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_eyeColor', 134348902, 43, const prefix0.JsonSerializable(), 2, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_hairColor', 134348902, 45, const prefix0.JsonSerializable(), 2, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_vehicles', 151126118, 47, const prefix0.JsonSerializable(), -1, 11, 12, const [0], const [], null, null)], [prefix1.Car, prefix1.Person, prefix1.Color, String, const m.TypeValue>().type, List, DateTime, DateTime, bool, num, num, const m.TypeValue>().type, List, int, Type, Object, Invocation], 3, {r'==': (dynamic instance) => (x) => instance == x, r'toString': (dynamic instance) => instance.toString, r'noSuchMethod': (dynamic instance) => instance.noSuchMethod, r'hashCode': (dynamic instance) => instance.hashCode, r'runtimeType': (dynamic instance) => instance.runtimeType, r'model': (dynamic instance) => instance.model, r'color': (dynamic instance) => instance.color, r'skills': (dynamic instance) => instance.skills, r'lastPromotionDate': (dynamic instance) => instance.lastPromotionDate, r'hireDate': (dynamic instance) => instance.hireDate, r'married': (dynamic instance) => instance.married, r'name': (dynamic instance) => instance.name, r'salary': (dynamic instance) => instance.salary, r'dob': (dynamic instance) => instance.dob, r'age': (dynamic instance) => instance.age, r'lastName': (dynamic instance) => instance.lastName, r'eyeColor': (dynamic instance) => instance.eyeColor, r'hairColor': (dynamic instance) => instance.hairColor, r'vehicles': (dynamic instance) => instance.vehicles, r'fullName': (dynamic instance) => instance.fullName, r'index': (dynamic instance) => instance.index}, {r'model=': (dynamic instance, value) => instance.model = value, r'color=': (dynamic instance, value) => instance.color = value, r'skills=': (dynamic instance, value) => instance.skills = value, r'lastPromotionDate=': (dynamic instance, value) => instance.lastPromotionDate = value, r'hireDate=': (dynamic instance, value) => instance.hireDate = value, r'married=': (dynamic instance, value) => instance.married = value, r'name=': (dynamic instance, value) => instance.name = value, r'salary=': (dynamic instance, value) => instance.salary = value, r'dob=': (dynamic instance, value) => instance.dob = value, r'age=': (dynamic instance, value) => instance.age = value, r'lastName=': (dynamic instance, value) => instance.lastName = value, r'eyeColor=': (dynamic instance, value) => instance.eyeColor = value, r'hairColor=': (dynamic instance, value) => instance.hairColor = value, r'vehicles=': (dynamic instance, value) => instance.vehicles = value}, null, [])}; final _memberSymbolMap = null; @@ -38,8 +38,9 @@ void _initializeReflectable(JsonMapperAdapter adapter) { } final exampleGeneratedAdapter = JsonMapperAdapter( - title: 'Example Generated Adapter', + title: 'dart_json_mapper', url: 'asset:dart_json_mapper/example/example.dart', + refUrl: 'https://github.com/k-paxian/dart-json-mapper', reflectableData: _data, memberSymbolMap: _memberSymbolMap, valueDecorators: { @@ -47,16 +48,24 @@ final exampleGeneratedAdapter = JsonMapperAdapter( typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast() }, enumValues: { + x1.CaseStyle: x1.CaseStyle.values, + x2.ConversionDirection: x2.ConversionDirection.values, x0.Color: x0.Color.values }); -Future initializeJsonMapperAsync({Iterable adapters = const []}) => Future(() => initializeJsonMapper(adapters: adapters)); +Future initializeJsonMapperAsync({Iterable adapters = const [], SerializationOptions? serializationOptions, DeserializationOptions? deserializationOptions}) => Future(() => initializeJsonMapper(adapters: adapters, serializationOptions: serializationOptions, deserializationOptions: deserializationOptions)); -JsonMapper initializeJsonMapper({Iterable adapters = const []}) { +JsonMapper initializeJsonMapper({Iterable adapters = const [], SerializationOptions? serializationOptions, DeserializationOptions? deserializationOptions}) { + JsonMapper.globalSerializationOptions = serializationOptions ?? JsonMapper.globalSerializationOptions; + JsonMapper.globalDeserializationOptions = deserializationOptions ?? JsonMapper.globalDeserializationOptions; JsonMapper.enumerateAdapters([...adapters, exampleGeneratedAdapter], (JsonMapperAdapter adapter) { _initializeReflectable(adapter); JsonMapper().useAdapter(adapter); diff --git a/mapper/lib/dart_json_mapper.dart b/mapper/lib/dart_json_mapper.dart index 0b6a128b..b6d8e340 100644 --- a/mapper/lib/dart_json_mapper.dart +++ b/mapper/lib/dart_json_mapper.dart @@ -1,4 +1,6 @@ export './src/errors.dart'; export './src/mapper.dart'; export './src/model/index.dart'; -export './src/utils.dart'; +export './src/globals.dart'; +export './src/json_map.dart'; +export './src/class_info.dart'; diff --git a/mapper/lib/src/builder/builder.dart b/mapper/lib/src/builder/builder.dart index 66abf467..57c8d4d8 100644 --- a/mapper/lib/src/builder/builder.dart +++ b/mapper/lib/src/builder/builder.dart @@ -1,7 +1,10 @@ import 'package:analyzer/dart/element/element.dart'; +// ignore: implementation_imports +import 'package:analyzer/src/dart/element/element.dart' show LibraryElementImpl; import 'package:build/build.dart'; +import 'package:pubspec_parse/pubspec_parse.dart'; // ignore: implementation_imports -import 'package:reflectable/src/builder_implementation.dart' +import 'package:reflectable_builder/src/builder_implementation.dart' show BuilderImplementation; import 'reflectable_source_wrapper.dart'; @@ -19,25 +22,36 @@ class DartJsonMapperBuilder implements Builder { @override Map> get buildExtensions => { - '.dart': [_extension] - }; + '.dart': [_extension] + }; - ReflectableSourceWrapper getWrapperForLibrary(LibraryElement inputLibrary) { + ReflectableSourceWrapper getWrapperForLibrary(LibraryElement inputLibrary, + Pubspec mapperPubspec, Pubspec inputPubspec) { var result = wrappersMap[inputLibrary.identifier]; if (result == null) { - result = ReflectableSourceWrapper(inputLibrary, builderOptions.config); + result = ReflectableSourceWrapper( + inputLibrary, builderOptions.config, mapperPubspec, inputPubspec); wrappersMap.putIfAbsent(inputLibrary.identifier, () => result); } return result; } + Future getPubspec(String package, BuildStep buildStep) async { + final assetId = AssetId(package, 'pubspec.yaml'); + final content = await buildStep.readAsString(assetId); + return Pubspec.parse(content, sourceUrl: assetId.uri); + } + @override Future build(BuildStep buildStep) async { final inputId = buildStep.inputId; final outputId = inputId.changeExtension(_extension); final inputLibrary = await buildStep.inputLibrary; final incrementalBuild = wrappersMap[inputLibrary.identifier] != null; - final wrapper = getWrapperForLibrary(inputLibrary); + final wrapper = getWrapperForLibrary( + inputLibrary, + await getPubspec('dart_json_mapper', buildStep), + await getPubspec(buildStep.inputId.package, buildStep)); if (incrementalBuild && wrapper.hasNoIncrementalChanges(inputLibrary)) { await buildStep.writeAsString(outputId, wrapper.lastOutput!); return; @@ -50,8 +64,9 @@ class DartJsonMapperBuilder implements Builder { inputId, outputId, inputLibrary, - visibleLibraries, - _formatted, []); + visibleLibraries.cast(), + _formatted, + []); final wrappedSource = wrapper.wrap(generatedSource)!; await buildStep.writeAsString(outputId, wrappedSource); } diff --git a/mapper/lib/src/builder/change_analyzer.dart b/mapper/lib/src/builder/change_analyzer.dart index c0f977e1..ba3b5d71 100644 --- a/mapper/lib/src/builder/change_analyzer.dart +++ b/mapper/lib/src/builder/change_analyzer.dart @@ -12,8 +12,7 @@ class ChangeAnalyzer { Map getClassesMap( Iterable classes) => classes.fold({}, (value, element) { - value[element.getDisplayString(withNullability: false)] = - ComparableClassElement(element); + value[element.getDisplayString()] = ComparableClassElement(element); return value; }); diff --git a/mapper/lib/src/builder/library_visitor.dart b/mapper/lib/src/builder/library_visitor.dart index 9c7ca496..db877c9b 100644 --- a/mapper/lib/src/builder/library_visitor.dart +++ b/mapper/lib/src/builder/library_visitor.dart @@ -6,6 +6,7 @@ import '../model/annotations.dart'; class LibraryVisitor extends RecursiveElementVisitor { Map visitedPublicClassElements = {}; Map visitedPublicAnnotatedClassElements = {}; + Map visitedPublicAnnotatedEnumElements = {}; Map visitedLibraries = {}; final _annotationClassName = jsonSerializable.runtimeType.toString(); @@ -13,16 +14,23 @@ class LibraryVisitor extends RecursiveElementVisitor { LibraryVisitor(this.packageName); + List get visitedPublicAnnotatedElements { + return [ + ...visitedPublicAnnotatedClassElements.values, + ...visitedPublicAnnotatedEnumElements.values + ]; + } + @override - void visitExportElement(ExportElement element) { + void visitLibraryExportElement(LibraryExportElement element) { _visitLibrary(element.exportedLibrary); - super.visitExportElement(element); + super.visitLibraryExportElement(element); } @override - void visitImportElement(ImportElement element) { + void visitLibraryImportElement(LibraryImportElement element) { _visitLibrary(element.importedLibrary); - super.visitImportElement(element); + super.visitLibraryImportElement(element); } @override @@ -32,10 +40,7 @@ class LibraryVisitor extends RecursiveElementVisitor { visitedPublicClassElements.putIfAbsent(element.id, () => element); if (element.metadata.isNotEmpty && element.metadata.any((meta) => - meta - .computeConstantValue()! - .type! - .getDisplayString(withNullability: false) == + meta.computeConstantValue()!.type!.getDisplayString() == _annotationClassName)) { visitedPublicAnnotatedClassElements.putIfAbsent( element.id, () => element); @@ -44,6 +49,22 @@ class LibraryVisitor extends RecursiveElementVisitor { super.visitClassElement(element); } + @override + void visitEnumElement(EnumElement element) { + if (!element.isPrivate && + !visitedPublicAnnotatedEnumElements.containsKey(element.id)) { + visitedPublicAnnotatedEnumElements.putIfAbsent(element.id, () => element); + if (element.metadata.isNotEmpty && + element.metadata.any((meta) => + meta.computeConstantValue()!.type!.getDisplayString() == + _annotationClassName)) { + visitedPublicAnnotatedEnumElements.putIfAbsent( + element.id, () => element); + } + } + super.visitEnumElement(element); + } + void _visitLibrary(LibraryElement? element) { final identifier = element?.identifier; if (identifier != null && diff --git a/mapper/lib/src/builder/reflectable_source_wrapper.dart b/mapper/lib/src/builder/reflectable_source_wrapper.dart index 1bc6e493..7055e6aa 100644 --- a/mapper/lib/src/builder/reflectable_source_wrapper.dart +++ b/mapper/lib/src/builder/reflectable_source_wrapper.dart @@ -1,16 +1,19 @@ import 'package:analyzer/dart/element/element.dart'; import 'package:path/path.dart' show posix; +import 'package:pubspec_parse/pubspec_parse.dart'; -import '../name_casing.dart'; +import '../identifier_casing.dart'; import 'change_analyzer.dart'; import 'library_visitor.dart'; class ReflectableSourceWrapper { static const reflectableInitMethodName = '_initializeReflectable'; + static const emptyReflectableOutput = + '// No output from reflectable, \'package:reflectable/reflectable.dart\' not used.'; final collectionImport = '''import 'dart:collection' show HashSet, UnmodifiableListView;'''; final mapperImport = - '''import 'package:dart_json_mapper/dart_json_mapper.dart' show JsonMapper, JsonMapperAdapter, typeOf;'''; + '''import 'package:dart_json_mapper/dart_json_mapper.dart' show JsonMapper, JsonMapperAdapter, SerializationOptions, DeserializationOptions, typeOf;'''; final reflectableInitMethod = '''initializeReflectable() { r.data = _data; r.memberSymbolMap = _memberSymbolMap; @@ -23,15 +26,21 @@ class ReflectableSourceWrapper { r.data = adapter.reflectableData!; r.memberSymbolMap = adapter.memberSymbolMap; }'''; + static const initSignature = + '''{Iterable adapters = const [], SerializationOptions? serializationOptions, DeserializationOptions? deserializationOptions}'''; + static const initParams = + '''adapters: adapters, serializationOptions: serializationOptions, deserializationOptions: deserializationOptions'''; final initMethod = - '''Future initializeJsonMapperAsync({Iterable adapters = const []}) => Future(() => initializeJsonMapper(adapters: adapters)); + '''Future initializeJsonMapperAsync($initSignature) => Future(() => initializeJsonMapper($initParams)); -JsonMapper initializeJsonMapper({Iterable adapters = const []}) {'''; +JsonMapper initializeJsonMapper($initSignature) {'''; LibraryVisitor? _libraryVisitor; LibraryElement inputLibrary; Map options; + Pubspec mapperPubspec; + Pubspec inputPubspec; String? lastOutput; late String _inputLibraryPath; @@ -39,7 +48,8 @@ JsonMapper initializeJsonMapper({Iterable adapters = const [] final _elementImportPrefix = {}; final _importPrefix = {}; - ReflectableSourceWrapper(this.inputLibrary, this.options) { + ReflectableSourceWrapper( + this.inputLibrary, this.options, this.mapperPubspec, this.inputPubspec) { _inputLibraryPackageName = getLibraryPackageName(inputLibrary); _libraryVisitor = LibraryVisitor(_inputLibraryPackageName); inputLibrary.visitChildren(_libraryVisitor!); @@ -48,8 +58,7 @@ JsonMapper initializeJsonMapper({Iterable adapters = const [] } String getLibraryPackageName(LibraryElement library) => - 'package:' + - library.source.uri.toString().split(':').last.split('/').first; + 'package:${library.source.uri.toString().split(':').last.split('/').first}'; Iterable get allowedIterables { return (options['iterables'] as String).split(',').map((x) => x.trim()); @@ -61,17 +70,11 @@ JsonMapper initializeJsonMapper({Iterable adapters = const [] } String get _libraryAdapterId { - return transformFieldName(_libraryName, CaseStyle.camel); + return transformIdentifierCaseStyle(_libraryName, CaseStyle.camel, null); } String get _libraryName { - return (inputLibrary.identifier - .split('/') - .last - .replaceAll('.dart', '') - .replaceAll('.', ' ') - .replaceAll('_', ' ') + - ' generated adapter') + return '${inputLibrary.identifier.split('/').last.replaceAll('.dart', '').replaceAll('.', ' ').replaceAll('_', ' ')} generated adapter' .split(' ') .map((e) => capitalize(e)) .join(' ') @@ -83,7 +86,7 @@ JsonMapper initializeJsonMapper({Iterable adapters = const [] return '''$prefix.${element.name}'''; } - String _renderValueDecoratorsForClassElement(ClassElement element) { + String _renderValueDecoratorsForClassElement(InterfaceElement element) { return [ ...[ 'List', @@ -101,30 +104,33 @@ JsonMapper initializeJsonMapper({Iterable adapters = const [] ].join(',\n'); } - String _renderEnumValuesForClassElement(ClassElement element) { + String _renderEnumValuesForClassElement(EnumElement element) { return ' ${_getElementFullName(element)}: ${_getElementFullName(element)}.values'; } String _renderValueDecorators() { - return _libraryVisitor!.visitedPublicAnnotatedClassElements.values + return _libraryVisitor!.visitedPublicAnnotatedElements .map((e) => _renderValueDecoratorsForClassElement(e)) .join(',\n'); } String _renderEnumValues() { - return _libraryVisitor!.visitedPublicAnnotatedClassElements.values - .where((element) => element.isEnum) + return _libraryVisitor!.visitedPublicAnnotatedEnumElements.values .map((e) => _renderEnumValuesForClassElement(e)) .join(',\n'); } - String _renderLibraryAdapterDefinition() { - return ''' + bool _hasReflectableOutput(String input) => + input.contains(reflectableInitMethod); + + String _renderLibraryAdapterDefinition(String input) { + final hasReflectableOutput = _hasReflectableOutput(input); + return ''' final $_libraryAdapterId = JsonMapperAdapter( - title: '$_libraryName', - url: '${inputLibrary.identifier}', - reflectableData: _data, - memberSymbolMap: _memberSymbolMap, + title: '${inputPubspec.name}', + url: '${inputLibrary.identifier}',${inputPubspec.homepage != null ? '\n refUrl: \'${inputPubspec.homepage}\',' : ''} + reflectableData: ${hasReflectableOutput ? '_data' : 'null'}, + memberSymbolMap: ${hasReflectableOutput ? '_memberSymbolMap' : 'null'}, valueDecorators: { ${_renderValueDecorators()} }, @@ -134,8 +140,10 @@ ${_renderEnumValues()} } String _renderLibraryAdapterRegistration(String input) { - final hasReflectableOutput = input.indexOf(reflectableInitMethod) > 0; + final hasReflectableOutput = _hasReflectableOutput(input); return ''' + JsonMapper.globalSerializationOptions = serializationOptions ?? JsonMapper.globalSerializationOptions; + JsonMapper.globalDeserializationOptions = deserializationOptions ?? JsonMapper.globalDeserializationOptions; JsonMapper.enumerateAdapters([...adapters, $_libraryAdapterId], (JsonMapperAdapter adapter) { ${hasReflectableOutput ? '$reflectableInitMethodName(adapter);' : ''} JsonMapper().useAdapter(adapter); @@ -145,7 +153,7 @@ ${_renderEnumValues()} } void _renderElementImport( - ClassElement element, Map> importsMap) { + InterfaceElement element, Map> importsMap) { final elementPath = element.library.identifier; String? importString; if (elementPath.startsWith(_inputLibraryPath)) { @@ -171,19 +179,18 @@ ${_renderEnumValues()} String _renderHeader() { return ''' -// This file has been generated by the dart_json_mapper package. -// https://github.com/k-paxian/dart-json-mapper +// This file has been generated by the ${mapperPubspec.name} v${mapperPubspec.version} +// ${mapperPubspec.homepage} // @dart = 2.12 '''; } Map> _buildImportsMap() { - final _importsMap = >{}; - for (var element - in _libraryVisitor!.visitedPublicAnnotatedClassElements.values) { - _renderElementImport(element, _importsMap); + final importsMap = >{}; + for (var element in _libraryVisitor!.visitedPublicAnnotatedElements) { + _renderElementImport(element, importsMap); } - return _importsMap; + return importsMap; } String _renderImports() { @@ -195,24 +202,24 @@ ${_renderEnumValues()} '''import '$key' as ${_importPrefix[key]} show ${importsMap[key]!.join(', ')};''') }.where((x) => x != null).toList(); importsList.sort(); - return importsList.join('\n') + '\n'; + return '${importsList.join('\n')}\n'; } String _removeObjectCasts(String input) { return input.replaceAll('', ''); } + String _removeEmptyReflectableOutput(String input) { + return input.replaceAll(emptyReflectableOutput, ''); + } + String _removeLanguageOverrides(String input) { - return input.replaceAll(RegExp(r'\/\/ @dart = \d\.\d+'), ''); + return input.replaceAll(RegExp(r'// @dart = \d\.\d+'), ''); } String _patchInitMethod(String input) { - final patch = '\n' + - _renderLibraryAdapterDefinition() + - '\n' + - initMethod + - '\n' + - _renderLibraryAdapterRegistration(input); + final patch = + '\n${_renderLibraryAdapterDefinition(input)}\n$initMethod\n${_renderLibraryAdapterRegistration(input)}'; return input.replaceFirst( reflectableInitMethod, reflectableInitMethodPatch) + patch; @@ -233,8 +240,8 @@ ${_renderEnumValues()} String? wrap(String reflectableGeneratedSource) { lastOutput = _renderHeader() + _renderImports() + - _patchInitMethod(_removeLanguageOverrides( - _removeObjectCasts(reflectableGeneratedSource))); + _patchInitMethod(_removeLanguageOverrides(_removeEmptyReflectableOutput( + _removeObjectCasts(reflectableGeneratedSource)))); return lastOutput; } } diff --git a/mapper/lib/src/utils.dart b/mapper/lib/src/class_info.dart similarity index 72% rename from mapper/lib/src/utils.dart rename to mapper/lib/src/class_info.dart index 0d10d414..25a4801a 100644 --- a/mapper/lib/src/utils.dart +++ b/mapper/lib/src/class_info.dart @@ -3,101 +3,6 @@ import 'package:reflectable/reflectable.dart'; import 'model/index.dart'; -Type typeOf() => T; - -const kIsWeb = identical(0, 0.0); - -/// Provides logic for traversing Json object tree -class JsonMap { - final pathDelimiter = '/'; - - Map map; - List? parentMaps = []; - Json? jsonMeta; - - JsonMap(this.map, [this.jsonMeta, this.parentMaps]); - - bool hasProperty(String name) { - return _isPathExists(_getPath(name)); - } - - dynamic getPropertyValue(String name) { - dynamic result; - final path = _getPath(name); - _isPathExists(path, (m, k) { - result = (m is Map && m.containsKey(k) && k != path) ? m[k] : m; - }); - return result; - } - - void setPropertyValue(String name, dynamic value) { - _isPathExists(_getPath(name), (m, k) {}, true, value); - } - - String _decodePath(String path) { - if (path.startsWith('#')) { - path = Uri.decodeComponent(path).substring(1); - } - return path; - } - - String _getPath(String propertyName) { - final rootObjectSegments = jsonMeta != null && jsonMeta!.name != null - ? _decodePath(jsonMeta!.name!).split(pathDelimiter) - : []; - final propertySegments = _decodePath(propertyName).split(pathDelimiter); - rootObjectSegments.addAll(propertySegments); - rootObjectSegments.removeWhere((value) => value == ''); - return rootObjectSegments.join(pathDelimiter); - } - - bool _isPathExists(String path, - [Function? propertyVisitor, bool? autoCreate, dynamic autoValue]) { - final segments = path - .split(pathDelimiter) - .map((p) => p.replaceAll('~1', pathDelimiter).replaceAll('~0', '~')) - .toList(); - dynamic current = map; - var existingSegmentsCount = 0; - for (var segment in segments) { - final idx = int.tryParse(segment); - if (segment == JsonProperty.parentReference) { - final nearestParent = - parentMaps!.lastWhereOrNull((element) => element.map != current); - if (nearestParent != null) { - current = nearestParent.map; - existingSegmentsCount++; - } - continue; - } - if (current is List && - idx != null && - (current.length > idx) && - (idx >= 0) && - current.elementAt(idx) != null) { - current = current.elementAt(idx); - existingSegmentsCount++; - } - if (current is Map && current.containsKey(segment)) { - current = current[segment]; - existingSegmentsCount++; - } else { - if (autoCreate == true) { - existingSegmentsCount++; - final isLastSegment = segments.length == existingSegmentsCount; - current[segment] = isLastSegment ? autoValue : {}; - current = current[segment]; - } - } - } - if (propertyVisitor != null && current != null) { - propertyVisitor(current, segments.last); - } - return segments.length == existingSegmentsCount && - existingSegmentsCount > 0; - } -} - /// Provides unified access to class information based on [ClassMirror] class ClassInfo { ClassMirror classMirror; @@ -130,15 +35,16 @@ class ClassInfo { {}; Json? getMeta([dynamic scheme]) => _metaData.firstWhereOrNull((m) => - (m is Json && - ((scheme != null && m.scheme == scheme) || - (scheme == null && m.scheme == null)))) as Json?; + m is Json && + ((scheme != null && m.scheme == scheme) || + (scheme == null && m.scheme == null))) as Json?; Json? getMetaWhere(Function whereFunction, [dynamic scheme]) => - _metaData.firstWhereOrNull((m) => (m is Json && + _metaData.firstWhereOrNull((m) => + m is Json && whereFunction(m) == true && ((scheme != null && m.scheme == scheme) || - (scheme == null && m.scheme == null)))) as Json?; + (scheme == null && m.scheme == null))) as Json?; JsonProperty? getDeclarationMeta(DeclarationMirror dm, [dynamic scheme]) => getLastDeclarationMeta(dm, scheme); @@ -146,9 +52,10 @@ class ClassInfo { List getAllDeclarationMeta(DeclarationMirror dm, [dynamic scheme]) => lookupDeclarationMetaData(dm) - .where((m) => (m is JsonProperty && + .where((m) => + m is JsonProperty && ((scheme != null && m.scheme == scheme) || - (scheme == null && m.scheme == null)))) + (scheme == null && m.scheme == null))) .toList() .cast(); @@ -156,17 +63,18 @@ class ClassInfo { [dynamic scheme]) => lookupDeclarationMetaData(dm) .reversed - .where((m) => (m is JsonProperty && + .where((m) => + m is JsonProperty && ((scheme != null && m.scheme == scheme) || - (scheme == null && m.scheme == null)))) + (scheme == null && m.scheme == null))) .cast() .firstOrNull; JsonConstructor? hasConstructorMeta(DeclarationMirror dm, [dynamic scheme]) => lookupDeclarationMetaData(dm).firstWhereOrNull((m) => - (m is JsonConstructor && - ((scheme != null && m.scheme == scheme) || - (scheme == null && m.scheme == null)))) as JsonConstructor?; + m is JsonConstructor && + ((scheme != null && m.scheme == scheme) || + (scheme == null && m.scheme == null))) as JsonConstructor?; List get _metaData { return lookupClassMetaData(classMirror); @@ -217,6 +125,22 @@ class ClassInfo { return null; } + /// Returns all subtypes of [classInfo], this is transitive + static List getAllSubTypes( + Map classes, ClassInfo classInfo) { + final result = []; + for (final subType in classes.values) { + try { + if (subType.classMirror.isSubtypeOf(classInfo.classMirror)) { + result.add(subType); + } + } catch (e) { + // Ignore no capability to check subtype + } + } + return result; + } + MethodMirror? getJsonAnySetter([dynamic scheme]) => getJsonSetter(null, scheme); @@ -291,7 +215,7 @@ class ClassInfo { static const Set _builtinPublicGetters = {'hashCode', 'runtimeType'}; static bool _isGetterAndSetter(MethodMirror method, ClassMirror classMirror) { return method.isGetter && - classMirror.instanceMembers[method.simpleName + '='] != null; + classMirror.instanceMembers['${method.simpleName}='] != null; } static bool _isPublicGetter(MethodMirror method) { @@ -384,7 +308,7 @@ class ClassInfo { } bool isGetterOnly(String name) { - return classMirror.instanceMembers[name + '='] == null; + return classMirror.instanceMembers['$name='] == null; } DeclarationMirror? getDeclarationMirror(String name) { @@ -415,4 +339,4 @@ class ClassInfo { } return result; } -} +} \ No newline at end of file diff --git a/mapper/lib/src/errors.dart b/mapper/lib/src/errors.dart index dd5adc40..b6ab5a8d 100644 --- a/mapper/lib/src/errors.dart +++ b/mapper/lib/src/errors.dart @@ -1,4 +1,4 @@ -import './model/index.dart'; +import 'package:dart_json_mapper/dart_json_mapper.dart'; abstract class JsonMapperError extends Error {} @@ -7,6 +7,20 @@ abstract class JsonFormatError extends JsonMapperError { {FormatException? formatException}) = _JsonFormatErrorImpl; } +class JsonMapperSubtypeError extends JsonMapperError { + JsonMapperSubtypeError( + this.discriminatorValue, this.validDiscriminators, this.superclass); + + final dynamic discriminatorValue; + final List validDiscriminators; + final ClassInfo superclass; + + @override + String toString() => + '"$discriminatorValue" is not a valid discriminator value for type "${superclass.reflectedType}".\n\n' + 'Valid values are:\n${validDiscriminators.map((x) => ' - $x').join(',\n')}'; +} + class _JsonFormatErrorImpl extends JsonMapperError implements JsonFormatError { final DeserializationContext _context; final FormatException? _formatException; @@ -107,3 +121,43 @@ class _MissingTypeForDeserializationErrorImpl extends JsonMapperError 'OR Infere type via result variable like: TargetType target = ' 'JsonMapper.deserialize(jsonString)'; } + +abstract class CannotCreateInstanceError extends JsonMapperError { + factory CannotCreateInstanceError( + TypeError typeError, + ClassInfo classInfo, + Iterable positionalNullArguments, + Map namedNullArguments) = _CannotCreateInstanceErrorImpl; +} + +class _CannotCreateInstanceErrorImpl extends JsonMapperError + implements CannotCreateInstanceError { + final ClassInfo _classInfo; + final TypeError _typeError; + final Iterable _positionalNullArguments; + final Map _namedNullArguments; + + _CannotCreateInstanceErrorImpl( + TypeError typeError, + ClassInfo classInfo, + Iterable positionalNullArguments, + Map namedNullArguments) + : _classInfo = classInfo, + _typeError = typeError, + _positionalNullArguments = positionalNullArguments, + _namedNullArguments = namedNullArguments; + + @override + String toString() => + _typeError.toString().startsWith("type 'Null' is not a subtype of type") + ? [ + "Unable to instantiate class '${_classInfo.classMirror.simpleName}'", + _positionalNullArguments.isEmpty + ? null + : ' with null positional arguments [${_positionalNullArguments.join(', ')}]', + _namedNullArguments.keys.isEmpty + ? null + : ' with null named arguments [${_namedNullArguments.keys.join(', ')}]' + ].where((element) => element != null).join('\n') + : _typeError.toString(); +} diff --git a/mapper/lib/src/globals.dart b/mapper/lib/src/globals.dart new file mode 100644 index 00000000..aa3fe2ec --- /dev/null +++ b/mapper/lib/src/globals.dart @@ -0,0 +1,3 @@ +Type typeOf() => T; + +const kIsWeb = identical(0, 0.0); \ No newline at end of file diff --git a/mapper/lib/src/name_casing.dart b/mapper/lib/src/identifier_casing.dart similarity index 52% rename from mapper/lib/src/name_casing.dart rename to mapper/lib/src/identifier_casing.dart index 179cbe30..f4c16641 100644 --- a/mapper/lib/src/name_casing.dart +++ b/mapper/lib/src/identifier_casing.dart @@ -4,25 +4,39 @@ enum CaseStyle { camel, pascal, kebab, snake, snakeAllCaps } /// Default case style when not specified explicitly const defaultCaseStyle = CaseStyle.camel; -/// Converts [input] of certain [caseStyle] to words separated by single spaces -String toWords(String input, [CaseStyle? caseStyle = defaultCaseStyle]) { +/// Converts [input] of certain [caseStyle] to List of words +List toWords(String input, [CaseStyle? caseStyle = defaultCaseStyle]) { final effectiveCaseStyle = caseStyle ?? defaultCaseStyle; switch (effectiveCaseStyle) { case CaseStyle.snake: case CaseStyle.snakeAllCaps: - return input.split('_').join(' '); + return input.split('_'); case CaseStyle.kebab: - return input.split('-').join(' '); + return input.split('-'); case CaseStyle.pascal: + if (input == input.toUpperCase()) { + return [input]; + } + return deCapitalize(input) + .replaceAllMapped(RegExp('([a-z0-9])([A-Z])'), + (match) => '${match.group(1)} ${match.group(2)}') + .replaceAllMapped(RegExp('([A-Z])([A-Z])(?=[a-z])'), + (match) => '${match.group(1)} ${match.group(2)}') + .toLowerCase() + .split(' '); case CaseStyle.camel: + if (input == input.toUpperCase()) { + return [input]; + } return input .replaceAllMapped(RegExp('([a-z0-9])([A-Z])'), (match) => '${match.group(1)} ${match.group(2)}') .replaceAllMapped(RegExp('([A-Z])([A-Z])(?=[a-z])'), (match) => '${match.group(1)} ${match.group(2)}') - .toLowerCase(); + .toLowerCase() + .split(' '); default: - return input; + return input.split(' '); } } @@ -30,8 +44,8 @@ String toWords(String input, [CaseStyle? caseStyle = defaultCaseStyle]) { String skipPrefix(String prefix, String input, [CaseStyle? caseStyle = defaultCaseStyle]) { final effectiveCaseStyle = caseStyle ?? defaultCaseStyle; - final prefixWords = toWords(prefix, effectiveCaseStyle).split(' '); - final inputWords = toWords(input, effectiveCaseStyle).split(' '); + final prefixWords = toWords(prefix, effectiveCaseStyle); + final inputWords = toWords(input, effectiveCaseStyle); int index = -1; final result = inputWords.where((element) { index++; @@ -40,7 +54,7 @@ String skipPrefix(String prefix, String input, } return true; }); - return transformFieldName(result.join(' '), caseStyle); + return transformIdentifierCaseStyle(result.join(' '), caseStyle, null); } String capitalize(String input) => input.replaceFirstMapped( @@ -49,25 +63,28 @@ String capitalize(String input) => input.replaceFirstMapped( String deCapitalize(String input) => input.replaceFirstMapped( RegExp(r'(^|\s)[A-Z]'), (match) => match.group(0)!.toLowerCase()); -/// Transforms identifier name from [sourceCaseStyle] to [targetCaseStyle] -String transformFieldName(String source, CaseStyle? targetCaseStyle, - [CaseStyle sourceCaseStyle = defaultCaseStyle]) { +/// Transforms identifier from [sourceCaseStyle] to [targetCaseStyle] +String transformIdentifierCaseStyle( + String source, CaseStyle? targetCaseStyle, CaseStyle? sourceCaseStyle) { + if (sourceCaseStyle == targetCaseStyle) { + return source; + } switch (targetCaseStyle) { case CaseStyle.kebab: - return toWords(source, sourceCaseStyle).replaceAll(' ', '-'); + return toWords(source, sourceCaseStyle).join('-'); case CaseStyle.snake: - return toWords(source, sourceCaseStyle).replaceAll(' ', '_'); + return toWords(source, sourceCaseStyle).join('_'); case CaseStyle.snakeAllCaps: - return toWords(source, sourceCaseStyle) - .replaceAll(' ', '_') - .toUpperCase(); + return toWords(source, sourceCaseStyle).join('_').toUpperCase(); case CaseStyle.pascal: return toWords(source, sourceCaseStyle) - .split(' ') .map((word) => capitalize(word)) - .join(); + .join(''); case CaseStyle.camel: - return deCapitalize(source.split(' ').map((e) => capitalize(e)).join('')); + return deCapitalize(toWords(source, sourceCaseStyle) + .map((word) => word.toLowerCase()) + .map((e) => capitalize(e)) + .join('')); default: return source; } diff --git a/mapper/lib/src/json_map.dart b/mapper/lib/src/json_map.dart new file mode 100644 index 00000000..2103d6e5 --- /dev/null +++ b/mapper/lib/src/json_map.dart @@ -0,0 +1,110 @@ +import 'dart:convert' show JsonDecoder; + +import 'package:collection/collection.dart' show IterableExtension; + +import 'model/index.dart'; + +/// Provides logic for traversing Json object tree +class JsonMap { + final pathDelimiter = '/'; + + final Map map; + final List? parentMaps; + final Json? jsonMeta; + + const JsonMap(this.map, [this.jsonMeta, this.parentMaps = const []]); + + static final JsonDecoder _jsonDecoder = const JsonDecoder(); + + static bool isValidJSON(dynamic jsonValue) { + try { + if (jsonValue is String) { + _jsonDecoder.convert(jsonValue); + return true; + } + return false; + } on FormatException { + return false; + } + } + + bool hasProperty(String name) { + return _isPathExists(_getPath(name)); + } + + dynamic getPropertyValue(String name) { + dynamic result; + final path = _getPath(name); + _isPathExists(path, (m, k) { + result = (m is Map && m.containsKey(k) && k != path) ? m[k] : m; + }); + return result; + } + + void setPropertyValue(String name, dynamic value) { + _isPathExists(_getPath(name), (m, k) {}, true, value); + } + + String _decodePath(String path) { + if (path.startsWith('#')) { + path = Uri.decodeComponent(path).substring(1); + } + return path; + } + + String _getPath(String propertyName) { + final rootObjectSegments = jsonMeta != null && jsonMeta!.name != null + ? _decodePath(jsonMeta!.name!).split(pathDelimiter) + : []; + final propertySegments = _decodePath(propertyName).split(pathDelimiter); + rootObjectSegments.addAll(propertySegments); + rootObjectSegments.removeWhere((value) => value == ''); + return rootObjectSegments.join(pathDelimiter); + } + + bool _isPathExists(String path, + [Function? propertyVisitor, bool? autoCreate, dynamic autoValue]) { + final segments = path + .split(pathDelimiter) + .map((p) => p.replaceAll('~1', pathDelimiter).replaceAll('~0', '~')) + .toList(); + dynamic current = map; + var existingSegmentsCount = 0; + for (var segment in segments) { + final idx = int.tryParse(segment); + if (segment == JsonProperty.parentReference) { + final nearestParent = + parentMaps!.lastWhereOrNull((element) => element.map != current); + if (nearestParent != null) { + current = nearestParent.map; + existingSegmentsCount++; + } + continue; + } + if (current is List && + idx != null && + (current.length > idx) && + (idx >= 0) && + current.elementAt(idx) != null) { + current = current.elementAt(idx); + existingSegmentsCount++; + } + if (current is Map && current.containsKey(segment)) { + current = current[segment]; + existingSegmentsCount++; + } else { + if (autoCreate == true) { + existingSegmentsCount++; + final isLastSegment = segments.length == existingSegmentsCount; + current[segment] = isLastSegment ? autoValue : {}; + current = current[segment]; + } + } + } + if (propertyVisitor != null && current != null) { + propertyVisitor(current, segments.last); + } + return segments.length == existingSegmentsCount && + existingSegmentsCount > 0; + } +} \ No newline at end of file diff --git a/mapper/lib/src/logic/adapter_manager.dart b/mapper/lib/src/logic/adapter_manager.dart new file mode 100644 index 00000000..22de5e20 --- /dev/null +++ b/mapper/lib/src/logic/adapter_manager.dart @@ -0,0 +1,70 @@ +import 'dart:math'; +import 'package:dart_json_mapper/src/model/index.dart'; + +class AdapterManager { + final Map _adapters = {}; + + void use(IJsonMapperAdapter adapter, [int? priority]) { + if (_adapters.containsValue(adapter)) { + return; + } + final nextPriority = priority ?? + (_adapters.keys.isNotEmpty + ? _adapters.keys.reduce((value, item) => max(value, item)) + 1 + : 0); + _adapters[nextPriority] = adapter; + } + + void remove(IJsonMapperAdapter adapter) { + _adapters.removeWhere((priority, x) => x == adapter); + } + + void info() => + _adapters.forEach((priority, adapter) => print('$priority : $adapter')); + + void enumerate(Function visitor) { + final sortedKeys = _adapters.keys.toList()..sort(); + final sortedAdapters = sortedKeys.map((key) => _adapters[key]!); + final generatedAdapters = + sortedAdapters.where((adapter) => adapter.isGenerated); + final otherAdapters = + sortedAdapters.where((adapter) => !adapter.isGenerated); + for (var adapter in [...generatedAdapters, ...otherAdapters]) { + visitor(adapter); + } + } + + Map get allEnumValues { + final result = {}; + for (var adapter in _adapters.values) { + result.addAll(adapter.enumValues); + } + return result; + } + + Map get allConverters { + final result = {}; + for (var adapter in _adapters.values) { + result.addAll(adapter.converters); + } + return result; + } + + Map allValueDecorators( + Map inlineDecorators) { + final result = {}; + result.addAll(inlineDecorators); + for (var adapter in _adapters.values) { + result.addAll(adapter.valueDecorators); + } + return result; + } + + Map get allTypeInfoDecorators { + final result = {}; + for (var adapter in _adapters.values) { + result.addAll(adapter.typeInfoDecorators); + } + return result; + } +} \ No newline at end of file diff --git a/mapper/lib/src/logic/cache_manager.dart b/mapper/lib/src/logic/cache_manager.dart new file mode 100644 index 00000000..2fa13e00 --- /dev/null +++ b/mapper/lib/src/logic/cache_manager.dart @@ -0,0 +1,30 @@ +import 'package:dart_json_mapper/src/model/index.dart'; + +class CacheManager { + final Map _processedObjects = {}; + + String getObjectKey(Object object) => + '${object.runtimeType}-${identityHashCode(object)}'; + + ProcessedObjectDescriptor? getObjectProcessed(Object object, int level) { + ProcessedObjectDescriptor? result; + + if (object.runtimeType.toString() == 'Null' || + object.runtimeType.toString() == 'bool') { + return result; + } + + final key = getObjectKey(object); + if (_processedObjects.containsKey(key)) { + result = _processedObjects[key]; + result!.logUsage(level); + } else { + result = _processedObjects[key] = ProcessedObjectDescriptor(object); + } + return result; + } + + void clear() { + _processedObjects.clear(); + } +} \ No newline at end of file diff --git a/mapper/lib/src/logic/converter_handler.dart b/mapper/lib/src/logic/converter_handler.dart new file mode 100644 index 00000000..b9e9fbdf --- /dev/null +++ b/mapper/lib/src/logic/converter_handler.dart @@ -0,0 +1,106 @@ +import 'package:collection/collection.dart'; +import 'package:dart_json_mapper/src/model/index.dart'; + +import '../mapper.dart'; + +class ConverterHandler { + final JsonMapper _mapper; + + Map converters = {}; + final Map< + ICustomConverter?, + Map>>> + convertedValuesCache = {}; + + ConverterHandler(this._mapper); + + void clearCache() { + convertedValuesCache.clear(); + } + + ICustomConverter? getConverter( + JsonProperty? jsonProperty, TypeInfo typeInfo) { + final result = jsonProperty?.converter ?? + converters[typeInfo.type!] ?? + converters[typeInfo.genericType] ?? + (_mapper.enumValues[typeInfo.type!] != null + ? converters[Enum] + : null) ?? + converters[converters.keys.firstWhereOrNull( + (Type type) => type.toString() == typeInfo.typeName)]; + + if (result is ICustomEnumConverter) { + (result as ICustomEnumConverter) + .setEnumDescriptor(getEnumDescriptor(_mapper.enumValues[typeInfo.type!])); + } + return result; + } + + IEnumDescriptor? getEnumDescriptor(dynamic descriptor) { + if (descriptor is Iterable) { + return EnumDescriptor(values: descriptor); + } + if (descriptor is IEnumDescriptor) { + return descriptor; + } + return null; + } + + dynamic getConvertedValue( + ICustomConverter converter, dynamic value, DeserializationContext context) { + final direction = context.direction; + if (convertedValuesCache.containsKey(converter) && + convertedValuesCache[converter]!.containsKey(direction) && + convertedValuesCache[converter]![direction]!.containsKey(context) && + convertedValuesCache[converter]![direction]![context]! + .containsKey(value)) { + return convertedValuesCache[converter]![direction]![context]![value]; + } + + final computedValue = direction == ConversionDirection.fromJson + ? converter.fromJSON(value, context) + : converter.toJSON(value, context as SerializationContext); + convertedValuesCache.putIfAbsent( + converter, + () => { + direction: { + context: {value: computedValue} + } + }); + convertedValuesCache[converter]!.putIfAbsent( + direction, + () => { + context: {value: computedValue} + }); + convertedValuesCache[converter]![direction]! + .putIfAbsent(context, () => {value: computedValue}); + convertedValuesCache[converter]![direction]![context]! + .putIfAbsent(value, () => computedValue); + return computedValue; + } + + void configureConverter( + ICustomConverter converter, DeserializationContext context, + {dynamic value}) { + if (converter is ICompositeConverter) { + (converter as ICompositeConverter).setGetConverterFunction(getConverter); + (converter as ICompositeConverter) + .setGetConvertedValueFunction(getConvertedValue); + } + if (converter is ICustomIterableConverter) { + (converter as ICustomIterableConverter).setIterableInstance(value); + } + if (converter is ICustomMapConverter) { + final instance = value ?? (context.options.template); + (converter as ICustomMapConverter).setMapInstance(instance); + } + if (converter is IRecursiveConverter) { + (converter as IRecursiveConverter).setSerializeObjectFunction( + (o, context) => _mapper.serializationHandler.serializeObject(o, context)); + (converter as IRecursiveConverter).setDeserializeObjectFunction((o, + context, type) => + _mapper.deserializationHandler.deserializeObject(o, context.reBuild(typeInfo: _mapper.typeInfoHandler.getTypeInfo(type)))); + } + } +} \ No newline at end of file diff --git a/mapper/lib/src/logic/deserialization_handler.dart b/mapper/lib/src/logic/deserialization_handler.dart new file mode 100644 index 00000000..000e813d --- /dev/null +++ b/mapper/lib/src/logic/deserialization_handler.dart @@ -0,0 +1,328 @@ +import 'dart:convert' show JsonEncoder, JsonDecoder; + +import 'package:dart_json_mapper/dart_json_mapper.dart'; + +import 'property_handler.dart'; +import 'reflection_handler.dart'; + +class DeserializationHandler { + final JsonMapper _mapper; + + DeserializationHandler(this._mapper); + + Object? deserializeObject( + dynamic jsonValue, DeserializationContext context) { + if (jsonValue == null) { + return null; + } + var typeInfo = context.typeInfo!; + final converter = _mapper.converterHandler.getConverter(context.jsonPropertyMeta, typeInfo); + if (converter != null) { + _mapper.converterHandler.configureConverter(converter, context); + if (typeInfo.isIterable && + (converter is ICustomIterableConverter && + converter is! DefaultIterableConverter)) { + return _mapper.applyValueDecorator( + _mapper.converterHandler.getConvertedValue(converter, jsonValue, context), typeInfo); + } + return _mapper.applyValueDecorator( + _mapper.converterHandler.getConvertedValue(converter, jsonValue, context), typeInfo); + } + + final convertedJsonValue = + JsonMap.isValidJSON(jsonValue) ? const JsonDecoder().convert(jsonValue) : jsonValue; + + if (convertedJsonValue is String && typeInfo.type is Type) { + return _mapper.typeInfoHandler.getTypeByStringName(convertedJsonValue.replaceAll("\"", "")); + } + + var jsonMap = JsonMap( + convertedJsonValue, null, context.parentJsonMaps as List?); + typeInfo = + _detectObjectType(null, context.typeInfo!.type, jsonMap, context) ?? + typeInfo; + final classInfo = _mapper.classes[typeInfo.type] ?? + _mapper.classes[typeInfo.genericType] ?? + _mapper.classes[typeInfo.mixinType]; + if (classInfo == null) { + throw MissingAnnotationOnTypeError(typeInfo.type); + } + jsonMap = JsonMap(jsonMap.map, classInfo.getMeta(context.options.scheme), + jsonMap.parentMaps); + + final namedArguments = + _getNamedArguments(classInfo, jsonMap, context); + final positionalArgumentNames = []; + final positionalArguments = _getPositionalArguments( + classInfo, jsonMap, context, positionalArgumentNames); + dynamic objectInstance; + try { + objectInstance = context.options.template ?? + (classInfo.classMirror.isEnum + ? null + : classInfo.classMirror.newInstance( + classInfo + .getJsonConstructor(context.options.scheme)! + .constructorName, + positionalArguments, + namedArguments)); + } on TypeError catch (typeError) { + final positionalNullArguments = positionalArgumentNames.where((element) => + positionalArguments[positionalArgumentNames.indexOf(element)] == + null); + final namedNullArguments = Map.from(namedArguments); + namedNullArguments.removeWhere((key, value) => value != null); + throw CannotCreateInstanceError( + typeError, classInfo, positionalNullArguments, namedNullArguments); + } + + final im = ReflectionHandler.safeGetInstanceMirror(objectInstance)!; + final inheritedPublicFieldNames = classInfo.inheritedPublicFieldNames; + final mappedFields = namedArguments.keys + .map((Symbol symbol) => + RegExp('"(.+)"').allMatches(symbol.toString()).first.group(1)) + .toList() + ..addAll(positionalArgumentNames); + + _mapper.propertyHandler.enumeratePublicProperties(im, jsonMap, context, (name, property, + isGetterOnly, JsonProperty? meta, converter, TypeInfo typeInfo) { + final propertyContext = context.reBuild( + parentObjectInstances: [ + ...(context.parentObjectInstances ?? []), + objectInstance + ], + typeInfo: typeInfo, + jsonPropertyMeta: meta, + parentJsonMaps: [ + ...(context.parentJsonMaps ?? []), + jsonMap + ]); + final defaultValue = meta?.defaultValue; + final hasJsonProperty = jsonMap.hasProperty(property.name); + var fieldValue = jsonMap.getPropertyValue(property.name); + if (!hasJsonProperty || mappedFields.contains(name)) { + if (meta?.flatten == true) { + if (mappedFields.contains(name) || isGetterOnly) { + return; + } + final fieldValue = jsonMap.getPropertyValue(property.name); + final metaName = meta?.name; + final objectToDeserialize = metaName != null && fieldValue is Map + ? fieldValue.map((key, value) => MapEntry(skipPrefix(metaName, key, propertyContext.caseStyle), value)) + : fieldValue; + + im.invokeSetter(name, deserializeObject(objectToDeserialize, propertyContext)); + return; + } + if (im.invokeGetter(name) == null && + defaultValue != null && + !isGetterOnly) { + im.invokeSetter(name, defaultValue); + } + if (meta?.inject != true) { + return; + } + } + fieldValue = property.raw + ? deserializeObject(fieldValue, propertyContext) + : property.value; + if (isGetterOnly) { + if (inheritedPublicFieldNames.contains(name) && + !mappedFields.contains(property.name)) { + mappedFields.add(property.name); + } + } else { + if (meta?.rawJson == true && typeInfo.type == String) { + if (fieldValue is Map || fieldValue is List) { + fieldValue = JsonEncoder().convert(fieldValue); + } else if (fieldValue == null) { + fieldValue = null; + } else { + fieldValue = fieldValue.toString(); + } + } + + fieldValue = _mapper.applyValueDecorator(fieldValue, typeInfo) ?? defaultValue; + im.invokeSetter(name, fieldValue); + mappedFields.add(property.name); + } + }); + + final discriminatorPropertyName = + _mapper.typeInfoHandler.getDiscriminatorProperty(classInfo, context.options); + final unmappedFields = jsonMap.map.keys + .where((field) => + !mappedFields.contains(field) && field != discriminatorPropertyName) + .toList(); + if (unmappedFields.isNotEmpty) { + final jsonAnySetter = classInfo.getJsonAnySetter(context.options.scheme); + for (var field in unmappedFields) { + final jsonSetter = + classInfo.getJsonSetter(field, context.options.scheme) ?? + jsonAnySetter; + final params = jsonSetter == jsonAnySetter + ? [field, jsonMap.map[field]] + : [jsonMap.map[field]]; + if (jsonSetter != null) { + im.invoke(jsonSetter.simpleName, params); + } + } + } + + return _mapper.applyValueDecorator(objectInstance, typeInfo); + } + + TypeInfo? _detectObjectType(dynamic objectInstance, Type? objectType, + JsonMap objectJsonMap, DeserializationContext context) { + final objectClassInfo = _mapper.classes[objectType]; + if (objectClassInfo == null) { + return null; + } + final meta = objectClassInfo.getMeta(context.options.scheme); + + if (objectInstance is Map) { + objectJsonMap = JsonMap(objectInstance, meta); + } + final typeInfo = _mapper.typeInfoHandler.getTypeInfo(objectType ?? objectInstance.runtimeType); + + final discriminatorProperty = + _mapper.typeInfoHandler.getDiscriminatorProperty(objectClassInfo, context.options); + final discriminatorValue = discriminatorProperty != null && + objectJsonMap.hasProperty(discriminatorProperty) + ? objectJsonMap.getPropertyValue(discriminatorProperty) + : null; + if (discriminatorProperty != null && discriminatorValue != null) { + final declarationMirror = + objectClassInfo.getDeclarationMirror(discriminatorProperty); + if (declarationMirror != null) { + final discriminatorType = ReflectionHandler.getDeclarationType(declarationMirror); + final value = deserializeObject(discriminatorValue, + context.reBuild(typeInfo: _mapper.typeInfoHandler.getTypeInfo(discriminatorType))); + if (value is Type) { + return _mapper.typeInfoHandler.getTypeInfo(value); + } + + if (_mapper.discriminatorToType[value] == null) { + final validDiscriminators = ClassInfo.getAllSubTypes( + _mapper.classes, objectClassInfo) + .map((e) => e.getMeta(context.options.scheme)!.discriminatorValue) + .toList(); + throw JsonMapperSubtypeError( + discriminatorValue, + validDiscriminators, + objectClassInfo, + ); + } + + return _mapper.typeInfoHandler.getTypeInfo(_mapper.discriminatorToType[value]!); + } + } + if (discriminatorValue != null) { + final targetType = _mapper.typeInfoHandler.getTypeByStringName(discriminatorValue); + return _mapper.classes[targetType] != null + ? _mapper.typeInfoHandler.getTypeInfo(_mapper.classes[targetType]!.reflectedType!) + : typeInfo; + } + return typeInfo; + } + + void _enumerateConstructorParameters(ClassInfo classInfo, JsonMap jsonMap, + DeserializationContext context, Function filter, Function visitor) { + final classMeta = classInfo.getMeta(context.options.scheme); + final scheme = + classMeta != null ? classMeta.scheme : context.options.scheme; + final methodMirror = classInfo.getJsonConstructor(scheme); + if (methodMirror == null) { + return; + } + for (var param in methodMirror.parameters) { + if (!filter(param)) { + return; + } + final name = param.simpleName; + final declarationMirror = classInfo.getDeclarationMirror(name) ?? param; + final paramType = param.hasReflectedType + ? param.reflectedType + : param.hasDynamicReflectedType + ? param.dynamicReflectedType + : _mapper.typeInfoHandler.getGenericParameterTypeByIndex( + methodMirror.parameters.indexOf(param), + context.typeInfo!) ?? + dynamic; + var paramTypeInfo = _mapper.typeInfoHandler.getTypeInfo(paramType); + paramTypeInfo = paramTypeInfo.isDynamic + ? _mapper.typeInfoHandler.getTypeInfo(ReflectionHandler.getDeclarationType(declarationMirror)) + : paramTypeInfo; + final meta = classInfo.getDeclarationMeta( + declarationMirror, context.options.scheme) ?? + classInfo.getDeclarationMeta(param, context.options.scheme); + final propertyContext = context.reBuild( + classMeta: classMeta, + jsonPropertyMeta: meta, + typeInfo: paramTypeInfo, + parentJsonMaps: [ + ...(context.parentJsonMaps ?? []), + jsonMap + ]); + + dynamic finalValueForVisitor; + String? jsonNameForVisitor; + + if (meta?.flatten == true) { + finalValueForVisitor = deserializeObject(jsonMap.map, propertyContext.reBuild(jsonPropertyMeta: null)); + jsonNameForVisitor = context.transformIdentifier(meta?.name ?? name); + } else { + final property = _mapper.propertyHandler.resolveProperty( + name, + jsonMap, + propertyContext, + classMeta, + meta, + (_, resolvedJsonNameFromCallback, defaultValueFromCallback) => + jsonMap.hasProperty(resolvedJsonNameFromCallback) + ? jsonMap.getPropertyValue(resolvedJsonNameFromCallback) ?? defaultValueFromCallback + : defaultValueFromCallback); + jsonNameForVisitor = property.name; + if (property.raw) { + finalValueForVisitor = deserializeObject(property.value, propertyContext); + } else { + finalValueForVisitor = property.value; + } + } + + visitor(param, name, jsonNameForVisitor, classMeta, meta, finalValueForVisitor, paramTypeInfo); + } + } + + Map _getNamedArguments( + ClassInfo cm, JsonMap jsonMap, DeserializationContext context) { + final result = {}; + + _enumerateConstructorParameters( + cm, jsonMap, context, (param) => param.isNamed, (param, name, jsonName, + classMeta, JsonProperty? meta, value, TypeInfo typeInfo) { + if (!PropertyHandler.isFieldIgnoredByValue(value, classMeta, meta, context.options)) { + result[Symbol(name)] = value; + } + }); + + return result; + } + + List _getPositionalArguments(ClassInfo cm, JsonMap jsonMap, + DeserializationContext context, List positionalArgumentNames) { + final result = []; + + _enumerateConstructorParameters( + cm, jsonMap, context, (param) => !param.isOptional && !param.isNamed, + (param, name, jsonName, classMeta, JsonProperty? meta, value, + TypeInfo typeInfo) { + positionalArgumentNames.add(name); + result.add(PropertyHandler.isFieldIgnoredByValue(value, classMeta, meta, context.options) + ? null + : value); + }); + + return result; + } +} \ No newline at end of file diff --git a/mapper/lib/src/logic/property_handler.dart b/mapper/lib/src/logic/property_handler.dart new file mode 100644 index 00000000..6eadc76f --- /dev/null +++ b/mapper/lib/src/logic/property_handler.dart @@ -0,0 +1,189 @@ +import 'package:dart_json_mapper/src/model/index.dart'; +import 'package:reflectable/reflectable.dart' show InstanceMirror, MethodMirror; + +import '../class_info.dart'; +import '../errors.dart'; +import '../json_map.dart'; +import '../mapper.dart'; +import 'reflection_handler.dart'; + +class PropertyHandler { + final JsonMapper _mapper; + + PropertyHandler(this._mapper); + + static bool isNullableField(JsonProperty? meta) => + !(JsonProperty.isRequired(meta) || JsonProperty.isNotNull(meta)); + + static bool isFieldIgnored( + [Json? classMeta, + JsonProperty? meta, + DeserializationOptions? options]) => + meta != null && + (meta.ignore == true || + ((meta.ignoreForSerialization == true || + JsonProperty.hasParentReference(meta) || + meta.inject == true) && + options is SerializationOptions) || + (meta.ignoreForDeserialization == true && + options is! SerializationOptions)) && + isNullableField(meta); + + static bool isFieldIgnoredByDefault( + JsonProperty? meta, Json? classMeta, SerializationOptions options) => + meta?.ignoreIfDefault == true || + classMeta?.ignoreDefaultMembers == true || + options.ignoreDefaultMembers == true; + + static bool isFieldIgnoredByValue( + [dynamic value, + Json? classMeta, + JsonProperty? meta, + DeserializationOptions? options]) => + ((meta != null && + (isFieldIgnored(classMeta, meta, options) || + meta.ignoreIfNull == true && value == null)) || + (options is SerializationOptions && + (((options.ignoreNullMembers == true || + classMeta?.ignoreNullMembers == true) && + value == null) || + ((isFieldIgnoredByDefault(meta, classMeta, options)) && + JsonProperty.isDefaultValue(meta, value) == true)))) && + isNullableField(meta); + + static void checkFieldConstraints(dynamic value, String name, + dynamic hasJsonProperty, JsonProperty? fieldMeta) { + if (JsonProperty.isNotNull(fieldMeta) && + (hasJsonProperty == false || (value == null))) { + throw FieldCannotBeNullError(name, message: fieldMeta!.notNullMessage); + } + if (hasJsonProperty == false && JsonProperty.isRequired(fieldMeta)) { + throw FieldIsRequiredError(name, message: fieldMeta!.requiredMessage); + } + } + + void enumeratePublicProperties(InstanceMirror instanceMirror, + JsonMap? jsonMap, DeserializationContext context, Function visitor) { + final classInfo = ClassInfo.fromCache(instanceMirror.type, _mapper.classes); + final classMeta = classInfo.getMeta(context.options.scheme); + + for (var name in classInfo.publicFieldNames) { + final declarationMirror = classInfo.getDeclarationMirror(name); + if (declarationMirror == null) { + continue; + } + final declarationType = ReflectionHandler.getDeclarationType(declarationMirror); + final isGetterOnly = classInfo.isGetterOnly(name); + final meta = classInfo.getDeclarationMeta( + declarationMirror, context.options.scheme); + if (meta == null && + Json.getProcessAnnotatedMembersOnly(classMeta, context.options) == true) { + continue; + } + + if (isFieldIgnored(classMeta, meta, context.options)) { + continue; + } + final propertyContext = + context.reBuild(classMeta: classMeta, jsonPropertyMeta: meta); + final property = resolveProperty( + name, jsonMap, propertyContext, classMeta, meta, (name, jsonName, _) { + var result = instanceMirror.invokeGetter(name); + if (result == null && jsonMap != null) { + result = jsonMap.getPropertyValue(jsonName); + } + return result; + }); + + checkFieldConstraints( + property.value, name, jsonMap?.hasProperty(property.name), meta); + + if (isFieldIgnoredByValue( + property.value, classMeta, meta, propertyContext.options)) { + continue; + } + final typeInfo = + _mapper.typeInfoHandler.getDeclarationTypeInfo(declarationType, property.value?.runtimeType); + visitor(name, property, isGetterOnly, meta, _mapper.converterHandler.getConverter(meta, typeInfo), + typeInfo); + } + + classInfo.enumerateJsonGetters((MethodMirror mm, JsonProperty meta) { + final declarationType = ReflectionHandler.getDeclarationType(mm); + final propertyContext = + context.reBuild(classMeta: classMeta, jsonPropertyMeta: meta); + final property = resolveProperty( + mm.simpleName, jsonMap, propertyContext, classMeta, meta, + (name, jsonName, _) { + var result = instanceMirror.invoke(name, []); + if (result == null && jsonMap != null) { + result = jsonMap.getPropertyValue(jsonName); + } + return result; + }); + + checkFieldConstraints(property.value, mm.simpleName, + jsonMap?.hasProperty(property.name), meta); + if (isFieldIgnoredByValue( + property.value, classMeta, meta, context.options)) { + return; + } + final typeInfo = + _mapper.typeInfoHandler.getDeclarationTypeInfo(declarationType, property.value?.runtimeType); + visitor(mm.simpleName, property, true, meta, + _mapper.converterHandler.getConverter(meta, typeInfo), _mapper.typeInfoHandler.getTypeInfo(declarationType)); + }, context.options.scheme); + } + + PropertyDescriptor resolveProperty( + String name, + JsonMap? jsonMap, + DeserializationContext context, + Json? classMeta, + JsonProperty? meta, + Function getValueByName) { + String? jsonName = name; + + if (meta != null && meta.name != null) { + jsonName = JsonProperty.getPrimaryName(meta); + } + jsonName = context.transformIdentifier(jsonName!); + var value = getValueByName(name, jsonName, meta?.defaultValue); + if (jsonMap != null && + meta != null && + (value == null || !jsonMap.hasProperty(jsonName))) { + final initialValue = value; + for (final alias in JsonProperty.getAliases(meta)!) { + final targetJsonName = transformIdentifierCaseStyle( + alias, context.targetCaseStyle, context.sourceCaseStyle); + if (value != initialValue || !jsonMap.hasProperty(targetJsonName)) { + continue; + } + jsonName = targetJsonName; + value = jsonMap.getPropertyValue(jsonName); + } + } + if (meta != null && + meta.inject == true && + context.options.injectableValues != null) { + final injectionJsonMap = JsonMap(context.options.injectableValues!); + if (injectionJsonMap.hasProperty(jsonName!)) { + value = injectionJsonMap.getPropertyValue(jsonName); + return PropertyDescriptor(jsonName, value, false); + } else { + return PropertyDescriptor(jsonName, null, false); + } + } + if (jsonName == JsonProperty.parentReference) { + return PropertyDescriptor( + jsonName!, context.parentObjectInstances!.last, false); + } + if (value == null && + meta?.defaultValue != null && + isFieldIgnoredByDefault( + meta, classMeta, context.options as SerializationOptions)) { + return PropertyDescriptor(jsonName!, meta?.defaultValue, true); + } + return PropertyDescriptor(jsonName!, value, true); + } +} \ No newline at end of file diff --git a/mapper/lib/src/logic/reflection_handler.dart b/mapper/lib/src/logic/reflection_handler.dart new file mode 100644 index 00000000..a269450b --- /dev/null +++ b/mapper/lib/src/logic/reflection_handler.dart @@ -0,0 +1,52 @@ +import 'package:reflectable/reflectable.dart' + show + ClassMirror, + InstanceMirror, + DeclarationMirror, + VariableMirror, + MethodMirror; + +import '../model/annotations.dart'; + +class ReflectionHandler { + static const _serializable = JsonSerializable(); + + static InstanceMirror? safeGetInstanceMirror(Object object) { + InstanceMirror? result; + try { + result = _serializable.reflect(object); + } catch (error) { + return result; + } + return result; + } + + static Type getDeclarationType(DeclarationMirror mirror) { + Type? result = dynamic; + VariableMirror variable; + MethodMirror method; + + try { + variable = mirror as VariableMirror; + result = variable.hasReflectedType ? variable.reflectedType : null; + } catch (error) { + result = result; + } + + try { + method = mirror as MethodMirror; + result = + method.hasReflectedReturnType ? method.reflectedReturnType : null; + } catch (error) { + result = result; + } + + return result ??= dynamic; + } + + static void enumerateAnnotatedClasses(Function(ClassMirror) visitor) { + for (var classMirror in _serializable.annotatedClasses) { + visitor(classMirror); + } + } +} \ No newline at end of file diff --git a/mapper/lib/src/logic/serialization_handler.dart b/mapper/lib/src/logic/serialization_handler.dart new file mode 100644 index 00000000..8dfd6ad4 --- /dev/null +++ b/mapper/lib/src/logic/serialization_handler.dart @@ -0,0 +1,137 @@ +import 'dart:convert' show JsonDecoder; + +import 'package:dart_json_mapper/dart_json_mapper.dart'; +import 'reflection_handler.dart'; + +class SerializationHandler { + final JsonMapper _mapper; + + SerializationHandler(this._mapper); + + dynamic serializeObject(Object? object, SerializationContext? context) { + if (object == null) { + return object; + } + + final im = ReflectionHandler.safeGetInstanceMirror(object); + final converter = _mapper.converterHandler.getConverter( + context!.jsonPropertyMeta, _mapper.typeInfoHandler.getTypeInfo(object.runtimeType)); + if (converter != null) { + _mapper.converterHandler.configureConverter(converter, context, value: object); + return _mapper.converterHandler.getConvertedValue(converter, object, context); + } + + if (im == null) { + if (context.serializationOptions.ignoreUnknownTypes == true) { + return null; + } else { + throw MissingAnnotationOnTypeError(object.runtimeType); + } + } + + final classInfo = ClassInfo.fromCache(im.type, _mapper.classes); + final jsonMeta = classInfo.getMeta(context.options.scheme); + final initialMap = context.level == 0 + ? context.options.template ?? {} + : {}; + final result = JsonMap(initialMap, jsonMeta); + final processedObjectDescriptor = + _mapper.getObjectProcessed(object, context.level); + if (processedObjectDescriptor != null && + processedObjectDescriptor.levelsCount > 1) { + final allowanceIsSet = + (jsonMeta != null && jsonMeta.allowCircularReferences! > 0); + final allowanceExceeded = allowanceIsSet && + processedObjectDescriptor.levelsCount > + jsonMeta.allowCircularReferences! + ? true + : null; + if (allowanceExceeded == true) { + return null; + } + if (allowanceIsSet == false) { + throw CircularReferenceError(object); + } + } + _dumpDiscriminatorToObjectProperty(result, im.type, context.options); + _mapper.propertyHandler.enumeratePublicProperties(im, null, context, (name, property, isGetterOnly, + JsonProperty? meta, converter, TypeInfo typeInfo) { + dynamic convertedValue; + final propertyContext = context.reBuild( + level: context.level + 1, + jsonPropertyMeta: meta, + classMeta: jsonMeta, + typeInfo: typeInfo) as SerializationContext; + + if (meta?.rawJson == true && typeInfo.type == String && property.value is String) { + final jsonString = property.value as String; + if (jsonString.isEmpty || jsonString == "null") { + convertedValue = null; + } else { + try { + convertedValue = JsonDecoder().convert(jsonString); + } on FormatException { + convertedValue = jsonString; + } + } + } else { + if (meta?.flatten == true) { + final Map flattenedPropertiesMap = + serializeObject(property.value, propertyContext); + final metaName = meta?.name; + final fieldPrefixWords = metaName != null + ? toWords(metaName, propertyContext.caseStyle).join(' ') + : null; + for (var element in flattenedPropertiesMap.entries) { + result.setPropertyValue( + fieldPrefixWords != null + ? transformIdentifierCaseStyle( + transformIdentifierCaseStyle( + '$fieldPrefixWords ${element.key}', + defaultCaseStyle, + null), + propertyContext.targetCaseStyle, + defaultCaseStyle) + : element.key, + element.value); + } + return; + } + + final actualConverter = _mapper.converterHandler.getConverter(meta, typeInfo); + if (actualConverter != null) { + final valueToConvert = property.value ?? meta?.defaultValue; + _mapper.converterHandler.configureConverter(actualConverter, propertyContext, value: valueToConvert); + convertedValue = _mapper.converterHandler.getConvertedValue(actualConverter, valueToConvert, propertyContext); + } else { + convertedValue = serializeObject(property.value, propertyContext); + } + } + result.setPropertyValue(property.name, convertedValue ?? meta?.defaultValue); + }); + + final jsonAnyGetter = classInfo.getJsonAnyGetter(); + if (jsonAnyGetter != null) { + final anyMap = im.invoke(jsonAnyGetter.simpleName, [])!; + result.map.addAll(anyMap as Map); + } + + return result.map; + } + + void _dumpDiscriminatorToObjectProperty(JsonMap object, + type, DeserializationOptions? options) { + final classInfo = ClassInfo.fromCache(type, _mapper.classes); + final discriminatorProperty = _mapper.typeInfoHandler.getDiscriminatorProperty(classInfo, options); + if (discriminatorProperty != null) { + final typeInfo = _mapper.typeInfoHandler.getTypeInfo(type.reflectedType); + final lastMeta = classInfo.getMeta(options?.scheme); + final discriminatorValue = + (lastMeta != null && lastMeta.discriminatorValue != null + ? lastMeta.discriminatorValue + : typeInfo.typeName) ?? + typeInfo.typeName; + object.setPropertyValue(discriminatorProperty, discriminatorValue); + } + } +} \ No newline at end of file diff --git a/mapper/lib/src/logic/type_info_handler.dart b/mapper/lib/src/logic/type_info_handler.dart new file mode 100644 index 00000000..68a41b26 --- /dev/null +++ b/mapper/lib/src/logic/type_info_handler.dart @@ -0,0 +1,48 @@ +import 'package:collection/collection.dart' show IterableExtension; + +import '../class_info.dart'; +import '../mapper.dart'; +import '../model/index.dart'; + +class TypeInfoHandler { + final JsonMapper _mapper; + + TypeInfoHandler(this._mapper); + + TypeInfo getDeclarationTypeInfo(Type declarationType, Type? valueType) => + getTypeInfo((declarationType == dynamic && valueType != null) + ? valueType + : declarationType); + + TypeInfo getTypeInfo(Type type) { + if (_mapper.typeInfoCache[type] != null) { + return _mapper.typeInfoCache[type]!; + } + var result = TypeInfo(type); + for (var decorator in _mapper.typeInfoDecorators.values) { + decorator.init(_mapper.classes, _mapper.valueDecorators, _mapper.enumValues); + result = decorator.decorate(result); + } + if (_mapper.mixins[result.typeName] != null) { + result.mixinType = _mapper.mixins[result.typeName]!.reflectedType; + } + _mapper.typeInfoCache[type] = result; + return result; + } + + Type? getGenericParameterTypeByIndex(num parameterIndex, TypeInfo genericType) => + genericType.isGeneric && + genericType.parameters.length - 1 >= parameterIndex + ? genericType.parameters.elementAt(parameterIndex as int) + : null; + + Type? getTypeByStringName(String? typeName) => + _mapper.classes.keys.firstWhereOrNull((t) => t.toString() == typeName); + + String? getDiscriminatorProperty( + ClassInfo classInfo, DeserializationOptions? options) => + classInfo + .getMetaWhere((Json meta) => meta.discriminatorProperty != null, + options?.scheme) + ?.discriminatorProperty; +} \ No newline at end of file diff --git a/mapper/lib/src/mapper.dart b/mapper/lib/src/mapper.dart index 1fc8610b..cd1b7e95 100644 --- a/mapper/lib/src/mapper.dart +++ b/mapper/lib/src/mapper.dart @@ -1,30 +1,59 @@ import 'dart:convert' show JsonEncoder, JsonDecoder; -import 'dart:math'; -import 'package:collection/collection.dart' show IterableExtension; -import 'package:reflectable/reflectable.dart' - show - ClassMirror, - InstanceMirror, - DeclarationMirror, - VariableMirror, - MethodMirror; +import 'package:dart_json_mapper/src/model/index.dart'; +import 'class_info.dart'; import 'errors.dart'; -import 'model/index.dart'; -import 'utils.dart'; +import 'logic/adapter_manager.dart'; +import 'logic/cache_manager.dart'; +import 'logic/converter_handler.dart'; +import 'logic/deserialization_handler.dart'; +import 'logic/property_handler.dart'; +import 'logic/reflection_handler.dart'; +import 'logic/serialization_handler.dart'; +import 'logic/type_info_handler.dart'; /// Singleton class providing mostly static methods for conversion of previously /// annotated by [JsonSerializable] Dart objects from / to JSON string class JsonMapper { - /// Converts an instance of Dart object to JSON String - static String serialize(Object? object, - [SerializationOptions options = defaultSerializationOptions]) { - final context = SerializationContext(options, - typeInfo: instance._getTypeInfo(object.runtimeType)); + /// global [SerializationOptions] + static SerializationOptions globalSerializationOptions = + defaultSerializationOptions; + + /// global [DeserializationOptions] + static DeserializationOptions globalDeserializationOptions = + defaultDeserializationOptions; + + static DeserializationContext _getDeserializationContext( + [DeserializationOptions? options]) { + final targetOptions = options ?? JsonMapper.globalDeserializationOptions; + final targetType = T != dynamic + ? T + : targetOptions.template != null + ? targetOptions.template.runtimeType + : targetOptions.type ?? dynamic; + if (targetType == dynamic) { + throw MissingTypeForDeserializationError(); + } + return DeserializationContext(targetOptions, + classMeta: + instance.classes[targetType]?.getMeta(targetOptions.scheme), + typeInfo: instance.typeInfoHandler.getTypeInfo(targetType)); + } + + static SerializationContext _getSerializationContext( + Object? object, SerializationOptions? options) { instance.clearCache(); - return _getJsonEncoder(context) - .convert(instance._serializeObject(object, context)); + return SerializationContext( + options ?? JsonMapper.globalSerializationOptions, + typeInfo: instance.typeInfoHandler.getTypeInfo(object.runtimeType)); + } + + /// Converts an instance of Dart object to JSON String + static String serialize(Object? object, [SerializationOptions? options]) { + final context = _getSerializationContext(object, options); + return getJsonEncoder(context) + .convert(instance.serializationHandler.serializeObject(object, context)); } /// Converts JSON [String] Or [Object] Or [Map] to Dart object instance of type T @@ -32,59 +61,47 @@ class JsonMapper { /// [jsonValue] could be as of [Object] type, then it will be processed as is /// [jsonValue] could be as of [Map] type, then it will be processed as is static T? deserialize(dynamic jsonValue, - [DeserializationOptions options = defaultDeserializationOptions]) { - final targetType = T != dynamic - ? T - : options.template != null - ? options.template.runtimeType - : options.type ?? dynamic; - assert(targetType != dynamic - ? true - : throw MissingTypeForDeserializationError()); - return instance._deserializeObject( - jsonValue != null - ? jsonValue is String - ? _jsonDecoder.convert(jsonValue) - : jsonValue - : null, - DeserializationContext(options, - classMeta: instance._classes[targetType]?.getMeta(options.scheme), - typeInfo: instance._getTypeInfo(targetType))) as T?; + [DeserializationOptions? options]) { + final context = _getDeserializationContext(options); + final json = jsonValue != null + ? jsonValue is String + ? jsonDecoder.convert(jsonValue) + : jsonValue + : null; + return instance.deserializationHandler.deserializeObject(json, context) + as T?; } /// Converts Dart object to JSON String - static String toJson(Object? object, - [SerializationOptions options = defaultSerializationOptions]) => + static String toJson(Object? object, [SerializationOptions? options]) => serialize(object, options); /// Converts [getParams] object to Uri GET request with [baseUrl] static Uri toUri({Object? getParams, String? baseUrl = ''}) { - final params = _jsonDecoder + final params = jsonDecoder .convert(serialize(getParams)) ?.entries - .map((e) => e.key + '=' + Uri.encodeQueryComponent(e.value.toString())) + .map((e) => '${e.key}=${Uri.encodeQueryComponent(e.value.toString())}') .join('&'); return Uri.parse('$baseUrl${params != null ? '?$params' : ''}'); } /// Converts JSON String to Dart object of type T - static T? fromJson(String jsonValue, - [DeserializationOptions options = defaultDeserializationOptions]) => + static T? fromJson(String jsonValue, [DeserializationOptions? options]) => deserialize(jsonValue, options); - /// Converts Dart object to Map + /// Converts Dart object to `Map` static Map? toMap(Object? object, - [SerializationOptions options = defaultSerializationOptions]) { - final context = SerializationContext(options, - typeInfo: instance._getTypeInfo(object.runtimeType)); - instance.clearCache(); - final result = instance._serializeObject(object, context); + [SerializationOptions? options]) { + final context = _getSerializationContext(object, options); + final result = + instance.serializationHandler.serializeObject(object, context); return result is Map ? result : null; } - /// Converts Map to Dart object instance of type T + /// Converts `Map` to Dart object instance of type T static T? fromMap(Map? map, - [DeserializationOptions options = defaultDeserializationOptions]) => + [DeserializationOptions? options]) => deserialize(map, options); /// Clone Dart object of type T @@ -93,9 +110,29 @@ class JsonMapper { /// Alias for clone method to copy Dart object of type T static T? copy(T object) => clone(object); - /// Copy Dart object of type T & merge it with Map + /// Copy Dart object of type T & merge it with ```Map``` static T? copyWith(T object, Map map) => - fromMap(toMap(object)?..addAll(map)); + fromMap(mergeMaps(toMap(object), map)); + + /// Recursive deep merge two maps + static Map mergeMaps( + Map? mapA, Map mapB) { + if (mapA == null) { + return mapB; + } + mapB.forEach((key, value) { + if (!mapA.containsKey(key)) { + mapA[key] = value; + } else { + if (mapA[key] is Map) { + mergeMaps(mapA[key], mapB[key]); + } else { + mapA[key] = mapB[key]; + } + } + }); + return mapA; + } /// Enumerates adapter [IJsonMapperAdapter] instances using visitor pattern /// Abstracts adapters ordering logic from consumers @@ -112,329 +149,136 @@ class JsonMapper { /// Adapters are meant to be used as a pluggable extensions, widening /// the number of supported types to be seamlessly converted to/from JSON JsonMapper useAdapter(IJsonMapperAdapter adapter, [int? priority]) { - if (_adapters.containsValue(adapter)) { - return this; - } - final nextPriority = priority ?? - (_adapters.keys.isNotEmpty - ? _adapters.keys.reduce((value, item) => max(value, item)) + 1 - : 0); - _adapters[nextPriority] = adapter; + adapterManager.use(adapter, priority); _updateInternalMaps(); return this; } /// De-registers previously registered adapter using [useAdapter] method JsonMapper removeAdapter(IJsonMapperAdapter adapter) { - _adapters.removeWhere((priority, x) => x == adapter); + adapterManager.remove(adapter); _updateInternalMaps(); return this; } /// Prints out current mapper configuration to the console /// List of currently registered adapters and their priorities - void info() => - _adapters.forEach((priority, adapter) => print('$priority : $adapter')); + void info() => adapterManager.info(); /// Wipes the internal caches void clearCache() { - _processedObjects.clear(); - _convertedValuesCache.clear(); + cacheManager.clear(); + converterHandler.clearCache(); } - /// Private implementation area onwards ///////////////////////////////////// - static final JsonMapper instance = JsonMapper._internal(); - static final JsonDecoder _jsonDecoder = JsonDecoder(); - final _serializable = const JsonSerializable(); - final Map _classes = {}; - final Map _mixins = {}; - final Map _adapters = {}; - final Map _processedObjects = {}; - final Map _inlineValueDecorators = {}; - final Map _typeInfoCache = {}; - final Map _discriminatorToType = {}; - final Map< - ICustomConverter?, - Map>>> - _convertedValuesCache = {}; - - Map converters = {}; + static final JsonDecoder jsonDecoder = JsonDecoder(); + final Map classes = {}; + final Map mixins = {}; + final CacheManager cacheManager = CacheManager(); + final AdapterManager adapterManager = AdapterManager(); + final Map inlineValueDecorators = {}; + final Map typeInfoCache = {}; + final Map discriminatorToType = {}; + late final TypeInfoHandler typeInfoHandler; + late final SerializationHandler serializationHandler; + late final DeserializationHandler deserializationHandler; + late final ConverterHandler converterHandler; + late final PropertyHandler propertyHandler; Map typeInfoDecorators = {}; Map valueDecorators = {}; Map enumValues = {}; - static JsonEncoder _getJsonEncoder(SerializationContext context) => + static JsonEncoder getJsonEncoder(SerializationContext context) => context.serializationOptions.indent != null && context.serializationOptions.indent!.isNotEmpty ? JsonEncoder.withIndent( - context.serializationOptions.indent, _toEncodable(context)) - : JsonEncoder(_toEncodable(context)); + context.serializationOptions.indent, toEncodable(context)) + : JsonEncoder(toEncodable(context)); - static dynamic _toEncodable(SerializationContext context) => - (Object? object) => instance._serializeObject(object, context); + static dynamic toEncodable(SerializationContext context) => + (Object? object) => + instance.serializationHandler.serializeObject(object, context); factory JsonMapper() => instance; JsonMapper._internal() { + typeInfoHandler = TypeInfoHandler(this); + serializationHandler = SerializationHandler(this); + deserializationHandler = DeserializationHandler(this); + converterHandler = ConverterHandler(this); + propertyHandler = PropertyHandler(this); useAdapter(dartCoreAdapter); useAdapter(dartCollectionAdapter); } void _updateInternalMaps() { - _convertedValuesCache.clear(); - _discriminatorToType.clear(); - _typeInfoCache.clear(); - _enumerateAnnotatedClasses((ClassInfo classInfo) { + _clearCachesAndMaps(); + _populateMapsFromReflection(); + _updateMapsFromAdapters(); + } + + void _clearCachesAndMaps() { + converterHandler.clearCache(); + discriminatorToType.clear(); + typeInfoCache.clear(); + classes.clear(); + mixins.clear(); + inlineValueDecorators.clear(); + } + + void _populateMapsFromReflection() { + _populateClassesAndDiscriminators(); + _populateMixins(); + } + + void _populateClassesAndDiscriminators() { + ReflectionHandler.enumerateAnnotatedClasses((classMirror) { + final classInfo = ClassInfo.fromCache(classMirror, classes); final jsonMeta = classInfo.getMeta(); if (jsonMeta != null && jsonMeta.valueDecorators != null) { - _inlineValueDecorators.addAll(jsonMeta.valueDecorators!()); + inlineValueDecorators.addAll(jsonMeta.valueDecorators!()); } if (classInfo.reflectedType != null) { - _classes[classInfo.reflectedType!] = classInfo; + classes[classInfo.reflectedType!] = classInfo; } if (jsonMeta != null && jsonMeta.discriminatorValue != null && classInfo.reflectedType != null) { - _discriminatorToType.putIfAbsent( + discriminatorToType.putIfAbsent( jsonMeta.discriminatorValue, () => classInfo.reflectedType!); } }); + } - enumValues = _enumValues; - converters = _converters; - typeInfoDecorators = _typeInfoDecorators; - valueDecorators = _valueDecorators; - - _enumerateAnnotatedClasses((ClassInfo classInfo) { + void _populateMixins() { + ReflectionHandler.enumerateAnnotatedClasses((classMirror) { + final classInfo = ClassInfo.fromCache(classMirror, classes); if (classInfo.superClass != null) { final superClassInfo = - ClassInfo.fromCache(classInfo.superClass!, _classes); + ClassInfo.fromCache(classInfo.superClass!, classes); final superClassTypeInfo = superClassInfo.reflectedType != null - ? _getTypeInfo(superClassInfo.reflectedType!) + ? typeInfoHandler.getTypeInfo(superClassInfo.reflectedType!) : null; if (superClassTypeInfo != null && superClassTypeInfo.isWithMixin) { - _mixins[superClassTypeInfo.mixinTypeName!] = classInfo; + mixins[superClassTypeInfo.mixinTypeName!] = classInfo; } } }); } - Map get _enumValues { - final result = {}; - for (var adapter in _adapters.values) { - result.addAll(adapter.enumValues); - } - return result; - } - - Map get _converters { - final result = {}; - for (var adapter in _adapters.values) { - result.addAll(adapter.converters); - } - return result; - } - - Map get _valueDecorators { - final result = {}; - result.addAll(_inlineValueDecorators); - for (var adapter in _adapters.values) { - result.addAll(adapter.valueDecorators); - } - return result; - } - - Map get _typeInfoDecorators { - final result = {}; - for (var adapter in _adapters.values) { - result.addAll(adapter.typeInfoDecorators); - } - return result; + void _updateMapsFromAdapters() { + enumValues = adapterManager.allEnumValues; + converterHandler.converters = adapterManager.allConverters; + typeInfoDecorators = adapterManager.allTypeInfoDecorators; + valueDecorators = adapterManager.allValueDecorators(inlineValueDecorators); } - InstanceMirror? _safeGetInstanceMirror(Object object) { - InstanceMirror? result; - try { - result = _serializable.reflect(object); - } catch (error) { - return result; - } - return result; + ProcessedObjectDescriptor? getObjectProcessed(Object object, int level) { + return cacheManager.getObjectProcessed(object, level); } - String _getObjectKey(Object object) => - '${object.runtimeType}-${object.hashCode}'; - - ProcessedObjectDescriptor? _getObjectProcessed(Object object, int level) { - ProcessedObjectDescriptor? result; - - if (object.runtimeType.toString() == 'Null' || - object.runtimeType.toString() == 'bool') { - return result; - } - - final key = _getObjectKey(object); - if (_processedObjects.containsKey(key)) { - result = _processedObjects[key]; - result!.logUsage(level); - } else { - result = _processedObjects[key] = ProcessedObjectDescriptor(object); - } - return result; - } - - TypeInfo _getDeclarationTypeInfo(Type declarationType, Type? valueType) => - _getTypeInfo((declarationType == dynamic && valueType != null) - ? valueType - : declarationType); - - TypeInfo _getTypeInfo(Type type) { - if (_typeInfoCache[type] != null) { - return _typeInfoCache[type]!; - } - var result = TypeInfo(type); - for (var decorator in typeInfoDecorators.values) { - decorator.init(_classes, valueDecorators, enumValues); - result = decorator.decorate(result); - } - if (_mixins[result.typeName] != null) { - result.mixinType = _mixins[result.typeName]!.reflectedType; - } - _typeInfoCache[type] = result; - return result; - } - - Type? _getGenericParameterTypeByIndex( - num parameterIndex, TypeInfo genericType) => - genericType.isGeneric && - genericType.parameters.length - 1 >= parameterIndex - ? genericType.parameters.elementAt(parameterIndex as int) - : null; - - TypeInfo? _detectObjectType(dynamic objectInstance, Type? objectType, - JsonMap objectJsonMap, DeserializationContext context) { - final objectClassInfo = _classes[objectType]; - if (objectClassInfo == null) { - return null; - } - final meta = objectClassInfo.getMeta(context.options.scheme); - - if (objectInstance is Map) { - objectJsonMap = JsonMap(objectInstance, meta); - } - final typeInfo = _getTypeInfo(objectType ?? objectInstance.runtimeType); - - final discriminatorProperty = - _getDiscriminatorProperty(objectClassInfo, context.options); - final discriminatorValue = discriminatorProperty != null && - objectJsonMap.hasProperty(discriminatorProperty) - ? objectJsonMap.getPropertyValue(discriminatorProperty) - : null; - if (discriminatorProperty != null && discriminatorValue != null) { - final declarationMirror = - objectClassInfo.getDeclarationMirror(discriminatorProperty); - if (declarationMirror != null) { - final discriminatorType = _getDeclarationType(declarationMirror); - final value = _deserializeObject(discriminatorValue, - context.reBuild(typeInfo: _getTypeInfo(discriminatorType))); - return _getTypeInfo(_discriminatorToType[value]!); - } - } - if (discriminatorValue != null) { - final targetType = _getTypeByStringName(discriminatorValue); - return _classes[targetType] != null - ? _getTypeInfo(_classes[targetType]!.reflectedType!) - : typeInfo; - } - return typeInfo; - } - - Type? _getTypeByStringName(String? typeName) => - _classes.keys.firstWhereOrNull((t) => t.toString() == typeName); - - Type _getDeclarationType(DeclarationMirror mirror) { - Type? result = dynamic; - VariableMirror variable; - MethodMirror method; - - try { - variable = mirror as VariableMirror; - result = variable.hasReflectedType ? variable.reflectedType : null; - } catch (error) { - result = result; - } - - try { - method = mirror as MethodMirror; - result = - method.hasReflectedReturnType ? method.reflectedReturnType : null; - } catch (error) { - result = result; - } - - return result ??= dynamic; - } - - ICustomConverter? _getConverter( - JsonProperty? jsonProperty, TypeInfo typeInfo) { - final result = jsonProperty?.converter ?? - converters[typeInfo.type!] ?? - converters[typeInfo.genericType] ?? - (enumValues[typeInfo.type!] != null ? converters[Enum] : null); - - if (result is ICustomEnumConverter) { - (result as ICustomEnumConverter) - .setEnumDescriptor(_getEnumDescriptor(enumValues[typeInfo.type!])); - } - return result; - } - - IEnumDescriptor? _getEnumDescriptor(dynamic descriptor) { - if (descriptor is Iterable) { - return EnumDescriptor(values: descriptor); - } - if (descriptor is IEnumDescriptor) { - return descriptor; - } - return null; - } - - dynamic _getConvertedValue(ICustomConverter converter, dynamic value, - DeserializationContext context) { - final direction = context.direction; - if (_convertedValuesCache.containsKey(converter) && - _convertedValuesCache[converter]!.containsKey(direction) && - _convertedValuesCache[converter]![direction]!.containsKey(context) && - _convertedValuesCache[converter]![direction]![context]! - .containsKey(value)) { - return _convertedValuesCache[converter]![direction]![context]![value]; - } - - final computedValue = direction == ConversionDirection.fromJson - ? converter.fromJSON(value, context) - : converter.toJSON(value, context as SerializationContext); - _convertedValuesCache.putIfAbsent( - converter, - () => { - direction: { - context: {value: computedValue} - } - }); - _convertedValuesCache[converter]!.putIfAbsent( - direction, - () => { - context: {value: computedValue} - }); - _convertedValuesCache[converter]![direction]! - .putIfAbsent(context, () => {value: computedValue}); - _convertedValuesCache[converter]![direction]![context]! - .putIfAbsent(value, () => computedValue); - return computedValue; - } - - dynamic _applyValueDecorator(dynamic value, TypeInfo typeInfo) { + dynamic applyValueDecorator(dynamic value, TypeInfo typeInfo) { if (value == null) { return null; } @@ -446,560 +290,4 @@ class JsonMapper { } return value; } - - bool _isFieldIgnoredBeforehand( - [Json? classMeta, - JsonProperty? meta, - DeserializationOptions? options]) => - (meta != null && - (meta.ignore == true || - ((meta.ignoreForSerialization == true || - JsonProperty.hasParentReference(meta) || - meta.inject == true) && - options is SerializationOptions) || - (meta.ignoreForDeserialization == true && - options is! SerializationOptions)) && - !(JsonProperty.isRequired(meta) || JsonProperty.isNotNull(meta))); - - // TODO: reuse logic from [_isFieldIgnoredBeforehand] - bool _isFieldIgnored( - [dynamic value, - Json? classMeta, - JsonProperty? meta, - DeserializationOptions? options]) => - ((meta != null && - ((meta.ignore == true || - ((meta.ignoreForSerialization == true || - JsonProperty.hasParentReference(meta) || - meta.inject == true) && - options is SerializationOptions) || - (meta.ignoreForDeserialization == true && - options is! SerializationOptions)) || - meta.ignoreIfNull == true && value == null)) || - (options is SerializationOptions && - (((options.ignoreNullMembers == true || - classMeta?.ignoreNullMembers == true) && - value == null) || - ((_isIgnoreDefault(meta, classMeta, options)) && - JsonProperty.isDefaultValue(meta, value) == true)))) && - !(JsonProperty.isRequired(meta) || JsonProperty.isNotNull(meta)); - - void _enumerateAnnotatedClasses(Function visitor) { - for (var classMirror in _serializable.annotatedClasses) { - visitor(ClassInfo.fromCache(classMirror, _classes)); - } - } - - void _checkFieldConstraints(dynamic value, String name, - dynamic hasJsonProperty, JsonProperty? fieldMeta) { - if (JsonProperty.isNotNull(fieldMeta) && - (hasJsonProperty == false || (value == null))) { - throw FieldCannotBeNullError(name, message: fieldMeta!.notNullMessage); - } - if (hasJsonProperty == false && JsonProperty.isRequired(fieldMeta)) { - throw FieldIsRequiredError(name, message: fieldMeta!.requiredMessage); - } - } - - void _enumeratePublicProperties(InstanceMirror instanceMirror, - JsonMap? jsonMap, DeserializationContext context, Function visitor) { - final classInfo = ClassInfo.fromCache(instanceMirror.type, _classes); - final classMeta = classInfo.getMeta(context.options.scheme); - - for (var name in classInfo.publicFieldNames) { - final declarationMirror = classInfo.getDeclarationMirror(name); - if (declarationMirror == null) { - continue; - } - final declarationType = _getDeclarationType(declarationMirror); - final isGetterOnly = classInfo.isGetterOnly(name); - final meta = classInfo.getDeclarationMeta( - declarationMirror, context.options.scheme); - if (meta == null && - _getProcessAnnotatedMembersOnly(classMeta, context.options) == true) { - continue; - } - - if (_isFieldIgnoredBeforehand(classMeta, meta, context.options)) { - continue; - } - - final property = _resolveProperty(name, jsonMap, context, classMeta, meta, - (name, jsonName, _) { - var result = instanceMirror.invokeGetter(name); - if (result == null && jsonMap != null) { - result = jsonMap.getPropertyValue(jsonName); - } - return result; - }); - - _checkFieldConstraints( - property.value, name, jsonMap?.hasProperty(property.name), meta); - - if (_isFieldIgnored(property.value, classMeta, meta, context.options)) { - continue; - } - final typeInfo = - _getDeclarationTypeInfo(declarationType, property.value?.runtimeType); - visitor(name, property, isGetterOnly, meta, _getConverter(meta, typeInfo), - typeInfo); - } - - classInfo.enumerateJsonGetters((MethodMirror mm, JsonProperty meta) { - final declarationType = _getDeclarationType(mm); - final property = - _resolveProperty(mm.simpleName, jsonMap, context, classMeta, meta, - (name, jsonName, _) { - var result = instanceMirror.invoke(name, []); - if (result == null && jsonMap != null) { - result = jsonMap.getPropertyValue(jsonName); - } - return result; - }); - - _checkFieldConstraints(property.value, mm.simpleName, - jsonMap?.hasProperty(property.name), meta); - if (_isFieldIgnored(property.value, classMeta, meta, context.options)) { - return; - } - final typeInfo = - _getDeclarationTypeInfo(declarationType, property.value?.runtimeType); - visitor(mm.simpleName, property, true, meta, - _getConverter(meta, typeInfo), _getTypeInfo(declarationType)); - }, context.options.scheme); - } - - PropertyDescriptor _resolveProperty( - String name, - JsonMap? jsonMap, - DeserializationContext context, - Json? classMeta, - JsonProperty? meta, - Function getValueByName) { - String? jsonName = name; - - if (meta != null && meta.name != null) { - jsonName = JsonProperty.getPrimaryName(meta); - } - jsonName = transformFieldName( - jsonName!, _getCaseStyle(classMeta, context.options)); - var value = getValueByName(name, jsonName, meta?.defaultValue); - if (jsonMap != null && - meta != null && - (value == null || !jsonMap.hasProperty(jsonName))) { - for (var alias in JsonProperty.getAliases(meta)!) { - jsonName = transformFieldName( - alias, _getCaseStyle(classMeta, context.options)); - if (value != null || !jsonMap.hasProperty(jsonName)) { - continue; - } - value = jsonMap.getPropertyValue(jsonName); - } - } - if (meta != null && - meta.inject == true && - context.options.injectableValues != null) { - final injectionJsonMap = JsonMap(context.options.injectableValues!); - if (injectionJsonMap.hasProperty(jsonName!)) { - value = injectionJsonMap.getPropertyValue(jsonName); - return PropertyDescriptor(jsonName, value, false); - } else { - // TODO: Possibly would be better to throw an error when no injectable value provided? - return PropertyDescriptor(jsonName, null, false); - } - } - if (jsonName == JsonProperty.parentReference) { - return PropertyDescriptor( - jsonName!, context.parentObjectInstances!.last, false); - } - if (value == null && - meta?.defaultValue != null && - _isIgnoreDefault( - meta, classMeta, context.options as SerializationOptions)) { - return PropertyDescriptor(jsonName!, meta?.defaultValue, true); - } - return PropertyDescriptor(jsonName!, value, true); - } - - void _enumerateConstructorParameters(ClassMirror classMirror, JsonMap jsonMap, - DeserializationContext context, Function filter, Function visitor) { - final classInfo = ClassInfo.fromCache(classMirror, _classes); - final classMeta = classInfo.getMeta(context.options.scheme); - final scheme = - classMeta != null ? classMeta.scheme : context.options.scheme; - final methodMirror = classInfo.getJsonConstructor(scheme); - if (methodMirror == null) { - return; - } - for (var param in methodMirror.parameters) { - if (!filter(param)) { - return; - } - final name = param.simpleName; - final declarationMirror = classInfo.getDeclarationMirror(name) ?? param; - final paramType = param.hasReflectedType - ? param.reflectedType - : param.hasDynamicReflectedType - ? param.dynamicReflectedType - : _getGenericParameterTypeByIndex( - methodMirror.parameters.indexOf(param), - context.typeInfo!) ?? - dynamic; - var paramTypeInfo = _getTypeInfo(paramType); - paramTypeInfo = paramTypeInfo.isDynamic - ? _getTypeInfo(_getDeclarationType(declarationMirror)) - : paramTypeInfo; - final meta = classInfo.getDeclarationMeta( - declarationMirror, context.options.scheme) ?? - classInfo.getDeclarationMeta(param, context.options.scheme); - - final property = _resolveProperty( - name, - jsonMap, - context, - classMeta, - meta, - (_, jsonName, defaultValue) => jsonMap.hasProperty(jsonName) - ? jsonMap.getPropertyValue(jsonName) ?? defaultValue - : defaultValue); - final jsonName = property.name; - final value = property.raw - ? _deserializeObject( - property.value, - context.reBuild( - typeInfo: paramTypeInfo, - jsonPropertyMeta: meta, - parentJsonMaps: [ - ...(context.parentJsonMaps ?? []), - jsonMap - ])) - : property.value; - - visitor(param, name, jsonName, classMeta, meta, value, paramTypeInfo); - } - } - - CaseStyle? _getCaseStyle(Json? meta, DeserializationOptions? options) => - meta != null && meta.caseStyle != null - ? meta.caseStyle - : options!.caseStyle; - - String? _getDiscriminatorProperty( - ClassInfo classInfo, DeserializationOptions? options) => - classInfo - .getMetaWhere((Json meta) => meta.discriminatorProperty != null, - options?.scheme) - ?.discriminatorProperty; - - bool? _getProcessAnnotatedMembersOnly( - Json? meta, DeserializationOptions options) => - meta != null && meta.processAnnotatedMembersOnly != null - ? meta.processAnnotatedMembersOnly - : options.processAnnotatedMembersOnly; - - bool _isIgnoreDefault( - JsonProperty? meta, Json? classMeta, SerializationOptions options) => - meta?.ignoreIfDefault == true || - classMeta?.ignoreDefaultMembers == true || - options.ignoreDefaultMembers == true; - - void _dumpDiscriminatorToObjectProperty(JsonMap object, - ClassMirror classMirror, DeserializationOptions? options) { - final classInfo = ClassInfo.fromCache(classMirror, _classes); - final discriminatorProperty = _getDiscriminatorProperty(classInfo, options); - if (discriminatorProperty != null) { - final typeInfo = _getTypeInfo(classMirror.reflectedType); - final lastMeta = classInfo.getMeta(options?.scheme); - final discriminatorValue = - (lastMeta != null && lastMeta.discriminatorValue != null - ? lastMeta.discriminatorValue - : typeInfo.typeName) ?? - typeInfo.typeName; - object.setPropertyValue(discriminatorProperty, discriminatorValue); - } - } - - Map _getNamedArguments( - ClassMirror cm, JsonMap jsonMap, DeserializationContext context) { - if (kIsWeb) { - // No named arguments in JS :( - return {}; - } - - final result = {}; - - _enumerateConstructorParameters( - cm, jsonMap, context, (param) => param.isNamed, (param, name, jsonName, - classMeta, JsonProperty? meta, value, TypeInfo typeInfo) { - if (!_isFieldIgnored(value, classMeta, meta, context.options)) { - result[Symbol(name)] = value; - } - }); - - return result; - } - - List _getPositionalArguments(ClassMirror cm, JsonMap jsonMap, - DeserializationContext context, List positionalArgumentNames) { - final result = []; - - _enumerateConstructorParameters( - cm, jsonMap, context, (param) => !param.isOptional && !param.isNamed, - (param, name, jsonName, classMeta, JsonProperty? meta, value, - TypeInfo typeInfo) { - positionalArgumentNames.add(name); - result.add(_isFieldIgnored(value, classMeta, meta, context.options) - ? null - : value); - }); - - return result; - } - - void _configureConverter( - ICustomConverter converter, DeserializationContext context, - {dynamic value}) { - if (converter is ICompositeConverter) { - (converter as ICompositeConverter).setGetConverterFunction(_getConverter); - (converter as ICompositeConverter) - .setGetConvertedValueFunction(_getConvertedValue); - } - if (converter is ICustomIterableConverter) { - (converter as ICustomIterableConverter).setIterableInstance(value); - } - if (converter is ICustomMapConverter) { - final instance = value ?? (context.options.template); - (converter as ICustomMapConverter).setMapInstance(instance); - } - if (converter is IRecursiveConverter) { - (converter as IRecursiveConverter).setSerializeObjectFunction( - (o, context) => _serializeObject(o, context)); - (converter as IRecursiveConverter).setDeserializeObjectFunction((o, - context, type) => - _deserializeObject(o, context.reBuild(typeInfo: _getTypeInfo(type)))); - } - } - - dynamic _serializeObject(Object? object, SerializationContext? context) { - if (object == null) { - return object; - } - - final im = _safeGetInstanceMirror(object); - final converter = _getConverter( - context!.jsonPropertyMeta, _getTypeInfo(object.runtimeType)); - if (converter != null) { - _configureConverter(converter, context, value: object); - return _getConvertedValue(converter, object, context); - } - - if (im == null) { - if (context.serializationOptions.ignoreUnknownTypes == true) { - return null; - } else { - throw MissingAnnotationOnTypeError(object.runtimeType); - } - } - - final classInfo = ClassInfo.fromCache(im.type, _classes); - final jsonMeta = classInfo.getMeta(context.options.scheme); - final initialMap = context.level == 0 - ? context.options.template ?? {} - : {}; - final result = JsonMap(initialMap, jsonMeta); - final processedObjectDescriptor = - _getObjectProcessed(object, context.level); - if (processedObjectDescriptor != null && - processedObjectDescriptor.levelsCount > 1) { - final allowanceIsSet = - (jsonMeta != null && jsonMeta.allowCircularReferences! > 0); - final allowanceExceeded = (allowanceIsSet && - processedObjectDescriptor.levelsCount > - jsonMeta!.allowCircularReferences!) - ? true - : null; - if (allowanceExceeded == true) { - return null; - } - if (allowanceIsSet == false) { - throw CircularReferenceError(object); - } - } - _dumpDiscriminatorToObjectProperty(result, im.type, context.options); - _enumeratePublicProperties(im, null, context, (name, property, isGetterOnly, - JsonProperty? meta, converter, TypeInfo typeInfo) { - dynamic convertedValue; - final newContext = context.reBuild( - level: context.level + 1, - jsonPropertyMeta: meta, - classMeta: jsonMeta, - typeInfo: typeInfo) as SerializationContext; - if (meta?.flatten == true) { - final Map flattenedPropertiesMap = - _serializeObject(property.value, newContext); - final fieldPrefixWords = meta?.name != null - ? toWords(meta?.name, newContext.caseStyle) - : null; - for (var element in flattenedPropertiesMap.entries) { - result.setPropertyValue( - fieldPrefixWords != null - ? transformFieldName('$fieldPrefixWords ${element.key}', - newContext.caseStyle ?? defaultCaseStyle) - : element.key, - element.value); - } - return; - } - if (converter != null) { - final value = property.value ?? meta?.defaultValue; - _configureConverter(converter, newContext, value: value); - convertedValue = _getConvertedValue(converter, value, newContext); - } else { - convertedValue = _serializeObject(property.value, newContext); - } - result.setPropertyValue( - property.name, convertedValue ?? meta?.defaultValue); - }); - - final jsonAnyGetter = classInfo.getJsonAnyGetter(); - if (jsonAnyGetter != null) { - final anyMap = im.invoke(jsonAnyGetter.simpleName, [])!; - result.map.addAll(anyMap as Map); - } - - return result.map; - } - - Object? _deserializeObject( - dynamic jsonValue, DeserializationContext context) { - if (jsonValue == null) { - return null; - } - var typeInfo = context.typeInfo!; - final converter = _getConverter(context.jsonPropertyMeta, typeInfo); - if (converter != null) { - _configureConverter(converter, context); - if (typeInfo.isIterable && - (converter is ICustomIterableConverter && - converter is! DefaultIterableConverter)) { - return _applyValueDecorator( - _getConvertedValue(converter, jsonValue, context), typeInfo); - } - return _applyValueDecorator( - _getConvertedValue(converter, jsonValue, context), typeInfo); - } - - dynamic convertedJsonValue; - try { - convertedJsonValue = - (jsonValue is String) ? _jsonDecoder.convert(jsonValue) : jsonValue; - } on FormatException catch (exception) { - throw JsonFormatError(context, formatException: exception); - } - - final jsonMap = JsonMap( - convertedJsonValue, null, context.parentJsonMaps as List?); - typeInfo = - _detectObjectType(null, context.typeInfo!.type, jsonMap, context) ?? - typeInfo; - final classInfo = _classes[typeInfo.type] ?? - _classes[typeInfo.genericType] ?? - _classes[typeInfo.mixinType]; - if (classInfo == null) { - throw MissingAnnotationOnTypeError(typeInfo.type); - } - jsonMap.jsonMeta = classInfo.getMeta(context.options.scheme); - - final namedArguments = - _getNamedArguments(classInfo.classMirror, jsonMap, context); - final positionalArgumentNames = []; - final positionalArguments = _getPositionalArguments( - classInfo.classMirror, jsonMap, context, positionalArgumentNames); - final objectInstance = context.options.template ?? - (classInfo.classMirror.isEnum - ? null - : classInfo.classMirror.newInstance( - classInfo - .getJsonConstructor(context.options.scheme)! - .constructorName, - positionalArguments, - namedArguments)); - - final im = _safeGetInstanceMirror(objectInstance)!; - final inheritedPublicFieldNames = classInfo.inheritedPublicFieldNames; - final mappedFields = namedArguments.keys - .map((Symbol symbol) => - RegExp('"(.+)"').allMatches(symbol.toString()).first.group(1)) - .toList() - ..addAll(positionalArgumentNames); - - _enumeratePublicProperties(im, jsonMap, context, (name, property, - isGetterOnly, JsonProperty? meta, converter, TypeInfo typeInfo) { - final newContext = context.reBuild( - parentObjectInstances: [ - ...(context.parentObjectInstances ?? []), - objectInstance - ], - typeInfo: typeInfo, - jsonPropertyMeta: meta, - parentJsonMaps: [ - ...(context.parentJsonMaps ?? []), - jsonMap - ]); - final defaultValue = meta?.defaultValue; - final hasJsonProperty = jsonMap.hasProperty(property.name); - var fieldValue = jsonMap.getPropertyValue(property.name); - if (!hasJsonProperty || mappedFields.contains(name)) { - if (meta?.flatten == true) { - final object = meta?.name != null && fieldValue is Map - ? fieldValue.map((key, value) => MapEntry( - skipPrefix(meta?.name, key, newContext.caseStyle), value)) - : fieldValue; - im.invokeSetter(name, _deserializeObject(object, newContext)); - } - if (defaultValue != null && !isGetterOnly) { - im.invokeSetter(name, defaultValue); - } - if (meta?.inject != true) { - return; - } - } - fieldValue = property.raw - ? _deserializeObject(fieldValue, newContext) - : property.value; - if (isGetterOnly) { - if (inheritedPublicFieldNames.contains(name) && - !mappedFields.contains(property.name)) { - mappedFields.add(property.name); - } - } else { - fieldValue = _applyValueDecorator(fieldValue, typeInfo) ?? defaultValue; - im.invokeSetter(name, fieldValue); - mappedFields.add(property.name); - } - }); - - final discriminatorPropertyName = - _getDiscriminatorProperty(classInfo, context.options); - final unmappedFields = jsonMap.map.keys - .where((field) => - !mappedFields.contains(field) && field != discriminatorPropertyName) - .toList(); - if (unmappedFields.isNotEmpty) { - final jsonAnySetter = classInfo.getJsonAnySetter(context.options.scheme); - for (var field in unmappedFields) { - final jsonSetter = - classInfo.getJsonSetter(field, context.options.scheme) ?? - jsonAnySetter; - final params = jsonSetter == jsonAnySetter - ? [field, jsonMap.map[field]] - : [jsonMap.map[field]]; - if (jsonSetter != null) { - im.invoke(jsonSetter.simpleName, params); - } - } - } - - return _applyValueDecorator(objectInstance, typeInfo); - } -} +} \ No newline at end of file diff --git a/mapper/lib/src/model/adapters.dart b/mapper/lib/src/model/adapters.dart index 752946d7..2f6b3f62 100644 --- a/mapper/lib/src/model/adapters.dart +++ b/mapper/lib/src/model/adapters.dart @@ -13,7 +13,7 @@ import 'package:reflectable/src/reflectable_builder_based.dart' show ReflectorData; import '../model/index.dart' show Enum; -import '../utils.dart'; +import '../globals.dart'; import 'converters.dart'; import 'type_info.dart'; import 'value_decorators.dart'; @@ -145,6 +145,7 @@ final dartCoreAdapter = typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf(): (value) => Uint8List.fromList(value.cast()), + typeOf>(): (value) => value.cast(), }); /// Covers support for Dart collection types diff --git a/mapper/lib/src/model/annotations.dart b/mapper/lib/src/model/annotations.dart index 00b9c5a3..0125ef08 100644 --- a/mapper/lib/src/model/annotations.dart +++ b/mapper/lib/src/model/annotations.dart @@ -1,16 +1,14 @@ import 'package:meta/meta_meta.dart'; import 'package:reflectable/reflectable.dart'; -import '../name_casing.dart'; -import 'converters.dart'; -import 'value_decorators.dart'; +import 'index.dart'; /// [jsonConstructor] is used as a shorthand metadata w/o "()" const jsonConstructor = JsonConstructor(); /// [JsonConstructor] is used as metadata, to annotate specific Dart class constructor /// being used for deserialization -@Target({}) // should be [TargetKind.constructor] but it doesn't exists :( +@Target({TargetKind.constructor}) class JsonConstructor { /// Scheme marker to associate this meta information with particular mapping scheme final dynamic scheme; @@ -35,7 +33,7 @@ class Json { /// Defines a custom override value for a discriminator /// Usually used on annotations of subclasses, to distinguish it from each other - /// Default value: + /// Default value: `````` final dynamic discriminatorValue; /// The most popular ways to combine words into a single string @@ -60,7 +58,7 @@ class Json { final int? allowCircularReferences; /// Static function to return a Map of Inline value decorators - /// + /// ```dart /// @jsonSerializable /// class NoticeItem {} /// @@ -76,7 +74,7 @@ class Json { /// /// const NoticeList(this.list); /// } - /// + /// ``` final Map Function()? valueDecorators; /// Scheme marker to associate this meta information with particular mapping scheme @@ -93,6 +91,12 @@ class Json { this.ignoreDefaultMembers, this.processAnnotatedMembersOnly, this.name}); + + static bool? getProcessAnnotatedMembersOnly( + Json? meta, DeserializationOptions options) => + meta != null && meta.processAnnotatedMembersOnly != null + ? meta.processAnnotatedMembersOnly + : options.processAnnotatedMembersOnly; } /// [jsonProperty] is used as a shorthand metadata w/o "()" @@ -182,6 +186,9 @@ class JsonProperty { /// Final field default value final dynamic defaultValue; + /// Declares annotated field to be treated as raw json string + final bool? rawJson; + const JsonProperty( {this.scheme, this.name, @@ -198,7 +205,8 @@ class JsonProperty { this.ignoreIfDefault, this.converter, this.defaultValue, - this.converterParams}); + this.converterParams, + this.rawJson}); static const parentReference = '..'; @@ -254,4 +262,4 @@ class JsonSerializable extends Reflectable { newInstanceCapability, typeRelationsCapability, declarationsCapability); -} +} \ No newline at end of file diff --git a/mapper/lib/src/model/converters.dart b/mapper/lib/src/model/converters.dart index 56664766..c361c98e 100644 --- a/mapper/lib/src/model/converters.dart +++ b/mapper/lib/src/model/converters.dart @@ -1,532 +1,15 @@ -import 'dart:convert' show base64Decode, base64Encode; -import 'dart:convert' show JsonDecoder; -import 'dart:typed_data' show Uint8List; - -import 'package:collection/collection.dart' show IterableExtension; -import 'package:intl/intl.dart'; - -import 'index.dart'; - -typedef SerializeObjectFunction = dynamic Function( - Object object, SerializationContext context); -typedef DeserializeObjectFunction = dynamic Function( - dynamic object, DeserializationContext context, Type type); -typedef GetConverterFunction = ICustomConverter? Function( - JsonProperty? jsonProperty, TypeInfo typeInfo); -typedef GetConvertedValueFunction = dynamic Function( - ICustomConverter converter, dynamic value, DeserializationContext context); - -/// Abstract class for custom converters implementations -abstract class ICustomConverter { - dynamic toJSON(T object, SerializationContext context); - T fromJSON(dynamic jsonValue, DeserializationContext context); -} - -/// Abstract class for custom iterable converters implementations -abstract class ICustomIterableConverter { - void setIterableInstance(Iterable? instance); -} - -/// Abstract class for custom map converters implementations -abstract class ICustomMapConverter { - void setMapInstance(Map? instance); -} - -/// Abstract class for custom Enum converters implementations -abstract class ICustomEnumConverter { - void setEnumDescriptor(IEnumDescriptor? enumDescriptor); -} - -/// Abstract class for composite converters relying on other converters -abstract class ICompositeConverter { - void setGetConverterFunction(GetConverterFunction getConverter); - void setGetConvertedValueFunction( - GetConvertedValueFunction getConvertedValue); -} - -/// Abstract class for custom recursive converters implementations -abstract class IRecursiveConverter { - void setSerializeObjectFunction(SerializeObjectFunction serializeObject); - void setDeserializeObjectFunction( - DeserializeObjectFunction deserializeObject); -} - -/// Base class for custom type converter having access to parameters provided -/// by the [JsonProperty] meta -class BaseCustomConverter { - const BaseCustomConverter() : super(); - dynamic getConverterParameter(String name, [JsonProperty? jsonProperty]) { - return jsonProperty != null && jsonProperty.converterParams != null - ? jsonProperty.converterParams![name] - : null; - } -} - -const dateConverter = DateConverter(); - -/// Default converter for [DateTime] type -class DateConverter extends BaseCustomConverter implements ICustomConverter { - const DateConverter() : super(); - - @override - Object? fromJSON(dynamic jsonValue, DeserializationContext context) { - final format = getDateFormat(context.jsonPropertyMeta); - - if (jsonValue is String) { - return format != null - ? format.parse(jsonValue) - : DateTime.parse(jsonValue); - } - - return jsonValue; - } - - @override - dynamic toJSON(Object? object, SerializationContext context) { - final format = getDateFormat(context.jsonPropertyMeta); - return format != null && object != null && object is! String - ? format.format(object as DateTime) - : (object is List) - ? object.map((item) => item.toString()).toList() - : object?.toString(); - } - - DateFormat? getDateFormat([JsonProperty? jsonProperty]) { - String? format = getConverterParameter('format', jsonProperty); - return format != null ? DateFormat(format) : null; - } -} - -const numberConverter = NumberConverter(); - -/// Default converter for [num] type -class NumberConverter extends BaseCustomConverter implements ICustomConverter { - const NumberConverter() : super(); - - @override - Object? fromJSON(dynamic jsonValue, DeserializationContext context) { - final format = getNumberFormat(context.jsonPropertyMeta); - return format != null && (jsonValue is String) - ? getNumberFormat(context.jsonPropertyMeta)!.parse(jsonValue) - : (jsonValue is String) - ? num.tryParse(jsonValue) ?? jsonValue - : jsonValue; - } - - @override - dynamic toJSON(Object? object, SerializationContext context) { - final format = getNumberFormat(context.jsonPropertyMeta); - return object != null && format != null - ? getNumberFormat(context.jsonPropertyMeta)!.format(object) - : (object is String) - ? num.tryParse(object) - : object; - } - - NumberFormat? getNumberFormat([JsonProperty? jsonProperty]) { - String? format = getConverterParameter('format', jsonProperty); - return format != null ? NumberFormat(format) : null; - } -} - -final defaultEnumConverter = enumConverterShort; - -final enumConverter = EnumConverter(); - -/// Long converter for [enum] type -class EnumConverter implements ICustomConverter, ICustomEnumConverter { - EnumConverter() : super(); - - IEnumDescriptor? _enumDescriptor; - - @override - Object? fromJSON(dynamic jsonValue, DeserializationContext context) { - dynamic convert(value) => _enumDescriptor!.values.firstWhere( - (eValue) => eValue.toString() == value.toString(), - orElse: () => null); - return jsonValue is Iterable - ? jsonValue.map(convert).toList() - : convert(jsonValue); - } - - @override - dynamic toJSON(Object? object, SerializationContext context) { - dynamic convert(value) => value.toString(); - return (object is Iterable) - ? object.map(convert).toList() - : convert(object); - } - - @override - void setEnumDescriptor(IEnumDescriptor? enumDescriptor) { - _enumDescriptor = enumDescriptor; - } -} - -final enumConverterShort = EnumConverterShort(); - -/// Default converter for [enum] type -class EnumConverterShort implements ICustomConverter, ICustomEnumConverter { - EnumConverterShort() : super(); - - IEnumDescriptor? _enumDescriptor; - - @override - Object? fromJSON(dynamic jsonValue, DeserializationContext context) { - dynamic convert(value) => - _enumDescriptor!.values.firstWhereOrNull((eValue) => - _enumDescriptor!.caseInsensitive == true - ? _transformValue(value, context).toLowerCase() == - _transformValue(eValue, context, doubleMapping: true) - .toLowerCase() - : _transformValue(value, context) == - _transformValue(eValue, context, doubleMapping: true)) ?? - _enumDescriptor!.defaultValue; - return jsonValue is Iterable - ? jsonValue.map(convert).toList() - : convert(jsonValue); - } - - @override - dynamic toJSON(Object? object, SerializationContext context) { - dynamic convert(value) => - value != null ? _transformValue(value, context) : null; - return (object is Iterable) - ? object.map(convert).toList() - : convert(object); - } - - @override - void setEnumDescriptor(IEnumDescriptor? enumDescriptor) { - _enumDescriptor = enumDescriptor; - } - - dynamic _transformValue(dynamic value, DeserializationContext context, - {bool doubleMapping = false}) { - final mapping = {}; - mapping.addAll(_enumDescriptor!.mapping); - if (context.jsonPropertyMeta != null && - context.jsonPropertyMeta!.converterParams != null) { - mapping.addAll(context.jsonPropertyMeta!.converterParams!); - } - value = _mapValue(value, mapping); - if (doubleMapping) { - value = _mapValue(value, mapping); - } - if (value is String) { - value = transformFieldName(value, context.caseStyle); - } - return value; - } - - dynamic _mapValue(dynamic value, Map mapping) => mapping.containsKey(value) - ? mapping[value] - : value.toString().split('.').last; -} - -const enumConverterNumeric = ConstEnumConverterNumeric(); - -/// Const wrapper for [EnumConverterNumeric] -class ConstEnumConverterNumeric - implements ICustomConverter, ICustomEnumConverter { - const ConstEnumConverterNumeric(); - - @override - Object? fromJSON(jsonValue, DeserializationContext context) => - _enumConverterNumeric.fromJSON(jsonValue, context); - - @override - dynamic toJSON(object, SerializationContext context) => - _enumConverterNumeric.toJSON(object, context); - - @override - void setEnumDescriptor(IEnumDescriptor? enumDescriptor) { - _enumConverterNumeric.setEnumDescriptor(enumDescriptor); - } -} - -final _enumConverterNumeric = EnumConverterNumeric(); - -/// Numeric index based converter for [enum] type -class EnumConverterNumeric implements ICustomConverter, ICustomEnumConverter { - EnumConverterNumeric() : super(); - - IEnumDescriptor? _enumDescriptor; - - @override - Object? fromJSON(dynamic jsonValue, DeserializationContext context) { - return jsonValue is int - ? jsonValue < _enumDescriptor!.values.length && jsonValue >= 0 - ? (_enumDescriptor!.values as List)[jsonValue] - : _enumDescriptor!.defaultValue - : jsonValue; - } - - @override - dynamic toJSON(Object? object, SerializationContext context) { - final valueIndex = (_enumDescriptor!.values as List).indexOf(object); - return valueIndex >= 0 ? valueIndex : _enumDescriptor!.defaultValue; - } - - @override - void setEnumDescriptor(IEnumDescriptor? enumDescriptor) { - _enumDescriptor = enumDescriptor; - } -} - -const symbolConverter = SymbolConverter(); - -/// Default converter for [Symbol] type -class SymbolConverter implements ICustomConverter { - const SymbolConverter() : super(); - - @override - Object? fromJSON(dynamic jsonValue, DeserializationContext context) { - return jsonValue is String ? Symbol(jsonValue) : jsonValue; - } - - @override - dynamic toJSON(Object? object, SerializationContext context) { - return object != null - ? RegExp('"(.+)"').allMatches(object.toString()).first.group(1) - : null; - } -} - -const durationConverter = DurationConverter(); - -/// DurationConverter converter for [Duration] type -class DurationConverter implements ICustomConverter { - const DurationConverter() : super(); - - @override - Duration? fromJSON(dynamic jsonValue, DeserializationContext context) { - return jsonValue is num - ? Duration(microseconds: jsonValue as int) - : jsonValue; - } - - @override - dynamic toJSON(Duration? object, SerializationContext context) { - return object?.inMicroseconds; - } -} - -const uint8ListConverter = Uint8ListConverter(); - -/// [Uint8List] converter to base64 and back -class Uint8ListConverter implements ICustomConverter { - const Uint8ListConverter() : super(); - - @override - Object? fromJSON(dynamic jsonValue, DeserializationContext context) { - return jsonValue is String ? base64Decode(jsonValue) : jsonValue; - } - - @override - dynamic toJSON(Object? object, SerializationContext context) { - return object is Uint8List ? base64Encode(object) : object; - } -} - -const bigIntConverter = BigIntConverter(); - -/// [BigInt] converter -class BigIntConverter implements ICustomConverter { - const BigIntConverter() : super(); - - @override - Object? fromJSON(dynamic jsonValue, DeserializationContext context) { - return jsonValue is String ? BigInt.tryParse(jsonValue) : jsonValue; - } - - @override - dynamic toJSON(Object? object, SerializationContext context) { - return object is BigInt ? object.toString() : object; - } -} - -final mapConverter = MapConverter(); - -/// [Map] converter -class MapConverter - implements - ICustomConverter, - IRecursiveConverter, - ICustomMapConverter { - MapConverter() : super(); - - late SerializeObjectFunction _serializeObject; - late DeserializeObjectFunction _deserializeObject; - Map? _instance; - final _jsonDecoder = JsonDecoder(); - - @override - Map? fromJSON(dynamic jsonValue, DeserializationContext context) { - var result = jsonValue; - final _typeInfo = context.typeInfo; - if (jsonValue is String) { - result = _jsonDecoder.convert(jsonValue); - } - if (_typeInfo != null && result is Map) { - if (_instance != null && _instance is Map || _instance == null) { - result = result.map((key, value) => MapEntry( - _deserializeObject( - key, - context, - _typeInfo.parameters.isEmpty - ? String - : _typeInfo.parameters.first), - _deserializeObject( - value, - context, - _typeInfo.parameters.isEmpty - ? dynamic - : _typeInfo.parameters.last))); - } - if (_instance != null && _instance is Map) { - result.forEach((key, value) => _instance![key] = value); - result = _instance; - } - } - return result; - } - - @override - dynamic toJSON(Map? object, SerializationContext context) => - object?.map((key, value) => MapEntry( - _serializeObject(key, context).toString(), - _serializeObject(value, context))); - - @override - void setSerializeObjectFunction(SerializeObjectFunction serializeObject) { - _serializeObject = serializeObject; - } - - @override - void setDeserializeObjectFunction( - DeserializeObjectFunction deserializeObject) { - _deserializeObject = deserializeObject; - } - - @override - void setMapInstance(Map? instance) { - _instance = instance; - } -} - -final defaultIterableConverter = DefaultIterableConverter(); - -/// Default Iterable converter -class DefaultIterableConverter extends BaseCustomConverter - implements ICustomConverter, ICustomIterableConverter, IRecursiveConverter { - DefaultIterableConverter() : super(); - - Iterable? _instance; - late SerializeObjectFunction _serializeObject; - late DeserializeObjectFunction _deserializeObject; - - @override - dynamic fromJSON(dynamic jsonValue, DeserializationContext context) { - final delimiter = - getConverterParameter('delimiter', context.jsonPropertyMeta); - if (delimiter != null && jsonValue is String) { - jsonValue = jsonValue.split(delimiter); - } - if (_instance != null && jsonValue is Iterable && jsonValue != _instance) { - if (_instance is List) { - (_instance as List).clear(); - for (var item in jsonValue) { - (_instance as List) - .add(_deserializeObject(item, context, context.typeInfo!.type!)); - } - } - if (_instance is Set) { - (_instance as Set).clear(); - for (var item in jsonValue) { - (_instance as Set) - .add(_deserializeObject(item, context, context.typeInfo!.type!)); - } - } - return _instance; - } else if (jsonValue is Iterable) { - return jsonValue - .map((item) => _deserializeObject( - item, context, context.typeInfo!.parameters.first)) - .toList(); - } - return jsonValue; - } - - @override - dynamic toJSON(dynamic object, SerializationContext context) { - final delimiter = - getConverterParameter('delimiter', context.jsonPropertyMeta); - final result = - object?.map((item) => _serializeObject(item, context)).toList(); - if (delimiter != null && result != null) { - return result.join(delimiter); - } - return result; - } - - @override - void setSerializeObjectFunction(SerializeObjectFunction serializeObject) { - _serializeObject = serializeObject; - } - - @override - void setDeserializeObjectFunction( - DeserializeObjectFunction deserializeObject) { - _deserializeObject = deserializeObject; - } - - @override - void setIterableInstance(Iterable? instance) { - _instance = instance; - } -} - -const uriConverter = UriConverter(); - -/// Uri converter -class UriConverter implements ICustomConverter { - const UriConverter() : super(); - - @override - Uri? fromJSON(dynamic jsonValue, DeserializationContext context) => - jsonValue is String ? Uri.tryParse(jsonValue) : jsonValue; - - @override - String? toJSON(Uri? object, SerializationContext context) => - object?.toString(); -} - -const regExpConverter = RegExpConverter(); - -/// RegExp converter -class RegExpConverter implements ICustomConverter { - const RegExpConverter() : super(); - - @override - RegExp? fromJSON(dynamic jsonValue, DeserializationContext context) => - jsonValue is String ? RegExp(jsonValue) : jsonValue; - - @override - dynamic toJSON(RegExp? object, SerializationContext context) => - object?.pattern; -} - -const defaultConverter = DefaultConverter(); - -/// Default converter for all types -class DefaultConverter implements ICustomConverter { - const DefaultConverter() : super(); - - @override - Object? fromJSON(dynamic jsonValue, DeserializationContext context) => - jsonValue; - - @override - dynamic toJSON(Object? object, SerializationContext context) => object; -} +export 'converters/base_converter.dart'; +export 'converters/bigint_converter.dart'; +export 'converters/date_converter.dart'; +export 'converters/default_converter.dart'; +export 'converters/default_iterable_converter.dart'; +export 'converters/duration_converter.dart'; +export 'converters/enum_converter.dart'; +export 'converters/enum_converter_numeric.dart'; +export 'converters/enum_converter_short.dart'; +export 'converters/map_converter.dart'; +export 'converters/number_converter.dart'; +export 'converters/regexp_converter.dart'; +export 'converters/symbol_converter.dart'; +export 'converters/uint8list_converter.dart'; +export 'converters/uri_converter.dart'; \ No newline at end of file diff --git a/mapper/lib/src/model/converters/base_converter.dart b/mapper/lib/src/model/converters/base_converter.dart new file mode 100644 index 00000000..d3ba5962 --- /dev/null +++ b/mapper/lib/src/model/converters/base_converter.dart @@ -0,0 +1,56 @@ +import '../index.dart'; + +typedef SerializeObjectFunction = dynamic Function( + Object? object, SerializationContext context); +typedef DeserializeObjectFunction = dynamic Function( + dynamic object, DeserializationContext context, Type type); +typedef GetConverterFunction = ICustomConverter? Function( + JsonProperty? jsonProperty, TypeInfo typeInfo); +typedef GetConvertedValueFunction = dynamic Function( + ICustomConverter converter, dynamic value, DeserializationContext context); + +/// Abstract class for custom converters implementations +abstract class ICustomConverter { + dynamic toJSON(T object, SerializationContext context); + T fromJSON(dynamic jsonValue, DeserializationContext context); +} + +/// Abstract class for custom iterable converters implementations +abstract class ICustomIterableConverter { + void setIterableInstance(Iterable? instance); +} + +/// Abstract class for custom map converters implementations +abstract class ICustomMapConverter { + void setMapInstance(Map? instance); +} + +/// Abstract class for custom Enum converters implementations +abstract class ICustomEnumConverter { + void setEnumDescriptor(IEnumDescriptor? enumDescriptor); +} + +/// Abstract class for composite converters relying on other converters +abstract class ICompositeConverter { + void setGetConverterFunction(GetConverterFunction getConverter); + void setGetConvertedValueFunction( + GetConvertedValueFunction getConvertedValue); +} + +/// Abstract class for custom recursive converters implementations +abstract class IRecursiveConverter { + void setSerializeObjectFunction(SerializeObjectFunction serializeObject); + void setDeserializeObjectFunction( + DeserializeObjectFunction deserializeObject); +} + +/// Base class for custom type converter having access to parameters provided +/// by the [JsonProperty] meta +class BaseCustomConverter { + const BaseCustomConverter() : super(); + dynamic getConverterParameter(String name, [JsonProperty? jsonProperty]) { + return jsonProperty != null && jsonProperty.converterParams != null + ? jsonProperty.converterParams![name] + : null; + } +} diff --git a/mapper/lib/src/model/converters/bigint_converter.dart b/mapper/lib/src/model/converters/bigint_converter.dart new file mode 100644 index 00000000..2aeb299d --- /dev/null +++ b/mapper/lib/src/model/converters/bigint_converter.dart @@ -0,0 +1,18 @@ +import '../index.dart'; + +const bigIntConverter = BigIntConverter(); + +/// [BigInt] converter +class BigIntConverter implements ICustomConverter { + const BigIntConverter() : super(); + + @override + Object? fromJSON(dynamic jsonValue, DeserializationContext context) { + return jsonValue is String ? BigInt.tryParse(jsonValue) : jsonValue; + } + + @override + dynamic toJSON(Object? object, SerializationContext context) { + return object is BigInt ? object.toString() : object; + } +} diff --git a/mapper/lib/src/model/converters/date_converter.dart b/mapper/lib/src/model/converters/date_converter.dart new file mode 100644 index 00000000..dae565e0 --- /dev/null +++ b/mapper/lib/src/model/converters/date_converter.dart @@ -0,0 +1,38 @@ +import 'package:intl/intl.dart'; + +import '../index.dart'; + +const dateConverter = DateConverter(); + +/// Default converter for [DateTime] type +class DateConverter extends BaseCustomConverter implements ICustomConverter { + const DateConverter() : super(); + + @override + Object? fromJSON(dynamic jsonValue, DeserializationContext context) { + final format = getDateFormat(context.jsonPropertyMeta); + + if (jsonValue is String) { + return format != null + ? format.parse(jsonValue) + : DateTime.parse(jsonValue); + } + + return jsonValue; + } + + @override + dynamic toJSON(Object? object, SerializationContext context) { + final format = getDateFormat(context.jsonPropertyMeta); + return format != null && object != null && object is! String + ? format.format(object as DateTime) + : (object is List) + ? object.map((item) => item.toString()).toList() + : object?.toString(); + } + + DateFormat? getDateFormat([JsonProperty? jsonProperty]) { + final String? format = getConverterParameter('format', jsonProperty); + return format != null ? DateFormat(format) : null; + } +} diff --git a/mapper/lib/src/model/converters/default_converter.dart b/mapper/lib/src/model/converters/default_converter.dart new file mode 100644 index 00000000..32f12f51 --- /dev/null +++ b/mapper/lib/src/model/converters/default_converter.dart @@ -0,0 +1,41 @@ +import 'dart:convert' show JsonEncoder; + +import '../index.dart'; + +const defaultConverter = DefaultConverter(); + +/// Default converter for all types +class DefaultConverter implements ICustomConverter { + const DefaultConverter() : super(); + + @override + Object? fromJSON(dynamic jsonValue, DeserializationContext context) { + final jsonProperty = context.jsonPropertyMeta; + final typeInfo = context.typeInfo; + + if (jsonProperty?.rawJson == true && typeInfo?.type == String) { + if (jsonValue == null) { + return null; + } + if (jsonValue is Map || jsonValue is List) { + return JsonEncoder().convert(jsonValue); + } + return jsonValue.toString(); + } else { + // If this DefaultConverter is specifically handling a String type (even if not rawJson) + if (typeInfo?.type == String) { + if (jsonValue == null) { + return null; + } + // For non-rawJson strings, ensure it's robustly converted to string. + // Original strict: return jsonValue as String?; + return jsonValue.toString(); + } + // Original pass-through logic for other types this DefaultConverter might handle + return jsonValue; + } + } + + @override + dynamic toJSON(Object? object, SerializationContext context) => object; +} diff --git a/mapper/lib/src/model/converters/default_iterable_converter.dart b/mapper/lib/src/model/converters/default_iterable_converter.dart new file mode 100644 index 00000000..97c906ea --- /dev/null +++ b/mapper/lib/src/model/converters/default_iterable_converter.dart @@ -0,0 +1,73 @@ +import '../index.dart'; + +final defaultIterableConverter = DefaultIterableConverter(); + +/// Default Iterable converter +class DefaultIterableConverter extends BaseCustomConverter + implements ICustomConverter, ICustomIterableConverter, IRecursiveConverter { + DefaultIterableConverter() : super(); + + Iterable? _instance; + late SerializeObjectFunction _serializeObject; + late DeserializeObjectFunction _deserializeObject; + + @override + dynamic fromJSON(dynamic jsonValue, DeserializationContext context) { + final delimiter = + getConverterParameter('delimiter', context.jsonPropertyMeta); + if (delimiter != null && jsonValue is String) { + jsonValue = jsonValue.split(delimiter); + } + if (_instance != null && jsonValue is Iterable && jsonValue != _instance) { + if (_instance is List) { + (_instance as List).clear(); + for (var item in jsonValue) { + (_instance as List) + .add(_deserializeObject(item, context, context.typeInfo!.type!)); + } + } + if (_instance is Set) { + (_instance as Set).clear(); + for (var item in jsonValue) { + (_instance as Set) + .add(_deserializeObject(item, context, context.typeInfo!.type!)); + } + } + return _instance; + } else if (jsonValue is Iterable) { + return jsonValue + .map((item) => _deserializeObject( + item, context, context.typeInfo!.parameters.first)) + .toList(); + } + return jsonValue; + } + + @override + dynamic toJSON(dynamic object, SerializationContext context) { + final delimiter = + getConverterParameter('delimiter', context.jsonPropertyMeta); + final result = + object?.map((item) => _serializeObject(item, context)).toList(); + if (delimiter != null && result != null) { + return result.join(delimiter); + } + return result; + } + + @override + void setSerializeObjectFunction(SerializeObjectFunction serializeObject) { + _serializeObject = serializeObject; + } + + @override + void setDeserializeObjectFunction( + DeserializeObjectFunction deserializeObject) { + _deserializeObject = deserializeObject; + } + + @override + void setIterableInstance(Iterable? instance) { + _instance = instance; + } +} diff --git a/mapper/lib/src/model/converters/duration_converter.dart b/mapper/lib/src/model/converters/duration_converter.dart new file mode 100644 index 00000000..81815273 --- /dev/null +++ b/mapper/lib/src/model/converters/duration_converter.dart @@ -0,0 +1,20 @@ +import '../index.dart'; + +const durationConverter = DurationConverter(); + +/// DurationConverter converter for [Duration] type +class DurationConverter implements ICustomConverter { + const DurationConverter() : super(); + + @override + Duration? fromJSON(dynamic jsonValue, DeserializationContext context) { + return jsonValue is num + ? Duration(microseconds: jsonValue as int) + : jsonValue; + } + + @override + dynamic toJSON(Duration? object, SerializationContext context) { + return object?.inMicroseconds; + } +} diff --git a/mapper/lib/src/model/converters/enum_converter.dart b/mapper/lib/src/model/converters/enum_converter.dart new file mode 100644 index 00000000..de2fa1c9 --- /dev/null +++ b/mapper/lib/src/model/converters/enum_converter.dart @@ -0,0 +1,33 @@ +import '../index.dart'; + +final enumConverter = EnumConverter(); + +/// Long converter for [enum] type +class EnumConverter implements ICustomConverter, ICustomEnumConverter { + EnumConverter() : super(); + + IEnumDescriptor? _enumDescriptor; + + @override + Object? fromJSON(dynamic jsonValue, DeserializationContext context) { + dynamic convert(value) => _enumDescriptor!.values.firstWhere( + (eValue) => eValue.toString() == value.toString(), + orElse: () => null); + return jsonValue is Iterable + ? jsonValue.map(convert).toList() + : convert(jsonValue); + } + + @override + dynamic toJSON(Object? object, SerializationContext context) { + dynamic convert(value) => value.toString(); + return (object is Iterable) + ? object.map(convert).toList() + : convert(object); + } + + @override + void setEnumDescriptor(IEnumDescriptor? enumDescriptor) { + _enumDescriptor = enumDescriptor; + } +} diff --git a/mapper/lib/src/model/converters/enum_converter_numeric.dart b/mapper/lib/src/model/converters/enum_converter_numeric.dart new file mode 100644 index 00000000..99e36b74 --- /dev/null +++ b/mapper/lib/src/model/converters/enum_converter_numeric.dart @@ -0,0 +1,51 @@ +import '../index.dart'; + +const enumConverterNumeric = ConstEnumConverterNumeric(); + +/// Const wrapper for [EnumConverterNumeric] +class ConstEnumConverterNumeric + implements ICustomConverter, ICustomEnumConverter { + const ConstEnumConverterNumeric(); + + @override + Object? fromJSON(jsonValue, DeserializationContext context) => + _enumConverterNumeric.fromJSON(jsonValue, context); + + @override + dynamic toJSON(object, SerializationContext context) => + _enumConverterNumeric.toJSON(object, context); + + @override + void setEnumDescriptor(IEnumDescriptor? enumDescriptor) { + _enumConverterNumeric.setEnumDescriptor(enumDescriptor); + } +} + +final _enumConverterNumeric = EnumConverterNumeric(); + +/// Numeric index based converter for [enum] type +class EnumConverterNumeric implements ICustomConverter, ICustomEnumConverter { + EnumConverterNumeric() : super(); + + IEnumDescriptor? _enumDescriptor; + + @override + Object? fromJSON(dynamic jsonValue, DeserializationContext context) { + return jsonValue is int + ? jsonValue < _enumDescriptor!.values.length && jsonValue >= 0 + ? (_enumDescriptor!.values as List)[jsonValue] + : _enumDescriptor!.defaultValue + : jsonValue; + } + + @override + dynamic toJSON(Object? object, SerializationContext context) { + final valueIndex = (_enumDescriptor!.values as List).indexOf(object); + return valueIndex >= 0 ? valueIndex : _enumDescriptor!.defaultValue; + } + + @override + void setEnumDescriptor(IEnumDescriptor? enumDescriptor) { + _enumDescriptor = enumDescriptor; + } +} diff --git a/mapper/lib/src/model/converters/enum_converter_short.dart b/mapper/lib/src/model/converters/enum_converter_short.dart new file mode 100644 index 00000000..7e8838ab --- /dev/null +++ b/mapper/lib/src/model/converters/enum_converter_short.dart @@ -0,0 +1,72 @@ +import 'package:collection/collection.dart' show IterableExtension; + +import '../index.dart'; + +final defaultEnumConverter = enumConverterShort; +final enumConverterShort = EnumConverterShort(); + +/// Default converter for [enum] type +class EnumConverterShort implements ICustomConverter, ICustomEnumConverter { + EnumConverterShort() : super(); + + IEnumDescriptor? _enumDescriptor; + + @override + Object? fromJSON(dynamic jsonValue, DeserializationContext context) { + dynamic transformDescriptorValue(value) => + _transformValue(value, context, doubleMapping: true); + dynamic transformJsonValue(value) => + _transformValue(value, context, preTransform: true); + dynamic convert(value) => + _enumDescriptor!.values.firstWhereOrNull((eValue) => + _enumDescriptor!.caseInsensitive == true + ? transformJsonValue(value).toLowerCase() == + transformDescriptorValue(eValue).toLowerCase() + : transformJsonValue(value) == + transformDescriptorValue(eValue)) ?? + _enumDescriptor!.defaultValue; + return jsonValue is Iterable + ? jsonValue.map(convert).toList() + : convert(jsonValue); + } + + @override + dynamic toJSON(Object? object, SerializationContext context) { + dynamic convert(value) => + value != null ? _transformValue(value, context) : null; + return (object is Iterable) + ? object.map(convert).toList() + : convert(object); + } + + @override + void setEnumDescriptor(IEnumDescriptor? enumDescriptor) { + _enumDescriptor = enumDescriptor; + } + + dynamic _transformValue(dynamic value, DeserializationContext context, + {bool doubleMapping = false, bool preTransform = false}) { + final mapping = {}; + mapping.addAll(_enumDescriptor!.mapping); + if (context.jsonPropertyMeta != null && + context.jsonPropertyMeta!.converterParams != null) { + mapping.addAll(context.jsonPropertyMeta!.converterParams!); + } + value = _mapValue(value, mapping); + if (doubleMapping) { + value = _mapValue(value, mapping); + } + if (value is String) { + if (preTransform) { + value = transformIdentifierCaseStyle( + value, context.targetCaseStyle, context.sourceCaseStyle); + } + value = context.transformIdentifier(value); + } + return value; + } + + dynamic _mapValue(dynamic value, Map mapping) => mapping.containsKey(value) + ? mapping[value] + : value.toString().split('.').last; +} diff --git a/mapper/lib/src/model/converters/map_converter.dart b/mapper/lib/src/model/converters/map_converter.dart new file mode 100644 index 00000000..d16f151a --- /dev/null +++ b/mapper/lib/src/model/converters/map_converter.dart @@ -0,0 +1,72 @@ +import 'dart:convert' show JsonDecoder; + +import '../index.dart'; + +final mapConverter = MapConverter(); + +/// [Map] converter +class MapConverter + implements + ICustomConverter, + IRecursiveConverter, + ICustomMapConverter { + MapConverter() : super(); + + late SerializeObjectFunction _serializeObject; + late DeserializeObjectFunction _deserializeObject; + Map? _instance; + final _jsonDecoder = JsonDecoder(); + + @override + Map? fromJSON(dynamic jsonValue, DeserializationContext context) { + var result = jsonValue; + final typeInfo = context.typeInfo; + if (jsonValue is String) { + result = _jsonDecoder.convert(jsonValue); + } + if (typeInfo != null && result is Map) { + if (_instance != null && _instance is Map || _instance == null) { + result = result.map((key, value) => MapEntry( + _deserializeObject( + key, + context, + typeInfo.parameters.isEmpty + ? String + : typeInfo.parameters.first), + _deserializeObject( + value, + context, + typeInfo.parameters.isEmpty + ? dynamic + : typeInfo.parameters.last))); + } + if (_instance != null && _instance is Map) { + result.forEach((key, value) => _instance![key] = value); + result = _instance; + } + } + return result; + } + + @override + dynamic toJSON(Map? object, SerializationContext context) => + object?.map((key, value) => MapEntry( + _serializeObject(key, context).toString(), + _serializeObject(value, context))); + + @override + void setSerializeObjectFunction(SerializeObjectFunction serializeObject) { + _serializeObject = serializeObject; + } + + @override + void setDeserializeObjectFunction( + DeserializeObjectFunction deserializeObject) { + _deserializeObject = deserializeObject; + } + + @override + void setMapInstance(Map? instance) { + _instance = instance; + } +} diff --git a/mapper/lib/src/model/converters/number_converter.dart b/mapper/lib/src/model/converters/number_converter.dart new file mode 100644 index 00000000..5a4fb8cb --- /dev/null +++ b/mapper/lib/src/model/converters/number_converter.dart @@ -0,0 +1,35 @@ +import 'package:intl/intl.dart'; + +import '../index.dart'; + +const numberConverter = NumberConverter(); + +/// Default converter for [num] type +class NumberConverter extends BaseCustomConverter implements ICustomConverter { + const NumberConverter() : super(); + + @override + Object? fromJSON(dynamic jsonValue, DeserializationContext context) { + final format = getNumberFormat(context.jsonPropertyMeta); + return format != null && (jsonValue is String) + ? getNumberFormat(context.jsonPropertyMeta)!.parse(jsonValue) + : (jsonValue is String) + ? num.tryParse(jsonValue) ?? jsonValue + : jsonValue; + } + + @override + dynamic toJSON(Object? object, SerializationContext context) { + final format = getNumberFormat(context.jsonPropertyMeta); + return object != null && format != null + ? getNumberFormat(context.jsonPropertyMeta)!.format(object) + : (object is String) + ? num.tryParse(object) + : object; + } + + NumberFormat? getNumberFormat([JsonProperty? jsonProperty]) { + final String? format = getConverterParameter('format', jsonProperty); + return format != null ? NumberFormat(format) : null; + } +} diff --git a/mapper/lib/src/model/converters/regexp_converter.dart b/mapper/lib/src/model/converters/regexp_converter.dart new file mode 100644 index 00000000..9ff6eabd --- /dev/null +++ b/mapper/lib/src/model/converters/regexp_converter.dart @@ -0,0 +1,16 @@ +import '../index.dart'; + +const regExpConverter = RegExpConverter(); + +/// RegExp converter +class RegExpConverter implements ICustomConverter { + const RegExpConverter() : super(); + + @override + RegExp? fromJSON(dynamic jsonValue, DeserializationContext context) => + jsonValue is String ? RegExp(jsonValue) : jsonValue; + + @override + dynamic toJSON(RegExp? object, SerializationContext context) => + object?.pattern; +} diff --git a/mapper/lib/src/model/converters/symbol_converter.dart b/mapper/lib/src/model/converters/symbol_converter.dart new file mode 100644 index 00000000..00b8f79e --- /dev/null +++ b/mapper/lib/src/model/converters/symbol_converter.dart @@ -0,0 +1,20 @@ +import '../index.dart'; + +const symbolConverter = SymbolConverter(); + +/// Default converter for [Symbol] type +class SymbolConverter implements ICustomConverter { + const SymbolConverter() : super(); + + @override + Object? fromJSON(dynamic jsonValue, DeserializationContext context) { + return jsonValue is String ? Symbol(jsonValue) : jsonValue; + } + + @override + dynamic toJSON(Object? object, SerializationContext context) { + return object != null + ? RegExp('"(.+)"').allMatches(object.toString()).first.group(1) + : null; + } +} diff --git a/mapper/lib/src/model/converters/uint8list_converter.dart b/mapper/lib/src/model/converters/uint8list_converter.dart new file mode 100644 index 00000000..bf5fa133 --- /dev/null +++ b/mapper/lib/src/model/converters/uint8list_converter.dart @@ -0,0 +1,21 @@ +import 'dart:convert' show base64Decode, base64Encode; +import 'dart:typed_data' show Uint8List; + +import '../index.dart'; + +const uint8ListConverter = Uint8ListConverter(); + +/// [Uint8List] converter to base64 and back +class Uint8ListConverter implements ICustomConverter { + const Uint8ListConverter() : super(); + + @override + Object? fromJSON(dynamic jsonValue, DeserializationContext context) { + return jsonValue is String ? base64Decode(jsonValue) : jsonValue; + } + + @override + dynamic toJSON(Object? object, SerializationContext context) { + return object is Uint8List ? base64Encode(object) : object; + } +} diff --git a/mapper/lib/src/model/converters/uri_converter.dart b/mapper/lib/src/model/converters/uri_converter.dart new file mode 100644 index 00000000..55310a2c --- /dev/null +++ b/mapper/lib/src/model/converters/uri_converter.dart @@ -0,0 +1,16 @@ +import '../index.dart'; + +const uriConverter = UriConverter(); + +/// Uri converter +class UriConverter implements ICustomConverter { + const UriConverter() : super(); + + @override + Uri? fromJSON(dynamic jsonValue, DeserializationContext context) => + jsonValue is String ? Uri.tryParse(jsonValue) : jsonValue; + + @override + String? toJSON(Uri? object, SerializationContext context) => + object?.toString(); +} diff --git a/mapper/lib/src/model/enum.dart b/mapper/lib/src/model/enum.dart index 02b13336..589056f0 100644 --- a/mapper/lib/src/model/enum.dart +++ b/mapper/lib/src/model/enum.dart @@ -15,12 +15,14 @@ abstract class IEnumDescriptor { class EnumDescriptor implements IEnumDescriptor { /// Defines a mapping for enum values, key is the enum value, value is the target mapping value /// Example: + /// ```dart /// EnumDescriptor( /// values: RecordType.values, /// mapping: { /// RecordType.asset: 'Asset', /// RecordType.series: 'Series' /// }) + /// ``` @override Map mapping; diff --git a/mapper/lib/src/model/index.dart b/mapper/lib/src/model/index.dart index f55c0735..3901b41b 100644 --- a/mapper/lib/src/model/index.dart +++ b/mapper/lib/src/model/index.dart @@ -1,9 +1,4 @@ -import '../name_casing.dart'; -import '../utils.dart'; -import 'annotations.dart'; -import 'type_info.dart'; - -export '../name_casing.dart'; +export '../identifier_casing.dart'; export 'adapters.dart'; export 'annotations.dart'; export 'converters.dart'; @@ -11,209 +6,8 @@ export 'enum.dart'; export 'type_info.dart'; export 'value_decorators.dart'; -enum ConversionDirection { fromJson, toJson } - -typedef InjectableValues = Map; - -const defaultDeserializationOptions = DeserializationOptions(); - -/// Declares configuration parameters for Deserialization process -class DeserializationOptions { - /// The most popular ways to combine words into a single string - /// Based on assumption: That all Dart class fields initially - /// given as [CaseStyle.camel] - final CaseStyle? caseStyle; - - /// Scheme to be used - final dynamic scheme; - - /// Process annotated class members only - final bool? processAnnotatedMembersOnly; - - /// Template Instance - /// - for Deserialization output it could be a typed Iterable, or Map, or else - /// - for Serialization output it could be an instance of Map - final dynamic template; - - /// A Map of injectable values to be used for direct injection - final InjectableValues? injectableValues; - - /// Declares a fallback target type to deserialize to, when it's not possible to detect - /// it from target type inference OR [template] - final Type? type; - - const DeserializationOptions( - {this.scheme, - this.caseStyle, - this.template, - this.injectableValues, - this.type, - this.processAnnotatedMembersOnly}); -} - -const defaultSerializationOptions = SerializationOptions(indent: ' '); - -/// Declares configuration parameters for Serialization process -/// fully includes [DeserializationOptions] -class SerializationOptions extends DeserializationOptions { - /// JSON Indentation, usually it's just a string of [space] characters - final String? indent; - - /// Null class members - /// will be excluded from serialization process - final bool? ignoreNullMembers; - - /// Class members having [JsonProperty.defaultValue] - /// will be excluded from serialization process - final bool? ignoreDefaultMembers; - - /// Class members having Unknown types - /// will be excluded from serialization process - /// Java Jackson's "@JsonIgnoreProperties(ignoreUnknown = true)" - final bool? ignoreUnknownTypes; - - const SerializationOptions( - {scheme, - caseStyle, - template, - processAnnotatedMembersOnly, - this.indent, - this.ignoreNullMembers, - this.ignoreDefaultMembers, - this.ignoreUnknownTypes}) - : super( - scheme: scheme, - template: template, - caseStyle: caseStyle, - processAnnotatedMembersOnly: processAnnotatedMembersOnly); -} - -/// Describes a set of data / state to be re-used down the road of recursive -/// process of Deserialization / Serialization -class DeserializationContext { - final DeserializationOptions options; - final JsonProperty? jsonPropertyMeta; - final Json? classMeta; - final TypeInfo? typeInfo; - final Iterable? parentJsonMaps; - final Iterable? parentObjectInstances; - - const DeserializationContext(this.options, - {this.jsonPropertyMeta, - this.parentObjectInstances, - this.classMeta, - this.typeInfo, - this.parentJsonMaps}); - - CaseStyle? get caseStyle => (classMeta != null && classMeta!.caseStyle != null - ? classMeta!.caseStyle - : options.caseStyle); - - ConversionDirection get direction => ConversionDirection.fromJson; - - DeserializationContext reBuild( - {JsonProperty? jsonPropertyMeta, - Json? classMeta, - TypeInfo? typeInfo, - Iterable? parentJsonMaps, - Iterable? parentObjectInstances}) => - DeserializationContext(options, - jsonPropertyMeta: jsonPropertyMeta ?? this.jsonPropertyMeta, - classMeta: classMeta ?? this.classMeta, - typeInfo: typeInfo ?? this.typeInfo, - parentJsonMaps: parentJsonMaps ?? this.parentJsonMaps, - parentObjectInstances: - parentObjectInstances ?? this.parentObjectInstances); - - @override - int get hashCode => - options.hashCode ^ jsonPropertyMeta.hashCode ^ classMeta.hashCode; - - @override - bool operator ==(Object other) { - final otherContext = (other as DeserializationContext); - - return otherContext.options == options && - otherContext.jsonPropertyMeta == jsonPropertyMeta && - otherContext.typeInfo == typeInfo && - otherContext.classMeta == classMeta; - } -} - -/// Describes a set of data / state to be re-used down the road of recursive -/// process of Serialization -class SerializationContext extends DeserializationContext { - /// Recursion nesting level, 0 = top object, 1 = object's property, and so on - final int level; - - const SerializationContext(SerializationOptions options, - {this.level = 0, - jsonPropertyMeta, - classMeta, - typeInfo, - parentJsonMaps, - parentObjectInstance}) - : super(options, - jsonPropertyMeta: jsonPropertyMeta, - classMeta: classMeta, - typeInfo: typeInfo, - parentJsonMaps: parentJsonMaps, - parentObjectInstances: parentObjectInstance); - - SerializationOptions get serializationOptions => - options as SerializationOptions; - - @override - DeserializationContext reBuild( - {int? level, - JsonProperty? jsonPropertyMeta, - Json? classMeta, - TypeInfo? typeInfo, - Iterable? parentJsonMaps, - Iterable? parentObjectInstances}) => - SerializationContext(serializationOptions, - level: level ?? this.level, - jsonPropertyMeta: jsonPropertyMeta ?? this.jsonPropertyMeta, - classMeta: classMeta ?? this.classMeta, - typeInfo: typeInfo ?? this.typeInfo, - parentJsonMaps: parentJsonMaps ?? this.parentJsonMaps, - parentObjectInstance: - parentObjectInstances ?? this.parentObjectInstances); - - @override - ConversionDirection get direction => ConversionDirection.toJson; -} - -/// Describes resolved property name and value -class PropertyDescriptor { - String name; - dynamic value; - bool raw; // value should be deserialized before use - PropertyDescriptor(this.name, this.value, this.raw); -} - -/// Describes an Object being processed through recursion to track cycling -/// use case. Used to prevent dead loops during recursive process -class ProcessedObjectDescriptor { - dynamic object; - Map usages = {}; // level : usagesCounter - - ProcessedObjectDescriptor(this.object); - - int get levelsCount { - return usages.keys.length; - } - - void logUsage(int level) { - if (usages.containsKey(level)) { - usages.update(level, (value) => ++value); - } else { - usages[level] = 1; - } - } - - @override - String toString() { - return '$object / $usages'; - } -} +export 'index/context.dart'; +export 'index/conversion_direction.dart'; +export 'index/descriptors.dart'; +export 'index/injectable_values.dart'; +export 'index/options.dart'; \ No newline at end of file diff --git a/mapper/lib/src/model/index/context.dart b/mapper/lib/src/model/index/context.dart new file mode 100644 index 00000000..7724a54c --- /dev/null +++ b/mapper/lib/src/model/index/context.dart @@ -0,0 +1,122 @@ +import 'package:collection/collection.dart'; + +import '../../identifier_casing.dart'; +import '../../json_map.dart'; +import '../annotations.dart'; +import '../type_info.dart'; +import 'options.dart'; +import 'conversion_direction.dart'; + +/// Describes a set of data / state to be re-used down the road of recursive +/// process of Deserialization / Serialization +class DeserializationContext { + final DeserializationOptions options; + final JsonProperty? jsonPropertyMeta; + final Json? classMeta; + final TypeInfo? typeInfo; + final Iterable? parentJsonMaps; + final Iterable? parentObjectInstances; + + const DeserializationContext(this.options, + {this.jsonPropertyMeta, + this.parentObjectInstances, + this.classMeta, + this.typeInfo, + this.parentJsonMaps}); + + CaseStyle? getParentCaseStyle() { + if (parentJsonMaps != null && parentJsonMaps!.isNotEmpty) { + final parentJsonMap = parentJsonMaps! + .firstWhereOrNull((element) => element.jsonMeta != null); + return parentJsonMap != null && parentJsonMap.jsonMeta != null + ? parentJsonMap.jsonMeta!.caseStyle + : null; + } + return null; + } + + CaseStyle? get caseStyle => (classMeta != null && classMeta!.caseStyle != null + ? classMeta!.caseStyle + : getParentCaseStyle() ?? options.caseStyle ?? defaultCaseStyle); + + CaseStyle? get targetCaseStyle => + direction == ConversionDirection.fromJson ? defaultCaseStyle : caseStyle; + + CaseStyle? get sourceCaseStyle => + direction == ConversionDirection.fromJson ? caseStyle : defaultCaseStyle; + + String transformIdentifier(String name) => direction == + ConversionDirection.fromJson + ? transformIdentifierCaseStyle(name, sourceCaseStyle, targetCaseStyle) + : transformIdentifierCaseStyle(name, targetCaseStyle, sourceCaseStyle); + + ConversionDirection get direction => ConversionDirection.fromJson; + + DeserializationContext reBuild( + {JsonProperty? jsonPropertyMeta, + Json? classMeta, + TypeInfo? typeInfo, + Iterable? parentJsonMaps, + Iterable? parentObjectInstances}) => + DeserializationContext(options, + jsonPropertyMeta: jsonPropertyMeta ?? this.jsonPropertyMeta, + classMeta: classMeta ?? this.classMeta, + typeInfo: typeInfo ?? this.typeInfo, + parentJsonMaps: parentJsonMaps ?? this.parentJsonMaps, + parentObjectInstances: + parentObjectInstances ?? this.parentObjectInstances); + + @override + int get hashCode => + options.hashCode ^ jsonPropertyMeta.hashCode ^ classMeta.hashCode; + + @override + bool operator ==(Object other) { + final otherContext = (other as DeserializationContext); + + return otherContext.options == options && + otherContext.jsonPropertyMeta == jsonPropertyMeta && + otherContext.typeInfo == typeInfo && + otherContext.classMeta == classMeta; + } +} + +/// Describes a set of data / state to be re-used down the road of recursive +/// process of Serialization +class SerializationContext extends DeserializationContext { + /// Recursion nesting level, 0 = top object, 1 = object's property, and so on + final int level; + + const SerializationContext(SerializationOptions super.options, + {this.level = 0, + super.jsonPropertyMeta, + super.classMeta, + super.typeInfo, + super.parentJsonMaps, + parentObjectInstance}) + : super( + parentObjectInstances: parentObjectInstance); + + SerializationOptions get serializationOptions => + options as SerializationOptions; + + @override + DeserializationContext reBuild( + {int? level, + JsonProperty? jsonPropertyMeta, + Json? classMeta, + TypeInfo? typeInfo, + Iterable? parentJsonMaps, + Iterable? parentObjectInstances}) => + SerializationContext(serializationOptions, + level: level ?? this.level, + jsonPropertyMeta: jsonPropertyMeta ?? this.jsonPropertyMeta, + classMeta: classMeta ?? this.classMeta, + typeInfo: typeInfo ?? this.typeInfo, + parentJsonMaps: parentJsonMaps ?? this.parentJsonMaps, + parentObjectInstance: + parentObjectInstances ?? this.parentObjectInstances); + + @override + ConversionDirection get direction => ConversionDirection.toJson; +} diff --git a/mapper/lib/src/model/index/conversion_direction.dart b/mapper/lib/src/model/index/conversion_direction.dart new file mode 100644 index 00000000..c4b5950e --- /dev/null +++ b/mapper/lib/src/model/index/conversion_direction.dart @@ -0,0 +1 @@ +enum ConversionDirection { fromJson, toJson } diff --git a/mapper/lib/src/model/index/descriptors.dart b/mapper/lib/src/model/index/descriptors.dart new file mode 100644 index 00000000..62b1c645 --- /dev/null +++ b/mapper/lib/src/model/index/descriptors.dart @@ -0,0 +1,33 @@ +/// Describes resolved property name and value +class PropertyDescriptor { + String name; + dynamic value; + bool raw; // value should be deserialized before use + PropertyDescriptor(this.name, this.value, this.raw); +} + +/// Describes an Object being processed through recursion to track cycling +/// use case. Used to prevent dead loops during recursive process +class ProcessedObjectDescriptor { + dynamic object; + Map usages = {}; // level : usagesCounter + + ProcessedObjectDescriptor(this.object); + + int get levelsCount { + return usages.keys.length; + } + + void logUsage(int level) { + if (usages.containsKey(level)) { + usages.update(level, (value) => ++value); + } else { + usages[level] = 1; + } + } + + @override + String toString() { + return '$object / $usages'; + } +} diff --git a/mapper/lib/src/model/index/injectable_values.dart b/mapper/lib/src/model/index/injectable_values.dart new file mode 100644 index 00000000..29b3077c --- /dev/null +++ b/mapper/lib/src/model/index/injectable_values.dart @@ -0,0 +1 @@ +typedef InjectableValues = Map; diff --git a/mapper/lib/src/model/index/options.dart b/mapper/lib/src/model/index/options.dart new file mode 100644 index 00000000..68e1736f --- /dev/null +++ b/mapper/lib/src/model/index/options.dart @@ -0,0 +1,71 @@ +import '../../identifier_casing.dart'; +import 'injectable_values.dart'; + +const defaultDeserializationOptions = DeserializationOptions(); + +/// Declares configuration parameters for Deserialization process +class DeserializationOptions { + /// The most popular ways to combine words into a single string + /// Based on assumption: That all Dart class fields initially + /// given as [CaseStyle.camel] + final CaseStyle? caseStyle; + + /// Scheme to be used + final dynamic scheme; + + /// Process annotated class members only + final bool? processAnnotatedMembersOnly; + + /// Template Instance + /// - for Deserialization output it could be a typed `Iterable`, or `Map`, or else + /// - for Serialization output it could be an instance of `Map` + final dynamic template; + + /// A `Map` of injectable values to be used for direct injection + final InjectableValues? injectableValues; + + /// Declares a fallback target type to deserialize to, when it's not possible to detect + /// it from target type inference OR [template] + final Type? type; + + const DeserializationOptions( + {this.scheme, + this.caseStyle, + this.template, + this.injectableValues, + this.type, + this.processAnnotatedMembersOnly}); +} + +const defaultSerializationOptions = SerializationOptions(indent: ' '); + +/// Declares configuration parameters for Serialization process +/// fully includes [DeserializationOptions] +class SerializationOptions extends DeserializationOptions { + /// JSON Indentation, usually it's just a string of [space] characters + final String? indent; + + /// Null class members + /// will be excluded from serialization process + final bool? ignoreNullMembers; + + /// Class members having [JsonProperty.defaultValue] + /// will be excluded from serialization process + final bool? ignoreDefaultMembers; + + /// Class members having Unknown types + /// will be excluded from serialization process + /// Java Jackson's "@JsonIgnoreProperties(ignoreUnknown = true)" + final bool? ignoreUnknownTypes; + + const SerializationOptions( + {super.scheme, + super.caseStyle, + super.template, + super.processAnnotatedMembersOnly, + this.indent, + this.ignoreNullMembers, + this.ignoreDefaultMembers, + this.ignoreUnknownTypes}) + : super(); +} diff --git a/mapper/lib/src/model/type_info.dart b/mapper/lib/src/model/type_info.dart index 452ef404..1766c543 100644 --- a/mapper/lib/src/model/type_info.dart +++ b/mapper/lib/src/model/type_info.dart @@ -1,7 +1,7 @@ import 'dart:collection'; +import '../class_info.dart'; import './value_decorators.dart'; -import '../utils.dart'; /// Provides enhanced type information based on `Type.toString()` value class TypeInfo { @@ -32,8 +32,7 @@ class TypeInfo { @override String toString() => - 'typeName: $typeName, parameters: $parameters, genericType: ' + - genericType.runtimeType.toString(); + 'typeName: $typeName, parameters: $parameters, genericType: ${genericType.runtimeType}'; @override int get hashCode => typeName.hashCode; @@ -63,10 +62,14 @@ class DefaultTypeInfoDecorator implements ITypeInfoDecorator { typeInfo.typeName == 'BigInt' || typeInfo.typeName == '_BigIntImpl'; bool isRegExp(TypeInfo typeInfo) => - typeInfo.typeName == 'RegExp' || typeInfo.typeName == '_RegExp'; + typeInfo.typeName == 'JSSyntaxRegExp' || + typeInfo.typeName == 'RegExp' || + typeInfo.typeName == '_RegExp'; bool isUri(TypeInfo typeInfo) => - typeInfo.typeName == 'Uri' || typeInfo.typeName == '_SimpleUri'; + typeInfo.typeName == 'Uri' || + typeInfo.typeName == '_SimpleUri' || + typeInfo.typeName == '_Uri'; bool isHashSet(TypeInfo typeInfo) => typeInfo.typeName!.startsWith('HashSet<') || @@ -107,11 +110,17 @@ class DefaultTypeInfoDecorator implements ITypeInfoDecorator { typeInfo.isDynamic = typeName == 'dynamic'; typeInfo.isList = typeName.startsWith('_GrowableList<') || typeName.startsWith('List<') || + typeName.startsWith('JSArray<') || isUnmodifiableListView(typeInfo) || isCastList(typeInfo); - typeInfo.isSet = typeName.startsWith('Set<') || isHashSet(typeInfo); + typeInfo.isSet = typeName.startsWith('_Set<') || + typeName.startsWith('Set<') || + isHashSet(typeInfo); typeInfo.isMap = typeName == '_JsonMap' || + typeName.startsWith('_Map<') || typeName.startsWith('Map<') || + typeName.startsWith('IdentityMap<') || + typeName.startsWith('LinkedMap<') || isHashMap(typeInfo) || isLinkedHashMap(typeInfo) || isUnmodifiableMapView(typeInfo); @@ -172,13 +181,10 @@ class DefaultTypeInfoDecorator implements ITypeInfoDecorator { : []; } - String? detectGenericTypeName(TypeInfo typeInfo) => - typeInfo.typeName!.contains('<') - ? typeInfo.typeName!.substring(0, typeInfo.typeName!.indexOf('<')) + - '<' + - typeInfo.parameters.map((x) => 'dynamic').join(', ') + - '>' - : null; + String? detectGenericTypeName(TypeInfo typeInfo) => typeInfo.typeName! + .contains('<') + ? '${typeInfo.typeName!.substring(0, typeInfo.typeName!.indexOf('<'))}<${typeInfo.parameters.map((x) => 'dynamic').join(', ')}>' + : null; Type? detectGenericType(TypeInfo typeInfo) { if (isUnmodifiableListView(typeInfo)) { diff --git a/mapper/pubspec.yaml b/mapper/pubspec.yaml index ec3f1a82..84efeb1e 100644 --- a/mapper/pubspec.yaml +++ b/mapper/pubspec.yaml @@ -1,19 +1,22 @@ name: dart_json_mapper -version: 2.2.1+1 +version: 2.2.20 description: > This package allows programmers to annotate Dart objects in order to serialize / deserialize them from / to JSON. homepage: https://github.com/k-paxian/dart-json-mapper environment: - sdk: '>=2.14.0 <3.0.0' + sdk: '>=3.0.0 <4.0.0' dependencies: - analyzer: ^2.7.0 - build: ^2.2.1 - intl: ^0.17.0 - meta: ^1.7.0 - path: ^1.8.1 - reflectable: ^3.0.4 - collection: ^1.15.0 + analyzer: ^7.7.0 + build: ^2.4.1 + build_config: ^1.1.1 + intl: ^0.19.0 + meta: ^1.17.0 + path: ^1.8.3 + reflectable: ^5.0.1 + collection: ^1.18.0 + pubspec_parse: ^1.3.0 dev_dependencies: lints: build_runner: + reflectable_builder: ^1.0.1 diff --git a/models/starlink/build.yaml b/models/starlink/build.yaml index 023b242f..74557942 100644 --- a/models/starlink/build.yaml +++ b/models/starlink/build.yaml @@ -1,7 +1,7 @@ targets: $default: builders: - reflectable: + reflectable_builder: generate_for: - no/files dart_json_mapper: diff --git a/models/starlink/lib/starlink.mapper.g.dart b/models/starlink/lib/starlink.mapper.g.dart index c211e95f..243d8aa0 100644 --- a/models/starlink/lib/starlink.mapper.g.dart +++ b/models/starlink/lib/starlink.mapper.g.dart @@ -1,21 +1,22 @@ -// This file has been generated by the dart_json_mapper package. +// This file has been generated by the dart_json_mapper v2.2.7 // https://github.com/k-paxian/dart-json-mapper // @dart = 2.12 import 'model.dart' as x0 show SpaceTrack, Record; -import 'package:dart_json_mapper/dart_json_mapper.dart' show JsonMapper, JsonMapperAdapter, typeOf; +import 'package:dart_json_mapper/dart_json_mapper.dart' show JsonMapper, JsonMapperAdapter, SerializationOptions, DeserializationOptions, typeOf; // This file has been generated by the reflectable package. // https://github.com/dart-lang/reflectable. import 'dart:core'; +import 'package:dart_json_mapper/src/identifier_casing.dart' as prefix2; import 'package:dart_json_mapper/src/model/annotations.dart' as prefix0; -import 'package:dart_json_mapper/src/name_casing.dart' as prefix2; import 'package:starlink/model.dart' as prefix1; +// ignore_for_file: camel_case_types +// ignore_for_file: implementation_imports // ignore_for_file: prefer_adjacent_string_concatenation // ignore_for_file: prefer_collection_literals // ignore_for_file: unnecessary_const -// ignore_for_file: implementation_imports // ignore:unused_import import 'package:reflectable/mirrors.dart' as m; @@ -24,7 +25,7 @@ import 'package:reflectable/src/reflectable_builder_based.dart' as r; // ignore:unused_import import 'package:reflectable/reflectable.dart' as r show Reflectable; -final _data = {const prefix0.JsonSerializable(): r.ReflectorData([r.NonGenericClassMirrorImpl(r'SpaceTrack', r'.SpaceTrack', 7, 0, const prefix0.JsonSerializable(), const [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 124], const [125, 126, 127, 128, 129, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix1.SpaceTrack() : null}, -1, 0, const [], const [prefix0.jsonSerializable, const prefix0.Json(caseStyle: prefix2.CaseStyle.snakeAllCaps)], null), r.NonGenericClassMirrorImpl(r'Record', r'.Record', 7, 1, const prefix0.JsonSerializable(), const [40, 41, 42, 43, 138], const [125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix1.Record() : null}, -1, 1, const [], const [prefix0.jsonSerializable], null)], [r.VariableMirrorImpl(r'ccsdsOmmVers', 32773, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'comment', 32773, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'originator', 32773, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'objectName', 32773, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'objectId', 32773, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'objectType', 32773, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'centerName', 32773, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'refFrame', 32773, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'timeSystem', 32773, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'meanElementTheory', 32773, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'classificationType', 32773, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'rcsSize', 32773, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'countryCode', 32773, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'site', 32773, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'tleLine0', 32773, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'tleLine1', 32773, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'tleLine2', 32773, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'meanMotion', 32773, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'eccentricity', 32773, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'raOfAscNode', 32773, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'argOfPericenter', 32773, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'meanAnomaly', 32773, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'ephemerisType', 32773, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'noradCatId', 32773, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'elementSetNo', 32773, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'revAtEpoch', 32773, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'bstar', 32773, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'meanMotionDot', 32773, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'meanMotionDdot', 32773, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'semimajorAxis', 32773, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'period', 32773, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'apoapsis', 32773, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'periapsis', 32773, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'decayed', 32773, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'file', 32773, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'gpId', 32773, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'decayDate', 32773, 0, const prefix0.JsonSerializable(), -1, 4, 4, const [], const []), r.VariableMirrorImpl(r'creationDate', 32773, 0, const prefix0.JsonSerializable(), -1, 4, 4, const [], const []), r.VariableMirrorImpl(r'epoch', 32773, 0, const prefix0.JsonSerializable(), -1, 4, 4, const [], const []), r.VariableMirrorImpl(r'launchDate', 32773, 0, const prefix0.JsonSerializable(), -1, 4, 4, const [], const [const prefix0.JsonProperty(converterParams: const {'format': 'yyyy-MM-dd'})]), r.VariableMirrorImpl(r'spaceTrack', 32773, 1, const prefix0.JsonSerializable(), 0, 0, 0, const [], const []), r.VariableMirrorImpl(r'version', 32773, 1, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'id', 32773, 1, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'launch', 32773, 1, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 0, 44), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 0, 45), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 1, 46), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 1, 47), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 2, 48), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 2, 49), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 3, 50), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 3, 51), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 4, 52), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 4, 53), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 5, 54), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 5, 55), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 6, 56), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 6, 57), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 7, 58), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 7, 59), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 8, 60), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 8, 61), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 9, 62), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 9, 63), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 10, 64), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 10, 65), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 11, 66), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 11, 67), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 12, 68), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 12, 69), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 13, 70), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 13, 71), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 14, 72), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 14, 73), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 15, 74), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 15, 75), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 16, 76), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 16, 77), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 17, 78), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 17, 79), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 18, 80), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 18, 81), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 19, 82), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 19, 83), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 20, 84), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 20, 85), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 21, 86), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 21, 87), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 22, 88), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 22, 89), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 23, 90), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 23, 91), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 24, 92), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 24, 93), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 25, 94), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 25, 95), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 26, 96), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 26, 97), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 27, 98), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 27, 99), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 28, 100), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 28, 101), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 29, 102), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 29, 103), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 30, 104), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 30, 105), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 31, 106), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 31, 107), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 32, 108), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 32, 109), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 33, 110), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 33, 111), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 34, 112), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 34, 113), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 35, 114), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 35, 115), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 36, 116), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 36, 117), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 37, 118), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 37, 119), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 38, 120), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 38, 121), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 39, 122), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 39, 123), r.MethodMirrorImpl(r'', 64, 0, -1, 0, 0, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'==', 131074, -1, -1, 5, 5, const [], const [40], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toString', 131074, -1, -1, 6, 6, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'noSuchMethod', 65538, -1, -1, -1, -1, const [], const [41], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'hashCode', 131075, -1, -1, 7, 7, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'runtimeType', 131075, -1, -1, 8, 8, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 40, 130), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 40, 131), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 41, 132), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 41, 133), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 42, 134), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 42, 135), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 43, 136), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 43, 137), r.MethodMirrorImpl(r'', 64, 1, -1, 1, 1, const [], const [], const prefix0.JsonSerializable(), const [])], [r.ParameterMirrorImpl(r'_ccsdsOmmVers', 32870, 45, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_comment', 32870, 47, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_originator', 32870, 49, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_objectName', 32870, 51, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_objectId', 32870, 53, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_objectType', 32870, 55, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_centerName', 32870, 57, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_refFrame', 32870, 59, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_timeSystem', 32870, 61, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_meanElementTheory', 32870, 63, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_classificationType', 32870, 65, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_rcsSize', 32870, 67, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_countryCode', 32870, 69, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_site', 32870, 71, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_tleLine0', 32870, 73, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_tleLine1', 32870, 75, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_tleLine2', 32870, 77, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_meanMotion', 32870, 79, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_eccentricity', 32870, 81, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_raOfAscNode', 32870, 83, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_argOfPericenter', 32870, 85, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_meanAnomaly', 32870, 87, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_ephemerisType', 32870, 89, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_noradCatId', 32870, 91, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_elementSetNo', 32870, 93, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_revAtEpoch', 32870, 95, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_bstar', 32870, 97, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_meanMotionDot', 32870, 99, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_meanMotionDdot', 32870, 101, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_semimajorAxis', 32870, 103, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_period', 32870, 105, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_apoapsis', 32870, 107, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_periapsis', 32870, 109, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_decayed', 32870, 111, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_file', 32870, 113, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_gpId', 32870, 115, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_decayDate', 32870, 117, const prefix0.JsonSerializable(), -1, 4, 4, const [], const [], null, null), r.ParameterMirrorImpl(r'_creationDate', 32870, 119, const prefix0.JsonSerializable(), -1, 4, 4, const [], const [], null, null), r.ParameterMirrorImpl(r'_epoch', 32870, 121, const prefix0.JsonSerializable(), -1, 4, 4, const [], const [], null, null), r.ParameterMirrorImpl(r'_launchDate', 32870, 123, const prefix0.JsonSerializable(), -1, 4, 4, const [], const [], null, null), r.ParameterMirrorImpl(r'other', 32774, 125, const prefix0.JsonSerializable(), -1, 9, 9, const [], const [], null, null), r.ParameterMirrorImpl(r'invocation', 32774, 127, const prefix0.JsonSerializable(), -1, 10, 10, const [], const [], null, null), r.ParameterMirrorImpl(r'_spaceTrack', 32870, 131, const prefix0.JsonSerializable(), 0, 0, 0, const [], const [], null, null), r.ParameterMirrorImpl(r'_version', 32870, 133, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_id', 32870, 135, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_launch', 32870, 137, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null)], [prefix1.SpaceTrack, prefix1.Record, String, num, DateTime, bool, String, int, Type, Object, Invocation], 2, {r'==': (dynamic instance) => (x) => instance == x, r'toString': (dynamic instance) => instance.toString, r'noSuchMethod': (dynamic instance) => instance.noSuchMethod, r'hashCode': (dynamic instance) => instance.hashCode, r'runtimeType': (dynamic instance) => instance.runtimeType, r'ccsdsOmmVers': (dynamic instance) => instance.ccsdsOmmVers, r'comment': (dynamic instance) => instance.comment, r'originator': (dynamic instance) => instance.originator, r'objectName': (dynamic instance) => instance.objectName, r'objectId': (dynamic instance) => instance.objectId, r'objectType': (dynamic instance) => instance.objectType, r'centerName': (dynamic instance) => instance.centerName, r'refFrame': (dynamic instance) => instance.refFrame, r'timeSystem': (dynamic instance) => instance.timeSystem, r'meanElementTheory': (dynamic instance) => instance.meanElementTheory, r'classificationType': (dynamic instance) => instance.classificationType, r'rcsSize': (dynamic instance) => instance.rcsSize, r'countryCode': (dynamic instance) => instance.countryCode, r'site': (dynamic instance) => instance.site, r'tleLine0': (dynamic instance) => instance.tleLine0, r'tleLine1': (dynamic instance) => instance.tleLine1, r'tleLine2': (dynamic instance) => instance.tleLine2, r'meanMotion': (dynamic instance) => instance.meanMotion, r'eccentricity': (dynamic instance) => instance.eccentricity, r'raOfAscNode': (dynamic instance) => instance.raOfAscNode, r'argOfPericenter': (dynamic instance) => instance.argOfPericenter, r'meanAnomaly': (dynamic instance) => instance.meanAnomaly, r'ephemerisType': (dynamic instance) => instance.ephemerisType, r'noradCatId': (dynamic instance) => instance.noradCatId, r'elementSetNo': (dynamic instance) => instance.elementSetNo, r'revAtEpoch': (dynamic instance) => instance.revAtEpoch, r'bstar': (dynamic instance) => instance.bstar, r'meanMotionDot': (dynamic instance) => instance.meanMotionDot, r'meanMotionDdot': (dynamic instance) => instance.meanMotionDdot, r'semimajorAxis': (dynamic instance) => instance.semimajorAxis, r'period': (dynamic instance) => instance.period, r'apoapsis': (dynamic instance) => instance.apoapsis, r'periapsis': (dynamic instance) => instance.periapsis, r'decayed': (dynamic instance) => instance.decayed, r'file': (dynamic instance) => instance.file, r'gpId': (dynamic instance) => instance.gpId, r'decayDate': (dynamic instance) => instance.decayDate, r'creationDate': (dynamic instance) => instance.creationDate, r'epoch': (dynamic instance) => instance.epoch, r'launchDate': (dynamic instance) => instance.launchDate, r'spaceTrack': (dynamic instance) => instance.spaceTrack, r'version': (dynamic instance) => instance.version, r'id': (dynamic instance) => instance.id, r'launch': (dynamic instance) => instance.launch}, {r'ccsdsOmmVers=': (dynamic instance, value) => instance.ccsdsOmmVers = value, r'comment=': (dynamic instance, value) => instance.comment = value, r'originator=': (dynamic instance, value) => instance.originator = value, r'objectName=': (dynamic instance, value) => instance.objectName = value, r'objectId=': (dynamic instance, value) => instance.objectId = value, r'objectType=': (dynamic instance, value) => instance.objectType = value, r'centerName=': (dynamic instance, value) => instance.centerName = value, r'refFrame=': (dynamic instance, value) => instance.refFrame = value, r'timeSystem=': (dynamic instance, value) => instance.timeSystem = value, r'meanElementTheory=': (dynamic instance, value) => instance.meanElementTheory = value, r'classificationType=': (dynamic instance, value) => instance.classificationType = value, r'rcsSize=': (dynamic instance, value) => instance.rcsSize = value, r'countryCode=': (dynamic instance, value) => instance.countryCode = value, r'site=': (dynamic instance, value) => instance.site = value, r'tleLine0=': (dynamic instance, value) => instance.tleLine0 = value, r'tleLine1=': (dynamic instance, value) => instance.tleLine1 = value, r'tleLine2=': (dynamic instance, value) => instance.tleLine2 = value, r'meanMotion=': (dynamic instance, value) => instance.meanMotion = value, r'eccentricity=': (dynamic instance, value) => instance.eccentricity = value, r'raOfAscNode=': (dynamic instance, value) => instance.raOfAscNode = value, r'argOfPericenter=': (dynamic instance, value) => instance.argOfPericenter = value, r'meanAnomaly=': (dynamic instance, value) => instance.meanAnomaly = value, r'ephemerisType=': (dynamic instance, value) => instance.ephemerisType = value, r'noradCatId=': (dynamic instance, value) => instance.noradCatId = value, r'elementSetNo=': (dynamic instance, value) => instance.elementSetNo = value, r'revAtEpoch=': (dynamic instance, value) => instance.revAtEpoch = value, r'bstar=': (dynamic instance, value) => instance.bstar = value, r'meanMotionDot=': (dynamic instance, value) => instance.meanMotionDot = value, r'meanMotionDdot=': (dynamic instance, value) => instance.meanMotionDdot = value, r'semimajorAxis=': (dynamic instance, value) => instance.semimajorAxis = value, r'period=': (dynamic instance, value) => instance.period = value, r'apoapsis=': (dynamic instance, value) => instance.apoapsis = value, r'periapsis=': (dynamic instance, value) => instance.periapsis = value, r'decayed=': (dynamic instance, value) => instance.decayed = value, r'file=': (dynamic instance, value) => instance.file = value, r'gpId=': (dynamic instance, value) => instance.gpId = value, r'decayDate=': (dynamic instance, value) => instance.decayDate = value, r'creationDate=': (dynamic instance, value) => instance.creationDate = value, r'epoch=': (dynamic instance, value) => instance.epoch = value, r'launchDate=': (dynamic instance, value) => instance.launchDate = value, r'spaceTrack=': (dynamic instance, value) => instance.spaceTrack = value, r'version=': (dynamic instance, value) => instance.version = value, r'id=': (dynamic instance, value) => instance.id = value, r'launch=': (dynamic instance, value) => instance.launch = value}, null, [])}; +final _data = {const prefix0.JsonSerializable(): r.ReflectorData([r.NonGenericClassMirrorImpl(r'SpaceTrack', r'.SpaceTrack', 134217735, 0, const prefix0.JsonSerializable(), const [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 124], const [125, 126, 127, 128, 129, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix1.SpaceTrack() : null}, -1, 0, const [], const [prefix0.jsonSerializable, const prefix0.Json(caseStyle: prefix2.CaseStyle.snakeAllCaps)], null), r.NonGenericClassMirrorImpl(r'Record', r'.Record', 134217735, 1, const prefix0.JsonSerializable(), const [40, 41, 42, 43, 138], const [125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix1.Record() : null}, -1, 1, const [], const [prefix0.jsonSerializable], null)], [r.VariableMirrorImpl(r'ccsdsOmmVers', 67239941, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'comment', 67239941, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'originator', 67239941, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'objectName', 67239941, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'objectId', 67239941, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'objectType', 67239941, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'centerName', 67239941, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'refFrame', 67239941, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'timeSystem', 67239941, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'meanElementTheory', 67239941, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'classificationType', 67239941, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'rcsSize', 67239941, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'countryCode', 67239941, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'site', 67239941, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'tleLine0', 67239941, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'tleLine1', 67239941, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'tleLine2', 67239941, 0, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'meanMotion', 67239941, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'eccentricity', 67239941, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'raOfAscNode', 67239941, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'argOfPericenter', 67239941, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'meanAnomaly', 67239941, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'ephemerisType', 67239941, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'noradCatId', 67239941, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'elementSetNo', 67239941, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'revAtEpoch', 67239941, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'bstar', 67239941, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'meanMotionDot', 67239941, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'meanMotionDdot', 67239941, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'semimajorAxis', 67239941, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'period', 67239941, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'apoapsis', 67239941, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'periapsis', 67239941, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'decayed', 67239941, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'file', 67239941, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'gpId', 67239941, 0, const prefix0.JsonSerializable(), -1, 3, 3, const [], const []), r.VariableMirrorImpl(r'decayDate', 67239941, 0, const prefix0.JsonSerializable(), -1, 4, 4, const [], const []), r.VariableMirrorImpl(r'creationDate', 67239941, 0, const prefix0.JsonSerializable(), -1, 4, 4, const [], const []), r.VariableMirrorImpl(r'epoch', 67239941, 0, const prefix0.JsonSerializable(), -1, 4, 4, const [], const []), r.VariableMirrorImpl(r'launchDate', 67239941, 0, const prefix0.JsonSerializable(), -1, 4, 4, const [], const [const prefix0.JsonProperty(converterParams: const {'format': 'yyyy-MM-dd'})]), r.VariableMirrorImpl(r'spaceTrack', 67239941, 1, const prefix0.JsonSerializable(), 0, 0, 0, const [], const []), r.VariableMirrorImpl(r'version', 67239941, 1, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'id', 67239941, 1, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.VariableMirrorImpl(r'launch', 67239941, 1, const prefix0.JsonSerializable(), -1, 2, 2, const [], const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 0, 44), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 0, 45), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 1, 46), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 1, 47), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 2, 48), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 2, 49), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 3, 50), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 3, 51), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 4, 52), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 4, 53), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 5, 54), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 5, 55), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 6, 56), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 6, 57), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 7, 58), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 7, 59), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 8, 60), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 8, 61), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 9, 62), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 9, 63), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 10, 64), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 10, 65), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 11, 66), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 11, 67), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 12, 68), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 12, 69), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 13, 70), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 13, 71), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 14, 72), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 14, 73), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 15, 74), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 15, 75), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 16, 76), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 16, 77), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 17, 78), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 17, 79), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 18, 80), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 18, 81), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 19, 82), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 19, 83), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 20, 84), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 20, 85), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 21, 86), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 21, 87), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 22, 88), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 22, 89), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 23, 90), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 23, 91), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 24, 92), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 24, 93), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 25, 94), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 25, 95), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 26, 96), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 26, 97), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 27, 98), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 27, 99), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 28, 100), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 28, 101), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 29, 102), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 29, 103), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 30, 104), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 30, 105), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 31, 106), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 31, 107), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 32, 108), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 32, 109), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 33, 110), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 33, 111), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 34, 112), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 34, 113), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 35, 114), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 35, 115), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 36, 116), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 36, 117), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 37, 118), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 37, 119), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 38, 120), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 38, 121), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 39, 122), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 39, 123), r.MethodMirrorImpl(r'', 64, 0, -1, 0, 0, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'==', 2097154, -1, -1, 5, 5, const [], const [40], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toString', 2097154, -1, -1, 6, 6, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'noSuchMethod', 524290, -1, -1, -1, -1, const [], const [41], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'hashCode', 2097155, -1, -1, 7, 7, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'runtimeType', 2097155, -1, -1, 8, 8, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 40, 130), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 40, 131), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 41, 132), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 41, 133), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 42, 134), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 42, 135), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 43, 136), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 43, 137), r.MethodMirrorImpl(r'', 64, 1, -1, 1, 1, const [], const [], const prefix0.JsonSerializable(), const [])], [r.ParameterMirrorImpl(r'_ccsdsOmmVers', 67240038, 45, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_comment', 67240038, 47, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_originator', 67240038, 49, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_objectName', 67240038, 51, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_objectId', 67240038, 53, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_objectType', 67240038, 55, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_centerName', 67240038, 57, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_refFrame', 67240038, 59, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_timeSystem', 67240038, 61, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_meanElementTheory', 67240038, 63, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_classificationType', 67240038, 65, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_rcsSize', 67240038, 67, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_countryCode', 67240038, 69, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_site', 67240038, 71, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_tleLine0', 67240038, 73, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_tleLine1', 67240038, 75, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_tleLine2', 67240038, 77, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_meanMotion', 67240038, 79, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_eccentricity', 67240038, 81, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_raOfAscNode', 67240038, 83, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_argOfPericenter', 67240038, 85, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_meanAnomaly', 67240038, 87, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_ephemerisType', 67240038, 89, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_noradCatId', 67240038, 91, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_elementSetNo', 67240038, 93, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_revAtEpoch', 67240038, 95, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_bstar', 67240038, 97, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_meanMotionDot', 67240038, 99, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_meanMotionDdot', 67240038, 101, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_semimajorAxis', 67240038, 103, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_period', 67240038, 105, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_apoapsis', 67240038, 107, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_periapsis', 67240038, 109, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_decayed', 67240038, 111, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_file', 67240038, 113, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_gpId', 67240038, 115, const prefix0.JsonSerializable(), -1, 3, 3, const [], const [], null, null), r.ParameterMirrorImpl(r'_decayDate', 67240038, 117, const prefix0.JsonSerializable(), -1, 4, 4, const [], const [], null, null), r.ParameterMirrorImpl(r'_creationDate', 67240038, 119, const prefix0.JsonSerializable(), -1, 4, 4, const [], const [], null, null), r.ParameterMirrorImpl(r'_epoch', 67240038, 121, const prefix0.JsonSerializable(), -1, 4, 4, const [], const [], null, null), r.ParameterMirrorImpl(r'_launchDate', 67240038, 123, const prefix0.JsonSerializable(), -1, 4, 4, const [], const [], null, null), r.ParameterMirrorImpl(r'other', 134348806, 125, const prefix0.JsonSerializable(), -1, 9, 9, const [], const [], null, null), r.ParameterMirrorImpl(r'invocation', 134348806, 127, const prefix0.JsonSerializable(), -1, 10, 10, const [], const [], null, null), r.ParameterMirrorImpl(r'_spaceTrack', 67240038, 131, const prefix0.JsonSerializable(), 0, 0, 0, const [], const [], null, null), r.ParameterMirrorImpl(r'_version', 67240038, 133, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_id', 67240038, 135, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'_launch', 67240038, 137, const prefix0.JsonSerializable(), -1, 2, 2, const [], const [], null, null)], [prefix1.SpaceTrack, prefix1.Record, String, num, DateTime, bool, String, int, Type, Object, Invocation], 2, {r'==': (dynamic instance) => (x) => instance == x, r'toString': (dynamic instance) => instance.toString, r'noSuchMethod': (dynamic instance) => instance.noSuchMethod, r'hashCode': (dynamic instance) => instance.hashCode, r'runtimeType': (dynamic instance) => instance.runtimeType, r'ccsdsOmmVers': (dynamic instance) => instance.ccsdsOmmVers, r'comment': (dynamic instance) => instance.comment, r'originator': (dynamic instance) => instance.originator, r'objectName': (dynamic instance) => instance.objectName, r'objectId': (dynamic instance) => instance.objectId, r'objectType': (dynamic instance) => instance.objectType, r'centerName': (dynamic instance) => instance.centerName, r'refFrame': (dynamic instance) => instance.refFrame, r'timeSystem': (dynamic instance) => instance.timeSystem, r'meanElementTheory': (dynamic instance) => instance.meanElementTheory, r'classificationType': (dynamic instance) => instance.classificationType, r'rcsSize': (dynamic instance) => instance.rcsSize, r'countryCode': (dynamic instance) => instance.countryCode, r'site': (dynamic instance) => instance.site, r'tleLine0': (dynamic instance) => instance.tleLine0, r'tleLine1': (dynamic instance) => instance.tleLine1, r'tleLine2': (dynamic instance) => instance.tleLine2, r'meanMotion': (dynamic instance) => instance.meanMotion, r'eccentricity': (dynamic instance) => instance.eccentricity, r'raOfAscNode': (dynamic instance) => instance.raOfAscNode, r'argOfPericenter': (dynamic instance) => instance.argOfPericenter, r'meanAnomaly': (dynamic instance) => instance.meanAnomaly, r'ephemerisType': (dynamic instance) => instance.ephemerisType, r'noradCatId': (dynamic instance) => instance.noradCatId, r'elementSetNo': (dynamic instance) => instance.elementSetNo, r'revAtEpoch': (dynamic instance) => instance.revAtEpoch, r'bstar': (dynamic instance) => instance.bstar, r'meanMotionDot': (dynamic instance) => instance.meanMotionDot, r'meanMotionDdot': (dynamic instance) => instance.meanMotionDdot, r'semimajorAxis': (dynamic instance) => instance.semimajorAxis, r'period': (dynamic instance) => instance.period, r'apoapsis': (dynamic instance) => instance.apoapsis, r'periapsis': (dynamic instance) => instance.periapsis, r'decayed': (dynamic instance) => instance.decayed, r'file': (dynamic instance) => instance.file, r'gpId': (dynamic instance) => instance.gpId, r'decayDate': (dynamic instance) => instance.decayDate, r'creationDate': (dynamic instance) => instance.creationDate, r'epoch': (dynamic instance) => instance.epoch, r'launchDate': (dynamic instance) => instance.launchDate, r'spaceTrack': (dynamic instance) => instance.spaceTrack, r'version': (dynamic instance) => instance.version, r'id': (dynamic instance) => instance.id, r'launch': (dynamic instance) => instance.launch}, {r'ccsdsOmmVers=': (dynamic instance, value) => instance.ccsdsOmmVers = value, r'comment=': (dynamic instance, value) => instance.comment = value, r'originator=': (dynamic instance, value) => instance.originator = value, r'objectName=': (dynamic instance, value) => instance.objectName = value, r'objectId=': (dynamic instance, value) => instance.objectId = value, r'objectType=': (dynamic instance, value) => instance.objectType = value, r'centerName=': (dynamic instance, value) => instance.centerName = value, r'refFrame=': (dynamic instance, value) => instance.refFrame = value, r'timeSystem=': (dynamic instance, value) => instance.timeSystem = value, r'meanElementTheory=': (dynamic instance, value) => instance.meanElementTheory = value, r'classificationType=': (dynamic instance, value) => instance.classificationType = value, r'rcsSize=': (dynamic instance, value) => instance.rcsSize = value, r'countryCode=': (dynamic instance, value) => instance.countryCode = value, r'site=': (dynamic instance, value) => instance.site = value, r'tleLine0=': (dynamic instance, value) => instance.tleLine0 = value, r'tleLine1=': (dynamic instance, value) => instance.tleLine1 = value, r'tleLine2=': (dynamic instance, value) => instance.tleLine2 = value, r'meanMotion=': (dynamic instance, value) => instance.meanMotion = value, r'eccentricity=': (dynamic instance, value) => instance.eccentricity = value, r'raOfAscNode=': (dynamic instance, value) => instance.raOfAscNode = value, r'argOfPericenter=': (dynamic instance, value) => instance.argOfPericenter = value, r'meanAnomaly=': (dynamic instance, value) => instance.meanAnomaly = value, r'ephemerisType=': (dynamic instance, value) => instance.ephemerisType = value, r'noradCatId=': (dynamic instance, value) => instance.noradCatId = value, r'elementSetNo=': (dynamic instance, value) => instance.elementSetNo = value, r'revAtEpoch=': (dynamic instance, value) => instance.revAtEpoch = value, r'bstar=': (dynamic instance, value) => instance.bstar = value, r'meanMotionDot=': (dynamic instance, value) => instance.meanMotionDot = value, r'meanMotionDdot=': (dynamic instance, value) => instance.meanMotionDdot = value, r'semimajorAxis=': (dynamic instance, value) => instance.semimajorAxis = value, r'period=': (dynamic instance, value) => instance.period = value, r'apoapsis=': (dynamic instance, value) => instance.apoapsis = value, r'periapsis=': (dynamic instance, value) => instance.periapsis = value, r'decayed=': (dynamic instance, value) => instance.decayed = value, r'file=': (dynamic instance, value) => instance.file = value, r'gpId=': (dynamic instance, value) => instance.gpId = value, r'decayDate=': (dynamic instance, value) => instance.decayDate = value, r'creationDate=': (dynamic instance, value) => instance.creationDate = value, r'epoch=': (dynamic instance, value) => instance.epoch = value, r'launchDate=': (dynamic instance, value) => instance.launchDate = value, r'spaceTrack=': (dynamic instance, value) => instance.spaceTrack = value, r'version=': (dynamic instance, value) => instance.version = value, r'id=': (dynamic instance, value) => instance.id = value, r'launch=': (dynamic instance, value) => instance.launch = value}, null, [])}; final _memberSymbolMap = null; @@ -38,7 +39,7 @@ void _initializeReflectable(JsonMapperAdapter adapter) { } final starlinkGeneratedAdapter = JsonMapperAdapter( - title: 'Starlink Generated Adapter', + title: 'starlink', url: 'package:starlink/starlink.dart', reflectableData: _data, memberSymbolMap: _memberSymbolMap, @@ -52,9 +53,11 @@ final starlinkGeneratedAdapter = JsonMapperAdapter( }); -Future initializeJsonMapperAsync({Iterable adapters = const []}) => Future(() => initializeJsonMapper(adapters: adapters)); +Future initializeJsonMapperAsync({Iterable adapters = const [], SerializationOptions? serializationOptions, DeserializationOptions? deserializationOptions}) => Future(() => initializeJsonMapper(adapters: adapters, serializationOptions: serializationOptions, deserializationOptions: deserializationOptions)); -JsonMapper initializeJsonMapper({Iterable adapters = const []}) { +JsonMapper initializeJsonMapper({Iterable adapters = const [], SerializationOptions? serializationOptions, DeserializationOptions? deserializationOptions}) { + JsonMapper.globalSerializationOptions = serializationOptions ?? JsonMapper.globalSerializationOptions; + JsonMapper.globalDeserializationOptions = deserializationOptions ?? JsonMapper.globalDeserializationOptions; JsonMapper.enumerateAdapters([...adapters, starlinkGeneratedAdapter], (JsonMapperAdapter adapter) { _initializeReflectable(adapter); JsonMapper().useAdapter(adapter); diff --git a/models/starlink/pubspec.yaml b/models/starlink/pubspec.yaml index 1a74639f..6b2b19db 100644 --- a/models/starlink/pubspec.yaml +++ b/models/starlink/pubspec.yaml @@ -5,7 +5,7 @@ description: > This package contains classes to define Starlink data structures: https://api.spacexdata.com/v4/starlink environment: - sdk: '>=2.12.0 <3.0.0' + sdk: '>=3.0.0 <4.0.0' dependencies: dart_json_mapper: dev_dependencies: diff --git a/models/unit_testing/build.yaml b/models/unit_testing/build.yaml index 628f6983..43070ac5 100644 --- a/models/unit_testing/build.yaml +++ b/models/unit_testing/build.yaml @@ -1,7 +1,7 @@ targets: $default: builders: - reflectable: + reflectable_builder: generate_for: - no/files dart_json_mapper: diff --git a/models/unit_testing/lib/generic.dart b/models/unit_testing/lib/generic.dart index 3bb81e93..f66a2c4f 100644 --- a/models/unit_testing/lib/generic.dart +++ b/models/unit_testing/lib/generic.dart @@ -109,12 +109,12 @@ class MyCarModel extends AbstractEntityModel { @jsonSerializable class ApiResult { - bool? Success; - T? Result; + bool? success; + T? result; ApiResult({ - this.Success, - this.Result, + this.success, + this.result, }); ApiResult? fromJson(dynamic json) => @@ -125,12 +125,12 @@ class ApiResult { @jsonSerializable class UserModel { - int? Id; - String? Name; + int? id; + String? name; UserModel({ - this.Id, - this.Name, + this.id, + this.name, }); } @@ -141,15 +141,15 @@ class ApiResultUserModel extends ApiResult { {typeOf>(): (value) => ApiResultUserModel.of(value)}; ApiResultUserModel({ - bool? Success, - UserModel? Result, + bool? success, + UserModel? result, }) : super( - Success: Success, - Result: Result, + success: success, + result: result, ); factory ApiResultUserModel.of(ApiResult other) => ApiResultUserModel( - Success: other.Success, - Result: JsonMapper.deserialize(other.Result), + success: other.success, + result: JsonMapper.deserialize(other.result), ); } diff --git a/models/unit_testing/lib/inheritance.dart b/models/unit_testing/lib/inheritance.dart new file mode 100644 index 00000000..087a49cf --- /dev/null +++ b/models/unit_testing/lib/inheritance.dart @@ -0,0 +1,161 @@ +import 'package:dart_json_mapper/dart_json_mapper.dart'; + +@jsonSerializable +enum BusinessType { private, public, private2, public2 } + +/// Case 1: Using getter only as [discriminatorProperty] /////////////////////// +@jsonSerializable +@Json(discriminatorProperty: 'type') +abstract class Business { + BusinessType get type; +} + +@jsonSerializable +@Json(discriminatorValue: BusinessType.private) +class Hotel extends Business { + int stars; + + @override + BusinessType get type => BusinessType.private; + + Hotel(this.stars); +} + +@jsonSerializable +@Json(discriminatorValue: BusinessType.public) +class Startup extends Business { + int userCount; + + @override + BusinessType get type => BusinessType.public; + + Startup(this.userCount); +} + +@jsonSerializable +class Stakeholder { + String fullName; + List businesses; + + Stakeholder(this.fullName, this.businesses); +} + +/// Case 2: Using writable property as [discriminatorProperty] ///////////////// +@jsonSerializable +@Json(discriminatorProperty: 'type') +abstract class Business2 { + BusinessType? type; +} + +@jsonSerializable +@Json(discriminatorValue: BusinessType.private2) +class Hotel2 extends Business2 { + int stars; + + Hotel2(this.stars); +} + +@jsonSerializable +@Json(discriminatorValue: BusinessType.public2) +class Startup2 extends Business2 { + int userCount; + + Startup2(this.userCount); +} + +@jsonSerializable +class Stakeholder2 { + String fullName; + List businesses; + + Stakeholder2(this.fullName, this.businesses); +} + +/// Case 3: No [discriminatorProperty] exists on the class ///////////////////// +class DataModel { + String? id; + DataModel({this.id}); +} + +@jsonSerializable +@Json(discriminatorProperty: '@type') +abstract class AbstractUser extends DataModel { + late final String? email; + + AbstractUser copyWith({ + String? id, + String? email, + }); + + factory AbstractUser(String id) = UserImpl.newUser; +} + +@jsonSerializable +class UserImpl extends DataModel implements AbstractUser { + @override + late final String? email; + + UserImpl({String? id, this.email}) : super(id: id); + + factory UserImpl.newUser(String id) { + return UserImpl( + id: id, + ); + } + + @override + AbstractUser copyWith({String? email, String? id}) { + return UserImpl(id: id ?? this.id, email: email ?? this.email); + } +} + +@jsonSerializable +abstract class MyBaseClass { + @JsonProperty(name: 'myCustomGetterName') + String get myGetter; + + @JsonProperty(name: 'myCustomFieldName') + final String myField = ''; +} + +@jsonSerializable +class MySuperclass implements MyBaseClass { + @override + String get myGetter => 'myGetterValue'; + + @override + final String myField = 'myFieldValue'; +} + +/// Case 4: Discriminator as of Type type ///////////////////// +@JsonSerializable() +@Json(discriminatorProperty: 'type') +abstract class TypedParent { + @JsonProperty(ignore: true) + Type get type => runtimeType; + + var a = 1; +} + +@JsonSerializable() +class TypedChild extends TypedParent { + var b = "test"; +} + +/// Case 5: Discriminator as of type String ///////////////////// +@JsonSerializable() +@Json(discriminatorProperty: 'type', discriminatorValue: 'p') +abstract class TypedStringParent { + String get type => 'p'; + + var a = 1; +} + +@JsonSerializable() +@Json(discriminatorValue: 'ch') +class TypedStringChild extends TypedStringParent { + @override + String get type => 'ch'; + + var b = "test"; +} diff --git a/models/unit_testing/lib/model.dart b/models/unit_testing/lib/model.dart index 1daeebdc..ef167d44 100644 --- a/models/unit_testing/lib/model.dart +++ b/models/unit_testing/lib/model.dart @@ -1,10 +1,24 @@ import 'package:dart_json_mapper/dart_json_mapper.dart'; final compactOptions = SerializationOptions(indent: ''); +final defaultOptions = defaultSerializationOptions; @jsonSerializable enum Color { red, blue, gray, grayMetallic, green, brown, yellow, black, white } +@jsonSerializable +class Tire { + final num thickness; + final Color color; + const Tire(this.thickness, this.color); +} + +@jsonSerializable +class Wheel { + final Tire tire; + const Wheel(this.tire); +} + @jsonSerializable class Car { @JsonProperty(name: 'modelName') @@ -18,6 +32,13 @@ class Car { Car(this.model, this.color); } +@jsonSerializable +class ComposableCar { + final Wheel leftWheel; + final Wheel rightWheel; + const ComposableCar(this.leftWheel, this.rightWheel); +} + extension TitledCar on Car { String get title => '$model-$color'; } diff --git a/models/unit_testing/lib/unit_testing.dart b/models/unit_testing/lib/unit_testing.dart index df8bad5a..f2883759 100644 --- a/models/unit_testing/lib/unit_testing.dart +++ b/models/unit_testing/lib/unit_testing.dart @@ -2,6 +2,7 @@ export './generic.dart'; export './immutable.dart'; export './json.dart'; export './model.dart'; +export './inheritance.dart'; export 'unit_testing.mapper.g.dart' show unitTestingGeneratedAdapter, diff --git a/models/unit_testing/lib/unit_testing.mapper.g.dart b/models/unit_testing/lib/unit_testing.mapper.g.dart index 9b5dde03..dafffcf0 100644 --- a/models/unit_testing/lib/unit_testing.mapper.g.dart +++ b/models/unit_testing/lib/unit_testing.mapper.g.dart @@ -1,25 +1,27 @@ -// This file has been generated by the dart_json_mapper package. +// This file has been generated by the dart_json_mapper v2.2.7+2 // https://github.com/k-paxian/dart-json-mapper // @dart = 2.12 import 'generic.dart' as x0 show Foo, BarBase, Bar, EntityModel, AbstractEntityModel, MyCarModel, ApiResult, UserModel, ApiResultUserModel; import 'immutable.dart' as x2 show Immutable; -import 'model.dart' as x1 show Car, Person, GettersOnly, Color; -import 'package:dart_json_mapper/dart_json_mapper.dart' show JsonMapper, JsonMapperAdapter, typeOf; +import 'inheritance.dart' as x3 show Business, Hotel, Startup, Stakeholder, Business2, Hotel2, Startup2, Stakeholder2, AbstractUser, UserImpl, MyBaseClass, MySuperclass, TypedParent, TypedChild, TypedStringParent, TypedStringChild, BusinessType; +import 'model.dart' as x1 show Tire, Wheel, Car, ComposableCar, Person, GettersOnly, Color; +import 'package:dart_json_mapper/dart_json_mapper.dart' show JsonMapper, JsonMapperAdapter, SerializationOptions, DeserializationOptions, typeOf; // This file has been generated by the reflectable package. // https://github.com/dart-lang/reflectable. - import 'dart:core'; import 'package:dart_json_mapper/src/model/annotations.dart' as prefix0; -import 'package:dart_json_mapper/src/model/converters.dart' as prefix4; +import 'package:dart_json_mapper/src/model/converters.dart' as prefix5; import 'package:unit_testing/generic.dart' as prefix1; -import 'package:unit_testing/immutable.dart' as prefix3; -import 'package:unit_testing/model.dart' as prefix2; +import 'package:unit_testing/immutable.dart' as prefix2; +import 'package:unit_testing/inheritance.dart' as prefix4; +import 'package:unit_testing/model.dart' as prefix3; +// ignore_for_file: camel_case_types +// ignore_for_file: implementation_imports // ignore_for_file: prefer_adjacent_string_concatenation // ignore_for_file: prefer_collection_literals // ignore_for_file: unnecessary_const -// ignore_for_file: implementation_imports // ignore:unused_import import 'package:reflectable/mirrors.dart' as m; @@ -28,7 +30,7 @@ import 'package:reflectable/src/reflectable_builder_based.dart' as r; // ignore:unused_import import 'package:reflectable/reflectable.dart' as r show Reflectable; -final _data = {const prefix0.JsonSerializable(): r.ReflectorData([r.NonGenericClassMirrorImpl(r'Foo', r'.Foo', 7, 0, const prefix0.JsonSerializable(), const [40], const [41, 42, 43, 44, 45], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix1.Foo() : null}, -1, 0, const [], const [prefix0.jsonSerializable], null), r.GenericClassMirrorImpl(r'BarBase', r'.BarBase', 7, 1, const prefix0.JsonSerializable(), const [0, 46, 47, 50], const [41, 42, 43, 44, 45, 46, 47, 48, 49], const [], -1, {}, {}, {r'': (bool b) => ({foo}) => b ? prefix1.BarBase(foo: foo) : null}, -1, 1, const [], const [prefix0.jsonSerializable], null, (o) { return o is prefix1.BarBase && o is! prefix1.Bar; }, const [14], 1), r.NonGenericClassMirrorImpl(r'Bar', r'.Bar', 7, 2, const prefix0.JsonSerializable(), const [51, 52], const [41, 42, 43, 44, 45, 46, 47, 48, 49], const [], 1, {}, {}, {r'': (bool b) => () => b ? prefix1.Bar() : null, r'of': (bool b) => (other) => b ? prefix1.Bar.of(other) : null}, -1, 2, const [], const [prefix0.jsonSerializable, const prefix0.Json(valueDecorators: prefix1.Bar.valueDecorators)], null), r.GenericClassMirrorImpl(r'EntityModel', r'.EntityModel', 7, 3, const prefix0.JsonSerializable(), const [1, 2, 3, 53, 54, 55, 56, 57, 58, 62, 63], const [41, 42, 43, 44, 45, 53, 54, 55, 56, 57, 58, 59, 60, 61], const [], -1, {}, {}, {r'': (bool b) => ({parentUuid, uuid, entity}) => b ? prefix1.EntityModel(entity: entity, parentUuid: parentUuid, uuid: uuid) : null, r'of': (bool b) => (other) => b ? prefix1.EntityModel.of(other) : null}, -1, 3, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorProperty: 'technicalName', ignoreNullMembers: true)], null, (o) { return o is prefix1.EntityModel; }, const [15], 3), r.GenericClassMirrorImpl(r'AbstractEntityModel', r'.AbstractEntityModel', 519, 4, const prefix0.JsonSerializable(), const [4, 5, 64, 65, 66, 67, 70], const [41, 42, 43, 44, 45, 66, 67, 68, 69], const [], -1, {}, {}, {}, -1, 4, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorProperty: 'technicalName', ignoreNullMembers: true)], null, (o) => false, const [16], 4), r.NonGenericClassMirrorImpl(r'MyCarModel', r'.MyCarModel', 7, 5, const prefix0.JsonSerializable(), const [6, 7, 71, 72, 75], const [41, 42, 43, 44, 45, 66, 67, 68, 69, 71, 72, 73, 74], const [], 4, {}, {}, {r'': (bool b) => ({parentUuid, uuid, model, color}) => b ? prefix1.MyCarModel(color: color, model: model, parentUuid: parentUuid, uuid: uuid) : null}, -1, 5, const [], const [prefix0.jsonSerializable], null), r.GenericClassMirrorImpl(r'ApiResult', r'.ApiResult', 7, 6, const prefix0.JsonSerializable(), const [8, 9, 76, 77, 82], const [41, 42, 43, 44, 45, 76, 77, 78, 79, 80, 81], const [], -1, {}, {}, {r'': (bool b) => ({Success, Result}) => b ? prefix1.ApiResult(Result: Result, Success: Success) : null}, -1, 6, const [], const [prefix0.jsonSerializable], null, (o) { return o is prefix1.ApiResult && o is! prefix1.ApiResultUserModel; }, const [17], 6), r.NonGenericClassMirrorImpl(r'UserModel', r'.UserModel', 7, 7, const prefix0.JsonSerializable(), const [10, 11, 87], const [41, 42, 43, 44, 45, 83, 84, 85, 86], const [], -1, {}, {}, {r'': (bool b) => ({Id, Name}) => b ? prefix1.UserModel(Id: Id, Name: Name) : null}, -1, 7, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ApiResultUserModel', r'.ApiResultUserModel', 7, 8, const prefix0.JsonSerializable(), const [88, 89], const [41, 42, 43, 44, 45, 76, 77, 78, 79, 80, 81], const [], 6, {}, {}, {r'': (bool b) => ({Success, Result}) => b ? prefix1.ApiResultUserModel(Result: Result, Success: Success) : null, r'of': (bool b) => (other) => b ? prefix1.ApiResultUserModel.of(other) : null}, -1, 8, const [], const [prefix0.jsonSerializable, const prefix0.Json(valueDecorators: prefix1.ApiResultUserModel.valueDecorators)], null), r.NonGenericClassMirrorImpl(r'Car', r'.Car', 7, 9, const prefix0.JsonSerializable(), const [12, 13, 14, 96], const [41, 42, 43, 44, 45, 90, 91, 92, 93, 94, 95], const [], -1, {}, {}, {r'': (bool b) => (model, color) => b ? prefix2.Car(model, color) : null}, -1, 9, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Person', r'.Person', 7, 10, const prefix0.JsonSerializable(), const [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 139, 140], const [41, 42, 43, 44, 45, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix2.Person() : null}, -1, 10, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'GettersOnly', r'.GettersOnly', 7, 11, const prefix0.JsonSerializable(), const [141, 142, 143], const [41, 42, 43, 44, 45, 141, 142], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix2.GettersOnly() : null}, -1, 11, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Color', r'.Color', 524295, 12, const prefix0.JsonSerializable(), const [144], const [41, 144, 43, 44, 45, 145], const [], -1, {}, {}, {}, -1, 12, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Immutable', r'.Immutable', 7, 13, const prefix0.JsonSerializable(), const [37, 38, 39, 149], const [41, 42, 43, 44, 45, 146, 147, 148], const [], -1, {}, {}, {r'': (bool b) => (id, name, car) => b ? prefix3.Immutable(id, name, car) : null}, -1, 13, const [], const [prefix0.jsonSerializable], null), r.TypeVariableMirrorImpl(r'T', r'.BarBase.T', const prefix0.JsonSerializable(), -1, 1, []), r.TypeVariableMirrorImpl(r'T', r'.EntityModel.T', const prefix0.JsonSerializable(), -1, 3, []), r.TypeVariableMirrorImpl(r'T', r'.AbstractEntityModel.T', const prefix0.JsonSerializable(), -1, 4, []), r.TypeVariableMirrorImpl(r'T', r'.ApiResult.T', const prefix0.JsonSerializable(), -1, 6, [])], [r.VariableMirrorImpl(r'foo', 5, 1, const prefix0.JsonSerializable(), -1, -1, -1, const [], const []), r.VariableMirrorImpl(r'parentUuid', 33797, 3, const prefix0.JsonSerializable(), -1, 14, 14, const [], const []), r.VariableMirrorImpl(r'uuid', 33797, 3, const prefix0.JsonSerializable(), -1, 14, 14, const [], const []), r.VariableMirrorImpl(r'entity', 1029, 3, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [const prefix0.JsonProperty(ignore: true)]), r.VariableMirrorImpl(r'parentUuid', 33797, 4, const prefix0.JsonSerializable(), -1, 14, 14, const [], const []), r.VariableMirrorImpl(r'uuid', 33797, 4, const prefix0.JsonSerializable(), -1, 14, 14, const [], const []), r.VariableMirrorImpl(r'model', 33797, 5, const prefix0.JsonSerializable(), -1, 14, 14, const [], const []), r.VariableMirrorImpl(r'color', 33797, 5, const prefix0.JsonSerializable(), 12, 12, 12, const [], const []), r.VariableMirrorImpl(r'Success', 32773, 6, const prefix0.JsonSerializable(), -1, 15, 15, const [], const []), r.VariableMirrorImpl(r'Result', 5, 6, const prefix0.JsonSerializable(), -1, -1, -1, const [], const []), r.VariableMirrorImpl(r'Id', 32773, 7, const prefix0.JsonSerializable(), -1, 16, 16, const [], const []), r.VariableMirrorImpl(r'Name', 32773, 7, const prefix0.JsonSerializable(), -1, 14, 14, const [], const []), r.VariableMirrorImpl(r'model', 32773, 9, const prefix0.JsonSerializable(), -1, 14, 14, const [], const [const prefix0.JsonProperty(name: 'modelName')]), r.VariableMirrorImpl(r'color', 32773, 9, const prefix0.JsonSerializable(), 12, 12, 12, const [], const []), r.VariableMirrorImpl(r'replacement', 32773, 9, const prefix0.JsonSerializable(), 9, 9, 9, const [], const [const prefix0.JsonProperty(ignoreIfNull: true)]), r.VariableMirrorImpl(r'skills', 2129925, 10, const prefix0.JsonSerializable(), -1, 17, 18, const [19], const []), r.VariableMirrorImpl(r'specialDates', 2129925, 10, const prefix0.JsonSerializable(), -1, 20, 21, const [22], const []), r.VariableMirrorImpl(r'lastPromotionDate', 32773, 10, const prefix0.JsonSerializable(), -1, 22, 22, const [], const [const prefix0.JsonProperty(name: 'last_promotion_date', converterParams: const {'format': 'MM-dd-yyyy H:m:s'})]), r.VariableMirrorImpl(r'hireDate', 32773, 10, const prefix0.JsonSerializable(), -1, 22, 22, const [], const [const prefix0.JsonProperty(name: 'hire_date', converterParams: const {'format': 'MM/dd/yyyy'})]), r.VariableMirrorImpl(r'married', 32773, 10, const prefix0.JsonSerializable(), -1, 23, 23, const [], const [const prefix0.JsonProperty(ignore: true)]), r.VariableMirrorImpl(r'active', 32773, 10, const prefix0.JsonSerializable(), -1, 23, 23, const [], const []), r.VariableMirrorImpl(r'name', 32773, 10, const prefix0.JsonSerializable(), -1, 19, 19, const [], const []), r.VariableMirrorImpl(r'salary', 32773, 10, const prefix0.JsonSerializable(), -1, 24, 24, const [], const [const prefix0.JsonProperty(converterParams: const {'format': '##.##'})]), r.VariableMirrorImpl(r'dob', 32773, 10, const prefix0.JsonSerializable(), -1, 25, 25, const [], const []), r.VariableMirrorImpl(r'age', 32773, 10, const prefix0.JsonSerializable(), -1, 24, 24, const [], const []), r.VariableMirrorImpl(r'lastName', 32773, 10, const prefix0.JsonSerializable(), -1, 19, 19, const [], const []), r.VariableMirrorImpl(r'dyn', 16389, 10, const prefix0.JsonSerializable(), -1, -1, -1, const [], const []), r.VariableMirrorImpl(r'dynNum', 16389, 10, const prefix0.JsonSerializable(), -1, -1, -1, const [], const []), r.VariableMirrorImpl(r'dynBool', 16389, 10, const prefix0.JsonSerializable(), -1, -1, -1, const [], const []), r.VariableMirrorImpl(r'properties', 2129925, 10, const prefix0.JsonSerializable(), -1, 26, 27, null, const []), r.VariableMirrorImpl(r'map', 2129925, 10, const prefix0.JsonSerializable(), -1, 28, 29, null, const []), r.VariableMirrorImpl(r'sym', 32773, 10, const prefix0.JsonSerializable(), -1, 30, 30, const [], const []), r.VariableMirrorImpl(r'favouriteColours', 2129925, 10, const prefix0.JsonSerializable(), -1, 31, 32, const [12], const []), r.VariableMirrorImpl(r'eyeColor', 32773, 10, const prefix0.JsonSerializable(), 12, 12, 12, const [], const [const prefix0.JsonProperty(name: 'eye_color')]), r.VariableMirrorImpl(r'hairColor', 32773, 10, const prefix0.JsonSerializable(), 12, 12, 12, const [], const [const prefix0.JsonProperty(converter: prefix4.enumConverterNumeric)]), r.VariableMirrorImpl(r'vehicles', 2129925, 10, const prefix0.JsonSerializable(), -1, 33, 34, const [9], const []), r.VariableMirrorImpl(r'index', 33861, 12, const prefix0.JsonSerializable(), -1, 35, 35, const [], const []), r.VariableMirrorImpl(r'id', 33797, 13, const prefix0.JsonSerializable(), -1, 35, 35, const [], const []), r.VariableMirrorImpl(r'name', 33797, 13, const prefix0.JsonSerializable(), -1, 19, 19, const [], const []), r.VariableMirrorImpl(r'car', 33797, 13, const prefix0.JsonSerializable(), 9, 9, 9, const [], const []), r.MethodMirrorImpl(r'', 64, 0, -1, 0, 0, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'==', 131074, -1, -1, 23, 23, const [], const [0], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toString', 131074, -1, -1, 19, 19, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'noSuchMethod', 65538, -1, -1, -1, -1, const [], const [1], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'hashCode', 131075, -1, -1, 35, 35, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'runtimeType', 131075, -1, -1, 36, 36, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'fromJson', 4325378, 1, 1, 37, 1, null, const [2], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toJson', 65538, 1, -1, -1, -1, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 0, 48), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 0, 49), r.MethodMirrorImpl(r'', 0, 1, -1, 38, 1, null, const [3], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 0, 2, -1, 2, 2, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'of', 1, 2, -1, 2, 2, const [], const [5], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'entityToJson', 4325378, 3, -1, 39, 40, null, const [], const prefix0.JsonSerializable(), const [prefix0.jsonProperty]), r.MethodMirrorImpl(r'setEntityPropertyFromJson', 262146, 3, -1, 41, 41, const [], const [6, 7], const prefix0.JsonSerializable(), const [prefix0.jsonProperty]), r.MethodMirrorImpl(r'newEntityFromModelJson', 2, 3, -1, -1, -1, const [], const [8], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'newEntityFromJson', 2, 3, -1, -1, -1, const [], const [9], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'fromJson', 4325378, 3, 3, 42, 3, null, const [10], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toJson', 4325378, 3, -1, 39, 40, null, const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 1, 59), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 2, 60), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 3, 61), r.MethodMirrorImpl(r'', 128, 3, -1, 43, 3, null, const [11, 12, 13], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'of', 1, 3, -1, 43, 3, null, const [14], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'copyWith', 514, 4, -1, -1, -1, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'merge', 514, 4, -1, -1, -1, const [], const [15], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'fromJson', 2, 4, -1, -1, -1, const [], const [16], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toJson', 4325378, 4, -1, 39, 40, null, const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 4, 68), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 5, 69), r.MethodMirrorImpl(r'', 128, 4, -1, 44, 4, null, const [17, 18], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'copyWith', 131074, 5, 9, 9, 9, const [], const [], const prefix0.JsonSerializable(), const [override]), r.MethodMirrorImpl(r'merge', 131074, 5, 9, 9, 9, const [], const [19], const prefix0.JsonSerializable(), const [override]), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 6, 73), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 7, 74), r.MethodMirrorImpl(r'', 128, 5, -1, 5, 5, const [], const [20, 21, 22, 23], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'fromJson', 4325378, 6, 6, 45, 6, null, const [24], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toJson', 65538, 6, -1, -1, -1, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 8, 78), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 8, 79), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 9, 80), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 9, 81), r.MethodMirrorImpl(r'', 0, 6, -1, 46, 6, null, const [25, 26], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 10, 83), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 10, 84), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 11, 85), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 11, 86), r.MethodMirrorImpl(r'', 0, 7, -1, 7, 7, const [], const [29, 30], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 0, 8, -1, 8, 8, const [], const [33, 34], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'of', 1, 8, -1, 8, 8, const [], const [35], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 12, 90), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 12, 91), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 13, 92), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 13, 93), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 14, 94), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 14, 95), r.MethodMirrorImpl(r'', 0, 9, -1, 9, 9, const [], const [36, 37], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 15, 97), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 15, 98), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 16, 99), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 16, 100), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 17, 101), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 17, 102), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 18, 103), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 18, 104), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 19, 105), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 19, 106), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 20, 107), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 20, 108), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 21, 109), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 21, 110), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 22, 111), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 22, 112), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 23, 113), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 23, 114), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 24, 115), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 24, 116), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 25, 117), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 25, 118), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 26, 119), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 26, 120), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 27, 121), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 27, 122), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 28, 123), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 28, 124), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 29, 125), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 29, 126), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 30, 127), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 30, 128), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 31, 129), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 31, 130), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 32, 131), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 32, 132), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 33, 133), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 33, 134), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 34, 135), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 34, 136), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 35, 137), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 35, 138), r.MethodMirrorImpl(r'fullName', 131075, 10, -1, 19, 19, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 0, 10, -1, 10, 10, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'nextCatId', 131075, 11, -1, 19, 19, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'nextDogId', 131075, 11, -1, 19, 19, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 11, -1, 11, 11, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toString', 131138, 12, -1, 19, 19, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 36, 145), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 37, 146), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 38, 147), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 39, 148), r.MethodMirrorImpl(r'', 128, 13, -1, 13, 13, const [], const [62, 63, 64], const prefix0.JsonSerializable(), const [])], [r.ParameterMirrorImpl(r'other', 32774, 41, const prefix0.JsonSerializable(), -1, 47, 47, const [], const [], null, null), r.ParameterMirrorImpl(r'invocation', 32774, 43, const prefix0.JsonSerializable(), -1, 48, 48, const [], const [], null, null), r.ParameterMirrorImpl(r'json', 16390, 46, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'foo', 13318, 50, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, #foo), r.ParameterMirrorImpl(r'_foo', 102, 49, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'other', 2129926, 52, const prefix0.JsonSerializable(), 1, 49, 1, null, const [], null, null), r.ParameterMirrorImpl(r'name', 32774, 54, const prefix0.JsonSerializable(), -1, 19, 19, const [], const [], null, null), r.ParameterMirrorImpl(r'value', 16390, 54, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'entityModelJson', 2129926, 55, const prefix0.JsonSerializable(), -1, 39, 40, null, const [], null, null), r.ParameterMirrorImpl(r'entityJson', 2129926, 56, const prefix0.JsonSerializable(), -1, 28, 29, null, const [], null, null), r.ParameterMirrorImpl(r'modelJson', 2129926, 57, const prefix0.JsonSerializable(), -1, 39, 40, null, const [], null, null), r.ParameterMirrorImpl(r'parentUuid', 46086, 62, const prefix0.JsonSerializable(), -1, 14, 14, const [], const [], null, #parentUuid), r.ParameterMirrorImpl(r'uuid', 46086, 62, const prefix0.JsonSerializable(), -1, 14, 14, const [], const [], null, #uuid), r.ParameterMirrorImpl(r'entity', 13318, 62, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, #entity), r.ParameterMirrorImpl(r'other', 2129926, 63, const prefix0.JsonSerializable(), 3, 50, 3, null, const [], null, null), r.ParameterMirrorImpl(r'other', 6, 65, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'jsonData', 2129926, 66, const prefix0.JsonSerializable(), -1, 28, 29, null, const [], null, null), r.ParameterMirrorImpl(r'parentUuid', 46086, 70, const prefix0.JsonSerializable(), -1, 14, 14, const [], const [], null, #parentUuid), r.ParameterMirrorImpl(r'uuid', 46086, 70, const prefix0.JsonSerializable(), -1, 14, 14, const [], const [], null, #uuid), r.ParameterMirrorImpl(r'other', 32774, 72, const prefix0.JsonSerializable(), 9, 9, 9, const [], const [], null, null), r.ParameterMirrorImpl(r'parentUuid', 45062, 75, const prefix0.JsonSerializable(), -1, 14, 14, const [], const [], null, #parentUuid), r.ParameterMirrorImpl(r'uuid', 45062, 75, const prefix0.JsonSerializable(), -1, 14, 14, const [], const [], null, #uuid), r.ParameterMirrorImpl(r'model', 46086, 75, const prefix0.JsonSerializable(), -1, 14, 14, const [], const [], null, #model), r.ParameterMirrorImpl(r'color', 46086, 75, const prefix0.JsonSerializable(), 12, 12, 12, const [], const [], null, #color), r.ParameterMirrorImpl(r'json', 16390, 76, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'Success', 46086, 82, const prefix0.JsonSerializable(), -1, 15, 15, const [], const [], null, #Success), r.ParameterMirrorImpl(r'Result', 13318, 82, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, #Result), r.ParameterMirrorImpl(r'_Success', 32870, 79, const prefix0.JsonSerializable(), -1, 15, 15, const [], const [], null, null), r.ParameterMirrorImpl(r'_Result', 102, 81, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'Id', 46086, 87, const prefix0.JsonSerializable(), -1, 16, 16, const [], const [], null, #Id), r.ParameterMirrorImpl(r'Name', 46086, 87, const prefix0.JsonSerializable(), -1, 14, 14, const [], const [], null, #Name), r.ParameterMirrorImpl(r'_Id', 32870, 84, const prefix0.JsonSerializable(), -1, 16, 16, const [], const [], null, null), r.ParameterMirrorImpl(r'_Name', 32870, 86, const prefix0.JsonSerializable(), -1, 14, 14, const [], const [], null, null), r.ParameterMirrorImpl(r'Success', 45062, 88, const prefix0.JsonSerializable(), -1, 15, 15, const [], const [], null, #Success), r.ParameterMirrorImpl(r'Result', 45062, 88, const prefix0.JsonSerializable(), 7, 7, 7, const [], const [], null, #Result), r.ParameterMirrorImpl(r'other', 2129926, 89, const prefix0.JsonSerializable(), 6, 51, 6, null, const [], null, null), r.ParameterMirrorImpl(r'model', 33798, 96, const prefix0.JsonSerializable(), -1, 14, 14, const [], const [], null, null), r.ParameterMirrorImpl(r'color', 33798, 96, const prefix0.JsonSerializable(), 12, 12, 12, const [], const [], null, null), r.ParameterMirrorImpl(r'_model', 32870, 91, const prefix0.JsonSerializable(), -1, 14, 14, const [], const [], null, null), r.ParameterMirrorImpl(r'_color', 32870, 93, const prefix0.JsonSerializable(), 12, 12, 12, const [], const [], null, null), r.ParameterMirrorImpl(r'_replacement', 32870, 95, const prefix0.JsonSerializable(), 9, 9, 9, const [], const [], null, null), r.ParameterMirrorImpl(r'_skills', 2130022, 98, const prefix0.JsonSerializable(), -1, 17, 18, const [19], const [], null, null), r.ParameterMirrorImpl(r'_specialDates', 2130022, 100, const prefix0.JsonSerializable(), -1, 20, 21, const [22], const [], null, null), r.ParameterMirrorImpl(r'_lastPromotionDate', 32870, 102, const prefix0.JsonSerializable(), -1, 22, 22, const [], const [], null, null), r.ParameterMirrorImpl(r'_hireDate', 32870, 104, const prefix0.JsonSerializable(), -1, 22, 22, const [], const [], null, null), r.ParameterMirrorImpl(r'_married', 32870, 106, const prefix0.JsonSerializable(), -1, 23, 23, const [], const [], null, null), r.ParameterMirrorImpl(r'_active', 32870, 108, const prefix0.JsonSerializable(), -1, 23, 23, const [], const [], null, null), r.ParameterMirrorImpl(r'_name', 32870, 110, const prefix0.JsonSerializable(), -1, 19, 19, const [], const [], null, null), r.ParameterMirrorImpl(r'_salary', 32870, 112, const prefix0.JsonSerializable(), -1, 24, 24, const [], const [], null, null), r.ParameterMirrorImpl(r'_dob', 32870, 114, const prefix0.JsonSerializable(), -1, 25, 25, const [], const [], null, null), r.ParameterMirrorImpl(r'_age', 32870, 116, const prefix0.JsonSerializable(), -1, 24, 24, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 32870, 118, const prefix0.JsonSerializable(), -1, 19, 19, const [], const [], null, null), r.ParameterMirrorImpl(r'_dyn', 16486, 120, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'_dynNum', 16486, 122, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'_dynBool', 16486, 124, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'_properties', 2130022, 126, const prefix0.JsonSerializable(), -1, 26, 27, null, const [], null, null), r.ParameterMirrorImpl(r'_map', 2130022, 128, const prefix0.JsonSerializable(), -1, 28, 29, null, const [], null, null), r.ParameterMirrorImpl(r'_sym', 32870, 130, const prefix0.JsonSerializable(), -1, 30, 30, const [], const [], null, null), r.ParameterMirrorImpl(r'_favouriteColours', 2130022, 132, const prefix0.JsonSerializable(), -1, 31, 32, const [12], const [], null, null), r.ParameterMirrorImpl(r'_eyeColor', 32870, 134, const prefix0.JsonSerializable(), 12, 12, 12, const [], const [], null, null), r.ParameterMirrorImpl(r'_hairColor', 32870, 136, const prefix0.JsonSerializable(), 12, 12, 12, const [], const [], null, null), r.ParameterMirrorImpl(r'_vehicles', 2130022, 138, const prefix0.JsonSerializable(), -1, 33, 34, const [9], const [], null, null), r.ParameterMirrorImpl(r'id', 33798, 149, const prefix0.JsonSerializable(), -1, 35, 35, const [], const [], null, null), r.ParameterMirrorImpl(r'name', 33798, 149, const prefix0.JsonSerializable(), -1, 19, 19, const [], const [], null, null), r.ParameterMirrorImpl(r'car', 33798, 149, const prefix0.JsonSerializable(), 9, 9, 9, const [], const [], null, null)], [prefix1.Foo, prefix1.BarBase, prefix1.Bar, prefix1.EntityModel, prefix1.AbstractEntityModel, prefix1.MyCarModel, prefix1.ApiResult, prefix1.UserModel, prefix1.ApiResultUserModel, prefix2.Car, prefix2.Person, prefix2.GettersOnly, prefix2.Color, prefix3.Immutable, String, bool, int, const m.TypeValue>().type, List, String, const m.TypeValue>().type, List, DateTime, bool, num, num, const m.TypeValue>().type, Map, const m.TypeValue>().type, Map, Symbol, const m.TypeValue>().type, List, const m.TypeValue>().type, List, int, Type, const r.FakeType(r'.BarBase'), const r.FakeType(r'.BarBase'), const m.TypeValue>().type, Map, const m.TypeValue().type, const r.FakeType(r'.EntityModel'), const r.FakeType(r'.EntityModel'), const r.FakeType(r'.AbstractEntityModel'), const r.FakeType(r'.ApiResult'), const r.FakeType(r'.ApiResult'), Object, Invocation, const m.TypeValue>().type, const m.TypeValue>().type, const m.TypeValue>().type], 14, {r'==': (dynamic instance) => (x) => instance == x, r'toString': (dynamic instance) => instance.toString, r'noSuchMethod': (dynamic instance) => instance.noSuchMethod, r'hashCode': (dynamic instance) => instance.hashCode, r'runtimeType': (dynamic instance) => instance.runtimeType, r'fromJson': (dynamic instance) => instance.fromJson, r'toJson': (dynamic instance) => instance.toJson, r'foo': (dynamic instance) => instance.foo, r'entityToJson': (dynamic instance) => instance.entityToJson, r'setEntityPropertyFromJson': (dynamic instance) => instance.setEntityPropertyFromJson, r'newEntityFromModelJson': (dynamic instance) => instance.newEntityFromModelJson, r'newEntityFromJson': (dynamic instance) => instance.newEntityFromJson, r'parentUuid': (dynamic instance) => instance.parentUuid, r'uuid': (dynamic instance) => instance.uuid, r'entity': (dynamic instance) => instance.entity, r'copyWith': (dynamic instance) => instance.copyWith, r'merge': (dynamic instance) => instance.merge, r'model': (dynamic instance) => instance.model, r'color': (dynamic instance) => instance.color, r'Success': (dynamic instance) => instance.Success, r'Result': (dynamic instance) => instance.Result, r'Id': (dynamic instance) => instance.Id, r'Name': (dynamic instance) => instance.Name, r'replacement': (dynamic instance) => instance.replacement, r'skills': (dynamic instance) => instance.skills, r'specialDates': (dynamic instance) => instance.specialDates, r'lastPromotionDate': (dynamic instance) => instance.lastPromotionDate, r'hireDate': (dynamic instance) => instance.hireDate, r'married': (dynamic instance) => instance.married, r'active': (dynamic instance) => instance.active, r'name': (dynamic instance) => instance.name, r'salary': (dynamic instance) => instance.salary, r'dob': (dynamic instance) => instance.dob, r'age': (dynamic instance) => instance.age, r'lastName': (dynamic instance) => instance.lastName, r'dyn': (dynamic instance) => instance.dyn, r'dynNum': (dynamic instance) => instance.dynNum, r'dynBool': (dynamic instance) => instance.dynBool, r'properties': (dynamic instance) => instance.properties, r'map': (dynamic instance) => instance.map, r'sym': (dynamic instance) => instance.sym, r'favouriteColours': (dynamic instance) => instance.favouriteColours, r'eyeColor': (dynamic instance) => instance.eyeColor, r'hairColor': (dynamic instance) => instance.hairColor, r'vehicles': (dynamic instance) => instance.vehicles, r'fullName': (dynamic instance) => instance.fullName, r'nextCatId': (dynamic instance) => instance.nextCatId, r'nextDogId': (dynamic instance) => instance.nextDogId, r'index': (dynamic instance) => instance.index, r'id': (dynamic instance) => instance.id, r'car': (dynamic instance) => instance.car}, {r'foo=': (dynamic instance, value) => instance.foo = value, r'Success=': (dynamic instance, value) => instance.Success = value, r'Result=': (dynamic instance, value) => instance.Result = value, r'Id=': (dynamic instance, value) => instance.Id = value, r'Name=': (dynamic instance, value) => instance.Name = value, r'model=': (dynamic instance, value) => instance.model = value, r'color=': (dynamic instance, value) => instance.color = value, r'replacement=': (dynamic instance, value) => instance.replacement = value, r'skills=': (dynamic instance, value) => instance.skills = value, r'specialDates=': (dynamic instance, value) => instance.specialDates = value, r'lastPromotionDate=': (dynamic instance, value) => instance.lastPromotionDate = value, r'hireDate=': (dynamic instance, value) => instance.hireDate = value, r'married=': (dynamic instance, value) => instance.married = value, r'active=': (dynamic instance, value) => instance.active = value, r'name=': (dynamic instance, value) => instance.name = value, r'salary=': (dynamic instance, value) => instance.salary = value, r'dob=': (dynamic instance, value) => instance.dob = value, r'age=': (dynamic instance, value) => instance.age = value, r'lastName=': (dynamic instance, value) => instance.lastName = value, r'dyn=': (dynamic instance, value) => instance.dyn = value, r'dynNum=': (dynamic instance, value) => instance.dynNum = value, r'dynBool=': (dynamic instance, value) => instance.dynBool = value, r'properties=': (dynamic instance, value) => instance.properties = value, r'map=': (dynamic instance, value) => instance.map = value, r'sym=': (dynamic instance, value) => instance.sym = value, r'favouriteColours=': (dynamic instance, value) => instance.favouriteColours = value, r'eyeColor=': (dynamic instance, value) => instance.eyeColor = value, r'hairColor=': (dynamic instance, value) => instance.hairColor = value, r'vehicles=': (dynamic instance, value) => instance.vehicles = value}, null, [])}; +final _data = {const prefix0.JsonSerializable(): r.ReflectorData([r.NonGenericClassMirrorImpl(r'Foo', r'.Foo', 134217735, 0, const prefix0.JsonSerializable(), const [62], const [63, 64, 65, 66, 67], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix1.Foo() : null}, -1, 0, const [], const [prefix0.jsonSerializable], null), r.GenericClassMirrorImpl(r'BarBase', r'.BarBase', 134217735, 1, const prefix0.JsonSerializable(), const [0, 68, 69, 72], const [63, 64, 65, 66, 67, 68, 69, 70, 71], const [], -1, {}, {}, {r'': (bool b) => ({foo}) => b ? prefix1.BarBase(foo: foo) : null}, -1, 1, const [], const [prefix0.jsonSerializable], null, (o) { return o is prefix1.BarBase && o is! prefix1.Bar; }, const [34], 1), r.NonGenericClassMirrorImpl(r'Bar', r'.Bar', 134217735, 2, const prefix0.JsonSerializable(), const [73, 74], const [63, 64, 65, 66, 67, 68, 69, 70, 71], const [], 1, {}, {}, {r'': (bool b) => () => b ? prefix1.Bar() : null, r'of': (bool b) => (other) => b ? prefix1.Bar.of(other) : null}, -1, 2, const [], const [prefix0.jsonSerializable, const prefix0.Json(valueDecorators: prefix1.Bar.valueDecorators)], null), r.GenericClassMirrorImpl(r'EntityModel', r'.EntityModel', 134217735, 3, const prefix0.JsonSerializable(), const [1, 2, 3, 75, 76, 77, 78, 79, 80, 84, 85], const [63, 64, 65, 66, 67, 75, 76, 77, 78, 79, 80, 81, 82, 83], const [], -1, {}, {}, {r'': (bool b) => ({parentUuid, uuid, entity}) => b ? prefix1.EntityModel(entity: entity, parentUuid: parentUuid, uuid: uuid) : null, r'of': (bool b) => (other) => b ? prefix1.EntityModel.of(other) : null}, -1, 3, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorProperty: 'technicalName', ignoreNullMembers: true)], null, (o) { return o is prefix1.EntityModel; }, const [35], 3), r.GenericClassMirrorImpl(r'AbstractEntityModel', r'.AbstractEntityModel', 134218247, 4, const prefix0.JsonSerializable(), const [4, 5, 86, 87, 88, 89, 92], const [63, 64, 65, 66, 67, 88, 89, 90, 91], const [], -1, {}, {}, {}, -1, 4, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorProperty: 'technicalName', ignoreNullMembers: true)], null, (o) => false, const [36], 4), r.NonGenericClassMirrorImpl(r'MyCarModel', r'.MyCarModel', 134217735, 5, const prefix0.JsonSerializable(), const [6, 7, 93, 94, 97], const [63, 64, 65, 66, 67, 88, 89, 90, 91, 93, 94, 95, 96], const [], 4, {}, {}, {r'': (bool b) => ({parentUuid, uuid, model, color}) => b ? prefix1.MyCarModel(color: color, model: model, parentUuid: parentUuid, uuid: uuid) : null}, -1, 5, const [], const [prefix0.jsonSerializable], null), r.GenericClassMirrorImpl(r'ApiResult', r'.ApiResult', 134217735, 6, const prefix0.JsonSerializable(), const [8, 9, 98, 99, 104], const [63, 64, 65, 66, 67, 98, 99, 100, 101, 102, 103], const [], -1, {}, {}, {r'': (bool b) => ({success, result}) => b ? prefix1.ApiResult(result: result, success: success) : null}, -1, 6, const [], const [prefix0.jsonSerializable], null, (o) { return o is prefix1.ApiResult && o is! prefix1.ApiResultUserModel; }, const [37], 6), r.NonGenericClassMirrorImpl(r'UserModel', r'.UserModel', 134217735, 7, const prefix0.JsonSerializable(), const [10, 11, 109], const [63, 64, 65, 66, 67, 105, 106, 107, 108], const [], -1, {}, {}, {r'': (bool b) => ({id, name}) => b ? prefix1.UserModel(id: id, name: name) : null}, -1, 7, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ApiResultUserModel', r'.ApiResultUserModel', 134217735, 8, const prefix0.JsonSerializable(), const [110, 111], const [63, 64, 65, 66, 67, 98, 99, 100, 101, 102, 103], const [], 6, {}, {}, {r'': (bool b) => ({success, result}) => b ? prefix1.ApiResultUserModel(result: result, success: success) : null, r'of': (bool b) => (other) => b ? prefix1.ApiResultUserModel.of(other) : null}, -1, 8, const [], const [prefix0.jsonSerializable, const prefix0.Json(valueDecorators: prefix1.ApiResultUserModel.valueDecorators)], null), r.NonGenericClassMirrorImpl(r'Immutable', r'.Immutable', 134217735, 9, const prefix0.JsonSerializable(), const [12, 13, 14, 115], const [63, 64, 65, 66, 67, 112, 113, 114], const [], -1, {}, {}, {r'': (bool b) => (id, name, car) => b ? prefix2.Immutable(id, name, car) : null}, -1, 9, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Tire', r'.Tire', 134217735, 10, const prefix0.JsonSerializable(), const [15, 16, 118], const [63, 64, 65, 66, 67, 116, 117], const [], -1, {}, {}, {r'': (bool b) => (thickness, color) => b ? prefix3.Tire(thickness, color) : null}, -1, 10, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Wheel', r'.Wheel', 134217735, 11, const prefix0.JsonSerializable(), const [17, 120], const [63, 64, 65, 66, 67, 119], const [], -1, {}, {}, {r'': (bool b) => (tire) => b ? prefix3.Wheel(tire) : null}, -1, 11, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Car', r'.Car', 134217735, 12, const prefix0.JsonSerializable(), const [18, 19, 20, 127], const [63, 64, 65, 66, 67, 121, 122, 123, 124, 125, 126], const [], -1, {}, {}, {r'': (bool b) => (model, color) => b ? prefix3.Car(model, color) : null}, -1, 12, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ComposableCar', r'.ComposableCar', 134217735, 13, const prefix0.JsonSerializable(), const [21, 22, 130], const [63, 64, 65, 66, 67, 128, 129], const [], -1, {}, {}, {r'': (bool b) => (leftWheel, rightWheel) => b ? prefix3.ComposableCar(leftWheel, rightWheel) : null}, -1, 13, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Person', r'.Person', 134217735, 14, const prefix0.JsonSerializable(), const [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 173, 174], const [63, 64, 65, 66, 67, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix3.Person() : null}, -1, 14, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'GettersOnly', r'.GettersOnly', 134217735, 15, const prefix0.JsonSerializable(), const [175, 176, 177], const [63, 64, 65, 66, 67, 175, 176], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix3.GettersOnly() : null}, -1, 15, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Color', r'.Color', 138412039, 16, const prefix0.JsonSerializable(), const [178], const [63, 64, 65, 66, 67, 179], const [], -1, {}, {}, {}, -1, 16, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Business', r'.Business', 134218247, 17, const prefix0.JsonSerializable(), const [180, 181], const [63, 64, 65, 66, 67], const [], -1, {}, {}, {}, -1, 17, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorProperty: 'type')], null), r.NonGenericClassMirrorImpl(r'Hotel', r'.Hotel', 134217735, 18, const prefix0.JsonSerializable(), const [44, 184, 185], const [63, 64, 65, 66, 67, 182, 183, 184], const [], 17, {}, {}, {r'': (bool b) => (stars) => b ? prefix4.Hotel(stars) : null}, -1, 18, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorValue: prefix4.BusinessType.private)], null), r.NonGenericClassMirrorImpl(r'Startup', r'.Startup', 134217735, 19, const prefix0.JsonSerializable(), const [45, 188, 189], const [63, 64, 65, 66, 67, 186, 187, 188], const [], 17, {}, {}, {r'': (bool b) => (userCount) => b ? prefix4.Startup(userCount) : null}, -1, 19, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorValue: prefix4.BusinessType.public)], null), r.NonGenericClassMirrorImpl(r'Stakeholder', r'.Stakeholder', 134217735, 20, const prefix0.JsonSerializable(), const [46, 47, 194], const [63, 64, 65, 66, 67, 190, 191, 192, 193], const [], -1, {}, {}, {r'': (bool b) => (fullName, businesses) => b ? prefix4.Stakeholder(fullName, businesses) : null}, -1, 20, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Business2', r'.Business2', 134218247, 21, const prefix0.JsonSerializable(), const [48, 197], const [63, 64, 65, 66, 67, 195, 196], const [], -1, {}, {}, {}, -1, 21, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorProperty: 'type')], null), r.NonGenericClassMirrorImpl(r'Hotel2', r'.Hotel2', 134217735, 22, const prefix0.JsonSerializable(), const [49, 200], const [63, 64, 65, 66, 67, 195, 196, 198, 199], const [], 21, {}, {}, {r'': (bool b) => (stars) => b ? prefix4.Hotel2(stars) : null}, -1, 22, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorValue: prefix4.BusinessType.private2)], null), r.NonGenericClassMirrorImpl(r'Startup2', r'.Startup2', 134217735, 23, const prefix0.JsonSerializable(), const [50, 203], const [63, 64, 65, 66, 67, 195, 196, 201, 202], const [], 21, {}, {}, {r'': (bool b) => (userCount) => b ? prefix4.Startup2(userCount) : null}, -1, 23, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorValue: prefix4.BusinessType.public2)], null), r.NonGenericClassMirrorImpl(r'Stakeholder2', r'.Stakeholder2', 134217735, 24, const prefix0.JsonSerializable(), const [51, 52, 208], const [63, 64, 65, 66, 67, 204, 205, 206, 207], const [], -1, {}, {}, {r'': (bool b) => (fullName, businesses) => b ? prefix4.Stakeholder2(fullName, businesses) : null}, -1, 24, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'AbstractUser', r'.AbstractUser', 134218247, 25, const prefix0.JsonSerializable(), const [53, 209, 212], const [63, 64, 65, 66, 67, 213, 214, 210, 211], const [], -1, {}, {}, {r'': (bool b) => (id) => b ? prefix4.AbstractUser(id) : null}, -1, 25, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorProperty: '@type')], null), r.NonGenericClassMirrorImpl(r'UserImpl', r'.UserImpl', 134217735, 26, const prefix0.JsonSerializable(), const [55, 215, 218, 219], const [63, 64, 65, 66, 67, 213, 214, 215, 216, 217], const [], -1, {}, {}, {r'': (bool b) => ({id, email}) => b ? prefix4.UserImpl(email: email, id: id) : null, r'newUser': (bool b) => (id) => b ? prefix4.UserImpl.newUser(id) : null}, -1, 26, const [25], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'MyBaseClass', r'.MyBaseClass', 134218247, 27, const prefix0.JsonSerializable(), const [56, 221, 222], const [63, 64, 65, 66, 67, 220], const [], -1, {}, {}, {}, -1, 27, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'MySuperclass', r'.MySuperclass', 134217735, 28, const prefix0.JsonSerializable(), const [57, 224, 225], const [63, 64, 65, 66, 67, 223, 224], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix4.MySuperclass() : null}, -1, 28, const [27], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'TypedParent', r'.TypedParent', 134218247, 29, const prefix0.JsonSerializable(), const [58, 228, 229], const [63, 64, 65, 66, 67, 226, 227, 228], const [], -1, {}, {}, {}, -1, 29, const [], const [const prefix0.JsonSerializable(), const prefix0.Json(discriminatorProperty: 'type')], null), r.NonGenericClassMirrorImpl(r'TypedChild', r'.TypedChild', 134217735, 30, const prefix0.JsonSerializable(), const [59, 232], const [63, 64, 65, 66, 67, 226, 227, 228, 230, 231], const [], 29, {}, {}, {r'': (bool b) => () => b ? prefix4.TypedChild() : null}, -1, 30, const [], const [const prefix0.JsonSerializable()], null), r.NonGenericClassMirrorImpl(r'TypedStringParent', r'.TypedStringParent', 134218247, 31, const prefix0.JsonSerializable(), const [60, 235, 236], const [63, 64, 65, 66, 67, 233, 234, 235], const [], -1, {}, {}, {}, -1, 31, const [], const [const prefix0.JsonSerializable(), const prefix0.Json(discriminatorProperty: 'type', discriminatorValue: 'p')], null), r.NonGenericClassMirrorImpl(r'TypedStringChild', r'.TypedStringChild', 134217735, 32, const prefix0.JsonSerializable(), const [61, 239, 240], const [63, 64, 65, 66, 67, 233, 234, 239, 237, 238], const [], 31, {}, {}, {r'': (bool b) => () => b ? prefix4.TypedStringChild() : null}, -1, 32, const [], const [const prefix0.JsonSerializable(), const prefix0.Json(discriminatorValue: 'ch')], null), r.NonGenericClassMirrorImpl(r'BusinessType', r'.BusinessType', 138412039, 33, const prefix0.JsonSerializable(), const [241], const [63, 64, 65, 66, 67, 179], const [], -1, {}, {}, {}, -1, 33, const [], const [prefix0.jsonSerializable], null), r.TypeVariableMirrorImpl(r'T', r'.BarBase.T', const prefix0.JsonSerializable(), -1, 1, []), r.TypeVariableMirrorImpl(r'T', r'.EntityModel.T', const prefix0.JsonSerializable(), -1, 3, []), r.TypeVariableMirrorImpl(r'T', r'.AbstractEntityModel.T', const prefix0.JsonSerializable(), -1, 4, []), r.TypeVariableMirrorImpl(r'T', r'.ApiResult.T', const prefix0.JsonSerializable(), -1, 6, [])], [r.VariableMirrorImpl(r'foo', 67108869, 1, const prefix0.JsonSerializable(), -1, -1, -1, const [], const []), r.VariableMirrorImpl(r'parentUuid', 67240965, 3, const prefix0.JsonSerializable(), -1, 34, 34, const [], const []), r.VariableMirrorImpl(r'uuid', 67240965, 3, const prefix0.JsonSerializable(), -1, 34, 34, const [], const []), r.VariableMirrorImpl(r'entity', 67109893, 3, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [const prefix0.JsonProperty(ignore: true)]), r.VariableMirrorImpl(r'parentUuid', 67240965, 4, const prefix0.JsonSerializable(), -1, 34, 34, const [], const []), r.VariableMirrorImpl(r'uuid', 67240965, 4, const prefix0.JsonSerializable(), -1, 34, 34, const [], const []), r.VariableMirrorImpl(r'model', 67240965, 5, const prefix0.JsonSerializable(), -1, 34, 34, const [], const []), r.VariableMirrorImpl(r'color', 67240965, 5, const prefix0.JsonSerializable(), 16, 16, 16, const [], const []), r.VariableMirrorImpl(r'success', 67239941, 6, const prefix0.JsonSerializable(), -1, 35, 35, const [], const []), r.VariableMirrorImpl(r'result', 67108869, 6, const prefix0.JsonSerializable(), -1, -1, -1, const [], const []), r.VariableMirrorImpl(r'id', 67239941, 7, const prefix0.JsonSerializable(), -1, 36, 36, const [], const []), r.VariableMirrorImpl(r'name', 67239941, 7, const prefix0.JsonSerializable(), -1, 34, 34, const [], const []), r.VariableMirrorImpl(r'id', 134349829, 9, const prefix0.JsonSerializable(), -1, 37, 37, const [], const []), r.VariableMirrorImpl(r'name', 134349829, 9, const prefix0.JsonSerializable(), -1, 38, 38, const [], const []), r.VariableMirrorImpl(r'car', 134349829, 9, const prefix0.JsonSerializable(), 12, 12, 12, const [], const []), r.VariableMirrorImpl(r'thickness', 134349829, 10, const prefix0.JsonSerializable(), -1, 39, 39, const [], const []), r.VariableMirrorImpl(r'color', 134349829, 10, const prefix0.JsonSerializable(), 16, 16, 16, const [], const []), r.VariableMirrorImpl(r'tire', 134349829, 11, const prefix0.JsonSerializable(), 10, 10, 10, const [], const []), r.VariableMirrorImpl(r'model', 67239941, 12, const prefix0.JsonSerializable(), -1, 34, 34, const [], const [const prefix0.JsonProperty(name: 'modelName')]), r.VariableMirrorImpl(r'color', 67239941, 12, const prefix0.JsonSerializable(), 16, 16, 16, const [], const []), r.VariableMirrorImpl(r'replacement', 67239941, 12, const prefix0.JsonSerializable(), 12, 12, 12, const [], const [const prefix0.JsonProperty(ignoreIfNull: true)]), r.VariableMirrorImpl(r'leftWheel', 134349829, 13, const prefix0.JsonSerializable(), 11, 11, 11, const [], const []), r.VariableMirrorImpl(r'rightWheel', 134349829, 13, const prefix0.JsonSerializable(), 11, 11, 11, const [], const []), r.VariableMirrorImpl(r'skills', 151126021, 14, const prefix0.JsonSerializable(), -1, 40, 41, const [38], const []), r.VariableMirrorImpl(r'specialDates', 151126021, 14, const prefix0.JsonSerializable(), -1, 42, 43, const [44], const []), r.VariableMirrorImpl(r'lastPromotionDate', 134348805, 14, const prefix0.JsonSerializable(), -1, 44, 44, const [], const [const prefix0.JsonProperty(name: 'last_promotion_date', converterParams: const {'format': 'MM-dd-yyyy H:m:s'})]), r.VariableMirrorImpl(r'hireDate', 134348805, 14, const prefix0.JsonSerializable(), -1, 44, 44, const [], const [const prefix0.JsonProperty(name: 'hire_date', converterParams: const {'format': 'MM/dd/yyyy'})]), r.VariableMirrorImpl(r'married', 134348805, 14, const prefix0.JsonSerializable(), -1, 45, 45, const [], const [const prefix0.JsonProperty(ignore: true)]), r.VariableMirrorImpl(r'active', 134348805, 14, const prefix0.JsonSerializable(), -1, 45, 45, const [], const []), r.VariableMirrorImpl(r'name', 134348805, 14, const prefix0.JsonSerializable(), -1, 38, 38, const [], const []), r.VariableMirrorImpl(r'salary', 134348805, 14, const prefix0.JsonSerializable(), -1, 39, 39, const [], const [const prefix0.JsonProperty(converterParams: const {'format': '##.##'})]), r.VariableMirrorImpl(r'dob', 67239941, 14, const prefix0.JsonSerializable(), -1, 46, 46, const [], const []), r.VariableMirrorImpl(r'age', 134348805, 14, const prefix0.JsonSerializable(), -1, 39, 39, const [], const []), r.VariableMirrorImpl(r'lastName', 134348805, 14, const prefix0.JsonSerializable(), -1, 38, 38, const [], const []), r.VariableMirrorImpl(r'dyn', 67141637, 14, const prefix0.JsonSerializable(), -1, -1, -1, const [], const []), r.VariableMirrorImpl(r'dynNum', 67141637, 14, const prefix0.JsonSerializable(), -1, -1, -1, const [], const []), r.VariableMirrorImpl(r'dynBool', 67141637, 14, const prefix0.JsonSerializable(), -1, -1, -1, const [], const []), r.VariableMirrorImpl(r'properties', 151126021, 14, const prefix0.JsonSerializable(), -1, 47, 48, null, const []), r.VariableMirrorImpl(r'map', 151126021, 14, const prefix0.JsonSerializable(), -1, 49, 50, null, const []), r.VariableMirrorImpl(r'sym', 134348805, 14, const prefix0.JsonSerializable(), -1, 51, 51, const [], const []), r.VariableMirrorImpl(r'favouriteColours', 151126021, 14, const prefix0.JsonSerializable(), -1, 52, 53, const [16], const []), r.VariableMirrorImpl(r'eyeColor', 134348805, 14, const prefix0.JsonSerializable(), 16, 16, 16, const [], const [const prefix0.JsonProperty(name: 'eye_color')]), r.VariableMirrorImpl(r'hairColor', 134348805, 14, const prefix0.JsonSerializable(), 16, 16, 16, const [], const [const prefix0.JsonProperty(converter: prefix5.enumConverterNumeric)]), r.VariableMirrorImpl(r'vehicles', 151126021, 14, const prefix0.JsonSerializable(), -1, 54, 55, const [12], const []), r.VariableMirrorImpl(r'stars', 134348805, 18, const prefix0.JsonSerializable(), -1, 37, 37, const [], const []), r.VariableMirrorImpl(r'userCount', 134348805, 19, const prefix0.JsonSerializable(), -1, 37, 37, const [], const []), r.VariableMirrorImpl(r'fullName', 134348805, 20, const prefix0.JsonSerializable(), -1, 38, 38, const [], const []), r.VariableMirrorImpl(r'businesses', 151126021, 20, const prefix0.JsonSerializable(), -1, 56, 57, const [17], const []), r.VariableMirrorImpl(r'type', 67239941, 21, const prefix0.JsonSerializable(), 33, 33, 33, const [], const []), r.VariableMirrorImpl(r'stars', 134348805, 22, const prefix0.JsonSerializable(), -1, 37, 37, const [], const []), r.VariableMirrorImpl(r'userCount', 134348805, 23, const prefix0.JsonSerializable(), -1, 37, 37, const [], const []), r.VariableMirrorImpl(r'fullName', 134348805, 24, const prefix0.JsonSerializable(), -1, 38, 38, const [], const []), r.VariableMirrorImpl(r'businesses', 151126021, 24, const prefix0.JsonSerializable(), -1, 58, 59, const [21], const []), r.VariableMirrorImpl(r'email', 67240965, 25, const prefix0.JsonSerializable(), -1, 34, 34, const [], const []), r.VariableMirrorImpl(r'id', 67239941, -1, const prefix0.JsonSerializable(), -1, 34, 34, const [], const []), r.VariableMirrorImpl(r'email', 67240965, 26, const prefix0.JsonSerializable(), -1, 34, 34, const [], const [override]), r.VariableMirrorImpl(r'myField', 134349829, 27, const prefix0.JsonSerializable(), -1, 38, 38, const [], const [const prefix0.JsonProperty(name: 'myCustomFieldName')]), r.VariableMirrorImpl(r'myField', 134349829, 28, const prefix0.JsonSerializable(), -1, 38, 38, const [], const [override]), r.VariableMirrorImpl(r'a', 134348805, 29, const prefix0.JsonSerializable(), -1, 37, 37, const [], const []), r.VariableMirrorImpl(r'b', 134348805, 30, const prefix0.JsonSerializable(), -1, 38, 38, const [], const []), r.VariableMirrorImpl(r'a', 134348805, 31, const prefix0.JsonSerializable(), -1, 37, 37, const [], const []), r.VariableMirrorImpl(r'b', 134348805, 32, const prefix0.JsonSerializable(), -1, 38, 38, const [], const []), r.MethodMirrorImpl(r'', 64, 0, -1, 0, 0, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'==', 2097154, -1, -1, 45, 45, const [], const [0], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toString', 2097154, -1, -1, 38, 38, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'noSuchMethod', 524290, -1, -1, -1, -1, const [], const [1], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'hashCode', 2097155, -1, -1, 37, 37, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'runtimeType', 2097155, -1, -1, 60, 60, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'fromJson', 35651586, 1, 1, 61, 1, null, const [2], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toJson', 524290, 1, -1, -1, -1, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 0, 70), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 0, 71), r.MethodMirrorImpl(r'', 0, 1, -1, 62, 1, null, const [3], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 0, 2, -1, 2, 2, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'of', 1, 2, -1, 2, 2, const [], const [5], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'entityToJson', 35651586, 3, -1, 63, 64, null, const [], const prefix0.JsonSerializable(), const [prefix0.jsonProperty]), r.MethodMirrorImpl(r'setEntityPropertyFromJson', 1310722, 3, -1, -1, -1, const [], const [6, 7], const prefix0.JsonSerializable(), const [prefix0.jsonProperty]), r.MethodMirrorImpl(r'newEntityFromModelJson', 2, 3, -1, -1, -1, const [], const [8], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'newEntityFromJson', 2, 3, -1, -1, -1, const [], const [9], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'fromJson', 35651586, 3, 3, 65, 3, null, const [10], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toJson', 35651586, 3, -1, 63, 64, null, const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 1, 81), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 2, 82), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 3, 83), r.MethodMirrorImpl(r'', 128, 3, -1, 66, 3, null, const [11, 12, 13], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'of', 1, 3, -1, 66, 3, null, const [14], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'copyWith', 514, 4, -1, -1, -1, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'merge', 514, 4, -1, -1, -1, const [], const [15], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'fromJson', 2, 4, -1, -1, -1, const [], const [16], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toJson', 35651586, 4, -1, 63, 64, null, const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 4, 90), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 5, 91), r.MethodMirrorImpl(r'', 128, 4, -1, 67, 4, null, const [17, 18], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'copyWith', 2097154, 5, 12, 12, 12, const [], const [], const prefix0.JsonSerializable(), const [override]), r.MethodMirrorImpl(r'merge', 2097154, 5, 12, 12, 12, const [], const [19], const prefix0.JsonSerializable(), const [override]), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 6, 95), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 7, 96), r.MethodMirrorImpl(r'', 128, 5, -1, 5, 5, const [], const [20, 21, 22, 23], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'fromJson', 35651586, 6, 6, 68, 6, null, const [24], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toJson', 524290, 6, -1, -1, -1, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 8, 100), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 8, 101), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 9, 102), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 9, 103), r.MethodMirrorImpl(r'', 0, 6, -1, 69, 6, null, const [25, 26], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 10, 105), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 10, 106), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 11, 107), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 11, 108), r.MethodMirrorImpl(r'', 0, 7, -1, 7, 7, const [], const [29, 30], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 0, 8, -1, 8, 8, const [], const [33, 34], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'of', 1, 8, -1, 8, 8, const [], const [35], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 12, 112), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 13, 113), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 14, 114), r.MethodMirrorImpl(r'', 128, 9, -1, 9, 9, const [], const [36, 37, 38], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 15, 116), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 16, 117), r.MethodMirrorImpl(r'', 128, 10, -1, 10, 10, const [], const [39, 40], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 17, 119), r.MethodMirrorImpl(r'', 128, 11, -1, 11, 11, const [], const [41], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 18, 121), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 18, 122), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 19, 123), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 19, 124), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 20, 125), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 20, 126), r.MethodMirrorImpl(r'', 0, 12, -1, 12, 12, const [], const [42, 43], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 21, 128), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 22, 129), r.MethodMirrorImpl(r'', 128, 13, -1, 13, 13, const [], const [47, 48], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 23, 131), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 23, 132), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 24, 133), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 24, 134), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 25, 135), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 25, 136), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 26, 137), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 26, 138), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 27, 139), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 27, 140), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 28, 141), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 28, 142), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 29, 143), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 29, 144), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 30, 145), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 30, 146), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 31, 147), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 31, 148), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 32, 149), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 32, 150), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 33, 151), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 33, 152), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 34, 153), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 34, 154), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 35, 155), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 35, 156), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 36, 157), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 36, 158), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 37, 159), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 37, 160), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 38, 161), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 38, 162), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 39, 163), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 39, 164), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 40, 165), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 40, 166), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 41, 167), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 41, 168), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 42, 169), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 42, 170), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 43, 171), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 43, 172), r.MethodMirrorImpl(r'fullName', 2097155, 14, -1, 38, 38, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 0, 14, -1, 14, 14, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'nextCatId', 2097155, 15, -1, 38, 38, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'nextDogId', 2097155, 15, -1, 38, 38, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 15, -1, 15, 15, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 192, 16, -1, 16, 16, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'index', 2097155, -1, -1, 37, 37, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'type', 2097667, 17, 33, 33, 33, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 17, -1, 17, 17, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 44, 182), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 44, 183), r.MethodMirrorImpl(r'type', 2097155, 18, 33, 33, 33, const [], const [], const prefix0.JsonSerializable(), const [override]), r.MethodMirrorImpl(r'', 0, 18, -1, 18, 18, const [], const [70], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 45, 186), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 45, 187), r.MethodMirrorImpl(r'type', 2097155, 19, 33, 33, 33, const [], const [], const prefix0.JsonSerializable(), const [override]), r.MethodMirrorImpl(r'', 0, 19, -1, 19, 19, const [], const [72], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 46, 190), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 46, 191), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 47, 192), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 47, 193), r.MethodMirrorImpl(r'', 0, 20, -1, 20, 20, const [], const [74, 75], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 48, 195), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 48, 196), r.MethodMirrorImpl(r'', 64, 21, -1, 21, 21, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 49, 198), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 49, 199), r.MethodMirrorImpl(r'', 0, 22, -1, 22, 22, const [], const [79], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 50, 201), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 50, 202), r.MethodMirrorImpl(r'', 0, 23, -1, 23, 23, const [], const [81], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 51, 204), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 51, 205), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 52, 206), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 52, 207), r.MethodMirrorImpl(r'', 0, 24, -1, 24, 24, const [], const [83, 84], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'copyWith', 2097666, 25, 25, 25, 25, const [], const [87, 88], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 53, 210), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 53, 211), r.MethodMirrorImpl(r'', 257, 25, -1, 25, 25, const [], const [89], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 54, 213), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 54, 214), r.MethodMirrorImpl(r'copyWith', 2097154, 26, 25, 25, 25, const [], const [92, 93], const prefix0.JsonSerializable(), const [override]), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 55, 216), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 55, 217), r.MethodMirrorImpl(r'', 0, 26, -1, 26, 26, const [], const [94, 95], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'newUser', 1, 26, -1, 26, 26, const [], const [96], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 56, 220), r.MethodMirrorImpl(r'myGetter', 2097667, 27, -1, 38, 38, const [], const [], const prefix0.JsonSerializable(), const [const prefix0.JsonProperty(name: 'myCustomGetterName')]), r.MethodMirrorImpl(r'', 64, 27, -1, 27, 27, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 57, 223), r.MethodMirrorImpl(r'myGetter', 2097155, 28, -1, 38, 38, const [], const [], const prefix0.JsonSerializable(), const [override]), r.MethodMirrorImpl(r'', 64, 28, -1, 28, 28, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 58, 226), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 58, 227), r.MethodMirrorImpl(r'type', 2097155, 29, -1, 60, 60, const [], const [], const prefix0.JsonSerializable(), const [const prefix0.JsonProperty(ignore: true)]), r.MethodMirrorImpl(r'', 64, 29, -1, 29, 29, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 59, 230), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 59, 231), r.MethodMirrorImpl(r'', 64, 30, -1, 30, 30, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 60, 233), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 60, 234), r.MethodMirrorImpl(r'type', 2097155, 31, -1, 38, 38, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 31, -1, 31, 31, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 61, 237), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 61, 238), r.MethodMirrorImpl(r'type', 2097155, 32, -1, 38, 38, const [], const [], const prefix0.JsonSerializable(), const [override]), r.MethodMirrorImpl(r'', 64, 32, -1, 32, 32, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 192, 33, -1, 33, 33, const [], const [], const prefix0.JsonSerializable(), const [])], [r.ParameterMirrorImpl(r'other', 134348806, 63, const prefix0.JsonSerializable(), -1, 70, 70, const [], const [], null, null), r.ParameterMirrorImpl(r'invocation', 134348806, 65, const prefix0.JsonSerializable(), -1, 71, 71, const [], const [], null, null), r.ParameterMirrorImpl(r'json', 67141638, 68, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'foo', 67122182, 72, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, #foo), r.ParameterMirrorImpl(r'_foo', 67108966, 71, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'other', 151126022, 74, const prefix0.JsonSerializable(), 1, 72, 1, null, const [], null, null), r.ParameterMirrorImpl(r'name', 134348806, 76, const prefix0.JsonSerializable(), -1, 38, 38, const [], const [], null, null), r.ParameterMirrorImpl(r'value', 67141638, 76, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'entityModelJson', 84017158, 77, const prefix0.JsonSerializable(), -1, 63, 64, null, const [], null, null), r.ParameterMirrorImpl(r'entityJson', 151126022, 78, const prefix0.JsonSerializable(), -1, 49, 50, null, const [], null, null), r.ParameterMirrorImpl(r'modelJson', 84017158, 79, const prefix0.JsonSerializable(), -1, 63, 64, null, const [], null, null), r.ParameterMirrorImpl(r'parentUuid', 67253254, 84, const prefix0.JsonSerializable(), -1, 34, 34, const [], const [], null, #parentUuid), r.ParameterMirrorImpl(r'uuid', 67253254, 84, const prefix0.JsonSerializable(), -1, 34, 34, const [], const [], null, #uuid), r.ParameterMirrorImpl(r'entity', 67122182, 84, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, #entity), r.ParameterMirrorImpl(r'other', 151126022, 85, const prefix0.JsonSerializable(), 3, 73, 3, null, const [], null, null), r.ParameterMirrorImpl(r'other', 6, 87, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'jsonData', 151126022, 88, const prefix0.JsonSerializable(), -1, 49, 50, null, const [], null, null), r.ParameterMirrorImpl(r'parentUuid', 67253254, 92, const prefix0.JsonSerializable(), -1, 34, 34, const [], const [], null, #parentUuid), r.ParameterMirrorImpl(r'uuid', 67253254, 92, const prefix0.JsonSerializable(), -1, 34, 34, const [], const [], null, #uuid), r.ParameterMirrorImpl(r'other', 134348806, 94, const prefix0.JsonSerializable(), 12, 12, 12, const [], const [], null, null), r.ParameterMirrorImpl(r'parentUuid', 67252230, 97, const prefix0.JsonSerializable(), -1, 34, 34, const [], const [], null, #parentUuid), r.ParameterMirrorImpl(r'uuid', 67252230, 97, const prefix0.JsonSerializable(), -1, 34, 34, const [], const [], null, #uuid), r.ParameterMirrorImpl(r'model', 67253254, 97, const prefix0.JsonSerializable(), -1, 34, 34, const [], const [], null, #model), r.ParameterMirrorImpl(r'color', 67253254, 97, const prefix0.JsonSerializable(), 16, 16, 16, const [], const [], null, #color), r.ParameterMirrorImpl(r'json', 67141638, 98, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'success', 67253254, 104, const prefix0.JsonSerializable(), -1, 35, 35, const [], const [], null, #success), r.ParameterMirrorImpl(r'result', 67122182, 104, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, #result), r.ParameterMirrorImpl(r'_success', 67240038, 101, const prefix0.JsonSerializable(), -1, 35, 35, const [], const [], null, null), r.ParameterMirrorImpl(r'_result', 67108966, 103, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'id', 67253254, 109, const prefix0.JsonSerializable(), -1, 36, 36, const [], const [], null, #id), r.ParameterMirrorImpl(r'name', 67253254, 109, const prefix0.JsonSerializable(), -1, 34, 34, const [], const [], null, #name), r.ParameterMirrorImpl(r'_id', 67240038, 106, const prefix0.JsonSerializable(), -1, 36, 36, const [], const [], null, null), r.ParameterMirrorImpl(r'_name', 67240038, 108, const prefix0.JsonSerializable(), -1, 34, 34, const [], const [], null, null), r.ParameterMirrorImpl(r'success', 67252230, 110, const prefix0.JsonSerializable(), -1, 35, 35, const [], const [], null, #success), r.ParameterMirrorImpl(r'result', 67252230, 110, const prefix0.JsonSerializable(), 7, 7, 7, const [], const [], null, #result), r.ParameterMirrorImpl(r'other', 151126022, 111, const prefix0.JsonSerializable(), 6, 74, 6, null, const [], null, null), r.ParameterMirrorImpl(r'id', 134349830, 115, const prefix0.JsonSerializable(), -1, 37, 37, const [], const [], null, null), r.ParameterMirrorImpl(r'name', 134349830, 115, const prefix0.JsonSerializable(), -1, 38, 38, const [], const [], null, null), r.ParameterMirrorImpl(r'car', 134349830, 115, const prefix0.JsonSerializable(), 12, 12, 12, const [], const [], null, null), r.ParameterMirrorImpl(r'thickness', 134349830, 118, const prefix0.JsonSerializable(), -1, 39, 39, const [], const [], null, null), r.ParameterMirrorImpl(r'color', 134349830, 118, const prefix0.JsonSerializable(), 16, 16, 16, const [], const [], null, null), r.ParameterMirrorImpl(r'tire', 134349830, 120, const prefix0.JsonSerializable(), 10, 10, 10, const [], const [], null, null), r.ParameterMirrorImpl(r'model', 67240966, 127, const prefix0.JsonSerializable(), -1, 34, 34, const [], const [], null, null), r.ParameterMirrorImpl(r'color', 67240966, 127, const prefix0.JsonSerializable(), 16, 16, 16, const [], const [], null, null), r.ParameterMirrorImpl(r'_model', 67240038, 122, const prefix0.JsonSerializable(), -1, 34, 34, const [], const [], null, null), r.ParameterMirrorImpl(r'_color', 67240038, 124, const prefix0.JsonSerializable(), 16, 16, 16, const [], const [], null, null), r.ParameterMirrorImpl(r'_replacement', 67240038, 126, const prefix0.JsonSerializable(), 12, 12, 12, const [], const [], null, null), r.ParameterMirrorImpl(r'leftWheel', 134349830, 130, const prefix0.JsonSerializable(), 11, 11, 11, const [], const [], null, null), r.ParameterMirrorImpl(r'rightWheel', 134349830, 130, const prefix0.JsonSerializable(), 11, 11, 11, const [], const [], null, null), r.ParameterMirrorImpl(r'_skills', 151126118, 132, const prefix0.JsonSerializable(), -1, 40, 41, const [38], const [], null, null), r.ParameterMirrorImpl(r'_specialDates', 151126118, 134, const prefix0.JsonSerializable(), -1, 42, 43, const [44], const [], null, null), r.ParameterMirrorImpl(r'_lastPromotionDate', 134348902, 136, const prefix0.JsonSerializable(), -1, 44, 44, const [], const [], null, null), r.ParameterMirrorImpl(r'_hireDate', 134348902, 138, const prefix0.JsonSerializable(), -1, 44, 44, const [], const [], null, null), r.ParameterMirrorImpl(r'_married', 134348902, 140, const prefix0.JsonSerializable(), -1, 45, 45, const [], const [], null, null), r.ParameterMirrorImpl(r'_active', 134348902, 142, const prefix0.JsonSerializable(), -1, 45, 45, const [], const [], null, null), r.ParameterMirrorImpl(r'_name', 134348902, 144, const prefix0.JsonSerializable(), -1, 38, 38, const [], const [], null, null), r.ParameterMirrorImpl(r'_salary', 134348902, 146, const prefix0.JsonSerializable(), -1, 39, 39, const [], const [], null, null), r.ParameterMirrorImpl(r'_dob', 67240038, 148, const prefix0.JsonSerializable(), -1, 46, 46, const [], const [], null, null), r.ParameterMirrorImpl(r'_age', 134348902, 150, const prefix0.JsonSerializable(), -1, 39, 39, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 134348902, 152, const prefix0.JsonSerializable(), -1, 38, 38, const [], const [], null, null), r.ParameterMirrorImpl(r'_dyn', 67141734, 154, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'_dynNum', 67141734, 156, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'_dynBool', 67141734, 158, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'_properties', 151126118, 160, const prefix0.JsonSerializable(), -1, 47, 48, null, const [], null, null), r.ParameterMirrorImpl(r'_map', 151126118, 162, const prefix0.JsonSerializable(), -1, 49, 50, null, const [], null, null), r.ParameterMirrorImpl(r'_sym', 134348902, 164, const prefix0.JsonSerializable(), -1, 51, 51, const [], const [], null, null), r.ParameterMirrorImpl(r'_favouriteColours', 151126118, 166, const prefix0.JsonSerializable(), -1, 52, 53, const [16], const [], null, null), r.ParameterMirrorImpl(r'_eyeColor', 134348902, 168, const prefix0.JsonSerializable(), 16, 16, 16, const [], const [], null, null), r.ParameterMirrorImpl(r'_hairColor', 134348902, 170, const prefix0.JsonSerializable(), 16, 16, 16, const [], const [], null, null), r.ParameterMirrorImpl(r'_vehicles', 151126118, 172, const prefix0.JsonSerializable(), -1, 54, 55, const [12], const [], null, null), r.ParameterMirrorImpl(r'stars', 134349830, 185, const prefix0.JsonSerializable(), -1, 37, 37, const [], const [], null, null), r.ParameterMirrorImpl(r'_stars', 134348902, 183, const prefix0.JsonSerializable(), -1, 37, 37, const [], const [], null, null), r.ParameterMirrorImpl(r'userCount', 134349830, 189, const prefix0.JsonSerializable(), -1, 37, 37, const [], const [], null, null), r.ParameterMirrorImpl(r'_userCount', 134348902, 187, const prefix0.JsonSerializable(), -1, 37, 37, const [], const [], null, null), r.ParameterMirrorImpl(r'fullName', 134349830, 194, const prefix0.JsonSerializable(), -1, 38, 38, const [], const [], null, null), r.ParameterMirrorImpl(r'businesses', 151127046, 194, const prefix0.JsonSerializable(), -1, 56, 57, const [17], const [], null, null), r.ParameterMirrorImpl(r'_fullName', 134348902, 191, const prefix0.JsonSerializable(), -1, 38, 38, const [], const [], null, null), r.ParameterMirrorImpl(r'_businesses', 151126118, 193, const prefix0.JsonSerializable(), -1, 56, 57, const [17], const [], null, null), r.ParameterMirrorImpl(r'_type', 67240038, 196, const prefix0.JsonSerializable(), 33, 33, 33, const [], const [], null, null), r.ParameterMirrorImpl(r'stars', 134349830, 200, const prefix0.JsonSerializable(), -1, 37, 37, const [], const [], null, null), r.ParameterMirrorImpl(r'_stars', 134348902, 199, const prefix0.JsonSerializable(), -1, 37, 37, const [], const [], null, null), r.ParameterMirrorImpl(r'userCount', 134349830, 203, const prefix0.JsonSerializable(), -1, 37, 37, const [], const [], null, null), r.ParameterMirrorImpl(r'_userCount', 134348902, 202, const prefix0.JsonSerializable(), -1, 37, 37, const [], const [], null, null), r.ParameterMirrorImpl(r'fullName', 134349830, 208, const prefix0.JsonSerializable(), -1, 38, 38, const [], const [], null, null), r.ParameterMirrorImpl(r'businesses', 151127046, 208, const prefix0.JsonSerializable(), -1, 58, 59, const [21], const [], null, null), r.ParameterMirrorImpl(r'_fullName', 134348902, 205, const prefix0.JsonSerializable(), -1, 38, 38, const [], const [], null, null), r.ParameterMirrorImpl(r'_businesses', 151126118, 207, const prefix0.JsonSerializable(), -1, 58, 59, const [21], const [], null, null), r.ParameterMirrorImpl(r'id', 67252230, 209, const prefix0.JsonSerializable(), -1, 34, 34, const [], const [], null, #id), r.ParameterMirrorImpl(r'email', 67252230, 209, const prefix0.JsonSerializable(), -1, 34, 34, const [], const [], null, #email), r.ParameterMirrorImpl(r'id', 134348806, 212, const prefix0.JsonSerializable(), -1, 38, 38, const [], const [], null, null), r.ParameterMirrorImpl(r'_email', 67240038, 211, const prefix0.JsonSerializable(), -1, 34, 34, const [], const [], null, null), r.ParameterMirrorImpl(r'_id', 67240038, 214, const prefix0.JsonSerializable(), -1, 34, 34, const [], const [], null, null), r.ParameterMirrorImpl(r'email', 67252230, 215, const prefix0.JsonSerializable(), -1, 34, 34, const [], const [], null, #email), r.ParameterMirrorImpl(r'id', 67252230, 215, const prefix0.JsonSerializable(), -1, 34, 34, const [], const [], null, #id), r.ParameterMirrorImpl(r'id', 67252230, 218, const prefix0.JsonSerializable(), -1, 34, 34, const [], const [], null, #id), r.ParameterMirrorImpl(r'email', 67253254, 218, const prefix0.JsonSerializable(), -1, 34, 34, const [], const [], null, #email), r.ParameterMirrorImpl(r'id', 134348806, 219, const prefix0.JsonSerializable(), -1, 38, 38, const [], const [], null, null), r.ParameterMirrorImpl(r'_email', 67240038, 217, const prefix0.JsonSerializable(), -1, 34, 34, const [], const [], null, null), r.ParameterMirrorImpl(r'_a', 134348902, 227, const prefix0.JsonSerializable(), -1, 37, 37, const [], const [], null, null), r.ParameterMirrorImpl(r'_b', 134348902, 231, const prefix0.JsonSerializable(), -1, 38, 38, const [], const [], null, null), r.ParameterMirrorImpl(r'_a', 134348902, 234, const prefix0.JsonSerializable(), -1, 37, 37, const [], const [], null, null), r.ParameterMirrorImpl(r'_b', 134348902, 238, const prefix0.JsonSerializable(), -1, 38, 38, const [], const [], null, null)], [prefix1.Foo, prefix1.BarBase, prefix1.Bar, prefix1.EntityModel, prefix1.AbstractEntityModel, prefix1.MyCarModel, prefix1.ApiResult, prefix1.UserModel, prefix1.ApiResultUserModel, prefix2.Immutable, prefix3.Tire, prefix3.Wheel, prefix3.Car, prefix3.ComposableCar, prefix3.Person, prefix3.GettersOnly, prefix3.Color, prefix4.Business, prefix4.Hotel, prefix4.Startup, prefix4.Stakeholder, prefix4.Business2, prefix4.Hotel2, prefix4.Startup2, prefix4.Stakeholder2, prefix4.AbstractUser, prefix4.UserImpl, prefix4.MyBaseClass, prefix4.MySuperclass, prefix4.TypedParent, prefix4.TypedChild, prefix4.TypedStringParent, prefix4.TypedStringChild, prefix4.BusinessType, String, bool, int, int, String, num, const m.TypeValue>().type, List, const m.TypeValue>().type, List, DateTime, bool, num, const m.TypeValue>().type, Map, const m.TypeValue>().type, Map, Symbol, const m.TypeValue>().type, List, const m.TypeValue>().type, List, const m.TypeValue>().type, List, const m.TypeValue>().type, List, Type, const r.FakeType(r'.BarBase'), const r.FakeType(r'.BarBase'), const m.TypeValue>().type, Map, const r.FakeType(r'.EntityModel'), const r.FakeType(r'.EntityModel'), const r.FakeType(r'.AbstractEntityModel'), const r.FakeType(r'.ApiResult'), const r.FakeType(r'.ApiResult'), Object, Invocation, const m.TypeValue>().type, const m.TypeValue>().type, const m.TypeValue>().type], 34, {r'==': (dynamic instance) => (x) => instance == x, r'toString': (dynamic instance) => instance.toString, r'noSuchMethod': (dynamic instance) => instance.noSuchMethod, r'hashCode': (dynamic instance) => instance.hashCode, r'runtimeType': (dynamic instance) => instance.runtimeType, r'fromJson': (dynamic instance) => instance.fromJson, r'toJson': (dynamic instance) => instance.toJson, r'foo': (dynamic instance) => instance.foo, r'entityToJson': (dynamic instance) => instance.entityToJson, r'setEntityPropertyFromJson': (dynamic instance) => instance.setEntityPropertyFromJson, r'newEntityFromModelJson': (dynamic instance) => instance.newEntityFromModelJson, r'newEntityFromJson': (dynamic instance) => instance.newEntityFromJson, r'parentUuid': (dynamic instance) => instance.parentUuid, r'uuid': (dynamic instance) => instance.uuid, r'entity': (dynamic instance) => instance.entity, r'copyWith': (dynamic instance) => instance.copyWith, r'merge': (dynamic instance) => instance.merge, r'model': (dynamic instance) => instance.model, r'color': (dynamic instance) => instance.color, r'success': (dynamic instance) => instance.success, r'result': (dynamic instance) => instance.result, r'id': (dynamic instance) => instance.id, r'name': (dynamic instance) => instance.name, r'car': (dynamic instance) => instance.car, r'thickness': (dynamic instance) => instance.thickness, r'tire': (dynamic instance) => instance.tire, r'replacement': (dynamic instance) => instance.replacement, r'leftWheel': (dynamic instance) => instance.leftWheel, r'rightWheel': (dynamic instance) => instance.rightWheel, r'skills': (dynamic instance) => instance.skills, r'specialDates': (dynamic instance) => instance.specialDates, r'lastPromotionDate': (dynamic instance) => instance.lastPromotionDate, r'hireDate': (dynamic instance) => instance.hireDate, r'married': (dynamic instance) => instance.married, r'active': (dynamic instance) => instance.active, r'salary': (dynamic instance) => instance.salary, r'dob': (dynamic instance) => instance.dob, r'age': (dynamic instance) => instance.age, r'lastName': (dynamic instance) => instance.lastName, r'dyn': (dynamic instance) => instance.dyn, r'dynNum': (dynamic instance) => instance.dynNum, r'dynBool': (dynamic instance) => instance.dynBool, r'properties': (dynamic instance) => instance.properties, r'map': (dynamic instance) => instance.map, r'sym': (dynamic instance) => instance.sym, r'favouriteColours': (dynamic instance) => instance.favouriteColours, r'eyeColor': (dynamic instance) => instance.eyeColor, r'hairColor': (dynamic instance) => instance.hairColor, r'vehicles': (dynamic instance) => instance.vehicles, r'fullName': (dynamic instance) => instance.fullName, r'nextCatId': (dynamic instance) => instance.nextCatId, r'nextDogId': (dynamic instance) => instance.nextDogId, r'index': (dynamic instance) => instance.index, r'stars': (dynamic instance) => instance.stars, r'type': (dynamic instance) => instance.type, r'userCount': (dynamic instance) => instance.userCount, r'businesses': (dynamic instance) => instance.businesses, r'email': (dynamic instance) => instance.email, r'myField': (dynamic instance) => instance.myField, r'myGetter': (dynamic instance) => instance.myGetter, r'a': (dynamic instance) => instance.a, r'b': (dynamic instance) => instance.b}, {r'foo=': (dynamic instance, value) => instance.foo = value, r'success=': (dynamic instance, value) => instance.success = value, r'result=': (dynamic instance, value) => instance.result = value, r'id=': (dynamic instance, value) => instance.id = value, r'name=': (dynamic instance, value) => instance.name = value, r'model=': (dynamic instance, value) => instance.model = value, r'color=': (dynamic instance, value) => instance.color = value, r'replacement=': (dynamic instance, value) => instance.replacement = value, r'skills=': (dynamic instance, value) => instance.skills = value, r'specialDates=': (dynamic instance, value) => instance.specialDates = value, r'lastPromotionDate=': (dynamic instance, value) => instance.lastPromotionDate = value, r'hireDate=': (dynamic instance, value) => instance.hireDate = value, r'married=': (dynamic instance, value) => instance.married = value, r'active=': (dynamic instance, value) => instance.active = value, r'salary=': (dynamic instance, value) => instance.salary = value, r'dob=': (dynamic instance, value) => instance.dob = value, r'age=': (dynamic instance, value) => instance.age = value, r'lastName=': (dynamic instance, value) => instance.lastName = value, r'dyn=': (dynamic instance, value) => instance.dyn = value, r'dynNum=': (dynamic instance, value) => instance.dynNum = value, r'dynBool=': (dynamic instance, value) => instance.dynBool = value, r'properties=': (dynamic instance, value) => instance.properties = value, r'map=': (dynamic instance, value) => instance.map = value, r'sym=': (dynamic instance, value) => instance.sym = value, r'favouriteColours=': (dynamic instance, value) => instance.favouriteColours = value, r'eyeColor=': (dynamic instance, value) => instance.eyeColor = value, r'hairColor=': (dynamic instance, value) => instance.hairColor = value, r'vehicles=': (dynamic instance, value) => instance.vehicles = value, r'stars=': (dynamic instance, value) => instance.stars = value, r'userCount=': (dynamic instance, value) => instance.userCount = value, r'fullName=': (dynamic instance, value) => instance.fullName = value, r'businesses=': (dynamic instance, value) => instance.businesses = value, r'type=': (dynamic instance, value) => instance.type = value, r'email=': (dynamic instance, value) => instance.email = value, r'a=': (dynamic instance, value) => instance.a = value, r'b=': (dynamic instance, value) => instance.b = value}, null, [])}; final _memberSymbolMap = null; @@ -42,7 +44,7 @@ void _initializeReflectable(JsonMapperAdapter adapter) { } final unitTestingGeneratedAdapter = JsonMapperAdapter( - title: 'Unit Testing Generated Adapter', + title: 'unit_testing', url: 'package:unit_testing/unit_testing.dart', reflectableData: _data, memberSymbolMap: _memberSymbolMap, @@ -65,24 +67,67 @@ final unitTestingGeneratedAdapter = JsonMapperAdapter( typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast() + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast() }, enumValues: { - x1.Color: x1.Color.values + x1.Color: x1.Color.values, + x3.BusinessType: x3.BusinessType.values }); -Future initializeJsonMapperAsync({Iterable adapters = const []}) => Future(() => initializeJsonMapper(adapters: adapters)); +Future initializeJsonMapperAsync({Iterable adapters = const [], SerializationOptions? serializationOptions, DeserializationOptions? deserializationOptions}) => Future(() => initializeJsonMapper(adapters: adapters, serializationOptions: serializationOptions, deserializationOptions: deserializationOptions)); -JsonMapper initializeJsonMapper({Iterable adapters = const []}) { +JsonMapper initializeJsonMapper({Iterable adapters = const [], SerializationOptions? serializationOptions, DeserializationOptions? deserializationOptions}) { + JsonMapper.globalSerializationOptions = serializationOptions ?? JsonMapper.globalSerializationOptions; + JsonMapper.globalDeserializationOptions = deserializationOptions ?? JsonMapper.globalDeserializationOptions; JsonMapper.enumerateAdapters([...adapters, unitTestingGeneratedAdapter], (JsonMapperAdapter adapter) { _initializeReflectable(adapter); JsonMapper().useAdapter(adapter); diff --git a/models/unit_testing/pubspec.yaml b/models/unit_testing/pubspec.yaml index 74f130dc..36e36b09 100644 --- a/models/unit_testing/pubspec.yaml +++ b/models/unit_testing/pubspec.yaml @@ -4,11 +4,12 @@ publish_to: none description: > This package contains classes to define data structures for Dart Json Mapper Unit Tests. environment: - sdk: '>=2.12.0 <3.0.0' + sdk: '>=3.0.0 <4.0.0' dependencies: dart_json_mapper: dev_dependencies: build_runner: + test: any dependency_overrides: dart_json_mapper: path: ../../mapper \ No newline at end of file diff --git a/perf-test/analysis_options.yaml b/perf-test/analysis_options.yaml index ea2c9e94..3f9ea865 100644 --- a/perf-test/analysis_options.yaml +++ b/perf-test/analysis_options.yaml @@ -1 +1,7 @@ -include: package:lints/recommended.yaml \ No newline at end of file +include: package:lints/recommended.yaml + +linter: + rules: + unnecessary_parenthesis: true + prefer_const_constructors: true + prefer_final_locals: true \ No newline at end of file diff --git a/perf-test/build.yaml b/perf-test/build.yaml index e71cbdfc..685540ef 100644 --- a/perf-test/build.yaml +++ b/perf-test/build.yaml @@ -1,11 +1,14 @@ targets: $default: builders: + build_web_compilers:entrypoint: + generate_for: + - test/unit/*.dart dart_json_mapper: options: iterables: List, Set generate_for: - test/unit/_test.dart - reflectable: + reflectable_builder: generate_for: - no/files \ No newline at end of file diff --git a/perf-test/pubspec.yaml b/perf-test/pubspec.yaml index 02cc633f..1bd152a6 100644 --- a/perf-test/pubspec.yaml +++ b/perf-test/pubspec.yaml @@ -7,17 +7,22 @@ description: > - BuiltValue https://pub.dev/packages/built_value - DartJsonMapper https://pub.dev/packages/dart_json_mapper And unit tests for DartJsonMapper +homepage: https://github.com/k-paxian/dart-json-mapper/perf-test environment: - sdk: '>=2.13.0 <3.0.0' + sdk: '>=3.0.0 <4.0.0' dependencies: dart_json_mapper: - json_annotation: 4.3.0 - built_value: 8.1.2 - intl: ^0.17.0 + json_annotation: ^4.7.0 + built_value: + intl: + unit_testing: + starlink: dev_dependencies: - json_serializable: 6.0.1 - built_value_generator: 8.1.2 + reflectable_builder: + json_serializable: + built_value_generator: lints: + path: build_runner: build_test: test: diff --git a/perf-test/test/starlink/built_value/built_value_test.dart b/perf-test/test/starlink/built_value/built_value_test.dart index e5ca164e..3527eaee 100644 --- a/perf-test/test/starlink/built_value/built_value_test.dart +++ b/perf-test/test/starlink/built_value/built_value_test.dart @@ -1,7 +1,6 @@ library perf_test.test; -import 'dart:convert'; -import 'dart:convert' show json; +import 'dart:convert' show json, JsonEncoder; import 'dart:io' show File; import 'package:built_value/built_value.dart'; diff --git a/perf-test/test/starlink/built_value/built_value_test.g.dart b/perf-test/test/starlink/built_value/built_value_test.g.dart index a2730d5e..f1dfd3bc 100644 --- a/perf-test/test/starlink/built_value/built_value_test.g.dart +++ b/perf-test/test/starlink/built_value/built_value_test.g.dart @@ -1,17 +1,17 @@ // GENERATED CODE - DO NOT MODIFY BY HAND -part of perf_test.test; +part of 'built_value_test.dart'; // ************************************************************************** // BuiltValueGenerator // ************************************************************************** -Serializers _$serializers = (new Serializers().toBuilder() +Serializers _$serializers = (Serializers().toBuilder() ..add(Record.serializer) ..add(SpaceTrack.serializer)) .build(); -Serializer _$spaceTrackSerializer = new _$SpaceTrackSerializer(); -Serializer _$recordSerializer = new _$RecordSerializer(); +Serializer _$spaceTrackSerializer = _$SpaceTrackSerializer(); +Serializer _$recordSerializer = _$RecordSerializer(); class _$SpaceTrackSerializer implements StructuredSerializer { @override @@ -152,149 +152,149 @@ class _$SpaceTrackSerializer implements StructuredSerializer { @override SpaceTrack deserialize(Serializers serializers, Iterable serialized, {FullType specifiedType = FullType.unspecified}) { - final result = new SpaceTrackBuilder(); + final result = SpaceTrackBuilder(); final iterator = serialized.iterator; while (iterator.moveNext()) { - final key = iterator.current as String; + final key = iterator.current! as String; iterator.moveNext(); final Object? value = iterator.current; switch (key) { case 'CCSDS_OMM_VERS': result.cCSDSOMMVERS = serializers.deserialize(value, - specifiedType: const FullType(String)) as String; + specifiedType: const FullType(String))! as String; break; case 'COMMENT': result.cOMMENT = serializers.deserialize(value, - specifiedType: const FullType(String)) as String; + specifiedType: const FullType(String))! as String; break; case 'CREATION_DATE': result.cREATIONDATE = serializers.deserialize(value, - specifiedType: const FullType(String)) as String; + specifiedType: const FullType(String))! as String; break; case 'ORIGINATOR': result.oRIGINATOR = serializers.deserialize(value, - specifiedType: const FullType(String)) as String; + specifiedType: const FullType(String))! as String; break; case 'OBJECT_NAME': result.oBJECTNAME = serializers.deserialize(value, - specifiedType: const FullType(String)) as String; + specifiedType: const FullType(String))! as String; break; case 'OBJECT_ID': result.oBJECTID = serializers.deserialize(value, - specifiedType: const FullType(String)) as String; + specifiedType: const FullType(String))! as String; break; case 'CENTER_NAME': result.cENTERNAME = serializers.deserialize(value, - specifiedType: const FullType(String)) as String; + specifiedType: const FullType(String))! as String; break; case 'REF_FRAME': result.rEFFRAME = serializers.deserialize(value, - specifiedType: const FullType(String)) as String; + specifiedType: const FullType(String))! as String; break; case 'TIME_SYSTEM': result.tIMESYSTEM = serializers.deserialize(value, - specifiedType: const FullType(String)) as String; + specifiedType: const FullType(String))! as String; break; case 'MEAN_ELEMENT_THEORY': result.mEANELEMENTTHEORY = serializers.deserialize(value, - specifiedType: const FullType(String)) as String; + specifiedType: const FullType(String))! as String; break; case 'EPOCH': result.ePOCH = serializers.deserialize(value, - specifiedType: const FullType(String)) as String; + specifiedType: const FullType(String))! as String; break; case 'MEAN_MOTION': result.mEANMOTION = serializers.deserialize(value, - specifiedType: const FullType(num)) as num; + specifiedType: const FullType(num))! as num; break; case 'ECCENTRICITY': result.eCCENTRICITY = serializers.deserialize(value, - specifiedType: const FullType(num)) as num; + specifiedType: const FullType(num))! as num; break; case 'INCLINATION': result.iNCLINATION = serializers.deserialize(value, - specifiedType: const FullType(num)) as num; + specifiedType: const FullType(num))! as num; break; case 'RA_OF_ASC_NODE': result.rAOFASCNODE = serializers.deserialize(value, - specifiedType: const FullType(num)) as num; + specifiedType: const FullType(num))! as num; break; case 'ARG_OF_PERICENTER': result.aRGOFPERICENTER = serializers.deserialize(value, - specifiedType: const FullType(num)) as num; + specifiedType: const FullType(num))! as num; break; case 'MEAN_ANOMALY': result.mEANANOMALY = serializers.deserialize(value, - specifiedType: const FullType(num)) as num; + specifiedType: const FullType(num))! as num; break; case 'EPHEMERIS_TYPE': result.ePHEMERISTYPE = serializers.deserialize(value, - specifiedType: const FullType(num)) as num; + specifiedType: const FullType(num))! as num; break; case 'CLASSIFICATION_TYPE': result.cLASSIFICATIONTYPE = serializers.deserialize(value, - specifiedType: const FullType(String)) as String; + specifiedType: const FullType(String))! as String; break; case 'NORAD_CAT_ID': result.nORADCATID = serializers.deserialize(value, - specifiedType: const FullType(num)) as num; + specifiedType: const FullType(num))! as num; break; case 'ELEMENT_SET_NO': result.eLEMENTSETNO = serializers.deserialize(value, - specifiedType: const FullType(num)) as num; + specifiedType: const FullType(num))! as num; break; case 'REV_AT_EPOCH': result.rEVATEPOCH = serializers.deserialize(value, - specifiedType: const FullType(num)) as num; + specifiedType: const FullType(num))! as num; break; case 'BSTAR': result.bSTAR = serializers.deserialize(value, - specifiedType: const FullType(num)) as num; + specifiedType: const FullType(num))! as num; break; case 'MEAN_MOTION_DOT': result.mEANMOTIONDOT = serializers.deserialize(value, - specifiedType: const FullType(num)) as num; + specifiedType: const FullType(num))! as num; break; case 'MEAN_MOTION_DDOT': result.mEANMOTIONDDOT = serializers.deserialize(value, - specifiedType: const FullType(num)) as num; + specifiedType: const FullType(num))! as num; break; case 'SEMIMAJOR_AXIS': result.sEMIMAJORAXIS = serializers.deserialize(value, - specifiedType: const FullType(num)) as num; + specifiedType: const FullType(num))! as num; break; case 'PERIOD': result.pERIOD = serializers.deserialize(value, - specifiedType: const FullType(num)) as num; + specifiedType: const FullType(num))! as num; break; case 'APOAPSIS': result.aPOAPSIS = serializers.deserialize(value, - specifiedType: const FullType(num)) as num; + specifiedType: const FullType(num))! as num; break; case 'PERIAPSIS': result.pERIAPSIS = serializers.deserialize(value, - specifiedType: const FullType(num)) as num; + specifiedType: const FullType(num))! as num; break; case 'OBJECT_TYPE': result.oBJECTTYPE = serializers.deserialize(value, - specifiedType: const FullType(String)) as String; + specifiedType: const FullType(String))! as String; break; case 'RCS_SIZE': result.rCSSIZE = serializers.deserialize(value, - specifiedType: const FullType(String)) as String; + specifiedType: const FullType(String))! as String; break; case 'COUNTRY_CODE': result.cOUNTRYCODE = serializers.deserialize(value, - specifiedType: const FullType(String)) as String; + specifiedType: const FullType(String))! as String; break; case 'LAUNCH_DATE': result.lAUNCHDATE = serializers.deserialize(value, - specifiedType: const FullType(String)) as String; + specifiedType: const FullType(String))! as String; break; case 'SITE': result.sITE = serializers.deserialize(value, - specifiedType: const FullType(String)) as String; + specifiedType: const FullType(String))! as String; break; case 'DECAY_DATE': result.dECAYDATE = serializers.deserialize(value, @@ -302,27 +302,27 @@ class _$SpaceTrackSerializer implements StructuredSerializer { break; case 'DECAYED': result.dECAYED = serializers.deserialize(value, - specifiedType: const FullType(num)) as num; + specifiedType: const FullType(num))! as num; break; case 'FILE': result.fILE = serializers.deserialize(value, - specifiedType: const FullType(num)) as num; + specifiedType: const FullType(num))! as num; break; case 'GP_ID': result.gPID = serializers.deserialize(value, - specifiedType: const FullType(num)) as num; + specifiedType: const FullType(num))! as num; break; case 'TLE_LINE0': result.tLELINE0 = serializers.deserialize(value, - specifiedType: const FullType(String)) as String; + specifiedType: const FullType(String))! as String; break; case 'TLE_LINE1': result.tLELINE1 = serializers.deserialize(value, - specifiedType: const FullType(String)) as String; + specifiedType: const FullType(String))! as String; break; case 'TLE_LINE2': result.tLELINE2 = serializers.deserialize(value, - specifiedType: const FullType(String)) as String; + specifiedType: const FullType(String))! as String; break; } } @@ -360,11 +360,11 @@ class _$RecordSerializer implements StructuredSerializer { @override Record deserialize(Serializers serializers, Iterable serialized, {FullType specifiedType = FullType.unspecified}) { - final result = new RecordBuilder(); + final result = RecordBuilder(); final iterator = serialized.iterator; while (iterator.moveNext()) { - final key = iterator.current as String; + final key = iterator.current! as String; iterator.moveNext(); final Object? value = iterator.current; switch (key) { @@ -374,15 +374,15 @@ class _$RecordSerializer implements StructuredSerializer { break; case 'version': result.version = serializers.deserialize(value, - specifiedType: const FullType(String)) as String; + specifiedType: const FullType(String))! as String; break; case 'launch': result.launch = serializers.deserialize(value, - specifiedType: const FullType(String)) as String; + specifiedType: const FullType(String))! as String; break; case 'id': result.id = serializers.deserialize(value, - specifiedType: const FullType(String)) as String; + specifiedType: const FullType(String))! as String; break; } } @@ -476,7 +476,7 @@ class _$SpaceTrack extends SpaceTrack { final String tLELINE2; factory _$SpaceTrack([void Function(SpaceTrackBuilder)? updates]) => - (new SpaceTrackBuilder()..update(updates)).build(); + (SpaceTrackBuilder()..update(updates))._build(); _$SpaceTrack._( {required this.cCSDSOMMVERS, @@ -520,79 +520,13 @@ class _$SpaceTrack extends SpaceTrack { required this.tLELINE0, required this.tLELINE1, required this.tLELINE2}) - : super._() { - BuiltValueNullFieldError.checkNotNull( - cCSDSOMMVERS, 'SpaceTrack', 'cCSDSOMMVERS'); - BuiltValueNullFieldError.checkNotNull(cOMMENT, 'SpaceTrack', 'cOMMENT'); - BuiltValueNullFieldError.checkNotNull( - cREATIONDATE, 'SpaceTrack', 'cREATIONDATE'); - BuiltValueNullFieldError.checkNotNull( - oRIGINATOR, 'SpaceTrack', 'oRIGINATOR'); - BuiltValueNullFieldError.checkNotNull( - oBJECTNAME, 'SpaceTrack', 'oBJECTNAME'); - BuiltValueNullFieldError.checkNotNull(oBJECTID, 'SpaceTrack', 'oBJECTID'); - BuiltValueNullFieldError.checkNotNull( - cENTERNAME, 'SpaceTrack', 'cENTERNAME'); - BuiltValueNullFieldError.checkNotNull(rEFFRAME, 'SpaceTrack', 'rEFFRAME'); - BuiltValueNullFieldError.checkNotNull( - tIMESYSTEM, 'SpaceTrack', 'tIMESYSTEM'); - BuiltValueNullFieldError.checkNotNull( - mEANELEMENTTHEORY, 'SpaceTrack', 'mEANELEMENTTHEORY'); - BuiltValueNullFieldError.checkNotNull(ePOCH, 'SpaceTrack', 'ePOCH'); - BuiltValueNullFieldError.checkNotNull( - mEANMOTION, 'SpaceTrack', 'mEANMOTION'); - BuiltValueNullFieldError.checkNotNull( - eCCENTRICITY, 'SpaceTrack', 'eCCENTRICITY'); - BuiltValueNullFieldError.checkNotNull( - iNCLINATION, 'SpaceTrack', 'iNCLINATION'); - BuiltValueNullFieldError.checkNotNull( - rAOFASCNODE, 'SpaceTrack', 'rAOFASCNODE'); - BuiltValueNullFieldError.checkNotNull( - aRGOFPERICENTER, 'SpaceTrack', 'aRGOFPERICENTER'); - BuiltValueNullFieldError.checkNotNull( - mEANANOMALY, 'SpaceTrack', 'mEANANOMALY'); - BuiltValueNullFieldError.checkNotNull( - ePHEMERISTYPE, 'SpaceTrack', 'ePHEMERISTYPE'); - BuiltValueNullFieldError.checkNotNull( - cLASSIFICATIONTYPE, 'SpaceTrack', 'cLASSIFICATIONTYPE'); - BuiltValueNullFieldError.checkNotNull( - nORADCATID, 'SpaceTrack', 'nORADCATID'); - BuiltValueNullFieldError.checkNotNull( - eLEMENTSETNO, 'SpaceTrack', 'eLEMENTSETNO'); - BuiltValueNullFieldError.checkNotNull( - rEVATEPOCH, 'SpaceTrack', 'rEVATEPOCH'); - BuiltValueNullFieldError.checkNotNull(bSTAR, 'SpaceTrack', 'bSTAR'); - BuiltValueNullFieldError.checkNotNull( - mEANMOTIONDOT, 'SpaceTrack', 'mEANMOTIONDOT'); - BuiltValueNullFieldError.checkNotNull( - mEANMOTIONDDOT, 'SpaceTrack', 'mEANMOTIONDDOT'); - BuiltValueNullFieldError.checkNotNull( - sEMIMAJORAXIS, 'SpaceTrack', 'sEMIMAJORAXIS'); - BuiltValueNullFieldError.checkNotNull(pERIOD, 'SpaceTrack', 'pERIOD'); - BuiltValueNullFieldError.checkNotNull(aPOAPSIS, 'SpaceTrack', 'aPOAPSIS'); - BuiltValueNullFieldError.checkNotNull(pERIAPSIS, 'SpaceTrack', 'pERIAPSIS'); - BuiltValueNullFieldError.checkNotNull( - oBJECTTYPE, 'SpaceTrack', 'oBJECTTYPE'); - BuiltValueNullFieldError.checkNotNull(rCSSIZE, 'SpaceTrack', 'rCSSIZE'); - BuiltValueNullFieldError.checkNotNull( - cOUNTRYCODE, 'SpaceTrack', 'cOUNTRYCODE'); - BuiltValueNullFieldError.checkNotNull( - lAUNCHDATE, 'SpaceTrack', 'lAUNCHDATE'); - BuiltValueNullFieldError.checkNotNull(sITE, 'SpaceTrack', 'sITE'); - BuiltValueNullFieldError.checkNotNull(dECAYED, 'SpaceTrack', 'dECAYED'); - BuiltValueNullFieldError.checkNotNull(fILE, 'SpaceTrack', 'fILE'); - BuiltValueNullFieldError.checkNotNull(gPID, 'SpaceTrack', 'gPID'); - BuiltValueNullFieldError.checkNotNull(tLELINE0, 'SpaceTrack', 'tLELINE0'); - BuiltValueNullFieldError.checkNotNull(tLELINE1, 'SpaceTrack', 'tLELINE1'); - BuiltValueNullFieldError.checkNotNull(tLELINE2, 'SpaceTrack', 'tLELINE2'); - } - + : super._(); @override SpaceTrack rebuild(void Function(SpaceTrackBuilder) updates) => (toBuilder()..update(updates)).build(); @override - SpaceTrackBuilder toBuilder() => new SpaceTrackBuilder()..replace(this); + SpaceTrackBuilder toBuilder() => SpaceTrackBuilder()..replace(this); @override bool operator ==(Object other) { @@ -643,49 +577,55 @@ class _$SpaceTrack extends SpaceTrack { @override int get hashCode { - return $jf($jc( - $jc( - $jc( - $jc( - $jc( - $jc( - $jc( - $jc( - $jc( - $jc( - $jc( - $jc( - $jc( - $jc( - $jc( - $jc( - $jc( - $jc( - $jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc(0, cCSDSOMMVERS.hashCode), cOMMENT.hashCode), cREATIONDATE.hashCode), oRIGINATOR.hashCode), oBJECTNAME.hashCode), oBJECTID.hashCode), cENTERNAME.hashCode), rEFFRAME.hashCode), tIMESYSTEM.hashCode), mEANELEMENTTHEORY.hashCode), ePOCH.hashCode), mEANMOTION.hashCode), eCCENTRICITY.hashCode), iNCLINATION.hashCode), rAOFASCNODE.hashCode), aRGOFPERICENTER.hashCode), mEANANOMALY.hashCode), ePHEMERISTYPE.hashCode), cLASSIFICATIONTYPE.hashCode), nORADCATID.hashCode), eLEMENTSETNO.hashCode), rEVATEPOCH.hashCode), - bSTAR.hashCode), - mEANMOTIONDOT.hashCode), - mEANMOTIONDDOT.hashCode), - sEMIMAJORAXIS.hashCode), - pERIOD.hashCode), - aPOAPSIS.hashCode), - pERIAPSIS.hashCode), - oBJECTTYPE.hashCode), - rCSSIZE.hashCode), - cOUNTRYCODE.hashCode), - lAUNCHDATE.hashCode), - sITE.hashCode), - dECAYDATE.hashCode), - dECAYED.hashCode), - fILE.hashCode), - gPID.hashCode), - tLELINE0.hashCode), - tLELINE1.hashCode), - tLELINE2.hashCode)); + var _$hash = 0; + _$hash = $jc(_$hash, cCSDSOMMVERS.hashCode); + _$hash = $jc(_$hash, cOMMENT.hashCode); + _$hash = $jc(_$hash, cREATIONDATE.hashCode); + _$hash = $jc(_$hash, oRIGINATOR.hashCode); + _$hash = $jc(_$hash, oBJECTNAME.hashCode); + _$hash = $jc(_$hash, oBJECTID.hashCode); + _$hash = $jc(_$hash, cENTERNAME.hashCode); + _$hash = $jc(_$hash, rEFFRAME.hashCode); + _$hash = $jc(_$hash, tIMESYSTEM.hashCode); + _$hash = $jc(_$hash, mEANELEMENTTHEORY.hashCode); + _$hash = $jc(_$hash, ePOCH.hashCode); + _$hash = $jc(_$hash, mEANMOTION.hashCode); + _$hash = $jc(_$hash, eCCENTRICITY.hashCode); + _$hash = $jc(_$hash, iNCLINATION.hashCode); + _$hash = $jc(_$hash, rAOFASCNODE.hashCode); + _$hash = $jc(_$hash, aRGOFPERICENTER.hashCode); + _$hash = $jc(_$hash, mEANANOMALY.hashCode); + _$hash = $jc(_$hash, ePHEMERISTYPE.hashCode); + _$hash = $jc(_$hash, cLASSIFICATIONTYPE.hashCode); + _$hash = $jc(_$hash, nORADCATID.hashCode); + _$hash = $jc(_$hash, eLEMENTSETNO.hashCode); + _$hash = $jc(_$hash, rEVATEPOCH.hashCode); + _$hash = $jc(_$hash, bSTAR.hashCode); + _$hash = $jc(_$hash, mEANMOTIONDOT.hashCode); + _$hash = $jc(_$hash, mEANMOTIONDDOT.hashCode); + _$hash = $jc(_$hash, sEMIMAJORAXIS.hashCode); + _$hash = $jc(_$hash, pERIOD.hashCode); + _$hash = $jc(_$hash, aPOAPSIS.hashCode); + _$hash = $jc(_$hash, pERIAPSIS.hashCode); + _$hash = $jc(_$hash, oBJECTTYPE.hashCode); + _$hash = $jc(_$hash, rCSSIZE.hashCode); + _$hash = $jc(_$hash, cOUNTRYCODE.hashCode); + _$hash = $jc(_$hash, lAUNCHDATE.hashCode); + _$hash = $jc(_$hash, sITE.hashCode); + _$hash = $jc(_$hash, dECAYDATE.hashCode); + _$hash = $jc(_$hash, dECAYED.hashCode); + _$hash = $jc(_$hash, fILE.hashCode); + _$hash = $jc(_$hash, gPID.hashCode); + _$hash = $jc(_$hash, tLELINE0.hashCode); + _$hash = $jc(_$hash, tLELINE1.hashCode); + _$hash = $jc(_$hash, tLELINE2.hashCode); + _$hash = $jf(_$hash); + return _$hash; } @override String toString() { - return (newBuiltValueToStringHelper('SpaceTrack') + return (newBuiltValueToStringHelper(r'SpaceTrack') ..add('cCSDSOMMVERS', cCSDSOMMVERS) ..add('cOMMENT', cOMMENT) ..add('cREATIONDATE', cREATIONDATE) @@ -958,7 +898,6 @@ class SpaceTrackBuilder implements Builder { @override void replace(SpaceTrack other) { - ArgumentError.checkNotNull(other, 'other'); _$v = other as _$SpaceTrack; } @@ -968,59 +907,93 @@ class SpaceTrackBuilder implements Builder { } @override - _$SpaceTrack build() { + SpaceTrack build() => _build(); + + _$SpaceTrack _build() { final _$result = _$v ?? - new _$SpaceTrack._( - cCSDSOMMVERS: BuiltValueNullFieldError.checkNotNull( - cCSDSOMMVERS, 'SpaceTrack', 'cCSDSOMMVERS'), - cOMMENT: BuiltValueNullFieldError.checkNotNull( - cOMMENT, 'SpaceTrack', 'cOMMENT'), - cREATIONDATE: BuiltValueNullFieldError.checkNotNull( - cREATIONDATE, 'SpaceTrack', 'cREATIONDATE'), - oRIGINATOR: BuiltValueNullFieldError.checkNotNull( - oRIGINATOR, 'SpaceTrack', 'oRIGINATOR'), - oBJECTNAME: BuiltValueNullFieldError.checkNotNull( - oBJECTNAME, 'SpaceTrack', 'oBJECTNAME'), - oBJECTID: BuiltValueNullFieldError.checkNotNull( - oBJECTID, 'SpaceTrack', 'oBJECTID'), - cENTERNAME: BuiltValueNullFieldError.checkNotNull( - cENTERNAME, 'SpaceTrack', 'cENTERNAME'), - rEFFRAME: BuiltValueNullFieldError.checkNotNull( - rEFFRAME, 'SpaceTrack', 'rEFFRAME'), - tIMESYSTEM: BuiltValueNullFieldError.checkNotNull( - tIMESYSTEM, 'SpaceTrack', 'tIMESYSTEM'), - mEANELEMENTTHEORY: BuiltValueNullFieldError.checkNotNull(mEANELEMENTTHEORY, 'SpaceTrack', 'mEANELEMENTTHEORY'), - ePOCH: BuiltValueNullFieldError.checkNotNull(ePOCH, 'SpaceTrack', 'ePOCH'), - mEANMOTION: BuiltValueNullFieldError.checkNotNull(mEANMOTION, 'SpaceTrack', 'mEANMOTION'), - eCCENTRICITY: BuiltValueNullFieldError.checkNotNull(eCCENTRICITY, 'SpaceTrack', 'eCCENTRICITY'), - iNCLINATION: BuiltValueNullFieldError.checkNotNull(iNCLINATION, 'SpaceTrack', 'iNCLINATION'), - rAOFASCNODE: BuiltValueNullFieldError.checkNotNull(rAOFASCNODE, 'SpaceTrack', 'rAOFASCNODE'), - aRGOFPERICENTER: BuiltValueNullFieldError.checkNotNull(aRGOFPERICENTER, 'SpaceTrack', 'aRGOFPERICENTER'), - mEANANOMALY: BuiltValueNullFieldError.checkNotNull(mEANANOMALY, 'SpaceTrack', 'mEANANOMALY'), - ePHEMERISTYPE: BuiltValueNullFieldError.checkNotNull(ePHEMERISTYPE, 'SpaceTrack', 'ePHEMERISTYPE'), - cLASSIFICATIONTYPE: BuiltValueNullFieldError.checkNotNull(cLASSIFICATIONTYPE, 'SpaceTrack', 'cLASSIFICATIONTYPE'), - nORADCATID: BuiltValueNullFieldError.checkNotNull(nORADCATID, 'SpaceTrack', 'nORADCATID'), - eLEMENTSETNO: BuiltValueNullFieldError.checkNotNull(eLEMENTSETNO, 'SpaceTrack', 'eLEMENTSETNO'), - rEVATEPOCH: BuiltValueNullFieldError.checkNotNull(rEVATEPOCH, 'SpaceTrack', 'rEVATEPOCH'), - bSTAR: BuiltValueNullFieldError.checkNotNull(bSTAR, 'SpaceTrack', 'bSTAR'), - mEANMOTIONDOT: BuiltValueNullFieldError.checkNotNull(mEANMOTIONDOT, 'SpaceTrack', 'mEANMOTIONDOT'), - mEANMOTIONDDOT: BuiltValueNullFieldError.checkNotNull(mEANMOTIONDDOT, 'SpaceTrack', 'mEANMOTIONDDOT'), - sEMIMAJORAXIS: BuiltValueNullFieldError.checkNotNull(sEMIMAJORAXIS, 'SpaceTrack', 'sEMIMAJORAXIS'), - pERIOD: BuiltValueNullFieldError.checkNotNull(pERIOD, 'SpaceTrack', 'pERIOD'), - aPOAPSIS: BuiltValueNullFieldError.checkNotNull(aPOAPSIS, 'SpaceTrack', 'aPOAPSIS'), - pERIAPSIS: BuiltValueNullFieldError.checkNotNull(pERIAPSIS, 'SpaceTrack', 'pERIAPSIS'), - oBJECTTYPE: BuiltValueNullFieldError.checkNotNull(oBJECTTYPE, 'SpaceTrack', 'oBJECTTYPE'), - rCSSIZE: BuiltValueNullFieldError.checkNotNull(rCSSIZE, 'SpaceTrack', 'rCSSIZE'), - cOUNTRYCODE: BuiltValueNullFieldError.checkNotNull(cOUNTRYCODE, 'SpaceTrack', 'cOUNTRYCODE'), - lAUNCHDATE: BuiltValueNullFieldError.checkNotNull(lAUNCHDATE, 'SpaceTrack', 'lAUNCHDATE'), - sITE: BuiltValueNullFieldError.checkNotNull(sITE, 'SpaceTrack', 'sITE'), - dECAYDATE: dECAYDATE, - dECAYED: BuiltValueNullFieldError.checkNotNull(dECAYED, 'SpaceTrack', 'dECAYED'), - fILE: BuiltValueNullFieldError.checkNotNull(fILE, 'SpaceTrack', 'fILE'), - gPID: BuiltValueNullFieldError.checkNotNull(gPID, 'SpaceTrack', 'gPID'), - tLELINE0: BuiltValueNullFieldError.checkNotNull(tLELINE0, 'SpaceTrack', 'tLELINE0'), - tLELINE1: BuiltValueNullFieldError.checkNotNull(tLELINE1, 'SpaceTrack', 'tLELINE1'), - tLELINE2: BuiltValueNullFieldError.checkNotNull(tLELINE2, 'SpaceTrack', 'tLELINE2')); + _$SpaceTrack._( + cCSDSOMMVERS: BuiltValueNullFieldError.checkNotNull( + cCSDSOMMVERS, r'SpaceTrack', 'cCSDSOMMVERS'), + cOMMENT: BuiltValueNullFieldError.checkNotNull( + cOMMENT, r'SpaceTrack', 'cOMMENT'), + cREATIONDATE: BuiltValueNullFieldError.checkNotNull( + cREATIONDATE, r'SpaceTrack', 'cREATIONDATE'), + oRIGINATOR: BuiltValueNullFieldError.checkNotNull( + oRIGINATOR, r'SpaceTrack', 'oRIGINATOR'), + oBJECTNAME: BuiltValueNullFieldError.checkNotNull( + oBJECTNAME, r'SpaceTrack', 'oBJECTNAME'), + oBJECTID: BuiltValueNullFieldError.checkNotNull( + oBJECTID, r'SpaceTrack', 'oBJECTID'), + cENTERNAME: BuiltValueNullFieldError.checkNotNull( + cENTERNAME, r'SpaceTrack', 'cENTERNAME'), + rEFFRAME: BuiltValueNullFieldError.checkNotNull( + rEFFRAME, r'SpaceTrack', 'rEFFRAME'), + tIMESYSTEM: BuiltValueNullFieldError.checkNotNull( + tIMESYSTEM, r'SpaceTrack', 'tIMESYSTEM'), + mEANELEMENTTHEORY: BuiltValueNullFieldError.checkNotNull( + mEANELEMENTTHEORY, r'SpaceTrack', 'mEANELEMENTTHEORY'), + ePOCH: BuiltValueNullFieldError.checkNotNull( + ePOCH, r'SpaceTrack', 'ePOCH'), + mEANMOTION: BuiltValueNullFieldError.checkNotNull( + mEANMOTION, r'SpaceTrack', 'mEANMOTION'), + eCCENTRICITY: BuiltValueNullFieldError.checkNotNull( + eCCENTRICITY, r'SpaceTrack', 'eCCENTRICITY'), + iNCLINATION: BuiltValueNullFieldError.checkNotNull( + iNCLINATION, r'SpaceTrack', 'iNCLINATION'), + rAOFASCNODE: BuiltValueNullFieldError.checkNotNull( + rAOFASCNODE, r'SpaceTrack', 'rAOFASCNODE'), + aRGOFPERICENTER: BuiltValueNullFieldError.checkNotNull( + aRGOFPERICENTER, r'SpaceTrack', 'aRGOFPERICENTER'), + mEANANOMALY: BuiltValueNullFieldError.checkNotNull( + mEANANOMALY, r'SpaceTrack', 'mEANANOMALY'), + ePHEMERISTYPE: BuiltValueNullFieldError.checkNotNull( + ePHEMERISTYPE, r'SpaceTrack', 'ePHEMERISTYPE'), + cLASSIFICATIONTYPE: BuiltValueNullFieldError.checkNotNull( + cLASSIFICATIONTYPE, r'SpaceTrack', 'cLASSIFICATIONTYPE'), + nORADCATID: BuiltValueNullFieldError.checkNotNull( + nORADCATID, r'SpaceTrack', 'nORADCATID'), + eLEMENTSETNO: BuiltValueNullFieldError.checkNotNull( + eLEMENTSETNO, r'SpaceTrack', 'eLEMENTSETNO'), + rEVATEPOCH: BuiltValueNullFieldError.checkNotNull( + rEVATEPOCH, r'SpaceTrack', 'rEVATEPOCH'), + bSTAR: BuiltValueNullFieldError.checkNotNull( + bSTAR, r'SpaceTrack', 'bSTAR'), + mEANMOTIONDOT: BuiltValueNullFieldError.checkNotNull( + mEANMOTIONDOT, r'SpaceTrack', 'mEANMOTIONDOT'), + mEANMOTIONDDOT: BuiltValueNullFieldError.checkNotNull( + mEANMOTIONDDOT, r'SpaceTrack', 'mEANMOTIONDDOT'), + sEMIMAJORAXIS: BuiltValueNullFieldError.checkNotNull( + sEMIMAJORAXIS, r'SpaceTrack', 'sEMIMAJORAXIS'), + pERIOD: BuiltValueNullFieldError.checkNotNull( + pERIOD, r'SpaceTrack', 'pERIOD'), + aPOAPSIS: BuiltValueNullFieldError.checkNotNull( + aPOAPSIS, r'SpaceTrack', 'aPOAPSIS'), + pERIAPSIS: BuiltValueNullFieldError.checkNotNull( + pERIAPSIS, r'SpaceTrack', 'pERIAPSIS'), + oBJECTTYPE: BuiltValueNullFieldError.checkNotNull( + oBJECTTYPE, r'SpaceTrack', 'oBJECTTYPE'), + rCSSIZE: BuiltValueNullFieldError.checkNotNull( + rCSSIZE, r'SpaceTrack', 'rCSSIZE'), + cOUNTRYCODE: BuiltValueNullFieldError.checkNotNull( + cOUNTRYCODE, r'SpaceTrack', 'cOUNTRYCODE'), + lAUNCHDATE: BuiltValueNullFieldError.checkNotNull( + lAUNCHDATE, r'SpaceTrack', 'lAUNCHDATE'), + sITE: BuiltValueNullFieldError.checkNotNull( + sITE, r'SpaceTrack', 'sITE'), + dECAYDATE: dECAYDATE, + dECAYED: BuiltValueNullFieldError.checkNotNull( + dECAYED, r'SpaceTrack', 'dECAYED'), + fILE: BuiltValueNullFieldError.checkNotNull( + fILE, r'SpaceTrack', 'fILE'), + gPID: BuiltValueNullFieldError.checkNotNull( + gPID, r'SpaceTrack', 'gPID'), + tLELINE0: BuiltValueNullFieldError.checkNotNull( + tLELINE0, r'SpaceTrack', 'tLELINE0'), + tLELINE1: BuiltValueNullFieldError.checkNotNull( + tLELINE1, r'SpaceTrack', 'tLELINE1'), + tLELINE2: BuiltValueNullFieldError.checkNotNull( + tLELINE2, r'SpaceTrack', 'tLELINE2'), + ); replace(_$result); return _$result; } @@ -1037,26 +1010,20 @@ class _$Record extends Record { final String id; factory _$Record([void Function(RecordBuilder)? updates]) => - (new RecordBuilder()..update(updates)).build(); + (RecordBuilder()..update(updates))._build(); _$Record._( {required this.spaceTrack, required this.version, required this.launch, required this.id}) - : super._() { - BuiltValueNullFieldError.checkNotNull(spaceTrack, 'Record', 'spaceTrack'); - BuiltValueNullFieldError.checkNotNull(version, 'Record', 'version'); - BuiltValueNullFieldError.checkNotNull(launch, 'Record', 'launch'); - BuiltValueNullFieldError.checkNotNull(id, 'Record', 'id'); - } - + : super._(); @override Record rebuild(void Function(RecordBuilder) updates) => (toBuilder()..update(updates)).build(); @override - RecordBuilder toBuilder() => new RecordBuilder()..replace(this); + RecordBuilder toBuilder() => RecordBuilder()..replace(this); @override bool operator ==(Object other) { @@ -1070,15 +1037,18 @@ class _$Record extends Record { @override int get hashCode { - return $jf($jc( - $jc($jc($jc(0, spaceTrack.hashCode), version.hashCode), - launch.hashCode), - id.hashCode)); + var _$hash = 0; + _$hash = $jc(_$hash, spaceTrack.hashCode); + _$hash = $jc(_$hash, version.hashCode); + _$hash = $jc(_$hash, launch.hashCode); + _$hash = $jc(_$hash, id.hashCode); + _$hash = $jf(_$hash); + return _$hash; } @override String toString() { - return (newBuiltValueToStringHelper('Record') + return (newBuiltValueToStringHelper(r'Record') ..add('spaceTrack', spaceTrack) ..add('version', version) ..add('launch', launch) @@ -1092,7 +1062,7 @@ class RecordBuilder implements Builder { SpaceTrackBuilder? _spaceTrack; SpaceTrackBuilder get spaceTrack => - _$this._spaceTrack ??= new SpaceTrackBuilder(); + _$this._spaceTrack ??= SpaceTrackBuilder(); set spaceTrack(SpaceTrackBuilder? spaceTrack) => _$this._spaceTrack = spaceTrack; @@ -1124,7 +1094,6 @@ class RecordBuilder implements Builder { @override void replace(Record other) { - ArgumentError.checkNotNull(other, 'other'); _$v = other as _$Record; } @@ -1134,25 +1103,28 @@ class RecordBuilder implements Builder { } @override - _$Record build() { + Record build() => _build(); + + _$Record _build() { _$Record _$result; try { _$result = _$v ?? - new _$Record._( - spaceTrack: spaceTrack.build(), - version: BuiltValueNullFieldError.checkNotNull( - version, 'Record', 'version'), - launch: BuiltValueNullFieldError.checkNotNull( - launch, 'Record', 'launch'), - id: BuiltValueNullFieldError.checkNotNull(id, 'Record', 'id')); + _$Record._( + spaceTrack: spaceTrack.build(), + version: BuiltValueNullFieldError.checkNotNull( + version, r'Record', 'version'), + launch: BuiltValueNullFieldError.checkNotNull( + launch, r'Record', 'launch'), + id: BuiltValueNullFieldError.checkNotNull(id, r'Record', 'id'), + ); } catch (_) { late String _$failedField; try { _$failedField = 'spaceTrack'; spaceTrack.build(); } catch (e) { - throw new BuiltValueNestedFieldError( - 'Record', _$failedField, e.toString()); + throw BuiltValueNestedFieldError( + r'Record', _$failedField, e.toString()); } rethrow; } @@ -1161,4 +1133,4 @@ class RecordBuilder implements Builder { } } -// ignore_for_file: always_put_control_body_on_new_line,always_specify_types,annotate_overrides,avoid_annotating_with_dynamic,avoid_as,avoid_catches_without_on_clauses,avoid_returning_this,deprecated_member_use_from_same_package,lines_longer_than_80_chars,omit_local_variable_types,prefer_expression_function_bodies,sort_constructors_first,test_types_in_equals,unnecessary_const,unnecessary_new +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/perf-test/test/starlink/built_value/index.dart b/perf-test/test/starlink/built_value/index.dart index 2135d454..6779a473 100644 --- a/perf-test/test/starlink/built_value/index.dart +++ b/perf-test/test/starlink/built_value/index.dart @@ -1,4 +1,4 @@ -part of perf_test.test; +part of 'built_value_test.dart'; void testStarlink(Iterable list) { final stopwatch = Stopwatch()..start(); diff --git a/perf-test/test/starlink/built_value/model.dart b/perf-test/test/starlink/built_value/model.dart index 811ee8da..30c991c0 100644 --- a/perf-test/test/starlink/built_value/model.dart +++ b/perf-test/test/starlink/built_value/model.dart @@ -1,4 +1,4 @@ -part of perf_test.test; +part of 'built_value_test.dart'; abstract class SpaceTrack implements Built { SpaceTrack._(); diff --git a/perf-test/test/starlink/dart_json_mapper/index.dart b/perf-test/test/starlink/dart_json_mapper/index.dart index 8ebf6740..20e6759b 100644 --- a/perf-test/test/starlink/dart_json_mapper/index.dart +++ b/perf-test/test/starlink/dart_json_mapper/index.dart @@ -1,4 +1,4 @@ -part of perf_test.test; +part of 'dart_json_mapper_test.dart'; void testStarlink(Iterable list) { final stopwatch = Stopwatch()..start(); diff --git a/perf-test/test/starlink/json_serializable/index.dart b/perf-test/test/starlink/json_serializable/index.dart index 2a6887cb..e9f8b144 100644 --- a/perf-test/test/starlink/json_serializable/index.dart +++ b/perf-test/test/starlink/json_serializable/index.dart @@ -1,4 +1,4 @@ -part of perf_test.test; +part of 'json_serializable_test.dart'; void testStarlink(Iterable list) { final stopwatch = Stopwatch()..start(); diff --git a/perf-test/test/starlink/json_serializable/json_serializable_test.g.dart b/perf-test/test/starlink/json_serializable/json_serializable_test.g.dart index 34e8c621..d94178a6 100644 --- a/perf-test/test/starlink/json_serializable/json_serializable_test.g.dart +++ b/perf-test/test/starlink/json_serializable/json_serializable_test.g.dart @@ -1,6 +1,6 @@ // GENERATED CODE - DO NOT MODIFY BY HAND -part of perf_test.test; +part of 'json_serializable_test.dart'; // ************************************************************************** // JsonSerializableGenerator diff --git a/perf-test/test/starlink/json_serializable/model.dart b/perf-test/test/starlink/json_serializable/model.dart index b673d05e..a80fc9f1 100644 --- a/perf-test/test/starlink/json_serializable/model.dart +++ b/perf-test/test/starlink/json_serializable/model.dart @@ -1,4 +1,4 @@ -part of perf_test.test; +part of 'json_serializable_test.dart'; @JsonSerializable() class SpaceTrack { diff --git a/perf-test/test/unit/_test.dart b/perf-test/test/unit/_test.dart index d21c2b4d..b18ec3d6 100644 --- a/perf-test/test/unit/_test.dart +++ b/perf-test/test/unit/_test.dart @@ -1,6 +1,7 @@ library json_mapper.test; import 'package:starlink/starlink.dart' show starlinkGeneratedAdapter; +import 'package:unit_testing/model.dart' show compactOptions; import 'package:unit_testing/unit_testing.dart' show unitTestingGeneratedAdapter; @@ -12,6 +13,7 @@ import 'test.converters.dart'; import 'test.default.value.dart'; import 'test.enums.dart'; import 'test.errors.dart'; +import 'test.flatten.dart'; import 'test.generics.dart'; import 'test.inheritance.dart'; import 'test.injection.dart'; @@ -25,11 +27,21 @@ import 'test.scheme.dart'; import 'test.special.cases.dart'; import 'test.tuple.dart'; import 'test.value.decorators.dart'; +import './test.raw_json.dart' as raw_json; +import './test.cache_manager.dart'; +import './test.adapter_manager.dart'; +import './test_issue_234.dart'; +import './test_issue_225.dart'; void main() { initializeJsonMapper( + serializationOptions: compactOptions, adapters: [starlinkGeneratedAdapter, unitTestingGeneratedAdapter]).info(); + testCacheManager(); + testAdapterManager(); + testIssue225(); + testIssue234(); testScheme(); testDefaultValue(); testRequired(); @@ -50,4 +62,6 @@ void main() { testCollections(); testTupleCases(); testEnums(); + testFlatten(); + raw_json.main(); } diff --git a/perf-test/test/unit/_test.mapper.g.dart b/perf-test/test/unit/_test.mapper.g.dart index 10e72406..33e36f2c 100644 --- a/perf-test/test/unit/_test.mapper.g.dart +++ b/perf-test/test/unit/_test.mapper.g.dart @@ -1,68 +1,73 @@ -// This file has been generated by the dart_json_mapper package. +// This file has been generated by the dart_json_mapper v2.2.20 // https://github.com/k-paxian/dart-json-mapper // @dart = 2.12 -import 'package:dart_json_mapper/dart_json_mapper.dart' show JsonMapper, JsonMapperAdapter, typeOf; +import 'package:dart_json_mapper/dart_json_mapper.dart' show JsonMapper, JsonMapperAdapter, SerializationOptions, DeserializationOptions, typeOf; import 'test.constructors.dart' as x0 show BusinessObject, LogisticsItem, User, Fo, Bar, Baz, Base, Derived, Pt, PtDerived, PtDerived2, StringListClass, PositionalParametersClass, OptionalParametersClass, PartiallyOptionalParametersClass, NamedParametersClass, IgnoreNullMembersClass, IgnoreNullMembersFromOptionsClass, IgnoredFieldClass, IgnoredFieldClassWoConstructor, ImmutableDefault2, Record, GrandParent, Parent, Child, Parent2, Child2, Parent3, Child3; import 'test.converters.caching.dart' as x1 show UserX; import 'test.converters.dart' as x2 show ListDelimiter, MyClass, MyClassWoConstructor, BinaryData, BigIntData, Model, DurationModel, NumericEnum, ListItem, CustomListContainer, InlineJsonContainer, DateTimeContainer, MethodResponse, MyEnumA, MyEnumB, NumericEnumTestColor, MyEnum; -import 'test.default.value.dart' as x3 show CropArea, ImmutableDefault, DefaultFields, ManyDefaultFields, GlobalDefaultFields; -import 'test.enums.dart' as x4 show ShortEnumConverter, EnumMappingsOverrideTest, EnumIterables, EnumIterablesWithConstructor, StylingModel, DefaultCategory, Split, SplitModel, Category; -import 'test.errors.dart' as x5 show MyCar, Device, UserSettings, UnAnnotatedEnumField, ObjectWithRequiredField, ObjectWithRequiredNullableField; -import 'test.inheritance.dart' as x6 show Business, Hotel, Startup, Stakeholder, Business2, Hotel2, Startup2, Stakeholder2, AbstractUser, UserImpl, MyBaseClass, MySuperclass, BusinessType; +import 'test.default.value.dart' as x3 show CropArea, ImmutableDefault, DefaultFields, ManyDefaultFields, GlobalDefaultFields, DefaultValueOverrideTest; +import 'test.enums.dart' as x4 show PascalCaseModel, ShortEnumConverter, EnumMappingsOverrideTest, EnumIterables, EnumIterablesWithConstructor, StylingModel, DefaultCategory, Split, SplitModel, EDeviceRadioType, ThirdParty, Category; +import 'test.errors.dart' as x5 show MyCar, Device, UserSettings, UnAnnotatedEnumField, PartialPerson, ObjectWithRequiredField, ObjectWithRequiredNullableField, Sex; +import 'test.flatten.dart' as x6 show MyObject, FlattenObject; import 'test.injection.dart' as x7 show ChildInjected1, ChildInjected2, ChildInjected3; -import 'test.mixins.dart' as x8 show A, C, MixinContainer, B; +import 'test.mixins.dart' as x8 show A, C, MixinContainer; import 'test.name.casing.dart' as x9 show NameCaseObjectOverride, NameCaseObject; import 'test.name.path.dart' as x10 show Feature, Product, ProductCategory, RootObject, DeepNestedList, DeepNestedInt, NestedListItem; import 'test.partial.deserialization.dart' as x11 show IgnoreMembers, FieldAliasObject, AnyObject, UnmappedProperties, AllPrivateFields, Pagination, Cars, CarsPrefix, CarsPrefixSnake; +import 'test.raw_json.dart' as x17 show RawJsonTestModel; import 'test.required.dart' as x12 show MyNullableFieldsExample, TransactionsRequestModel, Preferences, Metadata; -import 'test.scheme.dart' as x13 show Object, Address; -import 'test.special.cases.dart' as x14 show AA, BB, GetQueryParameters, UnbalancedGetSet; +import 'test.scheme.dart' as x13 show Object, Address, Scheme; +import 'test.special.cases.dart' as x14 show A, B, AA, BB, GetQueryParameters, UnbalancedGetSet; import 'test.tuple.dart' as x15 show Tuple, ConcreteClass; import 'test.value.decorators.dart' as x16 show NavbarTab, NavbarConfig, NoticeItem, NoticeList, TestChain, Customer, ServiceOrderItemModel, ServiceOrderModel, Item, ListOfLists, ListOfListsWithConstructor; +import 'test_issue_225.dart' as x19 show PageImpl, Advertising, AdvertisingPage; +import 'test_issue_234.dart' as x18 show DTDeviceStatus, DTGatewayConnection, DTSignalStrength; // This file has been generated by the reflectable package. // https://github.com/dart-lang/reflectable. - - import 'dart:core'; -import 'dart:typed_data' as prefix24; +import 'dart:typed_data' as prefix28; +import 'package:dart_json_mapper/src/identifier_casing.dart' as prefix26; import 'package:dart_json_mapper/src/model/annotations.dart' as prefix0; -import 'package:dart_json_mapper/src/model/converters.dart' as prefix23; -import 'package:dart_json_mapper/src/name_casing.dart' as prefix22; -import 'package:starlink/model.dart' as prefix21; -import 'package:unit_testing/generic.dart' as prefix18; -import 'package:unit_testing/immutable.dart' as prefix19; -import 'package:unit_testing/model.dart' as prefix20; -import 'test.constructors.dart' as prefix12; -import 'test.converters.caching.dart' as prefix10; -import 'test.converters.dart' as prefix8; -import 'test.default.value.dart' as prefix11; -import 'test.enums.dart' as prefix4; -import 'test.errors.dart' as prefix5; -import 'test.inheritance.dart' as prefix13; -import 'test.injection.dart' as prefix15; -import 'test.mixins.dart' as prefix3; -import 'test.name.casing.dart' as prefix2; -import 'test.name.path.dart' as prefix7; -import 'test.partial.deserialization.dart' as prefix6; -import 'test.required.dart' as prefix17; -import 'test.scheme.dart' as prefix14; +import 'package:dart_json_mapper/src/model/converters/enum_converter_numeric.dart' as prefix27; +import 'package:starlink/model.dart' as prefix22; +import 'package:unit_testing/generic.dart' as prefix23; +import 'package:unit_testing/immutable.dart' as prefix24; +import 'package:unit_testing/inheritance.dart' as prefix25; +import 'package:unit_testing/model.dart' as prefix1; +import 'test.constructors.dart' as prefix2; +import 'test.converters.caching.dart' as prefix3; +import 'test.converters.dart' as prefix4; +import 'test.default.value.dart' as prefix5; +import 'test.enums.dart' as prefix6; +import 'test.errors.dart' as prefix7; +import 'test.flatten.dart' as prefix8; +import 'test.injection.dart' as prefix9; +import 'test.mixins.dart' as prefix10; +import 'test.name.casing.dart' as prefix11; +import 'test.name.path.dart' as prefix12; +import 'test.partial.deserialization.dart' as prefix13; +import 'test.raw_json.dart' as prefix19; +import 'test.required.dart' as prefix14; +import 'test.scheme.dart' as prefix15; import 'test.special.cases.dart' as prefix16; -import 'test.tuple.dart' as prefix9; -import 'test.value.decorators.dart' as prefix1; +import 'test.tuple.dart' as prefix17; +import 'test.value.decorators.dart' as prefix18; +import 'test_issue_225.dart' as prefix21; +import 'test_issue_234.dart' as prefix20; +// ignore_for_file: camel_case_types +// ignore_for_file: implementation_imports // ignore_for_file: prefer_adjacent_string_concatenation // ignore_for_file: prefer_collection_literals // ignore_for_file: unnecessary_const -// ignore_for_file: implementation_imports +// ignore_for_file: unused_import +// ignore_for_file: sdk_version_since -// ignore:unused_import import 'package:reflectable/mirrors.dart' as m; -// ignore:unused_import import 'package:reflectable/src/reflectable_builder_based.dart' as r; -// ignore:unused_import import 'package:reflectable/reflectable.dart' as r show Reflectable; -final _data = {const prefix0.JsonSerializable(): r.ReflectorData([r.NonGenericClassMirrorImpl(r'NavbarTab', r'.NavbarTab', 7, 0, const prefix0.JsonSerializable(), const [0, 1, 2, 319], const [320, 321, 322, 323, 324, 316, 317, 318], const [], -1, {}, {}, {r'': (bool b) => ({icon, title, on}) => b ? prefix1.NavbarTab(icon: icon, on: on, title: title) : null}, -1, 0, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'NavbarConfig', r'.NavbarConfig', 7, 1, const prefix0.JsonSerializable(), const [3, 4, 5, 6, 7, 330], const [320, 321, 322, 323, 324, 325, 326, 327, 328, 329], const [], -1, {}, {}, {r'': (bool b) => ({tabs, activeColor, inactiveColor, backgroundColor, fontSize}) => b ? prefix1.NavbarConfig(activeColor: activeColor, backgroundColor: backgroundColor, fontSize: fontSize, inactiveColor: inactiveColor, tabs: tabs) : null}, -1, 1, const [], const [prefix0.jsonSerializable, const prefix0.Json(valueDecorators: prefix1.NavbarConfig.valueDecorators)], null), r.NonGenericClassMirrorImpl(r'NoticeItem', r'.NoticeItem', 7, 2, const prefix0.JsonSerializable(), const [331], const [320, 321, 322, 323, 324], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix1.NoticeItem() : null}, -1, 2, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'NoticeList', r'.NoticeList', 7, 3, const prefix0.JsonSerializable(), const [8, 334], const [320, 321, 322, 323, 324, 332, 333], const [], -1, {}, {}, {r'': (bool b) => (list) => b ? prefix1.NoticeList(list) : null}, -1, 3, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'TestChain', r'.TestChain', 7, 4, const prefix0.JsonSerializable(), const [335], const [320, 321, 322, 323, 324, 336, 337], const [], 5, {}, {}, {r'': (bool b) => () => b ? prefix1.TestChain() : null}, -1, 4, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'_TestChain', r'._TestChain', 551, 5, const prefix0.JsonSerializable(), const [9, 338], const [320, 321, 322, 323, 324, 336, 337], const [], -1, {}, {}, {}, -1, 5, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Customer', r'.Customer', 7, 6, const prefix0.JsonSerializable(), const [10, 11, 341], const [320, 321, 322, 323, 324, 339, 340], const [], -1, {}, {}, {r'': (bool b) => (id, name) => b ? prefix1.Customer(id, name) : null}, -1, 6, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ServiceOrderItemModel', r'.ServiceOrderItemModel', 7, 7, const prefix0.JsonSerializable(), const [12, 13, 14, 345], const [320, 321, 322, 323, 324, 342, 343, 344], const [], -1, {}, {}, {r'': (bool b) => ({id, sequence, description}) => b ? prefix1.ServiceOrderItemModel(description: description, id: id, sequence: sequence) : null}, -1, 7, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ServiceOrderModel', r'.ServiceOrderModel', 7, 8, const prefix0.JsonSerializable(), const [15, 16, 17, 18, 19, 20, 21, 22, 23, 364], const [320, 321, 322, 323, 324, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363], const [], -1, {}, {}, {r'': (bool b) => ({id, number, customerId, expertId, start, end, resume, customer, items}) => b ? prefix1.ServiceOrderModel(customer: customer, customerId: customerId, end: end, expertId: expertId, id: id, items: items, number: number, resume: resume, start: start) : null}, -1, 8, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Item', r'.Item', 7, 9, const prefix0.JsonSerializable(), const [365], const [320, 321, 322, 323, 324], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix1.Item() : null}, -1, 9, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ListOfLists', r'.ListOfLists', 7, 10, const prefix0.JsonSerializable(), const [24, 368], const [320, 321, 322, 323, 324, 366, 367], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix1.ListOfLists() : null}, -1, 10, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ListOfListsWithConstructor', r'.ListOfListsWithConstructor', 7, 11, const prefix0.JsonSerializable(), const [25, 371], const [320, 321, 322, 323, 324, 369, 370], const [], -1, {}, {}, {r'': (bool b) => (lists) => b ? prefix1.ListOfListsWithConstructor(lists) : null}, -1, 11, const [], const [prefix0.jsonSerializable, const prefix0.Json(valueDecorators: prefix1.ListOfListsWithConstructor.valueDecorators)], null), r.NonGenericClassMirrorImpl(r'NameCaseObjectOverride', r'.NameCaseObjectOverride', 7, 12, const prefix0.JsonSerializable(), const [26, 27, 28, 29, 380], const [320, 321, 322, 323, 324, 372, 373, 374, 375, 376, 377, 378, 379], const [], -1, {}, {}, {r'': (bool b) => ({mainTitle, description, hasMainProperty, primaryColor}) => b ? prefix2.NameCaseObjectOverride(description: description, hasMainProperty: hasMainProperty, mainTitle: mainTitle, primaryColor: primaryColor) : null}, -1, 12, const [], const [prefix0.jsonSerializable, const prefix0.Json(caseStyle: prefix22.CaseStyle.kebab)], null), r.NonGenericClassMirrorImpl(r'NameCaseObject', r'.NameCaseObject', 7, 13, const prefix0.JsonSerializable(), const [30, 31, 32, 33, 389], const [320, 321, 322, 323, 324, 381, 382, 383, 384, 385, 386, 387, 388], const [], -1, {}, {}, {r'': (bool b) => ({mainTitle, description, hasMainProperty, primaryColor = prefix20.Color.grayMetallic}) => b ? prefix2.NameCaseObject(description: description, hasMainProperty: hasMainProperty, mainTitle: mainTitle, primaryColor: primaryColor) : null}, -1, 13, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'A', r'.A', 519, 14, const prefix0.JsonSerializable(), const [390], const [320, 321, 322, 323, 324], const [], -1, {}, {}, {}, -1, 14, const [], const [const prefix0.Json(discriminatorProperty: 'type'), prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'C', r'.C', 7, 15, const prefix0.JsonSerializable(), const [391], const [320, 321, 322, 323, 324], const [], 144, {}, {}, {r'': (bool b) => () => b ? prefix3.C() : null}, -1, 15, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'MixinContainer', r'.MixinContainer', 7, 16, const prefix0.JsonSerializable(), const [34, 35, 394], const [320, 321, 322, 323, 324, 392, 393], const [], -1, {}, {}, {r'': (bool bb) => (ints, b) => bb ? prefix3.MixinContainer(ints, b) : null}, -1, 16, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ShortEnumConverter', r'.ShortEnumConverter', 7, 17, const prefix0.JsonSerializable(), const [36, 397], const [320, 321, 322, 323, 324, 395, 396], const [], -1, {}, {}, {r'': (bool b) => ({party}) => b ? prefix4.ShortEnumConverter(party: party) : null}, -1, 17, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'EnumMappingsOverrideTest', r'.EnumMappingsOverrideTest', 7, 18, const prefix0.JsonSerializable(), const [37, 400], const [320, 321, 322, 323, 324, 398, 399], const [], -1, {}, {}, {r'': (bool b) => ({parties}) => b ? prefix4.EnumMappingsOverrideTest(parties: parties) : null}, -1, 18, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'EnumIterables', r'.EnumIterables', 7, 19, const prefix0.JsonSerializable(), const [38, 39, 40, 41, 42, 43, 44, 415], const [320, 321, 322, 323, 324, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix4.EnumIterables() : null}, -1, 19, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'EnumIterablesWithConstructor', r'.EnumIterablesWithConstructor', 7, 20, const prefix0.JsonSerializable(), const [45, 46, 420], const [320, 321, 322, 323, 324, 416, 417, 418, 419], const [], -1, {}, {}, {r'': (bool b) => ({colors, colorsSet}) => b ? prefix4.EnumIterablesWithConstructor(colors: colors, colorsSet: colorsSet) : null}, -1, 20, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'StylingModel', r'.StylingModel', 7, 21, const prefix0.JsonSerializable(), const [47, 422], const [320, 321, 322, 323, 324, 421], const [], -1, {}, {}, {r'': (bool b) => ({primary}) => b ? prefix4.StylingModel(primary: primary) : null}, -1, 21, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'DefaultCategory', r'.DefaultCategory', 7, 22, const prefix0.JsonSerializable(), const [48, 425], const [320, 321, 322, 323, 324, 423, 424], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix4.DefaultCategory() : null}, -1, 22, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Split', r'.Split', 7, 23, const prefix0.JsonSerializable(), const [49, 428], const [320, 321, 322, 323, 324, 426, 427], const [], -1, {}, {}, {r'': (bool b) => (values) => b ? prefix4.Split(values) : null}, -1, 23, const [], const [prefix0.jsonSerializable, const prefix0.Json(valueDecorators: prefix4.Split.valueDecorators)], null), r.NonGenericClassMirrorImpl(r'SplitModel', r'.SplitModel', 7, 24, const prefix0.JsonSerializable(), const [50, 430], const [320, 321, 322, 323, 324, 429], const [], -1, {}, {}, {r'': (bool b) => (values) => b ? prefix4.SplitModel(values) : null}, -1, 24, const [], const [prefix0.jsonSerializable, const prefix0.Json(valueDecorators: prefix4.SplitModel.valueDecorators)], null), r.NonGenericClassMirrorImpl(r'Category', r'.Category', 524295, 25, const prefix0.JsonSerializable(), const [431], const [320, 431, 322, 323, 324, 432], const [], -1, {}, {}, {}, -1, 25, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'MyCar', r'.MyCar', 7, 26, const prefix0.JsonSerializable(), const [433], const [320, 321, 322, 323, 324, 434, 435, 436, 437, 438, 439], const [], 138, {}, {}, {r'': (bool b) => (model, color) => b ? prefix5.MyCar(model, color) : null}, -1, 26, const [], const [prefix0.jsonSerializable, const prefix0.Json(allowCircularReferences: 1)], null), r.NonGenericClassMirrorImpl(r'Device', r'.Device', 7, 27, const prefix0.JsonSerializable(), const [440], const [320, 321, 322, 323, 324], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix5.Device() : null}, -1, 27, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'UserSettings', r'.UserSettings', 7, 28, const prefix0.JsonSerializable(), const [55, 443], const [320, 321, 322, 323, 324, 441, 442], const [], -1, {}, {}, {r'': (bool b) => (devices) => b ? prefix5.UserSettings(devices) : null}, -1, 28, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'UnAnnotatedEnumField', r'.UnAnnotatedEnumField', 7, 29, const prefix0.JsonSerializable(), const [56, 446], const [320, 321, 322, 323, 324, 444, 445], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix5.UnAnnotatedEnumField() : null}, -1, 29, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ObjectWithRequiredField', r'.ObjectWithRequiredField', 7, 30, const prefix0.JsonSerializable(), const [57, 58, 451], const [320, 321, 322, 323, 324, 447, 448, 449, 450], const [], -1, {}, {}, {r'': (bool b) => ({value, value2}) => b ? prefix5.ObjectWithRequiredField(value: value, value2: value2) : null}, -1, 30, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ObjectWithRequiredNullableField', r'.ObjectWithRequiredNullableField', 7, 31, const prefix0.JsonSerializable(), const [59, 60, 456], const [320, 321, 322, 323, 324, 452, 453, 454, 455], const [], -1, {}, {}, {r'': (bool b) => ({value, value2}) => b ? prefix5.ObjectWithRequiredNullableField(value: value, value2: value2) : null}, -1, 31, const [], const [prefix0.jsonSerializable, const prefix0.Json(ignoreNullMembers: true)], null), r.NonGenericClassMirrorImpl(r'IgnoreMembers', r'.IgnoreMembers', 7, 32, const prefix0.JsonSerializable(), const [61, 62, 461], const [320, 321, 322, 323, 324, 457, 458, 459, 460], const [], -1, {}, {}, {r'': (bool b) => ({name, title}) => b ? prefix6.IgnoreMembers(name: name, title: title) : null}, -1, 32, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'FieldAliasObject', r'.FieldAliasObject', 7, 33, const prefix0.JsonSerializable(), const [63, 463], const [320, 321, 322, 323, 324, 462], const [], -1, {}, {}, {r'': (bool b) => ({name}) => b ? prefix6.FieldAliasObject(name: name) : null}, -1, 33, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'AnyObject', r'.AnyObject', 519, 34, const prefix0.JsonSerializable(), const [64, 465], const [320, 321, 322, 323, 324, 464], const [], -1, {}, {}, {}, -1, 34, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'UnmappedProperties', r'.UnmappedProperties', 7, 35, const prefix0.JsonSerializable(), const [65, 66, 466, 467, 472], const [320, 321, 322, 323, 324, 464, 466, 467, 468, 469, 470, 471], const [], 34, {}, {}, {r'': (bool b) => () => b ? prefix6.UnmappedProperties() : null}, -1, 35, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'AllPrivateFields', r'.AllPrivateFields', 7, 36, const prefix0.JsonSerializable(), const [473, 474, 475, 476, 477], const [320, 321, 322, 323, 324, 473, 474, 475, 476], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix6.AllPrivateFields() : null}, -1, 36, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Pagination', r'.Pagination', 7, 37, const prefix0.JsonSerializable(), const [67, 68, 69, 484], const [320, 321, 322, 323, 324, 478, 479, 480, 481, 482, 483], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix6.Pagination() : null}, -1, 37, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Cars', r'.Cars', 7, 38, const prefix0.JsonSerializable(), const [70, 71, 489], const [320, 321, 322, 323, 324, 485, 486, 487, 488], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix6.Cars() : null}, -1, 38, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'CarsPrefix', r'.CarsPrefix', 7, 39, const prefix0.JsonSerializable(), const [72, 73, 494], const [320, 321, 322, 323, 324, 490, 491, 492, 493], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix6.CarsPrefix() : null}, -1, 39, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'CarsPrefixSnake', r'.CarsPrefixSnake', 7, 40, const prefix0.JsonSerializable(), const [74, 75, 499], const [320, 321, 322, 323, 324, 495, 496, 497, 498], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix6.CarsPrefixSnake() : null}, -1, 40, const [], const [prefix0.jsonSerializable, const prefix0.Json(caseStyle: prefix22.CaseStyle.snake)], null), r.NonGenericClassMirrorImpl(r'Feature', r'.Feature', 7, 41, const prefix0.JsonSerializable(), const [76, 77, 78, 79, 508], const [320, 321, 322, 323, 324, 500, 501, 502, 503, 504, 505, 506, 507], const [], -1, {}, {}, {r'': (bool b) => ({name, id}) => b ? prefix7.Feature(id: id, name: name) : null}, -1, 41, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Product', r'.Product', 7, 42, const prefix0.JsonSerializable(), const [80, 81, 82, 83, 517], const [320, 321, 322, 323, 324, 509, 510, 511, 512, 513, 514, 515, 516], const [], -1, {}, {}, {r'': (bool b) => ({name, id, features}) => b ? prefix7.Product(features: features, id: id, name: name) : null}, -1, 42, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ProductCategory', r'.ProductCategory', 7, 43, const prefix0.JsonSerializable(), const [84, 85, 86, 524], const [320, 321, 322, 323, 324, 518, 519, 520, 521, 522, 523], const [], -1, {}, {}, {r'': (bool b) => ({id, name, products}) => b ? prefix7.ProductCategory(id: id, name: name, products: products) : null}, -1, 43, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'RootObject', r'.RootObject', 7, 44, const prefix0.JsonSerializable(), const [87, 527], const [320, 321, 322, 323, 324, 525, 526], const [], -1, {}, {}, {r'': (bool b) => ({items}) => b ? prefix7.RootObject(items: items) : null}, -1, 44, const [], const [prefix0.jsonSerializable, const prefix0.Json(name: 'root/foo/bar')], null), r.NonGenericClassMirrorImpl(r'DeepNestedList', r'.DeepNestedList', 7, 45, const prefix0.JsonSerializable(), const [88, 530], const [320, 321, 322, 323, 324, 528, 529], const [], -1, {}, {}, {r'': (bool b) => ({items}) => b ? prefix7.DeepNestedList(items: items) : null}, -1, 45, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'DeepNestedInt', r'.DeepNestedInt', 7, 46, const prefix0.JsonSerializable(), const [89, 533], const [320, 321, 322, 323, 324, 531, 532], const [], -1, {}, {}, {r'': (bool b) => ({count}) => b ? prefix7.DeepNestedInt(count: count) : null}, -1, 46, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'NestedListItem', r'.NestedListItem', 7, 47, const prefix0.JsonSerializable(), const [90, 91, 92, 93, 542], const [320, 321, 322, 323, 324, 534, 535, 536, 537, 538, 539, 540, 541], const [], -1, {}, {}, {r'': (bool b) => ({count, count2, count3, cd}) => b ? prefix7.NestedListItem(cd: cd, count: count, count2: count2, count3: count3) : null}, -1, 47, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ListDelimiter', r'.ListDelimiter', 7, 48, const prefix0.JsonSerializable(), const [94, 545], const [320, 321, 322, 323, 324, 543, 544], const [], -1, {}, {}, {r'': (bool b) => ({list}) => b ? prefix8.ListDelimiter(list: list) : null}, -1, 48, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'MyClass', r'.MyClass', 7, 49, const prefix0.JsonSerializable(), const [95, 96, 550], const [320, 321, 322, 323, 324, 546, 547, 548, 549], const [], -1, {}, {}, {r'': (bool b) => (enumA, enumB) => b ? prefix8.MyClass(enumA, enumB) : null}, -1, 49, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'MyClassWoConstructor', r'.MyClassWoConstructor', 7, 50, const prefix0.JsonSerializable(), const [97, 98, 555], const [320, 321, 322, 323, 324, 551, 552, 553, 554], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix8.MyClassWoConstructor() : null}, -1, 50, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'BinaryData', r'.BinaryData', 7, 51, const prefix0.JsonSerializable(), const [99, 558], const [320, 321, 322, 323, 324, 556, 557], const [], -1, {}, {}, {r'': (bool b) => (data) => b ? prefix8.BinaryData(data) : null}, -1, 51, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'BigIntData', r'.BigIntData', 7, 52, const prefix0.JsonSerializable(), const [100, 561], const [320, 321, 322, 323, 324, 559, 560], const [], -1, {}, {}, {r'': (bool b) => (bigInt) => b ? prefix8.BigIntData(bigInt) : null}, -1, 52, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Model', r'.Model', 7, 53, const prefix0.JsonSerializable(), const [101, 564], const [320, 321, 322, 323, 324, 562, 563], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix8.Model() : null}, -1, 53, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'DurationModel', r'.DurationModel', 7, 54, const prefix0.JsonSerializable(), const [102, 567], const [320, 321, 322, 323, 324, 565, 566], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix8.DurationModel() : null}, -1, 54, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'NumericEnum', r'.NumericEnum', 7, 55, const prefix0.JsonSerializable(), const [103, 570], const [320, 321, 322, 323, 324, 568, 569], const [], -1, {}, {}, {r'': (bool b) => (color) => b ? prefix8.NumericEnum(color) : null}, -1, 55, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ListItem', r'.ListItem', 7, 56, const prefix0.JsonSerializable(), const [571], const [320, 321, 322, 323, 324], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix8.ListItem() : null}, -1, 56, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'CustomListContainer', r'.CustomListContainer', 7, 57, const prefix0.JsonSerializable(), const [104, 105, 576], const [320, 321, 322, 323, 324, 572, 573, 574, 575], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix8.CustomListContainer() : null}, -1, 57, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'InlineJsonContainer', r'.InlineJsonContainer', 7, 58, const prefix0.JsonSerializable(), const [106, 579], const [320, 321, 322, 323, 324, 577, 578], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix8.InlineJsonContainer() : null}, -1, 58, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'DateTimeContainer', r'.DateTimeContainer', 7, 59, const prefix0.JsonSerializable(), const [107, 582], const [320, 321, 322, 323, 324, 580, 581], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix8.DateTimeContainer() : null}, -1, 59, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'MethodResponse', r'.MethodResponse', 7, 60, const prefix0.JsonSerializable(), const [108, 585], const [320, 321, 322, 323, 324, 583, 584], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix8.MethodResponse() : null}, -1, 60, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'MyEnumA', r'.MyEnumA', 524295, 61, const prefix0.JsonSerializable(), const [586], const [320, 586, 322, 323, 324, 587], const [], -1, {}, {}, {}, -1, 61, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'MyEnumB', r'.MyEnumB', 524295, 62, const prefix0.JsonSerializable(), const [588], const [320, 588, 322, 323, 324, 589], const [], -1, {}, {}, {}, -1, 62, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'NumericEnumTestColor', r'.NumericEnumTestColor', 524295, 63, const prefix0.JsonSerializable(), const [590], const [320, 590, 322, 323, 324, 591], const [], -1, {}, {}, {}, -1, 63, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'MyEnum', r'.MyEnum', 524295, 64, const prefix0.JsonSerializable(), const [592], const [320, 592, 322, 323, 324, 593], const [], -1, {}, {}, {}, -1, 64, const [], const [prefix0.jsonSerializable], null), r.GenericClassMirrorImpl(r'Tuple', r'.Tuple', 7, 65, const prefix0.JsonSerializable(), const [113, 114, 596, 597], const [320, 321, 322, 323, 324, 594, 595], const [], -1, {}, {}, {r'': (bool b) => (value1, value2) => b ? prefix9.Tuple(value1, value2) : null, r'of': (bool b) => (other) => b ? prefix9.Tuple.of(other) : null}, -1, 65, const [], const [prefix0.jsonSerializable], null, (o) { return o is prefix9.Tuple; }, const [145, 146], 65), r.NonGenericClassMirrorImpl(r'ConcreteClass', r'.ConcreteClass', 7, 66, const prefix0.JsonSerializable(), const [115, 116, 600], const [320, 321, 322, 323, 324, 598, 599], const [], -1, {}, {}, {r'': (bool b) => (tuple1, tuple2) => b ? prefix9.ConcreteClass(tuple1, tuple2) : null}, -1, 66, const [], const [prefix0.jsonSerializable, const prefix0.Json(valueDecorators: prefix9.ConcreteClass.valueDecorators)], null), r.NonGenericClassMirrorImpl(r'UserX', r'.UserX', 7, 67, const prefix0.JsonSerializable(), const [117, 118, 603], const [320, 321, 322, 323, 324, 601, 602], const [], -1, {}, {}, {r'': (bool b) => (id, type) => b ? prefix10.UserX(id, type) : null}, -1, 67, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'CropArea', r'.CropArea', 7, 68, const prefix0.JsonSerializable(), const [119, 120, 121, 122, 612], const [320, 321, 322, 323, 324, 604, 605, 606, 607, 608, 609, 610, 611], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix11.CropArea() : null}, -1, 68, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ImmutableDefault', r'.ImmutableDefault', 7, 69, const prefix0.JsonSerializable(), const [123, 124, 125, 126, 617], const [320, 321, 322, 323, 324, 613, 614, 615, 616], const [], -1, {}, {}, {r'': (bool b) => ({cropArea, id, name, car}) => b ? prefix11.ImmutableDefault(car: car, cropArea: cropArea, id: id, name: name) : null}, -1, 69, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'DefaultFields', r'.DefaultFields', 7, 70, const prefix0.JsonSerializable(), const [127, 128, 622], const [320, 321, 322, 323, 324, 618, 619, 620, 621], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix11.DefaultFields() : null}, -1, 70, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ManyDefaultFields', r'.ManyDefaultFields', 7, 71, const prefix0.JsonSerializable(), const [129, 130, 627], const [320, 321, 322, 323, 324, 623, 624, 625, 626], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix11.ManyDefaultFields() : null}, -1, 71, const [], const [prefix0.jsonSerializable, const prefix0.Json(ignoreDefaultMembers: true)], null), r.NonGenericClassMirrorImpl(r'GlobalDefaultFields', r'.GlobalDefaultFields', 7, 72, const prefix0.JsonSerializable(), const [131, 132, 632], const [320, 321, 322, 323, 324, 628, 629, 630, 631], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix11.GlobalDefaultFields() : null}, -1, 72, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'BusinessObject', r'.BusinessObject', 7, 73, const prefix0.JsonSerializable(), const [133, 134, 635, 636], const [320, 321, 322, 323, 324, 633, 634], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix12.BusinessObject() : null, r'fromJson': (bool b) => (processed) => b ? prefix12.BusinessObject.fromJson(processed) : null}, -1, 73, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'LogisticsItem', r'.LogisticsItem', 7, 74, const prefix0.JsonSerializable(), const [135, 136, 639], const [320, 321, 322, 323, 324, 637, 638], const [], -1, {}, {}, {r'': (bool b) => (processed) => b ? prefix12.LogisticsItem(processed) : null}, -1, 74, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'User', r'.User', 7, 75, const prefix0.JsonSerializable(), const [137, 642], const [320, 321, 322, 323, 324, 640, 641], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix12.User() : null}, -1, 75, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Fo', r'.Fo', 7, 76, const prefix0.JsonSerializable(), const [138, 139, 645], const [320, 321, 322, 323, 324, 643, 644], const [], -1, {}, {}, {r'': (bool b) => (bar, message) => b ? prefix12.Fo(bar, message) : null}, -1, 76, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Bar', r'.Bar', 7, 77, const prefix0.JsonSerializable(), const [140, 647], const [320, 321, 322, 323, 324, 646], const [], -1, {}, {}, {r'': (bool b) => (baz) => b ? prefix12.Bar(baz) : null}, -1, 77, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Baz', r'.Baz', 7, 78, const prefix0.JsonSerializable(), const [648], const [320, 321, 322, 323, 324], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix12.Baz() : null}, -1, 78, const [], const [prefix0.jsonSerializable], null), r.GenericClassMirrorImpl(r'Base', r'.Base', 7, 79, const prefix0.JsonSerializable(), const [141, 650], const [320, 321, 322, 323, 324, 649], const [], -1, {}, {}, {r'': (bool b) => (value) => b ? prefix12.Base(value) : null}, -1, 79, const [], const [prefix0.jsonSerializable], null, (o) { return o is prefix12.Base && o is! prefix12.Derived && o is! prefix12.PtDerived && o is! prefix12.PtDerived2; }, const [147], 79), r.NonGenericClassMirrorImpl(r'Derived', r'.Derived', 7, 80, const prefix0.JsonSerializable(), const [651], const [320, 321, 322, 323, 324, 649], const [], 79, {}, {}, {r'': (bool b) => (value) => b ? prefix12.Derived(value) : null}, -1, 80, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Pt', r'.Pt', 7, 81, const prefix0.JsonSerializable(), const [652], const [320, 321, 322, 323, 324], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix12.Pt() : null}, -1, 81, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'PtDerived', r'.PtDerived', 7, 82, const prefix0.JsonSerializable(), const [653], const [320, 321, 322, 323, 324, 649], const [], 79, {}, {}, {r'': (bool b) => (value) => b ? prefix12.PtDerived(value) : null}, -1, 82, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'PtDerived2', r'.PtDerived2', 7, 83, const prefix0.JsonSerializable(), const [142, 655], const [320, 321, 322, 323, 324, 649, 654], const [], 79, {}, {}, {r'': (bool b) => (pt) => b ? prefix12.PtDerived2(pt) : null}, -1, 83, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'StringListClass', r'.StringListClass', 7, 84, const prefix0.JsonSerializable(), const [143, 658], const [320, 321, 322, 323, 324, 656, 657], const [], -1, {}, {}, {r'': (bool b) => (list) => b ? prefix12.StringListClass(list) : null}, -1, 84, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'PositionalParametersClass', r'.PositionalParametersClass', 7, 85, const prefix0.JsonSerializable(), const [144, 145, 663], const [320, 321, 322, 323, 324, 659, 660, 661, 662], const [], -1, {}, {}, {r'': (bool b) => (firstName, lastName) => b ? prefix12.PositionalParametersClass(firstName, lastName) : null}, -1, 85, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'OptionalParametersClass', r'.OptionalParametersClass', 7, 86, const prefix0.JsonSerializable(), const [146, 147, 668], const [320, 321, 322, 323, 324, 664, 665, 666, 667], const [], -1, {}, {}, {r'': (bool b) => ([firstName, lastName]) => b ? prefix12.OptionalParametersClass(firstName, lastName) : null}, -1, 86, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'PartiallyOptionalParametersClass', r'.PartiallyOptionalParametersClass', 7, 87, const prefix0.JsonSerializable(), const [148, 149, 673], const [320, 321, 322, 323, 324, 669, 670, 671, 672], const [], -1, {}, {}, {r'': (bool b) => (firstName, [lastName]) => b ? prefix12.PartiallyOptionalParametersClass(firstName, lastName) : null}, -1, 87, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'NamedParametersClass', r'.NamedParametersClass', 7, 88, const prefix0.JsonSerializable(), const [150, 151, 678], const [320, 321, 322, 323, 324, 674, 675, 676, 677], const [], -1, {}, {}, {r'': (bool b) => ({firstName, lastName}) => b ? prefix12.NamedParametersClass(firstName: firstName, lastName: lastName) : null}, -1, 88, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'IgnoreNullMembersClass', r'.IgnoreNullMembersClass', 7, 89, const prefix0.JsonSerializable(), const [152, 153, 154, 685], const [320, 321, 322, 323, 324, 679, 680, 681, 682, 683, 684], const [], -1, {}, {}, {r'': (bool b) => ({firstName, middleName, lastName}) => b ? prefix12.IgnoreNullMembersClass(firstName: firstName, lastName: lastName, middleName: middleName) : null}, -1, 89, const [], const [prefix0.jsonSerializable, const prefix0.Json(ignoreNullMembers: true)], null), r.NonGenericClassMirrorImpl(r'IgnoreNullMembersFromOptionsClass', r'.IgnoreNullMembersFromOptionsClass', 7, 90, const prefix0.JsonSerializable(), const [155, 156, 157, 692], const [320, 321, 322, 323, 324, 686, 687, 688, 689, 690, 691], const [], -1, {}, {}, {r'': (bool b) => ({firstName, middleName, lastName}) => b ? prefix12.IgnoreNullMembersFromOptionsClass(firstName: firstName, lastName: lastName, middleName: middleName) : null}, -1, 90, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'IgnoredFieldClass', r'.IgnoredFieldClass', 7, 91, const prefix0.JsonSerializable(), const [158, 159, 160, 699], const [320, 321, 322, 323, 324, 693, 694, 695, 696, 697, 698], const [], -1, {}, {}, {r'': (bool b) => ({firstName, middleName, lastName}) => b ? prefix12.IgnoredFieldClass(firstName: firstName, lastName: lastName, middleName: middleName) : null}, -1, 91, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'IgnoredFieldClassWoConstructor', r'.IgnoredFieldClassWoConstructor', 7, 92, const prefix0.JsonSerializable(), const [161, 162, 163, 706], const [320, 321, 322, 323, 324, 700, 701, 702, 703, 704, 705], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix12.IgnoredFieldClassWoConstructor() : null}, -1, 92, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ImmutableDefault2', r'.ImmutableDefault2', 7, 93, const prefix0.JsonSerializable(), const [164, 165, 166, 710], const [320, 321, 322, 323, 324, 707, 708, 709], const [], -1, {}, {}, {r'': (bool b) => ({id, name, car}) => b ? prefix12.ImmutableDefault2(car: car, id: id, name: name) : null}, -1, 93, const [], const [prefix0.jsonSerializable, const prefix0.Json(processAnnotatedMembersOnly: true)], null), r.NonGenericClassMirrorImpl(r'Record', r'.Record', 7, 94, const prefix0.JsonSerializable(), const [167, 168, 711, 716], const [320, 711, 322, 323, 324, 712, 713, 714, 715], const [], -1, {}, {}, {r'json': (bool b) => (id, number) => b ? prefix12.Record.json(id, number) : null}, -1, 94, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'GrandParent', r'.GrandParent', 7, 95, const prefix0.JsonSerializable(), const [169, 719], const [320, 321, 322, 323, 324, 717, 718], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix12.GrandParent() : null}, -1, 95, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Parent', r'.Parent', 7, 96, const prefix0.JsonSerializable(), const [170, 171, 172, 726], const [320, 321, 322, 323, 324, 720, 721, 722, 723, 724, 725], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix12.Parent() : null}, -1, 96, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Child', r'.Child', 7, 97, const prefix0.JsonSerializable(), const [173, 174, 731], const [320, 321, 322, 323, 324, 727, 728, 729, 730], const [], -1, {}, {}, {r'': (bool b) => (parent) => b ? prefix12.Child(parent) : null}, -1, 97, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Parent2', r'.Parent2', 7, 98, const prefix0.JsonSerializable(), const [175, 176, 736], const [320, 321, 322, 323, 324, 732, 733, 734, 735], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix12.Parent2() : null}, -1, 98, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Child2', r'.Child2', 7, 99, const prefix0.JsonSerializable(), const [177, 178, 741], const [320, 321, 322, 323, 324, 737, 738, 739, 740], const [], -1, {}, {}, {r'json': (bool b) => (parent) => b ? prefix12.Child2.json(parent) : null}, -1, 99, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Parent3', r'.Parent3', 7, 100, const prefix0.JsonSerializable(), const [179, 180, 746], const [320, 321, 322, 323, 324, 742, 743, 744, 745], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix12.Parent3() : null}, -1, 100, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Child3', r'.Child3', 7, 101, const prefix0.JsonSerializable(), const [181, 182, 751], const [320, 321, 322, 323, 324, 747, 748, 749, 750], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix12.Child3() : null}, -1, 101, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Business', r'.Business', 519, 102, const prefix0.JsonSerializable(), const [752, 753], const [320, 321, 322, 323, 324], const [], -1, {}, {}, {}, -1, 102, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorProperty: 'type')], null), r.NonGenericClassMirrorImpl(r'Hotel', r'.Hotel', 7, 103, const prefix0.JsonSerializable(), const [183, 756, 757], const [320, 321, 322, 323, 324, 754, 755, 756], const [], 102, {}, {}, {r'': (bool b) => (stars) => b ? prefix13.Hotel(stars) : null}, -1, 103, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorValue: prefix13.BusinessType.private)], null), r.NonGenericClassMirrorImpl(r'Startup', r'.Startup', 7, 104, const prefix0.JsonSerializable(), const [184, 760, 761], const [320, 321, 322, 323, 324, 758, 759, 760], const [], 102, {}, {}, {r'': (bool b) => (userCount) => b ? prefix13.Startup(userCount) : null}, -1, 104, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorValue: prefix13.BusinessType.public)], null), r.NonGenericClassMirrorImpl(r'Stakeholder', r'.Stakeholder', 7, 105, const prefix0.JsonSerializable(), const [185, 186, 766], const [320, 321, 322, 323, 324, 762, 763, 764, 765], const [], -1, {}, {}, {r'': (bool b) => (fullName, businesses) => b ? prefix13.Stakeholder(fullName, businesses) : null}, -1, 105, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Business2', r'.Business2', 519, 106, const prefix0.JsonSerializable(), const [187, 769], const [320, 321, 322, 323, 324, 767, 768], const [], -1, {}, {}, {}, -1, 106, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorProperty: 'type')], null), r.NonGenericClassMirrorImpl(r'Hotel2', r'.Hotel2', 7, 107, const prefix0.JsonSerializable(), const [188, 772], const [320, 321, 322, 323, 324, 767, 768, 770, 771], const [], 106, {}, {}, {r'': (bool b) => (stars) => b ? prefix13.Hotel2(stars) : null}, -1, 107, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorValue: prefix13.BusinessType.private2)], null), r.NonGenericClassMirrorImpl(r'Startup2', r'.Startup2', 7, 108, const prefix0.JsonSerializable(), const [189, 775], const [320, 321, 322, 323, 324, 767, 768, 773, 774], const [], 106, {}, {}, {r'': (bool b) => (userCount) => b ? prefix13.Startup2(userCount) : null}, -1, 108, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorValue: prefix13.BusinessType.public2)], null), r.NonGenericClassMirrorImpl(r'Stakeholder2', r'.Stakeholder2', 7, 109, const prefix0.JsonSerializable(), const [190, 191, 780], const [320, 321, 322, 323, 324, 776, 777, 778, 779], const [], -1, {}, {}, {r'': (bool b) => (fullName, businesses) => b ? prefix13.Stakeholder2(fullName, businesses) : null}, -1, 109, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'AbstractUser', r'.AbstractUser', 519, 110, const prefix0.JsonSerializable(), const [192, 781, 784], const [320, 321, 322, 323, 324, 785, 786, 782, 783], const [], -1, {}, {}, {r'': (bool b) => (id) => b ? prefix13.AbstractUser(id) : null}, -1, 110, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorProperty: '@type')], null), r.NonGenericClassMirrorImpl(r'UserImpl', r'.UserImpl', 7, 111, const prefix0.JsonSerializable(), const [194, 787, 790, 791], const [320, 321, 322, 323, 324, 785, 786, 787, 788, 789], const [], -1, {}, {}, {r'': (bool b) => ({id, email}) => b ? prefix13.UserImpl(email: email, id: id) : null, r'newUser': (bool b) => (id) => b ? prefix13.UserImpl.newUser(id) : null}, -1, 111, const [110], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'MyBaseClass', r'.MyBaseClass', 519, 112, const prefix0.JsonSerializable(), const [195, 793, 794], const [320, 321, 322, 323, 324, 792], const [], -1, {}, {}, {}, -1, 112, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'MySuperclass', r'.MySuperclass', 7, 113, const prefix0.JsonSerializable(), const [196, 796, 797], const [320, 321, 322, 323, 324, 795, 796], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix13.MySuperclass() : null}, -1, 113, const [112], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'BusinessType', r'.BusinessType', 524295, 114, const prefix0.JsonSerializable(), const [798], const [320, 798, 322, 323, 324, 799], const [], -1, {}, {}, {}, -1, 114, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Object', r'.Object', 7, 115, const prefix0.JsonSerializable(), const [198, 802], const [320, 321, 322, 323, 324, 800, 801], const [], -1, {}, {}, {r'': (bool b) => (title) => b ? prefix14.Object(title) : null}, -1, 115, const [], const [prefix0.jsonSerializable, const prefix0.Json(name: 'default'), const prefix0.Json(name: '_', scheme: prefix14.Scheme.B), const prefix0.Json(name: 'root', scheme: prefix14.Scheme.A)], null), r.NonGenericClassMirrorImpl(r'Address', r'.Address', 7, 116, const prefix0.JsonSerializable(), const [199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 825, 826], const [320, 321, 322, 323, 324, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824], const [], -1, {}, {}, {r'jsonTwo': (bool b) => () => b ? prefix14.Address.jsonTwo() : null, r'jsonOne': (bool b) => (_id, streetList, city) => b ? prefix14.Address.jsonOne(_id, streetList, city) : null}, -1, 116, const [], const [prefix0.jsonSerializable, const prefix0.Json(name: 'Address')], null), r.NonGenericClassMirrorImpl(r'ChildInjected1', r'.ChildInjected1', 7, 117, const prefix0.JsonSerializable(), const [210, 211, 212, 833], const [320, 321, 322, 323, 324, 827, 828, 829, 830, 831, 832], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix15.ChildInjected1() : null}, -1, 117, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ChildInjected2', r'.ChildInjected2', 7, 118, const prefix0.JsonSerializable(), const [213, 214, 215, 840], const [320, 321, 322, 323, 324, 834, 835, 836, 837, 838, 839], const [], -1, {}, {}, {r'': (bool b) => (parent) => b ? prefix15.ChildInjected2(parent) : null}, -1, 118, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ChildInjected3', r'.ChildInjected3', 7, 119, const prefix0.JsonSerializable(), const [216, 217, 218, 847], const [320, 321, 322, 323, 324, 841, 842, 843, 844, 845, 846], const [], -1, {}, {}, {r'': (bool b) => (parent) => b ? prefix15.ChildInjected3(parent) : null}, -1, 119, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'AA', r'.AA', 7, 120, const prefix0.JsonSerializable(), const [219, 850], const [320, 321, 322, 323, 324, 848, 849], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix16.AA() : null}, -1, 120, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'BB', r'.BB', 7, 121, const prefix0.JsonSerializable(), const [220, 853], const [320, 321, 322, 323, 324, 851, 852], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix16.BB() : null}, -1, 121, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'GetQueryParameters', r'.GetQueryParameters', 7, 122, const prefix0.JsonSerializable(), const [221, 222, 223, 224, 862], const [320, 321, 322, 323, 324, 854, 855, 856, 857, 858, 859, 860, 861], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix16.GetQueryParameters() : null}, -1, 122, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'UnbalancedGetSet', r'.UnbalancedGetSet', 7, 123, const prefix0.JsonSerializable(), const [863, 864, 865], const [320, 321, 322, 323, 324, 863, 864], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix16.UnbalancedGetSet() : null}, -1, 123, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'MyNullableFieldsExample', r'.MyNullableFieldsExample', 7, 124, const prefix0.JsonSerializable(), const [225, 226, 227, 872], const [320, 321, 322, 323, 324, 866, 867, 868, 869, 870, 871], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix17.MyNullableFieldsExample() : null}, -1, 124, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'TransactionsRequestModel', r'.TransactionsRequestModel', 7, 125, const prefix0.JsonSerializable(), const [228, 874], const [320, 321, 322, 323, 324, 873], const [], -1, {}, {}, {r'': (bool b) => ({accountType}) => b ? prefix17.TransactionsRequestModel(accountType: accountType) : null}, -1, 125, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Preferences', r'.Preferences', 7, 126, const prefix0.JsonSerializable(), const [229, 230, 231, 875, 879], const [320, 875, 322, 323, 324, 876, 877, 878], const [], -1, {}, {}, {r'': (bool b) => ({metadata, defaultCountryIsoCode, autoImportContacts}) => b ? prefix17.Preferences(autoImportContacts: autoImportContacts, defaultCountryIsoCode: defaultCountryIsoCode, metadata: metadata) : null}, -1, 126, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Metadata', r'.Metadata', 7, 127, const prefix0.JsonSerializable(), const [232, 233, 234, 880, 884], const [320, 880, 322, 323, 324, 881, 882, 883], const [], -1, {}, {}, {r'': (bool b) => ({id, createdBy, deleted = false}) => b ? prefix17.Metadata(deleted: deleted, createdBy: createdBy, id: id) : null}, -1, 127, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Foo', r'.Foo', 7, 128, const prefix0.JsonSerializable(), const [885], const [320, 321, 322, 323, 324], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix18.Foo() : null}, -1, 128, const [], const [prefix0.jsonSerializable], null), r.GenericClassMirrorImpl(r'BarBase', r'.BarBase', 7, 129, const prefix0.JsonSerializable(), const [235, 886, 887, 890], const [320, 321, 322, 323, 324, 886, 887, 888, 889], const [], -1, {}, {}, {r'': (bool b) => ({foo}) => b ? prefix18.BarBase(foo: foo) : null}, -1, 129, const [], const [prefix0.jsonSerializable], null, (o) { return o is prefix18.BarBase && o is! prefix18.Bar; }, const [148], 129), r.NonGenericClassMirrorImpl(r'Bar', r'.Bar', 7, 130, const prefix0.JsonSerializable(), const [891, 892], const [320, 321, 322, 323, 324, 886, 887, 888, 889], const [], 129, {}, {}, {r'': (bool b) => () => b ? prefix18.Bar() : null, r'of': (bool b) => (other) => b ? prefix18.Bar.of(other) : null}, -1, 130, const [], const [prefix0.jsonSerializable, const prefix0.Json(valueDecorators: prefix18.Bar.valueDecorators)], null), r.GenericClassMirrorImpl(r'EntityModel', r'.EntityModel', 7, 131, const prefix0.JsonSerializable(), const [236, 237, 238, 893, 894, 895, 896, 897, 898, 902, 903], const [320, 321, 322, 323, 324, 893, 894, 895, 896, 897, 898, 899, 900, 901], const [], -1, {}, {}, {r'': (bool b) => ({parentUuid, uuid, entity}) => b ? prefix18.EntityModel(entity: entity, parentUuid: parentUuid, uuid: uuid) : null, r'of': (bool b) => (other) => b ? prefix18.EntityModel.of(other) : null}, -1, 131, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorProperty: 'technicalName', ignoreNullMembers: true)], null, (o) { return o is prefix18.EntityModel; }, const [149], 131), r.GenericClassMirrorImpl(r'AbstractEntityModel', r'.AbstractEntityModel', 519, 132, const prefix0.JsonSerializable(), const [239, 240, 904, 905, 906, 907, 910], const [320, 321, 322, 323, 324, 906, 907, 908, 909], const [], -1, {}, {}, {}, -1, 132, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorProperty: 'technicalName', ignoreNullMembers: true)], null, (o) => false, const [150], 132), r.NonGenericClassMirrorImpl(r'MyCarModel', r'.MyCarModel', 7, 133, const prefix0.JsonSerializable(), const [241, 242, 911, 912, 915], const [320, 321, 322, 323, 324, 906, 907, 908, 909, 911, 912, 913, 914], const [], 132, {}, {}, {r'': (bool b) => ({parentUuid, uuid, model, color}) => b ? prefix18.MyCarModel(color: color, model: model, parentUuid: parentUuid, uuid: uuid) : null}, -1, 133, const [], const [prefix0.jsonSerializable], null), r.GenericClassMirrorImpl(r'ApiResult', r'.ApiResult', 7, 134, const prefix0.JsonSerializable(), const [243, 244, 916, 917, 922], const [320, 321, 322, 323, 324, 916, 917, 918, 919, 920, 921], const [], -1, {}, {}, {r'': (bool b) => ({Success, Result}) => b ? prefix18.ApiResult(Result: Result, Success: Success) : null}, -1, 134, const [], const [prefix0.jsonSerializable], null, (o) { return o is prefix18.ApiResult && o is! prefix18.ApiResultUserModel; }, const [151], 134), r.NonGenericClassMirrorImpl(r'UserModel', r'.UserModel', 7, 135, const prefix0.JsonSerializable(), const [245, 246, 927], const [320, 321, 322, 323, 324, 923, 924, 925, 926], const [], -1, {}, {}, {r'': (bool b) => ({Id, Name}) => b ? prefix18.UserModel(Id: Id, Name: Name) : null}, -1, 135, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ApiResultUserModel', r'.ApiResultUserModel', 7, 136, const prefix0.JsonSerializable(), const [928], const [320, 321, 322, 323, 324, 916, 917, 918, 919, 920, 921], const [], 134, {}, {}, {r'': (bool b) => ({Success, Result}) => b ? prefix18.ApiResultUserModel(Result: Result, Success: Success) : null}, -1, 136, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Immutable', r'.Immutable', 7, 137, const prefix0.JsonSerializable(), const [247, 248, 249, 932], const [320, 321, 322, 323, 324, 929, 930, 931], const [], -1, {}, {}, {r'': (bool b) => (id, name, car) => b ? prefix19.Immutable(id, name, car) : null}, -1, 137, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Car', r'.Car', 7, 138, const prefix0.JsonSerializable(), const [52, 53, 54, 933], const [320, 321, 322, 323, 324, 434, 435, 436, 437, 438, 439], const [], -1, {}, {}, {r'': (bool b) => (model, color) => b ? prefix20.Car(model, color) : null}, -1, 138, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Person', r'.Person', 7, 139, const prefix0.JsonSerializable(), const [250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 976, 977], const [320, 321, 322, 323, 324, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix20.Person() : null}, -1, 139, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'GettersOnly', r'.GettersOnly', 7, 140, const prefix0.JsonSerializable(), const [978, 979, 980], const [320, 321, 322, 323, 324, 978, 979], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix20.GettersOnly() : null}, -1, 140, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Color', r'.Color', 524295, 141, const prefix0.JsonSerializable(), const [981], const [320, 981, 322, 323, 324, 982], const [], -1, {}, {}, {}, -1, 141, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'SpaceTrack', r'.SpaceTrack', 7, 142, const prefix0.JsonSerializable(), const [272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 1063], const [320, 321, 322, 323, 324, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix21.SpaceTrack() : null}, -1, 142, const [], const [prefix0.jsonSerializable, const prefix0.Json(caseStyle: prefix22.CaseStyle.snakeAllCaps)], null), r.NonGenericClassMirrorImpl(r'Record', r'.Record', 7, 143, const prefix0.JsonSerializable(), const [312, 313, 314, 315, 1072], const [320, 321, 322, 323, 324, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix21.Record() : null}, -1, 143, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'.A with .B', r'..A with .B', 583, 144, const prefix0.JsonSerializable(), const [], const [320, 321, 322, 323, 324], const [], 14, const {}, const {}, const {}, -1, -1, const [], const [], null), r.TypeVariableMirrorImpl(r'T', r'.Tuple.T', const prefix0.JsonSerializable(), -1, 65, []), r.TypeVariableMirrorImpl(r'S', r'.Tuple.S', const prefix0.JsonSerializable(), -1, 65, []), r.TypeVariableMirrorImpl(r'T', r'.Base.T', const prefix0.JsonSerializable(), -1, 79, []), r.TypeVariableMirrorImpl(r'T', r'.BarBase.T', const prefix0.JsonSerializable(), -1, 129, []), r.TypeVariableMirrorImpl(r'T', r'.EntityModel.T', const prefix0.JsonSerializable(), -1, 131, []), r.TypeVariableMirrorImpl(r'T', r'.AbstractEntityModel.T', const prefix0.JsonSerializable(), -1, 132, []), r.TypeVariableMirrorImpl(r'T', r'.ApiResult.T', const prefix0.JsonSerializable(), -1, 134, [])], [r.VariableMirrorImpl(r'icon', 33797, 0, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'title', 33797, 0, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(defaultValue: 'car')]), r.VariableMirrorImpl(r'on', 33797, 0, const prefix0.JsonSerializable(), -1, 146, 146, const [], const []), r.VariableMirrorImpl(r'tabs', 2130949, 1, const prefix0.JsonSerializable(), -1, 147, 148, const [149, 0], const []), r.VariableMirrorImpl(r'activeColor', 33797, 1, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'inactiveColor', 33797, 1, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'backgroundColor', 33797, 1, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'fontSize', 33797, 1, const prefix0.JsonSerializable(), -1, 150, 150, const [], const []), r.VariableMirrorImpl(r'list', 2129925, 3, const prefix0.JsonSerializable(), -1, 151, 152, const [2], const []), r.VariableMirrorImpl(r'mailingList', 2129925, 5, const prefix0.JsonSerializable(), -1, 153, 154, const [149], const []), r.VariableMirrorImpl(r'id', 33797, 6, const prefix0.JsonSerializable(), -1, 155, 155, const [], const [const prefix0.JsonProperty(name: 'Id')]), r.VariableMirrorImpl(r'name', 33797, 6, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [const prefix0.JsonProperty(name: 'Name')]), r.VariableMirrorImpl(r'id', 33797, 7, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [const prefix0.JsonProperty(name: 'Id')]), r.VariableMirrorImpl(r'sequence', 33797, 7, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [const prefix0.JsonProperty(name: 'Sequence')]), r.VariableMirrorImpl(r'description', 33797, 7, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(name: 'Description')]), r.VariableMirrorImpl(r'id', 32773, 8, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [const prefix0.JsonProperty(name: 'Id')]), r.VariableMirrorImpl(r'number', 32773, 8, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [const prefix0.JsonProperty(name: 'Number')]), r.VariableMirrorImpl(r'customerId', 32773, 8, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [const prefix0.JsonProperty(name: 'CustomerId')]), r.VariableMirrorImpl(r'customer', 32773, 8, const prefix0.JsonSerializable(), 6, 6, 6, const [], const [const prefix0.JsonProperty(name: 'Customer')]), r.VariableMirrorImpl(r'expertId', 32773, 8, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [const prefix0.JsonProperty(name: 'ExpertId')]), r.VariableMirrorImpl(r'start', 32773, 8, const prefix0.JsonSerializable(), -1, 157, 157, const [], const [const prefix0.JsonProperty(name: 'Start')]), r.VariableMirrorImpl(r'items', 2129925, 8, const prefix0.JsonSerializable(), -1, 158, 159, const [7], const [const prefix0.JsonProperty(name: 'Items')]), r.VariableMirrorImpl(r'end', 32773, 8, const prefix0.JsonSerializable(), -1, 157, 157, const [], const [const prefix0.JsonProperty(name: 'End')]), r.VariableMirrorImpl(r'resume', 32773, 8, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(name: 'Resume')]), r.VariableMirrorImpl(r'lists', 2129925, 10, const prefix0.JsonSerializable(), -1, 160, 161, const [162], const []), r.VariableMirrorImpl(r'lists', 2129925, 11, const prefix0.JsonSerializable(), -1, 163, 164, const [162], const []), r.VariableMirrorImpl(r'mainTitle', 32773, 12, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'description', 32773, 12, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'hasMainProperty', 32773, 12, const prefix0.JsonSerializable(), -1, 146, 146, const [], const []), r.VariableMirrorImpl(r'primaryColor', 32773, 12, const prefix0.JsonSerializable(), 141, 141, 141, const [], const []), r.VariableMirrorImpl(r'mainTitle', 32773, 13, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'description', 32773, 13, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'hasMainProperty', 32773, 13, const prefix0.JsonSerializable(), -1, 146, 146, const [], const []), r.VariableMirrorImpl(r'primaryColor', 32773, 13, const prefix0.JsonSerializable(), 141, 141, 141, const [], const []), r.VariableMirrorImpl(r'ints', 2130949, 16, const prefix0.JsonSerializable(), -1, 165, 166, const [155], const []), r.VariableMirrorImpl(r'b', 33797, 16, const prefix0.JsonSerializable(), -1, 167, 167, const [], const []), r.VariableMirrorImpl(r'party', 32773, 17, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(converterParams: const {prefix4.ThirdParty.B: 'Be'})]), r.VariableMirrorImpl(r'parties', 2129925, 18, const prefix0.JsonSerializable(), -1, 169, 170, const [171], const [const prefix0.JsonProperty(converterParams: const {prefix4.ThirdParty.B: 'Be'})]), r.VariableMirrorImpl(r'party', 32773, 19, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'color', 32773, 19, const prefix0.JsonSerializable(), 141, 141, 141, const [], const []), r.VariableMirrorImpl(r'parties', 2129925, 19, const prefix0.JsonSerializable(), -1, 172, 173, const [171], const []), r.VariableMirrorImpl(r'colors', 2129925, 19, const prefix0.JsonSerializable(), -1, 174, 175, const [141], const []), r.VariableMirrorImpl(r'colorsSet', 2129925, 19, const prefix0.JsonSerializable(), -1, 176, 177, const [141], const []), r.VariableMirrorImpl(r'colorPriorities', 2129925, 19, const prefix0.JsonSerializable(), -1, 178, 179, const [141, 155], const []), r.VariableMirrorImpl(r'partyPriorities', 2129925, 19, const prefix0.JsonSerializable(), -1, 180, 181, const [171, 155], const []), r.VariableMirrorImpl(r'colors', 2129925, 20, const prefix0.JsonSerializable(), -1, 174, 175, const [141], const []), r.VariableMirrorImpl(r'colorsSet', 2129925, 20, const prefix0.JsonSerializable(), -1, 176, 177, const [141], const []), r.VariableMirrorImpl(r'primary', 33797, 21, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'category', 32773, 22, const prefix0.JsonSerializable(), 25, 25, 25, const [], const [const prefix0.JsonProperty(defaultValue: prefix4.Category.first)]), r.VariableMirrorImpl(r'values', 2129925, 23, const prefix0.JsonSerializable(), -1, 182, 183, const [25, 155], const []), r.VariableMirrorImpl(r'values', 2130949, 24, const prefix0.JsonSerializable(), -1, 184, 185, const [25, 21], const []), r.VariableMirrorImpl(r'index', 33861, 25, const prefix0.JsonSerializable(), -1, 155, 155, const [], const []), r.VariableMirrorImpl(r'model', 32773, 138, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(name: 'modelName')]), r.VariableMirrorImpl(r'color', 32773, 138, const prefix0.JsonSerializable(), 141, 141, 141, const [], const []), r.VariableMirrorImpl(r'replacement', 32773, 138, const prefix0.JsonSerializable(), 138, 138, 138, const [], const [const prefix0.JsonProperty(ignoreIfNull: true)]), r.VariableMirrorImpl(r'devices', 2129925, 28, const prefix0.JsonSerializable(), -1, 186, 187, const [27], const []), r.VariableMirrorImpl(r'sex', 32773, 29, const prefix0.JsonSerializable(), -1, 188, 188, const [], const []), r.VariableMirrorImpl(r'value', 32773, 30, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(requiredMessage: 'This Value is critically important')]), r.VariableMirrorImpl(r'value2', 32773, 30, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(notNullMessage: 'This Value2 cannot be null')]), r.VariableMirrorImpl(r'value', 32773, 31, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(requiredMessage: 'This Value is critically important', ignoreForDeserialization: true, ignoreForSerialization: true, ignoreIfNull: true, ignore: true)]), r.VariableMirrorImpl(r'value2', 32773, 31, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(notNullMessage: 'This Value2 cannot be null', required: true, ignoreForDeserialization: true, ignoreForSerialization: true, ignoreIfNull: true, ignore: true)]), r.VariableMirrorImpl(r'name', 32773, 32, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(ignoreForDeserialization: true)]), r.VariableMirrorImpl(r'title', 32773, 32, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(ignoreForSerialization: true)]), r.VariableMirrorImpl(r'name', 33797, 33, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(name: const ['alias', 'fullName', 'name'])]), r.VariableMirrorImpl(r'location', 33797, 34, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(name: 'in')]), r.VariableMirrorImpl(r'name', 32773, 35, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'extraPropsMap', 2129925, 35, const prefix0.JsonSerializable(), -1, 189, 190, null, const [const prefix0.JsonProperty(ignore: true)]), r.VariableMirrorImpl(r'limit', 32773, 37, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'offset', 32773, 37, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'total', 32773, 37, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'pagination', 32773, 38, const prefix0.JsonSerializable(), 37, 37, 37, const [], const [const prefix0.JsonProperty(flatten: true)]), r.VariableMirrorImpl(r'cars', 2129925, 38, const prefix0.JsonSerializable(), -1, 192, 193, const [138], const []), r.VariableMirrorImpl(r'pagination', 32773, 39, const prefix0.JsonSerializable(), 37, 37, 37, const [], const [const prefix0.JsonProperty(name: 'pagination', flatten: true)]), r.VariableMirrorImpl(r'cars', 2129925, 39, const prefix0.JsonSerializable(), -1, 192, 193, const [138], const []), r.VariableMirrorImpl(r'pagination', 32773, 40, const prefix0.JsonSerializable(), 37, 37, 37, const [], const [const prefix0.JsonProperty(name: 'pagination', flatten: true)]), r.VariableMirrorImpl(r'cars', 2129925, 40, const prefix0.JsonSerializable(), -1, 192, 193, const [138], const []), r.VariableMirrorImpl(r'categoryId', 32773, 41, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [const prefix0.JsonProperty(name: '../../id')]), r.VariableMirrorImpl(r'productId', 32773, 41, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [const prefix0.JsonProperty(name: '../id')]), r.VariableMirrorImpl(r'id', 32773, 41, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'name', 32773, 41, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'categoryId', 32773, 42, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [const prefix0.JsonProperty(name: '../id')]), r.VariableMirrorImpl(r'id', 32773, 42, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'name', 32773, 42, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'features', 2129925, 42, const prefix0.JsonSerializable(), -1, 194, 195, const [41], const [const prefix0.JsonProperty(ignoreIfNull: true)]), r.VariableMirrorImpl(r'id', 32773, 43, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'name', 32773, 43, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'products', 2129925, 43, const prefix0.JsonSerializable(), -1, 196, 197, const [42], const []), r.VariableMirrorImpl(r'items', 2129925, 44, const prefix0.JsonSerializable(), -1, 198, 199, const [149], const [const prefix0.JsonProperty(name: 'baz/items')]), r.VariableMirrorImpl(r'items', 2129925, 45, const prefix0.JsonSerializable(), -1, 198, 199, const [149], const [const prefix0.JsonProperty(name: 'root/foo/bar/items')]), r.VariableMirrorImpl(r'count', 32773, 46, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [const prefix0.JsonProperty(name: 'root/foo/bar/count')]), r.VariableMirrorImpl(r'count', 32773, 47, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [const prefix0.JsonProperty(name: 'root/0/bar')]), r.VariableMirrorImpl(r'count2', 32773, 47, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [const prefix0.JsonProperty(name: 'root/1/bar')]), r.VariableMirrorImpl(r'cd', 32773, 47, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [const prefix0.JsonProperty(name: '#/root/2/c%25d')]), r.VariableMirrorImpl(r'count3', 32773, 47, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [const prefix0.JsonProperty(name: 'root/3/bar')]), r.VariableMirrorImpl(r'list', 2129925, 48, const prefix0.JsonSerializable(), -1, 200, 201, const [61], const [const prefix0.JsonProperty(converterParams: const {'delimiter': ','}, defaultValue: prefix8.MyEnumA.values)]), r.VariableMirrorImpl(r'enumA', 32773, 49, const prefix0.JsonSerializable(), 61, 61, 61, const [], const []), r.VariableMirrorImpl(r'enumB', 32773, 49, const prefix0.JsonSerializable(), 62, 62, 62, const [], const []), r.VariableMirrorImpl(r'enumA', 32773, 50, const prefix0.JsonSerializable(), 61, 61, 61, const [], const []), r.VariableMirrorImpl(r'enumB', 32773, 50, const prefix0.JsonSerializable(), 62, 62, 62, const [], const []), r.VariableMirrorImpl(r'data', 32773, 51, const prefix0.JsonSerializable(), -1, 202, 202, const [], const []), r.VariableMirrorImpl(r'bigInt', 32773, 52, const prefix0.JsonSerializable(), -1, 203, 203, const [], const []), r.VariableMirrorImpl(r'data', 32773, 53, const prefix0.JsonSerializable(), -1, 157, 157, const [], const []), r.VariableMirrorImpl(r'data', 32773, 54, const prefix0.JsonSerializable(), -1, 204, 204, const [], const []), r.VariableMirrorImpl(r'color', 32773, 55, const prefix0.JsonSerializable(), 63, 63, 63, const [], const []), r.VariableMirrorImpl(r'list', 2129925, 57, const prefix0.JsonSerializable(), -1, 205, 206, const [56], const []), r.VariableMirrorImpl(r'set', 2129925, 57, const prefix0.JsonSerializable(), -1, 207, 208, const [56], const []), r.VariableMirrorImpl(r'dataHash', 2129925, 58, const prefix0.JsonSerializable(), -1, 209, 210, null, const []), r.VariableMirrorImpl(r'createdAt', 32773, 59, const prefix0.JsonSerializable(), -1, 157, 157, const [], const []), r.VariableMirrorImpl(r'responses', 2129925, 60, const prefix0.JsonSerializable(), -1, 211, 212, const [154], const [const prefix0.JsonProperty(converter: const prefix8.MethodResponseConverter())]), r.VariableMirrorImpl(r'index', 33861, 61, const prefix0.JsonSerializable(), -1, 155, 155, const [], const []), r.VariableMirrorImpl(r'index', 33861, 62, const prefix0.JsonSerializable(), -1, 155, 155, const [], const []), r.VariableMirrorImpl(r'index', 33861, 63, const prefix0.JsonSerializable(), -1, 155, 155, const [], const []), r.VariableMirrorImpl(r'index', 33861, 64, const prefix0.JsonSerializable(), -1, 155, 155, const [], const []), r.VariableMirrorImpl(r'value1', 1029, 65, const prefix0.JsonSerializable(), -1, -1, -1, const [], const []), r.VariableMirrorImpl(r'value2', 1029, 65, const prefix0.JsonSerializable(), -1, -1, -1, const [], const []), r.VariableMirrorImpl(r'tuple1', 2130949, 66, const prefix0.JsonSerializable(), 65, 213, 65, const [155, 214], const []), r.VariableMirrorImpl(r'tuple2', 2130949, 66, const prefix0.JsonSerializable(), 65, 215, 65, const [216, 203], const []), r.VariableMirrorImpl(r'id', 33797, 67, const prefix0.JsonSerializable(), -1, 155, 155, const [], const []), r.VariableMirrorImpl(r'type', 33797, 67, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [const prefix0.JsonProperty(converter: prefix10.myCustomConverter)]), r.VariableMirrorImpl(r'top', 32773, 68, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'left', 32773, 68, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'right', 32773, 68, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'bottom', 32773, 68, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'cropArea', 33797, 69, const prefix0.JsonSerializable(), 68, 68, 68, const [], const [const prefix0.JsonProperty(defaultValue: const {'top': 0.0, 'left': 1.0, 'right': 1.0, 'bottom': 0.0})]), r.VariableMirrorImpl(r'id', 33797, 69, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [const prefix0.JsonProperty(defaultValue: 1)]), r.VariableMirrorImpl(r'name', 33797, 69, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'car', 33797, 69, const prefix0.JsonSerializable(), 138, 138, 138, const [], const []), r.VariableMirrorImpl(r'cropArea', 32773, 70, const prefix0.JsonSerializable(), 68, 68, 68, const [], const [const prefix0.JsonProperty(defaultValue: const {'top': 0.0, 'left': 1.0, 'right': 1.0, 'bottom': 0.0}, ignoreIfDefault: true)]), r.VariableMirrorImpl(r'id', 32773, 70, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [const prefix0.JsonProperty(defaultValue: 1)]), r.VariableMirrorImpl(r'cropArea', 32773, 71, const prefix0.JsonSerializable(), 68, 68, 68, const [], const [const prefix0.JsonProperty(defaultValue: const {'top': 0.0, 'left': 1.0, 'right': 1.0, 'bottom': 0.0})]), r.VariableMirrorImpl(r'id', 32773, 71, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [const prefix0.JsonProperty(defaultValue: 1)]), r.VariableMirrorImpl(r'cropArea', 32773, 72, const prefix0.JsonSerializable(), 68, 68, 68, const [], const [const prefix0.JsonProperty(defaultValue: const {'top': 0.0, 'left': 1.0, 'right': 1.0, 'bottom': 0.0})]), r.VariableMirrorImpl(r'id', 32773, 72, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [const prefix0.JsonProperty(defaultValue: 1)]), r.VariableMirrorImpl(r'logisticsChecked', 33797, 73, const prefix0.JsonSerializable(), -1, 217, 217, const [], const []), r.VariableMirrorImpl(r'logisticsOK', 33797, 73, const prefix0.JsonSerializable(), -1, 217, 217, const [], const []), r.VariableMirrorImpl(r'logisticsChecked', 33797, 74, const prefix0.JsonSerializable(), -1, 217, 217, const [], const []), r.VariableMirrorImpl(r'logisticsOK', 33797, 74, const prefix0.JsonSerializable(), -1, 217, 217, const [], const []), r.VariableMirrorImpl(r'email', 32773, 75, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'bar', 33797, 76, const prefix0.JsonSerializable(), 77, 77, 77, const [], const []), r.VariableMirrorImpl(r'message', 33797, 76, const prefix0.JsonSerializable(), -1, 149, 149, const [], const []), r.VariableMirrorImpl(r'baz', 33797, 77, const prefix0.JsonSerializable(), 78, 78, 78, const [], const []), r.VariableMirrorImpl(r'value', 1029, 79, const prefix0.JsonSerializable(), -1, -1, -1, const [], const []), r.VariableMirrorImpl(r'pt', 33797, 83, const prefix0.JsonSerializable(), 81, 81, 81, const [], const []), r.VariableMirrorImpl(r'list', 2129925, 84, const prefix0.JsonSerializable(), -1, 153, 154, const [149], const []), r.VariableMirrorImpl(r'firstName', 32773, 85, const prefix0.JsonSerializable(), -1, 149, 149, const [], const []), r.VariableMirrorImpl(r'lastName', 32773, 85, const prefix0.JsonSerializable(), -1, 149, 149, const [], const []), r.VariableMirrorImpl(r'firstName', 32773, 86, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'lastName', 32773, 86, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'firstName', 32773, 87, const prefix0.JsonSerializable(), -1, 149, 149, const [], const []), r.VariableMirrorImpl(r'lastName', 32773, 87, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'firstName', 32773, 88, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'lastName', 32773, 88, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'firstName', 32773, 89, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'lastName', 32773, 89, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'middleName', 32773, 89, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'firstName', 32773, 90, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'lastName', 32773, 90, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'middleName', 32773, 90, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'firstName', 32773, 91, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'lastName', 32773, 91, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(ignore: true)]), r.VariableMirrorImpl(r'middleName', 32773, 91, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(ignoreIfNull: true)]), r.VariableMirrorImpl(r'firstName', 32773, 92, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'lastName', 32773, 92, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(ignore: true)]), r.VariableMirrorImpl(r'middleName', 32773, 92, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(ignoreIfNull: true)]), r.VariableMirrorImpl(r'id', 33797, 93, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [const prefix0.JsonProperty(defaultValue: 1)]), r.VariableMirrorImpl(r'name', 33797, 93, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'car', 33797, 93, const prefix0.JsonSerializable(), 138, 138, 138, const [], const []), r.VariableMirrorImpl(r'id', 32773, 94, const prefix0.JsonSerializable(), -1, 155, 155, const [], const [const prefix0.JsonProperty(name: 'id')]), r.VariableMirrorImpl(r'number', 32773, 94, const prefix0.JsonSerializable(), -1, 155, 155, const [], const []), r.VariableMirrorImpl(r'child', 32773, 95, const prefix0.JsonSerializable(), 96, 96, 96, const [], const []), r.VariableMirrorImpl(r'lastName', 32773, 96, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'children', 2129925, 96, const prefix0.JsonSerializable(), -1, 218, 219, const [97], const []), r.VariableMirrorImpl(r'parent', 32773, 96, const prefix0.JsonSerializable(), 95, 95, 95, const [], const [const prefix0.JsonProperty(name: '..')]), r.VariableMirrorImpl(r'firstName', 32773, 97, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'parent', 32773, 97, const prefix0.JsonSerializable(), 96, 96, 96, const [], const [const prefix0.JsonProperty(name: '..')]), r.VariableMirrorImpl(r'lastName', 32773, 98, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'children', 2129925, 98, const prefix0.JsonSerializable(), -1, 220, 221, const [99], const []), r.VariableMirrorImpl(r'firstName', 32773, 99, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'parent', 32773, 99, const prefix0.JsonSerializable(), 98, 98, 98, const [], const [const prefix0.JsonProperty(name: '..')]), r.VariableMirrorImpl(r'lastName', 32773, 100, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'children', 2129925, 100, const prefix0.JsonSerializable(), -1, 222, 223, const [101], const []), r.VariableMirrorImpl(r'firstName', 32773, 101, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'parent', 32773, 101, const prefix0.JsonSerializable(), 100, 100, 100, const [], const [const prefix0.JsonProperty(name: '..')]), r.VariableMirrorImpl(r'stars', 32773, 103, const prefix0.JsonSerializable(), -1, 155, 155, const [], const []), r.VariableMirrorImpl(r'userCount', 32773, 104, const prefix0.JsonSerializable(), -1, 155, 155, const [], const []), r.VariableMirrorImpl(r'fullName', 32773, 105, const prefix0.JsonSerializable(), -1, 149, 149, const [], const []), r.VariableMirrorImpl(r'businesses', 2129925, 105, const prefix0.JsonSerializable(), -1, 224, 225, const [102], const []), r.VariableMirrorImpl(r'type', 32773, 106, const prefix0.JsonSerializable(), 114, 114, 114, const [], const []), r.VariableMirrorImpl(r'stars', 32773, 107, const prefix0.JsonSerializable(), -1, 155, 155, const [], const []), r.VariableMirrorImpl(r'userCount', 32773, 108, const prefix0.JsonSerializable(), -1, 155, 155, const [], const []), r.VariableMirrorImpl(r'fullName', 32773, 109, const prefix0.JsonSerializable(), -1, 149, 149, const [], const []), r.VariableMirrorImpl(r'businesses', 2129925, 109, const prefix0.JsonSerializable(), -1, 226, 227, const [106], const []), r.VariableMirrorImpl(r'email', 33797, 110, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'id', 32773, -1, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'email', 33797, 111, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [override]), r.VariableMirrorImpl(r'myField', 33797, 112, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [const prefix0.JsonProperty(name: 'myCustomFieldName')]), r.VariableMirrorImpl(r'myField', 33797, 113, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [override]), r.VariableMirrorImpl(r'index', 33861, 114, const prefix0.JsonSerializable(), -1, 155, 155, const [], const []), r.VariableMirrorImpl(r'title', 32773, 115, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [const prefix0.JsonProperty(name: 'title_test', scheme: prefix14.Scheme.B)]), r.VariableMirrorImpl(r'firstName', 32773, 116, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(name: 'first_name', scheme: prefix14.Scheme.B), const prefix0.JsonProperty(name: 'firstname', scheme: prefix14.Scheme.A)]), r.VariableMirrorImpl(r'lastName', 32773, 116, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(name: 'last_name', scheme: prefix14.Scheme.B), const prefix0.JsonProperty(name: 'lastname', scheme: prefix14.Scheme.A)]), r.VariableMirrorImpl(r'email', 32773, 116, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(name: 'email', scheme: prefix14.Scheme.B), const prefix0.JsonProperty(name: 'email', scheme: prefix14.Scheme.A)]), r.VariableMirrorImpl(r'phoneNumber', 32773, 116, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(name: 'phone', scheme: prefix14.Scheme.B), const prefix0.JsonProperty(name: 'telephone', scheme: prefix14.Scheme.A)]), r.VariableMirrorImpl(r'country', 32773, 116, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(name: 'country', scheme: prefix14.Scheme.B), const prefix0.JsonProperty(name: 'country_id', scheme: prefix14.Scheme.A)]), r.VariableMirrorImpl(r'city', 32773, 116, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(name: 'city', scheme: prefix14.Scheme.B), const prefix0.JsonProperty(name: 'city', scheme: prefix14.Scheme.A)]), r.VariableMirrorImpl(r'zipCode', 32773, 116, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(name: 'postcode', scheme: prefix14.Scheme.B), const prefix0.JsonProperty(name: 'postcode', scheme: prefix14.Scheme.A)]), r.VariableMirrorImpl(r'street', 32773, 116, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(name: 'address_1', scheme: prefix14.Scheme.B)]), r.VariableMirrorImpl(r'streetList', 2129925, 116, const prefix0.JsonSerializable(), -1, 198, 199, const [149], const [const prefix0.JsonProperty(name: 'street', scheme: prefix14.Scheme.A)]), r.VariableMirrorImpl(r'id', 32773, 116, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'district', 32773, 116, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'firstName', 32773, 117, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'parent', 32773, 117, const prefix0.JsonSerializable(), -1, 228, 228, const [], const [const prefix0.JsonProperty(inject: true)]), r.VariableMirrorImpl(r'nickname', 32773, 117, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(inject: true)]), r.VariableMirrorImpl(r'firstName', 32773, 118, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'parent', 32773, 118, const prefix0.JsonSerializable(), -1, 229, 229, const [], const [const prefix0.JsonProperty(inject: true)]), r.VariableMirrorImpl(r'nickname', 32773, 118, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(name: 'data/nick', inject: true)]), r.VariableMirrorImpl(r'firstName', 32773, 119, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'parent', 32773, 119, const prefix0.JsonSerializable(), -1, 230, 230, const [], const [const prefix0.JsonProperty(inject: true)]), r.VariableMirrorImpl(r'nickname', 32773, 119, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(inject: true)]), r.VariableMirrorImpl(r'content', 32773, 120, const prefix0.JsonSerializable(), 121, 121, 121, const [], const []), r.VariableMirrorImpl(r'content', 2129925, 121, const prefix0.JsonSerializable(), -1, 231, 232, const [120], const []), r.VariableMirrorImpl(r'page', 32773, 122, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'limit', 32773, 122, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'fieldSearchable', 32773, 122, const prefix0.JsonSerializable(), -1, 146, 146, const [], const [const prefix0.JsonProperty(name: 'field_searchable.0')]), r.VariableMirrorImpl(r'types', 2129925, 122, const prefix0.JsonSerializable(), -1, 198, 199, const [149], const [const prefix0.JsonProperty(converterParams: const {'delimiter': ','})]), r.VariableMirrorImpl(r'myList', 2129925, 124, const prefix0.JsonSerializable(), -1, 233, 234, const [155], const []), r.VariableMirrorImpl(r'myMap', 2129925, 124, const prefix0.JsonSerializable(), -1, 235, 236, const [155, 155], const []), r.VariableMirrorImpl(r'mySet', 2129925, 124, const prefix0.JsonSerializable(), -1, 237, 238, const [155], const []), r.VariableMirrorImpl(r'accountType', 33797, 125, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'defaultCountryIsoCode', 33797, 126, const prefix0.JsonSerializable(), -1, 149, 149, const [], const []), r.VariableMirrorImpl(r'autoImportContacts', 33797, 126, const prefix0.JsonSerializable(), -1, 146, 146, const [], const []), r.VariableMirrorImpl(r'metadata', 33797, 126, const prefix0.JsonSerializable(), 127, 127, 127, const [], const []), r.VariableMirrorImpl(r'id', 33797, 127, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [const prefix0.JsonProperty(ignoreForSerialization: true)]), r.VariableMirrorImpl(r'createdBy', 33797, 127, const prefix0.JsonSerializable(), -1, 149, 149, const [], const []), r.VariableMirrorImpl(r'deleted', 33797, 127, const prefix0.JsonSerializable(), -1, 217, 217, const [], const [const prefix0.JsonProperty(defaultValue: false)]), r.VariableMirrorImpl(r'foo', 5, 129, const prefix0.JsonSerializable(), -1, -1, -1, const [], const []), r.VariableMirrorImpl(r'parentUuid', 33797, 131, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'uuid', 33797, 131, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'entity', 1029, 131, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [const prefix0.JsonProperty(ignore: true)]), r.VariableMirrorImpl(r'parentUuid', 33797, 132, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'uuid', 33797, 132, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'model', 33797, 133, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'color', 33797, 133, const prefix0.JsonSerializable(), 141, 141, 141, const [], const []), r.VariableMirrorImpl(r'Success', 32773, 134, const prefix0.JsonSerializable(), -1, 146, 146, const [], const []), r.VariableMirrorImpl(r'Result', 5, 134, const prefix0.JsonSerializable(), -1, -1, -1, const [], const []), r.VariableMirrorImpl(r'Id', 32773, 135, const prefix0.JsonSerializable(), -1, 156, 156, const [], const []), r.VariableMirrorImpl(r'Name', 32773, 135, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'id', 33797, 137, const prefix0.JsonSerializable(), -1, 155, 155, const [], const []), r.VariableMirrorImpl(r'name', 33797, 137, const prefix0.JsonSerializable(), -1, 149, 149, const [], const []), r.VariableMirrorImpl(r'car', 33797, 137, const prefix0.JsonSerializable(), 138, 138, 138, const [], const []), r.VariableMirrorImpl(r'skills', 2129925, 139, const prefix0.JsonSerializable(), -1, 153, 154, const [149], const []), r.VariableMirrorImpl(r'specialDates', 2129925, 139, const prefix0.JsonSerializable(), -1, 239, 240, const [214], const []), r.VariableMirrorImpl(r'lastPromotionDate', 32773, 139, const prefix0.JsonSerializable(), -1, 214, 214, const [], const [const prefix0.JsonProperty(name: 'last_promotion_date', converterParams: const {'format': 'MM-dd-yyyy H:m:s'})]), r.VariableMirrorImpl(r'hireDate', 32773, 139, const prefix0.JsonSerializable(), -1, 214, 214, const [], const [const prefix0.JsonProperty(name: 'hire_date', converterParams: const {'format': 'MM/dd/yyyy'})]), r.VariableMirrorImpl(r'married', 32773, 139, const prefix0.JsonSerializable(), -1, 217, 217, const [], const [const prefix0.JsonProperty(ignore: true)]), r.VariableMirrorImpl(r'active', 32773, 139, const prefix0.JsonSerializable(), -1, 217, 217, const [], const []), r.VariableMirrorImpl(r'name', 32773, 139, const prefix0.JsonSerializable(), -1, 149, 149, const [], const []), r.VariableMirrorImpl(r'salary', 32773, 139, const prefix0.JsonSerializable(), -1, 241, 241, const [], const [const prefix0.JsonProperty(converterParams: const {'format': '##.##'})]), r.VariableMirrorImpl(r'dob', 32773, 139, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'age', 32773, 139, const prefix0.JsonSerializable(), -1, 241, 241, const [], const []), r.VariableMirrorImpl(r'lastName', 32773, 139, const prefix0.JsonSerializable(), -1, 149, 149, const [], const []), r.VariableMirrorImpl(r'dyn', 16389, 139, const prefix0.JsonSerializable(), -1, -1, -1, const [], const []), r.VariableMirrorImpl(r'dynNum', 16389, 139, const prefix0.JsonSerializable(), -1, -1, -1, const [], const []), r.VariableMirrorImpl(r'dynBool', 16389, 139, const prefix0.JsonSerializable(), -1, -1, -1, const [], const []), r.VariableMirrorImpl(r'properties', 2129925, 139, const prefix0.JsonSerializable(), -1, 242, 243, null, const []), r.VariableMirrorImpl(r'map', 2129925, 139, const prefix0.JsonSerializable(), -1, 189, 190, null, const []), r.VariableMirrorImpl(r'sym', 32773, 139, const prefix0.JsonSerializable(), -1, 244, 244, const [], const []), r.VariableMirrorImpl(r'favouriteColours', 2129925, 139, const prefix0.JsonSerializable(), -1, 245, 246, const [141], const []), r.VariableMirrorImpl(r'eyeColor', 32773, 139, const prefix0.JsonSerializable(), 141, 141, 141, const [], const [const prefix0.JsonProperty(name: 'eye_color')]), r.VariableMirrorImpl(r'hairColor', 32773, 139, const prefix0.JsonSerializable(), 141, 141, 141, const [], const [const prefix0.JsonProperty(converter: prefix23.enumConverterNumeric)]), r.VariableMirrorImpl(r'vehicles', 2129925, 139, const prefix0.JsonSerializable(), -1, 247, 248, const [138], const []), r.VariableMirrorImpl(r'index', 33861, 141, const prefix0.JsonSerializable(), -1, 155, 155, const [], const []), r.VariableMirrorImpl(r'ccsdsOmmVers', 32773, 142, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'comment', 32773, 142, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'originator', 32773, 142, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'objectName', 32773, 142, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'objectId', 32773, 142, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'objectType', 32773, 142, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'centerName', 32773, 142, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'refFrame', 32773, 142, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'timeSystem', 32773, 142, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'meanElementTheory', 32773, 142, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'classificationType', 32773, 142, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'rcsSize', 32773, 142, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'countryCode', 32773, 142, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'site', 32773, 142, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'tleLine0', 32773, 142, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'tleLine1', 32773, 142, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'tleLine2', 32773, 142, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'meanMotion', 32773, 142, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'eccentricity', 32773, 142, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'raOfAscNode', 32773, 142, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'argOfPericenter', 32773, 142, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'meanAnomaly', 32773, 142, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'ephemerisType', 32773, 142, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'noradCatId', 32773, 142, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'elementSetNo', 32773, 142, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'revAtEpoch', 32773, 142, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'bstar', 32773, 142, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'meanMotionDot', 32773, 142, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'meanMotionDdot', 32773, 142, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'semimajorAxis', 32773, 142, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'period', 32773, 142, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'apoapsis', 32773, 142, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'periapsis', 32773, 142, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'decayed', 32773, 142, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'file', 32773, 142, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'gpId', 32773, 142, const prefix0.JsonSerializable(), -1, 191, 191, const [], const []), r.VariableMirrorImpl(r'decayDate', 32773, 142, const prefix0.JsonSerializable(), -1, 157, 157, const [], const []), r.VariableMirrorImpl(r'creationDate', 32773, 142, const prefix0.JsonSerializable(), -1, 157, 157, const [], const []), r.VariableMirrorImpl(r'epoch', 32773, 142, const prefix0.JsonSerializable(), -1, 157, 157, const [], const []), r.VariableMirrorImpl(r'launchDate', 32773, 142, const prefix0.JsonSerializable(), -1, 157, 157, const [], const [const prefix0.JsonProperty(converterParams: const {'format': 'yyyy-MM-dd'})]), r.VariableMirrorImpl(r'spaceTrack', 32773, 143, const prefix0.JsonSerializable(), 142, 142, 142, const [], const []), r.VariableMirrorImpl(r'version', 32773, 143, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'id', 32773, 143, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.VariableMirrorImpl(r'launch', 32773, 143, const prefix0.JsonSerializable(), -1, 145, 145, const [], const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 0, 316), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 1, 317), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 2, 318), r.MethodMirrorImpl(r'', 0, 0, -1, 0, 0, const [], const [0, 1, 2], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'==', 131074, -1, -1, 217, 217, const [], const [3], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toString', 131074, -1, -1, 149, 149, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'noSuchMethod', 65538, -1, -1, -1, -1, const [], const [4], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'hashCode', 131075, -1, -1, 155, 155, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'runtimeType', 131075, -1, -1, 249, 249, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 3, 325), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 4, 326), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 5, 327), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 6, 328), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 7, 329), r.MethodMirrorImpl(r'', 0, 1, -1, 1, 1, const [], const [5, 6, 7, 8, 9], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 2, -1, 2, 2, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 8, 332), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 8, 333), r.MethodMirrorImpl(r'', 0, 3, -1, 3, 3, const [], const [10], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 4, -1, 4, 4, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 9, 336), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 9, 337), r.MethodMirrorImpl(r'', 64, 5, -1, 5, 5, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 10, 339), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 11, 340), r.MethodMirrorImpl(r'', 128, 6, -1, 6, 6, const [], const [13, 14], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 12, 342), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 13, 343), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 14, 344), r.MethodMirrorImpl(r'', 128, 7, -1, 7, 7, const [], const [15, 16, 17], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 15, 346), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 15, 347), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 16, 348), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 16, 349), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 17, 350), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 17, 351), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 18, 352), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 18, 353), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 19, 354), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 19, 355), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 20, 356), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 20, 357), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 21, 358), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 21, 359), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 22, 360), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 22, 361), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 23, 362), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 23, 363), r.MethodMirrorImpl(r'', 0, 8, -1, 8, 8, const [], const [18, 19, 20, 21, 22, 23, 24, 25, 26], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 9, -1, 9, 9, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 24, 366), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 24, 367), r.MethodMirrorImpl(r'', 64, 10, -1, 10, 10, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 25, 369), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 25, 370), r.MethodMirrorImpl(r'', 0, 11, -1, 11, 11, const [], const [37], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 26, 372), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 26, 373), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 27, 374), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 27, 375), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 28, 376), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 28, 377), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 29, 378), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 29, 379), r.MethodMirrorImpl(r'', 0, 12, -1, 12, 12, const [], const [39, 40, 41, 42], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 30, 381), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 30, 382), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 31, 383), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 31, 384), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 32, 385), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 32, 386), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 33, 387), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 33, 388), r.MethodMirrorImpl(r'', 0, 13, -1, 13, 13, const [], const [47, 48, 49, 50], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 14, -1, 14, 14, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 15, -1, 15, 15, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 34, 392), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 35, 393), r.MethodMirrorImpl(r'', 128, 16, -1, 16, 16, const [], const [55, 56], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 36, 395), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 36, 396), r.MethodMirrorImpl(r'', 0, 17, -1, 17, 17, const [], const [57], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 37, 398), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 37, 399), r.MethodMirrorImpl(r'', 0, 18, -1, 18, 18, const [], const [59], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 38, 401), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 38, 402), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 39, 403), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 39, 404), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 40, 405), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 40, 406), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 41, 407), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 41, 408), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 42, 409), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 42, 410), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 43, 411), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 43, 412), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 44, 413), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 44, 414), r.MethodMirrorImpl(r'', 64, 19, -1, 19, 19, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 45, 416), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 45, 417), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 46, 418), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 46, 419), r.MethodMirrorImpl(r'', 0, 20, -1, 20, 20, const [], const [68, 69], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 47, 421), r.MethodMirrorImpl(r'', 128, 21, -1, 21, 21, const [], const [72], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 48, 423), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 48, 424), r.MethodMirrorImpl(r'', 64, 22, -1, 22, 22, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 49, 426), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 49, 427), r.MethodMirrorImpl(r'', 0, 23, -1, 23, 23, const [], const [74], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 50, 429), r.MethodMirrorImpl(r'', 128, 24, -1, 24, 24, const [], const [76], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toString', 131138, 25, -1, 149, 149, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 51, 432), r.MethodMirrorImpl(r'', 0, 26, -1, 26, 26, const [], const [77, 78], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 52, 434), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 52, 435), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 53, 436), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 53, 437), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 54, 438), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 54, 439), r.MethodMirrorImpl(r'', 64, 27, -1, 27, 27, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 55, 441), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 55, 442), r.MethodMirrorImpl(r'', 0, 28, -1, 28, 28, const [], const [82], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 56, 444), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 56, 445), r.MethodMirrorImpl(r'', 64, 29, -1, 29, 29, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 57, 447), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 57, 448), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 58, 449), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 58, 450), r.MethodMirrorImpl(r'', 0, 30, -1, 30, 30, const [], const [85, 86], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 59, 452), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 59, 453), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 60, 454), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 60, 455), r.MethodMirrorImpl(r'', 0, 31, -1, 31, 31, const [], const [89, 90], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 61, 457), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 61, 458), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 62, 459), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 62, 460), r.MethodMirrorImpl(r'', 0, 32, -1, 32, 32, const [], const [93, 94], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 63, 462), r.MethodMirrorImpl(r'', 128, 33, -1, 33, 33, const [], const [97], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 64, 464), r.MethodMirrorImpl(r'', 0, 34, -1, 34, 34, const [], const [98], const prefix0.JsonSerializable(), const [prefix0.jsonConstructor]), r.MethodMirrorImpl(r'unmappedSet', 262146, 35, -1, 250, 250, const [], const [99, 100], const prefix0.JsonSerializable(), const [prefix0.jsonProperty]), r.MethodMirrorImpl(r'unmappedGet', 4325378, 35, -1, 189, 190, null, const [], const prefix0.JsonSerializable(), const [prefix0.jsonProperty]), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 65, 468), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 65, 469), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 66, 470), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 66, 471), r.MethodMirrorImpl(r'', 64, 35, -1, 35, 35, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'setLastName', 262146, 36, -1, 250, 250, const [], const [103], const prefix0.JsonSerializable(), const [const prefix0.JsonProperty(name: 'lastName')]), r.MethodMirrorImpl(r'getLastName', 131074, 36, -1, 145, 145, const [], const [], const prefix0.JsonSerializable(), const [const prefix0.JsonProperty(name: 'lastName')]), r.MethodMirrorImpl(r'name=', 262148, 36, -1, 250, 250, const [], const [104], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'name', 131075, 36, -1, 145, 145, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 36, -1, 36, 36, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 67, 478), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 67, 479), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 68, 480), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 68, 481), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 69, 482), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 69, 483), r.MethodMirrorImpl(r'', 64, 37, -1, 37, 37, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 70, 485), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 70, 486), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 71, 487), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 71, 488), r.MethodMirrorImpl(r'', 64, 38, -1, 38, 38, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 72, 490), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 72, 491), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 73, 492), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 73, 493), r.MethodMirrorImpl(r'', 64, 39, -1, 39, 39, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 74, 495), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 74, 496), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 75, 497), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 75, 498), r.MethodMirrorImpl(r'', 64, 40, -1, 40, 40, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 76, 500), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 76, 501), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 77, 502), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 77, 503), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 78, 504), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 78, 505), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 79, 506), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 79, 507), r.MethodMirrorImpl(r'', 0, 41, -1, 41, 41, const [], const [114, 115], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 80, 509), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 80, 510), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 81, 511), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 81, 512), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 82, 513), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 82, 514), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 83, 515), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 83, 516), r.MethodMirrorImpl(r'', 0, 42, -1, 42, 42, const [], const [120, 121, 122], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 84, 518), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 84, 519), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 85, 520), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 85, 521), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 86, 522), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 86, 523), r.MethodMirrorImpl(r'', 0, 43, -1, 43, 43, const [], const [127, 128, 129], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 87, 525), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 87, 526), r.MethodMirrorImpl(r'', 0, 44, -1, 44, 44, const [], const [133], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 88, 528), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 88, 529), r.MethodMirrorImpl(r'', 0, 45, -1, 45, 45, const [], const [135], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 89, 531), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 89, 532), r.MethodMirrorImpl(r'', 0, 46, -1, 46, 46, const [], const [137], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 90, 534), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 90, 535), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 91, 536), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 91, 537), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 92, 538), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 92, 539), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 93, 540), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 93, 541), r.MethodMirrorImpl(r'', 0, 47, -1, 47, 47, const [], const [139, 140, 141, 142], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 94, 543), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 94, 544), r.MethodMirrorImpl(r'', 0, 48, -1, 48, 48, const [], const [147], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 95, 546), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 95, 547), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 96, 548), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 96, 549), r.MethodMirrorImpl(r'', 0, 49, -1, 49, 49, const [], const [149, 150], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 97, 551), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 97, 552), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 98, 553), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 98, 554), r.MethodMirrorImpl(r'', 64, 50, -1, 50, 50, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 99, 556), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 99, 557), r.MethodMirrorImpl(r'', 0, 51, -1, 51, 51, const [], const [155], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 100, 559), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 100, 560), r.MethodMirrorImpl(r'', 0, 52, -1, 52, 52, const [], const [157], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 101, 562), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 101, 563), r.MethodMirrorImpl(r'', 64, 53, -1, 53, 53, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 102, 565), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 102, 566), r.MethodMirrorImpl(r'', 64, 54, -1, 54, 54, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 103, 568), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 103, 569), r.MethodMirrorImpl(r'', 0, 55, -1, 55, 55, const [], const [161], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 56, -1, 56, 56, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 104, 572), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 104, 573), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 105, 574), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 105, 575), r.MethodMirrorImpl(r'', 64, 57, -1, 57, 57, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 106, 577), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 106, 578), r.MethodMirrorImpl(r'', 64, 58, -1, 58, 58, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 107, 580), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 107, 581), r.MethodMirrorImpl(r'', 64, 59, -1, 59, 59, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 108, 583), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 108, 584), r.MethodMirrorImpl(r'', 64, 60, -1, 60, 60, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toString', 131138, 61, -1, 149, 149, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 109, 587), r.MethodMirrorImpl(r'toString', 131138, 62, -1, 149, 149, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 110, 589), r.MethodMirrorImpl(r'toString', 131138, 63, -1, 149, 149, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 111, 591), r.MethodMirrorImpl(r'toString', 131138, 64, -1, 149, 149, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 112, 593), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 113, 594), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 114, 595), r.MethodMirrorImpl(r'', 0, 65, -1, 251, 65, null, const [168, 169], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'of', 1, 65, -1, 251, 65, null, const [170], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 115, 598), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 116, 599), r.MethodMirrorImpl(r'', 0, 66, -1, 66, 66, const [], const [171, 172], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 117, 601), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 118, 602), r.MethodMirrorImpl(r'', 128, 67, -1, 67, 67, const [], const [173, 174], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 119, 604), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 119, 605), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 120, 606), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 120, 607), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 121, 608), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 121, 609), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 122, 610), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 122, 611), r.MethodMirrorImpl(r'', 64, 68, -1, 68, 68, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 123, 613), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 124, 614), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 125, 615), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 126, 616), r.MethodMirrorImpl(r'', 128, 69, -1, 69, 69, const [], const [179, 180, 181, 182], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 127, 618), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 127, 619), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 128, 620), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 128, 621), r.MethodMirrorImpl(r'', 64, 70, -1, 70, 70, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 129, 623), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 129, 624), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 130, 625), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 130, 626), r.MethodMirrorImpl(r'', 64, 71, -1, 71, 71, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 131, 628), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 131, 629), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 132, 630), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 132, 631), r.MethodMirrorImpl(r'', 64, 72, -1, 72, 72, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 133, 633), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 134, 634), r.MethodMirrorImpl(r'', 0, 73, -1, 73, 73, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'fromJson', 0, 73, -1, 73, 73, const [], const [189], const prefix0.JsonSerializable(), const [prefix0.jsonConstructor]), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 135, 637), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 136, 638), r.MethodMirrorImpl(r'', 0, 74, -1, 74, 74, const [], const [190], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 137, 640), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 137, 641), r.MethodMirrorImpl(r'', 64, 75, -1, 75, 75, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 138, 643), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 139, 644), r.MethodMirrorImpl(r'', 0, 76, -1, 76, 76, const [], const [192, 193], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 140, 646), r.MethodMirrorImpl(r'', 0, 77, -1, 77, 77, const [], const [194], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 78, -1, 78, 78, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 141, 649), r.MethodMirrorImpl(r'', 0, 79, -1, 252, 79, null, const [195], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 0, 80, -1, 80, 80, const [], const [196], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 0, 81, -1, 81, 81, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 0, 82, -1, 82, 82, const [], const [197], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 142, 654), r.MethodMirrorImpl(r'', 0, 83, -1, 83, 83, const [], const [198], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 143, 656), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 143, 657), r.MethodMirrorImpl(r'', 0, 84, -1, 84, 84, const [], const [199], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 144, 659), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 144, 660), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 145, 661), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 145, 662), r.MethodMirrorImpl(r'', 0, 85, -1, 85, 85, const [], const [201, 202], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 146, 664), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 146, 665), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 147, 666), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 147, 667), r.MethodMirrorImpl(r'', 0, 86, -1, 86, 86, const [], const [205, 206], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 148, 669), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 148, 670), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 149, 671), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 149, 672), r.MethodMirrorImpl(r'', 0, 87, -1, 87, 87, const [], const [209, 210], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 150, 674), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 150, 675), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 151, 676), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 151, 677), r.MethodMirrorImpl(r'', 0, 88, -1, 88, 88, const [], const [213, 214], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 152, 679), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 152, 680), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 153, 681), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 153, 682), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 154, 683), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 154, 684), r.MethodMirrorImpl(r'', 0, 89, -1, 89, 89, const [], const [217, 218, 219], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 155, 686), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 155, 687), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 156, 688), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 156, 689), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 157, 690), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 157, 691), r.MethodMirrorImpl(r'', 0, 90, -1, 90, 90, const [], const [223, 224, 225], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 158, 693), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 158, 694), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 159, 695), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 159, 696), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 160, 697), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 160, 698), r.MethodMirrorImpl(r'', 0, 91, -1, 91, 91, const [], const [229, 230, 231], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 161, 700), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 161, 701), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 162, 702), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 162, 703), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 163, 704), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 163, 705), r.MethodMirrorImpl(r'', 64, 92, -1, 92, 92, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 164, 707), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 165, 708), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 166, 709), r.MethodMirrorImpl(r'', 128, 93, -1, 93, 93, const [], const [238, 239, 240], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toString', 131074, 94, -1, 149, 149, const [], const [], const prefix0.JsonSerializable(), const [override]), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 167, 712), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 167, 713), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 168, 714), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 168, 715), r.MethodMirrorImpl(r'json', 0, 94, -1, 94, 94, const [], const [241, 242], const prefix0.JsonSerializable(), const [prefix0.jsonConstructor]), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 169, 717), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 169, 718), r.MethodMirrorImpl(r'', 64, 95, -1, 95, 95, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 170, 720), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 170, 721), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 171, 722), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 171, 723), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 172, 724), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 172, 725), r.MethodMirrorImpl(r'', 64, 96, -1, 96, 96, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 173, 727), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 173, 728), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 174, 729), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 174, 730), r.MethodMirrorImpl(r'', 0, 97, -1, 97, 97, const [], const [249], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 175, 732), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 175, 733), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 176, 734), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 176, 735), r.MethodMirrorImpl(r'', 64, 98, -1, 98, 98, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 177, 737), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 177, 738), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 178, 739), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 178, 740), r.MethodMirrorImpl(r'json', 0, 99, -1, 99, 99, const [], const [254], const prefix0.JsonSerializable(), const [prefix0.jsonConstructor]), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 179, 742), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 179, 743), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 180, 744), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 180, 745), r.MethodMirrorImpl(r'', 64, 100, -1, 100, 100, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 181, 747), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 181, 748), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 182, 749), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 182, 750), r.MethodMirrorImpl(r'', 64, 101, -1, 101, 101, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'type', 131587, 102, 114, 114, 114, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 102, -1, 102, 102, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 183, 754), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 183, 755), r.MethodMirrorImpl(r'type', 131075, 103, 114, 114, 114, const [], const [], const prefix0.JsonSerializable(), const [override]), r.MethodMirrorImpl(r'', 0, 103, -1, 103, 103, const [], const [261], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 184, 758), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 184, 759), r.MethodMirrorImpl(r'type', 131075, 104, 114, 114, 114, const [], const [], const prefix0.JsonSerializable(), const [override]), r.MethodMirrorImpl(r'', 0, 104, -1, 104, 104, const [], const [263], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 185, 762), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 185, 763), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 186, 764), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 186, 765), r.MethodMirrorImpl(r'', 0, 105, -1, 105, 105, const [], const [265, 266], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 187, 767), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 187, 768), r.MethodMirrorImpl(r'', 64, 106, -1, 106, 106, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 188, 770), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 188, 771), r.MethodMirrorImpl(r'', 0, 107, -1, 107, 107, const [], const [270], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 189, 773), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 189, 774), r.MethodMirrorImpl(r'', 0, 108, -1, 108, 108, const [], const [272], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 190, 776), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 190, 777), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 191, 778), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 191, 779), r.MethodMirrorImpl(r'', 0, 109, -1, 109, 109, const [], const [274, 275], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'copyWith', 131586, 110, 110, 110, 110, const [], const [278, 279], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 192, 782), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 192, 783), r.MethodMirrorImpl(r'', 257, 110, -1, 110, 110, const [], const [280], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 193, 785), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 193, 786), r.MethodMirrorImpl(r'copyWith', 131074, 111, 110, 110, 110, const [], const [283, 284], const prefix0.JsonSerializable(), const [override]), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 194, 788), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 194, 789), r.MethodMirrorImpl(r'', 0, 111, -1, 111, 111, const [], const [285, 286], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'newUser', 1, 111, -1, 111, 111, const [], const [287], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 195, 792), r.MethodMirrorImpl(r'myGetter', 131587, 112, -1, 149, 149, const [], const [], const prefix0.JsonSerializable(), const [const prefix0.JsonProperty(name: 'myCustomGetterName')]), r.MethodMirrorImpl(r'', 64, 112, -1, 112, 112, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 196, 795), r.MethodMirrorImpl(r'myGetter', 131075, 113, -1, 149, 149, const [], const [], const prefix0.JsonSerializable(), const [override]), r.MethodMirrorImpl(r'', 64, 113, -1, 113, 113, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toString', 131138, 114, -1, 149, 149, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 197, 799), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 198, 800), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 198, 801), r.MethodMirrorImpl(r'', 0, 115, -1, 115, 115, const [], const [289], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 199, 803), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 199, 804), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 200, 805), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 200, 806), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 201, 807), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 201, 808), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 202, 809), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 202, 810), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 203, 811), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 203, 812), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 204, 813), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 204, 814), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 205, 815), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 205, 816), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 206, 817), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 206, 818), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 207, 819), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 207, 820), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 208, 821), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 208, 822), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 209, 823), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 209, 824), r.MethodMirrorImpl(r'jsonTwo', 0, 116, -1, 116, 116, const [], const [], const prefix0.JsonSerializable(), const [const prefix0.JsonConstructor(scheme: prefix14.Scheme.B)]), r.MethodMirrorImpl(r'jsonOne', 0, 116, -1, 116, 116, const [], const [291, 292, 293], const prefix0.JsonSerializable(), const [const prefix0.JsonConstructor(scheme: prefix14.Scheme.A)]), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 210, 827), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 210, 828), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 211, 829), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 211, 830), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 212, 831), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 212, 832), r.MethodMirrorImpl(r'', 64, 117, -1, 117, 117, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 213, 834), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 213, 835), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 214, 836), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 214, 837), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 215, 838), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 215, 839), r.MethodMirrorImpl(r'', 0, 118, -1, 118, 118, const [], const [308], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 216, 841), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 216, 842), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 217, 843), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 217, 844), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 218, 845), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 218, 846), r.MethodMirrorImpl(r'', 0, 119, -1, 119, 119, const [], const [312], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 219, 848), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 219, 849), r.MethodMirrorImpl(r'', 64, 120, -1, 120, 120, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 220, 851), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 220, 852), r.MethodMirrorImpl(r'', 64, 121, -1, 121, 121, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 221, 854), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 221, 855), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 222, 856), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 222, 857), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 223, 858), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 223, 859), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 224, 860), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 224, 861), r.MethodMirrorImpl(r'', 64, 122, -1, 122, 122, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'id', 131075, 123, -1, 149, 149, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'id=', 262148, 123, -1, 250, 250, const [], const [322], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 123, -1, 123, 123, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 225, 866), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 225, 867), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 226, 868), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 226, 869), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 227, 870), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 227, 871), r.MethodMirrorImpl(r'', 64, 124, -1, 124, 124, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 228, 873), r.MethodMirrorImpl(r'', 0, 125, -1, 125, 125, const [], const [326], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toString', 131074, 126, -1, 149, 149, const [], const [], const prefix0.JsonSerializable(), const [override]), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 229, 876), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 230, 877), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 231, 878), r.MethodMirrorImpl(r'', 0, 126, -1, 126, 126, const [], const [327, 328, 329], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toString', 131074, 127, -1, 149, 149, const [], const [], const prefix0.JsonSerializable(), const [override]), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 232, 881), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 233, 882), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 234, 883), r.MethodMirrorImpl(r'', 0, 127, -1, 127, 127, const [], const [330, 331, 332], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 128, -1, 128, 128, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'fromJson', 4325378, 129, 129, 253, 129, null, const [333], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toJson', 65538, 129, -1, -1, -1, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 235, 888), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 235, 889), r.MethodMirrorImpl(r'', 0, 129, -1, 254, 129, null, const [334], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 0, 130, -1, 130, 130, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'of', 1, 130, -1, 130, 130, const [], const [336], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'entityToJson', 4325378, 131, -1, 209, 210, null, const [], const prefix0.JsonSerializable(), const [prefix0.jsonProperty]), r.MethodMirrorImpl(r'setEntityPropertyFromJson', 262146, 131, -1, 250, 250, const [], const [337, 338], const prefix0.JsonSerializable(), const [prefix0.jsonProperty]), r.MethodMirrorImpl(r'newEntityFromModelJson', 2, 131, -1, -1, -1, const [], const [339], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'newEntityFromJson', 2, 131, -1, -1, -1, const [], const [340], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'fromJson', 4325378, 131, 131, 255, 131, null, const [341], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toJson', 4325378, 131, -1, 209, 210, null, const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 236, 899), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 237, 900), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 238, 901), r.MethodMirrorImpl(r'', 128, 131, -1, 256, 131, null, const [342, 343, 344], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'of', 1, 131, -1, 256, 131, null, const [345], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'copyWith', 514, 132, -1, -1, -1, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'merge', 514, 132, -1, -1, -1, const [], const [346], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'fromJson', 2, 132, -1, -1, -1, const [], const [347], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toJson', 4325378, 132, -1, 209, 210, null, const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 239, 908), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 240, 909), r.MethodMirrorImpl(r'', 128, 132, -1, 257, 132, null, const [348, 349], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'copyWith', 131074, 133, 138, 138, 138, const [], const [], const prefix0.JsonSerializable(), const [override]), r.MethodMirrorImpl(r'merge', 131074, 133, 138, 138, 138, const [], const [350], const prefix0.JsonSerializable(), const [override]), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 241, 913), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 242, 914), r.MethodMirrorImpl(r'', 128, 133, -1, 133, 133, const [], const [351, 352, 353, 354], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'fromJson', 4325378, 134, 134, 258, 134, null, const [355], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toJson', 65538, 134, -1, -1, -1, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 243, 918), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 243, 919), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 244, 920), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 244, 921), r.MethodMirrorImpl(r'', 0, 134, -1, 259, 134, null, const [356, 357], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 245, 923), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 245, 924), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 246, 925), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 246, 926), r.MethodMirrorImpl(r'', 0, 135, -1, 135, 135, const [], const [360, 361], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 0, 136, -1, 136, 136, const [], const [364, 365], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 247, 929), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 248, 930), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 249, 931), r.MethodMirrorImpl(r'', 128, 137, -1, 137, 137, const [], const [366, 367, 368], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 0, 138, -1, 138, 138, const [], const [369, 370], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 250, 934), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 250, 935), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 251, 936), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 251, 937), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 252, 938), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 252, 939), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 253, 940), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 253, 941), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 254, 942), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 254, 943), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 255, 944), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 255, 945), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 256, 946), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 256, 947), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 257, 948), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 257, 949), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 258, 950), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 258, 951), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 259, 952), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 259, 953), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 260, 954), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 260, 955), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 261, 956), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 261, 957), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 262, 958), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 262, 959), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 263, 960), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 263, 961), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 264, 962), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 264, 963), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 265, 964), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 265, 965), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 266, 966), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 266, 967), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 267, 968), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 267, 969), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 268, 970), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 268, 971), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 269, 972), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 269, 973), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 270, 974), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 270, 975), r.MethodMirrorImpl(r'fullName', 131075, 139, -1, 149, 149, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 0, 139, -1, 139, 139, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'nextCatId', 131075, 140, -1, 149, 149, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'nextDogId', 131075, 140, -1, 149, 149, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 140, -1, 140, 140, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toString', 131138, 141, -1, 149, 149, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 271, 982), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 272, 983), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 272, 984), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 273, 985), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 273, 986), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 274, 987), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 274, 988), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 275, 989), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 275, 990), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 276, 991), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 276, 992), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 277, 993), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 277, 994), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 278, 995), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 278, 996), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 279, 997), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 279, 998), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 280, 999), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 280, 1000), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 281, 1001), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 281, 1002), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 282, 1003), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 282, 1004), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 283, 1005), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 283, 1006), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 284, 1007), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 284, 1008), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 285, 1009), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 285, 1010), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 286, 1011), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 286, 1012), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 287, 1013), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 287, 1014), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 288, 1015), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 288, 1016), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 289, 1017), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 289, 1018), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 290, 1019), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 290, 1020), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 291, 1021), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 291, 1022), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 292, 1023), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 292, 1024), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 293, 1025), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 293, 1026), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 294, 1027), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 294, 1028), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 295, 1029), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 295, 1030), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 296, 1031), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 296, 1032), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 297, 1033), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 297, 1034), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 298, 1035), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 298, 1036), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 299, 1037), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 299, 1038), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 300, 1039), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 300, 1040), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 301, 1041), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 301, 1042), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 302, 1043), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 302, 1044), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 303, 1045), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 303, 1046), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 304, 1047), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 304, 1048), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 305, 1049), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 305, 1050), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 306, 1051), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 306, 1052), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 307, 1053), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 307, 1054), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 308, 1055), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 308, 1056), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 309, 1057), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 309, 1058), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 310, 1059), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 310, 1060), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 311, 1061), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 311, 1062), r.MethodMirrorImpl(r'', 64, 142, -1, 142, 142, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 312, 1064), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 312, 1065), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 313, 1066), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 313, 1067), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 314, 1068), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 314, 1069), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 315, 1070), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 315, 1071), r.MethodMirrorImpl(r'', 64, 143, -1, 143, 143, const [], const [], const prefix0.JsonSerializable(), const [])], [r.ParameterMirrorImpl(r'icon', 46086, 319, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #icon), r.ParameterMirrorImpl(r'title', 46086, 319, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #title), r.ParameterMirrorImpl(r'on', 46086, 319, const prefix0.JsonSerializable(), -1, 146, 146, const [], const [], null, #on), r.ParameterMirrorImpl(r'other', 32774, 320, const prefix0.JsonSerializable(), -1, 260, 260, const [], const [], null, null), r.ParameterMirrorImpl(r'invocation', 32774, 322, const prefix0.JsonSerializable(), -1, 261, 261, const [], const [], null, null), r.ParameterMirrorImpl(r'tabs', 2143238, 330, const prefix0.JsonSerializable(), -1, 147, 148, const [149, 0], const [], null, #tabs), r.ParameterMirrorImpl(r'activeColor', 46086, 330, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #activeColor), r.ParameterMirrorImpl(r'inactiveColor', 46086, 330, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #inactiveColor), r.ParameterMirrorImpl(r'backgroundColor', 46086, 330, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #backgroundColor), r.ParameterMirrorImpl(r'fontSize', 46086, 330, const prefix0.JsonSerializable(), -1, 150, 150, const [], const [], null, #fontSize), r.ParameterMirrorImpl(r'list', 2130950, 334, const prefix0.JsonSerializable(), -1, 151, 152, const [2], const [], null, null), r.ParameterMirrorImpl(r'_list', 2130022, 333, const prefix0.JsonSerializable(), -1, 151, 152, const [2], const [], null, null), r.ParameterMirrorImpl(r'_mailingList', 2130022, 337, const prefix0.JsonSerializable(), -1, 153, 154, const [149], const [], null, null), r.ParameterMirrorImpl(r'id', 33798, 341, const prefix0.JsonSerializable(), -1, 155, 155, const [], const [], null, null), r.ParameterMirrorImpl(r'name', 33798, 341, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [], null, null), r.ParameterMirrorImpl(r'id', 46086, 345, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [], null, #id), r.ParameterMirrorImpl(r'sequence', 46086, 345, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [], null, #sequence), r.ParameterMirrorImpl(r'description', 46086, 345, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #description), r.ParameterMirrorImpl(r'id', 46086, 364, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [], null, #id), r.ParameterMirrorImpl(r'number', 46086, 364, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [], null, #number), r.ParameterMirrorImpl(r'customerId', 46086, 364, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [], null, #customerId), r.ParameterMirrorImpl(r'expertId', 46086, 364, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [], null, #expertId), r.ParameterMirrorImpl(r'start', 46086, 364, const prefix0.JsonSerializable(), -1, 157, 157, const [], const [], null, #start), r.ParameterMirrorImpl(r'end', 46086, 364, const prefix0.JsonSerializable(), -1, 157, 157, const [], const [], null, #end), r.ParameterMirrorImpl(r'resume', 46086, 364, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #resume), r.ParameterMirrorImpl(r'customer', 46086, 364, const prefix0.JsonSerializable(), 6, 6, 6, const [], const [], null, #customer), r.ParameterMirrorImpl(r'items', 2143238, 364, const prefix0.JsonSerializable(), -1, 158, 159, const [7], const [], null, #items), r.ParameterMirrorImpl(r'_id', 32870, 347, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [], null, null), r.ParameterMirrorImpl(r'_number', 32870, 349, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [], null, null), r.ParameterMirrorImpl(r'_customerId', 32870, 351, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [], null, null), r.ParameterMirrorImpl(r'_customer', 32870, 353, const prefix0.JsonSerializable(), 6, 6, 6, const [], const [], null, null), r.ParameterMirrorImpl(r'_expertId', 32870, 355, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [], null, null), r.ParameterMirrorImpl(r'_start', 32870, 357, const prefix0.JsonSerializable(), -1, 157, 157, const [], const [], null, null), r.ParameterMirrorImpl(r'_items', 2130022, 359, const prefix0.JsonSerializable(), -1, 158, 159, const [7], const [], null, null), r.ParameterMirrorImpl(r'_end', 32870, 361, const prefix0.JsonSerializable(), -1, 157, 157, const [], const [], null, null), r.ParameterMirrorImpl(r'_resume', 32870, 363, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_lists', 2130022, 367, const prefix0.JsonSerializable(), -1, 160, 161, const [162], const [], null, null), r.ParameterMirrorImpl(r'lists', 2130950, 371, const prefix0.JsonSerializable(), -1, 163, 164, const [162], const [], null, null), r.ParameterMirrorImpl(r'_lists', 2130022, 370, const prefix0.JsonSerializable(), -1, 163, 164, const [162], const [], null, null), r.ParameterMirrorImpl(r'mainTitle', 46086, 380, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #mainTitle), r.ParameterMirrorImpl(r'description', 46086, 380, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #description), r.ParameterMirrorImpl(r'hasMainProperty', 46086, 380, const prefix0.JsonSerializable(), -1, 146, 146, const [], const [], null, #hasMainProperty), r.ParameterMirrorImpl(r'primaryColor', 46086, 380, const prefix0.JsonSerializable(), 141, 141, 141, const [], const [], null, #primaryColor), r.ParameterMirrorImpl(r'_mainTitle', 32870, 373, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_description', 32870, 375, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_hasMainProperty', 32870, 377, const prefix0.JsonSerializable(), -1, 146, 146, const [], const [], null, null), r.ParameterMirrorImpl(r'_primaryColor', 32870, 379, const prefix0.JsonSerializable(), 141, 141, 141, const [], const [], null, null), r.ParameterMirrorImpl(r'mainTitle', 46086, 389, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #mainTitle), r.ParameterMirrorImpl(r'description', 46086, 389, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #description), r.ParameterMirrorImpl(r'hasMainProperty', 46086, 389, const prefix0.JsonSerializable(), -1, 146, 146, const [], const [], null, #hasMainProperty), r.ParameterMirrorImpl(r'primaryColor', 48134, 389, const prefix0.JsonSerializable(), 141, 141, 141, const [], const [], prefix20.Color.grayMetallic, #primaryColor), r.ParameterMirrorImpl(r'_mainTitle', 32870, 382, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_description', 32870, 384, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_hasMainProperty', 32870, 386, const prefix0.JsonSerializable(), -1, 146, 146, const [], const [], null, null), r.ParameterMirrorImpl(r'_primaryColor', 32870, 388, const prefix0.JsonSerializable(), 141, 141, 141, const [], const [], null, null), r.ParameterMirrorImpl(r'ints', 2130950, 394, const prefix0.JsonSerializable(), -1, 165, 166, const [155], const [], null, null), r.ParameterMirrorImpl(r'b', 33798, 394, const prefix0.JsonSerializable(), -1, 167, 167, const [], const [], null, null), r.ParameterMirrorImpl(r'party', 46086, 397, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #party), r.ParameterMirrorImpl(r'_party', 32870, 396, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'parties', 2143238, 400, const prefix0.JsonSerializable(), -1, 169, 170, const [171], const [], null, #parties), r.ParameterMirrorImpl(r'_parties', 2130022, 399, const prefix0.JsonSerializable(), -1, 169, 170, const [171], const [], null, null), r.ParameterMirrorImpl(r'_party', 32870, 402, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_color', 32870, 404, const prefix0.JsonSerializable(), 141, 141, 141, const [], const [], null, null), r.ParameterMirrorImpl(r'_parties', 2130022, 406, const prefix0.JsonSerializable(), -1, 172, 173, const [171], const [], null, null), r.ParameterMirrorImpl(r'_colors', 2130022, 408, const prefix0.JsonSerializable(), -1, 174, 175, const [141], const [], null, null), r.ParameterMirrorImpl(r'_colorsSet', 2130022, 410, const prefix0.JsonSerializable(), -1, 176, 177, const [141], const [], null, null), r.ParameterMirrorImpl(r'_colorPriorities', 2130022, 412, const prefix0.JsonSerializable(), -1, 178, 179, const [141, 155], const [], null, null), r.ParameterMirrorImpl(r'_partyPriorities', 2130022, 414, const prefix0.JsonSerializable(), -1, 180, 181, const [171, 155], const [], null, null), r.ParameterMirrorImpl(r'colors', 2143238, 420, const prefix0.JsonSerializable(), -1, 174, 175, const [141], const [], null, #colors), r.ParameterMirrorImpl(r'colorsSet', 2143238, 420, const prefix0.JsonSerializable(), -1, 176, 177, const [141], const [], null, #colorsSet), r.ParameterMirrorImpl(r'_colors', 2130022, 417, const prefix0.JsonSerializable(), -1, 174, 175, const [141], const [], null, null), r.ParameterMirrorImpl(r'_colorsSet', 2130022, 419, const prefix0.JsonSerializable(), -1, 176, 177, const [141], const [], null, null), r.ParameterMirrorImpl(r'primary', 46086, 422, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #primary), r.ParameterMirrorImpl(r'_category', 32870, 424, const prefix0.JsonSerializable(), 25, 25, 25, const [], const [], null, null), r.ParameterMirrorImpl(r'values', 2130950, 428, const prefix0.JsonSerializable(), -1, 182, 183, const [25, 155], const [], null, null), r.ParameterMirrorImpl(r'_values', 2130022, 427, const prefix0.JsonSerializable(), -1, 182, 183, const [25, 155], const [], null, null), r.ParameterMirrorImpl(r'values', 2130950, 430, const prefix0.JsonSerializable(), -1, 184, 185, const [25, 21], const [], null, null), r.ParameterMirrorImpl(r'model', 16390, 433, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'color', 16390, 433, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'_model', 32870, 435, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_color', 32870, 437, const prefix0.JsonSerializable(), 141, 141, 141, const [], const [], null, null), r.ParameterMirrorImpl(r'_replacement', 32870, 439, const prefix0.JsonSerializable(), 138, 138, 138, const [], const [], null, null), r.ParameterMirrorImpl(r'devices', 2130950, 443, const prefix0.JsonSerializable(), -1, 186, 187, const [27], const [], null, null), r.ParameterMirrorImpl(r'_devices', 2130022, 442, const prefix0.JsonSerializable(), -1, 186, 187, const [27], const [], null, null), r.ParameterMirrorImpl(r'_sex', 32870, 445, const prefix0.JsonSerializable(), -1, 188, 188, const [], const [], null, null), r.ParameterMirrorImpl(r'value', 46086, 451, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #value), r.ParameterMirrorImpl(r'value2', 46086, 451, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #value2), r.ParameterMirrorImpl(r'_value', 32870, 448, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_value2', 32870, 450, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'value', 46086, 456, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #value), r.ParameterMirrorImpl(r'value2', 46086, 456, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #value2), r.ParameterMirrorImpl(r'_value', 32870, 453, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_value2', 32870, 455, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'name', 46086, 461, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #name), r.ParameterMirrorImpl(r'title', 46086, 461, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #title), r.ParameterMirrorImpl(r'_name', 32870, 458, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_title', 32870, 460, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'name', 46086, 463, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #name), r.ParameterMirrorImpl(r'location', 46086, 465, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #location), r.ParameterMirrorImpl(r'name', 32774, 466, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [], null, null), r.ParameterMirrorImpl(r'value', 16390, 466, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'_name', 32870, 469, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_extraPropsMap', 2130022, 471, const prefix0.JsonSerializable(), -1, 189, 190, null, const [], null, null), r.ParameterMirrorImpl(r'value', 16390, 473, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'value', 16390, 475, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'_limit', 32870, 479, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_offset', 32870, 481, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_total', 32870, 483, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_pagination', 32870, 486, const prefix0.JsonSerializable(), 37, 37, 37, const [], const [], null, null), r.ParameterMirrorImpl(r'_cars', 2130022, 488, const prefix0.JsonSerializable(), -1, 192, 193, const [138], const [], null, null), r.ParameterMirrorImpl(r'_pagination', 32870, 491, const prefix0.JsonSerializable(), 37, 37, 37, const [], const [], null, null), r.ParameterMirrorImpl(r'_cars', 2130022, 493, const prefix0.JsonSerializable(), -1, 192, 193, const [138], const [], null, null), r.ParameterMirrorImpl(r'_pagination', 32870, 496, const prefix0.JsonSerializable(), 37, 37, 37, const [], const [], null, null), r.ParameterMirrorImpl(r'_cars', 2130022, 498, const prefix0.JsonSerializable(), -1, 192, 193, const [138], const [], null, null), r.ParameterMirrorImpl(r'name', 46086, 508, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #name), r.ParameterMirrorImpl(r'id', 46086, 508, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, #id), r.ParameterMirrorImpl(r'_categoryId', 32870, 501, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_productId', 32870, 503, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_id', 32870, 505, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_name', 32870, 507, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'name', 46086, 517, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #name), r.ParameterMirrorImpl(r'id', 46086, 517, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, #id), r.ParameterMirrorImpl(r'features', 2143238, 517, const prefix0.JsonSerializable(), -1, 194, 195, const [41], const [], null, #features), r.ParameterMirrorImpl(r'_categoryId', 32870, 510, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_id', 32870, 512, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_name', 32870, 514, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_features', 2130022, 516, const prefix0.JsonSerializable(), -1, 194, 195, const [41], const [], null, null), r.ParameterMirrorImpl(r'id', 46086, 524, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, #id), r.ParameterMirrorImpl(r'name', 46086, 524, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #name), r.ParameterMirrorImpl(r'products', 2143238, 524, const prefix0.JsonSerializable(), -1, 196, 197, const [42], const [], null, #products), r.ParameterMirrorImpl(r'_id', 32870, 519, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_name', 32870, 521, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_products', 2130022, 523, const prefix0.JsonSerializable(), -1, 196, 197, const [42], const [], null, null), r.ParameterMirrorImpl(r'items', 2143238, 527, const prefix0.JsonSerializable(), -1, 198, 199, const [149], const [], null, #items), r.ParameterMirrorImpl(r'_items', 2130022, 526, const prefix0.JsonSerializable(), -1, 198, 199, const [149], const [], null, null), r.ParameterMirrorImpl(r'items', 2143238, 530, const prefix0.JsonSerializable(), -1, 198, 199, const [149], const [], null, #items), r.ParameterMirrorImpl(r'_items', 2130022, 529, const prefix0.JsonSerializable(), -1, 198, 199, const [149], const [], null, null), r.ParameterMirrorImpl(r'count', 46086, 533, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [], null, #count), r.ParameterMirrorImpl(r'_count', 32870, 532, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [], null, null), r.ParameterMirrorImpl(r'count', 46086, 542, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [], null, #count), r.ParameterMirrorImpl(r'count2', 46086, 542, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [], null, #count2), r.ParameterMirrorImpl(r'count3', 46086, 542, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [], null, #count3), r.ParameterMirrorImpl(r'cd', 46086, 542, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [], null, #cd), r.ParameterMirrorImpl(r'_count', 32870, 535, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [], null, null), r.ParameterMirrorImpl(r'_count2', 32870, 537, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [], null, null), r.ParameterMirrorImpl(r'_cd', 32870, 539, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [], null, null), r.ParameterMirrorImpl(r'_count3', 32870, 541, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [], null, null), r.ParameterMirrorImpl(r'list', 2143238, 545, const prefix0.JsonSerializable(), -1, 200, 201, const [61], const [], null, #list), r.ParameterMirrorImpl(r'_list', 2130022, 544, const prefix0.JsonSerializable(), -1, 200, 201, const [61], const [], null, null), r.ParameterMirrorImpl(r'enumA', 33798, 550, const prefix0.JsonSerializable(), 61, 61, 61, const [], const [], null, null), r.ParameterMirrorImpl(r'enumB', 33798, 550, const prefix0.JsonSerializable(), 62, 62, 62, const [], const [], null, null), r.ParameterMirrorImpl(r'_enumA', 32870, 547, const prefix0.JsonSerializable(), 61, 61, 61, const [], const [], null, null), r.ParameterMirrorImpl(r'_enumB', 32870, 549, const prefix0.JsonSerializable(), 62, 62, 62, const [], const [], null, null), r.ParameterMirrorImpl(r'_enumA', 32870, 552, const prefix0.JsonSerializable(), 61, 61, 61, const [], const [], null, null), r.ParameterMirrorImpl(r'_enumB', 32870, 554, const prefix0.JsonSerializable(), 62, 62, 62, const [], const [], null, null), r.ParameterMirrorImpl(r'data', 33798, 558, const prefix0.JsonSerializable(), -1, 202, 202, const [], const [], null, null), r.ParameterMirrorImpl(r'_data', 32870, 557, const prefix0.JsonSerializable(), -1, 202, 202, const [], const [], null, null), r.ParameterMirrorImpl(r'bigInt', 33798, 561, const prefix0.JsonSerializable(), -1, 203, 203, const [], const [], null, null), r.ParameterMirrorImpl(r'_bigInt', 32870, 560, const prefix0.JsonSerializable(), -1, 203, 203, const [], const [], null, null), r.ParameterMirrorImpl(r'_data', 32870, 563, const prefix0.JsonSerializable(), -1, 157, 157, const [], const [], null, null), r.ParameterMirrorImpl(r'_data', 32870, 566, const prefix0.JsonSerializable(), -1, 204, 204, const [], const [], null, null), r.ParameterMirrorImpl(r'color', 33798, 570, const prefix0.JsonSerializable(), 63, 63, 63, const [], const [], null, null), r.ParameterMirrorImpl(r'_color', 32870, 569, const prefix0.JsonSerializable(), 63, 63, 63, const [], const [], null, null), r.ParameterMirrorImpl(r'_list', 2130022, 573, const prefix0.JsonSerializable(), -1, 205, 206, const [56], const [], null, null), r.ParameterMirrorImpl(r'_set', 2130022, 575, const prefix0.JsonSerializable(), -1, 207, 208, const [56], const [], null, null), r.ParameterMirrorImpl(r'_dataHash', 2130022, 578, const prefix0.JsonSerializable(), -1, 209, 210, null, const [], null, null), r.ParameterMirrorImpl(r'_createdAt', 32870, 581, const prefix0.JsonSerializable(), -1, 157, 157, const [], const [], null, null), r.ParameterMirrorImpl(r'_responses', 2130022, 584, const prefix0.JsonSerializable(), -1, 211, 212, const [154], const [], null, null), r.ParameterMirrorImpl(r'value1', 1030, 596, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'value2', 1030, 596, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'other', 2129926, 597, const prefix0.JsonSerializable(), 65, 262, 65, null, const [], null, null), r.ParameterMirrorImpl(r'tuple1', 2130950, 600, const prefix0.JsonSerializable(), 65, 213, 65, const [155, 214], const [], null, null), r.ParameterMirrorImpl(r'tuple2', 2130950, 600, const prefix0.JsonSerializable(), 65, 215, 65, const [216, 203], const [], null, null), r.ParameterMirrorImpl(r'id', 33798, 603, const prefix0.JsonSerializable(), -1, 155, 155, const [], const [], null, null), r.ParameterMirrorImpl(r'type', 33798, 603, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [], null, null), r.ParameterMirrorImpl(r'_top', 32870, 605, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_left', 32870, 607, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_right', 32870, 609, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_bottom', 32870, 611, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'cropArea', 46086, 617, const prefix0.JsonSerializable(), 68, 68, 68, const [], const [], null, #cropArea), r.ParameterMirrorImpl(r'id', 46086, 617, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [], null, #id), r.ParameterMirrorImpl(r'name', 46086, 617, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #name), r.ParameterMirrorImpl(r'car', 46086, 617, const prefix0.JsonSerializable(), 138, 138, 138, const [], const [], null, #car), r.ParameterMirrorImpl(r'_cropArea', 32870, 619, const prefix0.JsonSerializable(), 68, 68, 68, const [], const [], null, null), r.ParameterMirrorImpl(r'_id', 32870, 621, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [], null, null), r.ParameterMirrorImpl(r'_cropArea', 32870, 624, const prefix0.JsonSerializable(), 68, 68, 68, const [], const [], null, null), r.ParameterMirrorImpl(r'_id', 32870, 626, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [], null, null), r.ParameterMirrorImpl(r'_cropArea', 32870, 629, const prefix0.JsonSerializable(), 68, 68, 68, const [], const [], null, null), r.ParameterMirrorImpl(r'_id', 32870, 631, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [], null, null), r.ParameterMirrorImpl(r'processed', 32774, 636, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(name: 'LogistikTeileInOrdnung')], null, null), r.ParameterMirrorImpl(r'processed', 32774, 639, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [const prefix0.JsonProperty(name: 'LogistikTeileInOrdnung')], null, null), r.ParameterMirrorImpl(r'_email', 32870, 641, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'bar', 33798, 645, const prefix0.JsonSerializable(), 77, 77, 77, const [], const [], null, null), r.ParameterMirrorImpl(r'message', 33798, 645, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [], null, null), r.ParameterMirrorImpl(r'baz', 33798, 647, const prefix0.JsonSerializable(), 78, 78, 78, const [], const [], null, null), r.ParameterMirrorImpl(r'value', 1030, 650, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'value', 32774, 651, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [], null, null), r.ParameterMirrorImpl(r'value', 32774, 653, const prefix0.JsonSerializable(), 81, 81, 81, const [], const [], null, null), r.ParameterMirrorImpl(r'pt', 33798, 655, const prefix0.JsonSerializable(), 81, 81, 81, const [], const [], null, null), r.ParameterMirrorImpl(r'list', 2130950, 658, const prefix0.JsonSerializable(), -1, 153, 154, const [149], const [], null, null), r.ParameterMirrorImpl(r'_list', 2130022, 657, const prefix0.JsonSerializable(), -1, 153, 154, const [149], const [], null, null), r.ParameterMirrorImpl(r'firstName', 33798, 663, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [], null, null), r.ParameterMirrorImpl(r'lastName', 33798, 663, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [], null, null), r.ParameterMirrorImpl(r'_firstName', 32870, 660, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 32870, 662, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [], null, null), r.ParameterMirrorImpl(r'firstName', 37894, 668, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'lastName', 37894, 668, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_firstName', 32870, 665, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 32870, 667, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'firstName', 33798, 673, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [], null, null), r.ParameterMirrorImpl(r'lastName', 37894, 673, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_firstName', 32870, 670, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 32870, 672, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'firstName', 46086, 678, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #firstName), r.ParameterMirrorImpl(r'lastName', 46086, 678, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #lastName), r.ParameterMirrorImpl(r'_firstName', 32870, 675, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 32870, 677, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'firstName', 46086, 685, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #firstName), r.ParameterMirrorImpl(r'middleName', 46086, 685, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #middleName), r.ParameterMirrorImpl(r'lastName', 46086, 685, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #lastName), r.ParameterMirrorImpl(r'_firstName', 32870, 680, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 32870, 682, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_middleName', 32870, 684, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'firstName', 46086, 692, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #firstName), r.ParameterMirrorImpl(r'middleName', 46086, 692, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #middleName), r.ParameterMirrorImpl(r'lastName', 46086, 692, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #lastName), r.ParameterMirrorImpl(r'_firstName', 32870, 687, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 32870, 689, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_middleName', 32870, 691, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'firstName', 46086, 699, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #firstName), r.ParameterMirrorImpl(r'middleName', 46086, 699, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #middleName), r.ParameterMirrorImpl(r'lastName', 46086, 699, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #lastName), r.ParameterMirrorImpl(r'_firstName', 32870, 694, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 32870, 696, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_middleName', 32870, 698, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_firstName', 32870, 701, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 32870, 703, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_middleName', 32870, 705, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'id', 46086, 710, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [], null, #id), r.ParameterMirrorImpl(r'name', 46086, 710, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #name), r.ParameterMirrorImpl(r'car', 46086, 710, const prefix0.JsonSerializable(), 138, 138, 138, const [], const [], null, #car), r.ParameterMirrorImpl(r'id', 33798, 716, const prefix0.JsonSerializable(), -1, 155, 155, const [], const [], null, null), r.ParameterMirrorImpl(r'number', 33798, 716, const prefix0.JsonSerializable(), -1, 155, 155, const [], const [const prefix0.JsonProperty(converter: prefix12.customConverter)], null, null), r.ParameterMirrorImpl(r'_id', 32870, 713, const prefix0.JsonSerializable(), -1, 155, 155, const [], const [], null, null), r.ParameterMirrorImpl(r'_number', 32870, 715, const prefix0.JsonSerializable(), -1, 155, 155, const [], const [], null, null), r.ParameterMirrorImpl(r'_child', 32870, 718, const prefix0.JsonSerializable(), 96, 96, 96, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 32870, 721, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_children', 2130022, 723, const prefix0.JsonSerializable(), -1, 218, 219, const [97], const [], null, null), r.ParameterMirrorImpl(r'_parent', 32870, 725, const prefix0.JsonSerializable(), 95, 95, 95, const [], const [], null, null), r.ParameterMirrorImpl(r'parent', 33798, 731, const prefix0.JsonSerializable(), 96, 96, 96, const [], const [], null, null), r.ParameterMirrorImpl(r'_firstName', 32870, 728, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_parent', 32870, 730, const prefix0.JsonSerializable(), 96, 96, 96, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 32870, 733, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_children', 2130022, 735, const prefix0.JsonSerializable(), -1, 220, 221, const [99], const [], null, null), r.ParameterMirrorImpl(r'parent', 33798, 741, const prefix0.JsonSerializable(), 98, 98, 98, const [], const [], null, null), r.ParameterMirrorImpl(r'_firstName', 32870, 738, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_parent', 32870, 740, const prefix0.JsonSerializable(), 98, 98, 98, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 32870, 743, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_children', 2130022, 745, const prefix0.JsonSerializable(), -1, 222, 223, const [101], const [], null, null), r.ParameterMirrorImpl(r'_firstName', 32870, 748, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_parent', 32870, 750, const prefix0.JsonSerializable(), 100, 100, 100, const [], const [], null, null), r.ParameterMirrorImpl(r'stars', 33798, 757, const prefix0.JsonSerializable(), -1, 155, 155, const [], const [], null, null), r.ParameterMirrorImpl(r'_stars', 32870, 755, const prefix0.JsonSerializable(), -1, 155, 155, const [], const [], null, null), r.ParameterMirrorImpl(r'userCount', 33798, 761, const prefix0.JsonSerializable(), -1, 155, 155, const [], const [], null, null), r.ParameterMirrorImpl(r'_userCount', 32870, 759, const prefix0.JsonSerializable(), -1, 155, 155, const [], const [], null, null), r.ParameterMirrorImpl(r'fullName', 33798, 766, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [], null, null), r.ParameterMirrorImpl(r'businesses', 2130950, 766, const prefix0.JsonSerializable(), -1, 224, 225, const [102], const [], null, null), r.ParameterMirrorImpl(r'_fullName', 32870, 763, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [], null, null), r.ParameterMirrorImpl(r'_businesses', 2130022, 765, const prefix0.JsonSerializable(), -1, 224, 225, const [102], const [], null, null), r.ParameterMirrorImpl(r'_type', 32870, 768, const prefix0.JsonSerializable(), 114, 114, 114, const [], const [], null, null), r.ParameterMirrorImpl(r'stars', 33798, 772, const prefix0.JsonSerializable(), -1, 155, 155, const [], const [], null, null), r.ParameterMirrorImpl(r'_stars', 32870, 771, const prefix0.JsonSerializable(), -1, 155, 155, const [], const [], null, null), r.ParameterMirrorImpl(r'userCount', 33798, 775, const prefix0.JsonSerializable(), -1, 155, 155, const [], const [], null, null), r.ParameterMirrorImpl(r'_userCount', 32870, 774, const prefix0.JsonSerializable(), -1, 155, 155, const [], const [], null, null), r.ParameterMirrorImpl(r'fullName', 33798, 780, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [], null, null), r.ParameterMirrorImpl(r'businesses', 2130950, 780, const prefix0.JsonSerializable(), -1, 226, 227, const [106], const [], null, null), r.ParameterMirrorImpl(r'_fullName', 32870, 777, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [], null, null), r.ParameterMirrorImpl(r'_businesses', 2130022, 779, const prefix0.JsonSerializable(), -1, 226, 227, const [106], const [], null, null), r.ParameterMirrorImpl(r'id', 45062, 781, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #id), r.ParameterMirrorImpl(r'email', 45062, 781, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #email), r.ParameterMirrorImpl(r'id', 32774, 784, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [], null, null), r.ParameterMirrorImpl(r'_email', 32870, 783, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_id', 32870, 786, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'email', 45062, 787, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #email), r.ParameterMirrorImpl(r'id', 45062, 787, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #id), r.ParameterMirrorImpl(r'id', 45062, 790, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #id), r.ParameterMirrorImpl(r'email', 46086, 790, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #email), r.ParameterMirrorImpl(r'id', 32774, 791, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [], null, null), r.ParameterMirrorImpl(r'_email', 32870, 789, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'title', 33798, 802, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [], null, null), r.ParameterMirrorImpl(r'_title', 32870, 801, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [], null, null), r.ParameterMirrorImpl(r'_id', 32806, 826, const prefix0.JsonSerializable(), -1, 155, 155, const [], const [const prefix0.JsonProperty(name: 'id', scheme: prefix14.Scheme.A)], null, null), r.ParameterMirrorImpl(r'streetList', 2130950, 826, const prefix0.JsonSerializable(), -1, 198, 199, const [149], const [], null, null), r.ParameterMirrorImpl(r'city', 33798, 826, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_firstName', 32870, 804, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 32870, 806, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_email', 32870, 808, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_phoneNumber', 32870, 810, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_country', 32870, 812, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_city', 32870, 814, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_zipCode', 32870, 816, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_street', 32870, 818, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_streetList', 2130022, 820, const prefix0.JsonSerializable(), -1, 198, 199, const [149], const [], null, null), r.ParameterMirrorImpl(r'_id', 32870, 822, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_district', 32870, 824, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_firstName', 32870, 828, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_parent', 32870, 830, const prefix0.JsonSerializable(), -1, 228, 228, const [], const [], null, null), r.ParameterMirrorImpl(r'_nickname', 32870, 832, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'parent', 33798, 840, const prefix0.JsonSerializable(), -1, 229, 229, const [], const [], null, null), r.ParameterMirrorImpl(r'_firstName', 32870, 835, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_parent', 32870, 837, const prefix0.JsonSerializable(), -1, 229, 229, const [], const [], null, null), r.ParameterMirrorImpl(r'_nickname', 32870, 839, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'parent', 33798, 847, const prefix0.JsonSerializable(), -1, 230, 230, const [], const [], null, null), r.ParameterMirrorImpl(r'_firstName', 32870, 842, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_parent', 32870, 844, const prefix0.JsonSerializable(), -1, 230, 230, const [], const [], null, null), r.ParameterMirrorImpl(r'_nickname', 32870, 846, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_content', 32870, 849, const prefix0.JsonSerializable(), 121, 121, 121, const [], const [], null, null), r.ParameterMirrorImpl(r'_content', 2130022, 852, const prefix0.JsonSerializable(), -1, 231, 232, const [120], const [], null, null), r.ParameterMirrorImpl(r'_page', 32870, 855, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_limit', 32870, 857, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_fieldSearchable', 32870, 859, const prefix0.JsonSerializable(), -1, 146, 146, const [], const [], null, null), r.ParameterMirrorImpl(r'_types', 2130022, 861, const prefix0.JsonSerializable(), -1, 198, 199, const [149], const [], null, null), r.ParameterMirrorImpl(r'id', 32774, 864, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_myList', 2130022, 867, const prefix0.JsonSerializable(), -1, 233, 234, const [155], const [], null, null), r.ParameterMirrorImpl(r'_myMap', 2130022, 869, const prefix0.JsonSerializable(), -1, 235, 236, const [155, 155], const [], null, null), r.ParameterMirrorImpl(r'_mySet', 2130022, 871, const prefix0.JsonSerializable(), -1, 237, 238, const [155], const [], null, null), r.ParameterMirrorImpl(r'accountType', 46086, 874, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #accountType), r.ParameterMirrorImpl(r'metadata', 41990, 879, const prefix0.JsonSerializable(), 127, 127, 127, const [], const [], null, #metadata), r.ParameterMirrorImpl(r'defaultCountryIsoCode', 41990, 879, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [], null, #defaultCountryIsoCode), r.ParameterMirrorImpl(r'autoImportContacts', 41990, 879, const prefix0.JsonSerializable(), -1, 146, 146, const [], const [], null, #autoImportContacts), r.ParameterMirrorImpl(r'id', 41990, 884, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [], null, #id), r.ParameterMirrorImpl(r'createdBy', 41990, 884, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [], null, #createdBy), r.ParameterMirrorImpl(r'deleted', 48134, 884, const prefix0.JsonSerializable(), -1, 217, 217, const [], const [], false, #deleted), r.ParameterMirrorImpl(r'json', 16390, 886, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'foo', 13318, 890, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, #foo), r.ParameterMirrorImpl(r'_foo', 102, 889, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'other', 2129926, 892, const prefix0.JsonSerializable(), 129, 263, 129, null, const [], null, null), r.ParameterMirrorImpl(r'name', 32774, 894, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [], null, null), r.ParameterMirrorImpl(r'value', 16390, 894, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'entityModelJson', 2129926, 895, const prefix0.JsonSerializable(), -1, 209, 210, null, const [], null, null), r.ParameterMirrorImpl(r'entityJson', 2129926, 896, const prefix0.JsonSerializable(), -1, 189, 190, null, const [], null, null), r.ParameterMirrorImpl(r'modelJson', 2129926, 897, const prefix0.JsonSerializable(), -1, 209, 210, null, const [], null, null), r.ParameterMirrorImpl(r'parentUuid', 46086, 902, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #parentUuid), r.ParameterMirrorImpl(r'uuid', 46086, 902, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #uuid), r.ParameterMirrorImpl(r'entity', 13318, 902, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, #entity), r.ParameterMirrorImpl(r'other', 2129926, 903, const prefix0.JsonSerializable(), 131, 264, 131, null, const [], null, null), r.ParameterMirrorImpl(r'other', 6, 905, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'jsonData', 2129926, 906, const prefix0.JsonSerializable(), -1, 189, 190, null, const [], null, null), r.ParameterMirrorImpl(r'parentUuid', 46086, 910, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #parentUuid), r.ParameterMirrorImpl(r'uuid', 46086, 910, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #uuid), r.ParameterMirrorImpl(r'other', 32774, 912, const prefix0.JsonSerializable(), 138, 138, 138, const [], const [], null, null), r.ParameterMirrorImpl(r'parentUuid', 45062, 915, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #parentUuid), r.ParameterMirrorImpl(r'uuid', 45062, 915, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #uuid), r.ParameterMirrorImpl(r'model', 46086, 915, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #model), r.ParameterMirrorImpl(r'color', 46086, 915, const prefix0.JsonSerializable(), 141, 141, 141, const [], const [], null, #color), r.ParameterMirrorImpl(r'json', 16390, 916, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'Success', 46086, 922, const prefix0.JsonSerializable(), -1, 146, 146, const [], const [], null, #Success), r.ParameterMirrorImpl(r'Result', 13318, 922, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, #Result), r.ParameterMirrorImpl(r'_Success', 32870, 919, const prefix0.JsonSerializable(), -1, 146, 146, const [], const [], null, null), r.ParameterMirrorImpl(r'_Result', 102, 921, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'Id', 46086, 927, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [], null, #Id), r.ParameterMirrorImpl(r'Name', 46086, 927, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, #Name), r.ParameterMirrorImpl(r'_Id', 32870, 924, const prefix0.JsonSerializable(), -1, 156, 156, const [], const [], null, null), r.ParameterMirrorImpl(r'_Name', 32870, 926, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'Success', 45062, 928, const prefix0.JsonSerializable(), -1, 146, 146, const [], const [], null, #Success), r.ParameterMirrorImpl(r'Result', 45062, 928, const prefix0.JsonSerializable(), 135, 135, 135, const [], const [], null, #Result), r.ParameterMirrorImpl(r'id', 33798, 932, const prefix0.JsonSerializable(), -1, 155, 155, const [], const [], null, null), r.ParameterMirrorImpl(r'name', 33798, 932, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [], null, null), r.ParameterMirrorImpl(r'car', 33798, 932, const prefix0.JsonSerializable(), 138, 138, 138, const [], const [], null, null), r.ParameterMirrorImpl(r'model', 33798, 933, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'color', 33798, 933, const prefix0.JsonSerializable(), 141, 141, 141, const [], const [], null, null), r.ParameterMirrorImpl(r'_skills', 2130022, 935, const prefix0.JsonSerializable(), -1, 153, 154, const [149], const [], null, null), r.ParameterMirrorImpl(r'_specialDates', 2130022, 937, const prefix0.JsonSerializable(), -1, 239, 240, const [214], const [], null, null), r.ParameterMirrorImpl(r'_lastPromotionDate', 32870, 939, const prefix0.JsonSerializable(), -1, 214, 214, const [], const [], null, null), r.ParameterMirrorImpl(r'_hireDate', 32870, 941, const prefix0.JsonSerializable(), -1, 214, 214, const [], const [], null, null), r.ParameterMirrorImpl(r'_married', 32870, 943, const prefix0.JsonSerializable(), -1, 217, 217, const [], const [], null, null), r.ParameterMirrorImpl(r'_active', 32870, 945, const prefix0.JsonSerializable(), -1, 217, 217, const [], const [], null, null), r.ParameterMirrorImpl(r'_name', 32870, 947, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [], null, null), r.ParameterMirrorImpl(r'_salary', 32870, 949, const prefix0.JsonSerializable(), -1, 241, 241, const [], const [], null, null), r.ParameterMirrorImpl(r'_dob', 32870, 951, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_age', 32870, 953, const prefix0.JsonSerializable(), -1, 241, 241, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 32870, 955, const prefix0.JsonSerializable(), -1, 149, 149, const [], const [], null, null), r.ParameterMirrorImpl(r'_dyn', 16486, 957, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'_dynNum', 16486, 959, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'_dynBool', 16486, 961, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'_properties', 2130022, 963, const prefix0.JsonSerializable(), -1, 242, 243, null, const [], null, null), r.ParameterMirrorImpl(r'_map', 2130022, 965, const prefix0.JsonSerializable(), -1, 189, 190, null, const [], null, null), r.ParameterMirrorImpl(r'_sym', 32870, 967, const prefix0.JsonSerializable(), -1, 244, 244, const [], const [], null, null), r.ParameterMirrorImpl(r'_favouriteColours', 2130022, 969, const prefix0.JsonSerializable(), -1, 245, 246, const [141], const [], null, null), r.ParameterMirrorImpl(r'_eyeColor', 32870, 971, const prefix0.JsonSerializable(), 141, 141, 141, const [], const [], null, null), r.ParameterMirrorImpl(r'_hairColor', 32870, 973, const prefix0.JsonSerializable(), 141, 141, 141, const [], const [], null, null), r.ParameterMirrorImpl(r'_vehicles', 2130022, 975, const prefix0.JsonSerializable(), -1, 247, 248, const [138], const [], null, null), r.ParameterMirrorImpl(r'_ccsdsOmmVers', 32870, 984, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_comment', 32870, 986, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_originator', 32870, 988, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_objectName', 32870, 990, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_objectId', 32870, 992, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_objectType', 32870, 994, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_centerName', 32870, 996, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_refFrame', 32870, 998, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_timeSystem', 32870, 1000, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_meanElementTheory', 32870, 1002, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_classificationType', 32870, 1004, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_rcsSize', 32870, 1006, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_countryCode', 32870, 1008, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_site', 32870, 1010, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_tleLine0', 32870, 1012, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_tleLine1', 32870, 1014, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_tleLine2', 32870, 1016, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_meanMotion', 32870, 1018, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_eccentricity', 32870, 1020, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_raOfAscNode', 32870, 1022, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_argOfPericenter', 32870, 1024, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_meanAnomaly', 32870, 1026, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_ephemerisType', 32870, 1028, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_noradCatId', 32870, 1030, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_elementSetNo', 32870, 1032, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_revAtEpoch', 32870, 1034, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_bstar', 32870, 1036, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_meanMotionDot', 32870, 1038, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_meanMotionDdot', 32870, 1040, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_semimajorAxis', 32870, 1042, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_period', 32870, 1044, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_apoapsis', 32870, 1046, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_periapsis', 32870, 1048, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_decayed', 32870, 1050, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_file', 32870, 1052, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_gpId', 32870, 1054, const prefix0.JsonSerializable(), -1, 191, 191, const [], const [], null, null), r.ParameterMirrorImpl(r'_decayDate', 32870, 1056, const prefix0.JsonSerializable(), -1, 157, 157, const [], const [], null, null), r.ParameterMirrorImpl(r'_creationDate', 32870, 1058, const prefix0.JsonSerializable(), -1, 157, 157, const [], const [], null, null), r.ParameterMirrorImpl(r'_epoch', 32870, 1060, const prefix0.JsonSerializable(), -1, 157, 157, const [], const [], null, null), r.ParameterMirrorImpl(r'_launchDate', 32870, 1062, const prefix0.JsonSerializable(), -1, 157, 157, const [], const [], null, null), r.ParameterMirrorImpl(r'_spaceTrack', 32870, 1065, const prefix0.JsonSerializable(), 142, 142, 142, const [], const [], null, null), r.ParameterMirrorImpl(r'_version', 32870, 1067, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_id', 32870, 1069, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null), r.ParameterMirrorImpl(r'_launch', 32870, 1071, const prefix0.JsonSerializable(), -1, 145, 145, const [], const [], null, null)], [prefix1.NavbarTab, prefix1.NavbarConfig, prefix1.NoticeItem, prefix1.NoticeList, prefix1.TestChain, const r.FakeType(r'._TestChain'), prefix1.Customer, prefix1.ServiceOrderItemModel, prefix1.ServiceOrderModel, prefix1.Item, prefix1.ListOfLists, prefix1.ListOfListsWithConstructor, prefix2.NameCaseObjectOverride, prefix2.NameCaseObject, prefix3.A, prefix3.C, prefix3.MixinContainer, prefix4.ShortEnumConverter, prefix4.EnumMappingsOverrideTest, prefix4.EnumIterables, prefix4.EnumIterablesWithConstructor, prefix4.StylingModel, prefix4.DefaultCategory, prefix4.Split, prefix4.SplitModel, prefix4.Category, prefix5.MyCar, prefix5.Device, prefix5.UserSettings, prefix5.UnAnnotatedEnumField, prefix5.ObjectWithRequiredField, prefix5.ObjectWithRequiredNullableField, prefix6.IgnoreMembers, prefix6.FieldAliasObject, prefix6.AnyObject, prefix6.UnmappedProperties, prefix6.AllPrivateFields, prefix6.Pagination, prefix6.Cars, prefix6.CarsPrefix, prefix6.CarsPrefixSnake, prefix7.Feature, prefix7.Product, prefix7.ProductCategory, prefix7.RootObject, prefix7.DeepNestedList, prefix7.DeepNestedInt, prefix7.NestedListItem, prefix8.ListDelimiter, prefix8.MyClass, prefix8.MyClassWoConstructor, prefix8.BinaryData, prefix8.BigIntData, prefix8.Model, prefix8.DurationModel, prefix8.NumericEnum, prefix8.ListItem, prefix8.CustomListContainer, prefix8.InlineJsonContainer, prefix8.DateTimeContainer, prefix8.MethodResponse, prefix8.MyEnumA, prefix8.MyEnumB, prefix8.NumericEnumTestColor, prefix8.MyEnum, prefix9.Tuple, prefix9.ConcreteClass, prefix10.UserX, prefix11.CropArea, prefix11.ImmutableDefault, prefix11.DefaultFields, prefix11.ManyDefaultFields, prefix11.GlobalDefaultFields, prefix12.BusinessObject, prefix12.LogisticsItem, prefix12.User, prefix12.Fo, prefix12.Bar, prefix12.Baz, prefix12.Base, prefix12.Derived, prefix12.Pt, prefix12.PtDerived, prefix12.PtDerived2, prefix12.StringListClass, prefix12.PositionalParametersClass, prefix12.OptionalParametersClass, prefix12.PartiallyOptionalParametersClass, prefix12.NamedParametersClass, prefix12.IgnoreNullMembersClass, prefix12.IgnoreNullMembersFromOptionsClass, prefix12.IgnoredFieldClass, prefix12.IgnoredFieldClassWoConstructor, prefix12.ImmutableDefault2, prefix12.Record, prefix12.GrandParent, prefix12.Parent, prefix12.Child, prefix12.Parent2, prefix12.Child2, prefix12.Parent3, prefix12.Child3, prefix13.Business, prefix13.Hotel, prefix13.Startup, prefix13.Stakeholder, prefix13.Business2, prefix13.Hotel2, prefix13.Startup2, prefix13.Stakeholder2, prefix13.AbstractUser, prefix13.UserImpl, prefix13.MyBaseClass, prefix13.MySuperclass, prefix13.BusinessType, prefix14.Object, prefix14.Address, prefix15.ChildInjected1, prefix15.ChildInjected2, prefix15.ChildInjected3, prefix16.AA, prefix16.BB, prefix16.GetQueryParameters, prefix16.UnbalancedGetSet, prefix17.MyNullableFieldsExample, prefix17.TransactionsRequestModel, prefix17.Preferences, prefix17.Metadata, prefix18.Foo, prefix18.BarBase, prefix18.Bar, prefix18.EntityModel, prefix18.AbstractEntityModel, prefix18.MyCarModel, prefix18.ApiResult, prefix18.UserModel, prefix18.ApiResultUserModel, prefix19.Immutable, prefix20.Car, prefix20.Person, prefix20.GettersOnly, prefix20.Color, prefix21.SpaceTrack, prefix21.Record, const r.FakeType(r'..A with .B'), String, bool, const m.TypeValue>().type, Map, String, double, const m.TypeValue>().type, List, const m.TypeValue>().type, List, int, int, DateTime, const m.TypeValue>().type, List, const m.TypeValue>>().type, List, List, const m.TypeValue>>().type, List, const m.TypeValue>().type, Set, prefix3.B, prefix4.ThirdParty, const m.TypeValue>().type, List, prefix4.ThirdParty, const m.TypeValue>().type, List, const m.TypeValue>().type, List, const m.TypeValue>().type, Set, const m.TypeValue>().type, Map, const m.TypeValue>().type, Map, const m.TypeValue>().type, Map, const m.TypeValue>().type, Map, const m.TypeValue>().type, List, prefix5.Sex, const m.TypeValue>().type, Map, num, const m.TypeValue>().type, List, const m.TypeValue>().type, List, const m.TypeValue>().type, List, const m.TypeValue>().type, List, const m.TypeValue>().type, List, prefix24.Uint8List, BigInt, Duration, const m.TypeValue>().type, List, const m.TypeValue>().type, Set, const m.TypeValue>().type, Map, const m.TypeValue>>().type, List, const m.TypeValue>().type, DateTime, const m.TypeValue>().type, Duration, bool, const m.TypeValue>().type, List, const m.TypeValue>().type, List, const m.TypeValue>().type, List, const m.TypeValue>().type, List, const m.TypeValue>().type, List, prefix15.ParentInjected1, prefix15.ParentInjected2, prefix15.ParentInjected3, const m.TypeValue>().type, List, const m.TypeValue>().type, List, const m.TypeValue>().type, Map, const m.TypeValue>().type, Set, const m.TypeValue>().type, List, num, const m.TypeValue>().type, Map, Symbol, const m.TypeValue>().type, List, const m.TypeValue>().type, List, Type, const m.TypeValue().type, const r.FakeType(r'.Tuple'), const r.FakeType(r'.Base'), const r.FakeType(r'.BarBase'), const r.FakeType(r'.BarBase'), const r.FakeType(r'.EntityModel'), const r.FakeType(r'.EntityModel'), const r.FakeType(r'.AbstractEntityModel'), const r.FakeType(r'.ApiResult'), const r.FakeType(r'.ApiResult'), Object, Invocation, const m.TypeValue>().type, const m.TypeValue>().type, const m.TypeValue>().type], 145, {r'==': (dynamic instance) => (x) => instance == x, r'toString': (dynamic instance) => instance.toString, r'noSuchMethod': (dynamic instance) => instance.noSuchMethod, r'hashCode': (dynamic instance) => instance.hashCode, r'runtimeType': (dynamic instance) => instance.runtimeType, r'icon': (dynamic instance) => instance.icon, r'title': (dynamic instance) => instance.title, r'on': (dynamic instance) => instance.on, r'tabs': (dynamic instance) => instance.tabs, r'activeColor': (dynamic instance) => instance.activeColor, r'inactiveColor': (dynamic instance) => instance.inactiveColor, r'backgroundColor': (dynamic instance) => instance.backgroundColor, r'fontSize': (dynamic instance) => instance.fontSize, r'list': (dynamic instance) => instance.list, r'mailingList': (dynamic instance) => instance.mailingList, r'id': (dynamic instance) => instance.id, r'name': (dynamic instance) => instance.name, r'sequence': (dynamic instance) => instance.sequence, r'description': (dynamic instance) => instance.description, r'number': (dynamic instance) => instance.number, r'customerId': (dynamic instance) => instance.customerId, r'customer': (dynamic instance) => instance.customer, r'expertId': (dynamic instance) => instance.expertId, r'start': (dynamic instance) => instance.start, r'items': (dynamic instance) => instance.items, r'end': (dynamic instance) => instance.end, r'resume': (dynamic instance) => instance.resume, r'lists': (dynamic instance) => instance.lists, r'mainTitle': (dynamic instance) => instance.mainTitle, r'hasMainProperty': (dynamic instance) => instance.hasMainProperty, r'primaryColor': (dynamic instance) => instance.primaryColor, r'ints': (dynamic instance) => instance.ints, r'b': (dynamic instance) => instance.b, r'party': (dynamic instance) => instance.party, r'parties': (dynamic instance) => instance.parties, r'color': (dynamic instance) => instance.color, r'colors': (dynamic instance) => instance.colors, r'colorsSet': (dynamic instance) => instance.colorsSet, r'colorPriorities': (dynamic instance) => instance.colorPriorities, r'partyPriorities': (dynamic instance) => instance.partyPriorities, r'primary': (dynamic instance) => instance.primary, r'category': (dynamic instance) => instance.category, r'values': (dynamic instance) => instance.values, r'index': (dynamic instance) => instance.index, r'model': (dynamic instance) => instance.model, r'replacement': (dynamic instance) => instance.replacement, r'devices': (dynamic instance) => instance.devices, r'sex': (dynamic instance) => instance.sex, r'value': (dynamic instance) => instance.value, r'value2': (dynamic instance) => instance.value2, r'location': (dynamic instance) => instance.location, r'unmappedSet': (dynamic instance) => instance.unmappedSet, r'unmappedGet': (dynamic instance) => instance.unmappedGet, r'extraPropsMap': (dynamic instance) => instance.extraPropsMap, r'setLastName': (dynamic instance) => instance.setLastName, r'getLastName': (dynamic instance) => instance.getLastName, r'limit': (dynamic instance) => instance.limit, r'offset': (dynamic instance) => instance.offset, r'total': (dynamic instance) => instance.total, r'pagination': (dynamic instance) => instance.pagination, r'cars': (dynamic instance) => instance.cars, r'categoryId': (dynamic instance) => instance.categoryId, r'productId': (dynamic instance) => instance.productId, r'features': (dynamic instance) => instance.features, r'products': (dynamic instance) => instance.products, r'count': (dynamic instance) => instance.count, r'count2': (dynamic instance) => instance.count2, r'cd': (dynamic instance) => instance.cd, r'count3': (dynamic instance) => instance.count3, r'enumA': (dynamic instance) => instance.enumA, r'enumB': (dynamic instance) => instance.enumB, r'data': (dynamic instance) => instance.data, r'bigInt': (dynamic instance) => instance.bigInt, r'set': (dynamic instance) => instance.set, r'dataHash': (dynamic instance) => instance.dataHash, r'createdAt': (dynamic instance) => instance.createdAt, r'responses': (dynamic instance) => instance.responses, r'value1': (dynamic instance) => instance.value1, r'tuple1': (dynamic instance) => instance.tuple1, r'tuple2': (dynamic instance) => instance.tuple2, r'type': (dynamic instance) => instance.type, r'top': (dynamic instance) => instance.top, r'left': (dynamic instance) => instance.left, r'right': (dynamic instance) => instance.right, r'bottom': (dynamic instance) => instance.bottom, r'cropArea': (dynamic instance) => instance.cropArea, r'car': (dynamic instance) => instance.car, r'logisticsChecked': (dynamic instance) => instance.logisticsChecked, r'logisticsOK': (dynamic instance) => instance.logisticsOK, r'email': (dynamic instance) => instance.email, r'bar': (dynamic instance) => instance.bar, r'message': (dynamic instance) => instance.message, r'baz': (dynamic instance) => instance.baz, r'pt': (dynamic instance) => instance.pt, r'firstName': (dynamic instance) => instance.firstName, r'lastName': (dynamic instance) => instance.lastName, r'middleName': (dynamic instance) => instance.middleName, r'child': (dynamic instance) => instance.child, r'children': (dynamic instance) => instance.children, r'parent': (dynamic instance) => instance.parent, r'stars': (dynamic instance) => instance.stars, r'userCount': (dynamic instance) => instance.userCount, r'fullName': (dynamic instance) => instance.fullName, r'businesses': (dynamic instance) => instance.businesses, r'copyWith': (dynamic instance) => instance.copyWith, r'myField': (dynamic instance) => instance.myField, r'myGetter': (dynamic instance) => instance.myGetter, r'phoneNumber': (dynamic instance) => instance.phoneNumber, r'country': (dynamic instance) => instance.country, r'city': (dynamic instance) => instance.city, r'zipCode': (dynamic instance) => instance.zipCode, r'street': (dynamic instance) => instance.street, r'streetList': (dynamic instance) => instance.streetList, r'district': (dynamic instance) => instance.district, r'nickname': (dynamic instance) => instance.nickname, r'content': (dynamic instance) => instance.content, r'page': (dynamic instance) => instance.page, r'fieldSearchable': (dynamic instance) => instance.fieldSearchable, r'types': (dynamic instance) => instance.types, r'myList': (dynamic instance) => instance.myList, r'myMap': (dynamic instance) => instance.myMap, r'mySet': (dynamic instance) => instance.mySet, r'accountType': (dynamic instance) => instance.accountType, r'defaultCountryIsoCode': (dynamic instance) => instance.defaultCountryIsoCode, r'autoImportContacts': (dynamic instance) => instance.autoImportContacts, r'metadata': (dynamic instance) => instance.metadata, r'createdBy': (dynamic instance) => instance.createdBy, r'deleted': (dynamic instance) => instance.deleted, r'fromJson': (dynamic instance) => instance.fromJson, r'toJson': (dynamic instance) => instance.toJson, r'foo': (dynamic instance) => instance.foo, r'entityToJson': (dynamic instance) => instance.entityToJson, r'setEntityPropertyFromJson': (dynamic instance) => instance.setEntityPropertyFromJson, r'newEntityFromModelJson': (dynamic instance) => instance.newEntityFromModelJson, r'newEntityFromJson': (dynamic instance) => instance.newEntityFromJson, r'parentUuid': (dynamic instance) => instance.parentUuid, r'uuid': (dynamic instance) => instance.uuid, r'entity': (dynamic instance) => instance.entity, r'merge': (dynamic instance) => instance.merge, r'Success': (dynamic instance) => instance.Success, r'Result': (dynamic instance) => instance.Result, r'Id': (dynamic instance) => instance.Id, r'Name': (dynamic instance) => instance.Name, r'skills': (dynamic instance) => instance.skills, r'specialDates': (dynamic instance) => instance.specialDates, r'lastPromotionDate': (dynamic instance) => instance.lastPromotionDate, r'hireDate': (dynamic instance) => instance.hireDate, r'married': (dynamic instance) => instance.married, r'active': (dynamic instance) => instance.active, r'salary': (dynamic instance) => instance.salary, r'dob': (dynamic instance) => instance.dob, r'age': (dynamic instance) => instance.age, r'dyn': (dynamic instance) => instance.dyn, r'dynNum': (dynamic instance) => instance.dynNum, r'dynBool': (dynamic instance) => instance.dynBool, r'properties': (dynamic instance) => instance.properties, r'map': (dynamic instance) => instance.map, r'sym': (dynamic instance) => instance.sym, r'favouriteColours': (dynamic instance) => instance.favouriteColours, r'eyeColor': (dynamic instance) => instance.eyeColor, r'hairColor': (dynamic instance) => instance.hairColor, r'vehicles': (dynamic instance) => instance.vehicles, r'nextCatId': (dynamic instance) => instance.nextCatId, r'nextDogId': (dynamic instance) => instance.nextDogId, r'ccsdsOmmVers': (dynamic instance) => instance.ccsdsOmmVers, r'comment': (dynamic instance) => instance.comment, r'originator': (dynamic instance) => instance.originator, r'objectName': (dynamic instance) => instance.objectName, r'objectId': (dynamic instance) => instance.objectId, r'objectType': (dynamic instance) => instance.objectType, r'centerName': (dynamic instance) => instance.centerName, r'refFrame': (dynamic instance) => instance.refFrame, r'timeSystem': (dynamic instance) => instance.timeSystem, r'meanElementTheory': (dynamic instance) => instance.meanElementTheory, r'classificationType': (dynamic instance) => instance.classificationType, r'rcsSize': (dynamic instance) => instance.rcsSize, r'countryCode': (dynamic instance) => instance.countryCode, r'site': (dynamic instance) => instance.site, r'tleLine0': (dynamic instance) => instance.tleLine0, r'tleLine1': (dynamic instance) => instance.tleLine1, r'tleLine2': (dynamic instance) => instance.tleLine2, r'meanMotion': (dynamic instance) => instance.meanMotion, r'eccentricity': (dynamic instance) => instance.eccentricity, r'raOfAscNode': (dynamic instance) => instance.raOfAscNode, r'argOfPericenter': (dynamic instance) => instance.argOfPericenter, r'meanAnomaly': (dynamic instance) => instance.meanAnomaly, r'ephemerisType': (dynamic instance) => instance.ephemerisType, r'noradCatId': (dynamic instance) => instance.noradCatId, r'elementSetNo': (dynamic instance) => instance.elementSetNo, r'revAtEpoch': (dynamic instance) => instance.revAtEpoch, r'bstar': (dynamic instance) => instance.bstar, r'meanMotionDot': (dynamic instance) => instance.meanMotionDot, r'meanMotionDdot': (dynamic instance) => instance.meanMotionDdot, r'semimajorAxis': (dynamic instance) => instance.semimajorAxis, r'period': (dynamic instance) => instance.period, r'apoapsis': (dynamic instance) => instance.apoapsis, r'periapsis': (dynamic instance) => instance.periapsis, r'decayed': (dynamic instance) => instance.decayed, r'file': (dynamic instance) => instance.file, r'gpId': (dynamic instance) => instance.gpId, r'decayDate': (dynamic instance) => instance.decayDate, r'creationDate': (dynamic instance) => instance.creationDate, r'epoch': (dynamic instance) => instance.epoch, r'launchDate': (dynamic instance) => instance.launchDate, r'spaceTrack': (dynamic instance) => instance.spaceTrack, r'version': (dynamic instance) => instance.version, r'launch': (dynamic instance) => instance.launch}, {r'list=': (dynamic instance, value) => instance.list = value, r'mailingList=': (dynamic instance, value) => instance.mailingList = value, r'id=': (dynamic instance, value) => instance.id = value, r'number=': (dynamic instance, value) => instance.number = value, r'customerId=': (dynamic instance, value) => instance.customerId = value, r'customer=': (dynamic instance, value) => instance.customer = value, r'expertId=': (dynamic instance, value) => instance.expertId = value, r'start=': (dynamic instance, value) => instance.start = value, r'items=': (dynamic instance, value) => instance.items = value, r'end=': (dynamic instance, value) => instance.end = value, r'resume=': (dynamic instance, value) => instance.resume = value, r'lists=': (dynamic instance, value) => instance.lists = value, r'mainTitle=': (dynamic instance, value) => instance.mainTitle = value, r'description=': (dynamic instance, value) => instance.description = value, r'hasMainProperty=': (dynamic instance, value) => instance.hasMainProperty = value, r'primaryColor=': (dynamic instance, value) => instance.primaryColor = value, r'party=': (dynamic instance, value) => instance.party = value, r'parties=': (dynamic instance, value) => instance.parties = value, r'color=': (dynamic instance, value) => instance.color = value, r'colors=': (dynamic instance, value) => instance.colors = value, r'colorsSet=': (dynamic instance, value) => instance.colorsSet = value, r'colorPriorities=': (dynamic instance, value) => instance.colorPriorities = value, r'partyPriorities=': (dynamic instance, value) => instance.partyPriorities = value, r'category=': (dynamic instance, value) => instance.category = value, r'values=': (dynamic instance, value) => instance.values = value, r'model=': (dynamic instance, value) => instance.model = value, r'replacement=': (dynamic instance, value) => instance.replacement = value, r'devices=': (dynamic instance, value) => instance.devices = value, r'sex=': (dynamic instance, value) => instance.sex = value, r'value=': (dynamic instance, value) => instance.value = value, r'value2=': (dynamic instance, value) => instance.value2 = value, r'name=': (dynamic instance, value) => instance.name = value, r'title=': (dynamic instance, value) => instance.title = value, r'extraPropsMap=': (dynamic instance, value) => instance.extraPropsMap = value, r'limit=': (dynamic instance, value) => instance.limit = value, r'offset=': (dynamic instance, value) => instance.offset = value, r'total=': (dynamic instance, value) => instance.total = value, r'pagination=': (dynamic instance, value) => instance.pagination = value, r'cars=': (dynamic instance, value) => instance.cars = value, r'categoryId=': (dynamic instance, value) => instance.categoryId = value, r'productId=': (dynamic instance, value) => instance.productId = value, r'features=': (dynamic instance, value) => instance.features = value, r'products=': (dynamic instance, value) => instance.products = value, r'count=': (dynamic instance, value) => instance.count = value, r'count2=': (dynamic instance, value) => instance.count2 = value, r'cd=': (dynamic instance, value) => instance.cd = value, r'count3=': (dynamic instance, value) => instance.count3 = value, r'enumA=': (dynamic instance, value) => instance.enumA = value, r'enumB=': (dynamic instance, value) => instance.enumB = value, r'data=': (dynamic instance, value) => instance.data = value, r'bigInt=': (dynamic instance, value) => instance.bigInt = value, r'set=': (dynamic instance, value) => instance.set = value, r'dataHash=': (dynamic instance, value) => instance.dataHash = value, r'createdAt=': (dynamic instance, value) => instance.createdAt = value, r'responses=': (dynamic instance, value) => instance.responses = value, r'top=': (dynamic instance, value) => instance.top = value, r'left=': (dynamic instance, value) => instance.left = value, r'right=': (dynamic instance, value) => instance.right = value, r'bottom=': (dynamic instance, value) => instance.bottom = value, r'cropArea=': (dynamic instance, value) => instance.cropArea = value, r'email=': (dynamic instance, value) => instance.email = value, r'firstName=': (dynamic instance, value) => instance.firstName = value, r'lastName=': (dynamic instance, value) => instance.lastName = value, r'middleName=': (dynamic instance, value) => instance.middleName = value, r'child=': (dynamic instance, value) => instance.child = value, r'children=': (dynamic instance, value) => instance.children = value, r'parent=': (dynamic instance, value) => instance.parent = value, r'stars=': (dynamic instance, value) => instance.stars = value, r'userCount=': (dynamic instance, value) => instance.userCount = value, r'fullName=': (dynamic instance, value) => instance.fullName = value, r'businesses=': (dynamic instance, value) => instance.businesses = value, r'type=': (dynamic instance, value) => instance.type = value, r'phoneNumber=': (dynamic instance, value) => instance.phoneNumber = value, r'country=': (dynamic instance, value) => instance.country = value, r'city=': (dynamic instance, value) => instance.city = value, r'zipCode=': (dynamic instance, value) => instance.zipCode = value, r'street=': (dynamic instance, value) => instance.street = value, r'streetList=': (dynamic instance, value) => instance.streetList = value, r'district=': (dynamic instance, value) => instance.district = value, r'nickname=': (dynamic instance, value) => instance.nickname = value, r'content=': (dynamic instance, value) => instance.content = value, r'page=': (dynamic instance, value) => instance.page = value, r'fieldSearchable=': (dynamic instance, value) => instance.fieldSearchable = value, r'types=': (dynamic instance, value) => instance.types = value, r'myList=': (dynamic instance, value) => instance.myList = value, r'myMap=': (dynamic instance, value) => instance.myMap = value, r'mySet=': (dynamic instance, value) => instance.mySet = value, r'foo=': (dynamic instance, value) => instance.foo = value, r'Success=': (dynamic instance, value) => instance.Success = value, r'Result=': (dynamic instance, value) => instance.Result = value, r'Id=': (dynamic instance, value) => instance.Id = value, r'Name=': (dynamic instance, value) => instance.Name = value, r'skills=': (dynamic instance, value) => instance.skills = value, r'specialDates=': (dynamic instance, value) => instance.specialDates = value, r'lastPromotionDate=': (dynamic instance, value) => instance.lastPromotionDate = value, r'hireDate=': (dynamic instance, value) => instance.hireDate = value, r'married=': (dynamic instance, value) => instance.married = value, r'active=': (dynamic instance, value) => instance.active = value, r'salary=': (dynamic instance, value) => instance.salary = value, r'dob=': (dynamic instance, value) => instance.dob = value, r'age=': (dynamic instance, value) => instance.age = value, r'dyn=': (dynamic instance, value) => instance.dyn = value, r'dynNum=': (dynamic instance, value) => instance.dynNum = value, r'dynBool=': (dynamic instance, value) => instance.dynBool = value, r'properties=': (dynamic instance, value) => instance.properties = value, r'map=': (dynamic instance, value) => instance.map = value, r'sym=': (dynamic instance, value) => instance.sym = value, r'favouriteColours=': (dynamic instance, value) => instance.favouriteColours = value, r'eyeColor=': (dynamic instance, value) => instance.eyeColor = value, r'hairColor=': (dynamic instance, value) => instance.hairColor = value, r'vehicles=': (dynamic instance, value) => instance.vehicles = value, r'ccsdsOmmVers=': (dynamic instance, value) => instance.ccsdsOmmVers = value, r'comment=': (dynamic instance, value) => instance.comment = value, r'originator=': (dynamic instance, value) => instance.originator = value, r'objectName=': (dynamic instance, value) => instance.objectName = value, r'objectId=': (dynamic instance, value) => instance.objectId = value, r'objectType=': (dynamic instance, value) => instance.objectType = value, r'centerName=': (dynamic instance, value) => instance.centerName = value, r'refFrame=': (dynamic instance, value) => instance.refFrame = value, r'timeSystem=': (dynamic instance, value) => instance.timeSystem = value, r'meanElementTheory=': (dynamic instance, value) => instance.meanElementTheory = value, r'classificationType=': (dynamic instance, value) => instance.classificationType = value, r'rcsSize=': (dynamic instance, value) => instance.rcsSize = value, r'countryCode=': (dynamic instance, value) => instance.countryCode = value, r'site=': (dynamic instance, value) => instance.site = value, r'tleLine0=': (dynamic instance, value) => instance.tleLine0 = value, r'tleLine1=': (dynamic instance, value) => instance.tleLine1 = value, r'tleLine2=': (dynamic instance, value) => instance.tleLine2 = value, r'meanMotion=': (dynamic instance, value) => instance.meanMotion = value, r'eccentricity=': (dynamic instance, value) => instance.eccentricity = value, r'raOfAscNode=': (dynamic instance, value) => instance.raOfAscNode = value, r'argOfPericenter=': (dynamic instance, value) => instance.argOfPericenter = value, r'meanAnomaly=': (dynamic instance, value) => instance.meanAnomaly = value, r'ephemerisType=': (dynamic instance, value) => instance.ephemerisType = value, r'noradCatId=': (dynamic instance, value) => instance.noradCatId = value, r'elementSetNo=': (dynamic instance, value) => instance.elementSetNo = value, r'revAtEpoch=': (dynamic instance, value) => instance.revAtEpoch = value, r'bstar=': (dynamic instance, value) => instance.bstar = value, r'meanMotionDot=': (dynamic instance, value) => instance.meanMotionDot = value, r'meanMotionDdot=': (dynamic instance, value) => instance.meanMotionDdot = value, r'semimajorAxis=': (dynamic instance, value) => instance.semimajorAxis = value, r'period=': (dynamic instance, value) => instance.period = value, r'apoapsis=': (dynamic instance, value) => instance.apoapsis = value, r'periapsis=': (dynamic instance, value) => instance.periapsis = value, r'decayed=': (dynamic instance, value) => instance.decayed = value, r'file=': (dynamic instance, value) => instance.file = value, r'gpId=': (dynamic instance, value) => instance.gpId = value, r'decayDate=': (dynamic instance, value) => instance.decayDate = value, r'creationDate=': (dynamic instance, value) => instance.creationDate = value, r'epoch=': (dynamic instance, value) => instance.epoch = value, r'launchDate=': (dynamic instance, value) => instance.launchDate = value, r'spaceTrack=': (dynamic instance, value) => instance.spaceTrack = value, r'version=': (dynamic instance, value) => instance.version = value, r'launch=': (dynamic instance, value) => instance.launch = value}, null, [])}; +final _data = {const prefix0.JsonSerializable(): r.ReflectorData([r.NonGenericClassMirrorImpl(r'Tire', r'.Tire', 134217735, 0, const prefix0.JsonSerializable(), const [0, 1, 359], const [360, 361, 362, 363, 364, 357, 358], const [], -1, {}, {}, {r'': (bool b) => (thickness, color) => b ? prefix1.Tire(thickness, color) : null}, -1, 0, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Wheel', r'.Wheel', 134217735, 1, const prefix0.JsonSerializable(), const [2, 366], const [360, 361, 362, 363, 364, 365], const [], -1, {}, {}, {r'': (bool b) => (tire) => b ? prefix1.Wheel(tire) : null}, -1, 1, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Car', r'.Car', 134217735, 2, const prefix0.JsonSerializable(), const [3, 4, 5, 373], const [360, 361, 362, 363, 364, 367, 368, 369, 370, 371, 372], const [], -1, {}, {}, {r'': (bool b) => (model, color) => b ? prefix1.Car(model, color) : null}, -1, 2, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ComposableCar', r'.ComposableCar', 134217735, 3, const prefix0.JsonSerializable(), const [6, 7, 376], const [360, 361, 362, 363, 364, 374, 375], const [], -1, {}, {}, {r'': (bool b) => (leftWheel, rightWheel) => b ? prefix1.ComposableCar(leftWheel, rightWheel) : null}, -1, 3, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Person', r'.Person', 134217735, 4, const prefix0.JsonSerializable(), const [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 419, 420], const [360, 361, 362, 363, 364, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix1.Person() : null}, -1, 4, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'GettersOnly', r'.GettersOnly', 134217735, 5, const prefix0.JsonSerializable(), const [421, 422, 423], const [360, 361, 362, 363, 364, 421, 422], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix1.GettersOnly() : null}, -1, 5, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Color', r'.Color', 138412039, 6, const prefix0.JsonSerializable(), const [424], const [360, 361, 362, 363, 364, 425], const [], -1, {}, {}, {}, -1, 6, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'BusinessObject', r'.BusinessObject', 134217735, 7, const prefix0.JsonSerializable(), const [29, 30, 428, 429], const [360, 361, 362, 363, 364, 426, 427], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix2.BusinessObject() : null, r'fromJson': (bool b) => (processed) => b ? prefix2.BusinessObject.fromJson(processed) : null}, -1, 7, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'LogisticsItem', r'.LogisticsItem', 134217735, 8, const prefix0.JsonSerializable(), const [31, 32, 432], const [360, 361, 362, 363, 364, 430, 431], const [], -1, {}, {}, {r'': (bool b) => (processed) => b ? prefix2.LogisticsItem(processed) : null}, -1, 8, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'User', r'.User', 134217735, 9, const prefix0.JsonSerializable(), const [33, 435], const [360, 361, 362, 363, 364, 433, 434], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix2.User() : null}, -1, 9, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Fo', r'.Fo', 134217735, 10, const prefix0.JsonSerializable(), const [34, 35, 438], const [360, 361, 362, 363, 364, 436, 437], const [], -1, {}, {}, {r'': (bool b) => (bar, message) => b ? prefix2.Fo(bar, message) : null}, -1, 10, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Bar', r'.Bar', 134217735, 11, const prefix0.JsonSerializable(), const [36, 440], const [360, 361, 362, 363, 364, 439], const [], -1, {}, {}, {r'': (bool b) => (baz) => b ? prefix2.Bar(baz) : null}, -1, 11, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Baz', r'.Baz', 134217735, 12, const prefix0.JsonSerializable(), const [441], const [360, 361, 362, 363, 364], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix2.Baz() : null}, -1, 12, const [], const [prefix0.jsonSerializable], null), r.GenericClassMirrorImpl(r'Base', r'.Base', 134217735, 13, const prefix0.JsonSerializable(), const [37, 443], const [360, 361, 362, 363, 364, 442], const [], -1, {}, {}, {r'': (bool b) => (value) => b ? prefix2.Base(value) : null}, -1, 13, const [], const [prefix0.jsonSerializable], null, (o) { return o is prefix2.Base && o is! prefix2.Derived && o is! prefix2.PtDerived && o is! prefix2.PtDerived2; }, const [167], 13), r.NonGenericClassMirrorImpl(r'Derived', r'.Derived', 134217735, 14, const prefix0.JsonSerializable(), const [444], const [360, 361, 362, 363, 364, 442], const [], 13, {}, {}, {r'': (bool b) => (value) => b ? prefix2.Derived(value) : null}, -1, 14, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Pt', r'.Pt', 134217735, 15, const prefix0.JsonSerializable(), const [445], const [360, 361, 362, 363, 364], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix2.Pt() : null}, -1, 15, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'PtDerived', r'.PtDerived', 134217735, 16, const prefix0.JsonSerializable(), const [446], const [360, 361, 362, 363, 364, 442], const [], 13, {}, {}, {r'': (bool b) => (value) => b ? prefix2.PtDerived(value) : null}, -1, 16, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'PtDerived2', r'.PtDerived2', 134217735, 17, const prefix0.JsonSerializable(), const [38, 448], const [360, 361, 362, 363, 364, 442, 447], const [], 13, {}, {}, {r'': (bool b) => (pt) => b ? prefix2.PtDerived2(pt) : null}, -1, 17, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'StringListClass', r'.StringListClass', 134217735, 18, const prefix0.JsonSerializable(), const [39, 451], const [360, 361, 362, 363, 364, 449, 450], const [], -1, {}, {}, {r'': (bool b) => (list) => b ? prefix2.StringListClass(list) : null}, -1, 18, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'PositionalParametersClass', r'.PositionalParametersClass', 134217735, 19, const prefix0.JsonSerializable(), const [40, 41, 456], const [360, 361, 362, 363, 364, 452, 453, 454, 455], const [], -1, {}, {}, {r'': (bool b) => (firstName, lastName) => b ? prefix2.PositionalParametersClass(firstName, lastName) : null}, -1, 19, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'OptionalParametersClass', r'.OptionalParametersClass', 134217735, 20, const prefix0.JsonSerializable(), const [42, 43, 461], const [360, 361, 362, 363, 364, 457, 458, 459, 460], const [], -1, {}, {}, {r'': (bool b) => ([firstName, lastName]) => b ? prefix2.OptionalParametersClass(firstName, lastName) : null}, -1, 20, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'PartiallyOptionalParametersClass', r'.PartiallyOptionalParametersClass', 134217735, 21, const prefix0.JsonSerializable(), const [44, 45, 466], const [360, 361, 362, 363, 364, 462, 463, 464, 465], const [], -1, {}, {}, {r'': (bool b) => (firstName, [lastName]) => b ? prefix2.PartiallyOptionalParametersClass(firstName, lastName) : null}, -1, 21, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'NamedParametersClass', r'.NamedParametersClass', 134217735, 22, const prefix0.JsonSerializable(), const [46, 47, 471], const [360, 361, 362, 363, 364, 467, 468, 469, 470], const [], -1, {}, {}, {r'': (bool b) => ({firstName, lastName}) => b ? prefix2.NamedParametersClass(firstName: firstName, lastName: lastName) : null}, -1, 22, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'IgnoreNullMembersClass', r'.IgnoreNullMembersClass', 134217735, 23, const prefix0.JsonSerializable(), const [48, 49, 50, 478], const [360, 361, 362, 363, 364, 472, 473, 474, 475, 476, 477], const [], -1, {}, {}, {r'': (bool b) => ({firstName, middleName, lastName}) => b ? prefix2.IgnoreNullMembersClass(firstName: firstName, lastName: lastName, middleName: middleName) : null}, -1, 23, const [], const [prefix0.jsonSerializable, const prefix0.Json(ignoreNullMembers: true)], null), r.NonGenericClassMirrorImpl(r'IgnoreNullMembersFromOptionsClass', r'.IgnoreNullMembersFromOptionsClass', 134217735, 24, const prefix0.JsonSerializable(), const [51, 52, 53, 485], const [360, 361, 362, 363, 364, 479, 480, 481, 482, 483, 484], const [], -1, {}, {}, {r'': (bool b) => ({firstName, middleName, lastName}) => b ? prefix2.IgnoreNullMembersFromOptionsClass(firstName: firstName, lastName: lastName, middleName: middleName) : null}, -1, 24, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'IgnoredFieldClass', r'.IgnoredFieldClass', 134217735, 25, const prefix0.JsonSerializable(), const [54, 55, 56, 492], const [360, 361, 362, 363, 364, 486, 487, 488, 489, 490, 491], const [], -1, {}, {}, {r'': (bool b) => ({firstName, middleName, lastName}) => b ? prefix2.IgnoredFieldClass(firstName: firstName, lastName: lastName, middleName: middleName) : null}, -1, 25, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'IgnoredFieldClassWoConstructor', r'.IgnoredFieldClassWoConstructor', 134217735, 26, const prefix0.JsonSerializable(), const [57, 58, 59, 499], const [360, 361, 362, 363, 364, 493, 494, 495, 496, 497, 498], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix2.IgnoredFieldClassWoConstructor() : null}, -1, 26, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ImmutableDefault2', r'.ImmutableDefault2', 134217735, 27, const prefix0.JsonSerializable(), const [60, 61, 62, 503], const [360, 361, 362, 363, 364, 500, 501, 502], const [], -1, {}, {}, {r'': (bool b) => ({id, name, car}) => b ? prefix2.ImmutableDefault2(car: car, id: id, name: name) : null}, -1, 27, const [], const [prefix0.jsonSerializable, const prefix0.Json(processAnnotatedMembersOnly: true)], null), r.NonGenericClassMirrorImpl(r'Record', r'.Record', 134217735, 28, const prefix0.JsonSerializable(), const [63, 64, 504, 509], const [360, 504, 362, 363, 364, 505, 506, 507, 508], const [], -1, {}, {}, {r'json': (bool b) => (id, number) => b ? prefix2.Record.json(id, number) : null}, -1, 28, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'GrandParent', r'.GrandParent', 134217735, 29, const prefix0.JsonSerializable(), const [65, 512], const [360, 361, 362, 363, 364, 510, 511], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix2.GrandParent() : null}, -1, 29, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Parent', r'.Parent', 134217735, 30, const prefix0.JsonSerializable(), const [66, 67, 68, 519], const [360, 361, 362, 363, 364, 513, 514, 515, 516, 517, 518], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix2.Parent() : null}, -1, 30, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Child', r'.Child', 134217735, 31, const prefix0.JsonSerializable(), const [69, 70, 524], const [360, 361, 362, 363, 364, 520, 521, 522, 523], const [], -1, {}, {}, {r'': (bool b) => (parent) => b ? prefix2.Child(parent) : null}, -1, 31, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Parent2', r'.Parent2', 134217735, 32, const prefix0.JsonSerializable(), const [71, 72, 529], const [360, 361, 362, 363, 364, 525, 526, 527, 528], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix2.Parent2() : null}, -1, 32, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Child2', r'.Child2', 134217735, 33, const prefix0.JsonSerializable(), const [73, 74, 534], const [360, 361, 362, 363, 364, 530, 531, 532, 533], const [], -1, {}, {}, {r'json': (bool b) => (parent) => b ? prefix2.Child2.json(parent) : null}, -1, 33, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Parent3', r'.Parent3', 134217735, 34, const prefix0.JsonSerializable(), const [75, 76, 539], const [360, 361, 362, 363, 364, 535, 536, 537, 538], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix2.Parent3() : null}, -1, 34, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Child3', r'.Child3', 134217735, 35, const prefix0.JsonSerializable(), const [77, 78, 544], const [360, 361, 362, 363, 364, 540, 541, 542, 543], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix2.Child3() : null}, -1, 35, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'UserX', r'.UserX', 134217735, 36, const prefix0.JsonSerializable(), const [79, 80, 547], const [360, 361, 362, 363, 364, 545, 546], const [], -1, {}, {}, {r'': (bool b) => (id, type) => b ? prefix3.UserX(id, type) : null}, -1, 36, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ListDelimiter', r'.ListDelimiter', 134217735, 37, const prefix0.JsonSerializable(), const [81, 550], const [360, 361, 362, 363, 364, 548, 549], const [], -1, {}, {}, {r'': (bool b) => ({list}) => b ? prefix4.ListDelimiter(list: list) : null}, -1, 37, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'MyClass', r'.MyClass', 134217735, 38, const prefix0.JsonSerializable(), const [82, 83, 555], const [360, 361, 362, 363, 364, 551, 552, 553, 554], const [], -1, {}, {}, {r'': (bool b) => (enumA, enumB) => b ? prefix4.MyClass(enumA, enumB) : null}, -1, 38, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'MyClassWoConstructor', r'.MyClassWoConstructor', 134217735, 39, const prefix0.JsonSerializable(), const [84, 85, 560], const [360, 361, 362, 363, 364, 556, 557, 558, 559], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix4.MyClassWoConstructor() : null}, -1, 39, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'BinaryData', r'.BinaryData', 134217735, 40, const prefix0.JsonSerializable(), const [86, 563], const [360, 361, 362, 363, 364, 561, 562], const [], -1, {}, {}, {r'': (bool b) => (data) => b ? prefix4.BinaryData(data) : null}, -1, 40, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'BigIntData', r'.BigIntData', 134217735, 41, const prefix0.JsonSerializable(), const [87, 566], const [360, 361, 362, 363, 364, 564, 565], const [], -1, {}, {}, {r'': (bool b) => (bigInt) => b ? prefix4.BigIntData(bigInt) : null}, -1, 41, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Model', r'.Model', 134217735, 42, const prefix0.JsonSerializable(), const [88, 569], const [360, 361, 362, 363, 364, 567, 568], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix4.Model() : null}, -1, 42, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'DurationModel', r'.DurationModel', 134217735, 43, const prefix0.JsonSerializable(), const [89, 572], const [360, 361, 362, 363, 364, 570, 571], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix4.DurationModel() : null}, -1, 43, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'NumericEnum', r'.NumericEnum', 134217735, 44, const prefix0.JsonSerializable(), const [90, 575], const [360, 361, 362, 363, 364, 573, 574], const [], -1, {}, {}, {r'': (bool b) => (color) => b ? prefix4.NumericEnum(color) : null}, -1, 44, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ListItem', r'.ListItem', 134217735, 45, const prefix0.JsonSerializable(), const [576], const [360, 361, 362, 363, 364], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix4.ListItem() : null}, -1, 45, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'CustomListContainer', r'.CustomListContainer', 134217735, 46, const prefix0.JsonSerializable(), const [91, 92, 581], const [360, 361, 362, 363, 364, 577, 578, 579, 580], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix4.CustomListContainer() : null}, -1, 46, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'InlineJsonContainer', r'.InlineJsonContainer', 134217735, 47, const prefix0.JsonSerializable(), const [93, 584], const [360, 361, 362, 363, 364, 582, 583], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix4.InlineJsonContainer() : null}, -1, 47, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'DateTimeContainer', r'.DateTimeContainer', 134217735, 48, const prefix0.JsonSerializable(), const [94, 587], const [360, 361, 362, 363, 364, 585, 586], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix4.DateTimeContainer() : null}, -1, 48, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'MethodResponse', r'.MethodResponse', 134217735, 49, const prefix0.JsonSerializable(), const [95, 590], const [360, 361, 362, 363, 364, 588, 589], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix4.MethodResponse() : null}, -1, 49, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'MyEnumA', r'.MyEnumA', 138412039, 50, const prefix0.JsonSerializable(), const [591], const [360, 361, 362, 363, 364, 425], const [], -1, {}, {}, {}, -1, 50, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'MyEnumB', r'.MyEnumB', 138412039, 51, const prefix0.JsonSerializable(), const [592], const [360, 361, 362, 363, 364, 425], const [], -1, {}, {}, {}, -1, 51, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'NumericEnumTestColor', r'.NumericEnumTestColor', 138412039, 52, const prefix0.JsonSerializable(), const [593], const [360, 361, 362, 363, 364, 425], const [], -1, {}, {}, {}, -1, 52, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'MyEnum', r'.MyEnum', 138412039, 53, const prefix0.JsonSerializable(), const [594], const [360, 361, 362, 363, 364, 425], const [], -1, {}, {}, {}, -1, 53, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'CropArea', r'.CropArea', 134217735, 54, const prefix0.JsonSerializable(), const [96, 97, 98, 99, 603], const [360, 361, 362, 363, 364, 595, 596, 597, 598, 599, 600, 601, 602], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix5.CropArea() : null}, -1, 54, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ImmutableDefault', r'.ImmutableDefault', 134217735, 55, const prefix0.JsonSerializable(), const [100, 101, 102, 103, 608], const [360, 361, 362, 363, 364, 604, 605, 606, 607], const [], -1, {}, {}, {r'': (bool b) => ({cropArea, id, name, car}) => b ? prefix5.ImmutableDefault(car: car, cropArea: cropArea, id: id, name: name) : null}, -1, 55, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'DefaultFields', r'.DefaultFields', 134217735, 56, const prefix0.JsonSerializable(), const [104, 105, 613], const [360, 361, 362, 363, 364, 609, 610, 611, 612], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix5.DefaultFields() : null}, -1, 56, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ManyDefaultFields', r'.ManyDefaultFields', 134217735, 57, const prefix0.JsonSerializable(), const [106, 107, 618], const [360, 361, 362, 363, 364, 614, 615, 616, 617], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix5.ManyDefaultFields() : null}, -1, 57, const [], const [prefix0.jsonSerializable, const prefix0.Json(ignoreDefaultMembers: true)], null), r.NonGenericClassMirrorImpl(r'GlobalDefaultFields', r'.GlobalDefaultFields', 134217735, 58, const prefix0.JsonSerializable(), const [108, 109, 623], const [360, 361, 362, 363, 364, 619, 620, 621, 622], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix5.GlobalDefaultFields() : null}, -1, 58, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'DefaultValueOverrideTest', r'.DefaultValueOverrideTest', 134217735, 59, const prefix0.JsonSerializable(), const [110, 626], const [360, 361, 362, 363, 364, 624, 625], const [], -1, {}, {}, {r'': (bool b) => (value) => b ? prefix5.DefaultValueOverrideTest(value) : null}, -1, 59, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'PascalCaseModel', r'.PascalCaseModel', 134217735, 60, const prefix0.JsonSerializable(), const [111, 112, 631], const [360, 361, 362, 363, 364, 627, 628, 629, 630], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix6.PascalCaseModel() : null}, -1, 60, const [], const [prefix0.jsonSerializable, const prefix0.Json(caseStyle: prefix26.CaseStyle.pascal)], null), r.NonGenericClassMirrorImpl(r'ShortEnumConverter', r'.ShortEnumConverter', 134217735, 61, const prefix0.JsonSerializable(), const [113, 634], const [360, 361, 362, 363, 364, 632, 633], const [], -1, {}, {}, {r'': (bool b) => ({party}) => b ? prefix6.ShortEnumConverter(party: party) : null}, -1, 61, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'EnumMappingsOverrideTest', r'.EnumMappingsOverrideTest', 134217735, 62, const prefix0.JsonSerializable(), const [114, 637], const [360, 361, 362, 363, 364, 635, 636], const [], -1, {}, {}, {r'': (bool b) => ({parties}) => b ? prefix6.EnumMappingsOverrideTest(parties: parties) : null}, -1, 62, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'EnumIterables', r'.EnumIterables', 134217735, 63, const prefix0.JsonSerializable(), const [115, 116, 117, 118, 119, 120, 121, 652], const [360, 361, 362, 363, 364, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix6.EnumIterables() : null}, -1, 63, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'EnumIterablesWithConstructor', r'.EnumIterablesWithConstructor', 134217735, 64, const prefix0.JsonSerializable(), const [122, 123, 657], const [360, 361, 362, 363, 364, 653, 654, 655, 656], const [], -1, {}, {}, {r'': (bool b) => ({colors, colorsSet}) => b ? prefix6.EnumIterablesWithConstructor(colors: colors, colorsSet: colorsSet) : null}, -1, 64, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'StylingModel', r'.StylingModel', 134217735, 65, const prefix0.JsonSerializable(), const [124, 659], const [360, 361, 362, 363, 364, 658], const [], -1, {}, {}, {r'': (bool b) => ({primary}) => b ? prefix6.StylingModel(primary: primary) : null}, -1, 65, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'DefaultCategory', r'.DefaultCategory', 134217735, 66, const prefix0.JsonSerializable(), const [125, 662], const [360, 361, 362, 363, 364, 660, 661], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix6.DefaultCategory() : null}, -1, 66, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Split', r'.Split', 134217735, 67, const prefix0.JsonSerializable(), const [126, 665], const [360, 361, 362, 363, 364, 663, 664], const [], -1, {}, {}, {r'': (bool b) => (values) => b ? prefix6.Split(values) : null}, -1, 67, const [], const [prefix0.jsonSerializable, const prefix0.Json(valueDecorators: prefix6.Split.valueDecorators)], null), r.NonGenericClassMirrorImpl(r'SplitModel', r'.SplitModel', 134217735, 68, const prefix0.JsonSerializable(), const [127, 667], const [360, 361, 362, 363, 364, 666], const [], -1, {}, {}, {r'': (bool b) => (values) => b ? prefix6.SplitModel(values) : null}, -1, 68, const [], const [prefix0.jsonSerializable, const prefix0.Json(valueDecorators: prefix6.SplitModel.valueDecorators)], null), r.NonGenericClassMirrorImpl(r'EDeviceRadioType', r'.EDeviceRadioType', 138412039, 69, const prefix0.JsonSerializable(), const [668], const [360, 361, 362, 363, 364, 425], const [], -1, {}, {}, {}, -1, 69, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Category', r'.Category', 138412039, 70, const prefix0.JsonSerializable(), const [669], const [360, 361, 362, 363, 364, 425], const [], -1, {}, {}, {}, -1, 70, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'MyCar', r'.MyCar', 134217735, 71, const prefix0.JsonSerializable(), const [670], const [360, 361, 362, 363, 364, 367, 368, 369, 370, 371, 372], const [], 2, {}, {}, {r'': (bool b) => (model, color) => b ? prefix7.MyCar(model, color) : null}, -1, 71, const [], const [prefix0.jsonSerializable, const prefix0.Json(allowCircularReferences: 1)], null), r.NonGenericClassMirrorImpl(r'Device', r'.Device', 134217735, 72, const prefix0.JsonSerializable(), const [671], const [360, 361, 362, 363, 364], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix7.Device() : null}, -1, 72, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'UserSettings', r'.UserSettings', 134217735, 73, const prefix0.JsonSerializable(), const [128, 674], const [360, 361, 362, 363, 364, 672, 673], const [], -1, {}, {}, {r'': (bool b) => (devices) => b ? prefix7.UserSettings(devices) : null}, -1, 73, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'UnAnnotatedEnumField', r'.UnAnnotatedEnumField', 134217735, 74, const prefix0.JsonSerializable(), const [129, 677], const [360, 361, 362, 363, 364, 675, 676], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix7.UnAnnotatedEnumField() : null}, -1, 74, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'PartialPerson', r'.PartialPerson', 134217735, 75, const prefix0.JsonSerializable(), const [130, 131, 680], const [360, 361, 362, 363, 364, 678, 679], const [], -1, {}, {}, {r'': (bool b) => (age, name) => b ? prefix7.PartialPerson(age, name) : null}, -1, 75, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ObjectWithRequiredField', r'.ObjectWithRequiredField', 134217735, 76, const prefix0.JsonSerializable(), const [132, 133, 685], const [360, 361, 362, 363, 364, 681, 682, 683, 684], const [], -1, {}, {}, {r'': (bool b) => ({value, value2}) => b ? prefix7.ObjectWithRequiredField(value: value, value2: value2) : null}, -1, 76, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ObjectWithRequiredNullableField', r'.ObjectWithRequiredNullableField', 134217735, 77, const prefix0.JsonSerializable(), const [134, 135, 690], const [360, 361, 362, 363, 364, 686, 687, 688, 689], const [], -1, {}, {}, {r'': (bool b) => ({value, value2}) => b ? prefix7.ObjectWithRequiredNullableField(value: value, value2: value2) : null}, -1, 77, const [], const [prefix0.jsonSerializable, const prefix0.Json(ignoreNullMembers: true)], null), r.NonGenericClassMirrorImpl(r'MyObject', r'.MyObject', 134217735, 78, const prefix0.JsonSerializable(), const [136, 137, 693], const [360, 361, 362, 363, 364, 691, 692], const [], -1, {}, {}, {r'': (bool b) => ({name, page}) => b ? prefix8.MyObject(name: name, page: page) : null}, -1, 78, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'FlattenObject', r'.FlattenObject', 134217735, 79, const prefix0.JsonSerializable(), const [138, 139, 696], const [360, 361, 362, 363, 364, 694, 695], const [], -1, {}, {}, {r'': (bool b) => ({pageNumber, pageSize}) => b ? prefix8.FlattenObject(pageNumber: pageNumber, pageSize: pageSize) : null}, -1, 79, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ChildInjected1', r'.ChildInjected1', 134217735, 80, const prefix0.JsonSerializable(), const [140, 141, 142, 703], const [360, 361, 362, 363, 364, 697, 698, 699, 700, 701, 702], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix9.ChildInjected1() : null}, -1, 80, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ChildInjected2', r'.ChildInjected2', 134217735, 81, const prefix0.JsonSerializable(), const [143, 144, 145, 710], const [360, 361, 362, 363, 364, 704, 705, 706, 707, 708, 709], const [], -1, {}, {}, {r'': (bool b) => (parent) => b ? prefix9.ChildInjected2(parent) : null}, -1, 81, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ChildInjected3', r'.ChildInjected3', 134217735, 82, const prefix0.JsonSerializable(), const [146, 147, 148, 717], const [360, 361, 362, 363, 364, 711, 712, 713, 714, 715, 716], const [], -1, {}, {}, {r'': (bool b) => (parent) => b ? prefix9.ChildInjected3(parent) : null}, -1, 82, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'A', r'.A', 134218247, 83, const prefix0.JsonSerializable(), const [718], const [360, 361, 362, 363, 364], const [], -1, {}, {}, {}, -1, 83, const [], const [const prefix0.Json(discriminatorProperty: 'type'), prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'C', r'.C', 134217735, 84, const prefix0.JsonSerializable(), const [719], const [360, 361, 362, 363, 364], const [], 166, {}, {}, {r'': (bool b) => () => b ? prefix10.C() : null}, -1, 84, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'MixinContainer', r'.MixinContainer', 134217735, 85, const prefix0.JsonSerializable(), const [149, 150, 722], const [360, 361, 362, 363, 364, 720, 721], const [], -1, {}, {}, {r'': (bool bb) => (ints, b) => bb ? prefix10.MixinContainer(ints, b) : null}, -1, 85, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'NameCaseObjectOverride', r'.NameCaseObjectOverride', 134217735, 86, const prefix0.JsonSerializable(), const [151, 152, 153, 154, 731], const [360, 361, 362, 363, 364, 723, 724, 725, 726, 727, 728, 729, 730], const [], -1, {}, {}, {r'': (bool b) => ({mainTitle, description, hasMainProperty, primaryColor}) => b ? prefix11.NameCaseObjectOverride(description: description, hasMainProperty: hasMainProperty, mainTitle: mainTitle, primaryColor: primaryColor) : null}, -1, 86, const [], const [prefix0.jsonSerializable, const prefix0.Json(caseStyle: prefix26.CaseStyle.kebab)], null), r.NonGenericClassMirrorImpl(r'NameCaseObject', r'.NameCaseObject', 134217735, 87, const prefix0.JsonSerializable(), const [155, 156, 157, 158, 740], const [360, 361, 362, 363, 364, 732, 733, 734, 735, 736, 737, 738, 739], const [], -1, {}, {}, {r'': (bool b) => ({mainTitle, description, hasMainProperty, primaryColor = prefix1.Color.grayMetallic}) => b ? prefix11.NameCaseObject(description: description, hasMainProperty: hasMainProperty, mainTitle: mainTitle, primaryColor: primaryColor) : null}, -1, 87, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Feature', r'.Feature', 134217735, 88, const prefix0.JsonSerializable(), const [159, 160, 161, 162, 749], const [360, 361, 362, 363, 364, 741, 742, 743, 744, 745, 746, 747, 748], const [], -1, {}, {}, {r'': (bool b) => ({name, id}) => b ? prefix12.Feature(id: id, name: name) : null}, -1, 88, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Product', r'.Product', 134217735, 89, const prefix0.JsonSerializable(), const [163, 164, 165, 166, 758], const [360, 361, 362, 363, 364, 750, 751, 752, 753, 754, 755, 756, 757], const [], -1, {}, {}, {r'': (bool b) => ({name, id, features}) => b ? prefix12.Product(features: features, id: id, name: name) : null}, -1, 89, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ProductCategory', r'.ProductCategory', 134217735, 90, const prefix0.JsonSerializable(), const [167, 168, 169, 765], const [360, 361, 362, 363, 364, 759, 760, 761, 762, 763, 764], const [], -1, {}, {}, {r'': (bool b) => ({id, name, products}) => b ? prefix12.ProductCategory(id: id, name: name, products: products) : null}, -1, 90, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'RootObject', r'.RootObject', 134217735, 91, const prefix0.JsonSerializable(), const [170, 768], const [360, 361, 362, 363, 364, 766, 767], const [], -1, {}, {}, {r'': (bool b) => ({items}) => b ? prefix12.RootObject(items: items) : null}, -1, 91, const [], const [prefix0.jsonSerializable, const prefix0.Json(name: 'root/foo/bar')], null), r.NonGenericClassMirrorImpl(r'DeepNestedList', r'.DeepNestedList', 134217735, 92, const prefix0.JsonSerializable(), const [171, 771], const [360, 361, 362, 363, 364, 769, 770], const [], -1, {}, {}, {r'': (bool b) => ({items}) => b ? prefix12.DeepNestedList(items: items) : null}, -1, 92, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'DeepNestedInt', r'.DeepNestedInt', 134217735, 93, const prefix0.JsonSerializable(), const [172, 774], const [360, 361, 362, 363, 364, 772, 773], const [], -1, {}, {}, {r'': (bool b) => ({count}) => b ? prefix12.DeepNestedInt(count: count) : null}, -1, 93, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'NestedListItem', r'.NestedListItem', 134217735, 94, const prefix0.JsonSerializable(), const [173, 174, 175, 176, 783], const [360, 361, 362, 363, 364, 775, 776, 777, 778, 779, 780, 781, 782], const [], -1, {}, {}, {r'': (bool b) => ({count, count2, count3, cd}) => b ? prefix12.NestedListItem(cd: cd, count: count, count2: count2, count3: count3) : null}, -1, 94, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'IgnoreMembers', r'.IgnoreMembers', 134217735, 95, const prefix0.JsonSerializable(), const [177, 178, 788], const [360, 361, 362, 363, 364, 784, 785, 786, 787], const [], -1, {}, {}, {r'': (bool b) => ({name, title}) => b ? prefix13.IgnoreMembers(name: name, title: title) : null}, -1, 95, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'FieldAliasObject', r'.FieldAliasObject', 134217735, 96, const prefix0.JsonSerializable(), const [179, 791], const [360, 361, 362, 363, 364, 789, 790], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix13.FieldAliasObject() : null}, -1, 96, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'AnyObject', r'.AnyObject', 134218247, 97, const prefix0.JsonSerializable(), const [180, 793], const [360, 361, 362, 363, 364, 792], const [], -1, {}, {}, {}, -1, 97, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'UnmappedProperties', r'.UnmappedProperties', 134217735, 98, const prefix0.JsonSerializable(), const [181, 182, 794, 795, 800], const [360, 361, 362, 363, 364, 792, 794, 795, 796, 797, 798, 799], const [], 97, {}, {}, {r'': (bool b) => () => b ? prefix13.UnmappedProperties() : null}, -1, 98, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'AllPrivateFields', r'.AllPrivateFields', 134217735, 99, const prefix0.JsonSerializable(), const [801, 802, 803, 804, 805], const [360, 361, 362, 363, 364, 801, 802, 803, 804], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix13.AllPrivateFields() : null}, -1, 99, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Pagination', r'.Pagination', 134217735, 100, const prefix0.JsonSerializable(), const [183, 184, 185, 812], const [360, 361, 362, 363, 364, 806, 807, 808, 809, 810, 811], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix13.Pagination() : null}, -1, 100, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Cars', r'.Cars', 134217735, 101, const prefix0.JsonSerializable(), const [186, 187, 817], const [360, 361, 362, 363, 364, 813, 814, 815, 816], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix13.Cars() : null}, -1, 101, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'CarsPrefix', r'.CarsPrefix', 134217735, 102, const prefix0.JsonSerializable(), const [188, 189, 822], const [360, 361, 362, 363, 364, 818, 819, 820, 821], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix13.CarsPrefix() : null}, -1, 102, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'CarsPrefixSnake', r'.CarsPrefixSnake', 134217735, 103, const prefix0.JsonSerializable(), const [190, 191, 827], const [360, 361, 362, 363, 364, 823, 824, 825, 826], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix13.CarsPrefixSnake() : null}, -1, 103, const [], const [prefix0.jsonSerializable, const prefix0.Json(caseStyle: prefix26.CaseStyle.snake)], null), r.NonGenericClassMirrorImpl(r'MyNullableFieldsExample', r'.MyNullableFieldsExample', 134217735, 104, const prefix0.JsonSerializable(), const [192, 193, 194, 834], const [360, 361, 362, 363, 364, 828, 829, 830, 831, 832, 833], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix14.MyNullableFieldsExample() : null}, -1, 104, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'TransactionsRequestModel', r'.TransactionsRequestModel', 134217735, 105, const prefix0.JsonSerializable(), const [195, 836], const [360, 361, 362, 363, 364, 835], const [], -1, {}, {}, {r'': (bool b) => ({accountType}) => b ? prefix14.TransactionsRequestModel(accountType: accountType) : null}, -1, 105, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Preferences', r'.Preferences', 134217735, 106, const prefix0.JsonSerializable(), const [196, 197, 198, 837, 841], const [360, 837, 362, 363, 364, 838, 839, 840], const [], -1, {}, {}, {r'': (bool b) => ({metadata, defaultCountryIsoCode, autoImportContacts}) => b ? prefix14.Preferences(autoImportContacts: autoImportContacts, defaultCountryIsoCode: defaultCountryIsoCode, metadata: metadata) : null}, -1, 106, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Metadata', r'.Metadata', 134217735, 107, const prefix0.JsonSerializable(), const [199, 200, 201, 842, 846], const [360, 842, 362, 363, 364, 843, 844, 845], const [], -1, {}, {}, {r'': (bool b) => ({id, createdBy, deleted = false}) => b ? prefix14.Metadata(createdBy: createdBy, deleted: deleted, id: id) : null}, -1, 107, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Object', r'.Object', 134217735, 108, const prefix0.JsonSerializable(), const [202, 849], const [360, 361, 362, 363, 364, 847, 848], const [], -1, {}, {}, {r'': (bool b) => (title) => b ? prefix15.Object(title) : null}, -1, 108, const [], const [prefix0.jsonSerializable, const prefix0.Json(name: 'default'), const prefix0.Json(name: '_', scheme: prefix15.Scheme.B), const prefix0.Json(name: 'root', scheme: prefix15.Scheme.A)], null), r.NonGenericClassMirrorImpl(r'Address', r'.Address', 134217735, 109, const prefix0.JsonSerializable(), const [203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 872, 873], const [360, 361, 362, 363, 364, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871], const [], -1, {}, {}, {r'jsonTwo': (bool b) => () => b ? prefix15.Address.jsonTwo() : null, r'jsonOne': (bool b) => (id, streetList, city) => b ? prefix15.Address.jsonOne(id, streetList, city) : null}, -1, 109, const [], const [prefix0.jsonSerializable, const prefix0.Json(name: 'Address')], null), r.NonGenericClassMirrorImpl(r'A', r'.A', 134217735, 110, const prefix0.JsonSerializable(), const [214, 874, 876, 877], const [874, 361, 362, 876, 364, 875], const [], -1, {}, {}, {r'': (bool b) => (a) => b ? prefix16.A(a) : null}, -1, 110, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'B', r'.B', 134217735, 111, const prefix0.JsonSerializable(), const [215, 879], const [360, 361, 362, 363, 364, 878], const [], -1, {}, {}, {r'': (bool b) => (a) => b ? prefix16.B(a) : null}, -1, 111, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'AA', r'.AA', 134217735, 112, const prefix0.JsonSerializable(), const [216, 882], const [360, 361, 362, 363, 364, 880, 881], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix16.AA() : null}, -1, 112, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'BB', r'.BB', 134217735, 113, const prefix0.JsonSerializable(), const [217, 885], const [360, 361, 362, 363, 364, 883, 884], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix16.BB() : null}, -1, 113, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'GetQueryParameters', r'.GetQueryParameters', 134217735, 114, const prefix0.JsonSerializable(), const [218, 219, 220, 221, 894], const [360, 361, 362, 363, 364, 886, 887, 888, 889, 890, 891, 892, 893], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix16.GetQueryParameters() : null}, -1, 114, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'UnbalancedGetSet', r'.UnbalancedGetSet', 134217735, 115, const prefix0.JsonSerializable(), const [895, 896, 897], const [360, 361, 362, 363, 364, 895, 896], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix16.UnbalancedGetSet() : null}, -1, 115, const [], const [prefix0.jsonSerializable], null), r.GenericClassMirrorImpl(r'Tuple', r'.Tuple', 134217735, 116, const prefix0.JsonSerializable(), const [222, 223, 900, 901], const [360, 361, 362, 363, 364, 898, 899], const [], -1, {}, {}, {r'': (bool b) => (value1, value2) => b ? prefix17.Tuple(value1, value2) : null, r'of': (bool b) => (other) => b ? prefix17.Tuple.of(other) : null}, -1, 116, const [], const [prefix0.jsonSerializable], null, (o) { return o is prefix17.Tuple; }, const [168, 169], 116), r.NonGenericClassMirrorImpl(r'ConcreteClass', r'.ConcreteClass', 134217735, 117, const prefix0.JsonSerializable(), const [224, 225, 904], const [360, 361, 362, 363, 364, 902, 903], const [], -1, {}, {}, {r'': (bool b) => (tuple1, tuple2) => b ? prefix17.ConcreteClass(tuple1, tuple2) : null}, -1, 117, const [], const [prefix0.jsonSerializable, const prefix0.Json(valueDecorators: prefix17.ConcreteClass.valueDecorators)], null), r.NonGenericClassMirrorImpl(r'NavbarTab', r'.NavbarTab', 134217735, 118, const prefix0.JsonSerializable(), const [226, 227, 228, 908], const [360, 361, 362, 363, 364, 905, 906, 907], const [], -1, {}, {}, {r'': (bool b) => ({icon, title, on}) => b ? prefix18.NavbarTab(icon: icon, on: on, title: title) : null}, -1, 118, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'NavbarConfig', r'.NavbarConfig', 134217735, 119, const prefix0.JsonSerializable(), const [229, 230, 231, 232, 233, 914], const [360, 361, 362, 363, 364, 909, 910, 911, 912, 913], const [], -1, {}, {}, {r'': (bool b) => ({tabs, activeColor, inactiveColor, backgroundColor, fontSize}) => b ? prefix18.NavbarConfig(activeColor: activeColor, backgroundColor: backgroundColor, fontSize: fontSize, inactiveColor: inactiveColor, tabs: tabs) : null}, -1, 119, const [], const [prefix0.jsonSerializable, const prefix0.Json(valueDecorators: prefix18.NavbarConfig.valueDecorators)], null), r.NonGenericClassMirrorImpl(r'NoticeItem', r'.NoticeItem', 134217735, 120, const prefix0.JsonSerializable(), const [915], const [360, 361, 362, 363, 364], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix18.NoticeItem() : null}, -1, 120, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'NoticeList', r'.NoticeList', 134217735, 121, const prefix0.JsonSerializable(), const [234, 918], const [360, 361, 362, 363, 364, 916, 917], const [], -1, {}, {}, {r'': (bool b) => (list) => b ? prefix18.NoticeList(list) : null}, -1, 121, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'TestChain', r'.TestChain', 134217735, 122, const prefix0.JsonSerializable(), const [919], const [360, 361, 362, 363, 364, 920, 921], const [], 123, {}, {}, {r'': (bool b) => () => b ? prefix18.TestChain() : null}, -1, 122, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'_TestChain', r'._TestChain', 134218279, 123, const prefix0.JsonSerializable(), const [235, 922], const [360, 361, 362, 363, 364, 920, 921], const [], -1, {}, {}, {}, -1, 123, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Customer', r'.Customer', 134217735, 124, const prefix0.JsonSerializable(), const [236, 237, 925], const [360, 361, 362, 363, 364, 923, 924], const [], -1, {}, {}, {r'': (bool b) => (id, name) => b ? prefix18.Customer(id, name) : null}, -1, 124, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ServiceOrderItemModel', r'.ServiceOrderItemModel', 134217735, 125, const prefix0.JsonSerializable(), const [238, 239, 240, 929], const [360, 361, 362, 363, 364, 926, 927, 928], const [], -1, {}, {}, {r'': (bool b) => ({id, sequence, description}) => b ? prefix18.ServiceOrderItemModel(description: description, id: id, sequence: sequence) : null}, -1, 125, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ServiceOrderModel', r'.ServiceOrderModel', 134217735, 126, const prefix0.JsonSerializable(), const [241, 242, 243, 244, 245, 246, 247, 248, 249, 948], const [360, 361, 362, 363, 364, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947], const [], -1, {}, {}, {r'': (bool b) => ({id, number, customerId, expertId, start, end, resume, customer, items}) => b ? prefix18.ServiceOrderModel(customer: customer, customerId: customerId, end: end, expertId: expertId, id: id, items: items, number: number, resume: resume, start: start) : null}, -1, 126, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Item', r'.Item', 134217735, 127, const prefix0.JsonSerializable(), const [949], const [360, 361, 362, 363, 364], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix18.Item() : null}, -1, 127, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ListOfLists', r'.ListOfLists', 134217735, 128, const prefix0.JsonSerializable(), const [250, 952], const [360, 361, 362, 363, 364, 950, 951], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix18.ListOfLists() : null}, -1, 128, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ListOfListsWithConstructor', r'.ListOfListsWithConstructor', 134217735, 129, const prefix0.JsonSerializable(), const [251, 955], const [360, 361, 362, 363, 364, 953, 954], const [], -1, {}, {}, {r'': (bool b) => (lists) => b ? prefix18.ListOfListsWithConstructor(lists) : null}, -1, 129, const [], const [prefix0.jsonSerializable, const prefix0.Json(valueDecorators: prefix18.ListOfListsWithConstructor.valueDecorators)], null), r.NonGenericClassMirrorImpl(r'RawJsonTestModel', r'.RawJsonTestModel', 134217735, 130, const prefix0.JsonSerializable(), const [252, 253, 254, 962], const [360, 361, 362, 363, 364, 956, 957, 958, 959, 960, 961], const [], -1, {}, {}, {r'': (bool b) => ({rawField, normalField, noAnnotationField}) => b ? prefix19.RawJsonTestModel(noAnnotationField: noAnnotationField, normalField: normalField, rawField: rawField) : null}, -1, 130, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'DTDeviceStatus', r'.DTDeviceStatus', 134217735, 131, const prefix0.JsonSerializable(), const [255, 256, 967], const [360, 361, 362, 363, 364, 963, 964, 965, 966], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix20.DTDeviceStatus() : null}, -1, 131, const [], const [const prefix0.JsonSerializable(), const prefix0.Json(caseStyle: prefix26.CaseStyle.pascal, ignoreNullMembers: true)], null), r.NonGenericClassMirrorImpl(r'DTGatewayConnection', r'.DTGatewayConnection', 134217735, 132, const prefix0.JsonSerializable(), const [257, 258, 972], const [360, 361, 362, 363, 364, 968, 969, 970, 971], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix20.DTGatewayConnection() : null}, -1, 132, const [], const [const prefix0.JsonSerializable(), const prefix0.Json(caseStyle: prefix26.CaseStyle.pascal, ignoreNullMembers: true)], null), r.NonGenericClassMirrorImpl(r'DTSignalStrength', r'.DTSignalStrength', 134217735, 133, const prefix0.JsonSerializable(), const [259, 260, 261, 979], const [360, 361, 362, 363, 364, 973, 974, 975, 976, 977, 978], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix20.DTSignalStrength() : null}, -1, 133, const [], const [const prefix0.JsonSerializable(), const prefix0.Json(ignoreNullMembers: true)], null), r.GenericClassMirrorImpl(r'PageImpl', r'.PageImpl', 134217735, 134, const prefix0.JsonSerializable(), const [262, 263, 264, 265, 266, 267, 268, 269, 270, 998], const [360, 361, 362, 363, 364, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix21.PageImpl() : null}, -1, 134, const [], const [prefix0.jsonSerializable], null, (o) { return o is prefix21.PageImpl && o is! prefix21.AdvertisingPage; }, const [170], 134), r.NonGenericClassMirrorImpl(r'Advertising', r'.Advertising', 134217735, 135, const prefix0.JsonSerializable(), const [271, 272, 273, 274, 275, 276, 277, 278, 1015], const [360, 361, 362, 363, 364, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix21.Advertising() : null}, -1, 135, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'AdvertisingPage', r'.AdvertisingPage', 134217735, 136, const prefix0.JsonSerializable(), const [279, 1018], const [360, 361, 362, 363, 364, 1016, 1017, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997], const [], 134, {}, {}, {r'': (bool b) => () => b ? prefix21.AdvertisingPage() : null}, -1, 136, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'SpaceTrack', r'.SpaceTrack', 134217735, 137, const prefix0.JsonSerializable(), const [280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 1099], const [360, 361, 362, 363, 364, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix22.SpaceTrack() : null}, -1, 137, const [], const [prefix0.jsonSerializable, const prefix0.Json(caseStyle: prefix26.CaseStyle.snakeAllCaps)], null), r.NonGenericClassMirrorImpl(r'Record', r'.Record', 134217735, 138, const prefix0.JsonSerializable(), const [320, 321, 322, 323, 1108], const [360, 361, 362, 363, 364, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix22.Record() : null}, -1, 138, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Foo', r'.Foo', 134217735, 139, const prefix0.JsonSerializable(), const [1109], const [360, 361, 362, 363, 364], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix23.Foo() : null}, -1, 139, const [], const [prefix0.jsonSerializable], null), r.GenericClassMirrorImpl(r'BarBase', r'.BarBase', 134217735, 140, const prefix0.JsonSerializable(), const [324, 1110, 1111, 1114], const [360, 361, 362, 363, 364, 1110, 1111, 1112, 1113], const [], -1, {}, {}, {r'': (bool b) => ({foo}) => b ? prefix23.BarBase(foo: foo) : null}, -1, 140, const [], const [prefix0.jsonSerializable], null, (o) { return o is prefix23.BarBase && o is! prefix23.Bar; }, const [171], 140), r.NonGenericClassMirrorImpl(r'Bar', r'.Bar', 134217735, 141, const prefix0.JsonSerializable(), const [1115, 1116], const [360, 361, 362, 363, 364, 1110, 1111, 1112, 1113], const [], 140, {}, {}, {r'': (bool b) => () => b ? prefix23.Bar() : null, r'of': (bool b) => (other) => b ? prefix23.Bar.of(other) : null}, -1, 141, const [], const [prefix0.jsonSerializable, const prefix0.Json(valueDecorators: prefix23.Bar.valueDecorators)], null), r.GenericClassMirrorImpl(r'EntityModel', r'.EntityModel', 134217735, 142, const prefix0.JsonSerializable(), const [325, 326, 327, 1117, 1118, 1119, 1120, 1121, 1122, 1126, 1127], const [360, 361, 362, 363, 364, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125], const [], -1, {}, {}, {r'': (bool b) => ({parentUuid, uuid, entity}) => b ? prefix23.EntityModel(entity: entity, parentUuid: parentUuid, uuid: uuid) : null, r'of': (bool b) => (other) => b ? prefix23.EntityModel.of(other) : null}, -1, 142, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorProperty: 'technicalName', ignoreNullMembers: true)], null, (o) { return o is prefix23.EntityModel; }, const [172], 142), r.GenericClassMirrorImpl(r'AbstractEntityModel', r'.AbstractEntityModel', 134218247, 143, const prefix0.JsonSerializable(), const [328, 329, 1128, 1129, 1130, 1131, 1134], const [360, 361, 362, 363, 364, 1130, 1131, 1132, 1133], const [], -1, {}, {}, {}, -1, 143, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorProperty: 'technicalName', ignoreNullMembers: true)], null, (o) => false, const [173], 143), r.NonGenericClassMirrorImpl(r'MyCarModel', r'.MyCarModel', 134217735, 144, const prefix0.JsonSerializable(), const [330, 331, 1135, 1136, 1139], const [360, 361, 362, 363, 364, 1130, 1131, 1132, 1133, 1135, 1136, 1137, 1138], const [], 143, {}, {}, {r'': (bool b) => ({parentUuid, uuid, model, color}) => b ? prefix23.MyCarModel(color: color, model: model, parentUuid: parentUuid, uuid: uuid) : null}, -1, 144, const [], const [prefix0.jsonSerializable], null), r.GenericClassMirrorImpl(r'ApiResult', r'.ApiResult', 134217735, 145, const prefix0.JsonSerializable(), const [332, 333, 1140, 1141, 1146], const [360, 361, 362, 363, 364, 1140, 1141, 1142, 1143, 1144, 1145], const [], -1, {}, {}, {r'': (bool b) => ({success, result}) => b ? prefix23.ApiResult(result: result, success: success) : null}, -1, 145, const [], const [prefix0.jsonSerializable], null, (o) { return o is prefix23.ApiResult && o is! prefix23.ApiResultUserModel; }, const [174], 145), r.NonGenericClassMirrorImpl(r'UserModel', r'.UserModel', 134217735, 146, const prefix0.JsonSerializable(), const [334, 335, 1151], const [360, 361, 362, 363, 364, 1147, 1148, 1149, 1150], const [], -1, {}, {}, {r'': (bool b) => ({id, name}) => b ? prefix23.UserModel(id: id, name: name) : null}, -1, 146, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'ApiResultUserModel', r'.ApiResultUserModel', 134217735, 147, const prefix0.JsonSerializable(), const [1152, 1153], const [360, 361, 362, 363, 364, 1140, 1141, 1142, 1143, 1144, 1145], const [], 145, {}, {}, {r'': (bool b) => ({success, result}) => b ? prefix23.ApiResultUserModel(result: result, success: success) : null, r'of': (bool b) => (other) => b ? prefix23.ApiResultUserModel.of(other) : null}, -1, 147, const [], const [prefix0.jsonSerializable, const prefix0.Json(valueDecorators: prefix23.ApiResultUserModel.valueDecorators)], null), r.NonGenericClassMirrorImpl(r'Immutable', r'.Immutable', 134217735, 148, const prefix0.JsonSerializable(), const [336, 337, 338, 1157], const [360, 361, 362, 363, 364, 1154, 1155, 1156], const [], -1, {}, {}, {r'': (bool b) => (id, name, car) => b ? prefix24.Immutable(id, name, car) : null}, -1, 148, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Business', r'.Business', 134218247, 149, const prefix0.JsonSerializable(), const [1158, 1159], const [360, 361, 362, 363, 364], const [], -1, {}, {}, {}, -1, 149, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorProperty: 'type')], null), r.NonGenericClassMirrorImpl(r'Hotel', r'.Hotel', 134217735, 150, const prefix0.JsonSerializable(), const [339, 1162, 1163], const [360, 361, 362, 363, 364, 1160, 1161, 1162], const [], 149, {}, {}, {r'': (bool b) => (stars) => b ? prefix25.Hotel(stars) : null}, -1, 150, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorValue: prefix25.BusinessType.private)], null), r.NonGenericClassMirrorImpl(r'Startup', r'.Startup', 134217735, 151, const prefix0.JsonSerializable(), const [340, 1166, 1167], const [360, 361, 362, 363, 364, 1164, 1165, 1166], const [], 149, {}, {}, {r'': (bool b) => (userCount) => b ? prefix25.Startup(userCount) : null}, -1, 151, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorValue: prefix25.BusinessType.public)], null), r.NonGenericClassMirrorImpl(r'Stakeholder', r'.Stakeholder', 134217735, 152, const prefix0.JsonSerializable(), const [341, 342, 1172], const [360, 361, 362, 363, 364, 1168, 1169, 1170, 1171], const [], -1, {}, {}, {r'': (bool b) => (fullName, businesses) => b ? prefix25.Stakeholder(fullName, businesses) : null}, -1, 152, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'Business2', r'.Business2', 134218247, 153, const prefix0.JsonSerializable(), const [343, 1175], const [360, 361, 362, 363, 364, 1173, 1174], const [], -1, {}, {}, {}, -1, 153, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorProperty: 'type')], null), r.NonGenericClassMirrorImpl(r'Hotel2', r'.Hotel2', 134217735, 154, const prefix0.JsonSerializable(), const [344, 1178], const [360, 361, 362, 363, 364, 1173, 1174, 1176, 1177], const [], 153, {}, {}, {r'': (bool b) => (stars) => b ? prefix25.Hotel2(stars) : null}, -1, 154, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorValue: prefix25.BusinessType.private2)], null), r.NonGenericClassMirrorImpl(r'Startup2', r'.Startup2', 134217735, 155, const prefix0.JsonSerializable(), const [345, 1181], const [360, 361, 362, 363, 364, 1173, 1174, 1179, 1180], const [], 153, {}, {}, {r'': (bool b) => (userCount) => b ? prefix25.Startup2(userCount) : null}, -1, 155, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorValue: prefix25.BusinessType.public2)], null), r.NonGenericClassMirrorImpl(r'Stakeholder2', r'.Stakeholder2', 134217735, 156, const prefix0.JsonSerializable(), const [346, 347, 1186], const [360, 361, 362, 363, 364, 1182, 1183, 1184, 1185], const [], -1, {}, {}, {r'': (bool b) => (fullName, businesses) => b ? prefix25.Stakeholder2(fullName, businesses) : null}, -1, 156, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'AbstractUser', r'.AbstractUser', 134218247, 157, const prefix0.JsonSerializable(), const [348, 1187, 1190], const [360, 361, 362, 363, 364, 1191, 1192, 1188, 1189], const [], -1, {}, {}, {r'': (bool b) => (id) => b ? prefix25.AbstractUser(id) : null}, -1, 157, const [], const [prefix0.jsonSerializable, const prefix0.Json(discriminatorProperty: '@type')], null), r.NonGenericClassMirrorImpl(r'UserImpl', r'.UserImpl', 134217735, 158, const prefix0.JsonSerializable(), const [350, 1193, 1196, 1197], const [360, 361, 362, 363, 364, 1191, 1192, 1193, 1194, 1195], const [], -1, {}, {}, {r'': (bool b) => ({id, email}) => b ? prefix25.UserImpl(email: email, id: id) : null, r'newUser': (bool b) => (id) => b ? prefix25.UserImpl.newUser(id) : null}, -1, 158, const [157], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'MyBaseClass', r'.MyBaseClass', 134218247, 159, const prefix0.JsonSerializable(), const [351, 1199, 1200], const [360, 361, 362, 363, 364, 1198], const [], -1, {}, {}, {}, -1, 159, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'MySuperclass', r'.MySuperclass', 134217735, 160, const prefix0.JsonSerializable(), const [352, 1202, 1203], const [360, 361, 362, 363, 364, 1201, 1202], const [], -1, {}, {}, {r'': (bool b) => () => b ? prefix25.MySuperclass() : null}, -1, 160, const [159], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'TypedParent', r'.TypedParent', 134218247, 161, const prefix0.JsonSerializable(), const [353, 1206, 1207], const [360, 361, 362, 363, 364, 1204, 1205, 1206], const [], -1, {}, {}, {}, -1, 161, const [], const [const prefix0.JsonSerializable(), const prefix0.Json(discriminatorProperty: 'type')], null), r.NonGenericClassMirrorImpl(r'TypedChild', r'.TypedChild', 134217735, 162, const prefix0.JsonSerializable(), const [354, 1210], const [360, 361, 362, 363, 364, 1204, 1205, 1206, 1208, 1209], const [], 161, {}, {}, {r'': (bool b) => () => b ? prefix25.TypedChild() : null}, -1, 162, const [], const [const prefix0.JsonSerializable()], null), r.NonGenericClassMirrorImpl(r'TypedStringParent', r'.TypedStringParent', 134218247, 163, const prefix0.JsonSerializable(), const [355, 1213, 1214], const [360, 361, 362, 363, 364, 1211, 1212, 1213], const [], -1, {}, {}, {}, -1, 163, const [], const [const prefix0.JsonSerializable(), const prefix0.Json(discriminatorProperty: 'type', discriminatorValue: 'p')], null), r.NonGenericClassMirrorImpl(r'TypedStringChild', r'.TypedStringChild', 134217735, 164, const prefix0.JsonSerializable(), const [356, 1217, 1218], const [360, 361, 362, 363, 364, 1211, 1212, 1217, 1215, 1216], const [], 163, {}, {}, {r'': (bool b) => () => b ? prefix25.TypedStringChild() : null}, -1, 164, const [], const [const prefix0.JsonSerializable(), const prefix0.Json(discriminatorValue: 'ch')], null), r.NonGenericClassMirrorImpl(r'BusinessType', r'.BusinessType', 138412039, 165, const prefix0.JsonSerializable(), const [1219], const [360, 361, 362, 363, 364, 425], const [], -1, {}, {}, {}, -1, 165, const [], const [prefix0.jsonSerializable], null), r.NonGenericClassMirrorImpl(r'.A with .B', r'..A with .B', 134218311, 166, const prefix0.JsonSerializable(), const [], const [360, 361, 362, 363, 364], const [], 83, const {}, const {}, const {}, -1, -1, const [], const [], null), r.TypeVariableMirrorImpl(r'T', r'.Base.T', const prefix0.JsonSerializable(), -1, 13, []), r.TypeVariableMirrorImpl(r'T', r'.Tuple.T', const prefix0.JsonSerializable(), -1, 116, []), r.TypeVariableMirrorImpl(r'S', r'.Tuple.S', const prefix0.JsonSerializable(), -1, 116, []), r.TypeVariableMirrorImpl(r'T', r'.PageImpl.T', const prefix0.JsonSerializable(), -1, 134, []), r.TypeVariableMirrorImpl(r'T', r'.BarBase.T', const prefix0.JsonSerializable(), -1, 140, []), r.TypeVariableMirrorImpl(r'T', r'.EntityModel.T', const prefix0.JsonSerializable(), -1, 142, []), r.TypeVariableMirrorImpl(r'T', r'.AbstractEntityModel.T', const prefix0.JsonSerializable(), -1, 143, []), r.TypeVariableMirrorImpl(r'T', r'.ApiResult.T', const prefix0.JsonSerializable(), -1, 145, [])], [r.VariableMirrorImpl(r'thickness', 134349829, 0, const prefix0.JsonSerializable(), -1, 167, 167, const [], const []), r.VariableMirrorImpl(r'color', 134349829, 0, const prefix0.JsonSerializable(), 6, 6, 6, const [], const []), r.VariableMirrorImpl(r'tire', 134349829, 1, const prefix0.JsonSerializable(), 0, 0, 0, const [], const []), r.VariableMirrorImpl(r'model', 67239941, 2, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(name: 'modelName')]), r.VariableMirrorImpl(r'color', 67239941, 2, const prefix0.JsonSerializable(), 6, 6, 6, const [], const []), r.VariableMirrorImpl(r'replacement', 67239941, 2, const prefix0.JsonSerializable(), 2, 2, 2, const [], const [const prefix0.JsonProperty(ignoreIfNull: true)]), r.VariableMirrorImpl(r'leftWheel', 134349829, 3, const prefix0.JsonSerializable(), 1, 1, 1, const [], const []), r.VariableMirrorImpl(r'rightWheel', 134349829, 3, const prefix0.JsonSerializable(), 1, 1, 1, const [], const []), r.VariableMirrorImpl(r'skills', 151126021, 4, const prefix0.JsonSerializable(), -1, 169, 170, const [171], const []), r.VariableMirrorImpl(r'specialDates', 151126021, 4, const prefix0.JsonSerializable(), -1, 172, 173, const [174], const []), r.VariableMirrorImpl(r'lastPromotionDate', 134348805, 4, const prefix0.JsonSerializable(), -1, 174, 174, const [], const [const prefix0.JsonProperty(name: 'last_promotion_date', converterParams: const {'format': 'MM-dd-yyyy H:m:s'})]), r.VariableMirrorImpl(r'hireDate', 134348805, 4, const prefix0.JsonSerializable(), -1, 174, 174, const [], const [const prefix0.JsonProperty(name: 'hire_date', converterParams: const {'format': 'MM/dd/yyyy'})]), r.VariableMirrorImpl(r'married', 134348805, 4, const prefix0.JsonSerializable(), -1, 175, 175, const [], const [const prefix0.JsonProperty(ignore: true)]), r.VariableMirrorImpl(r'active', 134348805, 4, const prefix0.JsonSerializable(), -1, 175, 175, const [], const []), r.VariableMirrorImpl(r'name', 134348805, 4, const prefix0.JsonSerializable(), -1, 171, 171, const [], const []), r.VariableMirrorImpl(r'salary', 134348805, 4, const prefix0.JsonSerializable(), -1, 167, 167, const [], const [const prefix0.JsonProperty(converterParams: const {'format': '##.##'})]), r.VariableMirrorImpl(r'dob', 67239941, 4, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'age', 134348805, 4, const prefix0.JsonSerializable(), -1, 167, 167, const [], const []), r.VariableMirrorImpl(r'lastName', 134348805, 4, const prefix0.JsonSerializable(), -1, 171, 171, const [], const []), r.VariableMirrorImpl(r'dyn', 67141637, 4, const prefix0.JsonSerializable(), -1, -1, -1, const [], const []), r.VariableMirrorImpl(r'dynNum', 67141637, 4, const prefix0.JsonSerializable(), -1, -1, -1, const [], const []), r.VariableMirrorImpl(r'dynBool', 67141637, 4, const prefix0.JsonSerializable(), -1, -1, -1, const [], const []), r.VariableMirrorImpl(r'properties', 151126021, 4, const prefix0.JsonSerializable(), -1, 177, 178, null, const []), r.VariableMirrorImpl(r'map', 151126021, 4, const prefix0.JsonSerializable(), -1, 179, 180, null, const []), r.VariableMirrorImpl(r'sym', 134348805, 4, const prefix0.JsonSerializable(), -1, 181, 181, const [], const []), r.VariableMirrorImpl(r'favouriteColours', 151126021, 4, const prefix0.JsonSerializable(), -1, 182, 183, const [6], const []), r.VariableMirrorImpl(r'eyeColor', 134348805, 4, const prefix0.JsonSerializable(), 6, 6, 6, const [], const [const prefix0.JsonProperty(name: 'eye_color')]), r.VariableMirrorImpl(r'hairColor', 134348805, 4, const prefix0.JsonSerializable(), 6, 6, 6, const [], const [const prefix0.JsonProperty(converter: prefix27.enumConverterNumeric)]), r.VariableMirrorImpl(r'vehicles', 151126021, 4, const prefix0.JsonSerializable(), -1, 184, 185, const [2], const []), r.VariableMirrorImpl(r'logisticsChecked', 134349829, 7, const prefix0.JsonSerializable(), -1, 175, 175, const [], const []), r.VariableMirrorImpl(r'logisticsOK', 134349829, 7, const prefix0.JsonSerializable(), -1, 175, 175, const [], const []), r.VariableMirrorImpl(r'logisticsChecked', 134349829, 8, const prefix0.JsonSerializable(), -1, 175, 175, const [], const []), r.VariableMirrorImpl(r'logisticsOK', 134349829, 8, const prefix0.JsonSerializable(), -1, 175, 175, const [], const []), r.VariableMirrorImpl(r'email', 67239941, 9, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'bar', 67240965, 10, const prefix0.JsonSerializable(), 11, 11, 11, const [], const []), r.VariableMirrorImpl(r'message', 134349829, 10, const prefix0.JsonSerializable(), -1, 171, 171, const [], const []), r.VariableMirrorImpl(r'baz', 134349829, 11, const prefix0.JsonSerializable(), 12, 12, 12, const [], const []), r.VariableMirrorImpl(r'value', 1029, 13, const prefix0.JsonSerializable(), -1, -1, -1, const [], const []), r.VariableMirrorImpl(r'pt', 134349829, 17, const prefix0.JsonSerializable(), 15, 15, 15, const [], const []), r.VariableMirrorImpl(r'list', 151126021, 18, const prefix0.JsonSerializable(), -1, 169, 170, const [171], const []), r.VariableMirrorImpl(r'firstName', 134348805, 19, const prefix0.JsonSerializable(), -1, 171, 171, const [], const []), r.VariableMirrorImpl(r'lastName', 134348805, 19, const prefix0.JsonSerializable(), -1, 171, 171, const [], const []), r.VariableMirrorImpl(r'firstName', 67239941, 20, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'lastName', 67239941, 20, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'firstName', 134348805, 21, const prefix0.JsonSerializable(), -1, 171, 171, const [], const []), r.VariableMirrorImpl(r'lastName', 67239941, 21, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'firstName', 67239941, 22, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'lastName', 67239941, 22, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'firstName', 67239941, 23, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'lastName', 67239941, 23, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'middleName', 67239941, 23, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'firstName', 67239941, 24, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'lastName', 67239941, 24, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'middleName', 67239941, 24, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'firstName', 67239941, 25, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'lastName', 67239941, 25, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(ignore: true)]), r.VariableMirrorImpl(r'middleName', 67239941, 25, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(ignoreIfNull: true)]), r.VariableMirrorImpl(r'firstName', 67239941, 26, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'lastName', 67239941, 26, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(ignore: true)]), r.VariableMirrorImpl(r'middleName', 67239941, 26, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(ignoreIfNull: true)]), r.VariableMirrorImpl(r'id', 67240965, 27, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [const prefix0.JsonProperty(defaultValue: 1)]), r.VariableMirrorImpl(r'name', 67240965, 27, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'car', 67240965, 27, const prefix0.JsonSerializable(), 2, 2, 2, const [], const []), r.VariableMirrorImpl(r'id', 134348805, 28, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [const prefix0.JsonProperty(name: 'id')]), r.VariableMirrorImpl(r'number', 134348805, 28, const prefix0.JsonSerializable(), -1, 187, 187, const [], const []), r.VariableMirrorImpl(r'child', 67239941, 29, const prefix0.JsonSerializable(), 30, 30, 30, const [], const []), r.VariableMirrorImpl(r'lastName', 67239941, 30, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'children', 151126021, 30, const prefix0.JsonSerializable(), -1, 188, 189, const [31], const []), r.VariableMirrorImpl(r'parent', 67239941, 30, const prefix0.JsonSerializable(), 29, 29, 29, const [], const [const prefix0.JsonProperty(name: '..')]), r.VariableMirrorImpl(r'firstName', 67239941, 31, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'parent', 134348805, 31, const prefix0.JsonSerializable(), 30, 30, 30, const [], const [const prefix0.JsonProperty(name: '..')]), r.VariableMirrorImpl(r'lastName', 67239941, 32, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'children', 151126021, 32, const prefix0.JsonSerializable(), -1, 190, 191, const [33], const []), r.VariableMirrorImpl(r'firstName', 67239941, 33, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'parent', 134348805, 33, const prefix0.JsonSerializable(), 32, 32, 32, const [], const [const prefix0.JsonProperty(name: '..')]), r.VariableMirrorImpl(r'lastName', 67239941, 34, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'children', 151126021, 34, const prefix0.JsonSerializable(), -1, 192, 193, const [35], const []), r.VariableMirrorImpl(r'firstName', 67239941, 35, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'parent', 67239941, 35, const prefix0.JsonSerializable(), 34, 34, 34, const [], const [const prefix0.JsonProperty(name: '..')]), r.VariableMirrorImpl(r'id', 134349829, 36, const prefix0.JsonSerializable(), -1, 187, 187, const [], const []), r.VariableMirrorImpl(r'type', 134349829, 36, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [const prefix0.JsonProperty(converter: prefix3.myCustomConverter)]), r.VariableMirrorImpl(r'list', 84017157, 37, const prefix0.JsonSerializable(), -1, 194, 195, const [50], const [const prefix0.JsonProperty(converterParams: const {'delimiter': ','}, defaultValue: prefix4.MyEnumA.values)]), r.VariableMirrorImpl(r'enumA', 134348805, 38, const prefix0.JsonSerializable(), 50, 50, 50, const [], const []), r.VariableMirrorImpl(r'enumB', 134348805, 38, const prefix0.JsonSerializable(), 51, 51, 51, const [], const []), r.VariableMirrorImpl(r'enumA', 67239941, 39, const prefix0.JsonSerializable(), 50, 50, 50, const [], const []), r.VariableMirrorImpl(r'enumB', 67239941, 39, const prefix0.JsonSerializable(), 51, 51, 51, const [], const []), r.VariableMirrorImpl(r'data', 134348805, 40, const prefix0.JsonSerializable(), -1, 196, 196, const [], const []), r.VariableMirrorImpl(r'bigInt', 134348805, 41, const prefix0.JsonSerializable(), -1, 197, 197, const [], const []), r.VariableMirrorImpl(r'data', 67239941, 42, const prefix0.JsonSerializable(), -1, 198, 198, const [], const []), r.VariableMirrorImpl(r'data', 67239941, 43, const prefix0.JsonSerializable(), -1, 199, 199, const [], const []), r.VariableMirrorImpl(r'color', 134348805, 44, const prefix0.JsonSerializable(), 52, 52, 52, const [], const []), r.VariableMirrorImpl(r'list', 151126021, 46, const prefix0.JsonSerializable(), -1, 200, 201, const [45], const []), r.VariableMirrorImpl(r'set', 151126021, 46, const prefix0.JsonSerializable(), -1, 202, 203, const [45], const []), r.VariableMirrorImpl(r'dataHash', 84017157, 47, const prefix0.JsonSerializable(), -1, 204, 205, null, const []), r.VariableMirrorImpl(r'createdAt', 67239941, 48, const prefix0.JsonSerializable(), -1, 198, 198, const [], const []), r.VariableMirrorImpl(r'responses', 84017157, 49, const prefix0.JsonSerializable(), -1, 206, 207, const [170], const [const prefix0.JsonProperty(converter: const prefix4.MethodResponseConverter())]), r.VariableMirrorImpl(r'top', 67239941, 54, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'left', 67239941, 54, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'right', 67239941, 54, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'bottom', 67239941, 54, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'cropArea', 67240965, 55, const prefix0.JsonSerializable(), 54, 54, 54, const [], const [const prefix0.JsonProperty(defaultValue: const {'top': 0.0, 'left': 1.0, 'right': 1.0, 'bottom': 0.0})]), r.VariableMirrorImpl(r'id', 67240965, 55, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [const prefix0.JsonProperty(defaultValue: 1)]), r.VariableMirrorImpl(r'name', 67240965, 55, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'car', 67240965, 55, const prefix0.JsonSerializable(), 2, 2, 2, const [], const []), r.VariableMirrorImpl(r'cropArea', 67239941, 56, const prefix0.JsonSerializable(), 54, 54, 54, const [], const [const prefix0.JsonProperty(defaultValue: const {'top': 0.0, 'left': 1.0, 'right': 1.0, 'bottom': 0.0}, ignoreIfDefault: true)]), r.VariableMirrorImpl(r'id', 67239941, 56, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [const prefix0.JsonProperty(defaultValue: 1)]), r.VariableMirrorImpl(r'cropArea', 67239941, 57, const prefix0.JsonSerializable(), 54, 54, 54, const [], const [const prefix0.JsonProperty(defaultValue: const {'top': 0.0, 'left': 1.0, 'right': 1.0, 'bottom': 0.0})]), r.VariableMirrorImpl(r'id', 67239941, 57, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [const prefix0.JsonProperty(defaultValue: 1)]), r.VariableMirrorImpl(r'cropArea', 67239941, 58, const prefix0.JsonSerializable(), 54, 54, 54, const [], const [const prefix0.JsonProperty(defaultValue: const {'top': 0.0, 'left': 1.0, 'right': 1.0, 'bottom': 0.0})]), r.VariableMirrorImpl(r'id', 67239941, 58, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [const prefix0.JsonProperty(defaultValue: 1)]), r.VariableMirrorImpl(r'value', 134348805, 59, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [const prefix0.JsonProperty(defaultValue: 4)]), r.VariableMirrorImpl(r'id', 67239941, 60, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'radio', 134348805, 60, const prefix0.JsonSerializable(), 69, 69, 69, const [], const []), r.VariableMirrorImpl(r'party', 67239941, 61, const prefix0.JsonSerializable(), -1, 208, 208, const [], const [const prefix0.JsonProperty(converterParams: const {prefix6.ThirdParty.B: 'Be'})]), r.VariableMirrorImpl(r'parties', 84017157, 62, const prefix0.JsonSerializable(), -1, 209, 210, const [211], const [const prefix0.JsonProperty(converterParams: const {prefix6.ThirdParty.B: 'Be'})]), r.VariableMirrorImpl(r'party', 67239941, 63, const prefix0.JsonSerializable(), -1, 208, 208, const [], const []), r.VariableMirrorImpl(r'color', 67239941, 63, const prefix0.JsonSerializable(), 6, 6, 6, const [], const []), r.VariableMirrorImpl(r'parties', 151126021, 63, const prefix0.JsonSerializable(), -1, 212, 213, const [211], const []), r.VariableMirrorImpl(r'colors', 84017157, 63, const prefix0.JsonSerializable(), -1, 214, 215, const [6], const []), r.VariableMirrorImpl(r'colorsSet', 84017157, 63, const prefix0.JsonSerializable(), -1, 216, 217, const [6], const []), r.VariableMirrorImpl(r'colorPriorities', 151126021, 63, const prefix0.JsonSerializable(), -1, 218, 219, const [6, 187], const []), r.VariableMirrorImpl(r'partyPriorities', 151126021, 63, const prefix0.JsonSerializable(), -1, 220, 221, const [211, 187], const []), r.VariableMirrorImpl(r'colors', 84017157, 64, const prefix0.JsonSerializable(), -1, 214, 215, const [6], const []), r.VariableMirrorImpl(r'colorsSet', 84017157, 64, const prefix0.JsonSerializable(), -1, 216, 217, const [6], const []), r.VariableMirrorImpl(r'primary', 67240965, 65, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'category', 67239941, 66, const prefix0.JsonSerializable(), 70, 70, 70, const [], const [const prefix0.JsonProperty(defaultValue: prefix6.Category.first)]), r.VariableMirrorImpl(r'values', 151126021, 67, const prefix0.JsonSerializable(), -1, 222, 223, const [70, 187], const []), r.VariableMirrorImpl(r'values', 151127045, 68, const prefix0.JsonSerializable(), -1, 224, 225, const [70, 65], const []), r.VariableMirrorImpl(r'devices', 151126021, 73, const prefix0.JsonSerializable(), -1, 226, 227, const [72], const []), r.VariableMirrorImpl(r'sex', 134348805, 74, const prefix0.JsonSerializable(), -1, 228, 228, const [], const []), r.VariableMirrorImpl(r'name', 134349829, 75, const prefix0.JsonSerializable(), -1, 171, 171, const [], const []), r.VariableMirrorImpl(r'age', 134349829, 75, const prefix0.JsonSerializable(), -1, 187, 187, const [], const []), r.VariableMirrorImpl(r'value', 67239941, 76, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(requiredMessage: 'This Value is critically important')]), r.VariableMirrorImpl(r'value2', 67239941, 76, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(notNullMessage: 'This Value2 cannot be null')]), r.VariableMirrorImpl(r'value', 67239941, 77, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(requiredMessage: 'This Value is critically important', ignoreForDeserialization: true, ignoreForSerialization: true, ignoreIfNull: true, ignore: true)]), r.VariableMirrorImpl(r'value2', 67239941, 77, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(notNullMessage: 'This Value2 cannot be null', required: true, ignoreForDeserialization: true, ignoreForSerialization: true, ignoreIfNull: true, ignore: true)]), r.VariableMirrorImpl(r'name', 134349829, 78, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [const prefix0.JsonProperty(name: 'name')]), r.VariableMirrorImpl(r'page', 134349829, 78, const prefix0.JsonSerializable(), 79, 79, 79, const [], const [const prefix0.JsonProperty(flatten: true)]), r.VariableMirrorImpl(r'pageNumber', 134349829, 79, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [const prefix0.JsonProperty(name: 'pageNumber')]), r.VariableMirrorImpl(r'pageSize', 134349829, 79, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [const prefix0.JsonProperty(name: 'pageSize')]), r.VariableMirrorImpl(r'firstName', 67239941, 80, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'parent', 67239941, 80, const prefix0.JsonSerializable(), -1, 229, 229, const [], const [const prefix0.JsonProperty(inject: true)]), r.VariableMirrorImpl(r'nickname', 67239941, 80, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(inject: true)]), r.VariableMirrorImpl(r'firstName', 67239941, 81, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'parent', 67239941, 81, const prefix0.JsonSerializable(), -1, 230, 230, const [], const [const prefix0.JsonProperty(inject: true)]), r.VariableMirrorImpl(r'nickname', 67239941, 81, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(name: 'data/nick', inject: true)]), r.VariableMirrorImpl(r'firstName', 67239941, 82, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'parent', 67239941, 82, const prefix0.JsonSerializable(), -1, 231, 231, const [], const [const prefix0.JsonProperty(inject: true)]), r.VariableMirrorImpl(r'nickname', 67239941, 82, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(inject: true)]), r.VariableMirrorImpl(r'ints', 151127045, 85, const prefix0.JsonSerializable(), -1, 232, 233, const [187], const []), r.VariableMirrorImpl(r'b', 134349829, 85, const prefix0.JsonSerializable(), -1, 234, 234, const [], const []), r.VariableMirrorImpl(r'mainTitle', 67239941, 86, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'description', 67239941, 86, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'hasMainProperty', 67239941, 86, const prefix0.JsonSerializable(), -1, 235, 235, const [], const []), r.VariableMirrorImpl(r'primaryColor', 67239941, 86, const prefix0.JsonSerializable(), 6, 6, 6, const [], const []), r.VariableMirrorImpl(r'mainTitle', 67239941, 87, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'description', 67239941, 87, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'hasMainProperty', 67239941, 87, const prefix0.JsonSerializable(), -1, 235, 235, const [], const []), r.VariableMirrorImpl(r'primaryColor', 134348805, 87, const prefix0.JsonSerializable(), 6, 6, 6, const [], const []), r.VariableMirrorImpl(r'categoryId', 67239941, 88, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [const prefix0.JsonProperty(name: '../../id')]), r.VariableMirrorImpl(r'productId', 67239941, 88, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [const prefix0.JsonProperty(name: '../id')]), r.VariableMirrorImpl(r'id', 67239941, 88, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'name', 67239941, 88, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'categoryId', 67239941, 89, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [const prefix0.JsonProperty(name: '../id')]), r.VariableMirrorImpl(r'id', 67239941, 89, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'name', 67239941, 89, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'features', 84017157, 89, const prefix0.JsonSerializable(), -1, 236, 237, const [88], const [const prefix0.JsonProperty(ignoreIfNull: true)]), r.VariableMirrorImpl(r'id', 67239941, 90, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'name', 67239941, 90, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'products', 84017157, 90, const prefix0.JsonSerializable(), -1, 238, 239, const [89], const []), r.VariableMirrorImpl(r'items', 84017157, 91, const prefix0.JsonSerializable(), -1, 240, 241, const [171], const [const prefix0.JsonProperty(name: 'baz/items')]), r.VariableMirrorImpl(r'items', 84017157, 92, const prefix0.JsonSerializable(), -1, 240, 241, const [171], const [const prefix0.JsonProperty(name: 'root/foo/bar/items')]), r.VariableMirrorImpl(r'count', 67239941, 93, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [const prefix0.JsonProperty(name: 'root/foo/bar/count')]), r.VariableMirrorImpl(r'count', 67239941, 94, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [const prefix0.JsonProperty(name: 'root/0/bar')]), r.VariableMirrorImpl(r'count2', 67239941, 94, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [const prefix0.JsonProperty(name: 'root/1/bar')]), r.VariableMirrorImpl(r'cd', 67239941, 94, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [const prefix0.JsonProperty(name: '#/root/2/c%25d')]), r.VariableMirrorImpl(r'count3', 67239941, 94, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [const prefix0.JsonProperty(name: 'root/3/bar')]), r.VariableMirrorImpl(r'name', 67239941, 95, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(ignoreForDeserialization: true)]), r.VariableMirrorImpl(r'title', 67239941, 95, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(ignoreForSerialization: true)]), r.VariableMirrorImpl(r'id', 134348805, 96, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [const prefix0.JsonProperty(name: const ['id', 'id_a', 'id_b', 'id_test'])]), r.VariableMirrorImpl(r'location', 67240965, 97, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(name: 'in')]), r.VariableMirrorImpl(r'name', 67239941, 98, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'extraPropsMap', 151126021, 98, const prefix0.JsonSerializable(), -1, 179, 180, null, const [const prefix0.JsonProperty(ignore: true)]), r.VariableMirrorImpl(r'limit', 67239941, 100, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'offset', 67239941, 100, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'total', 67239941, 100, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'pagination', 67239941, 101, const prefix0.JsonSerializable(), 100, 100, 100, const [], const [const prefix0.JsonProperty(flatten: true)]), r.VariableMirrorImpl(r'cars', 84017157, 101, const prefix0.JsonSerializable(), -1, 242, 243, const [2], const []), r.VariableMirrorImpl(r'pagination', 67239941, 102, const prefix0.JsonSerializable(), 100, 100, 100, const [], const [const prefix0.JsonProperty(name: 'pagination', flatten: true)]), r.VariableMirrorImpl(r'cars', 84017157, 102, const prefix0.JsonSerializable(), -1, 242, 243, const [2], const []), r.VariableMirrorImpl(r'pagination', 67239941, 103, const prefix0.JsonSerializable(), 100, 100, 100, const [], const [const prefix0.JsonProperty(name: 'pagination', flatten: true)]), r.VariableMirrorImpl(r'cars', 84017157, 103, const prefix0.JsonSerializable(), -1, 242, 243, const [2], const []), r.VariableMirrorImpl(r'myList', 84017157, 104, const prefix0.JsonSerializable(), -1, 244, 245, const [187], const []), r.VariableMirrorImpl(r'myMap', 84017157, 104, const prefix0.JsonSerializable(), -1, 246, 247, const [187, 187], const []), r.VariableMirrorImpl(r'mySet', 84017157, 104, const prefix0.JsonSerializable(), -1, 248, 249, const [187], const []), r.VariableMirrorImpl(r'accountType', 67240965, 105, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'defaultCountryIsoCode', 134349829, 106, const prefix0.JsonSerializable(), -1, 171, 171, const [], const []), r.VariableMirrorImpl(r'autoImportContacts', 67240965, 106, const prefix0.JsonSerializable(), -1, 235, 235, const [], const []), r.VariableMirrorImpl(r'metadata', 134349829, 106, const prefix0.JsonSerializable(), 107, 107, 107, const [], const []), r.VariableMirrorImpl(r'id', 134349829, 107, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [const prefix0.JsonProperty(ignoreForSerialization: true)]), r.VariableMirrorImpl(r'createdBy', 134349829, 107, const prefix0.JsonSerializable(), -1, 171, 171, const [], const []), r.VariableMirrorImpl(r'deleted', 134349829, 107, const prefix0.JsonSerializable(), -1, 175, 175, const [], const [const prefix0.JsonProperty(defaultValue: false)]), r.VariableMirrorImpl(r'title', 134348805, 108, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [const prefix0.JsonProperty(name: 'title_test', scheme: prefix15.Scheme.B)]), r.VariableMirrorImpl(r'firstName', 67239941, 109, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(name: 'first_name', scheme: prefix15.Scheme.B), const prefix0.JsonProperty(name: 'firstname', scheme: prefix15.Scheme.A)]), r.VariableMirrorImpl(r'lastName', 67239941, 109, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(name: 'last_name', scheme: prefix15.Scheme.B), const prefix0.JsonProperty(name: 'lastname', scheme: prefix15.Scheme.A)]), r.VariableMirrorImpl(r'email', 67239941, 109, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(name: 'email', scheme: prefix15.Scheme.B), const prefix0.JsonProperty(name: 'email', scheme: prefix15.Scheme.A)]), r.VariableMirrorImpl(r'phoneNumber', 67239941, 109, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(name: 'phone', scheme: prefix15.Scheme.B), const prefix0.JsonProperty(name: 'telephone', scheme: prefix15.Scheme.A)]), r.VariableMirrorImpl(r'country', 67239941, 109, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(name: 'country', scheme: prefix15.Scheme.B), const prefix0.JsonProperty(name: 'country_id', scheme: prefix15.Scheme.A)]), r.VariableMirrorImpl(r'city', 67239941, 109, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(name: 'city', scheme: prefix15.Scheme.B), const prefix0.JsonProperty(name: 'city', scheme: prefix15.Scheme.A)]), r.VariableMirrorImpl(r'zipCode', 67239941, 109, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(name: 'postcode', scheme: prefix15.Scheme.B), const prefix0.JsonProperty(name: 'postcode', scheme: prefix15.Scheme.A)]), r.VariableMirrorImpl(r'street', 67239941, 109, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(name: 'address_1', scheme: prefix15.Scheme.B)]), r.VariableMirrorImpl(r'streetList', 84017157, 109, const prefix0.JsonSerializable(), -1, 240, 241, const [171], const [const prefix0.JsonProperty(name: 'street', scheme: prefix15.Scheme.A)]), r.VariableMirrorImpl(r'id', 67239941, 109, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'district', 67239941, 109, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'a', 134349829, 110, const prefix0.JsonSerializable(), -1, 187, 187, const [], const []), r.VariableMirrorImpl(r'a', 134349829, 111, const prefix0.JsonSerializable(), 110, 110, 110, const [], const []), r.VariableMirrorImpl(r'content', 67239941, 112, const prefix0.JsonSerializable(), 113, 113, 113, const [], const []), r.VariableMirrorImpl(r'content', 84017157, 113, const prefix0.JsonSerializable(), -1, 250, 251, const [112], const []), r.VariableMirrorImpl(r'page', 67239941, 114, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'limit', 67239941, 114, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'fieldSearchable', 67239941, 114, const prefix0.JsonSerializable(), -1, 235, 235, const [], const [const prefix0.JsonProperty(name: 'field_searchable.0')]), r.VariableMirrorImpl(r'types', 84017157, 114, const prefix0.JsonSerializable(), -1, 240, 241, const [171], const [const prefix0.JsonProperty(converterParams: const {'delimiter': ','})]), r.VariableMirrorImpl(r'value1', 1029, 116, const prefix0.JsonSerializable(), -1, -1, -1, const [], const []), r.VariableMirrorImpl(r'value2', 1029, 116, const prefix0.JsonSerializable(), -1, -1, -1, const [], const []), r.VariableMirrorImpl(r'tuple1', 151127045, 117, const prefix0.JsonSerializable(), 116, 252, 116, const [187, 174], const []), r.VariableMirrorImpl(r'tuple2', 151127045, 117, const prefix0.JsonSerializable(), 116, 253, 116, const [254, 197], const []), r.VariableMirrorImpl(r'icon', 67240965, 118, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'title', 67240965, 118, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(defaultValue: 'car')]), r.VariableMirrorImpl(r'on', 67240965, 118, const prefix0.JsonSerializable(), -1, 235, 235, const [], const []), r.VariableMirrorImpl(r'tabs', 84018181, 119, const prefix0.JsonSerializable(), -1, 255, 256, const [171, 118], const []), r.VariableMirrorImpl(r'activeColor', 67240965, 119, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'inactiveColor', 67240965, 119, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'backgroundColor', 67240965, 119, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'fontSize', 67240965, 119, const prefix0.JsonSerializable(), -1, 257, 257, const [], const []), r.VariableMirrorImpl(r'list', 84017157, 121, const prefix0.JsonSerializable(), -1, 258, 259, const [120], const []), r.VariableMirrorImpl(r'mailingList', 151126021, 123, const prefix0.JsonSerializable(), -1, 169, 170, const [171], const []), r.VariableMirrorImpl(r'id', 134349829, 124, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [const prefix0.JsonProperty(name: 'Id')]), r.VariableMirrorImpl(r'name', 134349829, 124, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [const prefix0.JsonProperty(name: 'Name')]), r.VariableMirrorImpl(r'id', 67240965, 125, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [const prefix0.JsonProperty(name: 'Id')]), r.VariableMirrorImpl(r'sequence', 67240965, 125, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [const prefix0.JsonProperty(name: 'Sequence')]), r.VariableMirrorImpl(r'description', 67240965, 125, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(name: 'Description')]), r.VariableMirrorImpl(r'id', 67239941, 126, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [const prefix0.JsonProperty(name: 'Id')]), r.VariableMirrorImpl(r'number', 67239941, 126, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [const prefix0.JsonProperty(name: 'Number')]), r.VariableMirrorImpl(r'customerId', 67239941, 126, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [const prefix0.JsonProperty(name: 'CustomerId')]), r.VariableMirrorImpl(r'customer', 67239941, 126, const prefix0.JsonSerializable(), 124, 124, 124, const [], const [const prefix0.JsonProperty(name: 'Customer')]), r.VariableMirrorImpl(r'expertId', 67239941, 126, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [const prefix0.JsonProperty(name: 'ExpertId')]), r.VariableMirrorImpl(r'start', 67239941, 126, const prefix0.JsonSerializable(), -1, 198, 198, const [], const [const prefix0.JsonProperty(name: 'Start')]), r.VariableMirrorImpl(r'items', 84017157, 126, const prefix0.JsonSerializable(), -1, 260, 261, const [125], const [const prefix0.JsonProperty(name: 'Items')]), r.VariableMirrorImpl(r'end', 67239941, 126, const prefix0.JsonSerializable(), -1, 198, 198, const [], const [const prefix0.JsonProperty(name: 'End')]), r.VariableMirrorImpl(r'resume', 67239941, 126, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(name: 'Resume')]), r.VariableMirrorImpl(r'lists', 84017157, 128, const prefix0.JsonSerializable(), -1, 262, 263, const [264], const []), r.VariableMirrorImpl(r'lists', 151126021, 129, const prefix0.JsonSerializable(), -1, 265, 266, const [264], const []), r.VariableMirrorImpl(r'rawField', 67239941, 130, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(name: 'rawField', rawJson: true)]), r.VariableMirrorImpl(r'normalField', 67239941, 130, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(name: 'normalField')]), r.VariableMirrorImpl(r'noAnnotationField', 67239941, 130, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'deviceIdent', 67239941, 131, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'gatewayConnections', 151126021, 131, const prefix0.JsonSerializable(), -1, 267, 268, const [132], const []), r.VariableMirrorImpl(r'gwIdent', 134348805, 132, const prefix0.JsonSerializable(), -1, 171, 171, const [], const []), r.VariableMirrorImpl(r'signalStrength', 67239941, 132, const prefix0.JsonSerializable(), 133, 133, 133, const [], const []), r.VariableMirrorImpl(r'strength', 134348805, 133, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [const prefix0.JsonProperty(name: 'Strength')]), r.VariableMirrorImpl(r'rssi', 67239941, 133, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [const prefix0.JsonProperty(name: 'RSSI')]), r.VariableMirrorImpl(r'spreadFactor', 67239941, 133, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [const prefix0.JsonProperty(name: 'SpreadFactor')]), r.VariableMirrorImpl(r'content', 84017157, 134, const prefix0.JsonSerializable(), -1, 269, 270, null, const []), r.VariableMirrorImpl(r'last', 67239941, 134, const prefix0.JsonSerializable(), -1, 235, 235, const [], const []), r.VariableMirrorImpl(r'totalPages', 67239941, 134, const prefix0.JsonSerializable(), -1, 186, 186, const [], const []), r.VariableMirrorImpl(r'totalElements', 67239941, 134, const prefix0.JsonSerializable(), -1, 186, 186, const [], const []), r.VariableMirrorImpl(r'first', 67239941, 134, const prefix0.JsonSerializable(), -1, 235, 235, const [], const []), r.VariableMirrorImpl(r'size', 67239941, 134, const prefix0.JsonSerializable(), -1, 186, 186, const [], const []), r.VariableMirrorImpl(r'number', 67239941, 134, const prefix0.JsonSerializable(), -1, 186, 186, const [], const []), r.VariableMirrorImpl(r'numberOfElements', 67239941, 134, const prefix0.JsonSerializable(), -1, 186, 186, const [], const []), r.VariableMirrorImpl(r'empty', 67239941, 134, const prefix0.JsonSerializable(), -1, 235, 235, const [], const []), r.VariableMirrorImpl(r'title', 67239941, 135, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'price', 67239941, 135, const prefix0.JsonSerializable(), -1, 257, 257, const [], const []), r.VariableMirrorImpl(r'quantity', 67239941, 135, const prefix0.JsonSerializable(), -1, 186, 186, const [], const []), r.VariableMirrorImpl(r'description', 67239941, 135, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'images', 84017157, 135, const prefix0.JsonSerializable(), -1, 240, 241, const [171], const []), r.VariableMirrorImpl(r'sourceImages', 84017157, 135, const prefix0.JsonSerializable(), -1, 240, 241, const [171], const []), r.VariableMirrorImpl(r'sourceId', 67239941, 135, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'sourceUrl', 67239941, 135, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'content', 84017157, 136, const prefix0.JsonSerializable(), -1, 271, 272, const [135], const [override]), r.VariableMirrorImpl(r'ccsdsOmmVers', 67239941, 137, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'comment', 67239941, 137, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'originator', 67239941, 137, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'objectName', 67239941, 137, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'objectId', 67239941, 137, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'objectType', 67239941, 137, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'centerName', 67239941, 137, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'refFrame', 67239941, 137, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'timeSystem', 67239941, 137, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'meanElementTheory', 67239941, 137, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'classificationType', 67239941, 137, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'rcsSize', 67239941, 137, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'countryCode', 67239941, 137, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'site', 67239941, 137, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'tleLine0', 67239941, 137, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'tleLine1', 67239941, 137, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'tleLine2', 67239941, 137, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'meanMotion', 67239941, 137, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'eccentricity', 67239941, 137, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'raOfAscNode', 67239941, 137, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'argOfPericenter', 67239941, 137, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'meanAnomaly', 67239941, 137, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'ephemerisType', 67239941, 137, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'noradCatId', 67239941, 137, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'elementSetNo', 67239941, 137, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'revAtEpoch', 67239941, 137, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'bstar', 67239941, 137, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'meanMotionDot', 67239941, 137, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'meanMotionDdot', 67239941, 137, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'semimajorAxis', 67239941, 137, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'period', 67239941, 137, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'apoapsis', 67239941, 137, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'periapsis', 67239941, 137, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'decayed', 67239941, 137, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'file', 67239941, 137, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'gpId', 67239941, 137, const prefix0.JsonSerializable(), -1, 176, 176, const [], const []), r.VariableMirrorImpl(r'decayDate', 67239941, 137, const prefix0.JsonSerializable(), -1, 198, 198, const [], const []), r.VariableMirrorImpl(r'creationDate', 67239941, 137, const prefix0.JsonSerializable(), -1, 198, 198, const [], const []), r.VariableMirrorImpl(r'epoch', 67239941, 137, const prefix0.JsonSerializable(), -1, 198, 198, const [], const []), r.VariableMirrorImpl(r'launchDate', 67239941, 137, const prefix0.JsonSerializable(), -1, 198, 198, const [], const [const prefix0.JsonProperty(converterParams: const {'format': 'yyyy-MM-dd'})]), r.VariableMirrorImpl(r'spaceTrack', 67239941, 138, const prefix0.JsonSerializable(), 137, 137, 137, const [], const []), r.VariableMirrorImpl(r'version', 67239941, 138, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'id', 67239941, 138, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'launch', 67239941, 138, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'foo', 67108869, 140, const prefix0.JsonSerializable(), -1, -1, -1, const [], const []), r.VariableMirrorImpl(r'parentUuid', 67240965, 142, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'uuid', 67240965, 142, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'entity', 67109893, 142, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [const prefix0.JsonProperty(ignore: true)]), r.VariableMirrorImpl(r'parentUuid', 67240965, 143, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'uuid', 67240965, 143, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'model', 67240965, 144, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'color', 67240965, 144, const prefix0.JsonSerializable(), 6, 6, 6, const [], const []), r.VariableMirrorImpl(r'success', 67239941, 145, const prefix0.JsonSerializable(), -1, 235, 235, const [], const []), r.VariableMirrorImpl(r'result', 67108869, 145, const prefix0.JsonSerializable(), -1, -1, -1, const [], const []), r.VariableMirrorImpl(r'id', 67239941, 146, const prefix0.JsonSerializable(), -1, 186, 186, const [], const []), r.VariableMirrorImpl(r'name', 67239941, 146, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'id', 134349829, 148, const prefix0.JsonSerializable(), -1, 187, 187, const [], const []), r.VariableMirrorImpl(r'name', 134349829, 148, const prefix0.JsonSerializable(), -1, 171, 171, const [], const []), r.VariableMirrorImpl(r'car', 134349829, 148, const prefix0.JsonSerializable(), 2, 2, 2, const [], const []), r.VariableMirrorImpl(r'stars', 134348805, 150, const prefix0.JsonSerializable(), -1, 187, 187, const [], const []), r.VariableMirrorImpl(r'userCount', 134348805, 151, const prefix0.JsonSerializable(), -1, 187, 187, const [], const []), r.VariableMirrorImpl(r'fullName', 134348805, 152, const prefix0.JsonSerializable(), -1, 171, 171, const [], const []), r.VariableMirrorImpl(r'businesses', 151126021, 152, const prefix0.JsonSerializable(), -1, 273, 274, const [149], const []), r.VariableMirrorImpl(r'type', 67239941, 153, const prefix0.JsonSerializable(), 165, 165, 165, const [], const []), r.VariableMirrorImpl(r'stars', 134348805, 154, const prefix0.JsonSerializable(), -1, 187, 187, const [], const []), r.VariableMirrorImpl(r'userCount', 134348805, 155, const prefix0.JsonSerializable(), -1, 187, 187, const [], const []), r.VariableMirrorImpl(r'fullName', 134348805, 156, const prefix0.JsonSerializable(), -1, 171, 171, const [], const []), r.VariableMirrorImpl(r'businesses', 151126021, 156, const prefix0.JsonSerializable(), -1, 275, 276, const [153], const []), r.VariableMirrorImpl(r'email', 67240965, 157, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'id', 67239941, -1, const prefix0.JsonSerializable(), -1, 168, 168, const [], const []), r.VariableMirrorImpl(r'email', 67240965, 158, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [override]), r.VariableMirrorImpl(r'myField', 134349829, 159, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [const prefix0.JsonProperty(name: 'myCustomFieldName')]), r.VariableMirrorImpl(r'myField', 134349829, 160, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [override]), r.VariableMirrorImpl(r'a', 134348805, 161, const prefix0.JsonSerializable(), -1, 187, 187, const [], const []), r.VariableMirrorImpl(r'b', 134348805, 162, const prefix0.JsonSerializable(), -1, 171, 171, const [], const []), r.VariableMirrorImpl(r'a', 134348805, 163, const prefix0.JsonSerializable(), -1, 187, 187, const [], const []), r.VariableMirrorImpl(r'b', 134348805, 164, const prefix0.JsonSerializable(), -1, 171, 171, const [], const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 0, 357), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 1, 358), r.MethodMirrorImpl(r'', 128, 0, -1, 0, 0, const [], const [0, 1], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'==', 2097154, -1, -1, 175, 175, const [], const [2], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toString', 2097154, -1, -1, 171, 171, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'noSuchMethod', 524290, -1, -1, -1, -1, const [], const [3], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'hashCode', 2097155, -1, -1, 187, 187, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'runtimeType', 2097155, -1, -1, 277, 277, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 2, 365), r.MethodMirrorImpl(r'', 128, 1, -1, 1, 1, const [], const [4], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 3, 367), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 3, 368), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 4, 369), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 4, 370), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 5, 371), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 5, 372), r.MethodMirrorImpl(r'', 0, 2, -1, 2, 2, const [], const [5, 6], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 6, 374), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 7, 375), r.MethodMirrorImpl(r'', 128, 3, -1, 3, 3, const [], const [10, 11], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 8, 377), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 8, 378), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 9, 379), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 9, 380), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 10, 381), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 10, 382), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 11, 383), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 11, 384), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 12, 385), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 12, 386), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 13, 387), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 13, 388), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 14, 389), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 14, 390), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 15, 391), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 15, 392), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 16, 393), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 16, 394), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 17, 395), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 17, 396), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 18, 397), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 18, 398), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 19, 399), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 19, 400), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 20, 401), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 20, 402), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 21, 403), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 21, 404), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 22, 405), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 22, 406), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 23, 407), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 23, 408), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 24, 409), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 24, 410), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 25, 411), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 25, 412), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 26, 413), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 26, 414), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 27, 415), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 27, 416), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 28, 417), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 28, 418), r.MethodMirrorImpl(r'fullName', 2097155, 4, -1, 171, 171, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 0, 4, -1, 4, 4, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'nextCatId', 2097155, 5, -1, 171, 171, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'nextDogId', 2097155, 5, -1, 171, 171, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 5, -1, 5, 5, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 192, 6, -1, 6, 6, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'index', 2097155, -1, -1, 187, 187, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 29, 426), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 30, 427), r.MethodMirrorImpl(r'', 0, 7, -1, 7, 7, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'fromJson', 0, 7, -1, 7, 7, const [], const [33], const prefix0.JsonSerializable(), const [prefix0.jsonConstructor]), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 31, 430), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 32, 431), r.MethodMirrorImpl(r'', 0, 8, -1, 8, 8, const [], const [34], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 33, 433), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 33, 434), r.MethodMirrorImpl(r'', 64, 9, -1, 9, 9, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 34, 436), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 35, 437), r.MethodMirrorImpl(r'', 0, 10, -1, 10, 10, const [], const [36, 37], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 36, 439), r.MethodMirrorImpl(r'', 0, 11, -1, 11, 11, const [], const [38], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 12, -1, 12, 12, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 37, 442), r.MethodMirrorImpl(r'', 0, 13, -1, 278, 13, null, const [39], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 0, 14, -1, 14, 14, const [], const [40], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 0, 15, -1, 15, 15, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 0, 16, -1, 16, 16, const [], const [41], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 38, 447), r.MethodMirrorImpl(r'', 0, 17, -1, 17, 17, const [], const [42], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 39, 449), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 39, 450), r.MethodMirrorImpl(r'', 0, 18, -1, 18, 18, const [], const [43], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 40, 452), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 40, 453), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 41, 454), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 41, 455), r.MethodMirrorImpl(r'', 0, 19, -1, 19, 19, const [], const [45, 46], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 42, 457), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 42, 458), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 43, 459), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 43, 460), r.MethodMirrorImpl(r'', 0, 20, -1, 20, 20, const [], const [49, 50], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 44, 462), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 44, 463), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 45, 464), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 45, 465), r.MethodMirrorImpl(r'', 0, 21, -1, 21, 21, const [], const [53, 54], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 46, 467), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 46, 468), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 47, 469), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 47, 470), r.MethodMirrorImpl(r'', 0, 22, -1, 22, 22, const [], const [57, 58], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 48, 472), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 48, 473), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 49, 474), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 49, 475), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 50, 476), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 50, 477), r.MethodMirrorImpl(r'', 0, 23, -1, 23, 23, const [], const [61, 62, 63], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 51, 479), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 51, 480), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 52, 481), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 52, 482), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 53, 483), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 53, 484), r.MethodMirrorImpl(r'', 0, 24, -1, 24, 24, const [], const [67, 68, 69], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 54, 486), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 54, 487), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 55, 488), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 55, 489), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 56, 490), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 56, 491), r.MethodMirrorImpl(r'', 0, 25, -1, 25, 25, const [], const [73, 74, 75], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 57, 493), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 57, 494), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 58, 495), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 58, 496), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 59, 497), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 59, 498), r.MethodMirrorImpl(r'', 64, 26, -1, 26, 26, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 60, 500), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 61, 501), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 62, 502), r.MethodMirrorImpl(r'', 128, 27, -1, 27, 27, const [], const [82, 83, 84], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toString', 2097154, 28, -1, 171, 171, const [], const [], const prefix0.JsonSerializable(), const [override]), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 63, 505), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 63, 506), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 64, 507), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 64, 508), r.MethodMirrorImpl(r'json', 0, 28, -1, 28, 28, const [], const [85, 86], const prefix0.JsonSerializable(), const [prefix0.jsonConstructor]), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 65, 510), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 65, 511), r.MethodMirrorImpl(r'', 64, 29, -1, 29, 29, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 66, 513), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 66, 514), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 67, 515), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 67, 516), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 68, 517), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 68, 518), r.MethodMirrorImpl(r'', 64, 30, -1, 30, 30, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 69, 520), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 69, 521), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 70, 522), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 70, 523), r.MethodMirrorImpl(r'', 0, 31, -1, 31, 31, const [], const [93], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 71, 525), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 71, 526), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 72, 527), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 72, 528), r.MethodMirrorImpl(r'', 64, 32, -1, 32, 32, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 73, 530), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 73, 531), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 74, 532), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 74, 533), r.MethodMirrorImpl(r'json', 0, 33, -1, 33, 33, const [], const [98], const prefix0.JsonSerializable(), const [prefix0.jsonConstructor]), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 75, 535), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 75, 536), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 76, 537), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 76, 538), r.MethodMirrorImpl(r'', 64, 34, -1, 34, 34, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 77, 540), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 77, 541), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 78, 542), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 78, 543), r.MethodMirrorImpl(r'', 64, 35, -1, 35, 35, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 79, 545), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 80, 546), r.MethodMirrorImpl(r'', 128, 36, -1, 36, 36, const [], const [105, 106], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 81, 548), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 81, 549), r.MethodMirrorImpl(r'', 0, 37, -1, 37, 37, const [], const [107], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 82, 551), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 82, 552), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 83, 553), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 83, 554), r.MethodMirrorImpl(r'', 0, 38, -1, 38, 38, const [], const [109, 110], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 84, 556), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 84, 557), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 85, 558), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 85, 559), r.MethodMirrorImpl(r'', 64, 39, -1, 39, 39, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 86, 561), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 86, 562), r.MethodMirrorImpl(r'', 0, 40, -1, 40, 40, const [], const [115], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 87, 564), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 87, 565), r.MethodMirrorImpl(r'', 0, 41, -1, 41, 41, const [], const [117], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 88, 567), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 88, 568), r.MethodMirrorImpl(r'', 64, 42, -1, 42, 42, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 89, 570), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 89, 571), r.MethodMirrorImpl(r'', 64, 43, -1, 43, 43, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 90, 573), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 90, 574), r.MethodMirrorImpl(r'', 0, 44, -1, 44, 44, const [], const [121], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 45, -1, 45, 45, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 91, 577), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 91, 578), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 92, 579), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 92, 580), r.MethodMirrorImpl(r'', 64, 46, -1, 46, 46, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 93, 582), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 93, 583), r.MethodMirrorImpl(r'', 64, 47, -1, 47, 47, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 94, 585), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 94, 586), r.MethodMirrorImpl(r'', 64, 48, -1, 48, 48, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 95, 588), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 95, 589), r.MethodMirrorImpl(r'', 64, 49, -1, 49, 49, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 192, 50, -1, 50, 50, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 192, 51, -1, 51, 51, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 192, 52, -1, 52, 52, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 192, 53, -1, 53, 53, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 96, 595), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 96, 596), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 97, 597), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 97, 598), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 98, 599), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 98, 600), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 99, 601), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 99, 602), r.MethodMirrorImpl(r'', 64, 54, -1, 54, 54, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 100, 604), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 101, 605), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 102, 606), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 103, 607), r.MethodMirrorImpl(r'', 128, 55, -1, 55, 55, const [], const [132, 133, 134, 135], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 104, 609), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 104, 610), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 105, 611), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 105, 612), r.MethodMirrorImpl(r'', 64, 56, -1, 56, 56, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 106, 614), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 106, 615), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 107, 616), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 107, 617), r.MethodMirrorImpl(r'', 64, 57, -1, 57, 57, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 108, 619), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 108, 620), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 109, 621), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 109, 622), r.MethodMirrorImpl(r'', 64, 58, -1, 58, 58, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 110, 624), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 110, 625), r.MethodMirrorImpl(r'', 0, 59, -1, 59, 59, const [], const [142], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 111, 627), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 111, 628), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 112, 629), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 112, 630), r.MethodMirrorImpl(r'', 64, 60, -1, 60, 60, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 113, 632), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 113, 633), r.MethodMirrorImpl(r'', 0, 61, -1, 61, 61, const [], const [146], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 114, 635), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 114, 636), r.MethodMirrorImpl(r'', 0, 62, -1, 62, 62, const [], const [148], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 115, 638), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 115, 639), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 116, 640), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 116, 641), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 117, 642), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 117, 643), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 118, 644), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 118, 645), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 119, 646), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 119, 647), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 120, 648), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 120, 649), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 121, 650), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 121, 651), r.MethodMirrorImpl(r'', 64, 63, -1, 63, 63, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 122, 653), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 122, 654), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 123, 655), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 123, 656), r.MethodMirrorImpl(r'', 0, 64, -1, 64, 64, const [], const [157, 158], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 124, 658), r.MethodMirrorImpl(r'', 128, 65, -1, 65, 65, const [], const [161], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 125, 660), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 125, 661), r.MethodMirrorImpl(r'', 64, 66, -1, 66, 66, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 126, 663), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 126, 664), r.MethodMirrorImpl(r'', 0, 67, -1, 67, 67, const [], const [163], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 127, 666), r.MethodMirrorImpl(r'', 128, 68, -1, 68, 68, const [], const [165], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 192, 69, -1, 69, 69, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 192, 70, -1, 70, 70, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 0, 71, -1, 71, 71, const [], const [166, 167], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 72, -1, 72, 72, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 128, 672), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 128, 673), r.MethodMirrorImpl(r'', 0, 73, -1, 73, 73, const [], const [168], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 129, 675), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 129, 676), r.MethodMirrorImpl(r'', 64, 74, -1, 74, 74, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 130, 678), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 131, 679), r.MethodMirrorImpl(r'', 128, 75, -1, 75, 75, const [], const [171, 172], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 132, 681), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 132, 682), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 133, 683), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 133, 684), r.MethodMirrorImpl(r'', 0, 76, -1, 76, 76, const [], const [173, 174], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 134, 686), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 134, 687), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 135, 688), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 135, 689), r.MethodMirrorImpl(r'', 0, 77, -1, 77, 77, const [], const [177, 178], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 136, 691), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 137, 692), r.MethodMirrorImpl(r'', 0, 78, -1, 78, 78, const [], const [181, 182], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 138, 694), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 139, 695), r.MethodMirrorImpl(r'', 0, 79, -1, 79, 79, const [], const [183, 184], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 140, 697), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 140, 698), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 141, 699), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 141, 700), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 142, 701), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 142, 702), r.MethodMirrorImpl(r'', 64, 80, -1, 80, 80, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 143, 704), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 143, 705), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 144, 706), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 144, 707), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 145, 708), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 145, 709), r.MethodMirrorImpl(r'', 0, 81, -1, 81, 81, const [], const [188], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 146, 711), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 146, 712), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 147, 713), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 147, 714), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 148, 715), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 148, 716), r.MethodMirrorImpl(r'', 0, 82, -1, 82, 82, const [], const [192], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 83, -1, 83, 83, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 84, -1, 84, 84, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 149, 720), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 150, 721), r.MethodMirrorImpl(r'', 128, 85, -1, 85, 85, const [], const [196, 197], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 151, 723), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 151, 724), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 152, 725), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 152, 726), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 153, 727), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 153, 728), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 154, 729), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 154, 730), r.MethodMirrorImpl(r'', 0, 86, -1, 86, 86, const [], const [198, 199, 200, 201], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 155, 732), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 155, 733), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 156, 734), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 156, 735), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 157, 736), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 157, 737), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 158, 738), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 158, 739), r.MethodMirrorImpl(r'', 0, 87, -1, 87, 87, const [], const [206, 207, 208, 209], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 159, 741), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 159, 742), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 160, 743), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 160, 744), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 161, 745), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 161, 746), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 162, 747), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 162, 748), r.MethodMirrorImpl(r'', 0, 88, -1, 88, 88, const [], const [214, 215], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 163, 750), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 163, 751), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 164, 752), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 164, 753), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 165, 754), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 165, 755), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 166, 756), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 166, 757), r.MethodMirrorImpl(r'', 0, 89, -1, 89, 89, const [], const [220, 221, 222], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 167, 759), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 167, 760), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 168, 761), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 168, 762), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 169, 763), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 169, 764), r.MethodMirrorImpl(r'', 0, 90, -1, 90, 90, const [], const [227, 228, 229], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 170, 766), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 170, 767), r.MethodMirrorImpl(r'', 0, 91, -1, 91, 91, const [], const [233], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 171, 769), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 171, 770), r.MethodMirrorImpl(r'', 0, 92, -1, 92, 92, const [], const [235], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 172, 772), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 172, 773), r.MethodMirrorImpl(r'', 0, 93, -1, 93, 93, const [], const [237], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 173, 775), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 173, 776), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 174, 777), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 174, 778), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 175, 779), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 175, 780), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 176, 781), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 176, 782), r.MethodMirrorImpl(r'', 0, 94, -1, 94, 94, const [], const [239, 240, 241, 242], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 177, 784), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 177, 785), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 178, 786), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 178, 787), r.MethodMirrorImpl(r'', 0, 95, -1, 95, 95, const [], const [247, 248], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 179, 789), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 179, 790), r.MethodMirrorImpl(r'', 64, 96, -1, 96, 96, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 180, 792), r.MethodMirrorImpl(r'', 0, 97, -1, 97, 97, const [], const [252], const prefix0.JsonSerializable(), const [prefix0.jsonConstructor]), r.MethodMirrorImpl(r'unmappedSet', 1310722, 98, -1, -1, -1, const [], const [253, 254], const prefix0.JsonSerializable(), const [prefix0.jsonProperty]), r.MethodMirrorImpl(r'unmappedGet', 35651586, 98, -1, 179, 180, null, const [], const prefix0.JsonSerializable(), const [prefix0.jsonProperty]), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 181, 796), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 181, 797), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 182, 798), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 182, 799), r.MethodMirrorImpl(r'', 64, 98, -1, 98, 98, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'setLastName', 1310722, 99, -1, -1, -1, const [], const [257], const prefix0.JsonSerializable(), const [const prefix0.JsonProperty(name: 'lastName')]), r.MethodMirrorImpl(r'getLastName', 2097154, 99, -1, 168, 168, const [], const [], const prefix0.JsonSerializable(), const [const prefix0.JsonProperty(name: 'lastName')]), r.MethodMirrorImpl(r'name=', 1310724, 99, -1, -1, -1, const [], const [258], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'name', 2097155, 99, -1, 168, 168, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 99, -1, 99, 99, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 183, 806), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 183, 807), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 184, 808), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 184, 809), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 185, 810), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 185, 811), r.MethodMirrorImpl(r'', 64, 100, -1, 100, 100, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 186, 813), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 186, 814), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 187, 815), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 187, 816), r.MethodMirrorImpl(r'', 64, 101, -1, 101, 101, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 188, 818), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 188, 819), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 189, 820), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 189, 821), r.MethodMirrorImpl(r'', 64, 102, -1, 102, 102, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 190, 823), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 190, 824), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 191, 825), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 191, 826), r.MethodMirrorImpl(r'', 64, 103, -1, 103, 103, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 192, 828), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 192, 829), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 193, 830), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 193, 831), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 194, 832), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 194, 833), r.MethodMirrorImpl(r'', 64, 104, -1, 104, 104, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 195, 835), r.MethodMirrorImpl(r'', 0, 105, -1, 105, 105, const [], const [271], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toString', 2097154, 106, -1, 171, 171, const [], const [], const prefix0.JsonSerializable(), const [override]), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 196, 838), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 197, 839), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 198, 840), r.MethodMirrorImpl(r'', 0, 106, -1, 106, 106, const [], const [272, 273, 274], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toString', 2097154, 107, -1, 171, 171, const [], const [], const prefix0.JsonSerializable(), const [override]), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 199, 843), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 200, 844), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 201, 845), r.MethodMirrorImpl(r'', 0, 107, -1, 107, 107, const [], const [275, 276, 277], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 202, 847), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 202, 848), r.MethodMirrorImpl(r'', 0, 108, -1, 108, 108, const [], const [278], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 203, 850), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 203, 851), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 204, 852), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 204, 853), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 205, 854), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 205, 855), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 206, 856), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 206, 857), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 207, 858), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 207, 859), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 208, 860), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 208, 861), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 209, 862), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 209, 863), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 210, 864), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 210, 865), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 211, 866), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 211, 867), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 212, 868), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 212, 869), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 213, 870), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 213, 871), r.MethodMirrorImpl(r'jsonTwo', 0, 109, -1, 109, 109, const [], const [], const prefix0.JsonSerializable(), const [const prefix0.JsonConstructor(scheme: prefix15.Scheme.B)]), r.MethodMirrorImpl(r'jsonOne', 0, 109, -1, 109, 109, const [], const [280, 281, 282], const prefix0.JsonSerializable(), const [const prefix0.JsonConstructor(scheme: prefix15.Scheme.A)]), r.MethodMirrorImpl(r'==', 2097154, 110, -1, 175, 175, const [], const [294], const prefix0.JsonSerializable(), const [override]), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 214, 875), r.MethodMirrorImpl(r'hashCode', 2097155, 110, -1, 187, 187, const [], const [], const prefix0.JsonSerializable(), const [override]), r.MethodMirrorImpl(r'', 0, 110, -1, 110, 110, const [], const [295], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 215, 878), r.MethodMirrorImpl(r'', 0, 111, -1, 111, 111, const [], const [296], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 216, 880), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 216, 881), r.MethodMirrorImpl(r'', 64, 112, -1, 112, 112, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 217, 883), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 217, 884), r.MethodMirrorImpl(r'', 64, 113, -1, 113, 113, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 218, 886), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 218, 887), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 219, 888), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 219, 889), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 220, 890), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 220, 891), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 221, 892), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 221, 893), r.MethodMirrorImpl(r'', 64, 114, -1, 114, 114, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'id', 2097155, 115, -1, 171, 171, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'id=', 1310724, 115, -1, -1, -1, const [], const [303], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 115, -1, 115, 115, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 222, 898), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 223, 899), r.MethodMirrorImpl(r'', 0, 116, -1, 279, 116, null, const [304, 305], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'of', 1, 116, -1, 279, 116, null, const [306], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 224, 902), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 225, 903), r.MethodMirrorImpl(r'', 0, 117, -1, 117, 117, const [], const [307, 308], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 226, 905), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 227, 906), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 228, 907), r.MethodMirrorImpl(r'', 0, 118, -1, 118, 118, const [], const [309, 310, 311], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 229, 909), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 230, 910), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 231, 911), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 232, 912), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 233, 913), r.MethodMirrorImpl(r'', 0, 119, -1, 119, 119, const [], const [312, 313, 314, 315, 316], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 120, -1, 120, 120, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 234, 916), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 234, 917), r.MethodMirrorImpl(r'', 0, 121, -1, 121, 121, const [], const [317], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 122, -1, 122, 122, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 235, 920), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 235, 921), r.MethodMirrorImpl(r'', 64, 123, -1, 123, 123, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 236, 923), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 237, 924), r.MethodMirrorImpl(r'', 128, 124, -1, 124, 124, const [], const [320, 321], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 238, 926), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 239, 927), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 240, 928), r.MethodMirrorImpl(r'', 128, 125, -1, 125, 125, const [], const [322, 323, 324], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 241, 930), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 241, 931), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 242, 932), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 242, 933), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 243, 934), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 243, 935), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 244, 936), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 244, 937), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 245, 938), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 245, 939), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 246, 940), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 246, 941), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 247, 942), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 247, 943), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 248, 944), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 248, 945), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 249, 946), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 249, 947), r.MethodMirrorImpl(r'', 0, 126, -1, 126, 126, const [], const [325, 326, 327, 328, 329, 330, 331, 332, 333], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 127, -1, 127, 127, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 250, 950), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 250, 951), r.MethodMirrorImpl(r'', 64, 128, -1, 128, 128, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 251, 953), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 251, 954), r.MethodMirrorImpl(r'', 0, 129, -1, 129, 129, const [], const [344], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 252, 956), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 252, 957), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 253, 958), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 253, 959), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 254, 960), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 254, 961), r.MethodMirrorImpl(r'', 0, 130, -1, 130, 130, const [], const [346, 347, 348], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 255, 963), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 255, 964), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 256, 965), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 256, 966), r.MethodMirrorImpl(r'', 64, 131, -1, 131, 131, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 257, 968), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 257, 969), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 258, 970), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 258, 971), r.MethodMirrorImpl(r'', 64, 132, -1, 132, 132, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 259, 973), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 259, 974), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 260, 975), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 260, 976), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 261, 977), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 261, 978), r.MethodMirrorImpl(r'', 64, 133, -1, 133, 133, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 262, 980), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 262, 981), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 263, 982), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 263, 983), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 264, 984), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 264, 985), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 265, 986), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 265, 987), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 266, 988), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 266, 989), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 267, 990), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 267, 991), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 268, 992), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 268, 993), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 269, 994), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 269, 995), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 270, 996), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 270, 997), r.MethodMirrorImpl(r'', 64, 134, -1, 280, 134, null, const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 271, 999), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 271, 1000), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 272, 1001), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 272, 1002), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 273, 1003), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 273, 1004), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 274, 1005), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 274, 1006), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 275, 1007), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 275, 1008), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 276, 1009), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 276, 1010), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 277, 1011), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 277, 1012), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 278, 1013), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 278, 1014), r.MethodMirrorImpl(r'', 64, 135, -1, 135, 135, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 279, 1016), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 279, 1017), r.MethodMirrorImpl(r'', 64, 136, -1, 136, 136, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 280, 1019), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 280, 1020), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 281, 1021), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 281, 1022), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 282, 1023), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 282, 1024), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 283, 1025), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 283, 1026), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 284, 1027), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 284, 1028), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 285, 1029), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 285, 1030), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 286, 1031), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 286, 1032), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 287, 1033), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 287, 1034), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 288, 1035), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 288, 1036), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 289, 1037), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 289, 1038), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 290, 1039), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 290, 1040), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 291, 1041), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 291, 1042), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 292, 1043), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 292, 1044), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 293, 1045), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 293, 1046), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 294, 1047), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 294, 1048), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 295, 1049), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 295, 1050), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 296, 1051), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 296, 1052), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 297, 1053), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 297, 1054), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 298, 1055), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 298, 1056), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 299, 1057), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 299, 1058), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 300, 1059), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 300, 1060), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 301, 1061), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 301, 1062), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 302, 1063), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 302, 1064), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 303, 1065), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 303, 1066), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 304, 1067), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 304, 1068), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 305, 1069), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 305, 1070), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 306, 1071), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 306, 1072), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 307, 1073), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 307, 1074), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 308, 1075), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 308, 1076), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 309, 1077), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 309, 1078), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 310, 1079), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 310, 1080), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 311, 1081), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 311, 1082), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 312, 1083), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 312, 1084), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 313, 1085), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 313, 1086), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 314, 1087), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 314, 1088), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 315, 1089), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 315, 1090), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 316, 1091), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 316, 1092), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 317, 1093), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 317, 1094), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 318, 1095), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 318, 1096), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 319, 1097), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 319, 1098), r.MethodMirrorImpl(r'', 64, 137, -1, 137, 137, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 320, 1100), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 320, 1101), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 321, 1102), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 321, 1103), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 322, 1104), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 322, 1105), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 323, 1106), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 323, 1107), r.MethodMirrorImpl(r'', 64, 138, -1, 138, 138, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 139, -1, 139, 139, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'fromJson', 35651586, 140, 140, 281, 140, null, const [421], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toJson', 524290, 140, -1, -1, -1, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 324, 1112), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 324, 1113), r.MethodMirrorImpl(r'', 0, 140, -1, 282, 140, null, const [422], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 0, 141, -1, 141, 141, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'of', 1, 141, -1, 141, 141, const [], const [424], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'entityToJson', 35651586, 142, -1, 204, 205, null, const [], const prefix0.JsonSerializable(), const [prefix0.jsonProperty]), r.MethodMirrorImpl(r'setEntityPropertyFromJson', 1310722, 142, -1, -1, -1, const [], const [425, 426], const prefix0.JsonSerializable(), const [prefix0.jsonProperty]), r.MethodMirrorImpl(r'newEntityFromModelJson', 2, 142, -1, -1, -1, const [], const [427], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'newEntityFromJson', 2, 142, -1, -1, -1, const [], const [428], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'fromJson', 35651586, 142, 142, 283, 142, null, const [429], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toJson', 35651586, 142, -1, 204, 205, null, const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 325, 1123), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 326, 1124), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 327, 1125), r.MethodMirrorImpl(r'', 128, 142, -1, 284, 142, null, const [430, 431, 432], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'of', 1, 142, -1, 284, 142, null, const [433], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'copyWith', 514, 143, -1, -1, -1, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'merge', 514, 143, -1, -1, -1, const [], const [434], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'fromJson', 2, 143, -1, -1, -1, const [], const [435], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toJson', 35651586, 143, -1, 204, 205, null, const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 328, 1132), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 329, 1133), r.MethodMirrorImpl(r'', 128, 143, -1, 285, 143, null, const [436, 437], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'copyWith', 2097154, 144, 2, 2, 2, const [], const [], const prefix0.JsonSerializable(), const [override]), r.MethodMirrorImpl(r'merge', 2097154, 144, 2, 2, 2, const [], const [438], const prefix0.JsonSerializable(), const [override]), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 330, 1137), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 331, 1138), r.MethodMirrorImpl(r'', 128, 144, -1, 144, 144, const [], const [439, 440, 441, 442], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'fromJson', 35651586, 145, 145, 286, 145, null, const [443], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'toJson', 524290, 145, -1, -1, -1, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 332, 1142), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 332, 1143), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 333, 1144), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 333, 1145), r.MethodMirrorImpl(r'', 0, 145, -1, 287, 145, null, const [444, 445], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 334, 1147), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 334, 1148), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 335, 1149), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 335, 1150), r.MethodMirrorImpl(r'', 0, 146, -1, 146, 146, const [], const [448, 449], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 0, 147, -1, 147, 147, const [], const [452, 453], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'of', 1, 147, -1, 147, 147, const [], const [454], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 336, 1154), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 337, 1155), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 338, 1156), r.MethodMirrorImpl(r'', 128, 148, -1, 148, 148, const [], const [455, 456, 457], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'type', 2097667, 149, 165, 165, 165, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 149, -1, 149, 149, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 339, 1160), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 339, 1161), r.MethodMirrorImpl(r'type', 2097155, 150, 165, 165, 165, const [], const [], const prefix0.JsonSerializable(), const [override]), r.MethodMirrorImpl(r'', 0, 150, -1, 150, 150, const [], const [458], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 340, 1164), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 340, 1165), r.MethodMirrorImpl(r'type', 2097155, 151, 165, 165, 165, const [], const [], const prefix0.JsonSerializable(), const [override]), r.MethodMirrorImpl(r'', 0, 151, -1, 151, 151, const [], const [460], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 341, 1168), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 341, 1169), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 342, 1170), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 342, 1171), r.MethodMirrorImpl(r'', 0, 152, -1, 152, 152, const [], const [462, 463], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 343, 1173), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 343, 1174), r.MethodMirrorImpl(r'', 64, 153, -1, 153, 153, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 344, 1176), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 344, 1177), r.MethodMirrorImpl(r'', 0, 154, -1, 154, 154, const [], const [467], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 345, 1179), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 345, 1180), r.MethodMirrorImpl(r'', 0, 155, -1, 155, 155, const [], const [469], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 346, 1182), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 346, 1183), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 347, 1184), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 347, 1185), r.MethodMirrorImpl(r'', 0, 156, -1, 156, 156, const [], const [471, 472], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'copyWith', 2097666, 157, 157, 157, 157, const [], const [475, 476], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 348, 1188), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 348, 1189), r.MethodMirrorImpl(r'', 257, 157, -1, 157, 157, const [], const [477], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 349, 1191), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 349, 1192), r.MethodMirrorImpl(r'copyWith', 2097154, 158, 157, 157, 157, const [], const [480, 481], const prefix0.JsonSerializable(), const [override]), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 350, 1194), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 350, 1195), r.MethodMirrorImpl(r'', 0, 158, -1, 158, 158, const [], const [482, 483], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'newUser', 1, 158, -1, 158, 158, const [], const [484], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 351, 1198), r.MethodMirrorImpl(r'myGetter', 2097667, 159, -1, 171, 171, const [], const [], const prefix0.JsonSerializable(), const [const prefix0.JsonProperty(name: 'myCustomGetterName')]), r.MethodMirrorImpl(r'', 64, 159, -1, 159, 159, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 352, 1201), r.MethodMirrorImpl(r'myGetter', 2097155, 160, -1, 171, 171, const [], const [], const prefix0.JsonSerializable(), const [override]), r.MethodMirrorImpl(r'', 64, 160, -1, 160, 160, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 353, 1204), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 353, 1205), r.MethodMirrorImpl(r'type', 2097155, 161, -1, 277, 277, const [], const [], const prefix0.JsonSerializable(), const [const prefix0.JsonProperty(ignore: true)]), r.MethodMirrorImpl(r'', 64, 161, -1, 161, 161, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 354, 1208), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 354, 1209), r.MethodMirrorImpl(r'', 64, 162, -1, 162, 162, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 355, 1211), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 355, 1212), r.MethodMirrorImpl(r'type', 2097155, 163, -1, 171, 171, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 64, 163, -1, 163, 163, const [], const [], const prefix0.JsonSerializable(), const []), r.ImplicitGetterMirrorImpl(const prefix0.JsonSerializable(), 356, 1215), r.ImplicitSetterMirrorImpl(const prefix0.JsonSerializable(), 356, 1216), r.MethodMirrorImpl(r'type', 2097155, 164, -1, 171, 171, const [], const [], const prefix0.JsonSerializable(), const [override]), r.MethodMirrorImpl(r'', 64, 164, -1, 164, 164, const [], const [], const prefix0.JsonSerializable(), const []), r.MethodMirrorImpl(r'', 192, 165, -1, 165, 165, const [], const [], const prefix0.JsonSerializable(), const [])], [r.ParameterMirrorImpl(r'thickness', 134349830, 359, const prefix0.JsonSerializable(), -1, 167, 167, const [], const [], null, null), r.ParameterMirrorImpl(r'color', 134349830, 359, const prefix0.JsonSerializable(), 6, 6, 6, const [], const [], null, null), r.ParameterMirrorImpl(r'other', 134348806, 360, const prefix0.JsonSerializable(), -1, 288, 288, const [], const [], null, null), r.ParameterMirrorImpl(r'invocation', 134348806, 362, const prefix0.JsonSerializable(), -1, 289, 289, const [], const [], null, null), r.ParameterMirrorImpl(r'tire', 134349830, 366, const prefix0.JsonSerializable(), 0, 0, 0, const [], const [], null, null), r.ParameterMirrorImpl(r'model', 67240966, 373, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'color', 67240966, 373, const prefix0.JsonSerializable(), 6, 6, 6, const [], const [], null, null), r.ParameterMirrorImpl(r'_model', 67240038, 368, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_color', 67240038, 370, const prefix0.JsonSerializable(), 6, 6, 6, const [], const [], null, null), r.ParameterMirrorImpl(r'_replacement', 67240038, 372, const prefix0.JsonSerializable(), 2, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'leftWheel', 134349830, 376, const prefix0.JsonSerializable(), 1, 1, 1, const [], const [], null, null), r.ParameterMirrorImpl(r'rightWheel', 134349830, 376, const prefix0.JsonSerializable(), 1, 1, 1, const [], const [], null, null), r.ParameterMirrorImpl(r'_skills', 151126118, 378, const prefix0.JsonSerializable(), -1, 169, 170, const [171], const [], null, null), r.ParameterMirrorImpl(r'_specialDates', 151126118, 380, const prefix0.JsonSerializable(), -1, 172, 173, const [174], const [], null, null), r.ParameterMirrorImpl(r'_lastPromotionDate', 134348902, 382, const prefix0.JsonSerializable(), -1, 174, 174, const [], const [], null, null), r.ParameterMirrorImpl(r'_hireDate', 134348902, 384, const prefix0.JsonSerializable(), -1, 174, 174, const [], const [], null, null), r.ParameterMirrorImpl(r'_married', 134348902, 386, const prefix0.JsonSerializable(), -1, 175, 175, const [], const [], null, null), r.ParameterMirrorImpl(r'_active', 134348902, 388, const prefix0.JsonSerializable(), -1, 175, 175, const [], const [], null, null), r.ParameterMirrorImpl(r'_name', 134348902, 390, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, null), r.ParameterMirrorImpl(r'_salary', 134348902, 392, const prefix0.JsonSerializable(), -1, 167, 167, const [], const [], null, null), r.ParameterMirrorImpl(r'_dob', 67240038, 394, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_age', 134348902, 396, const prefix0.JsonSerializable(), -1, 167, 167, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 134348902, 398, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, null), r.ParameterMirrorImpl(r'_dyn', 67141734, 400, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'_dynNum', 67141734, 402, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'_dynBool', 67141734, 404, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'_properties', 151126118, 406, const prefix0.JsonSerializable(), -1, 177, 178, null, const [], null, null), r.ParameterMirrorImpl(r'_map', 151126118, 408, const prefix0.JsonSerializable(), -1, 179, 180, null, const [], null, null), r.ParameterMirrorImpl(r'_sym', 134348902, 410, const prefix0.JsonSerializable(), -1, 181, 181, const [], const [], null, null), r.ParameterMirrorImpl(r'_favouriteColours', 151126118, 412, const prefix0.JsonSerializable(), -1, 182, 183, const [6], const [], null, null), r.ParameterMirrorImpl(r'_eyeColor', 134348902, 414, const prefix0.JsonSerializable(), 6, 6, 6, const [], const [], null, null), r.ParameterMirrorImpl(r'_hairColor', 134348902, 416, const prefix0.JsonSerializable(), 6, 6, 6, const [], const [], null, null), r.ParameterMirrorImpl(r'_vehicles', 151126118, 418, const prefix0.JsonSerializable(), -1, 184, 185, const [2], const [], null, null), r.ParameterMirrorImpl(r'processed', 67239942, 429, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(name: 'LogistikTeileInOrdnung')], null, null), r.ParameterMirrorImpl(r'processed', 67239942, 432, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [const prefix0.JsonProperty(name: 'LogistikTeileInOrdnung')], null, null), r.ParameterMirrorImpl(r'_email', 67240038, 434, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'bar', 67240966, 438, const prefix0.JsonSerializable(), 11, 11, 11, const [], const [], null, null), r.ParameterMirrorImpl(r'message', 134349830, 438, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, null), r.ParameterMirrorImpl(r'baz', 134349830, 440, const prefix0.JsonSerializable(), 12, 12, 12, const [], const [], null, null), r.ParameterMirrorImpl(r'value', 1030, 443, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'value', 134349830, 444, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, null), r.ParameterMirrorImpl(r'value', 134349830, 446, const prefix0.JsonSerializable(), 15, 15, 15, const [], const [], null, null), r.ParameterMirrorImpl(r'pt', 134349830, 448, const prefix0.JsonSerializable(), 15, 15, 15, const [], const [], null, null), r.ParameterMirrorImpl(r'list', 151127046, 451, const prefix0.JsonSerializable(), -1, 169, 170, const [171], const [], null, null), r.ParameterMirrorImpl(r'_list', 151126118, 450, const prefix0.JsonSerializable(), -1, 169, 170, const [171], const [], null, null), r.ParameterMirrorImpl(r'firstName', 134349830, 456, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, null), r.ParameterMirrorImpl(r'lastName', 134349830, 456, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, null), r.ParameterMirrorImpl(r'_firstName', 134348902, 453, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 134348902, 455, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, null), r.ParameterMirrorImpl(r'firstName', 67245062, 461, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'lastName', 67245062, 461, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_firstName', 67240038, 458, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 67240038, 460, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'firstName', 134349830, 466, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, null), r.ParameterMirrorImpl(r'lastName', 67245062, 466, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_firstName', 134348902, 463, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 67240038, 465, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'firstName', 67253254, 471, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #firstName), r.ParameterMirrorImpl(r'lastName', 67253254, 471, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #lastName), r.ParameterMirrorImpl(r'_firstName', 67240038, 468, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 67240038, 470, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'firstName', 67253254, 478, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #firstName), r.ParameterMirrorImpl(r'middleName', 67253254, 478, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #middleName), r.ParameterMirrorImpl(r'lastName', 67253254, 478, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #lastName), r.ParameterMirrorImpl(r'_firstName', 67240038, 473, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 67240038, 475, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_middleName', 67240038, 477, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'firstName', 67253254, 485, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #firstName), r.ParameterMirrorImpl(r'middleName', 67253254, 485, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #middleName), r.ParameterMirrorImpl(r'lastName', 67253254, 485, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #lastName), r.ParameterMirrorImpl(r'_firstName', 67240038, 480, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 67240038, 482, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_middleName', 67240038, 484, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'firstName', 67253254, 492, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #firstName), r.ParameterMirrorImpl(r'middleName', 67253254, 492, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #middleName), r.ParameterMirrorImpl(r'lastName', 67253254, 492, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #lastName), r.ParameterMirrorImpl(r'_firstName', 67240038, 487, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 67240038, 489, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_middleName', 67240038, 491, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_firstName', 67240038, 494, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 67240038, 496, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_middleName', 67240038, 498, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'id', 67253254, 503, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, #id), r.ParameterMirrorImpl(r'name', 67253254, 503, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #name), r.ParameterMirrorImpl(r'car', 67253254, 503, const prefix0.JsonSerializable(), 2, 2, 2, const [], const [], null, #car), r.ParameterMirrorImpl(r'id', 134349830, 509, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [], null, null), r.ParameterMirrorImpl(r'number', 134349830, 509, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [const prefix0.JsonProperty(converter: prefix2.customConverter)], null, null), r.ParameterMirrorImpl(r'_id', 134348902, 506, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [], null, null), r.ParameterMirrorImpl(r'_number', 134348902, 508, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [], null, null), r.ParameterMirrorImpl(r'_child', 67240038, 511, const prefix0.JsonSerializable(), 30, 30, 30, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 67240038, 514, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_children', 151126118, 516, const prefix0.JsonSerializable(), -1, 188, 189, const [31], const [], null, null), r.ParameterMirrorImpl(r'_parent', 67240038, 518, const prefix0.JsonSerializable(), 29, 29, 29, const [], const [], null, null), r.ParameterMirrorImpl(r'parent', 134349830, 524, const prefix0.JsonSerializable(), 30, 30, 30, const [], const [], null, null), r.ParameterMirrorImpl(r'_firstName', 67240038, 521, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_parent', 134348902, 523, const prefix0.JsonSerializable(), 30, 30, 30, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 67240038, 526, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_children', 151126118, 528, const prefix0.JsonSerializable(), -1, 190, 191, const [33], const [], null, null), r.ParameterMirrorImpl(r'parent', 134349830, 534, const prefix0.JsonSerializable(), 32, 32, 32, const [], const [], null, null), r.ParameterMirrorImpl(r'_firstName', 67240038, 531, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_parent', 134348902, 533, const prefix0.JsonSerializable(), 32, 32, 32, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 67240038, 536, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_children', 151126118, 538, const prefix0.JsonSerializable(), -1, 192, 193, const [35], const [], null, null), r.ParameterMirrorImpl(r'_firstName', 67240038, 541, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_parent', 67240038, 543, const prefix0.JsonSerializable(), 34, 34, 34, const [], const [], null, null), r.ParameterMirrorImpl(r'id', 134349830, 547, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [], null, null), r.ParameterMirrorImpl(r'type', 134349830, 547, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, null), r.ParameterMirrorImpl(r'list', 84030470, 550, const prefix0.JsonSerializable(), -1, 194, 195, const [50], const [], null, #list), r.ParameterMirrorImpl(r'_list', 84017254, 549, const prefix0.JsonSerializable(), -1, 194, 195, const [50], const [], null, null), r.ParameterMirrorImpl(r'enumA', 134349830, 555, const prefix0.JsonSerializable(), 50, 50, 50, const [], const [], null, null), r.ParameterMirrorImpl(r'enumB', 134349830, 555, const prefix0.JsonSerializable(), 51, 51, 51, const [], const [], null, null), r.ParameterMirrorImpl(r'_enumA', 134348902, 552, const prefix0.JsonSerializable(), 50, 50, 50, const [], const [], null, null), r.ParameterMirrorImpl(r'_enumB', 134348902, 554, const prefix0.JsonSerializable(), 51, 51, 51, const [], const [], null, null), r.ParameterMirrorImpl(r'_enumA', 67240038, 557, const prefix0.JsonSerializable(), 50, 50, 50, const [], const [], null, null), r.ParameterMirrorImpl(r'_enumB', 67240038, 559, const prefix0.JsonSerializable(), 51, 51, 51, const [], const [], null, null), r.ParameterMirrorImpl(r'data', 134349830, 563, const prefix0.JsonSerializable(), -1, 196, 196, const [], const [], null, null), r.ParameterMirrorImpl(r'_data', 134348902, 562, const prefix0.JsonSerializable(), -1, 196, 196, const [], const [], null, null), r.ParameterMirrorImpl(r'bigInt', 134349830, 566, const prefix0.JsonSerializable(), -1, 197, 197, const [], const [], null, null), r.ParameterMirrorImpl(r'_bigInt', 134348902, 565, const prefix0.JsonSerializable(), -1, 197, 197, const [], const [], null, null), r.ParameterMirrorImpl(r'_data', 67240038, 568, const prefix0.JsonSerializable(), -1, 198, 198, const [], const [], null, null), r.ParameterMirrorImpl(r'_data', 67240038, 571, const prefix0.JsonSerializable(), -1, 199, 199, const [], const [], null, null), r.ParameterMirrorImpl(r'color', 134349830, 575, const prefix0.JsonSerializable(), 52, 52, 52, const [], const [], null, null), r.ParameterMirrorImpl(r'_color', 134348902, 574, const prefix0.JsonSerializable(), 52, 52, 52, const [], const [], null, null), r.ParameterMirrorImpl(r'_list', 151126118, 578, const prefix0.JsonSerializable(), -1, 200, 201, const [45], const [], null, null), r.ParameterMirrorImpl(r'_set', 151126118, 580, const prefix0.JsonSerializable(), -1, 202, 203, const [45], const [], null, null), r.ParameterMirrorImpl(r'_dataHash', 84017254, 583, const prefix0.JsonSerializable(), -1, 204, 205, null, const [], null, null), r.ParameterMirrorImpl(r'_createdAt', 67240038, 586, const prefix0.JsonSerializable(), -1, 198, 198, const [], const [], null, null), r.ParameterMirrorImpl(r'_responses', 84017254, 589, const prefix0.JsonSerializable(), -1, 206, 207, const [170], const [], null, null), r.ParameterMirrorImpl(r'_top', 67240038, 596, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_left', 67240038, 598, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_right', 67240038, 600, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_bottom', 67240038, 602, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'cropArea', 67253254, 608, const prefix0.JsonSerializable(), 54, 54, 54, const [], const [], null, #cropArea), r.ParameterMirrorImpl(r'id', 67253254, 608, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, #id), r.ParameterMirrorImpl(r'name', 67253254, 608, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #name), r.ParameterMirrorImpl(r'car', 67253254, 608, const prefix0.JsonSerializable(), 2, 2, 2, const [], const [], null, #car), r.ParameterMirrorImpl(r'_cropArea', 67240038, 610, const prefix0.JsonSerializable(), 54, 54, 54, const [], const [], null, null), r.ParameterMirrorImpl(r'_id', 67240038, 612, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, null), r.ParameterMirrorImpl(r'_cropArea', 67240038, 615, const prefix0.JsonSerializable(), 54, 54, 54, const [], const [], null, null), r.ParameterMirrorImpl(r'_id', 67240038, 617, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, null), r.ParameterMirrorImpl(r'_cropArea', 67240038, 620, const prefix0.JsonSerializable(), 54, 54, 54, const [], const [], null, null), r.ParameterMirrorImpl(r'_id', 67240038, 622, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, null), r.ParameterMirrorImpl(r'value', 134349830, 626, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [], null, null), r.ParameterMirrorImpl(r'_value', 134348902, 625, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [], null, null), r.ParameterMirrorImpl(r'_id', 67240038, 628, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_radio', 134348902, 630, const prefix0.JsonSerializable(), 69, 69, 69, const [], const [], null, null), r.ParameterMirrorImpl(r'party', 67253254, 634, const prefix0.JsonSerializable(), -1, 208, 208, const [], const [], null, #party), r.ParameterMirrorImpl(r'_party', 67240038, 633, const prefix0.JsonSerializable(), -1, 208, 208, const [], const [], null, null), r.ParameterMirrorImpl(r'parties', 84030470, 637, const prefix0.JsonSerializable(), -1, 209, 210, const [211], const [], null, #parties), r.ParameterMirrorImpl(r'_parties', 84017254, 636, const prefix0.JsonSerializable(), -1, 209, 210, const [211], const [], null, null), r.ParameterMirrorImpl(r'_party', 67240038, 639, const prefix0.JsonSerializable(), -1, 208, 208, const [], const [], null, null), r.ParameterMirrorImpl(r'_color', 67240038, 641, const prefix0.JsonSerializable(), 6, 6, 6, const [], const [], null, null), r.ParameterMirrorImpl(r'_parties', 151126118, 643, const prefix0.JsonSerializable(), -1, 212, 213, const [211], const [], null, null), r.ParameterMirrorImpl(r'_colors', 84017254, 645, const prefix0.JsonSerializable(), -1, 214, 215, const [6], const [], null, null), r.ParameterMirrorImpl(r'_colorsSet', 84017254, 647, const prefix0.JsonSerializable(), -1, 216, 217, const [6], const [], null, null), r.ParameterMirrorImpl(r'_colorPriorities', 151126118, 649, const prefix0.JsonSerializable(), -1, 218, 219, const [6, 187], const [], null, null), r.ParameterMirrorImpl(r'_partyPriorities', 151126118, 651, const prefix0.JsonSerializable(), -1, 220, 221, const [211, 187], const [], null, null), r.ParameterMirrorImpl(r'colors', 84030470, 657, const prefix0.JsonSerializable(), -1, 214, 215, const [6], const [], null, #colors), r.ParameterMirrorImpl(r'colorsSet', 84030470, 657, const prefix0.JsonSerializable(), -1, 216, 217, const [6], const [], null, #colorsSet), r.ParameterMirrorImpl(r'_colors', 84017254, 654, const prefix0.JsonSerializable(), -1, 214, 215, const [6], const [], null, null), r.ParameterMirrorImpl(r'_colorsSet', 84017254, 656, const prefix0.JsonSerializable(), -1, 216, 217, const [6], const [], null, null), r.ParameterMirrorImpl(r'primary', 67253254, 659, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #primary), r.ParameterMirrorImpl(r'_category', 67240038, 661, const prefix0.JsonSerializable(), 70, 70, 70, const [], const [], null, null), r.ParameterMirrorImpl(r'values', 151127046, 665, const prefix0.JsonSerializable(), -1, 222, 223, const [70, 187], const [], null, null), r.ParameterMirrorImpl(r'_values', 151126118, 664, const prefix0.JsonSerializable(), -1, 222, 223, const [70, 187], const [], null, null), r.ParameterMirrorImpl(r'values', 151127046, 667, const prefix0.JsonSerializable(), -1, 224, 225, const [70, 65], const [], null, null), r.ParameterMirrorImpl(r'model', 67240966, 670, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'color', 67240966, 670, const prefix0.JsonSerializable(), 6, 6, 6, const [], const [], null, null), r.ParameterMirrorImpl(r'devices', 151127046, 674, const prefix0.JsonSerializable(), -1, 226, 227, const [72], const [], null, null), r.ParameterMirrorImpl(r'_devices', 151126118, 673, const prefix0.JsonSerializable(), -1, 226, 227, const [72], const [], null, null), r.ParameterMirrorImpl(r'_sex', 134348902, 676, const prefix0.JsonSerializable(), -1, 228, 228, const [], const [], null, null), r.ParameterMirrorImpl(r'age', 134349830, 680, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [], null, null), r.ParameterMirrorImpl(r'name', 134349830, 680, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, null), r.ParameterMirrorImpl(r'value', 67253254, 685, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #value), r.ParameterMirrorImpl(r'value2', 67253254, 685, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #value2), r.ParameterMirrorImpl(r'_value', 67240038, 682, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_value2', 67240038, 684, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'value', 67253254, 690, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #value), r.ParameterMirrorImpl(r'value2', 67253254, 690, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #value2), r.ParameterMirrorImpl(r'_value', 67240038, 687, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_value2', 67240038, 689, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'name', 134358022, 693, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, #name), r.ParameterMirrorImpl(r'page', 134358022, 693, const prefix0.JsonSerializable(), 79, 79, 79, const [], const [], null, #page), r.ParameterMirrorImpl(r'pageNumber', 134358022, 696, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [], null, #pageNumber), r.ParameterMirrorImpl(r'pageSize', 134358022, 696, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [], null, #pageSize), r.ParameterMirrorImpl(r'_firstName', 67240038, 698, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_parent', 67240038, 700, const prefix0.JsonSerializable(), -1, 229, 229, const [], const [], null, null), r.ParameterMirrorImpl(r'_nickname', 67240038, 702, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'parent', 67240966, 710, const prefix0.JsonSerializable(), -1, 230, 230, const [], const [], null, null), r.ParameterMirrorImpl(r'_firstName', 67240038, 705, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_parent', 67240038, 707, const prefix0.JsonSerializable(), -1, 230, 230, const [], const [], null, null), r.ParameterMirrorImpl(r'_nickname', 67240038, 709, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'parent', 67240966, 717, const prefix0.JsonSerializable(), -1, 231, 231, const [], const [], null, null), r.ParameterMirrorImpl(r'_firstName', 67240038, 712, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_parent', 67240038, 714, const prefix0.JsonSerializable(), -1, 231, 231, const [], const [], null, null), r.ParameterMirrorImpl(r'_nickname', 67240038, 716, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'ints', 151127046, 722, const prefix0.JsonSerializable(), -1, 232, 233, const [187], const [], null, null), r.ParameterMirrorImpl(r'b', 134349830, 722, const prefix0.JsonSerializable(), -1, 234, 234, const [], const [], null, null), r.ParameterMirrorImpl(r'mainTitle', 67253254, 731, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #mainTitle), r.ParameterMirrorImpl(r'description', 67253254, 731, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #description), r.ParameterMirrorImpl(r'hasMainProperty', 67253254, 731, const prefix0.JsonSerializable(), -1, 235, 235, const [], const [], null, #hasMainProperty), r.ParameterMirrorImpl(r'primaryColor', 67253254, 731, const prefix0.JsonSerializable(), 6, 6, 6, const [], const [], null, #primaryColor), r.ParameterMirrorImpl(r'_mainTitle', 67240038, 724, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_description', 67240038, 726, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_hasMainProperty', 67240038, 728, const prefix0.JsonSerializable(), -1, 235, 235, const [], const [], null, null), r.ParameterMirrorImpl(r'_primaryColor', 67240038, 730, const prefix0.JsonSerializable(), 6, 6, 6, const [], const [], null, null), r.ParameterMirrorImpl(r'mainTitle', 67253254, 740, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #mainTitle), r.ParameterMirrorImpl(r'description', 67253254, 740, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #description), r.ParameterMirrorImpl(r'hasMainProperty', 67253254, 740, const prefix0.JsonSerializable(), -1, 235, 235, const [], const [], null, #hasMainProperty), r.ParameterMirrorImpl(r'primaryColor', 134364166, 740, const prefix0.JsonSerializable(), 6, 6, 6, const [], const [], prefix1.Color.grayMetallic, #primaryColor), r.ParameterMirrorImpl(r'_mainTitle', 67240038, 733, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_description', 67240038, 735, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_hasMainProperty', 67240038, 737, const prefix0.JsonSerializable(), -1, 235, 235, const [], const [], null, null), r.ParameterMirrorImpl(r'_primaryColor', 134348902, 739, const prefix0.JsonSerializable(), 6, 6, 6, const [], const [], null, null), r.ParameterMirrorImpl(r'name', 67253254, 749, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #name), r.ParameterMirrorImpl(r'id', 67253254, 749, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, #id), r.ParameterMirrorImpl(r'_categoryId', 67240038, 742, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_productId', 67240038, 744, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_id', 67240038, 746, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_name', 67240038, 748, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'name', 67253254, 758, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #name), r.ParameterMirrorImpl(r'id', 67253254, 758, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, #id), r.ParameterMirrorImpl(r'features', 84030470, 758, const prefix0.JsonSerializable(), -1, 236, 237, const [88], const [], null, #features), r.ParameterMirrorImpl(r'_categoryId', 67240038, 751, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_id', 67240038, 753, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_name', 67240038, 755, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_features', 84017254, 757, const prefix0.JsonSerializable(), -1, 236, 237, const [88], const [], null, null), r.ParameterMirrorImpl(r'id', 67253254, 765, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, #id), r.ParameterMirrorImpl(r'name', 67253254, 765, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #name), r.ParameterMirrorImpl(r'products', 84030470, 765, const prefix0.JsonSerializable(), -1, 238, 239, const [89], const [], null, #products), r.ParameterMirrorImpl(r'_id', 67240038, 760, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_name', 67240038, 762, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_products', 84017254, 764, const prefix0.JsonSerializable(), -1, 238, 239, const [89], const [], null, null), r.ParameterMirrorImpl(r'items', 84030470, 768, const prefix0.JsonSerializable(), -1, 240, 241, const [171], const [], null, #items), r.ParameterMirrorImpl(r'_items', 84017254, 767, const prefix0.JsonSerializable(), -1, 240, 241, const [171], const [], null, null), r.ParameterMirrorImpl(r'items', 84030470, 771, const prefix0.JsonSerializable(), -1, 240, 241, const [171], const [], null, #items), r.ParameterMirrorImpl(r'_items', 84017254, 770, const prefix0.JsonSerializable(), -1, 240, 241, const [171], const [], null, null), r.ParameterMirrorImpl(r'count', 67253254, 774, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, #count), r.ParameterMirrorImpl(r'_count', 67240038, 773, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, null), r.ParameterMirrorImpl(r'count', 67253254, 783, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, #count), r.ParameterMirrorImpl(r'count2', 67253254, 783, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, #count2), r.ParameterMirrorImpl(r'count3', 67253254, 783, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, #count3), r.ParameterMirrorImpl(r'cd', 67253254, 783, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, #cd), r.ParameterMirrorImpl(r'_count', 67240038, 776, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, null), r.ParameterMirrorImpl(r'_count2', 67240038, 778, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, null), r.ParameterMirrorImpl(r'_cd', 67240038, 780, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, null), r.ParameterMirrorImpl(r'_count3', 67240038, 782, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, null), r.ParameterMirrorImpl(r'name', 67253254, 788, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #name), r.ParameterMirrorImpl(r'title', 67253254, 788, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #title), r.ParameterMirrorImpl(r'_name', 67240038, 785, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_title', 67240038, 787, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_id', 134348902, 790, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [], null, null), r.ParameterMirrorImpl(r'location', 67253254, 793, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #location), r.ParameterMirrorImpl(r'name', 134348806, 794, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, null), r.ParameterMirrorImpl(r'value', 67141638, 794, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'_name', 67240038, 797, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_extraPropsMap', 151126118, 799, const prefix0.JsonSerializable(), -1, 179, 180, null, const [], null, null), r.ParameterMirrorImpl(r'value', 67141638, 801, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'value', 67141638, 803, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'_limit', 67240038, 807, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_offset', 67240038, 809, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_total', 67240038, 811, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_pagination', 67240038, 814, const prefix0.JsonSerializable(), 100, 100, 100, const [], const [], null, null), r.ParameterMirrorImpl(r'_cars', 84017254, 816, const prefix0.JsonSerializable(), -1, 242, 243, const [2], const [], null, null), r.ParameterMirrorImpl(r'_pagination', 67240038, 819, const prefix0.JsonSerializable(), 100, 100, 100, const [], const [], null, null), r.ParameterMirrorImpl(r'_cars', 84017254, 821, const prefix0.JsonSerializable(), -1, 242, 243, const [2], const [], null, null), r.ParameterMirrorImpl(r'_pagination', 67240038, 824, const prefix0.JsonSerializable(), 100, 100, 100, const [], const [], null, null), r.ParameterMirrorImpl(r'_cars', 84017254, 826, const prefix0.JsonSerializable(), -1, 242, 243, const [2], const [], null, null), r.ParameterMirrorImpl(r'_myList', 84017254, 829, const prefix0.JsonSerializable(), -1, 244, 245, const [187], const [], null, null), r.ParameterMirrorImpl(r'_myMap', 84017254, 831, const prefix0.JsonSerializable(), -1, 246, 247, const [187, 187], const [], null, null), r.ParameterMirrorImpl(r'_mySet', 84017254, 833, const prefix0.JsonSerializable(), -1, 248, 249, const [187], const [], null, null), r.ParameterMirrorImpl(r'accountType', 67253254, 836, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #accountType), r.ParameterMirrorImpl(r'metadata', 134358022, 841, const prefix0.JsonSerializable(), 107, 107, 107, const [], const [], null, #metadata), r.ParameterMirrorImpl(r'defaultCountryIsoCode', 134358022, 841, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, #defaultCountryIsoCode), r.ParameterMirrorImpl(r'autoImportContacts', 67249158, 841, const prefix0.JsonSerializable(), -1, 235, 235, const [], const [], null, #autoImportContacts), r.ParameterMirrorImpl(r'id', 134358022, 846, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, #id), r.ParameterMirrorImpl(r'createdBy', 134358022, 846, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, #createdBy), r.ParameterMirrorImpl(r'deleted', 134364166, 846, const prefix0.JsonSerializable(), -1, 175, 175, const [], const [], false, #deleted), r.ParameterMirrorImpl(r'title', 134349830, 849, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, null), r.ParameterMirrorImpl(r'_title', 134348902, 848, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, null), r.ParameterMirrorImpl(r'id', 134348806, 873, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [const prefix0.JsonProperty(name: 'id', scheme: prefix15.Scheme.A)], null, null), r.ParameterMirrorImpl(r'streetList', 84018182, 873, const prefix0.JsonSerializable(), -1, 240, 241, const [171], const [], null, null), r.ParameterMirrorImpl(r'city', 67240966, 873, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_firstName', 67240038, 851, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_lastName', 67240038, 853, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_email', 67240038, 855, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_phoneNumber', 67240038, 857, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_country', 67240038, 859, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_city', 67240038, 861, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_zipCode', 67240038, 863, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_street', 67240038, 865, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_streetList', 84017254, 867, const prefix0.JsonSerializable(), -1, 240, 241, const [171], const [], null, null), r.ParameterMirrorImpl(r'_id', 67240038, 869, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_district', 67240038, 871, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'other', 134348806, 874, const prefix0.JsonSerializable(), -1, 288, 288, const [], const [], null, null), r.ParameterMirrorImpl(r'a', 134349830, 877, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [], null, null), r.ParameterMirrorImpl(r'a', 134349830, 879, const prefix0.JsonSerializable(), 110, 110, 110, const [], const [], null, null), r.ParameterMirrorImpl(r'_content', 67240038, 881, const prefix0.JsonSerializable(), 113, 113, 113, const [], const [], null, null), r.ParameterMirrorImpl(r'_content', 84017254, 884, const prefix0.JsonSerializable(), -1, 250, 251, const [112], const [], null, null), r.ParameterMirrorImpl(r'_page', 67240038, 887, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_limit', 67240038, 889, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_fieldSearchable', 67240038, 891, const prefix0.JsonSerializable(), -1, 235, 235, const [], const [], null, null), r.ParameterMirrorImpl(r'_types', 84017254, 893, const prefix0.JsonSerializable(), -1, 240, 241, const [171], const [], null, null), r.ParameterMirrorImpl(r'id', 67239942, 896, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'value1', 1030, 900, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'value2', 1030, 900, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'other', 151126022, 901, const prefix0.JsonSerializable(), 116, 290, 116, null, const [], null, null), r.ParameterMirrorImpl(r'tuple1', 151127046, 904, const prefix0.JsonSerializable(), 116, 252, 116, const [187, 174], const [], null, null), r.ParameterMirrorImpl(r'tuple2', 151127046, 904, const prefix0.JsonSerializable(), 116, 253, 116, const [254, 197], const [], null, null), r.ParameterMirrorImpl(r'icon', 67253254, 908, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #icon), r.ParameterMirrorImpl(r'title', 67253254, 908, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #title), r.ParameterMirrorImpl(r'on', 67253254, 908, const prefix0.JsonSerializable(), -1, 235, 235, const [], const [], null, #on), r.ParameterMirrorImpl(r'tabs', 84030470, 914, const prefix0.JsonSerializable(), -1, 255, 256, const [171, 118], const [], null, #tabs), r.ParameterMirrorImpl(r'activeColor', 67253254, 914, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #activeColor), r.ParameterMirrorImpl(r'inactiveColor', 67253254, 914, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #inactiveColor), r.ParameterMirrorImpl(r'backgroundColor', 67253254, 914, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #backgroundColor), r.ParameterMirrorImpl(r'fontSize', 67253254, 914, const prefix0.JsonSerializable(), -1, 257, 257, const [], const [], null, #fontSize), r.ParameterMirrorImpl(r'list', 84018182, 918, const prefix0.JsonSerializable(), -1, 258, 259, const [120], const [], null, null), r.ParameterMirrorImpl(r'_list', 84017254, 917, const prefix0.JsonSerializable(), -1, 258, 259, const [120], const [], null, null), r.ParameterMirrorImpl(r'_mailingList', 151126118, 921, const prefix0.JsonSerializable(), -1, 169, 170, const [171], const [], null, null), r.ParameterMirrorImpl(r'id', 134349830, 925, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [], null, null), r.ParameterMirrorImpl(r'name', 134349830, 925, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, null), r.ParameterMirrorImpl(r'id', 67253254, 929, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, #id), r.ParameterMirrorImpl(r'sequence', 67253254, 929, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, #sequence), r.ParameterMirrorImpl(r'description', 67253254, 929, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #description), r.ParameterMirrorImpl(r'id', 67253254, 948, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, #id), r.ParameterMirrorImpl(r'number', 67253254, 948, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, #number), r.ParameterMirrorImpl(r'customerId', 67253254, 948, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, #customerId), r.ParameterMirrorImpl(r'expertId', 67253254, 948, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, #expertId), r.ParameterMirrorImpl(r'start', 67253254, 948, const prefix0.JsonSerializable(), -1, 198, 198, const [], const [], null, #start), r.ParameterMirrorImpl(r'end', 67253254, 948, const prefix0.JsonSerializable(), -1, 198, 198, const [], const [], null, #end), r.ParameterMirrorImpl(r'resume', 67253254, 948, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #resume), r.ParameterMirrorImpl(r'customer', 67253254, 948, const prefix0.JsonSerializable(), 124, 124, 124, const [], const [], null, #customer), r.ParameterMirrorImpl(r'items', 84030470, 948, const prefix0.JsonSerializable(), -1, 260, 261, const [125], const [], null, #items), r.ParameterMirrorImpl(r'_id', 67240038, 931, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, null), r.ParameterMirrorImpl(r'_number', 67240038, 933, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, null), r.ParameterMirrorImpl(r'_customerId', 67240038, 935, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, null), r.ParameterMirrorImpl(r'_customer', 67240038, 937, const prefix0.JsonSerializable(), 124, 124, 124, const [], const [], null, null), r.ParameterMirrorImpl(r'_expertId', 67240038, 939, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, null), r.ParameterMirrorImpl(r'_start', 67240038, 941, const prefix0.JsonSerializable(), -1, 198, 198, const [], const [], null, null), r.ParameterMirrorImpl(r'_items', 84017254, 943, const prefix0.JsonSerializable(), -1, 260, 261, const [125], const [], null, null), r.ParameterMirrorImpl(r'_end', 67240038, 945, const prefix0.JsonSerializable(), -1, 198, 198, const [], const [], null, null), r.ParameterMirrorImpl(r'_resume', 67240038, 947, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_lists', 84017254, 951, const prefix0.JsonSerializable(), -1, 262, 263, const [264], const [], null, null), r.ParameterMirrorImpl(r'lists', 151127046, 955, const prefix0.JsonSerializable(), -1, 265, 266, const [264], const [], null, null), r.ParameterMirrorImpl(r'_lists', 151126118, 954, const prefix0.JsonSerializable(), -1, 265, 266, const [264], const [], null, null), r.ParameterMirrorImpl(r'rawField', 67253254, 962, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #rawField), r.ParameterMirrorImpl(r'normalField', 67253254, 962, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #normalField), r.ParameterMirrorImpl(r'noAnnotationField', 67253254, 962, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #noAnnotationField), r.ParameterMirrorImpl(r'_rawField', 67240038, 957, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_normalField', 67240038, 959, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_noAnnotationField', 67240038, 961, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_deviceIdent', 67240038, 964, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_gatewayConnections', 151126118, 966, const prefix0.JsonSerializable(), -1, 267, 268, const [132], const [], null, null), r.ParameterMirrorImpl(r'_gwIdent', 134348902, 969, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, null), r.ParameterMirrorImpl(r'_signalStrength', 67240038, 971, const prefix0.JsonSerializable(), 133, 133, 133, const [], const [], null, null), r.ParameterMirrorImpl(r'_strength', 134348902, 974, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, null), r.ParameterMirrorImpl(r'_rssi', 67240038, 976, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, null), r.ParameterMirrorImpl(r'_spreadFactor', 67240038, 978, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, null), r.ParameterMirrorImpl(r'_content', 84017254, 981, const prefix0.JsonSerializable(), -1, 269, 270, null, const [], null, null), r.ParameterMirrorImpl(r'_last', 67240038, 983, const prefix0.JsonSerializable(), -1, 235, 235, const [], const [], null, null), r.ParameterMirrorImpl(r'_totalPages', 67240038, 985, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, null), r.ParameterMirrorImpl(r'_totalElements', 67240038, 987, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, null), r.ParameterMirrorImpl(r'_first', 67240038, 989, const prefix0.JsonSerializable(), -1, 235, 235, const [], const [], null, null), r.ParameterMirrorImpl(r'_size', 67240038, 991, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, null), r.ParameterMirrorImpl(r'_number', 67240038, 993, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, null), r.ParameterMirrorImpl(r'_numberOfElements', 67240038, 995, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, null), r.ParameterMirrorImpl(r'_empty', 67240038, 997, const prefix0.JsonSerializable(), -1, 235, 235, const [], const [], null, null), r.ParameterMirrorImpl(r'_title', 67240038, 1000, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_price', 67240038, 1002, const prefix0.JsonSerializable(), -1, 257, 257, const [], const [], null, null), r.ParameterMirrorImpl(r'_quantity', 67240038, 1004, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, null), r.ParameterMirrorImpl(r'_description', 67240038, 1006, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_images', 84017254, 1008, const prefix0.JsonSerializable(), -1, 240, 241, const [171], const [], null, null), r.ParameterMirrorImpl(r'_sourceImages', 84017254, 1010, const prefix0.JsonSerializable(), -1, 240, 241, const [171], const [], null, null), r.ParameterMirrorImpl(r'_sourceId', 67240038, 1012, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_sourceUrl', 67240038, 1014, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_content', 84017254, 1017, const prefix0.JsonSerializable(), -1, 271, 272, const [135], const [], null, null), r.ParameterMirrorImpl(r'_ccsdsOmmVers', 67240038, 1020, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_comment', 67240038, 1022, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_originator', 67240038, 1024, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_objectName', 67240038, 1026, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_objectId', 67240038, 1028, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_objectType', 67240038, 1030, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_centerName', 67240038, 1032, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_refFrame', 67240038, 1034, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_timeSystem', 67240038, 1036, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_meanElementTheory', 67240038, 1038, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_classificationType', 67240038, 1040, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_rcsSize', 67240038, 1042, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_countryCode', 67240038, 1044, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_site', 67240038, 1046, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_tleLine0', 67240038, 1048, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_tleLine1', 67240038, 1050, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_tleLine2', 67240038, 1052, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_meanMotion', 67240038, 1054, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_eccentricity', 67240038, 1056, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_raOfAscNode', 67240038, 1058, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_argOfPericenter', 67240038, 1060, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_meanAnomaly', 67240038, 1062, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_ephemerisType', 67240038, 1064, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_noradCatId', 67240038, 1066, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_elementSetNo', 67240038, 1068, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_revAtEpoch', 67240038, 1070, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_bstar', 67240038, 1072, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_meanMotionDot', 67240038, 1074, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_meanMotionDdot', 67240038, 1076, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_semimajorAxis', 67240038, 1078, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_period', 67240038, 1080, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_apoapsis', 67240038, 1082, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_periapsis', 67240038, 1084, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_decayed', 67240038, 1086, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_file', 67240038, 1088, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_gpId', 67240038, 1090, const prefix0.JsonSerializable(), -1, 176, 176, const [], const [], null, null), r.ParameterMirrorImpl(r'_decayDate', 67240038, 1092, const prefix0.JsonSerializable(), -1, 198, 198, const [], const [], null, null), r.ParameterMirrorImpl(r'_creationDate', 67240038, 1094, const prefix0.JsonSerializable(), -1, 198, 198, const [], const [], null, null), r.ParameterMirrorImpl(r'_epoch', 67240038, 1096, const prefix0.JsonSerializable(), -1, 198, 198, const [], const [], null, null), r.ParameterMirrorImpl(r'_launchDate', 67240038, 1098, const prefix0.JsonSerializable(), -1, 198, 198, const [], const [], null, null), r.ParameterMirrorImpl(r'_spaceTrack', 67240038, 1101, const prefix0.JsonSerializable(), 137, 137, 137, const [], const [], null, null), r.ParameterMirrorImpl(r'_version', 67240038, 1103, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_id', 67240038, 1105, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_launch', 67240038, 1107, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'json', 67141638, 1110, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'foo', 67122182, 1114, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, #foo), r.ParameterMirrorImpl(r'_foo', 67108966, 1113, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'other', 151126022, 1116, const prefix0.JsonSerializable(), 140, 291, 140, null, const [], null, null), r.ParameterMirrorImpl(r'name', 134348806, 1118, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, null), r.ParameterMirrorImpl(r'value', 67141638, 1118, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'entityModelJson', 84017158, 1119, const prefix0.JsonSerializable(), -1, 204, 205, null, const [], null, null), r.ParameterMirrorImpl(r'entityJson', 151126022, 1120, const prefix0.JsonSerializable(), -1, 179, 180, null, const [], null, null), r.ParameterMirrorImpl(r'modelJson', 84017158, 1121, const prefix0.JsonSerializable(), -1, 204, 205, null, const [], null, null), r.ParameterMirrorImpl(r'parentUuid', 67253254, 1126, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #parentUuid), r.ParameterMirrorImpl(r'uuid', 67253254, 1126, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #uuid), r.ParameterMirrorImpl(r'entity', 67122182, 1126, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, #entity), r.ParameterMirrorImpl(r'other', 151126022, 1127, const prefix0.JsonSerializable(), 142, 292, 142, null, const [], null, null), r.ParameterMirrorImpl(r'other', 6, 1129, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'jsonData', 151126022, 1130, const prefix0.JsonSerializable(), -1, 179, 180, null, const [], null, null), r.ParameterMirrorImpl(r'parentUuid', 67253254, 1134, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #parentUuid), r.ParameterMirrorImpl(r'uuid', 67253254, 1134, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #uuid), r.ParameterMirrorImpl(r'other', 134348806, 1136, const prefix0.JsonSerializable(), 2, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'parentUuid', 67252230, 1139, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #parentUuid), r.ParameterMirrorImpl(r'uuid', 67252230, 1139, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #uuid), r.ParameterMirrorImpl(r'model', 67253254, 1139, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #model), r.ParameterMirrorImpl(r'color', 67253254, 1139, const prefix0.JsonSerializable(), 6, 6, 6, const [], const [], null, #color), r.ParameterMirrorImpl(r'json', 67141638, 1140, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'success', 67253254, 1146, const prefix0.JsonSerializable(), -1, 235, 235, const [], const [], null, #success), r.ParameterMirrorImpl(r'result', 67122182, 1146, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, #result), r.ParameterMirrorImpl(r'_success', 67240038, 1143, const prefix0.JsonSerializable(), -1, 235, 235, const [], const [], null, null), r.ParameterMirrorImpl(r'_result', 67108966, 1145, const prefix0.JsonSerializable(), -1, -1, -1, const [], const [], null, null), r.ParameterMirrorImpl(r'id', 67253254, 1151, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, #id), r.ParameterMirrorImpl(r'name', 67253254, 1151, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #name), r.ParameterMirrorImpl(r'_id', 67240038, 1148, const prefix0.JsonSerializable(), -1, 186, 186, const [], const [], null, null), r.ParameterMirrorImpl(r'_name', 67240038, 1150, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'success', 67252230, 1152, const prefix0.JsonSerializable(), -1, 235, 235, const [], const [], null, #success), r.ParameterMirrorImpl(r'result', 67252230, 1152, const prefix0.JsonSerializable(), 146, 146, 146, const [], const [], null, #result), r.ParameterMirrorImpl(r'other', 151126022, 1153, const prefix0.JsonSerializable(), 145, 293, 145, null, const [], null, null), r.ParameterMirrorImpl(r'id', 134349830, 1157, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [], null, null), r.ParameterMirrorImpl(r'name', 134349830, 1157, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, null), r.ParameterMirrorImpl(r'car', 134349830, 1157, const prefix0.JsonSerializable(), 2, 2, 2, const [], const [], null, null), r.ParameterMirrorImpl(r'stars', 134349830, 1163, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [], null, null), r.ParameterMirrorImpl(r'_stars', 134348902, 1161, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [], null, null), r.ParameterMirrorImpl(r'userCount', 134349830, 1167, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [], null, null), r.ParameterMirrorImpl(r'_userCount', 134348902, 1165, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [], null, null), r.ParameterMirrorImpl(r'fullName', 134349830, 1172, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, null), r.ParameterMirrorImpl(r'businesses', 151127046, 1172, const prefix0.JsonSerializable(), -1, 273, 274, const [149], const [], null, null), r.ParameterMirrorImpl(r'_fullName', 134348902, 1169, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, null), r.ParameterMirrorImpl(r'_businesses', 151126118, 1171, const prefix0.JsonSerializable(), -1, 273, 274, const [149], const [], null, null), r.ParameterMirrorImpl(r'_type', 67240038, 1174, const prefix0.JsonSerializable(), 165, 165, 165, const [], const [], null, null), r.ParameterMirrorImpl(r'stars', 134349830, 1178, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [], null, null), r.ParameterMirrorImpl(r'_stars', 134348902, 1177, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [], null, null), r.ParameterMirrorImpl(r'userCount', 134349830, 1181, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [], null, null), r.ParameterMirrorImpl(r'_userCount', 134348902, 1180, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [], null, null), r.ParameterMirrorImpl(r'fullName', 134349830, 1186, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, null), r.ParameterMirrorImpl(r'businesses', 151127046, 1186, const prefix0.JsonSerializable(), -1, 275, 276, const [153], const [], null, null), r.ParameterMirrorImpl(r'_fullName', 134348902, 1183, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, null), r.ParameterMirrorImpl(r'_businesses', 151126118, 1185, const prefix0.JsonSerializable(), -1, 275, 276, const [153], const [], null, null), r.ParameterMirrorImpl(r'id', 67252230, 1187, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #id), r.ParameterMirrorImpl(r'email', 67252230, 1187, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #email), r.ParameterMirrorImpl(r'id', 134348806, 1190, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, null), r.ParameterMirrorImpl(r'_email', 67240038, 1189, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_id', 67240038, 1192, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'email', 67252230, 1193, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #email), r.ParameterMirrorImpl(r'id', 67252230, 1193, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #id), r.ParameterMirrorImpl(r'id', 67252230, 1196, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #id), r.ParameterMirrorImpl(r'email', 67253254, 1196, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, #email), r.ParameterMirrorImpl(r'id', 134348806, 1197, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, null), r.ParameterMirrorImpl(r'_email', 67240038, 1195, const prefix0.JsonSerializable(), -1, 168, 168, const [], const [], null, null), r.ParameterMirrorImpl(r'_a', 134348902, 1205, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [], null, null), r.ParameterMirrorImpl(r'_b', 134348902, 1209, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, null), r.ParameterMirrorImpl(r'_a', 134348902, 1212, const prefix0.JsonSerializable(), -1, 187, 187, const [], const [], null, null), r.ParameterMirrorImpl(r'_b', 134348902, 1216, const prefix0.JsonSerializable(), -1, 171, 171, const [], const [], null, null)], [prefix1.Tire, prefix1.Wheel, prefix1.Car, prefix1.ComposableCar, prefix1.Person, prefix1.GettersOnly, prefix1.Color, prefix2.BusinessObject, prefix2.LogisticsItem, prefix2.User, prefix2.Fo, prefix2.Bar, prefix2.Baz, prefix2.Base, prefix2.Derived, prefix2.Pt, prefix2.PtDerived, prefix2.PtDerived2, prefix2.StringListClass, prefix2.PositionalParametersClass, prefix2.OptionalParametersClass, prefix2.PartiallyOptionalParametersClass, prefix2.NamedParametersClass, prefix2.IgnoreNullMembersClass, prefix2.IgnoreNullMembersFromOptionsClass, prefix2.IgnoredFieldClass, prefix2.IgnoredFieldClassWoConstructor, prefix2.ImmutableDefault2, prefix2.Record, prefix2.GrandParent, prefix2.Parent, prefix2.Child, prefix2.Parent2, prefix2.Child2, prefix2.Parent3, prefix2.Child3, prefix3.UserX, prefix4.ListDelimiter, prefix4.MyClass, prefix4.MyClassWoConstructor, prefix4.BinaryData, prefix4.BigIntData, prefix4.Model, prefix4.DurationModel, prefix4.NumericEnum, prefix4.ListItem, prefix4.CustomListContainer, prefix4.InlineJsonContainer, prefix4.DateTimeContainer, prefix4.MethodResponse, prefix4.MyEnumA, prefix4.MyEnumB, prefix4.NumericEnumTestColor, prefix4.MyEnum, prefix5.CropArea, prefix5.ImmutableDefault, prefix5.DefaultFields, prefix5.ManyDefaultFields, prefix5.GlobalDefaultFields, prefix5.DefaultValueOverrideTest, prefix6.PascalCaseModel, prefix6.ShortEnumConverter, prefix6.EnumMappingsOverrideTest, prefix6.EnumIterables, prefix6.EnumIterablesWithConstructor, prefix6.StylingModel, prefix6.DefaultCategory, prefix6.Split, prefix6.SplitModel, prefix6.EDeviceRadioType, prefix6.Category, prefix7.MyCar, prefix7.Device, prefix7.UserSettings, prefix7.UnAnnotatedEnumField, prefix7.PartialPerson, prefix7.ObjectWithRequiredField, prefix7.ObjectWithRequiredNullableField, prefix8.MyObject, prefix8.FlattenObject, prefix9.ChildInjected1, prefix9.ChildInjected2, prefix9.ChildInjected3, prefix10.A, prefix10.C, prefix10.MixinContainer, prefix11.NameCaseObjectOverride, prefix11.NameCaseObject, prefix12.Feature, prefix12.Product, prefix12.ProductCategory, prefix12.RootObject, prefix12.DeepNestedList, prefix12.DeepNestedInt, prefix12.NestedListItem, prefix13.IgnoreMembers, prefix13.FieldAliasObject, prefix13.AnyObject, prefix13.UnmappedProperties, prefix13.AllPrivateFields, prefix13.Pagination, prefix13.Cars, prefix13.CarsPrefix, prefix13.CarsPrefixSnake, prefix14.MyNullableFieldsExample, prefix14.TransactionsRequestModel, prefix14.Preferences, prefix14.Metadata, prefix15.Object, prefix15.Address, prefix16.A, prefix16.B, prefix16.AA, prefix16.BB, prefix16.GetQueryParameters, prefix16.UnbalancedGetSet, prefix17.Tuple, prefix17.ConcreteClass, prefix18.NavbarTab, prefix18.NavbarConfig, prefix18.NoticeItem, prefix18.NoticeList, prefix18.TestChain, const r.FakeType(r'._TestChain'), prefix18.Customer, prefix18.ServiceOrderItemModel, prefix18.ServiceOrderModel, prefix18.Item, prefix18.ListOfLists, prefix18.ListOfListsWithConstructor, prefix19.RawJsonTestModel, prefix20.DTDeviceStatus, prefix20.DTGatewayConnection, prefix20.DTSignalStrength, prefix21.PageImpl, prefix21.Advertising, prefix21.AdvertisingPage, prefix22.SpaceTrack, prefix22.Record, prefix23.Foo, prefix23.BarBase, prefix23.Bar, prefix23.EntityModel, prefix23.AbstractEntityModel, prefix23.MyCarModel, prefix23.ApiResult, prefix23.UserModel, prefix23.ApiResultUserModel, prefix24.Immutable, prefix25.Business, prefix25.Hotel, prefix25.Startup, prefix25.Stakeholder, prefix25.Business2, prefix25.Hotel2, prefix25.Startup2, prefix25.Stakeholder2, prefix25.AbstractUser, prefix25.UserImpl, prefix25.MyBaseClass, prefix25.MySuperclass, prefix25.TypedParent, prefix25.TypedChild, prefix25.TypedStringParent, prefix25.TypedStringChild, prefix25.BusinessType, const r.FakeType(r'..A with .B'), num, String, const m.TypeValue>().type, List, String, const m.TypeValue>().type, List, DateTime, bool, num, const m.TypeValue>().type, Map, const m.TypeValue>().type, Map, Symbol, const m.TypeValue>().type, List, const m.TypeValue>().type, List, int, int, const m.TypeValue>().type, List, const m.TypeValue>().type, List, const m.TypeValue>().type, List, const m.TypeValue>().type, List, prefix28.Uint8List, BigInt, DateTime, Duration, const m.TypeValue>().type, List, const m.TypeValue>().type, Set, const m.TypeValue>().type, Map, const m.TypeValue>>().type, List, prefix6.ThirdParty, const m.TypeValue>().type, List, prefix6.ThirdParty, const m.TypeValue>().type, List, const m.TypeValue>().type, List, const m.TypeValue>().type, Set, const m.TypeValue>().type, Map, const m.TypeValue>().type, Map, const m.TypeValue>().type, Map, const m.TypeValue>().type, Map, const m.TypeValue>().type, List, prefix7.Sex, prefix9.ParentInjected1, prefix9.ParentInjected2, prefix9.ParentInjected3, const m.TypeValue>().type, Set, prefix10.B, bool, const m.TypeValue>().type, List, const m.TypeValue>().type, List, const m.TypeValue>().type, List, const m.TypeValue>().type, List, const m.TypeValue>().type, List, const m.TypeValue>().type, Map, const m.TypeValue>().type, Set, const m.TypeValue>().type, List, const m.TypeValue>().type, const m.TypeValue>().type, Duration, const m.TypeValue>().type, Map, double, const m.TypeValue>().type, List, const m.TypeValue>().type, List, const m.TypeValue>>().type, List, List, const m.TypeValue>>().type, List, const m.TypeValue>().type, List, const r.FakeType(r'dart.core.List'), List, const m.TypeValue>().type, List, const m.TypeValue>().type, List, const m.TypeValue>().type, List, Type, const r.FakeType(r'.Base'), const r.FakeType(r'.Tuple'), const r.FakeType(r'.PageImpl'), const r.FakeType(r'.BarBase'), const r.FakeType(r'.BarBase'), const r.FakeType(r'.EntityModel'), const r.FakeType(r'.EntityModel'), const r.FakeType(r'.AbstractEntityModel'), const r.FakeType(r'.ApiResult'), const r.FakeType(r'.ApiResult'), Object, Invocation, const m.TypeValue>().type, const m.TypeValue>().type, const m.TypeValue>().type, const m.TypeValue>().type], 167, {r'==': (dynamic instance) => (x) => instance == x, r'toString': (dynamic instance) => instance.toString, r'noSuchMethod': (dynamic instance) => instance.noSuchMethod, r'hashCode': (dynamic instance) => instance.hashCode, r'runtimeType': (dynamic instance) => instance.runtimeType, r'thickness': (dynamic instance) => instance.thickness, r'color': (dynamic instance) => instance.color, r'tire': (dynamic instance) => instance.tire, r'model': (dynamic instance) => instance.model, r'replacement': (dynamic instance) => instance.replacement, r'leftWheel': (dynamic instance) => instance.leftWheel, r'rightWheel': (dynamic instance) => instance.rightWheel, r'skills': (dynamic instance) => instance.skills, r'specialDates': (dynamic instance) => instance.specialDates, r'lastPromotionDate': (dynamic instance) => instance.lastPromotionDate, r'hireDate': (dynamic instance) => instance.hireDate, r'married': (dynamic instance) => instance.married, r'active': (dynamic instance) => instance.active, r'name': (dynamic instance) => instance.name, r'salary': (dynamic instance) => instance.salary, r'dob': (dynamic instance) => instance.dob, r'age': (dynamic instance) => instance.age, r'lastName': (dynamic instance) => instance.lastName, r'dyn': (dynamic instance) => instance.dyn, r'dynNum': (dynamic instance) => instance.dynNum, r'dynBool': (dynamic instance) => instance.dynBool, r'properties': (dynamic instance) => instance.properties, r'map': (dynamic instance) => instance.map, r'sym': (dynamic instance) => instance.sym, r'favouriteColours': (dynamic instance) => instance.favouriteColours, r'eyeColor': (dynamic instance) => instance.eyeColor, r'hairColor': (dynamic instance) => instance.hairColor, r'vehicles': (dynamic instance) => instance.vehicles, r'fullName': (dynamic instance) => instance.fullName, r'nextCatId': (dynamic instance) => instance.nextCatId, r'nextDogId': (dynamic instance) => instance.nextDogId, r'index': (dynamic instance) => instance.index, r'logisticsChecked': (dynamic instance) => instance.logisticsChecked, r'logisticsOK': (dynamic instance) => instance.logisticsOK, r'email': (dynamic instance) => instance.email, r'bar': (dynamic instance) => instance.bar, r'message': (dynamic instance) => instance.message, r'baz': (dynamic instance) => instance.baz, r'value': (dynamic instance) => instance.value, r'pt': (dynamic instance) => instance.pt, r'list': (dynamic instance) => instance.list, r'firstName': (dynamic instance) => instance.firstName, r'middleName': (dynamic instance) => instance.middleName, r'id': (dynamic instance) => instance.id, r'car': (dynamic instance) => instance.car, r'number': (dynamic instance) => instance.number, r'child': (dynamic instance) => instance.child, r'children': (dynamic instance) => instance.children, r'parent': (dynamic instance) => instance.parent, r'type': (dynamic instance) => instance.type, r'enumA': (dynamic instance) => instance.enumA, r'enumB': (dynamic instance) => instance.enumB, r'data': (dynamic instance) => instance.data, r'bigInt': (dynamic instance) => instance.bigInt, r'set': (dynamic instance) => instance.set, r'dataHash': (dynamic instance) => instance.dataHash, r'createdAt': (dynamic instance) => instance.createdAt, r'responses': (dynamic instance) => instance.responses, r'top': (dynamic instance) => instance.top, r'left': (dynamic instance) => instance.left, r'right': (dynamic instance) => instance.right, r'bottom': (dynamic instance) => instance.bottom, r'cropArea': (dynamic instance) => instance.cropArea, r'radio': (dynamic instance) => instance.radio, r'party': (dynamic instance) => instance.party, r'parties': (dynamic instance) => instance.parties, r'colors': (dynamic instance) => instance.colors, r'colorsSet': (dynamic instance) => instance.colorsSet, r'colorPriorities': (dynamic instance) => instance.colorPriorities, r'partyPriorities': (dynamic instance) => instance.partyPriorities, r'primary': (dynamic instance) => instance.primary, r'category': (dynamic instance) => instance.category, r'values': (dynamic instance) => instance.values, r'devices': (dynamic instance) => instance.devices, r'sex': (dynamic instance) => instance.sex, r'value2': (dynamic instance) => instance.value2, r'page': (dynamic instance) => instance.page, r'pageNumber': (dynamic instance) => instance.pageNumber, r'pageSize': (dynamic instance) => instance.pageSize, r'nickname': (dynamic instance) => instance.nickname, r'ints': (dynamic instance) => instance.ints, r'b': (dynamic instance) => instance.b, r'mainTitle': (dynamic instance) => instance.mainTitle, r'description': (dynamic instance) => instance.description, r'hasMainProperty': (dynamic instance) => instance.hasMainProperty, r'primaryColor': (dynamic instance) => instance.primaryColor, r'categoryId': (dynamic instance) => instance.categoryId, r'productId': (dynamic instance) => instance.productId, r'features': (dynamic instance) => instance.features, r'products': (dynamic instance) => instance.products, r'items': (dynamic instance) => instance.items, r'count': (dynamic instance) => instance.count, r'count2': (dynamic instance) => instance.count2, r'cd': (dynamic instance) => instance.cd, r'count3': (dynamic instance) => instance.count3, r'title': (dynamic instance) => instance.title, r'location': (dynamic instance) => instance.location, r'unmappedSet': (dynamic instance) => instance.unmappedSet, r'unmappedGet': (dynamic instance) => instance.unmappedGet, r'extraPropsMap': (dynamic instance) => instance.extraPropsMap, r'setLastName': (dynamic instance) => instance.setLastName, r'getLastName': (dynamic instance) => instance.getLastName, r'limit': (dynamic instance) => instance.limit, r'offset': (dynamic instance) => instance.offset, r'total': (dynamic instance) => instance.total, r'pagination': (dynamic instance) => instance.pagination, r'cars': (dynamic instance) => instance.cars, r'myList': (dynamic instance) => instance.myList, r'myMap': (dynamic instance) => instance.myMap, r'mySet': (dynamic instance) => instance.mySet, r'accountType': (dynamic instance) => instance.accountType, r'defaultCountryIsoCode': (dynamic instance) => instance.defaultCountryIsoCode, r'autoImportContacts': (dynamic instance) => instance.autoImportContacts, r'metadata': (dynamic instance) => instance.metadata, r'createdBy': (dynamic instance) => instance.createdBy, r'deleted': (dynamic instance) => instance.deleted, r'phoneNumber': (dynamic instance) => instance.phoneNumber, r'country': (dynamic instance) => instance.country, r'city': (dynamic instance) => instance.city, r'zipCode': (dynamic instance) => instance.zipCode, r'street': (dynamic instance) => instance.street, r'streetList': (dynamic instance) => instance.streetList, r'district': (dynamic instance) => instance.district, r'a': (dynamic instance) => instance.a, r'content': (dynamic instance) => instance.content, r'fieldSearchable': (dynamic instance) => instance.fieldSearchable, r'types': (dynamic instance) => instance.types, r'value1': (dynamic instance) => instance.value1, r'tuple1': (dynamic instance) => instance.tuple1, r'tuple2': (dynamic instance) => instance.tuple2, r'icon': (dynamic instance) => instance.icon, r'on': (dynamic instance) => instance.on, r'tabs': (dynamic instance) => instance.tabs, r'activeColor': (dynamic instance) => instance.activeColor, r'inactiveColor': (dynamic instance) => instance.inactiveColor, r'backgroundColor': (dynamic instance) => instance.backgroundColor, r'fontSize': (dynamic instance) => instance.fontSize, r'mailingList': (dynamic instance) => instance.mailingList, r'sequence': (dynamic instance) => instance.sequence, r'customerId': (dynamic instance) => instance.customerId, r'customer': (dynamic instance) => instance.customer, r'expertId': (dynamic instance) => instance.expertId, r'start': (dynamic instance) => instance.start, r'end': (dynamic instance) => instance.end, r'resume': (dynamic instance) => instance.resume, r'lists': (dynamic instance) => instance.lists, r'rawField': (dynamic instance) => instance.rawField, r'normalField': (dynamic instance) => instance.normalField, r'noAnnotationField': (dynamic instance) => instance.noAnnotationField, r'deviceIdent': (dynamic instance) => instance.deviceIdent, r'gatewayConnections': (dynamic instance) => instance.gatewayConnections, r'gwIdent': (dynamic instance) => instance.gwIdent, r'signalStrength': (dynamic instance) => instance.signalStrength, r'strength': (dynamic instance) => instance.strength, r'rssi': (dynamic instance) => instance.rssi, r'spreadFactor': (dynamic instance) => instance.spreadFactor, r'last': (dynamic instance) => instance.last, r'totalPages': (dynamic instance) => instance.totalPages, r'totalElements': (dynamic instance) => instance.totalElements, r'first': (dynamic instance) => instance.first, r'size': (dynamic instance) => instance.size, r'numberOfElements': (dynamic instance) => instance.numberOfElements, r'empty': (dynamic instance) => instance.empty, r'price': (dynamic instance) => instance.price, r'quantity': (dynamic instance) => instance.quantity, r'images': (dynamic instance) => instance.images, r'sourceImages': (dynamic instance) => instance.sourceImages, r'sourceId': (dynamic instance) => instance.sourceId, r'sourceUrl': (dynamic instance) => instance.sourceUrl, r'ccsdsOmmVers': (dynamic instance) => instance.ccsdsOmmVers, r'comment': (dynamic instance) => instance.comment, r'originator': (dynamic instance) => instance.originator, r'objectName': (dynamic instance) => instance.objectName, r'objectId': (dynamic instance) => instance.objectId, r'objectType': (dynamic instance) => instance.objectType, r'centerName': (dynamic instance) => instance.centerName, r'refFrame': (dynamic instance) => instance.refFrame, r'timeSystem': (dynamic instance) => instance.timeSystem, r'meanElementTheory': (dynamic instance) => instance.meanElementTheory, r'classificationType': (dynamic instance) => instance.classificationType, r'rcsSize': (dynamic instance) => instance.rcsSize, r'countryCode': (dynamic instance) => instance.countryCode, r'site': (dynamic instance) => instance.site, r'tleLine0': (dynamic instance) => instance.tleLine0, r'tleLine1': (dynamic instance) => instance.tleLine1, r'tleLine2': (dynamic instance) => instance.tleLine2, r'meanMotion': (dynamic instance) => instance.meanMotion, r'eccentricity': (dynamic instance) => instance.eccentricity, r'raOfAscNode': (dynamic instance) => instance.raOfAscNode, r'argOfPericenter': (dynamic instance) => instance.argOfPericenter, r'meanAnomaly': (dynamic instance) => instance.meanAnomaly, r'ephemerisType': (dynamic instance) => instance.ephemerisType, r'noradCatId': (dynamic instance) => instance.noradCatId, r'elementSetNo': (dynamic instance) => instance.elementSetNo, r'revAtEpoch': (dynamic instance) => instance.revAtEpoch, r'bstar': (dynamic instance) => instance.bstar, r'meanMotionDot': (dynamic instance) => instance.meanMotionDot, r'meanMotionDdot': (dynamic instance) => instance.meanMotionDdot, r'semimajorAxis': (dynamic instance) => instance.semimajorAxis, r'period': (dynamic instance) => instance.period, r'apoapsis': (dynamic instance) => instance.apoapsis, r'periapsis': (dynamic instance) => instance.periapsis, r'decayed': (dynamic instance) => instance.decayed, r'file': (dynamic instance) => instance.file, r'gpId': (dynamic instance) => instance.gpId, r'decayDate': (dynamic instance) => instance.decayDate, r'creationDate': (dynamic instance) => instance.creationDate, r'epoch': (dynamic instance) => instance.epoch, r'launchDate': (dynamic instance) => instance.launchDate, r'spaceTrack': (dynamic instance) => instance.spaceTrack, r'version': (dynamic instance) => instance.version, r'launch': (dynamic instance) => instance.launch, r'fromJson': (dynamic instance) => instance.fromJson, r'toJson': (dynamic instance) => instance.toJson, r'foo': (dynamic instance) => instance.foo, r'entityToJson': (dynamic instance) => instance.entityToJson, r'setEntityPropertyFromJson': (dynamic instance) => instance.setEntityPropertyFromJson, r'newEntityFromModelJson': (dynamic instance) => instance.newEntityFromModelJson, r'newEntityFromJson': (dynamic instance) => instance.newEntityFromJson, r'parentUuid': (dynamic instance) => instance.parentUuid, r'uuid': (dynamic instance) => instance.uuid, r'entity': (dynamic instance) => instance.entity, r'copyWith': (dynamic instance) => instance.copyWith, r'merge': (dynamic instance) => instance.merge, r'success': (dynamic instance) => instance.success, r'result': (dynamic instance) => instance.result, r'stars': (dynamic instance) => instance.stars, r'userCount': (dynamic instance) => instance.userCount, r'businesses': (dynamic instance) => instance.businesses, r'myField': (dynamic instance) => instance.myField, r'myGetter': (dynamic instance) => instance.myGetter}, {r'model=': (dynamic instance, value) => instance.model = value, r'color=': (dynamic instance, value) => instance.color = value, r'replacement=': (dynamic instance, value) => instance.replacement = value, r'skills=': (dynamic instance, value) => instance.skills = value, r'specialDates=': (dynamic instance, value) => instance.specialDates = value, r'lastPromotionDate=': (dynamic instance, value) => instance.lastPromotionDate = value, r'hireDate=': (dynamic instance, value) => instance.hireDate = value, r'married=': (dynamic instance, value) => instance.married = value, r'active=': (dynamic instance, value) => instance.active = value, r'name=': (dynamic instance, value) => instance.name = value, r'salary=': (dynamic instance, value) => instance.salary = value, r'dob=': (dynamic instance, value) => instance.dob = value, r'age=': (dynamic instance, value) => instance.age = value, r'lastName=': (dynamic instance, value) => instance.lastName = value, r'dyn=': (dynamic instance, value) => instance.dyn = value, r'dynNum=': (dynamic instance, value) => instance.dynNum = value, r'dynBool=': (dynamic instance, value) => instance.dynBool = value, r'properties=': (dynamic instance, value) => instance.properties = value, r'map=': (dynamic instance, value) => instance.map = value, r'sym=': (dynamic instance, value) => instance.sym = value, r'favouriteColours=': (dynamic instance, value) => instance.favouriteColours = value, r'eyeColor=': (dynamic instance, value) => instance.eyeColor = value, r'hairColor=': (dynamic instance, value) => instance.hairColor = value, r'vehicles=': (dynamic instance, value) => instance.vehicles = value, r'email=': (dynamic instance, value) => instance.email = value, r'list=': (dynamic instance, value) => instance.list = value, r'firstName=': (dynamic instance, value) => instance.firstName = value, r'middleName=': (dynamic instance, value) => instance.middleName = value, r'id=': (dynamic instance, value) => instance.id = value, r'number=': (dynamic instance, value) => instance.number = value, r'child=': (dynamic instance, value) => instance.child = value, r'children=': (dynamic instance, value) => instance.children = value, r'parent=': (dynamic instance, value) => instance.parent = value, r'enumA=': (dynamic instance, value) => instance.enumA = value, r'enumB=': (dynamic instance, value) => instance.enumB = value, r'data=': (dynamic instance, value) => instance.data = value, r'bigInt=': (dynamic instance, value) => instance.bigInt = value, r'set=': (dynamic instance, value) => instance.set = value, r'dataHash=': (dynamic instance, value) => instance.dataHash = value, r'createdAt=': (dynamic instance, value) => instance.createdAt = value, r'responses=': (dynamic instance, value) => instance.responses = value, r'top=': (dynamic instance, value) => instance.top = value, r'left=': (dynamic instance, value) => instance.left = value, r'right=': (dynamic instance, value) => instance.right = value, r'bottom=': (dynamic instance, value) => instance.bottom = value, r'cropArea=': (dynamic instance, value) => instance.cropArea = value, r'value=': (dynamic instance, value) => instance.value = value, r'radio=': (dynamic instance, value) => instance.radio = value, r'party=': (dynamic instance, value) => instance.party = value, r'parties=': (dynamic instance, value) => instance.parties = value, r'colors=': (dynamic instance, value) => instance.colors = value, r'colorsSet=': (dynamic instance, value) => instance.colorsSet = value, r'colorPriorities=': (dynamic instance, value) => instance.colorPriorities = value, r'partyPriorities=': (dynamic instance, value) => instance.partyPriorities = value, r'category=': (dynamic instance, value) => instance.category = value, r'values=': (dynamic instance, value) => instance.values = value, r'devices=': (dynamic instance, value) => instance.devices = value, r'sex=': (dynamic instance, value) => instance.sex = value, r'value2=': (dynamic instance, value) => instance.value2 = value, r'nickname=': (dynamic instance, value) => instance.nickname = value, r'mainTitle=': (dynamic instance, value) => instance.mainTitle = value, r'description=': (dynamic instance, value) => instance.description = value, r'hasMainProperty=': (dynamic instance, value) => instance.hasMainProperty = value, r'primaryColor=': (dynamic instance, value) => instance.primaryColor = value, r'categoryId=': (dynamic instance, value) => instance.categoryId = value, r'productId=': (dynamic instance, value) => instance.productId = value, r'features=': (dynamic instance, value) => instance.features = value, r'products=': (dynamic instance, value) => instance.products = value, r'items=': (dynamic instance, value) => instance.items = value, r'count=': (dynamic instance, value) => instance.count = value, r'count2=': (dynamic instance, value) => instance.count2 = value, r'cd=': (dynamic instance, value) => instance.cd = value, r'count3=': (dynamic instance, value) => instance.count3 = value, r'title=': (dynamic instance, value) => instance.title = value, r'extraPropsMap=': (dynamic instance, value) => instance.extraPropsMap = value, r'limit=': (dynamic instance, value) => instance.limit = value, r'offset=': (dynamic instance, value) => instance.offset = value, r'total=': (dynamic instance, value) => instance.total = value, r'pagination=': (dynamic instance, value) => instance.pagination = value, r'cars=': (dynamic instance, value) => instance.cars = value, r'myList=': (dynamic instance, value) => instance.myList = value, r'myMap=': (dynamic instance, value) => instance.myMap = value, r'mySet=': (dynamic instance, value) => instance.mySet = value, r'phoneNumber=': (dynamic instance, value) => instance.phoneNumber = value, r'country=': (dynamic instance, value) => instance.country = value, r'city=': (dynamic instance, value) => instance.city = value, r'zipCode=': (dynamic instance, value) => instance.zipCode = value, r'street=': (dynamic instance, value) => instance.street = value, r'streetList=': (dynamic instance, value) => instance.streetList = value, r'district=': (dynamic instance, value) => instance.district = value, r'content=': (dynamic instance, value) => instance.content = value, r'page=': (dynamic instance, value) => instance.page = value, r'fieldSearchable=': (dynamic instance, value) => instance.fieldSearchable = value, r'types=': (dynamic instance, value) => instance.types = value, r'mailingList=': (dynamic instance, value) => instance.mailingList = value, r'customerId=': (dynamic instance, value) => instance.customerId = value, r'customer=': (dynamic instance, value) => instance.customer = value, r'expertId=': (dynamic instance, value) => instance.expertId = value, r'start=': (dynamic instance, value) => instance.start = value, r'end=': (dynamic instance, value) => instance.end = value, r'resume=': (dynamic instance, value) => instance.resume = value, r'lists=': (dynamic instance, value) => instance.lists = value, r'rawField=': (dynamic instance, value) => instance.rawField = value, r'normalField=': (dynamic instance, value) => instance.normalField = value, r'noAnnotationField=': (dynamic instance, value) => instance.noAnnotationField = value, r'deviceIdent=': (dynamic instance, value) => instance.deviceIdent = value, r'gatewayConnections=': (dynamic instance, value) => instance.gatewayConnections = value, r'gwIdent=': (dynamic instance, value) => instance.gwIdent = value, r'signalStrength=': (dynamic instance, value) => instance.signalStrength = value, r'strength=': (dynamic instance, value) => instance.strength = value, r'rssi=': (dynamic instance, value) => instance.rssi = value, r'spreadFactor=': (dynamic instance, value) => instance.spreadFactor = value, r'last=': (dynamic instance, value) => instance.last = value, r'totalPages=': (dynamic instance, value) => instance.totalPages = value, r'totalElements=': (dynamic instance, value) => instance.totalElements = value, r'first=': (dynamic instance, value) => instance.first = value, r'size=': (dynamic instance, value) => instance.size = value, r'numberOfElements=': (dynamic instance, value) => instance.numberOfElements = value, r'empty=': (dynamic instance, value) => instance.empty = value, r'price=': (dynamic instance, value) => instance.price = value, r'quantity=': (dynamic instance, value) => instance.quantity = value, r'images=': (dynamic instance, value) => instance.images = value, r'sourceImages=': (dynamic instance, value) => instance.sourceImages = value, r'sourceId=': (dynamic instance, value) => instance.sourceId = value, r'sourceUrl=': (dynamic instance, value) => instance.sourceUrl = value, r'ccsdsOmmVers=': (dynamic instance, value) => instance.ccsdsOmmVers = value, r'comment=': (dynamic instance, value) => instance.comment = value, r'originator=': (dynamic instance, value) => instance.originator = value, r'objectName=': (dynamic instance, value) => instance.objectName = value, r'objectId=': (dynamic instance, value) => instance.objectId = value, r'objectType=': (dynamic instance, value) => instance.objectType = value, r'centerName=': (dynamic instance, value) => instance.centerName = value, r'refFrame=': (dynamic instance, value) => instance.refFrame = value, r'timeSystem=': (dynamic instance, value) => instance.timeSystem = value, r'meanElementTheory=': (dynamic instance, value) => instance.meanElementTheory = value, r'classificationType=': (dynamic instance, value) => instance.classificationType = value, r'rcsSize=': (dynamic instance, value) => instance.rcsSize = value, r'countryCode=': (dynamic instance, value) => instance.countryCode = value, r'site=': (dynamic instance, value) => instance.site = value, r'tleLine0=': (dynamic instance, value) => instance.tleLine0 = value, r'tleLine1=': (dynamic instance, value) => instance.tleLine1 = value, r'tleLine2=': (dynamic instance, value) => instance.tleLine2 = value, r'meanMotion=': (dynamic instance, value) => instance.meanMotion = value, r'eccentricity=': (dynamic instance, value) => instance.eccentricity = value, r'raOfAscNode=': (dynamic instance, value) => instance.raOfAscNode = value, r'argOfPericenter=': (dynamic instance, value) => instance.argOfPericenter = value, r'meanAnomaly=': (dynamic instance, value) => instance.meanAnomaly = value, r'ephemerisType=': (dynamic instance, value) => instance.ephemerisType = value, r'noradCatId=': (dynamic instance, value) => instance.noradCatId = value, r'elementSetNo=': (dynamic instance, value) => instance.elementSetNo = value, r'revAtEpoch=': (dynamic instance, value) => instance.revAtEpoch = value, r'bstar=': (dynamic instance, value) => instance.bstar = value, r'meanMotionDot=': (dynamic instance, value) => instance.meanMotionDot = value, r'meanMotionDdot=': (dynamic instance, value) => instance.meanMotionDdot = value, r'semimajorAxis=': (dynamic instance, value) => instance.semimajorAxis = value, r'period=': (dynamic instance, value) => instance.period = value, r'apoapsis=': (dynamic instance, value) => instance.apoapsis = value, r'periapsis=': (dynamic instance, value) => instance.periapsis = value, r'decayed=': (dynamic instance, value) => instance.decayed = value, r'file=': (dynamic instance, value) => instance.file = value, r'gpId=': (dynamic instance, value) => instance.gpId = value, r'decayDate=': (dynamic instance, value) => instance.decayDate = value, r'creationDate=': (dynamic instance, value) => instance.creationDate = value, r'epoch=': (dynamic instance, value) => instance.epoch = value, r'launchDate=': (dynamic instance, value) => instance.launchDate = value, r'spaceTrack=': (dynamic instance, value) => instance.spaceTrack = value, r'version=': (dynamic instance, value) => instance.version = value, r'launch=': (dynamic instance, value) => instance.launch = value, r'foo=': (dynamic instance, value) => instance.foo = value, r'success=': (dynamic instance, value) => instance.success = value, r'result=': (dynamic instance, value) => instance.result = value, r'stars=': (dynamic instance, value) => instance.stars = value, r'userCount=': (dynamic instance, value) => instance.userCount = value, r'fullName=': (dynamic instance, value) => instance.fullName = value, r'businesses=': (dynamic instance, value) => instance.businesses = value, r'type=': (dynamic instance, value) => instance.type = value, r'a=': (dynamic instance, value) => instance.a = value, r'b=': (dynamic instance, value) => instance.b = value}, null, [])}; final _memberSymbolMap = null; @@ -76,8 +81,9 @@ void _initializeReflectable(JsonMapperAdapter adapter) { } final testGeneratedAdapter = JsonMapperAdapter( - title: 'Test Generated Adapter', + title: 'performance_test', url: 'asset:performance_test/test/unit/_test.dart', + refUrl: 'https://github.com/k-paxian/dart-json-mapper/perf-test', reflectableData: _data, memberSymbolMap: _memberSymbolMap, valueDecorators: { @@ -167,14 +173,6 @@ final testGeneratedAdapter = JsonMapperAdapter( typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), @@ -185,6 +183,10 @@ final testGeneratedAdapter = JsonMapperAdapter( typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), @@ -201,8 +203,6 @@ final testGeneratedAdapter = JsonMapperAdapter( typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), @@ -211,36 +211,16 @@ final testGeneratedAdapter = JsonMapperAdapter( typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), @@ -253,8 +233,6 @@ final testGeneratedAdapter = JsonMapperAdapter( typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), @@ -303,6 +281,10 @@ final testGeneratedAdapter = JsonMapperAdapter( typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), @@ -336,20 +318,57 @@ final testGeneratedAdapter = JsonMapperAdapter( typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), typeOf>(): (value) => value.cast(), - typeOf>(): (value) => value.cast() + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast(), + typeOf>(): (value) => value.cast() }, enumValues: { x2.MyEnumA: x2.MyEnumA.values, x2.MyEnumB: x2.MyEnumB.values, x2.NumericEnumTestColor: x2.NumericEnumTestColor.values, x2.MyEnum: x2.MyEnum.values, + x4.EDeviceRadioType: x4.EDeviceRadioType.values, + x4.ThirdParty: x4.ThirdParty.values, x4.Category: x4.Category.values, - x6.BusinessType: x6.BusinessType.values + x5.Sex: x5.Sex.values, + x13.Scheme: x13.Scheme.values }); -Future initializeJsonMapperAsync({Iterable adapters = const []}) => Future(() => initializeJsonMapper(adapters: adapters)); +Future initializeJsonMapperAsync({Iterable adapters = const [], SerializationOptions? serializationOptions, DeserializationOptions? deserializationOptions}) => Future(() => initializeJsonMapper(adapters: adapters, serializationOptions: serializationOptions, deserializationOptions: deserializationOptions)); -JsonMapper initializeJsonMapper({Iterable adapters = const []}) { +JsonMapper initializeJsonMapper({Iterable adapters = const [], SerializationOptions? serializationOptions, DeserializationOptions? deserializationOptions}) { + JsonMapper.globalSerializationOptions = serializationOptions ?? JsonMapper.globalSerializationOptions; + JsonMapper.globalDeserializationOptions = deserializationOptions ?? JsonMapper.globalDeserializationOptions; JsonMapper.enumerateAdapters([...adapters, testGeneratedAdapter], (JsonMapperAdapter adapter) { _initializeReflectable(adapter); JsonMapper().useAdapter(adapter); diff --git a/perf-test/test/unit/test.adapter_manager.dart b/perf-test/test/unit/test.adapter_manager.dart new file mode 100644 index 00000000..dca6bd66 --- /dev/null +++ b/perf-test/test/unit/test.adapter_manager.dart @@ -0,0 +1,36 @@ +import 'package:dart_json_mapper/dart_json_mapper.dart'; +import 'package:dart_json_mapper/src/logic/adapter_manager.dart'; +import 'package:test/test.dart'; + +void testAdapterManager() { + group('AdapterManager', () { + late AdapterManager adapterManager; + + setUp(() { + adapterManager = AdapterManager(); + }); + + test('should register and remove adapters', () { + final adapter = JsonMapperAdapter(); + adapterManager.use(adapter); + expect(adapterManager.allEnumValues, isEmpty); + adapterManager.remove(adapter); + expect(adapterManager.allEnumValues, isEmpty); + }); + + test('should enumerate adapters in the correct order', () { + final adapter1 = JsonMapperAdapter(title: 'Adapter 1'); + final adapter2 = JsonMapperAdapter(title: 'Adapter 2'); + adapterManager.use(adapter1, 1); + adapterManager.use(adapter2, 0); + + final enumeratedAdapters = []; + adapterManager.enumerate((adapter) { + enumeratedAdapters.add(adapter); + }); + + expect(enumeratedAdapters.map((a) => a.title).toList(), + ['Adapter 2', 'Adapter 1']); + }); + }); +} \ No newline at end of file diff --git a/perf-test/test/unit/test.cache_manager.dart b/perf-test/test/unit/test.cache_manager.dart new file mode 100644 index 00000000..131b5169 --- /dev/null +++ b/perf-test/test/unit/test.cache_manager.dart @@ -0,0 +1,33 @@ +import 'package:dart_json_mapper/src/logic/cache_manager.dart'; +import 'package:test/test.dart'; + +void testCacheManager() { + group('CacheManager', () { + late CacheManager cacheManager; + + setUp(() { + cacheManager = CacheManager(); + }); + + test('should cache and retrieve processed objects', () { + final object = Object(); + final processedObject = cacheManager.getObjectProcessed(object, 0); + expect(processedObject, isNotNull); + final cachedObject = cacheManager.getObjectProcessed(object, 1); + expect(cachedObject, same(processedObject)); + }); + + test('should not cache null or bool objects', () { + expect(cacheManager.getObjectProcessed(true, 0), isNull); + // expect(cacheManager.getObjectProcessed(null, 0), isNull); + }); + + test('should clear the cache', () { + final object = Object(); + cacheManager.getObjectProcessed(object, 0); + cacheManager.clear(); + final processedObject = cacheManager.getObjectProcessed(object, 0); + expect(processedObject, isNotNull); + }); + }); +} \ No newline at end of file diff --git a/perf-test/test/unit/test.collections.dart b/perf-test/test/unit/test.collections.dart index 064ab0bd..331de1d5 100644 --- a/perf-test/test/unit/test.collections.dart +++ b/perf-test/test/unit/test.collections.dart @@ -2,7 +2,6 @@ import 'dart:collection'; import 'package:dart_json_mapper/dart_json_mapper.dart'; import 'package:test/test.dart'; -import 'package:unit_testing/unit_testing.dart' show compactOptions; void testCollections() { group('[Verify Dart Collection cases]', () { @@ -16,7 +15,7 @@ void testCollections() { JsonMapper().useAdapter(adapter); // when - final json = JsonMapper.serialize(instance, compactOptions); + final json = JsonMapper.serialize(instance); final target = JsonMapper.deserialize>(json)!; @@ -44,7 +43,7 @@ void testCollections() { JsonMapper().useAdapter(adapter); // when - final json = JsonMapper.serialize(instance, compactOptions); + final json = JsonMapper.serialize(instance); final target = JsonMapper.deserialize>(json)!; // then @@ -67,7 +66,7 @@ void testCollections() { JsonMapper().useAdapter(adapter); // when - final json = JsonMapper.serialize(instance, compactOptions); + final json = JsonMapper.serialize(instance); final target = JsonMapper.deserialize>(json)!; // then @@ -90,11 +89,11 @@ void testCollections() { JsonMapper().useAdapter(adapter); // when - final json = JsonMapper.serialize(instance, compactOptions); + final json = JsonMapper.serialize(instance); final target = JsonMapper.deserialize>(json)!; // then - expect(json, '{"c":3,"a":1,"b":2}'); + expect(json, kIsWeb ? '{"a":1,"b":2,"c":3}' : '{"c":3,"a":1,"b":2}'); expect(target, TypeMatcher>()); expect(target.containsKey('a'), true); @@ -117,7 +116,7 @@ void testCollections() { JsonMapper().useAdapter(adapter); // when - final json = JsonMapper.serialize(instance, compactOptions); + final json = JsonMapper.serialize(instance); final target = JsonMapper.deserialize>(json)!; // then diff --git a/perf-test/test/unit/test.constructors.dart b/perf-test/test/unit/test.constructors.dart index fb35b570..a2a2bc81 100644 --- a/perf-test/test/unit/test.constructors.dart +++ b/perf-test/test/unit/test.constructors.dart @@ -1,7 +1,7 @@ import 'package:dart_json_mapper/dart_json_mapper.dart'; import 'package:test/test.dart'; import 'package:unit_testing/unit_testing.dart' - show compactOptions, Car, Color, Immutable; + show defaultOptions, Car, Color, Immutable; @jsonSerializable class BusinessObject { @@ -61,7 +61,7 @@ class Base { @jsonSerializable class Derived extends Base { - Derived(String value) : super(value); + Derived(super.value); } @jsonSerializable @@ -71,7 +71,7 @@ class Pt { @jsonSerializable class PtDerived extends Base { - PtDerived(Pt value) : super(value); + PtDerived(super.value); } @jsonSerializable @@ -269,7 +269,7 @@ void testConstructors() { var instance = NamedParametersClass(firstName: 'Bob', lastName: 'Marley'); // when - final target = JsonMapper.serialize(instance, compactOptions); + final target = JsonMapper.serialize(instance); final targetInstance = JsonMapper.deserialize(json); // then @@ -281,7 +281,7 @@ void testConstructors() { // given var instance = PartiallyOptionalParametersClass('Bob', 'Marley'); // when - final target = JsonMapper.serialize(instance, compactOptions); + final target = JsonMapper.serialize(instance); // then expect(target, json); }); @@ -290,7 +290,7 @@ void testConstructors() { // given var instance = OptionalParametersClass('Bob', 'Marley'); // when - final target = JsonMapper.serialize(instance, compactOptions); + final target = JsonMapper.serialize(instance); // then expect(target, json); }); @@ -299,7 +299,7 @@ void testConstructors() { // given var instance = PositionalParametersClass('Bob', 'Marley'); // when - final target = JsonMapper.serialize(instance, compactOptions); + final target = JsonMapper.serialize(instance); // then expect(target, json); }); @@ -320,7 +320,7 @@ void testConstructors() { final target = Fo(null, 'hello world'); // when final instance = JsonMapper.deserialize(json)!; - final targetJson = JsonMapper.serialize(target, compactOptions); + final targetJson = JsonMapper.serialize(target); // then expect(instance.message, 'hello world'); expect(targetJson, json); @@ -334,9 +334,9 @@ void testConstructors() { final ptTarget2 = PtDerived2(Pt()); // when final instance = JsonMapper.deserialize(json)!; - final targetJson = JsonMapper.serialize(target, compactOptions); - final pTargetJson = JsonMapper.serialize(pTarget, compactOptions); - final ptTarget2Json = JsonMapper.serialize(ptTarget2, compactOptions); + final targetJson = JsonMapper.serialize(target); + final pTargetJson = JsonMapper.serialize(pTarget); + final ptTarget2Json = JsonMapper.serialize(ptTarget2); final pTargetBack = JsonMapper.deserialize(pTargetJson)!; final ptTarget2Back = JsonMapper.deserialize(ptTarget2Json)!; // then @@ -354,7 +354,7 @@ void testConstructors() { final user = User(); user.email = 'a@a.com'; // when - final json = JsonMapper.serialize(user, compactOptions); + final json = JsonMapper.serialize(user); final target = JsonMapper.deserialize(json)!; // then expect(json, '{"email":"a@a.com"}'); @@ -395,7 +395,7 @@ void testConstructors() { // given final instance = IgnoreNullMembersClass(firstName: 'Bob'); // when - final target = JsonMapper.serialize(instance, compactOptions); + final target = JsonMapper.serialize(instance); // then expect(target, '{"firstName":"Bob"}'); }); @@ -414,7 +414,7 @@ void testConstructors() { // given final instance = ImmutableDefault2(); // when - final target = JsonMapper.serialize(instance, compactOptions); + final target = JsonMapper.serialize(instance); // then expect(target, '{"id":1}'); }); @@ -425,7 +425,7 @@ void testConstructors() { var instance = IgnoredFieldClass( firstName: 'Bob', middleName: null, lastName: 'Marley'); // when - var target = JsonMapper.serialize(instance, compactOptions); + var target = JsonMapper.serialize(instance); // then expect(target, '{"firstName":"Bob"}'); @@ -456,14 +456,14 @@ void testConstructors() { }'''; final i = Immutable(1, 'Bob', Car('Audi', Color.green)); // when - final target = JsonMapper.serialize(i); + final target = JsonMapper.serialize(i, defaultOptions); // then expect(target, immutableJson); // when final ic = JsonMapper.deserialize(immutableJson); // then - expect(JsonMapper.serialize(ic), immutableJson); + expect(JsonMapper.serialize(ic, defaultOptions), immutableJson); }); test('Back referencing to parent/owner object', () { diff --git a/perf-test/test/unit/test.converters.dart b/perf-test/test/unit/test.converters.dart index 04d66f92..50d450bd 100644 --- a/perf-test/test/unit/test.converters.dart +++ b/perf-test/test/unit/test.converters.dart @@ -3,7 +3,7 @@ import 'dart:typed_data'; import 'package:dart_json_mapper/dart_json_mapper.dart'; import 'package:test/test.dart'; import 'package:unit_testing/unit_testing.dart' - show compactOptions, Car, Color, MyCarModel, Immutable; + show defaultOptions, Car, Color, MyCarModel, Immutable; @jsonSerializable enum MyEnumA { first, second } @@ -158,7 +158,7 @@ void testConverters() { // when final target = JsonMapper.deserialize(json)!; - final targetJson = JsonMapper.serialize(instance, compactOptions); + final targetJson = JsonMapper.serialize(instance); // then expect(targetJson, json); @@ -261,7 +261,9 @@ void testConverters() { expect(json, '"$source"'); expect(target.pattern, instance.pattern); expect(target, TypeMatcher()); - expect(target, instance); + if (!kIsWeb) { + expect(target, instance); + } }); test('UriConverter', () { @@ -285,8 +287,8 @@ void testConverters() { final json = '{"bigInt":"$rawString"}'; // when - final targetJson = JsonMapper.serialize( - BigIntData(BigInt.parse(rawString)), compactOptions); + final targetJson = + JsonMapper.serialize(BigIntData(BigInt.parse(rawString))); // then expect(targetJson, json); @@ -299,11 +301,24 @@ void testConverters() { test('Uint8List converter', () { // given final json = '{"data":"QmFzZTY0IGlzIHdvcmtpbmch"}'; + final emptyJson = '"AAAAAAAAAAAAAA=="'; + final emptyListsJson = '["AAAAAAA=","AAAAAAA="]'; final rawString = r'Base64 is working!'; + // when + final emptyListJson = JsonMapper.serialize(Uint8List(10)); + // then + expect(emptyListJson, emptyJson); + + // when + final targetEmptyListsJson = + JsonMapper.serialize([Uint8List(5), Uint8List(5)]); + // then + expect(targetEmptyListsJson, emptyListsJson); + // when final targetJson = JsonMapper.serialize( - BinaryData(Uint8List.fromList(rawString.codeUnits)), compactOptions); + BinaryData(Uint8List.fromList(rawString.codeUnits))); // then expect(targetJson, json); @@ -320,7 +335,7 @@ void testConverters() { foo['bar'] = Car('Tesla S3', Color.black); // when - final json = JsonMapper.serialize(foo, compactOptions); + final json = JsonMapper.serialize(foo); // then expect(json, targetJson); @@ -340,7 +355,7 @@ void testConverters() { JsonMapper().useAdapter(adapter); // when - final json = JsonMapper.serialize(instance, compactOptions); + final json = JsonMapper.serialize(instance); final target = JsonMapper.deserialize>(json); // then @@ -366,7 +381,7 @@ void testConverters() { final i = Immutable(1, 'Bob', Car('Audi', Color.green)); // when - final target = JsonMapper.serialize(i); + final target = JsonMapper.serialize(i, defaultOptions); // then expect(target, json); @@ -414,7 +429,7 @@ void testConverters() { final instance = NumericEnum(NumericEnumTestColor.grayMetallic); // when - final target = JsonMapper.serialize(instance, compactOptions); + final target = JsonMapper.serialize(instance); // then expect(target, json); diff --git a/perf-test/test/unit/test.default.value.dart b/perf-test/test/unit/test.default.value.dart index c05339bf..2227a397 100644 --- a/perf-test/test/unit/test.default.value.dart +++ b/perf-test/test/unit/test.default.value.dart @@ -1,7 +1,6 @@ import 'package:dart_json_mapper/dart_json_mapper.dart'; import 'package:test/test.dart'; - -import 'package:unit_testing/unit_testing.dart' show compactOptions, Car, Color; +import 'package:unit_testing/unit_testing.dart' show defaultOptions, Car, Color; @jsonSerializable class CropArea { @@ -57,13 +56,32 @@ class GlobalDefaultFields { int? id; } +@jsonSerializable +class DefaultValueOverrideTest { + @JsonProperty(defaultValue: 4) + int value; + DefaultValueOverrideTest(this.value); +} + void testDefaultValue() { group('[Verify default value cases]', () { + test('Override default value by the json value', () { + // given + final json1 = '''{"value":12}'''; + final json2 = '''{}'''; + // when + final target1 = JsonMapper.deserialize(json1); + final target2 = JsonMapper.deserialize(json2); + // then + expect(target1!.value, 12); + expect(target2!.value, 4); + }); + test('Ignore default field via field annotation', () { // given final instance = DefaultFields(); // when - final target = JsonMapper.serialize(instance, compactOptions); + final target = JsonMapper.serialize(instance); // then expect(target, '{"id":1}'); }); @@ -72,7 +90,7 @@ void testDefaultValue() { // given final instance = ManyDefaultFields(); // when - final target = JsonMapper.serialize(instance, compactOptions); + final target = JsonMapper.serialize(instance); // then expect(target, '{}'); }); @@ -94,12 +112,29 @@ void testDefaultValue() { final target = JsonMapper.serialize(instance, SerializationOptions(indent: '', processAnnotatedMembersOnly: true)); // then - expect(target, - '{"cropArea":{"top":0.0,"left":1.0,"right":1.0,"bottom":0.0},"id":1}'); + expect( + target, + kIsWeb + ? '{"cropArea":{"top":0,"left":1,"right":1,"bottom":0},"id":1}' + : '{"cropArea":{"top":0.0,"left":1.0,"right":1.0,"bottom":0.0},"id":1}'); }); test('Serialize Immutable class with DefaultValue provided', () { // given + final immutableJsonWeb = '''{ + "cropArea": { + "top": 0, + "left": 1, + "right": 1, + "bottom": 0 + }, + "id": 1, + "name": "Bob", + "car": { + "modelName": "Audi", + "color": "green" + } +}'''; final immutableJson = '''{ "cropArea": { "top": 0.0, @@ -125,11 +160,11 @@ void testDefaultValue() { final i = ImmutableDefault(name: 'Bob', car: Car('Audi', Color.green)); // when - final targetJson = JsonMapper.serialize(i); + final targetJson = JsonMapper.serialize(i, defaultOptions); final target = JsonMapper.deserialize(json)!; // then - expect(targetJson, immutableJson); + expect(targetJson, kIsWeb ? immutableJsonWeb : immutableJson); expect(target.id, 1); expect(target.cropArea, TypeMatcher()); diff --git a/perf-test/test/unit/test.enums.dart b/perf-test/test/unit/test.enums.dart index 8dddcb60..08080348 100644 --- a/perf-test/test/unit/test.enums.dart +++ b/perf-test/test/unit/test.enums.dart @@ -1,6 +1,18 @@ import 'package:dart_json_mapper/dart_json_mapper.dart'; import 'package:test/test.dart'; -import 'package:unit_testing/unit_testing.dart' show compactOptions, Color; +import 'package:unit_testing/unit_testing.dart' show Color; + +@jsonSerializable +// Case style is camelCase which is default for Dart +enum EDeviceRadioType { loRa, nBIoT, mBus, mobileInternet, wMBus } + +@jsonSerializable +@Json(caseStyle: CaseStyle.pascal) +// Case style is Pascal which is inferred by class annotation +class PascalCaseModel { + String? id; + EDeviceRadioType radio = EDeviceRadioType.loRa; +} enum ThirdParty { A, B, C } @@ -89,7 +101,7 @@ void testEnums() { JsonMapperAdapter(enumValues: {ThirdParty: ThirdParty.values}); JsonMapper().useAdapter(adapter); - final targetJson = JsonMapper.serialize(instance, compactOptions); + final targetJson = JsonMapper.serialize(instance); final target = JsonMapper.deserialize(targetJson)!; // then @@ -104,7 +116,7 @@ void testEnums() { final instance = Color.green; // when - final targetJson = JsonMapper.serialize(instance, compactOptions); + final targetJson = JsonMapper.serialize(instance); final target = JsonMapper.deserialize(targetJson); // then @@ -150,7 +162,7 @@ void testEnums() { final instance = {Color.black: 1, Color.blue: 2}; // when - final targetJson = JsonMapper.serialize(instance, compactOptions); + final targetJson = JsonMapper.serialize(instance); final target = JsonMapper.deserialize( targetJson, DeserializationOptions(template: {})); @@ -175,7 +187,7 @@ void testEnums() { final split = Split(map); // when - final targetJson = JsonMapper.serialize(split, compactOptions); + final targetJson = JsonMapper.serialize(split); final instance = JsonMapper.deserialize(targetJson)!; // then @@ -198,7 +210,7 @@ void testEnums() { final split = SplitModel(map); // when - final targetJson = JsonMapper.serialize(split, compactOptions); + final targetJson = JsonMapper.serialize(split); final instance = JsonMapper.deserialize(targetJson)!; // then @@ -208,12 +220,52 @@ void testEnums() { expect(instance.values[Category.second]!.primary, '2'); }); + test('Should retain style casing transparently', () { + // given + const json = '[{ "Id": "6267a8bf0a66709b2c7021bd", "Radio": "WMBus" }]'; + const jsonPascal = '["WMBus","MobileInternet","LoRa","NBIoT","MBus"]'; + const jsonKebab = + '["w-m-bus","mobile-internet","lo-ra","n-b-io-t","m-bus"]'; + + // when + final target = JsonMapper.deserialize>(json); + final targetPascal = JsonMapper.deserialize>( + jsonPascal, DeserializationOptions(caseStyle: CaseStyle.pascal)); + final targetKebab = JsonMapper.deserialize>( + jsonKebab, DeserializationOptions(caseStyle: CaseStyle.kebab)); + final targetPascalJson = JsonMapper.serialize([ + EDeviceRadioType.wMBus, + EDeviceRadioType.mobileInternet, + EDeviceRadioType.loRa, + EDeviceRadioType.nBIoT, + EDeviceRadioType.mBus + ], SerializationOptions(caseStyle: CaseStyle.pascal)); + + // then + expect(targetPascalJson, jsonPascal); + expect(target!.first.radio, EDeviceRadioType.wMBus); + expect(targetPascal, [ + EDeviceRadioType.wMBus, + EDeviceRadioType.mobileInternet, + EDeviceRadioType.loRa, + EDeviceRadioType.nBIoT, + EDeviceRadioType.mBus + ]); + expect(targetKebab, [ + EDeviceRadioType.wMBus, + EDeviceRadioType.mobileInternet, + EDeviceRadioType.loRa, + EDeviceRadioType.nBIoT, + EDeviceRadioType.mBus + ]); + }); + test('Enum Iterable instance', () { // given final instance = [Color.black, Color.blue]; // when - final targetJson = JsonMapper.serialize(instance, compactOptions); + final targetJson = JsonMapper.serialize(instance); final targetList = JsonMapper.deserialize>(targetJson)!; final targetSet = JsonMapper.deserialize>(targetJson)!; @@ -256,7 +308,7 @@ void testEnums() { }); JsonMapper().useAdapter(adapter); - final targetJson = JsonMapper.serialize(instance, compactOptions); + final targetJson = JsonMapper.serialize(instance); final target = JsonMapper.deserialize(targetJson)!; JsonMapper().removeAdapter(adapter); @@ -288,7 +340,7 @@ void testEnums() { colorsSet: {Color.black, Color.blue}); // when - final targetJson = JsonMapper.serialize(instance, compactOptions); + final targetJson = JsonMapper.serialize(instance); final target = JsonMapper.deserialize(targetJson)!; @@ -320,7 +372,7 @@ void testEnums() { // when JsonMapper().useAdapter(adapter); - final targetJson = JsonMapper.serialize(instance, compactOptions); + final targetJson = JsonMapper.serialize(instance); final target = JsonMapper.deserialize>(json); JsonMapper().removeAdapter(adapter); @@ -348,7 +400,7 @@ void testEnums() { // when JsonMapper().useAdapter(adapter); - final targetJson = JsonMapper.serialize(instance, compactOptions); + final targetJson = JsonMapper.serialize(instance); final target = JsonMapper.deserialize>(targetJson); JsonMapper().removeAdapter(adapter); @@ -376,7 +428,7 @@ void testEnums() { // when JsonMapper().useAdapter(adapter); - final targetJson = JsonMapper.serialize(instance, compactOptions); + final targetJson = JsonMapper.serialize(instance); final target = JsonMapper.deserialize>(targetJson); JsonMapper().removeAdapter(adapter); @@ -417,7 +469,7 @@ void testEnums() { // when JsonMapper().useAdapter(adapter); - final targetJson = JsonMapper.serialize(instance, compactOptions); + final targetJson = JsonMapper.serialize(instance); final target = JsonMapper.deserialize(targetJson)!; JsonMapper().removeAdapter(adapter); @@ -449,7 +501,7 @@ void testEnums() { // when JsonMapper().useAdapter(adapter); - final targetJson = JsonMapper.serialize(instance, compactOptions); + final targetJson = JsonMapper.serialize(instance); final target = JsonMapper.deserialize(targetJson)!; diff --git a/perf-test/test/unit/test.errors.dart b/perf-test/test/unit/test.errors.dart index 761d8ee2..b08f8dae 100644 --- a/perf-test/test/unit/test.errors.dart +++ b/perf-test/test/unit/test.errors.dart @@ -1,6 +1,6 @@ import 'package:dart_json_mapper/dart_json_mapper.dart'; import 'package:test/test.dart'; -import 'package:unit_testing/unit_testing.dart' show compactOptions, Car, Color; +import 'package:unit_testing/unit_testing.dart' show Car, Color, Business; class UnAnnotated {} @@ -9,7 +9,7 @@ enum Sex { male, female } @jsonSerializable @Json(allowCircularReferences: 1) class MyCar extends Car { - MyCar(model, color) : super(model, color); + MyCar(super.model, super.color); } @jsonSerializable @@ -26,6 +26,13 @@ class UnAnnotatedEnumField { Sex sex = Sex.female; } +@jsonSerializable +class PartialPerson { + final String name; + final int age; + const PartialPerson(this.age, this.name); +} + @jsonSerializable class ObjectWithRequiredField { @JsonProperty(requiredMessage: 'This Value is critically important') @@ -125,7 +132,7 @@ void testErrorHandling() { '[ignoreForSerialization], [ignoreIfNull], ' '[Json.ignoreNullMembers] has no meaning', () { final instance = ObjectWithRequiredNullableField(value2: ''); - final json = JsonMapper.serialize(instance, compactOptions); + final json = JsonMapper.serialize(instance); expect(json, '{"value":null,"value2":""}'); expect(catchError(() => JsonMapper.serialize(instance)), null); }); @@ -140,14 +147,45 @@ void testErrorHandling() { test('[Suppress] Circular reference detection during serialization', () { final car = MyCar('VW', Color.blue); car.replacement = car; - expect(catchError(() => JsonMapper.serialize(car, compactOptions)), null); + expect(catchError(() => JsonMapper.serialize(car)), null); + }); + + test('Unable to create instance of class error handling - null arguments', () { + // given + final json = '{"name":"James"}'; + + // when + final error = + catchError(() => JsonMapper.deserialize(json)); + + // then + expect( + error.toString(), + 'Unable to instantiate class \'PartialPerson\'\n' + ' with null positional arguments [age]'); + expect(error, TypeMatcher()); + }); + + test('Unable to create instance of class error handling', () { + // given + final json = '{"name":["James"],"age":{}}'; + + // when + final error = + catchError(() => JsonMapper.deserialize(json)); + + // then + expect( + error.toString(), + 'type \'_Map\' is not a subtype of type \'int\''); + expect(error, TypeMatcher()); }); test('Allow using same object same level during serialization', () { final device = Device(); final us = UserSettings([device, device]); - expect(catchError(() => JsonMapper.serialize(us, compactOptions)), null); + expect(catchError(() => JsonMapper.serialize(us)), null); }); test('Missing annotation on class', () { @@ -159,5 +197,23 @@ void testErrorHandling() { expect(catchError(() => JsonMapper.deserialize('{}')), TypeMatcher()); }); + + test('Discriminator property value is wrong', () { + // given + final json = '{"type":"p","a":1}'; + + // when + final error = catchError(() => JsonMapper.deserialize(json)); + + // then + expect( + error.toString(), + '"p" is not a valid discriminator value for type "Business".\n' + '\n' + 'Valid values are:\n' + ' - BusinessType.private,\n' + ' - BusinessType.public'); + expect(error, TypeMatcher()); + }); }); } diff --git a/perf-test/test/unit/test.flatten.dart b/perf-test/test/unit/test.flatten.dart new file mode 100644 index 00000000..80de7a0b --- /dev/null +++ b/perf-test/test/unit/test.flatten.dart @@ -0,0 +1,85 @@ +import 'dart:convert'; +import 'package:dart_json_mapper/dart_json_mapper.dart'; +import 'package:test/test.dart'; + +// Models as defined in the GitHub issue +@jsonSerializable +class MyObject { + @JsonProperty(name: 'name') + final String name; + + @JsonProperty(flatten: true) + final FlattenObject page; + + MyObject({ + required this.name, + required this.page, + }); +} + +@jsonSerializable +class FlattenObject { + @JsonProperty(name: 'pageNumber') + final int pageNumber; + + @JsonProperty(name: 'pageSize') + final int pageSize; + + FlattenObject({ + required this.pageNumber, + required this.pageSize, + }); +} + +// Note: For these tests to run correctly with dart_json_mapper, +// the necessary .mapper.g.dart files must be generated by build_runner. +// This typically involves: +// 1. Ensuring these classes are discoverable by build_runner (e.g., via a part file +// or being included in a library that build_runner processes). +// 2. Running `dart run build_runner build --delete-conflicting-outputs` +// 3. Importing the generated main adapter initialization file and calling its init method +// (e.g., `import 'path/to/generated_adapter.init.dart'; initializeJsonMapper();`) +// usually in a setupTest.dart or at the beginning of the main test file. + +void testFlatten() { + group('JsonProperty(flatten: true) tests', () { + test('can deserialize with flatten: true', () { + const jsonString = """ + { + "name": "Lost Mine of Phandelver", + "pageNumber": 1, + "pageSize": 10 + } + """; + + final decodedJson = jsonDecode(jsonString); + final actual = JsonMapper.deserialize(decodedJson); + + expect(actual, isA()); + expect(actual?.name, 'Lost Mine of Phandelver'); + expect(actual?.page, isA()); + expect(actual?.page.pageNumber, 1); + expect(actual?.page.pageSize, 10); + }); + + test('can serialize with flatten: true', () { + const expectedJsonString = """ +{ + "name": "Lost Mine of Phandelver", + "pageNumber": 1, + "pageSize": 10 +}"""; + + final myObject = MyObject( + name: 'Lost Mine of Phandelver', + page: FlattenObject(pageNumber: 1, pageSize: 10), + ); + + final actualJson = JsonMapper.serialize(myObject); + final expectedMap = jsonDecode(expectedJsonString); + final actualMap = jsonDecode(actualJson); + + expect(actualMap, equals(expectedMap)); + }); + }); +} diff --git a/perf-test/test/unit/test.generics.dart b/perf-test/test/unit/test.generics.dart index 97a81789..dfc68054 100644 --- a/perf-test/test/unit/test.generics.dart +++ b/perf-test/test/unit/test.generics.dart @@ -16,7 +16,7 @@ void testGenerics() { group('[Verify generics cases]', () { test('ApiResult', () { // given - final json = '''{"Success":true,"Result":{"Id":1,"Name":"aa"}}'''; + final json = '''{"success":true,"result":{"id":1,"name":"aa"}}'''; // when final target = ApiResult().fromJson(json); @@ -24,13 +24,13 @@ void testGenerics() { final target2 = JsonMapper.deserialize(json); // then - expect(target!.Result!.Id, 1); - expect(target.Result!.Name, 'aa'); - expect(target.Success, true); + expect(target!.result!.id, 1); + expect(target.result!.name, 'aa'); + expect(target.success, true); - expect(target2!.Result!.Id, 1); - expect(target2.Result!.Name, 'aa'); - expect(target2.Success, true); + expect(target2!.result!.id, 1); + expect(target2.result!.name, 'aa'); + expect(target2.success, true); expect(target.toJson(), json); expect(target.toJson(), target2.toJson()); diff --git a/perf-test/test/unit/test.inheritance.dart b/perf-test/test/unit/test.inheritance.dart index cb85fd34..5b31319f 100644 --- a/perf-test/test/unit/test.inheritance.dart +++ b/perf-test/test/unit/test.inheritance.dart @@ -1,133 +1,21 @@ import 'package:dart_json_mapper/dart_json_mapper.dart'; import 'package:test/test.dart'; -import 'package:unit_testing/unit_testing.dart' show compactOptions; - -@jsonSerializable -enum BusinessType { private, public, private2, public2 } - -/// Case 1: Using getter only as [discriminatorProperty] /////////////////////// -@jsonSerializable -@Json(discriminatorProperty: 'type') -abstract class Business { - BusinessType get type; -} - -@jsonSerializable -@Json(discriminatorValue: BusinessType.private) -class Hotel extends Business { - int stars; - - @override - BusinessType get type => BusinessType.private; - - Hotel(this.stars); -} - -@jsonSerializable -@Json(discriminatorValue: BusinessType.public) -class Startup extends Business { - int userCount; - - @override - BusinessType get type => BusinessType.public; - - Startup(this.userCount); -} - -@jsonSerializable -class Stakeholder { - String fullName; - List businesses; - - Stakeholder(this.fullName, this.businesses); -} - -/// Case 2: Using writable property as [discriminatorProperty] ///////////////// -@jsonSerializable -@Json(discriminatorProperty: 'type') -abstract class Business2 { - BusinessType? type; -} - -@jsonSerializable -@Json(discriminatorValue: BusinessType.private2) -class Hotel2 extends Business2 { - int stars; - - Hotel2(this.stars); -} - -@jsonSerializable -@Json(discriminatorValue: BusinessType.public2) -class Startup2 extends Business2 { - int userCount; - - Startup2(this.userCount); -} - -@jsonSerializable -class Stakeholder2 { - String fullName; - List businesses; - - Stakeholder2(this.fullName, this.businesses); -} - -/// Case 3: No [discriminatorProperty] exists on the class ///////////////////// -class DataModel { - String? id; - DataModel({this.id}); -} - -@jsonSerializable -@Json(discriminatorProperty: '@type') -abstract class AbstractUser extends DataModel { - late final String? email; - - AbstractUser copyWith({ - String? id, - String? email, - }); - - factory AbstractUser(String id) = UserImpl.newUser; -} - -@jsonSerializable -class UserImpl extends DataModel implements AbstractUser { - @override - late final String? email; - - UserImpl({String? id, this.email}) : super(id: id); - - factory UserImpl.newUser(String id) { - return UserImpl( - id: id, - ); - } - - @override - AbstractUser copyWith({String? email, String? id}) { - return UserImpl(id: id ?? this.id, email: email ?? this.email); - } -} - -@jsonSerializable -abstract class MyBaseClass { - @JsonProperty(name: 'myCustomGetterName') - String get myGetter; - - @JsonProperty(name: 'myCustomFieldName') - final String myField = ''; -} - -@jsonSerializable -class MySuperclass implements MyBaseClass { - @override - String get myGetter => 'myGetterValue'; - - @override - final String myField = 'myFieldValue'; -} +import 'package:unit_testing/unit_testing.dart' + show + TypedStringChild, + TypedStringParent, + TypedChild, + TypedParent, + AbstractUser, + UserImpl, + BusinessType, + MySuperclass, + Stakeholder, + Stakeholder2, + Hotel, + Hotel2, + Startup, + Startup2; void testInheritance() { group('[Verify inheritance cases]', () { @@ -172,7 +60,7 @@ void testInheritance() { '{"myCustomFieldName":"myFieldValue","myCustomGetterName":"myGetterValue"}'; // when - final targetJson = JsonMapper.serialize(instance, compactOptions); + final targetJson = JsonMapper.serialize(instance); final target = JsonMapper.deserialize(targetJson)!; // then @@ -196,5 +84,34 @@ void testInheritance() { expect(newUser.id, 'xxx'); expect(newUser.email, 'x@x.com'); }); + + test('Discriminator as of Type type', () { + // given + final childInstance = TypedChild(); + + // when + final firstJson = JsonMapper.serialize(childInstance); + final targetInstance = JsonMapper.deserialize(firstJson); + final secondJson = JsonMapper.serialize(targetInstance); + + // then + expect(targetInstance, TypeMatcher()); + expect(firstJson, secondJson); + }); + + test('Discriminator as of type String', () { + // given + final childInstance = TypedStringChild(); + + // when + final firstJson = JsonMapper.serialize(childInstance); + final targetInstance = + JsonMapper.deserialize(firstJson); + final secondJson = JsonMapper.serialize(targetInstance); + + // then + expect(targetInstance, TypeMatcher()); + expect(firstJson, secondJson); + }); }); } diff --git a/perf-test/test/unit/test.integration.dart b/perf-test/test/unit/test.integration.dart index b32e51f3..2833ef71 100644 --- a/perf-test/test/unit/test.integration.dart +++ b/perf-test/test/unit/test.integration.dart @@ -1,7 +1,15 @@ import 'package:dart_json_mapper/dart_json_mapper.dart'; import 'package:test/test.dart'; import 'package:unit_testing/unit_testing.dart' - show Car, Color, Person, personJson; + show + Car, + Color, + Person, + personJson, + defaultOptions, + ComposableCar, + Wheel, + Tire; void testIntegration() { group('[Verify end to end serialization <=> deserialization]', () { @@ -47,6 +55,26 @@ void testIntegration() { expect(instance.model, car.model); }); + test('Object copyWith full depth', () { + // given + final car = ComposableCar( + Wheel(Tire(0.2, Color.black)), Wheel(Tire(0.2, Color.black))); + + // when + final instance = JsonMapper.copyWith(car, { + 'leftWheel': { + 'tire': {'thickness': 32} + } + })!; + + // then + expect(instance == car, false); + expect(instance.rightWheel.tire.thickness, 0.2); + expect(instance.rightWheel.tire.color, Color.black); + expect(instance.leftWheel.tire.thickness, 32); + expect(instance.leftWheel.tire.color, Color.black); + }); + test('Serialize to target template map', () { // given final template = {'a': 'a', 'b': true}; @@ -62,7 +90,7 @@ void testIntegration() { test('Serialization', () { // given // when - final json = JsonMapper.serialize(Person()); + final json = JsonMapper.serialize(Person(), defaultOptions); // then expect(json, personJson); }); @@ -73,7 +101,7 @@ void testIntegration() { final stopwatch = Stopwatch()..start(); final person = JsonMapper.deserialize(personJson); final deserializationMs = stopwatch.elapsedMilliseconds; - final json = JsonMapper.serialize(person); + final json = JsonMapper.serialize(person, defaultOptions); print('Deserialization executed in $deserializationMs ms'); print( 'Serialization executed in ${stopwatch.elapsedMilliseconds - deserializationMs} ms'); diff --git a/perf-test/test/unit/test.mixins.dart b/perf-test/test/unit/test.mixins.dart index 18d6590a..23f051ef 100644 --- a/perf-test/test/unit/test.mixins.dart +++ b/perf-test/test/unit/test.mixins.dart @@ -1,6 +1,5 @@ import 'package:dart_json_mapper/dart_json_mapper.dart'; import 'package:test/test.dart'; -import 'package:unit_testing/unit_testing.dart' show compactOptions; @Json(discriminatorProperty: 'type') @jsonSerializable @@ -31,7 +30,7 @@ void testMixinCases() { ); // when - final targetJson = JsonMapper.serialize(instance, compactOptions); + final targetJson = JsonMapper.serialize(instance); final target = JsonMapper.deserialize(targetJson)!; // then diff --git a/perf-test/test/unit/test.name.casing.dart b/perf-test/test/unit/test.name.casing.dart index 4fcb556c..b097dde3 100644 --- a/perf-test/test/unit/test.name.casing.dart +++ b/perf-test/test/unit/test.name.casing.dart @@ -1,6 +1,6 @@ import 'package:dart_json_mapper/dart_json_mapper.dart'; import 'package:test/test.dart'; -import 'package:unit_testing/unit_testing.dart' show compactOptions, Color; +import 'package:unit_testing/unit_testing.dart' show Color; @jsonSerializable @Json(caseStyle: CaseStyle.kebab) @@ -39,7 +39,7 @@ void testNameCasing() { final instance = NameCaseObjectOverride( mainTitle: 'title', description: 'desc', hasMainProperty: true); // when - final json = JsonMapper.serialize(instance, compactOptions); + final json = JsonMapper.serialize(instance); // then expect(json, '''{"main-title":"title","description":"desc","has-main-property":true,"primary-color":null}'''); @@ -50,7 +50,7 @@ void testNameCasing() { final instance = NameCaseObject( mainTitle: 'title', description: 'desc', hasMainProperty: true); // when - final json = JsonMapper.serialize(instance, compactOptions); + final json = JsonMapper.serialize(instance); // then expect(json, '''{"mainTitle":"title","description":"desc","hasMainProperty":true,"primaryColor":"grayMetallic"}'''); diff --git a/perf-test/test/unit/test.name.path.dart b/perf-test/test/unit/test.name.path.dart index 0ec6bd71..3c171550 100644 --- a/perf-test/test/unit/test.name.path.dart +++ b/perf-test/test/unit/test.name.path.dart @@ -1,6 +1,5 @@ import 'package:dart_json_mapper/dart_json_mapper.dart'; import 'package:test/test.dart'; -import 'package:unit_testing/unit_testing.dart' show compactOptions; @jsonSerializable class Feature { @@ -134,7 +133,7 @@ void testNamePath() { final instance = DeepNestedList(items: ['1', '2', '3']); final json = '''{"root":{"foo":{"bar":{"items":["1","2","3"]}}}}'''; // when - final targetJson = JsonMapper.serialize(instance, compactOptions); + final targetJson = JsonMapper.serialize(instance); // then expect(targetJson, json); }); @@ -146,7 +145,7 @@ void testNamePath() { '''[{"id":1,"name":"category1","products":[{"id":3629,"name":"Apple","features":[{"id":9,"name":"Red Color"}]},{"id":5674,"name":"Banana"}]},{"id":2,"name":"category2","products":[{"id":7834,"name":"Car"},{"id":2386,"name":"Truck"}]}]'''; // when final target = JsonMapper.deserialize>(json)!; - final targetJson = JsonMapper.serialize(target, compactOptions); + final targetJson = JsonMapper.serialize(target); // then expect(targetJson, json); expect(target.first.products!.first.categoryId, 1); diff --git a/perf-test/test/unit/test.partial.deserialization.dart b/perf-test/test/unit/test.partial.deserialization.dart index f52946db..ae925d02 100644 --- a/perf-test/test/unit/test.partial.deserialization.dart +++ b/perf-test/test/unit/test.partial.deserialization.dart @@ -1,7 +1,7 @@ import 'package:dart_json_mapper/dart_json_mapper.dart'; import 'package:test/test.dart'; import 'package:unit_testing/unit_testing.dart' - show compactOptions, Car, GettersOnly, Person; + show defaultOptions, Car, GettersOnly, Person; @jsonSerializable class IgnoreMembers { @@ -16,13 +16,10 @@ class IgnoreMembers { @jsonSerializable class FieldAliasObject { - // alias ?? fullName ?? name - @JsonProperty(name: ['alias', 'fullName', 'name']) - final String? name; - - const FieldAliasObject({ - this.name, - }); + @JsonProperty( + name: ['id', 'id_a', 'id_b', 'id_test'], + ) + int id = 0; } @jsonSerializable @@ -128,7 +125,7 @@ void testPartialDeserialization() { }'''; // when final target = JsonMapper.deserialize(json)!; - final targetJson = JsonMapper.serialize(target); + final targetJson = JsonMapper.serialize(target, defaultOptions); // then expect(targetJson, json); @@ -179,14 +176,14 @@ void testPartialDeserialization() { "pagination_total": 1053, "cars": [ { - "modelName": "Tesla X", + "model_name": "Tesla X", "color": "red" } ] }'''; // when final target = JsonMapper.deserialize(json)!; - final targetJson = JsonMapper.serialize(target); + final targetJson = JsonMapper.serialize(target, defaultOptions); // then expect(targetJson, json); @@ -212,7 +209,7 @@ void testPartialDeserialization() { }'''; // when final target = JsonMapper.deserialize(json)!; - final targetJson = JsonMapper.serialize(target); + final targetJson = JsonMapper.serialize(target, defaultOptions); // then expect(targetJson, json); @@ -242,30 +239,30 @@ void testPartialDeserialization() { // given final instance = GettersOnly(); // when - final json = JsonMapper.serialize(instance, compactOptions); + final json = JsonMapper.serialize(instance); // then expect(json, '''{"nextCatId":"c0","nextDogId":"h1"}'''); }); test('Field aliases, main ?? alias1 ?? alias2 ?? ...', () { // given - final json = '''{"alias":"007"}'''; - final json2 = '''{"alias":null,"fullName":"James Bond"}'''; - final json3 = '''{"name":"Bond"}'''; - final json4 = '''{"name":"Bond","fullName":"James Bond"}'''; - final instance = FieldAliasObject(name: '007'); - // when - final targetJson = JsonMapper.serialize(instance, compactOptions); - final target = JsonMapper.deserialize(json)!; - final target2 = JsonMapper.deserialize(json2)!; - final target3 = JsonMapper.deserialize(json3)!; - final target4 = JsonMapper.deserialize(json4)!; - // then - expect(targetJson, json); - expect(target.name, '007'); - expect(target2.name, 'James Bond'); - expect(target3.name, 'Bond'); - expect(target4.name, 'James Bond'); + List> cases = [ + ['''{}''', 0], + ['''{"id": 90}''', 90], + ['''{"id": 90, "id_a": 91}''', 90], + ['''{"id_a": 90, "id_b": 91, "id_test": 92}''', 90], + ['''{"id_b": 90, "id_test": 91}''', 90], + ['''{"id_a": 91}''', 91], + ['''{"id_test": 92}''', 92], + ['''{"id_b": 93}''', 93], + ]; + for (final testCase in cases) { + // when + final target = JsonMapper.deserialize(testCase.first); + + // then + expect(target!.id, testCase.last); + } }); test('Unmapped properties deserialization & serialization', () { @@ -282,7 +279,7 @@ void testPartialDeserialization() { expect(instance.extraPropsMap['extra2'], 'xxx'); // when - final json2 = JsonMapper.serialize(instance, compactOptions); + final json2 = JsonMapper.serialize(instance); // then expect(json2, json); }); @@ -299,7 +296,7 @@ void testPartialDeserialization() { expect(instance.getLastName(), 'Marley'); // when - final targetJson = JsonMapper.serialize(instance, compactOptions); + final targetJson = JsonMapper.serialize(instance); // then expect(targetJson, json); @@ -320,8 +317,8 @@ void testPartialDeserialization() { final expectedJson = '''{"name":"Bob"}'''; // when - final targetJson = JsonMapper.serialize( - IgnoreMembers(name: 'Bob', title: 'Marley'), compactOptions); + final targetJson = + JsonMapper.serialize(IgnoreMembers(name: 'Bob', title: 'Marley')); // then expect(targetJson, expectedJson); diff --git a/perf-test/test/unit/test.raw_json.dart b/perf-test/test/unit/test.raw_json.dart new file mode 100644 index 00000000..4c2508a3 --- /dev/null +++ b/perf-test/test/unit/test.raw_json.dart @@ -0,0 +1,124 @@ +import 'package:test/test.dart'; +import 'package:dart_json_mapper/dart_json_mapper.dart'; +// Import for initializeJsonMapper removed as per subtask + +@jsonSerializable +class RawJsonTestModel { + @JsonProperty(name: 'rawField', rawJson: true) + String? rawField; + + @JsonProperty(name: 'normalField') + String? normalField; + + String? noAnnotationField; + + RawJsonTestModel({this.rawField, this.normalField, this.noAnnotationField}); +} + +void main() { + // setUpAll block removed as per subtask + + group('RawJson Serialization Tests', () { + test('Serialization - rawJson with valid JSON object string', () { + final model = RawJsonTestModel(rawField: '{"key": "value"}'); + final json = JsonMapper.serialize(model); + expect(json, contains('"rawField":{"key":"value"}')); + expect(json, isNot(contains('"rawField":"{\\"key\\":\\"value\\"}"'))); + }); + + test('Serialization - rawJson with valid JSON array string', () { + final model = RawJsonTestModel(rawField: '[1, 2, 3]'); + final json = JsonMapper.serialize(model); + expect(json, contains('"rawField":[1,2,3]')); + expect(json, isNot(contains('"rawField":"[1,2,3]"'))); + }); + + test('Serialization - rawJson with invalid JSON string', () { + final model = RawJsonTestModel(rawField: 'not actually json'); + final json = JsonMapper.serialize(model); + expect(json, contains('"rawField":"not actually json"')); + }); + + test('Serialization - rawJson with null rawField', () { + final model = RawJsonTestModel(rawField: null); + final json = JsonMapper.serialize(model); + expect(json, contains('"rawField":null')); + }); + + test('Serialization - normalField with string value', () { + final model = RawJsonTestModel(normalField: 'a normal string'); + final json = JsonMapper.serialize(model); + expect(json, contains('"normalField":"a normal string"')); + }); + + test('Serialization - noAnnotationField with string value', () { + final model = RawJsonTestModel(noAnnotationField: 'no annotation'); + final json = JsonMapper.serialize(model); + expect(json, contains('"noAnnotationField":"no annotation"')); + }); + }); + + group('RawJson Deserialization Tests', () { + test('Deserialization - rawJson with JSON object', () { + final json = '{"rawField": {"id": 2, "data": "content"}}'; + final model = JsonMapper.deserialize(json)!; + expect(model.rawField, '{"id":2,"data":"content"}'); + }); + + test('Deserialization - rawJson with JSON array', () { + final json = '{"rawField": [1, 2, 3, "test"]}'; + final model = JsonMapper.deserialize(json)!; + expect(model.rawField, '[1,2,3,"test"]'); + }); + + test('Deserialization - rawJson with JSON string', () { + final json = '{"rawField": "a string value"}'; + final model = JsonMapper.deserialize(json)!; + expect(model.rawField, 'a string value'); + }); + + test('Deserialization - rawJson with null', () { + final json = '{"rawField": null}'; + final model = JsonMapper.deserialize(json)!; + expect(model.rawField, isNull); + }); + + test('Deserialization - normalField with string value', () { + final json = '{"normalField": "a normal string value"}'; + final model = JsonMapper.deserialize(json)!; + expect(model.normalField, 'a normal string value'); + }); + + test('Deserialization - noAnnotationField with string value', () { + final json = '{"noAnnotationField": "no annotation value"}'; + final model = JsonMapper.deserialize(json)!; + expect(model.noAnnotationField, 'no annotation value'); + }); + + test('Deserialization - all fields', () { + final json = ''' + { + "rawField": {"complex": [1, {"nested": "object"}]}, + "normalField": "normal text", + "noAnnotationField": "unannotated text" + } + '''; + final model = JsonMapper.deserialize(json)!; + expect(model.rawField, '{"complex":[1,{"nested":"object"}]}'); + expect(model.normalField, 'normal text'); + expect(model.noAnnotationField, 'unannotated text'); + }); + + test('Deserialization - rawJson with number', () { + final json = '{"rawField": 123}'; + final model = JsonMapper.deserialize(json)!; + expect(model.rawField, '123'); + }); + + test('Deserialization - rawJson with boolean', () { + final json = '{"rawField": true}'; + final model = JsonMapper.deserialize(json)!; + expect(model.rawField, 'true'); + }); + }); +} diff --git a/perf-test/test/unit/test.required.dart b/perf-test/test/unit/test.required.dart index fc191d5e..d14ffc27 100644 --- a/perf-test/test/unit/test.required.dart +++ b/perf-test/test/unit/test.required.dart @@ -1,6 +1,5 @@ import 'package:dart_json_mapper/dart_json_mapper.dart'; import 'package:test/test.dart'; -import 'package:unit_testing/unit_testing.dart' show compactOptions; @jsonSerializable class MyNullableFieldsExample { @@ -73,7 +72,7 @@ void testRequired() { // when final target = JsonMapper.deserialize(json)!; - final targetJson = JsonMapper.serialize(target, compactOptions); + final targetJson = JsonMapper.serialize(target); // then expect(target.metadata.id, 'e5PPxnqulIgBslobDZPXVweoTCC2'); @@ -86,8 +85,7 @@ void testRequired() { final json = r'''{"myList":null,"myMap":null,"mySet":null}'''; // when - final targetJson = - JsonMapper.toJson(MyNullableFieldsExample(), compactOptions); + final targetJson = JsonMapper.toJson(MyNullableFieldsExample()); // then expect(targetJson, json); @@ -98,8 +96,8 @@ void testRequired() { final json = r'''{"accountType":null}'''; // when - final targetJson = JsonMapper.toJson( - TransactionsRequestModel(accountType: null), compactOptions); + final targetJson = + JsonMapper.toJson(TransactionsRequestModel(accountType: null)); final target = JsonMapper.toMap(TransactionsRequestModel(accountType: null)); diff --git a/perf-test/test/unit/test.scheme.dart b/perf-test/test/unit/test.scheme.dart index fb22139f..c40508f0 100644 --- a/perf-test/test/unit/test.scheme.dart +++ b/perf-test/test/unit/test.scheme.dart @@ -1,6 +1,5 @@ import 'package:dart_json_mapper/dart_json_mapper.dart'; import 'package:test/test.dart'; -import 'package:unit_testing/unit_testing.dart' show compactOptions; enum Scheme { A, B } @@ -65,9 +64,9 @@ class Address { Address.jsonTwo(); @JsonConstructor(scheme: Scheme.A) - Address.jsonOne(@JsonProperty(name: 'id', scheme: Scheme.A) int _id, + Address.jsonOne(@JsonProperty(name: 'id', scheme: Scheme.A) int id, this.streetList, this.city) - : id = _id.toString(), + : id = id.toString(), street = streetList?.elementAt(0), district = city; } @@ -120,7 +119,7 @@ void testScheme() { // given final instance = Object('No Scheme'); // when - final json = JsonMapper.serialize(instance, compactOptions); + final json = JsonMapper.serialize(instance); // then expect(json, '''{"default":{"title":"No Scheme"}}'''); }); diff --git a/perf-test/test/unit/test.special.cases.dart b/perf-test/test/unit/test.special.cases.dart index dc3adaf9..8bee54f0 100644 --- a/perf-test/test/unit/test.special.cases.dart +++ b/perf-test/test/unit/test.special.cases.dart @@ -1,6 +1,26 @@ import 'package:dart_json_mapper/dart_json_mapper.dart'; import 'package:test/test.dart'; -import 'package:unit_testing/unit_testing.dart' show compactOptions; + +@jsonSerializable +class A { + final int a; + + A(this.a); + + @override + bool operator ==(Object other) => + runtimeType == other.runtimeType && a == (other as A).a; + + @override + int get hashCode => a.hashCode; +} + +@jsonSerializable +class B { + final A a; + + B(this.a); +} @jsonSerializable class AA { @@ -34,7 +54,8 @@ class UnbalancedGetSet { } set id( - String? /*expects a nullable value that my come like that from the server*/ id) { + String? /*expects a nullable value that my come like that from the server*/ + id) { _id = (id ?? ""); } } @@ -53,6 +74,19 @@ void testSpecialCases() { expect(target.content, TypeMatcher()); expect(target.content!.content, TypeMatcher>()); }); + + test('A/B circular reference serialization with overridden hashCode', () { + // given + final json = '[{"a":1},{"a":1},{"a":{"a":1}}]'; + final a = A(1); + final b = B(A(1)); + + // when + final target = JsonMapper.serialize([a, a, b]); + + // then + expect(target, json); + }); }); group('[Verify unbalanced setter/getter types]', () { @@ -63,7 +97,7 @@ void testSpecialCases() { // when final target = JsonMapper.deserialize(inputJson)!; - final outputJson = JsonMapper.serialize(target, compactOptions); + final outputJson = JsonMapper.serialize(target); // then expect(target, TypeMatcher()); diff --git a/perf-test/test/unit/test.tuple.dart b/perf-test/test/unit/test.tuple.dart index 70f6f8d7..0cd0fdf2 100644 --- a/perf-test/test/unit/test.tuple.dart +++ b/perf-test/test/unit/test.tuple.dart @@ -1,5 +1,6 @@ import 'package:dart_json_mapper/dart_json_mapper.dart'; import 'package:test/test.dart'; +import 'package:unit_testing/unit_testing.dart' show defaultOptions; /// Motivation: https://github.com/google/json_serializable.dart/blob/master/example/lib/tuple_example.dart @@ -51,7 +52,7 @@ void testTupleCases() { ); // when - final targetJson = JsonMapper.serialize(instance); + final targetJson = JsonMapper.serialize(instance, defaultOptions); final target = JsonMapper.deserialize(targetJson)!; // then diff --git a/perf-test/test/unit/test.value.decorators.dart b/perf-test/test/unit/test.value.decorators.dart index d809abf2..221587b9 100644 --- a/perf-test/test/unit/test.value.decorators.dart +++ b/perf-test/test/unit/test.value.decorators.dart @@ -1,6 +1,6 @@ import 'package:dart_json_mapper/dart_json_mapper.dart'; import 'package:test/test.dart'; -import 'package:unit_testing/unit_testing.dart' show compactOptions, Color, Car; +import 'package:unit_testing/unit_testing.dart' show Color, Car; @jsonSerializable class NavbarTab { @@ -197,7 +197,7 @@ void testValueDecorators() { test.mailingList.add('test2222@test.com'); test.mailingList.add('test33333@test.com'); // when - final json = JsonMapper.serialize(test, compactOptions); + final json = JsonMapper.serialize(test); final instance = JsonMapper.deserialize(json)!; // then expect(json, @@ -241,7 +241,7 @@ void testValueDecorators() { set.add(Car('Audi', Color.green)); // when - final json = JsonMapper.serialize(set, compactOptions); + final json = JsonMapper.serialize(set); // then expect(json, carListJson); @@ -309,6 +309,41 @@ void testValueDecorators() { JsonMapper().removeAdapter(adapter); }); + test('List of Lists with null', () { + // given + final json = '''{ + "lists": [ + null, + null, + [{}, {}, null], + [{}, {}, {}] + ] +}'''; + final adapter = JsonMapperAdapter(valueDecorators: { + typeOf>>(): (value) { + (value as List).removeWhere((x) => x == null); + return value.cast>(); + }, + typeOf>(): (value) { + (value as List).removeWhere((x) => x == null); + return value.cast(); + } + }); + JsonMapper().useAdapter(adapter); + + // when + final target = JsonMapper.deserialize(json)!; + + // then + expect(target.lists?.length, 2); + expect(target.lists?.first.length, 2); + expect(target.lists?.last.length, 3); + expect(target.lists?.first.first, TypeMatcher()); + expect(target.lists?.last.first, TypeMatcher()); + + JsonMapper().removeAdapter(adapter); + }); + test('List of Lists with constructor', () { // given final json = '''{ diff --git a/perf-test/test/unit/test_issue_225.dart b/perf-test/test/unit/test_issue_225.dart new file mode 100644 index 00000000..6dabdd38 --- /dev/null +++ b/perf-test/test/unit/test_issue_225.dart @@ -0,0 +1,65 @@ +import 'package:dart_json_mapper/dart_json_mapper.dart'; +import 'package:test/test.dart'; + +@jsonSerializable +class PageImpl { + List? content; + bool? last; + int? totalPages; + int? totalElements; + bool? first; + int? size; + int? number; + int? numberOfElements; + bool? empty; +} + +@jsonSerializable +class Advertising { + String? title; + double? price; + int? quantity; + String? description; + List? images; + List? sourceImages; + String? sourceId; + String? sourceUrl; +} + +@jsonSerializable +class AdvertisingPage extends PageImpl { + @override + List? content = []; +} + +void testIssue225() { + group('Issue 225', () { + test('should deserialize generic list correctly', () { + const json = ''' + { + "content":[ + { + "id":25438, + "created":"2024-07-04T18:46:31.048683Z", + "updated":"2024-07-04T20:45:00.030320Z", + "title":"SCOOTER HOVERBOARD BATERIA" + } + ], + "last":false, + "totalPages":23962, + "totalElements":23962, + "first":true, + "size":1, + "number":0, + "numberOfElements":1, + "empty":false + } + '''; + final page = JsonMapper.deserialize(json); + expect(page, isA()); + expect(page?.content, isA>()); + expect(page?.content?.first, isA()); + expect(page?.content?.first.title, 'SCOOTER HOVERBOARD BATERIA'); + }); + }); +} \ No newline at end of file diff --git a/perf-test/test/unit/test_issue_234.dart b/perf-test/test/unit/test_issue_234.dart new file mode 100644 index 00000000..abdc4fc0 --- /dev/null +++ b/perf-test/test/unit/test_issue_234.dart @@ -0,0 +1,56 @@ +import 'dart:convert'; +import 'package:dart_json_mapper/dart_json_mapper.dart'; +import 'package:test/test.dart'; + +@JsonSerializable() +@Json(caseStyle: CaseStyle.pascal, ignoreNullMembers: true) +class DTDeviceStatus { + String? deviceIdent; + List gatewayConnections = []; +} + +@JsonSerializable() +@Json(caseStyle: CaseStyle.pascal, ignoreNullMembers: true) +class DTGatewayConnection { + String gwIdent = ''; + DTSignalStrength? signalStrength; +} + +@JsonSerializable() +@Json(ignoreNullMembers: true) +class DTSignalStrength { + @JsonProperty(name: 'Strength') + String strength = 'NoSignal'; + + @JsonProperty(name: 'RSSI') + int? rssi; + + @JsonProperty(name: 'SpreadFactor') + int? spreadFactor; +} + +void testIssue234() { + group('Issue 234 tests', () { + test('Cannot map uppercase ints or doubles', () { + // given + final json = + '''{"Devices": [{"DeviceIdent": "94949494", "GatewayConnections": [{"GwIdent": "39847384", "SignalStrength": {"Strength": "Strong", "RSSI": -74, "SNR": 0.0, "SpreadFactor": 5}}]}]}'''; + + // when + final jsonMap = jsonDecode(json); + final devices = + JsonMapper.deserialize>(jsonMap['Devices']); + + // then + expect(devices, isNotNull); + expect(devices!.length, 1); + final device = devices[0]; + expect(device.gatewayConnections.length, 1); + final gatewayConnection = device.gatewayConnections[0]; + expect(gatewayConnection.signalStrength, isNotNull); + expect(gatewayConnection.signalStrength!.strength, 'Strong'); + expect(gatewayConnection.signalStrength!.rssi, -74); + expect(gatewayConnection.signalStrength!.spreadFactor, 5); + }); + }); +} \ No newline at end of file