integrate-sdk 0.9.28-dev.1 → 0.9.29-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.
@@ -358,10 +358,18 @@ var init_library_metadata = __esm(() => {
358
358
  description: "Manage Polar products, orders, and subscriptions",
359
359
  category: "Business"
360
360
  },
361
+ posthog: {
362
+ description: "Read PostHog organizations, projects, insights, and feature flags",
363
+ category: "Analytics"
364
+ },
361
365
  ramp: {
362
366
  description: "Manage Ramp corporate cards, bills, and spend",
363
367
  category: "Business"
364
368
  },
369
+ railway: {
370
+ description: "Manage Railway workspaces, projects, services, deployments, variables, domains, and volumes",
371
+ category: "Infrastructure"
372
+ },
365
373
  slack: {
366
374
  description: "Send and manage Slack messages and channels",
367
375
  category: "Communication"
@@ -605,6 +613,22 @@ var init_email_fetcher = __esm(() => {
605
613
  });
606
614
 
607
615
  // base-handler.ts
616
+ function getForwardableProviderConfig(config) {
617
+ if (!config) {
618
+ return {};
619
+ }
620
+ return Object.fromEntries(Object.entries(config).filter(([key, value]) => value !== undefined && value !== null && !OAUTH_CONFIG_FIELDS.has(key)).map(([key, value]) => [key, String(value)]));
621
+ }
622
+ function getStoredProviderConfig(config) {
623
+ const baseUrl = config?.baseUrl || config?.apiBaseUrl;
624
+ if (!baseUrl) {
625
+ return;
626
+ }
627
+ return {
628
+ baseUrl: String(baseUrl)
629
+ };
630
+ }
631
+
608
632
  class OAuthHandler {
609
633
  config;
610
634
  serverUrl;
@@ -675,25 +699,9 @@ class OAuthHandler {
675
699
  if (redirectUri) {
676
700
  url.searchParams.set("redirect_uri", redirectUri);
677
701
  }
678
- const OAUTH_FIELDS = new Set([
679
- "clientId",
680
- "clientSecret",
681
- "scopes",
682
- "optionalScopes",
683
- "redirectUri",
684
- "client_id",
685
- "client_secret",
686
- "scope",
687
- "optional_scope",
688
- "redirect_uri",
689
- "provider"
690
- ]);
691
- if (providerConfig.config) {
692
- for (const [key, value] of Object.entries(providerConfig.config)) {
693
- if (value !== undefined && value !== null && !OAUTH_FIELDS.has(key)) {
694
- url.searchParams.set(key, String(value));
695
- }
696
- }
702
+ const extraConfig = getForwardableProviderConfig(providerConfig.config);
703
+ for (const [key, value] of Object.entries(extraConfig)) {
704
+ url.searchParams.set(key, value);
697
705
  }
698
706
  const response = await fetch(url.toString(), {
699
707
  method: "GET",
@@ -780,7 +788,8 @@ class OAuthHandler {
780
788
  state: callbackRequest.state,
781
789
  client_id: providerConfig.clientId,
782
790
  client_secret: providerConfig.clientSecret,
783
- redirect_uri: providerConfig.redirectUri
791
+ redirect_uri: providerConfig.redirectUri,
792
+ ...getForwardableProviderConfig(providerConfig.config)
784
793
  })
785
794
  });
786
795
  if (!response.ok) {
@@ -798,7 +807,8 @@ class OAuthHandler {
798
807
  tokenType: result.tokenType,
799
808
  expiresIn: result.expiresIn,
800
809
  expiresAt: result.expiresAt,
801
- scopes: result.scopes ? result.scopes.flatMap((s) => s.split(" ").filter(Boolean)) : result.scopes
810
+ scopes: result.scopes ? result.scopes.flatMap((s) => s.split(" ").filter(Boolean)) : result.scopes,
811
+ providerConfig: getStoredProviderConfig(providerConfig.config)
802
812
  };
803
813
  const email = result.email || await fetchUserEmail(callbackRequest.provider, tokenData);
804
814
  if (email) {
@@ -915,6 +925,12 @@ class OAuthHandler {
915
925
  if (providerConfig.config?.subdomain) {
916
926
  body.subdomain = providerConfig.config.subdomain;
917
927
  }
928
+ const extraConfig = getForwardableProviderConfig(providerConfig.config);
929
+ for (const [key, value] of Object.entries(extraConfig)) {
930
+ if (body[key] === undefined) {
931
+ body[key] = value;
932
+ }
933
+ }
918
934
  const url = new URL("/oauth/refresh", this.serverUrl);
919
935
  const response = await fetch(url.toString(), {
920
936
  method: "POST",
@@ -941,7 +957,8 @@ class OAuthHandler {
941
957
  tokenType: result.tokenType,
942
958
  expiresIn: result.expiresIn,
943
959
  expiresAt: result.expiresAt,
944
- scopes: result.scopes ? result.scopes.flatMap((s) => s.split(" ").filter(Boolean)) : result.scopes
960
+ scopes: result.scopes ? result.scopes.flatMap((s) => s.split(" ").filter(Boolean)) : result.scopes,
961
+ providerConfig: getStoredProviderConfig(providerConfig.config)
945
962
  };
946
963
  const email = result.email || await fetchUserEmail(refreshRequest.provider, tokenData);
947
964
  if (email) {
@@ -1008,12 +1025,25 @@ class OAuthHandler {
1008
1025
  return jsonRpcResponse.result;
1009
1026
  }
1010
1027
  }
1011
- var SERVER_LOG_CONTEXT = "server", logger2, MCP_SERVER_URL = "https://mcp.integrate.dev/api/v1/mcp";
1028
+ var SERVER_LOG_CONTEXT = "server", logger2, OAUTH_CONFIG_FIELDS, MCP_SERVER_URL = "https://mcp.integrate.dev/api/v1/mcp";
1012
1029
  var init_base_handler = __esm(() => {
1013
1030
  init_integration_summary();
1014
1031
  init_email_fetcher();
1015
1032
  init_logger();
1016
1033
  logger2 = createLogger("OAuthHandler", SERVER_LOG_CONTEXT);
1034
+ OAUTH_CONFIG_FIELDS = new Set([
1035
+ "clientId",
1036
+ "clientSecret",
1037
+ "scopes",
1038
+ "optionalScopes",
1039
+ "redirectUri",
1040
+ "client_id",
1041
+ "client_secret",
1042
+ "scope",
1043
+ "optional_scope",
1044
+ "redirect_uri",
1045
+ "provider"
1046
+ ]);
1017
1047
  });
1018
1048
 
1019
1049
  // ../oauth/pkce.ts
@@ -358,10 +358,18 @@ var init_library_metadata = __esm(() => {
358
358
  description: "Manage Polar products, orders, and subscriptions",
359
359
  category: "Business"
360
360
  },
361
+ posthog: {
362
+ description: "Read PostHog organizations, projects, insights, and feature flags",
363
+ category: "Analytics"
364
+ },
361
365
  ramp: {
362
366
  description: "Manage Ramp corporate cards, bills, and spend",
363
367
  category: "Business"
364
368
  },
369
+ railway: {
370
+ description: "Manage Railway workspaces, projects, services, deployments, variables, domains, and volumes",
371
+ category: "Infrastructure"
372
+ },
365
373
  slack: {
366
374
  description: "Send and manage Slack messages and channels",
367
375
  category: "Communication"
@@ -605,6 +613,22 @@ var init_email_fetcher = __esm(() => {
605
613
  });
606
614
 
607
615
  // base-handler.ts
616
+ function getForwardableProviderConfig(config) {
617
+ if (!config) {
618
+ return {};
619
+ }
620
+ return Object.fromEntries(Object.entries(config).filter(([key, value]) => value !== undefined && value !== null && !OAUTH_CONFIG_FIELDS.has(key)).map(([key, value]) => [key, String(value)]));
621
+ }
622
+ function getStoredProviderConfig(config) {
623
+ const baseUrl = config?.baseUrl || config?.apiBaseUrl;
624
+ if (!baseUrl) {
625
+ return;
626
+ }
627
+ return {
628
+ baseUrl: String(baseUrl)
629
+ };
630
+ }
631
+
608
632
  class OAuthHandler {
609
633
  config;
610
634
  serverUrl;
@@ -675,25 +699,9 @@ class OAuthHandler {
675
699
  if (redirectUri) {
676
700
  url.searchParams.set("redirect_uri", redirectUri);
677
701
  }
678
- const OAUTH_FIELDS = new Set([
679
- "clientId",
680
- "clientSecret",
681
- "scopes",
682
- "optionalScopes",
683
- "redirectUri",
684
- "client_id",
685
- "client_secret",
686
- "scope",
687
- "optional_scope",
688
- "redirect_uri",
689
- "provider"
690
- ]);
691
- if (providerConfig.config) {
692
- for (const [key, value] of Object.entries(providerConfig.config)) {
693
- if (value !== undefined && value !== null && !OAUTH_FIELDS.has(key)) {
694
- url.searchParams.set(key, String(value));
695
- }
696
- }
702
+ const extraConfig = getForwardableProviderConfig(providerConfig.config);
703
+ for (const [key, value] of Object.entries(extraConfig)) {
704
+ url.searchParams.set(key, value);
697
705
  }
698
706
  const response = await fetch(url.toString(), {
699
707
  method: "GET",
@@ -780,7 +788,8 @@ class OAuthHandler {
780
788
  state: callbackRequest.state,
781
789
  client_id: providerConfig.clientId,
782
790
  client_secret: providerConfig.clientSecret,
783
- redirect_uri: providerConfig.redirectUri
791
+ redirect_uri: providerConfig.redirectUri,
792
+ ...getForwardableProviderConfig(providerConfig.config)
784
793
  })
785
794
  });
786
795
  if (!response.ok) {
@@ -798,7 +807,8 @@ class OAuthHandler {
798
807
  tokenType: result.tokenType,
799
808
  expiresIn: result.expiresIn,
800
809
  expiresAt: result.expiresAt,
801
- scopes: result.scopes ? result.scopes.flatMap((s) => s.split(" ").filter(Boolean)) : result.scopes
810
+ scopes: result.scopes ? result.scopes.flatMap((s) => s.split(" ").filter(Boolean)) : result.scopes,
811
+ providerConfig: getStoredProviderConfig(providerConfig.config)
802
812
  };
803
813
  const email = result.email || await fetchUserEmail(callbackRequest.provider, tokenData);
804
814
  if (email) {
@@ -915,6 +925,12 @@ class OAuthHandler {
915
925
  if (providerConfig.config?.subdomain) {
916
926
  body.subdomain = providerConfig.config.subdomain;
917
927
  }
928
+ const extraConfig = getForwardableProviderConfig(providerConfig.config);
929
+ for (const [key, value] of Object.entries(extraConfig)) {
930
+ if (body[key] === undefined) {
931
+ body[key] = value;
932
+ }
933
+ }
918
934
  const url = new URL("/oauth/refresh", this.serverUrl);
919
935
  const response = await fetch(url.toString(), {
920
936
  method: "POST",
@@ -941,7 +957,8 @@ class OAuthHandler {
941
957
  tokenType: result.tokenType,
942
958
  expiresIn: result.expiresIn,
943
959
  expiresAt: result.expiresAt,
944
- scopes: result.scopes ? result.scopes.flatMap((s) => s.split(" ").filter(Boolean)) : result.scopes
960
+ scopes: result.scopes ? result.scopes.flatMap((s) => s.split(" ").filter(Boolean)) : result.scopes,
961
+ providerConfig: getStoredProviderConfig(providerConfig.config)
945
962
  };
946
963
  const email = result.email || await fetchUserEmail(refreshRequest.provider, tokenData);
947
964
  if (email) {
@@ -1008,12 +1025,25 @@ class OAuthHandler {
1008
1025
  return jsonRpcResponse.result;
1009
1026
  }
1010
1027
  }
1011
- var SERVER_LOG_CONTEXT = "server", logger2, MCP_SERVER_URL = "https://mcp.integrate.dev/api/v1/mcp";
1028
+ var SERVER_LOG_CONTEXT = "server", logger2, OAUTH_CONFIG_FIELDS, MCP_SERVER_URL = "https://mcp.integrate.dev/api/v1/mcp";
1012
1029
  var init_base_handler = __esm(() => {
1013
1030
  init_integration_summary();
1014
1031
  init_email_fetcher();
1015
1032
  init_logger();
1016
1033
  logger2 = createLogger("OAuthHandler", SERVER_LOG_CONTEXT);
1034
+ OAUTH_CONFIG_FIELDS = new Set([
1035
+ "clientId",
1036
+ "clientSecret",
1037
+ "scopes",
1038
+ "optionalScopes",
1039
+ "redirectUri",
1040
+ "client_id",
1041
+ "client_secret",
1042
+ "scope",
1043
+ "optional_scope",
1044
+ "redirect_uri",
1045
+ "provider"
1046
+ ]);
1017
1047
  });
1018
1048
 
1019
1049
  // ../oauth/pkce.ts
@@ -3109,6 +3139,9 @@ class MCPClientBase {
3109
3139
  if (integrationIds.includes("linear")) {
3110
3140
  this.linear = this.createIntegrationProxy("linear");
3111
3141
  }
3142
+ if (integrationIds.includes("railway")) {
3143
+ this.railway = this.createIntegrationProxy("railway");
3144
+ }
3112
3145
  if (integrationIds.includes("vercel")) {
3113
3146
  this.vercel = this.createIntegrationProxy("vercel");
3114
3147
  }
@@ -3139,6 +3172,9 @@ class MCPClientBase {
3139
3172
  if (integrationIds.includes("gslides")) {
3140
3173
  this.gslides = this.createIntegrationProxy("gslides");
3141
3174
  }
3175
+ if (integrationIds.includes("posthog")) {
3176
+ this.posthog = this.createIntegrationProxy("posthog");
3177
+ }
3142
3178
  this.server = this.createServerProxy();
3143
3179
  this.trigger = new TriggerClient({
3144
3180
  apiRouteBase: this.apiRouteBase,
@@ -3912,81 +3948,87 @@ var logger11 = createLogger("Slack");
3912
3948
  // ../integrations/linear.ts
3913
3949
  init_logger();
3914
3950
  var logger12 = createLogger("Linear");
3951
+ // ../integrations/railway.ts
3952
+ init_logger();
3953
+ var logger13 = createLogger("Railway");
3915
3954
  // ../integrations/vercel.ts
3916
3955
  init_logger();
3917
- var logger13 = createLogger("Vercel");
3956
+ var logger14 = createLogger("Vercel");
3918
3957
  // ../integrations/zendesk.ts
3919
3958
  init_logger();
3920
- var logger14 = createLogger("Zendesk");
3959
+ var logger15 = createLogger("Zendesk");
3921
3960
  // ../integrations/stripe.ts
3922
3961
  init_logger();
3923
- var logger15 = createLogger("Stripe");
3962
+ var logger16 = createLogger("Stripe");
3924
3963
  // ../integrations/gcal.ts
3925
3964
  init_logger();
3926
- var logger16 = createLogger("Google Calendar");
3965
+ var logger17 = createLogger("Google Calendar");
3927
3966
  // ../integrations/outlook.ts
3928
3967
  init_logger();
3929
- var logger17 = createLogger("Outlook");
3968
+ var logger18 = createLogger("Outlook");
3930
3969
  // ../integrations/airtable.ts
3931
3970
  init_logger();
3932
- var logger18 = createLogger("Airtable");
3971
+ var logger19 = createLogger("Airtable");
3933
3972
  // ../integrations/todoist.ts
3934
3973
  init_logger();
3935
- var logger19 = createLogger("Todoist");
3974
+ var logger20 = createLogger("Todoist");
3936
3975
  // ../integrations/whatsapp.ts
3937
3976
  init_logger();
3938
- var logger20 = createLogger("WhatsApp");
3977
+ var logger21 = createLogger("WhatsApp");
3939
3978
  // ../integrations/calcom.ts
3940
3979
  init_logger();
3941
- var logger21 = createLogger("Cal.com");
3980
+ var logger22 = createLogger("Cal.com");
3942
3981
  // ../integrations/ramp.ts
3943
3982
  init_logger();
3944
- var logger22 = createLogger("Ramp");
3983
+ var logger23 = createLogger("Ramp");
3945
3984
  // ../integrations/onedrive.ts
3946
3985
  init_logger();
3947
- var logger23 = createLogger("OneDrive");
3986
+ var logger24 = createLogger("OneDrive");
3948
3987
  // ../integrations/dropbox.ts
3949
3988
  init_logger();
3950
- var logger24 = createLogger("Dropbox");
3989
+ var logger25 = createLogger("Dropbox");
3951
3990
  // ../integrations/word.ts
3952
3991
  init_logger();
3953
- var logger25 = createLogger("Word");
3992
+ var logger26 = createLogger("Word");
3954
3993
  // ../integrations/excel.ts
3955
3994
  init_logger();
3956
- var logger26 = createLogger("Excel");
3995
+ var logger27 = createLogger("Excel");
3957
3996
  // ../integrations/powerpoint.ts
3958
3997
  init_logger();
3959
- var logger27 = createLogger("PowerPoint");
3998
+ var logger28 = createLogger("PowerPoint");
3960
3999
  // ../integrations/gdocs.ts
3961
4000
  init_logger();
3962
- var logger28 = createLogger("Google Docs");
4001
+ var logger29 = createLogger("Google Docs");
3963
4002
  // ../integrations/gdrive.ts
3964
4003
  init_logger();
3965
- var logger29 = createLogger("Google Drive");
4004
+ var logger30 = createLogger("Google Drive");
3966
4005
  // ../integrations/gsheets.ts
3967
4006
  init_logger();
3968
- var logger30 = createLogger("Google Sheets");
4007
+ var logger31 = createLogger("Google Sheets");
3969
4008
  // ../integrations/gslides.ts
3970
4009
  init_logger();
3971
- var logger31 = createLogger("Google Slides");
4010
+ var logger32 = createLogger("Google Slides");
3972
4011
  // ../integrations/polar.ts
3973
4012
  init_logger();
3974
- var logger32 = createLogger("Polar");
4013
+ var logger33 = createLogger("Polar");
3975
4014
  // ../integrations/figma.ts
3976
4015
  init_logger();
3977
- var logger33 = createLogger("Figma");
4016
+ var logger34 = createLogger("Figma");
3978
4017
  // ../integrations/intercom.ts
3979
4018
  init_logger();
3980
- var logger34 = createLogger("Intercom");
4019
+ var logger35 = createLogger("Intercom");
3981
4020
  // ../integrations/hubspot.ts
3982
4021
  init_logger();
3983
- var logger35 = createLogger("HubSpot");
4022
+ var logger36 = createLogger("HubSpot");
3984
4023
  // ../integrations/youtube.ts
3985
4024
  init_logger();
3986
- var logger36 = createLogger("YouTube");
4025
+ var logger37 = createLogger("YouTube");
3987
4026
  // ../integrations/cursor.ts
3988
4027
  init_logger();
3989
- var logger37 = createLogger("Cursor");
4028
+ var logger38 = createLogger("Cursor");
4029
+ // ../integrations/posthog.ts
4030
+ init_logger();
4031
+ var logger39 = createLogger("PostHog");
3990
4032
  // ../ai/trigger-tools.ts
3991
4033
  init_utils();
3992
4034
 
@@ -4005,7 +4047,7 @@ init_tool_builder();
4005
4047
  init_tool_builder();
4006
4048
  // ../server.ts
4007
4049
  var SERVER_LOG_CONTEXT3 = "server";
4008
- var logger38 = createLogger("MCPServer", SERVER_LOG_CONTEXT3);
4050
+ var logger40 = createLogger("MCPServer", SERVER_LOG_CONTEXT3);
4009
4051
  var codeVerifierStorage = new Map;
4010
4052
  var unauthenticatedCodeModeWarnings = new Set;
4011
4053
  function toSolidStartHandler(clientOrHandlerOrOptions, _redirectOptions) {