integrate-sdk 0.8.73-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.
Files changed (65) hide show
  1. package/dist/adapters/auto-routes.js +51 -2
  2. package/dist/adapters/base-handler.d.ts +5 -0
  3. package/dist/adapters/base-handler.d.ts.map +1 -1
  4. package/dist/adapters/index.js +51 -2
  5. package/dist/adapters/nextjs.js +51 -2
  6. package/dist/adapters/node.js +51 -2
  7. package/dist/adapters/svelte-kit.js +51 -2
  8. package/dist/adapters/tanstack-start.js +51 -2
  9. package/dist/index.js +51 -2
  10. package/dist/oauth.js +51 -2
  11. package/dist/server.js +51 -2
  12. package/dist/src/adapters/base-handler.d.ts +5 -0
  13. package/dist/src/adapters/base-handler.d.ts.map +1 -1
  14. package/dist/src/integrations/airtable.d.ts +2 -0
  15. package/dist/src/integrations/airtable.d.ts.map +1 -1
  16. package/dist/src/integrations/calcom.d.ts +2 -0
  17. package/dist/src/integrations/calcom.d.ts.map +1 -1
  18. package/dist/src/integrations/figma.d.ts +2 -0
  19. package/dist/src/integrations/figma.d.ts.map +1 -1
  20. package/dist/src/integrations/gcal.d.ts +2 -0
  21. package/dist/src/integrations/gcal.d.ts.map +1 -1
  22. package/dist/src/integrations/generic.d.ts +2 -0
  23. package/dist/src/integrations/generic.d.ts.map +1 -1
  24. package/dist/src/integrations/github.d.ts +2 -0
  25. package/dist/src/integrations/github.d.ts.map +1 -1
  26. package/dist/src/integrations/gmail.d.ts +2 -0
  27. package/dist/src/integrations/gmail.d.ts.map +1 -1
  28. package/dist/src/integrations/gworkspace.d.ts +2 -0
  29. package/dist/src/integrations/gworkspace.d.ts.map +1 -1
  30. package/dist/src/integrations/hubspot-client.d.ts +212 -229
  31. package/dist/src/integrations/hubspot-client.d.ts.map +1 -1
  32. package/dist/src/integrations/hubspot.d.ts +3 -1
  33. package/dist/src/integrations/hubspot.d.ts.map +1 -1
  34. package/dist/src/integrations/intercom.d.ts +2 -0
  35. package/dist/src/integrations/intercom.d.ts.map +1 -1
  36. package/dist/src/integrations/linear.d.ts +2 -0
  37. package/dist/src/integrations/linear.d.ts.map +1 -1
  38. package/dist/src/integrations/notion.d.ts +2 -0
  39. package/dist/src/integrations/notion.d.ts.map +1 -1
  40. package/dist/src/integrations/onedrive.d.ts +2 -0
  41. package/dist/src/integrations/onedrive.d.ts.map +1 -1
  42. package/dist/src/integrations/outlook.d.ts +2 -0
  43. package/dist/src/integrations/outlook.d.ts.map +1 -1
  44. package/dist/src/integrations/polar.d.ts +2 -0
  45. package/dist/src/integrations/polar.d.ts.map +1 -1
  46. package/dist/src/integrations/ramp.d.ts +2 -0
  47. package/dist/src/integrations/ramp.d.ts.map +1 -1
  48. package/dist/src/integrations/slack.d.ts +2 -0
  49. package/dist/src/integrations/slack.d.ts.map +1 -1
  50. package/dist/src/integrations/stripe.d.ts +2 -0
  51. package/dist/src/integrations/stripe.d.ts.map +1 -1
  52. package/dist/src/integrations/todoist.d.ts +2 -0
  53. package/dist/src/integrations/todoist.d.ts.map +1 -1
  54. package/dist/src/integrations/types.d.ts +2 -0
  55. package/dist/src/integrations/types.d.ts.map +1 -1
  56. package/dist/src/integrations/vercel.d.ts +2 -0
  57. package/dist/src/integrations/vercel.d.ts.map +1 -1
  58. package/dist/src/integrations/whatsapp.d.ts +2 -0
  59. package/dist/src/integrations/whatsapp.d.ts.map +1 -1
  60. package/dist/src/integrations/youtube.d.ts +2 -0
  61. package/dist/src/integrations/youtube.d.ts.map +1 -1
  62. package/dist/src/integrations/zendesk.d.ts +2 -0
  63. package/dist/src/integrations/zendesk.d.ts.map +1 -1
  64. package/dist/src/server.d.ts.map +1 -1
  65. package/package.json +1 -1
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
@@ -4095,8 +4115,11 @@ function hubspotIntegration(config = {}) {
4095
4115
  "crm.objects.companies.write",
4096
4116
  "crm.objects.deals.read",
4097
4117
  "crm.objects.deals.write",
4098
- "tickets"
4118
+ "crm.objects.tickets.read",
4119
+ "crm.objects.tickets.write",
4120
+ "crm.objects.owners.read"
4099
4121
  ],
