sunuid-sdk 1.0.1 → 1.0.3

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.
@@ -205,6 +205,7 @@
205
205
  // Configuration par défaut
206
206
  var DEFAULT_CONFIG = {
207
207
  apiUrl: 'https://sunuid.fayma.sn/api',
208
+ partnerId: null,
208
209
  clientId: null,
209
210
  secretId: null,
210
211
  theme: 'light',
@@ -237,8 +238,8 @@
237
238
  return _createClass(SunuID, [{
238
239
  key: "init",
239
240
  value: function init() {
240
- if (!this.config.clientId || !this.config.secretId) {
241
- throw new Error('SunuID: clientId et secretId sont requis');
241
+ if (!this.config.partnerId || !this.config.clientId || !this.config.secretId) {
242
+ throw new Error('SunuID: partnerId, clientId et secretId sont requis');
242
243
  }
243
244
  this.isInitialized = true;
244
245
  console.log('SunuID SDK initialisé avec succès');
@@ -253,9 +254,6 @@
253
254
  var _generateAuthQR = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(containerId) {
254
255
  var options,
255
256
  response,
256
- testData,
257
- qrData,
258
- qrUrl,
259
257
  _args = arguments,
260
258
  _t;
261
259
  return _regenerator().w(function (_context) {
@@ -270,7 +268,7 @@
270
268
  case 1:
271
269
  _context.p = 1;
272
270
  _context.n = 2;
273
- return this.makeRequest('/auth/qr-generate', _objectSpread2({
271
+ return this.makeRequest('/auth/qr-generate.php', _objectSpread2({
274
272
  type: 'auth'
275
273
  }, options));
276
274
  case 2:
@@ -279,42 +277,19 @@
279
277
  _context.n = 3;
280
278
  break;
281
279
  }
282
- this.displayQRCode(containerId, response.data.qr_code_url, 'auth', options);
280
+ this.displayQRCode(containerId, response.data.qrCodeUrl, 'auth', options);
283
281
  this.startAutoRefresh(containerId, 'auth', options);
284
282
  return _context.a(2, response.data);
285
283
  case 3:
286
- throw new Error(response.message);
284
+ throw new Error(response.message || 'Erreur lors de la génération du QR code');
287
285
  case 4:
288
286
  _context.n = 6;
289
287
  break;
290
288
  case 5:
291
289
  _context.p = 5;
292
290
  _t = _context.v;
293
- console.warn('Erreur API détectée, génération d\'un QR code de test:', _t.message);
294
- console.log('Type d\'erreur:', _t.name, 'Message:', _t.message);
295
-
296
- // En cas d'échec de l'API (CORS, 500, ou autre), générer un QR code de test
297
- testData = _objectSpread2({
298
- type: 'auth',
299
- clientId: this.config.clientId,
300
- timestamp: Date.now(),
301
- sessionId: 'test_' + Math.random().toString(36).substr(2, 9),
302
- apiUrl: this.config.apiUrl,
303
- error: _t.message,
304
- errorType: _t.name
305
- }, options);
306
- qrData = JSON.stringify(testData);
307
- qrUrl = "https://api.qrserver.com/v1/create-qr-code/?size=200x200&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
- qr_code_url: qrUrl,
314
- qr_id: testData.sessionId,
315
- expires_at: Date.now() + 30000
316
- }
317
- });
291
+ this.handleError(_t);
292
+ throw _t;
318
293
  case 6:
319
294
  return _context.a(2);
320
295
  }
@@ -335,9 +310,6 @@
335
310
  var _generateKYCQR = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(containerId) {
336
311
  var options,
337
312
  response,
338
- testData,
339
- qrData,
340
- qrUrl,
341
313
  _args2 = arguments,
342
314
  _t2;
343
315
  return _regenerator().w(function (_context2) {
@@ -352,7 +324,7 @@
352
324
  case 1:
353
325
  _context2.p = 1;
354
326
  _context2.n = 2;
355
- return this.makeRequest('/auth/qr-generate', _objectSpread2({
327
+ return this.makeRequest('/auth/qr-generate.php', _objectSpread2({
356
328
  type: 'kyc'
357
329
  }, options));
358
330
  case 2:
@@ -361,44 +333,19 @@
361
333
  _context2.n = 3;
362
334
  break;
363
335
  }
364
- this.displayQRCode(containerId, response.data.qr_code_url, 'kyc', options);
336
+ this.displayQRCode(containerId, response.data.qrCodeUrl, 'kyc', options);
365
337
  this.startAutoRefresh(containerId, 'kyc', options);
366
338
  return _context2.a(2, response.data);
367
339
  case 3:
368
- throw new Error(response.message);
340
+ throw new Error(response.message || 'Erreur lors de la génération du QR code KYC');
369
341
  case 4:
370
342
  _context2.n = 6;
371
343
  break;
372
344
  case 5:
373
345
  _context2.p = 5;
374
346
  _t2 = _context2.v;
375
- console.warn('Erreur API détectée, génération d\'un QR code de test:', _t2.message);
376
- console.log('Type d\'erreur:', _t2.name, 'Message:', _t2.message);
377
-
378
- // En cas d'échec de l'API (CORS, 500, ou autre), générer un QR code de test
379
- testData = _objectSpread2({
380
- type: 'kyc',
381
- clientId: this.config.clientId,
382
- timestamp: Date.now(),
383
- sessionId: 'test_' + Math.random().toString(36).substr(2, 9),
384
- kycType: options.kycType || 'full',
385
- requiredFields: options.requiredFields || ['identity', 'address', 'phone'],
386
- apiUrl: this.config.apiUrl,
387
- error: _t2.message,
388
- errorType: _t2.name
389
- }, options);
390
- qrData = JSON.stringify(testData);
391
- qrUrl = "https://api.qrserver.com/v1/create-qr-code/?size=200x200&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
- qr_code_url: qrUrl,
398
- qr_id: testData.sessionId,
399
- expires_at: Date.now() + 30000
400
- }
401
- });
347
+ this.handleError(_t2);
348
+ throw _t2;
402
349
  case 6:
403
350
  return _context2.a(2);
404
351
  }
@@ -416,28 +363,43 @@
416
363
  }, {
417
364
  key: "checkQRStatus",
418
365
  value: (function () {
419
- var _checkQRStatus = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(qrId) {
366
+ var _checkQRStatus = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(sessionId) {
420
367
  var response, _t3;
421
368
  return _regenerator().w(function (_context3) {
422
369
  while (1) switch (_context3.p = _context3.n) {
423
370
  case 0:
424
- _context3.p = 0;
425
- _context3.n = 1;
426
- return this.makeRequest('/auth/qr-status', {
427
- qr_id: qrId
428
- });
371
+ if (this.isInitialized) {
372
+ _context3.n = 1;
373
+ break;
374
+ }
375
+ throw new Error('SunuID: SDK non initialisé');
429
376
  case 1:
377
+ _context3.p = 1;
378
+ _context3.n = 2;
379
+ return this.makeRequest('/auth/qr-status.php', {
380
+ sessionId: sessionId
381
+ });
382
+ case 2:
430
383
  response = _context3.v;
384
+ if (!response.success) {
385
+ _context3.n = 3;
386
+ break;
387
+ }
431
388
  return _context3.a(2, response.data);
432
- case 2:
433
- _context3.p = 2;
389
+ case 3:
390
+ throw new Error(response.message || 'Erreur lors de la vérification du statut');
391
+ case 4:
392
+ _context3.n = 6;
393
+ break;
394
+ case 5:
395
+ _context3.p = 5;
434
396
  _t3 = _context3.v;
435
397
  this.handleError(_t3);
436
398
  throw _t3;
437
- case 3:
399
+ case 6:
438
400
  return _context3.a(2);
439
401
  }
440
- }, _callee3, this, [[0, 2]]);
402
+ }, _callee3, this, [[1, 5]]);
441
403
  }));
442
404
  function checkQRStatus(_x3) {
443
405
  return _checkQRStatus.apply(this, arguments);
@@ -445,7 +407,7 @@
445
407
  return checkQRStatus;
446
408
  }()
447
409
  /**
448
- * Afficher le QR code dans le conteneur
410
+ * Afficher un QR code dans un conteneur
449
411
  */
450
412
  )
451
413
  }, {
@@ -456,28 +418,35 @@
456
418
  if (!container) {
457
419
  throw new Error("Conteneur avec l'ID \"".concat(containerId, "\" non trouv\xE9"));
458
420
  }
459
- var theme = options.theme || this.config.theme;
460
- options.language || this.config.language;
461
- container.innerHTML = "\n <div class=\"sunuid-qr-container sunuid-theme-".concat(theme, "\">\n <div class=\"sunuid-qr-header\">\n <h3 class=\"sunuid-qr-title\">\n ").concat(type === 'auth' ? '🔐 Authentification' : '📋 Vérification KYC', "\n </h3>\n <p class=\"sunuid-qr-subtitle\">\n ").concat(type === 'auth' ? 'Scannez ce QR code avec l\'application SunuID pour vous connecter' : 'Scannez ce QR code avec l\'application SunuID pour compléter votre profil', "\n </p>\n </div>\n <div class=\"sunuid-qr-code\">\n <img src=\"").concat(qrUrl, "\" alt=\"QR Code SunuID\" class=\"sunuid-qr-image\">\n <div class=\"sunuid-qr-overlay\">\n <div class=\"sunuid-qr-spinner\"></div>\n </div>\n </div>\n <div class=\"sunuid-qr-footer\">\n <p class=\"sunuid-qr-timer\">\n <i class=\"fa-solid fa-clock\"></i>\n <span id=\"sunuid-timer\">30</span> secondes\n </p>\n <button class=\"sunuid-qr-refresh\" onclick=\"sunuidInstance.refreshQR('").concat(containerId, "', '").concat(type, "', ").concat(JSON.stringify(options), ")\">\n <i class=\"fa-solid fa-sync-alt\"></i>\n Actualiser\n </button>\n </div>\n </div>\n ");
462
- this.qrCode = {
463
- containerId: containerId,
464
- type: type,
465
- options: options,
466
- qrUrl: qrUrl
467
- };
421
+
422
+ // Nettoyer le conteneur
423
+ container.innerHTML = '';
424
+
425
+ // Créer l'élément QR code
426
+ var qrElement = document.createElement('div');
427
+ qrElement.className = 'sunuid-qr-code';
428
+ qrElement.innerHTML = "\n <div class=\"sunuid-qr-header\">\n <h3>".concat(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=\"").concat(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 ");
429
+ container.appendChild(qrElement);
430
+
431
+ // Démarrer le timer
468
432
  this.startTimer();
433
+
434
+ // Appliquer le thème
435
+ this.applyTheme(options.theme || this.config.theme);
469
436
  }
470
437
 
471
438
  /**
472
- * Actualiser le QR code
439
+ * Rafraîchir un QR code
473
440
  */
474
441
  }, {
475
442
  key: "refreshQR",
476
443
  value: (function () {
477
444
  var _refreshQR = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(containerId, type) {
478
445
  var options,
446
+ result,
479
447
  _args4 = arguments,
480
- _t4;
448
+ _t4,
449
+ _t5;
481
450
  return _regenerator().w(function (_context4) {
482
451
  while (1) switch (_context4.p = _context4.n) {
483
452
  case 0:
@@ -490,22 +459,26 @@
490
459
  _context4.n = 2;
491
460
  return this.generateAuthQR(containerId, options);
492
461
  case 2:
493
- _context4.n = 4;
462
+ _t4 = _context4.v;
463
+ _context4.n = 5;
494
464
  break;
495
465
  case 3:
496
466
  _context4.n = 4;
497
467
  return this.generateKYCQR(containerId, options);
498
468
  case 4:
499
- _context4.n = 6;
500
- break;
501
- case 5:
502
- _context4.p = 5;
503
469
  _t4 = _context4.v;
504
- this.handleError(_t4);
470
+ case 5:
471
+ result = _t4;
472
+ return _context4.a(2, result);
505
473
  case 6:
474
+ _context4.p = 6;
475
+ _t5 = _context4.v;
476
+ this.handleError(_t5);
477
+ throw _t5;
478
+ case 7:
506
479
  return _context4.a(2);
507
480
  }
508
- }, _callee4, this, [[1, 5]]);
481
+ }, _callee4, this, [[1, 6]]);
509
482
  }));
510
483
  function refreshQR(_x4, _x5) {
511
484
  return _refreshQR.apply(this, arguments);
@@ -513,7 +486,7 @@
513
486
  return refreshQR;
514
487
  }()
515
488
  /**
516
- * Démarrer le timer de rafraîchissement automatique
489
+ * Démarrer le rafraîchissement automatique
517
490
  */
518
491
  )
519
492
  }, {
@@ -522,7 +495,7 @@
522
495
  var _this = this;
523
496
  if (!this.config.autoRefresh) return;
524
497
  this.refreshTimer = setInterval(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5() {
525
- var _t5;
498
+ var _t6;
526
499
  return _regenerator().w(function (_context5) {
527
500
  while (1) switch (_context5.p = _context5.n) {
528
501
  case 0:
@@ -534,8 +507,8 @@
534
507
  break;
535
508
  case 2:
536
509
  _context5.p = 2;
537
- _t5 = _context5.v;
538
- console.warn('Erreur lors du rafraîchissement automatique:', _t5);
510
+ _t6 = _context5.v;
511
+ console.warn('Erreur lors du rafraîchissement automatique:', _t6);
539
512
  case 3:
540
513
  return _context5.a(2);
541
514
  }
@@ -573,55 +546,57 @@
573
546
  key: "makeRequest",
574
547
  value: (function () {
575
548
  var _makeRequest = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6(endpoint, data) {
576
- var url, requestData, response, _t6;
549
+ var url, response, errorText, errorData, result, _t7;
577
550
  return _regenerator().w(function (_context6) {
578
551
  while (1) switch (_context6.p = _context6.n) {
579
552
  case 0:
580
- url = "".concat(this.config.apiUrl).concat(endpoint); // Préparer les données avec les identifiants
581
- requestData = _objectSpread2(_objectSpread2({}, data), {}, {
582
- client_id: this.config.clientId,
583
- secret_id: this.config.secretId
584
- });
553
+ url = "".concat(this.config.apiUrl).concat(endpoint);
585
554
  _context6.p = 1;
586
555
  _context6.n = 2;
587
556
  return fetch(url, {
588
557
  method: 'POST',
589
558
  headers: {
590
559
  '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,
591
563
  'Accept': 'application/json'
592
564
  },
593
- body: JSON.stringify(requestData)
565
+ body: JSON.stringify(data)
594
566
  });
595
567
  case 2:
596
568
  response = _context6.v;
597
569
  if (response.ok) {
598
- _context6.n = 3;
570
+ _context6.n = 4;
599
571
  break;
600
572
  }
601
- console.warn("Erreur HTTP ".concat(response.status, ": ").concat(response.statusText));
602
- throw new Error("Erreur HTTP: ".concat(response.status, " - ").concat(response.statusText));
573
+ _context6.n = 3;
574
+ return response.text();
603
575
  case 3:
604
- _context6.n = 4;
605
- return response.json();
576
+ errorText = _context6.v;
577
+ try {
578
+ errorData = JSON.parse(errorText);
579
+ } catch (e) {
580
+ errorData = {
581
+ message: errorText
582
+ };
583
+ }
584
+ throw new Error(errorData.message || "Erreur HTTP: ".concat(response.status));
606
585
  case 4:
607
- return _context6.a(2, _context6.v);
586
+ _context6.n = 5;
587
+ return response.json();
608
588
  case 5:
609
- _context6.p = 5;
610
- _t6 = _context6.v;
611
- if (!(_t6.name === 'TypeError' && _t6.message.includes('CORS'))) {
612
- _context6.n = 6;
613
- break;
614
- }
615
- console.warn('Erreur CORS détectée, utilisation de QR codes de test');
616
- throw new Error('CORS_ERROR');
589
+ result = _context6.v;
590
+ return _context6.a(2, result);
617
591
  case 6:
618
- // Pour toutes les autres erreurs (500, 404, etc.)
619
- console.warn('Erreur API détectée:', _t6.message);
620
- throw _t6;
592
+ _context6.p = 6;
593
+ _t7 = _context6.v;
594
+ console.error('Erreur API SunuID:', _t7);
595
+ throw _t7;
621
596
  case 7:
622
597
  return _context6.a(2);
623
598
  }
624
- }, _callee6, this, [[1, 5]]);
599
+ }, _callee6, this, [[1, 6]]);
625
600
  }));
626
601
  function makeRequest(_x6, _x7) {
627
602
  return _makeRequest.apply(this, arguments);
@@ -629,9 +604,21 @@
629
604
  return makeRequest;
630
605
  }()
631
606
  /**
632
- * Gérer les erreurs
607
+ * Appliquer le thème
633
608
  */
634
609
  )
610
+ }, {
611
+ key: "applyTheme",
612
+ value: function applyTheme(theme) {
613
+ var container = document.querySelector('.sunuid-qr-code');
614
+ if (container) {
615
+ container.className = "sunuid-qr-code sunuid-theme-".concat(theme);
616
+ }
617
+ }
618
+
619
+ /**
620
+ * Gérer les erreurs
621
+ */
635
622
  }, {
636
623
  key: "handleError",
637
624
  value: function handleError(error) {
@@ -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 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 // Essayer d'abord l'API réelle\n const response = await this.makeRequest('/auth/qr-generate', {\n type: 'auth',\n ...options\n });\n\n if (response.success) {\n this.displayQRCode(containerId, response.data.qr_code_url, 'auth', options);\n this.startAutoRefresh(containerId, 'auth', options);\n return response.data;\n } else {\n throw new Error(response.message);\n }\n } catch (error) {\n console.warn('Erreur API détectée, génération d\\'un QR code de test:', error.message);\n console.log('Type d\\'erreur:', error.name, 'Message:', 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 ...options\n };\n \n const qrData = JSON.stringify(testData);\n const qrUrl = `https://api.qrserver.com/v1/create-qr-code/?size=200x200&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 qr_code_url: qrUrl,\n qr_id: testData.sessionId,\n expires_at: Date.now() + 30000\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 // Essayer d'abord l'API réelle\n const response = await this.makeRequest('/auth/qr-generate', {\n type: 'kyc',\n ...options\n });\n\n if (response.success) {\n this.displayQRCode(containerId, response.data.qr_code_url, 'kyc', options);\n this.startAutoRefresh(containerId, 'kyc', options);\n return response.data;\n } else {\n throw new Error(response.message);\n }\n } catch (error) {\n console.warn('Erreur API détectée, génération d\\'un QR code de test:', error.message);\n console.log('Type d\\'erreur:', error.name, 'Message:', 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: 'kyc',\n clientId: this.config.clientId,\n timestamp: Date.now(),\n sessionId: 'test_' + Math.random().toString(36).substr(2, 9),\n kycType: options.kycType || 'full',\n requiredFields: options.requiredFields || ['identity', 'address', 'phone'],\n apiUrl: this.config.apiUrl,\n error: error.message,\n errorType: error.name,\n ...options\n };\n \n const qrData = JSON.stringify(testData);\n const qrUrl = `https://api.qrserver.com/v1/create-qr-code/?size=200x200&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 qr_code_url: qrUrl,\n qr_id: testData.sessionId,\n expires_at: Date.now() + 30000\n }\n };\n }\n }\n\n /**\n * Vérifier le statut d'un QR code\n */\n async checkQRStatus(qrId) {\n try {\n const response = await this.makeRequest('/auth/qr-status', {\n qr_id: qrId\n });\n\n return response.data;\n } catch (error) {\n this.handleError(error);\n throw error;\n }\n }\n\n /**\n * Afficher le QR code dans le 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 const theme = options.theme || this.config.theme;\n const language = options.language || this.config.language;\n\n container.innerHTML = `\n <div class=\"sunuid-qr-container sunuid-theme-${theme}\">\n <div class=\"sunuid-qr-header\">\n <h3 class=\"sunuid-qr-title\">\n ${type === 'auth' ? '🔐 Authentification' : '📋 Vérification KYC'}\n </h3>\n <p class=\"sunuid-qr-subtitle\">\n ${type === 'auth' ? \n 'Scannez ce QR code avec l\\'application SunuID pour vous connecter' :\n 'Scannez ce QR code avec l\\'application SunuID pour compléter votre profil'\n }\n </p>\n </div>\n <div class=\"sunuid-qr-code\">\n <img src=\"${qrUrl}\" alt=\"QR Code SunuID\" class=\"sunuid-qr-image\">\n <div class=\"sunuid-qr-overlay\">\n <div class=\"sunuid-qr-spinner\"></div>\n </div>\n </div>\n <div class=\"sunuid-qr-footer\">\n <p class=\"sunuid-qr-timer\">\n <i class=\"fa-solid fa-clock\"></i>\n <span id=\"sunuid-timer\">30</span> secondes\n </p>\n <button class=\"sunuid-qr-refresh\" onclick=\"sunuidInstance.refreshQR('${containerId}', '${type}', ${JSON.stringify(options)})\">\n <i class=\"fa-solid fa-sync-alt\"></i>\n Actualiser\n </button>\n </div>\n </div>\n `;\n\n this.qrCode = {\n containerId,\n type,\n options,\n qrUrl\n };\n\n this.startTimer();\n }\n\n /**\n * Actualiser le QR code\n */\n async refreshQR(containerId, type, options = {}) {\n try {\n if (type === 'auth') {\n await this.generateAuthQR(containerId, options);\n } else {\n await this.generateKYCQR(containerId, options);\n }\n } catch (error) {\n this.handleError(error);\n }\n }\n\n /**\n * Démarrer le timer de 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 // Préparer les données avec les identifiants\n const requestData = {\n ...data,\n client_id: this.config.clientId,\n secret_id: this.config.secretId\n };\n \n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json'\n },\n body: JSON.stringify(requestData)\n });\n\n if (!response.ok) {\n console.warn(`Erreur HTTP ${response.status}: ${response.statusText}`);\n throw new Error(`Erreur HTTP: ${response.status} - ${response.statusText}`);\n }\n\n return await response.json();\n } catch (error) {\n // Si c'est une erreur CORS, on la gère spécifiquement\n if (error.name === 'TypeError' && error.message.includes('CORS')) {\n console.warn('Erreur CORS détectée, utilisation de QR codes de test');\n throw new Error('CORS_ERROR');\n }\n // Pour toutes les autres erreurs (500, 404, etc.)\n console.warn('Erreur API détectée:', error.message);\n throw error;\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","qr_code_url","startAutoRefresh","a","message","warn","name","timestamp","Date","now","sessionId","Math","random","toString","substr","error","errorType","JSON","stringify","concat","encodeURIComponent","qr_id","expires_at","generateAuthQR","_x","apply","_generateKYCQR","_callee2","_args2","_t2","_context2","kycType","requiredFields","generateKYCQR","_x2","_checkQRStatus","_callee3","qrId","_t3","_context3","handleError","checkQRStatus","_x3","container","document","getElementById","innerHTML","startTimer","_refreshQR","_callee4","_args4","_t4","_context4","refreshQR","_x4","_x5","_this","setInterval","_callee5","_t5","_context5","_this2","timeLeft","timerElement","timer","textContent","clearInterval","_makeRequest","_callee6","endpoint","url","requestData","_t6","_context6","client_id","secret_id","fetch","method","headers","body","ok","status","statusText","json","includes","_x6","_x7","destroy","sunuidInstance","initSunuID"],"mappings":"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"}
1
+ {"version":3,"file":"sunuid-sdk.js","sources":["../src/sunuid-sdk.js"],"sourcesContent":["/**\n * SunuID SDK - Package d'intégration pour partenaires\n * \n * @version 1.0.0\n * @author SunuID Team\n * @license MIT\n */\n\n(function(window) {\n 'use strict';\n\n // Configuration par défaut\n const DEFAULT_CONFIG = {\n apiUrl: '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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"}