integrate-sdk 0.7.67 → 0.8.1
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/adapters/index.js +52 -8
- package/dist/adapters/solid-start.js +52 -8
- package/dist/adapters/svelte-kit.js +52 -8
- package/dist/index.js +52 -8
- package/dist/server.js +52 -8
- package/dist/src/client.d.ts +16 -2
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/config/types.d.ts +32 -1
- package/dist/src/config/types.d.ts.map +1 -1
- package/dist/src/oauth/manager.d.ts +18 -7
- package/dist/src/oauth/manager.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/adapters/index.js
CHANGED
|
@@ -1489,6 +1489,7 @@ class OAuthManager {
|
|
|
1489
1489
|
apiBaseUrl;
|
|
1490
1490
|
getTokenCallback;
|
|
1491
1491
|
setTokenCallback;
|
|
1492
|
+
removeTokenCallback;
|
|
1492
1493
|
skipLocalStorage;
|
|
1493
1494
|
constructor(oauthApiBase, flowConfig, apiBaseUrl, tokenCallbacks) {
|
|
1494
1495
|
this.oauthApiBase = oauthApiBase;
|
|
@@ -1501,6 +1502,7 @@ class OAuthManager {
|
|
|
1501
1502
|
};
|
|
1502
1503
|
this.getTokenCallback = tokenCallbacks?.getProviderToken;
|
|
1503
1504
|
this.setTokenCallback = tokenCallbacks?.setProviderToken;
|
|
1505
|
+
this.removeTokenCallback = tokenCallbacks?.removeProviderToken;
|
|
1504
1506
|
this.skipLocalStorage = tokenCallbacks?.skipLocalStorage ?? !!tokenCallbacks?.getProviderToken;
|
|
1505
1507
|
this.cleanupExpiredPendingAuths();
|
|
1506
1508
|
}
|
|
@@ -1590,10 +1592,22 @@ class OAuthManager {
|
|
|
1590
1592
|
expiresAt: tokenData.expiresAt
|
|
1591
1593
|
};
|
|
1592
1594
|
}
|
|
1593
|
-
async disconnectProvider(provider) {
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
1595
|
+
async disconnectProvider(provider, context) {
|
|
1596
|
+
if (this.removeTokenCallback) {
|
|
1597
|
+
try {
|
|
1598
|
+
await this.removeTokenCallback(provider, context);
|
|
1599
|
+
} catch (error) {
|
|
1600
|
+
console.error(`Failed to delete token for ${provider} from database via removeProviderToken:`, error);
|
|
1601
|
+
}
|
|
1602
|
+
} else if (this.setTokenCallback) {
|
|
1603
|
+
try {
|
|
1604
|
+
const tokenData = await this.getProviderToken(provider, context);
|
|
1605
|
+
if (tokenData) {
|
|
1606
|
+
await this.setTokenCallback(provider, null, context);
|
|
1607
|
+
}
|
|
1608
|
+
} catch (error) {
|
|
1609
|
+
console.error(`Failed to delete token for ${provider} from database via setProviderToken:`, error);
|
|
1610
|
+
}
|
|
1597
1611
|
}
|
|
1598
1612
|
this.providerTokens.delete(provider);
|
|
1599
1613
|
this.clearProviderToken(provider);
|
|
@@ -1620,7 +1634,11 @@ class OAuthManager {
|
|
|
1620
1634
|
return this.providerTokens.get(provider);
|
|
1621
1635
|
}
|
|
1622
1636
|
async setProviderToken(provider, tokenData, context) {
|
|
1623
|
-
|
|
1637
|
+
if (tokenData === null) {
|
|
1638
|
+
this.providerTokens.delete(provider);
|
|
1639
|
+
} else {
|
|
1640
|
+
this.providerTokens.set(provider, tokenData);
|
|
1641
|
+
}
|
|
1624
1642
|
await this.saveProviderToken(provider, tokenData, context);
|
|
1625
1643
|
}
|
|
1626
1644
|
clearProviderToken(provider) {
|
|
@@ -1669,11 +1687,15 @@ class OAuthManager {
|
|
|
1669
1687
|
try {
|
|
1670
1688
|
await this.setTokenCallback(provider, tokenData, context);
|
|
1671
1689
|
} catch (error) {
|
|
1672
|
-
console.error(`Failed to save token for ${provider} via callback:`, error);
|
|
1690
|
+
console.error(`Failed to ${tokenData === null ? "delete" : "save"} token for ${provider} via callback:`, error);
|
|
1673
1691
|
throw error;
|
|
1674
1692
|
}
|
|
1675
1693
|
return;
|
|
1676
1694
|
}
|
|
1695
|
+
if (tokenData === null) {
|
|
1696
|
+
this.clearProviderToken(provider);
|
|
1697
|
+
return;
|
|
1698
|
+
}
|
|
1677
1699
|
if (this.skipLocalStorage) {
|
|
1678
1700
|
return;
|
|
1679
1701
|
}
|
|
@@ -1952,6 +1974,7 @@ class MCPClientBase {
|
|
|
1952
1974
|
this.oauthManager = new OAuthManager(oauthApiBase, config.oauthFlow, this.apiBaseUrl, {
|
|
1953
1975
|
getProviderToken: config.getProviderToken,
|
|
1954
1976
|
setProviderToken: config.setProviderToken,
|
|
1977
|
+
removeProviderToken: config.removeProviderToken,
|
|
1955
1978
|
skipLocalStorage: config.skipLocalStorage
|
|
1956
1979
|
});
|
|
1957
1980
|
for (const integration of this.integrations) {
|
|
@@ -2310,12 +2333,33 @@ class MCPClientBase {
|
|
|
2310
2333
|
isProviderAuthenticated(provider) {
|
|
2311
2334
|
return this.authState.get(provider)?.authenticated ?? false;
|
|
2312
2335
|
}
|
|
2313
|
-
async isAuthorized(provider) {
|
|
2336
|
+
async isAuthorized(provider, context) {
|
|
2314
2337
|
if (this.oauthCallbackPromise) {
|
|
2315
2338
|
await this.oauthCallbackPromise;
|
|
2316
2339
|
this.oauthCallbackPromise = null;
|
|
2317
2340
|
}
|
|
2318
|
-
|
|
2341
|
+
try {
|
|
2342
|
+
const tokenData = await this.oauthManager.getProviderToken(provider, context);
|
|
2343
|
+
const isAuthenticated = !!tokenData;
|
|
2344
|
+
const currentState = this.authState.get(provider);
|
|
2345
|
+
if (currentState) {
|
|
2346
|
+
currentState.authenticated = isAuthenticated;
|
|
2347
|
+
if (isAuthenticated) {
|
|
2348
|
+
currentState.lastError = undefined;
|
|
2349
|
+
}
|
|
2350
|
+
} else {
|
|
2351
|
+
this.authState.set(provider, { authenticated: isAuthenticated });
|
|
2352
|
+
}
|
|
2353
|
+
return isAuthenticated;
|
|
2354
|
+
} catch (error) {
|
|
2355
|
+
const currentState = this.authState.get(provider);
|
|
2356
|
+
if (currentState) {
|
|
2357
|
+
currentState.authenticated = false;
|
|
2358
|
+
} else {
|
|
2359
|
+
this.authState.set(provider, { authenticated: false });
|
|
2360
|
+
}
|
|
2361
|
+
return false;
|
|
2362
|
+
}
|
|
2319
2363
|
}
|
|
2320
2364
|
async authorizedProviders() {
|
|
2321
2365
|
if (this.oauthCallbackPromise) {
|
|
@@ -1348,6 +1348,7 @@ class OAuthManager {
|
|
|
1348
1348
|
apiBaseUrl;
|
|
1349
1349
|
getTokenCallback;
|
|
1350
1350
|
setTokenCallback;
|
|
1351
|
+
removeTokenCallback;
|
|
1351
1352
|
skipLocalStorage;
|
|
1352
1353
|
constructor(oauthApiBase, flowConfig, apiBaseUrl, tokenCallbacks) {
|
|
1353
1354
|
this.oauthApiBase = oauthApiBase;
|
|
@@ -1360,6 +1361,7 @@ class OAuthManager {
|
|
|
1360
1361
|
};
|
|
1361
1362
|
this.getTokenCallback = tokenCallbacks?.getProviderToken;
|
|
1362
1363
|
this.setTokenCallback = tokenCallbacks?.setProviderToken;
|
|
1364
|
+
this.removeTokenCallback = tokenCallbacks?.removeProviderToken;
|
|
1363
1365
|
this.skipLocalStorage = tokenCallbacks?.skipLocalStorage ?? !!tokenCallbacks?.getProviderToken;
|
|
1364
1366
|
this.cleanupExpiredPendingAuths();
|
|
1365
1367
|
}
|
|
@@ -1449,10 +1451,22 @@ class OAuthManager {
|
|
|
1449
1451
|
expiresAt: tokenData.expiresAt
|
|
1450
1452
|
};
|
|
1451
1453
|
}
|
|
1452
|
-
async disconnectProvider(provider) {
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1454
|
+
async disconnectProvider(provider, context) {
|
|
1455
|
+
if (this.removeTokenCallback) {
|
|
1456
|
+
try {
|
|
1457
|
+
await this.removeTokenCallback(provider, context);
|
|
1458
|
+
} catch (error) {
|
|
1459
|
+
console.error(`Failed to delete token for ${provider} from database via removeProviderToken:`, error);
|
|
1460
|
+
}
|
|
1461
|
+
} else if (this.setTokenCallback) {
|
|
1462
|
+
try {
|
|
1463
|
+
const tokenData = await this.getProviderToken(provider, context);
|
|
1464
|
+
if (tokenData) {
|
|
1465
|
+
await this.setTokenCallback(provider, null, context);
|
|
1466
|
+
}
|
|
1467
|
+
} catch (error) {
|
|
1468
|
+
console.error(`Failed to delete token for ${provider} from database via setProviderToken:`, error);
|
|
1469
|
+
}
|
|
1456
1470
|
}
|
|
1457
1471
|
this.providerTokens.delete(provider);
|
|
1458
1472
|
this.clearProviderToken(provider);
|
|
@@ -1479,7 +1493,11 @@ class OAuthManager {
|
|
|
1479
1493
|
return this.providerTokens.get(provider);
|
|
1480
1494
|
}
|
|
1481
1495
|
async setProviderToken(provider, tokenData, context) {
|
|
1482
|
-
|
|
1496
|
+
if (tokenData === null) {
|
|
1497
|
+
this.providerTokens.delete(provider);
|
|
1498
|
+
} else {
|
|
1499
|
+
this.providerTokens.set(provider, tokenData);
|
|
1500
|
+
}
|
|
1483
1501
|
await this.saveProviderToken(provider, tokenData, context);
|
|
1484
1502
|
}
|
|
1485
1503
|
clearProviderToken(provider) {
|
|
@@ -1528,11 +1546,15 @@ class OAuthManager {
|
|
|
1528
1546
|
try {
|
|
1529
1547
|
await this.setTokenCallback(provider, tokenData, context);
|
|
1530
1548
|
} catch (error) {
|
|
1531
|
-
console.error(`Failed to save token for ${provider} via callback:`, error);
|
|
1549
|
+
console.error(`Failed to ${tokenData === null ? "delete" : "save"} token for ${provider} via callback:`, error);
|
|
1532
1550
|
throw error;
|
|
1533
1551
|
}
|
|
1534
1552
|
return;
|
|
1535
1553
|
}
|
|
1554
|
+
if (tokenData === null) {
|
|
1555
|
+
this.clearProviderToken(provider);
|
|
1556
|
+
return;
|
|
1557
|
+
}
|
|
1536
1558
|
if (this.skipLocalStorage) {
|
|
1537
1559
|
return;
|
|
1538
1560
|
}
|
|
@@ -1811,6 +1833,7 @@ class MCPClientBase {
|
|
|
1811
1833
|
this.oauthManager = new OAuthManager(oauthApiBase, config.oauthFlow, this.apiBaseUrl, {
|
|
1812
1834
|
getProviderToken: config.getProviderToken,
|
|
1813
1835
|
setProviderToken: config.setProviderToken,
|
|
1836
|
+
removeProviderToken: config.removeProviderToken,
|
|
1814
1837
|
skipLocalStorage: config.skipLocalStorage
|
|
1815
1838
|
});
|
|
1816
1839
|
for (const integration of this.integrations) {
|
|
@@ -2169,12 +2192,33 @@ class MCPClientBase {
|
|
|
2169
2192
|
isProviderAuthenticated(provider) {
|
|
2170
2193
|
return this.authState.get(provider)?.authenticated ?? false;
|
|
2171
2194
|
}
|
|
2172
|
-
async isAuthorized(provider) {
|
|
2195
|
+
async isAuthorized(provider, context) {
|
|
2173
2196
|
if (this.oauthCallbackPromise) {
|
|
2174
2197
|
await this.oauthCallbackPromise;
|
|
2175
2198
|
this.oauthCallbackPromise = null;
|
|
2176
2199
|
}
|
|
2177
|
-
|
|
2200
|
+
try {
|
|
2201
|
+
const tokenData = await this.oauthManager.getProviderToken(provider, context);
|
|
2202
|
+
const isAuthenticated = !!tokenData;
|
|
2203
|
+
const currentState = this.authState.get(provider);
|
|
2204
|
+
if (currentState) {
|
|
2205
|
+
currentState.authenticated = isAuthenticated;
|
|
2206
|
+
if (isAuthenticated) {
|
|
2207
|
+
currentState.lastError = undefined;
|
|
2208
|
+
}
|
|
2209
|
+
} else {
|
|
2210
|
+
this.authState.set(provider, { authenticated: isAuthenticated });
|
|
2211
|
+
}
|
|
2212
|
+
return isAuthenticated;
|
|
2213
|
+
} catch (error) {
|
|
2214
|
+
const currentState = this.authState.get(provider);
|
|
2215
|
+
if (currentState) {
|
|
2216
|
+
currentState.authenticated = false;
|
|
2217
|
+
} else {
|
|
2218
|
+
this.authState.set(provider, { authenticated: false });
|
|
2219
|
+
}
|
|
2220
|
+
return false;
|
|
2221
|
+
}
|
|
2178
2222
|
}
|
|
2179
2223
|
async authorizedProviders() {
|
|
2180
2224
|
if (this.oauthCallbackPromise) {
|
|
@@ -1348,6 +1348,7 @@ class OAuthManager {
|
|
|
1348
1348
|
apiBaseUrl;
|
|
1349
1349
|
getTokenCallback;
|
|
1350
1350
|
setTokenCallback;
|
|
1351
|
+
removeTokenCallback;
|
|
1351
1352
|
skipLocalStorage;
|
|
1352
1353
|
constructor(oauthApiBase, flowConfig, apiBaseUrl, tokenCallbacks) {
|
|
1353
1354
|
this.oauthApiBase = oauthApiBase;
|
|
@@ -1360,6 +1361,7 @@ class OAuthManager {
|
|
|
1360
1361
|
};
|
|
1361
1362
|
this.getTokenCallback = tokenCallbacks?.getProviderToken;
|
|
1362
1363
|
this.setTokenCallback = tokenCallbacks?.setProviderToken;
|
|
1364
|
+
this.removeTokenCallback = tokenCallbacks?.removeProviderToken;
|
|
1363
1365
|
this.skipLocalStorage = tokenCallbacks?.skipLocalStorage ?? !!tokenCallbacks?.getProviderToken;
|
|
1364
1366
|
this.cleanupExpiredPendingAuths();
|
|
1365
1367
|
}
|
|
@@ -1449,10 +1451,22 @@ class OAuthManager {
|
|
|
1449
1451
|
expiresAt: tokenData.expiresAt
|
|
1450
1452
|
};
|
|
1451
1453
|
}
|
|
1452
|
-
async disconnectProvider(provider) {
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1454
|
+
async disconnectProvider(provider, context) {
|
|
1455
|
+
if (this.removeTokenCallback) {
|
|
1456
|
+
try {
|
|
1457
|
+
await this.removeTokenCallback(provider, context);
|
|
1458
|
+
} catch (error) {
|
|
1459
|
+
console.error(`Failed to delete token for ${provider} from database via removeProviderToken:`, error);
|
|
1460
|
+
}
|
|
1461
|
+
} else if (this.setTokenCallback) {
|
|
1462
|
+
try {
|
|
1463
|
+
const tokenData = await this.getProviderToken(provider, context);
|
|
1464
|
+
if (tokenData) {
|
|
1465
|
+
await this.setTokenCallback(provider, null, context);
|
|
1466
|
+
}
|
|
1467
|
+
} catch (error) {
|
|
1468
|
+
console.error(`Failed to delete token for ${provider} from database via setProviderToken:`, error);
|
|
1469
|
+
}
|
|
1456
1470
|
}
|
|
1457
1471
|
this.providerTokens.delete(provider);
|
|
1458
1472
|
this.clearProviderToken(provider);
|
|
@@ -1479,7 +1493,11 @@ class OAuthManager {
|
|
|
1479
1493
|
return this.providerTokens.get(provider);
|
|
1480
1494
|
}
|
|
1481
1495
|
async setProviderToken(provider, tokenData, context) {
|
|
1482
|
-
|
|
1496
|
+
if (tokenData === null) {
|
|
1497
|
+
this.providerTokens.delete(provider);
|
|
1498
|
+
} else {
|
|
1499
|
+
this.providerTokens.set(provider, tokenData);
|
|
1500
|
+
}
|
|
1483
1501
|
await this.saveProviderToken(provider, tokenData, context);
|
|
1484
1502
|
}
|
|
1485
1503
|
clearProviderToken(provider) {
|
|
@@ -1528,11 +1546,15 @@ class OAuthManager {
|
|
|
1528
1546
|
try {
|
|
1529
1547
|
await this.setTokenCallback(provider, tokenData, context);
|
|
1530
1548
|
} catch (error) {
|
|
1531
|
-
console.error(`Failed to save token for ${provider} via callback:`, error);
|
|
1549
|
+
console.error(`Failed to ${tokenData === null ? "delete" : "save"} token for ${provider} via callback:`, error);
|
|
1532
1550
|
throw error;
|
|
1533
1551
|
}
|
|
1534
1552
|
return;
|
|
1535
1553
|
}
|
|
1554
|
+
if (tokenData === null) {
|
|
1555
|
+
this.clearProviderToken(provider);
|
|
1556
|
+
return;
|
|
1557
|
+
}
|
|
1536
1558
|
if (this.skipLocalStorage) {
|
|
1537
1559
|
return;
|
|
1538
1560
|
}
|
|
@@ -1811,6 +1833,7 @@ class MCPClientBase {
|
|
|
1811
1833
|
this.oauthManager = new OAuthManager(oauthApiBase, config.oauthFlow, this.apiBaseUrl, {
|
|
1812
1834
|
getProviderToken: config.getProviderToken,
|
|
1813
1835
|
setProviderToken: config.setProviderToken,
|
|
1836
|
+
removeProviderToken: config.removeProviderToken,
|
|
1814
1837
|
skipLocalStorage: config.skipLocalStorage
|
|
1815
1838
|
});
|
|
1816
1839
|
for (const integration of this.integrations) {
|
|
@@ -2169,12 +2192,33 @@ class MCPClientBase {
|
|
|
2169
2192
|
isProviderAuthenticated(provider) {
|
|
2170
2193
|
return this.authState.get(provider)?.authenticated ?? false;
|
|
2171
2194
|
}
|
|
2172
|
-
async isAuthorized(provider) {
|
|
2195
|
+
async isAuthorized(provider, context) {
|
|
2173
2196
|
if (this.oauthCallbackPromise) {
|
|
2174
2197
|
await this.oauthCallbackPromise;
|
|
2175
2198
|
this.oauthCallbackPromise = null;
|
|
2176
2199
|
}
|
|
2177
|
-
|
|
2200
|
+
try {
|
|
2201
|
+
const tokenData = await this.oauthManager.getProviderToken(provider, context);
|
|
2202
|
+
const isAuthenticated = !!tokenData;
|
|
2203
|
+
const currentState = this.authState.get(provider);
|
|
2204
|
+
if (currentState) {
|
|
2205
|
+
currentState.authenticated = isAuthenticated;
|
|
2206
|
+
if (isAuthenticated) {
|
|
2207
|
+
currentState.lastError = undefined;
|
|
2208
|
+
}
|
|
2209
|
+
} else {
|
|
2210
|
+
this.authState.set(provider, { authenticated: isAuthenticated });
|
|
2211
|
+
}
|
|
2212
|
+
return isAuthenticated;
|
|
2213
|
+
} catch (error) {
|
|
2214
|
+
const currentState = this.authState.get(provider);
|
|
2215
|
+
if (currentState) {
|
|
2216
|
+
currentState.authenticated = false;
|
|
2217
|
+
} else {
|
|
2218
|
+
this.authState.set(provider, { authenticated: false });
|
|
2219
|
+
}
|
|
2220
|
+
return false;
|
|
2221
|
+
}
|
|
2178
2222
|
}
|
|
2179
2223
|
async authorizedProviders() {
|
|
2180
2224
|
if (this.oauthCallbackPromise) {
|
package/dist/index.js
CHANGED
|
@@ -1189,6 +1189,7 @@ class OAuthManager {
|
|
|
1189
1189
|
apiBaseUrl;
|
|
1190
1190
|
getTokenCallback;
|
|
1191
1191
|
setTokenCallback;
|
|
1192
|
+
removeTokenCallback;
|
|
1192
1193
|
skipLocalStorage;
|
|
1193
1194
|
constructor(oauthApiBase, flowConfig, apiBaseUrl, tokenCallbacks) {
|
|
1194
1195
|
this.oauthApiBase = oauthApiBase;
|
|
@@ -1201,6 +1202,7 @@ class OAuthManager {
|
|
|
1201
1202
|
};
|
|
1202
1203
|
this.getTokenCallback = tokenCallbacks?.getProviderToken;
|
|
1203
1204
|
this.setTokenCallback = tokenCallbacks?.setProviderToken;
|
|
1205
|
+
this.removeTokenCallback = tokenCallbacks?.removeProviderToken;
|
|
1204
1206
|
this.skipLocalStorage = tokenCallbacks?.skipLocalStorage ?? !!tokenCallbacks?.getProviderToken;
|
|
1205
1207
|
this.cleanupExpiredPendingAuths();
|
|
1206
1208
|
}
|
|
@@ -1290,10 +1292,22 @@ class OAuthManager {
|
|
|
1290
1292
|
expiresAt: tokenData.expiresAt
|
|
1291
1293
|
};
|
|
1292
1294
|
}
|
|
1293
|
-
async disconnectProvider(provider) {
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1295
|
+
async disconnectProvider(provider, context) {
|
|
1296
|
+
if (this.removeTokenCallback) {
|
|
1297
|
+
try {
|
|
1298
|
+
await this.removeTokenCallback(provider, context);
|
|
1299
|
+
} catch (error) {
|
|
1300
|
+
console.error(`Failed to delete token for ${provider} from database via removeProviderToken:`, error);
|
|
1301
|
+
}
|
|
1302
|
+
} else if (this.setTokenCallback) {
|
|
1303
|
+
try {
|
|
1304
|
+
const tokenData = await this.getProviderToken(provider, context);
|
|
1305
|
+
if (tokenData) {
|
|
1306
|
+
await this.setTokenCallback(provider, null, context);
|
|
1307
|
+
}
|
|
1308
|
+
} catch (error) {
|
|
1309
|
+
console.error(`Failed to delete token for ${provider} from database via setProviderToken:`, error);
|
|
1310
|
+
}
|
|
1297
1311
|
}
|
|
1298
1312
|
this.providerTokens.delete(provider);
|
|
1299
1313
|
this.clearProviderToken(provider);
|
|
@@ -1320,7 +1334,11 @@ class OAuthManager {
|
|
|
1320
1334
|
return this.providerTokens.get(provider);
|
|
1321
1335
|
}
|
|
1322
1336
|
async setProviderToken(provider, tokenData, context) {
|
|
1323
|
-
|
|
1337
|
+
if (tokenData === null) {
|
|
1338
|
+
this.providerTokens.delete(provider);
|
|
1339
|
+
} else {
|
|
1340
|
+
this.providerTokens.set(provider, tokenData);
|
|
1341
|
+
}
|
|
1324
1342
|
await this.saveProviderToken(provider, tokenData, context);
|
|
1325
1343
|
}
|
|
1326
1344
|
clearProviderToken(provider) {
|
|
@@ -1369,11 +1387,15 @@ class OAuthManager {
|
|
|
1369
1387
|
try {
|
|
1370
1388
|
await this.setTokenCallback(provider, tokenData, context);
|
|
1371
1389
|
} catch (error) {
|
|
1372
|
-
console.error(`Failed to save token for ${provider} via callback:`, error);
|
|
1390
|
+
console.error(`Failed to ${tokenData === null ? "delete" : "save"} token for ${provider} via callback:`, error);
|
|
1373
1391
|
throw error;
|
|
1374
1392
|
}
|
|
1375
1393
|
return;
|
|
1376
1394
|
}
|
|
1395
|
+
if (tokenData === null) {
|
|
1396
|
+
this.clearProviderToken(provider);
|
|
1397
|
+
return;
|
|
1398
|
+
}
|
|
1377
1399
|
if (this.skipLocalStorage) {
|
|
1378
1400
|
return;
|
|
1379
1401
|
}
|
|
@@ -1654,6 +1676,7 @@ class MCPClientBase {
|
|
|
1654
1676
|
this.oauthManager = new OAuthManager(oauthApiBase, config.oauthFlow, this.apiBaseUrl, {
|
|
1655
1677
|
getProviderToken: config.getProviderToken,
|
|
1656
1678
|
setProviderToken: config.setProviderToken,
|
|
1679
|
+
removeProviderToken: config.removeProviderToken,
|
|
1657
1680
|
skipLocalStorage: config.skipLocalStorage
|
|
1658
1681
|
});
|
|
1659
1682
|
for (const integration of this.integrations) {
|
|
@@ -2012,12 +2035,33 @@ class MCPClientBase {
|
|
|
2012
2035
|
isProviderAuthenticated(provider) {
|
|
2013
2036
|
return this.authState.get(provider)?.authenticated ?? false;
|
|
2014
2037
|
}
|
|
2015
|
-
async isAuthorized(provider) {
|
|
2038
|
+
async isAuthorized(provider, context) {
|
|
2016
2039
|
if (this.oauthCallbackPromise) {
|
|
2017
2040
|
await this.oauthCallbackPromise;
|
|
2018
2041
|
this.oauthCallbackPromise = null;
|
|
2019
2042
|
}
|
|
2020
|
-
|
|
2043
|
+
try {
|
|
2044
|
+
const tokenData = await this.oauthManager.getProviderToken(provider, context);
|
|
2045
|
+
const isAuthenticated = !!tokenData;
|
|
2046
|
+
const currentState = this.authState.get(provider);
|
|
2047
|
+
if (currentState) {
|
|
2048
|
+
currentState.authenticated = isAuthenticated;
|
|
2049
|
+
if (isAuthenticated) {
|
|
2050
|
+
currentState.lastError = undefined;
|
|
2051
|
+
}
|
|
2052
|
+
} else {
|
|
2053
|
+
this.authState.set(provider, { authenticated: isAuthenticated });
|
|
2054
|
+
}
|
|
2055
|
+
return isAuthenticated;
|
|
2056
|
+
} catch (error) {
|
|
2057
|
+
const currentState = this.authState.get(provider);
|
|
2058
|
+
if (currentState) {
|
|
2059
|
+
currentState.authenticated = false;
|
|
2060
|
+
} else {
|
|
2061
|
+
this.authState.set(provider, { authenticated: false });
|
|
2062
|
+
}
|
|
2063
|
+
return false;
|
|
2064
|
+
}
|
|
2021
2065
|
}
|
|
2022
2066
|
async authorizedProviders() {
|
|
2023
2067
|
if (this.oauthCallbackPromise) {
|
package/dist/server.js
CHANGED
|
@@ -1182,6 +1182,7 @@ class OAuthManager {
|
|
|
1182
1182
|
apiBaseUrl;
|
|
1183
1183
|
getTokenCallback;
|
|
1184
1184
|
setTokenCallback;
|
|
1185
|
+
removeTokenCallback;
|
|
1185
1186
|
skipLocalStorage;
|
|
1186
1187
|
constructor(oauthApiBase, flowConfig, apiBaseUrl, tokenCallbacks) {
|
|
1187
1188
|
this.oauthApiBase = oauthApiBase;
|
|
@@ -1194,6 +1195,7 @@ class OAuthManager {
|
|
|
1194
1195
|
};
|
|
1195
1196
|
this.getTokenCallback = tokenCallbacks?.getProviderToken;
|
|
1196
1197
|
this.setTokenCallback = tokenCallbacks?.setProviderToken;
|
|
1198
|
+
this.removeTokenCallback = tokenCallbacks?.removeProviderToken;
|
|
1197
1199
|
this.skipLocalStorage = tokenCallbacks?.skipLocalStorage ?? !!tokenCallbacks?.getProviderToken;
|
|
1198
1200
|
this.cleanupExpiredPendingAuths();
|
|
1199
1201
|
}
|
|
@@ -1283,10 +1285,22 @@ class OAuthManager {
|
|
|
1283
1285
|
expiresAt: tokenData.expiresAt
|
|
1284
1286
|
};
|
|
1285
1287
|
}
|
|
1286
|
-
async disconnectProvider(provider) {
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1288
|
+
async disconnectProvider(provider, context) {
|
|
1289
|
+
if (this.removeTokenCallback) {
|
|
1290
|
+
try {
|
|
1291
|
+
await this.removeTokenCallback(provider, context);
|
|
1292
|
+
} catch (error) {
|
|
1293
|
+
console.error(`Failed to delete token for ${provider} from database via removeProviderToken:`, error);
|
|
1294
|
+
}
|
|
1295
|
+
} else if (this.setTokenCallback) {
|
|
1296
|
+
try {
|
|
1297
|
+
const tokenData = await this.getProviderToken(provider, context);
|
|
1298
|
+
if (tokenData) {
|
|
1299
|
+
await this.setTokenCallback(provider, null, context);
|
|
1300
|
+
}
|
|
1301
|
+
} catch (error) {
|
|
1302
|
+
console.error(`Failed to delete token for ${provider} from database via setProviderToken:`, error);
|
|
1303
|
+
}
|
|
1290
1304
|
}
|
|
1291
1305
|
this.providerTokens.delete(provider);
|
|
1292
1306
|
this.clearProviderToken(provider);
|
|
@@ -1313,7 +1327,11 @@ class OAuthManager {
|
|
|
1313
1327
|
return this.providerTokens.get(provider);
|
|
1314
1328
|
}
|
|
1315
1329
|
async setProviderToken(provider, tokenData, context) {
|
|
1316
|
-
|
|
1330
|
+
if (tokenData === null) {
|
|
1331
|
+
this.providerTokens.delete(provider);
|
|
1332
|
+
} else {
|
|
1333
|
+
this.providerTokens.set(provider, tokenData);
|
|
1334
|
+
}
|
|
1317
1335
|
await this.saveProviderToken(provider, tokenData, context);
|
|
1318
1336
|
}
|
|
1319
1337
|
clearProviderToken(provider) {
|
|
@@ -1362,11 +1380,15 @@ class OAuthManager {
|
|
|
1362
1380
|
try {
|
|
1363
1381
|
await this.setTokenCallback(provider, tokenData, context);
|
|
1364
1382
|
} catch (error) {
|
|
1365
|
-
console.error(`Failed to save token for ${provider} via callback:`, error);
|
|
1383
|
+
console.error(`Failed to ${tokenData === null ? "delete" : "save"} token for ${provider} via callback:`, error);
|
|
1366
1384
|
throw error;
|
|
1367
1385
|
}
|
|
1368
1386
|
return;
|
|
1369
1387
|
}
|
|
1388
|
+
if (tokenData === null) {
|
|
1389
|
+
this.clearProviderToken(provider);
|
|
1390
|
+
return;
|
|
1391
|
+
}
|
|
1370
1392
|
if (this.skipLocalStorage) {
|
|
1371
1393
|
return;
|
|
1372
1394
|
}
|
|
@@ -1645,6 +1667,7 @@ class MCPClientBase {
|
|
|
1645
1667
|
this.oauthManager = new OAuthManager(oauthApiBase, config.oauthFlow, this.apiBaseUrl, {
|
|
1646
1668
|
getProviderToken: config.getProviderToken,
|
|
1647
1669
|
setProviderToken: config.setProviderToken,
|
|
1670
|
+
removeProviderToken: config.removeProviderToken,
|
|
1648
1671
|
skipLocalStorage: config.skipLocalStorage
|
|
1649
1672
|
});
|
|
1650
1673
|
for (const integration of this.integrations) {
|
|
@@ -2003,12 +2026,33 @@ class MCPClientBase {
|
|
|
2003
2026
|
isProviderAuthenticated(provider) {
|
|
2004
2027
|
return this.authState.get(provider)?.authenticated ?? false;
|
|
2005
2028
|
}
|
|
2006
|
-
async isAuthorized(provider) {
|
|
2029
|
+
async isAuthorized(provider, context) {
|
|
2007
2030
|
if (this.oauthCallbackPromise) {
|
|
2008
2031
|
await this.oauthCallbackPromise;
|
|
2009
2032
|
this.oauthCallbackPromise = null;
|
|
2010
2033
|
}
|
|
2011
|
-
|
|
2034
|
+
try {
|
|
2035
|
+
const tokenData = await this.oauthManager.getProviderToken(provider, context);
|
|
2036
|
+
const isAuthenticated = !!tokenData;
|
|
2037
|
+
const currentState = this.authState.get(provider);
|
|
2038
|
+
if (currentState) {
|
|
2039
|
+
currentState.authenticated = isAuthenticated;
|
|
2040
|
+
if (isAuthenticated) {
|
|
2041
|
+
currentState.lastError = undefined;
|
|
2042
|
+
}
|
|
2043
|
+
} else {
|
|
2044
|
+
this.authState.set(provider, { authenticated: isAuthenticated });
|
|
2045
|
+
}
|
|
2046
|
+
return isAuthenticated;
|
|
2047
|
+
} catch (error) {
|
|
2048
|
+
const currentState = this.authState.get(provider);
|
|
2049
|
+
if (currentState) {
|
|
2050
|
+
currentState.authenticated = false;
|
|
2051
|
+
} else {
|
|
2052
|
+
this.authState.set(provider, { authenticated: false });
|
|
2053
|
+
}
|
|
2054
|
+
return false;
|
|
2055
|
+
}
|
|
2012
2056
|
}
|
|
2013
2057
|
async authorizedProviders() {
|
|
2014
2058
|
if (this.oauthCallbackPromise) {
|
package/dist/src/client.d.ts
CHANGED
|
@@ -268,17 +268,24 @@ export declare class MCPClientBase<TIntegrations extends readonly MCPIntegration
|
|
|
268
268
|
isProviderAuthenticated(provider: string): boolean;
|
|
269
269
|
/**
|
|
270
270
|
* Check if a provider is authorized via OAuth
|
|
271
|
-
*
|
|
271
|
+
* Checks the current token status and updates the cache accordingly.
|
|
272
|
+
* Returns the authorization status that is automatically updated when
|
|
272
273
|
* authorize() or disconnectProvider() are called
|
|
273
274
|
*
|
|
274
275
|
* Automatically waits for any pending OAuth callback to complete, ensuring
|
|
275
276
|
* the auth state is always up-to-date, even immediately after OAuth redirects
|
|
276
277
|
*
|
|
278
|
+
* When using database callbacks (server-side), provide context to check
|
|
279
|
+
* the correct user's token. Without context, it will check without user
|
|
280
|
+
* identification (works for single-user scenarios).
|
|
281
|
+
*
|
|
277
282
|
* @param provider - Provider name (github, gmail, etc.)
|
|
283
|
+
* @param context - Optional user context (userId, organizationId, etc.) for multi-tenant apps
|
|
278
284
|
* @returns Promise that resolves to authorization status
|
|
279
285
|
*
|
|
280
286
|
* @example
|
|
281
287
|
* ```typescript
|
|
288
|
+
* // Client-side usage (no context needed)
|
|
282
289
|
* const isAuthorized = await client.isAuthorized('github');
|
|
283
290
|
* if (!isAuthorized) {
|
|
284
291
|
* await client.authorize('github');
|
|
@@ -286,8 +293,15 @@ export declare class MCPClientBase<TIntegrations extends readonly MCPIntegration
|
|
|
286
293
|
* console.log(await client.isAuthorized('github')); // true
|
|
287
294
|
* }
|
|
288
295
|
* ```
|
|
296
|
+
*
|
|
297
|
+
* @example
|
|
298
|
+
* ```typescript
|
|
299
|
+
* // Server-side usage with context
|
|
300
|
+
* const context = await getSessionContext(request);
|
|
301
|
+
* const isAuthorized = await client.isAuthorized('github', context);
|
|
302
|
+
* ```
|
|
289
303
|
*/
|
|
290
|
-
isAuthorized(provider: string): Promise<boolean>;
|
|
304
|
+
isAuthorized(provider: string, context?: MCPContext): Promise<boolean>;
|
|
291
305
|
/**
|
|
292
306
|
* Get list of all authorized providers
|
|
293
307
|
* Returns cached authorization status for all configured OAuth providers
|
package/dist/src/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,OAAO,EAEP,mBAAmB,EAGpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAiB,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACrG,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE/E,OAAO,KAAK,EACV,UAAU,EACV,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAgE1B;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,KAAK,oBAAoB,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,EAAE,GAAG,KAAK,CAAC;AACvE,KAAK,cAAc,CAAC,aAAa,SAAS,SAAS,cAAc,EAAE,IAAI,oBAAoB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;AAEnH;;;GAGG;AACH,KAAK,qBAAqB,CAAC,aAAa,SAAS,SAAS,cAAc,EAAE,IAAI;KAC3E,CAAC,IAAI,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,QAAQ,GACrD,QAAQ,GACR,CAAC,SAAS,OAAO,GACjB,OAAO,GACP,CAAC,SAAS,QAAQ,GAClB,QAAQ,GACR,KAAK,GACL,CAAC,SAAS,QAAQ,GAAG,uBAAuB,GAC5C,CAAC,SAAS,OAAO,GAAG,sBAAsB,GAC1C,CAAC,SAAS,QAAQ,GAAG,uBAAuB,GAC5C,KAAK;CACV,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,SAAS,CAAC,aAAa,SAAS,SAAS,cAAc,EAAE,GAAG,SAAS,cAAc,EAAE,IAC/F,aAAa,CAAC,aAAa,CAAC,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;AAEtE;;;;GAIG;AACH,qBAAa,aAAa,CAAC,aAAa,SAAS,SAAS,cAAc,EAAE,GAAG,SAAS,cAAc,EAAE;IACpG,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,cAAc,CAAmC;IACzD,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,gBAAgB,CAAC,CAAgB;IACzC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,SAAS,CAAuF;IACxG,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,YAAY,CAAgD;IACpE,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAC,CAAS;IAE5B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAG5C,SAAgB,MAAM,EAAG,uBAAuB,CAAC;gBAErC,MAAM,EAAE,eAAe,CAAC,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -179,7 +179,38 @@ export interface MCPServerConfig<TIntegrations extends readonly MCPIntegration[]
|
|
|
179
179
|
* });
|
|
180
180
|
* ```
|
|
181
181
|
*/
|
|
182
|
-
setProviderToken?: (provider: string, tokenData: ProviderTokenData, context?: MCPContext) => Promise<void> | void;
|
|
182
|
+
setProviderToken?: (provider: string, tokenData: ProviderTokenData | null, context?: MCPContext) => Promise<void> | void;
|
|
183
|
+
/**
|
|
184
|
+
* Custom token deletion callback (SERVER-SIDE ONLY)
|
|
185
|
+
* Allows deleting OAuth provider tokens from your database
|
|
186
|
+
*
|
|
187
|
+
* When provided, this callback is used for deleting tokens when disconnecting providers.
|
|
188
|
+
* If not provided, the SDK will fall back to calling `setProviderToken(provider, null, context)`
|
|
189
|
+
* for backward compatibility.
|
|
190
|
+
*
|
|
191
|
+
* @param provider - Provider name (e.g., 'github', 'gmail')
|
|
192
|
+
* @param context - Optional user context (userId, organizationId, etc.) for multi-tenant apps
|
|
193
|
+
*
|
|
194
|
+
* @example
|
|
195
|
+
* ```typescript
|
|
196
|
+
* import { createMCPServer } from 'integrate-sdk/server';
|
|
197
|
+
*
|
|
198
|
+
* createMCPServer({
|
|
199
|
+
* integrations: [...],
|
|
200
|
+
* removeProviderToken: async (provider, context) => {
|
|
201
|
+
* const userId = context?.userId;
|
|
202
|
+
* if (!userId) return;
|
|
203
|
+
*
|
|
204
|
+
* await db.tokens.delete({
|
|
205
|
+
* where: {
|
|
206
|
+
* provider_userId: { provider, userId }
|
|
207
|
+
* }
|
|
208
|
+
* });
|
|
209
|
+
* }
|
|
210
|
+
* });
|
|
211
|
+
* ```
|
|
212
|
+
*/
|
|
213
|
+
removeProviderToken?: (provider: string, context?: MCPContext) => Promise<void> | void;
|
|
183
214
|
}
|
|
184
215
|
/**
|
|
185
216
|
* Main client configuration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,KAAK,EAAE,mBAAmB,CAAC;IAC3B,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAEnF;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,UAAU;IACzB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe,CAAC,aAAa,SAAS,SAAS,cAAc,EAAE,CAAE,SAAQ,eAAe,CAAC,aAAa,CAAC;IACtH;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAEtI;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,GAAG,UAAU,GAAG,SAAS,CAAC;IAEnG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,10 +18,12 @@ export declare class OAuthManager {
|
|
|
18
18
|
private apiBaseUrl?;
|
|
19
19
|
private getTokenCallback?;
|
|
20
20
|
private setTokenCallback?;
|
|
21
|
+
private removeTokenCallback?;
|
|
21
22
|
private skipLocalStorage;
|
|
22
23
|
constructor(oauthApiBase: string, flowConfig?: Partial<OAuthFlowConfig>, apiBaseUrl?: string, tokenCallbacks?: {
|
|
23
24
|
getProviderToken?: (provider: string, context?: MCPContext) => Promise<ProviderTokenData | undefined> | ProviderTokenData | undefined;
|
|
24
|
-
setProviderToken?: (provider: string, tokenData: ProviderTokenData, context?: MCPContext) => Promise<void> | void;
|
|
25
|
+
setProviderToken?: (provider: string, tokenData: ProviderTokenData | null, context?: MCPContext) => Promise<void> | void;
|
|
26
|
+
removeProviderToken?: (provider: string, context?: MCPContext) => Promise<void> | void;
|
|
25
27
|
skipLocalStorage?: boolean;
|
|
26
28
|
});
|
|
27
29
|
/**
|
|
@@ -86,22 +88,31 @@ export declare class OAuthManager {
|
|
|
86
88
|
checkAuthStatus(provider: string): Promise<AuthStatus>;
|
|
87
89
|
/**
|
|
88
90
|
* Disconnect a specific provider
|
|
89
|
-
* Clears the local token for the provider
|
|
91
|
+
* Clears the local token for the provider and removes it from the database if using callbacks
|
|
90
92
|
*
|
|
91
|
-
*
|
|
93
|
+
* This method is idempotent - it can be called safely even if the provider
|
|
94
|
+
* is already disconnected or has no token. If no token exists, it will
|
|
95
|
+
* simply ensure all state is cleared and return successfully.
|
|
96
|
+
*
|
|
97
|
+
* When using database callbacks (server-side), this will also delete the token
|
|
98
|
+
* from the database. It first tries to use `removeProviderToken` callback if provided,
|
|
99
|
+
* otherwise falls back to calling `setProviderToken` with null for backward compatibility.
|
|
100
|
+
*
|
|
101
|
+
* Note: This only clears the local/in-memory token and database token. It does not revoke the token
|
|
92
102
|
* on the provider's side. For full revocation, handle that separately
|
|
93
103
|
* in your application if needed.
|
|
94
104
|
*
|
|
95
105
|
* @param provider - OAuth provider to disconnect
|
|
106
|
+
* @param context - Optional user context (userId, organizationId, etc.) for multi-tenant apps
|
|
96
107
|
* @returns Promise that resolves when disconnection is complete
|
|
97
108
|
*
|
|
98
109
|
* @example
|
|
99
110
|
* ```typescript
|
|
100
111
|
* await oauthManager.disconnectProvider('github');
|
|
101
|
-
* // GitHub token is now cleared from cache
|
|
112
|
+
* // GitHub token is now cleared from cache and database
|
|
102
113
|
* ```
|
|
103
114
|
*/
|
|
104
|
-
disconnectProvider(provider: string): Promise<void>;
|
|
115
|
+
disconnectProvider(provider: string, context?: MCPContext): Promise<void>;
|
|
105
116
|
/**
|
|
106
117
|
* Get provider token data
|
|
107
118
|
* Uses callback if provided, otherwise checks in-memory cache
|
|
@@ -127,7 +138,7 @@ export declare class OAuthManager {
|
|
|
127
138
|
* @param tokenData - Token data to store
|
|
128
139
|
* @param context - Optional user context (userId, organizationId, etc.) for multi-tenant apps
|
|
129
140
|
*/
|
|
130
|
-
setProviderToken(provider: string, tokenData: ProviderTokenData, context?: MCPContext): Promise<void>;
|
|
141
|
+
setProviderToken(provider: string, tokenData: ProviderTokenData | null, context?: MCPContext): Promise<void>;
|
|
131
142
|
/**
|
|
132
143
|
* Clear specific provider token
|
|
133
144
|
* Note: When using database callbacks, this only clears the in-memory cache.
|
|
@@ -148,7 +159,7 @@ export declare class OAuthManager {
|
|
|
148
159
|
/**
|
|
149
160
|
* Save provider token to database (via callback) or localStorage
|
|
150
161
|
* @param provider - Provider name (e.g., 'github', 'gmail')
|
|
151
|
-
* @param tokenData - Token data to store
|
|
162
|
+
* @param tokenData - Token data to store, or null to delete
|
|
152
163
|
* @param context - Optional user context (userId, organizationId, etc.) for multi-tenant apps
|
|
153
164
|
*/
|
|
154
165
|
private saveProviderToken;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/oauth/manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EACV,eAAe,EAEf,UAAU,EAGV,iBAAiB,EAClB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIrD;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAAuC;IAC3D,OAAO,CAAC,cAAc,CAA6C;IACnE,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,gBAAgB,CAAC,CAAqH;IAC9I,OAAO,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/oauth/manager.ts"],"names":[],"mappings":"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"}
|