name: tane description: "Tane — local-first, encrypted, decentralized traditional-seed inventory and market." publish_to: 'none' version: 0.1.0+1 environment: sdk: ^3.11.5 resolution: workspace dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter commons_core: path: ../../packages/commons_core # State management (Cubit-first). Drift streams are the source of truth. flutter_bloc: ^9.1.1 equatable: ^2.0.5 # Stream combinators (StreamGroup) for reactive multi-table reads. async: ^2.11.0 # Encrypted local database. NOTE: do NOT add sqlite3_flutter_libs / drift_flutter # — their bundled plain SQLite collides (same symbols) with SQLCipher and # segfaults on desktop. SQLCipher is the only native sqlite provider here. drift: ^2.28.0 sqlite3: ^2.7.5 sqlcipher_flutter_libs: ^0.6.5 # Dependency injection composition root. get_it: ^8.0.3 # i18n (Weblate-friendly JSON per locale). slang: ^4.7.0 slang_flutter: ^4.7.0 # ICU date/number formatting (locale-aware, never ad-hoc). intl: ^0.20.2 # Secure key storage (OS keystore). flutter_secure_storage: ^9.2.4 # Routing + media + paths. go_router: ^14.6.2 image_picker: ^1.1.2 # On-device OCR (Tesseract, Apache-2.0/BSD) to suggest a name from a packet # photo. Offline, no Google/cloud. Mobile-only; other platforms use a no-op. flutter_tesseract_ocr: ^0.4.31 # Pure-Dart image preprocessing (grayscale/contrast/upscale) before OCR to # lift accuracy on blurry packet photos. image: ^4.3.0 # Save/open dialogs for the inventory export/import (MIT license). file_picker: ^10.1.2 # Pure-Dart PDF generation (Apache-2.0) for the printable "what I share" # catalog. No platform channels, so the whole flow is host-testable. pdf: ^3.11.3 # Pure-Dart barcode/QR generation (Apache-2.0; already used transitively by # pdf). Painted on screen for the profile's shareable identity QR. barcode: ^2.2.9 path: ^1.9.0 path_provider: ^2.1.5 cupertino_icons: ^1.0.8 material_symbols_icons: ^4.2951.0 url_launcher: ^6.3.2 package_info_plus: ^9.0.1 # Optional coarse device location (BSD-3) to set the sharing area without # typing a code. Low accuracy only; the value is immediately reduced to a # low-precision geohash. Behind an interface so it's fakeable and pluggable. geolocator: ^13.0.1 # Network reachability (BSD-3) to show a global "you're offline" banner — the # social layer needs a connection; the inventory works regardless. connectivity_plus: ^6.1.0 # Local OS notifications (BSD-3) for a heads-up when a private message arrives # while the app is foregrounded. Mobile/Linux/macOS only; a no-op on web and # Windows. Foreground-only by design — background/push is a later concern. flutter_local_notifications: ^18.0.1 crop_your_image: ^2.0.0 dev_dependencies: flutter_test: sdk: flutter integration_test: sdk: flutter flutter_lints: ^6.0.0 # Virtual clock to fast-forward the inventory auto-retry backoff in tests. fake_async: ^1.3.1 build_runner: ^2.4.13 drift_dev: ^2.28.0 slang_build_runner: ^4.7.0 mocktail: ^1.0.4 # Nostr types (Event/Filter) to fake a NostrChannel in the connection test. nostr: ^2.0.0 flutter_launcher_icons: ^0.14.4 flutter_native_splash: ^2.4.7 # App launcher icon: a white sprout on brand green (#2F7D34) for strong # contrast. Regenerate with: dart run flutter_launcher_icons flutter_launcher_icons: image_path: assets/icon.png android: true ios: true remove_alpha_ios: true adaptive_icon_background: "#2F7D34" adaptive_icon_foreground: assets/icon_foreground.png web: generate: true image_path: assets/icon.png background_color: "#2F7D34" theme_color: "#2F7D34" windows: generate: true image_path: assets/icon.png icon_size: 256 # Native splash: white sprout on brand green, a darker green in dark mode. # Regenerate with: dart run flutter_native_splash:create flutter_native_splash: color: "#2F7D34" color_dark: "#22521E" image: assets/splash_logo.png android_12: image: assets/splash_logo.png color: "#2F7D34" color_dark: "#22521E" flutter: uses-material-design: true # Seed strings for slang live under lib/i18n (not a Flutter asset; compiled). assets: - assets/catalog/species.json # Curated seed-saving guidance (pollination, isolation, difficulty…). - assets/catalog/seed_saving.json - assets/logo.png # Bundled so the Linux runner can use it as the GTK window icon. - assets/icon.png # Tesseract OCR language data (tessdata_fast: eng + spa). Bundled for # offline, on-device label OCR on mobile. - assets/tessdata/ - assets/tessdata_config.json # Real packet photos for the on-device OCR validation integration test. # Remove before shipping if you don't want them in the bundle. - assets/ocr_fixtures/ # Embedded in generated PDFs (printable catalog). DejaVu covers Latin # (extended), Cyrillic and Greek; Noto Arabic + Noto CJK ride alongside as # per-glyph fallbacks so RTL and CJK text render instead of tofu. Fonts are # a per-locale resource, extensible to any script. Licenses: DejaVu # (Bitstream Vera / public domain), Noto (SIL OFL 1.1). See assets/fonts/. - assets/fonts/DejaVuSans.ttf - assets/fonts/DejaVuSans-Bold.ttf - assets/fonts/NotoSansArabic.ttf - assets/fonts/NotoSansJP.ttf fonts: # Custom seed-themed icon glyphs (chars a–k). See docs/mockups/seedks-glyphs.png. - family: seedks fonts: - asset: fonts/seedks.ttf # Script coverage fallbacks for the UI text theme (see ui/theme.dart). Noto # (SIL OFL 1.1) covers Arabic (RTL) and CJK (Japanese kanji/kana + shared # Han) so those scripts render on every platform, including desktop where # the system font may lack them. Variable fonts; Flutter picks the weight. - family: Noto Sans Arabic fonts: - asset: assets/fonts/NotoSansArabic.ttf - family: Noto Sans JP fonts: - asset: assets/fonts/NotoSansJP.ttf