name: badnote description: "BadNote - Local-first Surface Pen note-taking with PDF/PPT annotation" publish_to: 'none' version: 0.1.0+1 environment: sdk: ^3.10.8 # pdfrx + Surface Pen require Windows stylus/multitouch, which only exists # in Flutter 3.44+ (WM_POINTER migration, PR #165323). Building on older # Flutter silently breaks pen input on Windows. flutter: ">=3.44.0" dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter intl: any cupertino_icons: ^1.0.8 # Pen & Ink Rendering perfect_freehand: ^2.0.0 # PDF syncfusion_flutter_pdfviewer: ^28.2.7 syncfusion_flutter_pdf: ^28.2.7 # Used directly by ThumbnailService to render PDF pages off-screen. syncfusion_pdfviewer_platform_interface: ^28.2.7 # State Management flutter_riverpod: ^2.6.1 riverpod_annotation: ^2.6.1 # Local Storage sqflite: ^2.4.2 sqflite_common_ffi: ^2.3.4+4 path_provider: ^2.1.5 path: ^1.9.1 # Data Classes freezed_annotation: ^2.4.4 json_annotation: ^4.9.0 uuid: ^4.5.1 # UI Utilities google_fonts: ^6.2.1 flutter_colorpicker: ^1.1.0 # Settings persistence shared_preferences: ^2.3.0 # WebDAV sync: a minimal client (PROPFIND/GET/PUT/MKCOL) is hand-rolled over # `package:http` (HttpWebDavClient) — both were already transitive deps. We # avoid the `webdav_client` package because it drags in `dio`; `http` works on # Windows and keeps the real adapter thin so the sync algorithm stays testable # against a fake client. http: ^1.2.0 xml: ^6.5.0 # Cross-platform file picker file_picker: ^8.0.0 # Camera / image picker image_picker: ^1.1.2 # Embedded ONNX runtime (local OCR recognition backend) flutter_onnxruntime: ^1.8.0 pdfrx: ^2.4.4 dynamic_color: ^1.8.1 archive: ^4.0.9 # Pin sqlite3 to the exact version whose native binaries are vendored under # vendor/sqlite3/ (see hooks block below). Without this, pub re-resolves to the # latest sqlite3 on the cn mirror (e.g. 3.3.3), whose expected binary hash no # longer matches the vendored files and the native-asset build fails. dependency_overrides: sqlite3: 3.3.2 dev_dependencies: flutter_test: sdk: flutter # M1 spike perf/coordinate gates (integration_test harness). integration_test: sdk: flutter flutter_lints: ^6.0.0 # Code Generation build_runner: ^2.4.14 riverpod_generator: ^2.6.3 freezed: ^2.5.8 json_serializable: ^6.9.4 flutter: uses-material-design: true # Generate AppLocalizations from lib/l10n/*.arb (see l10n.yaml). generate: true assets: - assets/models/ocr/ # Use vendored, hash-verified sqlite3 native binaries (committed under # vendor/sqlite3/) instead of downloading them from GitHub releases at build # time. This keeps builds fully local/offline — important behind the GFW where # the GitHub download times out — and deterministic. To support another # platform/arch, drop its official release binary into vendor/sqlite3/ (the # build validates each file's SHA-256 against the sqlite3 package). hooks: user_defines: sqlite3: source: test-sqlite3 directory: vendor/sqlite3/