integrate-sdk 0.9.28-dev.0 → 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.
- package/dist/adapters/auto-routes.js +54 -23
- package/dist/adapters/base-handler.d.ts +1 -0
- package/dist/adapters/base-handler.d.ts.map +1 -1
- package/dist/adapters/base-handler.js +54 -23
- package/dist/adapters/index.js +141 -56
- package/dist/adapters/nextjs.d.ts.map +1 -1
- package/dist/adapters/nextjs.js +55 -24
- package/dist/adapters/solid-start.js +141 -56
- package/dist/adapters/svelte-kit.js +141 -56
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +398 -108
- package/dist/oauth.js +53 -23
- package/dist/server.js +420 -130
- package/dist/src/adapters/base-handler.d.ts +1 -0
- package/dist/src/adapters/base-handler.d.ts.map +1 -1
- package/dist/src/adapters/nextjs.d.ts.map +1 -1
- package/dist/src/client.d.ts +7 -2
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/integrations/library-metadata.d.ts +1 -1
- package/dist/src/integrations/library-metadata.d.ts.map +1 -1
- package/dist/src/integrations/posthog-client.d.ts +222 -0
- package/dist/src/integrations/posthog-client.d.ts.map +1 -0
- package/dist/src/integrations/posthog.d.ts +30 -0
- package/dist/src/integrations/posthog.d.ts.map +1 -0
- package/dist/src/integrations/railway-client.d.ts +302 -0
- package/dist/src/integrations/railway-client.d.ts.map +1 -0
- package/dist/src/integrations/railway.d.ts +24 -0
- package/dist/src/integrations/railway.d.ts.map +1 -0
- package/dist/src/oauth/manager.d.ts.map +1 -1
- package/dist/src/oauth/types.d.ts +8 -0
- package/dist/src/oauth/types.d.ts.map +1 -1
- package/dist/src/server.d.ts +2 -0
- package/dist/src/server.d.ts.map +1 -1
- package/index.ts +2 -1
- package/package.json +1 -1
|
@@ -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
|
|
679
|
-
|
|
680
|
-
|
|
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) {
|
|
@@ -792,12 +801,14 @@ class OAuthHandler {
|
|
|
792
801
|
if (this.config.setProviderToken) {
|
|
793
802
|
try {
|
|
794
803
|
const tokenData = {
|
|
804
|
+
sessionToken: result.sessionToken,
|
|
795
805
|
accessToken: result.accessToken,
|
|
796
806
|
refreshToken: result.refreshToken,
|
|
797
807
|
tokenType: result.tokenType,
|
|
798
808
|
expiresIn: result.expiresIn,
|
|
799
809
|
expiresAt: result.expiresAt,
|
|
800
|
-
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)
|
|
801
812
|
};
|
|
802
813
|
const email = result.email || await fetchUserEmail(callbackRequest.provider, tokenData);
|
|
803
814
|
if (email) {
|
|
@@ -914,6 +925,12 @@ class OAuthHandler {
|
|
|
914
925
|
if (providerConfig.config?.subdomain) {
|
|
915
926
|
body.subdomain = providerConfig.config.subdomain;
|
|
916
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
|
+
}
|
|
917
934
|
const url = new URL("/oauth/refresh", this.serverUrl);
|
|
918
935
|
const response = await fetch(url.toString(), {
|
|
919
936
|
method: "POST",
|
|
@@ -940,7 +957,8 @@ class OAuthHandler {
|
|
|
940
957
|
tokenType: result.tokenType,
|
|
941
958
|
expiresIn: result.expiresIn,
|
|
942
959
|
expiresAt: result.expiresAt,
|
|
943
|
-
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)
|
|
944
962
|
};
|
|
945
963
|
const email = result.email || await fetchUserEmail(refreshRequest.provider, tokenData);
|
|
946
964
|
if (email) {
|
|
@@ -1007,12 +1025,25 @@ class OAuthHandler {
|
|
|
1007
1025
|
return jsonRpcResponse.result;
|
|
1008
1026
|
}
|
|
1009
1027
|
}
|
|
1010
|
-
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";
|
|
1011
1029
|
var init_base_handler = __esm(() => {
|
|
1012
1030
|
init_integration_summary();
|
|
1013
1031
|
init_email_fetcher();
|
|
1014
1032
|
init_logger();
|
|
1015
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
|
+
]);
|
|
1016
1047
|
});
|
|
1017
1048
|
|
|
1018
1049
|
// auto-routes.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-handler.d.ts","sourceRoot":"","sources":["../../../src/adapters/base-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"base-handler.d.ts","sourceRoot":"","sources":["../../../src/adapters/base-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
|
679
|
-
|
|
680
|
-
|
|
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) {
|
|
@@ -792,12 +801,14 @@ class OAuthHandler {
|
|
|
792
801
|
if (this.config.setProviderToken) {
|
|
793
802
|
try {
|
|
794
803
|
const tokenData = {
|
|
804
|
+
sessionToken: result.sessionToken,
|
|
795
805
|
accessToken: result.accessToken,
|
|
796
806
|
refreshToken: result.refreshToken,
|
|
797
807
|
tokenType: result.tokenType,
|
|
798
808
|
expiresIn: result.expiresIn,
|
|
799
809
|
expiresAt: result.expiresAt,
|
|
800
|
-
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)
|
|
801
812
|
};
|
|
802
813
|
const email = result.email || await fetchUserEmail(callbackRequest.provider, tokenData);
|
|
803
814
|
if (email) {
|
|
@@ -914,6 +925,12 @@ class OAuthHandler {
|
|
|
914
925
|
if (providerConfig.config?.subdomain) {
|
|
915
926
|
body.subdomain = providerConfig.config.subdomain;
|
|
916
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
|
+
}
|
|
917
934
|
const url = new URL("/oauth/refresh", this.serverUrl);
|
|
918
935
|
const response = await fetch(url.toString(), {
|
|
919
936
|
method: "POST",
|
|
@@ -940,7 +957,8 @@ class OAuthHandler {
|
|
|
940
957
|
tokenType: result.tokenType,
|
|
941
958
|
expiresIn: result.expiresIn,
|
|
942
959
|
expiresAt: result.expiresAt,
|
|
943
|
-
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)
|
|
944
962
|
};
|
|
945
963
|
const email = result.email || await fetchUserEmail(refreshRequest.provider, tokenData);
|
|
946
964
|
if (email) {
|
|
@@ -1007,12 +1025,25 @@ class OAuthHandler {
|
|
|
1007
1025
|
return jsonRpcResponse.result;
|
|
1008
1026
|
}
|
|
1009
1027
|
}
|
|
1010
|
-
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";
|
|
1011
1029
|
var init_base_handler = __esm(() => {
|
|
1012
1030
|
init_integration_summary();
|
|
1013
1031
|
init_email_fetcher();
|
|
1014
1032
|
init_logger();
|
|
1015
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
|
+
]);
|
|
1016
1047
|
});
|
|
1017
1048
|
init_base_handler();
|
|
1018
1049
|
|