mirror of
https://github.com/kuhyx/todo-app.git
synced 2026-11-10 20:47:01 +01:00
Some checks failed
📎 now picks any file (Android: Camera / Gallery / File; desktop: an
unfiltered dialog) and the desktop page accepts any dropped file. Photo and
screenshot formats up to 64 MB are still re-encoded and shown inline;
everything else is stored byte for byte on dufs beside the images and linked
as [name](url), shown as a row with its size that opens in the platform's
app (Android) or a new browser tab (desktop). BACKLOG.md rewrites file links
to ~/data/cloud/todo-images/ like image links.
There is no size cap, so no layer holds a file in memory: uploads and
downloads stream through DufsImageClient, writes land in a .tmp renamed when
whole (an interrupted download no longer leaves a truncated file that looks
done), the desktop page POSTs the browser's own Blob with fetch, and Android's
"File" uses file_picker, because file_selector's Android side reads the whole
file into memory on the UI thread. Verified with a 1 GB file end to end on
desktop (peak RSS +36 MB) and on an API 36 emulator.
The wrapper serves attachments from the origin that holds the GitHub token
and the notes, so only script-free types open inline (nosniff), the rest
download; writes carrying another site's Origin are refused (this also
closes cross-site overwrites of the backup files); and attachment routes run
concurrently so a long upload or a playing video cannot stall the page.
Also: cupertino_icons 2.0.0 (unused, but the freshness gate blocks the
pubspec otherwise), open_file 4.0.0 and file_picker 13.1.0 pinned.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
175 lines
6.8 KiB
YAML
175 lines
6.8 KiB
YAML
name: todo
|
|
description: "A new Flutter project."
|
|
# The following line prevents the package from being accidentally published to
|
|
# pub.dev using `flutter pub publish`. This is preferred for private packages.
|
|
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
|
|
|
# The following defines the version and build number for your application.
|
|
# A version number is three numbers separated by dots, like 1.2.43
|
|
# followed by an optional build number separated by a +.
|
|
# Both the version and the builder number may be overridden in flutter
|
|
# build by specifying --build-name and --build-number, respectively.
|
|
# In Android, build-name is used as versionName while build-number used as versionCode.
|
|
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
|
|
# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion.
|
|
# Read more about iOS versioning at
|
|
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
|
# In Windows, build-name is used as the major, minor, and patch parts
|
|
# of the product and file versions while build-number is used as the build suffix.
|
|
version: 1.0.41+1
|
|
|
|
environment:
|
|
sdk: ^3.12.2
|
|
|
|
# Dependencies specify other packages that your package needs in order to work.
|
|
# To automatically upgrade your package dependencies to the latest versions
|
|
# consider running `flutter pub upgrade --major-versions`. Alternatively,
|
|
# dependencies can be manually updated by changing the version numbers below to
|
|
# the latest version available on pub.dev. To see which dependencies have newer
|
|
# versions available, run `flutter pub outdated`.
|
|
dependencies:
|
|
# Shared CRDT sync (LogStore + Record/Log merge + GitHub transport). The
|
|
# primary store since the migration off sqlite_crdt.
|
|
crdt_sync:
|
|
git:
|
|
url: https://github.com/kuhyx/utils
|
|
ref: crdt_sync_dart-v0.11.1
|
|
path: crdt_sync_dart
|
|
|
|
# The following adds the Cupertino Icons font to your application.
|
|
# Use with the CupertinoIcons class for iOS style icons.
|
|
cupertino_icons: 2.0.0
|
|
|
|
# The shared palette, scales and components. Owns the tokens: there is
|
|
# deliberately no local theme.dart to drift from the frozen table.
|
|
design_system:
|
|
git:
|
|
url: https://github.com/kuhyx/utils
|
|
ref: design_system-v0.2.1
|
|
path: design_system
|
|
file_picker: 13.1.0
|
|
file_selector: 1.1.0
|
|
flutter:
|
|
sdk: flutter
|
|
|
|
# Stores the GitHub sync token in the OS keystore (Android Keystore /
|
|
# libsecret) instead of plaintext SharedPreferences.
|
|
flutter_secure_storage: 11.2.0
|
|
|
|
github_device_auth:
|
|
git:
|
|
url: https://github.com/kuhyx/utils
|
|
ref: github_device_auth-v0.3.1
|
|
path: github_device_auth
|
|
# One-tap sign-in for the sync account. Lives only in the app: `crdt_sync`
|
|
# stays pure Dart so it keeps working on Linux desktop and headless, where
|
|
# this plugin does not exist. See lib/sync/google_sign_in_backend.dart.
|
|
google_sign_in: 7.2.0
|
|
http: 1.6.0
|
|
idb_shim: 2.9.9
|
|
# Re-encodes attached images (resize, EXIF strip) in pure Dart, so the
|
|
# phone and the desktop wrapper share one code path.
|
|
image: 4.10.1
|
|
# Camera + gallery picks for image attachments on Android.
|
|
image_picker: 1.2.3
|
|
# Hands an attached non-image file to whichever Android app opens its
|
|
# type (FileProvider intent). Adds no permissions to the manifest.
|
|
open_file: 4.0.0
|
|
path: 1.9.1
|
|
path_provider: 2.1.6
|
|
share_plus: 13.3.0
|
|
shared_preferences: 2.5.5
|
|
sqflite_common_ffi: 2.4.3
|
|
# Retained only to read the legacy on-device DB during the one-time
|
|
# migration in NoteRepository.open; remove once all devices are migrated.
|
|
sqlite_crdt: 3.0.4
|
|
|
|
# Shared "Sync settings" screen (Firebase + local backup), reused across
|
|
# every kuhy app that syncs. GitHub mirror stays app-local (see
|
|
# lib/ui/github_mirror_screen.dart) since here it also triggers a note
|
|
# sync, not just a settings save.
|
|
sync_settings_ui:
|
|
git:
|
|
url: https://github.com/kuhyx/utils
|
|
ref: sync_settings_ui-v0.4.1
|
|
path: sync_settings_ui
|
|
url_launcher: 6.3.2
|
|
uuid: 4.6.0
|
|
# Paste and drag-and-drop listeners on the desktop (web) page.
|
|
web: 1.1.1
|
|
dev_dependencies:
|
|
# Virtual clock for unit-testing debounced timers (e.g. LocalBackup).
|
|
fake_async: 1.3.3
|
|
|
|
# Plugin platform interfaces, depended on directly so tests can swap in
|
|
# fakes for the file picker and URL launcher (see settings_screen_test.dart).
|
|
file_selector_platform_interface: 2.7.0
|
|
|
|
# Generates the Android launcher icons from assets/icon/ (see
|
|
# python_pkg/app_icons in testsAndMisc for the shared style).
|
|
flutter_launcher_icons: 0.14.4
|
|
flutter_test:
|
|
sdk: flutter
|
|
plugin_platform_interface: 2.1.8
|
|
url_launcher_platform_interface: 2.3.2
|
|
|
|
# Stricter than flutter_lints -- standardized across this ecosystem's
|
|
# Flutter apps (see project memory: all Flutter apps use
|
|
# very_good_analysis, not flutter_lints).
|
|
very_good_analysis: ^11.0.0
|
|
|
|
# For information on the generic Dart part of this file, see the
|
|
# following page: https://dart.dev/tools/pub/pubspec
|
|
|
|
# The following section is specific to Flutter packages.
|
|
flutter:
|
|
|
|
# The following line ensures that the Material Icons font is
|
|
# included with your application, so that you can use the icons in
|
|
# the material Icons class.
|
|
uses-material-design: true
|
|
|
|
# To add assets to your application, add an assets section, like this:
|
|
# assets:
|
|
# - images/a_dot_burr.jpeg
|
|
# - images/a_dot_ham.jpeg
|
|
|
|
# An image asset can refer to one or more resolution-specific "variants", see
|
|
# https://flutter.dev/to/resolution-aware-images
|
|
|
|
# For details regarding adding assets from package dependencies, see
|
|
# https://flutter.dev/to/asset-from-package
|
|
|
|
# To add custom fonts to your application, add a fonts section here,
|
|
# in this "flutter" section. Each entry in this list should have a
|
|
# "family" key with the font family name, and a "fonts" key with a
|
|
# list giving the asset and other descriptors for the font. For
|
|
# example:
|
|
# fonts:
|
|
# - family: Schyler
|
|
# fonts:
|
|
# - asset: fonts/Schyler-Regular.ttf
|
|
# - asset: fonts/Schyler-Italic.ttf
|
|
# style: italic
|
|
# - family: Trajan Pro
|
|
# fonts:
|
|
# - asset: fonts/TrajanPro.ttf
|
|
# - asset: fonts/TrajanPro_Bold.ttf
|
|
# weight: 700
|
|
#
|
|
# For details regarding fonts from package dependencies,
|
|
# see https://flutter.dev/to/font-from-package
|
|
|
|
# Launcher icon generation. Source art is produced by the shared generator:
|
|
# PYTHONPATH=~/src/testsAndMisc python3 -m python_pkg.app_icons generate --app <key>
|
|
# then run: dart run flutter_launcher_icons
|
|
flutter_launcher_icons:
|
|
android: true
|
|
ios: false
|
|
image_path: "assets/icon/icon.png"
|
|
adaptive_icon_background: "#211D1B"
|
|
adaptive_icon_foreground: "assets/icon/icon_foreground.png"
|
|
adaptive_icon_monochrome: "assets/icon/icon_monochrome.png"
|
|
min_sdk_android: 21
|
|
|