integrate-sdk 0.8.74-dev.0 → 0.8.75-dev.0
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/auto-routes.js +31 -0
- package/dist/adapters/base-handler.d.ts +5 -0
- package/dist/adapters/base-handler.d.ts.map +1 -1
- package/dist/adapters/index.js +31 -0
- package/dist/adapters/nextjs.js +31 -0
- package/dist/adapters/node.js +31 -0
- package/dist/adapters/svelte-kit.js +31 -0
- package/dist/adapters/tanstack-start.js +31 -0
- package/dist/index.js +31 -0
- package/dist/oauth.js +31 -0
- package/dist/server.js +31 -0
- package/dist/src/adapters/base-handler.d.ts +5 -0
- package/dist/src/adapters/base-handler.d.ts.map +1 -1
- package/dist/src/integrations/airtable.d.ts +2 -0
- package/dist/src/integrations/airtable.d.ts.map +1 -1
- package/dist/src/integrations/calcom.d.ts +2 -0
- package/dist/src/integrations/calcom.d.ts.map +1 -1
- package/dist/src/integrations/figma.d.ts +2 -0
- package/dist/src/integrations/figma.d.ts.map +1 -1
- package/dist/src/integrations/gcal.d.ts +2 -0
- package/dist/src/integrations/gcal.d.ts.map +1 -1
- package/dist/src/integrations/generic.d.ts +2 -0
- package/dist/src/integrations/generic.d.ts.map +1 -1
- package/dist/src/integrations/github.d.ts +2 -0
- package/dist/src/integrations/github.d.ts.map +1 -1
- package/dist/src/integrations/gmail.d.ts +2 -0
- package/dist/src/integrations/gmail.d.ts.map +1 -1
- package/dist/src/integrations/gworkspace.d.ts +2 -0
- package/dist/src/integrations/gworkspace.d.ts.map +1 -1
- package/dist/src/integrations/hubspot.d.ts +2 -0
- package/dist/src/integrations/hubspot.d.ts.map +1 -1
- package/dist/src/integrations/intercom.d.ts +2 -0
- package/dist/src/integrations/intercom.d.ts.map +1 -1
- package/dist/src/integrations/linear.d.ts +2 -0
- package/dist/src/integrations/linear.d.ts.map +1 -1
- package/dist/src/integrations/notion.d.ts +2 -0
- package/dist/src/integrations/notion.d.ts.map +1 -1
- package/dist/src/integrations/onedrive.d.ts +2 -0
- package/dist/src/integrations/onedrive.d.ts.map +1 -1
- package/dist/src/integrations/outlook.d.ts +2 -0
- package/dist/src/integrations/outlook.d.ts.map +1 -1
- package/dist/src/integrations/polar.d.ts +2 -0
- package/dist/src/integrations/polar.d.ts.map +1 -1
- package/dist/src/integrations/ramp.d.ts +2 -0
- package/dist/src/integrations/ramp.d.ts.map +1 -1
- package/dist/src/integrations/slack.d.ts +2 -0
- package/dist/src/integrations/slack.d.ts.map +1 -1
- package/dist/src/integrations/stripe.d.ts +2 -0
- package/dist/src/integrations/stripe.d.ts.map +1 -1
- package/dist/src/integrations/todoist.d.ts +2 -0
- package/dist/src/integrations/todoist.d.ts.map +1 -1
- package/dist/src/integrations/types.d.ts +2 -0
- package/dist/src/integrations/types.d.ts.map +1 -1
- package/dist/src/integrations/vercel.d.ts +2 -0
- package/dist/src/integrations/vercel.d.ts.map +1 -1
- package/dist/src/integrations/whatsapp.d.ts +2 -0
- package/dist/src/integrations/whatsapp.d.ts.map +1 -1
- package/dist/src/integrations/youtube.d.ts +2 -0
- package/dist/src/integrations/youtube.d.ts.map +1 -1
- package/dist/src/integrations/zendesk.d.ts +2 -0
- package/dist/src/integrations/zendesk.d.ts.map +1 -1
- package/dist/src/server.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -2629,6 +2629,7 @@ function githubIntegration(config = {}) {
|
|
|
2629
2629
|
clientId: config.clientId ?? getEnv("GITHUB_CLIENT_ID"),
|
|
2630
2630
|
clientSecret: config.clientSecret ?? getEnv("GITHUB_CLIENT_SECRET"),
|
|
2631
2631
|
scopes: config.scopes || ["repo", "user"],
|
|
2632
|
+
optionalScopes: config.optionalScopes,
|
|
2632
2633
|
redirectUri: config.redirectUri,
|
|
2633
2634
|
config: {
|
|
2634
2635
|
apiBaseUrl: config.apiBaseUrl || "https://api.github.com",
|
|
@@ -2716,6 +2717,7 @@ function gmailIntegration(config = {}) {
|
|
|
2716
2717
|
"https://www.googleapis.com/auth/gmail.modify",
|
|
2717
2718
|
"https://www.googleapis.com/auth/gmail.labels"
|
|
2718
2719
|
],
|
|
2720
|
+
optionalScopes: config.optionalScopes,
|
|
2719
2721
|
redirectUri: config.redirectUri,
|
|
2720
2722
|
config
|
|
2721
2723
|
};
|
|
@@ -2752,6 +2754,7 @@ function notionIntegration(config = {}) {
|
|
|
2752
2754
|
clientId: config.clientId ?? getEnv("NOTION_CLIENT_ID"),
|
|
2753
2755
|
clientSecret: config.clientSecret ?? getEnv("NOTION_CLIENT_SECRET"),
|
|
2754
2756
|
scopes: [],
|
|
2757
|
+
optionalScopes: config.optionalScopes,
|
|
2755
2758
|
redirectUri: config.redirectUri,
|
|
2756
2759
|
config: {
|
|
2757
2760
|
owner: config.owner || "user",
|
|
@@ -2817,6 +2820,7 @@ function slackIntegration(config = {}) {
|
|
|
2817
2820
|
clientId: config.clientId ?? getEnv("SLACK_CLIENT_ID"),
|
|
2818
2821
|
clientSecret: config.clientSecret ?? getEnv("SLACK_CLIENT_SECRET"),
|
|
2819
2822
|
scopes: config.scopes || ["chat:write", "channels:read", "users:read", "search:read", "files:write"],
|
|
2823
|
+
optionalScopes: config.optionalScopes,
|
|
2820
2824
|
redirectUri: config.redirectUri,
|
|
2821
2825
|
config: {
|
|
2822
2826
|
...config
|
|
@@ -2860,6 +2864,7 @@ function linearIntegration(config = {}) {
|
|
|
2860
2864
|
clientId: config.clientId ?? getEnv("LINEAR_CLIENT_ID"),
|
|
2861
2865
|
clientSecret: config.clientSecret ?? getEnv("LINEAR_CLIENT_SECRET"),
|
|
2862
2866
|
scopes: config.scopes || ["read", "write", "issues:create", "comments:create"],
|
|
2867
|
+
optionalScopes: config.optionalScopes,
|
|
2863
2868
|
redirectUri: config.redirectUri,
|
|
2864
2869
|
config: {
|
|
2865
2870
|
...config
|
|
@@ -2927,6 +2932,7 @@ function vercelIntegration(config = {}) {
|
|
|
2927
2932
|
clientId: config.clientId ?? getEnv("VERCEL_CLIENT_ID"),
|
|
2928
2933
|
clientSecret: config.clientSecret ?? getEnv("VERCEL_CLIENT_SECRET"),
|
|
2929
2934
|
scopes: config.scopes || [],
|
|
2935
|
+
optionalScopes: config.optionalScopes,
|
|
2930
2936
|
redirectUri: config.redirectUri,
|
|
2931
2937
|
config: {
|
|
2932
2938
|
...config
|
|
@@ -2970,6 +2976,7 @@ function zendeskIntegration(config = {}) {
|
|
|
2970
2976
|
clientId: config.clientId ?? getEnv("ZENDESK_CLIENT_ID"),
|
|
2971
2977
|
clientSecret: config.clientSecret ?? getEnv("ZENDESK_CLIENT_SECRET"),
|
|
2972
2978
|
scopes: config.scopes || ["read", "write"],
|
|
2979
|
+
optionalScopes: config.optionalScopes,
|
|
2973
2980
|
redirectUri: config.redirectUri,
|
|
2974
2981
|
config: {
|
|
2975
2982
|
subdomain: config.subdomain ?? getEnv("ZENDESK_SUBDOMAIN"),
|
|
@@ -3014,6 +3021,7 @@ function stripeIntegration(config = {}) {
|
|
|
3014
3021
|
clientId: config.clientId ?? getEnv("STRIPE_CLIENT_ID"),
|
|
3015
3022
|
clientSecret: config.clientSecret ?? getEnv("STRIPE_CLIENT_SECRET"),
|
|
3016
3023
|
scopes: config.scopes || ["read_write"],
|
|
3024
|
+
optionalScopes: config.optionalScopes,
|
|
3017
3025
|
redirectUri: config.redirectUri,
|
|
3018
3026
|
config: {
|
|
3019
3027
|
...config
|
|
@@ -3057,6 +3065,7 @@ function gcalIntegration(config = {}) {
|
|
|
3057
3065
|
clientId: config.clientId ?? getEnv("GCAL_CLIENT_ID"),
|
|
3058
3066
|
clientSecret: config.clientSecret ?? getEnv("GCAL_CLIENT_SECRET"),
|
|
3059
3067
|
scopes: config.scopes || ["https://www.googleapis.com/auth/calendar"],
|
|
3068
|
+
optionalScopes: config.optionalScopes,
|
|
3060
3069
|
redirectUri: config.redirectUri,
|
|
3061
3070
|
config: {
|
|
3062
3071
|
...config
|
|
@@ -3100,6 +3109,7 @@ function outlookIntegration(config = {}) {
|
|
|
3100
3109
|
clientId: config.clientId ?? getEnv("OUTLOOK_CLIENT_ID"),
|
|
3101
3110
|
clientSecret: config.clientSecret ?? getEnv("OUTLOOK_CLIENT_SECRET"),
|
|
3102
3111
|
scopes: config.scopes || ["Mail.Read", "Mail.Send", "Calendars.ReadWrite", "Contacts.Read"],
|
|
3112
|
+
optionalScopes: config.optionalScopes,
|
|
3103
3113
|
redirectUri: config.redirectUri,
|
|
3104
3114
|
config: {
|
|
3105
3115
|
...config
|
|
@@ -3151,6 +3161,7 @@ function airtableIntegration(config = {}) {
|
|
|
3151
3161
|
"schema.bases:write",
|
|
3152
3162
|
"webhook:manage"
|
|
3153
3163
|
],
|
|
3164
|
+
optionalScopes: config.optionalScopes,
|
|
3154
3165
|
redirectUri: config.redirectUri,
|
|
3155
3166
|
config: {
|
|
3156
3167
|
...config
|
|
@@ -3209,6 +3220,7 @@ function todoistIntegration(config = {}) {
|
|
|
3209
3220
|
clientId: config.clientId ?? getEnv("TODOIST_CLIENT_ID"),
|
|
3210
3221
|
clientSecret: config.clientSecret ?? getEnv("TODOIST_CLIENT_SECRET"),
|
|
3211
3222
|
scopes: config.scopes || ["data:read_write"],
|
|
3223
|
+
optionalScopes: config.optionalScopes,
|
|
3212
3224
|
redirectUri: config.redirectUri,
|
|
3213
3225
|
config: {
|
|
3214
3226
|
...config
|
|
@@ -3252,6 +3264,7 @@ function whatsappIntegration(config = {}) {
|
|
|
3252
3264
|
clientId: config.clientId ?? getEnv("WHATSAPP_CLIENT_ID"),
|
|
3253
3265
|
clientSecret: config.clientSecret ?? getEnv("WHATSAPP_CLIENT_SECRET"),
|
|
3254
3266
|
scopes: config.scopes || ["business_management", "whatsapp_business_messaging", "whatsapp_business_management"],
|
|
3267
|
+
optionalScopes: config.optionalScopes,
|
|
3255
3268
|
redirectUri: config.redirectUri,
|
|
3256
3269
|
config: {
|
|
3257
3270
|
businessAccountId: config.businessAccountId,
|
|
@@ -3295,6 +3308,7 @@ function calcomIntegration(config = {}) {
|
|
|
3295
3308
|
clientId: config.clientId ?? getEnv("CALCOM_CLIENT_ID"),
|
|
3296
3309
|
clientSecret: config.clientSecret ?? getEnv("CALCOM_CLIENT_SECRET"),
|
|
3297
3310
|
scopes: config.scopes || ["READ_BOOKING", "WRITE_BOOKING", "READ_PROFILE", "WRITE_PROFILE"],
|
|
3311
|
+
optionalScopes: config.optionalScopes,
|
|
3298
3312
|
redirectUri: config.redirectUri,
|
|
3299
3313
|
config: {
|
|
3300
3314
|
apiBaseUrl: config.apiBaseUrl || "https://api.cal.com/v1",
|
|
@@ -3383,6 +3397,7 @@ function rampIntegration(config = {}) {
|
|
|
3383
3397
|
clientId: config.clientId ?? getEnv("RAMP_CLIENT_ID"),
|
|
3384
3398
|
clientSecret: config.clientSecret ?? getEnv("RAMP_CLIENT_SECRET"),
|
|
3385
3399
|
scopes: config.scopes || ["transactions:read", "cards:read", "users:read"],
|
|
3400
|
+
optionalScopes: config.optionalScopes,
|
|
3386
3401
|
redirectUri: config.redirectUri,
|
|
3387
3402
|
config: {
|
|
3388
3403
|
apiBaseUrl: config.apiBaseUrl || "https://api.ramp.com/v1",
|
|
@@ -3427,6 +3442,7 @@ function onedriveIntegration(config = {}) {
|
|
|
3427
3442
|
clientId: config.clientId ?? getEnv("ONEDRIVE_CLIENT_ID"),
|
|
3428
3443
|
clientSecret: config.clientSecret ?? getEnv("ONEDRIVE_CLIENT_SECRET"),
|
|
3429
3444
|
scopes: config.scopes || ["Files.Read", "Files.ReadWrite", "offline_access"],
|
|
3445
|
+
optionalScopes: config.optionalScopes,
|
|
3430
3446
|
redirectUri: config.redirectUri,
|
|
3431
3447
|
config: {
|
|
3432
3448
|
...config
|
|
@@ -3478,6 +3494,7 @@ function gworkspaceIntegration(config = {}) {
|
|
|
3478
3494
|
"https://www.googleapis.com/auth/presentations",
|
|
3479
3495
|
"https://www.googleapis.com/auth/drive.readonly"
|
|
3480
3496
|
],
|
|
3497
|
+
optionalScopes: config.optionalScopes,
|
|
3481
3498
|
redirectUri: config.redirectUri,
|
|
3482
3499
|
config: {
|
|
3483
3500
|
...config
|
|
@@ -3543,6 +3560,7 @@ function polarIntegration(config = {}) {
|
|
|
3543
3560
|
"metrics:read",
|
|
3544
3561
|
"organizations:read"
|
|
3545
3562
|
],
|
|
3563
|
+
optionalScopes: config.optionalScopes,
|
|
3546
3564
|
redirectUri: config.redirectUri,
|
|
3547
3565
|
config: {
|
|
3548
3566
|
apiBaseUrl: config.apiBaseUrl || "https://api.polar.sh"
|
|
@@ -3612,6 +3630,7 @@ function figmaIntegration(config = {}) {
|
|
|
3612
3630
|
clientId: config.clientId ?? getEnv("FIGMA_CLIENT_ID"),
|
|
3613
3631
|
clientSecret: config.clientSecret ?? getEnv("FIGMA_CLIENT_SECRET"),
|
|
3614
3632
|
scopes: config.scopes || ["files:read", "file_comments:write"],
|
|
3633
|
+
optionalScopes: config.optionalScopes,
|
|
3615
3634
|
redirectUri: config.redirectUri,
|
|
3616
3635
|
config: {
|
|
3617
3636
|
...config
|
|
@@ -3655,6 +3674,7 @@ function intercomIntegration(config = {}) {
|
|
|
3655
3674
|
clientId: config.clientId ?? getEnv("INTERCOM_CLIENT_ID"),
|
|
3656
3675
|
clientSecret: config.clientSecret ?? getEnv("INTERCOM_CLIENT_SECRET"),
|
|
3657
3676
|
scopes: config.scopes || [],
|
|
3677
|
+
optionalScopes: config.optionalScopes,
|
|
3658
3678
|
redirectUri: config.redirectUri,
|
|
3659
3679
|
config: {
|
|
3660
3680
|
...config
|
|
@@ -3708,6 +3728,7 @@ function hubspotIntegration(config = {}) {
|
|
|
3708
3728
|
"crm.objects.tickets.write",
|
|
3709
3729
|
"crm.objects.owners.read"
|
|
3710
3730
|
],
|
|
3731
|
+
optionalScopes: config.optionalScopes,
|
|
3711
3732
|
redirectUri: config.redirectUri,
|
|
3712
3733
|
config: {
|
|
3713
3734
|
...config
|
|
@@ -3770,6 +3791,7 @@ function youtubeIntegration(config = {}) {
|
|
|
3770
3791
|
clientId: config.clientId ?? getEnv("YOUTUBE_CLIENT_ID"),
|
|
3771
3792
|
clientSecret: config.clientSecret ?? getEnv("YOUTUBE_CLIENT_SECRET"),
|
|
3772
3793
|
scopes: config.scopes || ["https://www.googleapis.com/auth/youtube.readonly"],
|
|
3794
|
+
optionalScopes: config.optionalScopes,
|
|
3773
3795
|
redirectUri: config.redirectUri,
|
|
3774
3796
|
config: {
|
|
3775
3797
|
...config
|
|
@@ -3847,6 +3869,7 @@ function genericOAuthIntegration(config) {
|
|
|
3847
3869
|
clientId: config.clientId ?? getEnv(`${providerUpper}_CLIENT_ID`),
|
|
3848
3870
|
clientSecret: config.clientSecret ?? getEnv(`${providerUpper}_CLIENT_SECRET`),
|
|
3849
3871
|
scopes: config.scopes,
|
|
3872
|
+
optionalScopes: config.optionalScopes,
|
|
3850
3873
|
redirectUri: config.redirectUri,
|
|
3851
3874
|
config
|
|
3852
3875
|
};
|
|
@@ -10561,6 +10584,7 @@ function createMCPServer(config) {
|
|
|
10561
10584
|
tools: integration.tools,
|
|
10562
10585
|
hasOAuth: !!integration.oauth,
|
|
10563
10586
|
scopes: integration.oauth?.scopes,
|
|
10587
|
+
optionalScopes: integration.oauth?.optionalScopes,
|
|
10564
10588
|
provider: integration.oauth?.provider
|
|
10565
10589
|
}));
|
|
10566
10590
|
return Response.json({ integrations });
|
|
@@ -11524,6 +11548,7 @@ class OAuthHandler {
|
|
|
11524
11548
|
tools: integration.tools,
|
|
11525
11549
|
hasOAuth: !!integration.oauth,
|
|
11526
11550
|
scopes: integration.oauth?.scopes,
|
|
11551
|
+
optionalScopes: integration.oauth?.optionalScopes,
|
|
11527
11552
|
provider: integration.oauth?.provider
|
|
11528
11553
|
}))
|
|
11529
11554
|
};
|
|
@@ -11566,6 +11591,10 @@ class OAuthHandler {
|
|
|
11566
11591
|
if (scopes.length > 0) {
|
|
11567
11592
|
url.searchParams.set("scope", scopes.join(","));
|
|
11568
11593
|
}
|
|
11594
|
+
const optionalScopes = authorizeRequest.optionalScopes || providerConfig.optionalScopes || [];
|
|
11595
|
+
if (optionalScopes.length > 0) {
|
|
11596
|
+
url.searchParams.set("optional_scope", optionalScopes.join(","));
|
|
11597
|
+
}
|
|
11569
11598
|
url.searchParams.set("state", authorizeRequest.state);
|
|
11570
11599
|
url.searchParams.set("code_challenge", authorizeRequest.codeChallenge);
|
|
11571
11600
|
url.searchParams.set("code_challenge_method", authorizeRequest.codeChallengeMethod);
|
|
@@ -11577,10 +11606,12 @@ class OAuthHandler {
|
|
|
11577
11606
|
"clientId",
|
|
11578
11607
|
"clientSecret",
|
|
11579
11608
|
"scopes",
|
|
11609
|
+
"optionalScopes",
|
|
11580
11610
|
"redirectUri",
|
|
11581
11611
|
"client_id",
|
|
11582
11612
|
"client_secret",
|
|
11583
11613
|
"scope",
|
|
11614
|
+
"optional_scope",
|
|
11584
11615
|
"redirect_uri",
|
|
11585
11616
|
"provider"
|
|
11586
11617
|
]);
|
package/dist/index.js
CHANGED
|
@@ -3020,6 +3020,7 @@ function githubIntegration(config = {}) {
|
|
|
3020
3020
|
clientId: config.clientId ?? getEnv("GITHUB_CLIENT_ID"),
|
|
3021
3021
|
clientSecret: config.clientSecret ?? getEnv("GITHUB_CLIENT_SECRET"),
|
|
3022
3022
|
scopes: config.scopes || ["repo", "user"],
|
|
3023
|
+
optionalScopes: config.optionalScopes,
|
|
3023
3024
|
redirectUri: config.redirectUri,
|
|
3024
3025
|
config: {
|
|
3025
3026
|
apiBaseUrl: config.apiBaseUrl || "https://api.github.com",
|
|
@@ -3107,6 +3108,7 @@ function gmailIntegration(config = {}) {
|
|
|
3107
3108
|
"https://www.googleapis.com/auth/gmail.modify",
|
|
3108
3109
|
"https://www.googleapis.com/auth/gmail.labels"
|
|
3109
3110
|
],
|
|
3111
|
+
optionalScopes: config.optionalScopes,
|
|
3110
3112
|
redirectUri: config.redirectUri,
|
|
3111
3113
|
config
|
|
3112
3114
|
};
|
|
@@ -3143,6 +3145,7 @@ function notionIntegration(config = {}) {
|
|
|
3143
3145
|
clientId: config.clientId ?? getEnv("NOTION_CLIENT_ID"),
|
|
3144
3146
|
clientSecret: config.clientSecret ?? getEnv("NOTION_CLIENT_SECRET"),
|
|
3145
3147
|
scopes: [],
|
|
3148
|
+
optionalScopes: config.optionalScopes,
|
|
3146
3149
|
redirectUri: config.redirectUri,
|
|
3147
3150
|
config: {
|
|
3148
3151
|
owner: config.owner || "user",
|
|
@@ -3208,6 +3211,7 @@ function slackIntegration(config = {}) {
|
|
|
3208
3211
|
clientId: config.clientId ?? getEnv("SLACK_CLIENT_ID"),
|
|
3209
3212
|
clientSecret: config.clientSecret ?? getEnv("SLACK_CLIENT_SECRET"),
|
|
3210
3213
|
scopes: config.scopes || ["chat:write", "channels:read", "users:read", "search:read", "files:write"],
|
|
3214
|
+
optionalScopes: config.optionalScopes,
|
|
3211
3215
|
redirectUri: config.redirectUri,
|
|
3212
3216
|
config: {
|
|
3213
3217
|
...config
|
|
@@ -3251,6 +3255,7 @@ function linearIntegration(config = {}) {
|
|
|
3251
3255
|
clientId: config.clientId ?? getEnv("LINEAR_CLIENT_ID"),
|
|
3252
3256
|
clientSecret: config.clientSecret ?? getEnv("LINEAR_CLIENT_SECRET"),
|
|
3253
3257
|
scopes: config.scopes || ["read", "write", "issues:create", "comments:create"],
|
|
3258
|
+
optionalScopes: config.optionalScopes,
|
|
3254
3259
|
redirectUri: config.redirectUri,
|
|
3255
3260
|
config: {
|
|
3256
3261
|
...config
|
|
@@ -3318,6 +3323,7 @@ function vercelIntegration(config = {}) {
|
|
|
3318
3323
|
clientId: config.clientId ?? getEnv("VERCEL_CLIENT_ID"),
|
|
3319
3324
|
clientSecret: config.clientSecret ?? getEnv("VERCEL_CLIENT_SECRET"),
|
|
3320
3325
|
scopes: config.scopes || [],
|
|
3326
|
+
optionalScopes: config.optionalScopes,
|
|
3321
3327
|
redirectUri: config.redirectUri,
|
|
3322
3328
|
config: {
|
|
3323
3329
|
...config
|
|
@@ -3361,6 +3367,7 @@ function zendeskIntegration(config = {}) {
|
|
|
3361
3367
|
clientId: config.clientId ?? getEnv("ZENDESK_CLIENT_ID"),
|
|
3362
3368
|
clientSecret: config.clientSecret ?? getEnv("ZENDESK_CLIENT_SECRET"),
|
|
3363
3369
|
scopes: config.scopes || ["read", "write"],
|
|
3370
|
+
optionalScopes: config.optionalScopes,
|
|
3364
3371
|
redirectUri: config.redirectUri,
|
|
3365
3372
|
config: {
|
|
3366
3373
|
subdomain: config.subdomain ?? getEnv("ZENDESK_SUBDOMAIN"),
|
|
@@ -3405,6 +3412,7 @@ function stripeIntegration(config = {}) {
|
|
|
3405
3412
|
clientId: config.clientId ?? getEnv("STRIPE_CLIENT_ID"),
|
|
3406
3413
|
clientSecret: config.clientSecret ?? getEnv("STRIPE_CLIENT_SECRET"),
|
|
3407
3414
|
scopes: config.scopes || ["read_write"],
|
|
3415
|
+
optionalScopes: config.optionalScopes,
|
|
3408
3416
|
redirectUri: config.redirectUri,
|
|
3409
3417
|
config: {
|
|
3410
3418
|
...config
|
|
@@ -3448,6 +3456,7 @@ function gcalIntegration(config = {}) {
|
|
|
3448
3456
|
clientId: config.clientId ?? getEnv("GCAL_CLIENT_ID"),
|
|
3449
3457
|
clientSecret: config.clientSecret ?? getEnv("GCAL_CLIENT_SECRET"),
|
|
3450
3458
|
scopes: config.scopes || ["https://www.googleapis.com/auth/calendar"],
|
|
3459
|
+
optionalScopes: config.optionalScopes,
|
|
3451
3460
|
redirectUri: config.redirectUri,
|
|
3452
3461
|
config: {
|
|
3453
3462
|
...config
|
|
@@ -3491,6 +3500,7 @@ function outlookIntegration(config = {}) {
|
|
|
3491
3500
|
clientId: config.clientId ?? getEnv("OUTLOOK_CLIENT_ID"),
|
|
3492
3501
|
clientSecret: config.clientSecret ?? getEnv("OUTLOOK_CLIENT_SECRET"),
|
|
3493
3502
|
scopes: config.scopes || ["Mail.Read", "Mail.Send", "Calendars.ReadWrite", "Contacts.Read"],
|
|
3503
|
+
optionalScopes: config.optionalScopes,
|
|
3494
3504
|
redirectUri: config.redirectUri,
|
|
3495
3505
|
config: {
|
|
3496
3506
|
...config
|
|
@@ -3542,6 +3552,7 @@ function airtableIntegration(config = {}) {
|
|
|
3542
3552
|
"schema.bases:write",
|
|
3543
3553
|
"webhook:manage"
|
|
3544
3554
|
],
|
|
3555
|
+
optionalScopes: config.optionalScopes,
|
|
3545
3556
|
redirectUri: config.redirectUri,
|
|
3546
3557
|
config: {
|
|
3547
3558
|
...config
|
|
@@ -3600,6 +3611,7 @@ function todoistIntegration(config = {}) {
|
|
|
3600
3611
|
clientId: config.clientId ?? getEnv("TODOIST_CLIENT_ID"),
|
|
3601
3612
|
clientSecret: config.clientSecret ?? getEnv("TODOIST_CLIENT_SECRET"),
|
|
3602
3613
|
scopes: config.scopes || ["data:read_write"],
|
|
3614
|
+
optionalScopes: config.optionalScopes,
|
|
3603
3615
|
redirectUri: config.redirectUri,
|
|
3604
3616
|
config: {
|
|
3605
3617
|
...config
|
|
@@ -3643,6 +3655,7 @@ function whatsappIntegration(config = {}) {
|
|
|
3643
3655
|
clientId: config.clientId ?? getEnv("WHATSAPP_CLIENT_ID"),
|
|
3644
3656
|
clientSecret: config.clientSecret ?? getEnv("WHATSAPP_CLIENT_SECRET"),
|
|
3645
3657
|
scopes: config.scopes || ["business_management", "whatsapp_business_messaging", "whatsapp_business_management"],
|
|
3658
|
+
optionalScopes: config.optionalScopes,
|
|
3646
3659
|
redirectUri: config.redirectUri,
|
|
3647
3660
|
config: {
|
|
3648
3661
|
businessAccountId: config.businessAccountId,
|
|
@@ -3686,6 +3699,7 @@ function calcomIntegration(config = {}) {
|
|
|
3686
3699
|
clientId: config.clientId ?? getEnv("CALCOM_CLIENT_ID"),
|
|
3687
3700
|
clientSecret: config.clientSecret ?? getEnv("CALCOM_CLIENT_SECRET"),
|
|
3688
3701
|
scopes: config.scopes || ["READ_BOOKING", "WRITE_BOOKING", "READ_PROFILE", "WRITE_PROFILE"],
|
|
3702
|
+
optionalScopes: config.optionalScopes,
|
|
3689
3703
|
redirectUri: config.redirectUri,
|
|
3690
3704
|
config: {
|
|
3691
3705
|
apiBaseUrl: config.apiBaseUrl || "https://api.cal.com/v1",
|
|
@@ -3774,6 +3788,7 @@ function rampIntegration(config = {}) {
|
|
|
3774
3788
|
clientId: config.clientId ?? getEnv("RAMP_CLIENT_ID"),
|
|
3775
3789
|
clientSecret: config.clientSecret ?? getEnv("RAMP_CLIENT_SECRET"),
|
|
3776
3790
|
scopes: config.scopes || ["transactions:read", "cards:read", "users:read"],
|
|
3791
|
+
optionalScopes: config.optionalScopes,
|
|
3777
3792
|
redirectUri: config.redirectUri,
|
|
3778
3793
|
config: {
|
|
3779
3794
|
apiBaseUrl: config.apiBaseUrl || "https://api.ramp.com/v1",
|
|
@@ -3818,6 +3833,7 @@ function onedriveIntegration(config = {}) {
|
|
|
3818
3833
|
clientId: config.clientId ?? getEnv("ONEDRIVE_CLIENT_ID"),
|
|
3819
3834
|
clientSecret: config.clientSecret ?? getEnv("ONEDRIVE_CLIENT_SECRET"),
|
|
3820
3835
|
scopes: config.scopes || ["Files.Read", "Files.ReadWrite", "offline_access"],
|
|
3836
|
+
optionalScopes: config.optionalScopes,
|
|
3821
3837
|
redirectUri: config.redirectUri,
|
|
3822
3838
|
config: {
|
|
3823
3839
|
...config
|
|
@@ -3869,6 +3885,7 @@ function gworkspaceIntegration(config = {}) {
|
|
|
3869
3885
|
"https://www.googleapis.com/auth/presentations",
|
|
3870
3886
|
"https://www.googleapis.com/auth/drive.readonly"
|
|
3871
3887
|
],
|
|
3888
|
+
optionalScopes: config.optionalScopes,
|
|
3872
3889
|
redirectUri: config.redirectUri,
|
|
3873
3890
|
config: {
|
|
3874
3891
|
...config
|
|
@@ -3934,6 +3951,7 @@ function polarIntegration(config = {}) {
|
|
|
3934
3951
|
"metrics:read",
|
|
3935
3952
|
"organizations:read"
|
|
3936
3953
|
],
|
|
3954
|
+
optionalScopes: config.optionalScopes,
|
|
3937
3955
|
redirectUri: config.redirectUri,
|
|
3938
3956
|
config: {
|
|
3939
3957
|
apiBaseUrl: config.apiBaseUrl || "https://api.polar.sh"
|
|
@@ -4003,6 +4021,7 @@ function figmaIntegration(config = {}) {
|
|
|
4003
4021
|
clientId: config.clientId ?? getEnv("FIGMA_CLIENT_ID"),
|
|
4004
4022
|
clientSecret: config.clientSecret ?? getEnv("FIGMA_CLIENT_SECRET"),
|
|
4005
4023
|
scopes: config.scopes || ["files:read", "file_comments:write"],
|
|
4024
|
+
optionalScopes: config.optionalScopes,
|
|
4006
4025
|
redirectUri: config.redirectUri,
|
|
4007
4026
|
config: {
|
|
4008
4027
|
...config
|
|
@@ -4046,6 +4065,7 @@ function intercomIntegration(config = {}) {
|
|
|
4046
4065
|
clientId: config.clientId ?? getEnv("INTERCOM_CLIENT_ID"),
|
|
4047
4066
|
clientSecret: config.clientSecret ?? getEnv("INTERCOM_CLIENT_SECRET"),
|
|
4048
4067
|
scopes: config.scopes || [],
|
|
4068
|
+
optionalScopes: config.optionalScopes,
|
|
4049
4069
|
redirectUri: config.redirectUri,
|
|
4050
4070
|
config: {
|
|
4051
4071
|
...config
|
|
@@ -4099,6 +4119,7 @@ function hubspotIntegration(config = {}) {
|
|
|
4099
4119
|
"crm.objects.tickets.write",
|
|
4100
4120
|
"crm.objects.owners.read"
|
|
4101
4121
|
],
|
|
4122
|
+
optionalScopes: config.optionalScopes,
|
|
4102
4123
|
redirectUri: config.redirectUri,
|
|
4103
4124
|
config: {
|
|
4104
4125
|
...config
|
|
@@ -4161,6 +4182,7 @@ function youtubeIntegration(config = {}) {
|
|
|
4161
4182
|
clientId: config.clientId ?? getEnv("YOUTUBE_CLIENT_ID"),
|
|
4162
4183
|
clientSecret: config.clientSecret ?? getEnv("YOUTUBE_CLIENT_SECRET"),
|
|
4163
4184
|
scopes: config.scopes || ["https://www.googleapis.com/auth/youtube.readonly"],
|
|
4185
|
+
optionalScopes: config.optionalScopes,
|
|
4164
4186
|
redirectUri: config.redirectUri,
|
|
4165
4187
|
config: {
|
|
4166
4188
|
...config
|
|
@@ -4238,6 +4260,7 @@ function genericOAuthIntegration(config) {
|
|
|
4238
4260
|
clientId: config.clientId ?? getEnv(`${providerUpper}_CLIENT_ID`),
|
|
4239
4261
|
clientSecret: config.clientSecret ?? getEnv(`${providerUpper}_CLIENT_SECRET`),
|
|
4240
4262
|
scopes: config.scopes,
|
|
4263
|
+
optionalScopes: config.optionalScopes,
|
|
4241
4264
|
redirectUri: config.redirectUri,
|
|
4242
4265
|
config
|
|
4243
4266
|
};
|
|
@@ -10940,6 +10963,7 @@ function createMCPServer(config) {
|
|
|
10940
10963
|
tools: integration.tools,
|
|
10941
10964
|
hasOAuth: !!integration.oauth,
|
|
10942
10965
|
scopes: integration.oauth?.scopes,
|
|
10966
|
+
optionalScopes: integration.oauth?.optionalScopes,
|
|
10943
10967
|
provider: integration.oauth?.provider
|
|
10944
10968
|
}));
|
|
10945
10969
|
return Response.json({ integrations });
|
|
@@ -11903,6 +11927,7 @@ class OAuthHandler {
|
|
|
11903
11927
|
tools: integration.tools,
|
|
11904
11928
|
hasOAuth: !!integration.oauth,
|
|
11905
11929
|
scopes: integration.oauth?.scopes,
|
|
11930
|
+
optionalScopes: integration.oauth?.optionalScopes,
|
|
11906
11931
|
provider: integration.oauth?.provider
|
|
11907
11932
|
}))
|
|
11908
11933
|
};
|
|
@@ -11945,6 +11970,10 @@ class OAuthHandler {
|
|
|
11945
11970
|
if (scopes.length > 0) {
|
|
11946
11971
|
url.searchParams.set("scope", scopes.join(","));
|
|
11947
11972
|
}
|
|
11973
|
+
const optionalScopes = authorizeRequest.optionalScopes || providerConfig.optionalScopes || [];
|
|
11974
|
+
if (optionalScopes.length > 0) {
|
|
11975
|
+
url.searchParams.set("optional_scope", optionalScopes.join(","));
|
|
11976
|
+
}
|
|
11948
11977
|
url.searchParams.set("state", authorizeRequest.state);
|
|
11949
11978
|
url.searchParams.set("code_challenge", authorizeRequest.codeChallenge);
|
|
11950
11979
|
url.searchParams.set("code_challenge_method", authorizeRequest.codeChallengeMethod);
|
|
@@ -11956,10 +11985,12 @@ class OAuthHandler {
|
|
|
11956
11985
|
"clientId",
|
|
11957
11986
|
"clientSecret",
|
|
11958
11987
|
"scopes",
|
|
11988
|
+
"optionalScopes",
|
|
11959
11989
|
"redirectUri",
|
|
11960
11990
|
"client_id",
|
|
11961
11991
|
"client_secret",
|
|
11962
11992
|
"scope",
|
|
11993
|
+
"optional_scope",
|
|
11963
11994
|
"redirect_uri",
|
|
11964
11995
|
"provider"
|
|
11965
11996
|
]);
|
package/dist/oauth.js
CHANGED
|
@@ -2842,6 +2842,7 @@ function githubIntegration(config = {}) {
|
|
|
2842
2842
|
clientId: config.clientId ?? getEnv("GITHUB_CLIENT_ID"),
|
|
2843
2843
|
clientSecret: config.clientSecret ?? getEnv("GITHUB_CLIENT_SECRET"),
|
|
2844
2844
|
scopes: config.scopes || ["repo", "user"],
|
|
2845
|
+
optionalScopes: config.optionalScopes,
|
|
2845
2846
|
redirectUri: config.redirectUri,
|
|
2846
2847
|
config: {
|
|
2847
2848
|
apiBaseUrl: config.apiBaseUrl || "https://api.github.com",
|
|
@@ -2929,6 +2930,7 @@ function gmailIntegration(config = {}) {
|
|
|
2929
2930
|
"https://www.googleapis.com/auth/gmail.modify",
|
|
2930
2931
|
"https://www.googleapis.com/auth/gmail.labels"
|
|
2931
2932
|
],
|
|
2933
|
+
optionalScopes: config.optionalScopes,
|
|
2932
2934
|
redirectUri: config.redirectUri,
|
|
2933
2935
|
config
|
|
2934
2936
|
};
|
|
@@ -2965,6 +2967,7 @@ function notionIntegration(config = {}) {
|
|
|
2965
2967
|
clientId: config.clientId ?? getEnv("NOTION_CLIENT_ID"),
|
|
2966
2968
|
clientSecret: config.clientSecret ?? getEnv("NOTION_CLIENT_SECRET"),
|
|
2967
2969
|
scopes: [],
|
|
2970
|
+
optionalScopes: config.optionalScopes,
|
|
2968
2971
|
redirectUri: config.redirectUri,
|
|
2969
2972
|
config: {
|
|
2970
2973
|
owner: config.owner || "user",
|
|
@@ -3030,6 +3033,7 @@ function slackIntegration(config = {}) {
|
|
|
3030
3033
|
clientId: config.clientId ?? getEnv("SLACK_CLIENT_ID"),
|
|
3031
3034
|
clientSecret: config.clientSecret ?? getEnv("SLACK_CLIENT_SECRET"),
|
|
3032
3035
|
scopes: config.scopes || ["chat:write", "channels:read", "users:read", "search:read", "files:write"],
|
|
3036
|
+
optionalScopes: config.optionalScopes,
|
|
3033
3037
|
redirectUri: config.redirectUri,
|
|
3034
3038
|
config: {
|
|
3035
3039
|
...config
|
|
@@ -3073,6 +3077,7 @@ function linearIntegration(config = {}) {
|
|
|
3073
3077
|
clientId: config.clientId ?? getEnv("LINEAR_CLIENT_ID"),
|
|
3074
3078
|
clientSecret: config.clientSecret ?? getEnv("LINEAR_CLIENT_SECRET"),
|
|
3075
3079
|
scopes: config.scopes || ["read", "write", "issues:create", "comments:create"],
|
|
3080
|
+
optionalScopes: config.optionalScopes,
|
|
3076
3081
|
redirectUri: config.redirectUri,
|
|
3077
3082
|
config: {
|
|
3078
3083
|
...config
|
|
@@ -3140,6 +3145,7 @@ function vercelIntegration(config = {}) {
|
|
|
3140
3145
|
clientId: config.clientId ?? getEnv("VERCEL_CLIENT_ID"),
|
|
3141
3146
|
clientSecret: config.clientSecret ?? getEnv("VERCEL_CLIENT_SECRET"),
|
|
3142
3147
|
scopes: config.scopes || [],
|
|
3148
|
+
optionalScopes: config.optionalScopes,
|
|
3143
3149
|
redirectUri: config.redirectUri,
|
|
3144
3150
|
config: {
|
|
3145
3151
|
...config
|
|
@@ -3183,6 +3189,7 @@ function zendeskIntegration(config = {}) {
|
|
|
3183
3189
|
clientId: config.clientId ?? getEnv("ZENDESK_CLIENT_ID"),
|
|
3184
3190
|
clientSecret: config.clientSecret ?? getEnv("ZENDESK_CLIENT_SECRET"),
|
|
3185
3191
|
scopes: config.scopes || ["read", "write"],
|
|
3192
|
+
optionalScopes: config.optionalScopes,
|
|
3186
3193
|
redirectUri: config.redirectUri,
|
|
3187
3194
|
config: {
|
|
3188
3195
|
subdomain: config.subdomain ?? getEnv("ZENDESK_SUBDOMAIN"),
|
|
@@ -3227,6 +3234,7 @@ function stripeIntegration(config = {}) {
|
|
|
3227
3234
|
clientId: config.clientId ?? getEnv("STRIPE_CLIENT_ID"),
|
|
3228
3235
|
clientSecret: config.clientSecret ?? getEnv("STRIPE_CLIENT_SECRET"),
|
|
3229
3236
|
scopes: config.scopes || ["read_write"],
|
|
3237
|
+
optionalScopes: config.optionalScopes,
|
|
3230
3238
|
redirectUri: config.redirectUri,
|
|
3231
3239
|
config: {
|
|
3232
3240
|
...config
|
|
@@ -3270,6 +3278,7 @@ function gcalIntegration(config = {}) {
|
|
|
3270
3278
|
clientId: config.clientId ?? getEnv("GCAL_CLIENT_ID"),
|
|
3271
3279
|
clientSecret: config.clientSecret ?? getEnv("GCAL_CLIENT_SECRET"),
|
|
3272
3280
|
scopes: config.scopes || ["https://www.googleapis.com/auth/calendar"],
|
|
3281
|
+
optionalScopes: config.optionalScopes,
|
|
3273
3282
|
redirectUri: config.redirectUri,
|
|
3274
3283
|
config: {
|
|
3275
3284
|
...config
|
|
@@ -3313,6 +3322,7 @@ function outlookIntegration(config = {}) {
|
|
|
3313
3322
|
clientId: config.clientId ?? getEnv("OUTLOOK_CLIENT_ID"),
|
|
3314
3323
|
clientSecret: config.clientSecret ?? getEnv("OUTLOOK_CLIENT_SECRET"),
|
|
3315
3324
|
scopes: config.scopes || ["Mail.Read", "Mail.Send", "Calendars.ReadWrite", "Contacts.Read"],
|
|
3325
|
+
optionalScopes: config.optionalScopes,
|
|
3316
3326
|
redirectUri: config.redirectUri,
|
|
3317
3327
|
config: {
|
|
3318
3328
|
...config
|
|
@@ -3364,6 +3374,7 @@ function airtableIntegration(config = {}) {
|
|
|
3364
3374
|
"schema.bases:write",
|
|
3365
3375
|
"webhook:manage"
|
|
3366
3376
|
],
|
|
3377
|
+
optionalScopes: config.optionalScopes,
|
|
3367
3378
|
redirectUri: config.redirectUri,
|
|
3368
3379
|
config: {
|
|
3369
3380
|
...config
|
|
@@ -3422,6 +3433,7 @@ function todoistIntegration(config = {}) {
|
|
|
3422
3433
|
clientId: config.clientId ?? getEnv("TODOIST_CLIENT_ID"),
|
|
3423
3434
|
clientSecret: config.clientSecret ?? getEnv("TODOIST_CLIENT_SECRET"),
|
|
3424
3435
|
scopes: config.scopes || ["data:read_write"],
|
|
3436
|
+
optionalScopes: config.optionalScopes,
|
|
3425
3437
|
redirectUri: config.redirectUri,
|
|
3426
3438
|
config: {
|
|
3427
3439
|
...config
|
|
@@ -3465,6 +3477,7 @@ function whatsappIntegration(config = {}) {
|
|
|
3465
3477
|
clientId: config.clientId ?? getEnv("WHATSAPP_CLIENT_ID"),
|
|
3466
3478
|
clientSecret: config.clientSecret ?? getEnv("WHATSAPP_CLIENT_SECRET"),
|
|
3467
3479
|
scopes: config.scopes || ["business_management", "whatsapp_business_messaging", "whatsapp_business_management"],
|
|
3480
|
+
optionalScopes: config.optionalScopes,
|
|
3468
3481
|
redirectUri: config.redirectUri,
|
|
3469
3482
|
config: {
|
|
3470
3483
|
businessAccountId: config.businessAccountId,
|
|
@@ -3508,6 +3521,7 @@ function calcomIntegration(config = {}) {
|
|
|
3508
3521
|
clientId: config.clientId ?? getEnv("CALCOM_CLIENT_ID"),
|
|
3509
3522
|
clientSecret: config.clientSecret ?? getEnv("CALCOM_CLIENT_SECRET"),
|
|
3510
3523
|
scopes: config.scopes || ["READ_BOOKING", "WRITE_BOOKING", "READ_PROFILE", "WRITE_PROFILE"],
|
|
3524
|
+
optionalScopes: config.optionalScopes,
|
|
3511
3525
|
redirectUri: config.redirectUri,
|
|
3512
3526
|
config: {
|
|
3513
3527
|
apiBaseUrl: config.apiBaseUrl || "https://api.cal.com/v1",
|
|
@@ -3596,6 +3610,7 @@ function rampIntegration(config = {}) {
|
|
|
3596
3610
|
clientId: config.clientId ?? getEnv("RAMP_CLIENT_ID"),
|
|
3597
3611
|
clientSecret: config.clientSecret ?? getEnv("RAMP_CLIENT_SECRET"),
|
|
3598
3612
|
scopes: config.scopes || ["transactions:read", "cards:read", "users:read"],
|
|
3613
|
+
optionalScopes: config.optionalScopes,
|
|
3599
3614
|
redirectUri: config.redirectUri,
|
|
3600
3615
|
config: {
|
|
3601
3616
|
apiBaseUrl: config.apiBaseUrl || "https://api.ramp.com/v1",
|
|
@@ -3640,6 +3655,7 @@ function onedriveIntegration(config = {}) {
|
|
|
3640
3655
|
clientId: config.clientId ?? getEnv("ONEDRIVE_CLIENT_ID"),
|
|
3641
3656
|
clientSecret: config.clientSecret ?? getEnv("ONEDRIVE_CLIENT_SECRET"),
|
|
3642
3657
|
scopes: config.scopes || ["Files.Read", "Files.ReadWrite", "offline_access"],
|
|
3658
|
+
optionalScopes: config.optionalScopes,
|
|
3643
3659
|
redirectUri: config.redirectUri,
|
|
3644
3660
|
config: {
|
|
3645
3661
|
...config
|
|
@@ -3691,6 +3707,7 @@ function gworkspaceIntegration(config = {}) {
|
|
|
3691
3707
|
"https://www.googleapis.com/auth/presentations",
|
|
3692
3708
|
"https://www.googleapis.com/auth/drive.readonly"
|
|
3693
3709
|
],
|
|
3710
|
+
optionalScopes: config.optionalScopes,
|
|
3694
3711
|
redirectUri: config.redirectUri,
|
|
3695
3712
|
config: {
|
|
3696
3713
|
...config
|
|
@@ -3756,6 +3773,7 @@ function polarIntegration(config = {}) {
|
|
|
3756
3773
|
"metrics:read",
|
|
3757
3774
|
"organizations:read"
|
|
3758
3775
|
],
|
|
3776
|
+
optionalScopes: config.optionalScopes,
|
|
3759
3777
|
redirectUri: config.redirectUri,
|
|
3760
3778
|
config: {
|
|
3761
3779
|
apiBaseUrl: config.apiBaseUrl || "https://api.polar.sh"
|
|
@@ -3825,6 +3843,7 @@ function figmaIntegration(config = {}) {
|
|
|
3825
3843
|
clientId: config.clientId ?? getEnv("FIGMA_CLIENT_ID"),
|
|
3826
3844
|
clientSecret: config.clientSecret ?? getEnv("FIGMA_CLIENT_SECRET"),
|
|
3827
3845
|
scopes: config.scopes || ["files:read", "file_comments:write"],
|
|
3846
|
+
optionalScopes: config.optionalScopes,
|
|
3828
3847
|
redirectUri: config.redirectUri,
|
|
3829
3848
|
config: {
|
|
3830
3849
|
...config
|
|
@@ -3868,6 +3887,7 @@ function intercomIntegration(config = {}) {
|
|
|
3868
3887
|
clientId: config.clientId ?? getEnv("INTERCOM_CLIENT_ID"),
|
|
3869
3888
|
clientSecret: config.clientSecret ?? getEnv("INTERCOM_CLIENT_SECRET"),
|
|
3870
3889
|
scopes: config.scopes || [],
|
|
3890
|
+
optionalScopes: config.optionalScopes,
|
|
3871
3891
|
redirectUri: config.redirectUri,
|
|
3872
3892
|
config: {
|
|
3873
3893
|
...config
|
|
@@ -3921,6 +3941,7 @@ function hubspotIntegration(config = {}) {
|
|
|
3921
3941
|
"crm.objects.tickets.write",
|
|
3922
3942
|
"crm.objects.owners.read"
|
|
3923
3943
|
],
|
|
3944
|
+
optionalScopes: config.optionalScopes,
|
|
3924
3945
|
redirectUri: config.redirectUri,
|
|
3925
3946
|
config: {
|
|
3926
3947
|
...config
|
|
@@ -3983,6 +4004,7 @@ function youtubeIntegration(config = {}) {
|
|
|
3983
4004
|
clientId: config.clientId ?? getEnv("YOUTUBE_CLIENT_ID"),
|
|
3984
4005
|
clientSecret: config.clientSecret ?? getEnv("YOUTUBE_CLIENT_SECRET"),
|
|
3985
4006
|
scopes: config.scopes || ["https://www.googleapis.com/auth/youtube.readonly"],
|
|
4007
|
+
optionalScopes: config.optionalScopes,
|
|
3986
4008
|
redirectUri: config.redirectUri,
|
|
3987
4009
|
config: {
|
|
3988
4010
|
...config
|
|
@@ -4060,6 +4082,7 @@ function genericOAuthIntegration(config) {
|
|
|
4060
4082
|
clientId: config.clientId ?? getEnv(`${providerUpper}_CLIENT_ID`),
|
|
4061
4083
|
clientSecret: config.clientSecret ?? getEnv(`${providerUpper}_CLIENT_SECRET`),
|
|
4062
4084
|
scopes: config.scopes,
|
|
4085
|
+
optionalScopes: config.optionalScopes,
|
|
4063
4086
|
redirectUri: config.redirectUri,
|
|
4064
4087
|
config
|
|
4065
4088
|
};
|
|
@@ -10774,6 +10797,7 @@ function createMCPServer(config) {
|
|
|
10774
10797
|
tools: integration.tools,
|
|
10775
10798
|
hasOAuth: !!integration.oauth,
|
|
10776
10799
|
scopes: integration.oauth?.scopes,
|
|
10800
|
+
optionalScopes: integration.oauth?.optionalScopes,
|
|
10777
10801
|
provider: integration.oauth?.provider
|
|
10778
10802
|
}));
|
|
10779
10803
|
return Response.json({ integrations });
|
|
@@ -11737,6 +11761,7 @@ class OAuthHandler {
|
|
|
11737
11761
|
tools: integration.tools,
|
|
11738
11762
|
hasOAuth: !!integration.oauth,
|
|
11739
11763
|
scopes: integration.oauth?.scopes,
|
|
11764
|
+
optionalScopes: integration.oauth?.optionalScopes,
|
|
11740
11765
|
provider: integration.oauth?.provider
|
|
11741
11766
|
}))
|
|
11742
11767
|
};
|
|
@@ -11779,6 +11804,10 @@ class OAuthHandler {
|
|
|
11779
11804
|
if (scopes.length > 0) {
|
|
11780
11805
|
url.searchParams.set("scope", scopes.join(","));
|
|
11781
11806
|
}
|
|
11807
|
+
const optionalScopes = authorizeRequest.optionalScopes || providerConfig.optionalScopes || [];
|
|
11808
|
+
if (optionalScopes.length > 0) {
|
|
11809
|
+
url.searchParams.set("optional_scope", optionalScopes.join(","));
|
|
11810
|
+
}
|
|
11782
11811
|
url.searchParams.set("state", authorizeRequest.state);
|
|
11783
11812
|
url.searchParams.set("code_challenge", authorizeRequest.codeChallenge);
|
|
11784
11813
|
url.searchParams.set("code_challenge_method", authorizeRequest.codeChallengeMethod);
|
|
@@ -11790,10 +11819,12 @@ class OAuthHandler {
|
|
|
11790
11819
|
"clientId",
|
|
11791
11820
|
"clientSecret",
|
|
11792
11821
|
"scopes",
|
|
11822
|
+
"optionalScopes",
|
|
11793
11823
|
"redirectUri",
|
|
11794
11824
|
"client_id",
|
|
11795
11825
|
"client_secret",
|
|
11796
11826
|
"scope",
|
|
11827
|
+
"optional_scope",
|
|
11797
11828
|
"redirect_uri",
|
|
11798
11829
|
"provider"
|
|
11799
11830
|
]);
|