integrate-sdk 0.8.14 → 0.8.18

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.
@@ -1732,6 +1732,49 @@ function getEnv(key) {
1732
1732
  return;
1733
1733
  }
1734
1734
 
1735
+ // node.ts
1736
+ function fromNodeHeaders(nodeHeaders) {
1737
+ const webHeaders = new Headers;
1738
+ for (const [key, value] of Object.entries(nodeHeaders)) {
1739
+ if (value !== undefined) {
1740
+ if (Array.isArray(value)) {
1741
+ value.forEach((v) => webHeaders.append(key, v));
1742
+ } else {
1743
+ webHeaders.set(key, value);
1744
+ }
1745
+ }
1746
+ }
1747
+ return webHeaders;
1748
+ }
1749
+ async function toWebRequest(req) {
1750
+ const protocol = req.socket?.encrypted ? "https" : "http";
1751
+ const host = req.headers.host || "localhost";
1752
+ const url = `${protocol}://${host}${req.url || ""}`;
1753
+ const headers = fromNodeHeaders(req.headers);
1754
+ let body;
1755
+ if (req.method && ["POST", "PUT", "PATCH"].includes(req.method)) {
1756
+ body = await new Promise((resolve, reject) => {
1757
+ let data = "";
1758
+ req.on("data", (chunk) => data += chunk);
1759
+ req.on("end", () => resolve(data));
1760
+ req.on("error", reject);
1761
+ });
1762
+ }
1763
+ return new Request(url, {
1764
+ method: req.method,
1765
+ headers,
1766
+ body: body || undefined
1767
+ });
1768
+ }
1769
+ async function sendWebResponse(webRes, nodeRes) {
1770
+ nodeRes.statusCode = webRes.status;
1771
+ webRes.headers.forEach((value, key) => {
1772
+ nodeRes.setHeader(key, value);
1773
+ });
1774
+ const body = await webRes.text();
1775
+ nodeRes.end(body);
1776
+ }
1777
+
1735
1778
  // ../integrations/github.ts
