2025-09-04 13:18:26 +02:00
2025-09-04 13:18:26 +02:00
2025-08-06 17:03:54 +02:00
2025-08-06 17:03:54 +02:00
2025-07-25 16:48:13 +02:00

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

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

Documentation technique

🧪 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

  1. Développer dans src/
  2. Tester avec npm test
  3. Vérifier la compatibilité WASM
  4. Compiler avec npm run build
  5. 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

  1. Fork du projet
  2. Créer une branche feature
  3. Développer avec tests
  4. Vérifier la compatibilité WASM
  5. 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.

Description
No description provided
Readme MIT 814 KiB
Languages
TypeScript 79.7%
Shell 18%
PowerShell 1.1%
JavaScript 0.7%
Dockerfile 0.5%