name: tane
description: "Tanemaki — local-first, encrypted, decentralized traditional-seed inventory."
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

dev_dependencies:
  flutter_test:
    sdk: flutter
  integration_test:
    sdk: flutter

  flutter_lints: ^6.0.0
  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
    # Web-of-trust bootstrap referents (Duniter "seeds"). Empty until real
    # founding identities are curated; users bootstrap by adding their own.
    - assets/trust/referents.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; like the OCR packs, PDF fonts are a
    # per-locale resource — swap in wider coverage (Arabic, CJK) as locales
    # land. Free license (Bitstream Vera / public domain additions).
    - assets/fonts/DejaVuSans.ttf
    - assets/fonts/DejaVuSans-Bold.ttf
  fonts:
    # Custom seed-themed icon glyphs (chars a–k). See docs/mockups/seedks-glyphs.png.
    - family: seedks
      fonts:
        - asset: fonts/seedks.ttf
