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
@@ -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
@@ -3704,8 +3724,11 @@ function hubspotIntegration(config = {}) {
3704
3724
  "crm.objects.companies.write",
3705
3725
  "crm.objects.deals.read",
3706
3726
  "crm.objects.deals.write",
3707
- "tickets"
3727
+ "crm.objects.tickets.read",
3728
+ "crm.objects.tickets.write",
3729
+ "crm.objects.owners.read"
3708
3730
  ],
3731
+ optionalScopes: config.optionalScopes,
3709
3732
  redirectUri: config.redirectUri,
3710
3733
  config: {
3711
3734
  ...config
@@ -3734,14 +3757,30 @@ var init_hubspot = __esm(() => {
3734
3757
  "hubspot_get_contact",
3735
3758
  "hubspot_create_contact",
3736
3759
  "hubspot_update_contact",
3760
+ "hubspot_delete_contact",
3737
3761
  "hubspot_list_companies",
3738
3762
  "hubspot_get_company",
3739
3763
  "hubspot_create_company",
3764
+ "hubspot_update_company",
3765
+ "hubspot_delete_company",
3740
3766
  "hubspot_list_deals",
3741
3767
  "hubspot_get_deal",
3742
3768
  "hubspot_create_deal",
3769
+ "hubspot_update_deal",
3770
+ "hubspot_delete_deal",
3743
3771
  "hubspot_list_tickets",
3744
- "hubspot_get_ticket"
3772
+ "hubspot_get_ticket",
3773
+ "hubspot_create_ticket",
3774
+ "hubspot_update_ticket",
3775
+ "hubspot_delete_ticket",
3776
+ "hubspot_search_crm",
3777
+ "hubspot_create_note",
3778
+ "hubspot_create_task",
3779
+ "hubspot_list_owners",
3780
+ "hubspot_get_owner",
3781
+ "hubspot_list_pipelines",
3782
+ "hubspot_list_pipeline_stages",
3783
+ "hubspot_create_association"
3745
3784
  ];
3746
3785
  });
3747
3786
 
@@ -3752,6 +3791,7 @@ function youtubeIntegration(config = {}) {
3752
3791
  clientId: config.clientId ?? getEnv("YOUTUBE_CLIENT_ID"),
3753
3792
  clientSecret: config.clientSecret ?? getEnv("YOUTUBE_CLIENT_SECRET"),
3754
3793
  scopes: config.scopes || ["https://www.googleapis.com/auth/youtube.readonly"],
3794
+ optionalScopes: config.optionalScopes,
3755
3795
  redirectUri: config.redirectUri,
3756
3796
  config: {
3757
3797
  ...config
@@ -3829,6 +3869,7 @@ function genericOAuthIntegration(config) {
3829
3869
  clientId: config.clientId ?? getEnv(`${providerUpper}_CLIENT_ID`),
3830
3870
  clientSecret: config.clientSecret ?? getEnv(`${providerUpper}_CLIENT_SECRET`),
3831
3871
  scopes: config.scopes,
3872
+ optionalScopes: config.optionalScopes,
3832
3873
  redirectUri: config.redirectUri,
3833
3874
  config
3834
3875
  };
@@ -10543,6 +10584,7 @@ function createMCPServer(config) {
10543
10584
  tools: integration.tools,
10544
10585
  hasOAuth: !!integration.oauth,
10545
10586
  scopes: integration.oauth?.scopes,
10587
+ optionalScopes: integration.oauth?.optionalScopes,
10546
10588
  provider: integration.oauth?.provider
10547
10589
  }));
10548
10590
  return Response.json({ integrations });
@@ -11506,6 +11548,7 @@ class OAuthHandler {
11506
11548
  tools: integration.tools,
11507
11549
  hasOAuth: !!integration.oauth,
11508
11550
  scopes: integration.oauth?.scopes,
11551
+ optionalScopes: integration.oauth?.optionalScopes,
11509
11552
  provider: integration.oauth?.provider
11510
11553
  }))
11511
11554
  };
@@ -11548,6 +11591,10 @@ class OAuthHandler {
11548
11591
  if (scopes.length > 0) {
11549
11592
  url.searchParams.set("scope", scopes.join(","));
11550
11593
  }
11594
+ const optionalScopes = authorizeRequest.optionalScopes || providerConfig.optionalScopes || [];
11595
+ if (optionalScopes.length > 0) {
11596
+ url.searchParams.set("optional_scope", optionalScopes.join(","));
11597
+ }
11551
11598
  url.searchParams.set("state", authorizeRequest.state);
11552
11599
  url.searchParams.set("code_challenge", authorizeRequest.codeChallenge);
11553
11600
  url.searchParams.set("code_challenge_method", authorizeRequest.codeChallengeMethod);
@@ -11559,10 +11606,12 @@ class OAuthHandler {
11559
11606
  "clientId",
11560
11607
  "clientSecret",
11561
11608
  "scopes",
11609
+ "optionalScopes",
11562
11610
  "redirectUri",
11563
11611
  "client_id",
11564
11612
  "client_secret",
11565
11613
  "scope",
11614
+ "optional_scope",
11566
11615
  "redirect_uri",
11567
11616
  "provider"
11568
11617
  ]);