4122
+ optionalScopes: config.optionalScopes,
4100
4123
  redirectUri: config.redirectUri,
4101
4124
  config: {
4102
4125
  ...config
@@ -4125,14 +4148,30 @@ var init_hubspot = __esm(() => {
4125
4148
  "hubspot_get_contact",
4126
4149
  "hubspot_create_contact",
4127
4150
  "hubspot_update_contact",
4151
+ "hubspot_delete_contact",
4128
4152
  "hubspot_list_companies",
4129
4153
  "hubspot_get_company",
4130
4154
  "hubspot_create_company",
4155
+ "hubspot_update_company",
4156
+ "hubspot_delete_company",
4131
4157
  "hubspot_list_deals",
4132
4158
  "hubspot_get_deal",
4133
4159
  "hubspot_create_deal",
4160
+ "hubspot_update_deal",
4161
+ "hubspot_delete_deal",
4134
4162
  "hubspot_list_tickets",
4135
- "hubspot_get_ticket"
4163
+ "hubspot_get_ticket",
4164
+ "hubspot_create_ticket",
4165
+ "hubspot_update_ticket",
4166
+ "hubspot_delete_ticket",
4167
+ "hubspot_search_crm",
4168
+ "hubspot_create_note",
4169
+ "hubspot_create_task",
4170
+ "hubspot_list_owners",
4171
+ "hubspot_get_owner",
4172
+ "hubspot_list_pipelines",
4173
+ "hubspot_list_pipeline_stages",
4174
+ "hubspot_create_association"
4136
4175
  ];
4137
4176
  });
4138
4177
 
@@ -4143,6 +4182,7 @@ function youtubeIntegration(config = {}) {
4143
4182
  clientId: config.clientId ?? getEnv("YOUTUBE_CLIENT_ID"),
4144
4183
  clientSecret: config.clientSecret ?? getEnv("YOUTUBE_CLIENT_SECRET"),
4145
4184
  scopes: config.scopes || ["https://www.googleapis.com/auth/youtube.readonly"],
4185
+ optionalScopes: config.optionalScopes,
4146
4186
  redirectUri: config.redirectUri,
4147
4187
  config: {
4148
4188
  ...config
@@ -4220,6 +4260,7 @@ function genericOAuthIntegration(config) {
4220
4260
  clientId: config.clientId ?? getEnv(`${providerUpper}_CLIENT_ID`),
4221
4261
  clientSecret: config.clientSecret ?? getEnv(`${providerUpper}_CLIENT_SECRET`),
4222
4262
  scopes: config.scopes,
4263
+ optionalScopes: config.optionalScopes,
4223
4264
  redirectUri: config.redirectUri,
4224
4265
  config
4225
4266
  };
@@ -10922,6 +10963,7 @@ function createMCPServer(config) {
10922
10963
  tools: integration.tools,
10923
10964
  hasOAuth: !!integration.oauth,
10924
10965
  scopes: integration.oauth?.scopes,
10966
+ optionalScopes: integration.oauth?.optionalScopes,
10925
10967
  provider: integration.oauth?.provider
10926
10968
  }));
10927
10969
  return Response.json({ integrations });
@@ -11885,6 +11927,7 @@ class OAuthHandler {
11885
11927
  tools: integration.tools,
11886
11928
  hasOAuth: !!integration.oauth,
11887
11929
  scopes: integration.oauth?.scopes,
11930
+ optionalScopes: integration.oauth?.optionalScopes,
11888
11931
  provider: integration.oauth?.provider
11889
11932
  }))
11890
11933
  };
