mitra-interactions-sdk 1.0.70 → 1.0.72
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/README.md +791 -791
- package/dist/index.d.mts +18 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.js +20 -4
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +20 -4
- package/dist/index.mjs.map +1 -1
- package/package.json +52 -52
package/dist/index.mjs
CHANGED
|
@@ -48,12 +48,15 @@ function openAuthPopup(url, expectedOrigin) {
|
|
|
48
48
|
}
|
|
49
49
|
function autoConfigureFromLogin(response, authUrl, projectId) {
|
|
50
50
|
if (!response.baseURL) return;
|
|
51
|
+
const previous = isConfigured() ? getConfig() : void 0;
|
|
51
52
|
configureSdkMitra({
|
|
52
53
|
baseURL: response.baseURL,
|
|
53
54
|
token: response.token,
|
|
54
55
|
authUrl,
|
|
55
56
|
projectId,
|
|
56
|
-
...response.integrationURL ? { integrationURL: response.integrationURL } : {}
|
|
57
|
+
...response.integrationURL ? { integrationURL: response.integrationURL } : {},
|
|
58
|
+
...(previous == null ? void 0 : previous.onTokenRefresh) ? { onTokenRefresh: previous.onTokenRefresh } : {},
|
|
59
|
+
...(previous == null ? void 0 : previous.onSessionExpired) ? { onSessionExpired: previous.onSessionExpired } : {}
|
|
57
60
|
});
|
|
58
61
|
}
|
|
59
62
|
function buildAuthUrl(authUrl, method, projectId, opts) {
|
|
@@ -391,7 +394,8 @@ function withServerFunctionProof(headers, proof = readServerFunctionProof()) {
|
|
|
391
394
|
}
|
|
392
395
|
|
|
393
396
|
// src/session-watch.ts
|
|
394
|
-
var
|
|
397
|
+
var RENEW_BEFORE_MIN_MS = 6e4;
|
|
398
|
+
var RENEW_BEFORE_MAX_MS = 10 * 6e4;
|
|
395
399
|
var RETRY_MS = 1e4;
|
|
396
400
|
var MAX_TIMEOUT_MS = 2147483647;
|
|
397
401
|
var refresher = null;
|
|
@@ -408,6 +412,14 @@ function limitedSessionExpiry(token) {
|
|
|
408
412
|
if (!payload || typeof payload.authTime !== "number" || typeof payload.exp !== "number") return null;
|
|
409
413
|
return payload.exp * 1e3;
|
|
410
414
|
}
|
|
415
|
+
function renewBeforeMs() {
|
|
416
|
+
var _a;
|
|
417
|
+
if (!isConfigured()) return RENEW_BEFORE_MIN_MS;
|
|
418
|
+
const payload = decodeJwtPayload((_a = getConfig().token) != null ? _a : "");
|
|
419
|
+
const life = payload && typeof payload.exp === "number" && typeof payload.iat === "number" ? (payload.exp - payload.iat) * 1e3 : 0;
|
|
420
|
+
if (life <= 0) return RENEW_BEFORE_MIN_MS;
|
|
421
|
+
return Math.min(RENEW_BEFORE_MAX_MS, Math.max(RENEW_BEFORE_MIN_MS, Math.floor(life / 3)));
|
|
422
|
+
}
|
|
411
423
|
function currentExpiry() {
|
|
412
424
|
if (typeof window === "undefined" || !isConfigured()) return null;
|
|
413
425
|
const config = getConfig();
|
|
@@ -430,7 +442,7 @@ function watchSession() {
|
|
|
430
442
|
const expiry = currentExpiry();
|
|
431
443
|
if (expiry == null) return;
|
|
432
444
|
listenForReturn();
|
|
433
|
-
let delay = Math.max(expiry - Date.now() -
|
|
445
|
+
let delay = Math.max(expiry - Date.now() - renewBeforeMs(), 0);
|
|
434
446
|
if (expiryAtLastAttempt != null && expiry <= expiryAtLastAttempt + 1e3) {
|
|
435
447
|
delay = Math.max(expiry - Date.now() + 1e3, RETRY_MS);
|
|
436
448
|
}
|
|
@@ -457,7 +469,7 @@ function onReturn() {
|
|
|
457
469
|
const expiry = currentExpiry();
|
|
458
470
|
if (expiry == null) return;
|
|
459
471
|
const atSessionEnd = expiryAtLastAttempt != null && expiry <= expiryAtLastAttempt + 1e3;
|
|
460
|
-
if (expiry - Date.now() <=
|
|
472
|
+
if (expiry - Date.now() <= renewBeforeMs() && (!atSessionEnd || Date.now() >= expiry)) {
|
|
461
473
|
void renewNow();
|
|
462
474
|
} else {
|
|
463
475
|
watchSession();
|
|
@@ -821,6 +833,9 @@ async function callIntegrationMitra(options) {
|
|
|
821
833
|
if (options.body !== void 0) {
|
|
822
834
|
body.body = options.body;
|
|
823
835
|
}
|
|
836
|
+
if (options.headers !== void 0) {
|
|
837
|
+
body.headers = options.headers;
|
|
838
|
+
}
|
|
824
839
|
return http.post("/interactions/integrations/call", body);
|
|
825
840
|
}
|
|
826
841
|
async function stopServerFunctionExecutionMitra(options) {
|
|
@@ -2238,6 +2253,7 @@ function createMitraInstance(initialConfig) {
|
|
|
2238
2253
|
if (options.endpoint !== void 0) body.endpoint = options.endpoint;
|
|
2239
2254
|
if (options.params !== void 0) body.params = options.params;
|
|
2240
2255
|
if (options.body !== void 0) body.body = options.body;
|
|
2256
|
+
if (options.headers !== void 0) body.headers = options.headers;
|
|
2241
2257
|
return request("POST", "/interactions/integrations/call", { body });
|
|
2242
2258
|
},
|
|
2243
2259
|
// Dynamic Schema CRUD
|