@@ -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
@@ -3704,8 +3724,11 @@ function hubspotIntegration(config = {}) {
3704
3724
  "crm.objects.companies.write",
3705
3725
  "crm.objects.deals.read",
3706
3726
  "crm.objects.deals.write",
3707
- "tickets"
3727
+ "crm.objects.tickets.read",
3728
+ "crm.objects.tickets.write",
3729
+ "crm.objects.owners.read"
3708
3730
  ],
3731
+ optionalScopes: config.optionalScopes,
3709
3732
  redirectUri: config.redirectUri,
3710
3733
  config: {
3711
3734
  ...config
@@ -3734,14 +3757,30 @@ var init_hubspot = __esm(() => {
3734
3757
  "hubspot_get_contact",
3735
3758
  "hubspot_create_contact",
3736
3759
  "hubspot_update_contact",
3760
+ "hubspot_delete_contact",
3737
3761
  "hubspot_list_companies",
3738
3762
  "hubspot_get_company",
3739
3763
  "hubspot_create_company",
3764
+ "hubspot_update_company",
3765
+ "hubspot_delete_company",
3740
3766
  "hubspot_list_deals",
3741
3767
  "hubspot_get_deal",
3742
3768
  "hubspot_create_deal",
3769
+ "hubspot_update_deal",
3770
+ "hubspot_delete_deal",
3743
3771
  "hubspot_list_tickets",
3744
- "hubspot_get_ticket"
3772
+ "hubspot_get_ticket",
3773
+ "hubspot_create_ticket",
3774
+ "hubspot_update_ticket",
3775
+ "hubspot_delete_ticket",
3776
+ "hubspot_search_crm",
3777
+ "hubspot_create_note",
3778
+ "hubspot_create_task",
3779
+ "hubspot_list_owners",
3780
+ "hubspot_get_owner",
3781
+ "hubspot_list_pipelines",
3782
+ "hubspot_list_pipeline_stages",
3783
+ "hubspot_create_association"
3745
3784
  ];
3746
3785
  });
3747
3786
 
@@ -3752,6 +3791,7 @@ function youtubeIntegration(config = {}) {
3752
3791
  clientId: config.clientId ?? getEnv("YOUTUBE_CLIENT_ID"),
3753
3792
  clientSecret: config.clientSecret ?? getEnv("YOUTUBE_CLIENT_SECRET"),
3754
3793
  scopes: config.scopes || ["https://www.googleapis.com/auth/youtube.readonly"],
3794
+ optionalScopes: config.optionalScopes,
3755
3795
  redirectUri: config.redirectUri,
3756
3796
  config: {
3757
3797
  ...config
@@ -3829,6 +3869,7 @@ function genericOAuthIntegration(config) {
3829
3869
  clientId: config.clientId ?? getEnv(`${providerUpper}_CLIENT_ID`),
3830
3870
  clientSecret: config.clientSecret ?? getEnv(`${providerUpper}_CLIENT_SECRET`),
3831
3871
  scopes: config.scopes,
3872
+ optionalScopes: config.optionalScopes,
3832
3873
  redirectUri: config.redirectUri,
3833
3874
  config
3834
3875
  };
@@ -10543,6 +10584,7 @@ function createMCPServer(config) {
10543
10584
  tools: integration.tools,
10544
10585
  hasOAuth: !!integration.oauth,
10545
10586
  scopes: integration.oauth?.scopes,
10587
+ optionalScopes: integration.oauth?.optionalScopes,
10546
10588
  provider: integration.oauth?.provider
10547
10589
  }));
10548
10590
  return Response.json({ integrations });
@@ -11506,6 +11548,7 @@ class OAuthHandler {
11506
11548
  tools: integration.tools,
11507
11549
  hasOAuth: !!integration.oauth,
11508
11550
  scopes: integration.oauth?.scopes,
11551
+ optionalScopes: integration.oauth?.optionalScopes,
11509
11552
  provider: integration.oauth?.provider
11510
11553
  }))
11511
11554
  };
@@ -11548,6 +11591,10 @@ class OAuthHandler {
11548
11591
  if (scopes.length > 0) {
11549
11592
  url.searchParams.set("scope", scopes.join(","));
11550
11593
  }
11594
+ const optionalScopes = authorizeRequest.optionalScopes || providerConfig.optionalScopes || [];
11595
+ if (optionalScopes.length > 0) {
11596
+ url.searchParams.set("optional_scope", optionalScopes.join(","));
11597
+ }
11551
11598
  url.searchParams.set("state", authorizeRequest.state);
11552
11599
  url.searchParams.set("code_challenge", authorizeRequest.codeChallenge);
11553
11600
  url.searchParams.set("code_challenge_method", authorizeRequest.codeChallengeMethod);
@@ -11559,10 +11606,12 @@ class OAuthHandler {
11559
11606
  "clientId",
11560
11607
  "clientSecret",
11561
11608
  "scopes",
11609
+ "optionalScopes",
11562
11610
  "redirectUri",
11563
11611
  "client_id",
11564
11612
  "client_secret",
11565
11613
  "scope",
11614
+ "optional_scope",
11566
11615
  "redirect_uri",
11567
11616
  "provider"
11568
11617
  ]);