sunuid-sdk 1.0.18 → 1.0.19
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.
- package/dist/sunuid-sdk.esm.js +138 -177
- package/dist/sunuid-sdk.esm.js.map +1 -1
- package/dist/sunuid-sdk.js +138 -177
- package/dist/sunuid-sdk.js.map +1 -1
- package/dist/sunuid-sdk.min.js +3 -3
- package/dist/sunuid-sdk.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sunuid-sdk.esm.js","sources":["../src/sunuid-sdk.js"],"sourcesContent":["/**\n * SunuID SDK - Package d'intégration pour partenaires\n * \n * @version 1.0.0\n * @author SunuID Team\n * @license MIT\n */\n\n(function(window) {\n 'use strict';\n\n // Configuration par défaut\n const DEFAULT_CONFIG = {\n apiUrl: window.SunuIDConfig?.apiUrl || 'https://api.sunuid.fayma.sn',\n clientId: null,\n secretId: null,\n theme: 'light',\n language: 'fr',\n autoRefresh: true,\n refreshInterval: 30000, // 30 secondes\n onSuccess: null,\n onError: 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('/qr-generate', {\n type: 1, // Type 1 pour authentification\n ...options\n });\n\n if (response.success) {\n // Construire l'URL complète de l'image QR avec la base URL pour les images\n const imageBaseUrl = 'https://sunuid.fayma.sn';\n const qrImageUrl = `${imageBaseUrl}${response.data.qrcode}`;\n this.displayQRCode(containerId, qrImageUrl, 'auth', options);\n this.startAutoRefresh(containerId, 'auth', options);\n return {\n ...response.data,\n qrCodeUrl: qrImageUrl,\n sessionId: response.data.service_id\n };\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code');\n }\n } catch (error) {\n console.error('Erreur API détectée:', error.message);\n console.log('Affichage du message \"Service non disponible\" pour auth');\n this.displayServiceUnavailable(containerId, 'auth');\n throw new Error('Service non disponible');\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('/qr-generate', {\n type: 2, // Type 2 pour KYC\n ...options\n });\n\n if (response.success) {\n // Construire l'URL complète de l'image QR avec la base URL pour les images\n const imageBaseUrl = 'https://sunuid.fayma.sn';\n const qrImageUrl = `${imageBaseUrl}${response.data.qrcode}`;\n this.displayQRCode(containerId, qrImageUrl, 'kyc', options);\n this.startAutoRefresh(containerId, 'kyc', options);\n return {\n ...response.data,\n qrCodeUrl: qrImageUrl,\n sessionId: response.data.service_id\n };\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code KYC');\n }\n } catch (error) {\n console.error('Erreur API détectée:', error.message);\n console.log('Affichage du message \"Service non disponible\" pour kyc');\n this.displayServiceUnavailable(containerId, 'kyc');\n throw new Error('Service non disponible');\n }\n }\n\n /**\n * Générer un QR code avec un type personnalisé\n */\n async generateCustomQR(containerId, type, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-generate', {\n type: type, // Type personnalisé (1, 2, 3, etc.)\n ...options\n });\n\n if (response.success) {\n // Construire l'URL complète de l'image QR avec la base URL pour les images\n const imageBaseUrl = 'https://sunuid.fayma.sn';\n const qrImageUrl = `${imageBaseUrl}${response.data.qrcode}`;\n this.displayQRCode(containerId, qrImageUrl, type, options);\n this.startAutoRefresh(containerId, type, options);\n return {\n ...response.data,\n qrCodeUrl: qrImageUrl,\n sessionId: response.data.service_id\n };\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code');\n }\n } catch (error) {\n console.error('Erreur API détectée:', error.message);\n console.log('Affichage du message \"Service non disponible\" pour type ' + type);\n this.displayServiceUnavailable(containerId, type);\n throw new Error('Service non disponible');\n }\n }\n\n /**\n * Vérifier le statut d'un QR code\n */\n async checkQRStatus(sessionId) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-status', {\n serviceId: sessionId\n });\n\n if (response.success) {\n return response.data;\n } else {\n throw new Error(response.message || 'Erreur lors de la vérification du statut');\n }\n } catch (error) {\n this.handleError(error);\n throw error;\n }\n }\n\n /**\n * Afficher un QR code dans un conteneur\n */\n displayQRCode(containerId, qrUrl, type, options = {}) {\n const container = document.getElementById(containerId);\n if (!container) {\n throw new Error(`Conteneur avec l'ID \"${containerId}\" non trouvé`);\n }\n\n // Nettoyer le conteneur\n container.innerHTML = '';\n\n // Créer l'élément QR code\n const qrElement = document.createElement('div');\n qrElement.className = 'sunuid-qr-code';\n qrElement.innerHTML = `\n <div class=\"sunuid-qr-header\">\n <h3>${type === 1 ? 'Authentification' : type === 2 ? 'Vérification KYC' : 'Service Type ' + type}</h3>\n </div>\n <div class=\"sunuid-qr-image\">\n <img src=\"${qrUrl}\" alt=\"QR Code SunuID\" style=\"max-width: 300px; height: auto;\">\n </div>\n <div class=\"sunuid-qr-instructions\">\n <p>Scannez ce QR code avec l'application SunuID pour vous connecter</p>\n </div>\n <div class=\"sunuid-qr-status\" id=\"sunuid-status\">\n <p>En attente de scan...</p>\n </div>\n `;\n\n container.appendChild(qrElement);\n\n // Appliquer le thème\n this.applyTheme(options.theme || this.config.theme);\n }\n\n /**\n * Afficher \"Service non disponible\"\n */\n displayServiceUnavailable(containerId, type) {\n console.log(`displayServiceUnavailable appelée pour ${containerId}, type: ${type}`);\n const container = document.getElementById(containerId);\n if (!container) {\n console.error(`Container ${containerId} non trouvé`);\n return;\n }\n\n container.innerHTML = `\n <div class=\"sunuid-service-unavailable\" style=\"\n text-align: center;\n padding: 40px 20px;\n background: #f8f9fa;\n border: 2px dashed #dee2e6;\n border-radius: 10px;\n color: #6c757d;\n font-family: Arial, sans-serif;\n \">\n <div style=\"font-size: 48px; margin-bottom: 20px;\">⚠️</div>\n <h3 style=\"margin: 0 0 10px 0; color: #495057;\">Service Non Disponible</h3>\n <p style=\"margin: 0; font-size: 14px;\">\n Le service d'authentification est temporairement indisponible.<br>\n Veuillez réessayer plus tard.\n </p>\n <div style=\"margin-top: 20px; font-size: 12px; color: #adb5bd;\">\n Type: ${type.toUpperCase()}\n </div>\n </div>\n `;\n }\n\n /**\n * Rafraîchir un QR code\n */\n async refreshQR(containerId, type, options = {}) {\n try {\n const result = type === 1 \n ? await this.generateAuthQR(containerId, options)\n : type === 2 \n ? await this.generateKYCQR(containerId, options)\n : await this.generateCustomQR(containerId, type, options);\n \n return result;\n } catch (error) {\n console.error('Erreur lors du rafraîchissement:', error.message);\n this.displayServiceUnavailable(containerId, type);\n throw error;\n }\n }\n\n /**\n * Démarrer le rafraîchissement automatique\n */\n startAutoRefresh(containerId, type, options) {\n if (!this.config.autoRefresh) return;\n\n this.refreshTimer = setInterval(async () => {\n try {\n await this.refreshQR(containerId, type, options);\n } catch (error) {\n console.warn('Erreur lors du rafraîchissement automatique:', error);\n }\n }, this.config.refreshInterval);\n }\n\n /**\n * Démarrer le timer de compte à rebours\n */\n\n\n /**\n * Effectuer une requête API\n */\n async makeRequest(endpoint, data) {\n // Utiliser l'endpoint depuis la configuration si disponible\n const endpointPath = window.SunuIDConfig?.endpoints?.[endpoint.replace('/', '')] || endpoint;\n const url = `${this.config.apiUrl}${endpointPath}`;\n \n 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","_window$SunuIDConfig","DEFAULT_CONFIG","apiUrl","SunuIDConfig","clientId","secretId","theme","language","autoRefresh","refreshInterval","onSuccess","onError","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","imageBaseUrl","qrImageUrl","_args","_t","w","_context","p","n","makeRequest","type","v","success","concat","data","qrcode","displayQRCode","startAutoRefresh","a","qrCodeUrl","sessionId","service_id","message","error","displayServiceUnavailable","generateAuthQR","_x","apply","_generateKYCQR","_callee2","_args2","_t2","_context2","generateKYCQR","_x2","_generateCustomQR","_callee3","_args3","_t3","_context3","generateCustomQR","_x3","_x4","_checkQRStatus","_callee4","_t4","_context4","serviceId","handleError","checkQRStatus","_x5","qrUrl","container","document","getElementById","innerHTML","qrElement","createElement","className","appendChild","applyTheme","toUpperCase","_refreshQR","_callee5","result","_args5","_t5","_t6","_t7","_context5","refreshQR","_x6","_x7","_this","setInterval","_callee6","_t8","_context6","warn","_makeRequest","_callee7","endpoint","_window$SunuIDConfig2","endpointPath","url","errorText","errorData","_t9","_context7","endpoints","replace","fetch","method","headers","body","JSON","stringify","client_id","secret_id","ok","text","parse","e","status","json","_x8","_x9","querySelector","destroy","clearInterval","sunuidInstance","initSunuID"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sunuid-sdk.esm.js","sources":["../src/sunuid-sdk.js"],"sourcesContent":["/**\n * SunuID SDK - Package d'intégration pour partenaires\n * \n * @version 1.0.0\n * @author SunuID Team\n * @license MIT\n */\n\n(function(window) {\n 'use strict';\n\n // Configuration par défaut\n const DEFAULT_CONFIG = {\n apiUrl: window.SunuIDConfig?.apiUrl || 'https://api.sunuid.fayma.sn',\n clientId: null,\n secretId: null,\n type: 1, // Type par défaut (1 = authentification)\n theme: 'light',\n language: 'fr',\n autoRefresh: true,\n refreshInterval: 30000, // 30 secondes\n onSuccess: null,\n onError: null\n };\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 avec le type configuré\n */\n async generateQR(containerId, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-generate', {\n type: this.config.type, // Utilise le type configuré\n ...options\n });\n\n if (response.success) {\n // Construire l'URL complète de l'image QR avec la base URL pour les images\n const imageBaseUrl = 'https://sunuid.fayma.sn';\n const qrImageUrl = `${imageBaseUrl}${response.data.qrcode}`;\n this.displayQRCode(containerId, qrImageUrl, this.config.type, options);\n this.startAutoRefresh(containerId, this.config.type, options);\n return {\n ...response.data,\n qrCodeUrl: qrImageUrl,\n sessionId: response.data.service_id\n };\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code');\n }\n } catch (error) {\n console.error('Erreur API détectée:', error.message);\n console.log('Affichage du message \"Service non disponible\" pour type ' + this.config.type);\n this.displayServiceUnavailable(containerId, this.config.type);\n throw new Error('Service non disponible');\n }\n }\n\n\n\n /**\n * Générer un QR code avec un type personnalisé\n */\n async generateCustomQR(containerId, type, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-generate', {\n type: type, // Type personnalisé (1, 2, 3, etc.)\n ...options\n });\n\n if (response.success) {\n // Construire l'URL complète de l'image QR avec la base URL pour les images\n const imageBaseUrl = 'https://sunuid.fayma.sn';\n const qrImageUrl = `${imageBaseUrl}${response.data.qrcode}`;\n this.displayQRCode(containerId, qrImageUrl, type, options);\n this.startAutoRefresh(containerId, type, options);\n return {\n ...response.data,\n qrCodeUrl: qrImageUrl,\n sessionId: response.data.service_id\n };\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code');\n }\n } catch (error) {\n console.error('Erreur API détectée:', error.message);\n console.log('Affichage du message \"Service non disponible\" pour type ' + type);\n this.displayServiceUnavailable(containerId, type);\n throw new Error('Service non disponible');\n }\n }\n\n // Alias pour maintenir la compatibilité\n async generateAuthQR(containerId, options = {}) {\n return this.generateQR(containerId, options);\n }\n\n async generateKYCQR(containerId, options = {}) {\n // Sauvegarder le type actuel\n const originalType = this.config.type;\n // Changer temporairement le type pour KYC\n this.config.type = 2;\n try {\n return await this.generateQR(containerId, options);\n } finally {\n // Restaurer le type original\n this.config.type = originalType;\n }\n }\n\n /**\n * Vérifier le statut d'un QR code\n */\n async checkQRStatus(sessionId) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-status', {\n serviceId: sessionId\n });\n\n if (response.success) {\n return response.data;\n } else {\n throw new Error(response.message || 'Erreur lors de la vérification du statut');\n }\n } catch (error) {\n this.handleError(error);\n throw error;\n }\n }\n\n /**\n * Afficher un QR code dans un conteneur\n */\n displayQRCode(containerId, qrUrl, type, options = {}) {\n const container = document.getElementById(containerId);\n if (!container) {\n throw new Error(`Conteneur avec l'ID \"${containerId}\" non trouvé`);\n }\n\n // Nettoyer le conteneur\n container.innerHTML = '';\n\n // Créer l'élément QR code\n const qrElement = document.createElement('div');\n qrElement.className = 'sunuid-qr-code';\n qrElement.innerHTML = `\n <div class=\"sunuid-qr-header\">\n <h3>${type === 1 ? 'Authentification' : type === 2 ? 'Vérification KYC' : type === 3 ? 'Service Type 3' : 'Service Type ' + type}</h3>\n </div>\n <div class=\"sunuid-qr-image\">\n <img src=\"${qrUrl}\" alt=\"QR Code SunuID\" style=\"max-width: 300px; height: auto;\">\n </div>\n <div class=\"sunuid-qr-instructions\">\n <p>Scannez ce QR code avec l'application SunuID pour vous connecter</p>\n </div>\n <div class=\"sunuid-qr-status\" id=\"sunuid-status\">\n <p>En attente de scan...</p>\n </div>\n `;\n\n container.appendChild(qrElement);\n\n // Appliquer le thème\n this.applyTheme(options.theme || this.config.theme);\n }\n\n /**\n * Afficher \"Service non disponible\"\n */\n displayServiceUnavailable(containerId, type) {\n console.log(`displayServiceUnavailable appelée pour ${containerId}, type: ${type}`);\n const container = document.getElementById(containerId);\n if (!container) {\n console.error(`Container ${containerId} non trouvé`);\n return;\n }\n\n container.innerHTML = `\n <div class=\"sunuid-service-unavailable\" style=\"\n text-align: center;\n padding: 40px 20px;\n background: #f8f9fa;\n border: 2px dashed #dee2e6;\n border-radius: 10px;\n color: #6c757d;\n font-family: Arial, sans-serif;\n \">\n <div style=\"font-size: 48px; margin-bottom: 20px;\">⚠️</div>\n <h3 style=\"margin: 0 0 10px 0; color: #495057;\">Service Non Disponible</h3>\n <p style=\"margin: 0; font-size: 14px;\">\n Le service d'authentification est temporairement indisponible.<br>\n Veuillez réessayer plus tard.\n </p>\n <div style=\"margin-top: 20px; font-size: 12px; color: #adb5bd;\">\n Type: ${type.toUpperCase()}\n </div>\n </div>\n `;\n }\n\n /**\n * Rafraîchir un QR code\n */\n async refreshQR(containerId, options = {}) {\n try {\n const result = await this.generateQR(containerId, options);\n return result;\n } catch (error) {\n console.error('Erreur lors du rafraîchissement:', error.message);\n this.displayServiceUnavailable(containerId, this.config.type);\n throw error;\n }\n }\n\n /**\n * Démarrer le rafraîchissement automatique\n */\n startAutoRefresh(containerId, type, options) {\n if (!this.config.autoRefresh) return;\n\n this.refreshTimer = setInterval(async () => {\n try {\n await this.refreshQR(containerId, type, options);\n } catch (error) {\n console.warn('Erreur lors du rafraîchissement automatique:', error);\n }\n }, this.config.refreshInterval);\n }\n\n /**\n * Démarrer le timer de compte à rebours\n */\n\n\n /**\n * Effectuer une requête API\n */\n async makeRequest(endpoint, data) {\n // Utiliser l'endpoint depuis la configuration si disponible\n const endpointPath = window.SunuIDConfig?.endpoints?.[endpoint.replace('/', '')] || endpoint;\n const url = `${this.config.apiUrl}${endpointPath}`;\n \n 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","_window$SunuIDConfig","DEFAULT_CONFIG","apiUrl","SunuIDConfig","clientId","secretId","type","theme","language","autoRefresh","refreshInterval","onSuccess","onError","SunuID","config","arguments","length","undefined","_classCallCheck","_objectSpread","qrCode","refreshTimer","isInitialized","init","_createClass","key","value","Error","console","log","_generateQR","_asyncToGenerator","_regenerator","m","_callee","containerId","options","response","imageBaseUrl","qrImageUrl","_args","_t","w","_context","p","n","makeRequest","v","success","concat","data","qrcode","displayQRCode","startAutoRefresh","a","qrCodeUrl","sessionId","service_id","message","error","displayServiceUnavailable","generateQR","_x","apply","_generateCustomQR","_callee2","_args2","_t2","_context2","generateCustomQR","_x2","_x3","_generateAuthQR","_callee3","_args3","_context3","generateAuthQR","_x4","_generateKYCQR","_callee4","originalType","_args4","_context4","f","generateKYCQR","_x5","_checkQRStatus","_callee5","_t3","_context5","serviceId","handleError","checkQRStatus","_x6","qrUrl","container","document","getElementById","innerHTML","qrElement","createElement","className","appendChild","applyTheme","toUpperCase","_refreshQR","_callee6","result","_args6","_t4","_context6","refreshQR","_x7","_this","setInterval","_callee7","_t5","_context7","warn","_makeRequest","_callee8","endpoint","_window$SunuIDConfig2","endpointPath","url","errorText","errorData","_t6","_context8","endpoints","replace","fetch","method","headers","body","JSON","stringify","client_id","secret_id","ok","text","parse","e","status","json","_x8","_x9","querySelector","destroy","clearInterval","sunuidInstance","initSunuID"],"mappings":"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"}
|