1736
1779
  function githubIntegration(config = {}) {
1737
1780
  const oauth = {
@@ -6471,14 +6514,30 @@ function createMCPServer(config) {
6471
6514
  setProviderToken: config.setProviderToken,
6472
6515
  removeProviderToken: config.removeProviderToken
6473
6516
  });
6474
- const handler = async (request, context) => {
6475
- const method = request.method.toUpperCase();
6517
+ const handler = async (request, contextOrRes, context) => {
6518
+ let nodeRes;
6519
+ let handlerContext;
6520
+ if (contextOrRes && "write" in contextOrRes && "end" in contextOrRes && "setHeader" in contextOrRes) {
6521
+ nodeRes = contextOrRes;
6522
+ handlerContext = context;
6523
+ } else {
6524
+ handlerContext = contextOrRes;
6525
+ }
6526
+ let webRequest;
6527
+ if (request instanceof Request) {
6528
+ webRequest = request;
6529
+ } else if (typeof request.url === "string" && typeof request.method === "string" && typeof request.headers?.get === "function") {
6530
+ webRequest = request;
6531
+ } else {
6532
+ webRequest = await toWebRequest(request);
6533
+ }
6534
+ const method = webRequest.method.toUpperCase();
6476
6535
  let action;
6477
6536
  let segments = [];
6478
- if (context?.params?.action) {
6479
- action = context.params.action;
6480
- } else if (context?.params?.all) {
6481
- const all = context.params.all;
6537
+ if (handlerContext?.params?.action) {
6538
+ action = handlerContext.params.action;
6539
+ } else if (handlerContext?.params?.all) {
6540
+ const all = handlerContext.params.all;
6482
6541
  if (Array.isArray(all)) {
6483
6542
  segments = all;
6484
6543
  } else if (typeof all === "string") {
@@ -6496,7 +6555,7 @@ function createMCPServer(config) {
6496
6555
  action = segments[segments.length - 1];
6497
6556
  }
6498
6557
  } else {
6499
- const url = new URL(request.url);
6558
+ const url = new URL(webRequest.url);
6500
6559
  const pathParts = url.pathname.split("/").filter(Boolean);
6501
6560
  segments = pathParts;
6502
6561
  const oauthIndex = pathParts.indexOf("oauth");
@@ -6510,8 +6569,8 @@ function createMCPServer(config) {
6510
6569
  }
6511
6570
  if (action === "mcp" && method === "POST") {
6512
6571
  try {
6513
- const body = await request.json();
6514
- const authHeader = request.headers.get("authorization");
6572
+ const body = await webRequest.json();
6573
+ const authHeader = webRequest.headers.get("authorization");
6515
6574
  const { OAuthHandler } = await Promise.resolve().then(() => exports_base_handler);
6516
6575
  const oauthHandler = new OAuthHandler({
6517
6576
  providers,
@@ -6534,7 +6593,7 @@ function createMCPServer(config) {
6534
6593
  }
6535
6594
  }
6536
6595
  if (method === "GET" && action === "callback") {
6537
- const url = new URL(request.url);
6596
+ const url = new URL(webRequest.url);
6538
6597
  const searchParams = url.searchParams;
6539
6598
  const code = searchParams.get("code");
6540
6599
  const state = searchParams.get("state");
@@ -6545,11 +6604,11 @@ function createMCPServer(config) {
6545
6604
  if (error) {
6546
6605
  const errorMsg = errorDescription || error;
6547
6606
  console.error("[OAuth Redirect] Error:", errorMsg);
6548
- return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent(errorMsg)}`, request.url));
6607
+ return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent(errorMsg)}`, webRequest.url));
6549
6608
  }
6550
6609
  if (!code || !state) {
6551
6610
  console.error("[OAuth Redirect] Missing code or state parameter");
6552
- return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent("Invalid OAuth callback")}`, request.url));
6611
+ return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent("Invalid OAuth callback")}`, webRequest.url));
6553
6612
  }
6554
6613
  let returnUrl = defaultRedirectUrl;
6555
6614
  let frontendOrigin;
@@ -6566,10 +6625,10 @@ function createMCPServer(config) {
6566
6625
  }
6567
6626
  } catch (e) {
6568
6627
  try {
6569
- const referrer = request.headers.get("referer") || request.headers.get("referrer");
6628
+ const referrer = webRequest.headers.get("referer") || webRequest.headers.get("referrer");
6570
6629
  if (referrer) {
6571
6630
  const referrerUrl = new URL(referrer);
6572
- const currentUrl = new URL(request.url);
6631
+ const currentUrl = new URL(webRequest.url);
6573
6632
  if (referrerUrl.origin === currentUrl.origin) {
6574
6633
  returnUrl = referrerUrl.pathname + referrerUrl.search;
6575
6634
  }
@@ -6604,7 +6663,7 @@ function createMCPServer(config) {
6604
6663
  if (storedFrontendOrigin) {
6605
6664
  frontendOrigin = storedFrontendOrigin;
6606
6665
  } else {
6607
- const referer = request.headers.get("referer") || request.headers.get("referrer");
6666
+ const referer = webRequest.headers.get("referer") || webRequest.headers.get("referrer");
6608
6667
  if (referer) {
6609
6668
  try {
6610
6669
  const refererUrl = new URL(referer);
@@ -6630,7 +6689,7 @@ function createMCPServer(config) {
6630
6689
  return Response.redirect(frontendUrl);
6631
6690
  } catch (error2) {
6632
6691
  console.error("[OAuth Backend Callback] Error:", error2);
6633
- return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent(error2.message || "Failed to exchange token")}`, request.url));
6692
+ return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent(error2.message || "Failed to exchange token")}`, webRequest.url));
6634
6693
  }
6635
6694
  } else {
6636
6695
  let targetOrigin = frontendOrigin;
@@ -6640,7 +6699,7 @@ function createMCPServer(config) {
6640
6699
  targetOrigin = returnUrlObj.origin;
6641
6700
  returnUrl = returnUrlObj.pathname + returnUrlObj.search;
6642
6701
  } catch {
6643
- const referer = request.headers.get("referer") || request.headers.get("referrer");
6702
+ const referer = webRequest.headers.get("referer") || webRequest.headers.get("referrer");
6644
6703
  if (referer) {
6645
6704
  try {
6646
6705
  const refererUrl = new URL(referer);
@@ -6651,21 +6710,28 @@ function createMCPServer(config) {
6651
6710
  }
6652
6711
  if (!targetOrigin) {
6653
6712
  console.warn("[OAuth] Could not determine frontend origin for redirect. Using request origin as fallback.");
6654
- targetOrigin = new URL(request.url).origin;
6713
+ targetOrigin = new URL(webRequest.url).origin;
6655
6714
  }
6656
6715
  const targetUrl = new URL(returnUrl, targetOrigin);
6657
6716
  targetUrl.hash = `oauth_callback=${encodeURIComponent(JSON.stringify({ code, state }))}`;
6658
6717
  return Response.redirect(targetUrl);
6659
6718
  }
6660
6719
  }
6661
- const handlerContext = { params: { action: action || "callback" } };
6720
+ const finalAction = action || "callback";
6721
+ const finalContext = { params: { action: finalAction } };
6722
+ let response;
6662
6723
  if (method === "POST") {
6663
- return POST(request, handlerContext);
6724
+ response = await POST(webRequest, finalContext);
6664
6725
  } else if (method === "GET") {
6665
- return GET(request, handlerContext);
6726
+ response = await GET(webRequest, finalContext);
6666
6727
  } else {
6667
- return Response.json({ error: `Method ${method} not allowed` }, { status: 405 });
6728
+ response = Response.json({ error: `Method ${method} not allowed` }, { status: 405 });
6668
6729
  }
6730
+ if (nodeRes) {
6731
+ await sendWebResponse(response, nodeRes);
6732
+ return;
6733
+ }
6734
+ return response;
6669
6735
  };
6670
6736
  const serverClient = client;
6671
6737
  serverClient.handler = handler;
@@ -1,8 +1,7 @@
1
1
  /**
2
- * Node.js OAuth Route Adapter
3
- * Provides OAuth route handlers for Node.js HTTP servers
2
+ * Node.js OAuth Route Adapter Utilities
3
+ * Provides utility functions for converting Node.js request objects to Web API Request objects
4
4
  */
5
- import { type OAuthHandlerConfig } from './base-handler.js';
6
5
  import type { IncomingHttpHeaders, IncomingMessage, ServerResponse } from 'http';
7
6
  /**
8
7
  * Convert Node.js IncomingHttpHeaders to Web Headers
@@ -12,37 +11,17 @@ import type { IncomingHttpHeaders, IncomingMessage, ServerResponse } from 'http'
12
11
  */
13
12
  export declare function fromNodeHeaders(nodeHeaders: IncomingHttpHeaders): Headers;
14
13
  /**
15
- * Create Node.js OAuth route handler
14
+ * Convert Node.js IncomingMessage to Web Request
16
15
  *
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
- * });
16
+ * @param req - Node.js request object
17
+ * @returns Web API Request object
18
+ */
19
+ export declare function toWebRequest(req: IncomingMessage): Promise<Request>;
20
+ /**
21
+ * Send Web API Response to Node.js ServerResponse
36
22
  *
37
- * createServer(async (req, res) => {
38
- * if (req.url?.startsWith('/api/integrate/')) {
39
- * await handler(req, res);
40
- * } else {
41
- * res.statusCode = 404;
42
- * res.end('Not Found');
43
- * }
44
- * }).listen(3000);
45
- * ```
23
+ * @param webRes - Web API Response object
24
+ * @param nodeRes - Node.js response object
46
25
  */
47
- export declare function toNodeHandler(config: OAuthHandlerConfig): (req: IncomingMessage, res: ServerResponse) => Promise<void>;
26
+ export declare function sendWebResponse(webRes: Response, nodeRes: ServerResponse): Promise<void>;
48
27
  //# sourceMappingURL=node.d.ts.map
@@ -1 +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,CAqIxE"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/adapters/node.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAEjF;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,mBAAmB,GAAG,OAAO,CAYzE;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAuBzE;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAS9F"}
@@ -1732,6 +1732,49 @@ function getEnv(key) {
1732
1732
  return;
1733
1733
  }
1734
1734
 
1735
+ // node.ts
1736
+ function fromNodeHeaders(nodeHeaders) {
1737
+ const webHeaders = new Headers;
1738
+ for (const [key, value] of Object.entries(nodeHeaders)) {
1739
+ if (value !== undefined) {
1740
+ if (Array.isArray(value)) {
1741
+ value.forEach((v) => webHeaders.append(key, v));
1742
+ } else {
1743
+ webHeaders.set(key, value);
1744
+ }
1745
+ }
1746
+ }
1747
+ return webHeaders;
1748
+ }
1749
+ async function toWebRequest(req) {
1750
+ const protocol = req.socket?.encrypted ? "https" : "http";
1751
+ const host = req.headers.host || "localhost";
1752
+ const url = `${protocol}://${host}${req.url || ""}`;
1753
+ const headers = fromNodeHeaders(req.headers);
1754
+ let body;
1755
+ if (req.method && ["POST", "PUT", "PATCH"].includes(req.method)) {
1756
+ body = await new Promise((resolve, reject) => {
1757
+ let data = "";
1758
+ req.on("data", (chunk) => data += chunk);
1759
+ req.on("end", () => resolve(data));
1760
+ req.on("error", reject);
1761
+ });
1762
+ }
1763
+ return new Request(url, {
1764
+ method: req.method,
1765
+ headers,
1766
+ body: body || undefined
1767
+ });
1768
+ }
1769
+ async function sendWebResponse(webRes, nodeRes) {
1770
+ nodeRes.statusCode = webRes.status;
1771
+ webRes.headers.forEach((value, key) => {
1772
+ nodeRes.setHeader(key, value);
1773
+ });
1774
+ const body = await webRes.text();
1775
+ nodeRes.end(body);
1776
+ }
1777
+
1735
1778
  // ../integrations/github.ts
1736
1779
  function githubIntegration(config = {}) {
1737
1780
  const oauth = {
@@ -6471,14 +6514,30 @@ function createMCPServer(config) {
6471
6514
  setProviderToken: config.setProviderToken,
6472
6515
  removeProviderToken: config.removeProviderToken
6473
6516
  });
6474
- const handler = async (request, context) => {
6475
- const method = request.method.toUpperCase();
6517
+ const handler = async (request, contextOrRes, context) => {
6518
+ let nodeRes;
6519
+ let handlerContext;
6520
+ if (contextOrRes && "write" in contextOrRes && "end" in contextOrRes && "setHeader" in contextOrRes) {
6521
+ nodeRes = contextOrRes;
6522
+ handlerContext = context;
6523
+ } else {
6524
+ handlerContext = contextOrRes;
6525
+ }
6526
+ let webRequest;
6527
+ if (request instanceof Request) {
6528
+ webRequest = request;
6529
+ } else if (typeof request.url === "string" && typeof request.method === "string" && typeof request.headers?.get === "function") {
6530
+ webRequest = request;
6531
+ } else {
6532
+ webRequest = await toWebRequest(request);
6533
+ }
6534
+ const method = webRequest.method.toUpperCase();
6476
6535
  let action;
6477
6536
  let segments = [];
6478
- if (context?.params?.action) {
6479
- action = context.params.action;
6480
- } else if (context?.params?.all) {
6481
- const all = context.params.all;
6537
+ if (handlerContext?.params?.action) {
6538
+ action = handlerContext.params.action;
6539
+ } else if (handlerContext?.params?.all) {
6540
+ const all = handlerContext.params.all;
6482
6541
  if (Array.isArray(all)) {
6483
6542
  segments = all;
6484
6543
  } else if (typeof all === "string") {
@@ -6496,7 +6555,7 @@ function createMCPServer(config) {
6496
6555
  action = segments[segments.length - 1];
6497
6556
  }
6498
6557
  } else {
6499
- const url = new URL(request.url);
6558
+ const url = new URL(webRequest.url);
6500
6559
  const pathParts = url.pathname.split("/").filter(Boolean);
6501
6560
  segments = pathParts;
6502
6561
  const oauthIndex = pathParts.indexOf("oauth");
@@ -6510,8 +6569,8 @@ function createMCPServer(config) {
6510
6569
  }
6511
6570
  if (action === "mcp" && method === "POST") {
6512
6571
  try {
6513
- const body = await request.json();
6514
- const authHeader = request.headers.get("authorization");
6572
+ const body = await webRequest.json();
6573
+ const authHeader = webRequest.headers.get("authorization");
6515
6574
  const { OAuthHandler } = await Promise.resolve().then(() => exports_base_handler);
6516
6575
  const oauthHandler = new OAuthHandler({
6517
6576
  providers,
@@ -6534,7 +6593,7 @@ function createMCPServer(config) {
6534
6593
  }
6535
6594
  }
6536
6595
  if (method === "GET" && action === "callback") {
6537
- const url = new URL(request.url);
6596
+ const url = new URL(webRequest.url);
6538
6597
  const searchParams = url.searchParams;
6539
6598
  const code = searchParams.get("code");
6540
6599
  const state = searchParams.get("state");
@@ -6545,11 +6604,11 @@ function createMCPServer(config) {
6545
6604
  if (error) {
6546
6605
  const errorMsg = errorDescription || error;
6547
6606
  console.error("[OAuth Redirect] Error:", errorMsg);
6548
- return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent(errorMsg)}`, request.url));
6607
+ return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent(errorMsg)}`, webRequest.url));
6549
6608
  }
6550
6609
  if (!code || !state) {
6551
6610
  console.error("[OAuth Redirect] Missing code or state parameter");
6552
- return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent("Invalid OAuth callback")}`, request.url));
6611
+ return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent("Invalid OAuth callback")}`, webRequest.url));
6553
6612
  }
6554
6613
  let returnUrl = defaultRedirectUrl;
6555
6614
  let frontendOrigin;
@@ -6566,10 +6625,10 @@ function createMCPServer(config) {
6566
6625
  }
6567
6626
  } catch (e) {
6568
6627
  try {
6569
- const referrer = request.headers.get("referer") || request.headers.get("referrer");
6628
+ const referrer = webRequest.headers.get("referer") || webRequest.headers.get("referrer");
6570
6629
  if (referrer) {
6571
6630
  const referrerUrl = new URL(referrer);
6572
- const currentUrl = new URL(request.url);
6631
+ const currentUrl = new URL(webRequest.url);
6573
6632
  if (referrerUrl.origin === currentUrl.origin) {
6574
6633
  returnUrl = referrerUrl.pathname + referrerUrl.search;
6575
6634
  }
@@ -6604,7 +6663,7 @@ function createMCPServer(config) {
6604
6663
  if (storedFrontendOrigin) {
6605
6664
  frontendOrigin = storedFrontendOrigin;
6606
6665
  } else {
6607
- const referer = request.headers.get("referer") || request.headers.get("referrer");
6666
+ const referer = webRequest.headers.get("referer") || webRequest.headers.get("referrer");
6608
6667
  if (referer) {
6609
6668
  try {
6610
6669
  const refererUrl = new URL(referer);
@@ -6630,7 +6689,7 @@ function createMCPServer(config) {
6630
6689
  return Response.redirect(frontendUrl);
6631
6690
  } catch (error2) {
6632
6691
  console.error("[OAuth Backend Callback] Error:", error2);
6633
- return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent(error2.message || "Failed to exchange token")}`, request.url));
6692
+ return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent(error2.message || "Failed to exchange token")}`, webRequest.url));
6634
6693
  }
6635
6694
  } else {
6636
6695
  let targetOrigin = frontendOrigin;
@@ -6640,7 +6699,7 @@ function createMCPServer(config) {
6640
6699
  targetOrigin = returnUrlObj.origin;
6641
6700
  returnUrl = returnUrlObj.pathname + returnUrlObj.search;
6642
6701
  } catch {
6643
- const referer = request.headers.get("referer") || request.headers.get("referrer");
6702
+ const referer = webRequest.headers.get("referer") || webRequest.headers.get("referrer");
6644
6703
  if (referer) {
6645
6704
  try {
6646
6705
  const refererUrl = new URL(referer);
@@ -6651,21 +6710,28 @@ function createMCPServer(config) {
6651
6710
  }
6652
6711
  if (!targetOrigin) {
6653
6712
  console.warn("[OAuth] Could not determine frontend origin for redirect. Using request origin as fallback.");
6654
- targetOrigin = new URL(request.url).origin;
6713
+ targetOrigin = new URL(webRequest.url).origin;
6655
6714
  }
6656
6715
  const targetUrl = new URL(returnUrl, targetOrigin);
6657
6716
  targetUrl.hash = `oauth_callback=${encodeURIComponent(JSON.stringify({ code, state }))}`;
6658
6717
  return Response.redirect(targetUrl);
6659
6718
  }
6660
6719
  }
6661
- const handlerContext = { params: { action: action || "callback" } };
6720
+ const finalAction = action || "callback";
6721
+ const finalContext = { params: { action: finalAction } };
6722
+ let response;
6662
6723
  if (method === "POST") {
6663
- return POST(request, handlerContext);
6724
+ response = await POST(webRequest, finalContext);
6664
6725
  } else if (method === "GET") {
6665
- return GET(request, handlerContext);
6726
+ response = await GET(webRequest, finalContext);
6666
6727
  } else {
6667
- return Response.json({ error: `Method ${method} not allowed` }, { status: 405 });
6728
+ response = Response.json({ error: `Method ${method} not allowed` }, { status: 405 });
6668
6729
  }
6730
+ if (nodeRes) {
6731
+ await sendWebResponse(response, nodeRes);
6732
+ return;
6733
+ }
6734
+ return response;
6669
6735
  };
6670
6736
  const serverClient = client;
6671
6737
  serverClient.handler = handler;
@@ -7631,6 +7697,7 @@ function createNextOAuthHandler(config) {
7631
7697
  }
7632
7698
  var init_nextjs = () => {};
7633
7699
  export {
7634
- toNodeHandler,
7700
+ toWebRequest,
7701
+ sendWebResponse,
7635
7702
  fromNodeHeaders
7636
7703
  };