sunuid-sdk 1.0.22 → 1.0.23

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.
@@ -256,6 +256,16 @@ function _toPropertyKey(t) {
256
256
  value: function initWebSocket() {
257
257
  var _this = this;
258
258
  try {
259
+ // Vérifier si Socket.IO est disponible
260
+ if (typeof io === 'undefined') {
261
+ console.warn('⚠️ Socket.IO non disponible, WebSocket sera initialisé plus tard');
262
+ // Réessayer après un délai
263
+ setTimeout(function () {
264
+ return _this.initWebSocket();
265
+ }, 1000);
266
+ return;
267
+ }
268
+
259
269
  // Obtenir l'IP du client (simulation)
260
270
  var ip = this.getClientIP();
261
271
 
@@ -353,6 +363,8 @@ function _toPropertyKey(t) {
353
363
  if (this.socket && this.socket.connected) {
354
364
  this.socket.emit(event, data);
355
365
  console.log("\uD83D\uDCE4 \xC9v\xE9nement WebSocket \xE9mis: ".concat(event), data);
366
+ } else if (typeof io === 'undefined') {
367
+ console.warn('⚠️ Socket.IO non disponible, impossible d\'émettre l\'événement:', event);
356
368
  } else {
357
369
  console.warn('⚠️ WebSocket non connecté, impossible d\'émettre l\'événement:', event);
358
370
  }
@@ -370,6 +382,18 @@ function _toPropertyKey(t) {
370
382
  return this.socket.connected ? 'connected' : 'disconnected';
371
383
  }
372
384
 
385
+ /**
386
+ * Forcer l'initialisation WebSocket (si Socket.IO devient disponible plus tard)
387
+ */
388
+ }, {
389
+ key: "forceWebSocketInit",
390
+ value: function forceWebSocketInit() {
391
+ if (typeof io !== 'undefined' && !this.socket) {
392
+ console.log('🔄 Forçage de l\'initialisation WebSocket...');
393
+ this.initWebSocket();
394
+ }
395
+ }
396
+
373
397
  /**
374
398
  * Générer un QR code avec le type configuré
375
399
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sunuid-sdk.esm.js","sources":["../src/sunuid-sdk.js"],"sourcesContent":["/**\n * SunuID SDK - Package d'intégration pour partenaires\n * \n * @version 1.0.0\n * @author SunuID Team\n * @license MIT\n */\n\n(function(window) {\n 'use strict';\n\n // Configuration par défaut\n const DEFAULT_CONFIG = {\n apiUrl: window.SunuIDConfig?.apiUrl || 'https://api.sunuid.fayma.sn',\n clientId: null,\n secretId: null,\n type: 1, // Type par défaut (1 = authentification)\n theme: 'light',\n language: 'fr',\n autoRefresh: true,\n refreshInterval: 30000, // 30 secondes\n onSuccess: null,\n onError: null,\n onStatusUpdate: null,\n onExpired: null\n };\n\n /**\n * Classe principale SunuID\n */\n class SunuID {\n constructor(config = {}) {\n this.config = { ...DEFAULT_CONFIG, ...config };\n this.qrCode = null;\n this.refreshTimer = null;\n this.isInitialized = false;\n this.socket = null;\n \n this.init();\n }\n\n /**\n * Initialisation du SDK\n */\n init() {\n if (!this.config.clientId || !this.config.secretId) {\n throw new Error('SunuID: clientId et secretId sont requis');\n }\n\n this.isInitialized = true;\n console.log('SunuID SDK initialisé avec succès');\n \n // Initialiser la connexion WebSocket\n this.initWebSocket();\n }\n\n /**\n * Initialiser la connexion WebSocket\n */\n initWebSocket() {\n try {\n // Obtenir l'IP du client (simulation)\n const ip = this.getClientIP();\n \n // Initialiser la connexion WebSocket si elle n'existe pas\n if (!this.socket) {\n this.socket = io('wss://samasocket.fayma.sn:9443', {\n query: {\n token: this.config.clientId,\n type: 'web',\n userId: this.config.clientId,\n username: ip\n }\n });\n\n // Gestion des événements WebSocket\n this.socket.on('connect', () => {\n console.log('🌐 WebSocket connecté avec succès');\n console.log('📊 Socket ID:', this.socket.id);\n });\n\n this.socket.on('disconnect', (reason) => {\n console.log('❌ WebSocket déconnecté:', reason);\n });\n\n this.socket.on('connect_error', (error) => {\n console.error('❌ Erreur connexion WebSocket:', error);\n });\n\n // Écouter les événements spécifiques\n this.socket.on('qr_status_update', (data) => {\n console.log('📱 Mise à jour statut QR reçue:', data);\n this.handleQRStatusUpdate(data);\n });\n\n this.socket.on('qr_scan_success', (data) => {\n console.log('✅ Scan QR réussi reçu:', data);\n this.handleQRScanSuccess(data);\n });\n\n this.socket.on('qr_expired', (data) => {\n console.log('⏰ QR expiré reçu:', data);\n this.handleQRExpired(data);\n });\n }\n } catch (error) {\n console.error('❌ Erreur initialisation WebSocket:', error);\n }\n }\n\n /**\n * Obtenir l'IP du client (simulation)\n */\n getClientIP() {\n // Simulation - en production, vous pourriez utiliser un service d'IP\n return '127.0.0.1';\n }\n\n /**\n * Gérer la mise à jour du statut QR\n */\n handleQRStatusUpdate(data) {\n if (this.config.onStatusUpdate) {\n this.config.onStatusUpdate(data);\n }\n }\n\n /**\n * Gérer le succès du scan QR\n */\n handleQRScanSuccess(data) {\n if (this.config.onSuccess) {\n this.config.onSuccess(data);\n }\n }\n\n /**\n * Gérer l'expiration du QR\n */\n handleQRExpired(data) {\n if (this.config.onExpired) {\n this.config.onExpired(data);\n }\n }\n\n /**\n * Émettre un événement WebSocket\n */\n emitWebSocketEvent(event, data) {\n if (this.socket && this.socket.connected) {\n this.socket.emit(event, data);\n console.log(`📤 Événement WebSocket émis: ${event}`, data);\n } else {\n console.warn('⚠️ WebSocket non connecté, impossible d\\'émettre l\\'événement:', event);\n }\n }\n\n /**\n * Obtenir le statut de la connexion WebSocket\n */\n getWebSocketStatus() {\n if (!this.socket) {\n return 'not_initialized';\n }\n return this.socket.connected ? 'connected' : 'disconnected';\n }\n\n /**\n * Générer un QR code avec le type configuré\n */\n async generateQR(containerId, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-generate', {\n type: this.config.type, // Utilise le type configuré\n ...options\n });\n\n if (response.success) {\n // Construire l'URL complète de l'image QR avec la base URL pour les images\n const imageBaseUrl = 'https://sunuid.fayma.sn';\n const qrImageUrl = `${imageBaseUrl}${response.data.qrcode}`;\n this.displayQRCode(containerId, qrImageUrl, this.config.type, options);\n this.startAutoRefresh(containerId, this.config.type, options);\n \n // Émettre un événement WebSocket pour la génération du QR\n this.emitWebSocketEvent('qr_generated', {\n serviceId: response.data.service_id,\n type: this.config.type,\n qrCodeUrl: qrImageUrl,\n timestamp: Date.now()\n });\n \n return {\n ...response.data,\n qrCodeUrl: qrImageUrl,\n sessionId: response.data.service_id\n };\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code');\n }\n } catch (error) {\n console.error('Erreur API détectée:', error.message);\n console.log('Affichage du message \"Service non disponible\" pour type ' + this.config.type);\n this.displayServiceUnavailable(containerId, this.config.type);\n throw new Error('Service non disponible');\n }\n }\n\n\n\n /**\n * Générer un QR code avec un type personnalisé\n */\n async generateCustomQR(containerId, type, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-generate', {\n type: type, // Type personnalisé (1, 2, 3, etc.)\n ...options\n });\n\n if (response.success) {\n // Construire l'URL complète de l'image QR avec la base URL pour les images\n const imageBaseUrl = 'https://sunuid.fayma.sn';\n const qrImageUrl = `${imageBaseUrl}${response.data.qrcode}`;\n this.displayQRCode(containerId, qrImageUrl, type, options);\n this.startAutoRefresh(containerId, type, options);\n return {\n ...response.data,\n qrCodeUrl: qrImageUrl,\n sessionId: response.data.service_id\n };\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code');\n }\n } catch (error) {\n console.error('Erreur API détectée:', error.message);\n console.log('Affichage du message \"Service non disponible\" pour type ' + type);\n this.displayServiceUnavailable(containerId, type);\n throw new Error('Service non disponible');\n }\n }\n\n // Alias pour maintenir la compatibilité\n async generateAuthQR(containerId, options = {}) {\n return this.generateQR(containerId, options);\n }\n\n async generateKYCQR(containerId, options = {}) {\n // Sauvegarder le type actuel\n const originalType = this.config.type;\n // Changer temporairement le type pour KYC\n this.config.type = 2;\n try {\n return await this.generateQR(containerId, options);\n } finally {\n // Restaurer le type original\n this.config.type = originalType;\n }\n }\n\n /**\n * Vérifier le statut d'un QR code\n */\n async checkQRStatus(sessionId) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-status', {\n serviceId: sessionId\n });\n\n if (response.success) {\n return response.data;\n } else {\n throw new Error(response.message || 'Erreur lors de la vérification du statut');\n }\n } catch (error) {\n this.handleError(error);\n throw error;\n }\n }\n\n /**\n * Afficher un QR code dans un conteneur\n */\n displayQRCode(containerId, qrUrl, type, options = {}) {\n const container = document.getElementById(containerId);\n if (!container) {\n throw new Error(`Conteneur avec l'ID \"${containerId}\" non trouvé`);\n }\n\n // Nettoyer le conteneur\n container.innerHTML = '';\n\n // Créer l'élément QR code\n const qrElement = document.createElement('div');\n qrElement.className = 'sunuid-qr-code';\n qrElement.innerHTML = `\n <div class=\"sunuid-qr-header\">\n <h3>${type === 1 ? 'Authentification' : type === 2 ? 'Vérification KYC' : type === 3 ? 'Service Type 3' : 'Service Type ' + type}</h3>\n </div>\n <div class=\"sunuid-qr-image\">\n <img src=\"${qrUrl}\" alt=\"QR Code SunuID\" style=\"max-width: 300px; height: auto;\">\n </div>\n <div class=\"sunuid-qr-instructions\">\n <p>Scannez ce QR code avec l'application SunuID pour vous connecter</p>\n </div>\n <div class=\"sunuid-qr-status\" id=\"sunuid-status\">\n <p>En attente de scan...</p>\n </div>\n `;\n\n container.appendChild(qrElement);\n\n // Appliquer le thème\n this.applyTheme(options.theme || this.config.theme);\n }\n\n /**\n * Afficher \"Service non disponible\"\n */\n displayServiceUnavailable(containerId, type) {\n console.log(`displayServiceUnavailable appelée pour ${containerId}, type: ${type}`);\n const container = document.getElementById(containerId);\n if (!container) {\n console.error(`Container ${containerId} non trouvé`);\n return;\n }\n\n container.innerHTML = `\n <div class=\"sunuid-service-unavailable\" style=\"\n text-align: center;\n padding: 40px 20px;\n background: #f8f9fa;\n border: 2px dashed #dee2e6;\n border-radius: 10px;\n color: #6c757d;\n font-family: Arial, sans-serif;\n \">\n <div style=\"font-size: 48px; margin-bottom: 20px;\">⚠️</div>\n <h3 style=\"margin: 0 0 10px 0; color: #495057;\">Service Non Disponible</h3>\n <p style=\"margin: 0; font-size: 14px;\">\n Le service d'authentification est temporairement indisponible.<br>\n Veuillez réessayer plus tard.\n </p>\n <div style=\"margin-top: 20px; font-size: 12px; color: #adb5bd;\">\n Type: ${type.toUpperCase()}\n </div>\n </div>\n `;\n }\n\n /**\n * Rafraîchir un QR code\n */\n async refreshQR(containerId, options = {}) {\n try {\n const result = await this.generateQR(containerId, options);\n return result;\n } catch (error) {\n console.error('Erreur lors du rafraîchissement:', error.message);\n this.displayServiceUnavailable(containerId, this.config.type);\n throw error;\n }\n }\n\n /**\n * Démarrer le rafraîchissement automatique\n */\n startAutoRefresh(containerId, type, options) {\n if (!this.config.autoRefresh) return;\n\n this.refreshTimer = setInterval(async () => {\n try {\n await this.refreshQR(containerId, type, options);\n } catch (error) {\n console.warn('Erreur lors du rafraîchissement automatique:', error);\n }\n }, this.config.refreshInterval);\n }\n\n /**\n * Démarrer le timer de compte à rebours\n */\n\n\n /**\n * Effectuer une requête API\n */\n async makeRequest(endpoint, data) {\n // Utiliser l'endpoint depuis la configuration si disponible\n const endpointPath = window.SunuIDConfig?.endpoints?.[endpoint.replace('/', '')] || endpoint;\n const url = `${this.config.apiUrl}${endpointPath}`;\n \n // Log pour déboguer l'envoi du type\n if (data.type !== undefined) {\n console.log(`🌐 Envoi requête API - Type: ${data.type}, Endpoint: ${endpoint}`);\n }\n \n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${this.config.clientId}:${this.config.secretId}`,\n 'Accept': 'application/json'\n },\n body: JSON.stringify({\n ...data,\n client_id: this.config.clientId,\n secret_id: this.config.secretId\n })\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n let errorData;\n try {\n errorData = JSON.parse(errorText);\n } catch (e) {\n errorData = { message: errorText };\n }\n \n throw new Error(errorData.message || `Erreur HTTP: ${response.status}`);\n }\n\n const result = await response.json();\n return result;\n } catch (error) {\n console.error('Erreur API SunuID:', error);\n throw error;\n }\n }\n\n /**\n * Appliquer le thème\n */\n applyTheme(theme) {\n const container = document.querySelector('.sunuid-qr-code');\n if (container) {\n container.className = `sunuid-qr-code sunuid-theme-${theme}`;\n }\n }\n\n /**\n * Gérer les erreurs\n */\n handleError(error) {\n console.error('SunuID SDK Error:', error);\n \n if (this.config.onError) {\n this.config.onError(error);\n }\n }\n\n /**\n * Nettoyer les ressources\n */\n destroy() {\n if (this.refreshTimer) {\n clearInterval(this.refreshTimer);\n }\n \n // Fermer la connexion WebSocket\n if (this.socket) {\n this.socket.disconnect();\n this.socket = null;\n console.log('🌐 WebSocket déconnecté');\n }\n \n this.isInitialized = false;\n console.log('SunuID SDK détruit');\n }\n }\n\n // Exposer la classe globalement\n window.SunuID = SunuID;\n window.sunuidInstance = null;\n\n // Fonction d'initialisation globale\n window.initSunuID = function(config) {\n try {\n window.sunuidInstance = new SunuID(config);\n return window.sunuidInstance;\n } catch (error) {\n console.error('Erreur lors de l\\'initialisation de SunuID:', error);\n throw error;\n }\n };\n\n})(window); "],"names":["window","_window$SunuIDConfig","DEFAULT_CONFIG","apiUrl","SunuIDConfig","clientId","secretId","type","theme","language","autoRefresh","refreshInterval","onSuccess","onError","onStatusUpdate","onExpired","SunuID","config","arguments","length","undefined","_classCallCheck","_objectSpread","qrCode","refreshTimer","isInitialized","socket","init","_createClass","key","value","Error","console","log","initWebSocket","_this","ip","getClientIP","io","query","token","userId","username","on","id","reason","error","data","handleQRStatusUpdate","handleQRScanSuccess","handleQRExpired","emitWebSocketEvent","event","connected","emit","concat","warn","getWebSocketStatus","_generateQR","_asyncToGenerator","_regenerator","m","_callee","containerId","options","response","imageBaseUrl","qrImageUrl","_args","_t","w","_context","p","n","makeRequest","v","success","qrcode","displayQRCode","startAutoRefresh","serviceId","service_id","qrCodeUrl","timestamp","Date","now","a","sessionId","message","displayServiceUnavailable","generateQR","_x","apply","_generateCustomQR","_callee2","_args2","_t2","_context2","generateCustomQR","_x2","_x3","_generateAuthQR","_callee3","_args3","_context3","generateAuthQR","_x4","_generateKYCQR","_callee4","originalType","_args4","_context4","f","generateKYCQR","_x5","_checkQRStatus","_callee5","_t3","_context5","handleError","checkQRStatus","_x6","qrUrl","container","document","getElementById","innerHTML","qrElement","createElement","className","appendChild","applyTheme","toUpperCase","_refreshQR","_callee6","result","_args6","_t4","_context6","refreshQR","_x7","_this2","setInterval","_callee7","_t5","_context7","_makeRequest","_callee8","endpoint","_window$SunuIDConfig2","endpointPath","url","errorText","errorData","_t6","_context8","endpoints","replace","fetch","method","headers","body","JSON","stringify","client_id","secret_id","ok","text","parse","e","status","json","_x8","_x9","querySelector","destroy","clearInterval","disconnect","sunuidInstance","initSunuID"],"mappings":"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"}
1
+ {"version":3,"file":"sunuid-sdk.esm.js","sources":["../src/sunuid-sdk.js"],"sourcesContent":["/**\n * SunuID SDK - Package d'intégration pour partenaires\n * \n * @version 1.0.0\n * @author SunuID Team\n * @license MIT\n */\n\n(function(window) {\n 'use strict';\n\n // Configuration par défaut\n const DEFAULT_CONFIG = {\n apiUrl: window.SunuIDConfig?.apiUrl || 'https://api.sunuid.fayma.sn',\n clientId: null,\n secretId: null,\n type: 1, // Type par défaut (1 = authentification)\n theme: 'light',\n language: 'fr',\n autoRefresh: true,\n refreshInterval: 30000, // 30 secondes\n onSuccess: null,\n onError: null,\n onStatusUpdate: null,\n onExpired: null\n };\n\n /**\n * Classe principale SunuID\n */\n class SunuID {\n constructor(config = {}) {\n this.config = { ...DEFAULT_CONFIG, ...config };\n this.qrCode = null;\n this.refreshTimer = null;\n this.isInitialized = false;\n this.socket = null;\n \n this.init();\n }\n\n /**\n * Initialisation du SDK\n */\n init() {\n if (!this.config.clientId || !this.config.secretId) {\n throw new Error('SunuID: clientId et secretId sont requis');\n }\n\n this.isInitialized = true;\n console.log('SunuID SDK initialisé avec succès');\n \n // Initialiser la connexion WebSocket\n this.initWebSocket();\n }\n\n /**\n * Initialiser la connexion WebSocket\n */\n initWebSocket() {\n try {\n // Vérifier si Socket.IO est disponible\n if (typeof io === 'undefined') {\n console.warn('⚠️ Socket.IO non disponible, WebSocket sera initialisé plus tard');\n // Réessayer après un délai\n setTimeout(() => this.initWebSocket(), 1000);\n return;\n }\n \n // Obtenir l'IP du client (simulation)\n const ip = this.getClientIP();\n \n // Initialiser la connexion WebSocket si elle n'existe pas\n if (!this.socket) {\n this.socket = io('wss://samasocket.fayma.sn:9443', {\n query: {\n token: this.config.clientId,\n type: 'web',\n userId: this.config.clientId,\n username: ip\n }\n });\n\n // Gestion des événements WebSocket\n this.socket.on('connect', () => {\n console.log('🌐 WebSocket connecté avec succès');\n console.log('📊 Socket ID:', this.socket.id);\n });\n\n this.socket.on('disconnect', (reason) => {\n console.log('❌ WebSocket déconnecté:', reason);\n });\n\n this.socket.on('connect_error', (error) => {\n console.error('❌ Erreur connexion WebSocket:', error);\n });\n\n // Écouter les événements spécifiques\n this.socket.on('qr_status_update', (data) => {\n console.log('📱 Mise à jour statut QR reçue:', data);\n this.handleQRStatusUpdate(data);\n });\n\n this.socket.on('qr_scan_success', (data) => {\n console.log('✅ Scan QR réussi reçu:', data);\n this.handleQRScanSuccess(data);\n });\n\n this.socket.on('qr_expired', (data) => {\n console.log('⏰ QR expiré reçu:', data);\n this.handleQRExpired(data);\n });\n }\n } catch (error) {\n console.error('❌ Erreur initialisation WebSocket:', error);\n }\n }\n\n /**\n * Obtenir l'IP du client (simulation)\n */\n getClientIP() {\n // Simulation - en production, vous pourriez utiliser un service d'IP\n return '127.0.0.1';\n }\n\n /**\n * Gérer la mise à jour du statut QR\n */\n handleQRStatusUpdate(data) {\n if (this.config.onStatusUpdate) {\n this.config.onStatusUpdate(data);\n }\n }\n\n /**\n * Gérer le succès du scan QR\n */\n handleQRScanSuccess(data) {\n if (this.config.onSuccess) {\n this.config.onSuccess(data);\n }\n }\n\n /**\n * Gérer l'expiration du QR\n */\n handleQRExpired(data) {\n if (this.config.onExpired) {\n this.config.onExpired(data);\n }\n }\n\n /**\n * Émettre un événement WebSocket\n */\n emitWebSocketEvent(event, data) {\n if (this.socket && this.socket.connected) {\n this.socket.emit(event, data);\n console.log(`📤 Événement WebSocket émis: ${event}`, data);\n } else if (typeof io === 'undefined') {\n console.warn('⚠️ Socket.IO non disponible, impossible d\\'émettre l\\'événement:', event);\n } else {\n console.warn('⚠️ WebSocket non connecté, impossible d\\'émettre l\\'événement:', event);\n }\n }\n\n /**\n * Obtenir le statut de la connexion WebSocket\n */\n getWebSocketStatus() {\n if (!this.socket) {\n return 'not_initialized';\n }\n return this.socket.connected ? 'connected' : 'disconnected';\n }\n\n /**\n * Forcer l'initialisation WebSocket (si Socket.IO devient disponible plus tard)\n */\n forceWebSocketInit() {\n if (typeof io !== 'undefined' && !this.socket) {\n console.log('🔄 Forçage de l\\'initialisation WebSocket...');\n this.initWebSocket();\n }\n }\n\n /**\n * Générer un QR code avec le type configuré\n */\n async generateQR(containerId, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-generate', {\n type: this.config.type, // Utilise le type configuré\n ...options\n });\n\n if (response.success) {\n // Construire l'URL complète de l'image QR avec la base URL pour les images\n const imageBaseUrl = 'https://sunuid.fayma.sn';\n const qrImageUrl = `${imageBaseUrl}${response.data.qrcode}`;\n this.displayQRCode(containerId, qrImageUrl, this.config.type, options);\n this.startAutoRefresh(containerId, this.config.type, options);\n \n // Émettre un événement WebSocket pour la génération du QR\n this.emitWebSocketEvent('qr_generated', {\n serviceId: response.data.service_id,\n type: this.config.type,\n qrCodeUrl: qrImageUrl,\n timestamp: Date.now()\n });\n \n return {\n ...response.data,\n qrCodeUrl: qrImageUrl,\n sessionId: response.data.service_id\n };\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code');\n }\n } catch (error) {\n console.error('Erreur API détectée:', error.message);\n console.log('Affichage du message \"Service non disponible\" pour type ' + this.config.type);\n this.displayServiceUnavailable(containerId, this.config.type);\n throw new Error('Service non disponible');\n }\n }\n\n\n\n /**\n * Générer un QR code avec un type personnalisé\n */\n async generateCustomQR(containerId, type, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-generate', {\n type: type, // Type personnalisé (1, 2, 3, etc.)\n ...options\n });\n\n if (response.success) {\n // Construire l'URL complète de l'image QR avec la base URL pour les images\n const imageBaseUrl = 'https://sunuid.fayma.sn';\n const qrImageUrl = `${imageBaseUrl}${response.data.qrcode}`;\n this.displayQRCode(containerId, qrImageUrl, type, options);\n this.startAutoRefresh(containerId, type, options);\n return {\n ...response.data,\n qrCodeUrl: qrImageUrl,\n sessionId: response.data.service_id\n };\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code');\n }\n } catch (error) {\n console.error('Erreur API détectée:', error.message);\n console.log('Affichage du message \"Service non disponible\" pour type ' + type);\n this.displayServiceUnavailable(containerId, type);\n throw new Error('Service non disponible');\n }\n }\n\n // Alias pour maintenir la compatibilité\n async generateAuthQR(containerId, options = {}) {\n return this.generateQR(containerId, options);\n }\n\n async generateKYCQR(containerId, options = {}) {\n // Sauvegarder le type actuel\n const originalType = this.config.type;\n // Changer temporairement le type pour KYC\n this.config.type = 2;\n try {\n return await this.generateQR(containerId, options);\n } finally {\n // Restaurer le type original\n this.config.type = originalType;\n }\n }\n\n /**\n * Vérifier le statut d'un QR code\n */\n async checkQRStatus(sessionId) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-status', {\n serviceId: sessionId\n });\n\n if (response.success) {\n return response.data;\n } else {\n throw new Error(response.message || 'Erreur lors de la vérification du statut');\n }\n } catch (error) {\n this.handleError(error);\n throw error;\n }\n }\n\n /**\n * Afficher un QR code dans un conteneur\n */\n displayQRCode(containerId, qrUrl, type, options = {}) {\n const container = document.getElementById(containerId);\n if (!container) {\n throw new Error(`Conteneur avec l'ID \"${containerId}\" non trouvé`);\n }\n\n // Nettoyer le conteneur\n container.innerHTML = '';\n\n // Créer l'élément QR code\n const qrElement = document.createElement('div');\n qrElement.className = 'sunuid-qr-code';\n qrElement.innerHTML = `\n <div class=\"sunuid-qr-header\">\n <h3>${type === 1 ? 'Authentification' : type === 2 ? 'Vérification KYC' : type === 3 ? 'Service Type 3' : 'Service Type ' + type}</h3>\n </div>\n <div class=\"sunuid-qr-image\">\n <img src=\"${qrUrl}\" alt=\"QR Code SunuID\" style=\"max-width: 300px; height: auto;\">\n </div>\n <div class=\"sunuid-qr-instructions\">\n <p>Scannez ce QR code avec l'application SunuID pour vous connecter</p>\n </div>\n <div class=\"sunuid-qr-status\" id=\"sunuid-status\">\n <p>En attente de scan...</p>\n </div>\n `;\n\n container.appendChild(qrElement);\n\n // Appliquer le thème\n this.applyTheme(options.theme || this.config.theme);\n }\n\n /**\n * Afficher \"Service non disponible\"\n */\n displayServiceUnavailable(containerId, type) {\n console.log(`displayServiceUnavailable appelée pour ${containerId}, type: ${type}`);\n const container = document.getElementById(containerId);\n if (!container) {\n console.error(`Container ${containerId} non trouvé`);\n return;\n }\n\n container.innerHTML = `\n <div class=\"sunuid-service-unavailable\" style=\"\n text-align: center;\n padding: 40px 20px;\n background: #f8f9fa;\n border: 2px dashed #dee2e6;\n border-radius: 10px;\n color: #6c757d;\n font-family: Arial, sans-serif;\n \">\n <div style=\"font-size: 48px; margin-bottom: 20px;\">⚠️</div>\n <h3 style=\"margin: 0 0 10px 0; color: #495057;\">Service Non Disponible</h3>\n <p style=\"margin: 0; font-size: 14px;\">\n Le service d'authentification est temporairement indisponible.<br>\n Veuillez réessayer plus tard.\n </p>\n <div style=\"margin-top: 20px; font-size: 12px; color: #adb5bd;\">\n Type: ${type.toUpperCase()}\n </div>\n </div>\n `;\n }\n\n /**\n * Rafraîchir un QR code\n */\n async refreshQR(containerId, options = {}) {\n try {\n const result = await this.generateQR(containerId, options);\n return result;\n } catch (error) {\n console.error('Erreur lors du rafraîchissement:', error.message);\n this.displayServiceUnavailable(containerId, this.config.type);\n throw error;\n }\n }\n\n /**\n * Démarrer le rafraîchissement automatique\n */\n startAutoRefresh(containerId, type, options) {\n if (!this.config.autoRefresh) return;\n\n this.refreshTimer = setInterval(async () => {\n try {\n await this.refreshQR(containerId, type, options);\n } catch (error) {\n console.warn('Erreur lors du rafraîchissement automatique:', error);\n }\n }, this.config.refreshInterval);\n }\n\n /**\n * Démarrer le timer de compte à rebours\n */\n\n\n /**\n * Effectuer une requête API\n */\n async makeRequest(endpoint, data) {\n // Utiliser l'endpoint depuis la configuration si disponible\n const endpointPath = window.SunuIDConfig?.endpoints?.[endpoint.replace('/', '')] || endpoint;\n const url = `${this.config.apiUrl}${endpointPath}`;\n \n // Log pour déboguer l'envoi du type\n if (data.type !== undefined) {\n console.log(`🌐 Envoi requête API - Type: ${data.type}, Endpoint: ${endpoint}`);\n }\n \n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${this.config.clientId}:${this.config.secretId}`,\n 'Accept': 'application/json'\n },\n body: JSON.stringify({\n ...data,\n client_id: this.config.clientId,\n secret_id: this.config.secretId\n })\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n let errorData;\n try {\n errorData = JSON.parse(errorText);\n } catch (e) {\n errorData = { message: errorText };\n }\n \n throw new Error(errorData.message || `Erreur HTTP: ${response.status}`);\n }\n\n const result = await response.json();\n return result;\n } catch (error) {\n console.error('Erreur API SunuID:', error);\n throw error;\n }\n }\n\n /**\n * Appliquer le thème\n */\n applyTheme(theme) {\n const container = document.querySelector('.sunuid-qr-code');\n if (container) {\n container.className = `sunuid-qr-code sunuid-theme-${theme}`;\n }\n }\n\n /**\n * Gérer les erreurs\n */\n handleError(error) {\n console.error('SunuID SDK Error:', error);\n \n if (this.config.onError) {\n this.config.onError(error);\n }\n }\n\n /**\n * Nettoyer les ressources\n */\n destroy() {\n if (this.refreshTimer) {\n clearInterval(this.refreshTimer);\n }\n \n // Fermer la connexion WebSocket\n if (this.socket) {\n this.socket.disconnect();\n this.socket = null;\n console.log('🌐 WebSocket déconnecté');\n }\n \n this.isInitialized = false;\n console.log('SunuID SDK détruit');\n }\n }\n\n // Exposer la classe globalement\n window.SunuID = SunuID;\n window.sunuidInstance = null;\n\n // Fonction d'initialisation globale\n window.initSunuID = function(config) {\n try {\n window.sunuidInstance = new SunuID(config);\n return window.sunuidInstance;\n } catch (error) {\n console.error('Erreur lors de l\\'initialisation de SunuID:', error);\n throw error;\n }\n };\n\n})(window); "],"names":["window","_window$SunuIDConfig","DEFAULT_CONFIG","apiUrl","SunuIDConfig","clientId","secretId","type","theme","language","autoRefresh","refreshInterval","onSuccess","onError","onStatusUpdate","onExpired","SunuID","config","arguments","length","undefined","_classCallCheck","_objectSpread","qrCode","refreshTimer","isInitialized","socket","init","_createClass","key","value","Error","console","log","initWebSocket","_this","io","warn","setTimeout","ip","getClientIP","query","token","userId","username","on","id","reason","error","data","handleQRStatusUpdate","handleQRScanSuccess","handleQRExpired","emitWebSocketEvent","event","connected","emit","concat","getWebSocketStatus","forceWebSocketInit","_generateQR","_asyncToGenerator","_regenerator","m","_callee","containerId","options","response","imageBaseUrl","qrImageUrl","_args","_t","w","_context","p","n","makeRequest","v","success","qrcode","displayQRCode","startAutoRefresh","serviceId","service_id","qrCodeUrl","timestamp","Date","now","a","sessionId","message","displayServiceUnavailable","generateQR","_x","apply","_generateCustomQR","_callee2","_args2","_t2","_context2","generateCustomQR","_x2","_x3","_generateAuthQR","_callee3","_args3","_context3","generateAuthQR","_x4","_generateKYCQR","_callee4","originalType","_args4","_context4","f","generateKYCQR","_x5","_checkQRStatus","_callee5","_t3","_context5","handleError","checkQRStatus","_x6","qrUrl","container","document","getElementById","innerHTML","qrElement","createElement","className","appendChild","applyTheme","toUpperCase","_refreshQR","_callee6","result","_args6","_t4","_context6","refreshQR","_x7","_this2","setInterval","_callee7","_t5","_context7","_makeRequest","_callee8","endpoint","_window$SunuIDConfig2","endpointPath","url","errorText","errorData","_t6","_context8","endpoints","replace","fetch","method","headers","body","JSON","stringify","client_id","secret_id","ok","text","parse","e","status","json","_x8","_x9","querySelector","destroy","clearInterval","disconnect","sunuidInstance","initSunuID"],"mappings":"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"}
@@ -259,6 +259,16 @@
259
259
  value: function initWebSocket() {
260
260
  var _this = this;
261
261
  try {
262
+ // Vérifier si Socket.IO est disponible
263
+ if (typeof io === 'undefined') {
264
+ console.warn('⚠️ Socket.IO non disponible, WebSocket sera initialisé plus tard');
265
+ // Réessayer après un délai
266
+ setTimeout(function () {
267
+ return _this.initWebSocket();
268
+ }, 1000);
269
+ return;
270
+ }
271
+
262
272
  // Obtenir l'IP du client (simulation)
263
273
  var ip = this.getClientIP();
264
274
 
@@ -356,6 +366,8 @@
356
366
  if (this.socket && this.socket.connected) {
357
367
  this.socket.emit(event, data);
358
368
  console.log("\uD83D\uDCE4 \xC9v\xE9nement WebSocket \xE9mis: ".concat(event), data);
369
+ } else if (typeof io === 'undefined') {
370
+ console.warn('⚠️ Socket.IO non disponible, impossible d\'émettre l\'événement:', event);
359
371
  } else {
360
372
  console.warn('⚠️ WebSocket non connecté, impossible d\'émettre l\'événement:', event);
361
373
  }
@@ -373,6 +385,18 @@
373
385
  return this.socket.connected ? 'connected' : 'disconnected';
374
386
  }
375
387
 
388
+ /**
389
+ * Forcer l'initialisation WebSocket (si Socket.IO devient disponible plus tard)
390
+ */
391
+ }, {
392
+ key: "forceWebSocketInit",
393
+ value: function forceWebSocketInit() {
394
+ if (typeof io !== 'undefined' && !this.socket) {
395
+ console.log('🔄 Forçage de l\'initialisation WebSocket...');
396
+ this.initWebSocket();
397
+ }
398
+ }
399
+
376
400
  /**
377
401
  * Générer un QR code avec le type configuré
378
402
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sunuid-sdk.js","sources":["../src/sunuid-sdk.js"],"sourcesContent":["/**\n * SunuID SDK - Package d'intégration pour partenaires\n * \n * @version 1.0.0\n * @author SunuID Team\n * @license MIT\n */\n\n(function(window) {\n 'use strict';\n\n // Configuration par défaut\n const DEFAULT_CONFIG = {\n apiUrl: window.SunuIDConfig?.apiUrl || 'https://api.sunuid.fayma.sn',\n clientId: null,\n secretId: null,\n type: 1, // Type par défaut (1 = authentification)\n theme: 'light',\n language: 'fr',\n autoRefresh: true,\n refreshInterval: 30000, // 30 secondes\n onSuccess: null,\n onError: null,\n onStatusUpdate: null,\n onExpired: null\n };\n\n /**\n * Classe principale SunuID\n */\n class SunuID {\n constructor(config = {}) {\n this.config = { ...DEFAULT_CONFIG, ...config };\n this.qrCode = null;\n this.refreshTimer = null;\n this.isInitialized = false;\n this.socket = null;\n \n this.init();\n }\n\n /**\n * Initialisation du SDK\n */\n init() {\n if (!this.config.clientId || !this.config.secretId) {\n throw new Error('SunuID: clientId et secretId sont requis');\n }\n\n this.isInitialized = true;\n console.log('SunuID SDK initialisé avec succès');\n \n // Initialiser la connexion WebSocket\n this.initWebSocket();\n }\n\n /**\n * Initialiser la connexion WebSocket\n */\n initWebSocket() {\n try {\n // Obtenir l'IP du client (simulation)\n const ip = this.getClientIP();\n \n // Initialiser la connexion WebSocket si elle n'existe pas\n if (!this.socket) {\n this.socket = io('wss://samasocket.fayma.sn:9443', {\n query: {\n token: this.config.clientId,\n type: 'web',\n userId: this.config.clientId,\n username: ip\n }\n });\n\n // Gestion des événements WebSocket\n this.socket.on('connect', () => {\n console.log('🌐 WebSocket connecté avec succès');\n console.log('📊 Socket ID:', this.socket.id);\n });\n\n this.socket.on('disconnect', (reason) => {\n console.log('❌ WebSocket déconnecté:', reason);\n });\n\n this.socket.on('connect_error', (error) => {\n console.error('❌ Erreur connexion WebSocket:', error);\n });\n\n // Écouter les événements spécifiques\n this.socket.on('qr_status_update', (data) => {\n console.log('📱 Mise à jour statut QR reçue:', data);\n this.handleQRStatusUpdate(data);\n });\n\n this.socket.on('qr_scan_success', (data) => {\n console.log('✅ Scan QR réussi reçu:', data);\n this.handleQRScanSuccess(data);\n });\n\n this.socket.on('qr_expired', (data) => {\n console.log('⏰ QR expiré reçu:', data);\n this.handleQRExpired(data);\n });\n }\n } catch (error) {\n console.error('❌ Erreur initialisation WebSocket:', error);\n }\n }\n\n /**\n * Obtenir l'IP du client (simulation)\n */\n getClientIP() {\n // Simulation - en production, vous pourriez utiliser un service d'IP\n return '127.0.0.1';\n }\n\n /**\n * Gérer la mise à jour du statut QR\n */\n handleQRStatusUpdate(data) {\n if (this.config.onStatusUpdate) {\n this.config.onStatusUpdate(data);\n }\n }\n\n /**\n * Gérer le succès du scan QR\n */\n handleQRScanSuccess(data) {\n if (this.config.onSuccess) {\n this.config.onSuccess(data);\n }\n }\n\n /**\n * Gérer l'expiration du QR\n */\n handleQRExpired(data) {\n if (this.config.onExpired) {\n this.config.onExpired(data);\n }\n }\n\n /**\n * Émettre un événement WebSocket\n */\n emitWebSocketEvent(event, data) {\n if (this.socket && this.socket.connected) {\n this.socket.emit(event, data);\n console.log(`📤 Événement WebSocket émis: ${event}`, data);\n } else {\n console.warn('⚠️ WebSocket non connecté, impossible d\\'émettre l\\'événement:', event);\n }\n }\n\n /**\n * Obtenir le statut de la connexion WebSocket\n */\n getWebSocketStatus() {\n if (!this.socket) {\n return 'not_initialized';\n }\n return this.socket.connected ? 'connected' : 'disconnected';\n }\n\n /**\n * Générer un QR code avec le type configuré\n */\n async generateQR(containerId, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-generate', {\n type: this.config.type, // Utilise le type configuré\n ...options\n });\n\n if (response.success) {\n // Construire l'URL complète de l'image QR avec la base URL pour les images\n const imageBaseUrl = 'https://sunuid.fayma.sn';\n const qrImageUrl = `${imageBaseUrl}${response.data.qrcode}`;\n this.displayQRCode(containerId, qrImageUrl, this.config.type, options);\n this.startAutoRefresh(containerId, this.config.type, options);\n \n // Émettre un événement WebSocket pour la génération du QR\n this.emitWebSocketEvent('qr_generated', {\n serviceId: response.data.service_id,\n type: this.config.type,\n qrCodeUrl: qrImageUrl,\n timestamp: Date.now()\n });\n \n return {\n ...response.data,\n qrCodeUrl: qrImageUrl,\n sessionId: response.data.service_id\n };\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code');\n }\n } catch (error) {\n console.error('Erreur API détectée:', error.message);\n console.log('Affichage du message \"Service non disponible\" pour type ' + this.config.type);\n this.displayServiceUnavailable(containerId, this.config.type);\n throw new Error('Service non disponible');\n }\n }\n\n\n\n /**\n * Générer un QR code avec un type personnalisé\n */\n async generateCustomQR(containerId, type, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-generate', {\n type: type, // Type personnalisé (1, 2, 3, etc.)\n ...options\n });\n\n if (response.success) {\n // Construire l'URL complète de l'image QR avec la base URL pour les images\n const imageBaseUrl = 'https://sunuid.fayma.sn';\n const qrImageUrl = `${imageBaseUrl}${response.data.qrcode}`;\n this.displayQRCode(containerId, qrImageUrl, type, options);\n this.startAutoRefresh(containerId, type, options);\n return {\n ...response.data,\n qrCodeUrl: qrImageUrl,\n sessionId: response.data.service_id\n };\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code');\n }\n } catch (error) {\n console.error('Erreur API détectée:', error.message);\n console.log('Affichage du message \"Service non disponible\" pour type ' + type);\n this.displayServiceUnavailable(containerId, type);\n throw new Error('Service non disponible');\n }\n }\n\n // Alias pour maintenir la compatibilité\n async generateAuthQR(containerId, options = {}) {\n return this.generateQR(containerId, options);\n }\n\n async generateKYCQR(containerId, options = {}) {\n // Sauvegarder le type actuel\n const originalType = this.config.type;\n // Changer temporairement le type pour KYC\n this.config.type = 2;\n try {\n return await this.generateQR(containerId, options);\n } finally {\n // Restaurer le type original\n this.config.type = originalType;\n }\n }\n\n /**\n * Vérifier le statut d'un QR code\n */\n async checkQRStatus(sessionId) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-status', {\n serviceId: sessionId\n });\n\n if (response.success) {\n return response.data;\n } else {\n throw new Error(response.message || 'Erreur lors de la vérification du statut');\n }\n } catch (error) {\n this.handleError(error);\n throw error;\n }\n }\n\n /**\n * Afficher un QR code dans un conteneur\n */\n displayQRCode(containerId, qrUrl, type, options = {}) {\n const container = document.getElementById(containerId);\n if (!container) {\n throw new Error(`Conteneur avec l'ID \"${containerId}\" non trouvé`);\n }\n\n // Nettoyer le conteneur\n container.innerHTML = '';\n\n // Créer l'élément QR code\n const qrElement = document.createElement('div');\n qrElement.className = 'sunuid-qr-code';\n qrElement.innerHTML = `\n <div class=\"sunuid-qr-header\">\n <h3>${type === 1 ? 'Authentification' : type === 2 ? 'Vérification KYC' : type === 3 ? 'Service Type 3' : 'Service Type ' + type}</h3>\n </div>\n <div class=\"sunuid-qr-image\">\n <img src=\"${qrUrl}\" alt=\"QR Code SunuID\" style=\"max-width: 300px; height: auto;\">\n </div>\n <div class=\"sunuid-qr-instructions\">\n <p>Scannez ce QR code avec l'application SunuID pour vous connecter</p>\n </div>\n <div class=\"sunuid-qr-status\" id=\"sunuid-status\">\n <p>En attente de scan...</p>\n </div>\n `;\n\n container.appendChild(qrElement);\n\n // Appliquer le thème\n this.applyTheme(options.theme || this.config.theme);\n }\n\n /**\n * Afficher \"Service non disponible\"\n */\n displayServiceUnavailable(containerId, type) {\n console.log(`displayServiceUnavailable appelée pour ${containerId}, type: ${type}`);\n const container = document.getElementById(containerId);\n if (!container) {\n console.error(`Container ${containerId} non trouvé`);\n return;\n }\n\n container.innerHTML = `\n <div class=\"sunuid-service-unavailable\" style=\"\n text-align: center;\n padding: 40px 20px;\n background: #f8f9fa;\n border: 2px dashed #dee2e6;\n border-radius: 10px;\n color: #6c757d;\n font-family: Arial, sans-serif;\n \">\n <div style=\"font-size: 48px; margin-bottom: 20px;\">⚠️</div>\n <h3 style=\"margin: 0 0 10px 0; color: #495057;\">Service Non Disponible</h3>\n <p style=\"margin: 0; font-size: 14px;\">\n Le service d'authentification est temporairement indisponible.<br>\n Veuillez réessayer plus tard.\n </p>\n <div style=\"margin-top: 20px; font-size: 12px; color: #adb5bd;\">\n Type: ${type.toUpperCase()}\n </div>\n </div>\n `;\n }\n\n /**\n * Rafraîchir un QR code\n */\n async refreshQR(containerId, options = {}) {\n try {\n const result = await this.generateQR(containerId, options);\n return result;\n } catch (error) {\n console.error('Erreur lors du rafraîchissement:', error.message);\n this.displayServiceUnavailable(containerId, this.config.type);\n throw error;\n }\n }\n\n /**\n * Démarrer le rafraîchissement automatique\n */\n startAutoRefresh(containerId, type, options) {\n if (!this.config.autoRefresh) return;\n\n this.refreshTimer = setInterval(async () => {\n try {\n await this.refreshQR(containerId, type, options);\n } catch (error) {\n console.warn('Erreur lors du rafraîchissement automatique:', error);\n }\n }, this.config.refreshInterval);\n }\n\n /**\n * Démarrer le timer de compte à rebours\n */\n\n\n /**\n * Effectuer une requête API\n */\n async makeRequest(endpoint, data) {\n // Utiliser l'endpoint depuis la configuration si disponible\n const endpointPath = window.SunuIDConfig?.endpoints?.[endpoint.replace('/', '')] || endpoint;\n const url = `${this.config.apiUrl}${endpointPath}`;\n \n // Log pour déboguer l'envoi du type\n if (data.type !== undefined) {\n console.log(`🌐 Envoi requête API - Type: ${data.type}, Endpoint: ${endpoint}`);\n }\n \n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${this.config.clientId}:${this.config.secretId}`,\n 'Accept': 'application/json'\n },\n body: JSON.stringify({\n ...data,\n client_id: this.config.clientId,\n secret_id: this.config.secretId\n })\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n let errorData;\n try {\n errorData = JSON.parse(errorText);\n } catch (e) {\n errorData = { message: errorText };\n }\n \n throw new Error(errorData.message || `Erreur HTTP: ${response.status}`);\n }\n\n const result = await response.json();\n return result;\n } catch (error) {\n console.error('Erreur API SunuID:', error);\n throw error;\n }\n }\n\n /**\n * Appliquer le thème\n */\n applyTheme(theme) {\n const container = document.querySelector('.sunuid-qr-code');\n if (container) {\n container.className = `sunuid-qr-code sunuid-theme-${theme}`;\n }\n }\n\n /**\n * Gérer les erreurs\n */\n handleError(error) {\n console.error('SunuID SDK Error:', error);\n \n if (this.config.onError) {\n this.config.onError(error);\n }\n }\n\n /**\n * Nettoyer les ressources\n */\n destroy() {\n if (this.refreshTimer) {\n clearInterval(this.refreshTimer);\n }\n \n // Fermer la connexion WebSocket\n if (this.socket) {\n this.socket.disconnect();\n this.socket = null;\n console.log('🌐 WebSocket déconnecté');\n }\n \n this.isInitialized = false;\n console.log('SunuID SDK détruit');\n }\n }\n\n // Exposer la classe globalement\n window.SunuID = SunuID;\n window.sunuidInstance = null;\n\n // Fonction d'initialisation globale\n window.initSunuID = function(config) {\n try {\n window.sunuidInstance = new SunuID(config);\n return window.sunuidInstance;\n } catch (error) {\n console.error('Erreur lors de l\\'initialisation de SunuID:', error);\n throw error;\n }\n };\n\n})(window); "],"names":["window","_window$SunuIDConfig","DEFAULT_CONFIG","apiUrl","SunuIDConfig","clientId","secretId","type","theme","language","autoRefresh","refreshInterval","onSuccess","onError","onStatusUpdate","onExpired","SunuID","config","arguments","length","undefined","_classCallCheck","_objectSpread","qrCode","refreshTimer","isInitialized","socket","init","_createClass","key","value","Error","console","log","initWebSocket","_this","ip","getClientIP","io","query","token","userId","username","on","id","reason","error","data","handleQRStatusUpdate","handleQRScanSuccess","handleQRExpired","emitWebSocketEvent","event","connected","emit","concat","warn","getWebSocketStatus","_generateQR","_asyncToGenerator","_regenerator","m","_callee","containerId","options","response","imageBaseUrl","qrImageUrl","_args","_t","w","_context","p","n","makeRequest","v","success","qrcode","displayQRCode","startAutoRefresh","serviceId","service_id","qrCodeUrl","timestamp","Date","now","a","sessionId","message","displayServiceUnavailable","generateQR","_x","apply","_generateCustomQR","_callee2","_args2","_t2","_context2","generateCustomQR","_x2","_x3","_generateAuthQR","_callee3","_args3","_context3","generateAuthQR","_x4","_generateKYCQR","_callee4","originalType","_args4","_context4","f","generateKYCQR","_x5","_checkQRStatus","_callee5","_t3","_context5","handleError","checkQRStatus","_x6","qrUrl","container","document","getElementById","innerHTML","qrElement","createElement","className","appendChild","applyTheme","toUpperCase","_refreshQR","_callee6","result","_args6","_t4","_context6","refreshQR","_x7","_this2","setInterval","_callee7","_t5","_context7","_makeRequest","_callee8","endpoint","_window$SunuIDConfig2","endpointPath","url","errorText","errorData","_t6","_context8","endpoints","replace","fetch","method","headers","body","JSON","stringify","client_id","secret_id","ok","text","parse","e","status","json","_x8","_x9","querySelector","destroy","clearInterval","disconnect","sunuidInstance","initSunuID"],"mappings":"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"}
1
+ {"version":3,"file":"sunuid-sdk.js","sources":["../src/sunuid-sdk.js"],"sourcesContent":["/**\n * SunuID SDK - Package d'intégration pour partenaires\n * \n * @version 1.0.0\n * @author SunuID Team\n * @license MIT\n */\n\n(function(window) {\n 'use strict';\n\n // Configuration par défaut\n const DEFAULT_CONFIG = {\n apiUrl: window.SunuIDConfig?.apiUrl || 'https://api.sunuid.fayma.sn',\n clientId: null,\n secretId: null,\n type: 1, // Type par défaut (1 = authentification)\n theme: 'light',\n language: 'fr',\n autoRefresh: true,\n refreshInterval: 30000, // 30 secondes\n onSuccess: null,\n onError: null,\n onStatusUpdate: null,\n onExpired: null\n };\n\n /**\n * Classe principale SunuID\n */\n class SunuID {\n constructor(config = {}) {\n this.config = { ...DEFAULT_CONFIG, ...config };\n this.qrCode = null;\n this.refreshTimer = null;\n this.isInitialized = false;\n this.socket = null;\n \n this.init();\n }\n\n /**\n * Initialisation du SDK\n */\n init() {\n if (!this.config.clientId || !this.config.secretId) {\n throw new Error('SunuID: clientId et secretId sont requis');\n }\n\n this.isInitialized = true;\n console.log('SunuID SDK initialisé avec succès');\n \n // Initialiser la connexion WebSocket\n this.initWebSocket();\n }\n\n /**\n * Initialiser la connexion WebSocket\n */\n initWebSocket() {\n try {\n // Vérifier si Socket.IO est disponible\n if (typeof io === 'undefined') {\n console.warn('⚠️ Socket.IO non disponible, WebSocket sera initialisé plus tard');\n // Réessayer après un délai\n setTimeout(() => this.initWebSocket(), 1000);\n return;\n }\n \n // Obtenir l'IP du client (simulation)\n const ip = this.getClientIP();\n \n // Initialiser la connexion WebSocket si elle n'existe pas\n if (!this.socket) {\n this.socket = io('wss://samasocket.fayma.sn:9443', {\n query: {\n token: this.config.clientId,\n type: 'web',\n userId: this.config.clientId,\n username: ip\n }\n });\n\n // Gestion des événements WebSocket\n this.socket.on('connect', () => {\n console.log('🌐 WebSocket connecté avec succès');\n console.log('📊 Socket ID:', this.socket.id);\n });\n\n this.socket.on('disconnect', (reason) => {\n console.log('❌ WebSocket déconnecté:', reason);\n });\n\n this.socket.on('connect_error', (error) => {\n console.error('❌ Erreur connexion WebSocket:', error);\n });\n\n // Écouter les événements spécifiques\n this.socket.on('qr_status_update', (data) => {\n console.log('📱 Mise à jour statut QR reçue:', data);\n this.handleQRStatusUpdate(data);\n });\n\n this.socket.on('qr_scan_success', (data) => {\n console.log('✅ Scan QR réussi reçu:', data);\n this.handleQRScanSuccess(data);\n });\n\n this.socket.on('qr_expired', (data) => {\n console.log('⏰ QR expiré reçu:', data);\n this.handleQRExpired(data);\n });\n }\n } catch (error) {\n console.error('❌ Erreur initialisation WebSocket:', error);\n }\n }\n\n /**\n * Obtenir l'IP du client (simulation)\n */\n getClientIP() {\n // Simulation - en production, vous pourriez utiliser un service d'IP\n return '127.0.0.1';\n }\n\n /**\n * Gérer la mise à jour du statut QR\n */\n handleQRStatusUpdate(data) {\n if (this.config.onStatusUpdate) {\n this.config.onStatusUpdate(data);\n }\n }\n\n /**\n * Gérer le succès du scan QR\n */\n handleQRScanSuccess(data) {\n if (this.config.onSuccess) {\n this.config.onSuccess(data);\n }\n }\n\n /**\n * Gérer l'expiration du QR\n */\n handleQRExpired(data) {\n if (this.config.onExpired) {\n this.config.onExpired(data);\n }\n }\n\n /**\n * Émettre un événement WebSocket\n */\n emitWebSocketEvent(event, data) {\n if (this.socket && this.socket.connected) {\n this.socket.emit(event, data);\n console.log(`📤 Événement WebSocket émis: ${event}`, data);\n } else if (typeof io === 'undefined') {\n console.warn('⚠️ Socket.IO non disponible, impossible d\\'émettre l\\'événement:', event);\n } else {\n console.warn('⚠️ WebSocket non connecté, impossible d\\'émettre l\\'événement:', event);\n }\n }\n\n /**\n * Obtenir le statut de la connexion WebSocket\n */\n getWebSocketStatus() {\n if (!this.socket) {\n return 'not_initialized';\n }\n return this.socket.connected ? 'connected' : 'disconnected';\n }\n\n /**\n * Forcer l'initialisation WebSocket (si Socket.IO devient disponible plus tard)\n */\n forceWebSocketInit() {\n if (typeof io !== 'undefined' && !this.socket) {\n console.log('🔄 Forçage de l\\'initialisation WebSocket...');\n this.initWebSocket();\n }\n }\n\n /**\n * Générer un QR code avec le type configuré\n */\n async generateQR(containerId, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-generate', {\n type: this.config.type, // Utilise le type configuré\n ...options\n });\n\n if (response.success) {\n // Construire l'URL complète de l'image QR avec la base URL pour les images\n const imageBaseUrl = 'https://sunuid.fayma.sn';\n const qrImageUrl = `${imageBaseUrl}${response.data.qrcode}`;\n this.displayQRCode(containerId, qrImageUrl, this.config.type, options);\n this.startAutoRefresh(containerId, this.config.type, options);\n \n // Émettre un événement WebSocket pour la génération du QR\n this.emitWebSocketEvent('qr_generated', {\n serviceId: response.data.service_id,\n type: this.config.type,\n qrCodeUrl: qrImageUrl,\n timestamp: Date.now()\n });\n \n return {\n ...response.data,\n qrCodeUrl: qrImageUrl,\n sessionId: response.data.service_id\n };\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code');\n }\n } catch (error) {\n console.error('Erreur API détectée:', error.message);\n console.log('Affichage du message \"Service non disponible\" pour type ' + this.config.type);\n this.displayServiceUnavailable(containerId, this.config.type);\n throw new Error('Service non disponible');\n }\n }\n\n\n\n /**\n * Générer un QR code avec un type personnalisé\n */\n async generateCustomQR(containerId, type, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-generate', {\n type: type, // Type personnalisé (1, 2, 3, etc.)\n ...options\n });\n\n if (response.success) {\n // Construire l'URL complète de l'image QR avec la base URL pour les images\n const imageBaseUrl = 'https://sunuid.fayma.sn';\n const qrImageUrl = `${imageBaseUrl}${response.data.qrcode}`;\n this.displayQRCode(containerId, qrImageUrl, type, options);\n this.startAutoRefresh(containerId, type, options);\n return {\n ...response.data,\n qrCodeUrl: qrImageUrl,\n sessionId: response.data.service_id\n };\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code');\n }\n } catch (error) {\n console.error('Erreur API détectée:', error.message);\n console.log('Affichage du message \"Service non disponible\" pour type ' + type);\n this.displayServiceUnavailable(containerId, type);\n throw new Error('Service non disponible');\n }\n }\n\n // Alias pour maintenir la compatibilité\n async generateAuthQR(containerId, options = {}) {\n return this.generateQR(containerId, options);\n }\n\n async generateKYCQR(containerId, options = {}) {\n // Sauvegarder le type actuel\n const originalType = this.config.type;\n // Changer temporairement le type pour KYC\n this.config.type = 2;\n try {\n return await this.generateQR(containerId, options);\n } finally {\n // Restaurer le type original\n this.config.type = originalType;\n }\n }\n\n /**\n * Vérifier le statut d'un QR code\n */\n async checkQRStatus(sessionId) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-status', {\n serviceId: sessionId\n });\n\n if (response.success) {\n return response.data;\n } else {\n throw new Error(response.message || 'Erreur lors de la vérification du statut');\n }\n } catch (error) {\n this.handleError(error);\n throw error;\n }\n }\n\n /**\n * Afficher un QR code dans un conteneur\n */\n displayQRCode(containerId, qrUrl, type, options = {}) {\n const container = document.getElementById(containerId);\n if (!container) {\n throw new Error(`Conteneur avec l'ID \"${containerId}\" non trouvé`);\n }\n\n // Nettoyer le conteneur\n container.innerHTML = '';\n\n // Créer l'élément QR code\n const qrElement = document.createElement('div');\n qrElement.className = 'sunuid-qr-code';\n qrElement.innerHTML = `\n <div class=\"sunuid-qr-header\">\n <h3>${type === 1 ? 'Authentification' : type === 2 ? 'Vérification KYC' : type === 3 ? 'Service Type 3' : 'Service Type ' + type}</h3>\n </div>\n <div class=\"sunuid-qr-image\">\n <img src=\"${qrUrl}\" alt=\"QR Code SunuID\" style=\"max-width: 300px; height: auto;\">\n </div>\n <div class=\"sunuid-qr-instructions\">\n <p>Scannez ce QR code avec l'application SunuID pour vous connecter</p>\n </div>\n <div class=\"sunuid-qr-status\" id=\"sunuid-status\">\n <p>En attente de scan...</p>\n </div>\n `;\n\n container.appendChild(qrElement);\n\n // Appliquer le thème\n this.applyTheme(options.theme || this.config.theme);\n }\n\n /**\n * Afficher \"Service non disponible\"\n */\n displayServiceUnavailable(containerId, type) {\n console.log(`displayServiceUnavailable appelée pour ${containerId}, type: ${type}`);\n const container = document.getElementById(containerId);\n if (!container) {\n console.error(`Container ${containerId} non trouvé`);\n return;\n }\n\n container.innerHTML = `\n <div class=\"sunuid-service-unavailable\" style=\"\n text-align: center;\n padding: 40px 20px;\n background: #f8f9fa;\n border: 2px dashed #dee2e6;\n border-radius: 10px;\n color: #6c757d;\n font-family: Arial, sans-serif;\n \">\n <div style=\"font-size: 48px; margin-bottom: 20px;\">⚠️</div>\n <h3 style=\"margin: 0 0 10px 0; color: #495057;\">Service Non Disponible</h3>\n <p style=\"margin: 0; font-size: 14px;\">\n Le service d'authentification est temporairement indisponible.<br>\n Veuillez réessayer plus tard.\n </p>\n <div style=\"margin-top: 20px; font-size: 12px; color: #adb5bd;\">\n Type: ${type.toUpperCase()}\n </div>\n </div>\n `;\n }\n\n /**\n * Rafraîchir un QR code\n */\n async refreshQR(containerId, options = {}) {\n try {\n const result = await this.generateQR(containerId, options);\n return result;\n } catch (error) {\n console.error('Erreur lors du rafraîchissement:', error.message);\n this.displayServiceUnavailable(containerId, this.config.type);\n throw error;\n }\n }\n\n /**\n * Démarrer le rafraîchissement automatique\n */\n startAutoRefresh(containerId, type, options) {\n if (!this.config.autoRefresh) return;\n\n this.refreshTimer = setInterval(async () => {\n try {\n await this.refreshQR(containerId, type, options);\n } catch (error) {\n console.warn('Erreur lors du rafraîchissement automatique:', error);\n }\n }, this.config.refreshInterval);\n }\n\n /**\n * Démarrer le timer de compte à rebours\n */\n\n\n /**\n * Effectuer une requête API\n */\n async makeRequest(endpoint, data) {\n // Utiliser l'endpoint depuis la configuration si disponible\n const endpointPath = window.SunuIDConfig?.endpoints?.[endpoint.replace('/', '')] || endpoint;\n const url = `${this.config.apiUrl}${endpointPath}`;\n \n // Log pour déboguer l'envoi du type\n if (data.type !== undefined) {\n console.log(`🌐 Envoi requête API - Type: ${data.type}, Endpoint: ${endpoint}`);\n }\n \n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${this.config.clientId}:${this.config.secretId}`,\n 'Accept': 'application/json'\n },\n body: JSON.stringify({\n ...data,\n client_id: this.config.clientId,\n secret_id: this.config.secretId\n })\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n let errorData;\n try {\n errorData = JSON.parse(errorText);\n } catch (e) {\n errorData = { message: errorText };\n }\n \n throw new Error(errorData.message || `Erreur HTTP: ${response.status}`);\n }\n\n const result = await response.json();\n return result;\n } catch (error) {\n console.error('Erreur API SunuID:', error);\n throw error;\n }\n }\n\n /**\n * Appliquer le thème\n */\n applyTheme(theme) {\n const container = document.querySelector('.sunuid-qr-code');\n if (container) {\n container.className = `sunuid-qr-code sunuid-theme-${theme}`;\n }\n }\n\n /**\n * Gérer les erreurs\n */\n handleError(error) {\n console.error('SunuID SDK Error:', error);\n \n if (this.config.onError) {\n this.config.onError(error);\n }\n }\n\n /**\n * Nettoyer les ressources\n */\n destroy() {\n if (this.refreshTimer) {\n clearInterval(this.refreshTimer);\n }\n \n // Fermer la connexion WebSocket\n if (this.socket) {\n this.socket.disconnect();\n this.socket = null;\n console.log('🌐 WebSocket déconnecté');\n }\n \n this.isInitialized = false;\n console.log('SunuID SDK détruit');\n }\n }\n\n // Exposer la classe globalement\n window.SunuID = SunuID;\n window.sunuidInstance = null;\n\n // Fonction d'initialisation globale\n window.initSunuID = function(config) {\n try {\n window.sunuidInstance = new SunuID(config);\n return window.sunuidInstance;\n } catch (error) {\n console.error('Erreur lors de l\\'initialisation de SunuID:', error);\n throw error;\n }\n };\n\n})(window); "],"names":["window","_window$SunuIDConfig","DEFAULT_CONFIG","apiUrl","SunuIDConfig","clientId","secretId","type","theme","language","autoRefresh","refreshInterval","onSuccess","onError","onStatusUpdate","onExpired","SunuID","config","arguments","length","undefined","_classCallCheck","_objectSpread","qrCode","refreshTimer","isInitialized","socket","init","_createClass","key","value","Error","console","log","initWebSocket","_this","io","warn","setTimeout","ip","getClientIP","query","token","userId","username","on","id","reason","error","data","handleQRStatusUpdate","handleQRScanSuccess","handleQRExpired","emitWebSocketEvent","event","connected","emit","concat","getWebSocketStatus","forceWebSocketInit","_generateQR","_asyncToGenerator","_regenerator","m","_callee","containerId","options","response","imageBaseUrl","qrImageUrl","_args","_t","w","_context","p","n","makeRequest","v","success","qrcode","displayQRCode","startAutoRefresh","serviceId","service_id","qrCodeUrl","timestamp","Date","now","a","sessionId","message","displayServiceUnavailable","generateQR","_x","apply","_generateCustomQR","_callee2","_args2","_t2","_context2","generateCustomQR","_x2","_x3","_generateAuthQR","_callee3","_args3","_context3","generateAuthQR","_x4","_generateKYCQR","_callee4","originalType","_args4","_context4","f","generateKYCQR","_x5","_checkQRStatus","_callee5","_t3","_context5","handleError","checkQRStatus","_x6","qrUrl","container","document","getElementById","innerHTML","qrElement","createElement","className","appendChild","applyTheme","toUpperCase","_refreshQR","_callee6","result","_args6","_t4","_context6","refreshQR","_x7","_this2","setInterval","_callee7","_t5","_context7","_makeRequest","_callee8","endpoint","_window$SunuIDConfig2","endpointPath","url","errorText","errorData","_t6","_context8","endpoints","replace","fetch","method","headers","body","JSON","stringify","client_id","secret_id","ok","text","parse","e","status","json","_x8","_x9","querySelector","destroy","clearInterval","disconnect","sunuidInstance","initSunuID"],"mappings":"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"}
@@ -7,5 +7,5 @@ var e,n,t="function"==typeof Symbol?Symbol:{},r=t.iterator||"@@iterator",i=t.toS
7
7
  * @version 1.0.0
8
8
  * @author SunuID Team
9
9
  * @license MIT
10
- */!function(e,r){var i={apiUrl:(null===(r=e.SunuIDConfig)||void 0===r?void 0:r.apiUrl)||"https://api.sunuid.fayma.sn",clientId:null,secretId:null,type:1,theme:"light",language:"fr",autoRefresh:!0,refreshInterval:3e4,onSuccess:null,onError:null,onStatusUpdate:null,onExpired:null},s=function(){return r=function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e),this.config=o(o({},i),n),this.qrCode=null,this.refreshTimer=null,this.isInitialized=!1,this.socket=null,this.init()},s=[{key:"init",value:function(){if(!this.config.clientId||!this.config.secretId)throw new Error("SunuID: clientId et secretId sont requis");this.isInitialized=!0,console.log("SunuID SDK initialisé avec succès"),this.initWebSocket()}},{key:"initWebSocket",value:function(){var e=this;try{var n=this.getClientIP();this.socket||(this.socket=io("wss://samasocket.fayma.sn:9443",{query:{token:this.config.clientId,type:"web",userId:this.config.clientId,username:n}}),this.socket.on("connect",function(){console.log("🌐 WebSocket connecté avec succès"),console.log("📊 Socket ID:",e.socket.id)}),this.socket.on("disconnect",function(e){console.log("❌ WebSocket déconnecté:",e)}),this.socket.on("connect_error",function(e){console.error("❌ Erreur connexion WebSocket:",e)}),this.socket.on("qr_status_update",function(n){console.log("📱 Mise à jour statut QR reçue:",n),e.handleQRStatusUpdate(n)}),this.socket.on("qr_scan_success",function(n){console.log("✅ Scan QR réussi reçu:",n),e.handleQRScanSuccess(n)}),this.socket.on("qr_expired",function(n){console.log("⏰ QR expiré reçu:",n),e.handleQRExpired(n)}))}catch(e){console.error("❌ Erreur initialisation WebSocket:",e)}}},{key:"getClientIP",value:function(){return"127.0.0.1"}},{key:"handleQRStatusUpdate",value:function(e){this.config.onStatusUpdate&&this.config.onStatusUpdate(e)}},{key:"handleQRScanSuccess",value:function(e){this.config.onSuccess&&this.config.onSuccess(e)}},{key:"handleQRExpired",value:function(e){this.config.onExpired&&this.config.onExpired(e)}},{key:"emitWebSocketEvent",value:function(e,n){this.socket&&this.socket.connected?(this.socket.emit(e,n),console.log("📤 Événement WebSocket émis: ".concat(e),n)):console.warn("⚠️ WebSocket non connecté, impossible d'émettre l'événement:",e)}},{key:"getWebSocketStatus",value:function(){return this.socket?this.socket.connected?"connected":"disconnected":"not_initialized"}},{key:"generateQR",value:(v=n(c().m(function e(n){var t,r,i,s,a=arguments;return c().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t=a.length>1&&void 0!==a[1]?a[1]:{},this.isInitialized){e.n=1;break}throw new Error("SunuID: SDK non initialisé");case 1:return e.p=1,e.n=2,this.makeRequest("/qr-generate",o({type:this.config.type},t));case 2:if(!(r=e.v).success){e.n=3;break}return i="".concat("https://sunuid.fayma.sn").concat(r.data.qrcode),this.displayQRCode(n,i,this.config.type,t),this.startAutoRefresh(n,this.config.type,t),this.emitWebSocketEvent("qr_generated",{serviceId:r.data.service_id,type:this.config.type,qrCodeUrl:i,timestamp:Date.now()}),e.a(2,o(o({},r.data),{},{qrCodeUrl:i,sessionId:r.data.service_id}));case 3:throw new Error(r.message||"Erreur lors de la génération du QR code");case 4:e.n=6;break;case 5:throw e.p=5,s=e.v,console.error("Erreur API détectée:",s.message),console.log('Affichage du message "Service non disponible" pour type '+this.config.type),this.displayServiceUnavailable(n,this.config.type),new Error("Service non disponible");case 6:return e.a(2)}},e,this,[[1,5]])})),function(e){return v.apply(this,arguments)})},{key:"generateCustomQR",value:(p=n(c().m(function e(n,t){var r,i,s,a,u=arguments;return c().w(function(e){for(;;)switch(e.p=e.n){case 0:if(r=u.length>2&&void 0!==u[2]?u[2]:{},this.isInitialized){e.n=1;break}throw new Error("SunuID: SDK non initialisé");case 1:return e.p=1,e.n=2,this.makeRequest("/qr-generate",o({type:t},r));case 2:if(!(i=e.v).success){e.n=3;break}return s="".concat("https://sunuid.fayma.sn").concat(i.data.qrcode),this.displayQRCode(n,s,t,r),this.startAutoRefresh(n,t,r),e.a(2,o(o({},i.data),{},{qrCodeUrl:s,sessionId:i.data.service_id}));case 3:throw new Error(i.message||"Erreur lors de la génération du QR code");case 4:e.n=6;break;case 5:throw e.p=5,a=e.v,console.error("Erreur API détectée:",a.message),console.log('Affichage du message "Service non disponible" pour type '+t),this.displayServiceUnavailable(n,t),new Error("Service non disponible");case 6:return e.a(2)}},e,this,[[1,5]])})),function(e,n){return p.apply(this,arguments)})},{key:"generateAuthQR",value:(h=n(c().m(function e(n){var t,r=arguments;return c().w(function(e){for(;;)if(0===e.n)return t=r.length>1&&void 0!==r[1]?r[1]:{},e.a(2,this.generateQR(n,t))},e,this)})),function(e){return h.apply(this,arguments)})},{key:"generateKYCQR",value:(d=n(c().m(function e(n){var t,r,i=arguments;return c().w(function(e){for(;;)switch(e.p=e.n){case 0:return t=i.length>1&&void 0!==i[1]?i[1]:{},r=this.config.type,this.config.type=2,e.p=1,e.n=2,this.generateQR(n,t);case 2:return e.a(2,e.v);case 3:return e.p=3,this.config.type=r,e.f(3);case 4:return e.a(2)}},e,this,[[1,,3,4]])})),function(e){return d.apply(this,arguments)})},{key:"checkQRStatus",value:(f=n(c().m(function e(n){var t,r;return c().w(function(e){for(;;)switch(e.p=e.n){case 0:if(this.isInitialized){e.n=1;break}throw new Error("SunuID: SDK non initialisé");case 1:return e.p=1,e.n=2,this.makeRequest("/qr-status",{serviceId:n});case 2:if(!(t=e.v).success){e.n=3;break}return e.a(2,t.data);case 3:throw new Error(t.message||"Erreur lors de la vérification du statut");case 4:e.n=6;break;case 5:throw e.p=5,r=e.v,this.handleError(r),r;case 6:return e.a(2)}},e,this,[[1,5]])})),function(e){return f.apply(this,arguments)})},{key:"displayQRCode",value:function(e,n,t){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=document.getElementById(e);if(!i)throw new Error("Conteneur avec l'ID \"".concat(e,'" non trouvé'));i.innerHTML="";var o=document.createElement("div");o.className="sunuid-qr-code",o.innerHTML='\n <div class="sunuid-qr-header">\n <h3>'.concat(1===t?"Authentification":2===t?"Vérification KYC":3===t?"Service Type 3":"Service Type "+t,'</h3>\n </div>\n <div class="sunuid-qr-image">\n <img src="').concat(n,'" alt="QR Code SunuID" style="max-width: 300px; height: auto;">\n </div>\n <div class="sunuid-qr-instructions">\n <p>Scannez ce QR code avec l\'application SunuID pour vous connecter</p>\n </div>\n <div class="sunuid-qr-status" id="sunuid-status">\n <p>En attente de scan...</p>\n </div>\n '),i.appendChild(o),this.applyTheme(r.theme||this.config.theme)}},{key:"displayServiceUnavailable",value:function(e,n){console.log("displayServiceUnavailable appelée pour ".concat(e,", type: ").concat(n));var t=document.getElementById(e);t?t.innerHTML='\n <div class="sunuid-service-unavailable" style="\n text-align: center;\n padding: 40px 20px;\n background: #f8f9fa;\n border: 2px dashed #dee2e6;\n border-radius: 10px;\n color: #6c757d;\n font-family: Arial, sans-serif;\n ">\n <div style="font-size: 48px; margin-bottom: 20px;">⚠️</div>\n <h3 style="margin: 0 0 10px 0; color: #495057;">Service Non Disponible</h3>\n <p style="margin: 0; font-size: 14px;">\n Le service d\'authentification est temporairement indisponible.<br>\n Veuillez réessayer plus tard.\n </p>\n <div style="margin-top: 20px; font-size: 12px; color: #adb5bd;">\n Type: '.concat(n.toUpperCase(),"\n </div>\n </div>\n "):console.error("Container ".concat(e," non trouvé"))}},{key:"refreshQR",value:(l=n(c().m(function e(n){var t,r,i,o=arguments;return c().w(function(e){for(;;)switch(e.p=e.n){case 0:return t=o.length>1&&void 0!==o[1]?o[1]:{},e.p=1,e.n=2,this.generateQR(n,t);case 2:return r=e.v,e.a(2,r);case 3:throw e.p=3,i=e.v,console.error("Erreur lors du rafraîchissement:",i.message),this.displayServiceUnavailable(n,this.config.type),i;case 4:return e.a(2)}},e,this,[[1,3]])})),function(e){return l.apply(this,arguments)})},{key:"startAutoRefresh",value:function(e,t,r){var i=this;this.config.autoRefresh&&(this.refreshTimer=setInterval(n(c().m(function n(){var o;return c().w(function(n){for(;;)switch(n.p=n.n){case 0:return n.p=0,n.n=1,i.refreshQR(e,t,r);case 1:n.n=3;break;case 2:n.p=2,o=n.v,console.warn("Erreur lors du rafraîchissement automatique:",o);case 3:return n.a(2)}},n,null,[[0,2]])})),this.config.refreshInterval))}},{key:"makeRequest",value:(u=n(c().m(function n(t,r){var i,s,a,u,l,f,d,h;return c().w(function(n){for(;;)switch(n.p=n.n){case 0:return s=(null===(i=e.SunuIDConfig)||void 0===i||null===(i=i.endpoints)||void 0===i?void 0:i[t.replace("/","")])||t,a="".concat(this.config.apiUrl).concat(s),void 0!==r.type&&console.log("🌐 Envoi requête API - Type: ".concat(r.type,", Endpoint: ").concat(t)),n.p=1,n.n=2,fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer ".concat(this.config.clientId,":").concat(this.config.secretId),Accept:"application/json"},body:JSON.stringify(o(o({},r),{},{client_id:this.config.clientId,secret_id:this.config.secretId}))});case 2:if((u=n.v).ok){n.n=4;break}return n.n=3,u.text();case 3:l=n.v;try{f=JSON.parse(l)}catch(e){f={message:l}}throw new Error(f.message||"Erreur HTTP: ".concat(u.status));case 4:return n.n=5,u.json();case 5:return d=n.v,n.a(2,d);case 6:throw n.p=6,h=n.v,console.error("Erreur API SunuID:",h),h;case 7:return n.a(2)}},n,this,[[1,6]])})),function(e,n){return u.apply(this,arguments)})},{key:"applyTheme",value:function(e){var n=document.querySelector(".sunuid-qr-code");n&&(n.className="sunuid-qr-code sunuid-theme-".concat(e))}},{key:"handleError",value:function(e){console.error("SunuID SDK Error:",e),this.config.onError&&this.config.onError(e)}},{key:"destroy",value:function(){this.refreshTimer&&clearInterval(this.refreshTimer),this.socket&&(this.socket.disconnect(),this.socket=null,console.log("🌐 WebSocket déconnecté")),this.isInitialized=!1,console.log("SunuID SDK détruit")}}],s&&t(r.prototype,s),a&&t(r,a),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,s,a,u,l,f,d,h,p,v}();e.SunuID=s,e.sunuidInstance=null,e.initSunuID=function(n){try{return e.sunuidInstance=new s(n),e.sunuidInstance}catch(e){throw console.error("Erreur lors de l'initialisation de SunuID:",e),e}}}(window)}();
10
+ */!function(e,r){var i={apiUrl:(null===(r=e.SunuIDConfig)||void 0===r?void 0:r.apiUrl)||"https://api.sunuid.fayma.sn",clientId:null,secretId:null,type:1,theme:"light",language:"fr",autoRefresh:!0,refreshInterval:3e4,onSuccess:null,onError:null,onStatusUpdate:null,onExpired:null},s=function(){return r=function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e),this.config=o(o({},i),n),this.qrCode=null,this.refreshTimer=null,this.isInitialized=!1,this.socket=null,this.init()},s=[{key:"init",value:function(){if(!this.config.clientId||!this.config.secretId)throw new Error("SunuID: clientId et secretId sont requis");this.isInitialized=!0,console.log("SunuID SDK initialisé avec succès"),this.initWebSocket()}},{key:"initWebSocket",value:function(){var e=this;try{if("undefined"==typeof io)return console.warn("⚠️ Socket.IO non disponible, WebSocket sera initialisé plus tard"),void setTimeout(function(){return e.initWebSocket()},1e3);var n=this.getClientIP();this.socket||(this.socket=io("wss://samasocket.fayma.sn:9443",{query:{token:this.config.clientId,type:"web",userId:this.config.clientId,username:n}}),this.socket.on("connect",function(){console.log("🌐 WebSocket connecté avec succès"),console.log("📊 Socket ID:",e.socket.id)}),this.socket.on("disconnect",function(e){console.log("❌ WebSocket déconnecté:",e)}),this.socket.on("connect_error",function(e){console.error("❌ Erreur connexion WebSocket:",e)}),this.socket.on("qr_status_update",function(n){console.log("📱 Mise à jour statut QR reçue:",n),e.handleQRStatusUpdate(n)}),this.socket.on("qr_scan_success",function(n){console.log("✅ Scan QR réussi reçu:",n),e.handleQRScanSuccess(n)}),this.socket.on("qr_expired",function(n){console.log("⏰ QR expiré reçu:",n),e.handleQRExpired(n)}))}catch(e){console.error("❌ Erreur initialisation WebSocket:",e)}}},{key:"getClientIP",value:function(){return"127.0.0.1"}},{key:"handleQRStatusUpdate",value:function(e){this.config.onStatusUpdate&&this.config.onStatusUpdate(e)}},{key:"handleQRScanSuccess",value:function(e){this.config.onSuccess&&this.config.onSuccess(e)}},{key:"handleQRExpired",value:function(e){this.config.onExpired&&this.config.onExpired(e)}},{key:"emitWebSocketEvent",value:function(e,n){this.socket&&this.socket.connected?(this.socket.emit(e,n),console.log("📤 Événement WebSocket émis: ".concat(e),n)):"undefined"==typeof io?console.warn("⚠️ Socket.IO non disponible, impossible d'émettre l'événement:",e):console.warn("⚠️ WebSocket non connecté, impossible d'émettre l'événement:",e)}},{key:"getWebSocketStatus",value:function(){return this.socket?this.socket.connected?"connected":"disconnected":"not_initialized"}},{key:"forceWebSocketInit",value:function(){"undefined"==typeof io||this.socket||(console.log("🔄 Forçage de l'initialisation WebSocket..."),this.initWebSocket())}},{key:"generateQR",value:(v=n(c().m(function e(n){var t,r,i,s,a=arguments;return c().w(function(e){for(;;)switch(e.p=e.n){case 0:if(t=a.length>1&&void 0!==a[1]?a[1]:{},this.isInitialized){e.n=1;break}throw new Error("SunuID: SDK non initialisé");case 1:return e.p=1,e.n=2,this.makeRequest("/qr-generate",o({type:this.config.type},t));case 2:if(!(r=e.v).success){e.n=3;break}return i="".concat("https://sunuid.fayma.sn").concat(r.data.qrcode),this.displayQRCode(n,i,this.config.type,t),this.startAutoRefresh(n,this.config.type,t),this.emitWebSocketEvent("qr_generated",{serviceId:r.data.service_id,type:this.config.type,qrCodeUrl:i,timestamp:Date.now()}),e.a(2,o(o({},r.data),{},{qrCodeUrl:i,sessionId:r.data.service_id}));case 3:throw new Error(r.message||"Erreur lors de la génération du QR code");case 4:e.n=6;break;case 5:throw e.p=5,s=e.v,console.error("Erreur API détectée:",s.message),console.log('Affichage du message "Service non disponible" pour type '+this.config.type),this.displayServiceUnavailable(n,this.config.type),new Error("Service non disponible");case 6:return e.a(2)}},e,this,[[1,5]])})),function(e){return v.apply(this,arguments)})},{key:"generateCustomQR",value:(p=n(c().m(function e(n,t){var r,i,s,a,u=arguments;return c().w(function(e){for(;;)switch(e.p=e.n){case 0:if(r=u.length>2&&void 0!==u[2]?u[2]:{},this.isInitialized){e.n=1;break}throw new Error("SunuID: SDK non initialisé");case 1:return e.p=1,e.n=2,this.makeRequest("/qr-generate",o({type:t},r));case 2:if(!(i=e.v).success){e.n=3;break}return s="".concat("https://sunuid.fayma.sn").concat(i.data.qrcode),this.displayQRCode(n,s,t,r),this.startAutoRefresh(n,t,r),e.a(2,o(o({},i.data),{},{qrCodeUrl:s,sessionId:i.data.service_id}));case 3:throw new Error(i.message||"Erreur lors de la génération du QR code");case 4:e.n=6;break;case 5:throw e.p=5,a=e.v,console.error("Erreur API détectée:",a.message),console.log('Affichage du message "Service non disponible" pour type '+t),this.displayServiceUnavailable(n,t),new Error("Service non disponible");case 6:return e.a(2)}},e,this,[[1,5]])})),function(e,n){return p.apply(this,arguments)})},{key:"generateAuthQR",value:(h=n(c().m(function e(n){var t,r=arguments;return c().w(function(e){for(;;)if(0===e.n)return t=r.length>1&&void 0!==r[1]?r[1]:{},e.a(2,this.generateQR(n,t))},e,this)})),function(e){return h.apply(this,arguments)})},{key:"generateKYCQR",value:(d=n(c().m(function e(n){var t,r,i=arguments;return c().w(function(e){for(;;)switch(e.p=e.n){case 0:return t=i.length>1&&void 0!==i[1]?i[1]:{},r=this.config.type,this.config.type=2,e.p=1,e.n=2,this.generateQR(n,t);case 2:return e.a(2,e.v);case 3:return e.p=3,this.config.type=r,e.f(3);case 4:return e.a(2)}},e,this,[[1,,3,4]])})),function(e){return d.apply(this,arguments)})},{key:"checkQRStatus",value:(f=n(c().m(function e(n){var t,r;return c().w(function(e){for(;;)switch(e.p=e.n){case 0:if(this.isInitialized){e.n=1;break}throw new Error("SunuID: SDK non initialisé");case 1:return e.p=1,e.n=2,this.makeRequest("/qr-status",{serviceId:n});case 2:if(!(t=e.v).success){e.n=3;break}return e.a(2,t.data);case 3:throw new Error(t.message||"Erreur lors de la vérification du statut");case 4:e.n=6;break;case 5:throw e.p=5,r=e.v,this.handleError(r),r;case 6:return e.a(2)}},e,this,[[1,5]])})),function(e){return f.apply(this,arguments)})},{key:"displayQRCode",value:function(e,n,t){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=document.getElementById(e);if(!i)throw new Error("Conteneur avec l'ID \"".concat(e,'" non trouvé'));i.innerHTML="";var o=document.createElement("div");o.className="sunuid-qr-code",o.innerHTML='\n <div class="sunuid-qr-header">\n <h3>'.concat(1===t?"Authentification":2===t?"Vérification KYC":3===t?"Service Type 3":"Service Type "+t,'</h3>\n </div>\n <div class="sunuid-qr-image">\n <img src="').concat(n,'" alt="QR Code SunuID" style="max-width: 300px; height: auto;">\n </div>\n <div class="sunuid-qr-instructions">\n <p>Scannez ce QR code avec l\'application SunuID pour vous connecter</p>\n </div>\n <div class="sunuid-qr-status" id="sunuid-status">\n <p>En attente de scan...</p>\n </div>\n '),i.appendChild(o),this.applyTheme(r.theme||this.config.theme)}},{key:"displayServiceUnavailable",value:function(e,n){console.log("displayServiceUnavailable appelée pour ".concat(e,", type: ").concat(n));var t=document.getElementById(e);t?t.innerHTML='\n <div class="sunuid-service-unavailable" style="\n text-align: center;\n padding: 40px 20px;\n background: #f8f9fa;\n border: 2px dashed #dee2e6;\n border-radius: 10px;\n color: #6c757d;\n font-family: Arial, sans-serif;\n ">\n <div style="font-size: 48px; margin-bottom: 20px;">⚠️</div>\n <h3 style="margin: 0 0 10px 0; color: #495057;">Service Non Disponible</h3>\n <p style="margin: 0; font-size: 14px;">\n Le service d\'authentification est temporairement indisponible.<br>\n Veuillez réessayer plus tard.\n </p>\n <div style="margin-top: 20px; font-size: 12px; color: #adb5bd;">\n Type: '.concat(n.toUpperCase(),"\n </div>\n </div>\n "):console.error("Container ".concat(e," non trouvé"))}},{key:"refreshQR",value:(l=n(c().m(function e(n){var t,r,i,o=arguments;return c().w(function(e){for(;;)switch(e.p=e.n){case 0:return t=o.length>1&&void 0!==o[1]?o[1]:{},e.p=1,e.n=2,this.generateQR(n,t);case 2:return r=e.v,e.a(2,r);case 3:throw e.p=3,i=e.v,console.error("Erreur lors du rafraîchissement:",i.message),this.displayServiceUnavailable(n,this.config.type),i;case 4:return e.a(2)}},e,this,[[1,3]])})),function(e){return l.apply(this,arguments)})},{key:"startAutoRefresh",value:function(e,t,r){var i=this;this.config.autoRefresh&&(this.refreshTimer=setInterval(n(c().m(function n(){var o;return c().w(function(n){for(;;)switch(n.p=n.n){case 0:return n.p=0,n.n=1,i.refreshQR(e,t,r);case 1:n.n=3;break;case 2:n.p=2,o=n.v,console.warn("Erreur lors du rafraîchissement automatique:",o);case 3:return n.a(2)}},n,null,[[0,2]])})),this.config.refreshInterval))}},{key:"makeRequest",value:(u=n(c().m(function n(t,r){var i,s,a,u,l,f,d,h;return c().w(function(n){for(;;)switch(n.p=n.n){case 0:return s=(null===(i=e.SunuIDConfig)||void 0===i||null===(i=i.endpoints)||void 0===i?void 0:i[t.replace("/","")])||t,a="".concat(this.config.apiUrl).concat(s),void 0!==r.type&&console.log("🌐 Envoi requête API - Type: ".concat(r.type,", Endpoint: ").concat(t)),n.p=1,n.n=2,fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer ".concat(this.config.clientId,":").concat(this.config.secretId),Accept:"application/json"},body:JSON.stringify(o(o({},r),{},{client_id:this.config.clientId,secret_id:this.config.secretId}))});case 2:if((u=n.v).ok){n.n=4;break}return n.n=3,u.text();case 3:l=n.v;try{f=JSON.parse(l)}catch(e){f={message:l}}throw new Error(f.message||"Erreur HTTP: ".concat(u.status));case 4:return n.n=5,u.json();case 5:return d=n.v,n.a(2,d);case 6:throw n.p=6,h=n.v,console.error("Erreur API SunuID:",h),h;case 7:return n.a(2)}},n,this,[[1,6]])})),function(e,n){return u.apply(this,arguments)})},{key:"applyTheme",value:function(e){var n=document.querySelector(".sunuid-qr-code");n&&(n.className="sunuid-qr-code sunuid-theme-".concat(e))}},{key:"handleError",value:function(e){console.error("SunuID SDK Error:",e),this.config.onError&&this.config.onError(e)}},{key:"destroy",value:function(){this.refreshTimer&&clearInterval(this.refreshTimer),this.socket&&(this.socket.disconnect(),this.socket=null,console.log("🌐 WebSocket déconnecté")),this.isInitialized=!1,console.log("SunuID SDK détruit")}}],s&&t(r.prototype,s),a&&t(r,a),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,s,a,u,l,f,d,h,p,v}();e.SunuID=s,e.sunuidInstance=null,e.initSunuID=function(n){try{return e.sunuidInstance=new s(n),e.sunuidInstance}catch(e){throw console.error("Erreur lors de l'initialisation de SunuID:",e),e}}}(window)}();
11
11
  //# sourceMappingURL=sunuid-sdk.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sunuid-sdk.min.js","sources":["../src/sunuid-sdk.js"],"sourcesContent":["/**\n * SunuID SDK - Package d'intégration pour partenaires\n * \n * @version 1.0.0\n * @author SunuID Team\n * @license MIT\n */\n\n(function(window) {\n 'use strict';\n\n // Configuration par défaut\n const DEFAULT_CONFIG = {\n apiUrl: window.SunuIDConfig?.apiUrl || 'https://api.sunuid.fayma.sn',\n clientId: null,\n secretId: null,\n type: 1, // Type par défaut (1 = authentification)\n theme: 'light',\n language: 'fr',\n autoRefresh: true,\n refreshInterval: 30000, // 30 secondes\n onSuccess: null,\n onError: null,\n onStatusUpdate: null,\n onExpired: null\n };\n\n /**\n * Classe principale SunuID\n */\n class SunuID {\n constructor(config = {}) {\n this.config = { ...DEFAULT_CONFIG, ...config };\n this.qrCode = null;\n this.refreshTimer = null;\n this.isInitialized = false;\n this.socket = null;\n \n this.init();\n }\n\n /**\n * Initialisation du SDK\n */\n init() {\n if (!this.config.clientId || !this.config.secretId) {\n throw new Error('SunuID: clientId et secretId sont requis');\n }\n\n this.isInitialized = true;\n console.log('SunuID SDK initialisé avec succès');\n \n // Initialiser la connexion WebSocket\n this.initWebSocket();\n }\n\n /**\n * Initialiser la connexion WebSocket\n */\n initWebSocket() {\n try {\n // Obtenir l'IP du client (simulation)\n const ip = this.getClientIP();\n \n // Initialiser la connexion WebSocket si elle n'existe pas\n if (!this.socket) {\n this.socket = io('wss://samasocket.fayma.sn:9443', {\n query: {\n token: this.config.clientId,\n type: 'web',\n userId: this.config.clientId,\n username: ip\n }\n });\n\n // Gestion des événements WebSocket\n this.socket.on('connect', () => {\n console.log('🌐 WebSocket connecté avec succès');\n console.log('📊 Socket ID:', this.socket.id);\n });\n\n this.socket.on('disconnect', (reason) => {\n console.log('❌ WebSocket déconnecté:', reason);\n });\n\n this.socket.on('connect_error', (error) => {\n console.error('❌ Erreur connexion WebSocket:', error);\n });\n\n // Écouter les événements spécifiques\n this.socket.on('qr_status_update', (data) => {\n console.log('📱 Mise à jour statut QR reçue:', data);\n this.handleQRStatusUpdate(data);\n });\n\n this.socket.on('qr_scan_success', (data) => {\n console.log('✅ Scan QR réussi reçu:', data);\n this.handleQRScanSuccess(data);\n });\n\n this.socket.on('qr_expired', (data) => {\n console.log('⏰ QR expiré reçu:', data);\n this.handleQRExpired(data);\n });\n }\n } catch (error) {\n console.error('❌ Erreur initialisation WebSocket:', error);\n }\n }\n\n /**\n * Obtenir l'IP du client (simulation)\n */\n getClientIP() {\n // Simulation - en production, vous pourriez utiliser un service d'IP\n return '127.0.0.1';\n }\n\n /**\n * Gérer la mise à jour du statut QR\n */\n handleQRStatusUpdate(data) {\n if (this.config.onStatusUpdate) {\n this.config.onStatusUpdate(data);\n }\n }\n\n /**\n * Gérer le succès du scan QR\n */\n handleQRScanSuccess(data) {\n if (this.config.onSuccess) {\n this.config.onSuccess(data);\n }\n }\n\n /**\n * Gérer l'expiration du QR\n */\n handleQRExpired(data) {\n if (this.config.onExpired) {\n this.config.onExpired(data);\n }\n }\n\n /**\n * Émettre un événement WebSocket\n */\n emitWebSocketEvent(event, data) {\n if (this.socket && this.socket.connected) {\n this.socket.emit(event, data);\n console.log(`📤 Événement WebSocket émis: ${event}`, data);\n } else {\n console.warn('⚠️ WebSocket non connecté, impossible d\\'émettre l\\'événement:', event);\n }\n }\n\n /**\n * Obtenir le statut de la connexion WebSocket\n */\n getWebSocketStatus() {\n if (!this.socket) {\n return 'not_initialized';\n }\n return this.socket.connected ? 'connected' : 'disconnected';\n }\n\n /**\n * Générer un QR code avec le type configuré\n */\n async generateQR(containerId, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-generate', {\n type: this.config.type, // Utilise le type configuré\n ...options\n });\n\n if (response.success) {\n // Construire l'URL complète de l'image QR avec la base URL pour les images\n const imageBaseUrl = 'https://sunuid.fayma.sn';\n const qrImageUrl = `${imageBaseUrl}${response.data.qrcode}`;\n this.displayQRCode(containerId, qrImageUrl, this.config.type, options);\n this.startAutoRefresh(containerId, this.config.type, options);\n \n // Émettre un événement WebSocket pour la génération du QR\n this.emitWebSocketEvent('qr_generated', {\n serviceId: response.data.service_id,\n type: this.config.type,\n qrCodeUrl: qrImageUrl,\n timestamp: Date.now()\n });\n \n return {\n ...response.data,\n qrCodeUrl: qrImageUrl,\n sessionId: response.data.service_id\n };\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code');\n }\n } catch (error) {\n console.error('Erreur API détectée:', error.message);\n console.log('Affichage du message \"Service non disponible\" pour type ' + this.config.type);\n this.displayServiceUnavailable(containerId, this.config.type);\n throw new Error('Service non disponible');\n }\n }\n\n\n\n /**\n * Générer un QR code avec un type personnalisé\n */\n async generateCustomQR(containerId, type, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-generate', {\n type: type, // Type personnalisé (1, 2, 3, etc.)\n ...options\n });\n\n if (response.success) {\n // Construire l'URL complète de l'image QR avec la base URL pour les images\n const imageBaseUrl = 'https://sunuid.fayma.sn';\n const qrImageUrl = `${imageBaseUrl}${response.data.qrcode}`;\n this.displayQRCode(containerId, qrImageUrl, type, options);\n this.startAutoRefresh(containerId, type, options);\n return {\n ...response.data,\n qrCodeUrl: qrImageUrl,\n sessionId: response.data.service_id\n };\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code');\n }\n } catch (error) {\n console.error('Erreur API détectée:', error.message);\n console.log('Affichage du message \"Service non disponible\" pour type ' + type);\n this.displayServiceUnavailable(containerId, type);\n throw new Error('Service non disponible');\n }\n }\n\n // Alias pour maintenir la compatibilité\n async generateAuthQR(containerId, options = {}) {\n return this.generateQR(containerId, options);\n }\n\n async generateKYCQR(containerId, options = {}) {\n // Sauvegarder le type actuel\n const originalType = this.config.type;\n // Changer temporairement le type pour KYC\n this.config.type = 2;\n try {\n return await this.generateQR(containerId, options);\n } finally {\n // Restaurer le type original\n this.config.type = originalType;\n }\n }\n\n /**\n * Vérifier le statut d'un QR code\n */\n async checkQRStatus(sessionId) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-status', {\n serviceId: sessionId\n });\n\n if (response.success) {\n return response.data;\n } else {\n throw new Error(response.message || 'Erreur lors de la vérification du statut');\n }\n } catch (error) {\n this.handleError(error);\n throw error;\n }\n }\n\n /**\n * Afficher un QR code dans un conteneur\n */\n displayQRCode(containerId, qrUrl, type, options = {}) {\n const container = document.getElementById(containerId);\n if (!container) {\n throw new Error(`Conteneur avec l'ID \"${containerId}\" non trouvé`);\n }\n\n // Nettoyer le conteneur\n container.innerHTML = '';\n\n // Créer l'élément QR code\n const qrElement = document.createElement('div');\n qrElement.className = 'sunuid-qr-code';\n qrElement.innerHTML = `\n <div class=\"sunuid-qr-header\">\n <h3>${type === 1 ? 'Authentification' : type === 2 ? 'Vérification KYC' : type === 3 ? 'Service Type 3' : 'Service Type ' + type}</h3>\n </div>\n <div class=\"sunuid-qr-image\">\n <img src=\"${qrUrl}\" alt=\"QR Code SunuID\" style=\"max-width: 300px; height: auto;\">\n </div>\n <div class=\"sunuid-qr-instructions\">\n <p>Scannez ce QR code avec l'application SunuID pour vous connecter</p>\n </div>\n <div class=\"sunuid-qr-status\" id=\"sunuid-status\">\n <p>En attente de scan...</p>\n </div>\n `;\n\n container.appendChild(qrElement);\n\n // Appliquer le thème\n this.applyTheme(options.theme || this.config.theme);\n }\n\n /**\n * Afficher \"Service non disponible\"\n */\n displayServiceUnavailable(containerId, type) {\n console.log(`displayServiceUnavailable appelée pour ${containerId}, type: ${type}`);\n const container = document.getElementById(containerId);\n if (!container) {\n console.error(`Container ${containerId} non trouvé`);\n return;\n }\n\n container.innerHTML = `\n <div class=\"sunuid-service-unavailable\" style=\"\n text-align: center;\n padding: 40px 20px;\n background: #f8f9fa;\n border: 2px dashed #dee2e6;\n border-radius: 10px;\n color: #6c757d;\n font-family: Arial, sans-serif;\n \">\n <div style=\"font-size: 48px; margin-bottom: 20px;\">⚠️</div>\n <h3 style=\"margin: 0 0 10px 0; color: #495057;\">Service Non Disponible</h3>\n <p style=\"margin: 0; font-size: 14px;\">\n Le service d'authentification est temporairement indisponible.<br>\n Veuillez réessayer plus tard.\n </p>\n <div style=\"margin-top: 20px; font-size: 12px; color: #adb5bd;\">\n Type: ${type.toUpperCase()}\n </div>\n </div>\n `;\n }\n\n /**\n * Rafraîchir un QR code\n */\n async refreshQR(containerId, options = {}) {\n try {\n const result = await this.generateQR(containerId, options);\n return result;\n } catch (error) {\n console.error('Erreur lors du rafraîchissement:', error.message);\n this.displayServiceUnavailable(containerId, this.config.type);\n throw error;\n }\n }\n\n /**\n * Démarrer le rafraîchissement automatique\n */\n startAutoRefresh(containerId, type, options) {\n if (!this.config.autoRefresh) return;\n\n this.refreshTimer = setInterval(async () => {\n try {\n await this.refreshQR(containerId, type, options);\n } catch (error) {\n console.warn('Erreur lors du rafraîchissement automatique:', error);\n }\n }, this.config.refreshInterval);\n }\n\n /**\n * Démarrer le timer de compte à rebours\n */\n\n\n /**\n * Effectuer une requête API\n */\n async makeRequest(endpoint, data) {\n // Utiliser l'endpoint depuis la configuration si disponible\n const endpointPath = window.SunuIDConfig?.endpoints?.[endpoint.replace('/', '')] || endpoint;\n const url = `${this.config.apiUrl}${endpointPath}`;\n \n // Log pour déboguer l'envoi du type\n if (data.type !== undefined) {\n console.log(`🌐 Envoi requête API - Type: ${data.type}, Endpoint: ${endpoint}`);\n }\n \n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${this.config.clientId}:${this.config.secretId}`,\n 'Accept': 'application/json'\n },\n body: JSON.stringify({\n ...data,\n client_id: this.config.clientId,\n secret_id: this.config.secretId\n })\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n let errorData;\n try {\n errorData = JSON.parse(errorText);\n } catch (e) {\n errorData = { message: errorText };\n }\n \n throw new Error(errorData.message || `Erreur HTTP: ${response.status}`);\n }\n\n const result = await response.json();\n return result;\n } catch (error) {\n console.error('Erreur API SunuID:', error);\n throw error;\n }\n }\n\n /**\n * Appliquer le thème\n */\n applyTheme(theme) {\n const container = document.querySelector('.sunuid-qr-code');\n if (container) {\n container.className = `sunuid-qr-code sunuid-theme-${theme}`;\n }\n }\n\n /**\n * Gérer les erreurs\n */\n handleError(error) {\n console.error('SunuID SDK Error:', error);\n \n if (this.config.onError) {\n this.config.onError(error);\n }\n }\n\n /**\n * Nettoyer les ressources\n */\n destroy() {\n if (this.refreshTimer) {\n clearInterval(this.refreshTimer);\n }\n \n // Fermer la connexion WebSocket\n if (this.socket) {\n this.socket.disconnect();\n this.socket = null;\n console.log('🌐 WebSocket déconnecté');\n }\n \n this.isInitialized = false;\n console.log('SunuID SDK détruit');\n }\n }\n\n // Exposer la classe globalement\n window.SunuID = SunuID;\n window.sunuidInstance = null;\n\n // Fonction d'initialisation globale\n window.initSunuID = function(config) {\n try {\n window.sunuidInstance = new SunuID(config);\n return window.sunuidInstance;\n } catch (error) {\n console.error('Erreur lors de l\\'initialisation de SunuID:', error);\n throw error;\n }\n };\n\n})(window); "],"names":["window","_window$SunuIDConfig","DEFAULT_CONFIG","apiUrl","SunuIDConfig","clientId","secretId","type","theme","language","autoRefresh","refreshInterval","onSuccess","onError","onStatusUpdate","onExpired","SunuID","config","arguments","length","undefined","_classCallCheck","this","_objectSpread","qrCode","refreshTimer","isInitialized","socket","init","key","value","Error","console","log","initWebSocket","_this","ip","getClientIP","io","query","token","userId","username","on","id","reason","error","data","handleQRStatusUpdate","handleQRScanSuccess","handleQRExpired","event","connected","emit","concat","warn","_generateQR","_asyncToGenerator","_regenerator","m","_callee","containerId","options","response","qrImageUrl","_t","_args","w","_context","p","n","makeRequest","v","success","qrcode","displayQRCode","startAutoRefresh","emitWebSocketEvent","serviceId","service_id","qrCodeUrl","timestamp","Date","now","a","sessionId","message","displayServiceUnavailable","_x","apply","_generateCustomQR","_callee2","_t2","_args2","_context2","_x2","_x3","_generateAuthQR","_callee3","_args3","_context3","generateQR","_x4","_generateKYCQR","_callee4","originalType","_args4","_context4","f","_x5","_checkQRStatus","_callee5","_t3","_context5","handleError","_x6","qrUrl","container","document","getElementById","innerHTML","qrElement","createElement","className","appendChild","applyTheme","toUpperCase","_refreshQR","_callee6","result","_t4","_args6","_context6","_x7","_this2","setInterval","_callee7","_t5","_context7","refreshQR","_makeRequest","_callee8","endpoint","_window$SunuIDConfig2","endpointPath","url","errorText","errorData","_t6","_context8","endpoints","replace","fetch","method","headers","Authorization","Accept","body","JSON","stringify","client_id","secret_id","ok","text","parse","e","status","json","_x8","_x9","querySelector","clearInterval","disconnect","sunuidInstance","initSunuID"],"mappings":";;;;;;;;;MAQA,SAAUA,EAAMC,GAIZ,IAAMC,EAAiB,CACnBC,QAA2BF,QAAnBA,EAAAD,EAAOI,oBAAPH,IAAmBA,OAAnBA,EAAAA,EAAqBE,SAAU,8BACvCE,SAAU,KACVC,SAAU,KACVC,KAAM,EACNC,MAAO,QACPC,SAAU,KACVC,aAAa,EACbC,gBAAiB,IACjBC,UAAW,KACXC,QAAS,KACTC,eAAgB,KAChBC,UAAW,MAMTC,EAAM,WAWR,SAVA,SAAAA,IAAyB,IAAbC,EAAMC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,+FAAEG,MAAAL,GACnBM,KAAKL,OAAMM,EAAAA,EAAQrB,CAAAA,EAAAA,GAAmBe,GACtCK,KAAKE,OAAS,KACdF,KAAKG,aAAe,KACpBH,KAAKI,eAAgB,EACrBJ,KAAKK,OAAS,KAEdL,KAAKM,MACT,IAEA,CAAA,CAAAC,IAAA,OAAAC,MAGA,WACI,IAAKR,KAAKL,OAAOZ,WAAaiB,KAAKL,OAAOX,SACtC,MAAM,IAAIyB,MAAM,4CAGpBT,KAAKI,eAAgB,EACrBM,QAAQC,IAAI,qCAGZX,KAAKY,eACT,GAEA,CAAAL,IAAA,gBAAAC,MAGA,WAAgB,IAAAK,EAAAb,KACZ,IAEI,IAAMc,EAAKd,KAAKe,cAGXf,KAAKK,SACNL,KAAKK,OAASW,GAAG,iCAAkC,CAC/CC,MAAO,CACHC,MAAOlB,KAAKL,OAAOZ,SACnBE,KAAM,MACNkC,OAAQnB,KAAKL,OAAOZ,SACpBqC,SAAUN,KAKlBd,KAAKK,OAAOgB,GAAG,UAAW,WACtBX,QAAQC,IAAI,qCACZD,QAAQC,IAAI,gBAAiBE,EAAKR,OAAOiB,GAC7C,GAEAtB,KAAKK,OAAOgB,GAAG,aAAc,SAACE,GAC1Bb,QAAQC,IAAI,0BAA2BY,EAC3C,GAEAvB,KAAKK,OAAOgB,GAAG,gBAAiB,SAACG,GAC7Bd,QAAQc,MAAM,gCAAiCA,EACnD,GAGAxB,KAAKK,OAAOgB,GAAG,mBAAoB,SAACI,GAChCf,QAAQC,IAAI,kCAAmCc,GAC/CZ,EAAKa,qBAAqBD,EAC9B,GAEAzB,KAAKK,OAAOgB,GAAG,kBAAmB,SAACI,GAC/Bf,QAAQC,IAAI,yBAA0Bc,GACtCZ,EAAKc,oBAAoBF,EAC7B,GAEAzB,KAAKK,OAAOgB,GAAG,aAAc,SAACI,GAC1Bf,QAAQC,IAAI,oBAAqBc,GACjCZ,EAAKe,gBAAgBH,EACzB,GAEP,CAAC,MAAOD,GACLd,QAAQc,MAAM,qCAAsCA,EACxD,CACJ,GAEA,CAAAjB,IAAA,cAAAC,MAGA,WAEI,MAAO,WACX,GAEA,CAAAD,IAAA,uBAAAC,MAGA,SAAqBiB,GACbzB,KAAKL,OAAOH,gBACZQ,KAAKL,OAAOH,eAAeiC,EAEnC,GAEA,CAAAlB,IAAA,sBAAAC,MAGA,SAAoBiB,GACZzB,KAAKL,OAAOL,WACZU,KAAKL,OAAOL,UAAUmC,EAE9B,GAEA,CAAAlB,IAAA,kBAAAC,MAGA,SAAgBiB,GACRzB,KAAKL,OAAOF,WACZO,KAAKL,OAAOF,UAAUgC,EAE9B,GAEA,CAAAlB,IAAA,qBAAAC,MAGA,SAAmBqB,EAAOJ,GAClBzB,KAAKK,QAAUL,KAAKK,OAAOyB,WAC3B9B,KAAKK,OAAO0B,KAAKF,EAAOJ,GACxBf,QAAQC,IAAGqB,gCAAAA,OAAiCH,GAASJ,IAErDf,QAAQuB,KAAK,+DAAkEJ,EAEvF,GAEA,CAAAtB,IAAA,qBAAAC,MAGA,WACI,OAAKR,KAAKK,OAGHL,KAAKK,OAAOyB,UAAY,YAAc,eAFlC,iBAGf,GAEA,CAAAvB,IAAA,aAAAC,OAAA0B,EAAAC,EAAAC,IAAAC,EAGA,SAAAC,EAAiBC,GAAW,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAhD,UAAA,OAAAwC,IAAAS,EAAA,SAAAC,GAAA,cAAAA,EAAAC,EAAAD,EAAAE,GAAA,KAAA,EAAc,GAAZR,EAAOI,EAAA/C,OAAA+C,QAAA9C,IAAA8C,EAAA9C,GAAA8C,EAAG,GAAA,CAAA,EAC/B5C,KAAKI,cAAa,CAAA0C,EAAAE,EAAA,EAAA,KAAA,CAAA,MACb,IAAIvC,MAAM,8BAA6B,KAAA,EAAA,OAAAqC,EAAAC,EAAA,EAAAD,EAAAE,EAAA,EAItBhD,KAAKiD,YAAY,eAAchD,EAAA,CAClDhB,KAAMe,KAAKL,OAAOV,MACfuD,IACL,KAAA,EAHY,KAARC,EAAQK,EAAAI,GAKDC,QAAO,CAAAL,EAAAE,EAAA,EAAA,KAAA,CAab,OAVGN,EAAU,GAAAV,OADK,2BACaA,OAAGS,EAAShB,KAAK2B,QACnDpD,KAAKqD,cAAcd,EAAaG,EAAY1C,KAAKL,OAAOV,KAAMuD,GAC9DxC,KAAKsD,iBAAiBf,EAAavC,KAAKL,OAAOV,KAAMuD,GAGrDxC,KAAKuD,mBAAmB,eAAgB,CACpCC,UAAWf,EAAShB,KAAKgC,WACzBxE,KAAMe,KAAKL,OAAOV,KAClByE,UAAWhB,EACXiB,UAAWC,KAAKC,QACjBf,EAAAgB,EAAA7D,EAAAA,EAAAA,EAAA,CAAA,EAGIwC,EAAShB,MAAI,GAAA,CAChBiC,UAAWhB,EACXqB,UAAWtB,EAAShB,KAAKgC,cAAU,KAAA,EAAA,MAGjC,IAAIhD,MAAMgC,EAASuB,SAAW,2CAA0C,KAAA,EAAAlB,EAAAE,EAAA,EAAA,MAAA,KAAA,EAKpB,MALoBF,EAAAC,EAAA,EAAAJ,EAAAG,EAAAI,EAGlFxC,QAAQc,MAAM,uBAAwBmB,EAAMqB,SAC5CtD,QAAQC,IAAI,2DAA6DX,KAAKL,OAAOV,MACrFe,KAAKiE,0BAA0B1B,EAAavC,KAAKL,OAAOV,MAClD,IAAIwB,MAAM,0BAAyB,KAAA,EAAA,OAAAqC,EAAAgB,EAAA,GAAA,EAAAxB,EAAAtC,KAAA,CAAA,CAAA,EAAA,IAEhD,IAAA,SAxCekE,GAAA,OAAAhC,EAAAiC,MAAAnE,KAAAJ,UAAA,IA4ChB,CAAAW,IAAA,mBAAAC,OAAA4D,EAAAjC,EAAAC,IAAAC,EAGA,SAAAgC,EAAuB9B,EAAatD,GAAI,IAAAuD,EAAAC,EAAAC,EAAA4B,EAAAC,EAAA3E,UAAA,OAAAwC,IAAAS,EAAA,SAAA2B,GAAA,cAAAA,EAAAzB,EAAAyB,EAAAxB,GAAA,KAAA,EAAc,GAAZR,EAAO+B,EAAA1E,OAAA0E,QAAAzE,IAAAyE,EAAAzE,GAAAyE,EAAG,GAAA,CAAA,EAC3CvE,KAAKI,cAAa,CAAAoE,EAAAxB,EAAA,EAAA,KAAA,CAAA,MACb,IAAIvC,MAAM,8BAA6B,KAAA,EAAA,OAAA+D,EAAAzB,EAAA,EAAAyB,EAAAxB,EAAA,EAItBhD,KAAKiD,YAAY,eAAchD,EAAA,CAClDhB,KAAMA,GACHuD,IACL,KAAA,EAHY,KAARC,EAAQ+B,EAAAtB,GAKDC,QAAO,CAAAqB,EAAAxB,EAAA,EAAA,KAAA,CAKkC,OAF5CN,EAAU,GAAAV,OADK,2BACaA,OAAGS,EAAShB,KAAK2B,QACnDpD,KAAKqD,cAAcd,EAAaG,EAAYzD,EAAMuD,GAClDxC,KAAKsD,iBAAiBf,EAAatD,EAAMuD,GAASgC,EAAAV,EAAA7D,EAAAA,EAAAA,EAAA,CAAA,EAE3CwC,EAAShB,MAAI,GAAA,CAChBiC,UAAWhB,EACXqB,UAAWtB,EAAShB,KAAKgC,cAAU,KAAA,EAAA,MAGjC,IAAIhD,MAAMgC,EAASuB,SAAW,2CAA0C,KAAA,EAAAQ,EAAAxB,EAAA,EAAA,MAAA,KAAA,EAKhC,MALgCwB,EAAAzB,EAAA,EAAAuB,EAAAE,EAAAtB,EAGlFxC,QAAQc,MAAM,uBAAwB8C,EAAMN,SAC5CtD,QAAQC,IAAI,2DAA6D1B,GACzEe,KAAKiE,0BAA0B1B,EAAatD,GACtC,IAAIwB,MAAM,0BAAyB,KAAA,EAAA,OAAA+D,EAAAV,EAAA,GAAA,EAAAO,EAAArE,KAAA,CAAA,CAAA,EAAA,IAEhD,IAAA,SA/BqByE,EAAAC,GAAA,OAAAN,EAAAD,MAAAnE,KAAAJ,UAAA,IAiCtB,CAAAW,IAAA,iBAAAC,OAAAmE,EAAAxC,EAAAC,IAAAC,EACA,SAAAuC,EAAqBrC,GAAW,IAAAC,EAAAqC,EAAAjF,UAAA,OAAAwC,IAAAS,EAAA,SAAAiC,GAAA,UAAA,IAAAA,EAAA9B,EAAc,OAAZR,EAAOqC,EAAAhF,OAAAgF,QAAA/E,IAAA+E,EAAA/E,GAAA+E,EAAG,GAAA,CAAA,EAAEC,EAAAhB,EACnC,EAAA9D,KAAK+E,WAAWxC,EAAaC,GAAQ,EAAAoC,EAAA5E,KAC/C,IAAA,SAFmBgF,GAAA,OAAAL,EAAAR,MAAAnE,KAAAJ,UAAA,IAAA,CAAAW,IAAA,gBAAAC,OAAAyE,EAAA9C,EAAAC,IAAAC,EAIpB,SAAA6C,EAAoB3C,GAAW,IAAAC,EAAA2C,EAAAC,EAAAxF,UAAA,OAAAwC,IAAAS,EAAA,SAAAwC,GAAA,cAAAA,EAAAtC,EAAAsC,EAAArC,GAAA,KAAA,EAIN,OAJQR,EAAO4C,EAAAvF,OAAAuF,QAAAtF,IAAAsF,EAAAtF,GAAAsF,EAAG,GAAA,CAAA,EAEjCD,EAAenF,KAAKL,OAAOV,KAEjCe,KAAKL,OAAOV,KAAO,EAAEoG,EAAAtC,EAAA,EAAAsC,EAAArC,EAAA,EAEJhD,KAAK+E,WAAWxC,EAAaC,GAAQ,KAAA,EAAA,OAAA6C,EAAAvB,EAAAuB,EAAAA,EAAAnC,GAAA,KAAA,EAGlB,OAHkBmC,EAAAtC,EAAA,EAGlD/C,KAAKL,OAAOV,KAAOkG,EAAaE,EAAAC,EAAA,GAAA,KAAA,EAAA,OAAAD,EAAAvB,EAAA,GAAA,EAAAoB,EAAAlF,KAAA,CAAA,CAAA,EAAA,CAAA,EAAA,IAEvC,IAAA,SAXkBuF,GAAA,OAAAN,EAAAd,MAAAnE,KAAAJ,UAAA,IAanB,CAAAW,IAAA,gBAAAC,OAAAgF,EAAArD,EAAAC,IAAAC,EAGA,SAAAoD,EAAoB1B,GAAS,IAAAtB,EAAAiD,EAAA,OAAAtD,IAAAS,EAAA,SAAA8C,GAAA,cAAAA,EAAA5C,EAAA4C,EAAA3C,GAAA,KAAA,EAAA,GACpBhD,KAAKI,cAAa,CAAAuF,EAAA3C,EAAA,EAAA,KAAA,CAAA,MACb,IAAIvC,MAAM,8BAA6B,KAAA,EAAA,OAAAkF,EAAA5C,EAAA,EAAA4C,EAAA3C,EAAA,EAItBhD,KAAKiD,YAAY,aAAc,CAClDO,UAAWO,IACb,KAAA,EAFY,KAARtB,EAAQkD,EAAAzC,GAIDC,QAAO,CAAAwC,EAAA3C,EAAA,EAAA,KAAA,CAAA,OAAA2C,EAAA7B,EACTrB,EAAAA,EAAShB,MAAI,KAAA,EAAA,MAEd,IAAIhB,MAAMgC,EAASuB,SAAW,4CAA2C,KAAA,EAAA2B,EAAA3C,EAAA,EAAA,MAAA,KAAA,EAG3D,MAH2D2C,EAAA5C,EAAA,EAAA2C,EAAAC,EAAAzC,EAGnFlD,KAAK4F,YAAWF,GAAQA,EAAA,KAAA,EAAA,OAAAC,EAAA7B,EAAA,GAAA,EAAA2B,EAAAzF,KAAA,CAAA,CAAA,EAAA,IAG/B,IAAA,SAnBkB6F,GAAA,OAAAL,EAAArB,MAAAnE,KAAAJ,UAAA,IAqBnB,CAAAW,IAAA,gBAAAC,MAGA,SAAc+B,EAAauD,EAAO7G,GAAoB,IAAduD,EAAO5C,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACxCmG,EAAYC,SAASC,eAAe1D,GAC1C,IAAKwD,EACD,MAAM,IAAItF,MAAK,yBAAAuB,OAAyBO,mBAI5CwD,EAAUG,UAAY,GAGtB,IAAMC,EAAYH,SAASI,cAAc,OACzCD,EAAUE,UAAY,iBACtBF,EAAUD,UAASlE,iFAAAA,OAEI,IAAT/C,EAAa,mBAA8B,IAATA,EAAa,mBAA8B,IAATA,EAAa,iBAAmB,gBAAkBA,EAAI,oHAAA+C,OAGpH8D,EAQnB,0aAEDC,EAAUO,YAAYH,GAGtBnG,KAAKuG,WAAW/D,EAAQtD,OAASc,KAAKL,OAAOT,MACjD,GAEA,CAAAqB,IAAA,4BAAAC,MAGA,SAA0B+B,EAAatD,GACnCyB,QAAQC,IAAG,0CAAAqB,OAA2CO,EAAW,YAAAP,OAAW/C,IAC5E,IAAM8G,EAAYC,SAASC,eAAe1D,GACrCwD,EAKLA,EAAUG,UAAS,45BAAAlE,OAiBC/C,EAAKuH,cAGxB,sEAxBG9F,QAAQc,MAAK,aAAAQ,OAAcO,iBAyBnC,GAEA,CAAAhC,IAAA,YAAAC,OAAAiG,EAAAtE,EAAAC,IAAAC,EAGA,SAAAqE,EAAgBnE,GAAW,IAAAC,EAAAmE,EAAAC,EAAAC,EAAAjH,UAAA,OAAAwC,IAAAS,EAAA,SAAAiE,GAAA,cAAAA,EAAA/D,EAAA+D,EAAA9D,GAAA,KAAA,EAAc,OAAZR,EAAOqE,EAAAhH,OAAAgH,QAAA/G,IAAA+G,EAAA/G,GAAA+G,EAAG,GAAA,CAAA,EAAEC,EAAA/D,EAAA,EAAA+D,EAAA9D,EAAA,EAEZhD,KAAK+E,WAAWxC,EAAaC,GAAQ,KAAA,EAA9C,OAANmE,EAAMG,EAAA5D,EAAA4D,EAAAhD,EAAA,EACL6C,GAAM,KAAA,EAGiD,MAHjDG,EAAA/D,EAAA,EAAA6D,EAAAE,EAAA5D,EAEbxC,QAAQc,MAAM,mCAAoCoF,EAAM5C,SACxDhE,KAAKiE,0BAA0B1B,EAAavC,KAAKL,OAAOV,MAAM2H,EAAA,KAAA,EAAA,OAAAE,EAAAhD,EAAA,GAAA,EAAA4C,EAAA1G,KAAA,CAAA,CAAA,EAAA,IAGrE,IAAA,SATc+G,GAAA,OAAAN,EAAAtC,MAAAnE,KAAAJ,UAAA,IAWf,CAAAW,IAAA,mBAAAC,MAGA,SAAiB+B,EAAatD,EAAMuD,GAAS,IAAAwE,EAAAhH,KACpCA,KAAKL,OAAOP,cAEjBY,KAAKG,aAAe8G,YAAW9E,EAAAC,IAAAC,EAAC,SAAA6E,IAAA,IAAAC,EAAA,OAAA/E,IAAAS,EAAA,SAAAuE,GAAA,cAAAA,EAAArE,EAAAqE,EAAApE,GAAA,KAAA,EAAA,OAAAoE,EAAArE,EAAA,EAAAqE,EAAApE,EAAA,EAElBgE,EAAKK,UAAU9E,EAAatD,EAAMuD,GAAQ,KAAA,EAAA4E,EAAApE,EAAA,EAAA,MAAA,KAAA,EAAAoE,EAAArE,EAAA,EAAAoE,EAAAC,EAAAlE,EAEhDxC,QAAQuB,KAAK,+CAA8CkF,GAAS,KAAA,EAAA,OAAAC,EAAAtD,EAAA,GAAA,EAAAoD,EAAA,KAAA,CAAA,CAAA,EAAA,IAE3E,IAAElH,KAAKL,OAAON,iBACnB,GAOA,CAAAkB,IAAA,cAAAC,OAAA8G,EAAAnF,EAAAC,IAAAC,EAGA,SAAAkF,EAAkBC,EAAU/F,GAAI,IAAAgG,EAAAC,EAAAC,EAAAlF,EAAAmF,EAAAC,EAAAlB,EAAAmB,EAAA,OAAA1F,IAAAS,EAAA,SAAAkF,GAAA,cAAAA,EAAAhF,EAAAgF,EAAA/E,GAAA,KAAA,EAQ3B,OANK0E,GAAkC,QAAnBD,EAAA/I,EAAOI,oBAAY,IAAA2I,GAAWA,QAAXA,EAAnBA,EAAqBO,iBAArBP,IAA8BA,OAA9BA,EAAAA,EAAiCD,EAASS,QAAQ,IAAK,OAAQT,EAC9EG,EAAG3F,GAAAA,OAAMhC,KAAKL,OAAOd,QAAMmD,OAAG0F,QAGlB5H,IAAd2B,EAAKxC,MACLyB,QAAQC,IAAGqB,gCAAAA,OAAiCP,EAAKxC,KAAI+C,gBAAAA,OAAewF,IACvEO,EAAAhF,EAAA,EAAAgF,EAAA/E,EAAA,EAG0BkF,MAAMP,EAAK,CAC9BQ,OAAQ,OACRC,QAAS,CACL,eAAgB,mBAChBC,wBAAerG,OAAYhC,KAAKL,OAAOZ,SAAQiD,KAAAA,OAAIhC,KAAKL,OAAOX,UAC/DsJ,OAAU,oBAEdC,KAAMC,KAAKC,UAASxI,EAAAA,EAAA,GACbwB,GAAI,GAAA,CACPiH,UAAW1I,KAAKL,OAAOZ,SACvB4J,UAAW3I,KAAKL,OAAOX,cAE7B,KAAA,EAZY,IAARyD,EAAQsF,EAAA7E,GAcA0F,GAAE,CAAAb,EAAA/E,EAAA,EAAA,KAAA,CAAA,OAAA+E,EAAA/E,EAAA,EACYP,EAASoG,OAAM,KAAA,EAAjCjB,EAASG,EAAA7E,EAEf,IACI2E,EAAYW,KAAKM,MAAMlB,EAC1B,CAAC,MAAOmB,GACLlB,EAAY,CAAE7D,QAAS4D,EAC3B,CAAC,MAEK,IAAInH,MAAMoH,EAAU7D,SAAOhC,gBAAAA,OAAoBS,EAASuG,SAAS,KAAA,EAAA,OAAAjB,EAAA/E,EAAA,EAGtDP,EAASwG,OAAM,KAAA,EAAxB,OAANtC,EAAMoB,EAAA7E,EAAA6E,EAAAjE,EAAA,EACL6C,GAAM,KAAA,EAE8B,MAF9BoB,EAAAhF,EAAA,EAAA+E,EAAAC,EAAA7E,EAEbxC,QAAQc,MAAM,qBAAoBsG,GAASA,EAAA,KAAA,EAAA,OAAAC,EAAAjE,EAAA,GAAA,EAAAyD,EAAAvH,KAAA,CAAA,CAAA,EAAA,IAGlD,IAAA,SA3CgBkJ,EAAAC,GAAA,OAAA7B,EAAAnD,MAAAnE,KAAAJ,UAAA,IA6CjB,CAAAW,IAAA,aAAAC,MAGA,SAAWtB,GACP,IAAM6G,EAAYC,SAASoD,cAAc,mBACrCrD,IACAA,EAAUM,UAAS,+BAAArE,OAAkC9C,GAE7D,GAEA,CAAAqB,IAAA,cAAAC,MAGA,SAAYgB,GACRd,QAAQc,MAAM,oBAAqBA,GAE/BxB,KAAKL,OAAOJ,SACZS,KAAKL,OAAOJ,QAAQiC,EAE5B,GAEA,CAAAjB,IAAA,UAAAC,MAGA,WACQR,KAAKG,cACLkJ,cAAcrJ,KAAKG,cAInBH,KAAKK,SACLL,KAAKK,OAAOiJ,aACZtJ,KAAKK,OAAS,KACdK,QAAQC,IAAI,4BAGhBX,KAAKI,eAAgB,EACrBM,QAAQC,IAAI,qBAChB,iGAtFA2G,EAlCAb,EA9FAjB,EAjBoBP,EADpBN,EApCAP,EA/CAlC,EAzIQ,GAwcZxD,EAAOgB,OAASA,EAChBhB,EAAO6K,eAAiB,KAGxB7K,EAAO8K,WAAa,SAAS7J,GACzB,IAEI,OADAjB,EAAO6K,eAAiB,IAAI7J,EAAOC,GAC5BjB,EAAO6K,cACjB,CAAC,MAAO/H,GAEL,MADAd,QAAQc,MAAM,6CAA+CA,GACvDA,CACV,EAGP,CA5eD,CA4eG9C"}
1
+ {"version":3,"file":"sunuid-sdk.min.js","sources":["../src/sunuid-sdk.js"],"sourcesContent":["/**\n * SunuID SDK - Package d'intégration pour partenaires\n * \n * @version 1.0.0\n * @author SunuID Team\n * @license MIT\n */\n\n(function(window) {\n 'use strict';\n\n // Configuration par défaut\n const DEFAULT_CONFIG = {\n apiUrl: window.SunuIDConfig?.apiUrl || 'https://api.sunuid.fayma.sn',\n clientId: null,\n secretId: null,\n type: 1, // Type par défaut (1 = authentification)\n theme: 'light',\n language: 'fr',\n autoRefresh: true,\n refreshInterval: 30000, // 30 secondes\n onSuccess: null,\n onError: null,\n onStatusUpdate: null,\n onExpired: null\n };\n\n /**\n * Classe principale SunuID\n */\n class SunuID {\n constructor(config = {}) {\n this.config = { ...DEFAULT_CONFIG, ...config };\n this.qrCode = null;\n this.refreshTimer = null;\n this.isInitialized = false;\n this.socket = null;\n \n this.init();\n }\n\n /**\n * Initialisation du SDK\n */\n init() {\n if (!this.config.clientId || !this.config.secretId) {\n throw new Error('SunuID: clientId et secretId sont requis');\n }\n\n this.isInitialized = true;\n console.log('SunuID SDK initialisé avec succès');\n \n // Initialiser la connexion WebSocket\n this.initWebSocket();\n }\n\n /**\n * Initialiser la connexion WebSocket\n */\n initWebSocket() {\n try {\n // Vérifier si Socket.IO est disponible\n if (typeof io === 'undefined') {\n console.warn('⚠️ Socket.IO non disponible, WebSocket sera initialisé plus tard');\n // Réessayer après un délai\n setTimeout(() => this.initWebSocket(), 1000);\n return;\n }\n \n // Obtenir l'IP du client (simulation)\n const ip = this.getClientIP();\n \n // Initialiser la connexion WebSocket si elle n'existe pas\n if (!this.socket) {\n this.socket = io('wss://samasocket.fayma.sn:9443', {\n query: {\n token: this.config.clientId,\n type: 'web',\n userId: this.config.clientId,\n username: ip\n }\n });\n\n // Gestion des événements WebSocket\n this.socket.on('connect', () => {\n console.log('🌐 WebSocket connecté avec succès');\n console.log('📊 Socket ID:', this.socket.id);\n });\n\n this.socket.on('disconnect', (reason) => {\n console.log('❌ WebSocket déconnecté:', reason);\n });\n\n this.socket.on('connect_error', (error) => {\n console.error('❌ Erreur connexion WebSocket:', error);\n });\n\n // Écouter les événements spécifiques\n this.socket.on('qr_status_update', (data) => {\n console.log('📱 Mise à jour statut QR reçue:', data);\n this.handleQRStatusUpdate(data);\n });\n\n this.socket.on('qr_scan_success', (data) => {\n console.log('✅ Scan QR réussi reçu:', data);\n this.handleQRScanSuccess(data);\n });\n\n this.socket.on('qr_expired', (data) => {\n console.log('⏰ QR expiré reçu:', data);\n this.handleQRExpired(data);\n });\n }\n } catch (error) {\n console.error('❌ Erreur initialisation WebSocket:', error);\n }\n }\n\n /**\n * Obtenir l'IP du client (simulation)\n */\n getClientIP() {\n // Simulation - en production, vous pourriez utiliser un service d'IP\n return '127.0.0.1';\n }\n\n /**\n * Gérer la mise à jour du statut QR\n */\n handleQRStatusUpdate(data) {\n if (this.config.onStatusUpdate) {\n this.config.onStatusUpdate(data);\n }\n }\n\n /**\n * Gérer le succès du scan QR\n */\n handleQRScanSuccess(data) {\n if (this.config.onSuccess) {\n this.config.onSuccess(data);\n }\n }\n\n /**\n * Gérer l'expiration du QR\n */\n handleQRExpired(data) {\n if (this.config.onExpired) {\n this.config.onExpired(data);\n }\n }\n\n /**\n * Émettre un événement WebSocket\n */\n emitWebSocketEvent(event, data) {\n if (this.socket && this.socket.connected) {\n this.socket.emit(event, data);\n console.log(`📤 Événement WebSocket émis: ${event}`, data);\n } else if (typeof io === 'undefined') {\n console.warn('⚠️ Socket.IO non disponible, impossible d\\'émettre l\\'événement:', event);\n } else {\n console.warn('⚠️ WebSocket non connecté, impossible d\\'émettre l\\'événement:', event);\n }\n }\n\n /**\n * Obtenir le statut de la connexion WebSocket\n */\n getWebSocketStatus() {\n if (!this.socket) {\n return 'not_initialized';\n }\n return this.socket.connected ? 'connected' : 'disconnected';\n }\n\n /**\n * Forcer l'initialisation WebSocket (si Socket.IO devient disponible plus tard)\n */\n forceWebSocketInit() {\n if (typeof io !== 'undefined' && !this.socket) {\n console.log('🔄 Forçage de l\\'initialisation WebSocket...');\n this.initWebSocket();\n }\n }\n\n /**\n * Générer un QR code avec le type configuré\n */\n async generateQR(containerId, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-generate', {\n type: this.config.type, // Utilise le type configuré\n ...options\n });\n\n if (response.success) {\n // Construire l'URL complète de l'image QR avec la base URL pour les images\n const imageBaseUrl = 'https://sunuid.fayma.sn';\n const qrImageUrl = `${imageBaseUrl}${response.data.qrcode}`;\n this.displayQRCode(containerId, qrImageUrl, this.config.type, options);\n this.startAutoRefresh(containerId, this.config.type, options);\n \n // Émettre un événement WebSocket pour la génération du QR\n this.emitWebSocketEvent('qr_generated', {\n serviceId: response.data.service_id,\n type: this.config.type,\n qrCodeUrl: qrImageUrl,\n timestamp: Date.now()\n });\n \n return {\n ...response.data,\n qrCodeUrl: qrImageUrl,\n sessionId: response.data.service_id\n };\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code');\n }\n } catch (error) {\n console.error('Erreur API détectée:', error.message);\n console.log('Affichage du message \"Service non disponible\" pour type ' + this.config.type);\n this.displayServiceUnavailable(containerId, this.config.type);\n throw new Error('Service non disponible');\n }\n }\n\n\n\n /**\n * Générer un QR code avec un type personnalisé\n */\n async generateCustomQR(containerId, type, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-generate', {\n type: type, // Type personnalisé (1, 2, 3, etc.)\n ...options\n });\n\n if (response.success) {\n // Construire l'URL complète de l'image QR avec la base URL pour les images\n const imageBaseUrl = 'https://sunuid.fayma.sn';\n const qrImageUrl = `${imageBaseUrl}${response.data.qrcode}`;\n this.displayQRCode(containerId, qrImageUrl, type, options);\n this.startAutoRefresh(containerId, type, options);\n return {\n ...response.data,\n qrCodeUrl: qrImageUrl,\n sessionId: response.data.service_id\n };\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code');\n }\n } catch (error) {\n console.error('Erreur API détectée:', error.message);\n console.log('Affichage du message \"Service non disponible\" pour type ' + type);\n this.displayServiceUnavailable(containerId, type);\n throw new Error('Service non disponible');\n }\n }\n\n // Alias pour maintenir la compatibilité\n async generateAuthQR(containerId, options = {}) {\n return this.generateQR(containerId, options);\n }\n\n async generateKYCQR(containerId, options = {}) {\n // Sauvegarder le type actuel\n const originalType = this.config.type;\n // Changer temporairement le type pour KYC\n this.config.type = 2;\n try {\n return await this.generateQR(containerId, options);\n } finally {\n // Restaurer le type original\n this.config.type = originalType;\n }\n }\n\n /**\n * Vérifier le statut d'un QR code\n */\n async checkQRStatus(sessionId) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-status', {\n serviceId: sessionId\n });\n\n if (response.success) {\n return response.data;\n } else {\n throw new Error(response.message || 'Erreur lors de la vérification du statut');\n }\n } catch (error) {\n this.handleError(error);\n throw error;\n }\n }\n\n /**\n * Afficher un QR code dans un conteneur\n */\n displayQRCode(containerId, qrUrl, type, options = {}) {\n const container = document.getElementById(containerId);\n if (!container) {\n throw new Error(`Conteneur avec l'ID \"${containerId}\" non trouvé`);\n }\n\n // Nettoyer le conteneur\n container.innerHTML = '';\n\n // Créer l'élément QR code\n const qrElement = document.createElement('div');\n qrElement.className = 'sunuid-qr-code';\n qrElement.innerHTML = `\n <div class=\"sunuid-qr-header\">\n <h3>${type === 1 ? 'Authentification' : type === 2 ? 'Vérification KYC' : type === 3 ? 'Service Type 3' : 'Service Type ' + type}</h3>\n </div>\n <div class=\"sunuid-qr-image\">\n <img src=\"${qrUrl}\" alt=\"QR Code SunuID\" style=\"max-width: 300px; height: auto;\">\n </div>\n <div class=\"sunuid-qr-instructions\">\n <p>Scannez ce QR code avec l'application SunuID pour vous connecter</p>\n </div>\n <div class=\"sunuid-qr-status\" id=\"sunuid-status\">\n <p>En attente de scan...</p>\n </div>\n `;\n\n container.appendChild(qrElement);\n\n // Appliquer le thème\n this.applyTheme(options.theme || this.config.theme);\n }\n\n /**\n * Afficher \"Service non disponible\"\n */\n displayServiceUnavailable(containerId, type) {\n console.log(`displayServiceUnavailable appelée pour ${containerId}, type: ${type}`);\n const container = document.getElementById(containerId);\n if (!container) {\n console.error(`Container ${containerId} non trouvé`);\n return;\n }\n\n container.innerHTML = `\n <div class=\"sunuid-service-unavailable\" style=\"\n text-align: center;\n padding: 40px 20px;\n background: #f8f9fa;\n border: 2px dashed #dee2e6;\n border-radius: 10px;\n color: #6c757d;\n font-family: Arial, sans-serif;\n \">\n <div style=\"font-size: 48px; margin-bottom: 20px;\">⚠️</div>\n <h3 style=\"margin: 0 0 10px 0; color: #495057;\">Service Non Disponible</h3>\n <p style=\"margin: 0; font-size: 14px;\">\n Le service d'authentification est temporairement indisponible.<br>\n Veuillez réessayer plus tard.\n </p>\n <div style=\"margin-top: 20px; font-size: 12px; color: #adb5bd;\">\n Type: ${type.toUpperCase()}\n </div>\n </div>\n `;\n }\n\n /**\n * Rafraîchir un QR code\n */\n async refreshQR(containerId, options = {}) {\n try {\n const result = await this.generateQR(containerId, options);\n return result;\n } catch (error) {\n console.error('Erreur lors du rafraîchissement:', error.message);\n this.displayServiceUnavailable(containerId, this.config.type);\n throw error;\n }\n }\n\n /**\n * Démarrer le rafraîchissement automatique\n */\n startAutoRefresh(containerId, type, options) {\n if (!this.config.autoRefresh) return;\n\n this.refreshTimer = setInterval(async () => {\n try {\n await this.refreshQR(containerId, type, options);\n } catch (error) {\n console.warn('Erreur lors du rafraîchissement automatique:', error);\n }\n }, this.config.refreshInterval);\n }\n\n /**\n * Démarrer le timer de compte à rebours\n */\n\n\n /**\n * Effectuer une requête API\n */\n async makeRequest(endpoint, data) {\n // Utiliser l'endpoint depuis la configuration si disponible\n const endpointPath = window.SunuIDConfig?.endpoints?.[endpoint.replace('/', '')] || endpoint;\n const url = `${this.config.apiUrl}${endpointPath}`;\n \n // Log pour déboguer l'envoi du type\n if (data.type !== undefined) {\n console.log(`🌐 Envoi requête API - Type: ${data.type}, Endpoint: ${endpoint}`);\n }\n \n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${this.config.clientId}:${this.config.secretId}`,\n 'Accept': 'application/json'\n },\n body: JSON.stringify({\n ...data,\n client_id: this.config.clientId,\n secret_id: this.config.secretId\n })\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n let errorData;\n try {\n errorData = JSON.parse(errorText);\n } catch (e) {\n errorData = { message: errorText };\n }\n \n throw new Error(errorData.message || `Erreur HTTP: ${response.status}`);\n }\n\n const result = await response.json();\n return result;\n } catch (error) {\n console.error('Erreur API SunuID:', error);\n throw error;\n }\n }\n\n /**\n * Appliquer le thème\n */\n applyTheme(theme) {\n const container = document.querySelector('.sunuid-qr-code');\n if (container) {\n container.className = `sunuid-qr-code sunuid-theme-${theme}`;\n }\n }\n\n /**\n * Gérer les erreurs\n */\n handleError(error) {\n console.error('SunuID SDK Error:', error);\n \n if (this.config.onError) {\n this.config.onError(error);\n }\n }\n\n /**\n * Nettoyer les ressources\n */\n destroy() {\n if (this.refreshTimer) {\n clearInterval(this.refreshTimer);\n }\n \n // Fermer la connexion WebSocket\n if (this.socket) {\n this.socket.disconnect();\n this.socket = null;\n console.log('🌐 WebSocket déconnecté');\n }\n \n this.isInitialized = false;\n console.log('SunuID SDK détruit');\n }\n }\n\n // Exposer la classe globalement\n window.SunuID = SunuID;\n window.sunuidInstance = null;\n\n // Fonction d'initialisation globale\n window.initSunuID = function(config) {\n try {\n window.sunuidInstance = new SunuID(config);\n return window.sunuidInstance;\n } catch (error) {\n console.error('Erreur lors de l\\'initialisation de SunuID:', error);\n throw error;\n }\n };\n\n})(window); "],"names":["window","_window$SunuIDConfig","DEFAULT_CONFIG","apiUrl","SunuIDConfig","clientId","secretId","type","theme","language","autoRefresh","refreshInterval","onSuccess","onError","onStatusUpdate","onExpired","SunuID","config","arguments","length","undefined","_classCallCheck","this","_objectSpread","qrCode","refreshTimer","isInitialized","socket","init","key","value","Error","console","log","initWebSocket","_this","io","warn","setTimeout","ip","getClientIP","query","token","userId","username","on","id","reason","error","data","handleQRStatusUpdate","handleQRScanSuccess","handleQRExpired","event","connected","emit","concat","_generateQR","_asyncToGenerator","_regenerator","m","_callee","containerId","options","response","qrImageUrl","_t","_args","w","_context","p","n","makeRequest","v","success","qrcode","displayQRCode","startAutoRefresh","emitWebSocketEvent","serviceId","service_id","qrCodeUrl","timestamp","Date","now","a","sessionId","message","displayServiceUnavailable","_x","apply","_generateCustomQR","_callee2","_t2","_args2","_context2","_x2","_x3","_generateAuthQR","_callee3","_args3","_context3","generateQR","_x4","_generateKYCQR","_callee4","originalType","_args4","_context4","f","_x5","_checkQRStatus","_callee5","_t3","_context5","handleError","_x6","qrUrl","container","document","getElementById","innerHTML","qrElement","createElement","className","appendChild","applyTheme","toUpperCase","_refreshQR","_callee6","result","_t4","_args6","_context6","_x7","_this2","setInterval","_callee7","_t5","_context7","refreshQR","_makeRequest","_callee8","endpoint","_window$SunuIDConfig2","endpointPath","url","errorText","errorData","_t6","_context8","endpoints","replace","fetch","method","headers","Authorization","Accept","body","JSON","stringify","client_id","secret_id","ok","text","parse","e","status","json","_x8","_x9","querySelector","clearInterval","disconnect","sunuidInstance","initSunuID"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sunuid-sdk",
3
- "version": "1.0.22",
3
+ "version": "1.0.23",
4
4
  "type": "module",
5
5
  "description": "SDK JavaScript pour l'intégration des QR codes d'authentification et KYC SunuID",
6
6
  "main": "dist/sunuid-sdk.js",