integrate-sdk 0.8.0 → 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 +31 -8
- package/dist/adapters/solid-start.js +31 -8
- package/dist/adapters/svelte-kit.js +31 -8
- package/dist/index.js +31 -8
- package/dist/server.js +31 -8
- package/dist/src/client.d.ts +14 -1
- 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/ai/cloudflare.d.ts +0 -158
- package/dist/ai/cloudflare.d.ts.map +0 -1
- package/dist/ai/cloudflare.js +0 -4249
- package/dist/ai/langchain.d.ts +0 -139
- package/dist/ai/langchain.d.ts.map +0 -1
- package/dist/ai/langchain.js +0 -4237
- package/dist/ai/llamaindex.d.ts +0 -125
- package/dist/ai/llamaindex.d.ts.map +0 -1
- package/dist/ai/llamaindex.js +0 -4236
- package/dist/ai/mastra.d.ts +0 -138
- package/dist/ai/mastra.d.ts.map +0 -1
- package/dist/ai/mastra.js +0 -4240
- package/dist/src/ai/cloudflare.d.ts +0 -158
- package/dist/src/ai/cloudflare.d.ts.map +0 -1
- package/dist/src/ai/langchain.d.ts +0 -139
- package/dist/src/ai/langchain.d.ts.map +0 -1
- package/dist/src/ai/llamaindex.d.ts +0 -125
- package/dist/src/ai/llamaindex.d.ts.map +0 -1
- package/dist/src/ai/mastra.d.ts +0 -138
- package/dist/src/ai/mastra.d.ts.map +0 -1
- package/dist/src/integrations/vercel-ai.d.ts +0 -127
- package/dist/src/integrations/vercel-ai.d.ts.map +0 -1
- package/dist/src/plugins/generic.d.ts +0 -99
- package/dist/src/plugins/generic.d.ts.map +0 -1
- package/dist/src/plugins/github-client.d.ts +0 -320
- package/dist/src/plugins/github-client.d.ts.map +0 -1
- package/dist/src/plugins/github.d.ts +0 -89
- package/dist/src/plugins/github.d.ts.map +0 -1
- package/dist/src/plugins/gmail-client.d.ts +0 -106
- package/dist/src/plugins/gmail-client.d.ts.map +0 -1
- package/dist/src/plugins/gmail.d.ts +0 -87
- package/dist/src/plugins/gmail.d.ts.map +0 -1
- package/dist/src/plugins/server-client.d.ts +0 -18
- package/dist/src/plugins/server-client.d.ts.map +0 -1
- package/dist/src/plugins/types.d.ts +0 -70
- package/dist/src/plugins/types.d.ts.map +0 -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,13 +2333,13 @@ 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 {
|
|
2319
|
-
const tokenData = await this.oauthManager.getProviderToken(provider);
|
|
2342
|
+
const tokenData = await this.oauthManager.getProviderToken(provider, context);
|
|
2320
2343
|
const isAuthenticated = !!tokenData;
|
|
2321
2344
|
const currentState = this.authState.get(provider);
|
|
2322
2345
|
if (currentState) {
|
|
@@ -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,13 +2192,13 @@ 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 {
|
|
2178
|
-
const tokenData = await this.oauthManager.getProviderToken(provider);
|
|
2201
|
+
const tokenData = await this.oauthManager.getProviderToken(provider, context);
|
|
2179
2202
|
const isAuthenticated = !!tokenData;
|
|
2180
2203
|
const currentState = this.authState.get(provider);
|
|
2181
2204
|
if (currentState) {
|
|
@@ -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,13 +2192,13 @@ 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 {
|
|
2178
|
-
const tokenData = await this.oauthManager.getProviderToken(provider);
|
|
2201
|
+
const tokenData = await this.oauthManager.getProviderToken(provider, context);
|
|
2179
2202
|
const isAuthenticated = !!tokenData;
|
|
2180
2203
|
const currentState = this.authState.get(provider);
|
|
2181
2204
|
if (currentState) {
|
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,13 +2035,13 @@ 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 {
|
|
2021
|
-
const tokenData = await this.oauthManager.getProviderToken(provider);
|
|
2044
|
+
const tokenData = await this.oauthManager.getProviderToken(provider, context);
|
|
2022
2045
|
const isAuthenticated = !!tokenData;
|
|
2023
2046
|
const currentState = this.authState.get(provider);
|
|
2024
2047
|
if (currentState) {
|
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,13 +2026,13 @@ 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 {
|
|
2012
|
-
const tokenData = await this.oauthManager.getProviderToken(provider);
|
|
2035
|
+
const tokenData = await this.oauthManager.getProviderToken(provider, context);
|
|
2013
2036
|
const isAuthenticated = !!tokenData;
|
|
2014
2037
|
const currentState = this.authState.get(provider);
|
|
2015
2038
|
if (currentState) {
|
package/dist/src/client.d.ts
CHANGED
|
@@ -275,11 +275,17 @@ export declare class MCPClientBase<TIntegrations extends readonly MCPIntegration
|
|
|
275
275
|
* Automatically waits for any pending OAuth callback to complete, ensuring
|
|
276
276
|
* the auth state is always up-to-date, even immediately after OAuth redirects
|
|
277
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
|
+
*
|
|
278
282
|
* @param provider - Provider name (github, gmail, etc.)
|
|
283
|
+
* @param context - Optional user context (userId, organizationId, etc.) for multi-tenant apps
|
|
279
284
|
* @returns Promise that resolves to authorization status
|
|
280
285
|
*
|
|
281
286
|
* @example
|
|
282
287
|
* ```typescript
|
|
288
|
+
* // Client-side usage (no context needed)
|
|
283
289
|
* const isAuthorized = await client.isAuthorized('github');
|
|
284
290
|
* if (!isAuthorized) {
|
|
285
291
|
* await client.authorize('github');
|
|
@@ -287,8 +293,15 @@ export declare class MCPClientBase<TIntegrations extends readonly MCPIntegration
|
|
|
287
293
|
* console.log(await client.isAuthorized('github')); // true
|
|
288
294
|
* }
|
|
289
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
|
+
* ```
|
|
290
303
|
*/
|
|
291
|
-
isAuthorized(provider: string): Promise<boolean>;
|
|
304
|
+
isAuthorized(provider: string, context?: MCPContext): Promise<boolean>;
|
|
292
305
|
/**
|
|
293
306
|
* Get list of all authorized providers
|
|
294
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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"}
|