@obsidiane/auth-client-js 1.0.6 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -242,6 +242,7 @@ validation **Origin/Referer** (Same Origin).
242
242
  - [Architecture](#architecture)
243
243
  - [Démarrage rapide](#démarrage-rapide)
244
244
  - [API & flux principaux](#api--flux-principaux)
245
+ - [Codes d’erreur (API)](#codes-derreur-api)
245
246
  - [Intégration front (SPA)](#intégration-front-spa)
246
247
  - [Configuration & déploiement](#configuration--déploiement)
247
248
  - [SDKs](#sdks)
@@ -387,7 +388,7 @@ make check-prod
387
388
  make test
388
389
  ```
389
390
 
390
- **Avant de push :** Lancez `make test` pour vérifier que tout passe (lint, build production, PHPStan).`
391
+ **Avant de push :** Lancez `make test` pour vérifier que tout passe (lint, build production, PHPStan).
391
392
 
392
393
  ### URLs utiles (dev)
393
394
 
@@ -414,7 +415,7 @@ curl -i \
414
415
  -c cookiejar.txt \
415
416
  -H 'Content-Type: application/json' \
416
417
  -H "Origin: http://localhost:8000" \
417
- -d '{"email":"userexample.com","password":"Secret123!"}' \
418
+ -d '{"email":"user@example.com","password":"Secret123!"}' \
418
419
  http://localhost:8000/api/auth/login
419
420
 
420
421
  # Profil courant
@@ -442,12 +443,39 @@ curl -i -b cookiejar.txt -H "Origin: http://localhost:8000" -X POST http://local
442
443
  | POST | `/api/auth/password/reset` | Réinitialisation via token |
443
444
  | GET | `/api/auth/verify-email` | Validation d’email via lien signé |
444
445
  | POST | `/api/auth/invite` | Inviter un utilisateur (admin) |
446
+ | GET | `/api/auth/invite/preview` | Prévisualiser une invitation |
445
447
  | POST | `/api/auth/invite/complete` | Compléter une invitation |
448
+ | PUT | `/api/users/{id}/roles` | Mettre à jour les roles (admin) |
446
449
 
447
450
  Les payloads détaillés, codes de réponse et schémas sont disponibles dans `http://<APP_BASE_URL>/api/docs` (OpenAPI).
448
451
 
449
452
  ---
450
453
 
454
+ ## Codes d’erreur (API)
455
+
456
+ L’API expose des erreurs HTTP standard. Selon le format (`Accept`), la réponse suit le schéma Problem Details/JSON
457
+ ou Hydra, mais les statuts restent identiques.
458
+
459
+ | HTTP | Cas principaux | Détails |
460
+ | ---: | --- | --- |
461
+ | 400 | Requête invalide, token invalide | `verify-email` (id manquant), reset/verify token invalide, invitation sans token (`details.token = INVALID_INVITATION`). |
462
+ | 401 | Non authentifié | `me`, JWT invalide/expiré, service token invalide, login refusé. |
463
+ | 403 | Accès refusé | Origin/Referer non autorisé, endpoints admin sans rôle. |
464
+ | 404 | Introuvable | Invitation inconnue, user introuvable, inscription désactivée. |
465
+ | 409 | Conflit | Email déjà utilisé, invitation déjà acceptée, bootstrap requis ou déjà fait. |
466
+ | 410 | Expiré | Invitation expirée, lien de vérification expiré, reset token expiré. |
467
+ | 422 | Validation | Email/mot de passe invalides, champs requis, `INVALID_ROLES`, confirmation mot de passe. |
468
+ | 423 | Verrouillé | Email non vérifié lors du login. |
469
+ | 429 | Rate limit | Login, register, invite, invite/complete, password/forgot/reset, setup/admin. |
470
+ | 500 | Erreur interne | Échec de reset password non géré (`ResetRequestFailedException`). |
471
+ | 503 | Service indisponible | Échec d’envoi d’email (`MailDispatchException`). |
472
+
473
+ Identifiants d’erreurs utiles dans les payloads/validations :
474
+ - `INVALID_INVITATION` (token manquant ou invalide lors du preview).
475
+ - `INVALID_ROLES` (payload de roles invalide).
476
+
477
+ ---
478
+
451
479
  ## Origin/Referer
452
480
 
453
481
  Tous les endpoints sensibles (login, register, reset, logout, setup, invitation) valident l’**Origin/Referer** :
@@ -710,7 +738,7 @@ cd core && vendor/bin/phpstan analyse -c phpstan.neon.dist
710
738
 
711
739
  #### Frontend (Angular/TypeScript)
712
740
 
713
- - **Angular 19+** : Standalone components, signals, inject()
741
+ - **Angular 21** : Standalone components, signals, inject()
714
742
  - **TypeScript strict mode** : Tous les flags stricts activés
715
743
  - **ESLint** : Configuration custom avec règles Angular
716
744
  - **Prefer inject()** : Utiliser `inject()` au lieu de constructor injection
@@ -736,19 +764,15 @@ Le projet maintient une qualité de code stricte :
736
764
 
737
765
  ## Tests & SDKs
738
766
 
739
- ### Tests end-to-end – `tests/e2e.sh`
767
+ ### Tests end-to-end (webfront)
740
768
 
741
- Un script Bash est fourni pour tester rapidement les principaux parcours (setup initial, login/logout, inscription + vérification d’email, reset password, invitation) :
769
+ Des tests Playwright sont disponibles dans `webfront/tests-e2e` :
742
770
 
743
771
  ```bash
744
- ./tests/e2e.sh
772
+ cd webfront
773
+ npm run test:e2e
745
774
  ```
746
775
 
747
- - Le script est interactif : il te demande la base URL, les emails/mots de passe à utiliser pour l’admin, l’utilisateur d’inscription et l’utilisateur invité.
748
- - À chaque étape nécessitant une action sur l’email (clic sur `/verify-email?...`, `/reset-password/confirm?token=...`, `/invite/complete?...`), il affiche un message du type :
749
- - `Attente de confirmation d’email… Ouvrez Maildev/Notifuse et cliquez sur le lien`, puis attend `ENTER`.
750
- - Il envoie les en-têtes `Origin` nécessaires à la validation Same Origin.
751
-
752
776
  ### Client JS – `@obsidiane/auth-client-js`
753
777
 
754
778
  * Consomme l’API (login, me, refresh, logout, register, reset password) depuis navigateur ou Node/SSR.
@@ -763,7 +787,8 @@ Un script Bash est fourni pour tester rapidement les principaux parcours (setup
763
787
 
764
788
  ## Bridge Meridiane
765
789
 
766
- Un bridge Angular peut être généré depuis la spec OpenAPI (API Platform) via le Makefile racine :
790
+ Un bridge Angular peut être généré depuis la spec OpenAPI (API Platform) via le Makefile racine.
791
+ Le core doit être lancé avec `API_DOCS_ENABLED=1` (spec sur `http://localhost:8000/api/docs.json`).
767
792
 
768
793
  ```bash
769
794
  make bridge
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@obsidiane/auth-client-js",
3
- "version": "1.0.6",
3
+ "version": "1.0.8",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.1.0",
6
6
  "@angular/core": "^20.1.0",