├── ios
├── Runner
│ ├── Runner-Bridging-Header.h
│ ├── Assets.xcassets
│ │ ├── LaunchImage.imageset
│ │ │ ├── LaunchImage.png
│ │ │ ├── LaunchImage@2x.png
│ │ │ ├── LaunchImage@3x.png
│ │ │ ├── README.md
│ │ │ └── Contents.json
│ │ └── AppIcon.appiconset
│ │ │ ├── Icon-App-20x20@1x.png
│ │ │ ├── Icon-App-20x20@2x.png
│ │ │ ├── Icon-App-20x20@3x.png
│ │ │ ├── Icon-App-29x29@1x.png
│ │ │ ├── Icon-App-29x29@2x.png
│ │ │ ├── Icon-App-29x29@3x.png
│ │ │ ├── Icon-App-40x40@1x.png
│ │ │ ├── Icon-App-40x40@2x.png
│ │ │ ├── Icon-App-40x40@3x.png
│ │ │ ├── Icon-App-50x50@1x.png
│ │ │ ├── Icon-App-50x50@2x.png
│ │ │ ├── Icon-App-57x57@1x.png
│ │ │ ├── Icon-App-57x57@2x.png
│ │ │ ├── Icon-App-60x60@2x.png
│ │ │ ├── Icon-App-60x60@3x.png
│ │ │ ├── Icon-App-72x72@1x.png
│ │ │ ├── Icon-App-72x72@2x.png
│ │ │ ├── Icon-App-76x76@1x.png
│ │ │ ├── Icon-App-76x76@2x.png
│ │ │ ├── Icon-App-1024x1024@1x.png
│ │ │ ├── Icon-App-83.5x83.5@2x.png
│ │ │ └── Contents.json
│ ├── Runner.entitlements
│ └── Base.lproj
│ │ └── Main.storyboard
├── Flutter
│ ├── Debug.xcconfig
│ ├── Release.xcconfig
│ └── AppFrameworkInfo.plist
├── Runner.xcodeproj
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ ├── WorkspaceSettings.xcsettings
│ │ └── IDEWorkspaceChecks.plist
├── Runner.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ ├── WorkspaceSettings.xcsettings
│ │ └── IDEWorkspaceChecks.plist
├── RunnerTests
│ └── RunnerTests.swift
├── .gitignore
└── Podfile
├── lib
├── app
│ ├── auth
│ │ ├── infrastructure
│ │ │ ├── models
│ │ │ │ └── auth_type.dart
│ │ │ └── repositories
│ │ │ │ └── auth_repository_impl.dart
│ │ ├── domain
│ │ │ ├── datasources
│ │ │ │ └── auth_datasource.dart
│ │ │ └── repositories
│ │ │ │ └── auth_repository.dart
│ │ └── presentation
│ │ │ ├── widgets
│ │ │ ├── auth_email
│ │ │ │ ├── forgot_password.dart
│ │ │ │ ├── auth_submit.dart
│ │ │ │ ├── confirm_mail_header_widget.dart
│ │ │ │ └── auth_header_widget.dart
│ │ │ ├── recovery_password
│ │ │ │ ├── recovery_submit.dart
│ │ │ │ └── recovery_password_header.dart
│ │ │ ├── forgot_password
│ │ │ │ ├── forgot_password_submit.dart
│ │ │ │ ├── recovery_email_header.dart
│ │ │ │ └── forgot_password_header.dart
│ │ │ └── auth
│ │ │ │ ├── already_have_account.dart
│ │ │ │ ├── no_account.dart
│ │ │ │ └── auth_terms.dart
│ │ │ └── screens
│ │ │ ├── recovery_email_sent_screen.dart
│ │ │ └── confirm_mail_sign_up_screen.dart
│ ├── search
│ │ ├── infrastructure
│ │ │ └── models
│ │ │ │ ├── search_type_enum.dart
│ │ │ │ └── search_model.dart
│ │ ├── domain
│ │ │ └── entities
│ │ │ │ └── search_entity.dart
│ │ └── presentation
│ │ │ ├── blocs
│ │ │ └── search_event.dart
│ │ │ └── widgets
│ │ │ └── search_header_widget.dart
│ ├── splash
│ │ ├── utils
│ │ │ └── splash_utils.dart
│ │ └── presentation
│ │ │ └── blocs
│ │ │ ├── splash_event.dart
│ │ │ └── splash_state.dart
│ ├── profile
│ │ ├── utils
│ │ │ └── profile_utils.dart
│ │ ├── domain
│ │ │ ├── entities
│ │ │ │ ├── profile_entity.dart
│ │ │ │ └── insert_master_password_entity.dart
│ │ │ ├── datasources
│ │ │ │ └── profile_datasource.dart
│ │ │ └── repositories
│ │ │ │ └── profile_repository.dart
│ │ ├── presentation
│ │ │ └── blocs
│ │ │ │ ├── new_app_version
│ │ │ │ ├── new_app_version_event.dart
│ │ │ │ ├── new_app_version_state.dart
│ │ │ │ └── new_app_version_bloc.dart
│ │ │ │ ├── experiencing_issues
│ │ │ │ ├── experiencing_issues_event.dart
│ │ │ │ └── experiencing_issues_state.dart
│ │ │ │ └── profile
│ │ │ │ ├── profile_event.dart
│ │ │ │ ├── profile_state.dart
│ │ │ │ └── profile_bloc.dart
│ │ └── infraestructure
│ │ │ ├── models
│ │ │ ├── insert_master_password_model.dart
│ │ │ └── profile_model.dart
│ │ │ └── repositories_impl
│ │ │ └── profile_repository_impl.dart
│ ├── preferences
│ │ ├── domain
│ │ │ ├── entities
│ │ │ │ ├── preferences_entity.dart
│ │ │ │ ├── card_image_entity.dart
│ │ │ │ └── pass_image_entity.dart
│ │ │ ├── datasources
│ │ │ │ ├── preferences_datasource.dart
│ │ │ │ └── parameters_datasource.dart
│ │ │ └── repositories
│ │ │ │ └── preferences_repository.dart
│ │ ├── infrastructure
│ │ │ └── models
│ │ │ │ ├── preferences_model.dart
│ │ │ │ ├── card_image_model.dart
│ │ │ │ └── pass_image_model.dart
│ │ ├── presentation
│ │ │ └── blocs
│ │ │ │ ├── preferences_event.dart
│ │ │ │ └── preferences_state.dart
│ │ └── utils
│ │ │ └── preferences_utils.dart
│ ├── master_password
│ │ ├── domain
│ │ │ ├── entities
│ │ │ │ ├── update_cards_entity.dart
│ │ │ │ ├── update_passwords_entity.dart
│ │ │ │ └── update_master_password_entity.dart
│ │ │ ├── datasources
│ │ │ │ └── master_password_datasource.dart
│ │ │ └── repositories
│ │ │ │ └── master_password_repository.dart
│ │ ├── infrastructure
│ │ │ ├── models
│ │ │ │ ├── update_cards_model.dart
│ │ │ │ ├── update_passwords_model.dart
│ │ │ │ └── update_master_password_model.dart
│ │ │ ├── repositories_impl
│ │ │ │ └── master_password_repository_impl.dart
│ │ │ └── datasources
│ │ │ │ └── supabase_master_password_datasource.dart
│ │ └── presentation
│ │ │ ├── widget
│ │ │ ├── submit_update_master_password_widget.dart
│ │ │ └── master_password_header_widget.dart
│ │ │ └── blocs
│ │ │ └── master_password_event.dart
│ ├── card
│ │ ├── utils
│ │ │ └── card_utils.dart
│ │ ├── domain
│ │ │ ├── entities
│ │ │ │ └── card_entity.dart
│ │ │ ├── datasources
│ │ │ │ ├── card_datasource.dart
│ │ │ │ └── supabase_biometric_datasource.dart
│ │ │ └── repositories
│ │ │ │ └── card_repository.dart
│ │ ├── presentation
│ │ │ ├── blocs
│ │ │ │ └── card_report
│ │ │ │ │ ├── card_report_event.dart
│ │ │ │ │ └── card_report_state.dart
│ │ │ └── widgets
│ │ │ │ └── report
│ │ │ │ └── card_report_header_widget.dart
│ │ └── infrastructure
│ │ │ ├── models
│ │ │ ├── card_type.dart
│ │ │ ├── card_cvv_form.dart
│ │ │ ├── card_exp_form.dart
│ │ │ ├── card_number_form.dart
│ │ │ └── card_model.dart
│ │ │ └── repositories_impl
│ │ │ └── card_repository_impl.dart
│ ├── enroll
│ │ ├── domain
│ │ │ ├── entities
│ │ │ │ └── enroll_new_device_entity.dart
│ │ │ ├── datasources
│ │ │ │ └── enroll_datasource.dart
│ │ │ └── repositories
│ │ │ │ └── enroll_repository.dart
│ │ ├── presentation
│ │ │ ├── blocs
│ │ │ │ ├── enroll_event.dart
│ │ │ │ └── enroll_state.dart
│ │ │ └── widgets
│ │ │ │ └── enroll_submit_button.dart
│ │ └── infrastructure
│ │ │ ├── models
│ │ │ └── enroll_new_device_model.dart
│ │ │ ├── repositories
│ │ │ └── enroll_repository_impl.dart
│ │ │ └── datasources
│ │ │ └── supabase_enroll_datasource.dart
│ ├── biometric
│ │ ├── domain
│ │ │ ├── datasources
│ │ │ │ └── biometric_datasource.dart
│ │ │ └── repositories
│ │ │ │ └── biometric_repository.dart
│ │ ├── presentation
│ │ │ ├── blocs
│ │ │ │ ├── biometric_event.dart
│ │ │ │ └── biometric_state.dart
│ │ │ └── widgets
│ │ │ │ ├── submit_biometric_widget.dart
│ │ │ │ └── biometric_header_widget.dart
│ │ └── infrastructure
│ │ │ └── repositories_impl
│ │ │ └── biometric_repository_impl.dart
│ ├── password
│ │ ├── domain
│ │ │ ├── entities
│ │ │ │ └── password_entity.dart
│ │ │ ├── datasources
│ │ │ │ └── password_datasource.dart
│ │ │ └── repositories
│ │ │ │ └── password_repository.dart
│ │ ├── presentation
│ │ │ ├── blocs
│ │ │ │ └── password_report
│ │ │ │ │ ├── password_report_event.dart
│ │ │ │ │ └── password_report_state.dart
│ │ │ └── widgets
│ │ │ │ ├── report
│ │ │ │ └── pass_report_header_widget.dart
│ │ │ │ ├── generate_password
│ │ │ │ ├── pass_generator_switch_widget.dart
│ │ │ │ ├── pass_generator_numbers_switch_widget.dart
│ │ │ │ └── pass_generator_symbols_switch_widget.dart
│ │ │ │ └── pass_desc_widget.dart
│ │ └── infrastructure
│ │ │ └── repositories_impl
│ │ │ └── password_repository_impl.dart
│ ├── auth_init
│ │ ├── domain
│ │ │ ├── datasources
│ │ │ │ └── auth_init_datasource.dart
│ │ │ └── repositories
│ │ │ │ └── auth_init_repository.dart
│ │ ├── presentation
│ │ │ ├── widgets
│ │ │ │ └── submit_button_widget.dart
│ │ │ └── blocs
│ │ │ │ └── auth_init_event.dart
│ │ └── infrastructure
│ │ │ └── repositories
│ │ │ └── auth_init_repository_impl.dart
│ ├── dashboard
│ │ ├── presentation
│ │ │ └── widgets
│ │ │ │ ├── settings
│ │ │ │ ├── email_settings_widget.dart
│ │ │ │ ├── log_out_settings_widget.dart
│ │ │ │ ├── language_settings_widget.dart
│ │ │ │ ├── update_master_password_widget.dart
│ │ │ │ ├── terms_settings_widget.dart
│ │ │ │ ├── policy_settings_widget.dart
│ │ │ │ └── display_name_form_widget.dart
│ │ │ │ ├── home
│ │ │ │ └── home_search_widget.dart
│ │ │ │ ├── tools
│ │ │ │ ├── join_biometrics_widget.dart
│ │ │ │ ├── add_password_widget.dart
│ │ │ │ └── add_card_widget.dart
│ │ │ │ └── bottom_navigation_bar_icon.dart
│ │ └── infrastructure
│ │ │ └── models
│ │ │ └── display_name_form.dart
│ ├── get_started
│ │ └── presentation
│ │ │ └── blocs
│ │ │ ├── get_started_state.dart
│ │ │ ├── get_started_event.dart
│ │ │ └── get_started_bloc.dart
│ └── sync_pass
│ │ └── presentation
│ │ ├── blocs
│ │ ├── sync_event.dart
│ │ └── sync_state.dart
│ │ └── widgets
│ │ └── submit_sync_pass_widget.dart
├── core
│ ├── utils
│ │ ├── form_utils.dart
│ │ ├── auth_utils.dart
│ │ ├── regex_utils.dart
│ │ ├── device_info.dart
│ │ ├── db_utils.dart
│ │ └── biometric_utils.dart
│ ├── file
│ │ └── file_paths.dart
│ ├── global
│ │ └── utils
│ │ │ └── secret_utils.dart
│ ├── storage
│ │ └── storage_preferences.dart
│ ├── api
│ │ ├── api_codes.dart
│ │ ├── savepass_response_model.dart
│ │ └── supabase_middleware.dart
│ ├── lottie
│ │ └── lottie_paths.dart
│ ├── image
│ │ └── image_paths.dart
│ ├── form
│ │ ├── text_form.dart
│ │ ├── password_form.dart
│ │ └── email_form.dart
│ ├── env
│ │ └── env.dart
│ └── config
│ │ └── routes.dart
└── main.dart
├── assets
├── fonts
│ ├── Geist-Black.ttf
│ ├── Geist-Bold.ttf
│ ├── Geist-Light.ttf
│ ├── Geist-Thin.ttf
│ ├── Geist-Medium.ttf
│ ├── Geist-Regular.ttf
│ ├── Geist-SemiBold.ttf
│ ├── Geist-UltraBlack.ttf
│ └── Geist-UltraLight.ttf
└── images
│ ├── card
│ ├── chip.png
│ └── american_express_face.png
│ ├── logo
│ └── logo_light.png
│ ├── dashboard
│ └── password.png
│ └── auth
│ └── apple.svg
├── l10n.yaml
├── android
├── gradle.properties
├── app
│ └── src
│ │ ├── main
│ │ ├── ic_launcher-playstore.png
│ │ ├── res
│ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ ├── launcher_icon.png
│ │ │ │ ├── ic_launcher_round.webp
│ │ │ │ └── ic_launcher_foreground.webp
│ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ ├── launcher_icon.png
│ │ │ │ ├── ic_launcher_round.webp
│ │ │ │ └── ic_launcher_foreground.webp
│ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ ├── launcher_icon.png
│ │ │ │ ├── ic_launcher_round.webp
│ │ │ │ └── ic_launcher_foreground.webp
│ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ ├── launcher_icon.png
│ │ │ │ ├── ic_launcher_round.webp
│ │ │ │ └── ic_launcher_foreground.webp
│ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ ├── launcher_icon.png
│ │ │ │ ├── ic_launcher_round.webp
│ │ │ │ └── ic_launcher_foreground.webp
│ │ │ ├── values
│ │ │ │ ├── ic_launcher_background.xml
│ │ │ │ └── styles.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── launcher_icon.xml
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ ├── drawable
│ │ │ │ └── launch_background.xml
│ │ │ ├── drawable-v21
│ │ │ │ └── launch_background.xml
│ │ │ └── values-night
│ │ │ │ └── styles.xml
│ │ └── kotlin
│ │ │ └── com
│ │ │ └── example
│ │ │ └── savepass
│ │ │ └── MainActivity.kt
│ │ ├── debug
│ │ └── AndroidManifest.xml
│ │ └── profile
│ │ └── AndroidManifest.xml
├── gradle
│ └── wrapper
│ │ └── gradle-wrapper.properties
├── .gitignore
├── build.gradle
└── settings.gradle
├── analysis_options.yaml
├── devtools_options.yaml
├── .env.sample
├── .gitignore
├── LICENSE
└── .metadata
/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
2 |
--------------------------------------------------------------------------------
/lib/app/auth/infrastructure/models/auth_type.dart:
--------------------------------------------------------------------------------
1 | enum AuthType { signIn, signUp }
2 |
--------------------------------------------------------------------------------
/lib/app/search/infrastructure/models/search_type_enum.dart:
--------------------------------------------------------------------------------
1 | enum SearchType { password, card }
2 |
--------------------------------------------------------------------------------
/lib/core/utils/form_utils.dart:
--------------------------------------------------------------------------------
1 | class FormUtils {
2 | static const int maxLength = 255;
3 | }
4 |
--------------------------------------------------------------------------------
/assets/fonts/Geist-Black.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/assets/fonts/Geist-Black.ttf
--------------------------------------------------------------------------------
/assets/fonts/Geist-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/assets/fonts/Geist-Bold.ttf
--------------------------------------------------------------------------------
/assets/fonts/Geist-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/assets/fonts/Geist-Light.ttf
--------------------------------------------------------------------------------
/assets/fonts/Geist-Thin.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/assets/fonts/Geist-Thin.ttf
--------------------------------------------------------------------------------
/assets/images/card/chip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/assets/images/card/chip.png
--------------------------------------------------------------------------------
/assets/fonts/Geist-Medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/assets/fonts/Geist-Medium.ttf
--------------------------------------------------------------------------------
/assets/fonts/Geist-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/assets/fonts/Geist-Regular.ttf
--------------------------------------------------------------------------------
/l10n.yaml:
--------------------------------------------------------------------------------
1 | arb-dir: lib/l10n
2 | template-arb-file: app_en.arb
3 | output-localization-file: app_localizations.dart
--------------------------------------------------------------------------------
/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx4G
2 | android.useAndroidX=true
3 | android.enableJetifier=true
4 |
--------------------------------------------------------------------------------
/assets/fonts/Geist-SemiBold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/assets/fonts/Geist-SemiBold.ttf
--------------------------------------------------------------------------------
/assets/fonts/Geist-UltraBlack.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/assets/fonts/Geist-UltraBlack.ttf
--------------------------------------------------------------------------------
/assets/fonts/Geist-UltraLight.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/assets/fonts/Geist-UltraLight.ttf
--------------------------------------------------------------------------------
/assets/images/logo/logo_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/assets/images/logo/logo_light.png
--------------------------------------------------------------------------------
/assets/images/dashboard/password.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/assets/images/dashboard/password.png
--------------------------------------------------------------------------------
/assets/images/card/american_express_face.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/assets/images/card/american_express_face.png
--------------------------------------------------------------------------------
/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/lib/core/file/file_paths.dart:
--------------------------------------------------------------------------------
1 | class FilePaths {
2 | static const String privacyPolicyFile = 'assets/files/privacy_policy_en.pdf';
3 | }
4 |
--------------------------------------------------------------------------------
/android/app/src/main/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/android/app/src/main/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/android/app/src/main/res/mipmap-hdpi/launcher_icon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/android/app/src/main/res/mipmap-mdpi/launcher_icon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png
--------------------------------------------------------------------------------
/analysis_options.yaml:
--------------------------------------------------------------------------------
1 | include: package:flutter_lints/flutter.yaml
2 |
3 | linter:
4 | rules:
5 | prefer_single_quotes: true
6 | require_trailing_commas: true
7 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/lib/core/global/utils/secret_utils.dart:
--------------------------------------------------------------------------------
1 | class SecretUtils {
2 | static const String masterPasswordKey = 'masterPassword';
3 | static const String passwordKey = 'password';
4 | }
5 |
--------------------------------------------------------------------------------
/lib/core/storage/storage_preferences.dart:
--------------------------------------------------------------------------------
1 | class StoragePreferences {
2 | static const String brightnessKey = 'brightness';
3 | static const String languageKey = 'language';
4 | }
5 |
--------------------------------------------------------------------------------
/android/app/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FFFFFF
4 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/judatop/savepass/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-anydpi-v26/launcher_icon.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/lib/app/splash/utils/splash_utils.dart:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | class SplashUtils {
5 |
6 | static const int splashDuration = 3000;
7 | static const double imagePercentageWidth = 0.5;
8 |
9 |
10 | }
--------------------------------------------------------------------------------
/devtools_options.yaml:
--------------------------------------------------------------------------------
1 | description: This file stores settings for Dart & Flutter DevTools.
2 | documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states
3 | extensions:
4 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/lib/app/profile/utils/profile_utils.dart:
--------------------------------------------------------------------------------
1 | class ProfileUtils {
2 | static const String emailProvider = 'email';
3 | static const String googleProvider = 'google';
4 | static const String githubProvider = 'github';
5 | }
6 |
--------------------------------------------------------------------------------
/lib/app/profile/domain/entities/profile_entity.dart:
--------------------------------------------------------------------------------
1 | class ProfileEntity {
2 | final String? displayName;
3 | final String? avatar;
4 |
5 | const ProfileEntity({
6 | this.displayName,
7 | this.avatar,
8 | });
9 | }
10 |
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | zipStoreBase=GRADLE_USER_HOME
4 | zipStorePath=wrapper/dists
5 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip
6 |
--------------------------------------------------------------------------------
/.env.sample:
--------------------------------------------------------------------------------
1 | SUPABASE_URL=<>
2 | SUPABASE_ANON_KEY=<>
3 | SUPABASE_BUCKET=<>
4 | SUPABASE_BUCKET_AVATARS_FOLDER=<>
5 | GOOGLE_WEB_CLIENT_ID=<>
6 | GOOGLE_IOS_CLIENT_ID=<>
7 | SUPABASE_REDIRECT_URL=<>
8 | BIOMETRIC_HASH_KEY=<>
9 | DERIVED_KEY=<>
10 | SENTRY_DSN=<>
--------------------------------------------------------------------------------
/lib/app/preferences/domain/entities/preferences_entity.dart:
--------------------------------------------------------------------------------
1 | class PreferencesEntity {
2 | final BrightnessType brightness;
3 |
4 | const PreferencesEntity({
5 | required this.brightness,
6 | });
7 | }
8 |
9 | enum BrightnessType { system, light, dark }
10 |
--------------------------------------------------------------------------------
/lib/app/preferences/domain/entities/card_image_entity.dart:
--------------------------------------------------------------------------------
1 | class CardImageEntity {
2 | final String id;
3 | final String type;
4 | final String imgUrl;
5 |
6 | const CardImageEntity({
7 | required this.id,
8 | required this.type,
9 | required this.imgUrl,
10 | });
11 | }
12 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/lib/app/master_password/domain/entities/update_cards_entity.dart:
--------------------------------------------------------------------------------
1 | class UpdateCardsEntity {
2 | final String id;
3 | final String card;
4 | final String vaultId;
5 |
6 | const UpdateCardsEntity({
7 | required this.id,
8 | required this.card,
9 | required this.vaultId,
10 | });
11 | }
12 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/lib/app/card/utils/card_utils.dart:
--------------------------------------------------------------------------------
1 | class CardUtils {
2 | static String formatCreditCardNumber(String cardNumber) {
3 | cardNumber = cardNumber.replaceAll(' ', '');
4 |
5 | return cardNumber.replaceAllMapped(
6 | RegExp(r'.{1,4}'),
7 | (match) => '${match.group(0)} ',
8 | );
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/lib/app/enroll/domain/entities/enroll_new_device_entity.dart:
--------------------------------------------------------------------------------
1 | class EnrollNewDeviceEntity {
2 | final String deviceId;
3 | final String deviceName;
4 | final String type;
5 |
6 | const EnrollNewDeviceEntity({
7 | required this.deviceId,
8 | required this.deviceName,
9 | required this.type,
10 | });
11 | }
12 |
--------------------------------------------------------------------------------
/lib/app/master_password/domain/entities/update_passwords_entity.dart:
--------------------------------------------------------------------------------
1 | class UpdatePasswordsEntity {
2 | final String id;
3 | final String password;
4 | final String vaultId;
5 |
6 | const UpdatePasswordsEntity({
7 | required this.id,
8 | required this.password,
9 | required this.vaultId,
10 | });
11 | }
12 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/lib/app/preferences/domain/entities/pass_image_entity.dart:
--------------------------------------------------------------------------------
1 | class PassImageEntity {
2 | final String id;
3 | final String key;
4 | final String type;
5 | final String? domain;
6 |
7 | const PassImageEntity({
8 | required this.id,
9 | required this.key,
10 | required this.type,
11 | this.domain,
12 | });
13 | }
14 |
--------------------------------------------------------------------------------
/ios/Runner/Runner.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.developer.applesignin
6 |
7 | Default
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
9 | # Remember to never publicly share your keystore.
10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
11 | key.properties
12 | **/*.keystore
13 | **/*.jks
14 |
--------------------------------------------------------------------------------
/ios/RunnerTests/RunnerTests.swift:
--------------------------------------------------------------------------------
1 | import Flutter
2 | import UIKit
3 | import XCTest
4 |
5 | class RunnerTests: XCTestCase {
6 |
7 | func testExample() {
8 | // If you add code to the Runner application, consider adding tests here.
9 | // See https://developer.apple.com/documentation/xctest for more information about using XCTest.
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/lib/app/biometric/domain/datasources/biometric_datasource.dart:
--------------------------------------------------------------------------------
1 | import 'package:dartz/dartz.dart';
2 | import 'package:savepass/core/api/savepass_response_model.dart';
3 |
4 | abstract class BiometricDatasource {
5 | Future> enrollBiometric({
6 | required String inputSecret,
7 | required String deviceId,
8 | });
9 | }
10 |
--------------------------------------------------------------------------------
/lib/app/biometric/domain/repositories/biometric_repository.dart:
--------------------------------------------------------------------------------
1 | import 'package:dartz/dartz.dart';
2 | import 'package:savepass/core/api/savepass_response_model.dart';
3 |
4 | abstract class BiometricRepository {
5 | Future> enrollBiometric({
6 | required String inputSecret,
7 | required String deviceId,
8 | });
9 | }
10 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md:
--------------------------------------------------------------------------------
1 | # Launch Screen Assets
2 |
3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory.
4 |
5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
--------------------------------------------------------------------------------
/lib/app/profile/presentation/blocs/new_app_version/new_app_version_event.dart:
--------------------------------------------------------------------------------
1 | import 'package:equatable/equatable.dart';
2 |
3 | abstract class NewAppVersionEvent extends Equatable {
4 | const NewAppVersionEvent();
5 |
6 | @override
7 | List