diff --git a/docs/API.md b/docs/API.md new file mode 100644 index 0000000..a218b81 --- /dev/null +++ b/docs/API.md @@ -0,0 +1,17 @@ +## API + +### Portée +- Contrats d’interface de la bibliothèque cliente pour l’échange de messages avec le serveur sdk-signer. + +### Contrats d’interface +- Types de messages: MessageType (écoute, token, processus, merkle, device, erreurs). +- Structure des messages client: ClientMessage (type, messageId, apiKey, champs dynamiques). +- Structure des réponses serveur: ServerResponse (type, messageId, error, champs dynamiques). +- Configuration du client: ClientConfig (url, apiKey, timeouts, reconnexion). +- Événements: ClientEvents (open, close, error, message, reconnect). + +### Erreurs et statuts +- Émissions d’erreurs lors d’échecs de connexion, timeouts de réponse, ou réponses serveur de type ERROR. + +### Versionnage et compatibilité +- Contrats versionnés via le package de la bibliothèque; compatibilité garantie par le respect des types exportés depuis src/types.ts. diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md new file mode 100644 index 0000000..834fd0f --- /dev/null +++ b/docs/ARCHITECTURE.md @@ -0,0 +1,24 @@ +## ARCHITECTURE + +### Contexte +- Bibliothèque cliente pour communiquer avec un serveur sdk-signer via WebSocket. +- Cible Node.js (utilise le module ws) et environnements compatibles WebSocket. + +### Composants +- src/index.ts: point d’entrée, réexport des types et de la classe principale. +- src/client.ts: implémentation de la classe SDKSignerClient (gestion WebSocket, reconnexion, envoi/réception, événements). +- src/types.ts: définitions des contrats (énumérations, structures des messages, configuration, événements, résultats). + +### Flux et dépendances +- Ouverture d’une connexion WebSocket -> authentification par clé API dans les messages -> échange de messages typés -> gestion des réponses corrélées par messageId -> callbacks d’événements. + +### Données et modèles +- Messages structurés par type (MessageType) et identifiant (messageId). +- Configuration client (url, apiKey, timeouts, politique de reconnexion). + +### Sécurité +- Transmission de la clé API par en-tête applicatif (champ apiKey dans les messages). +- Gestion d’erreurs et limitation des tentatives de reconnexion. + +### Observabilité +- Journalisation des connexions, déconnexions, erreurs et tentatives de reconnexion. diff --git a/docs/DEPLOYMENT.md b/docs/DEPLOYMENT.md new file mode 100644 index 0000000..19f5591 --- /dev/null +++ b/docs/DEPLOYMENT.md @@ -0,0 +1,2 @@ +## DEPLOYMENT + diff --git a/docs/USAGE.md b/docs/USAGE.md new file mode 100644 index 0000000..a80dd9d --- /dev/null +++ b/docs/USAGE.md @@ -0,0 +1,17 @@ +## USAGE + +### Prérequis +- Environnement Node.js avec support WebSocket. +- URL du serveur sdk-signer et clé API. + +### Initialisation +- Créer une instance du client avec ClientConfig (url, apiKey, timeouts optionnels). +- Écouter les événements utiles (open, message, error, close, reconnect). + +### Opérations courantes +- Établir une connexion, envoyer des messages typés et attendre des réponses corrélées par messageId. +- Utiliser sendAndWait pour attendre un type de réponse précis. + +### Dépannage +- Vérifier la connectivité réseau et la validité de l’apiKey. +- Limiter les tentatives de reconnexion et augmenter les timeouts si nécessaire.