integrate-sdk 0.6.5 → 0.6.6
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 +268 -0
- package/dist/adapters/base-handler.js +144 -0
- package/dist/adapters/nextjs-oauth-redirect.js +152 -0
- package/dist/adapters/nextjs.js +405 -0
- package/dist/adapters/node.js +280 -0
- package/dist/adapters/solid-start.js +27 -0
- package/dist/adapters/svelte-kit.js +34 -0
- package/dist/adapters/tanstack-start.js +26 -0
- package/dist/index.js +169 -70
- package/dist/src/adapters/node.d.ts +48 -0
- package/dist/src/adapters/node.d.ts.map +1 -0
- package/dist/src/adapters/solid-start.d.ts +54 -0
- package/dist/src/adapters/solid-start.d.ts.map +1 -0
- package/dist/src/adapters/svelte-kit.d.ts +82 -0
- package/dist/src/adapters/svelte-kit.d.ts.map +1 -0
- package/dist/src/adapters/tanstack-start.d.ts +28 -144
- package/dist/src/adapters/tanstack-start.d.ts.map +1 -1
- package/dist/src/index.d.ts +4 -1
- package/dist/src/index.d.ts.map +1 -1
- package/package.json +28 -7
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __export = (target, all) => {
|
|
3
|
+
for (var name in all)
|
|
4
|
+
__defProp(target, name, {
|
|
5
|
+
get: all[name],
|
|
6
|
+
enumerable: true,
|
|
7
|
+
configurable: true,
|
|
8
|
+
set: (newValue) => all[name] = () => newValue
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
// src/adapters/solid-start.ts
|
|
13
|
+
function toSolidStartHandler(baseHandler) {
|
|
14
|
+
const handler = async (event) => {
|
|
15
|
+
return baseHandler(event.request);
|
|
16
|
+
};
|
|
17
|
+
return {
|
|
18
|
+
GET: handler,
|
|
19
|
+
POST: handler,
|
|
20
|
+
PATCH: handler,
|
|
21
|
+
PUT: handler,
|
|
22
|
+
DELETE: handler
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export {
|
|
26
|
+
toSolidStartHandler
|
|
27
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __export = (target, all) => {
|
|
3
|
+
for (var name in all)
|
|
4
|
+
__defProp(target, name, {
|
|
5
|
+
get: all[name],
|
|
6
|
+
enumerable: true,
|
|
7
|
+
configurable: true,
|
|
8
|
+
set: (newValue) => all[name] = () => newValue
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
// src/adapters/svelte-kit.ts
|
|
13
|
+
async function svelteKitHandler({
|
|
14
|
+
authConfig,
|
|
15
|
+
event,
|
|
16
|
+
resolve,
|
|
17
|
+
basePath = "/api/auth"
|
|
18
|
+
}) {
|
|
19
|
+
const { url } = event;
|
|
20
|
+
const baseUrl = new URL(basePath, url.origin);
|
|
21
|
+
if (!url.pathname.startsWith(baseUrl.pathname)) {
|
|
22
|
+
return resolve(event);
|
|
23
|
+
}
|
|
24
|
+
return authConfig(event.request);
|
|
25
|
+
}
|
|
26
|
+
function toSvelteKitHandler(baseHandler) {
|
|
27
|
+
return async (event) => {
|
|
28
|
+
return baseHandler(event.request);
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export {
|
|
32
|
+
toSvelteKitHandler,
|
|
33
|
+
svelteKitHandler
|
|
34
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __export = (target, all) => {
|
|
3
|
+
for (var name in all)
|
|
4
|
+
__defProp(target, name, {
|
|
5
|
+
get: all[name],
|
|
6
|
+
enumerable: true,
|
|
7
|
+
configurable: true,
|
|
8
|
+
set: (newValue) => all[name] = () => newValue
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
// src/adapters/tanstack-start.ts
|
|
13
|
+
function toTanStackStartHandler(handler) {
|
|
14
|
+
const baseHandler = async ({ request }) => {
|
|
15
|
+
return handler(request);
|
|
16
|
+
};
|
|
17
|
+
return {
|
|
18
|
+
GET: baseHandler,
|
|
19
|
+
POST: baseHandler
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
var createTanStackOAuthHandler = toTanStackStartHandler;
|
|
23
|
+
export {
|
|
24
|
+
toTanStackStartHandler,
|
|
25
|
+
createTanStackOAuthHandler
|
|
26
|
+
};
|
package/dist/index.js
CHANGED
|
@@ -1891,90 +1891,183 @@ function createOAuthRedirectHandler(config) {
|
|
|
1891
1891
|
return Response.redirect(targetUrl);
|
|
1892
1892
|
};
|
|
1893
1893
|
}
|
|
1894
|
-
// src/adapters/
|
|
1895
|
-
function
|
|
1896
|
-
const
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
status: 200,
|
|
1904
|
-
headers: {
|
|
1905
|
-
"Content-Type": "application/json"
|
|
1906
|
-
}
|
|
1907
|
-
});
|
|
1908
|
-
} catch (error) {
|
|
1909
|
-
console.error("[OAuth Authorize] Error:", error);
|
|
1910
|
-
return new Response(JSON.stringify({ error: error.message || "Failed to get authorization URL" }), {
|
|
1911
|
-
status: 500,
|
|
1912
|
-
headers: {
|
|
1913
|
-
"Content-Type": "application/json"
|
|
1914
|
-
}
|
|
1915
|
-
});
|
|
1894
|
+
// src/adapters/node.ts
|
|
1895
|
+
function fromNodeHeaders(nodeHeaders) {
|
|
1896
|
+
const webHeaders = new Headers;
|
|
1897
|
+
for (const [key, value] of Object.entries(nodeHeaders)) {
|
|
1898
|
+
if (value !== undefined) {
|
|
1899
|
+
if (Array.isArray(value)) {
|
|
1900
|
+
value.forEach((v) => webHeaders.append(key, v));
|
|
1901
|
+
} else {
|
|
1902
|
+
webHeaders.set(key, value);
|
|
1916
1903
|
}
|
|
1917
|
-
}
|
|
1918
|
-
|
|
1919
|
-
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
|
|
1931
|
-
|
|
1932
|
-
|
|
1933
|
-
|
|
1904
|
+
}
|
|
1905
|
+
}
|
|
1906
|
+
return webHeaders;
|
|
1907
|
+
}
|
|
1908
|
+
async function toWebRequest(req) {
|
|
1909
|
+
const protocol = req.socket.encrypted ? "https" : "http";
|
|
1910
|
+
const host = req.headers.host || "localhost";
|
|
1911
|
+
const url = `${protocol}://${host}${req.url}`;
|
|
1912
|
+
const headers = fromNodeHeaders(req.headers);
|
|
1913
|
+
let body;
|
|
1914
|
+
if (req.method && ["POST", "PUT", "PATCH"].includes(req.method)) {
|
|
1915
|
+
body = await new Promise((resolve, reject) => {
|
|
1916
|
+
let data = "";
|
|
1917
|
+
req.on("data", (chunk) => data += chunk);
|
|
1918
|
+
req.on("end", () => resolve(data));
|
|
1919
|
+
req.on("error", reject);
|
|
1920
|
+
});
|
|
1921
|
+
}
|
|
1922
|
+
return new Request(url, {
|
|
1923
|
+
method: req.method,
|
|
1924
|
+
headers,
|
|
1925
|
+
body: body || undefined
|
|
1926
|
+
});
|
|
1927
|
+
}
|
|
1928
|
+
async function sendWebResponse(webRes, nodeRes) {
|
|
1929
|
+
nodeRes.statusCode = webRes.status;
|
|
1930
|
+
webRes.headers.forEach((value, key) => {
|
|
1931
|
+
nodeRes.setHeader(key, value);
|
|
1932
|
+
});
|
|
1933
|
+
const body = await webRes.text();
|
|
1934
|
+
nodeRes.end(body);
|
|
1935
|
+
}
|
|
1936
|
+
function toNodeHandler(config) {
|
|
1937
|
+
const oauthHandler = new OAuthHandler(config);
|
|
1938
|
+
return async (req, res) => {
|
|
1939
|
+
try {
|
|
1940
|
+
const webReq = await toWebRequest(req);
|
|
1941
|
+
const url = new URL(webReq.url);
|
|
1942
|
+
const segments = url.pathname.split("/").filter(Boolean);
|
|
1943
|
+
const action = segments[segments.length - 1];
|
|
1944
|
+
let webRes;
|
|
1945
|
+
if (req.method === "POST") {
|
|
1946
|
+
if (action === "authorize") {
|
|
1947
|
+
const body = await webReq.json();
|
|
1948
|
+
const result = await oauthHandler.handleAuthorize(body);
|
|
1949
|
+
webRes = new Response(JSON.stringify(result), {
|
|
1950
|
+
status: 200,
|
|
1951
|
+
headers: { "Content-Type": "application/json" }
|
|
1952
|
+
});
|
|
1953
|
+
} else if (action === "callback") {
|
|
1954
|
+
const body = await webReq.json();
|
|
1955
|
+
const result = await oauthHandler.handleCallback(body);
|
|
1956
|
+
webRes = new Response(JSON.stringify(result), {
|
|
1957
|
+
status: 200,
|
|
1958
|
+
headers: { "Content-Type": "application/json" }
|
|
1959
|
+
});
|
|
1960
|
+
} else if (action === "disconnect") {
|
|
1961
|
+
const authHeader = webReq.headers.get("authorization");
|
|
1962
|
+
if (!authHeader || !authHeader.startsWith("Bearer ")) {
|
|
1963
|
+
webRes = new Response(JSON.stringify({ error: "Missing or invalid Authorization header" }), {
|
|
1964
|
+
status: 400,
|
|
1965
|
+
headers: { "Content-Type": "application/json" }
|
|
1966
|
+
});
|
|
1967
|
+
} else {
|
|
1968
|
+
const accessToken = authHeader.substring(7);
|
|
1969
|
+
const body = await webReq.json();
|
|
1970
|
+
const { provider } = body;
|
|
1971
|
+
if (!provider) {
|
|
1972
|
+
webRes = new Response(JSON.stringify({ error: "Missing provider in request body" }), {
|
|
1973
|
+
status: 400,
|
|
1974
|
+
headers: { "Content-Type": "application/json" }
|
|
1975
|
+
});
|
|
1976
|
+
} else {
|
|
1977
|
+
const result = await oauthHandler.handleDisconnect({ provider }, accessToken);
|
|
1978
|
+
webRes = new Response(JSON.stringify(result), {
|
|
1979
|
+
status: 200,
|
|
1980
|
+
headers: { "Content-Type": "application/json" }
|
|
1981
|
+
});
|
|
1982
|
+
}
|
|
1934
1983
|
}
|
|
1935
|
-
}
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
|
|
1940
|
-
|
|
1984
|
+
} else {
|
|
1985
|
+
webRes = new Response(JSON.stringify({ error: `Unknown action: ${action}` }), {
|
|
1986
|
+
status: 404,
|
|
1987
|
+
headers: { "Content-Type": "application/json" }
|
|
1988
|
+
});
|
|
1989
|
+
}
|
|
1990
|
+
} else if (req.method === "GET" && action === "status") {
|
|
1941
1991
|
const provider = url.searchParams.get("provider");
|
|
1942
|
-
const
|
|
1992
|
+
const authHeader = webReq.headers.get("authorization");
|
|
1943
1993
|
if (!provider) {
|
|
1944
|
-
|
|
1994
|
+
webRes = new Response(JSON.stringify({ error: "Missing provider query parameter" }), {
|
|
1945
1995
|
status: 400,
|
|
1946
|
-
headers: {
|
|
1947
|
-
"Content-Type": "application/json"
|
|
1948
|
-
}
|
|
1996
|
+
headers: { "Content-Type": "application/json" }
|
|
1949
1997
|
});
|
|
1950
|
-
}
|
|
1951
|
-
|
|
1952
|
-
return new Response(JSON.stringify({ error: "Missing X-Session-Token header" }), {
|
|
1998
|
+
} else if (!authHeader || !authHeader.startsWith("Bearer ")) {
|
|
1999
|
+
webRes = new Response(JSON.stringify({ error: "Missing or invalid Authorization header" }), {
|
|
1953
2000
|
status: 400,
|
|
1954
|
-
headers: {
|
|
1955
|
-
|
|
1956
|
-
|
|
2001
|
+
headers: { "Content-Type": "application/json" }
|
|
2002
|
+
});
|
|
2003
|
+
} else {
|
|
2004
|
+
const accessToken = authHeader.substring(7);
|
|
2005
|
+
const result = await oauthHandler.handleStatus(provider, accessToken);
|
|
2006
|
+
webRes = new Response(JSON.stringify(result), {
|
|
2007
|
+
status: 200,
|
|
2008
|
+
headers: { "Content-Type": "application/json" }
|
|
1957
2009
|
});
|
|
1958
2010
|
}
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
status:
|
|
1962
|
-
headers: {
|
|
1963
|
-
"Content-Type": "application/json"
|
|
1964
|
-
}
|
|
1965
|
-
});
|
|
1966
|
-
} catch (error) {
|
|
1967
|
-
console.error("[OAuth Status] Error:", error);
|
|
1968
|
-
return new Response(JSON.stringify({ error: error.message || "Failed to check authorization status" }), {
|
|
1969
|
-
status: 500,
|
|
1970
|
-
headers: {
|
|
1971
|
-
"Content-Type": "application/json"
|
|
1972
|
-
}
|
|
2011
|
+
} else {
|
|
2012
|
+
webRes = new Response(JSON.stringify({ error: `Unknown action: ${action}` }), {
|
|
2013
|
+
status: 404,
|
|
2014
|
+
headers: { "Content-Type": "application/json" }
|
|
1973
2015
|
});
|
|
1974
2016
|
}
|
|
2017
|
+
await sendWebResponse(webRes, res);
|
|
2018
|
+
} catch (error) {
|
|
2019
|
+
console.error("[OAuth Handler] Error:", error);
|
|
2020
|
+
const errorRes = new Response(JSON.stringify({ error: error.message || "Internal server error" }), {
|
|
2021
|
+
status: 500,
|
|
2022
|
+
headers: { "Content-Type": "application/json" }
|
|
2023
|
+
});
|
|
2024
|
+
await sendWebResponse(errorRes, res);
|
|
1975
2025
|
}
|
|
1976
2026
|
};
|
|
1977
2027
|
}
|
|
2028
|
+
// src/adapters/solid-start.ts
|
|
2029
|
+
function toSolidStartHandler(baseHandler) {
|
|
2030
|
+
const handler = async (event) => {
|
|
2031
|
+
return baseHandler(event.request);
|
|
2032
|
+
};
|
|
2033
|
+
return {
|
|
2034
|
+
GET: handler,
|
|
2035
|
+
POST: handler,
|
|
2036
|
+
PATCH: handler,
|
|
2037
|
+
PUT: handler,
|
|
2038
|
+
DELETE: handler
|
|
2039
|
+
};
|
|
2040
|
+
}
|
|
2041
|
+
// src/adapters/svelte-kit.ts
|
|
2042
|
+
async function svelteKitHandler({
|
|
2043
|
+
authConfig,
|
|
2044
|
+
event,
|
|
2045
|
+
resolve,
|
|
2046
|
+
basePath = "/api/auth"
|
|
2047
|
+
}) {
|
|
2048
|
+
const { url } = event;
|
|
2049
|
+
const baseUrl = new URL(basePath, url.origin);
|
|
2050
|
+
if (!url.pathname.startsWith(baseUrl.pathname)) {
|
|
2051
|
+
return resolve(event);
|
|
2052
|
+
}
|
|
2053
|
+
return authConfig(event.request);
|
|
2054
|
+
}
|
|
2055
|
+
function toSvelteKitHandler(baseHandler) {
|
|
2056
|
+
return async (event) => {
|
|
2057
|
+
return baseHandler(event.request);
|
|
2058
|
+
};
|
|
2059
|
+
}
|
|
2060
|
+
// src/adapters/tanstack-start.ts
|
|
2061
|
+
function toTanStackStartHandler(handler) {
|
|
2062
|
+
const baseHandler = async ({ request }) => {
|
|
2063
|
+
return handler(request);
|
|
2064
|
+
};
|
|
2065
|
+
return {
|
|
2066
|
+
GET: baseHandler,
|
|
2067
|
+
POST: baseHandler
|
|
2068
|
+
};
|
|
2069
|
+
}
|
|
2070
|
+
var createTanStackOAuthHandler = toTanStackStartHandler;
|
|
1978
2071
|
|
|
1979
2072
|
// src/index.ts
|
|
1980
2073
|
init_errors();
|
|
@@ -6218,6 +6311,11 @@ async function getVercelAITools(client, options) {
|
|
|
6218
6311
|
return convertMCPToolsToVercelAI(client, options);
|
|
6219
6312
|
}
|
|
6220
6313
|
export {
|
|
6314
|
+
toTanStackStartHandler,
|
|
6315
|
+
toSvelteKitHandler,
|
|
6316
|
+
toSolidStartHandler,
|
|
6317
|
+
toNodeHandler,
|
|
6318
|
+
svelteKitHandler,
|
|
6221
6319
|
sendCallbackToOpener,
|
|
6222
6320
|
parseState,
|
|
6223
6321
|
parseServerError,
|
|
@@ -6232,6 +6330,7 @@ export {
|
|
|
6232
6330
|
generateState,
|
|
6233
6331
|
generateCodeVerifier,
|
|
6234
6332
|
generateCodeChallenge,
|
|
6333
|
+
fromNodeHeaders,
|
|
6235
6334
|
createTanStackOAuthHandler,
|
|
6236
6335
|
createSimplePlugin,
|
|
6237
6336
|
createOAuthRedirectHandler,
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node.js OAuth Route Adapter
|
|
3
|
+
* Provides OAuth route handlers for Node.js HTTP servers
|
|
4
|
+
*/
|
|
5
|
+
import { type OAuthHandlerConfig } from './base-handler.js';
|
|
6
|
+
import type { IncomingHttpHeaders, IncomingMessage, ServerResponse } from 'http';
|
|
7
|
+
/**
|
|
8
|
+
* Convert Node.js IncomingHttpHeaders to Web Headers
|
|
9
|
+
*
|
|
10
|
+
* @param nodeHeaders - Node.js request headers
|
|
11
|
+
* @returns Web API Headers object
|
|
12
|
+
*/
|
|
13
|
+
export declare function fromNodeHeaders(nodeHeaders: IncomingHttpHeaders): Headers;
|
|
14
|
+
/**
|
|
15
|
+
* Create Node.js OAuth route handler
|
|
16
|
+
*
|
|
17
|
+
* Use this to create secure OAuth API routes in your Node.js HTTP server
|
|
18
|
+
* that handle authorization with server-side secrets.
|
|
19
|
+
*
|
|
20
|
+
* @param config - OAuth handler configuration with provider credentials
|
|
21
|
+
* @returns Request handler function for Node.js
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* import { createServer } from 'http';
|
|
26
|
+
* import { toNodeHandler } from 'integrate-sdk/adapters/node';
|
|
27
|
+
*
|
|
28
|
+
* const handler = toNodeHandler({
|
|
29
|
+
* providers: {
|
|
30
|
+
* github: {
|
|
31
|
+
* clientId: process.env.GITHUB_CLIENT_ID!,
|
|
32
|
+
* clientSecret: process.env.GITHUB_CLIENT_SECRET!,
|
|
33
|
+
* },
|
|
34
|
+
* },
|
|
35
|
+
* });
|
|
36
|
+
*
|
|
37
|
+
* createServer(async (req, res) => {
|
|
38
|
+
* if (req.url?.startsWith('/api/auth/')) {
|
|
39
|
+
* await handler(req, res);
|
|
40
|
+
* } else {
|
|
41
|
+
* res.statusCode = 404;
|
|
42
|
+
* res.end('Not Found');
|
|
43
|
+
* }
|
|
44
|
+
* }).listen(3000);
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export declare function toNodeHandler(config: OAuthHandlerConfig): (req: IncomingMessage, res: ServerResponse) => Promise<void>;
|
|
48
|
+
//# sourceMappingURL=node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/adapters/node.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAgB,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAEjF;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,mBAAmB,GAAG,OAAO,CAYzE;AAkDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,kBAAkB,IAGxC,KAAK,eAAe,EAAE,KAAK,cAAc,KAAG,OAAO,CAAC,IAAI,CAAC,CAsHxE"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SolidStart OAuth Route Adapter
|
|
3
|
+
* Provides OAuth route handlers for SolidStart
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Create SolidStart OAuth route handlers
|
|
7
|
+
*
|
|
8
|
+
* Use this to create secure OAuth API routes in your SolidStart application
|
|
9
|
+
* that handle authorization with server-side secrets.
|
|
10
|
+
*
|
|
11
|
+
* @param baseHandler - Handler function from createMCPServer
|
|
12
|
+
* @returns Object with GET, POST, PATCH, PUT, DELETE handlers
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* // lib/integrate-server.ts
|
|
17
|
+
* import { createMCPServer, githubPlugin } from 'integrate-sdk/server';
|
|
18
|
+
*
|
|
19
|
+
* export const { client: serverClient, handler } = createMCPServer({
|
|
20
|
+
* plugins: [
|
|
21
|
+
* githubPlugin({
|
|
22
|
+
* clientId: process.env.GITHUB_CLIENT_ID!,
|
|
23
|
+
* clientSecret: process.env.GITHUB_CLIENT_SECRET!,
|
|
24
|
+
* }),
|
|
25
|
+
* ],
|
|
26
|
+
* });
|
|
27
|
+
*
|
|
28
|
+
* // src/routes/api/auth/[...all].ts
|
|
29
|
+
* import { toSolidStartHandler } from 'integrate-sdk/adapters/solid-start';
|
|
30
|
+
* import { handler } from '@/lib/integrate-server';
|
|
31
|
+
*
|
|
32
|
+
* const handlers = toSolidStartHandler(handler);
|
|
33
|
+
*
|
|
34
|
+
* export const { GET, POST, PATCH, PUT, DELETE } = handlers;
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare function toSolidStartHandler(baseHandler: (request: Request) => Promise<Response>): {
|
|
38
|
+
GET: (event: {
|
|
39
|
+
request: Request;
|
|
40
|
+
}) => Promise<Response>;
|
|
41
|
+
POST: (event: {
|
|
42
|
+
request: Request;
|
|
43
|
+
}) => Promise<Response>;
|
|
44
|
+
PATCH: (event: {
|
|
45
|
+
request: Request;
|
|
46
|
+
}) => Promise<Response>;
|
|
47
|
+
PUT: (event: {
|
|
48
|
+
request: Request;
|
|
49
|
+
}) => Promise<Response>;
|
|
50
|
+
DELETE: (event: {
|
|
51
|
+
request: Request;
|
|
52
|
+
}) => Promise<Response>;
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=solid-start.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solid-start.d.ts","sourceRoot":"","sources":["../../../src/adapters/solid-start.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC;iBACxD;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAAG,OAAO,CAAC,QAAQ,CAAC;kBAAxC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAAG,OAAO,CAAC,QAAQ,CAAC;mBAAxC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAAG,OAAO,CAAC,QAAQ,CAAC;iBAAxC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAAG,OAAO,CAAC,QAAQ,CAAC;oBAAxC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAAG,OAAO,CAAC,QAAQ,CAAC;EAWvE"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SvelteKit OAuth Route Adapter
|
|
3
|
+
* Provides OAuth route handlers for SvelteKit
|
|
4
|
+
*/
|
|
5
|
+
type RequestEvent = any;
|
|
6
|
+
type ResolveFunction = any;
|
|
7
|
+
/**
|
|
8
|
+
* Create SvelteKit OAuth route handler for hooks
|
|
9
|
+
*
|
|
10
|
+
* Use this to integrate OAuth handling into your SvelteKit hooks.server.ts
|
|
11
|
+
*
|
|
12
|
+
* @param authConfig - Handler function from createMCPServer
|
|
13
|
+
* @param event - SvelteKit RequestEvent
|
|
14
|
+
* @param resolve - SvelteKit resolve function
|
|
15
|
+
* @param basePath - Base path for OAuth routes (default: '/api/auth')
|
|
16
|
+
* @returns Response from OAuth handler or resolved request
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* // lib/integrate-server.ts
|
|
21
|
+
* import { createMCPServer, githubPlugin } from 'integrate-sdk/server';
|
|
22
|
+
*
|
|
23
|
+
* export const { client: serverClient, handler } = createMCPServer({
|
|
24
|
+
* plugins: [
|
|
25
|
+
* githubPlugin({
|
|
26
|
+
* clientId: process.env.GITHUB_CLIENT_ID!,
|
|
27
|
+
* clientSecret: process.env.GITHUB_CLIENT_SECRET!,
|
|
28
|
+
* }),
|
|
29
|
+
* ],
|
|
30
|
+
* });
|
|
31
|
+
*
|
|
32
|
+
* // hooks.server.ts
|
|
33
|
+
* import { svelteKitHandler } from 'integrate-sdk/adapters/svelte-kit';
|
|
34
|
+
* import { handler } from '$lib/integrate-server';
|
|
35
|
+
*
|
|
36
|
+
* export async function handle({ event, resolve }) {
|
|
37
|
+
* return svelteKitHandler({ authConfig: handler, event, resolve });
|
|
38
|
+
* }
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare function svelteKitHandler({ authConfig, event, resolve, basePath, }: {
|
|
42
|
+
authConfig: (request: Request) => Promise<Response>;
|
|
43
|
+
event: RequestEvent;
|
|
44
|
+
resolve: ResolveFunction;
|
|
45
|
+
basePath?: string;
|
|
46
|
+
}): Promise<Response>;
|
|
47
|
+
/**
|
|
48
|
+
* Create SvelteKit OAuth route handler
|
|
49
|
+
*
|
|
50
|
+
* Use this to create secure OAuth API routes in your SvelteKit application
|
|
51
|
+
* that handle authorization with server-side secrets.
|
|
52
|
+
*
|
|
53
|
+
* @param baseHandler - Handler function from createMCPServer
|
|
54
|
+
* @returns Handler function for SvelteKit routes
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```typescript
|
|
58
|
+
* // lib/integrate-server.ts
|
|
59
|
+
* import { createMCPServer, githubPlugin } from 'integrate-sdk/server';
|
|
60
|
+
*
|
|
61
|
+
* export const { client: serverClient, handler } = createMCPServer({
|
|
62
|
+
* plugins: [
|
|
63
|
+
* githubPlugin({
|
|
64
|
+
* clientId: process.env.GITHUB_CLIENT_ID!,
|
|
65
|
+
* clientSecret: process.env.GITHUB_CLIENT_SECRET!,
|
|
66
|
+
* }),
|
|
67
|
+
* ],
|
|
68
|
+
* });
|
|
69
|
+
*
|
|
70
|
+
* // routes/api/auth/[...all]/+server.ts
|
|
71
|
+
* import { toSvelteKitHandler } from 'integrate-sdk/adapters/svelte-kit';
|
|
72
|
+
* import { handler } from '$lib/integrate-server';
|
|
73
|
+
*
|
|
74
|
+
* const svelteKitRoute = toSvelteKitHandler(handler);
|
|
75
|
+
*
|
|
76
|
+
* export const POST = svelteKitRoute;
|
|
77
|
+
* export const GET = svelteKitRoute;
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
export declare function toSvelteKitHandler(baseHandler: (request: Request) => Promise<Response>): (event: RequestEvent) => Promise<Response>;
|
|
81
|
+
export {};
|
|
82
|
+
//# sourceMappingURL=svelte-kit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svelte-kit.d.ts","sourceRoot":"","sources":["../../../src/adapters/svelte-kit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,KAAK,YAAY,GAAG,GAAG,CAAC;AACxB,KAAK,eAAe,GAAG,GAAG,CAAC;AAE3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAsB,gBAAgB,CAAC,EACnC,UAAU,EACV,KAAK,EACL,OAAO,EACP,QAAsB,GACzB,EAAE;IACC,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpD,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAWpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,IACrE,OAAO,YAAY,KAAG,OAAO,CAAC,QAAQ,CAAC,CAGxD"}
|