integrate-sdk 0.8.12 → 0.8.14

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.
@@ -518,6 +518,7 @@ class OAuthWindowManager {
518
518
  if (!isBrowser()) {
519
519
  throw new Error("OAuthWindowManager.openRedirect() can only be used in browser environments");
520
520
  }
521
+ console.log("[OAuthWindowManager] Redirecting to:", url.substring(0, 100) + (url.length > 100 ? "..." : ""));
521
522
  window.location.href = url;
522
523
  }
523
524
  listenForCallback(mode, timeoutMs = 5 * 60 * 1000) {
@@ -685,7 +686,13 @@ class OAuthManager {
685
686
  };
686
687
  this.pendingAuths.set(state, pendingAuth);
687
688
  this.savePendingAuthToStorage(state, pendingAuth);
689
+ console.log("[OAuth] Requesting authorization URL, flow mode:", this.flowConfig.mode);
688
690
  const authUrl = await this.getAuthorizationUrl(provider, state, codeChallenge, config.redirectUri, codeVerifier);
691
+ console.log("[OAuth] Received authorization URL, length:", authUrl?.length);
692
+ if (!authUrl || authUrl.trim() === "") {
693
+ throw new Error("Received empty authorization URL from server");
694
+ }
695
+ console.log("[OAuth] Opening authorization URL, mode:", this.flowConfig.mode);
689
696
  if (this.flowConfig.mode === "popup") {
690
697
  this.windowManager.openPopup(authUrl, this.flowConfig.popupOptions);
691
698
  try {
@@ -696,6 +703,7 @@ class OAuthManager {
696
703
  throw error;
697
704
  }
698
705
  } else {
706
+ console.log("[OAuth] Redirecting to authorization URL:", authUrl.substring(0, 100) + (authUrl.length > 100 ? "..." : ""));
699
707
  this.windowManager.openRedirect(authUrl);
700
708
  }
701
709
  }
@@ -890,6 +898,7 @@ class OAuthManager {
890
898
  return;
891
899
  }
892
900
  if (this.skipLocalStorage) {
901
+ console.log(`[OAuth] Token for ${provider} stored in memory only (skipLocalStorage: true). Configure setProviderToken/getProviderToken callbacks for persistence.`);
893
902
  return;
894
903
  }
895
904
  if (typeof window !== "undefined" && window.localStorage) {
@@ -910,6 +919,9 @@ class OAuthManager {
910
919
  return;
911
920
  }
912
921
  }
922
+ if (this.skipLocalStorage) {
923
+ return;
924
+ }
913
925
  if (typeof window !== "undefined" && window.localStorage) {
914
926
  try {
915
927
  const key = `integrate_token_${provider}`;
@@ -1056,6 +1068,16 @@ class OAuthManager {
1056
1068
  throw new Error(`Failed to get authorization URL: ${error}`);
1057
1069
  }
1058
1070
  const data = await response.json();
1071
+ if (!data.authorizationUrl) {
1072
+ console.error("[OAuth] Authorization URL is missing from response:", data);
1073
+ throw new Error("Authorization URL is missing from server response");
1074
+ }
1075
+ if (typeof data.authorizationUrl !== "string" || data.authorizationUrl.trim() === "") {
1076
+ console.error("[OAuth] Invalid authorization URL received:", data.authorizationUrl);
1077
+ throw new Error("Invalid authorization URL received from server");
1078
+ }
1079
+ const urlPreview = data.authorizationUrl.length > 100 ? data.authorizationUrl.substring(0, 100) + "..." : data.authorizationUrl;
1080
+ console.log("[OAuth] Received authorization URL from API route:", urlPreview);
1059
1081
  return data.authorizationUrl;
1060
1082
  }
1061
1083
  async exchangeCodeForToken(provider, code, codeVerifier, state) {
@@ -7202,6 +7224,12 @@ class OAuthHandler {
7202
7224
  }
7203
7225
  const data = await response.json();
7204
7226
  const result = data;
7227
+ if (!result.authorizationUrl) {
7228
+ console.error("[OAuth] MCP server did not return authorizationUrl:", data);
7229
+ throw new Error("MCP server failed to return authorization URL");
7230
+ }
7231
+ const urlPreview = result.authorizationUrl.length > 100 ? result.authorizationUrl.substring(0, 100) + "..." : result.authorizationUrl;
7232
+ console.log("[OAuth] Generated authorization URL:", urlPreview);
7205
7233
  if (authorizeRequest.codeVerifier) {
7206
7234
  try {
7207
7235
  const { storeCodeVerifier: storeCodeVerifier2 } = await Promise.resolve().then(() => (init_server(), exports_server));
@@ -1 +1 @@
1
- {"version":3,"file":"base-handler.d.ts","sourceRoot":"","sources":["../../../src/adapters/base-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-handler.d.ts","sourceRoot":"","sources":["../../../src/adapters/base-handler.ts"],"names":[],"mappings":"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"}
@@ -518,6 +518,7 @@ class OAuthWindowManager {
518
518
  if (!isBrowser()) {
519
519
  throw new Error("OAuthWindowManager.openRedirect() can only be used in browser environments");
520
520
  }
521
+ console.log("[OAuthWindowManager] Redirecting to:", url.substring(0, 100) + (url.length > 100 ? "..." : ""));
521
522
  window.location.href = url;
522
523
  }
523
524
  listenForCallback(mode, timeoutMs = 5 * 60 * 1000) {
@@ -685,7 +686,13 @@ class OAuthManager {
685
686
  };
686
687
  this.pendingAuths.set(state, pendingAuth);
687
688
  this.savePendingAuthToStorage(state, pendingAuth);
689
+ console.log("[OAuth] Requesting authorization URL, flow mode:", this.flowConfig.mode);
688
690
  const authUrl = await this.getAuthorizationUrl(provider, state, codeChallenge, config.redirectUri, codeVerifier);
691
+ console.log("[OAuth] Received authorization URL, length:", authUrl?.length);
692
+ if (!authUrl || authUrl.trim() === "") {
693
+ throw new Error("Received empty authorization URL from server");
694
+ }
695
+ console.log("[OAuth] Opening authorization URL, mode:", this.flowConfig.mode);
689
696
  if (this.flowConfig.mode === "popup") {
690
697
  this.windowManager.openPopup(authUrl, this.flowConfig.popupOptions);
691
698
  try {
@@ -696,6 +703,7 @@ class OAuthManager {
696
703
  throw error;
697
704
  }
698
705
  } else {
706
+ console.log("[OAuth] Redirecting to authorization URL:", authUrl.substring(0, 100) + (authUrl.length > 100 ? "..." : ""));
699
707
  this.windowManager.openRedirect(authUrl);
700
708
  }
701
709
  }
@@ -890,6 +898,7 @@ class OAuthManager {
890
898
  return;
891
899
  }
892
900
  if (this.skipLocalStorage) {
901
+ console.log(`[OAuth] Token for ${provider} stored in memory only (skipLocalStorage: true). Configure setProviderToken/getProviderToken callbacks for persistence.`);
893
902
  return;
894
903
  }
895
904
  if (typeof window !== "undefined" && window.localStorage) {
@@ -910,6 +919,9 @@ class OAuthManager {
910
919
  return;
911
920
  }
912
921
  }
922
+ if (this.skipLocalStorage) {
923
+ return;
924
+ }
913
925
  if (typeof window !== "undefined" && window.localStorage) {
914
926
  try {
915
927
  const key = `integrate_token_${provider}`;
@@ -1056,6 +1068,16 @@ class OAuthManager {
1056
1068
  throw new Error(`Failed to get authorization URL: ${error}`);
1057
1069
  }
1058
1070
  const data = await response.json();
1071
+ if (!data.authorizationUrl) {
1072
+ console.error("[OAuth] Authorization URL is missing from response:", data);
1073
+ throw new Error("Authorization URL is missing from server response");
1074
+ }
1075
+ if (typeof data.authorizationUrl !== "string" || data.authorizationUrl.trim() === "") {
1076
+ console.error("[OAuth] Invalid authorization URL received:", data.authorizationUrl);
1077
+ throw new Error("Invalid authorization URL received from server");
1078
+ }
1079
+ const urlPreview = data.authorizationUrl.length > 100 ? data.authorizationUrl.substring(0, 100) + "..." : data.authorizationUrl;
1080
+ console.log("[OAuth] Received authorization URL from API route:", urlPreview);
1059
1081
  return data.authorizationUrl;
1060
1082
  }
1061
1083
  async exchangeCodeForToken(provider, code, codeVerifier, state) {
@@ -7202,6 +7224,12 @@ class OAuthHandler {
7202
7224
  }
7203
7225
  const data = await response.json();
7204
7226
  const result = data;
7227
+ if (!result.authorizationUrl) {
7228
+ console.error("[OAuth] MCP server did not return authorizationUrl:", data);
7229
+ throw new Error("MCP server failed to return authorization URL");
7230
+ }
7231
+ const urlPreview = result.authorizationUrl.length > 100 ? result.authorizationUrl.substring(0, 100) + "..." : result.authorizationUrl;
7232
+ console.log("[OAuth] Generated authorization URL:", urlPreview);
7205
7233
  if (authorizeRequest.codeVerifier) {
7206
7234
  try {
7207
7235
  const { storeCodeVerifier: storeCodeVerifier2 } = await Promise.resolve().then(() => (init_server(), exports_server));
@@ -518,6 +518,7 @@ class OAuthWindowManager {
518
518
  if (!isBrowser()) {
519
519
  throw new Error("OAuthWindowManager.openRedirect() can only be used in browser environments");
520
520
  }
521
+ console.log("[OAuthWindowManager] Redirecting to:", url.substring(0, 100) + (url.length > 100 ? "..." : ""));
521
522
  window.location.href = url;
522
523
  }
523
524
  listenForCallback(mode, timeoutMs = 5 * 60 * 1000) {
@@ -685,7 +686,13 @@ class OAuthManager {
685
686
  };
686
687
  this.pendingAuths.set(state, pendingAuth);
687
688
  this.savePendingAuthToStorage(state, pendingAuth);
689
+ console.log("[OAuth] Requesting authorization URL, flow mode:", this.flowConfig.mode);
688
690
  const authUrl = await this.getAuthorizationUrl(provider, state, codeChallenge, config.redirectUri, codeVerifier);
691
+ console.log("[OAuth] Received authorization URL, length:", authUrl?.length);
692
+ if (!authUrl || authUrl.trim() === "") {
693
+ throw new Error("Received empty authorization URL from server");
694
+ }
695
+ console.log("[OAuth] Opening authorization URL, mode:", this.flowConfig.mode);
689
696
  if (this.flowConfig.mode === "popup") {
690
697
  this.windowManager.openPopup(authUrl, this.flowConfig.popupOptions);
691
698
  try {
@@ -696,6 +703,7 @@ class OAuthManager {
696
703
  throw error;
697
704
  }
698
705
  } else {
706
+ console.log("[OAuth] Redirecting to authorization URL:", authUrl.substring(0, 100) + (authUrl.length > 100 ? "..." : ""));
699
707
  this.windowManager.openRedirect(authUrl);
700
708
  }
701
709
  }
@@ -890,6 +898,7 @@ class OAuthManager {
890
898
  return;
891
899
  }
892
900
  if (this.skipLocalStorage) {
901
+ console.log(`[OAuth] Token for ${provider} stored in memory only (skipLocalStorage: true). Configure setProviderToken/getProviderToken callbacks for persistence.`);
893
902
  return;
894
903
  }
895
904
  if (typeof window !== "undefined" && window.localStorage) {
@@ -910,6 +919,9 @@ class OAuthManager {
910
919
  return;
911
920
  }
912
921
  }
922
+ if (this.skipLocalStorage) {
923
+ return;
924
+ }
913
925
  if (typeof window !== "undefined" && window.localStorage) {
914
926
  try {
915
927
  const key = `integrate_token_${provider}`;
@@ -1056,6 +1068,16 @@ class OAuthManager {
1056
1068
  throw new Error(`Failed to get authorization URL: ${error}`);
1057
1069
  }
1058
1070
  const data = await response.json();
1071
+ if (!data.authorizationUrl) {
1072
+ console.error("[OAuth] Authorization URL is missing from response:", data);
1073
+ throw new Error("Authorization URL is missing from server response");
1074
+ }
1075
+ if (typeof data.authorizationUrl !== "string" || data.authorizationUrl.trim() === "") {
1076
+ console.error("[OAuth] Invalid authorization URL received:", data.authorizationUrl);
1077
+ throw new Error("Invalid authorization URL received from server");
1078
+ }
1079
+ const urlPreview = data.authorizationUrl.length > 100 ? data.authorizationUrl.substring(0, 100) + "..." : data.authorizationUrl;
1080
+ console.log("[OAuth] Received authorization URL from API route:", urlPreview);
1059
1081
  return data.authorizationUrl;
1060
1082
  }
1061
1083
  async exchangeCodeForToken(provider, code, codeVerifier, state) {
@@ -7202,6 +7224,12 @@ class OAuthHandler {
7202
7224
  }
7203
7225
  const data = await response.json();
7204
7226
  const result = data;
7227
+ if (!result.authorizationUrl) {
7228
+ console.error("[OAuth] MCP server did not return authorizationUrl:", data);
7229
+ throw new Error("MCP server failed to return authorization URL");
7230
+ }
7231
+ const urlPreview = result.authorizationUrl.length > 100 ? result.authorizationUrl.substring(0, 100) + "..." : result.authorizationUrl;
7232
+ console.log("[OAuth] Generated authorization URL:", urlPreview);
7205
7233
  if (authorizeRequest.codeVerifier) {
7206
7234
  try {
7207
7235
  const { storeCodeVerifier: storeCodeVerifier2 } = await Promise.resolve().then(() => (init_server(), exports_server));
@@ -518,6 +518,7 @@ class OAuthWindowManager {
518
518
  if (!isBrowser()) {
519
519
  throw new Error("OAuthWindowManager.openRedirect() can only be used in browser environments");
520
520
  }
521
+ console.log("[OAuthWindowManager] Redirecting to:", url.substring(0, 100) + (url.length > 100 ? "..." : ""));
521
522
  window.location.href = url;
522
523
  }
523
524
  listenForCallback(mode, timeoutMs = 5 * 60 * 1000) {
@@ -685,7 +686,13 @@ class OAuthManager {
685
686
  };
686
687
  this.pendingAuths.set(state, pendingAuth);
687
688
  this.savePendingAuthToStorage(state, pendingAuth);
689
+ console.log("[OAuth] Requesting authorization URL, flow mode:", this.flowConfig.mode);
688
690
  const authUrl = await this.getAuthorizationUrl(provider, state, codeChallenge, config.redirectUri, codeVerifier);
691
+ console.log("[OAuth] Received authorization URL, length:", authUrl?.length);
692
+ if (!authUrl || authUrl.trim() === "") {
693
+ throw new Error("Received empty authorization URL from server");
694
+ }
695
+ console.log("[OAuth] Opening authorization URL, mode:", this.flowConfig.mode);
689
696
  if (this.flowConfig.mode === "popup") {
690
697
  this.windowManager.openPopup(authUrl, this.flowConfig.popupOptions);
691
698
  try {
@@ -696,6 +703,7 @@ class OAuthManager {
696
703
  throw error;
697
704
  }
698
705
  } else {
706
+ console.log("[OAuth] Redirecting to authorization URL:", authUrl.substring(0, 100) + (authUrl.length > 100 ? "..." : ""));
699
707
  this.windowManager.openRedirect(authUrl);
700
708
  }
701
709
  }
@@ -890,6 +898,7 @@ class OAuthManager {
890
898
  return;
891
899
  }
892
900
  if (this.skipLocalStorage) {
901
+ console.log(`[OAuth] Token for ${provider} stored in memory only (skipLocalStorage: true). Configure setProviderToken/getProviderToken callbacks for persistence.`);
893
902
  return;
894
903
  }
895
904
  if (typeof window !== "undefined" && window.localStorage) {
@@ -910,6 +919,9 @@ class OAuthManager {
910
919
  return;
911
920
  }
912
921
  }
922
+ if (this.skipLocalStorage) {
923
+ return;
924
+ }
913
925
  if (typeof window !== "undefined" && window.localStorage) {
914
926
  try {
915
927
  const key = `integrate_token_${provider}`;
@@ -1056,6 +1068,16 @@ class OAuthManager {
1056
1068
  throw new Error(`Failed to get authorization URL: ${error}`);
1057
1069
  }
1058
1070
  const data = await response.json();
1071
+ if (!data.authorizationUrl) {
1072
+ console.error("[OAuth] Authorization URL is missing from response:", data);
1073
+ throw new Error("Authorization URL is missing from server response");
1074
+ }
1075
+ if (typeof data.authorizationUrl !== "string" || data.authorizationUrl.trim() === "") {
1076
+ console.error("[OAuth] Invalid authorization URL received:", data.authorizationUrl);
1077
+ throw new Error("Invalid authorization URL received from server");
1078
+ }
1079
+ const urlPreview = data.authorizationUrl.length > 100 ? data.authorizationUrl.substring(0, 100) + "..." : data.authorizationUrl;
1080
+ console.log("[OAuth] Received authorization URL from API route:", urlPreview);
1059
1081
  return data.authorizationUrl;
1060
1082
  }
1061
1083
  async exchangeCodeForToken(provider, code, codeVerifier, state) {
@@ -7202,6 +7224,12 @@ class OAuthHandler {
7202
7224
  }
7203
7225
  const data = await response.json();
7204
7226
  const result = data;
7227
+ if (!result.authorizationUrl) {
7228
+ console.error("[OAuth] MCP server did not return authorizationUrl:", data);
7229
+ throw new Error("MCP server failed to return authorization URL");
7230
+ }
7231
+ const urlPreview = result.authorizationUrl.length > 100 ? result.authorizationUrl.substring(0, 100) + "..." : result.authorizationUrl;
7232
+ console.log("[OAuth] Generated authorization URL:", urlPreview);
7205
7233
  if (authorizeRequest.codeVerifier) {
7206
7234
  try {
7207
7235
  const { storeCodeVerifier: storeCodeVerifier2 } = await Promise.resolve().then(() => (init_server(), exports_server));
@@ -518,6 +518,7 @@ class OAuthWindowManager {
518
518
  if (!isBrowser()) {
519
519
  throw new Error("OAuthWindowManager.openRedirect() can only be used in browser environments");
520
520
  }
521
+ console.log("[OAuthWindowManager] Redirecting to:", url.substring(0, 100) + (url.length > 100 ? "..." : ""));
521
522
  window.location.href = url;
522
523
  }
523
524
  listenForCallback(mode, timeoutMs = 5 * 60 * 1000) {
@@ -685,7 +686,13 @@ class OAuthManager {
685
686
  };
686
687
  this.pendingAuths.set(state, pendingAuth);
687
688
  this.savePendingAuthToStorage(state, pendingAuth);
689
+ console.log("[OAuth] Requesting authorization URL, flow mode:", this.flowConfig.mode);
688
690
  const authUrl = await this.getAuthorizationUrl(provider, state, codeChallenge, config.redirectUri, codeVerifier);
691
+ console.log("[OAuth] Received authorization URL, length:", authUrl?.length);
692
+ if (!authUrl || authUrl.trim() === "") {
693
+ throw new Error("Received empty authorization URL from server");
694
+ }
695
+ console.log("[OAuth] Opening authorization URL, mode:", this.flowConfig.mode);
689
696
  if (this.flowConfig.mode === "popup") {
690
697
  this.windowManager.openPopup(authUrl, this.flowConfig.popupOptions);
691
698
  try {
@@ -696,6 +703,7 @@ class OAuthManager {
696
703
  throw error;
697
704
  }
698
705
  } else {
706
+ console.log("[OAuth] Redirecting to authorization URL:", authUrl.substring(0, 100) + (authUrl.length > 100 ? "..." : ""));
699
707
  this.windowManager.openRedirect(authUrl);
700
708
  }
701
709
  }
@@ -890,6 +898,7 @@ class OAuthManager {
890
898
  return;
891
899
  }
892
900
  if (this.skipLocalStorage) {
901
+ console.log(`[OAuth] Token for ${provider} stored in memory only (skipLocalStorage: true). Configure setProviderToken/getProviderToken callbacks for persistence.`);
893
902
  return;
894
903
  }
895
904
  if (typeof window !== "undefined" && window.localStorage) {
@@ -910,6 +919,9 @@ class OAuthManager {
910
919
  return;
911
920
  }
912
921
  }
922
+ if (this.skipLocalStorage) {
923
+ return;
924
+ }
913
925
  if (typeof window !== "undefined" && window.localStorage) {
914
926
  try {
915
927
  const key = `integrate_token_${provider}`;
@@ -1056,6 +1068,16 @@ class OAuthManager {
1056
1068
  throw new Error(`Failed to get authorization URL: ${error}`);
1057
1069
  }
1058
1070
  const data = await response.json();
1071
+ if (!data.authorizationUrl) {
1072
+ console.error("[OAuth] Authorization URL is missing from response:", data);
1073
+ throw new Error("Authorization URL is missing from server response");
1074
+ }
1075
+ if (typeof data.authorizationUrl !== "string" || data.authorizationUrl.trim() === "") {
1076
+ console.error("[OAuth] Invalid authorization URL received:", data.authorizationUrl);
1077
+ throw new Error("Invalid authorization URL received from server");
1078
+ }
1079
+ const urlPreview = data.authorizationUrl.length > 100 ? data.authorizationUrl.substring(0, 100) + "..." : data.authorizationUrl;
1080
+ console.log("[OAuth] Received authorization URL from API route:", urlPreview);
1059
1081
  return data.authorizationUrl;
1060
1082
  }
1061
1083
  async exchangeCodeForToken(provider, code, codeVerifier, state) {
@@ -7202,6 +7224,12 @@ class OAuthHandler {
7202
7224
  }
7203
7225
  const data = await response.json();
7204
7226
  const result = data;
7227
+ if (!result.authorizationUrl) {
7228
+ console.error("[OAuth] MCP server did not return authorizationUrl:", data);
7229
+ throw new Error("MCP server failed to return authorization URL");
7230
+ }
7231
+ const urlPreview = result.authorizationUrl.length > 100 ? result.authorizationUrl.substring(0, 100) + "..." : result.authorizationUrl;
7232
+ console.log("[OAuth] Generated authorization URL:", urlPreview);
7205
7233
  if (authorizeRequest.codeVerifier) {
7206
7234
  try {
7207
7235
  const { storeCodeVerifier: storeCodeVerifier2 } = await Promise.resolve().then(() => (init_server(), exports_server));
@@ -518,6 +518,7 @@ class OAuthWindowManager {
518
518
  if (!isBrowser()) {
519
519
  throw new Error("OAuthWindowManager.openRedirect() can only be used in browser environments");
520
520
  }
521
+ console.log("[OAuthWindowManager] Redirecting to:", url.substring(0, 100) + (url.length > 100 ? "..." : ""));
521
522
  window.location.href = url;
522
523
  }
523
524
  listenForCallback(mode, timeoutMs = 5 * 60 * 1000) {
@@ -685,7 +686,13 @@ class OAuthManager {
685
686
  };
686
687
  this.pendingAuths.set(state, pendingAuth);
687
688
  this.savePendingAuthToStorage(state, pendingAuth);
689
+ console.log("[OAuth] Requesting authorization URL, flow mode:", this.flowConfig.mode);
688
690
  const authUrl = await this.getAuthorizationUrl(provider, state, codeChallenge, config.redirectUri, codeVerifier);
691
+ console.log("[OAuth] Received authorization URL, length:", authUrl?.length);
692
+ if (!authUrl || authUrl.trim() === "") {
693
+ throw new Error("Received empty authorization URL from server");
694
+ }
695
+ console.log("[OAuth] Opening authorization URL, mode:", this.flowConfig.mode);
689
696
  if (this.flowConfig.mode === "popup") {
690
697
  this.windowManager.openPopup(authUrl, this.flowConfig.popupOptions);
691
698
  try {
@@ -696,6 +703,7 @@ class OAuthManager {
696
703
  throw error;
697
704
  }
698
705
  } else {
706
+ console.log("[OAuth] Redirecting to authorization URL:", authUrl.substring(0, 100) + (authUrl.length > 100 ? "..." : ""));
699
707
  this.windowManager.openRedirect(authUrl);
700
708
  }
701
709
  }
@@ -890,6 +898,7 @@ class OAuthManager {
890
898
  return;
891
899
  }
892
900
  if (this.skipLocalStorage) {
901
+ console.log(`[OAuth] Token for ${provider} stored in memory only (skipLocalStorage: true). Configure setProviderToken/getProviderToken callbacks for persistence.`);
893
902
  return;
894
903
  }
895
904
  if (typeof window !== "undefined" && window.localStorage) {
@@ -910,6 +919,9 @@ class OAuthManager {
910
919
  return;
911
920
  }
912
921
  }
922
+ if (this.skipLocalStorage) {
923
+ return;
924
+ }
913
925
  if (typeof window !== "undefined" && window.localStorage) {
914
926
  try {
915
927
  const key = `integrate_token_${provider}`;
@@ -1056,6 +1068,16 @@ class OAuthManager {
1056
1068
  throw new Error(`Failed to get authorization URL: ${error}`);
1057
1069
  }
1058
1070
  const data = await response.json();
1071
+ if (!data.authorizationUrl) {
1072
+ console.error("[OAuth] Authorization URL is missing from response:", data);
1073
+ throw new Error("Authorization URL is missing from server response");
1074
+ }
1075
+ if (typeof data.authorizationUrl !== "string" || data.authorizationUrl.trim() === "") {
1076
+ console.error("[OAuth] Invalid authorization URL received:", data.authorizationUrl);
1077
+ throw new Error("Invalid authorization URL received from server");
1078
+ }
1079
+ const urlPreview = data.authorizationUrl.length > 100 ? data.authorizationUrl.substring(0, 100) + "..." : data.authorizationUrl;
1080
+ console.log("[OAuth] Received authorization URL from API route:", urlPreview);
1059
1081
  return data.authorizationUrl;
1060
1082
  }
1061
1083
  async exchangeCodeForToken(provider, code, codeVerifier, state) {
@@ -7202,6 +7224,12 @@ class OAuthHandler {
7202
7224
  }
7203
7225
  const data = await response.json();
7204
7226
  const result = data;
7227
+ if (!result.authorizationUrl) {
7228
+ console.error("[OAuth] MCP server did not return authorizationUrl:", data);
7229
+ throw new Error("MCP server failed to return authorization URL");
7230
+ }
7231
+ const urlPreview = result.authorizationUrl.length > 100 ? result.authorizationUrl.substring(0, 100) + "..." : result.authorizationUrl;
7232
+ console.log("[OAuth] Generated authorization URL:", urlPreview);
7205
7233
  if (authorizeRequest.codeVerifier) {
7206
7234
  try {
7207
7235
  const { storeCodeVerifier: storeCodeVerifier2 } = await Promise.resolve().then(() => (init_server(), exports_server));
@@ -518,6 +518,7 @@ class OAuthWindowManager {
518
518
  if (!isBrowser()) {
519
519
  throw new Error("OAuthWindowManager.openRedirect() can only be used in browser environments");
520
520
  }
521
+ console.log("[OAuthWindowManager] Redirecting to:", url.substring(0, 100) + (url.length > 100 ? "..." : ""));
521
522
  window.location.href = url;
522
523
  }
523
524
  listenForCallback(mode, timeoutMs = 5 * 60 * 1000) {
@@ -685,7 +686,13 @@ class OAuthManager {
685
686
  };
686
687
  this.pendingAuths.set(state, pendingAuth);
687
688
  this.savePendingAuthToStorage(state, pendingAuth);
689
+ console.log("[OAuth] Requesting authorization URL, flow mode:", this.flowConfig.mode);
688
690
  const authUrl = await this.getAuthorizationUrl(provider, state, codeChallenge, config.redirectUri, codeVerifier);
691
+ console.log("[OAuth] Received authorization URL, length:", authUrl?.length);
692
+ if (!authUrl || authUrl.trim() === "") {
693
+ throw new Error("Received empty authorization URL from server");
694
+ }
695
+ console.log("[OAuth] Opening authorization URL, mode:", this.flowConfig.mode);
689
696
  if (this.flowConfig.mode === "popup") {
690
697
  this.windowManager.openPopup(authUrl, this.flowConfig.popupOptions);
691
698
  try {
@@ -696,6 +703,7 @@ class OAuthManager {
696
703
  throw error;
697
704
  }
698
705
  } else {
706
+ console.log("[OAuth] Redirecting to authorization URL:", authUrl.substring(0, 100) + (authUrl.length > 100 ? "..." : ""));
699
707
  this.windowManager.openRedirect(authUrl);
700
708
  }
701
709
  }
@@ -890,6 +898,7 @@ class OAuthManager {
890
898
  return;
891
899
  }
892
900
  if (this.skipLocalStorage) {
901
+ console.log(`[OAuth] Token for ${provider} stored in memory only (skipLocalStorage: true). Configure setProviderToken/getProviderToken callbacks for persistence.`);
893
902
  return;
894
903
  }
895
904
  if (typeof window !== "undefined" && window.localStorage) {
@@ -910,6 +919,9 @@ class OAuthManager {
910
919
  return;
911
920
  }
912
921
  }
922
+ if (this.skipLocalStorage) {
923
+ return;
924
+ }
913
925
  if (typeof window !== "undefined" && window.localStorage) {
914
926
  try {
915
927
  const key = `integrate_token_${provider}`;
@@ -1056,6 +1068,16 @@ class OAuthManager {
1056
1068
  throw new Error(`Failed to get authorization URL: ${error}`);
1057
1069
  }
1058
1070
  const data = await response.json();
1071
+ if (!data.authorizationUrl) {
1072
+ console.error("[OAuth] Authorization URL is missing from response:", data);
1073
+ throw new Error("Authorization URL is missing from server response");
1074
+ }
1075
+ if (typeof data.authorizationUrl !== "string" || data.authorizationUrl.trim() === "") {
1076
+ console.error("[OAuth] Invalid authorization URL received:", data.authorizationUrl);
1077
+ throw new Error("Invalid authorization URL received from server");
1078
+ }
1079
+ const urlPreview = data.authorizationUrl.length > 100 ? data.authorizationUrl.substring(0, 100) + "..." : data.authorizationUrl;
1080
+ console.log("[OAuth] Received authorization URL from API route:", urlPreview);
1059
1081
  return data.authorizationUrl;
1060
1082
  }
1061
1083
  async exchangeCodeForToken(provider, code, codeVerifier, state) {
@@ -7202,6 +7224,12 @@ class OAuthHandler {
7202
7224
  }
7203
7225
  const data = await response.json();
7204
7226
  const result = data;
7227
+ if (!result.authorizationUrl) {
7228
+ console.error("[OAuth] MCP server did not return authorizationUrl:", data);
7229
+ throw new Error("MCP server failed to return authorization URL");
7230
+ }
7231
+ const urlPreview = result.authorizationUrl.length > 100 ? result.authorizationUrl.substring(0, 100) + "..." : result.authorizationUrl;
7232
+ console.log("[OAuth] Generated authorization URL:", urlPreview);
7205
7233
  if (authorizeRequest.codeVerifier) {
7206
7234
  try {
7207
7235
  const { storeCodeVerifier: storeCodeVerifier2 } = await Promise.resolve().then(() => (init_server(), exports_server));
package/dist/index.js CHANGED
@@ -534,6 +534,7 @@ class OAuthWindowManager {
534
534
  if (!isBrowser()) {
535
535
  throw new Error("OAuthWindowManager.openRedirect() can only be used in browser environments");
536
536
  }
537
+ console.log("[OAuthWindowManager] Redirecting to:", url.substring(0, 100) + (url.length > 100 ? "..." : ""));
537
538
  window.location.href = url;
538
539
  }
539
540
  listenForCallback(mode, timeoutMs = 5 * 60 * 1000) {
@@ -718,7 +719,13 @@ class OAuthManager {
718
719
  };
719
720
  this.pendingAuths.set(state, pendingAuth);
720
721
  this.savePendingAuthToStorage(state, pendingAuth);
722
+ console.log("[OAuth] Requesting authorization URL, flow mode:", this.flowConfig.mode);
721
723
  const authUrl = await this.getAuthorizationUrl(provider, state, codeChallenge, config.redirectUri, codeVerifier);
724
+ console.log("[OAuth] Received authorization URL, length:", authUrl?.length);
725
+ if (!authUrl || authUrl.trim() === "") {
726
+ throw new Error("Received empty authorization URL from server");
727
+ }
728
+ console.log("[OAuth] Opening authorization URL, mode:", this.flowConfig.mode);
722
729
  if (this.flowConfig.mode === "popup") {
723
730
  this.windowManager.openPopup(authUrl, this.flowConfig.popupOptions);
724
731
  try {
@@ -729,6 +736,7 @@ class OAuthManager {
729
736
  throw error;
730
737
  }
731
738
  } else {
739
+ console.log("[OAuth] Redirecting to authorization URL:", authUrl.substring(0, 100) + (authUrl.length > 100 ? "..." : ""));
732
740
  this.windowManager.openRedirect(authUrl);
733
741
  }
734
742
  }
@@ -923,6 +931,7 @@ class OAuthManager {
923
931
  return;
924
932
  }
925
933
  if (this.skipLocalStorage) {
934
+ console.log(`[OAuth] Token for ${provider} stored in memory only (skipLocalStorage: true). Configure setProviderToken/getProviderToken callbacks for persistence.`);
926
935
  return;
927
936
  }
928
937
  if (typeof window !== "undefined" && window.localStorage) {
@@ -943,6 +952,9 @@ class OAuthManager {
943
952
  return;
944
953
  }
945
954
  }
955
+ if (this.skipLocalStorage) {
956
+ return;
957
+ }
946
958
  if (typeof window !== "undefined" && window.localStorage) {
947
959
  try {
948
960
  const key = `integrate_token_${provider}`;
@@ -1089,6 +1101,16 @@ class OAuthManager {
1089
1101
  throw new Error(`Failed to get authorization URL: ${error}`);
1090
1102
  }
1091
1103
  const data = await response.json();
1104
+ if (!data.authorizationUrl) {
1105
+ console.error("[OAuth] Authorization URL is missing from response:", data);
1106
+ throw new Error("Authorization URL is missing from server response");
1107
+ }
1108
+ if (typeof data.authorizationUrl !== "string" || data.authorizationUrl.trim() === "") {
1109
+ console.error("[OAuth] Invalid authorization URL received:", data.authorizationUrl);
1110
+ throw new Error("Invalid authorization URL received from server");
1111
+ }
1112
+ const urlPreview = data.authorizationUrl.length > 100 ? data.authorizationUrl.substring(0, 100) + "..." : data.authorizationUrl;
1113
+ console.log("[OAuth] Received authorization URL from API route:", urlPreview);
1092
1114
  return data.authorizationUrl;
1093
1115
  }
1094
1116
  async exchangeCodeForToken(provider, code, codeVerifier, state) {
@@ -7573,6 +7595,12 @@ class OAuthHandler {
7573
7595
  }
7574
7596
  const data = await response.json();
7575
7597
  const result = data;
7598
+ if (!result.authorizationUrl) {
7599
+ console.error("[OAuth] MCP server did not return authorizationUrl:", data);
7600
+ throw new Error("MCP server failed to return authorization URL");
7601
+ }
7602
+ const urlPreview = result.authorizationUrl.length > 100 ? result.authorizationUrl.substring(0, 100) + "..." : result.authorizationUrl;
7603
+ console.log("[OAuth] Generated authorization URL:", urlPreview);
7576
7604
  if (authorizeRequest.codeVerifier) {
7577
7605
  try {
7578
7606
  const { storeCodeVerifier: storeCodeVerifier2 } = await Promise.resolve().then(() => (init_server(), exports_server));
package/dist/oauth.js CHANGED
@@ -518,6 +518,7 @@ class OAuthWindowManager {
518
518
  if (!isBrowser()) {
519
519
  throw new Error("OAuthWindowManager.openRedirect() can only be used in browser environments");
520
520
  }
521
+ console.log("[OAuthWindowManager] Redirecting to:", url.substring(0, 100) + (url.length > 100 ? "..." : ""));
521
522
  window.location.href = url;
522
523
  }
523
524
  listenForCallback(mode, timeoutMs = 5 * 60 * 1000) {
@@ -685,7 +686,13 @@ class OAuthManager {
685
686
  };
686
687
  this.pendingAuths.set(state, pendingAuth);
687
688
  this.savePendingAuthToStorage(state, pendingAuth);
689
+ console.log("[OAuth] Requesting authorization URL, flow mode:", this.flowConfig.mode);
688
690
  const authUrl = await this.getAuthorizationUrl(provider, state, codeChallenge, config.redirectUri, codeVerifier);
691
+ console.log("[OAuth] Received authorization URL, length:", authUrl?.length);
692
+ if (!authUrl || authUrl.trim() === "") {
693
+ throw new Error("Received empty authorization URL from server");
694
+ }
695
+ console.log("[OAuth] Opening authorization URL, mode:", this.flowConfig.mode);
689
696
  if (this.flowConfig.mode === "popup") {
690
697
  this.windowManager.openPopup(authUrl, this.flowConfig.popupOptions);
691
698
  try {
@@ -696,6 +703,7 @@ class OAuthManager {
696
703
  throw error;
697
704
  }
698
705
  } else {
706
+ console.log("[OAuth] Redirecting to authorization URL:", authUrl.substring(0, 100) + (authUrl.length > 100 ? "..." : ""));
699
707
  this.windowManager.openRedirect(authUrl);
700
708
  }
701
709
  }
@@ -890,6 +898,7 @@ class OAuthManager {
890
898
  return;
891
899
  }
892
900
  if (this.skipLocalStorage) {
901
+ console.log(`[OAuth] Token for ${provider} stored in memory only (skipLocalStorage: true). Configure setProviderToken/getProviderToken callbacks for persistence.`);
893
902
  return;
894
903
  }
895
904
  if (typeof window !== "undefined" && window.localStorage) {
@@ -910,6 +919,9 @@ class OAuthManager {
910
919
  return;
911
920
  }
912
921
  }
922
+ if (this.skipLocalStorage) {
923
+ return;
924
+ }
913
925
  if (typeof window !== "undefined" && window.localStorage) {
914
926
  try {
915
927
  const key = `integrate_token_${provider}`;
@@ -1056,6 +1068,16 @@ class OAuthManager {
1056
1068
  throw new Error(`Failed to get authorization URL: ${error}`);
1057
1069
  }
1058
1070
  const data = await response.json();
1071
+ if (!data.authorizationUrl) {
1072
+ console.error("[OAuth] Authorization URL is missing from response:", data);
1073
+ throw new Error("Authorization URL is missing from server response");
1074
+ }
1075
+ if (typeof data.authorizationUrl !== "string" || data.authorizationUrl.trim() === "") {
1076
+ console.error("[OAuth] Invalid authorization URL received:", data.authorizationUrl);
1077
+ throw new Error("Invalid authorization URL received from server");
1078
+ }
1079
+ const urlPreview = data.authorizationUrl.length > 100 ? data.authorizationUrl.substring(0, 100) + "..." : data.authorizationUrl;
1080
+ console.log("[OAuth] Received authorization URL from API route:", urlPreview);
1059
1081
  return data.authorizationUrl;
1060
1082
  }
1061
1083
  async exchangeCodeForToken(provider, code, codeVerifier, state) {
@@ -7391,6 +7413,12 @@ class OAuthHandler {
7391
7413
  }
7392
7414
  const data = await response.json();
7393
7415
  const result = data;
7416
+ if (!result.authorizationUrl) {
7417
+ console.error("[OAuth] MCP server did not return authorizationUrl:", data);
7418
+ throw new Error("MCP server failed to return authorization URL");
7419
+ }
7420
+ const urlPreview = result.authorizationUrl.length > 100 ? result.authorizationUrl.substring(0, 100) + "..." : result.authorizationUrl;
7421
+ console.log("[OAuth] Generated authorization URL:", urlPreview);
7394
7422
  if (authorizeRequest.codeVerifier) {
7395
7423
  try {
7396
7424
  const { storeCodeVerifier: storeCodeVerifier2 } = await Promise.resolve().then(() => (init_server(), exports_server));
package/dist/server.js CHANGED
@@ -518,6 +518,7 @@ class OAuthWindowManager {
518
518
  if (!isBrowser()) {
519
519
  throw new Error("OAuthWindowManager.openRedirect() can only be used in browser environments");
520
520
  }
521
+ console.log("[OAuthWindowManager] Redirecting to:", url.substring(0, 100) + (url.length > 100 ? "..." : ""));
521
522
  window.location.href = url;
522
523
  }
523
524
  listenForCallback(mode, timeoutMs = 5 * 60 * 1000) {
@@ -685,7 +686,13 @@ class OAuthManager {
685
686
  };
686
687
  this.pendingAuths.set(state, pendingAuth);
687
688
  this.savePendingAuthToStorage(state, pendingAuth);
689
+ console.log("[OAuth] Requesting authorization URL, flow mode:", this.flowConfig.mode);
688
690
  const authUrl = await this.getAuthorizationUrl(provider, state, codeChallenge, config.redirectUri, codeVerifier);
691
+ console.log("[OAuth] Received authorization URL, length:", authUrl?.length);
692
+ if (!authUrl || authUrl.trim() === "") {
693
+ throw new Error("Received empty authorization URL from server");
694
+ }
695
+ console.log("[OAuth] Opening authorization URL, mode:", this.flowConfig.mode);
689
696
  if (this.flowConfig.mode === "popup") {
690
697
  this.windowManager.openPopup(authUrl, this.flowConfig.popupOptions);
691
698
  try {
@@ -696,6 +703,7 @@ class OAuthManager {
696
703
  throw error;
697
704
  }
698
705
  } else {
706
+ console.log("[OAuth] Redirecting to authorization URL:", authUrl.substring(0, 100) + (authUrl.length > 100 ? "..." : ""));
699
707
  this.windowManager.openRedirect(authUrl);
700
708
  }
701
709
  }
@@ -890,6 +898,7 @@ class OAuthManager {
890
898
  return;
891
899
  }
892
900
  if (this.skipLocalStorage) {
901
+ console.log(`[OAuth] Token for ${provider} stored in memory only (skipLocalStorage: true). Configure setProviderToken/getProviderToken callbacks for persistence.`);
893
902
  return;
894
903
  }
895
904
  if (typeof window !== "undefined" && window.localStorage) {
@@ -910,6 +919,9 @@ class OAuthManager {
910
919
  return;
911
920
  }
912
921
  }
922
+ if (this.skipLocalStorage) {
923
+ return;
924
+ }
913
925
  if (typeof window !== "undefined" && window.localStorage) {
914
926
  try {
915
927
  const key = `integrate_token_${provider}`;
@@ -1056,6 +1068,16 @@ class OAuthManager {
1056
1068
  throw new Error(`Failed to get authorization URL: ${error}`);
1057
1069
  }
1058
1070
  const data = await response.json();
1071
+ if (!data.authorizationUrl) {
1072
+ console.error("[OAuth] Authorization URL is missing from response:", data);
1073
+ throw new Error("Authorization URL is missing from server response");
1074
+ }
1075
+ if (typeof data.authorizationUrl !== "string" || data.authorizationUrl.trim() === "") {
1076
+ console.error("[OAuth] Invalid authorization URL received:", data.authorizationUrl);
1077
+ throw new Error("Invalid authorization URL received from server");
1078
+ }
1079
+ const urlPreview = data.authorizationUrl.length > 100 ? data.authorizationUrl.substring(0, 100) + "..." : data.authorizationUrl;
1080
+ console.log("[OAuth] Received authorization URL from API route:", urlPreview);
1059
1081
  return data.authorizationUrl;
1060
1082
  }
1061
1083
  async exchangeCodeForToken(provider, code, codeVerifier, state) {
@@ -2041,6 +2063,12 @@ class OAuthHandler {
2041
2063
  }
2042
2064
  const data = await response.json();
2043
2065
  const result = data;
2066
+ if (!result.authorizationUrl) {
2067
+ console.error("[OAuth] MCP server did not return authorizationUrl:", data);
2068
+ throw new Error("MCP server failed to return authorization URL");
2069
+ }
2070
+ const urlPreview = result.authorizationUrl.length > 100 ? result.authorizationUrl.substring(0, 100) + "..." : result.authorizationUrl;
2071
+ console.log("[OAuth] Generated authorization URL:", urlPreview);
2044
2072
  if (authorizeRequest.codeVerifier) {
2045
2073
  try {
2046
2074
  const { storeCodeVerifier } = await Promise.resolve().then(() => (init_server(), exports_server));
@@ -1 +1 @@
1
- {"version":3,"file":"base-handler.d.ts","sourceRoot":"","sources":["../../../src/adapters/base-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-handler.d.ts","sourceRoot":"","sources":["../../../src/adapters/base-handler.ts"],"names":[],"mappings":"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"}
@@ -187,6 +187,12 @@ export declare class OAuthManager {
187
187
  clearAllPendingAuths(): void;
188
188
  /**
189
189
  * Save provider token to database (via callback) or localStorage
190
+ *
191
+ * Storage decision logic:
192
+ * 1. If setTokenCallback is configured → use callback exclusively (no localStorage)
193
+ * 2. If skipLocalStorage is true → skip localStorage (token only in memory)
194
+ * 3. Otherwise → use localStorage (when callbacks are NOT configured AND skipLocalStorage is false)
195
+ *
190
196
  * @param provider - Provider name (e.g., 'github', 'gmail')
191
197
  * @param tokenData - Token data to store, or null to delete
192
198
  * @param context - Optional user context (userId, organizationId, etc.) for multi-tenant apps
@@ -194,6 +200,12 @@ export declare class OAuthManager {
194
200
  private saveProviderToken;
195
201
  /**
196
202
  * Load provider token from database (via callback) or localStorage
203
+ *
204
+ * Loading decision logic (mirrors saveProviderToken):
205
+ * 1. If getTokenCallback is configured → use callback exclusively (no localStorage)
206
+ * 2. If skipLocalStorage is true → skip localStorage (return undefined)
207
+ * 3. Otherwise → use localStorage (when callbacks are NOT configured AND skipLocalStorage is false)
208
+ *
197
209
  * Returns undefined if not found or invalid
198
210
  */
199
211
  private loadProviderToken;
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/oauth/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/oauth/manager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"window-manager.d.ts","sourceRoot":"","sources":["../../../src/oauth/window-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AASpE;;;;;;GAMG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,kBAAkB,CAA+C;IACzE,OAAO,CAAC,iBAAiB,CAA8C;IAEvE;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI;IA6C7D;;;;;;;;;;OAUG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQ/B;;;;;;;;;;;;;;;;;OAiBG;IACH,iBAAiB,CACf,IAAI,EAAE,OAAO,GAAG,UAAU,EAC1B,SAAS,GAAE,MAAsB,GAChC,OAAO,CAAC,mBAAmB,CAAC;IAQ/B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAkE9B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAiEjC;;OAEG;IACH,OAAO,CAAC,OAAO;IAiBf;;;OAGG;IACH,KAAK,IAAI,IAAI;CAGd;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,GAAG,IAAI,CAwBP"}
1
+ {"version":3,"file":"window-manager.d.ts","sourceRoot":"","sources":["../../../src/oauth/window-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AASpE;;;;;;GAMG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,kBAAkB,CAA+C;IACzE,OAAO,CAAC,iBAAiB,CAA8C;IAEvE;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI;IA6C7D;;;;;;;;;;OAUG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAS/B;;;;;;;;;;;;;;;;;OAiBG;IACH,iBAAiB,CACf,IAAI,EAAE,OAAO,GAAG,UAAU,EAC1B,SAAS,GAAE,MAAsB,GAChC,OAAO,CAAC,mBAAmB,CAAC;IAQ/B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAkE9B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAiEjC;;OAEG;IACH,OAAO,CAAC,OAAO;IAiBf;;;OAGG;IACH,KAAK,IAAI,IAAI;CAGd;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,GAAG,IAAI,CAwBP"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "integrate-sdk",
3
- "version": "0.8.12",
3
+ "version": "0.8.14",
4
4
  "description": "Type-safe 3rd party integration SDK for the Integrate MCP server",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",