halkyon_app: instances, sign-in and sync plumbing for Halkyon's apps
What every Halkyon app's shell needs, taken from Halkyon Learn's and set on halkyon_base's client: the instances a device keeps an account on, the first start's tiles and where an instance keeps people's data, the account switcher; signing in anonymously, with GitHub or an email code, switching person and the start screen; the gates that build an app's dependencies per instance and per person; and the sync service with its status, Settings card and banner. Texts of its own in English and German take the app's name; what only the app can say, it passes in. Fakes for apps' tests are in testing.dart. An instance's basics now name the app it serves (`app`, set by the host's configuration), and an app accepts only an instance of its own. SerialQueue and CoalescingRunner move into halkyon_core. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
af1de799f4
commit
e23cc77f7c
1 changed files with 10761 additions and 10 deletions
62
packages/halkyon_app/pubspec.yaml
Normal file
62
packages/halkyon_app/pubspec.yaml
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
name: halkyon_app
|
||||
description: "What every Halkyon app is built around: the instances a device keeps accounts on, signing in through an instance's halkyon_base, each person's data opened and closed, and syncing it."
|
||||
version: 0.1.0
|
||||
publish_to: none
|
||||
resolution: workspace
|
||||
|
||||
environment:
|
||||
sdk: ^3.13.0
|
||||
flutter: ^3.44.4
|
||||
|
||||
dependencies:
|
||||
clock: ^1.1.3
|
||||
equatable: ^3.0.0
|
||||
# The flag of where an instance keeps people's data; it draws lipis'
|
||||
# flag-icons, whose MIT notice this package registers (assets/flags/).
|
||||
flag: ^7.1.0
|
||||
flutter:
|
||||
sdk: flutter
|
||||
flutter_bloc: ^9.1.1
|
||||
# gen-l10n's output imports it; apps take Material's texts from material_ui.
|
||||
flutter_localizations:
|
||||
sdk: flutter
|
||||
# LoopbackWebAuth takes the place of the package's own browser half on
|
||||
# Linux and Windows.
|
||||
flutter_web_auth_2_platform_interface: ^5.0.0
|
||||
halkyon_base_client:
|
||||
path: ../halkyon_base_client
|
||||
halkyon_core:
|
||||
path: ../halkyon_core
|
||||
halkyon_ui:
|
||||
path: ../halkyon_ui
|
||||
# A client of halkyon_base alone can be given a fake one in tests.
|
||||
http: ^1.6.0
|
||||
intl: ^0.20.3
|
||||
lucide_icons_flutter: ^3.1.20
|
||||
material_ui: ^1.5.0
|
||||
path: ^1.9.1
|
||||
# Serverpod's packages move together, at one version (as the apps pin them).
|
||||
serverpod_auth_core_client: 4.0.4
|
||||
serverpod_auth_idp_client: 4.0.4
|
||||
serverpod_auth_idp_flutter: 4.0.4
|
||||
serverpod_client: 4.0.4
|
||||
# Its sync refuses an app whose synced tables differ from the server's
|
||||
# (OfflineSyncTablesHashMismatchException).
|
||||
serverpod_offline_sync_client: 0.0.10
|
||||
url_launcher: ^6.3.2
|
||||
window_to_front: ^0.0.4
|
||||
|
||||
dev_dependencies:
|
||||
fake_async: ^1.3.3
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
# A test drives sign-in through its front, as Serverpod's GitHub sign-in does.
|
||||
flutter_web_auth_2: ^5.1.0
|
||||
|
||||
flutter:
|
||||
# Generates HalkyonAppLocalizations from lib/l10n (see l10n.yaml).
|
||||
generate: true
|
||||
|
||||
assets:
|
||||
# flag-icons' MIT notice, for the licence list (registerFlagIconsLicense).
|
||||
- assets/flags/LICENSE-flag-icons.txt
|
||||
Reference in a new issue