@@ -11927,6 +11970,10 @@ class OAuthHandler {
11927
11970
  if (scopes.length > 0) {
11928
11971
  url.searchParams.set("scope", scopes.join(","));
11929
11972
  }
11973
+ const optionalScopes = authorizeRequest.optionalScopes || providerConfig.optionalScopes || [];
11974
+ if (optionalScopes.length > 0) {
11975
+ url.searchParams.set("optional_scope", optionalScopes.join(","));
11976
+ }
11930
11977
  url.searchParams.set("state", authorizeRequest.state);
11931
11978
  url.searchParams.set("code_challenge", authorizeRequest.codeChallenge);
11932
11979
  url.searchParams.set("code_challenge_method", authorizeRequest.codeChallengeMethod);
@@ -11938,10 +11985,12 @@ class OAuthHandler {
11938
11985
  "clientId",
11939
11986
  "clientSecret",
11940
11987
  "scopes",
11988
+ "optionalScopes",
11941
11989
  "redirectUri",
11942
11990
  "client_id",
11943
11991
  "client_secret",
11944
11992
  "scope",
11993
+ "optional_scope",
11945
11994
  "redirect_uri",
11946
11995
  "provider"
11947
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
@@ -3917,8 +3937,11 @@ function hubspotIntegration(config = {}) {
3917
3937
  "crm.objects.companies.write",
3918
3938
  "crm.objects.deals.read",
3919
3939
  "crm.objects.deals.write",
3920
- "tickets"
3940
+ "crm.objects.tickets.read",
3941
+ "crm.objects.tickets.write",
3942
+ "crm.objects.owners.read"
3921
3943
  ],
3944
+ optionalScopes: config.optionalScopes,
3922
3945
  redirectUri: config.redirectUri,
3923
3946
  config: {
3924
3947
  ...config
@@ -3947,14 +3970,30 @@ var init_hubspot = __esm(() => {
3947
3970
  "hubspot_get_contact",
3948
3971
  "hubspot_create_contact",
3949
3972
  "hubspot_update_contact",
3973
+ "hubspot_delete_contact",
3950
3974
  "hubspot_list_companies",
3951
3975
  "hubspot_get_company",
3952
3976
  "hubspot_create_company",
3977
+ "hubspot_update_company",
3978
+ "hubspot_delete_company",
3953
3979
  "hubspot_list_deals",
3954
3980
  "hubspot_get_deal",
3955
3981
  "hubspot_create_deal",
3982
+ "hubspot_update_deal",
3983
+ "hubspot_delete_deal",
3956
3984
  "hubspot_list_tickets",
3957
- "hubspot_get_ticket"
3985
+ "hubspot_get_ticket",
3986
+ "hubspot_create_ticket",
3987
+ "hubspot_update_ticket",
3988
+ "hubspot_delete_ticket",
3989
+ "hubspot_search_crm",
3990
+ "hubspot_create_note",
3991
+ "hubspot_create_task",
3992
+ "hubspot_list_owners",
3993
+ "hubspot_get_owner",
3994
+ "hubspot_list_pipelines",
3995
+ "hubspot_list_pipeline_stages",
3996
+ "hubspot_create_association"
3958
3997
  ];
3959
3998
  });
3960
3999
 
@@ -3965,6 +4004,7 @@ function youtubeIntegration(config = {}) {
3965
4004
  clientId: config.clientId ?? getEnv("YOUTUBE_CLIENT_ID"),
3966
4005
  clientSecret: config.clientSecret ?? getEnv("YOUTUBE_CLIENT_SECRET"),
3967
4006
  scopes: config.scopes || ["https://www.googleapis.com/auth/youtube.readonly"],
4007
+ optionalScopes: config.optionalScopes,
3968
4008
  redirectUri: config.redirectUri,
3969
4009
  config: {
3970
4010
  ...config
@@ -4042,6 +4082,7 @@ function genericOAuthIntegration(config) {
4042
4082
  clientId: config.clientId ?? getEnv(`${providerUpper}_CLIENT_ID`),
4043
4083
  clientSecret: config.clientSecret ?? getEnv(`${providerUpper}_CLIENT_SECRET`),
4044
4084
  scopes: config.scopes,
4085
+ optionalScopes: config.optionalScopes,
4045
4086
  redirectUri: config.redirectUri,
4046
4087
  config
4047
4088
  };
@@ -10756,6 +10797,7 @@ function createMCPServer(config) {
10756
10797
  tools: integration.tools,
10757
10798
  hasOAuth: !!integration.oauth,
10758
10799
  scopes: integration.oauth?.scopes,
10800
+ optionalScopes: integration.oauth?.optionalScopes,
10759
10801
  provider: integration.oauth?.provider
10760
10802
  }));
10761
10803
  return Response.json({ integrations });
@@ -11719,6 +11761,7 @@ class OAuthHandler {
11719
11761
  tools: integration.tools,
11720
11762
  hasOAuth: !!integration.oauth,
11721
11763
  scopes: integration.oauth?.scopes,
11764
+ optionalScopes: integration.oauth?.optionalScopes,
11722
11765
  provider: integration.oauth?.provider
11723
11766
  }))
11724
11767
  };
@@ -11761,6 +11804,10 @@ class OAuthHandler {
11761
11804
  if (scopes.length > 0) {
11762
11805
  url.searchParams.set("scope", scopes.join(","));
11763
11806
  }
11807
+ const optionalScopes = authorizeRequest.optionalScopes || providerConfig.optionalScopes || [];
11808
+ if (optionalScopes.length > 0) {
11809
+ url.searchParams.set("optional_scope", optionalScopes.join(","));
11810
+ }
11764
11811
  url.searchParams.set("state", authorizeRequest.state);
11765
11812
  url.searchParams.set("code_challenge", authorizeRequest.codeChallenge);
11766
11813
  url.searchParams.set("code_challenge_method", authorizeRequest.codeChallengeMethod);
@@ -11772,10 +11819,12 @@ class OAuthHandler {
11772
11819
  "clientId",
11773
11820
  "clientSecret",
11774
11821
  "scopes",
11822
+ "optionalScopes",
11775
11823
  "redirectUri",
11776
11824
  "client_id",
11777
11825
  "client_secret",
11778
11826
  "scope",
11827
+ "optional_scope",
11779
11828
  "redirect_uri",
11780
11829
  "provider"
11781
11830
  ]);