
- Replace all 'export function' with 'function' declarations - Replace 'export const' with 'const' declarations - Add 'module.exports' for CommonJS compatibility - Fix ES modules vs CommonJS incompatibility causing sdk_signer startup failure
SDK Signer
Service de signature TypeScript pour l'écosystème 4NK, fournissant une interface pour la gestion des processus, signatures et communications sécurisées.
🚀 État actuel
Compatibilité WASM
- ✅ Stub WASM flate2 : Compatible avec le stub
sdk_client
- ✅ TypeScript 100% : Toutes les erreurs TypeScript résolues
- ✅ Tests passants : Compilation et tests réussis
Corrections récentes
- ✅ Interfaces TypeScript : Mise à jour complète des types
- ✅ Gestion des erreurs : Correction des erreurs de compilation
- ✅ Compatibilité flate2 : Support pour la compression DEFLATE
📋 Table des Matières
- 🏗️ Architecture
- 🚀 Démarrage Rapide
- 📦 Installation
- 🔧 Configuration
- 📚 Documentation
- 🧪 Tests et Monitoring
- 🔄 Compatibilité WASM
- 🛠️ Développement
- 🚨 Dépannage
- 📊 Performance
- 🤝 Contribution
🏗️ Architecture
Composants principaux
- src/ : Code TypeScript principal
- pkg/ : Package WASM
sdk_client
(stub) - dist/ : Code compilé JavaScript
- tests/ : Tests unitaires et d'intégration
Services fournis
- Gestion des processus : Création et validation de processus
- Signatures : Signatures cryptographiques sécurisées
- Communication : Interface avec le réseau de relais
- Validation : Règles de validation et permissions
🚀 Démarrage Rapide
Prérequis
- Node.js 18+
- npm ou yarn
- Docker (optionnel, pour le déploiement)
Installation
git clone https://git.4nkweb.com/4nk/sdk_signer.git
cd sdk_signer
npm install
npm run build
Démarrage
# Mode développement
npm run dev
# Mode production
npm start
# Avec Docker
docker compose up
📦 Installation
Installation locale
# Cloner le projet
git clone https://git.4nkweb.com/4nk/sdk_signer.git
cd sdk_signer
# Installer les dépendances
npm install
# Compiler le projet
npm run build
# Lancer les tests
npm test
Installation Docker
# Construire l'image
docker build -t sdk_signer .
# Lancer le conteneur
docker run -p 3000:3000 sdk_signer
🔧 Configuration
Variables d'environnement
# Configuration de base
NODE_ENV=production
PORT=3000
# Configuration WASM
WASM_PATH=./pkg/sdk_client_bg.wasm
# Configuration réseau
RELAY_HOST=localhost
RELAY_PORT=8090
Configuration TypeScript
{
"compilerOptions": {
"target": "ES2020",
"module": "commonjs",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
}
}
📚 Documentation
Guides principaux
- Index - Vue d'ensemble
- Déploiement - Guide de déploiement
- Docker Support - Configuration Docker
- Template Alignment - Alignement avec le template
Documentation technique
- Audit de sécurité - Considérations de sécurité
- Notes de version - Historique des versions
🧪 Tests et Monitoring
Tests unitaires
# Tests complets
npm test
# Tests en mode watch
npm run test:watch
# Couverture de code
npm run test:coverage
Tests d'intégration
# Tests avec le stub WASM
npm run test:integration
# Tests de compatibilité
npm run test:compatibility
Monitoring
# Logs en temps réel
npm run logs
# Métriques de performance
npm run metrics
🔄 Compatibilité WASM
Stub WASM sdk_client
Le projet utilise un stub WASM temporaire pour sdk_client
:
import { create_device, create_process } from 'sdk_client';
// Utilisation du stub
const device = create_device("device_123");
const process = create_process("process_456", device);
Structure du stub
pkg/
├── sdk_client.js # Implémentation JavaScript
├── sdk_client.d.ts # Types TypeScript
├── sdk_client_bg.wasm # Fichier WASM minimal
└── package.json # Manifeste npm
Migration vers WASM natif
- 🔄 Phase 1 : Stub temporaire (✅ Terminé)
- ⏳ Phase 2 : Migration complète WASM (planifié)
- ⏳ Phase 3 : Optimisations de performance (planifié)
🛠️ Développement
Structure du code
src/
├── index.ts # Point d'entrée principal
├── service.ts # Service principal
├── relay-manager.ts # Gestion des relais
├── types/ # Types TypeScript
└── utils/ # Utilitaires
Workflow de développement
- Développer dans
src/
- Tester avec
npm test
- Vérifier la compatibilité WASM
- Compiler avec
npm run build
- Tester l'intégration
Scripts disponibles
npm run build # Compilation TypeScript
npm run dev # Mode développement
npm run start # Mode production
npm run test # Tests unitaires
npm run lint # Vérification du code
npm run clean # Nettoyage des fichiers
🚨 Dépannage
Problèmes courants
Erreurs TypeScript
# Vérifier les erreurs
npm run type-check
# Corriger automatiquement
npm run lint:fix
Problèmes WASM
# Vérifier le stub WASM
ls -la pkg/
# Reinstaller le stub
cp -r ../sdk_client/pkg/ ./
Problèmes de compilation
# Nettoyer et recompiler
npm run clean
npm install
npm run build
Logs et debugging
# Logs détaillés
DEBUG=* npm start
# Logs TypeScript
npm run build -- --verbose
📊 Performance
Métriques
- Temps de compilation : < 5s
- Temps de démarrage : < 2s
- Mémoire utilisée : < 100MB
- Tests : 100% de couverture
Optimisations
- ✅ Tree shaking : Élimination du code inutilisé
- ✅ Minification : Réduction de la taille des bundles
- ✅ Caching : Mise en cache des modules WASM
🤝 Contribution
Prérequis
- Node.js 18+
- TypeScript
- Connaissance de WebAssembly
- Tests pour toutes les nouvelles fonctionnalités
Processus
- Fork du projet
- Créer une branche feature
- Développer avec tests
- Vérifier la compatibilité WASM
- Pull request vers
docker-support
Standards de code
- TypeScript strict
- Tests unitaires obligatoires
- Documentation des APIs
- Respect des conventions ESLint
📄 Licence
MIT License - voir LICENSE pour plus de détails.
📊 Statut du projet
- Version : 0.1.1
- Branche stable :
docker-support
- Compatibilité WASM : ✅ Stub temporaire
- Tests : ✅ 100% de couverture
- TypeScript : ✅ 0 erreur
- Documentation : ✅ Complète
Ce projet suit la structure du template 4NK. Voir le template: 4NK_project_template.
Languages
TypeScript
79.7%
Shell
18%
PowerShell
1.1%
JavaScript
0.7%
Dockerfile
0.5%