mobile bluesky app made with flutter lazurite.stormlightlabs.org/
mobile bluesky flutter
3
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: theme definition tests

+1104 -775
+1 -1
docs/specs/phase-2.md
··· 33 33 ``` 34 34 35 35 **Console output** — enabled only in debug builds via `DevelopmentFilter`. 36 - Uses `PrettyPrinter` with method counts, colors, and emojis for readability 36 + Uses `PrettyPrinter` with method counts and colors for readability 37 37 in the terminal. 38 38 39 39 **File output** — enabled in all builds. Uses `AdvancedFileOutput` which
+263 -739
lib/core/database/app_database.g.dart
··· 26 26 type: DriftSqlType.string, 27 27 requiredDuringInsert: true, 28 28 ); 29 - static const VerificationMeta _displayNameMeta = const VerificationMeta( 30 - 'displayName', 31 - ); 29 + static const VerificationMeta _displayNameMeta = const VerificationMeta('displayName'); 32 30 @override 33 31 late final GeneratedColumn<String> displayName = GeneratedColumn<String>( 34 32 'display_name', ··· 37 35 type: DriftSqlType.string, 38 36 requiredDuringInsert: false, 39 37 ); 40 - static const VerificationMeta _serviceMeta = const VerificationMeta( 41 - 'service', 42 - ); 38 + static const VerificationMeta _serviceMeta = const VerificationMeta('service'); 43 39 @override 44 40 late final GeneratedColumn<String> service = GeneratedColumn<String>( 45 41 'service', ··· 48 44 type: DriftSqlType.string, 49 45 requiredDuringInsert: false, 50 46 ); 51 - static const VerificationMeta _accessTokenMeta = const VerificationMeta( 52 - 'accessToken', 53 - ); 47 + static const VerificationMeta _accessTokenMeta = const VerificationMeta('accessToken'); 54 48 @override 55 49 late final GeneratedColumn<String> accessToken = GeneratedColumn<String>( 56 50 'access_token', ··· 59 53 type: DriftSqlType.string, 60 54 requiredDuringInsert: true, 61 55 ); 62 - static const VerificationMeta _refreshTokenMeta = const VerificationMeta( 63 - 'refreshToken', 64 - ); 56 + static const VerificationMeta _refreshTokenMeta = const VerificationMeta('refreshToken'); 65 57 @override 66 58 late final GeneratedColumn<String> refreshToken = GeneratedColumn<String>( 67 59 'refresh_token', ··· 70 62 type: DriftSqlType.string, 71 63 requiredDuringInsert: false, 72 64 ); 73 - static const VerificationMeta _dpopPublicKeyMeta = const VerificationMeta( 74 - 'dpopPublicKey', 75 - ); 65 + static const VerificationMeta _dpopPublicKeyMeta = const VerificationMeta('dpopPublicKey'); 76 66 @override 77 67 late final GeneratedColumn<String> dpopPublicKey = GeneratedColumn<String>( 78 68 'dpop_public_key', ··· 81 71 type: DriftSqlType.string, 82 72 requiredDuringInsert: false, 83 73 ); 84 - static const VerificationMeta _dpopPrivateKeyMeta = const VerificationMeta( 85 - 'dpopPrivateKey', 86 - ); 74 + static const VerificationMeta _dpopPrivateKeyMeta = const VerificationMeta('dpopPrivateKey'); 87 75 @override 88 76 late final GeneratedColumn<String> dpopPrivateKey = GeneratedColumn<String>( 89 77 'dpop_private_key', ··· 92 80 type: DriftSqlType.string, 93 81 requiredDuringInsert: false, 94 82 ); 95 - static const VerificationMeta _dpopNonceMeta = const VerificationMeta( 96 - 'dpopNonce', 97 - ); 83 + static const VerificationMeta _dpopNonceMeta = const VerificationMeta('dpopNonce'); 98 84 @override 99 85 late final GeneratedColumn<String> dpopNonce = GeneratedColumn<String>( 100 86 'dpop_nonce', ··· 103 89 type: DriftSqlType.string, 104 90 requiredDuringInsert: false, 105 91 ); 106 - static const VerificationMeta _expiresAtMeta = const VerificationMeta( 107 - 'expiresAt', 108 - ); 92 + static const VerificationMeta _expiresAtMeta = const VerificationMeta('expiresAt'); 109 93 @override 110 94 late final GeneratedColumn<DateTime> expiresAt = GeneratedColumn<DateTime>( 111 95 'expires_at', ··· 114 98 type: DriftSqlType.dateTime, 115 99 requiredDuringInsert: false, 116 100 ); 117 - static const VerificationMeta _createdAtMeta = const VerificationMeta( 118 - 'createdAt', 119 - ); 101 + static const VerificationMeta _createdAtMeta = const VerificationMeta('createdAt'); 120 102 @override 121 103 late final GeneratedColumn<DateTime> createdAt = GeneratedColumn<DateTime>( 122 104 'created_at', ··· 126 108 requiredDuringInsert: false, 127 109 defaultValue: currentDateAndTime, 128 110 ); 129 - static const VerificationMeta _updatedAtMeta = const VerificationMeta( 130 - 'updatedAt', 131 - ); 111 + static const VerificationMeta _updatedAtMeta = const VerificationMeta('updatedAt'); 132 112 @override 133 113 late final GeneratedColumn<DateTime> updatedAt = GeneratedColumn<DateTime>( 134 114 'updated_at', ··· 159 139 String get actualTableName => $name; 160 140 static const String $name = 'accounts'; 161 141 @override 162 - VerificationContext validateIntegrity( 163 - Insertable<Account> instance, { 164 - bool isInserting = false, 165 - }) { 142 + VerificationContext validateIntegrity(Insertable<Account> instance, {bool isInserting = false}) { 166 143 final context = VerificationContext(); 167 144 final data = instance.toColumns(true); 168 145 if (data.containsKey('did')) { 169 - context.handle( 170 - _didMeta, 171 - did.isAcceptableOrUnknown(data['did']!, _didMeta), 172 - ); 146 + context.handle(_didMeta, did.isAcceptableOrUnknown(data['did']!, _didMeta)); 173 147 } else if (isInserting) { 174 148 context.missing(_didMeta); 175 149 } 176 150 if (data.containsKey('handle')) { 177 - context.handle( 178 - _handleMeta, 179 - handle.isAcceptableOrUnknown(data['handle']!, _handleMeta), 180 - ); 151 + context.handle(_handleMeta, handle.isAcceptableOrUnknown(data['handle']!, _handleMeta)); 181 152 } else if (isInserting) { 182 153 context.missing(_handleMeta); 183 154 } 184 155 if (data.containsKey('display_name')) { 185 - context.handle( 186 - _displayNameMeta, 187 - displayName.isAcceptableOrUnknown( 188 - data['display_name']!, 189 - _displayNameMeta, 190 - ), 191 - ); 156 + context.handle(_displayNameMeta, displayName.isAcceptableOrUnknown(data['display_name']!, _displayNameMeta)); 192 157 } 193 158 if (data.containsKey('service')) { 194 - context.handle( 195 - _serviceMeta, 196 - service.isAcceptableOrUnknown(data['service']!, _serviceMeta), 197 - ); 159 + context.handle(_serviceMeta, service.isAcceptableOrUnknown(data['service']!, _serviceMeta)); 198 160 } 199 161 if (data.containsKey('access_token')) { 200 - context.handle( 201 - _accessTokenMeta, 202 - accessToken.isAcceptableOrUnknown( 203 - data['access_token']!, 204 - _accessTokenMeta, 205 - ), 206 - ); 162 + context.handle(_accessTokenMeta, accessToken.isAcceptableOrUnknown(data['access_token']!, _accessTokenMeta)); 207 163 } else if (isInserting) { 208 164 context.missing(_accessTokenMeta); 209 165 } 210 166 if (data.containsKey('refresh_token')) { 211 - context.handle( 212 - _refreshTokenMeta, 213 - refreshToken.isAcceptableOrUnknown( 214 - data['refresh_token']!, 215 - _refreshTokenMeta, 216 - ), 217 - ); 167 + context.handle(_refreshTokenMeta, refreshToken.isAcceptableOrUnknown(data['refresh_token']!, _refreshTokenMeta)); 218 168 } 219 169 if (data.containsKey('dpop_public_key')) { 220 170 context.handle( 221 171 _dpopPublicKeyMeta, 222 - dpopPublicKey.isAcceptableOrUnknown( 223 - data['dpop_public_key']!, 224 - _dpopPublicKeyMeta, 225 - ), 172 + dpopPublicKey.isAcceptableOrUnknown(data['dpop_public_key']!, _dpopPublicKeyMeta), 226 173 ); 227 174 } 228 175 if (data.containsKey('dpop_private_key')) { 229 176 context.handle( 230 177 _dpopPrivateKeyMeta, 231 - dpopPrivateKey.isAcceptableOrUnknown( 232 - data['dpop_private_key']!, 233 - _dpopPrivateKeyMeta, 234 - ), 178 + dpopPrivateKey.isAcceptableOrUnknown(data['dpop_private_key']!, _dpopPrivateKeyMeta), 235 179 ); 236 180 } 237 181 if (data.containsKey('dpop_nonce')) { 238 - context.handle( 239 - _dpopNonceMeta, 240 - dpopNonce.isAcceptableOrUnknown(data['dpop_nonce']!, _dpopNonceMeta), 241 - ); 182 + context.handle(_dpopNonceMeta, dpopNonce.isAcceptableOrUnknown(data['dpop_nonce']!, _dpopNonceMeta)); 242 183 } 243 184 if (data.containsKey('expires_at')) { 244 - context.handle( 245 - _expiresAtMeta, 246 - expiresAt.isAcceptableOrUnknown(data['expires_at']!, _expiresAtMeta), 247 - ); 185 + context.handle(_expiresAtMeta, expiresAt.isAcceptableOrUnknown(data['expires_at']!, _expiresAtMeta)); 248 186 } 249 187 if (data.containsKey('created_at')) { 250 - context.handle( 251 - _createdAtMeta, 252 - createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta), 253 - ); 188 + context.handle(_createdAtMeta, createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta)); 254 189 } 255 190 if (data.containsKey('updated_at')) { 256 - context.handle( 257 - _updatedAtMeta, 258 - updatedAt.isAcceptableOrUnknown(data['updated_at']!, _updatedAtMeta), 259 - ); 191 + context.handle(_updatedAtMeta, updatedAt.isAcceptableOrUnknown(data['updated_at']!, _updatedAtMeta)); 260 192 } 261 193 return context; 262 194 } ··· 267 199 Account map(Map<String, dynamic> data, {String? tablePrefix}) { 268 200 final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; 269 201 return Account( 270 - did: attachedDatabase.typeMapping.read( 271 - DriftSqlType.string, 272 - data['${effectivePrefix}did'], 273 - )!, 274 - handle: attachedDatabase.typeMapping.read( 275 - DriftSqlType.string, 276 - data['${effectivePrefix}handle'], 277 - )!, 278 - displayName: attachedDatabase.typeMapping.read( 279 - DriftSqlType.string, 280 - data['${effectivePrefix}display_name'], 281 - ), 282 - service: attachedDatabase.typeMapping.read( 283 - DriftSqlType.string, 284 - data['${effectivePrefix}service'], 285 - ), 286 - accessToken: attachedDatabase.typeMapping.read( 287 - DriftSqlType.string, 288 - data['${effectivePrefix}access_token'], 289 - )!, 290 - refreshToken: attachedDatabase.typeMapping.read( 291 - DriftSqlType.string, 292 - data['${effectivePrefix}refresh_token'], 293 - ), 294 - dpopPublicKey: attachedDatabase.typeMapping.read( 295 - DriftSqlType.string, 296 - data['${effectivePrefix}dpop_public_key'], 297 - ), 202 + did: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}did'])!, 203 + handle: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}handle'])!, 204 + displayName: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}display_name']), 205 + service: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}service']), 206 + accessToken: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}access_token'])!, 207 + refreshToken: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}refresh_token']), 208 + dpopPublicKey: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}dpop_public_key']), 298 209 dpopPrivateKey: attachedDatabase.typeMapping.read( 299 210 DriftSqlType.string, 300 211 data['${effectivePrefix}dpop_private_key'], 301 212 ), 302 - dpopNonce: attachedDatabase.typeMapping.read( 303 - DriftSqlType.string, 304 - data['${effectivePrefix}dpop_nonce'], 305 - ), 306 - expiresAt: attachedDatabase.typeMapping.read( 307 - DriftSqlType.dateTime, 308 - data['${effectivePrefix}expires_at'], 309 - ), 310 - createdAt: attachedDatabase.typeMapping.read( 311 - DriftSqlType.dateTime, 312 - data['${effectivePrefix}created_at'], 313 - )!, 314 - updatedAt: attachedDatabase.typeMapping.read( 315 - DriftSqlType.dateTime, 316 - data['${effectivePrefix}updated_at'], 317 - )!, 213 + dpopNonce: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}dpop_nonce']), 214 + expiresAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}expires_at']), 215 + createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, 216 + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, 318 217 ); 319 218 } 320 219 ··· 387 286 return AccountsCompanion( 388 287 did: Value(did), 389 288 handle: Value(handle), 390 - displayName: displayName == null && nullToAbsent 391 - ? const Value.absent() 392 - : Value(displayName), 393 - service: service == null && nullToAbsent 394 - ? const Value.absent() 395 - : Value(service), 289 + displayName: displayName == null && nullToAbsent ? const Value.absent() : Value(displayName), 290 + service: service == null && nullToAbsent ? const Value.absent() : Value(service), 396 291 accessToken: Value(accessToken), 397 - refreshToken: refreshToken == null && nullToAbsent 398 - ? const Value.absent() 399 - : Value(refreshToken), 400 - dpopPublicKey: dpopPublicKey == null && nullToAbsent 401 - ? const Value.absent() 402 - : Value(dpopPublicKey), 403 - dpopPrivateKey: dpopPrivateKey == null && nullToAbsent 404 - ? const Value.absent() 405 - : Value(dpopPrivateKey), 406 - dpopNonce: dpopNonce == null && nullToAbsent 407 - ? const Value.absent() 408 - : Value(dpopNonce), 409 - expiresAt: expiresAt == null && nullToAbsent 410 - ? const Value.absent() 411 - : Value(expiresAt), 292 + refreshToken: refreshToken == null && nullToAbsent ? const Value.absent() : Value(refreshToken), 293 + dpopPublicKey: dpopPublicKey == null && nullToAbsent ? const Value.absent() : Value(dpopPublicKey), 294 + dpopPrivateKey: dpopPrivateKey == null && nullToAbsent ? const Value.absent() : Value(dpopPrivateKey), 295 + dpopNonce: dpopNonce == null && nullToAbsent ? const Value.absent() : Value(dpopNonce), 296 + expiresAt: expiresAt == null && nullToAbsent ? const Value.absent() : Value(expiresAt), 412 297 createdAt: Value(createdAt), 413 298 updatedAt: Value(updatedAt), 414 299 ); 415 300 } 416 301 417 - factory Account.fromJson( 418 - Map<String, dynamic> json, { 419 - ValueSerializer? serializer, 420 - }) { 302 + factory Account.fromJson(Map<String, dynamic> json, {ValueSerializer? serializer}) { 421 303 serializer ??= driftRuntimeOptions.defaultSerializer; 422 304 return Account( 423 305 did: serializer.fromJson<String>(json['did']), ··· 473 355 service: service.present ? service.value : this.service, 474 356 accessToken: accessToken ?? this.accessToken, 475 357 refreshToken: refreshToken.present ? refreshToken.value : this.refreshToken, 476 - dpopPublicKey: dpopPublicKey.present 477 - ? dpopPublicKey.value 478 - : this.dpopPublicKey, 479 - dpopPrivateKey: dpopPrivateKey.present 480 - ? dpopPrivateKey.value 481 - : this.dpopPrivateKey, 358 + dpopPublicKey: dpopPublicKey.present ? dpopPublicKey.value : this.dpopPublicKey, 359 + dpopPrivateKey: dpopPrivateKey.present ? dpopPrivateKey.value : this.dpopPrivateKey, 482 360 dpopNonce: dpopNonce.present ? dpopNonce.value : this.dpopNonce, 483 361 expiresAt: expiresAt.present ? expiresAt.value : this.expiresAt, 484 362 createdAt: createdAt ?? this.createdAt, ··· 488 366 return Account( 489 367 did: data.did.present ? data.did.value : this.did, 490 368 handle: data.handle.present ? data.handle.value : this.handle, 491 - displayName: data.displayName.present 492 - ? data.displayName.value 493 - : this.displayName, 369 + displayName: data.displayName.present ? data.displayName.value : this.displayName, 494 370 service: data.service.present ? data.service.value : this.service, 495 - accessToken: data.accessToken.present 496 - ? data.accessToken.value 497 - : this.accessToken, 498 - refreshToken: data.refreshToken.present 499 - ? data.refreshToken.value 500 - : this.refreshToken, 501 - dpopPublicKey: data.dpopPublicKey.present 502 - ? data.dpopPublicKey.value 503 - : this.dpopPublicKey, 504 - dpopPrivateKey: data.dpopPrivateKey.present 505 - ? data.dpopPrivateKey.value 506 - : this.dpopPrivateKey, 371 + accessToken: data.accessToken.present ? data.accessToken.value : this.accessToken, 372 + refreshToken: data.refreshToken.present ? data.refreshToken.value : this.refreshToken, 373 + dpopPublicKey: data.dpopPublicKey.present ? data.dpopPublicKey.value : this.dpopPublicKey, 374 + dpopPrivateKey: data.dpopPrivateKey.present ? data.dpopPrivateKey.value : this.dpopPrivateKey, 507 375 dpopNonce: data.dpopNonce.present ? data.dpopNonce.value : this.dpopNonce, 508 376 expiresAt: data.expiresAt.present ? data.expiresAt.value : this.expiresAt, 509 377 createdAt: data.createdAt.present ? data.createdAt.value : this.createdAt, ··· 739 607 } 740 608 } 741 609 742 - class $CachedProfilesTable extends CachedProfiles 743 - with TableInfo<$CachedProfilesTable, CachedProfile> { 610 + class $CachedProfilesTable extends CachedProfiles with TableInfo<$CachedProfilesTable, CachedProfile> { 744 611 @override 745 612 final GeneratedDatabase attachedDatabase; 746 613 final String? _alias; ··· 763 630 type: DriftSqlType.string, 764 631 requiredDuringInsert: true, 765 632 ); 766 - static const VerificationMeta _payloadMeta = const VerificationMeta( 767 - 'payload', 768 - ); 633 + static const VerificationMeta _payloadMeta = const VerificationMeta('payload'); 769 634 @override 770 635 late final GeneratedColumn<String> payload = GeneratedColumn<String>( 771 636 'payload', ··· 774 639 type: DriftSqlType.string, 775 640 requiredDuringInsert: true, 776 641 ); 777 - static const VerificationMeta _fetchedAtMeta = const VerificationMeta( 778 - 'fetchedAt', 779 - ); 642 + static const VerificationMeta _fetchedAtMeta = const VerificationMeta('fetchedAt'); 780 643 @override 781 644 late final GeneratedColumn<DateTime> fetchedAt = GeneratedColumn<DateTime>( 782 645 'fetched_at', ··· 794 657 String get actualTableName => $name; 795 658 static const String $name = 'cached_profiles'; 796 659 @override 797 - VerificationContext validateIntegrity( 798 - Insertable<CachedProfile> instance, { 799 - bool isInserting = false, 800 - }) { 660 + VerificationContext validateIntegrity(Insertable<CachedProfile> instance, {bool isInserting = false}) { 801 661 final context = VerificationContext(); 802 662 final data = instance.toColumns(true); 803 663 if (data.containsKey('did')) { 804 - context.handle( 805 - _didMeta, 806 - did.isAcceptableOrUnknown(data['did']!, _didMeta), 807 - ); 664 + context.handle(_didMeta, did.isAcceptableOrUnknown(data['did']!, _didMeta)); 808 665 } else if (isInserting) { 809 666 context.missing(_didMeta); 810 667 } 811 668 if (data.containsKey('handle')) { 812 - context.handle( 813 - _handleMeta, 814 - handle.isAcceptableOrUnknown(data['handle']!, _handleMeta), 815 - ); 669 + context.handle(_handleMeta, handle.isAcceptableOrUnknown(data['handle']!, _handleMeta)); 816 670 } else if (isInserting) { 817 671 context.missing(_handleMeta); 818 672 } 819 673 if (data.containsKey('payload')) { 820 - context.handle( 821 - _payloadMeta, 822 - payload.isAcceptableOrUnknown(data['payload']!, _payloadMeta), 823 - ); 674 + context.handle(_payloadMeta, payload.isAcceptableOrUnknown(data['payload']!, _payloadMeta)); 824 675 } else if (isInserting) { 825 676 context.missing(_payloadMeta); 826 677 } 827 678 if (data.containsKey('fetched_at')) { 828 - context.handle( 829 - _fetchedAtMeta, 830 - fetchedAt.isAcceptableOrUnknown(data['fetched_at']!, _fetchedAtMeta), 831 - ); 679 + context.handle(_fetchedAtMeta, fetchedAt.isAcceptableOrUnknown(data['fetched_at']!, _fetchedAtMeta)); 832 680 } 833 681 return context; 834 682 } ··· 839 687 CachedProfile map(Map<String, dynamic> data, {String? tablePrefix}) { 840 688 final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; 841 689 return CachedProfile( 842 - did: attachedDatabase.typeMapping.read( 843 - DriftSqlType.string, 844 - data['${effectivePrefix}did'], 845 - )!, 846 - handle: attachedDatabase.typeMapping.read( 847 - DriftSqlType.string, 848 - data['${effectivePrefix}handle'], 849 - )!, 850 - payload: attachedDatabase.typeMapping.read( 851 - DriftSqlType.string, 852 - data['${effectivePrefix}payload'], 853 - )!, 854 - fetchedAt: attachedDatabase.typeMapping.read( 855 - DriftSqlType.dateTime, 856 - data['${effectivePrefix}fetched_at'], 857 - )!, 690 + did: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}did'])!, 691 + handle: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}handle'])!, 692 + payload: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}payload'])!, 693 + fetchedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}fetched_at'])!, 858 694 ); 859 695 } 860 696 ··· 869 705 final String handle; 870 706 final String payload; 871 707 final DateTime fetchedAt; 872 - const CachedProfile({ 873 - required this.did, 874 - required this.handle, 875 - required this.payload, 876 - required this.fetchedAt, 877 - }); 708 + const CachedProfile({required this.did, required this.handle, required this.payload, required this.fetchedAt}); 878 709 @override 879 710 Map<String, Expression> toColumns(bool nullToAbsent) { 880 711 final map = <String, Expression>{}; ··· 894 725 ); 895 726 } 896 727 897 - factory CachedProfile.fromJson( 898 - Map<String, dynamic> json, { 899 - ValueSerializer? serializer, 900 - }) { 728 + factory CachedProfile.fromJson(Map<String, dynamic> json, {ValueSerializer? serializer}) { 901 729 serializer ??= driftRuntimeOptions.defaultSerializer; 902 730 return CachedProfile( 903 731 did: serializer.fromJson<String>(json['did']), ··· 917 745 }; 918 746 } 919 747 920 - CachedProfile copyWith({ 921 - String? did, 922 - String? handle, 923 - String? payload, 924 - DateTime? fetchedAt, 925 - }) => CachedProfile( 748 + CachedProfile copyWith({String? did, String? handle, String? payload, DateTime? fetchedAt}) => CachedProfile( 926 749 did: did ?? this.did, 927 750 handle: handle ?? this.handle, 928 751 payload: payload ?? this.payload, ··· 1048 871 } 1049 872 } 1050 873 1051 - class $CachedPostsTable extends CachedPosts 1052 - with TableInfo<$CachedPostsTable, CachedPost> { 874 + class $CachedPostsTable extends CachedPosts with TableInfo<$CachedPostsTable, CachedPost> { 1053 875 @override 1054 876 final GeneratedDatabase attachedDatabase; 1055 877 final String? _alias; ··· 1063 885 type: DriftSqlType.string, 1064 886 requiredDuringInsert: true, 1065 887 ); 1066 - static const VerificationMeta _authorDidMeta = const VerificationMeta( 1067 - 'authorDid', 1068 - ); 888 + static const VerificationMeta _authorDidMeta = const VerificationMeta('authorDid'); 1069 889 @override 1070 890 late final GeneratedColumn<String> authorDid = GeneratedColumn<String>( 1071 891 'author_did', ··· 1074 894 type: DriftSqlType.string, 1075 895 requiredDuringInsert: true, 1076 896 ); 1077 - static const VerificationMeta _payloadMeta = const VerificationMeta( 1078 - 'payload', 1079 - ); 897 + static const VerificationMeta _payloadMeta = const VerificationMeta('payload'); 1080 898 @override 1081 899 late final GeneratedColumn<String> payload = GeneratedColumn<String>( 1082 900 'payload', ··· 1085 903 type: DriftSqlType.string, 1086 904 requiredDuringInsert: true, 1087 905 ); 1088 - static const VerificationMeta _createdAtMeta = const VerificationMeta( 1089 - 'createdAt', 1090 - ); 906 + static const VerificationMeta _createdAtMeta = const VerificationMeta('createdAt'); 1091 907 @override 1092 908 late final GeneratedColumn<DateTime> createdAt = GeneratedColumn<DateTime>( 1093 909 'created_at', ··· 1096 912 type: DriftSqlType.dateTime, 1097 913 requiredDuringInsert: false, 1098 914 ); 1099 - static const VerificationMeta _fetchedAtMeta = const VerificationMeta( 1100 - 'fetchedAt', 1101 - ); 915 + static const VerificationMeta _fetchedAtMeta = const VerificationMeta('fetchedAt'); 1102 916 @override 1103 917 late final GeneratedColumn<DateTime> fetchedAt = GeneratedColumn<DateTime>( 1104 918 'fetched_at', ··· 1109 923 defaultValue: currentDateAndTime, 1110 924 ); 1111 925 @override 1112 - List<GeneratedColumn> get $columns => [ 1113 - uri, 1114 - authorDid, 1115 - payload, 1116 - createdAt, 1117 - fetchedAt, 1118 - ]; 926 + List<GeneratedColumn> get $columns => [uri, authorDid, payload, createdAt, fetchedAt]; 1119 927 @override 1120 928 String get aliasedName => _alias ?? actualTableName; 1121 929 @override 1122 930 String get actualTableName => $name; 1123 931 static const String $name = 'cached_posts'; 1124 932 @override 1125 - VerificationContext validateIntegrity( 1126 - Insertable<CachedPost> instance, { 1127 - bool isInserting = false, 1128 - }) { 933 + VerificationContext validateIntegrity(Insertable<CachedPost> instance, {bool isInserting = false}) { 1129 934 final context = VerificationContext(); 1130 935 final data = instance.toColumns(true); 1131 936 if (data.containsKey('uri')) { 1132 - context.handle( 1133 - _uriMeta, 1134 - uri.isAcceptableOrUnknown(data['uri']!, _uriMeta), 1135 - ); 937 + context.handle(_uriMeta, uri.isAcceptableOrUnknown(data['uri']!, _uriMeta)); 1136 938 } else if (isInserting) { 1137 939 context.missing(_uriMeta); 1138 940 } 1139 941 if (data.containsKey('author_did')) { 1140 - context.handle( 1141 - _authorDidMeta, 1142 - authorDid.isAcceptableOrUnknown(data['author_did']!, _authorDidMeta), 1143 - ); 942 + context.handle(_authorDidMeta, authorDid.isAcceptableOrUnknown(data['author_did']!, _authorDidMeta)); 1144 943 } else if (isInserting) { 1145 944 context.missing(_authorDidMeta); 1146 945 } 1147 946 if (data.containsKey('payload')) { 1148 - context.handle( 1149 - _payloadMeta, 1150 - payload.isAcceptableOrUnknown(data['payload']!, _payloadMeta), 1151 - ); 947 + context.handle(_payloadMeta, payload.isAcceptableOrUnknown(data['payload']!, _payloadMeta)); 1152 948 } else if (isInserting) { 1153 949 context.missing(_payloadMeta); 1154 950 } 1155 951 if (data.containsKey('created_at')) { 1156 - context.handle( 1157 - _createdAtMeta, 1158 - createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta), 1159 - ); 952 + context.handle(_createdAtMeta, createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta)); 1160 953 } 1161 954 if (data.containsKey('fetched_at')) { 1162 - context.handle( 1163 - _fetchedAtMeta, 1164 - fetchedAt.isAcceptableOrUnknown(data['fetched_at']!, _fetchedAtMeta), 1165 - ); 955 + context.handle(_fetchedAtMeta, fetchedAt.isAcceptableOrUnknown(data['fetched_at']!, _fetchedAtMeta)); 1166 956 } 1167 957 return context; 1168 958 } ··· 1173 963 CachedPost map(Map<String, dynamic> data, {String? tablePrefix}) { 1174 964 final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; 1175 965 return CachedPost( 1176 - uri: attachedDatabase.typeMapping.read( 1177 - DriftSqlType.string, 1178 - data['${effectivePrefix}uri'], 1179 - )!, 1180 - authorDid: attachedDatabase.typeMapping.read( 1181 - DriftSqlType.string, 1182 - data['${effectivePrefix}author_did'], 1183 - )!, 1184 - payload: attachedDatabase.typeMapping.read( 1185 - DriftSqlType.string, 1186 - data['${effectivePrefix}payload'], 1187 - )!, 1188 - createdAt: attachedDatabase.typeMapping.read( 1189 - DriftSqlType.dateTime, 1190 - data['${effectivePrefix}created_at'], 1191 - ), 1192 - fetchedAt: attachedDatabase.typeMapping.read( 1193 - DriftSqlType.dateTime, 1194 - data['${effectivePrefix}fetched_at'], 1195 - )!, 966 + uri: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}uri'])!, 967 + authorDid: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}author_did'])!, 968 + payload: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}payload'])!, 969 + createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at']), 970 + fetchedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}fetched_at'])!, 1196 971 ); 1197 972 } 1198 973 ··· 1233 1008 uri: Value(uri), 1234 1009 authorDid: Value(authorDid), 1235 1010 payload: Value(payload), 1236 - createdAt: createdAt == null && nullToAbsent 1237 - ? const Value.absent() 1238 - : Value(createdAt), 1011 + createdAt: createdAt == null && nullToAbsent ? const Value.absent() : Value(createdAt), 1239 1012 fetchedAt: Value(fetchedAt), 1240 1013 ); 1241 1014 } 1242 1015 1243 - factory CachedPost.fromJson( 1244 - Map<String, dynamic> json, { 1245 - ValueSerializer? serializer, 1246 - }) { 1016 + factory CachedPost.fromJson(Map<String, dynamic> json, {ValueSerializer? serializer}) { 1247 1017 serializer ??= driftRuntimeOptions.defaultSerializer; 1248 1018 return CachedPost( 1249 1019 uri: serializer.fromJson<String>(json['uri']), ··· 1301 1071 } 1302 1072 1303 1073 @override 1304 - int get hashCode => 1305 - Object.hash(uri, authorDid, payload, createdAt, fetchedAt); 1074 + int get hashCode => Object.hash(uri, authorDid, payload, createdAt, fetchedAt); 1306 1075 @override 1307 1076 bool operator ==(Object other) => 1308 1077 identical(this, other) || ··· 1413 1182 } 1414 1183 } 1415 1184 1416 - class $SettingsTable extends Settings 1417 - with TableInfo<$SettingsTable, SettingsEntry> { 1185 + class $SettingsTable extends Settings with TableInfo<$SettingsTable, SettingsEntry> { 1418 1186 @override 1419 1187 final GeneratedDatabase attachedDatabase; 1420 1188 final String? _alias; ··· 1437 1205 type: DriftSqlType.string, 1438 1206 requiredDuringInsert: true, 1439 1207 ); 1440 - static const VerificationMeta _updatedAtMeta = const VerificationMeta( 1441 - 'updatedAt', 1442 - ); 1208 + static const VerificationMeta _updatedAtMeta = const VerificationMeta('updatedAt'); 1443 1209 @override 1444 1210 late final GeneratedColumn<DateTime> updatedAt = GeneratedColumn<DateTime>( 1445 1211 'updated_at', ··· 1457 1223 String get actualTableName => $name; 1458 1224 static const String $name = 'settings'; 1459 1225 @override 1460 - VerificationContext validateIntegrity( 1461 - Insertable<SettingsEntry> instance, { 1462 - bool isInserting = false, 1463 - }) { 1226 + VerificationContext validateIntegrity(Insertable<SettingsEntry> instance, {bool isInserting = false}) { 1464 1227 final context = VerificationContext(); 1465 1228 final data = instance.toColumns(true); 1466 1229 if (data.containsKey('key')) { 1467 - context.handle( 1468 - _keyMeta, 1469 - key.isAcceptableOrUnknown(data['key']!, _keyMeta), 1470 - ); 1230 + context.handle(_keyMeta, key.isAcceptableOrUnknown(data['key']!, _keyMeta)); 1471 1231 } else if (isInserting) { 1472 1232 context.missing(_keyMeta); 1473 1233 } 1474 1234 if (data.containsKey('value')) { 1475 - context.handle( 1476 - _valueMeta, 1477 - value.isAcceptableOrUnknown(data['value']!, _valueMeta), 1478 - ); 1235 + context.handle(_valueMeta, value.isAcceptableOrUnknown(data['value']!, _valueMeta)); 1479 1236 } else if (isInserting) { 1480 1237 context.missing(_valueMeta); 1481 1238 } 1482 1239 if (data.containsKey('updated_at')) { 1483 - context.handle( 1484 - _updatedAtMeta, 1485 - updatedAt.isAcceptableOrUnknown(data['updated_at']!, _updatedAtMeta), 1486 - ); 1240 + context.handle(_updatedAtMeta, updatedAt.isAcceptableOrUnknown(data['updated_at']!, _updatedAtMeta)); 1487 1241 } 1488 1242 return context; 1489 1243 } ··· 1494 1248 SettingsEntry map(Map<String, dynamic> data, {String? tablePrefix}) { 1495 1249 final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; 1496 1250 return SettingsEntry( 1497 - key: attachedDatabase.typeMapping.read( 1498 - DriftSqlType.string, 1499 - data['${effectivePrefix}key'], 1500 - )!, 1501 - value: attachedDatabase.typeMapping.read( 1502 - DriftSqlType.string, 1503 - data['${effectivePrefix}value'], 1504 - )!, 1505 - updatedAt: attachedDatabase.typeMapping.read( 1506 - DriftSqlType.dateTime, 1507 - data['${effectivePrefix}updated_at'], 1508 - )!, 1251 + key: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}key'])!, 1252 + value: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}value'])!, 1253 + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, 1509 1254 ); 1510 1255 } 1511 1256 ··· 1519 1264 final String key; 1520 1265 final String value; 1521 1266 final DateTime updatedAt; 1522 - const SettingsEntry({ 1523 - required this.key, 1524 - required this.value, 1525 - required this.updatedAt, 1526 - }); 1267 + const SettingsEntry({required this.key, required this.value, required this.updatedAt}); 1527 1268 @override 1528 1269 Map<String, Expression> toColumns(bool nullToAbsent) { 1529 1270 final map = <String, Expression>{}; ··· 1534 1275 } 1535 1276 1536 1277 SettingsCompanion toCompanion(bool nullToAbsent) { 1537 - return SettingsCompanion( 1538 - key: Value(key), 1539 - value: Value(value), 1540 - updatedAt: Value(updatedAt), 1541 - ); 1278 + return SettingsCompanion(key: Value(key), value: Value(value), updatedAt: Value(updatedAt)); 1542 1279 } 1543 1280 1544 - factory SettingsEntry.fromJson( 1545 - Map<String, dynamic> json, { 1546 - ValueSerializer? serializer, 1547 - }) { 1281 + factory SettingsEntry.fromJson(Map<String, dynamic> json, {ValueSerializer? serializer}) { 1548 1282 serializer ??= driftRuntimeOptions.defaultSerializer; 1549 1283 return SettingsEntry( 1550 1284 key: serializer.fromJson<String>(json['key']), ··· 1563 1297 } 1564 1298 1565 1299 SettingsEntry copyWith({String? key, String? value, DateTime? updatedAt}) => 1566 - SettingsEntry( 1567 - key: key ?? this.key, 1568 - value: value ?? this.value, 1569 - updatedAt: updatedAt ?? this.updatedAt, 1570 - ); 1300 + SettingsEntry(key: key ?? this.key, value: value ?? this.value, updatedAt: updatedAt ?? this.updatedAt); 1571 1301 SettingsEntry copyWithCompanion(SettingsCompanion data) { 1572 1302 return SettingsEntry( 1573 1303 key: data.key.present ? data.key.value : this.key, ··· 1681 1411 late final $CachedPostsTable cachedPosts = $CachedPostsTable(this); 1682 1412 late final $SettingsTable settings = $SettingsTable(this); 1683 1413 @override 1684 - Iterable<TableInfo<Table, Object?>> get allTables => 1685 - allSchemaEntities.whereType<TableInfo<Table, Object?>>(); 1414 + Iterable<TableInfo<Table, Object?>> get allTables => allSchemaEntities.whereType<TableInfo<Table, Object?>>(); 1686 1415 @override 1687 - List<DatabaseSchemaEntity> get allSchemaEntities => [ 1688 - accounts, 1689 - cachedProfiles, 1690 - cachedPosts, 1691 - settings, 1692 - ]; 1416 + List<DatabaseSchemaEntity> get allSchemaEntities => [accounts, cachedProfiles, cachedPosts, settings]; 1693 1417 } 1694 1418 1695 1419 typedef $$AccountsTableCreateCompanionBuilder = ··· 1725 1449 Value<int> rowid, 1726 1450 }); 1727 1451 1728 - class $$AccountsTableFilterComposer 1729 - extends Composer<_$AppDatabase, $AccountsTable> { 1452 + class $$AccountsTableFilterComposer extends Composer<_$AppDatabase, $AccountsTable> { 1730 1453 $$AccountsTableFilterComposer({ 1731 1454 required super.$db, 1732 1455 required super.$table, ··· 1734 1457 super.$addJoinBuilderToRootComposer, 1735 1458 super.$removeJoinBuilderFromRootComposer, 1736 1459 }); 1737 - ColumnFilters<String> get did => $composableBuilder( 1738 - column: $table.did, 1739 - builder: (column) => ColumnFilters(column), 1740 - ); 1460 + ColumnFilters<String> get did => $composableBuilder(column: $table.did, builder: (column) => ColumnFilters(column)); 1741 1461 1742 - ColumnFilters<String> get handle => $composableBuilder( 1743 - column: $table.handle, 1744 - builder: (column) => ColumnFilters(column), 1745 - ); 1462 + ColumnFilters<String> get handle => 1463 + $composableBuilder(column: $table.handle, builder: (column) => ColumnFilters(column)); 1746 1464 1747 - ColumnFilters<String> get displayName => $composableBuilder( 1748 - column: $table.displayName, 1749 - builder: (column) => ColumnFilters(column), 1750 - ); 1465 + ColumnFilters<String> get displayName => 1466 + $composableBuilder(column: $table.displayName, builder: (column) => ColumnFilters(column)); 1751 1467 1752 - ColumnFilters<String> get service => $composableBuilder( 1753 - column: $table.service, 1754 - builder: (column) => ColumnFilters(column), 1755 - ); 1468 + ColumnFilters<String> get service => 1469 + $composableBuilder(column: $table.service, builder: (column) => ColumnFilters(column)); 1756 1470 1757 - ColumnFilters<String> get accessToken => $composableBuilder( 1758 - column: $table.accessToken, 1759 - builder: (column) => ColumnFilters(column), 1760 - ); 1471 + ColumnFilters<String> get accessToken => 1472 + $composableBuilder(column: $table.accessToken, builder: (column) => ColumnFilters(column)); 1761 1473 1762 - ColumnFilters<String> get refreshToken => $composableBuilder( 1763 - column: $table.refreshToken, 1764 - builder: (column) => ColumnFilters(column), 1765 - ); 1474 + ColumnFilters<String> get refreshToken => 1475 + $composableBuilder(column: $table.refreshToken, builder: (column) => ColumnFilters(column)); 1766 1476 1767 - ColumnFilters<String> get dpopPublicKey => $composableBuilder( 1768 - column: $table.dpopPublicKey, 1769 - builder: (column) => ColumnFilters(column), 1770 - ); 1477 + ColumnFilters<String> get dpopPublicKey => 1478 + $composableBuilder(column: $table.dpopPublicKey, builder: (column) => ColumnFilters(column)); 1771 1479 1772 - ColumnFilters<String> get dpopPrivateKey => $composableBuilder( 1773 - column: $table.dpopPrivateKey, 1774 - builder: (column) => ColumnFilters(column), 1775 - ); 1480 + ColumnFilters<String> get dpopPrivateKey => 1481 + $composableBuilder(column: $table.dpopPrivateKey, builder: (column) => ColumnFilters(column)); 1776 1482 1777 - ColumnFilters<String> get dpopNonce => $composableBuilder( 1778 - column: $table.dpopNonce, 1779 - builder: (column) => ColumnFilters(column), 1780 - ); 1483 + ColumnFilters<String> get dpopNonce => 1484 + $composableBuilder(column: $table.dpopNonce, builder: (column) => ColumnFilters(column)); 1781 1485 1782 - ColumnFilters<DateTime> get expiresAt => $composableBuilder( 1783 - column: $table.expiresAt, 1784 - builder: (column) => ColumnFilters(column), 1785 - ); 1486 + ColumnFilters<DateTime> get expiresAt => 1487 + $composableBuilder(column: $table.expiresAt, builder: (column) => ColumnFilters(column)); 1786 1488 1787 - ColumnFilters<DateTime> get createdAt => $composableBuilder( 1788 - column: $table.createdAt, 1789 - builder: (column) => ColumnFilters(column), 1790 - ); 1489 + ColumnFilters<DateTime> get createdAt => 1490 + $composableBuilder(column: $table.createdAt, builder: (column) => ColumnFilters(column)); 1791 1491 1792 - ColumnFilters<DateTime> get updatedAt => $composableBuilder( 1793 - column: $table.updatedAt, 1794 - builder: (column) => ColumnFilters(column), 1795 - ); 1492 + ColumnFilters<DateTime> get updatedAt => 1493 + $composableBuilder(column: $table.updatedAt, builder: (column) => ColumnFilters(column)); 1796 1494 } 1797 1495 1798 - class $$AccountsTableOrderingComposer 1799 - extends Composer<_$AppDatabase, $AccountsTable> { 1496 + class $$AccountsTableOrderingComposer extends Composer<_$AppDatabase, $AccountsTable> { 1800 1497 $$AccountsTableOrderingComposer({ 1801 1498 required super.$db, 1802 1499 required super.$table, ··· 1804 1501 super.$addJoinBuilderToRootComposer, 1805 1502 super.$removeJoinBuilderFromRootComposer, 1806 1503 }); 1807 - ColumnOrderings<String> get did => $composableBuilder( 1808 - column: $table.did, 1809 - builder: (column) => ColumnOrderings(column), 1810 - ); 1504 + ColumnOrderings<String> get did => 1505 + $composableBuilder(column: $table.did, builder: (column) => ColumnOrderings(column)); 1811 1506 1812 - ColumnOrderings<String> get handle => $composableBuilder( 1813 - column: $table.handle, 1814 - builder: (column) => ColumnOrderings(column), 1815 - ); 1507 + ColumnOrderings<String> get handle => 1508 + $composableBuilder(column: $table.handle, builder: (column) => ColumnOrderings(column)); 1816 1509 1817 - ColumnOrderings<String> get displayName => $composableBuilder( 1818 - column: $table.displayName, 1819 - builder: (column) => ColumnOrderings(column), 1820 - ); 1510 + ColumnOrderings<String> get displayName => 1511 + $composableBuilder(column: $table.displayName, builder: (column) => ColumnOrderings(column)); 1821 1512 1822 - ColumnOrderings<String> get service => $composableBuilder( 1823 - column: $table.service, 1824 - builder: (column) => ColumnOrderings(column), 1825 - ); 1513 + ColumnOrderings<String> get service => 1514 + $composableBuilder(column: $table.service, builder: (column) => ColumnOrderings(column)); 1826 1515 1827 - ColumnOrderings<String> get accessToken => $composableBuilder( 1828 - column: $table.accessToken, 1829 - builder: (column) => ColumnOrderings(column), 1830 - ); 1516 + ColumnOrderings<String> get accessToken => 1517 + $composableBuilder(column: $table.accessToken, builder: (column) => ColumnOrderings(column)); 1831 1518 1832 - ColumnOrderings<String> get refreshToken => $composableBuilder( 1833 - column: $table.refreshToken, 1834 - builder: (column) => ColumnOrderings(column), 1835 - ); 1519 + ColumnOrderings<String> get refreshToken => 1520 + $composableBuilder(column: $table.refreshToken, builder: (column) => ColumnOrderings(column)); 1836 1521 1837 - ColumnOrderings<String> get dpopPublicKey => $composableBuilder( 1838 - column: $table.dpopPublicKey, 1839 - builder: (column) => ColumnOrderings(column), 1840 - ); 1522 + ColumnOrderings<String> get dpopPublicKey => 1523 + $composableBuilder(column: $table.dpopPublicKey, builder: (column) => ColumnOrderings(column)); 1841 1524 1842 - ColumnOrderings<String> get dpopPrivateKey => $composableBuilder( 1843 - column: $table.dpopPrivateKey, 1844 - builder: (column) => ColumnOrderings(column), 1845 - ); 1525 + ColumnOrderings<String> get dpopPrivateKey => 1526 + $composableBuilder(column: $table.dpopPrivateKey, builder: (column) => ColumnOrderings(column)); 1846 1527 1847 - ColumnOrderings<String> get dpopNonce => $composableBuilder( 1848 - column: $table.dpopNonce, 1849 - builder: (column) => ColumnOrderings(column), 1850 - ); 1528 + ColumnOrderings<String> get dpopNonce => 1529 + $composableBuilder(column: $table.dpopNonce, builder: (column) => ColumnOrderings(column)); 1851 1530 1852 - ColumnOrderings<DateTime> get expiresAt => $composableBuilder( 1853 - column: $table.expiresAt, 1854 - builder: (column) => ColumnOrderings(column), 1855 - ); 1531 + ColumnOrderings<DateTime> get expiresAt => 1532 + $composableBuilder(column: $table.expiresAt, builder: (column) => ColumnOrderings(column)); 1856 1533 1857 - ColumnOrderings<DateTime> get createdAt => $composableBuilder( 1858 - column: $table.createdAt, 1859 - builder: (column) => ColumnOrderings(column), 1860 - ); 1534 + ColumnOrderings<DateTime> get createdAt => 1535 + $composableBuilder(column: $table.createdAt, builder: (column) => ColumnOrderings(column)); 1861 1536 1862 - ColumnOrderings<DateTime> get updatedAt => $composableBuilder( 1863 - column: $table.updatedAt, 1864 - builder: (column) => ColumnOrderings(column), 1865 - ); 1537 + ColumnOrderings<DateTime> get updatedAt => 1538 + $composableBuilder(column: $table.updatedAt, builder: (column) => ColumnOrderings(column)); 1866 1539 } 1867 1540 1868 - class $$AccountsTableAnnotationComposer 1869 - extends Composer<_$AppDatabase, $AccountsTable> { 1541 + class $$AccountsTableAnnotationComposer extends Composer<_$AppDatabase, $AccountsTable> { 1870 1542 $$AccountsTableAnnotationComposer({ 1871 1543 required super.$db, 1872 1544 required super.$table, ··· 1874 1546 super.$addJoinBuilderToRootComposer, 1875 1547 super.$removeJoinBuilderFromRootComposer, 1876 1548 }); 1877 - GeneratedColumn<String> get did => 1878 - $composableBuilder(column: $table.did, builder: (column) => column); 1549 + GeneratedColumn<String> get did => $composableBuilder(column: $table.did, builder: (column) => column); 1879 1550 1880 - GeneratedColumn<String> get handle => 1881 - $composableBuilder(column: $table.handle, builder: (column) => column); 1551 + GeneratedColumn<String> get handle => $composableBuilder(column: $table.handle, builder: (column) => column); 1882 1552 1883 - GeneratedColumn<String> get displayName => $composableBuilder( 1884 - column: $table.displayName, 1885 - builder: (column) => column, 1886 - ); 1553 + GeneratedColumn<String> get displayName => 1554 + $composableBuilder(column: $table.displayName, builder: (column) => column); 1887 1555 1888 - GeneratedColumn<String> get service => 1889 - $composableBuilder(column: $table.service, builder: (column) => column); 1556 + GeneratedColumn<String> get service => $composableBuilder(column: $table.service, builder: (column) => column); 1890 1557 1891 - GeneratedColumn<String> get accessToken => $composableBuilder( 1892 - column: $table.accessToken, 1893 - builder: (column) => column, 1894 - ); 1558 + GeneratedColumn<String> get accessToken => 1559 + $composableBuilder(column: $table.accessToken, builder: (column) => column); 1895 1560 1896 - GeneratedColumn<String> get refreshToken => $composableBuilder( 1897 - column: $table.refreshToken, 1898 - builder: (column) => column, 1899 - ); 1561 + GeneratedColumn<String> get refreshToken => 1562 + $composableBuilder(column: $table.refreshToken, builder: (column) => column); 1900 1563 1901 - GeneratedColumn<String> get dpopPublicKey => $composableBuilder( 1902 - column: $table.dpopPublicKey, 1903 - builder: (column) => column, 1904 - ); 1564 + GeneratedColumn<String> get dpopPublicKey => 1565 + $composableBuilder(column: $table.dpopPublicKey, builder: (column) => column); 1905 1566 1906 - GeneratedColumn<String> get dpopPrivateKey => $composableBuilder( 1907 - column: $table.dpopPrivateKey, 1908 - builder: (column) => column, 1909 - ); 1567 + GeneratedColumn<String> get dpopPrivateKey => 1568 + $composableBuilder(column: $table.dpopPrivateKey, builder: (column) => column); 1910 1569 1911 - GeneratedColumn<String> get dpopNonce => 1912 - $composableBuilder(column: $table.dpopNonce, builder: (column) => column); 1570 + GeneratedColumn<String> get dpopNonce => $composableBuilder(column: $table.dpopNonce, builder: (column) => column); 1913 1571 1914 - GeneratedColumn<DateTime> get expiresAt => 1915 - $composableBuilder(column: $table.expiresAt, builder: (column) => column); 1572 + GeneratedColumn<DateTime> get expiresAt => $composableBuilder(column: $table.expiresAt, builder: (column) => column); 1916 1573 1917 - GeneratedColumn<DateTime> get createdAt => 1918 - $composableBuilder(column: $table.createdAt, builder: (column) => column); 1574 + GeneratedColumn<DateTime> get createdAt => $composableBuilder(column: $table.createdAt, builder: (column) => column); 1919 1575 1920 - GeneratedColumn<DateTime> get updatedAt => 1921 - $composableBuilder(column: $table.updatedAt, builder: (column) => column); 1576 + GeneratedColumn<DateTime> get updatedAt => $composableBuilder(column: $table.updatedAt, builder: (column) => column); 1922 1577 } 1923 1578 1924 1579 class $$AccountsTableTableManager ··· 1941 1596 TableManagerState( 1942 1597 db: db, 1943 1598 table: table, 1944 - createFilteringComposer: () => 1945 - $$AccountsTableFilterComposer($db: db, $table: table), 1946 - createOrderingComposer: () => 1947 - $$AccountsTableOrderingComposer($db: db, $table: table), 1948 - createComputedFieldComposer: () => 1949 - $$AccountsTableAnnotationComposer($db: db, $table: table), 1599 + createFilteringComposer: () => $$AccountsTableFilterComposer($db: db, $table: table), 1600 + createOrderingComposer: () => $$AccountsTableOrderingComposer($db: db, $table: table), 1601 + createComputedFieldComposer: () => $$AccountsTableAnnotationComposer($db: db, $table: table), 1950 1602 updateCompanionCallback: 1951 1603 ({ 1952 1604 Value<String> did = const Value.absent(), ··· 2007 1659 updatedAt: updatedAt, 2008 1660 rowid: rowid, 2009 1661 ), 2010 - withReferenceMapper: (p0) => p0 2011 - .map((e) => (e.readTable(table), BaseReferences(db, table, e))) 2012 - .toList(), 1662 + withReferenceMapper: (p0) => p0.map((e) => (e.readTable(table), BaseReferences(db, table, e))).toList(), 2013 1663 prefetchHooksCallback: null, 2014 1664 ), 2015 1665 ); ··· 2046 1696 Value<int> rowid, 2047 1697 }); 2048 1698 2049 - class $$CachedProfilesTableFilterComposer 2050 - extends Composer<_$AppDatabase, $CachedProfilesTable> { 1699 + class $$CachedProfilesTableFilterComposer extends Composer<_$AppDatabase, $CachedProfilesTable> { 2051 1700 $$CachedProfilesTableFilterComposer({ 2052 1701 required super.$db, 2053 1702 required super.$table, ··· 2055 1704 super.$addJoinBuilderToRootComposer, 2056 1705 super.$removeJoinBuilderFromRootComposer, 2057 1706 }); 2058 - ColumnFilters<String> get did => $composableBuilder( 2059 - column: $table.did, 2060 - builder: (column) => ColumnFilters(column), 2061 - ); 1707 + ColumnFilters<String> get did => $composableBuilder(column: $table.did, builder: (column) => ColumnFilters(column)); 2062 1708 2063 - ColumnFilters<String> get handle => $composableBuilder( 2064 - column: $table.handle, 2065 - builder: (column) => ColumnFilters(column), 2066 - ); 1709 + ColumnFilters<String> get handle => 1710 + $composableBuilder(column: $table.handle, builder: (column) => ColumnFilters(column)); 2067 1711 2068 - ColumnFilters<String> get payload => $composableBuilder( 2069 - column: $table.payload, 2070 - builder: (column) => ColumnFilters(column), 2071 - ); 1712 + ColumnFilters<String> get payload => 1713 + $composableBuilder(column: $table.payload, builder: (column) => ColumnFilters(column)); 2072 1714 2073 - ColumnFilters<DateTime> get fetchedAt => $composableBuilder( 2074 - column: $table.fetchedAt, 2075 - builder: (column) => ColumnFilters(column), 2076 - ); 1715 + ColumnFilters<DateTime> get fetchedAt => 1716 + $composableBuilder(column: $table.fetchedAt, builder: (column) => ColumnFilters(column)); 2077 1717 } 2078 1718 2079 - class $$CachedProfilesTableOrderingComposer 2080 - extends Composer<_$AppDatabase, $CachedProfilesTable> { 1719 + class $$CachedProfilesTableOrderingComposer extends Composer<_$AppDatabase, $CachedProfilesTable> { 2081 1720 $$CachedProfilesTableOrderingComposer({ 2082 1721 required super.$db, 2083 1722 required super.$table, ··· 2085 1724 super.$addJoinBuilderToRootComposer, 2086 1725 super.$removeJoinBuilderFromRootComposer, 2087 1726 }); 2088 - ColumnOrderings<String> get did => $composableBuilder( 2089 - column: $table.did, 2090 - builder: (column) => ColumnOrderings(column), 2091 - ); 1727 + ColumnOrderings<String> get did => 1728 + $composableBuilder(column: $table.did, builder: (column) => ColumnOrderings(column)); 2092 1729 2093 - ColumnOrderings<String> get handle => $composableBuilder( 2094 - column: $table.handle, 2095 - builder: (column) => ColumnOrderings(column), 2096 - ); 1730 + ColumnOrderings<String> get handle => 1731 + $composableBuilder(column: $table.handle, builder: (column) => ColumnOrderings(column)); 2097 1732 2098 - ColumnOrderings<String> get payload => $composableBuilder( 2099 - column: $table.payload, 2100 - builder: (column) => ColumnOrderings(column), 2101 - ); 1733 + ColumnOrderings<String> get payload => 1734 + $composableBuilder(column: $table.payload, builder: (column) => ColumnOrderings(column)); 2102 1735 2103 - ColumnOrderings<DateTime> get fetchedAt => $composableBuilder( 2104 - column: $table.fetchedAt, 2105 - builder: (column) => ColumnOrderings(column), 2106 - ); 1736 + ColumnOrderings<DateTime> get fetchedAt => 1737 + $composableBuilder(column: $table.fetchedAt, builder: (column) => ColumnOrderings(column)); 2107 1738 } 2108 1739 2109 - class $$CachedProfilesTableAnnotationComposer 2110 - extends Composer<_$AppDatabase, $CachedProfilesTable> { 1740 + class $$CachedProfilesTableAnnotationComposer extends Composer<_$AppDatabase, $CachedProfilesTable> { 2111 1741 $$CachedProfilesTableAnnotationComposer({ 2112 1742 required super.$db, 2113 1743 required super.$table, ··· 2115 1745 super.$addJoinBuilderToRootComposer, 2116 1746 super.$removeJoinBuilderFromRootComposer, 2117 1747 }); 2118 - GeneratedColumn<String> get did => 2119 - $composableBuilder(column: $table.did, builder: (column) => column); 1748 + GeneratedColumn<String> get did => $composableBuilder(column: $table.did, builder: (column) => column); 2120 1749 2121 - GeneratedColumn<String> get handle => 2122 - $composableBuilder(column: $table.handle, builder: (column) => column); 1750 + GeneratedColumn<String> get handle => $composableBuilder(column: $table.handle, builder: (column) => column); 2123 1751 2124 - GeneratedColumn<String> get payload => 2125 - $composableBuilder(column: $table.payload, builder: (column) => column); 1752 + GeneratedColumn<String> get payload => $composableBuilder(column: $table.payload, builder: (column) => column); 2126 1753 2127 - GeneratedColumn<DateTime> get fetchedAt => 2128 - $composableBuilder(column: $table.fetchedAt, builder: (column) => column); 1754 + GeneratedColumn<DateTime> get fetchedAt => $composableBuilder(column: $table.fetchedAt, builder: (column) => column); 2129 1755 } 2130 1756 2131 1757 class $$CachedProfilesTableTableManager ··· 2139 1765 $$CachedProfilesTableAnnotationComposer, 2140 1766 $$CachedProfilesTableCreateCompanionBuilder, 2141 1767 $$CachedProfilesTableUpdateCompanionBuilder, 2142 - ( 2143 - CachedProfile, 2144 - BaseReferences<_$AppDatabase, $CachedProfilesTable, CachedProfile>, 2145 - ), 1768 + (CachedProfile, BaseReferences<_$AppDatabase, $CachedProfilesTable, CachedProfile>), 2146 1769 CachedProfile, 2147 1770 PrefetchHooks Function() 2148 1771 > { 2149 - $$CachedProfilesTableTableManager( 2150 - _$AppDatabase db, 2151 - $CachedProfilesTable table, 2152 - ) : super( 1772 + $$CachedProfilesTableTableManager(_$AppDatabase db, $CachedProfilesTable table) 1773 + : super( 2153 1774 TableManagerState( 2154 1775 db: db, 2155 1776 table: table, 2156 - createFilteringComposer: () => 2157 - $$CachedProfilesTableFilterComposer($db: db, $table: table), 2158 - createOrderingComposer: () => 2159 - $$CachedProfilesTableOrderingComposer($db: db, $table: table), 2160 - createComputedFieldComposer: () => 2161 - $$CachedProfilesTableAnnotationComposer($db: db, $table: table), 1777 + createFilteringComposer: () => $$CachedProfilesTableFilterComposer($db: db, $table: table), 1778 + createOrderingComposer: () => $$CachedProfilesTableOrderingComposer($db: db, $table: table), 1779 + createComputedFieldComposer: () => $$CachedProfilesTableAnnotationComposer($db: db, $table: table), 2162 1780 updateCompanionCallback: 2163 1781 ({ 2164 1782 Value<String> did = const Value.absent(), ··· 2187 1805 fetchedAt: fetchedAt, 2188 1806 rowid: rowid, 2189 1807 ), 2190 - withReferenceMapper: (p0) => p0 2191 - .map((e) => (e.readTable(table), BaseReferences(db, table, e))) 2192 - .toList(), 1808 + withReferenceMapper: (p0) => p0.map((e) => (e.readTable(table), BaseReferences(db, table, e))).toList(), 2193 1809 prefetchHooksCallback: null, 2194 1810 ), 2195 1811 ); ··· 2205 1821 $$CachedProfilesTableAnnotationComposer, 2206 1822 $$CachedProfilesTableCreateCompanionBuilder, 2207 1823 $$CachedProfilesTableUpdateCompanionBuilder, 2208 - ( 2209 - CachedProfile, 2210 - BaseReferences<_$AppDatabase, $CachedProfilesTable, CachedProfile>, 2211 - ), 1824 + (CachedProfile, BaseReferences<_$AppDatabase, $CachedProfilesTable, CachedProfile>), 2212 1825 CachedProfile, 2213 1826 PrefetchHooks Function() 2214 1827 >; ··· 2231 1844 Value<int> rowid, 2232 1845 }); 2233 1846 2234 - class $$CachedPostsTableFilterComposer 2235 - extends Composer<_$AppDatabase, $CachedPostsTable> { 1847 + class $$CachedPostsTableFilterComposer extends Composer<_$AppDatabase, $CachedPostsTable> { 2236 1848 $$CachedPostsTableFilterComposer({ 2237 1849 required super.$db, 2238 1850 required super.$table, ··· 2240 1852 super.$addJoinBuilderToRootComposer, 2241 1853 super.$removeJoinBuilderFromRootComposer, 2242 1854 }); 2243 - ColumnFilters<String> get uri => $composableBuilder( 2244 - column: $table.uri, 2245 - builder: (column) => ColumnFilters(column), 2246 - ); 1855 + ColumnFilters<String> get uri => $composableBuilder(column: $table.uri, builder: (column) => ColumnFilters(column)); 2247 1856 2248 - ColumnFilters<String> get authorDid => $composableBuilder( 2249 - column: $table.authorDid, 2250 - builder: (column) => ColumnFilters(column), 2251 - ); 1857 + ColumnFilters<String> get authorDid => 1858 + $composableBuilder(column: $table.authorDid, builder: (column) => ColumnFilters(column)); 2252 1859 2253 - ColumnFilters<String> get payload => $composableBuilder( 2254 - column: $table.payload, 2255 - builder: (column) => ColumnFilters(column), 2256 - ); 1860 + ColumnFilters<String> get payload => 1861 + $composableBuilder(column: $table.payload, builder: (column) => ColumnFilters(column)); 2257 1862 2258 - ColumnFilters<DateTime> get createdAt => $composableBuilder( 2259 - column: $table.createdAt, 2260 - builder: (column) => ColumnFilters(column), 2261 - ); 1863 + ColumnFilters<DateTime> get createdAt => 1864 + $composableBuilder(column: $table.createdAt, builder: (column) => ColumnFilters(column)); 2262 1865 2263 - ColumnFilters<DateTime> get fetchedAt => $composableBuilder( 2264 - column: $table.fetchedAt, 2265 - builder: (column) => ColumnFilters(column), 2266 - ); 1866 + ColumnFilters<DateTime> get fetchedAt => 1867 + $composableBuilder(column: $table.fetchedAt, builder: (column) => ColumnFilters(column)); 2267 1868 } 2268 1869 2269 - class $$CachedPostsTableOrderingComposer 2270 - extends Composer<_$AppDatabase, $CachedPostsTable> { 1870 + class $$CachedPostsTableOrderingComposer extends Composer<_$AppDatabase, $CachedPostsTable> { 2271 1871 $$CachedPostsTableOrderingComposer({ 2272 1872 required super.$db, 2273 1873 required super.$table, ··· 2275 1875 super.$addJoinBuilderToRootComposer, 2276 1876 super.$removeJoinBuilderFromRootComposer, 2277 1877 }); 2278 - ColumnOrderings<String> get uri => $composableBuilder( 2279 - column: $table.uri, 2280 - builder: (column) => ColumnOrderings(column), 2281 - ); 1878 + ColumnOrderings<String> get uri => 1879 + $composableBuilder(column: $table.uri, builder: (column) => ColumnOrderings(column)); 2282 1880 2283 - ColumnOrderings<String> get authorDid => $composableBuilder( 2284 - column: $table.authorDid, 2285 - builder: (column) => ColumnOrderings(column), 2286 - ); 1881 + ColumnOrderings<String> get authorDid => 1882 + $composableBuilder(column: $table.authorDid, builder: (column) => ColumnOrderings(column)); 2287 1883 2288 - ColumnOrderings<String> get payload => $composableBuilder( 2289 - column: $table.payload, 2290 - builder: (column) => ColumnOrderings(column), 2291 - ); 1884 + ColumnOrderings<String> get payload => 1885 + $composableBuilder(column: $table.payload, builder: (column) => ColumnOrderings(column)); 2292 1886 2293 - ColumnOrderings<DateTime> get createdAt => $composableBuilder( 2294 - column: $table.createdAt, 2295 - builder: (column) => ColumnOrderings(column), 2296 - ); 1887 + ColumnOrderings<DateTime> get createdAt => 1888 + $composableBuilder(column: $table.createdAt, builder: (column) => ColumnOrderings(column)); 2297 1889 2298 - ColumnOrderings<DateTime> get fetchedAt => $composableBuilder( 2299 - column: $table.fetchedAt, 2300 - builder: (column) => ColumnOrderings(column), 2301 - ); 1890 + ColumnOrderings<DateTime> get fetchedAt => 1891 + $composableBuilder(column: $table.fetchedAt, builder: (column) => ColumnOrderings(column)); 2302 1892 } 2303 1893 2304 - class $$CachedPostsTableAnnotationComposer 2305 - extends Composer<_$AppDatabase, $CachedPostsTable> { 1894 + class $$CachedPostsTableAnnotationComposer extends Composer<_$AppDatabase, $CachedPostsTable> { 2306 1895 $$CachedPostsTableAnnotationComposer({ 2307 1896 required super.$db, 2308 1897 required super.$table, ··· 2310 1899 super.$addJoinBuilderToRootComposer, 2311 1900 super.$removeJoinBuilderFromRootComposer, 2312 1901 }); 2313 - GeneratedColumn<String> get uri => 2314 - $composableBuilder(column: $table.uri, builder: (column) => column); 1902 + GeneratedColumn<String> get uri => $composableBuilder(column: $table.uri, builder: (column) => column); 2315 1903 2316 - GeneratedColumn<String> get authorDid => 2317 - $composableBuilder(column: $table.authorDid, builder: (column) => column); 1904 + GeneratedColumn<String> get authorDid => $composableBuilder(column: $table.authorDid, builder: (column) => column); 2318 1905 2319 - GeneratedColumn<String> get payload => 2320 - $composableBuilder(column: $table.payload, builder: (column) => column); 1906 + GeneratedColumn<String> get payload => $composableBuilder(column: $table.payload, builder: (column) => column); 2321 1907 2322 - GeneratedColumn<DateTime> get createdAt => 2323 - $composableBuilder(column: $table.createdAt, builder: (column) => column); 1908 + GeneratedColumn<DateTime> get createdAt => $composableBuilder(column: $table.createdAt, builder: (column) => column); 2324 1909 2325 - GeneratedColumn<DateTime> get fetchedAt => 2326 - $composableBuilder(column: $table.fetchedAt, builder: (column) => column); 1910 + GeneratedColumn<DateTime> get fetchedAt => $composableBuilder(column: $table.fetchedAt, builder: (column) => column); 2327 1911 } 2328 1912 2329 1913 class $$CachedPostsTableTableManager ··· 2337 1921 $$CachedPostsTableAnnotationComposer, 2338 1922 $$CachedPostsTableCreateCompanionBuilder, 2339 1923 $$CachedPostsTableUpdateCompanionBuilder, 2340 - ( 2341 - CachedPost, 2342 - BaseReferences<_$AppDatabase, $CachedPostsTable, CachedPost>, 2343 - ), 1924 + (CachedPost, BaseReferences<_$AppDatabase, $CachedPostsTable, CachedPost>), 2344 1925 CachedPost, 2345 1926 PrefetchHooks Function() 2346 1927 > { ··· 2349 1930 TableManagerState( 2350 1931 db: db, 2351 1932 table: table, 2352 - createFilteringComposer: () => 2353 - $$CachedPostsTableFilterComposer($db: db, $table: table), 2354 - createOrderingComposer: () => 2355 - $$CachedPostsTableOrderingComposer($db: db, $table: table), 2356 - createComputedFieldComposer: () => 2357 - $$CachedPostsTableAnnotationComposer($db: db, $table: table), 1933 + createFilteringComposer: () => $$CachedPostsTableFilterComposer($db: db, $table: table), 1934 + createOrderingComposer: () => $$CachedPostsTableOrderingComposer($db: db, $table: table), 1935 + createComputedFieldComposer: () => $$CachedPostsTableAnnotationComposer($db: db, $table: table), 2358 1936 updateCompanionCallback: 2359 1937 ({ 2360 1938 Value<String> uri = const Value.absent(), ··· 2387 1965 fetchedAt: fetchedAt, 2388 1966 rowid: rowid, 2389 1967 ), 2390 - withReferenceMapper: (p0) => p0 2391 - .map((e) => (e.readTable(table), BaseReferences(db, table, e))) 2392 - .toList(), 1968 + withReferenceMapper: (p0) => p0.map((e) => (e.readTable(table), BaseReferences(db, table, e))).toList(), 2393 1969 prefetchHooksCallback: null, 2394 1970 ), 2395 1971 ); ··· 2405 1981 $$CachedPostsTableAnnotationComposer, 2406 1982 $$CachedPostsTableCreateCompanionBuilder, 2407 1983 $$CachedPostsTableUpdateCompanionBuilder, 2408 - ( 2409 - CachedPost, 2410 - BaseReferences<_$AppDatabase, $CachedPostsTable, CachedPost>, 2411 - ), 1984 + (CachedPost, BaseReferences<_$AppDatabase, $CachedPostsTable, CachedPost>), 2412 1985 CachedPost, 2413 1986 PrefetchHooks Function() 2414 1987 >; ··· 2420 1993 Value<int> rowid, 2421 1994 }); 2422 1995 typedef $$SettingsTableUpdateCompanionBuilder = 2423 - SettingsCompanion Function({ 2424 - Value<String> key, 2425 - Value<String> value, 2426 - Value<DateTime> updatedAt, 2427 - Value<int> rowid, 2428 - }); 1996 + SettingsCompanion Function({Value<String> key, Value<String> value, Value<DateTime> updatedAt, Value<int> rowid}); 2429 1997 2430 - class $$SettingsTableFilterComposer 2431 - extends Composer<_$AppDatabase, $SettingsTable> { 1998 + class $$SettingsTableFilterComposer extends Composer<_$AppDatabase, $SettingsTable> { 2432 1999 $$SettingsTableFilterComposer({ 2433 2000 required super.$db, 2434 2001 required super.$table, ··· 2436 2003 super.$addJoinBuilderToRootComposer, 2437 2004 super.$removeJoinBuilderFromRootComposer, 2438 2005 }); 2439 - ColumnFilters<String> get key => $composableBuilder( 2440 - column: $table.key, 2441 - builder: (column) => ColumnFilters(column), 2442 - ); 2006 + ColumnFilters<String> get key => $composableBuilder(column: $table.key, builder: (column) => ColumnFilters(column)); 2443 2007 2444 - ColumnFilters<String> get value => $composableBuilder( 2445 - column: $table.value, 2446 - builder: (column) => ColumnFilters(column), 2447 - ); 2008 + ColumnFilters<String> get value => 2009 + $composableBuilder(column: $table.value, builder: (column) => ColumnFilters(column)); 2448 2010 2449 - ColumnFilters<DateTime> get updatedAt => $composableBuilder( 2450 - column: $table.updatedAt, 2451 - builder: (column) => ColumnFilters(column), 2452 - ); 2011 + ColumnFilters<DateTime> get updatedAt => 2012 + $composableBuilder(column: $table.updatedAt, builder: (column) => ColumnFilters(column)); 2453 2013 } 2454 2014 2455 - class $$SettingsTableOrderingComposer 2456 - extends Composer<_$AppDatabase, $SettingsTable> { 2015 + class $$SettingsTableOrderingComposer extends Composer<_$AppDatabase, $SettingsTable> { 2457 2016 $$SettingsTableOrderingComposer({ 2458 2017 required super.$db, 2459 2018 required super.$table, ··· 2461 2020 super.$addJoinBuilderToRootComposer, 2462 2021 super.$removeJoinBuilderFromRootComposer, 2463 2022 }); 2464 - ColumnOrderings<String> get key => $composableBuilder( 2465 - column: $table.key, 2466 - builder: (column) => ColumnOrderings(column), 2467 - ); 2023 + ColumnOrderings<String> get key => 2024 + $composableBuilder(column: $table.key, builder: (column) => ColumnOrderings(column)); 2468 2025 2469 - ColumnOrderings<String> get value => $composableBuilder( 2470 - column: $table.value, 2471 - builder: (column) => ColumnOrderings(column), 2472 - ); 2026 + ColumnOrderings<String> get value => 2027 + $composableBuilder(column: $table.value, builder: (column) => ColumnOrderings(column)); 2473 2028 2474 - ColumnOrderings<DateTime> get updatedAt => $composableBuilder( 2475 - column: $table.updatedAt, 2476 - builder: (column) => ColumnOrderings(column), 2477 - ); 2029 + ColumnOrderings<DateTime> get updatedAt => 2030 + $composableBuilder(column: $table.updatedAt, builder: (column) => ColumnOrderings(column)); 2478 2031 } 2479 2032 2480 - class $$SettingsTableAnnotationComposer 2481 - extends Composer<_$AppDatabase, $SettingsTable> { 2033 + class $$SettingsTableAnnotationComposer extends Composer<_$AppDatabase, $SettingsTable> { 2482 2034 $$SettingsTableAnnotationComposer({ 2483 2035 required super.$db, 2484 2036 required super.$table, ··· 2486 2038 super.$addJoinBuilderToRootComposer, 2487 2039 super.$removeJoinBuilderFromRootComposer, 2488 2040 }); 2489 - GeneratedColumn<String> get key => 2490 - $composableBuilder(column: $table.key, builder: (column) => column); 2041 + GeneratedColumn<String> get key => $composableBuilder(column: $table.key, builder: (column) => column); 2491 2042 2492 - GeneratedColumn<String> get value => 2493 - $composableBuilder(column: $table.value, builder: (column) => column); 2043 + GeneratedColumn<String> get value => $composableBuilder(column: $table.value, builder: (column) => column); 2494 2044 2495 - GeneratedColumn<DateTime> get updatedAt => 2496 - $composableBuilder(column: $table.updatedAt, builder: (column) => column); 2045 + GeneratedColumn<DateTime> get updatedAt => $composableBuilder(column: $table.updatedAt, builder: (column) => column); 2497 2046 } 2498 2047 2499 2048 class $$SettingsTableTableManager ··· 2507 2056 $$SettingsTableAnnotationComposer, 2508 2057 $$SettingsTableCreateCompanionBuilder, 2509 2058 $$SettingsTableUpdateCompanionBuilder, 2510 - ( 2511 - SettingsEntry, 2512 - BaseReferences<_$AppDatabase, $SettingsTable, SettingsEntry>, 2513 - ), 2059 + (SettingsEntry, BaseReferences<_$AppDatabase, $SettingsTable, SettingsEntry>), 2514 2060 SettingsEntry, 2515 2061 PrefetchHooks Function() 2516 2062 > { ··· 2519 2065 TableManagerState( 2520 2066 db: db, 2521 2067 table: table, 2522 - createFilteringComposer: () => 2523 - $$SettingsTableFilterComposer($db: db, $table: table), 2524 - createOrderingComposer: () => 2525 - $$SettingsTableOrderingComposer($db: db, $table: table), 2526 - createComputedFieldComposer: () => 2527 - $$SettingsTableAnnotationComposer($db: db, $table: table), 2068 + createFilteringComposer: () => $$SettingsTableFilterComposer($db: db, $table: table), 2069 + createOrderingComposer: () => $$SettingsTableOrderingComposer($db: db, $table: table), 2070 + createComputedFieldComposer: () => $$SettingsTableAnnotationComposer($db: db, $table: table), 2528 2071 updateCompanionCallback: 2529 2072 ({ 2530 2073 Value<String> key = const Value.absent(), 2531 2074 Value<String> value = const Value.absent(), 2532 2075 Value<DateTime> updatedAt = const Value.absent(), 2533 2076 Value<int> rowid = const Value.absent(), 2534 - }) => SettingsCompanion( 2535 - key: key, 2536 - value: value, 2537 - updatedAt: updatedAt, 2538 - rowid: rowid, 2539 - ), 2077 + }) => SettingsCompanion(key: key, value: value, updatedAt: updatedAt, rowid: rowid), 2540 2078 createCompanionCallback: 2541 2079 ({ 2542 2080 required String key, 2543 2081 required String value, 2544 2082 Value<DateTime> updatedAt = const Value.absent(), 2545 2083 Value<int> rowid = const Value.absent(), 2546 - }) => SettingsCompanion.insert( 2547 - key: key, 2548 - value: value, 2549 - updatedAt: updatedAt, 2550 - rowid: rowid, 2551 - ), 2552 - withReferenceMapper: (p0) => p0 2553 - .map((e) => (e.readTable(table), BaseReferences(db, table, e))) 2554 - .toList(), 2084 + }) => SettingsCompanion.insert(key: key, value: value, updatedAt: updatedAt, rowid: rowid), 2085 + withReferenceMapper: (p0) => p0.map((e) => (e.readTable(table), BaseReferences(db, table, e))).toList(), 2555 2086 prefetchHooksCallback: null, 2556 2087 ), 2557 2088 ); ··· 2567 2098 $$SettingsTableAnnotationComposer, 2568 2099 $$SettingsTableCreateCompanionBuilder, 2569 2100 $$SettingsTableUpdateCompanionBuilder, 2570 - ( 2571 - SettingsEntry, 2572 - BaseReferences<_$AppDatabase, $SettingsTable, SettingsEntry>, 2573 - ), 2101 + (SettingsEntry, BaseReferences<_$AppDatabase, $SettingsTable, SettingsEntry>), 2574 2102 SettingsEntry, 2575 2103 PrefetchHooks Function() 2576 2104 >; ··· 2578 2106 class $AppDatabaseManager { 2579 2107 final _$AppDatabase _db; 2580 2108 $AppDatabaseManager(this._db); 2581 - $$AccountsTableTableManager get accounts => 2582 - $$AccountsTableTableManager(_db, _db.accounts); 2583 - $$CachedProfilesTableTableManager get cachedProfiles => 2584 - $$CachedProfilesTableTableManager(_db, _db.cachedProfiles); 2585 - $$CachedPostsTableTableManager get cachedPosts => 2586 - $$CachedPostsTableTableManager(_db, _db.cachedPosts); 2587 - $$SettingsTableTableManager get settings => 2588 - $$SettingsTableTableManager(_db, _db.settings); 2109 + $$AccountsTableTableManager get accounts => $$AccountsTableTableManager(_db, _db.accounts); 2110 + $$CachedProfilesTableTableManager get cachedProfiles => $$CachedProfilesTableTableManager(_db, _db.cachedProfiles); 2111 + $$CachedPostsTableTableManager get cachedPosts => $$CachedPostsTableTableManager(_db, _db.cachedPosts); 2112 + $$SettingsTableTableManager get settings => $$SettingsTableTableManager(_db, _db.settings); 2589 2113 }
+8 -8
lib/core/theme/catppuccin_theme.dart
··· 40 40 return ThemeData( 41 41 useMaterial3: true, 42 42 brightness: Brightness.dark, 43 - colorScheme: ColorScheme( 43 + colorScheme: const ColorScheme( 44 44 brightness: Brightness.dark, 45 45 primary: mochaLavender, 46 46 onPrimary: mochaBase, ··· 99 99 inputDecorationTheme: InputDecorationTheme( 100 100 filled: true, 101 101 fillColor: mochaMantle, 102 - border: OutlineInputBorder(borderSide: const BorderSide(color: mochaSurface0)), 103 - enabledBorder: OutlineInputBorder(borderSide: const BorderSide(color: mochaSurface0)), 104 - focusedBorder: OutlineInputBorder(borderSide: const BorderSide(color: mochaLavender)), 102 + border: const OutlineInputBorder(borderSide: BorderSide(color: mochaSurface0)), 103 + enabledBorder: const OutlineInputBorder(borderSide: BorderSide(color: mochaSurface0)), 104 + focusedBorder: const OutlineInputBorder(borderSide: BorderSide(color: mochaLavender)), 105 105 labelStyle: AppTypography.dmSans(color: mochaSurface1), 106 106 hintStyle: AppTypography.dmSans(color: mochaSurface1), 107 107 ), ··· 116 116 return ThemeData( 117 117 useMaterial3: true, 118 118 brightness: Brightness.light, 119 - colorScheme: ColorScheme( 119 + colorScheme: const ColorScheme( 120 120 brightness: Brightness.light, 121 121 primary: latteLavender, 122 122 onPrimary: latteBase, ··· 175 175 inputDecorationTheme: InputDecorationTheme( 176 176 filled: true, 177 177 fillColor: latteMantle, 178 - border: OutlineInputBorder(borderSide: const BorderSide(color: latteSurface0)), 179 - enabledBorder: OutlineInputBorder(borderSide: const BorderSide(color: latteSurface0)), 180 - focusedBorder: OutlineInputBorder(borderSide: const BorderSide(color: latteLavender)), 178 + border: const OutlineInputBorder(borderSide: BorderSide(color: latteSurface0)), 179 + enabledBorder: const OutlineInputBorder(borderSide: BorderSide(color: latteSurface0)), 180 + focusedBorder: const OutlineInputBorder(borderSide: BorderSide(color: latteLavender)), 181 181 labelStyle: AppTypography.dmSans(color: latteSurface1), 182 182 hintStyle: AppTypography.dmSans(color: latteSurface1), 183 183 ),
+8 -8
lib/core/theme/nord_theme.dart
··· 25 25 return ThemeData( 26 26 useMaterial3: true, 27 27 brightness: Brightness.dark, 28 - colorScheme: ColorScheme( 28 + colorScheme: const ColorScheme( 29 29 brightness: Brightness.dark, 30 30 primary: nord8, 31 31 onPrimary: nord0, ··· 81 81 inputDecorationTheme: InputDecorationTheme( 82 82 filled: true, 83 83 fillColor: nord1, 84 - border: OutlineInputBorder(borderSide: const BorderSide(color: nord2)), 85 - enabledBorder: OutlineInputBorder(borderSide: const BorderSide(color: nord2)), 86 - focusedBorder: OutlineInputBorder(borderSide: const BorderSide(color: nord8)), 84 + border: const OutlineInputBorder(borderSide: BorderSide(color: nord2)), 85 + enabledBorder: const OutlineInputBorder(borderSide: BorderSide(color: nord2)), 86 + focusedBorder: const OutlineInputBorder(borderSide: BorderSide(color: nord8)), 87 87 labelStyle: AppTypography.dmSans(color: nord3), 88 88 hintStyle: AppTypography.dmSans(color: nord3), 89 89 ), ··· 98 98 return ThemeData( 99 99 useMaterial3: true, 100 100 brightness: Brightness.light, 101 - colorScheme: ColorScheme( 101 + colorScheme: const ColorScheme( 102 102 brightness: Brightness.light, 103 103 primary: nord8, 104 104 onPrimary: nord0, ··· 154 154 inputDecorationTheme: InputDecorationTheme( 155 155 filled: true, 156 156 fillColor: nord5, 157 - border: OutlineInputBorder(borderSide: const BorderSide(color: nord2)), 158 - enabledBorder: OutlineInputBorder(borderSide: const BorderSide(color: nord2)), 159 - focusedBorder: OutlineInputBorder(borderSide: const BorderSide(color: nord8)), 157 + border: const OutlineInputBorder(borderSide: BorderSide(color: nord2)), 158 + enabledBorder: const OutlineInputBorder(borderSide: BorderSide(color: nord2)), 159 + focusedBorder: const OutlineInputBorder(borderSide: BorderSide(color: nord8)), 160 160 labelStyle: AppTypography.dmSans(color: nord3), 161 161 hintStyle: AppTypography.dmSans(color: nord3), 162 162 ),
+8 -8
lib/core/theme/oxocarbon_theme.dart
··· 42 42 return ThemeData( 43 43 useMaterial3: true, 44 44 brightness: Brightness.dark, 45 - colorScheme: ColorScheme( 45 + colorScheme: const ColorScheme( 46 46 brightness: Brightness.dark, 47 47 primary: darkBase09, 48 48 onPrimary: darkBase00, ··· 101 101 inputDecorationTheme: InputDecorationTheme( 102 102 filled: true, 103 103 fillColor: darkBase01, 104 - border: OutlineInputBorder(borderSide: const BorderSide(color: darkBase02)), 105 - enabledBorder: OutlineInputBorder(borderSide: const BorderSide(color: darkBase02)), 106 - focusedBorder: OutlineInputBorder(borderSide: BorderSide(color: darkBase09)), 104 + border: const OutlineInputBorder(borderSide: BorderSide(color: darkBase02)), 105 + enabledBorder: const OutlineInputBorder(borderSide: BorderSide(color: darkBase02)), 106 + focusedBorder: const OutlineInputBorder(borderSide: BorderSide(color: darkBase09)), 107 107 labelStyle: AppTypography.dmSans(color: darkBase03), 108 108 hintStyle: AppTypography.dmSans(color: darkBase03), 109 109 ), ··· 118 118 return ThemeData( 119 119 useMaterial3: true, 120 120 brightness: Brightness.light, 121 - colorScheme: ColorScheme( 121 + colorScheme: const ColorScheme( 122 122 brightness: Brightness.light, 123 123 primary: lightBase0B, 124 124 onPrimary: lightBase00, ··· 177 177 inputDecorationTheme: InputDecorationTheme( 178 178 filled: true, 179 179 fillColor: lightBase01, 180 - border: OutlineInputBorder(borderSide: const BorderSide(color: lightBase02)), 181 - enabledBorder: OutlineInputBorder(borderSide: const BorderSide(color: lightBase02)), 182 - focusedBorder: OutlineInputBorder(borderSide: BorderSide(color: lightBase0B)), 180 + border: const OutlineInputBorder(borderSide: BorderSide(color: lightBase02)), 181 + enabledBorder: const OutlineInputBorder(borderSide: BorderSide(color: lightBase02)), 182 + focusedBorder: const OutlineInputBorder(borderSide: BorderSide(color: lightBase0B)), 183 183 labelStyle: AppTypography.dmSans(color: lightBase05), 184 184 hintStyle: AppTypography.dmSans(color: lightBase05), 185 185 ),
+8 -8
lib/core/theme/rose_pine_theme.dart
··· 34 34 return ThemeData( 35 35 useMaterial3: true, 36 36 brightness: Brightness.dark, 37 - colorScheme: ColorScheme( 37 + colorScheme: const ColorScheme( 38 38 brightness: Brightness.dark, 39 39 primary: mainRose, 40 40 onPrimary: mainBase, ··· 93 93 inputDecorationTheme: InputDecorationTheme( 94 94 filled: true, 95 95 fillColor: mainSurface, 96 - border: OutlineInputBorder(borderSide: const BorderSide(color: mainOverlay)), 97 - enabledBorder: OutlineInputBorder(borderSide: const BorderSide(color: mainOverlay)), 98 - focusedBorder: OutlineInputBorder(borderSide: const BorderSide(color: mainRose)), 96 + border: const OutlineInputBorder(borderSide: BorderSide(color: mainOverlay)), 97 + enabledBorder: const OutlineInputBorder(borderSide: BorderSide(color: mainOverlay)), 98 + focusedBorder: const OutlineInputBorder(borderSide: BorderSide(color: mainRose)), 99 99 labelStyle: AppTypography.dmSans(color: mainMuted), 100 100 hintStyle: AppTypography.dmSans(color: mainMuted), 101 101 ), ··· 110 110 return ThemeData( 111 111 useMaterial3: true, 112 112 brightness: Brightness.light, 113 - colorScheme: ColorScheme( 113 + colorScheme: const ColorScheme( 114 114 brightness: Brightness.light, 115 115 primary: dawnRose, 116 116 onPrimary: dawnBase, ··· 169 169 inputDecorationTheme: InputDecorationTheme( 170 170 filled: true, 171 171 fillColor: dawnSurface, 172 - border: OutlineInputBorder(borderSide: const BorderSide(color: dawnOverlay)), 173 - enabledBorder: OutlineInputBorder(borderSide: const BorderSide(color: dawnOverlay)), 174 - focusedBorder: OutlineInputBorder(borderSide: const BorderSide(color: dawnRose)), 172 + border: const OutlineInputBorder(borderSide: BorderSide(color: dawnOverlay)), 173 + enabledBorder: const OutlineInputBorder(borderSide: BorderSide(color: dawnOverlay)), 174 + focusedBorder: const OutlineInputBorder(borderSide: BorderSide(color: dawnRose)), 175 175 labelStyle: AppTypography.dmSans(color: dawnMuted), 176 176 hintStyle: AppTypography.dmSans(color: dawnMuted), 177 177 ),
+5 -3
lib/main.dart
··· 104 104 ], 105 105 child: BlocBuilder<SettingsCubit, SettingsState>( 106 106 builder: (context, settingsState) { 107 - final themeData = settingsState.themeData; 108 107 final themeMode = settingsState.useSystemTheme 109 108 ? ThemeMode.system 110 109 : (settingsState.themeVariant == AppThemeVariant.light ? ThemeMode.light : ThemeMode.dark); 110 + 111 + final lightTheme = AppTheme.getTheme(settingsState.themePalette, AppThemeVariant.light); 112 + final darkTheme = AppTheme.getTheme(settingsState.themePalette, AppThemeVariant.dark); 111 113 112 114 return MaterialApp.router( 113 115 title: 'Lazurite', 114 116 debugShowCheckedModeBanner: false, 115 - theme: themeData, 116 - darkTheme: themeData, 117 + theme: lightTheme, 118 + darkTheme: darkTheme, 117 119 themeMode: themeMode, 118 120 routerConfig: router, 119 121 );
+124
test/core/theme/app_theme_test.dart
··· 1 + import 'package:flutter_test/flutter_test.dart'; 2 + import 'package:lazurite/core/theme/app_theme.dart'; 3 + 4 + void main() { 5 + group('AppTheme', () { 6 + group('getPaletteName', () { 7 + test('returns correct name for oxocarbon', () { 8 + expect(AppTheme.getPaletteName(AppThemePalette.oxocarbon), 'Oxocarbon'); 9 + }); 10 + 11 + test('returns correct name for catppuccin', () { 12 + expect(AppTheme.getPaletteName(AppThemePalette.catppuccin), 'Catppuccin'); 13 + }); 14 + 15 + test('returns correct name for nord', () { 16 + expect(AppTheme.getPaletteName(AppThemePalette.nord), 'Nord'); 17 + }); 18 + 19 + test('returns correct name for rosePine', () { 20 + expect(AppTheme.getPaletteName(AppThemePalette.rosePine), 'Rosé Pine'); 21 + }); 22 + }); 23 + 24 + group('getVariantName', () { 25 + test('returns correct name for light', () { 26 + expect(AppTheme.getVariantName(AppThemeVariant.light), 'Light'); 27 + }); 28 + 29 + test('returns correct name for dark', () { 30 + expect(AppTheme.getVariantName(AppThemeVariant.dark), 'Dark'); 31 + }); 32 + }); 33 + 34 + group('parsePalette', () { 35 + test('parses oxocarbon', () { 36 + expect(AppTheme.parsePalette('oxocarbon'), AppThemePalette.oxocarbon); 37 + }); 38 + 39 + test('parses catppuccin', () { 40 + expect(AppTheme.parsePalette('catppuccin'), AppThemePalette.catppuccin); 41 + }); 42 + 43 + test('parses nord', () { 44 + expect(AppTheme.parsePalette('nord'), AppThemePalette.nord); 45 + }); 46 + 47 + test('parses rosePine', () { 48 + expect(AppTheme.parsePalette('rosePine'), AppThemePalette.rosePine); 49 + }); 50 + 51 + test('returns oxocarbon for null', () { 52 + expect(AppTheme.parsePalette(null), AppThemePalette.oxocarbon); 53 + }); 54 + 55 + test('returns oxocarbon for unknown value', () { 56 + expect(AppTheme.parsePalette('unknown'), AppThemePalette.oxocarbon); 57 + }); 58 + }); 59 + 60 + group('paletteToString', () { 61 + test('converts oxocarbon to string', () { 62 + expect(AppTheme.paletteToString(AppThemePalette.oxocarbon), 'oxocarbon'); 63 + }); 64 + 65 + test('converts catppuccin to string', () { 66 + expect(AppTheme.paletteToString(AppThemePalette.catppuccin), 'catppuccin'); 67 + }); 68 + 69 + test('converts nord to string', () { 70 + expect(AppTheme.paletteToString(AppThemePalette.nord), 'nord'); 71 + }); 72 + 73 + test('converts rosePine to string', () { 74 + expect(AppTheme.paletteToString(AppThemePalette.rosePine), 'rosePine'); 75 + }); 76 + }); 77 + 78 + group('parseVariant', () { 79 + test('parses light', () { 80 + expect(AppTheme.parseVariant('light'), AppThemeVariant.light); 81 + }); 82 + 83 + test('parses dark', () { 84 + expect(AppTheme.parseVariant('dark'), AppThemeVariant.dark); 85 + }); 86 + 87 + test('returns dark for null', () { 88 + expect(AppTheme.parseVariant(null), AppThemeVariant.dark); 89 + }); 90 + 91 + test('returns dark for unknown value', () { 92 + expect(AppTheme.parseVariant('unknown'), AppThemeVariant.dark); 93 + }); 94 + }); 95 + 96 + group('variantToString', () { 97 + test('converts light to string', () { 98 + expect(AppTheme.variantToString(AppThemeVariant.light), 'light'); 99 + }); 100 + 101 + test('converts dark to string', () { 102 + expect(AppTheme.variantToString(AppThemeVariant.dark), 'dark'); 103 + }); 104 + }); 105 + 106 + group('round-trip conversion', () { 107 + test('palette string conversion is reversible', () { 108 + for (final palette in AppThemePalette.values) { 109 + final string = AppTheme.paletteToString(palette); 110 + final parsed = AppTheme.parsePalette(string); 111 + expect(parsed, palette, reason: 'Failed for $palette -> $string'); 112 + } 113 + }); 114 + 115 + test('variant string conversion is reversible', () { 116 + for (final variant in AppThemeVariant.values) { 117 + final string = AppTheme.variantToString(variant); 118 + final parsed = AppTheme.parseVariant(string); 119 + expect(parsed, variant, reason: 'Failed for $variant -> $string'); 120 + } 121 + }); 122 + }); 123 + }); 124 + }
+131
test/core/theme/catppuccin_theme_test.dart
··· 1 + import 'package:flutter/material.dart'; 2 + import 'package:flutter_test/flutter_test.dart'; 3 + import 'package:lazurite/core/theme/catppuccin_theme.dart'; 4 + 5 + void main() { 6 + group('CatppuccinTheme', () { 7 + group('Mocha (Dark) color values', () { 8 + test('base is #1e1e2e', () { 9 + expect(CatppuccinTheme.mochaBase, const Color(0xFF1e1e2e)); 10 + }); 11 + 12 + test('mantle is #181825', () { 13 + expect(CatppuccinTheme.mochaMantle, const Color(0xFF181825)); 14 + }); 15 + 16 + test('surface0 is #313244', () { 17 + expect(CatppuccinTheme.mochaSurface0, const Color(0xFF313244)); 18 + }); 19 + 20 + test('surface1 is #45475a', () { 21 + expect(CatppuccinTheme.mochaSurface1, const Color(0xFF45475a)); 22 + }); 23 + 24 + test('subtext0 is #a6adc8', () { 25 + expect(CatppuccinTheme.mochaSubtext0, const Color(0xFFa6adc8)); 26 + }); 27 + 28 + test('text is #cdd6f4', () { 29 + expect(CatppuccinTheme.mochaText, const Color(0xFFcdd6f4)); 30 + }); 31 + 32 + test('lavender is #b4befe', () { 33 + expect(CatppuccinTheme.mochaLavender, const Color(0xFFb4befe)); 34 + }); 35 + 36 + test('blue is #89b4fa', () { 37 + expect(CatppuccinTheme.mochaBlue, const Color(0xFF89b4fa)); 38 + }); 39 + 40 + test('sapphire is #74c7ec', () { 41 + expect(CatppuccinTheme.mochaSapphire, const Color(0xFF74c7ec)); 42 + }); 43 + 44 + test('green is #a6e3a1', () { 45 + expect(CatppuccinTheme.mochaGreen, const Color(0xFFa6e3a1)); 46 + }); 47 + 48 + test('red is #f38ba8', () { 49 + expect(CatppuccinTheme.mochaRed, const Color(0xFFf38ba8)); 50 + }); 51 + 52 + test('peach is #fab387', () { 53 + expect(CatppuccinTheme.mochaPeach, const Color(0xFFfab387)); 54 + }); 55 + 56 + test('mauve is #cba6f7', () { 57 + expect(CatppuccinTheme.mochaMauve, const Color(0xFFcba6f7)); 58 + }); 59 + 60 + test('pink is #f5c2e7', () { 61 + expect(CatppuccinTheme.mochaPink, const Color(0xFFf5c2e7)); 62 + }); 63 + 64 + test('rosewater is #f5e0dc', () { 65 + expect(CatppuccinTheme.mochaRosewater, const Color(0xFFf5e0dc)); 66 + }); 67 + }); 68 + 69 + group('Latte (Light) color values', () { 70 + test('base is #eff1f5', () { 71 + expect(CatppuccinTheme.latteBase, const Color(0xFFeff1f5)); 72 + }); 73 + 74 + test('mantle is #e6e9ef', () { 75 + expect(CatppuccinTheme.latteMantle, const Color(0xFFe6e9ef)); 76 + }); 77 + 78 + test('surface0 is #ccd0da', () { 79 + expect(CatppuccinTheme.latteSurface0, const Color(0xFFccd0da)); 80 + }); 81 + 82 + test('surface1 is #bcc0cc', () { 83 + expect(CatppuccinTheme.latteSurface1, const Color(0xFFbcc0cc)); 84 + }); 85 + 86 + test('subtext0 is #6c6f85', () { 87 + expect(CatppuccinTheme.latteSubtext0, const Color(0xFF6c6f85)); 88 + }); 89 + 90 + test('text is #4c4f69', () { 91 + expect(CatppuccinTheme.latteText, const Color(0xFF4c4f69)); 92 + }); 93 + 94 + test('lavender is #7287fd', () { 95 + expect(CatppuccinTheme.latteLavender, const Color(0xFF7287fd)); 96 + }); 97 + 98 + test('blue is #1e66f5', () { 99 + expect(CatppuccinTheme.latteBlue, const Color(0xFF1e66f5)); 100 + }); 101 + 102 + test('sapphire is #209fb5', () { 103 + expect(CatppuccinTheme.latteSapphire, const Color(0xFF209fb5)); 104 + }); 105 + 106 + test('green is #40a02b', () { 107 + expect(CatppuccinTheme.latteGreen, const Color(0xFF40a02b)); 108 + }); 109 + 110 + test('red is #d20f39', () { 111 + expect(CatppuccinTheme.latteRed, const Color(0xFFd20f39)); 112 + }); 113 + 114 + test('peach is #fe640b', () { 115 + expect(CatppuccinTheme.lattePeach, const Color(0xFFfe640b)); 116 + }); 117 + 118 + test('mauve is #8839ef', () { 119 + expect(CatppuccinTheme.latteMauve, const Color(0xFF8839ef)); 120 + }); 121 + 122 + test('pink is #ea76cb', () { 123 + expect(CatppuccinTheme.lattePink, const Color(0xFFea76cb)); 124 + }); 125 + 126 + test('rosewater is #dc8a78', () { 127 + expect(CatppuccinTheme.latteRosewater, const Color(0xFFdc8a78)); 128 + }); 129 + }); 130 + }); 131 + }
+73
test/core/theme/nord_theme_test.dart
··· 1 + import 'package:flutter/material.dart'; 2 + import 'package:flutter_test/flutter_test.dart'; 3 + import 'package:lazurite/core/theme/nord_theme.dart'; 4 + 5 + void main() { 6 + group('NordTheme', () { 7 + group('Color values', () { 8 + test('nord0 is #2e3440', () { 9 + expect(NordTheme.nord0, const Color(0xFF2e3440)); 10 + }); 11 + 12 + test('nord1 is #3b4252', () { 13 + expect(NordTheme.nord1, const Color(0xFF3b4252)); 14 + }); 15 + 16 + test('nord2 is #434c5e', () { 17 + expect(NordTheme.nord2, const Color(0xFF434c5e)); 18 + }); 19 + 20 + test('nord3 is #4c566a', () { 21 + expect(NordTheme.nord3, const Color(0xFF4c566a)); 22 + }); 23 + 24 + test('nord4 is #d8dee9', () { 25 + expect(NordTheme.nord4, const Color(0xFFd8dee9)); 26 + }); 27 + 28 + test('nord5 is #e5e9f0', () { 29 + expect(NordTheme.nord5, const Color(0xFFe5e9f0)); 30 + }); 31 + 32 + test('nord6 is #eceff4', () { 33 + expect(NordTheme.nord6, const Color(0xFFeceff4)); 34 + }); 35 + 36 + test('nord7 is #8fbcbb', () { 37 + expect(NordTheme.nord7, const Color(0xFF8fbcbb)); 38 + }); 39 + 40 + test('nord8 is #88c0d0', () { 41 + expect(NordTheme.nord8, const Color(0xFF88c0d0)); 42 + }); 43 + 44 + test('nord9 is #81a1c1', () { 45 + expect(NordTheme.nord9, const Color(0xFF81a1c1)); 46 + }); 47 + 48 + test('nord10 is #5e81ac', () { 49 + expect(NordTheme.nord10, const Color(0xFF5e81ac)); 50 + }); 51 + 52 + test('nord11 is #bf616a', () { 53 + expect(NordTheme.nord11, const Color(0xFFbf616a)); 54 + }); 55 + 56 + test('nord12 is #d08770', () { 57 + expect(NordTheme.nord12, const Color(0xFFd08770)); 58 + }); 59 + 60 + test('nord13 is #ebcb8b', () { 61 + expect(NordTheme.nord13, const Color(0xFFebcb8b)); 62 + }); 63 + 64 + test('nord14 is #a3be8c', () { 65 + expect(NordTheme.nord14, const Color(0xFFa3be8c)); 66 + }); 67 + 68 + test('nord15 is #b48ead', () { 69 + expect(NordTheme.nord15, const Color(0xFFb48ead)); 70 + }); 71 + }); 72 + }); 73 + }
+139
test/core/theme/oxocarbon_theme_test.dart
··· 1 + import 'package:flutter/material.dart'; 2 + import 'package:flutter_test/flutter_test.dart'; 3 + import 'package:lazurite/core/theme/oxocarbon_theme.dart'; 4 + 5 + void main() { 6 + group('OxocarbonTheme', () { 7 + group('Dark color values', () { 8 + test('base00 is #161616', () { 9 + expect(OxocarbonTheme.darkBase00, const Color(0xFF161616)); 10 + }); 11 + 12 + test('base01 is #262626', () { 13 + expect(OxocarbonTheme.darkBase01, const Color(0xFF262626)); 14 + }); 15 + 16 + test('base02 is #393939', () { 17 + expect(OxocarbonTheme.darkBase02, const Color(0xFF393939)); 18 + }); 19 + 20 + test('base03 is #525252', () { 21 + expect(OxocarbonTheme.darkBase03, const Color(0xFF525252)); 22 + }); 23 + 24 + test('base04 is #dde1e6', () { 25 + expect(OxocarbonTheme.darkBase04, const Color(0xFFdde1e6)); 26 + }); 27 + 28 + test('base05 is #f2f4f8', () { 29 + expect(OxocarbonTheme.darkBase05, const Color(0xFFf2f4f8)); 30 + }); 31 + 32 + test('base06 is #ffffff', () { 33 + expect(OxocarbonTheme.darkBase06, const Color(0xFFffffff)); 34 + }); 35 + 36 + test('base07 is #08bdba', () { 37 + expect(OxocarbonTheme.darkBase07, const Color(0xFF08bdba)); 38 + }); 39 + 40 + test('base08 is #3ddbd9', () { 41 + expect(OxocarbonTheme.darkBase08, const Color(0xFF3ddbd9)); 42 + }); 43 + 44 + test('base09 is #78a9ff', () { 45 + expect(OxocarbonTheme.darkBase09, const Color(0xFF78a9ff)); 46 + }); 47 + 48 + test('base0A is #ee5396', () { 49 + expect(OxocarbonTheme.darkBase0A, const Color(0xFFee5396)); 50 + }); 51 + 52 + test('base0B is #33b1ff', () { 53 + expect(OxocarbonTheme.darkBase0B, const Color(0xFF33b1ff)); 54 + }); 55 + 56 + test('base0C is #ff7eb6', () { 57 + expect(OxocarbonTheme.darkBase0C, const Color(0xFFff7eb6)); 58 + }); 59 + 60 + test('base0D is #42be65', () { 61 + expect(OxocarbonTheme.darkBase0D, const Color(0xFF42be65)); 62 + }); 63 + 64 + test('base0E is #be95ff', () { 65 + expect(OxocarbonTheme.darkBase0E, const Color(0xFFbe95ff)); 66 + }); 67 + 68 + test('base0F is #82cfff', () { 69 + expect(OxocarbonTheme.darkBase0F, const Color(0xFF82cfff)); 70 + }); 71 + }); 72 + 73 + group('Light color values', () { 74 + test('base00 is #ffffff', () { 75 + expect(OxocarbonTheme.lightBase00, const Color(0xFFffffff)); 76 + }); 77 + 78 + test('base01 is #f2f2f2', () { 79 + expect(OxocarbonTheme.lightBase01, const Color(0xFFf2f2f2)); 80 + }); 81 + 82 + test('base02 is #d0d0d0', () { 83 + expect(OxocarbonTheme.lightBase02, const Color(0xFFd0d0d0)); 84 + }); 85 + 86 + test('base03 is #161616', () { 87 + expect(OxocarbonTheme.lightBase03, const Color(0xFF161616)); 88 + }); 89 + 90 + test('base04 is #37474F', () { 91 + expect(OxocarbonTheme.lightBase04, const Color(0xFF37474F)); 92 + }); 93 + 94 + test('base05 is #90A4AE', () { 95 + expect(OxocarbonTheme.lightBase05, const Color(0xFF90A4AE)); 96 + }); 97 + 98 + test('base06 is #525252', () { 99 + expect(OxocarbonTheme.lightBase06, const Color(0xFF525252)); 100 + }); 101 + 102 + test('base07 is #08bdba', () { 103 + expect(OxocarbonTheme.lightBase07, const Color(0xFF08bdba)); 104 + }); 105 + 106 + test('base08 is #ff7eb6', () { 107 + expect(OxocarbonTheme.lightBase08, const Color(0xFFff7eb6)); 108 + }); 109 + 110 + test('base09 is #ee5396', () { 111 + expect(OxocarbonTheme.lightBase09, const Color(0xFFee5396)); 112 + }); 113 + 114 + test('base0A is #FF6F00', () { 115 + expect(OxocarbonTheme.lightBase0A, const Color(0xFFFF6F00)); 116 + }); 117 + 118 + test('base0B is #0f62fe', () { 119 + expect(OxocarbonTheme.lightBase0B, const Color(0xFF0f62fe)); 120 + }); 121 + 122 + test('base0C is #673AB7', () { 123 + expect(OxocarbonTheme.lightBase0C, const Color(0xFF673AB7)); 124 + }); 125 + 126 + test('base0D is #42be65', () { 127 + expect(OxocarbonTheme.lightBase0D, const Color(0xFF42be65)); 128 + }); 129 + 130 + test('base0E is #be95ff', () { 131 + expect(OxocarbonTheme.lightBase0E, const Color(0xFFbe95ff)); 132 + }); 133 + 134 + test('base0F is #FFAB91', () { 135 + expect(OxocarbonTheme.lightBase0F, const Color(0xFFFFAB91)); 136 + }); 137 + }); 138 + }); 139 + }
+107
test/core/theme/rose_pine_theme_test.dart
··· 1 + import 'package:flutter/material.dart'; 2 + import 'package:flutter_test/flutter_test.dart'; 3 + import 'package:lazurite/core/theme/rose_pine_theme.dart'; 4 + 5 + void main() { 6 + group('RosePineTheme', () { 7 + group('Main (Dark) color values', () { 8 + test('base is #191724', () { 9 + expect(RosePineTheme.mainBase, const Color(0xFF191724)); 10 + }); 11 + 12 + test('surface is #1f1d2e', () { 13 + expect(RosePineTheme.mainSurface, const Color(0xFF1f1d2e)); 14 + }); 15 + 16 + test('overlay is #26233a', () { 17 + expect(RosePineTheme.mainOverlay, const Color(0xFF26233a)); 18 + }); 19 + 20 + test('muted is #6e6a86', () { 21 + expect(RosePineTheme.mainMuted, const Color(0xFF6e6a86)); 22 + }); 23 + 24 + test('subtle is #908caa', () { 25 + expect(RosePineTheme.mainSubtle, const Color(0xFF908caa)); 26 + }); 27 + 28 + test('text is #e0def4', () { 29 + expect(RosePineTheme.mainText, const Color(0xFFe0def4)); 30 + }); 31 + 32 + test('love is #eb6f92', () { 33 + expect(RosePineTheme.mainLove, const Color(0xFFeb6f92)); 34 + }); 35 + 36 + test('gold is #f6c177', () { 37 + expect(RosePineTheme.mainGold, const Color(0xFFf6c177)); 38 + }); 39 + 40 + test('rose is #ebbcba', () { 41 + expect(RosePineTheme.mainRose, const Color(0xFFebbcba)); 42 + }); 43 + 44 + test('pine is #31748f', () { 45 + expect(RosePineTheme.mainPine, const Color(0xFF31748f)); 46 + }); 47 + 48 + test('foam is #9ccfd8', () { 49 + expect(RosePineTheme.mainFoam, const Color(0xFF9ccfd8)); 50 + }); 51 + 52 + test('iris is #c4a7e7', () { 53 + expect(RosePineTheme.mainIris, const Color(0xFFc4a7e7)); 54 + }); 55 + }); 56 + 57 + group('Dawn (Light) color values', () { 58 + test('base is #faf4ed', () { 59 + expect(RosePineTheme.dawnBase, const Color(0xFFfaf4ed)); 60 + }); 61 + 62 + test('surface is #fffaf3', () { 63 + expect(RosePineTheme.dawnSurface, const Color(0xFFfffaf3)); 64 + }); 65 + 66 + test('overlay is #f2e9e1', () { 67 + expect(RosePineTheme.dawnOverlay, const Color(0xFFf2e9e1)); 68 + }); 69 + 70 + test('muted is #9893a5', () { 71 + expect(RosePineTheme.dawnMuted, const Color(0xFF9893a5)); 72 + }); 73 + 74 + test('subtle is #797593', () { 75 + expect(RosePineTheme.dawnSubtle, const Color(0xFF797593)); 76 + }); 77 + 78 + test('text is #575279', () { 79 + expect(RosePineTheme.dawnText, const Color(0xFF575279)); 80 + }); 81 + 82 + test('love is #b4637a', () { 83 + expect(RosePineTheme.dawnLove, const Color(0xFFb4637a)); 84 + }); 85 + 86 + test('gold is #ea9d34', () { 87 + expect(RosePineTheme.dawnGold, const Color(0xFFea9d34)); 88 + }); 89 + 90 + test('rose is #d7827e', () { 91 + expect(RosePineTheme.dawnRose, const Color(0xFFd7827e)); 92 + }); 93 + 94 + test('pine is #286983', () { 95 + expect(RosePineTheme.dawnPine, const Color(0xFF286983)); 96 + }); 97 + 98 + test('foam is #56949f', () { 99 + expect(RosePineTheme.dawnFoam, const Color(0xFF56949f)); 100 + }); 101 + 102 + test('iris is #907aa9', () { 103 + expect(RosePineTheme.dawnIris, const Color(0xFF907aa9)); 104 + }); 105 + }); 106 + }); 107 + }
+117
test/features/settings/bloc/settings_cubit_test.dart
··· 1 + import 'package:bloc_test/bloc_test.dart'; 2 + import 'package:drift/native.dart'; 3 + import 'package:flutter_test/flutter_test.dart'; 4 + import 'package:lazurite/core/database/app_database.dart'; 5 + import 'package:lazurite/core/theme/app_theme.dart'; 6 + import 'package:lazurite/features/settings/bloc/settings_cubit.dart'; 7 + import 'package:lazurite/features/settings/bloc/settings_state.dart'; 8 + 9 + void main() { 10 + late AppDatabase database; 11 + 12 + setUp(() async { 13 + database = AppDatabase(executor: NativeDatabase.memory()); 14 + }); 15 + 16 + tearDown(() async { 17 + await database.close(); 18 + }); 19 + 20 + group('SettingsCubit', () { 21 + test('initial state has default values', () { 22 + final cubit = SettingsCubit(database: database); 23 + expect(cubit.state.themePalette, AppThemePalette.oxocarbon); 24 + expect(cubit.state.themeVariant, AppThemeVariant.dark); 25 + expect(cubit.state.useSystemTheme, false); 26 + }); 27 + 28 + test('accepts initial values via constructor', () { 29 + final cubit = SettingsCubit( 30 + database: database, 31 + initialPalette: AppThemePalette.catppuccin, 32 + initialVariant: AppThemeVariant.light, 33 + initialUseSystemTheme: true, 34 + ); 35 + expect(cubit.state.themePalette, AppThemePalette.catppuccin); 36 + expect(cubit.state.themeVariant, AppThemeVariant.light); 37 + expect(cubit.state.useSystemTheme, true); 38 + }); 39 + 40 + blocTest<SettingsCubit, SettingsState>( 41 + 'loadSettings loads persisted settings from database', 42 + build: () => SettingsCubit(database: database), 43 + setUp: () async { 44 + await database.setSetting('theme_palette', 'nord'); 45 + await database.setSetting('theme_variant', 'light'); 46 + await database.setSetting('use_system_theme', 'true'); 47 + }, 48 + act: (cubit) => cubit.loadSettings(), 49 + expect: () => [ 50 + isA<SettingsState>() 51 + .having((s) => s.themePalette, 'themePalette', AppThemePalette.nord) 52 + .having((s) => s.themeVariant, 'themeVariant', AppThemeVariant.light) 53 + .having((s) => s.useSystemTheme, 'useSystemTheme', true), 54 + ], 55 + ); 56 + 57 + blocTest<SettingsCubit, SettingsState>( 58 + 'loadSettings uses defaults when no settings persisted', 59 + build: () => SettingsCubit(database: database), 60 + act: (cubit) => cubit.loadSettings(), 61 + expect: () => [ 62 + isA<SettingsState>() 63 + .having((s) => s.themePalette, 'themePalette', AppThemePalette.oxocarbon) 64 + .having((s) => s.themeVariant, 'themeVariant', AppThemeVariant.dark) 65 + .having((s) => s.useSystemTheme, 'useSystemTheme', false), 66 + ], 67 + ); 68 + 69 + blocTest<SettingsCubit, SettingsState>( 70 + 'setThemePalette updates state and persists to database', 71 + build: () => SettingsCubit(database: database), 72 + act: (cubit) => cubit.setThemePalette(AppThemePalette.rosePine), 73 + expect: () => [isA<SettingsState>().having((s) => s.themePalette, 'themePalette', AppThemePalette.rosePine)], 74 + verify: (cubit) async { 75 + final value = await database.getSetting('theme_palette'); 76 + expect(value, 'rosePine'); 77 + }, 78 + ); 79 + 80 + blocTest<SettingsCubit, SettingsState>( 81 + 'setThemeVariant updates state and persists to database', 82 + build: () => SettingsCubit(database: database), 83 + act: (cubit) => cubit.setThemeVariant(AppThemeVariant.light), 84 + expect: () => [isA<SettingsState>().having((s) => s.themeVariant, 'themeVariant', AppThemeVariant.light)], 85 + verify: (cubit) async { 86 + final value = await database.getSetting('theme_variant'); 87 + expect(value, 'light'); 88 + }, 89 + ); 90 + 91 + blocTest<SettingsCubit, SettingsState>( 92 + 'setTheme updates both palette and variant', 93 + build: () => SettingsCubit(database: database), 94 + act: (cubit) => cubit.setTheme(AppThemePalette.nord, AppThemeVariant.light), 95 + expect: () => [ 96 + isA<SettingsState>() 97 + .having((s) => s.themePalette, 'themePalette', AppThemePalette.nord) 98 + .having((s) => s.themeVariant, 'themeVariant', AppThemeVariant.light), 99 + ], 100 + verify: (cubit) async { 101 + expect(await database.getSetting('theme_palette'), 'nord'); 102 + expect(await database.getSetting('theme_variant'), 'light'); 103 + }, 104 + ); 105 + 106 + blocTest<SettingsCubit, SettingsState>( 107 + 'setUseSystemTheme updates state and persists to database', 108 + build: () => SettingsCubit(database: database), 109 + act: (cubit) => cubit.setUseSystemTheme(true), 110 + expect: () => [isA<SettingsState>().having((s) => s.useSystemTheme, 'useSystemTheme', true)], 111 + verify: (cubit) async { 112 + final value = await database.getSetting('use_system_theme'); 113 + expect(value, 'true'); 114 + }, 115 + ); 116 + }); 117 + }
+112
test/features/settings/bloc/settings_state_test.dart
··· 1 + import 'package:flutter_test/flutter_test.dart'; 2 + import 'package:lazurite/core/theme/app_theme.dart'; 3 + import 'package:lazurite/features/settings/bloc/settings_state.dart'; 4 + 5 + void main() { 6 + group('SettingsState', () { 7 + test('supports equality', () { 8 + const state1 = SettingsState( 9 + themePalette: AppThemePalette.oxocarbon, 10 + themeVariant: AppThemeVariant.dark, 11 + useSystemTheme: false, 12 + ); 13 + const state2 = SettingsState( 14 + themePalette: AppThemePalette.oxocarbon, 15 + themeVariant: AppThemeVariant.dark, 16 + useSystemTheme: false, 17 + ); 18 + 19 + expect(state1, equals(state2)); 20 + }); 21 + 22 + test('inequality when palette differs', () { 23 + const state1 = SettingsState( 24 + themePalette: AppThemePalette.oxocarbon, 25 + themeVariant: AppThemeVariant.dark, 26 + useSystemTheme: false, 27 + ); 28 + const state2 = SettingsState( 29 + themePalette: AppThemePalette.catppuccin, 30 + themeVariant: AppThemeVariant.dark, 31 + useSystemTheme: false, 32 + ); 33 + 34 + expect(state1, isNot(equals(state2))); 35 + }); 36 + 37 + test('inequality when variant differs', () { 38 + const state1 = SettingsState( 39 + themePalette: AppThemePalette.oxocarbon, 40 + themeVariant: AppThemeVariant.dark, 41 + useSystemTheme: false, 42 + ); 43 + const state2 = SettingsState( 44 + themePalette: AppThemePalette.oxocarbon, 45 + themeVariant: AppThemeVariant.light, 46 + useSystemTheme: false, 47 + ); 48 + 49 + expect(state1, isNot(equals(state2))); 50 + }); 51 + 52 + test('inequality when useSystemTheme differs', () { 53 + const state1 = SettingsState( 54 + themePalette: AppThemePalette.oxocarbon, 55 + themeVariant: AppThemeVariant.dark, 56 + useSystemTheme: false, 57 + ); 58 + const state2 = SettingsState( 59 + themePalette: AppThemePalette.oxocarbon, 60 + themeVariant: AppThemeVariant.dark, 61 + useSystemTheme: true, 62 + ); 63 + 64 + expect(state1, isNot(equals(state2))); 65 + }); 66 + 67 + test('copyWith returns new instance with updated values', () { 68 + const original = SettingsState( 69 + themePalette: AppThemePalette.oxocarbon, 70 + themeVariant: AppThemeVariant.dark, 71 + useSystemTheme: false, 72 + ); 73 + 74 + final updated = original.copyWith( 75 + themePalette: AppThemePalette.nord, 76 + themeVariant: AppThemeVariant.light, 77 + useSystemTheme: true, 78 + ); 79 + 80 + expect(updated.themePalette, AppThemePalette.nord); 81 + expect(updated.themeVariant, AppThemeVariant.light); 82 + expect(updated.useSystemTheme, true); 83 + expect(original.themePalette, AppThemePalette.oxocarbon); 84 + }); 85 + 86 + test('copyWith preserves original values when not provided', () { 87 + const original = SettingsState( 88 + themePalette: AppThemePalette.catppuccin, 89 + themeVariant: AppThemeVariant.light, 90 + useSystemTheme: true, 91 + ); 92 + 93 + final updated = original.copyWith(); 94 + 95 + expect(updated.themePalette, AppThemePalette.catppuccin); 96 + expect(updated.themeVariant, AppThemeVariant.light); 97 + expect(updated.useSystemTheme, true); 98 + }); 99 + 100 + test('props includes all fields', () { 101 + const state = SettingsState( 102 + themePalette: AppThemePalette.rosePine, 103 + themeVariant: AppThemeVariant.light, 104 + useSystemTheme: true, 105 + ); 106 + 107 + expect(state.props, contains(AppThemePalette.rosePine)); 108 + expect(state.props, contains(AppThemeVariant.light)); 109 + expect(state.props, contains(true)); 110 + }); 111 + }); 112 + }