name: client_app description: Halo Bestie - Client App publish_to: 'none' version: 1.0.0+1 environment: sdk: '>=3.0.0 <4.0.0' dependencies: flutter: sdk: flutter # Firebase (Messaging only — Auth dropped in Phase 3.4, self-managed JWT now) firebase_core: ^3.12.1 firebase_messaging: ^15.2.5 # Social login (kept — buttons gated server-side via /api/shared/auth-providers # until the corresponding OAuth env vars are set on the backend) google_sign_in: ^6.2.1 sign_in_with_apple: ^6.1.0 # HTTP & WebSocket dio: ^5.4.3 web_socket_channel: ^3.0.3 # State management flutter_riverpod: ^2.6.1 hooks_riverpod: ^2.6.1 riverpod_annotation: ^2.6.1 flutter_hooks: ^0.20.5 # Storage shared_preferences: ^2.2.3 # onboarding flag, non-sensitive flutter_secure_storage: ^9.2.2 # refresh token (encrypted) # Navigation go_router: ^13.2.1 flutter_local_notifications: ^21.0.0 # QR code rendering — used by the waiting-payment screen as a placeholder # (mock mode encodes payment_session_id; real QR will come from Xendit later). qr_flutter: ^4.1.0 dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^3.0.0 riverpod_generator: ^2.6.2 build_runner: ^2.4.13 custom_lint: ^0.7.0 riverpod_lint: ^2.6.2 flutter: uses-material-design: true assets: - assets/images/ - assets/images/splash/ - assets/fonts/ fonts: - family: BricolageGrotesque fonts: - asset: assets/fonts/BricolageGrotesque-Variable.ttf - family: Poppins fonts: - asset: assets/fonts/Poppins-Regular.ttf - asset: assets/fonts/Poppins-Medium.ttf weight: 500 - asset: assets/fonts/Poppins-SemiBold.ttf weight: 600 - asset: assets/fonts/Poppins-Bold.ttf weight: 700 - family: JetBrainsMono fonts: - asset: assets/fonts/JetBrainsMono-Variable.ttf