sunuid-sdk 1.0.55 → 1.0.56
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 +53 -33
- package/dist/sunuid-sdk.esm.js.map +1 -1
- package/dist/sunuid-sdk.js +53 -33
- 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
package/dist/sunuid-sdk.esm.js
CHANGED
|
@@ -478,7 +478,7 @@ function _unsupportedIterableToArray(r, a) {
|
|
|
478
478
|
key: "secureInit",
|
|
479
479
|
value: (function () {
|
|
480
480
|
var _secureInit = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {
|
|
481
|
-
var initData, response, result, decodedToken, _t2;
|
|
481
|
+
var _result$response, _result$response2, _result$data, _result$response3, _result$data2, _result$response4, _result$data3, initData, response, result, token, decodedToken, clientId, secretId, apiUrl, _t2;
|
|
482
482
|
return _regenerator().w(function (_context3) {
|
|
483
483
|
while (1) switch (_context3.p = _context3.n) {
|
|
484
484
|
case 0:
|
|
@@ -517,44 +517,56 @@ function _unsupportedIterableToArray(r, a) {
|
|
|
517
517
|
}
|
|
518
518
|
throw new Error(result.error || 'Erreur lors de l\'initialisation sécurisée');
|
|
519
519
|
case 4:
|
|
520
|
-
//
|
|
521
|
-
|
|
522
|
-
|
|
520
|
+
// Extraire le token depuis différents chemins possibles
|
|
521
|
+
token = (result === null || result === void 0 || (_result$response = result.response) === null || _result$response === void 0 || (_result$response = _result$response.response) === null || _result$response === void 0 ? void 0 : _result$response.token) || (result === null || result === void 0 || (_result$response2 = result.response) === null || _result$response2 === void 0 ? void 0 : _result$response2.token) || (result === null || result === void 0 || (_result$data = result.data) === null || _result$data === void 0 ? void 0 : _result$data.token) || (result === null || result === void 0 ? void 0 : result.token);
|
|
522
|
+
if (!(!token || typeof token !== 'string')) {
|
|
523
|
+
_context3.n = 5;
|
|
524
|
+
break;
|
|
525
|
+
}
|
|
526
|
+
throw new Error('Token non trouvé dans la réponse');
|
|
527
|
+
case 5:
|
|
528
|
+
// Stocker le token
|
|
529
|
+
this.config.token = token;
|
|
523
530
|
|
|
524
531
|
// Décoder le token pour récupérer les credentials
|
|
525
|
-
decodedToken = this.decodeSecureToken(
|
|
532
|
+
decodedToken = this.decodeSecureToken(token);
|
|
526
533
|
if (!decodedToken) {
|
|
527
|
-
_context3.n =
|
|
534
|
+
_context3.n = 6;
|
|
528
535
|
break;
|
|
529
536
|
}
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
537
|
+
clientId = decodedToken.clientId || decodedToken.client_id;
|
|
538
|
+
secretId = decodedToken.secretId || decodedToken.secret_id;
|
|
539
|
+
apiUrl = decodedToken.apiUrl || decodedToken.api_url;
|
|
540
|
+
if (clientId) this.config.clientId = clientId;
|
|
541
|
+
if (secretId) this.config.secretId = secretId;
|
|
542
|
+
if (apiUrl) this.config.apiUrl = apiUrl;
|
|
543
|
+
_context3.n = 7;
|
|
533
544
|
break;
|
|
534
|
-
case 5:
|
|
535
|
-
throw new Error('Impossible de décoder le token sécurisé');
|
|
536
545
|
case 6:
|
|
537
|
-
|
|
538
|
-
|
|
546
|
+
throw new Error('Impossible de décoder le token sécurisé');
|
|
547
|
+
case 7:
|
|
548
|
+
// Récupérer expiration et limites depuis la réponse si présentes
|
|
549
|
+
this.config.expiresIn = (result === null || result === void 0 || (_result$response3 = result.response) === null || _result$response3 === void 0 ? void 0 : _result$response3.expires_in) || (result === null || result === void 0 || (_result$data2 = result.data) === null || _result$data2 === void 0 ? void 0 : _result$data2.expires_in) || (result === null || result === void 0 ? void 0 : result.expires_in) || this.config.expiresIn;
|
|
550
|
+
this.config.maxRequests = (result === null || result === void 0 || (_result$response4 = result.response) === null || _result$response4 === void 0 ? void 0 : _result$response4.max_requests) || (result === null || result === void 0 || (_result$data3 = result.data) === null || _result$data3 === void 0 ? void 0 : _result$data3.max_requests) || (result === null || result === void 0 ? void 0 : result.max_requests) || this.config.maxRequests;
|
|
539
551
|
this.config.requestCount = 0;
|
|
540
552
|
this.logSecurityEvent('SECURE_INIT_SUCCESS', {
|
|
541
|
-
expiresIn:
|
|
542
|
-
maxRequests:
|
|
553
|
+
expiresIn: this.config.expiresIn,
|
|
554
|
+
maxRequests: this.config.maxRequests
|
|
543
555
|
});
|
|
544
556
|
console.log('✅ Initialisation sécurisée réussie');
|
|
545
|
-
_context3.n =
|
|
557
|
+
_context3.n = 9;
|
|
546
558
|
break;
|
|
547
|
-
case
|
|
548
|
-
_context3.p =
|
|
559
|
+
case 8:
|
|
560
|
+
_context3.p = 8;
|
|
549
561
|
_t2 = _context3.v;
|
|
550
562
|
this.logSecurityEvent('SECURE_INIT_ERROR', {
|
|
551
563
|
error: _t2.message
|
|
552
564
|
});
|
|
553
565
|
throw new Error("\xC9chec de l'initialisation s\xE9curis\xE9e: ".concat(_t2.message));
|
|
554
|
-
case
|
|
566
|
+
case 9:
|
|
555
567
|
return _context3.a(2);
|
|
556
568
|
}
|
|
557
|
-
}, _callee3, this, [[0,
|
|
569
|
+
}, _callee3, this, [[0, 8]]);
|
|
558
570
|
}));
|
|
559
571
|
function secureInit() {
|
|
560
572
|
return _secureInit.apply(this, arguments);
|
|
@@ -569,21 +581,29 @@ function _unsupportedIterableToArray(r, a) {
|
|
|
569
581
|
key: "decodeSecureToken",
|
|
570
582
|
value: function decodeSecureToken(token) {
|
|
571
583
|
try {
|
|
572
|
-
|
|
573
|
-
if (parts.length !== 2) {
|
|
574
|
-
console.error('❌ Format de token invalide');
|
|
575
|
-
return null;
|
|
576
|
-
}
|
|
577
|
-
var _parts = _slicedToArray(parts, 2),
|
|
578
|
-
payload = _parts[0],
|
|
579
|
-
signature = _parts[1];
|
|
584
|
+
if (!token || typeof token !== 'string') return null;
|
|
580
585
|
|
|
581
|
-
//
|
|
582
|
-
var
|
|
583
|
-
|
|
586
|
+
// Helper: décodage base64/base64url avec padding
|
|
587
|
+
var decodeBase64Any = function decodeBase64Any(str) {
|
|
588
|
+
var s = String(str).replace(/-/g, '+').replace(/_/g, '/');
|
|
589
|
+
while (s.length % 4 !== 0) s += '=';
|
|
590
|
+
return atob(s);
|
|
591
|
+
};
|
|
592
|
+
var tokenData = null;
|
|
593
|
+
if (token.includes('.')) {
|
|
594
|
+
// JWT-like: header.payload.signature ou header.payload
|
|
595
|
+
var parts = token.split('.');
|
|
596
|
+
var payloadPart = parts.length >= 2 ? parts[1] : parts[0];
|
|
597
|
+
var json = decodeBase64Any(payloadPart);
|
|
598
|
+
tokenData = JSON.parse(json);
|
|
599
|
+
} else {
|
|
600
|
+
// Base64("{json}") simple
|
|
601
|
+
var _json = decodeBase64Any(token);
|
|
602
|
+
tokenData = JSON.parse(_json);
|
|
603
|
+
}
|
|
584
604
|
|
|
585
|
-
// Vérifier l'expiration
|
|
586
|
-
if (tokenData.exp && tokenData.exp < Date.now() / 1000) {
|
|
605
|
+
// Vérifier l'expiration (en secondes)
|
|
606
|
+
if (tokenData && tokenData.exp && Number(tokenData.exp) < Math.floor(Date.now() / 1000)) {
|
|
587
607
|
console.error('❌ Token expiré');
|
|
588
608
|
return null;
|
|
589
609
|
}
|