integrate-sdk 0.8.7 → 0.8.8
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 +20 -15
- package/dist/adapters/base-handler.d.ts +2 -0
- package/dist/adapters/base-handler.d.ts.map +1 -1
- package/dist/adapters/index.js +20 -15
- package/dist/adapters/nextjs.js +20 -15
- package/dist/adapters/node.js +20 -15
- package/dist/adapters/session-detector.js +20 -15
- package/dist/adapters/svelte-kit.js +20 -15
- package/dist/adapters/tanstack-start.js +20 -15
- package/dist/index.js +20 -15
- package/dist/oauth.js +20 -15
- package/dist/server.js +20 -15
- package/dist/src/adapters/base-handler.d.ts +2 -0
- package/dist/src/adapters/base-handler.d.ts.map +1 -1
- package/dist/src/oauth/manager.d.ts.map +1 -1
- package/dist/src/server.d.ts +4 -2
- package/dist/src/server.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1079,7 +1079,8 @@ class OAuthManager {
|
|
|
1079
1079
|
codeChallenge,
|
|
1080
1080
|
codeChallengeMethod: "S256",
|
|
1081
1081
|
redirectUri,
|
|
1082
|
-
codeVerifier: this.apiBaseUrl ? codeVerifier : undefined
|
|
1082
|
+
codeVerifier: this.apiBaseUrl ? codeVerifier : undefined,
|
|
1083
|
+
frontendOrigin: this.apiBaseUrl && typeof window !== "undefined" ? window.location.origin : undefined
|
|
1083
1084
|
})
|
|
1084
1085
|
});
|
|
1085
1086
|
if (!response.ok) {
|
|
@@ -6384,16 +6385,16 @@ function cleanupExpiredCodeVerifiers() {
|
|
|
6384
6385
|
}
|
|
6385
6386
|
}
|
|
6386
6387
|
}
|
|
6387
|
-
function storeCodeVerifier(state, codeVerifier, provider) {
|
|
6388
|
+
function storeCodeVerifier(state, codeVerifier, provider, frontendOrigin) {
|
|
6388
6389
|
const expiresAt = Date.now() + 5 * 60 * 1000;
|
|
6389
|
-
codeVerifierStorage.set(state, { codeVerifier, provider, expiresAt });
|
|
6390
|
+
codeVerifierStorage.set(state, { codeVerifier, provider, frontendOrigin, expiresAt });
|
|
6390
6391
|
cleanupExpiredCodeVerifiers();
|
|
6391
6392
|
}
|
|
6392
6393
|
function getCodeVerifier(state) {
|
|
6393
6394
|
cleanupExpiredCodeVerifiers();
|
|
6394
6395
|
const entry = codeVerifierStorage.get(state);
|
|
6395
6396
|
if (entry && entry.expiresAt >= Date.now()) {
|
|
6396
|
-
return { codeVerifier: entry.codeVerifier, provider: entry.provider };
|
|
6397
|
+
return { codeVerifier: entry.codeVerifier, provider: entry.provider, frontendOrigin: entry.frontendOrigin };
|
|
6397
6398
|
}
|
|
6398
6399
|
if (entry) {
|
|
6399
6400
|
codeVerifierStorage.delete(state);
|
|
@@ -6582,7 +6583,7 @@ function createMCPServer(config) {
|
|
|
6582
6583
|
const codeVerifierEntry = getCodeVerifier(state);
|
|
6583
6584
|
if (codeVerifierEntry) {
|
|
6584
6585
|
try {
|
|
6585
|
-
const { codeVerifier, provider } = codeVerifierEntry;
|
|
6586
|
+
const { codeVerifier, provider, frontendOrigin: storedFrontendOrigin } = codeVerifierEntry;
|
|
6586
6587
|
const { OAuthHandler } = await Promise.resolve().then(() => exports_base_handler);
|
|
6587
6588
|
const oauthHandler = new OAuthHandler({
|
|
6588
6589
|
providers,
|
|
@@ -6599,15 +6600,19 @@ function createMCPServer(config) {
|
|
|
6599
6600
|
state
|
|
6600
6601
|
});
|
|
6601
6602
|
if (!frontendOrigin) {
|
|
6602
|
-
|
|
6603
|
-
|
|
6604
|
-
|
|
6605
|
-
|
|
6606
|
-
|
|
6607
|
-
|
|
6608
|
-
|
|
6609
|
-
|
|
6610
|
-
|
|
6603
|
+
if (storedFrontendOrigin) {
|
|
6604
|
+
frontendOrigin = storedFrontendOrigin;
|
|
6605
|
+
} else {
|
|
6606
|
+
const referer = request.headers.get("referer") || request.headers.get("referrer");
|
|
6607
|
+
if (referer) {
|
|
6608
|
+
try {
|
|
6609
|
+
const refererUrl = new URL(referer);
|
|
6610
|
+
frontendOrigin = refererUrl.origin;
|
|
6611
|
+
} catch {}
|
|
6612
|
+
}
|
|
6613
|
+
if (!frontendOrigin) {
|
|
6614
|
+
throw new Error("Could not determine frontend origin for redirect. Please ensure frontendOrigin is provided in the authorize request when using apiBaseUrl.");
|
|
6615
|
+
}
|
|
6611
6616
|
}
|
|
6612
6617
|
}
|
|
6613
6618
|
const frontendUrl = new URL(returnUrl, frontendOrigin);
|
|
@@ -7200,7 +7205,7 @@ class OAuthHandler {
|
|
|
7200
7205
|
if (authorizeRequest.codeVerifier) {
|
|
7201
7206
|
try {
|
|
7202
7207
|
const { storeCodeVerifier: storeCodeVerifier2 } = await Promise.resolve().then(() => (init_server(), exports_server));
|
|
7203
|
-
storeCodeVerifier2(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider);
|
|
7208
|
+
storeCodeVerifier2(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider, authorizeRequest.frontendOrigin);
|
|
7204
7209
|
} catch (error) {
|
|
7205
7210
|
console.warn("[OAuth] Failed to store codeVerifier:", error);
|
|
7206
7211
|
}
|
|
@@ -101,6 +101,8 @@ export interface AuthorizeRequest {
|
|
|
101
101
|
redirectUri?: string;
|
|
102
102
|
/** Optional codeVerifier for backend redirect flow (when apiBaseUrl is set) */
|
|
103
103
|
codeVerifier?: string;
|
|
104
|
+
/** Optional frontend origin for backend redirect flow (when apiBaseUrl is set) */
|
|
105
|
+
frontendOrigin?: string;
|
|
104
106
|
}
|
|
105
107
|
/**
|
|
106
108
|
* Response from authorize endpoint
|
|
@@ -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;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAO3D;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;QACxB,iDAAiD;QACjD,QAAQ,EAAE,MAAM,CAAC;QACjB,qDAAqD;QACrD,YAAY,EAAE,MAAM,CAAC;QACrB,qCAAqC;QACrC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,8CAA8C;QAC9C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,kFAAkF;QAClF,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC9B,CAAC,CAAC;IACH;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;;;;;;;OAcG;IACH,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,GAAG,UAAU,GAAG,SAAS,CAAC;IACnG;;;;;;;;;;;;;;;;;;OAkBG;IACH,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAClH;;;;;;;;;;;;;;;;;;OAkBG;IACH,mBAAmB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACxF;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC;
|
|
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;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAO3D;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;QACxB,iDAAiD;QACjD,QAAQ,EAAE,MAAM,CAAC;QACjB,qDAAqD;QACrD,YAAY,EAAE,MAAM,CAAC;QACrB,qCAAqC;QACrC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,8CAA8C;QAC9C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,kFAAkF;QAClF,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC9B,CAAC,CAAC;IACH;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;;;;;;;OAcG;IACH,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,GAAG,UAAU,GAAG,SAAS,CAAC;IACnG;;;;;;;;;;;;;;;;;;OAkBG;IACH,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAClH;;;;;;;;;;;;;;;;;;OAkBG;IACH,mBAAmB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACxF;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kFAAkF;IAClF,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,EAAE,MAAM,CAAC;IACzB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;QACpC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;;;GAIG;AACH,qBAAa,YAAY;IAIX,OAAO,CAAC,MAAM;IAH1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;gBAEb,MAAM,EAAE,kBAAkB;IAW9C;;OAEG;IACH,OAAO,CAAC,UAAU;IAalB;;;;;;;;;;OAUG;IACG,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAwHtF;;;;;;;;;;OAUG;IACG,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA4GnF;;;;;;;;;OASG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA4BlF;;;;;;;;;;;OAWG;IACG,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA2D1H;;;;;;;;;OASG;IACG,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAiDrG"}
|
package/dist/adapters/index.js
CHANGED
|
@@ -1079,7 +1079,8 @@ class OAuthManager {
|
|
|
1079
1079
|
codeChallenge,
|
|
1080
1080
|
codeChallengeMethod: "S256",
|
|
1081
1081
|
redirectUri,
|
|
1082
|
-
codeVerifier: this.apiBaseUrl ? codeVerifier : undefined
|
|
1082
|
+
codeVerifier: this.apiBaseUrl ? codeVerifier : undefined,
|
|
1083
|
+
frontendOrigin: this.apiBaseUrl && typeof window !== "undefined" ? window.location.origin : undefined
|
|
1083
1084
|
})
|
|
1084
1085
|
});
|
|
1085
1086
|
if (!response.ok) {
|
|
@@ -6384,16 +6385,16 @@ function cleanupExpiredCodeVerifiers() {
|
|
|
6384
6385
|
}
|
|
6385
6386
|
}
|
|
6386
6387
|
}
|
|
6387
|
-
function storeCodeVerifier(state, codeVerifier, provider) {
|
|
6388
|
+
function storeCodeVerifier(state, codeVerifier, provider, frontendOrigin) {
|
|
6388
6389
|
const expiresAt = Date.now() + 5 * 60 * 1000;
|
|
6389
|
-
codeVerifierStorage.set(state, { codeVerifier, provider, expiresAt });
|
|
6390
|
+
codeVerifierStorage.set(state, { codeVerifier, provider, frontendOrigin, expiresAt });
|
|
6390
6391
|
cleanupExpiredCodeVerifiers();
|
|
6391
6392
|
}
|
|
6392
6393
|
function getCodeVerifier(state) {
|
|
6393
6394
|
cleanupExpiredCodeVerifiers();
|
|
6394
6395
|
const entry = codeVerifierStorage.get(state);
|
|
6395
6396
|
if (entry && entry.expiresAt >= Date.now()) {
|
|
6396
|
-
return { codeVerifier: entry.codeVerifier, provider: entry.provider };
|
|
6397
|
+
return { codeVerifier: entry.codeVerifier, provider: entry.provider, frontendOrigin: entry.frontendOrigin };
|
|
6397
6398
|
}
|
|
6398
6399
|
if (entry) {
|
|
6399
6400
|
codeVerifierStorage.delete(state);
|
|
@@ -6582,7 +6583,7 @@ function createMCPServer(config) {
|
|
|
6582
6583
|
const codeVerifierEntry = getCodeVerifier(state);
|
|
6583
6584
|
if (codeVerifierEntry) {
|
|
6584
6585
|
try {
|
|
6585
|
-
const { codeVerifier, provider } = codeVerifierEntry;
|
|
6586
|
+
const { codeVerifier, provider, frontendOrigin: storedFrontendOrigin } = codeVerifierEntry;
|
|
6586
6587
|
const { OAuthHandler } = await Promise.resolve().then(() => exports_base_handler);
|
|
6587
6588
|
const oauthHandler = new OAuthHandler({
|
|
6588
6589
|
providers,
|
|
@@ -6599,15 +6600,19 @@ function createMCPServer(config) {
|
|
|
6599
6600
|
state
|
|
6600
6601
|
});
|
|
6601
6602
|
if (!frontendOrigin) {
|
|
6602
|
-
|
|
6603
|
-
|
|
6604
|
-
|
|
6605
|
-
|
|
6606
|
-
|
|
6607
|
-
|
|
6608
|
-
|
|
6609
|
-
|
|
6610
|
-
|
|
6603
|
+
if (storedFrontendOrigin) {
|
|
6604
|
+
frontendOrigin = storedFrontendOrigin;
|
|
6605
|
+
} else {
|
|
6606
|
+
const referer = request.headers.get("referer") || request.headers.get("referrer");
|
|
6607
|
+
if (referer) {
|
|
6608
|
+
try {
|
|
6609
|
+
const refererUrl = new URL(referer);
|
|
6610
|
+
frontendOrigin = refererUrl.origin;
|
|
6611
|
+
} catch {}
|
|
6612
|
+
}
|
|
6613
|
+
if (!frontendOrigin) {
|
|
6614
|
+
throw new Error("Could not determine frontend origin for redirect. Please ensure frontendOrigin is provided in the authorize request when using apiBaseUrl.");
|
|
6615
|
+
}
|
|
6611
6616
|
}
|
|
6612
6617
|
}
|
|
6613
6618
|
const frontendUrl = new URL(returnUrl, frontendOrigin);
|
|
@@ -7200,7 +7205,7 @@ class OAuthHandler {
|
|
|
7200
7205
|
if (authorizeRequest.codeVerifier) {
|
|
7201
7206
|
try {
|
|
7202
7207
|
const { storeCodeVerifier: storeCodeVerifier2 } = await Promise.resolve().then(() => (init_server(), exports_server));
|
|
7203
|
-
storeCodeVerifier2(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider);
|
|
7208
|
+
storeCodeVerifier2(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider, authorizeRequest.frontendOrigin);
|
|
7204
7209
|
} catch (error) {
|
|
7205
7210
|
console.warn("[OAuth] Failed to store codeVerifier:", error);
|
|
7206
7211
|
}
|
package/dist/adapters/nextjs.js
CHANGED
|
@@ -1079,7 +1079,8 @@ class OAuthManager {
|
|
|
1079
1079
|
codeChallenge,
|
|
1080
1080
|
codeChallengeMethod: "S256",
|
|
1081
1081
|
redirectUri,
|
|
1082
|
-
codeVerifier: this.apiBaseUrl ? codeVerifier : undefined
|
|
1082
|
+
codeVerifier: this.apiBaseUrl ? codeVerifier : undefined,
|
|
1083
|
+
frontendOrigin: this.apiBaseUrl && typeof window !== "undefined" ? window.location.origin : undefined
|
|
1083
1084
|
})
|
|
1084
1085
|
});
|
|
1085
1086
|
if (!response.ok) {
|
|
@@ -6384,16 +6385,16 @@ function cleanupExpiredCodeVerifiers() {
|
|
|
6384
6385
|
}
|
|
6385
6386
|
}
|
|
6386
6387
|
}
|
|
6387
|
-
function storeCodeVerifier(state, codeVerifier, provider) {
|
|
6388
|
+
function storeCodeVerifier(state, codeVerifier, provider, frontendOrigin) {
|
|
6388
6389
|
const expiresAt = Date.now() + 5 * 60 * 1000;
|
|
6389
|
-
codeVerifierStorage.set(state, { codeVerifier, provider, expiresAt });
|
|
6390
|
+
codeVerifierStorage.set(state, { codeVerifier, provider, frontendOrigin, expiresAt });
|
|
6390
6391
|
cleanupExpiredCodeVerifiers();
|
|
6391
6392
|
}
|
|
6392
6393
|
function getCodeVerifier(state) {
|
|
6393
6394
|
cleanupExpiredCodeVerifiers();
|
|
6394
6395
|
const entry = codeVerifierStorage.get(state);
|
|
6395
6396
|
if (entry && entry.expiresAt >= Date.now()) {
|
|
6396
|
-
return { codeVerifier: entry.codeVerifier, provider: entry.provider };
|
|
6397
|
+
return { codeVerifier: entry.codeVerifier, provider: entry.provider, frontendOrigin: entry.frontendOrigin };
|
|
6397
6398
|
}
|
|
6398
6399
|
if (entry) {
|
|
6399
6400
|
codeVerifierStorage.delete(state);
|
|
@@ -6582,7 +6583,7 @@ function createMCPServer(config) {
|
|
|
6582
6583
|
const codeVerifierEntry = getCodeVerifier(state);
|
|
6583
6584
|
if (codeVerifierEntry) {
|
|
6584
6585
|
try {
|
|
6585
|
-
const { codeVerifier, provider } = codeVerifierEntry;
|
|
6586
|
+
const { codeVerifier, provider, frontendOrigin: storedFrontendOrigin } = codeVerifierEntry;
|
|
6586
6587
|
const { OAuthHandler } = await Promise.resolve().then(() => exports_base_handler);
|
|
6587
6588
|
const oauthHandler = new OAuthHandler({
|
|
6588
6589
|
providers,
|
|
@@ -6599,15 +6600,19 @@ function createMCPServer(config) {
|
|
|
6599
6600
|
state
|
|
6600
6601
|
});
|
|
6601
6602
|
if (!frontendOrigin) {
|
|
6602
|
-
|
|
6603
|
-
|
|
6604
|
-
|
|
6605
|
-
|
|
6606
|
-
|
|
6607
|
-
|
|
6608
|
-
|
|
6609
|
-
|
|
6610
|
-
|
|
6603
|
+
if (storedFrontendOrigin) {
|
|
6604
|
+
frontendOrigin = storedFrontendOrigin;
|
|
6605
|
+
} else {
|
|
6606
|
+
const referer = request.headers.get("referer") || request.headers.get("referrer");
|
|
6607
|
+
if (referer) {
|
|
6608
|
+
try {
|
|
6609
|
+
const refererUrl = new URL(referer);
|
|
6610
|
+
frontendOrigin = refererUrl.origin;
|
|
6611
|
+
} catch {}
|
|
6612
|
+
}
|
|
6613
|
+
if (!frontendOrigin) {
|
|
6614
|
+
throw new Error("Could not determine frontend origin for redirect. Please ensure frontendOrigin is provided in the authorize request when using apiBaseUrl.");
|
|
6615
|
+
}
|
|
6611
6616
|
}
|
|
6612
6617
|
}
|
|
6613
6618
|
const frontendUrl = new URL(returnUrl, frontendOrigin);
|
|
@@ -7200,7 +7205,7 @@ class OAuthHandler {
|
|
|
7200
7205
|
if (authorizeRequest.codeVerifier) {
|
|
7201
7206
|
try {
|
|
7202
7207
|
const { storeCodeVerifier: storeCodeVerifier2 } = await Promise.resolve().then(() => (init_server(), exports_server));
|
|
7203
|
-
storeCodeVerifier2(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider);
|
|
7208
|
+
storeCodeVerifier2(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider, authorizeRequest.frontendOrigin);
|
|
7204
7209
|
} catch (error) {
|
|
7205
7210
|
console.warn("[OAuth] Failed to store codeVerifier:", error);
|
|
7206
7211
|
}
|
package/dist/adapters/node.js
CHANGED
|
@@ -1079,7 +1079,8 @@ class OAuthManager {
|
|
|
1079
1079
|
codeChallenge,
|
|
1080
1080
|
codeChallengeMethod: "S256",
|
|
1081
1081
|
redirectUri,
|
|
1082
|
-
codeVerifier: this.apiBaseUrl ? codeVerifier : undefined
|
|
1082
|
+
codeVerifier: this.apiBaseUrl ? codeVerifier : undefined,
|
|
1083
|
+
frontendOrigin: this.apiBaseUrl && typeof window !== "undefined" ? window.location.origin : undefined
|
|
1083
1084
|
})
|
|
1084
1085
|
});
|
|
1085
1086
|
if (!response.ok) {
|
|
@@ -6384,16 +6385,16 @@ function cleanupExpiredCodeVerifiers() {
|
|
|
6384
6385
|
}
|
|
6385
6386
|
}
|
|
6386
6387
|
}
|
|
6387
|
-
function storeCodeVerifier(state, codeVerifier, provider) {
|
|
6388
|
+
function storeCodeVerifier(state, codeVerifier, provider, frontendOrigin) {
|
|
6388
6389
|
const expiresAt = Date.now() + 5 * 60 * 1000;
|
|
6389
|
-
codeVerifierStorage.set(state, { codeVerifier, provider, expiresAt });
|
|
6390
|
+
codeVerifierStorage.set(state, { codeVerifier, provider, frontendOrigin, expiresAt });
|
|
6390
6391
|
cleanupExpiredCodeVerifiers();
|
|
6391
6392
|
}
|
|
6392
6393
|
function getCodeVerifier(state) {
|
|
6393
6394
|
cleanupExpiredCodeVerifiers();
|
|
6394
6395
|
const entry = codeVerifierStorage.get(state);
|
|
6395
6396
|
if (entry && entry.expiresAt >= Date.now()) {
|
|
6396
|
-
return { codeVerifier: entry.codeVerifier, provider: entry.provider };
|
|
6397
|
+
return { codeVerifier: entry.codeVerifier, provider: entry.provider, frontendOrigin: entry.frontendOrigin };
|
|
6397
6398
|
}
|
|
6398
6399
|
if (entry) {
|
|
6399
6400
|
codeVerifierStorage.delete(state);
|
|
@@ -6582,7 +6583,7 @@ function createMCPServer(config) {
|
|
|
6582
6583
|
const codeVerifierEntry = getCodeVerifier(state);
|
|
6583
6584
|
if (codeVerifierEntry) {
|
|
6584
6585
|
try {
|
|
6585
|
-
const { codeVerifier, provider } = codeVerifierEntry;
|
|
6586
|
+
const { codeVerifier, provider, frontendOrigin: storedFrontendOrigin } = codeVerifierEntry;
|
|
6586
6587
|
const { OAuthHandler } = await Promise.resolve().then(() => exports_base_handler);
|
|
6587
6588
|
const oauthHandler = new OAuthHandler({
|
|
6588
6589
|
providers,
|
|
@@ -6599,15 +6600,19 @@ function createMCPServer(config) {
|
|
|
6599
6600
|
state
|
|
6600
6601
|
});
|
|
6601
6602
|
if (!frontendOrigin) {
|
|
6602
|
-
|
|
6603
|
-
|
|
6604
|
-
|
|
6605
|
-
|
|
6606
|
-
|
|
6607
|
-
|
|
6608
|
-
|
|
6609
|
-
|
|
6610
|
-
|
|
6603
|
+
if (storedFrontendOrigin) {
|
|
6604
|
+
frontendOrigin = storedFrontendOrigin;
|
|
6605
|
+
} else {
|
|
6606
|
+
const referer = request.headers.get("referer") || request.headers.get("referrer");
|
|
6607
|
+
if (referer) {
|
|
6608
|
+
try {
|
|
6609
|
+
const refererUrl = new URL(referer);
|
|
6610
|
+
frontendOrigin = refererUrl.origin;
|
|
6611
|
+
} catch {}
|
|
6612
|
+
}
|
|
6613
|
+
if (!frontendOrigin) {
|
|
6614
|
+
throw new Error("Could not determine frontend origin for redirect. Please ensure frontendOrigin is provided in the authorize request when using apiBaseUrl.");
|
|
6615
|
+
}
|
|
6611
6616
|
}
|
|
6612
6617
|
}
|
|
6613
6618
|
const frontendUrl = new URL(returnUrl, frontendOrigin);
|
|
@@ -7200,7 +7205,7 @@ class OAuthHandler {
|
|
|
7200
7205
|
if (authorizeRequest.codeVerifier) {
|
|
7201
7206
|
try {
|
|
7202
7207
|
const { storeCodeVerifier: storeCodeVerifier2 } = await Promise.resolve().then(() => (init_server(), exports_server));
|
|
7203
|
-
storeCodeVerifier2(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider);
|
|
7208
|
+
storeCodeVerifier2(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider, authorizeRequest.frontendOrigin);
|
|
7204
7209
|
} catch (error) {
|
|
7205
7210
|
console.warn("[OAuth] Failed to store codeVerifier:", error);
|
|
7206
7211
|
}
|
|
@@ -1079,7 +1079,8 @@ class OAuthManager {
|
|
|
1079
1079
|
codeChallenge,
|
|
1080
1080
|
codeChallengeMethod: "S256",
|
|
1081
1081
|
redirectUri,
|
|
1082
|
-
codeVerifier: this.apiBaseUrl ? codeVerifier : undefined
|
|
1082
|
+
codeVerifier: this.apiBaseUrl ? codeVerifier : undefined,
|
|
1083
|
+
frontendOrigin: this.apiBaseUrl && typeof window !== "undefined" ? window.location.origin : undefined
|
|
1083
1084
|
})
|
|
1084
1085
|
});
|
|
1085
1086
|
if (!response.ok) {
|
|
@@ -6384,16 +6385,16 @@ function cleanupExpiredCodeVerifiers() {
|
|
|
6384
6385
|
}
|
|
6385
6386
|
}
|
|
6386
6387
|
}
|
|
6387
|
-
function storeCodeVerifier(state, codeVerifier, provider) {
|
|
6388
|
+
function storeCodeVerifier(state, codeVerifier, provider, frontendOrigin) {
|
|
6388
6389
|
const expiresAt = Date.now() + 5 * 60 * 1000;
|
|
6389
|
-
codeVerifierStorage.set(state, { codeVerifier, provider, expiresAt });
|
|
6390
|
+
codeVerifierStorage.set(state, { codeVerifier, provider, frontendOrigin, expiresAt });
|
|
6390
6391
|
cleanupExpiredCodeVerifiers();
|
|
6391
6392
|
}
|
|
6392
6393
|
function getCodeVerifier(state) {
|
|
6393
6394
|
cleanupExpiredCodeVerifiers();
|
|
6394
6395
|
const entry = codeVerifierStorage.get(state);
|
|
6395
6396
|
if (entry && entry.expiresAt >= Date.now()) {
|
|
6396
|
-
return { codeVerifier: entry.codeVerifier, provider: entry.provider };
|
|
6397
|
+
return { codeVerifier: entry.codeVerifier, provider: entry.provider, frontendOrigin: entry.frontendOrigin };
|
|
6397
6398
|
}
|
|
6398
6399
|
if (entry) {
|
|
6399
6400
|
codeVerifierStorage.delete(state);
|
|
@@ -6582,7 +6583,7 @@ function createMCPServer(config) {
|
|
|
6582
6583
|
const codeVerifierEntry = getCodeVerifier(state);
|
|
6583
6584
|
if (codeVerifierEntry) {
|
|
6584
6585
|
try {
|
|
6585
|
-
const { codeVerifier, provider } = codeVerifierEntry;
|
|
6586
|
+
const { codeVerifier, provider, frontendOrigin: storedFrontendOrigin } = codeVerifierEntry;
|
|
6586
6587
|
const { OAuthHandler } = await Promise.resolve().then(() => exports_base_handler);
|
|
6587
6588
|
const oauthHandler = new OAuthHandler({
|
|
6588
6589
|
providers,
|
|
@@ -6599,15 +6600,19 @@ function createMCPServer(config) {
|
|
|
6599
6600
|
state
|
|
6600
6601
|
});
|
|
6601
6602
|
if (!frontendOrigin) {
|
|
6602
|
-
|
|
6603
|
-
|
|
6604
|
-
|
|
6605
|
-
|
|
6606
|
-
|
|
6607
|
-
|
|
6608
|
-
|
|
6609
|
-
|
|
6610
|
-
|
|
6603
|
+
if (storedFrontendOrigin) {
|
|
6604
|
+
frontendOrigin = storedFrontendOrigin;
|
|
6605
|
+
} else {
|
|
6606
|
+
const referer = request.headers.get("referer") || request.headers.get("referrer");
|
|
6607
|
+
if (referer) {
|
|
6608
|
+
try {
|
|
6609
|
+
const refererUrl = new URL(referer);
|
|
6610
|
+
frontendOrigin = refererUrl.origin;
|
|
6611
|
+
} catch {}
|
|
6612
|
+
}
|
|
6613
|
+
if (!frontendOrigin) {
|
|
6614
|
+
throw new Error("Could not determine frontend origin for redirect. Please ensure frontendOrigin is provided in the authorize request when using apiBaseUrl.");
|
|
6615
|
+
}
|
|
6611
6616
|
}
|
|
6612
6617
|
}
|
|
6613
6618
|
const frontendUrl = new URL(returnUrl, frontendOrigin);
|
|
@@ -7200,7 +7205,7 @@ class OAuthHandler {
|
|
|
7200
7205
|
if (authorizeRequest.codeVerifier) {
|
|
7201
7206
|
try {
|
|
7202
7207
|
const { storeCodeVerifier: storeCodeVerifier2 } = await Promise.resolve().then(() => (init_server(), exports_server));
|
|
7203
|
-
storeCodeVerifier2(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider);
|
|
7208
|
+
storeCodeVerifier2(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider, authorizeRequest.frontendOrigin);
|
|
7204
7209
|
} catch (error) {
|
|
7205
7210
|
console.warn("[OAuth] Failed to store codeVerifier:", error);
|
|
7206
7211
|
}
|
|
@@ -1079,7 +1079,8 @@ class OAuthManager {
|
|
|
1079
1079
|
codeChallenge,
|
|
1080
1080
|
codeChallengeMethod: "S256",
|
|
1081
1081
|
redirectUri,
|
|
1082
|
-
codeVerifier: this.apiBaseUrl ? codeVerifier : undefined
|
|
1082
|
+
codeVerifier: this.apiBaseUrl ? codeVerifier : undefined,
|
|
1083
|
+
frontendOrigin: this.apiBaseUrl && typeof window !== "undefined" ? window.location.origin : undefined
|
|
1083
1084
|
})
|
|
1084
1085
|
});
|
|
1085
1086
|
if (!response.ok) {
|
|
@@ -6384,16 +6385,16 @@ function cleanupExpiredCodeVerifiers() {
|
|
|
6384
6385
|
}
|
|
6385
6386
|
}
|
|
6386
6387
|
}
|
|
6387
|
-
function storeCodeVerifier(state, codeVerifier, provider) {
|
|
6388
|
+
function storeCodeVerifier(state, codeVerifier, provider, frontendOrigin) {
|
|
6388
6389
|
const expiresAt = Date.now() + 5 * 60 * 1000;
|
|
6389
|
-
codeVerifierStorage.set(state, { codeVerifier, provider, expiresAt });
|
|
6390
|
+
codeVerifierStorage.set(state, { codeVerifier, provider, frontendOrigin, expiresAt });
|
|
6390
6391
|
cleanupExpiredCodeVerifiers();
|
|
6391
6392
|
}
|
|
6392
6393
|
function getCodeVerifier(state) {
|
|
6393
6394
|
cleanupExpiredCodeVerifiers();
|
|
6394
6395
|
const entry = codeVerifierStorage.get(state);
|
|
6395
6396
|
if (entry && entry.expiresAt >= Date.now()) {
|
|
6396
|
-
return { codeVerifier: entry.codeVerifier, provider: entry.provider };
|
|
6397
|
+
return { codeVerifier: entry.codeVerifier, provider: entry.provider, frontendOrigin: entry.frontendOrigin };
|
|
6397
6398
|
}
|
|
6398
6399
|
if (entry) {
|
|
6399
6400
|
codeVerifierStorage.delete(state);
|
|
@@ -6582,7 +6583,7 @@ function createMCPServer(config) {
|
|
|
6582
6583
|
const codeVerifierEntry = getCodeVerifier(state);
|
|
6583
6584
|
if (codeVerifierEntry) {
|
|
6584
6585
|
try {
|
|
6585
|
-
const { codeVerifier, provider } = codeVerifierEntry;
|
|
6586
|
+
const { codeVerifier, provider, frontendOrigin: storedFrontendOrigin } = codeVerifierEntry;
|
|
6586
6587
|
const { OAuthHandler } = await Promise.resolve().then(() => exports_base_handler);
|
|
6587
6588
|
const oauthHandler = new OAuthHandler({
|
|
6588
6589
|
providers,
|
|
@@ -6599,15 +6600,19 @@ function createMCPServer(config) {
|
|
|
6599
6600
|
state
|
|
6600
6601
|
});
|
|
6601
6602
|
if (!frontendOrigin) {
|
|
6602
|
-
|
|
6603
|
-
|
|
6604
|
-
|
|
6605
|
-
|
|
6606
|
-
|
|
6607
|
-
|
|
6608
|
-
|
|
6609
|
-
|
|
6610
|
-
|
|
6603
|
+
if (storedFrontendOrigin) {
|
|
6604
|
+
frontendOrigin = storedFrontendOrigin;
|
|
6605
|
+
} else {
|
|
6606
|
+
const referer = request.headers.get("referer") || request.headers.get("referrer");
|
|
6607
|
+
if (referer) {
|
|
6608
|
+
try {
|
|
6609
|
+
const refererUrl = new URL(referer);
|
|
6610
|
+
frontendOrigin = refererUrl.origin;
|
|
6611
|
+
} catch {}
|
|
6612
|
+
}
|
|
6613
|
+
if (!frontendOrigin) {
|
|
6614
|
+
throw new Error("Could not determine frontend origin for redirect. Please ensure frontendOrigin is provided in the authorize request when using apiBaseUrl.");
|
|
6615
|
+
}
|
|
6611
6616
|
}
|
|
6612
6617
|
}
|
|
6613
6618
|
const frontendUrl = new URL(returnUrl, frontendOrigin);
|
|
@@ -7200,7 +7205,7 @@ class OAuthHandler {
|
|
|
7200
7205
|
if (authorizeRequest.codeVerifier) {
|
|
7201
7206
|
try {
|
|
7202
7207
|
const { storeCodeVerifier: storeCodeVerifier2 } = await Promise.resolve().then(() => (init_server(), exports_server));
|
|
7203
|
-
storeCodeVerifier2(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider);
|
|
7208
|
+
storeCodeVerifier2(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider, authorizeRequest.frontendOrigin);
|
|
7204
7209
|
} catch (error) {
|
|
7205
7210
|
console.warn("[OAuth] Failed to store codeVerifier:", error);
|
|
7206
7211
|
}
|
|
@@ -1079,7 +1079,8 @@ class OAuthManager {
|
|
|
1079
1079
|
codeChallenge,
|
|
1080
1080
|
codeChallengeMethod: "S256",
|
|
1081
1081
|
redirectUri,
|
|
1082
|
-
codeVerifier: this.apiBaseUrl ? codeVerifier : undefined
|
|
1082
|
+
codeVerifier: this.apiBaseUrl ? codeVerifier : undefined,
|
|
1083
|
+
frontendOrigin: this.apiBaseUrl && typeof window !== "undefined" ? window.location.origin : undefined
|
|
1083
1084
|
})
|
|
1084
1085
|
});
|
|
1085
1086
|
if (!response.ok) {
|
|
@@ -6384,16 +6385,16 @@ function cleanupExpiredCodeVerifiers() {
|
|
|
6384
6385
|
}
|
|
6385
6386
|
}
|
|
6386
6387
|
}
|
|
6387
|
-
function storeCodeVerifier(state, codeVerifier, provider) {
|
|
6388
|
+
function storeCodeVerifier(state, codeVerifier, provider, frontendOrigin) {
|
|
6388
6389
|
const expiresAt = Date.now() + 5 * 60 * 1000;
|
|
6389
|
-
codeVerifierStorage.set(state, { codeVerifier, provider, expiresAt });
|
|
6390
|
+
codeVerifierStorage.set(state, { codeVerifier, provider, frontendOrigin, expiresAt });
|
|
6390
6391
|
cleanupExpiredCodeVerifiers();
|
|
6391
6392
|
}
|
|
6392
6393
|
function getCodeVerifier(state) {
|
|
6393
6394
|
cleanupExpiredCodeVerifiers();
|
|
6394
6395
|
const entry = codeVerifierStorage.get(state);
|
|
6395
6396
|
if (entry && entry.expiresAt >= Date.now()) {
|
|
6396
|
-
return { codeVerifier: entry.codeVerifier, provider: entry.provider };
|
|
6397
|
+
return { codeVerifier: entry.codeVerifier, provider: entry.provider, frontendOrigin: entry.frontendOrigin };
|
|
6397
6398
|
}
|
|
6398
6399
|
if (entry) {
|
|
6399
6400
|
codeVerifierStorage.delete(state);
|
|
@@ -6582,7 +6583,7 @@ function createMCPServer(config) {
|
|
|
6582
6583
|
const codeVerifierEntry = getCodeVerifier(state);
|
|
6583
6584
|
if (codeVerifierEntry) {
|
|
6584
6585
|
try {
|
|
6585
|
-
const { codeVerifier, provider } = codeVerifierEntry;
|
|
6586
|
+
const { codeVerifier, provider, frontendOrigin: storedFrontendOrigin } = codeVerifierEntry;
|
|
6586
6587
|
const { OAuthHandler } = await Promise.resolve().then(() => exports_base_handler);
|
|
6587
6588
|
const oauthHandler = new OAuthHandler({
|
|
6588
6589
|
providers,
|
|
@@ -6599,15 +6600,19 @@ function createMCPServer(config) {
|
|
|
6599
6600
|
state
|
|
6600
6601
|
});
|
|
6601
6602
|
if (!frontendOrigin) {
|
|
6602
|
-
|
|
6603
|
-
|
|
6604
|
-
|
|
6605
|
-
|
|
6606
|
-
|
|
6607
|
-
|
|
6608
|
-
|
|
6609
|
-
|
|
6610
|
-
|
|
6603
|
+
if (storedFrontendOrigin) {
|
|
6604
|
+
frontendOrigin = storedFrontendOrigin;
|
|
6605
|
+
} else {
|
|
6606
|
+
const referer = request.headers.get("referer") || request.headers.get("referrer");
|
|
6607
|
+
if (referer) {
|
|
6608
|
+
try {
|
|
6609
|
+
const refererUrl = new URL(referer);
|
|
6610
|
+
frontendOrigin = refererUrl.origin;
|
|
6611
|
+
} catch {}
|
|
6612
|
+
}
|
|
6613
|
+
if (!frontendOrigin) {
|
|
6614
|
+
throw new Error("Could not determine frontend origin for redirect. Please ensure frontendOrigin is provided in the authorize request when using apiBaseUrl.");
|
|
6615
|
+
}
|
|
6611
6616
|
}
|
|
6612
6617
|
}
|
|
6613
6618
|
const frontendUrl = new URL(returnUrl, frontendOrigin);
|
|
@@ -7200,7 +7205,7 @@ class OAuthHandler {
|
|
|
7200
7205
|
if (authorizeRequest.codeVerifier) {
|
|
7201
7206
|
try {
|
|
7202
7207
|
const { storeCodeVerifier: storeCodeVerifier2 } = await Promise.resolve().then(() => (init_server(), exports_server));
|
|
7203
|
-
storeCodeVerifier2(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider);
|
|
7208
|
+
storeCodeVerifier2(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider, authorizeRequest.frontendOrigin);
|
|
7204
7209
|
} catch (error) {
|
|
7205
7210
|
console.warn("[OAuth] Failed to store codeVerifier:", error);
|
|
7206
7211
|
}
|
package/dist/index.js
CHANGED
|
@@ -1112,7 +1112,8 @@ class OAuthManager {
|
|
|
1112
1112
|
codeChallenge,
|
|
1113
1113
|
codeChallengeMethod: "S256",
|
|
1114
1114
|
redirectUri,
|
|
1115
|
-
codeVerifier: this.apiBaseUrl ? codeVerifier : undefined
|
|
1115
|
+
codeVerifier: this.apiBaseUrl ? codeVerifier : undefined,
|
|
1116
|
+
frontendOrigin: this.apiBaseUrl && typeof window !== "undefined" ? window.location.origin : undefined
|
|
1116
1117
|
})
|
|
1117
1118
|
});
|
|
1118
1119
|
if (!response.ok) {
|
|
@@ -6755,16 +6756,16 @@ function cleanupExpiredCodeVerifiers() {
|
|
|
6755
6756
|
}
|
|
6756
6757
|
}
|
|
6757
6758
|
}
|
|
6758
|
-
function storeCodeVerifier(state, codeVerifier, provider) {
|
|
6759
|
+
function storeCodeVerifier(state, codeVerifier, provider, frontendOrigin) {
|
|
6759
6760
|
const expiresAt = Date.now() + 5 * 60 * 1000;
|
|
6760
|
-
codeVerifierStorage.set(state, { codeVerifier, provider, expiresAt });
|
|
6761
|
+
codeVerifierStorage.set(state, { codeVerifier, provider, frontendOrigin, expiresAt });
|
|
6761
6762
|
cleanupExpiredCodeVerifiers();
|
|
6762
6763
|
}
|
|
6763
6764
|
function getCodeVerifier(state) {
|
|
6764
6765
|
cleanupExpiredCodeVerifiers();
|
|
6765
6766
|
const entry = codeVerifierStorage.get(state);
|
|
6766
6767
|
if (entry && entry.expiresAt >= Date.now()) {
|
|
6767
|
-
return { codeVerifier: entry.codeVerifier, provider: entry.provider };
|
|
6768
|
+
return { codeVerifier: entry.codeVerifier, provider: entry.provider, frontendOrigin: entry.frontendOrigin };
|
|
6768
6769
|
}
|
|
6769
6770
|
if (entry) {
|
|
6770
6771
|
codeVerifierStorage.delete(state);
|
|
@@ -6953,7 +6954,7 @@ function createMCPServer(config) {
|
|
|
6953
6954
|
const codeVerifierEntry = getCodeVerifier(state);
|
|
6954
6955
|
if (codeVerifierEntry) {
|
|
6955
6956
|
try {
|
|
6956
|
-
const { codeVerifier, provider } = codeVerifierEntry;
|
|
6957
|
+
const { codeVerifier, provider, frontendOrigin: storedFrontendOrigin } = codeVerifierEntry;
|
|
6957
6958
|
const { OAuthHandler: OAuthHandler2 } = await Promise.resolve().then(() => exports_base_handler);
|
|
6958
6959
|
const oauthHandler = new OAuthHandler2({
|
|
6959
6960
|
providers,
|
|
@@ -6970,15 +6971,19 @@ function createMCPServer(config) {
|
|
|
6970
6971
|
state
|
|
6971
6972
|
});
|
|
6972
6973
|
if (!frontendOrigin) {
|
|
6973
|
-
|
|
6974
|
-
|
|
6975
|
-
|
|
6976
|
-
|
|
6977
|
-
|
|
6978
|
-
|
|
6979
|
-
|
|
6980
|
-
|
|
6981
|
-
|
|
6974
|
+
if (storedFrontendOrigin) {
|
|
6975
|
+
frontendOrigin = storedFrontendOrigin;
|
|
6976
|
+
} else {
|
|
6977
|
+
const referer = request.headers.get("referer") || request.headers.get("referrer");
|
|
6978
|
+
if (referer) {
|
|
6979
|
+
try {
|
|
6980
|
+
const refererUrl = new URL(referer);
|
|
6981
|
+
frontendOrigin = refererUrl.origin;
|
|
6982
|
+
} catch {}
|
|
6983
|
+
}
|
|
6984
|
+
if (!frontendOrigin) {
|
|
6985
|
+
throw new Error("Could not determine frontend origin for redirect. Please ensure frontendOrigin is provided in the authorize request when using apiBaseUrl.");
|
|
6986
|
+
}
|
|
6982
6987
|
}
|
|
6983
6988
|
}
|
|
6984
6989
|
const frontendUrl = new URL(returnUrl, frontendOrigin);
|
|
@@ -7571,7 +7576,7 @@ class OAuthHandler {
|
|
|
7571
7576
|
if (authorizeRequest.codeVerifier) {
|
|
7572
7577
|
try {
|
|
7573
7578
|
const { storeCodeVerifier: storeCodeVerifier2 } = await Promise.resolve().then(() => (init_server(), exports_server));
|
|
7574
|
-
storeCodeVerifier2(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider);
|
|
7579
|
+
storeCodeVerifier2(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider, authorizeRequest.frontendOrigin);
|
|
7575
7580
|
} catch (error) {
|
|
7576
7581
|
console.warn("[OAuth] Failed to store codeVerifier:", error);
|
|
7577
7582
|
}
|
package/dist/oauth.js
CHANGED
|
@@ -1079,7 +1079,8 @@ class OAuthManager {
|
|
|
1079
1079
|
codeChallenge,
|
|
1080
1080
|
codeChallengeMethod: "S256",
|
|
1081
1081
|
redirectUri,
|
|
1082
|
-
codeVerifier: this.apiBaseUrl ? codeVerifier : undefined
|
|
1082
|
+
codeVerifier: this.apiBaseUrl ? codeVerifier : undefined,
|
|
1083
|
+
frontendOrigin: this.apiBaseUrl && typeof window !== "undefined" ? window.location.origin : undefined
|
|
1083
1084
|
})
|
|
1084
1085
|
});
|
|
1085
1086
|
if (!response.ok) {
|
|
@@ -6573,16 +6574,16 @@ function cleanupExpiredCodeVerifiers() {
|
|
|
6573
6574
|
}
|
|
6574
6575
|
}
|
|
6575
6576
|
}
|
|
6576
|
-
function storeCodeVerifier(state, codeVerifier, provider) {
|
|
6577
|
+
function storeCodeVerifier(state, codeVerifier, provider, frontendOrigin) {
|
|
6577
6578
|
const expiresAt = Date.now() + 5 * 60 * 1000;
|
|
6578
|
-
codeVerifierStorage.set(state, { codeVerifier, provider, expiresAt });
|
|
6579
|
+
codeVerifierStorage.set(state, { codeVerifier, provider, frontendOrigin, expiresAt });
|
|
6579
6580
|
cleanupExpiredCodeVerifiers();
|
|
6580
6581
|
}
|
|
6581
6582
|
function getCodeVerifier(state) {
|
|
6582
6583
|
cleanupExpiredCodeVerifiers();
|
|
6583
6584
|
const entry = codeVerifierStorage.get(state);
|
|
6584
6585
|
if (entry && entry.expiresAt >= Date.now()) {
|
|
6585
|
-
return { codeVerifier: entry.codeVerifier, provider: entry.provider };
|
|
6586
|
+
return { codeVerifier: entry.codeVerifier, provider: entry.provider, frontendOrigin: entry.frontendOrigin };
|
|
6586
6587
|
}
|
|
6587
6588
|
if (entry) {
|
|
6588
6589
|
codeVerifierStorage.delete(state);
|
|
@@ -6771,7 +6772,7 @@ function createMCPServer(config) {
|
|
|
6771
6772
|
const codeVerifierEntry = getCodeVerifier(state);
|
|
6772
6773
|
if (codeVerifierEntry) {
|
|
6773
6774
|
try {
|
|
6774
|
-
const { codeVerifier, provider } = codeVerifierEntry;
|
|
6775
|
+
const { codeVerifier, provider, frontendOrigin: storedFrontendOrigin } = codeVerifierEntry;
|
|
6775
6776
|
const { OAuthHandler: OAuthHandler2 } = await Promise.resolve().then(() => exports_base_handler);
|
|
6776
6777
|
const oauthHandler = new OAuthHandler2({
|
|
6777
6778
|
providers,
|
|
@@ -6788,15 +6789,19 @@ function createMCPServer(config) {
|
|
|
6788
6789
|
state
|
|
6789
6790
|
});
|
|
6790
6791
|
if (!frontendOrigin) {
|
|
6791
|
-
|
|
6792
|
-
|
|
6793
|
-
|
|
6794
|
-
|
|
6795
|
-
|
|
6796
|
-
|
|
6797
|
-
|
|
6798
|
-
|
|
6799
|
-
|
|
6792
|
+
if (storedFrontendOrigin) {
|
|
6793
|
+
frontendOrigin = storedFrontendOrigin;
|
|
6794
|
+
} else {
|
|
6795
|
+
const referer = request.headers.get("referer") || request.headers.get("referrer");
|
|
6796
|
+
if (referer) {
|
|
6797
|
+
try {
|
|
6798
|
+
const refererUrl = new URL(referer);
|
|
6799
|
+
frontendOrigin = refererUrl.origin;
|
|
6800
|
+
} catch {}
|
|
6801
|
+
}
|
|
6802
|
+
if (!frontendOrigin) {
|
|
6803
|
+
throw new Error("Could not determine frontend origin for redirect. Please ensure frontendOrigin is provided in the authorize request when using apiBaseUrl.");
|
|
6804
|
+
}
|
|
6800
6805
|
}
|
|
6801
6806
|
}
|
|
6802
6807
|
const frontendUrl = new URL(returnUrl, frontendOrigin);
|
|
@@ -7389,7 +7394,7 @@ class OAuthHandler {
|
|
|
7389
7394
|
if (authorizeRequest.codeVerifier) {
|
|
7390
7395
|
try {
|
|
7391
7396
|
const { storeCodeVerifier: storeCodeVerifier2 } = await Promise.resolve().then(() => (init_server(), exports_server));
|
|
7392
|
-
storeCodeVerifier2(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider);
|
|
7397
|
+
storeCodeVerifier2(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider, authorizeRequest.frontendOrigin);
|
|
7393
7398
|
} catch (error) {
|
|
7394
7399
|
console.warn("[OAuth] Failed to store codeVerifier:", error);
|
|
7395
7400
|
}
|
package/dist/server.js
CHANGED
|
@@ -1079,7 +1079,8 @@ class OAuthManager {
|
|
|
1079
1079
|
codeChallenge,
|
|
1080
1080
|
codeChallengeMethod: "S256",
|
|
1081
1081
|
redirectUri,
|
|
1082
|
-
codeVerifier: this.apiBaseUrl ? codeVerifier : undefined
|
|
1082
|
+
codeVerifier: this.apiBaseUrl ? codeVerifier : undefined,
|
|
1083
|
+
frontendOrigin: this.apiBaseUrl && typeof window !== "undefined" ? window.location.origin : undefined
|
|
1083
1084
|
})
|
|
1084
1085
|
});
|
|
1085
1086
|
if (!response.ok) {
|
|
@@ -2074,7 +2075,7 @@ class OAuthHandler {
|
|
|
2074
2075
|
if (authorizeRequest.codeVerifier) {
|
|
2075
2076
|
try {
|
|
2076
2077
|
const { storeCodeVerifier } = await Promise.resolve().then(() => (init_server(), exports_server));
|
|
2077
|
-
storeCodeVerifier(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider);
|
|
2078
|
+
storeCodeVerifier(authorizeRequest.state, authorizeRequest.codeVerifier, authorizeRequest.provider, authorizeRequest.frontendOrigin);
|
|
2078
2079
|
} catch (error) {
|
|
2079
2080
|
console.warn("[OAuth] Failed to store codeVerifier:", error);
|
|
2080
2081
|
}
|
|
@@ -7133,16 +7134,16 @@ function cleanupExpiredCodeVerifiers() {
|
|
|
7133
7134
|
}
|
|
7134
7135
|
}
|
|
7135
7136
|
}
|
|
7136
|
-
function storeCodeVerifier(state, codeVerifier, provider) {
|
|
7137
|
+
function storeCodeVerifier(state, codeVerifier, provider, frontendOrigin) {
|
|
7137
7138
|
const expiresAt = Date.now() + 5 * 60 * 1000;
|
|
7138
|
-
codeVerifierStorage.set(state, { codeVerifier, provider, expiresAt });
|
|
7139
|
+
codeVerifierStorage.set(state, { codeVerifier, provider, frontendOrigin, expiresAt });
|
|
7139
7140
|
cleanupExpiredCodeVerifiers();
|
|
7140
7141
|
}
|
|
7141
7142
|
function getCodeVerifier(state) {
|
|
7142
7143
|
cleanupExpiredCodeVerifiers();
|
|
7143
7144
|
const entry = codeVerifierStorage.get(state);
|
|
7144
7145
|
if (entry && entry.expiresAt >= Date.now()) {
|
|
7145
|
-
return { codeVerifier: entry.codeVerifier, provider: entry.provider };
|
|
7146
|
+
return { codeVerifier: entry.codeVerifier, provider: entry.provider, frontendOrigin: entry.frontendOrigin };
|
|
7146
7147
|
}
|
|
7147
7148
|
if (entry) {
|
|
7148
7149
|
codeVerifierStorage.delete(state);
|
|
@@ -7331,7 +7332,7 @@ function createMCPServer(config) {
|
|
|
7331
7332
|
const codeVerifierEntry = getCodeVerifier(state);
|
|
7332
7333
|
if (codeVerifierEntry) {
|
|
7333
7334
|
try {
|
|
7334
|
-
const { codeVerifier, provider } = codeVerifierEntry;
|
|
7335
|
+
const { codeVerifier, provider, frontendOrigin: storedFrontendOrigin } = codeVerifierEntry;
|
|
7335
7336
|
const { OAuthHandler: OAuthHandler2 } = await Promise.resolve().then(() => exports_base_handler);
|
|
7336
7337
|
const oauthHandler = new OAuthHandler2({
|
|
7337
7338
|
providers,
|
|
@@ -7348,15 +7349,19 @@ function createMCPServer(config) {
|
|
|
7348
7349
|
state
|
|
7349
7350
|
});
|
|
7350
7351
|
if (!frontendOrigin) {
|
|
7351
|
-
|
|
7352
|
-
|
|
7353
|
-
|
|
7354
|
-
|
|
7355
|
-
|
|
7356
|
-
|
|
7357
|
-
|
|
7358
|
-
|
|
7359
|
-
|
|
7352
|
+
if (storedFrontendOrigin) {
|
|
7353
|
+
frontendOrigin = storedFrontendOrigin;
|
|
7354
|
+
} else {
|
|
7355
|
+
const referer = request.headers.get("referer") || request.headers.get("referrer");
|
|
7356
|
+
if (referer) {
|
|
7357
|
+
try {
|
|
7358
|
+
const refererUrl = new URL(referer);
|
|
7359
|
+
frontendOrigin = refererUrl.origin;
|
|
7360
|
+
} catch {}
|
|
7361
|
+
}
|
|
7362
|
+
if (!frontendOrigin) {
|
|
7363
|
+
throw new Error("Could not determine frontend origin for redirect. Please ensure frontendOrigin is provided in the authorize request when using apiBaseUrl.");
|
|
7364
|
+
}
|
|
7360
7365
|
}
|
|
7361
7366
|
}
|
|
7362
7367
|
const frontendUrl = new URL(returnUrl, frontendOrigin);
|
|
@@ -101,6 +101,8 @@ export interface AuthorizeRequest {
|
|
|
101
101
|
redirectUri?: string;
|
|
102
102
|
/** Optional codeVerifier for backend redirect flow (when apiBaseUrl is set) */
|
|
103
103
|
codeVerifier?: string;
|
|
104
|
+
/** Optional frontend origin for backend redirect flow (when apiBaseUrl is set) */
|
|
105
|
+
frontendOrigin?: string;
|
|
104
106
|
}
|
|
105
107
|
/**
|
|
106
108
|
* Response from authorize endpoint
|
|
@@ -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;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAO3D;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;QACxB,iDAAiD;QACjD,QAAQ,EAAE,MAAM,CAAC;QACjB,qDAAqD;QACrD,YAAY,EAAE,MAAM,CAAC;QACrB,qCAAqC;QACrC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,8CAA8C;QAC9C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,kFAAkF;QAClF,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC9B,CAAC,CAAC;IACH;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;;;;;;;OAcG;IACH,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,GAAG,UAAU,GAAG,SAAS,CAAC;IACnG;;;;;;;;;;;;;;;;;;OAkBG;IACH,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAClH;;;;;;;;;;;;;;;;;;OAkBG;IACH,mBAAmB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACxF;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"base-handler.d.ts","sourceRoot":"","sources":["../../../src/adapters/base-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -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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"}
|
package/dist/src/server.d.ts
CHANGED
|
@@ -38,16 +38,18 @@ export type MCPServerClient<TIntegrations extends readonly MCPIntegration[]> = M
|
|
|
38
38
|
* @param state - OAuth state parameter
|
|
39
39
|
* @param codeVerifier - PKCE code verifier
|
|
40
40
|
* @param provider - OAuth provider name
|
|
41
|
+
* @param frontendOrigin - Optional frontend origin for redirect
|
|
41
42
|
*/
|
|
42
|
-
export declare function storeCodeVerifier(state: string, codeVerifier: string, provider: string): void;
|
|
43
|
+
export declare function storeCodeVerifier(state: string, codeVerifier: string, provider: string, frontendOrigin?: string): void;
|
|
43
44
|
/**
|
|
44
45
|
* Retrieve codeVerifier and provider from temporary storage
|
|
45
46
|
* @param state - OAuth state parameter
|
|
46
|
-
* @returns Object with codeVerifier and
|
|
47
|
+
* @returns Object with codeVerifier, provider, and frontendOrigin if found and not expired, undefined otherwise
|
|
47
48
|
*/
|
|
48
49
|
export declare function getCodeVerifier(state: string): {
|
|
49
50
|
codeVerifier: string;
|
|
50
51
|
provider: string;
|
|
52
|
+
frontendOrigin?: string;
|
|
51
53
|
} | undefined;
|
|
52
54
|
/**
|
|
53
55
|
* Create MCP Server instance with OAuth secrets (SERVER-SIDE ONLY)
|
package/dist/src/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAI9D;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,aAAa,SAAS,SAAS,cAAc,EAAE,IAAI,SAAS,CAAC,aAAa,CAAC,GAAG;IACxG,uEAAuE;IACvE,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtH,qDAAqD;IACrD,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE;QAAE,MAAM,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7G,oDAAoD;IACpD,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE;QAAE,MAAM,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC7G,CAAC;AAmCF
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAI9D;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,aAAa,SAAS,SAAS,cAAc,EAAE,IAAI,SAAS,CAAC,aAAa,CAAC,GAAG;IACxG,uEAAuE;IACvE,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtH,qDAAqD;IACrD,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE;QAAE,MAAM,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7G,oDAAoD;IACpD,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE;QAAE,MAAM,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC7G,CAAC;AAmCF;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAMtH;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAW9H;AA8BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,wBAAgB,eAAe,CAAC,aAAa,SAAS,SAAS,cAAc,EAAE,EAC7E,MAAM,EAAE,eAAe,CAAC,aAAa,CAAC;IAwXpC,gFAAgF;;IAGhF,4DAA4D;;;;;;;;IAG5D,2DAA2D;;;;;;;;EAG9D;AAmBD,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtF,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAE7F;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,IAAI,GACf,KAAK,GAAG,EACR,SAAS;IAAE,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,iBAYtE,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,GAAG,GACd,KAAK,GAAG,EACR,SAAS;IAAE,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,iBAYtE,CAAC;AAGF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,oBAAoB,EACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EACd,0BAA0B,EAC3B,MAAM,gBAAgB,CAAC;AAExB,cAAc,eAAe,CAAC;AAG9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,wBAAgB,eAAe,CAAC,aAAa,SAAS,SAAS,cAAc,EAAE,GAAG,GAAG,EACnF,eAAe,CAAC,EACZ,eAAe,CAAC,aAAa,CAAC,GAC9B;IACA,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;IACH,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,EACH,eAAe,CAAC,EAAE;IAChB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;gBAoDM,GAAG,WACC;QAAE,MAAM,EAAE;YAAE,GAAG,EAAE,MAAM,EAAE,CAAA;SAAE,GAAG,OAAO,CAAC;YAAE,GAAG,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE;eAe9D,GAAG,WACC;QAAE,MAAM,EAAE;YAAE,GAAG,EAAE,MAAM,EAAE,CAAA;SAAE,GAAG,OAAO,CAAC;YAAE,GAAG,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE;EAWtE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,SAAS,SAAS,cAAc,EAAE,GAAG,GAAG,EACvF,wBAAwB,EACpB,eAAe,CAAC,aAAa,CAAC,GAC9B,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;CAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,GAC9G;IACA,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;IACH,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,EACH,gBAAgB,CAAC,EAAE;IACjB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;iBAO+B;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;EAyFzE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,SAAS,SAAS,cAAc,EAAE,GAAG,GAAG,EACtF,wBAAwB,EACpB,eAAe,CAAC,aAAa,CAAC,GAC9B,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;CAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,GAC9G;IACA,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;IACH,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,EACH,gBAAgB,CAAC,EAAE;IACjB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,WAOsB,GAAG,KAAG,OAAO,CAAC,QAAQ,CAAC,CAgE/C"}
|