diff --git a/.github/workflows/ci-cd.yaml b/.github/workflows/ci-cd.yaml index 66bf5de7..44fd5264 100644 --- a/.github/workflows/ci-cd.yaml +++ b/.github/workflows/ci-cd.yaml @@ -19,8 +19,6 @@ jobs: channel: "stable" - run: flutter pub get - run: flutter analyze - - run: dart format --set-exit-if-changed lib - - run: dart format --set-exit-if-changed test - run: flutter test --coverage - run: flutter test --machine > test-results.json - uses: dorny/test-reporter@v1 diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 29267048..6a5a8ce8 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -25,8 +25,6 @@ jobs: channel: stable - run: flutter pub get - run: flutter analyze - - run: dart format --set-exit-if-changed lib - - run: dart format --set-exit-if-changed test - run: flutter test --coverage - run: flutter test --machine > test-results.json - uses: dorny/test-reporter@v1 diff --git a/lib/app/core/l10n/localizations/app_localizations.dart b/lib/app/core/l10n/localizations/app_localizations.dart index ad25b13e..74fd4342 100644 --- a/lib/app/core/l10n/localizations/app_localizations.dart +++ b/lib/app/core/l10n/localizations/app_localizations.dart @@ -2,11 +2,12 @@ import 'dart:async'; import 'package:flutter/foundation.dart'; import 'package:flutter/widgets.dart'; - import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:intl/intl.dart' as intl; -import 'package:site/app/core/l10n/l10n.dart'; +import 'app_localizations_en.dart'; +import 'app_localizations_es.dart'; +import 'app_localizations_pt.dart'; /// Callers can lookup localized strings with an instance of AppLocalizations /// returned by `AppLocalizations.of(context)`. @@ -60,8 +61,7 @@ import 'package:site/app/core/l10n/l10n.dart'; /// be consistent with the languages listed in the AppLocalizations.supportedLocales /// property. abstract class AppLocalizations { - AppLocalizations(String locale) - : localeName = intl.Intl.canonicalizedLocale(locale.toString()); + AppLocalizations(String locale) : localeName = intl.Intl.canonicalizedLocale(locale.toString()); final String localeName; @@ -69,8 +69,7 @@ abstract class AppLocalizations { return Localizations.of(context, AppLocalizations); } - static const LocalizationsDelegate delegate = - _AppLocalizationsDelegate(); + static const LocalizationsDelegate delegate = _AppLocalizationsDelegate(); /// A list of this localizations delegate along with the default localizations /// delegates. @@ -82,8 +81,7 @@ abstract class AppLocalizations { /// Additional delegates can be added by appending to this list in /// MaterialApp. This list does not have to be used at all if a custom list /// of delegates is preferred or required. - static const List> localizationsDelegates = - >[ + static const List> localizationsDelegates = >[ delegate, GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate, @@ -397,6 +395,12 @@ abstract class AppLocalizations { /// **'Insira um nome maior.'** String get insertABiggerName; + /// No description provided for @insertALittleName. + /// + /// In pt, this message translates to: + /// **'Insira um nome menor.'** + String get insertALittleName; + /// No description provided for @thisNameIsNotValid. /// /// In pt, this message translates to: @@ -427,6 +431,12 @@ abstract class AppLocalizations { /// **'Insira uma mensagem maior.'** String get insertABiggerMessage; + /// No description provided for @insertALittleMessage. + /// + /// In pt, this message translates to: + /// **'Insira uma mensagem menor.'** + String get insertALittleMessage; + /// No description provided for @thisMessageIsNotValid. /// /// In pt, this message translates to: @@ -445,6 +455,12 @@ abstract class AppLocalizations { /// **'Insira um assunto maior.'** String get insertABiggerSubject; + /// No description provided for @insertALittleSubject. + /// + /// In pt, this message translates to: + /// **'Insira um assunto menor.'** + String get insertALittleSubject; + /// No description provided for @thisSubjectIsNotValid. /// /// In pt, this message translates to: @@ -452,8 +468,7 @@ abstract class AppLocalizations { String get thisSubjectIsNotValid; } -class _AppLocalizationsDelegate - extends LocalizationsDelegate { +class _AppLocalizationsDelegate extends LocalizationsDelegate { const _AppLocalizationsDelegate(); @override @@ -462,27 +477,26 @@ class _AppLocalizationsDelegate } @override - bool isSupported(Locale locale) => - ['en', 'es', 'pt'].contains(locale.languageCode); + bool isSupported(Locale locale) => ['en', 'es', 'pt'].contains(locale.languageCode); @override bool shouldReload(_AppLocalizationsDelegate old) => false; } AppLocalizations lookupAppLocalizations(Locale locale) { + + // Lookup logic when only language code is specified. switch (locale.languageCode) { - case 'en': - return AppLocalizationsEn(); - case 'es': - return AppLocalizationsEs(); - case 'pt': - return AppLocalizationsPt(); + case 'en': return AppLocalizationsEn(); + case 'es': return AppLocalizationsEs(); + case 'pt': return AppLocalizationsPt(); } throw FlutterError( - 'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely ' - 'an issue with the localizations generation tool. Please file an issue ' - 'on GitHub with a reproducible sample app and the gen-l10n configuration ' - 'that was used.'); + 'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely ' + 'an issue with the localizations generation tool. Please file an issue ' + 'on GitHub with a reproducible sample app and the gen-l10n configuration ' + 'that was used.' + ); } diff --git a/lib/app/core/l10n/localizations/app_localizations_en.dart b/lib/app/core/l10n/localizations/app_localizations_en.dart index 001fd694..896e5a51 100644 --- a/lib/app/core/l10n/localizations/app_localizations_en.dart +++ b/lib/app/core/l10n/localizations/app_localizations_en.dart @@ -1,4 +1,4 @@ -import 'package:site/app/core/l10n/l10n.dart'; +import 'app_localizations.dart'; /// The translations for English (`en`). class AppLocalizationsEn extends AppLocalizations { @@ -17,8 +17,7 @@ class AppLocalizationsEn extends AppLocalizations { String get hiIAmFelipeSales => 'Hi, I\'m Felipe Sales'; @override - String get developerFocused => - 'Developer focused on applying his knowledge in practice and building amazing things through lines of code.'; + String get developerFocused => 'Developer focused on applying his knowledge in practice and building amazing things through lines of code.'; @override String get appsDeveloper => '> Apps Developer'; @@ -48,8 +47,7 @@ class AppLocalizationsEn extends AppLocalizations { String get seeProjectsUpper => 'SEE PROJECTS'; @override - String get projectAreInMyGitHub => - 'Most of the projects I have developed are completely open-source on my GitHub.'; + String get projectAreInMyGitHub => 'Most of the projects I have developed are completely open-source on my GitHub.'; @override String get experience => 'Experience'; @@ -156,6 +154,9 @@ class AppLocalizationsEn extends AppLocalizations { @override String get insertABiggerName => 'Please enter a longer name.'; + @override + String get insertALittleName => 'Please enter a shorter name.'; + @override String get thisNameIsNotValid => 'This name is not valid.'; @@ -171,6 +172,9 @@ class AppLocalizationsEn extends AppLocalizations { @override String get insertABiggerMessage => 'Please enter a longer message.'; + @override + String get insertALittleMessage => 'Please enter a shorter message.'; + @override String get thisMessageIsNotValid => 'This message is not valid.'; @@ -180,6 +184,9 @@ class AppLocalizationsEn extends AppLocalizations { @override String get insertABiggerSubject => 'Please enter a longer subject.'; + @override + String get insertALittleSubject => 'Please enter a shorter subject.'; + @override String get thisSubjectIsNotValid => 'This subject is not valid.'; } diff --git a/lib/app/core/l10n/localizations/app_localizations_es.dart b/lib/app/core/l10n/localizations/app_localizations_es.dart index 8345d538..f3ab796d 100644 --- a/lib/app/core/l10n/localizations/app_localizations_es.dart +++ b/lib/app/core/l10n/localizations/app_localizations_es.dart @@ -1,4 +1,4 @@ -import 'package:site/app/core/l10n/l10n.dart'; +import 'app_localizations.dart'; /// The translations for Spanish Castilian (`es`). class AppLocalizationsEs extends AppLocalizations { @@ -11,15 +11,13 @@ class AppLocalizationsEs extends AppLocalizations { String get felipeSales => 'Felipe Sales'; @override - String get flutterDeveloperInstructor => - 'Instructor de Desarrollador Flutter'; + String get flutterDeveloperInstructor => 'Instructor de Desarrollador Flutter'; @override String get hiIAmFelipeSales => 'Hola, soy Felipe Sales'; @override - String get developerFocused => - 'Desarrollador enfocado en aplicar sus conocimientos en la práctica y construir cosas increíbles a través de líneas de código.'; + String get developerFocused => 'Desarrollador enfocado en aplicar sus conocimientos en la práctica y construir cosas increíbles a través de líneas de código.'; @override String get appsDeveloper => '> Desarrollador de aplicaciones'; @@ -49,8 +47,7 @@ class AppLocalizationsEs extends AppLocalizations { String get seeProjectsUpper => 'VER PROYECTOS'; @override - String get projectAreInMyGitHub => - 'La mayoría de los proyectos que he desarrollado son completamente de código abierto en mi GitHub.'; + String get projectAreInMyGitHub => 'La mayoría de los proyectos que he desarrollado son completamente de código abierto en mi GitHub.'; @override String get experience => 'Experiencia'; @@ -137,8 +134,7 @@ class AppLocalizationsEs extends AppLocalizations { String get dot => '.'; @override - String get flutterProjectOpenSource => - 'Un proyecto Flutter de código abierto.'; + String get flutterProjectOpenSource => 'Un proyecto Flutter de código abierto.'; @override String get seeInGitHub => 'Ver en GitHub'; @@ -158,6 +154,9 @@ class AppLocalizationsEs extends AppLocalizations { @override String get insertABiggerName => 'Ingrese un nombre más largo.'; + @override + String get insertALittleName => 'Ingrese un nombre más corto.'; + @override String get thisNameIsNotValid => 'Este nombre no es válido.'; @@ -173,6 +172,9 @@ class AppLocalizationsEs extends AppLocalizations { @override String get insertABiggerMessage => 'Ingrese un mensaje más largo.'; + @override + String get insertALittleMessage => 'Ingrese un mensaje más corto.'; + @override String get thisMessageIsNotValid => 'Este mensaje no es válido.'; @@ -182,6 +184,9 @@ class AppLocalizationsEs extends AppLocalizations { @override String get insertABiggerSubject => 'Ingrese un asunto más largo.'; + @override + String get insertALittleSubject => 'Ingrese un asunto más corto.'; + @override String get thisSubjectIsNotValid => 'Este asunto no es válido.'; } diff --git a/lib/app/core/l10n/localizations/app_localizations_pt.dart b/lib/app/core/l10n/localizations/app_localizations_pt.dart index dc316a7c..8852f899 100644 --- a/lib/app/core/l10n/localizations/app_localizations_pt.dart +++ b/lib/app/core/l10n/localizations/app_localizations_pt.dart @@ -1,4 +1,4 @@ -import 'package:site/app/core/l10n/l10n.dart'; +import 'app_localizations.dart'; /// The translations for Portuguese (`pt`). class AppLocalizationsPt extends AppLocalizations { @@ -17,8 +17,7 @@ class AppLocalizationsPt extends AppLocalizations { String get hiIAmFelipeSales => 'Olá, sou Felipe Sales'; @override - String get developerFocused => - 'Desenvolvedor focado em aplicar seus conhecimentos em prática e construir coisas incríveis através de linhas de código.'; + String get developerFocused => 'Desenvolvedor focado em aplicar seus conhecimentos em prática e construir coisas incríveis através de linhas de código.'; @override String get appsDeveloper => '> Desenvolvedor de Apps'; @@ -48,8 +47,7 @@ class AppLocalizationsPt extends AppLocalizations { String get seeProjectsUpper => 'VER PROJETOS'; @override - String get projectAreInMyGitHub => - 'Grande parte dos projetos que já desenvolvi estão no meu GitHub de forma completamente open-source.'; + String get projectAreInMyGitHub => 'Grande parte dos projetos que já desenvolvi estão no meu GitHub de forma completamente open-source.'; @override String get experience => 'Experiência'; @@ -156,6 +154,9 @@ class AppLocalizationsPt extends AppLocalizations { @override String get insertABiggerName => 'Insira um nome maior.'; + @override + String get insertALittleName => 'Insira um nome menor.'; + @override String get thisNameIsNotValid => 'Este nome não é válido.'; @@ -171,6 +172,9 @@ class AppLocalizationsPt extends AppLocalizations { @override String get insertABiggerMessage => 'Insira uma mensagem maior.'; + @override + String get insertALittleMessage => 'Insira uma mensagem menor.'; + @override String get thisMessageIsNotValid => 'Esta mensagem não é válida.'; @@ -180,6 +184,9 @@ class AppLocalizationsPt extends AppLocalizations { @override String get insertABiggerSubject => 'Insira um assunto maior.'; + @override + String get insertALittleSubject => 'Insira um assunto menor.'; + @override String get thisSubjectIsNotValid => 'Este assunto não é válido.'; } diff --git a/lib/app/core/l10n/templates/app_en.arb b/lib/app/core/l10n/templates/app_en.arb index 808aef1e..64ebbb8c 100644 --- a/lib/app/core/l10n/templates/app_en.arb +++ b/lib/app/core/l10n/templates/app_en.arb @@ -49,13 +49,16 @@ "createdByFelipeCastroSales": "Created by @felipecastrosales™", "insertValidName": "Please enter a valid name.", "insertABiggerName": "Please enter a longer name.", + "insertALittleName": "Please enter a shorter name.", "thisNameIsNotValid": "This name is not valid.", "insertValidEmail": "Please enter a valid email address.", "thisEmailIsNotValid": "This email address is not valid.", "insertValidMessage": "Please enter a valid message.", "insertABiggerMessage": "Please enter a longer message.", + "insertALittleMessage": "Please enter a shorter message.", "thisMessageIsNotValid": "This message is not valid.", "insertValidSubject": "Please enter a valid subject.", "insertABiggerSubject": "Please enter a longer subject.", + "insertALittleSubject": "Please enter a shorter subject.", "thisSubjectIsNotValid": "This subject is not valid." } \ No newline at end of file diff --git a/lib/app/core/l10n/templates/app_es.arb b/lib/app/core/l10n/templates/app_es.arb index eb8a8468..ecb2e5fe 100644 --- a/lib/app/core/l10n/templates/app_es.arb +++ b/lib/app/core/l10n/templates/app_es.arb @@ -49,13 +49,16 @@ "createdByFelipeCastroSales": "Creado por @felipecastrosales™", "insertValidName": "Ingrese un nombre válido.", "insertABiggerName": "Ingrese un nombre más largo.", + "insertALittleName": "Ingrese un nombre más corto.", "thisNameIsNotValid": "Este nombre no es válido.", "insertValidEmail": "Ingrese un email válido.", "thisEmailIsNotValid": "Este email no es válido.", "insertValidMessage": "Ingrese un mensaje válido.", "insertABiggerMessage": "Ingrese un mensaje más largo.", + "insertALittleMessage": "Ingrese un mensaje más corto.", "thisMessageIsNotValid": "Este mensaje no es válido.", "insertValidSubject": "Ingrese un asunto válido.", "insertABiggerSubject": "Ingrese un asunto más largo.", + "insertALittleSubject": "Ingrese un asunto más corto.", "thisSubjectIsNotValid": "Este asunto no es válido." } \ No newline at end of file diff --git a/lib/app/core/l10n/templates/app_pt.arb b/lib/app/core/l10n/templates/app_pt.arb index dd3e523a..a690b99d 100644 --- a/lib/app/core/l10n/templates/app_pt.arb +++ b/lib/app/core/l10n/templates/app_pt.arb @@ -49,13 +49,16 @@ "createdByFelipeCastroSales": "Criado por @felipecastrosales™", "insertValidName": "Insira um nome válido.", "insertABiggerName": "Insira um nome maior.", + "insertALittleName": "Insira um nome menor.", "thisNameIsNotValid": "Este nome não é válido.", "insertValidEmail": "Insira um e-mail válido.", "thisEmailIsNotValid": "Este e-mail não é válido.", "insertValidMessage": "Insira uma mensagem válida.", "insertABiggerMessage": "Insira uma mensagem maior.", + "insertALittleMessage": "Insira uma mensagem menor.", "thisMessageIsNotValid": "Esta mensagem não é válida.", "insertValidSubject": "Insira um assunto válido.", "insertABiggerSubject": "Insira um assunto maior.", + "insertALittleSubject": "Insira um assunto menor.", "thisSubjectIsNotValid": "Este assunto não é válido." } \ No newline at end of file diff --git a/lib/app/utils/contact_validators.dart b/lib/app/utils/contact_validators.dart index a9085523..266107e4 100644 --- a/lib/app/utils/contact_validators.dart +++ b/lib/app/utils/contact_validators.dart @@ -1,15 +1,26 @@ -import 'package:flutter/cupertino.dart'; +import 'package:email_validator/email_validator.dart'; +import 'package:flutter/material.dart'; import 'package:site/app/core/l10n/l10n.dart'; class ContactValidators { + static const maxSizeForName = 50; + static const maxSizeForMessage = 300; + static const maxSizeForSubject = 60; + static String? name(String? value, [BuildContext? context]) { - if (value!.isEmpty) { + if (value == null || value.isEmpty) { return AppTexts.get(context!).insertValidName; } + final regexLenght = RegExp(r'^.{3,}$'); if (!regexLenght.hasMatch(value)) { return AppTexts.get(context!).insertABiggerName; } + + if (value.length > maxSizeForName) { + return AppTexts.get(context!).insertALittleName; + } + final regex = RegExp('[a-zA-Z]'); if (regex.hasMatch(value)) { return null; @@ -19,13 +30,11 @@ class ContactValidators { } static String? email(String? value, [BuildContext? context]) { - if (value!.isEmpty) { + if (value == null || value.isEmpty) { return AppTexts.get(context!).insertValidEmail; } - final regex = RegExp( - r"^[a-zA-Z0-9.a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[a-zA-Z0-9]+\.[a-zA-Z]+", - ); - if (regex.hasMatch(value)) { + + if (EmailValidator.validate(value)) { return null; } @@ -33,13 +42,19 @@ class ContactValidators { } static String? message(String? value, [BuildContext? context]) { - if (value!.isEmpty) { + if (value == null || value.isEmpty) { return AppTexts.get(context!).insertValidMessage; } + final regexLenght = RegExp(r'^.{10,}$'); if (!regexLenght.hasMatch(value)) { return AppTexts.get(context!).insertABiggerMessage; } + + if (value.length > maxSizeForMessage) { + return AppTexts.get(context!).insertALittleMessage; + } + final regex = RegExp('[a-zA-Z]'); if (regex.hasMatch(value)) { return null; @@ -49,13 +64,19 @@ class ContactValidators { } static String? subject(String? value, [BuildContext? context]) { - if (value!.isEmpty) { + if (value == null || value.isEmpty) { return AppTexts.get(context!).insertValidSubject; } + final regexLenght = RegExp(r'^.{5,}$'); if (!regexLenght.hasMatch(value)) { return AppTexts.get(context!).insertABiggerSubject; } + + if (value.length > maxSizeForSubject) { + return AppTexts.get(context!).insertALittleSubject; + } + final regex = RegExp('[a-zA-Z]'); if (regex.hasMatch(value)) { return null; diff --git a/lib/app/widgets/drawer/custom_drawer.dart b/lib/app/widgets/drawer/custom_drawer.dart index f6f435e1..d0cf5479 100644 --- a/lib/app/widgets/drawer/custom_drawer.dart +++ b/lib/app/widgets/drawer/custom_drawer.dart @@ -29,8 +29,9 @@ class CustomDrawer extends StatelessWidget { children: [ const CustomDrawerHeader(), const CustomDivider(.5, AppColors.primaryDark), - DrawerItems(itemScrollController), - const Spacer(), + Expanded( + child: DrawerItems(itemScrollController), + ), const DrawerFooter(), const Align( alignment: Alignment.centerLeft, diff --git a/lib/app/widgets/utils_widgets/single_child_scroll_view_without_scroll.dart b/lib/app/widgets/utils_widgets/single_child_scroll_view_without_scroll.dart index 0185590b..be78e5ab 100644 --- a/lib/app/widgets/utils_widgets/single_child_scroll_view_without_scroll.dart +++ b/lib/app/widgets/utils_widgets/single_child_scroll_view_without_scroll.dart @@ -1,3 +1,5 @@ +library; + /// -> This widget is used to wrap a widget with a SingleChildScrollView without scroll. /// /// I make this, because in some cases, diff --git a/pubspec.lock b/pubspec.lock index 1a59879a..df31c51c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,18 +5,18 @@ packages: dependency: transitive description: name: _flutterfire_internals - sha256: "1a52f1afae8ab7ac4741425114713bdbba802f1ce1e0648e167ffcc6e05e96cf" + sha256: "4eec93681221723a686ad580c2e7d960e1017cf1a4e0a263c2573c2c6b0bf5cd" url: "https://pub.dev" source: hosted - version: "1.3.21" + version: "1.3.25" archive: dependency: transitive description: name: archive - sha256: "0c8368c9b3f0abbc193b9d6133649a614204b528982bebc7026372d61677ce3a" + sha256: "22600aa1e926be775fa5fe7e6894e7fb3df9efda8891c73f70fb3262399a432d" url: "https://pub.dev" source: hosted - version: "3.3.7" + version: "3.4.10" args: dependency: transitive description: @@ -89,6 +89,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.3" + email_validator: + dependency: "direct main" + description: + name: email_validator + sha256: e9a90f27ab2b915a27d7f9c2a7ddda5dd752d6942616ee83529b686fc086221b + url: "https://pub.dev" + source: hosted + version: "2.1.17" fake_async: dependency: transitive description: @@ -101,50 +109,50 @@ packages: dependency: transitive description: name: ffi - sha256: "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878" + sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.2" file: dependency: transitive description: name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" + sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" url: "https://pub.dev" source: hosted - version: "6.1.4" + version: "7.0.0" firebase_analytics: dependency: "direct main" description: name: firebase_analytics - sha256: edb9f9eaecf0e6431e5c12b7fabdb68be3e85ce51f941ccbfa6cb71327e8b535 + sha256: b13cbf1ee78744ca5e6b762e9218db3bd3967a0edfed75f58339907892a2ccb9 url: "https://pub.dev" source: hosted - version: "10.8.5" + version: "10.8.9" firebase_analytics_platform_interface: dependency: transitive description: name: firebase_analytics_platform_interface - sha256: de4a54353cf58412c6da6b660a0dbad8efacb33b345c0286bc3a2edb869124d8 + sha256: "416b33d62033db5ecd2df719fcb657ad04e9995fa0fc392ffdab4ca0e76cb679" url: "https://pub.dev" source: hosted - version: "3.9.5" + version: "3.9.9" firebase_analytics_web: dependency: transitive description: name: firebase_analytics_web - sha256: "77e4c02ffd0204ccc7856221193265c807b7e056fa62855f973a7f77435b5d41" + sha256: "9dca9d8d468172444ef18cabb73fe99f7aae24733bfad67115bd36bffd2d65c1" url: "https://pub.dev" source: hosted - version: "0.5.5+17" + version: "0.5.5+21" firebase_core: dependency: "direct main" description: name: firebase_core - sha256: "7e049e32a9d347616edb39542cf92cd53fdb4a99fb6af0a0bff327c14cd76445" + sha256: "53316975310c8af75a96e365f9fccb67d1c544ef0acdbf0d88bbe30eedd1c4f9" url: "https://pub.dev" source: hosted - version: "2.25.4" + version: "2.27.0" firebase_core_platform_interface: dependency: "direct main" description: @@ -157,34 +165,34 @@ packages: dependency: "direct main" description: name: firebase_core_web - sha256: "57e61d6010e253b36d38191cefd6199d7849152cdcd234b61ca290cdb278a0ba" + sha256: c8e1d59385eee98de63c92f961d2a7062c5d9a65e7f45bdc7f1b0b205aab2492 url: "https://pub.dev" source: hosted - version: "2.11.4" + version: "2.11.5" firebase_remote_config: dependency: "direct main" description: name: firebase_remote_config - sha256: "701d563063b44ea39e4d23bb5c3fcc3f6eab8fa9247a9a0b276058ad7325ec86" + sha256: b085a72c007bd8f177a7ab98b8292d764659b07fb6b0561b84125239ee656efc url: "https://pub.dev" source: hosted - version: "4.3.13" + version: "4.3.17" firebase_remote_config_platform_interface: dependency: transitive description: name: firebase_remote_config_platform_interface - sha256: "270df798d81421bfbb7fdc4f0bebdcb77e594fefdf1e6a65d56584ff5a06ea54" + sha256: c589e007156b2c9f903253764c108abb96c1b56dd17cf0b91afc4b72ccab7bb6 url: "https://pub.dev" source: hosted - version: "1.4.21" + version: "1.4.25" firebase_remote_config_web: dependency: transitive description: name: firebase_remote_config_web - sha256: a78967a208bc7a9bf44f8339c3c411b9d7e9529c644194ea5d4d0ca503c3481b + sha256: "92443c70e2721ab9d4beb23eb1d9f971da7381332451daee04f619b0f9204569" url: "https://pub.dev" source: hosted - version: "1.4.21" + version: "1.4.25" flutter: dependency: "direct main" description: flutter @@ -199,10 +207,10 @@ packages: dependency: "direct dev" description: name: flutter_lints - sha256: a25a15ebbdfc33ab1cd26c63a6ee519df92338a9c10f122adda92938253bef04 + sha256: e2a421b7e59244faef694ba7b30562e489c2b489866e505074eb005cd7060db7 url: "https://pub.dev" source: hosted - version: "2.0.3" + version: "3.0.1" flutter_localizations: dependency: "direct main" description: flutter @@ -212,10 +220,10 @@ packages: dependency: "direct main" description: name: flutter_svg - sha256: d39e7f95621fc84376bc0f7d504f05c3a41488c562f4a8ad410569127507402c + sha256: "7b4ca6cf3304575fe9c8ec64813c8d02ee41d2afe60bcfe0678bcb5375d596a2" url: "https://pub.dev" source: hosted - version: "2.0.9" + version: "2.0.10+1" flutter_test: dependency: "direct dev" description: flutter @@ -276,46 +284,70 @@ packages: url: "https://pub.dev" source: hosted version: "0.6.7" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + url: "https://pub.dev" + source: hosted + version: "10.0.0" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + url: "https://pub.dev" + source: hosted + version: "2.0.1" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + url: "https://pub.dev" + source: hosted + version: "2.0.1" lints: dependency: transitive description: name: lints - sha256: "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452" + sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290 url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "3.0.0" lottie: dependency: "direct main" description: name: lottie - sha256: a93542cc2d60a7057255405f62252533f8e8956e7e06754955669fd32fb4b216 + sha256: ce2bb2605753915080e4ee47f036a64228c88dc7f56f7bc1dbe912d75b55b1e2 url: "https://pub.dev" source: hosted - version: "2.7.0" + version: "3.1.0" matcher: dependency: transitive description: name: matcher - sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb url: "https://pub.dev" source: hosted - version: "0.12.16" + version: "0.12.16+1" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" url: "https://pub.dev" source: hosted - version: "0.5.0" + version: "0.8.0" meta: dependency: transitive description: name: meta - sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e + sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.11.0" mocktail: dependency: "direct dev" description: @@ -344,10 +376,10 @@ packages: dependency: transitive description: name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" url: "https://pub.dev" source: hosted - version: "1.8.3" + version: "1.9.0" path_parsing: dependency: transitive description: @@ -360,42 +392,42 @@ packages: dependency: transitive description: name: petitparser - sha256: cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750 + sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 url: "https://pub.dev" source: hosted - version: "5.4.0" + version: "6.0.2" platform: dependency: transitive description: name: platform - sha256: ae68c7bfcd7383af3629daafb32fb4e8681c7154428da4febcff06200585f102 + sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec" url: "https://pub.dev" source: hosted - version: "3.1.2" + version: "3.1.4" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface - sha256: "6a2128648c854906c53fa8e33986fc0247a1116122f9534dd20e3ab9e16a32bc" + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.1.8" pointycastle: dependency: transitive description: name: pointycastle - sha256: "7c1e5f0d23c9016c5bbd8b1473d0d3fb3fc851b876046039509e18e0c7485f2c" + sha256: "43ac87de6e10afabc85c445745a7b799e04de84cebaa4fd7bf55a5e1e9604d29" url: "https://pub.dev" source: hosted - version: "3.7.3" + version: "3.7.4" process: dependency: transitive description: name: process - sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09" + sha256: "21e54fd2faf1b5bdd5102afd25012184a6793927648ea81eea80552ac9405b32" url: "https://pub.dev" source: hosted - version: "4.2.4" + version: "5.0.2" scrollable_positioned_list: dependency: "direct main" description: @@ -477,26 +509,26 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: c512655380d241a337521703af62d2c122bf7b77a46ff7dd750092aa9433499c + sha256: "0ecc004c62fd3ed36a2ffcbe0dd9700aee63bd7532d0b642a488b1ec310f492e" url: "https://pub.dev" source: hosted - version: "6.2.4" + version: "6.2.5" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: "507dc655b1d9cb5ebc756032eb785f114e415f91557b73bf60b7e201dfedeb2f" + sha256: d4ed0711849dd8e33eb2dd69c25db0d0d3fdc37e0a62e629fe32f57a22db2745 url: "https://pub.dev" source: hosted - version: "6.2.2" + version: "6.3.0" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: "75bb6fe3f60070407704282a2d295630cab232991eb52542b18347a8a941df03" + sha256: "9149d493b075ed740901f3ee844a38a00b33116c7c5c10d7fb27df8987fb51d5" url: "https://pub.dev" source: hosted - version: "6.2.4" + version: "6.2.5" url_launcher_linux: dependency: transitive description: @@ -517,10 +549,10 @@ packages: dependency: transitive description: name: url_launcher_platform_interface - sha256: "4aca1e060978e19b2998ee28503f40b5ba6226819c2b5e3e4d1821e8ccd92198" + sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.3.2" url_launcher_web: dependency: transitive description: @@ -549,26 +581,26 @@ packages: dependency: transitive description: name: vector_graphics - sha256: "4ac59808bbfca6da38c99f415ff2d3a5d7ca0a6b4809c71d9cf30fba5daf9752" + sha256: "32c3c684e02f9bc0afb0ae0aa653337a2fe022e8ab064bcd7ffda27a74e288e3" url: "https://pub.dev" source: hosted - version: "1.1.10+1" + version: "1.1.11+1" vector_graphics_codec: dependency: transitive description: name: vector_graphics_codec - sha256: f3247e7ab0ec77dc759263e68394990edc608fb2b480b80db8aa86ed09279e33 + sha256: c86987475f162fadff579e7320c7ddda04cd2fdeffbe1129227a85d9ac9e03da url: "https://pub.dev" source: hosted - version: "1.1.10+1" + version: "1.1.11+1" vector_graphics_compiler: dependency: transitive description: name: vector_graphics_compiler - sha256: "18489bdd8850de3dd7ca8a34e0c446f719ec63e2bab2e7a8cc66a9028dd76c5a" + sha256: "12faff3f73b1741a36ca7e31b292ddeb629af819ca9efe9953b70bd63fc8cd81" url: "https://pub.dev" source: hosted - version: "1.1.10+1" + version: "1.1.11+1" vector_math: dependency: transitive description: @@ -581,42 +613,42 @@ packages: dependency: transitive description: name: vm_service - sha256: c538be99af830f478718b51630ec1b6bee5e74e52c8a802d328d9e71d35d2583 + sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 url: "https://pub.dev" source: hosted - version: "11.10.0" + version: "13.0.0" web: dependency: transitive description: name: web - sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152 + sha256: "4188706108906f002b3a293509234588823c8c979dc83304e229ff400c996b05" url: "https://pub.dev" source: hosted - version: "0.3.0" + version: "0.4.2" webdriver: dependency: transitive description: name: webdriver - sha256: "3c923e918918feeb90c4c9fdf1fe39220fa4c0e8e2c0fffaded174498ef86c49" + sha256: "003d7da9519e1e5f329422b36c4dcdf18d7d2978d1ba099ea4e45ba490ed845e" url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.3" win32: dependency: transitive description: name: win32 - sha256: "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8" + sha256: "8cb58b45c47dcb42ab3651533626161d6b67a2921917d8d429791f76972b3480" url: "https://pub.dev" source: hosted - version: "5.2.0" + version: "5.3.0" xml: dependency: transitive description: name: xml - sha256: "5bc72e1e45e941d825fd7468b9b4cc3b9327942649aeb6fc5cdbf135f0a86e84" + sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 url: "https://pub.dev" source: hosted - version: "6.3.0" + version: "6.5.0" sdks: - dart: ">=3.2.0 <4.0.0" - flutter: ">=3.16.0" + dart: ">=3.3.0 <4.0.0" + flutter: ">=3.16.6" diff --git a/pubspec.yaml b/pubspec.yaml index 2f8f7950..c0aff6bc 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,13 +1,14 @@ name: site description: Felipe Sales | Social Links. publish_to: 'none' -version: 2.1.1 +version: 2.1.2 environment: - sdk: '>=3.0.0 <4.0.0' + sdk: '>=3.3.0 <4.0.0' dependencies: auto_size_text: ^3.0.0 + email_validator: ^2.1.17 firebase_analytics: ^10.8.5 firebase_core: ^2.25.4 firebase_core_platform_interface: ^5.0.0 @@ -19,16 +20,16 @@ dependencies: sdk: flutter flutter_svg: ^2.0.9 get_it: ^7.6.7 - http: ^1.2.0 - intl: ^0.18.1 - lottie: ^2.7.0 + http: 1.2.0 + intl: 0.18.1 + lottie: ^3.0.0 package_info_plus: ^5.0.1 scrollable_positioned_list: ^0.3.8 url_launcher: ^6.2.4 url_strategy: ^0.2.0 dev_dependencies: - flutter_lints: ^2.0.3 + flutter_lints: ^3.0.1 flutter_test: sdk: flutter integration_test: