halkyon/apps/learn/halkyon_learn_flutter/pubspec.yaml
Tizian 「ティツィアーン」 996e584338
All checks were successful
CI / check (push) Successful in 40m57s
CI / deploy (push) Successful in 1m1s
chore(release): learn-v0.23.0
Build 26.

Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-11-03 17:47:36 +01:00

255 lines
11 KiB
YAML

name: halkyon_learn_flutter
description: A new Flutter project with Serverpod.
# The following line prevents the package from being accidentally published to
# pub.dev using `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 used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 0.23.0+26
environment:
sdk: '^3.13.0'
flutter: '^3.44.4'
resolution: workspace
dependencies:
# Our fork of the editor's main branch, moved to win32 v6 so the app can stay in the pub
# workspace, pinned to a signed commit of its branch halkyon/win32-v6.
appflowy_editor:
git:
url: https://code.halkyon.app/project-halkyon/appflowy-editor.git
ref: 81c3006c74e789ed2e470b8612529541b358fd26
# Anki packages are zip files.
archive: ^4.0.7
# Sounds in content (pronunciations): one package for all five platforms; on
# Linux it plays through GStreamer, whose development files a Linux build needs.
audioplayers: ^6.8.1
clock: ^1.1.3
crypto: ^3.0.7
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.5
# The Pomodoro timer on Linux talks to the desktop's notification server over
# the session bus; the version the network packages bring along already.
dbus: ^0.7.15
equatable: ^3.0.0
expressive_loading_indicator: ^0.0.1
# Saves exports on Android and iOS, where file_selector has no save dialog
# (the system's through it: Android's Storage Access Framework); the editor
# brings this version along already.
file_picker: ^13.1.0
# Picks the files to import (and later the images to add), and saves exports
# on the desktop: flutter.dev's own.
file_selector: ^1.1.0
flutter:
sdk: flutter
flutter_bloc: ^9.1.1
flutter_localizations:
sdk: flutter
flutter_math_fork: ^0.7.4
# Keeps the token of a Jellyfin server in the system's keyring; Serverpod's
# sign-in keeps its session there with it already.
flutter_secure_storage: ^10.0.0
fractional_indexing_dart: ^1.0.7
# Pinned exactly: every device on one app version must compute the same
# schedules.
fsrs: 2.0.1
go_router: ^18.0.2
# What every Halkyon app is built around (a shared package): the instances a
# device keeps accounts on, signing in through halkyon_base, each person's
# data opened and closed, and syncing it, with texts of its own.
halkyon_app:
path: ../../../packages/halkyon_app
# The client side of halkyon_base: people's public profiles, which the
# instance's register keeps (ADR 0016).
halkyon_base_client:
path: ../../../packages/halkyon_base_client
# Halkyon's low-level parts (a shared package): the queues the repositories
# run their work in (SerialQueue, CoalescingRunner).
halkyon_core:
path: ../../../packages/halkyon_core
halkyon_learn_client:
path: ../halkyon_learn_client
# Language models' APIs (a shared package, ADR 0021, D15): the protocols a
# person's own assistant is asked in, which their settings keep.
halkyon_llm:
path: ../../../packages/halkyon_llm
# The device's half of signing in with OpenID Connect (ADR 0023): the
# browser that SimpleLogin's sign-in opens, and on Linux and Windows the
# loopback it comes back to, which the app builds with its name.
halkyon_oidc_flutter:
path: ../../../packages/halkyon_oidc_flutter
# Halkyon's look, shared by its apps (a shared package): the theme, the bundled
# Noto Sans, window sizes and the widgets every screen is built of.
halkyon_ui:
path: ../../../packages/halkyon_ui
# Anki's fields are HTML; the editor brings this parser along already.
html: ^0.15.6
# Talks to Jellyfin servers; Serverpod's client brings it along already.
http: ^1.6.0
intl: ^0.20.3
lucide_icons_flutter: ^3.1.20
material_ui: ^1.5.0
# Cuts Japanese into words on the device (ADR 0012): MeCab 0.996 (BSD), which
# the package's build hook compiles from its C++, so every build, `flutter
# test` too, needs a C++ compiler; its dictionary, IPADIC, comes from the
# instance once the person asks for it.
mecab_for_dart: ^2.0.5
# Videos from a Jellyfin server on Linux and Windows, where video_player has
# no player: libmpv (MIT; libmpv LGPL), the system's on Linux (a Linux build
# needs libmpv-dev), bundled on Windows. Used directly rather than behind
# video_player, which can't keep libmpv from drawing the video's own
# subtitles. Not fvp, whose libmdk is closed.
media_kit: ^1.2.6
media_kit_libs_linux: ^1.2.1
media_kit_libs_windows_video: ^1.0.11
media_kit_video: ^2.0.1
package_info_plus: ^10.2.2
path: ^1.9.1
# SVG path data, for the strokes KanjiVG draws characters with.
path_parsing: ^1.1.0
path_provider: ^2.1.6
# Modern Anki packages are zstd-compressed, every frame without its content
# size, which upstream's v1.0.0 refuses. Our fork decodes them, pinned to a
# signed commit of its branch halkyon/unknown-content-size; back to upstream
# once it decodes them too.
pdfrx: ^2.6.5
pure_zstd:
git:
url: https://code.halkyon.app/project-halkyon/pure-zstd.git
ref: 596b63d5741d479073fbfc78377cc7dbdd342da3
serverpod_auth_idp_flutter: 4.0.4
serverpod_flutter: 4.0.4
serverpod_offline_sync_client: 0.0.10
# A question spoken to the assistant (ADR 0021, D67): the device's own speech
# recognition (Android's, Apple's, Windows'); none on Linux.
speech_to_text: ^7.5.0
# Anki collections are SQLite databases (the sync engine already bundles it).
sqlite3: ^3.6.0
url_launcher: ^6.3.2
# Videos from a Jellyfin server elsewhere: flutter.dev's player (ExoPlayer on
# Android, AVPlayer on iOS and macOS).
video_player: ^2.14.1
youtube_player_iframe: ^6.0.2
dev_dependencies:
fake_async: ^1.3.3
# The flags halkyon_app draws where an instance keeps its data, which the
# whole-app tests look for.
flag: ^7.1.0
# Used for agents to drive the app through the Dart MCP
flutter_driver:
sdk: flutter
# Writes the app's icons for every platform from assets/icon/halkyon_learn_icon.png,
# run through the repository's tool/app_icons.py (see the flutter_launcher_icons
# section below).
flutter_launcher_icons: ^0.14.4
flutter_test:
sdk: flutter
# Checks on a device what no widget test can see (integration_test/).
integration_test:
sdk: flutter
# The sync tests (test/sync/) sign in like the app and read the server's database.
postgres: ^3.5.16
serverpod_auth_core_client: 4.0.4
yaml: ^3.1.4
# 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.
flutter:
# Generates AppLocalizations from lib/l10n (see l10n.yaml).
generate: true
# 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/assets-and-images/#resolution-aware.
# For details regarding adding assets from package dependencies, see
# https://flutter.dev/assets-and-images/#from-packages
assets:
- assets/config.json
# What each release changed, one file a release and language
# (<version>.<language>.txt), drafted by tool/release.dart and edited
# (Halkyon Train's ADR 0030, D61): halkyon_app's What's new shows them.
- assets/whats_new/
# The app's icon (ADR 0031), the window's on Linux, atop the navigation rail and
# on the launch screen (D6), and Lucide's notice for it.
- assets/icon/halkyon_learn_icon.png
- assets/icon/LICENSE-lucide.txt
# Region maps for map questions (see assets/maps/ATTRIBUTION.md).
- assets/maps/japan_prefectures.geojson
- assets/maps/world_countries.geojson
- assets/maps/LICENSE-CLDR.txt
# The CJK fonts' licence, for the licence list (see assets/fonts/ATTRIBUTION.md).
- assets/fonts/OFL-NotoSansCJK.txt
# The licences of MeCab, its dictionary IPADIC and Ve's rules, which cut Japanese
# into words on the device (ADR 0012).
- assets/mecab/
# How kanji and kana are written, from KanjiVG (see assets/kanjivg/ATTRIBUTION.md).
- assets/kanjivg/
# How Chinese characters are written, from Make Me a Hanzi (see
# assets/makemeahanzi/ATTRIBUTION.md), and the Hangul letters.
- assets/makemeahanzi/
- assets/hangul/
# The CJK fonts, the same on every device and never fetched: Noto Sans JP, SC, TC
# and KR for Japanese, Chinese and Korean, behind halkyon_ui's Noto Sans, in the
# order a studyset's language asks for (halkyon_ui's appFontFallbackFor, which
# names them by these families). Each file holds every weight (variable fonts).
fonts:
- family: Noto Sans JP
fonts:
- asset: assets/fonts/NotoSansJP-Variable.otf
- family: Noto Sans SC
fonts:
- asset: assets/fonts/NotoSansSC-Variable.otf
- family: Noto Sans TC
fonts:
- asset: assets/fonts/NotoSansTC-Variable.otf
- family: Noto Sans KR
fonts:
- asset: assets/fonts/NotoSansKR-Variable.otf
# The app's icons, written by the repository's tool/app_icons.py: it prepares the
# images derived from Lucide's graduation cap in build/icons/ first, then runs `dart
# run flutter_launcher_icons` with this. Android: an adaptive icon, the cap on white
# for each launcher to cut to its shape, and the square one older Androids show. iOS: without
# transparency, as Apple requires. macOS: the rounded tile on Apple's grid. Windows:
# the rounded tile (tool/app_icons.py then writes its .ico with every size).
flutter_launcher_icons:
image_path: "assets/icon/halkyon_learn_icon.png"
android: true
adaptive_icon_background: "#ffffff"
adaptive_icon_foreground: "assets/icon/halkyon_learn_icon.png"
ios: true
remove_alpha_ios: true
background_color_ios: "#ffffff"
macos:
generate: true
image_path: "build/icons/macos.png"
windows:
generate: true
image_path: "build/icons/rounded.png"
icon_size: 256