pubspec.lock was incorrectly gitignored — this is a Flutter app, not a package, so the lockfile should be committed for reproducible builds. Without it, CI resolved drift to its minimum (2.20.3) which constrains sqlite3 to 2.x, causing dart analyze to disagree on whether Database.close() exists vs the local environment using 3.3.1. Also pins sqlite3: ^3.1.5 explicitly in pubspec.yaml as belt-and- suspenders so the constraint is visible without reading the lockfile. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
91 lines
2.1 KiB
YAML
91 lines
2.1 KiB
YAML
name: sharedinbox
|
|
description: IMAP email client for Android, iOS, and Desktop.
|
|
publish_to: none
|
|
version: 0.1.1
|
|
|
|
environment:
|
|
sdk: '>=3.3.0 <4.0.0'
|
|
flutter: '>=3.22.0'
|
|
|
|
dependencies:
|
|
flutter:
|
|
sdk: flutter
|
|
|
|
# Not used directly, but required to silence Flutter's "missing CupertinoIcons font" build warning.
|
|
cupertino_icons: ^1.0.8
|
|
|
|
enough_mail: ^2.1.7
|
|
http: ^1.2.0
|
|
|
|
# Local persistence (offline-first)
|
|
drift: ^2.20.3
|
|
sqlite3_flutter_libs: ^0.5.28
|
|
path_provider: ^2.1.5
|
|
path: ^1.9.1
|
|
|
|
# State management
|
|
flutter_riverpod: ^2.6.1
|
|
|
|
# Navigation
|
|
go_router: ^14.8.1
|
|
|
|
# Secure credential storage (passwords)
|
|
flutter_secure_storage: ^10.0.0
|
|
|
|
# Date formatting
|
|
intl: any
|
|
|
|
# File picking (compose attachments) and opening downloaded attachments
|
|
file_picker: ^8.0.0
|
|
open_filex: ^4.6.0
|
|
mime: ^2.0.0
|
|
|
|
# QR code generation for account sharing
|
|
qr_flutter: ^4.1.0
|
|
|
|
# Public-key encryption for secure account sharing (ECIES: X25519 + AES-256-GCM)
|
|
cryptography: ^2.7.0
|
|
|
|
# QR code scanning (camera) for secure account import
|
|
mobile_scanner: ^5.0.0
|
|
|
|
# HTML rendering for email bodies
|
|
webview_flutter: ^4.0.0
|
|
url_launcher: ^6.3.2
|
|
flutter_markdown: ^0.7.7+1
|
|
|
|
# Background sync and local notifications
|
|
flutter_local_notifications: ^18.0.1
|
|
workmanager: ^0.9.0
|
|
|
|
# App version metadata for crash reports
|
|
package_info_plus: ^8.0.0
|
|
share_plus: ^12.0.2
|
|
|
|
dev_dependencies:
|
|
flutter_test:
|
|
sdk: flutter
|
|
integration_test:
|
|
sdk: flutter
|
|
flutter_lints: ^4.0.0
|
|
drift_dev: ^2.20.3
|
|
build_runner: ^2.4.13
|
|
test: ^1.25.0
|
|
mockito: ^5.4.4
|
|
fake_async: ^1.3.1
|
|
path_provider_platform_interface: ^2.1.2
|
|
sqlite3: ^3.1.5 # used directly in test/unit/db_test_helper.dart; 3.x required for Database.close()
|
|
url_launcher_platform_interface: ^2.3.2
|
|
plugin_platform_interface: ^2.1.8
|
|
|
|
flutter:
|
|
uses-material-design: true
|
|
assets:
|
|
- assets/
|
|
|
|
dependency_overrides:
|
|
# path_provider_android 2.3+ uses package:jni which crashes on startup
|
|
# (SIGSEGV in libdartjni.so FindClassUnchecked — JNI env not ready when
|
|
# the Dart VM first calls into it). Pin to 2.2.x which uses Pigeon instead.
|
|
path_provider_android: ">=2.2.0 <2.3.0"
|