sunuid-sdk 1.0.3 → 1.0.5

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.
@@ -202,7 +202,6 @@ function _toPropertyKey(t) {
202
202
  // Configuration par défaut
203
203
  var DEFAULT_CONFIG = {
204
204
  apiUrl: 'https://sunuid.fayma.sn/api',
205
- partnerId: null,
206
205
  clientId: null,
207
206
  secretId: null,
208
207
  theme: 'light',
@@ -235,8 +234,8 @@ function _toPropertyKey(t) {
235
234
  return _createClass(SunuID, [{
236
235
  key: "init",
237
236
  value: function init() {
238
- if (!this.config.partnerId || !this.config.clientId || !this.config.secretId) {
239
- throw new Error('SunuID: partnerId, clientId et secretId sont requis');
237
+ if (!this.config.clientId || !this.config.secretId) {
238
+ throw new Error('SunuID: clientId et secretId sont requis');
240
239
  }
241
240
  this.isInitialized = true;
242
241
  console.log('SunuID SDK initialisé avec succès');
@@ -251,6 +250,9 @@ function _toPropertyKey(t) {
251
250
  var _generateAuthQR = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(containerId) {
252
251
  var options,
253
252
  response,
253
+ testData,
254
+ qrData,
255
+ qrUrl,
254
256
  _args = arguments,
255
257
  _t;
256
258
  return _regenerator().w(function (_context) {
@@ -285,8 +287,33 @@ function _toPropertyKey(t) {
285
287
  case 5:
286
288
  _context.p = 5;
287
289
  _t = _context.v;
288
- this.handleError(_t);
289
- throw _t;
290
+ console.warn('Erreur API détectée, génération d\'un QR code de test:', _t.message);
291
+
292
+ // En cas d'échec de l'API (CORS, 500, ou autre), générer un QR code de test
293
+ testData = _objectSpread2({
294
+ type: 'auth',
295
+ clientId: this.config.clientId,
296
+ timestamp: Date.now(),
297
+ sessionId: 'test_' + Math.random().toString(36).substr(2, 9),
298
+ apiUrl: this.config.apiUrl,
299
+ error: _t.message,
300
+ errorType: _t.name,
301
+ fallback: true
302
+ }, options);
303
+ qrData = JSON.stringify(testData);
304
+ qrUrl = "https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=".concat(encodeURIComponent(qrData));
305
+ this.displayQRCode(containerId, qrUrl, 'auth', options);
306
+ this.startAutoRefresh(containerId, 'auth', options);
307
+ return _context.a(2, {
308
+ success: true,
309
+ data: {
310
+ sessionId: testData.sessionId,
311
+ qrCodeUrl: qrUrl,
312
+ expires: Date.now() + 30000,
313
+ type: 'auth',
314
+ fallback: true
315
+ }
316
+ });
290
317
  case 6:
291
318
  return _context.a(2);
292
319
  }
@@ -307,6 +334,9 @@ function _toPropertyKey(t) {
307
334
  var _generateKYCQR = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(containerId) {
308
335
  var options,
309
336
  response,
337
+ testData,
338
+ qrData,
339
+ qrUrl,
310
340
  _args2 = arguments,
311
341
  _t2;
312
342
  return _regenerator().w(function (_context2) {
@@ -341,8 +371,33 @@ function _toPropertyKey(t) {
341
371
  case 5:
342
372
  _context2.p = 5;
343
373
  _t2 = _context2.v;
344
- this.handleError(_t2);
345
- throw _t2;
374
+ console.warn('Erreur API détectée, génération d\'un QR code KYC de test:', _t2.message);
375
+
376
+ // En cas d'échec de l'API, générer un QR code de test
377
+ testData = _objectSpread2({
378
+ type: 'kyc',
379
+ clientId: this.config.clientId,
380
+ timestamp: Date.now(),
381
+ sessionId: 'test_' + Math.random().toString(36).substr(2, 9),
382
+ apiUrl: this.config.apiUrl,
383
+ error: _t2.message,
384
+ errorType: _t2.name,
385
+ fallback: true
386
+ }, options);
387
+ qrData = JSON.stringify(testData);
388
+ qrUrl = "https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=".concat(encodeURIComponent(qrData));
389
+ this.displayQRCode(containerId, qrUrl, 'kyc', options);
390
+ this.startAutoRefresh(containerId, 'kyc', options);
391
+ return _context2.a(2, {
392
+ success: true,
393
+ data: {
394
+ sessionId: testData.sessionId,
395
+ qrCodeUrl: qrUrl,
396
+ expires: Date.now() + 30000,
397
+ type: 'kyc',
398
+ fallback: true
399
+ }
400
+ });
346
401
  case 6:
347
402
  return _context2.a(2);
348
403
  }
@@ -554,12 +609,13 @@ function _toPropertyKey(t) {
554
609
  method: 'POST',
555
610
  headers: {
556
611
  'Content-Type': 'application/json',
557
- 'X-SunuID-Client-ID': this.config.clientId,
558
- 'X-SunuID-Secret-ID': this.config.secretId,
559
- 'X-SunuID-Partner-ID': this.config.partnerId,
612
+ 'Authorization': "Bearer ".concat(this.config.clientId, ":").concat(this.config.secretId),
560
613
  'Accept': 'application/json'
561
614
  },
562
- body: JSON.stringify(data)
615
+ body: JSON.stringify(_objectSpread2(_objectSpread2({}, data), {}, {
616
+ client_id: this.config.clientId,
617
+ secret_id: this.config.secretId
618
+ }))
563
619
  });
564
620
  case 2:
565
621
  response = _context6.v;
@@ -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: 'https://sunuid.fayma.sn/api',\n partnerId: null,\n clientId: null,\n secretId: null,\n theme: 'light',\n language: 'fr',\n autoRefresh: true,\n refreshInterval: 30000, // 30 secondes\n onSuccess: null,\n onError: 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 \n this.init();\n }\n\n /**\n * Initialisation du SDK\n */\n init() {\n if (!this.config.partnerId || !this.config.clientId || !this.config.secretId) {\n throw new Error('SunuID: partnerId, clientId et secretId sont requis');\n }\n\n this.isInitialized = true;\n console.log('SunuID SDK initialisé avec succès');\n }\n\n /**\n * Générer un QR code d'authentification\n */\n async generateAuthQR(containerId, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/auth/qr-generate.php', {\n type: 'auth',\n ...options\n });\n\n if (response.success) {\n this.displayQRCode(containerId, response.data.qrCodeUrl, 'auth', options);\n this.startAutoRefresh(containerId, 'auth', options);\n return response.data;\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code');\n }\n } catch (error) {\n this.handleError(error);\n throw error;\n }\n }\n\n /**\n * Générer un QR code KYC\n */\n async generateKYCQR(containerId, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/auth/qr-generate.php', {\n type: 'kyc',\n ...options\n });\n\n if (response.success) {\n this.displayQRCode(containerId, response.data.qrCodeUrl, 'kyc', options);\n this.startAutoRefresh(containerId, 'kyc', options);\n return response.data;\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code KYC');\n }\n } catch (error) {\n this.handleError(error);\n throw error;\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('/auth/qr-status.php', {\n sessionId: 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 === 'auth' ? 'Authentification' : 'Vérification KYC'}</h3>\n <div class=\"sunuid-timer\">\n <span>Expire dans: </span>\n <span id=\"sunuid-timer\">30</span>\n <span> secondes</span>\n </div>\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 // Démarrer le timer\n this.startTimer();\n\n // Appliquer le thème\n this.applyTheme(options.theme || this.config.theme);\n }\n\n /**\n * Rafraîchir un QR code\n */\n async refreshQR(containerId, type, options = {}) {\n try {\n const result = type === 'auth' \n ? await this.generateAuthQR(containerId, options)\n : await this.generateKYCQR(containerId, options);\n \n return result;\n } catch (error) {\n this.handleError(error);\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 startTimer() {\n let timeLeft = 30;\n const timerElement = document.getElementById('sunuid-timer');\n \n const timer = setInterval(() => {\n timeLeft--;\n if (timerElement) {\n timerElement.textContent = timeLeft;\n }\n \n if (timeLeft <= 0) {\n clearInterval(timer);\n if (this.config.onExpired) {\n this.config.onExpired();\n }\n }\n }, 1000);\n }\n\n /**\n * Effectuer une requête API\n */\n async makeRequest(endpoint, data) {\n const url = `${this.config.apiUrl}${endpoint}`;\n \n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-SunuID-Client-ID': this.config.clientId,\n 'X-SunuID-Secret-ID': this.config.secretId,\n 'X-SunuID-Partner-ID': this.config.partnerId,\n 'Accept': 'application/json'\n },\n body: JSON.stringify(data)\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 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","DEFAULT_CONFIG","apiUrl","partnerId","clientId","secretId","theme","language","autoRefresh","refreshInterval","onSuccess","onError","onExpired","SunuID","config","arguments","length","undefined","_classCallCheck","_objectSpread","qrCode","refreshTimer","isInitialized","init","_createClass","key","value","Error","console","log","_generateAuthQR","_asyncToGenerator","_regenerator","m","_callee","containerId","options","response","_args","_t","w","_context","p","n","makeRequest","type","v","success","displayQRCode","data","qrCodeUrl","startAutoRefresh","a","message","handleError","generateAuthQR","_x","apply","_generateKYCQR","_callee2","_args2","_t2","_context2","generateKYCQR","_x2","_checkQRStatus","_callee3","sessionId","_t3","_context3","checkQRStatus","_x3","qrUrl","container","document","getElementById","concat","innerHTML","qrElement","createElement","className","appendChild","startTimer","applyTheme","_refreshQR","_callee4","result","_args4","_t4","_t5","_context4","refreshQR","_x4","_x5","_this","setInterval","_callee5","_t6","_context5","warn","_this2","timeLeft","timerElement","timer","textContent","clearInterval","_makeRequest","_callee6","endpoint","url","errorText","errorData","_t7","_context6","fetch","method","headers","body","JSON","stringify","ok","text","parse","e","status","json","error","_x6","_x7","querySelector","destroy","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: 'https://sunuid.fayma.sn/api',\n clientId: null,\n secretId: null,\n theme: 'light',\n language: 'fr',\n autoRefresh: true,\n refreshInterval: 30000, // 30 secondes\n onSuccess: null,\n onError: 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 \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\n /**\n * Générer un QR code d'authentification\n */\n async generateAuthQR(containerId, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/auth/qr-generate.php', {\n type: 'auth',\n ...options\n });\n\n if (response.success) {\n this.displayQRCode(containerId, response.data.qrCodeUrl, 'auth', options);\n this.startAutoRefresh(containerId, 'auth', options);\n return response.data;\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code');\n }\n } catch (error) {\n console.warn('Erreur API détectée, génération d\\'un QR code de test:', error.message);\n \n // En cas d'échec de l'API (CORS, 500, ou autre), générer un QR code de test\n const testData = {\n type: 'auth',\n clientId: this.config.clientId,\n timestamp: Date.now(),\n sessionId: 'test_' + Math.random().toString(36).substr(2, 9),\n apiUrl: this.config.apiUrl,\n error: error.message,\n errorType: error.name,\n fallback: true,\n ...options\n };\n \n const qrData = JSON.stringify(testData);\n const qrUrl = `https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=${encodeURIComponent(qrData)}`;\n \n this.displayQRCode(containerId, qrUrl, 'auth', options);\n this.startAutoRefresh(containerId, 'auth', options);\n \n return {\n success: true,\n data: {\n sessionId: testData.sessionId,\n qrCodeUrl: qrUrl,\n expires: Date.now() + 30000,\n type: 'auth',\n fallback: true\n }\n };\n }\n }\n\n /**\n * Générer un QR code KYC\n */\n async generateKYCQR(containerId, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/auth/qr-generate.php', {\n type: 'kyc',\n ...options\n });\n\n if (response.success) {\n this.displayQRCode(containerId, response.data.qrCodeUrl, 'kyc', options);\n this.startAutoRefresh(containerId, 'kyc', options);\n return response.data;\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code KYC');\n }\n } catch (error) {\n console.warn('Erreur API détectée, génération d\\'un QR code KYC de test:', error.message);\n \n // En cas d'échec de l'API, générer un QR code de test\n const testData = {\n type: 'kyc',\n clientId: this.config.clientId,\n timestamp: Date.now(),\n sessionId: 'test_' + Math.random().toString(36).substr(2, 9),\n apiUrl: this.config.apiUrl,\n error: error.message,\n errorType: error.name,\n fallback: true,\n ...options\n };\n \n const qrData = JSON.stringify(testData);\n const qrUrl = `https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=${encodeURIComponent(qrData)}`;\n \n this.displayQRCode(containerId, qrUrl, 'kyc', options);\n this.startAutoRefresh(containerId, 'kyc', options);\n \n return {\n success: true,\n data: {\n sessionId: testData.sessionId,\n qrCodeUrl: qrUrl,\n expires: Date.now() + 30000,\n type: 'kyc',\n fallback: true\n }\n };\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('/auth/qr-status.php', {\n sessionId: 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 === 'auth' ? 'Authentification' : 'Vérification KYC'}</h3>\n <div class=\"sunuid-timer\">\n <span>Expire dans: </span>\n <span id=\"sunuid-timer\">30</span>\n <span> secondes</span>\n </div>\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 // Démarrer le timer\n this.startTimer();\n\n // Appliquer le thème\n this.applyTheme(options.theme || this.config.theme);\n }\n\n /**\n * Rafraîchir un QR code\n */\n async refreshQR(containerId, type, options = {}) {\n try {\n const result = type === 'auth' \n ? await this.generateAuthQR(containerId, options)\n : await this.generateKYCQR(containerId, options);\n \n return result;\n } catch (error) {\n this.handleError(error);\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 startTimer() {\n let timeLeft = 30;\n const timerElement = document.getElementById('sunuid-timer');\n \n const timer = setInterval(() => {\n timeLeft--;\n if (timerElement) {\n timerElement.textContent = timeLeft;\n }\n \n if (timeLeft <= 0) {\n clearInterval(timer);\n if (this.config.onExpired) {\n this.config.onExpired();\n }\n }\n }, 1000);\n }\n\n /**\n * Effectuer une requête API\n */\n async makeRequest(endpoint, data) {\n const url = `${this.config.apiUrl}${endpoint}`;\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 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","DEFAULT_CONFIG","apiUrl","clientId","secretId","theme","language","autoRefresh","refreshInterval","onSuccess","onError","onExpired","SunuID","config","arguments","length","undefined","_classCallCheck","_objectSpread","qrCode","refreshTimer","isInitialized","init","_createClass","key","value","Error","console","log","_generateAuthQR","_asyncToGenerator","_regenerator","m","_callee","containerId","options","response","testData","qrData","qrUrl","_args","_t","w","_context","p","n","makeRequest","type","v","success","displayQRCode","data","qrCodeUrl","startAutoRefresh","a","message","warn","timestamp","Date","now","sessionId","Math","random","toString","substr","error","errorType","name","fallback","JSON","stringify","concat","encodeURIComponent","expires","generateAuthQR","_x","apply","_generateKYCQR","_callee2","_args2","_t2","_context2","generateKYCQR","_x2","_checkQRStatus","_callee3","_t3","_context3","handleError","checkQRStatus","_x3","container","document","getElementById","innerHTML","qrElement","createElement","className","appendChild","startTimer","applyTheme","_refreshQR","_callee4","result","_args4","_t4","_t5","_context4","refreshQR","_x4","_x5","_this","setInterval","_callee5","_t6","_context5","_this2","timeLeft","timerElement","timer","textContent","clearInterval","_makeRequest","_callee6","endpoint","url","errorText","errorData","_t7","_context6","fetch","method","headers","body","client_id","secret_id","ok","text","parse","e","status","json","_x6","_x7","querySelector","destroy","sunuidInstance","initSunuID"],"mappings":"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"}
@@ -205,7 +205,6 @@
205
205
  // Configuration par défaut
206
206
  var DEFAULT_CONFIG = {
207
207
  apiUrl: 'https://sunuid.fayma.sn/api',
208
- partnerId: null,
209
208
  clientId: null,
210
209
  secretId: null,
211
210
  theme: 'light',
@@ -238,8 +237,8 @@
238
237
  return _createClass(SunuID, [{
239
238
  key: "init",
240
239
  value: function init() {
241
- if (!this.config.partnerId || !this.config.clientId || !this.config.secretId) {
242
- throw new Error('SunuID: partnerId, clientId et secretId sont requis');
240
+ if (!this.config.clientId || !this.config.secretId) {
241
+ throw new Error('SunuID: clientId et secretId sont requis');
243
242
  }
244
243
  this.isInitialized = true;
245
244
  console.log('SunuID SDK initialisé avec succès');
@@ -254,6 +253,9 @@
254
253
  var _generateAuthQR = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(containerId) {
255
254
  var options,
256
255
  response,
256
+ testData,
257
+ qrData,
258
+ qrUrl,
257
259
  _args = arguments,
258
260
  _t;
259
261
  return _regenerator().w(function (_context) {
@@ -288,8 +290,33 @@
288
290
  case 5:
289
291
  _context.p = 5;
290
292
  _t = _context.v;
291
- this.handleError(_t);
292
- throw _t;
293
+ console.warn('Erreur API détectée, génération d\'un QR code de test:', _t.message);
294
+
295
+ // En cas d'échec de l'API (CORS, 500, ou autre), générer un QR code de test
296
+ testData = _objectSpread2({
297
+ type: 'auth',
298
+ clientId: this.config.clientId,
299
+ timestamp: Date.now(),
300
+ sessionId: 'test_' + Math.random().toString(36).substr(2, 9),
301
+ apiUrl: this.config.apiUrl,
302
+ error: _t.message,
303
+ errorType: _t.name,
304
+ fallback: true
305
+ }, options);
306
+ qrData = JSON.stringify(testData);
307
+ qrUrl = "https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=".concat(encodeURIComponent(qrData));
308
+ this.displayQRCode(containerId, qrUrl, 'auth', options);
309
+ this.startAutoRefresh(containerId, 'auth', options);
310
+ return _context.a(2, {
311
+ success: true,
312
+ data: {
313
+ sessionId: testData.sessionId,
314
+ qrCodeUrl: qrUrl,
315
+ expires: Date.now() + 30000,
316
+ type: 'auth',
317
+ fallback: true
318
+ }
319
+ });
293
320
  case 6:
294
321
  return _context.a(2);
295
322
  }
@@ -310,6 +337,9 @@
310
337
  var _generateKYCQR = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(containerId) {
311
338
  var options,
312
339
  response,
340
+ testData,
341
+ qrData,
342
+ qrUrl,
313
343
  _args2 = arguments,
314
344
  _t2;
315
345
  return _regenerator().w(function (_context2) {
@@ -344,8 +374,33 @@
344
374
  case 5:
345
375
  _context2.p = 5;
346
376
  _t2 = _context2.v;
347
- this.handleError(_t2);
348
- throw _t2;
377
+ console.warn('Erreur API détectée, génération d\'un QR code KYC de test:', _t2.message);
378
+
379
+ // En cas d'échec de l'API, générer un QR code de test
380
+ testData = _objectSpread2({
381
+ type: 'kyc',
382
+ clientId: this.config.clientId,
383
+ timestamp: Date.now(),
384
+ sessionId: 'test_' + Math.random().toString(36).substr(2, 9),
385
+ apiUrl: this.config.apiUrl,
386
+ error: _t2.message,
387
+ errorType: _t2.name,
388
+ fallback: true
389
+ }, options);
390
+ qrData = JSON.stringify(testData);
391
+ qrUrl = "https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=".concat(encodeURIComponent(qrData));
392
+ this.displayQRCode(containerId, qrUrl, 'kyc', options);
393
+ this.startAutoRefresh(containerId, 'kyc', options);
394
+ return _context2.a(2, {
395
+ success: true,
396
+ data: {
397
+ sessionId: testData.sessionId,
398
+ qrCodeUrl: qrUrl,
399
+ expires: Date.now() + 30000,
400
+ type: 'kyc',
401
+ fallback: true
402
+ }
403
+ });
349
404
  case 6:
350
405
  return _context2.a(2);
351
406
  }
@@ -557,12 +612,13 @@
557
612
  method: 'POST',
558
613
  headers: {
559
614
  'Content-Type': 'application/json',
560
- 'X-SunuID-Client-ID': this.config.clientId,
561
- 'X-SunuID-Secret-ID': this.config.secretId,
562
- 'X-SunuID-Partner-ID': this.config.partnerId,
615
+ 'Authorization': "Bearer ".concat(this.config.clientId, ":").concat(this.config.secretId),
563
616
  'Accept': 'application/json'
564
617
  },
565
- body: JSON.stringify(data)
618
+ body: JSON.stringify(_objectSpread2(_objectSpread2({}, data), {}, {
619
+ client_id: this.config.clientId,
620
+ secret_id: this.config.secretId
621
+ }))
566
622
  });
567
623
  case 2:
568
624
  response = _context6.v;
@@ -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: 'https://sunuid.fayma.sn/api',\n partnerId: null,\n clientId: null,\n secretId: null,\n theme: 'light',\n language: 'fr',\n autoRefresh: true,\n refreshInterval: 30000, // 30 secondes\n onSuccess: null,\n onError: 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 \n this.init();\n }\n\n /**\n * Initialisation du SDK\n */\n init() {\n if (!this.config.partnerId || !this.config.clientId || !this.config.secretId) {\n throw new Error('SunuID: partnerId, clientId et secretId sont requis');\n }\n\n this.isInitialized = true;\n console.log('SunuID SDK initialisé avec succès');\n }\n\n /**\n * Générer un QR code d'authentification\n */\n async generateAuthQR(containerId, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/auth/qr-generate.php', {\n type: 'auth',\n ...options\n });\n\n if (response.success) {\n this.displayQRCode(containerId, response.data.qrCodeUrl, 'auth', options);\n this.startAutoRefresh(containerId, 'auth', options);\n return response.data;\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code');\n }\n } catch (error) {\n this.handleError(error);\n throw error;\n }\n }\n\n /**\n * Générer un QR code KYC\n */\n async generateKYCQR(containerId, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/auth/qr-generate.php', {\n type: 'kyc',\n ...options\n });\n\n if (response.success) {\n this.displayQRCode(containerId, response.data.qrCodeUrl, 'kyc', options);\n this.startAutoRefresh(containerId, 'kyc', options);\n return response.data;\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code KYC');\n }\n } catch (error) {\n this.handleError(error);\n throw error;\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('/auth/qr-status.php', {\n sessionId: 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 === 'auth' ? 'Authentification' : 'Vérification KYC'}</h3>\n <div class=\"sunuid-timer\">\n <span>Expire dans: </span>\n <span id=\"sunuid-timer\">30</span>\n <span> secondes</span>\n </div>\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 // Démarrer le timer\n this.startTimer();\n\n // Appliquer le thème\n this.applyTheme(options.theme || this.config.theme);\n }\n\n /**\n * Rafraîchir un QR code\n */\n async refreshQR(containerId, type, options = {}) {\n try {\n const result = type === 'auth' \n ? await this.generateAuthQR(containerId, options)\n : await this.generateKYCQR(containerId, options);\n \n return result;\n } catch (error) {\n this.handleError(error);\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 startTimer() {\n let timeLeft = 30;\n const timerElement = document.getElementById('sunuid-timer');\n \n const timer = setInterval(() => {\n timeLeft--;\n if (timerElement) {\n timerElement.textContent = timeLeft;\n }\n \n if (timeLeft <= 0) {\n clearInterval(timer);\n if (this.config.onExpired) {\n this.config.onExpired();\n }\n }\n }, 1000);\n }\n\n /**\n * Effectuer une requête API\n */\n async makeRequest(endpoint, data) {\n const url = `${this.config.apiUrl}${endpoint}`;\n \n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-SunuID-Client-ID': this.config.clientId,\n 'X-SunuID-Secret-ID': this.config.secretId,\n 'X-SunuID-Partner-ID': this.config.partnerId,\n 'Accept': 'application/json'\n },\n body: JSON.stringify(data)\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 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","DEFAULT_CONFIG","apiUrl","partnerId","clientId","secretId","theme","language","autoRefresh","refreshInterval","onSuccess","onError","onExpired","SunuID","config","arguments","length","undefined","_classCallCheck","_objectSpread","qrCode","refreshTimer","isInitialized","init","_createClass","key","value","Error","console","log","_generateAuthQR","_asyncToGenerator","_regenerator","m","_callee","containerId","options","response","_args","_t","w","_context","p","n","makeRequest","type","v","success","displayQRCode","data","qrCodeUrl","startAutoRefresh","a","message","handleError","generateAuthQR","_x","apply","_generateKYCQR","_callee2","_args2","_t2","_context2","generateKYCQR","_x2","_checkQRStatus","_callee3","sessionId","_t3","_context3","checkQRStatus","_x3","qrUrl","container","document","getElementById","concat","innerHTML","qrElement","createElement","className","appendChild","startTimer","applyTheme","_refreshQR","_callee4","result","_args4","_t4","_t5","_context4","refreshQR","_x4","_x5","_this","setInterval","_callee5","_t6","_context5","warn","_this2","timeLeft","timerElement","timer","textContent","clearInterval","_makeRequest","_callee6","endpoint","url","errorText","errorData","_t7","_context6","fetch","method","headers","body","JSON","stringify","ok","text","parse","e","status","json","error","_x6","_x7","querySelector","destroy","sunuidInstance","initSunuID"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA,CAAC,UAASA,MAAM,EAAE;;EAGd;EACA,EAAA,IAAMC,cAAc,GAAG;EACnBC,IAAAA,MAAM,EAAE,6BAA6B;EACrCC,IAAAA,SAAS,EAAE,IAAI;EACfC,IAAAA,QAAQ,EAAE,IAAI;EACdC,IAAAA,QAAQ,EAAE,IAAI;EACdC,IAAAA,KAAK,EAAE,OAAO;EACdC,IAAAA,QAAQ,EAAE,IAAI;EACdC,IAAAA,WAAW,EAAE,IAAI;EACjBC,IAAAA,eAAe,EAAE,KAAK;EAAE;EACxBC,IAAAA,SAAS,EAAE,IAAI;EACfC,IAAAA,OAAO,EAAE,IAAI;EACbC,IAAAA,SAAS,EAAE,IAAA;KACd,CAAA;;EAED;EACJ;EACA;EAFI,EAAA,IAGMC,MAAM,gBAAA,YAAA;EACR,IAAA,SAAAA,SAAyB;EAAA,MAAA,IAAbC,MAAM,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;EAAAG,MAAAA,eAAA,OAAAL,MAAA,CAAA,CAAA;QACnB,IAAI,CAACC,MAAM,GAAAK,cAAA,CAAAA,cAAA,CAAQlB,EAAAA,EAAAA,cAAc,CAAKa,EAAAA,MAAM,CAAE,CAAA;QAC9C,IAAI,CAACM,MAAM,GAAG,IAAI,CAAA;QAClB,IAAI,CAACC,YAAY,GAAG,IAAI,CAAA;QACxB,IAAI,CAACC,aAAa,GAAG,KAAK,CAAA;QAE1B,IAAI,CAACC,IAAI,EAAE,CAAA;EACf,KAAA;;EAEA;EACR;EACA;MAFQ,OAAAC,YAAA,CAAAX,MAAA,EAAA,CAAA;QAAAY,GAAA,EAAA,MAAA;EAAAC,MAAAA,KAAA,EAGA,SAAAH,IAAIA,GAAG;UACH,IAAI,CAAC,IAAI,CAACT,MAAM,CAACX,SAAS,IAAI,CAAC,IAAI,CAACW,MAAM,CAACV,QAAQ,IAAI,CAAC,IAAI,CAACU,MAAM,CAACT,QAAQ,EAAE;EAC1E,UAAA,MAAM,IAAIsB,KAAK,CAAC,qDAAqD,CAAC,CAAA;EAC1E,SAAA;UAEA,IAAI,CAACL,aAAa,GAAG,IAAI,CAAA;EACzBM,QAAAA,OAAO,CAACC,GAAG,CAAC,mCAAmC,CAAC,CAAA;EACpD,OAAA;;EAEA;EACR;EACA;EAFQ,KAAA,EAAA;QAAAJ,GAAA,EAAA,gBAAA;QAAAC,KAAA,GAAA,YAAA;UAAA,IAAAI,eAAA,GAAAC,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAGA,SAAAC,OAAAA,CAAqBC,WAAW,EAAA;EAAA,UAAA,IAAAC,OAAA;cAAAC,QAAA;EAAAC,YAAAA,KAAA,GAAAvB,SAAA;cAAAwB,EAAA,CAAA;EAAA,UAAA,OAAAP,YAAA,EAAA,CAAAQ,CAAA,CAAA,UAAAC,QAAA,EAAA;EAAA,YAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,CAAA,GAAAD,QAAA,CAAAE,CAAA;EAAA,cAAA,KAAA,CAAA;EAAEP,gBAAAA,OAAO,GAAAE,KAAA,CAAAtB,MAAA,GAAAsB,CAAAA,IAAAA,KAAA,CAAArB,CAAAA,CAAAA,KAAAA,SAAA,GAAAqB,KAAA,CAAG,CAAA,CAAA,GAAA,EAAE,CAAA;kBAAA,IACrC,IAAI,CAAChB,aAAa,EAAA;EAAAmB,kBAAAA,QAAA,CAAAE,CAAA,GAAA,CAAA,CAAA;EAAA,kBAAA,MAAA;EAAA,iBAAA;EAAA,gBAAA,MACb,IAAIhB,KAAK,CAAC,4BAA4B,CAAC,CAAA;EAAA,cAAA,KAAA,CAAA;EAAAc,gBAAAA,QAAA,CAAAC,CAAA,GAAA,CAAA,CAAA;EAAAD,gBAAAA,QAAA,CAAAE,CAAA,GAAA,CAAA,CAAA;EAAA,gBAAA,OAItB,IAAI,CAACC,WAAW,CAAC,uBAAuB,EAAAzB,cAAA,CAAA;EAC3D0B,kBAAAA,IAAI,EAAE,MAAA;mBACHT,EAAAA,OAAO,CACb,CAAC,CAAA;EAAA,cAAA,KAAA,CAAA;kBAHIC,QAAQ,GAAAI,QAAA,CAAAK,CAAA,CAAA;kBAAA,IAKVT,CAAAA,QAAQ,CAACU,OAAO,EAAA;EAAAN,kBAAAA,QAAA,CAAAE,CAAA,GAAA,CAAA,CAAA;EAAA,kBAAA,MAAA;EAAA,iBAAA;EAChB,gBAAA,IAAI,CAACK,aAAa,CAACb,WAAW,EAAEE,QAAQ,CAACY,IAAI,CAACC,SAAS,EAAE,MAAM,EAAEd,OAAO,CAAC,CAAA;kBACzE,IAAI,CAACe,gBAAgB,CAAChB,WAAW,EAAE,MAAM,EAAEC,OAAO,CAAC,CAAA;EAAC,gBAAA,OAAAK,QAAA,CAAAW,CAAA,CAC7Cf,CAAAA,EAAAA,QAAQ,CAACY,IAAI,CAAA,CAAA;EAAA,cAAA,KAAA,CAAA;kBAAA,MAEd,IAAItB,KAAK,CAACU,QAAQ,CAACgB,OAAO,IAAI,yCAAyC,CAAC,CAAA;EAAA,cAAA,KAAA,CAAA;EAAAZ,gBAAAA,QAAA,CAAAE,CAAA,GAAA,CAAA,CAAA;EAAA,gBAAA,MAAA;EAAA,cAAA,KAAA,CAAA;EAAAF,gBAAAA,QAAA,CAAAC,CAAA,GAAA,CAAA,CAAA;kBAAAH,EAAA,GAAAE,QAAA,CAAAK,CAAA,CAAA;EAGlF,gBAAA,IAAI,CAACQ,WAAW,CAAAf,EAAM,CAAC,CAAA;EAAC,gBAAA,MAAAA,EAAA,CAAA;EAAA,cAAA,KAAA,CAAA;kBAAA,OAAAE,QAAA,CAAAW,CAAA,CAAA,CAAA,CAAA,CAAA;EAAA,aAAA;EAAA,WAAA,EAAAlB,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;WAG/B,CAAA,CAAA,CAAA;UAAA,SAtBKqB,cAAcA,CAAAC,EAAA,EAAA;EAAA,UAAA,OAAA1B,eAAA,CAAA2B,KAAA,CAAA,IAAA,EAAA1C,SAAA,CAAA,CAAA;EAAA,SAAA;EAAA,QAAA,OAAdwC,cAAc,CAAA;EAAA,OAAA,EAAA;EAwBpB;EACR;EACA;EAFQ,OAAA;EAAA,KAAA,EAAA;QAAA9B,GAAA,EAAA,eAAA;QAAAC,KAAA,GAAA,YAAA;UAAA,IAAAgC,cAAA,GAAA3B,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAGA,SAAA0B,QAAAA,CAAoBxB,WAAW,EAAA;EAAA,UAAA,IAAAC,OAAA;cAAAC,QAAA;EAAAuB,YAAAA,MAAA,GAAA7C,SAAA;cAAA8C,GAAA,CAAA;EAAA,UAAA,OAAA7B,YAAA,EAAA,CAAAQ,CAAA,CAAA,UAAAsB,SAAA,EAAA;EAAA,YAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAApB,CAAA,GAAAoB,SAAA,CAAAnB,CAAA;EAAA,cAAA,KAAA,CAAA;EAAEP,gBAAAA,OAAO,GAAAwB,MAAA,CAAA5C,MAAA,GAAA4C,CAAAA,IAAAA,MAAA,CAAA3C,CAAAA,CAAAA,KAAAA,SAAA,GAAA2C,MAAA,CAAG,CAAA,CAAA,GAAA,EAAE,CAAA;kBAAA,IACpC,IAAI,CAACtC,aAAa,EAAA;EAAAwC,kBAAAA,SAAA,CAAAnB,CAAA,GAAA,CAAA,CAAA;EAAA,kBAAA,MAAA;EAAA,iBAAA;EAAA,gBAAA,MACb,IAAIhB,KAAK,CAAC,4BAA4B,CAAC,CAAA;EAAA,cAAA,KAAA,CAAA;EAAAmC,gBAAAA,SAAA,CAAApB,CAAA,GAAA,CAAA,CAAA;EAAAoB,gBAAAA,SAAA,CAAAnB,CAAA,GAAA,CAAA,CAAA;EAAA,gBAAA,OAItB,IAAI,CAACC,WAAW,CAAC,uBAAuB,EAAAzB,cAAA,CAAA;EAC3D0B,kBAAAA,IAAI,EAAE,KAAA;mBACHT,EAAAA,OAAO,CACb,CAAC,CAAA;EAAA,cAAA,KAAA,CAAA;kBAHIC,QAAQ,GAAAyB,SAAA,CAAAhB,CAAA,CAAA;kBAAA,IAKVT,CAAAA,QAAQ,CAACU,OAAO,EAAA;EAAAe,kBAAAA,SAAA,CAAAnB,CAAA,GAAA,CAAA,CAAA;EAAA,kBAAA,MAAA;EAAA,iBAAA;EAChB,gBAAA,IAAI,CAACK,aAAa,CAACb,WAAW,EAAEE,QAAQ,CAACY,IAAI,CAACC,SAAS,EAAE,KAAK,EAAEd,OAAO,CAAC,CAAA;kBACxE,IAAI,CAACe,gBAAgB,CAAChB,WAAW,EAAE,KAAK,EAAEC,OAAO,CAAC,CAAA;EAAC,gBAAA,OAAA0B,SAAA,CAAAV,CAAA,CAC5Cf,CAAAA,EAAAA,QAAQ,CAACY,IAAI,CAAA,CAAA;EAAA,cAAA,KAAA,CAAA;kBAAA,MAEd,IAAItB,KAAK,CAACU,QAAQ,CAACgB,OAAO,IAAI,6CAA6C,CAAC,CAAA;EAAA,cAAA,KAAA,CAAA;EAAAS,gBAAAA,SAAA,CAAAnB,CAAA,GAAA,CAAA,CAAA;EAAA,gBAAA,MAAA;EAAA,cAAA,KAAA,CAAA;EAAAmB,gBAAAA,SAAA,CAAApB,CAAA,GAAA,CAAA,CAAA;kBAAAmB,GAAA,GAAAC,SAAA,CAAAhB,CAAA,CAAA;EAGtF,gBAAA,IAAI,CAACQ,WAAW,CAAAO,GAAM,CAAC,CAAA;EAAC,gBAAA,MAAAA,GAAA,CAAA;EAAA,cAAA,KAAA,CAAA;kBAAA,OAAAC,SAAA,CAAAV,CAAA,CAAA,CAAA,CAAA,CAAA;EAAA,aAAA;EAAA,WAAA,EAAAO,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;WAG/B,CAAA,CAAA,CAAA;UAAA,SAtBKI,aAAaA,CAAAC,GAAA,EAAA;EAAA,UAAA,OAAAN,cAAA,CAAAD,KAAA,CAAA,IAAA,EAAA1C,SAAA,CAAA,CAAA;EAAA,SAAA;EAAA,QAAA,OAAbgD,aAAa,CAAA;EAAA,OAAA,EAAA;EAwBnB;EACR;EACA;EAFQ,OAAA;EAAA,KAAA,EAAA;QAAAtC,GAAA,EAAA,eAAA;QAAAC,KAAA,GAAA,YAAA;UAAA,IAAAuC,cAAA,GAAAlC,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAGA,SAAAiC,QAAAA,CAAoBC,SAAS,EAAA;YAAA,IAAA9B,QAAA,EAAA+B,GAAA,CAAA;EAAA,UAAA,OAAApC,YAAA,EAAA,CAAAQ,CAAA,CAAA,UAAA6B,SAAA,EAAA;EAAA,YAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA3B,CAAA,GAAA2B,SAAA,CAAA1B,CAAA;EAAA,cAAA,KAAA,CAAA;kBAAA,IACpB,IAAI,CAACrB,aAAa,EAAA;EAAA+C,kBAAAA,SAAA,CAAA1B,CAAA,GAAA,CAAA,CAAA;EAAA,kBAAA,MAAA;EAAA,iBAAA;EAAA,gBAAA,MACb,IAAIhB,KAAK,CAAC,4BAA4B,CAAC,CAAA;EAAA,cAAA,KAAA,CAAA;EAAA0C,gBAAAA,SAAA,CAAA3B,CAAA,GAAA,CAAA,CAAA;EAAA2B,gBAAAA,SAAA,CAAA1B,CAAA,GAAA,CAAA,CAAA;EAAA,gBAAA,OAItB,IAAI,CAACC,WAAW,CAAC,qBAAqB,EAAE;EAC3DuB,kBAAAA,SAAS,EAAEA,SAAAA;EACf,iBAAC,CAAC,CAAA;EAAA,cAAA,KAAA,CAAA;kBAFI9B,QAAQ,GAAAgC,SAAA,CAAAvB,CAAA,CAAA;kBAAA,IAIVT,CAAAA,QAAQ,CAACU,OAAO,EAAA;EAAAsB,kBAAAA,SAAA,CAAA1B,CAAA,GAAA,CAAA,CAAA;EAAA,kBAAA,MAAA;EAAA,iBAAA;EAAA,gBAAA,OAAA0B,SAAA,CAAAjB,CAAA,CACTf,CAAAA,EAAAA,QAAQ,CAACY,IAAI,CAAA,CAAA;EAAA,cAAA,KAAA,CAAA;kBAAA,MAEd,IAAItB,KAAK,CAACU,QAAQ,CAACgB,OAAO,IAAI,0CAA0C,CAAC,CAAA;EAAA,cAAA,KAAA,CAAA;EAAAgB,gBAAAA,SAAA,CAAA1B,CAAA,GAAA,CAAA,CAAA;EAAA,gBAAA,MAAA;EAAA,cAAA,KAAA,CAAA;EAAA0B,gBAAAA,SAAA,CAAA3B,CAAA,GAAA,CAAA,CAAA;kBAAA0B,GAAA,GAAAC,SAAA,CAAAvB,CAAA,CAAA;EAGnF,gBAAA,IAAI,CAACQ,WAAW,CAAAc,GAAM,CAAC,CAAA;EAAC,gBAAA,MAAAA,GAAA,CAAA;EAAA,cAAA,KAAA,CAAA;kBAAA,OAAAC,SAAA,CAAAjB,CAAA,CAAA,CAAA,CAAA,CAAA;EAAA,aAAA;EAAA,WAAA,EAAAc,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;WAG/B,CAAA,CAAA,CAAA;UAAA,SAnBKI,aAAaA,CAAAC,GAAA,EAAA;EAAA,UAAA,OAAAN,cAAA,CAAAR,KAAA,CAAA,IAAA,EAAA1C,SAAA,CAAA,CAAA;EAAA,SAAA;EAAA,QAAA,OAAbuD,aAAa,CAAA;EAAA,OAAA,EAAA;EAqBnB;EACR;EACA;EAFQ,OAAA;EAAA,KAAA,EAAA;QAAA7C,GAAA,EAAA,eAAA;QAAAC,KAAA,EAGA,SAAAsB,aAAaA,CAACb,WAAW,EAAEqC,KAAK,EAAE3B,IAAI,EAAgB;EAAA,QAAA,IAAdT,OAAO,GAAArB,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;EAChD,QAAA,IAAM0D,SAAS,GAAGC,QAAQ,CAACC,cAAc,CAACxC,WAAW,CAAC,CAAA;UACtD,IAAI,CAACsC,SAAS,EAAE;EACZ,UAAA,MAAM,IAAI9C,KAAK,CAAA,wBAAA,CAAAiD,MAAA,CAAyBzC,WAAW,qBAAc,CAAC,CAAA;EACtE,SAAA;;EAEA;UACAsC,SAAS,CAACI,SAAS,GAAG,EAAE,CAAA;;EAExB;EACA,QAAA,IAAMC,SAAS,GAAGJ,QAAQ,CAACK,aAAa,CAAC,KAAK,CAAC,CAAA;UAC/CD,SAAS,CAACE,SAAS,GAAG,gBAAgB,CAAA;EACtCF,QAAAA,SAAS,CAACD,SAAS,GAAA,8EAAA,CAAAD,MAAA,CAEL/B,IAAI,KAAK,MAAM,GAAG,kBAAkB,GAAG,kBAAkB,EAAA,gWAAA,CAAA,CAAA+B,MAAA,CAQnDJ,KAAK,EAQxB,0aAAA,CAAA,CAAA;EAEDC,QAAAA,SAAS,CAACQ,WAAW,CAACH,SAAS,CAAC,CAAA;;EAEhC;UACA,IAAI,CAACI,UAAU,EAAE,CAAA;;EAEjB;EACA,QAAA,IAAI,CAACC,UAAU,CAAC/C,OAAO,CAAC9B,KAAK,IAAI,IAAI,CAACQ,MAAM,CAACR,KAAK,CAAC,CAAA;EACvD,OAAA;;EAEA;EACR;EACA;EAFQ,KAAA,EAAA;QAAAmB,GAAA,EAAA,WAAA;QAAAC,KAAA,GAAA,YAAA;EAAA,QAAA,IAAA0D,UAAA,GAAArD,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAGA,SAAAoD,QAAAA,CAAgBlD,WAAW,EAAEU,IAAI,EAAA;EAAA,UAAA,IAAAT,OAAA;cAAAkD,MAAA;EAAAC,YAAAA,MAAA,GAAAxE,SAAA;cAAAyE,GAAA;cAAAC,GAAA,CAAA;EAAA,UAAA,OAAAzD,YAAA,EAAA,CAAAQ,CAAA,CAAA,UAAAkD,SAAA,EAAA;EAAA,YAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhD,CAAA,GAAAgD,SAAA,CAAA/C,CAAA;EAAA,cAAA,KAAA,CAAA;EAAEP,gBAAAA,OAAO,GAAAmD,MAAA,CAAAvE,MAAA,GAAAuE,CAAAA,IAAAA,MAAA,CAAAtE,CAAAA,CAAAA,KAAAA,SAAA,GAAAsE,MAAA,CAAG,CAAA,CAAA,GAAA,EAAE,CAAA;EAAAG,gBAAAA,SAAA,CAAAhD,CAAA,GAAA,CAAA,CAAA;kBAAA,IAExBG,EAAAA,IAAI,KAAK,MAAM,CAAA,EAAA;EAAA6C,kBAAAA,SAAA,CAAA/C,CAAA,GAAA,CAAA,CAAA;EAAA,kBAAA,MAAA;EAAA,iBAAA;EAAA+C,gBAAAA,SAAA,CAAA/C,CAAA,GAAA,CAAA,CAAA;EAAA,gBAAA,OAClB,IAAI,CAACY,cAAc,CAACpB,WAAW,EAAEC,OAAO,CAAC,CAAA;EAAA,cAAA,KAAA,CAAA;kBAAAoD,GAAA,GAAAE,SAAA,CAAA5C,CAAA,CAAA;EAAA4C,gBAAAA,SAAA,CAAA/C,CAAA,GAAA,CAAA,CAAA;EAAA,gBAAA,MAAA;EAAA,cAAA,KAAA,CAAA;EAAA+C,gBAAAA,SAAA,CAAA/C,CAAA,GAAA,CAAA,CAAA;EAAA,gBAAA,OACzC,IAAI,CAACoB,aAAa,CAAC5B,WAAW,EAAEC,OAAO,CAAC,CAAA;EAAA,cAAA,KAAA,CAAA;kBAAAoD,GAAA,GAAAE,SAAA,CAAA5C,CAAA,CAAA;EAAA,cAAA,KAAA,CAAA;EAF9CwC,gBAAAA,MAAM,GAAAE,GAAA,CAAA;EAAA,gBAAA,OAAAE,SAAA,CAAAtC,CAAA,CAAA,CAAA,EAILkC,MAAM,CAAA,CAAA;EAAA,cAAA,KAAA,CAAA;EAAAI,gBAAAA,SAAA,CAAAhD,CAAA,GAAA,CAAA,CAAA;kBAAA+C,GAAA,GAAAC,SAAA,CAAA5C,CAAA,CAAA;EAEb,gBAAA,IAAI,CAACQ,WAAW,CAAAmC,GAAM,CAAC,CAAA;EAAC,gBAAA,MAAAA,GAAA,CAAA;EAAA,cAAA,KAAA,CAAA;kBAAA,OAAAC,SAAA,CAAAtC,CAAA,CAAA,CAAA,CAAA,CAAA;EAAA,aAAA;EAAA,WAAA,EAAAiC,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;WAG/B,CAAA,CAAA,CAAA;EAAA,QAAA,SAXKM,SAASA,CAAAC,GAAA,EAAAC,GAAA,EAAA;EAAA,UAAA,OAAAT,UAAA,CAAA3B,KAAA,CAAA,IAAA,EAAA1C,SAAA,CAAA,CAAA;EAAA,SAAA;EAAA,QAAA,OAAT4E,SAAS,CAAA;EAAA,OAAA,EAAA;EAaf;EACR;EACA;EAFQ,OAAA;EAAA,KAAA,EAAA;QAAAlE,GAAA,EAAA,kBAAA;QAAAC,KAAA,EAGA,SAAAyB,gBAAgBA,CAAChB,WAAW,EAAEU,IAAI,EAAET,OAAO,EAAE;EAAA,QAAA,IAAA0D,KAAA,GAAA,IAAA,CAAA;EACzC,QAAA,IAAI,CAAC,IAAI,CAAChF,MAAM,CAACN,WAAW,EAAE,OAAA;EAE9B,QAAA,IAAI,CAACa,YAAY,GAAG0E,WAAW,cAAAhE,iBAAA,cAAAC,YAAA,EAAAC,CAAAA,CAAA,CAAC,SAAA+D,QAAA,GAAA;EAAA,UAAA,IAAAC,GAAA,CAAA;EAAA,UAAA,OAAAjE,YAAA,EAAA,CAAAQ,CAAA,CAAA,UAAA0D,SAAA,EAAA;EAAA,YAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAxD,CAAA,GAAAwD,SAAA,CAAAvD,CAAA;EAAA,cAAA,KAAA,CAAA;EAAAuD,gBAAAA,SAAA,CAAAxD,CAAA,GAAA,CAAA,CAAA;EAAAwD,gBAAAA,SAAA,CAAAvD,CAAA,GAAA,CAAA,CAAA;kBAAA,OAElBmD,KAAI,CAACH,SAAS,CAACxD,WAAW,EAAEU,IAAI,EAAET,OAAO,CAAC,CAAA;EAAA,cAAA,KAAA,CAAA;EAAA8D,gBAAAA,SAAA,CAAAvD,CAAA,GAAA,CAAA,CAAA;EAAA,gBAAA,MAAA;EAAA,cAAA,KAAA,CAAA;EAAAuD,gBAAAA,SAAA,CAAAxD,CAAA,GAAA,CAAA,CAAA;kBAAAuD,GAAA,GAAAC,SAAA,CAAApD,CAAA,CAAA;EAEhDlB,gBAAAA,OAAO,CAACuE,IAAI,CAAC,8CAA8C,EAAAF,GAAO,CAAC,CAAA;EAAC,cAAA,KAAA,CAAA;kBAAA,OAAAC,SAAA,CAAA9C,CAAA,CAAA,CAAA,CAAA,CAAA;EAAA,aAAA;EAAA,WAAA,EAAA4C,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAAA,SAE3E,IAAE,IAAI,CAAClF,MAAM,CAACL,eAAe,CAAC,CAAA;EACnC,OAAA;;EAEA;EACR;EACA;EAFQ,KAAA,EAAA;QAAAgB,GAAA,EAAA,YAAA;EAAAC,MAAAA,KAAA,EAGA,SAAAwD,UAAUA,GAAG;EAAA,QAAA,IAAAkB,MAAA,GAAA,IAAA,CAAA;UACT,IAAIC,QAAQ,GAAG,EAAE,CAAA;EACjB,QAAA,IAAMC,YAAY,GAAG5B,QAAQ,CAACC,cAAc,CAAC,cAAc,CAAC,CAAA;EAE5D,QAAA,IAAM4B,KAAK,GAAGR,WAAW,CAAC,YAAM;EAC5BM,UAAAA,QAAQ,EAAE,CAAA;EACV,UAAA,IAAIC,YAAY,EAAE;cACdA,YAAY,CAACE,WAAW,GAAGH,QAAQ,CAAA;EACvC,WAAA;YAEA,IAAIA,QAAQ,IAAI,CAAC,EAAE;cACfI,aAAa,CAACF,KAAK,CAAC,CAAA;EACpB,YAAA,IAAIH,MAAI,CAACtF,MAAM,CAACF,SAAS,EAAE;EACvBwF,cAAAA,MAAI,CAACtF,MAAM,CAACF,SAAS,EAAE,CAAA;EAC3B,aAAA;EACJ,WAAA;WACH,EAAE,IAAI,CAAC,CAAA;EACZ,OAAA;;EAEA;EACR;EACA;EAFQ,KAAA,EAAA;QAAAa,GAAA,EAAA,aAAA;QAAAC,KAAA,GAAA,YAAA;EAAA,QAAA,IAAAgF,YAAA,GAAA3E,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAGA,SAAA0E,QAAAA,CAAkBC,QAAQ,EAAE3D,IAAI,EAAA;YAAA,IAAA4D,GAAA,EAAAxE,QAAA,EAAAyE,SAAA,EAAAC,SAAA,EAAAzB,MAAA,EAAA0B,GAAA,CAAA;EAAA,UAAA,OAAAhF,YAAA,EAAA,CAAAQ,CAAA,CAAA,UAAAyE,SAAA,EAAA;EAAA,YAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAvE,CAAA,GAAAuE,SAAA,CAAAtE,CAAA;EAAA,cAAA,KAAA,CAAA;kBACtBkE,GAAG,GAAA,EAAA,CAAAjC,MAAA,CAAM,IAAI,CAAC9D,MAAM,CAACZ,MAAM,CAAA,CAAA0E,MAAA,CAAGgC,QAAQ,CAAA,CAAA;EAAAK,gBAAAA,SAAA,CAAAvE,CAAA,GAAA,CAAA,CAAA;EAAAuE,gBAAAA,SAAA,CAAAtE,CAAA,GAAA,CAAA,CAAA;kBAAA,OAGjBuE,KAAK,CAACL,GAAG,EAAE;EAC9BM,kBAAAA,MAAM,EAAE,MAAM;EACdC,kBAAAA,OAAO,EAAE;EACL,oBAAA,cAAc,EAAE,kBAAkB;EAClC,oBAAA,oBAAoB,EAAE,IAAI,CAACtG,MAAM,CAACV,QAAQ;EAC1C,oBAAA,oBAAoB,EAAE,IAAI,CAACU,MAAM,CAACT,QAAQ;EAC1C,oBAAA,qBAAqB,EAAE,IAAI,CAACS,MAAM,CAACX,SAAS;EAC5C,oBAAA,QAAQ,EAAE,kBAAA;qBACb;EACDkH,kBAAAA,IAAI,EAAEC,IAAI,CAACC,SAAS,CAACtE,IAAI,CAAA;EAC7B,iBAAC,CAAC,CAAA;EAAA,cAAA,KAAA,CAAA;kBAVIZ,QAAQ,GAAA4E,SAAA,CAAAnE,CAAA,CAAA;kBAAA,IAYTT,QAAQ,CAACmF,EAAE,EAAA;EAAAP,kBAAAA,SAAA,CAAAtE,CAAA,GAAA,CAAA,CAAA;EAAA,kBAAA,MAAA;EAAA,iBAAA;EAAAsE,gBAAAA,SAAA,CAAAtE,CAAA,GAAA,CAAA,CAAA;EAAA,gBAAA,OACYN,QAAQ,CAACoF,IAAI,EAAE,CAAA;EAAA,cAAA,KAAA,CAAA;kBAAjCX,SAAS,GAAAG,SAAA,CAAAnE,CAAA,CAAA;kBAEf,IAAI;EACAiE,kBAAAA,SAAS,GAAGO,IAAI,CAACI,KAAK,CAACZ,SAAS,CAAC,CAAA;mBACpC,CAAC,OAAOa,CAAC,EAAE;EACRZ,kBAAAA,SAAS,GAAG;EAAE1D,oBAAAA,OAAO,EAAEyD,SAAAA;qBAAW,CAAA;EACtC,iBAAA;EAAC,gBAAA,MAEK,IAAInF,KAAK,CAACoF,SAAS,CAAC1D,OAAO,IAAAuB,eAAAA,CAAAA,MAAA,CAAoBvC,QAAQ,CAACuF,MAAM,CAAE,CAAC,CAAA;EAAA,cAAA,KAAA,CAAA;EAAAX,gBAAAA,SAAA,CAAAtE,CAAA,GAAA,CAAA,CAAA;EAAA,gBAAA,OAGtDN,QAAQ,CAACwF,IAAI,EAAE,CAAA;EAAA,cAAA,KAAA,CAAA;kBAA9BvC,MAAM,GAAA2B,SAAA,CAAAnE,CAAA,CAAA;EAAA,gBAAA,OAAAmE,SAAA,CAAA7D,CAAA,CAAA,CAAA,EACLkC,MAAM,CAAA,CAAA;EAAA,cAAA,KAAA,CAAA;EAAA2B,gBAAAA,SAAA,CAAAvE,CAAA,GAAA,CAAA,CAAA;kBAAAsE,GAAA,GAAAC,SAAA,CAAAnE,CAAA,CAAA;EAEblB,gBAAAA,OAAO,CAACkG,KAAK,CAAC,oBAAoB,EAAAd,GAAO,CAAC,CAAA;EAAC,gBAAA,MAAAA,GAAA,CAAA;EAAA,cAAA,KAAA,CAAA;kBAAA,OAAAC,SAAA,CAAA7D,CAAA,CAAA,CAAA,CAAA,CAAA;EAAA,aAAA;EAAA,WAAA,EAAAuD,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;WAGlD,CAAA,CAAA,CAAA;EAAA,QAAA,SAlCK/D,WAAWA,CAAAmF,GAAA,EAAAC,GAAA,EAAA;EAAA,UAAA,OAAAtB,YAAA,CAAAjD,KAAA,CAAA,IAAA,EAAA1C,SAAA,CAAA,CAAA;EAAA,SAAA;EAAA,QAAA,OAAX6B,WAAW,CAAA;EAAA,OAAA,EAAA;EAoCjB;EACR;EACA;EAFQ,OAAA;EAAA,KAAA,EAAA;QAAAnB,GAAA,EAAA,YAAA;EAAAC,MAAAA,KAAA,EAGA,SAAAyD,UAAUA,CAAC7E,KAAK,EAAE;EACd,QAAA,IAAMmE,SAAS,GAAGC,QAAQ,CAACuD,aAAa,CAAC,iBAAiB,CAAC,CAAA;EAC3D,QAAA,IAAIxD,SAAS,EAAE;EACXA,UAAAA,SAAS,CAACO,SAAS,GAAA,8BAAA,CAAAJ,MAAA,CAAkCtE,KAAK,CAAE,CAAA;EAChE,SAAA;EACJ,OAAA;;EAEA;EACR;EACA;EAFQ,KAAA,EAAA;QAAAmB,GAAA,EAAA,aAAA;EAAAC,MAAAA,KAAA,EAGA,SAAA4B,WAAWA,CAACwE,KAAK,EAAE;EACflG,QAAAA,OAAO,CAACkG,KAAK,CAAC,mBAAmB,EAAEA,KAAK,CAAC,CAAA;EAEzC,QAAA,IAAI,IAAI,CAAChH,MAAM,CAACH,OAAO,EAAE;EACrB,UAAA,IAAI,CAACG,MAAM,CAACH,OAAO,CAACmH,KAAK,CAAC,CAAA;EAC9B,SAAA;EACJ,OAAA;;EAEA;EACR;EACA;EAFQ,KAAA,EAAA;QAAArG,GAAA,EAAA,SAAA;EAAAC,MAAAA,KAAA,EAGA,SAAAwG,OAAOA,GAAG;UACN,IAAI,IAAI,CAAC7G,YAAY,EAAE;EACnBoF,UAAAA,aAAa,CAAC,IAAI,CAACpF,YAAY,CAAC,CAAA;EACpC,SAAA;UAEA,IAAI,CAACC,aAAa,GAAG,KAAK,CAAA;EAC1BM,QAAAA,OAAO,CAACC,GAAG,CAAC,oBAAoB,CAAC,CAAA;EACrC,OAAA;EAAC,KAAA,CAAA,CAAA,CAAA;KAGL,EAAA,CAAA;IACA7B,MAAM,CAACa,MAAM,GAAGA,MAAM,CAAA;IACtBb,MAAM,CAACmI,cAAc,GAAG,IAAI,CAAA;;EAE5B;EACAnI,EAAAA,MAAM,CAACoI,UAAU,GAAG,UAAStH,MAAM,EAAE;MACjC,IAAI;EACAd,MAAAA,MAAM,CAACmI,cAAc,GAAG,IAAItH,MAAM,CAACC,MAAM,CAAC,CAAA;QAC1C,OAAOd,MAAM,CAACmI,cAAc,CAAA;OAC/B,CAAC,OAAOL,KAAK,EAAE;EACZlG,MAAAA,OAAO,CAACkG,KAAK,CAAC,6CAA6C,EAAEA,KAAK,CAAC,CAAA;EACnE,MAAA,MAAMA,KAAK,CAAA;EACf,KAAA;KACH,CAAA;EAEL,CAAC,EAAE9H,MAAM,CAAC;;;;;;"}
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: 'https://sunuid.fayma.sn/api',\n clientId: null,\n secretId: null,\n theme: 'light',\n language: 'fr',\n autoRefresh: true,\n refreshInterval: 30000, // 30 secondes\n onSuccess: null,\n onError: 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 \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\n /**\n * Générer un QR code d'authentification\n */\n async generateAuthQR(containerId, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/auth/qr-generate.php', {\n type: 'auth',\n ...options\n });\n\n if (response.success) {\n this.displayQRCode(containerId, response.data.qrCodeUrl, 'auth', options);\n this.startAutoRefresh(containerId, 'auth', options);\n return response.data;\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code');\n }\n } catch (error) {\n console.warn('Erreur API détectée, génération d\\'un QR code de test:', error.message);\n \n // En cas d'échec de l'API (CORS, 500, ou autre), générer un QR code de test\n const testData = {\n type: 'auth',\n clientId: this.config.clientId,\n timestamp: Date.now(),\n sessionId: 'test_' + Math.random().toString(36).substr(2, 9),\n apiUrl: this.config.apiUrl,\n error: error.message,\n errorType: error.name,\n fallback: true,\n ...options\n };\n \n const qrData = JSON.stringify(testData);\n const qrUrl = `https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=${encodeURIComponent(qrData)}`;\n \n this.displayQRCode(containerId, qrUrl, 'auth', options);\n this.startAutoRefresh(containerId, 'auth', options);\n \n return {\n success: true,\n data: {\n sessionId: testData.sessionId,\n qrCodeUrl: qrUrl,\n expires: Date.now() + 30000,\n type: 'auth',\n fallback: true\n }\n };\n }\n }\n\n /**\n * Générer un QR code KYC\n */\n async generateKYCQR(containerId, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/auth/qr-generate.php', {\n type: 'kyc',\n ...options\n });\n\n if (response.success) {\n this.displayQRCode(containerId, response.data.qrCodeUrl, 'kyc', options);\n this.startAutoRefresh(containerId, 'kyc', options);\n return response.data;\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code KYC');\n }\n } catch (error) {\n console.warn('Erreur API détectée, génération d\\'un QR code KYC de test:', error.message);\n \n // En cas d'échec de l'API, générer un QR code de test\n const testData = {\n type: 'kyc',\n clientId: this.config.clientId,\n timestamp: Date.now(),\n sessionId: 'test_' + Math.random().toString(36).substr(2, 9),\n apiUrl: this.config.apiUrl,\n error: error.message,\n errorType: error.name,\n fallback: true,\n ...options\n };\n \n const qrData = JSON.stringify(testData);\n const qrUrl = `https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=${encodeURIComponent(qrData)}`;\n \n this.displayQRCode(containerId, qrUrl, 'kyc', options);\n this.startAutoRefresh(containerId, 'kyc', options);\n \n return {\n success: true,\n data: {\n sessionId: testData.sessionId,\n qrCodeUrl: qrUrl,\n expires: Date.now() + 30000,\n type: 'kyc',\n fallback: true\n }\n };\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('/auth/qr-status.php', {\n sessionId: 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 === 'auth' ? 'Authentification' : 'Vérification KYC'}</h3>\n <div class=\"sunuid-timer\">\n <span>Expire dans: </span>\n <span id=\"sunuid-timer\">30</span>\n <span> secondes</span>\n </div>\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 // Démarrer le timer\n this.startTimer();\n\n // Appliquer le thème\n this.applyTheme(options.theme || this.config.theme);\n }\n\n /**\n * Rafraîchir un QR code\n */\n async refreshQR(containerId, type, options = {}) {\n try {\n const result = type === 'auth' \n ? await this.generateAuthQR(containerId, options)\n : await this.generateKYCQR(containerId, options);\n \n return result;\n } catch (error) {\n this.handleError(error);\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 startTimer() {\n let timeLeft = 30;\n const timerElement = document.getElementById('sunuid-timer');\n \n const timer = setInterval(() => {\n timeLeft--;\n if (timerElement) {\n timerElement.textContent = timeLeft;\n }\n \n if (timeLeft <= 0) {\n clearInterval(timer);\n if (this.config.onExpired) {\n this.config.onExpired();\n }\n }\n }, 1000);\n }\n\n /**\n * Effectuer une requête API\n */\n async makeRequest(endpoint, data) {\n const url = `${this.config.apiUrl}${endpoint}`;\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 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","DEFAULT_CONFIG","apiUrl","clientId","secretId","theme","language","autoRefresh","refreshInterval","onSuccess","onError","onExpired","SunuID","config","arguments","length","undefined","_classCallCheck","_objectSpread","qrCode","refreshTimer","isInitialized","init","_createClass","key","value","Error","console","log","_generateAuthQR","_asyncToGenerator","_regenerator","m","_callee","containerId","options","response","testData","qrData","qrUrl","_args","_t","w","_context","p","n","makeRequest","type","v","success","displayQRCode","data","qrCodeUrl","startAutoRefresh","a","message","warn","timestamp","Date","now","sessionId","Math","random","toString","substr","error","errorType","name","fallback","JSON","stringify","concat","encodeURIComponent","expires","generateAuthQR","_x","apply","_generateKYCQR","_callee2","_args2","_t2","_context2","generateKYCQR","_x2","_checkQRStatus","_callee3","_t3","_context3","handleError","checkQRStatus","_x3","container","document","getElementById","innerHTML","qrElement","createElement","className","appendChild","startTimer","applyTheme","_refreshQR","_callee4","result","_args4","_t4","_t5","_context4","refreshQR","_x4","_x5","_this","setInterval","_callee5","_t6","_context5","_this2","timeLeft","timerElement","timer","textContent","clearInterval","_makeRequest","_callee6","endpoint","url","errorText","errorData","_t7","_context6","fetch","method","headers","body","client_id","secret_id","ok","text","parse","e","status","json","_x6","_x7","querySelector","destroy","sunuidInstance","initSunuID"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
- !function(){"use strict";function e(e,t,r,n,i,o,a){try{var u=e[o](a),s=u.value}catch(e){return void r(e)}u.done?t(s):Promise.resolve(s).then(n,i)}function t(t){return function(){var r=this,n=arguments;return new Promise(function(i,o){var a=t.apply(r,n);function u(t){e(a,i,o,u,s,"next",t)}function s(t){e(a,i,o,u,s,"throw",t)}u(void 0)})}}function r(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,s(n.key),n)}}function n(e,t,r){return(t=s(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach(function(t){n(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function a(){
1
+ !function(){"use strict";function e(e,t,r,n,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,i)}function t(t){return function(){var r=this,n=arguments;return new Promise(function(i,o){var a=t.apply(r,n);function s(t){e(a,i,o,s,c,"next",t)}function c(t){e(a,i,o,s,c,"throw",t)}s(void 0)})}}function r(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,c(n.key),n)}}function n(e,t,r){return(t=c(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach(function(t){n(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function a(){
2
2
  /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
3
- var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",i=r.toStringTag||"@@toStringTag";function o(r,n,i,o){var a=n&&n.prototype instanceof c?n:c,l=Object.create(a.prototype);return u(l,"_invoke",function(r,n,i){var o,a,u,c=0,l=i||[],f=!1,h={p:0,n:0,v:e,a:p,f:p.bind(e,4),d:function(t,r){return o=t,a=0,u=e,h.n=r,s}};function p(r,n){for(a=r,u=n,t=0;!f&&c&&!i&&t<l.length;t++){var i,o=l[t],p=h.p,d=o[2];r>3?(i=d===n)&&(u=o[(a=o[4])?5:(a=3,3)],o[4]=o[5]=e):o[0]<=p&&((i=r<2&&p<o[1])?(a=0,h.v=n,h.n=o[1]):p<d&&(i=r<3||o[0]>n||n>d)&&(o[4]=r,o[5]=n,h.n=d,a=0))}if(i||r>1)return s;throw f=!0,n}return function(i,l,d){if(c>1)throw TypeError("Generator is already running");for(f&&1===l&&p(l,d),a=l,u=d;(t=a<2?e:u)||!f;){o||(a?a<3?(a>1&&(h.n=-1),p(a,u)):h.n=u:h.v=u);try{if(c=2,o){if(a||(i="next"),t=o[i]){if(!(t=t.call(o,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,a<2&&(a=0)}else 1===a&&(t=o.return)&&t.call(o),a<2&&(u=TypeError("The iterator does not provide a '"+i+"' method"),a=1);o=e}else if((t=(f=h.n<0)?u:r.call(n,h))!==s)break}catch(t){o=e,a=1,u=t}finally{c=1}}return{value:t,done:f}}}(r,i,o),!0),l}var s={};function c(){}function l(){}function f(){}t=Object.getPrototypeOf;var h=[][n]?t(t([][n]())):(u(t={},n,function(){return this}),t),p=f.prototype=c.prototype=Object.create(h);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,f):(e.__proto__=f,u(e,i,"GeneratorFunction")),e.prototype=Object.create(p),e}return l.prototype=f,u(p,"constructor",f),u(f,"constructor",l),l.displayName="GeneratorFunction",u(f,i,"GeneratorFunction"),u(p),u(p,i,"Generator"),u(p,n,function(){return this}),u(p,"toString",function(){return"[object Generator]"}),(a=function(){return{w:o,m:d}})()}function u(e,t,r,n){var i=Object.defineProperty;try{i({},"",{})}catch(e){i=0}u=function(e,t,r,n){function o(t,r){u(e,t,function(e){return this._invoke(t,r,e)})}t?i?i(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(o("next",0),o("throw",1),o("return",2))},u(e,t,r,n)}function s(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}
3
+ var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",i=r.toStringTag||"@@toStringTag";function o(r,n,i,o){var a=n&&n.prototype instanceof u?n:u,l=Object.create(a.prototype);return s(l,"_invoke",function(r,n,i){var o,a,s,u=0,l=i||[],f=!1,h={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,r){return o=t,a=0,s=e,h.n=r,c}};function d(r,n){for(a=r,s=n,t=0;!f&&u&&!i&&t<l.length;t++){var i,o=l[t],d=h.p,p=o[2];r>3?(i=p===n)&&(s=o[(a=o[4])?5:(a=3,3)],o[4]=o[5]=e):o[0]<=d&&((i=r<2&&d<o[1])?(a=0,h.v=n,h.n=o[1]):d<p&&(i=r<3||o[0]>n||n>p)&&(o[4]=r,o[5]=n,h.n=p,a=0))}if(i||r>1)return c;throw f=!0,n}return function(i,l,p){if(u>1)throw TypeError("Generator is already running");for(f&&1===l&&d(l,p),a=l,s=p;(t=a<2?e:s)||!f;){o||(a?a<3?(a>1&&(h.n=-1),d(a,s)):h.n=s:h.v=s);try{if(u=2,o){if(a||(i="next"),t=o[i]){if(!(t=t.call(o,s)))throw TypeError("iterator result is not an object");if(!t.done)return t;s=t.value,a<2&&(a=0)}else 1===a&&(t=o.return)&&t.call(o),a<2&&(s=TypeError("The iterator does not provide a '"+i+"' method"),a=1);o=e}else if((t=(f=h.n<0)?s:r.call(n,h))!==c)break}catch(t){o=e,a=1,s=t}finally{u=1}}return{value:t,done:f}}}(r,i,o),!0),l}var c={};function u(){}function l(){}function f(){}t=Object.getPrototypeOf;var h=[][n]?t(t([][n]())):(s(t={},n,function(){return this}),t),d=f.prototype=u.prototype=Object.create(h);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,f):(e.__proto__=f,s(e,i,"GeneratorFunction")),e.prototype=Object.create(d),e}return l.prototype=f,s(d,"constructor",f),s(f,"constructor",l),l.displayName="GeneratorFunction",s(f,i,"GeneratorFunction"),s(d),s(d,i,"Generator"),s(d,n,function(){return this}),s(d,"toString",function(){return"[object Generator]"}),(a=function(){return{w:o,m:p}})()}function s(e,t,r,n){var i=Object.defineProperty;try{i({},"",{})}catch(e){i=0}s=function(e,t,r,n){function o(t,r){s(e,t,function(e){return this._invoke(t,r,e)})}t?i?i(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(o("next",0),o("throw",1),o("return",2))},s(e,t,r,n)}function c(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}
4
4
  /**
5
5
  * SunuID SDK - Package d'intégration pour partenaires
6
6
  *
7
7
  * @version 1.0.0
8
8
  * @author SunuID Team
9
9
  * @license MIT
10
- */!function(e){var n={apiUrl:"https://sunuid.fayma.sn/api",partnerId:null,clientId:null,secretId:null,theme:"light",language:"fr",autoRefresh:!0,refreshInterval:3e4,onSuccess:null,onError:null,onExpired:null},i=function(){return e=function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.config=o(o({},n),t),this.qrCode=null,this.refreshTimer=null,this.isInitialized=!1,this.init()},i=[{key:"init",value:function(){if(!this.config.partnerId||!this.config.clientId||!this.config.secretId)throw new Error("SunuID: partnerId, clientId et secretId sont requis");this.isInitialized=!0,console.log("SunuID SDK initialisé avec succès")}},{key:"generateAuthQR",value:(h=t(a().m(function e(t){var r,n,i,u=arguments;return a().w(function(e){for(;;)switch(e.p=e.n){case 0:if(r=u.length>1&&void 0!==u[1]?u[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("/auth/qr-generate.php",o({type:"auth"},r));case 2:if(!(n=e.v).success){e.n=3;break}return this.displayQRCode(t,n.data.qrCodeUrl,"auth",r),this.startAutoRefresh(t,"auth",r),e.a(2,n.data);case 3:throw new Error(n.message||"Erreur lors de la génération du QR code");case 4:e.n=6;break;case 5:throw e.p=5,i=e.v,this.handleError(i),i;case 6:return e.a(2)}},e,this,[[1,5]])})),function(e){return h.apply(this,arguments)})},{key:"generateKYCQR",value:(f=t(a().m(function e(t){var r,n,i,u=arguments;return a().w(function(e){for(;;)switch(e.p=e.n){case 0:if(r=u.length>1&&void 0!==u[1]?u[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("/auth/qr-generate.php",o({type:"kyc"},r));case 2:if(!(n=e.v).success){e.n=3;break}return this.displayQRCode(t,n.data.qrCodeUrl,"kyc",r),this.startAutoRefresh(t,"kyc",r),e.a(2,n.data);case 3:throw new Error(n.message||"Erreur lors de la génération du QR code KYC");case 4:e.n=6;break;case 5:throw e.p=5,i=e.v,this.handleError(i),i;case 6:return e.a(2)}},e,this,[[1,5]])})),function(e){return f.apply(this,arguments)})},{key:"checkQRStatus",value:(l=t(a().m(function e(t){var r,n;return a().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("/auth/qr-status.php",{sessionId:t});case 2:if(!(r=e.v).success){e.n=3;break}return e.a(2,r.data);case 3:throw new Error(r.message||"Erreur lors de la vérification du statut");case 4:e.n=6;break;case 5:throw e.p=5,n=e.v,this.handleError(n),n;case 6:return e.a(2)}},e,this,[[1,5]])})),function(e){return l.apply(this,arguments)})},{key:"displayQRCode",value:function(e,t,r){var n=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("auth"===r?"Authentification":"Vérification KYC",'</h3>\n <div class="sunuid-timer">\n <span>Expire dans: </span>\n <span id="sunuid-timer">30</span>\n <span> secondes</span>\n </div>\n </div>\n <div class="sunuid-qr-image">\n <img src="').concat(t,'" 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.startTimer(),this.applyTheme(n.theme||this.config.theme)}},{key:"refreshQR",value:(c=t(a().m(function e(t,r){var n,i,o,u,s=arguments;return a().w(function(e){for(;;)switch(e.p=e.n){case 0:if(n=s.length>2&&void 0!==s[2]?s[2]:{},e.p=1,"auth"!==r){e.n=3;break}return e.n=2,this.generateAuthQR(t,n);case 2:o=e.v,e.n=5;break;case 3:return e.n=4,this.generateKYCQR(t,n);case 4:o=e.v;case 5:return i=o,e.a(2,i);case 6:throw e.p=6,u=e.v,this.handleError(u),u;case 7:return e.a(2)}},e,this,[[1,6]])})),function(e,t){return c.apply(this,arguments)})},{key:"startAutoRefresh",value:function(e,r,n){var i=this;this.config.autoRefresh&&(this.refreshTimer=setInterval(t(a().m(function t(){var o;return a().w(function(t){for(;;)switch(t.p=t.n){case 0:return t.p=0,t.n=1,i.refreshQR(e,r,n);case 1:t.n=3;break;case 2:t.p=2,o=t.v,console.warn("Erreur lors du rafraîchissement automatique:",o);case 3:return t.a(2)}},t,null,[[0,2]])})),this.config.refreshInterval))}},{key:"startTimer",value:function(){var e=this,t=30,r=document.getElementById("sunuid-timer"),n=setInterval(function(){t--,r&&(r.textContent=t),t<=0&&(clearInterval(n),e.config.onExpired&&e.config.onExpired())},1e3)}},{key:"makeRequest",value:(s=t(a().m(function e(t,r){var n,i,o,u,s,c;return a().w(function(e){for(;;)switch(e.p=e.n){case 0:return n="".concat(this.config.apiUrl).concat(t),e.p=1,e.n=2,fetch(n,{method:"POST",headers:{"Content-Type":"application/json","X-SunuID-Client-ID":this.config.clientId,"X-SunuID-Secret-ID":this.config.secretId,"X-SunuID-Partner-ID":this.config.partnerId,Accept:"application/json"},body:JSON.stringify(r)});case 2:if((i=e.v).ok){e.n=4;break}return e.n=3,i.text();case 3:o=e.v;try{u=JSON.parse(o)}catch(e){u={message:o}}throw new Error(u.message||"Erreur HTTP: ".concat(i.status));case 4:return e.n=5,i.json();case 5:return s=e.v,e.a(2,s);case 6:throw e.p=6,c=e.v,console.error("Erreur API SunuID:",c),c;case 7:return e.a(2)}},e,this,[[1,6]])})),function(e,t){return s.apply(this,arguments)})},{key:"applyTheme",value:function(e){var t=document.querySelector(".sunuid-qr-code");t&&(t.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.isInitialized=!1,console.log("SunuID SDK détruit")}}],i&&r(e.prototype,i),u&&r(e,u),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,i,u,s,c,l,f,h}();e.SunuID=i,e.sunuidInstance=null,e.initSunuID=function(t){try{return e.sunuidInstance=new i(t),e.sunuidInstance}catch(e){throw console.error("Erreur lors de l'initialisation de SunuID:",e),e}}}(window)}();
10
+ */!function(e){var n={apiUrl:"https://sunuid.fayma.sn/api",clientId:null,secretId:null,theme:"light",language:"fr",autoRefresh:!0,refreshInterval:3e4,onSuccess:null,onError:null,onExpired:null},i=function(){return e=function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.config=o(o({},n),t),this.qrCode=null,this.refreshTimer=null,this.isInitialized=!1,this.init()},i=[{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")}},{key:"generateAuthQR",value:(h=t(a().m(function e(t){var r,n,i,s,c,u,l=arguments;return a().w(function(e){for(;;)switch(e.p=e.n){case 0:if(r=l.length>1&&void 0!==l[1]?l[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("/auth/qr-generate.php",o({type:"auth"},r));case 2:if(!(n=e.v).success){e.n=3;break}return this.displayQRCode(t,n.data.qrCodeUrl,"auth",r),this.startAutoRefresh(t,"auth",r),e.a(2,n.data);case 3:throw new Error(n.message||"Erreur lors de la génération du QR code");case 4:e.n=6;break;case 5:return e.p=5,u=e.v,console.warn("Erreur API détectée, génération d'un QR code de test:",u.message),i=o({type:"auth",clientId:this.config.clientId,timestamp:Date.now(),sessionId:"test_"+Math.random().toString(36).substr(2,9),apiUrl:this.config.apiUrl,error:u.message,errorType:u.name,fallback:!0},r),s=JSON.stringify(i),c="https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=".concat(encodeURIComponent(s)),this.displayQRCode(t,c,"auth",r),this.startAutoRefresh(t,"auth",r),e.a(2,{success:!0,data:{sessionId:i.sessionId,qrCodeUrl:c,expires:Date.now()+3e4,type:"auth",fallback:!0}});case 6:return e.a(2)}},e,this,[[1,5]])})),function(e){return h.apply(this,arguments)})},{key:"generateKYCQR",value:(f=t(a().m(function e(t){var r,n,i,s,c,u,l=arguments;return a().w(function(e){for(;;)switch(e.p=e.n){case 0:if(r=l.length>1&&void 0!==l[1]?l[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("/auth/qr-generate.php",o({type:"kyc"},r));case 2:if(!(n=e.v).success){e.n=3;break}return this.displayQRCode(t,n.data.qrCodeUrl,"kyc",r),this.startAutoRefresh(t,"kyc",r),e.a(2,n.data);case 3:throw new Error(n.message||"Erreur lors de la génération du QR code KYC");case 4:e.n=6;break;case 5:return e.p=5,u=e.v,console.warn("Erreur API détectée, génération d'un QR code KYC de test:",u.message),i=o({type:"kyc",clientId:this.config.clientId,timestamp:Date.now(),sessionId:"test_"+Math.random().toString(36).substr(2,9),apiUrl:this.config.apiUrl,error:u.message,errorType:u.name,fallback:!0},r),s=JSON.stringify(i),c="https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=".concat(encodeURIComponent(s)),this.displayQRCode(t,c,"kyc",r),this.startAutoRefresh(t,"kyc",r),e.a(2,{success:!0,data:{sessionId:i.sessionId,qrCodeUrl:c,expires:Date.now()+3e4,type:"kyc",fallback:!0}});case 6:return e.a(2)}},e,this,[[1,5]])})),function(e){return f.apply(this,arguments)})},{key:"checkQRStatus",value:(l=t(a().m(function e(t){var r,n;return a().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("/auth/qr-status.php",{sessionId:t});case 2:if(!(r=e.v).success){e.n=3;break}return e.a(2,r.data);case 3:throw new Error(r.message||"Erreur lors de la vérification du statut");case 4:e.n=6;break;case 5:throw e.p=5,n=e.v,this.handleError(n),n;case 6:return e.a(2)}},e,this,[[1,5]])})),function(e){return l.apply(this,arguments)})},{key:"displayQRCode",value:function(e,t,r){var n=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("auth"===r?"Authentification":"Vérification KYC",'</h3>\n <div class="sunuid-timer">\n <span>Expire dans: </span>\n <span id="sunuid-timer">30</span>\n <span> secondes</span>\n </div>\n </div>\n <div class="sunuid-qr-image">\n <img src="').concat(t,'" 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.startTimer(),this.applyTheme(n.theme||this.config.theme)}},{key:"refreshQR",value:(u=t(a().m(function e(t,r){var n,i,o,s,c=arguments;return a().w(function(e){for(;;)switch(e.p=e.n){case 0:if(n=c.length>2&&void 0!==c[2]?c[2]:{},e.p=1,"auth"!==r){e.n=3;break}return e.n=2,this.generateAuthQR(t,n);case 2:o=e.v,e.n=5;break;case 3:return e.n=4,this.generateKYCQR(t,n);case 4:o=e.v;case 5:return i=o,e.a(2,i);case 6:throw e.p=6,s=e.v,this.handleError(s),s;case 7:return e.a(2)}},e,this,[[1,6]])})),function(e,t){return u.apply(this,arguments)})},{key:"startAutoRefresh",value:function(e,r,n){var i=this;this.config.autoRefresh&&(this.refreshTimer=setInterval(t(a().m(function t(){var o;return a().w(function(t){for(;;)switch(t.p=t.n){case 0:return t.p=0,t.n=1,i.refreshQR(e,r,n);case 1:t.n=3;break;case 2:t.p=2,o=t.v,console.warn("Erreur lors du rafraîchissement automatique:",o);case 3:return t.a(2)}},t,null,[[0,2]])})),this.config.refreshInterval))}},{key:"startTimer",value:function(){var e=this,t=30,r=document.getElementById("sunuid-timer"),n=setInterval(function(){t--,r&&(r.textContent=t),t<=0&&(clearInterval(n),e.config.onExpired&&e.config.onExpired())},1e3)}},{key:"makeRequest",value:(c=t(a().m(function e(t,r){var n,i,s,c,u,l;return a().w(function(e){for(;;)switch(e.p=e.n){case 0:return n="".concat(this.config.apiUrl).concat(t),e.p=1,e.n=2,fetch(n,{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((i=e.v).ok){e.n=4;break}return e.n=3,i.text();case 3:s=e.v;try{c=JSON.parse(s)}catch(e){c={message:s}}throw new Error(c.message||"Erreur HTTP: ".concat(i.status));case 4:return e.n=5,i.json();case 5:return u=e.v,e.a(2,u);case 6:throw e.p=6,l=e.v,console.error("Erreur API SunuID:",l),l;case 7:return e.a(2)}},e,this,[[1,6]])})),function(e,t){return c.apply(this,arguments)})},{key:"applyTheme",value:function(e){var t=document.querySelector(".sunuid-qr-code");t&&(t.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.isInitialized=!1,console.log("SunuID SDK détruit")}}],i&&r(e.prototype,i),s&&r(e,s),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,i,s,c,u,l,f,h}();e.SunuID=i,e.sunuidInstance=null,e.initSunuID=function(t){try{return e.sunuidInstance=new i(t),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: 'https://sunuid.fayma.sn/api',\n partnerId: null,\n clientId: null,\n secretId: null,\n theme: 'light',\n language: 'fr',\n autoRefresh: true,\n refreshInterval: 30000, // 30 secondes\n onSuccess: null,\n onError: 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 \n this.init();\n }\n\n /**\n * Initialisation du SDK\n */\n init() {\n if (!this.config.partnerId || !this.config.clientId || !this.config.secretId) {\n throw new Error('SunuID: partnerId, clientId et secretId sont requis');\n }\n\n this.isInitialized = true;\n console.log('SunuID SDK initialisé avec succès');\n }\n\n /**\n * Générer un QR code d'authentification\n */\n async generateAuthQR(containerId, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/auth/qr-generate.php', {\n type: 'auth',\n ...options\n });\n\n if (response.success) {\n this.displayQRCode(containerId, response.data.qrCodeUrl, 'auth', options);\n this.startAutoRefresh(containerId, 'auth', options);\n return response.data;\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code');\n }\n } catch (error) {\n this.handleError(error);\n throw error;\n }\n }\n\n /**\n * Générer un QR code KYC\n */\n async generateKYCQR(containerId, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/auth/qr-generate.php', {\n type: 'kyc',\n ...options\n });\n\n if (response.success) {\n this.displayQRCode(containerId, response.data.qrCodeUrl, 'kyc', options);\n this.startAutoRefresh(containerId, 'kyc', options);\n return response.data;\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code KYC');\n }\n } catch (error) {\n this.handleError(error);\n throw error;\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('/auth/qr-status.php', {\n sessionId: 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 === 'auth' ? 'Authentification' : 'Vérification KYC'}</h3>\n <div class=\"sunuid-timer\">\n <span>Expire dans: </span>\n <span id=\"sunuid-timer\">30</span>\n <span> secondes</span>\n </div>\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 // Démarrer le timer\n this.startTimer();\n\n // Appliquer le thème\n this.applyTheme(options.theme || this.config.theme);\n }\n\n /**\n * Rafraîchir un QR code\n */\n async refreshQR(containerId, type, options = {}) {\n try {\n const result = type === 'auth' \n ? await this.generateAuthQR(containerId, options)\n : await this.generateKYCQR(containerId, options);\n \n return result;\n } catch (error) {\n this.handleError(error);\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 startTimer() {\n let timeLeft = 30;\n const timerElement = document.getElementById('sunuid-timer');\n \n const timer = setInterval(() => {\n timeLeft--;\n if (timerElement) {\n timerElement.textContent = timeLeft;\n }\n \n if (timeLeft <= 0) {\n clearInterval(timer);\n if (this.config.onExpired) {\n this.config.onExpired();\n }\n }\n }, 1000);\n }\n\n /**\n * Effectuer une requête API\n */\n async makeRequest(endpoint, data) {\n const url = `${this.config.apiUrl}${endpoint}`;\n \n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-SunuID-Client-ID': this.config.clientId,\n 'X-SunuID-Secret-ID': this.config.secretId,\n 'X-SunuID-Partner-ID': this.config.partnerId,\n 'Accept': 'application/json'\n },\n body: JSON.stringify(data)\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 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","DEFAULT_CONFIG","apiUrl","partnerId","clientId","secretId","theme","language","autoRefresh","refreshInterval","onSuccess","onError","onExpired","SunuID","config","arguments","length","undefined","_classCallCheck","this","_objectSpread","qrCode","refreshTimer","isInitialized","init","key","value","Error","console","log","_generateAuthQR","_asyncToGenerator","_regenerator","m","_callee","containerId","options","response","_t","_args","w","_context","p","n","makeRequest","type","v","success","displayQRCode","data","qrCodeUrl","startAutoRefresh","a","message","handleError","_x","apply","_generateKYCQR","_callee2","_t2","_args2","_context2","_x2","_checkQRStatus","_callee3","sessionId","_t3","_context3","_x3","qrUrl","container","document","getElementById","concat","innerHTML","qrElement","createElement","className","appendChild","startTimer","applyTheme","_refreshQR","_callee4","result","_t4","_t5","_args4","_context4","generateAuthQR","generateKYCQR","_x4","_x5","_this","setInterval","_callee5","_t6","_context5","refreshQR","warn","_this2","timeLeft","timerElement","timer","textContent","clearInterval","_makeRequest","_callee6","endpoint","url","errorText","errorData","_t7","_context6","fetch","method","headers","Accept","body","JSON","stringify","ok","text","parse","e","status","json","error","_x6","_x7","querySelector","sunuidInstance","initSunuID"],"mappings":"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"}
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: 'https://sunuid.fayma.sn/api',\n clientId: null,\n secretId: null,\n theme: 'light',\n language: 'fr',\n autoRefresh: true,\n refreshInterval: 30000, // 30 secondes\n onSuccess: null,\n onError: 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 \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\n /**\n * Générer un QR code d'authentification\n */\n async generateAuthQR(containerId, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/auth/qr-generate.php', {\n type: 'auth',\n ...options\n });\n\n if (response.success) {\n this.displayQRCode(containerId, response.data.qrCodeUrl, 'auth', options);\n this.startAutoRefresh(containerId, 'auth', options);\n return response.data;\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code');\n }\n } catch (error) {\n console.warn('Erreur API détectée, génération d\\'un QR code de test:', error.message);\n \n // En cas d'échec de l'API (CORS, 500, ou autre), générer un QR code de test\n const testData = {\n type: 'auth',\n clientId: this.config.clientId,\n timestamp: Date.now(),\n sessionId: 'test_' + Math.random().toString(36).substr(2, 9),\n apiUrl: this.config.apiUrl,\n error: error.message,\n errorType: error.name,\n fallback: true,\n ...options\n };\n \n const qrData = JSON.stringify(testData);\n const qrUrl = `https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=${encodeURIComponent(qrData)}`;\n \n this.displayQRCode(containerId, qrUrl, 'auth', options);\n this.startAutoRefresh(containerId, 'auth', options);\n \n return {\n success: true,\n data: {\n sessionId: testData.sessionId,\n qrCodeUrl: qrUrl,\n expires: Date.now() + 30000,\n type: 'auth',\n fallback: true\n }\n };\n }\n }\n\n /**\n * Générer un QR code KYC\n */\n async generateKYCQR(containerId, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/auth/qr-generate.php', {\n type: 'kyc',\n ...options\n });\n\n if (response.success) {\n this.displayQRCode(containerId, response.data.qrCodeUrl, 'kyc', options);\n this.startAutoRefresh(containerId, 'kyc', options);\n return response.data;\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code KYC');\n }\n } catch (error) {\n console.warn('Erreur API détectée, génération d\\'un QR code KYC de test:', error.message);\n \n // En cas d'échec de l'API, générer un QR code de test\n const testData = {\n type: 'kyc',\n clientId: this.config.clientId,\n timestamp: Date.now(),\n sessionId: 'test_' + Math.random().toString(36).substr(2, 9),\n apiUrl: this.config.apiUrl,\n error: error.message,\n errorType: error.name,\n fallback: true,\n ...options\n };\n \n const qrData = JSON.stringify(testData);\n const qrUrl = `https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=${encodeURIComponent(qrData)}`;\n \n this.displayQRCode(containerId, qrUrl, 'kyc', options);\n this.startAutoRefresh(containerId, 'kyc', options);\n \n return {\n success: true,\n data: {\n sessionId: testData.sessionId,\n qrCodeUrl: qrUrl,\n expires: Date.now() + 30000,\n type: 'kyc',\n fallback: true\n }\n };\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('/auth/qr-status.php', {\n sessionId: 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 === 'auth' ? 'Authentification' : 'Vérification KYC'}</h3>\n <div class=\"sunuid-timer\">\n <span>Expire dans: </span>\n <span id=\"sunuid-timer\">30</span>\n <span> secondes</span>\n </div>\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 // Démarrer le timer\n this.startTimer();\n\n // Appliquer le thème\n this.applyTheme(options.theme || this.config.theme);\n }\n\n /**\n * Rafraîchir un QR code\n */\n async refreshQR(containerId, type, options = {}) {\n try {\n const result = type === 'auth' \n ? await this.generateAuthQR(containerId, options)\n : await this.generateKYCQR(containerId, options);\n \n return result;\n } catch (error) {\n this.handleError(error);\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 startTimer() {\n let timeLeft = 30;\n const timerElement = document.getElementById('sunuid-timer');\n \n const timer = setInterval(() => {\n timeLeft--;\n if (timerElement) {\n timerElement.textContent = timeLeft;\n }\n \n if (timeLeft <= 0) {\n clearInterval(timer);\n if (this.config.onExpired) {\n this.config.onExpired();\n }\n }\n }, 1000);\n }\n\n /**\n * Effectuer une requête API\n */\n async makeRequest(endpoint, data) {\n const url = `${this.config.apiUrl}${endpoint}`;\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 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","DEFAULT_CONFIG","apiUrl","clientId","secretId","theme","language","autoRefresh","refreshInterval","onSuccess","onError","onExpired","SunuID","config","arguments","length","undefined","_classCallCheck","this","_objectSpread","qrCode","refreshTimer","isInitialized","init","key","value","Error","console","log","_generateAuthQR","_asyncToGenerator","_regenerator","m","_callee","containerId","options","response","testData","qrData","qrUrl","_t","_args","w","_context","p","n","makeRequest","type","v","success","displayQRCode","data","qrCodeUrl","startAutoRefresh","a","message","warn","timestamp","Date","now","sessionId","Math","random","toString","substr","error","errorType","name","fallback","JSON","stringify","concat","encodeURIComponent","expires","_x","apply","_generateKYCQR","_callee2","_t2","_args2","_context2","_x2","_checkQRStatus","_callee3","_t3","_context3","handleError","_x3","container","document","getElementById","innerHTML","qrElement","createElement","className","appendChild","startTimer","applyTheme","_refreshQR","_callee4","result","_t4","_t5","_args4","_context4","generateAuthQR","generateKYCQR","_x4","_x5","_this","setInterval","_callee5","_t6","_context5","refreshQR","_this2","timeLeft","timerElement","timer","textContent","clearInterval","_makeRequest","_callee6","endpoint","url","errorText","errorData","_t7","_context6","fetch","method","headers","Authorization","Accept","body","client_id","secret_id","ok","text","parse","e","status","json","_x6","_x7","querySelector","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.3",
3
+ "version": "1.0.5",
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",