refactor(content,core,app,editor,learn): Learn's content in pure Dart, for its agent
ADR 0044's D49 (amended in building it): what reads and seals Learn's content moves out of the Flutter packages, so Learn's agent, which runs without Flutter, shares it rather than repeating the privacy rules. packages/halkyon_content (new, pure Dart) takes from halkyon_app the envelope and its cipher, SealedFile, UnlockedAccountKeys, shared spaces' gateway with SharedKeys and KeyPins, FileCache and FileServerGateway, with their fakes and tests; halkyon_app exports it, so no app changes. Its rich_text.dart takes RichContent from halkyon_editor, which exports it. newAccountKeys makes an agent's key pair. halkyon_core takes DelayedDeletions and gains SyncRequests, what a synced gateway asks of the sync, which SyncService implements. apps/learn/halkyon_learn_core (new, pure Dart) takes Learn's privacy, sync, payloads and the models, codecs, gateways and repositories of studysets, cards, notes, tags and feedback, with what they reach of files, learning paths, citations and study options; the app imports them from there. A subject's icon, colour and name stay in the app (SubjectLook); what only the app shows (progress, exam coverage, the card browser, deletions' waits) stays too. Nothing changes for people using the apps. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
82c777b1a5
commit
d09625d43e
8 changed files with 3517 additions and 2007 deletions
|
|
@ -11,11 +11,11 @@ import 'dart:io';
|
|||
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:halkyon_editor/halkyon_editor.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/card/model/card_content.dart';
|
||||
import 'package:halkyon_learn_core/feature/card/model/card_content.dart';
|
||||
import 'package:halkyon_learn_core/feature/studyset/model/studyset_content.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/study/model/card_schedule.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/study/model/rating.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/study/model/review.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/studyset/model/studyset_content.dart';
|
||||
import 'package:serverpod_auth_core_client/serverpod_auth_core_client.dart';
|
||||
|
||||
import 'support/sync_devices.dart';
|
||||
|
|
|
|||
|
|
@ -11,12 +11,12 @@ library;
|
|||
import 'dart:io';
|
||||
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/learning_path/model/answer.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/learning_path/model/exercise.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/learning_path/model/learning_path.dart';
|
||||
import 'package:halkyon_learn_core/feature/learning_path/model/answer.dart';
|
||||
import 'package:halkyon_learn_core/feature/learning_path/model/exercise.dart';
|
||||
import 'package:halkyon_learn_core/feature/learning_path/model/learning_path.dart';
|
||||
import 'package:halkyon_learn_core/feature/learning_path/model/step_content.dart';
|
||||
import 'package:halkyon_learn_core/feature/studyset/model/studyset_content.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/learning_path/model/progress.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/learning_path/model/step_content.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/studyset/model/studyset_content.dart';
|
||||
import 'package:serverpod_auth_core_client/serverpod_auth_core_client.dart';
|
||||
|
||||
import 'support/sync_devices.dart';
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ import 'dart:io';
|
|||
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:halkyon_editor/halkyon_editor.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/note/model/note_content.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/studyset/model/studyset_content.dart';
|
||||
import 'package:halkyon_learn_core/feature/note/model/note_content.dart';
|
||||
import 'package:halkyon_learn_core/feature/studyset/model/studyset_content.dart';
|
||||
import 'package:serverpod_auth_core_client/serverpod_auth_core_client.dart';
|
||||
|
||||
import 'support/sync_devices.dart';
|
||||
|
|
|
|||
|
|
@ -14,8 +14,8 @@ import 'dart:math';
|
|||
import 'dart:typed_data';
|
||||
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:halkyon_learn_core/feature/studyset/model/studyset_content.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/pdf_source/data/pdf_source_repository.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/studyset/model/studyset_content.dart';
|
||||
import 'package:serverpod_auth_core_client/serverpod_auth_core_client.dart';
|
||||
|
||||
import 'support/sync_devices.dart';
|
||||
|
|
|
|||
|
|
@ -23,18 +23,18 @@ import 'dart:math';
|
|||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:halkyon_app/halkyon_app.dart';
|
||||
import 'package:halkyon_editor/halkyon_editor.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/card/model/card.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/card/model/card_content.dart';
|
||||
import 'package:halkyon_learn_core/feature/card/model/card.dart';
|
||||
import 'package:halkyon_learn_core/feature/card/model/card_content.dart';
|
||||
import 'package:halkyon_learn_core/feature/note/model/note_content.dart';
|
||||
import 'package:halkyon_learn_core/feature/studyset/model/exam_plan.dart';
|
||||
import 'package:halkyon_learn_core/feature/studyset/model/studyset_content.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/explore/data/copy_updater.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/explore/data/explore_repository.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/explore/data/release_copier.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/explore/data/serverpod_explore_gateway.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/explore/model/explore_studyset.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/note/model/note_content.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/publish/data/publish_repository.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/publish/data/serverpod_publish_gateway.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/studyset/model/exam_plan.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/studyset/model/studyset_content.dart';
|
||||
import 'package:serverpod_auth_core_client/serverpod_auth_core_client.dart';
|
||||
|
||||
import '../support/memory_published_store.dart';
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import 'dart:io';
|
|||
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:halkyon_learn_client/halkyon_learn_client.dart' as protocol;
|
||||
import 'package:halkyon_learn_flutter/src/feature/studyset/model/studyset_content.dart';
|
||||
import 'package:halkyon_learn_core/feature/studyset/model/studyset_content.dart';
|
||||
import 'package:serverpod_auth_core_client/serverpod_auth_core_client.dart';
|
||||
|
||||
import 'support/sync_devices.dart';
|
||||
|
|
|
|||
|
|
@ -4,36 +4,35 @@ import 'dart:math';
|
|||
import 'dart:typed_data';
|
||||
|
||||
import 'package:crypto/crypto.dart';
|
||||
|
||||
import 'package:halkyon_app/halkyon_app.dart';
|
||||
import 'package:halkyon_app/testing.dart';
|
||||
import 'package:halkyon_learn_client/halkyon_learn_client.dart' as protocol;
|
||||
import 'package:halkyon_learn_flutter/src/core/asset/data/asset_repository.dart';
|
||||
import 'package:halkyon_learn_core/core/asset/data/asset_repository.dart';
|
||||
import 'package:halkyon_learn_core/core/privacy/data/content_keys.dart';
|
||||
import 'package:halkyon_learn_core/core/privacy/data/privacy.dart';
|
||||
import 'package:halkyon_learn_core/core/privacy/data/sync_content_key_gateway.dart';
|
||||
import 'package:halkyon_learn_core/feature/card/data/card_repository.dart';
|
||||
import 'package:halkyon_learn_core/feature/card/data/sync_card_gateway.dart';
|
||||
import 'package:halkyon_learn_core/feature/card/model/card.dart';
|
||||
import 'package:halkyon_learn_core/feature/learning_path/data/learning_path_repository.dart';
|
||||
import 'package:halkyon_learn_core/feature/note/data/note_repository.dart';
|
||||
import 'package:halkyon_learn_core/feature/note/data/sync_note_gateway.dart';
|
||||
import 'package:halkyon_learn_core/feature/note/model/note.dart';
|
||||
import 'package:halkyon_learn_core/feature/studyset/data/studyset_repository.dart';
|
||||
import 'package:halkyon_learn_core/feature/studyset/data/sync_studyset_gateway.dart';
|
||||
import 'package:halkyon_learn_core/feature/studyset/model/studyset.dart';
|
||||
import 'package:halkyon_learn_core/feature/tag/data/sync_tag_gateway.dart';
|
||||
import 'package:halkyon_learn_core/feature/tag/data/tag_repository.dart';
|
||||
import 'package:halkyon_learn_flutter/src/core/asset/data/sync_asset_gateway.dart';
|
||||
import 'package:halkyon_learn_flutter/src/core/privacy/data/content_keys.dart';
|
||||
import 'package:halkyon_learn_flutter/src/core/privacy/data/privacy.dart';
|
||||
import 'package:halkyon_learn_flutter/src/core/privacy/data/sync_content_key_gateway.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/card/data/card_repository.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/card/data/sync_card_gateway.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/card/model/card.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/learning_path/data/learning_path_repository.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/learning_path/data/path_progress_repository.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/learning_path/data/sync_learning_path_gateway.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/learning_path/data/sync_path_answer_gateway.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/note/data/note_repository.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/note/data/sync_note_gateway.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/note/model/note.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/pdf_source/data/pdf_source_repository.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/pdf_source/data/sync_pdf_source_gateway.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/settings/data/settings_repository.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/settings/data/sync_settings_gateway.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/study/data/review_repository.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/study/data/sync_review_gateway.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/studyset/data/studyset_repository.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/studyset/data/sync_studyset_gateway.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/studyset/model/studyset.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/tag/data/sync_tag_gateway.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/tag/data/tag_repository.dart';
|
||||
import 'package:postgres/postgres.dart' as pg;
|
||||
import 'package:serverpod_auth_core_client/serverpod_auth_core_client.dart';
|
||||
import 'package:serverpod_offline_sync_client/offline_sync.dart';
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@ import 'dart:io';
|
|||
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:halkyon_editor/halkyon_editor.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/card/model/card_content.dart';
|
||||
import 'package:halkyon_learn_core/feature/card/model/card_content.dart';
|
||||
import 'package:halkyon_learn_core/feature/studyset/model/studyset_content.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/home/model/study_goal.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/settings/model/person_settings.dart';
|
||||
import 'package:halkyon_learn_flutter/src/feature/studyset/model/studyset_content.dart';
|
||||
import 'package:serverpod_auth_core_client/serverpod_auth_core_client.dart';
|
||||
|
||||
import 'support/sync_devices.dart';
|
||||
|
|
|
|||
Loading…
Reference in a new issue