v0.1.0 — initialer Sprint, vollständige Auth-Reise als SwiftUI
Phase 2 aus dem Native-Auth-Vollausbau-Plan (Option A, siehe ../mana/docs/MANA_SWIFT.md). Entstanden weil drei Apps fast- byte-identische LoginView.swift hatten und Sign-Up/Forgot-PW komplett fehlten. ManaAuthUI-Library mit: - ManaBrandConfig — App-injizierte Theme-Werte (forest für Cards/ Manaspur, mana-default für Memoro), Environment-Key, View-Modifier - Base-Components: ManaAuthScaffold, ManaPrimaryButton, ManaTextField, ManaSecureField + .manaEmailField()-Modifier - ManaLoginView + LoginViewModel — Email/PW-Login, schaltet bei AuthError.emailNotVerified automatisch auf ManaEmailVerifyGateView - ManaSignUpView + SignUpViewModel — Email/Name/PW + awaiting- Verification-Hinweis-Screen - ManaEmailVerifyGateView + ViewModel — Resend-Verification - ManaForgotPasswordView + ViewModel — Reset-Mail anfordern (immer generischer Hinweis, User-Enumeration-Schutz) - ManaResetPasswordView + ViewModel — neues PW mit Token aus Universal-Link - ManaChangeEmailView, ManaChangePasswordView, ManaDeleteAccountView + internal ViewModels — Account-Bausteine - ManaDeleteAccountView ist zweistufig (Bestätigungs-Wort tippen + Passwort) → App-Store-Guideline 5.1.1(v) Pflicht-Surface 26/26 ViewModel-Tests grün via per-test-ID URLProtocol-Routing (löst Parallel-Pollution zwischen .serialized Suites). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
commit
0a2cb349b4
29 changed files with 2614 additions and 0 deletions
53
CHANGELOG.md
Normal file
53
CHANGELOG.md
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
# Changelog
|
||||
|
||||
Alle Änderungen werden hier dokumentiert. Format orientiert an
|
||||
[Keep a Changelog](https://keepachangelog.com), Versionierung nach
|
||||
[Semver](https://semver.org).
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [0.1.0] — 2026-05-13
|
||||
|
||||
Phase 2 aus dem Native-Auth-Vollausbau-Plan (Option A, siehe
|
||||
`../mana/docs/MANA_SWIFT.md`). Entstanden weil drei Apps fast-byte-
|
||||
identische `LoginView.swift`-Dateien hatten und Sign-Up/Forgot-PW
|
||||
komplett fehlten.
|
||||
|
||||
### ManaAuthUI (neu)
|
||||
|
||||
- `ManaBrandConfig` — App-injiziertes Bündel aus appName, tagline,
|
||||
primary/surface/background/error-Colors. Apps liefern hier ihr
|
||||
Theme (z.B. forest für Cards/Manaspur, default-mana für Memoro).
|
||||
- Base-Components: `ManaAuthScaffold`, `ManaPrimaryButton`,
|
||||
`ManaTextField`, `ManaSecureField` — geteilte Bausteine, alle
|
||||
brand-aware.
|
||||
- `ManaLoginView` + `LoginViewModel` — Email/PW-Login mit
|
||||
Sign-Up- und Forgot-PW-Buttons. Bei `.emailNotVerified` automatisch
|
||||
ins `ManaEmailVerifyGateView` umgeleitet (Resend-Mail-Button).
|
||||
- `ManaSignUpView` + `SignUpViewModel` — Registrierung mit
|
||||
Email/Name/Passwort. Nach Submit: Bestätigungs-Mail-Hinweis-Screen.
|
||||
- `ManaEmailVerifyGateView` — wenn Login `.emailNotVerified` warf,
|
||||
bietet "Bestätigungs-Mail erneut senden".
|
||||
- `ManaForgotPasswordView` + `ForgotPasswordViewModel` — Reset-Mail
|
||||
anfordern. Server antwortet immer 200 (keine User-Enumeration),
|
||||
UI meldet generisch.
|
||||
- `ManaResetPasswordView` + `ResetPasswordViewModel` — neues
|
||||
Passwort setzen mit Token aus Reset-Mail. Wird aus dem
|
||||
Universal-Link-Handler der App aufgerufen.
|
||||
- `ManaChangeEmailView`, `ManaChangePasswordView`,
|
||||
`ManaDeleteAccountView` — Account-Bausteine für die AccountView
|
||||
der App. **`ManaDeleteAccountView` ist App-Store-Pflicht
|
||||
(Guideline 5.1.1(v))** für jede App mit Account-Erstellung.
|
||||
|
||||
### Tests
|
||||
|
||||
- ViewModel-Tests via URLProtocol-Mock für jeden Auth-Flow.
|
||||
- Brand-Config-Defaults.
|
||||
|
||||
### Bekannte Einschränkungen
|
||||
|
||||
- `ManaChangeEmailView`/`ManaChangePasswordView`/`ManaDeleteAccountView`
|
||||
funktionieren erst nach Phase-3-Server-PR (Bearer-Plugin in
|
||||
`mana-auth`). UI ist fertig, Wire ist fertig, Server muss nachziehen.
|
||||
- 2FA, Magic-Link, Passkey-Flows nicht enthalten. Folgen in v0.2.0
|
||||
zusammen mit ManaCore v1.2.0 und dem Server-PR.
|
||||
Loading…
Add table
Add a link
Reference in a new issue