@lenne.tech/nest-server 11.42.15 → 11.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/.claude/rules/better-auth.md +22 -0
  2. package/.claude/rules/configurable-features.md +4 -3
  3. package/.claude/rules/testing.md +4 -4
  4. package/FRAMEWORK-API.md +2 -2
  5. package/dist/core/common/filters/mongoose-cast-error.filter.d.ts +17 -0
  6. package/dist/core/common/filters/mongoose-cast-error.filter.js +171 -0
  7. package/dist/core/common/filters/mongoose-cast-error.filter.js.map +1 -0
  8. package/dist/core/common/interfaces/server-options.interface.d.ts +4 -0
  9. package/dist/core/modules/ai/core-ai-mcp-oauth.initializer.d.ts +19 -0
  10. package/dist/core/modules/ai/core-ai-mcp-oauth.initializer.js +145 -0
  11. package/dist/core/modules/ai/core-ai-mcp-oauth.initializer.js.map +1 -0
  12. package/dist/core/modules/ai/core-ai-mcp.controller.js +6 -5
  13. package/dist/core/modules/ai/core-ai-mcp.controller.js.map +1 -1
  14. package/dist/core/modules/ai/core-ai.module.d.ts +2 -0
  15. package/dist/core/modules/ai/core-ai.module.js +6 -1
  16. package/dist/core/modules/ai/core-ai.module.js.map +1 -1
  17. package/dist/core/modules/ai/helpers/ai-mcp-oauth-consent.helper.d.ts +33 -0
  18. package/dist/core/modules/ai/helpers/ai-mcp-oauth-consent.helper.js +282 -0
  19. package/dist/core/modules/ai/helpers/ai-mcp-oauth-consent.helper.js.map +1 -0
  20. package/dist/core/modules/ai/helpers/ai-mcp-oauth.helper.d.ts +15 -2
  21. package/dist/core/modules/ai/helpers/ai-mcp-oauth.helper.js +73 -19
  22. package/dist/core/modules/ai/helpers/ai-mcp-oauth.helper.js.map +1 -1
  23. package/dist/core/modules/ai/helpers/ai-mcp-oauth.registry.d.ts +5 -0
  24. package/dist/core/modules/ai/helpers/ai-mcp-oauth.registry.js.map +1 -1
  25. package/dist/core/modules/ai/index.d.ts +1 -0
  26. package/dist/core/modules/ai/index.js +1 -0
  27. package/dist/core/modules/ai/index.js.map +1 -1
  28. package/dist/core/modules/ai/services/core-ai-mcp-oauth.service.d.ts +30 -2
  29. package/dist/core/modules/ai/services/core-ai-mcp-oauth.service.js +222 -15
  30. package/dist/core/modules/ai/services/core-ai-mcp-oauth.service.js.map +1 -1
  31. package/dist/core/modules/better-auth/better-auth.config.d.ts +4 -0
  32. package/dist/core/modules/better-auth/better-auth.config.js +29 -2
  33. package/dist/core/modules/better-auth/better-auth.config.js.map +1 -1
  34. package/dist/core/modules/better-auth/core-better-auth.controller.d.ts +2 -0
  35. package/dist/core/modules/better-auth/core-better-auth.controller.js +36 -1
  36. package/dist/core/modules/better-auth/core-better-auth.controller.js.map +1 -1
  37. package/dist/core.module.js +7 -0
  38. package/dist/core.module.js.map +1 -1
  39. package/dist/index.d.ts +1 -0
  40. package/dist/index.js +1 -0
  41. package/dist/index.js.map +1 -1
  42. package/dist/tsconfig.build.tsbuildinfo +1 -1
  43. package/docs/REQUEST-LIFECYCLE.md +30 -1
  44. package/docs/security-overrides.md +3 -2
  45. package/migration-guides/11.42.15-to-11.42.16.md +114 -0
  46. package/migration-guides/11.42.x-to-11.43.x.md +195 -0
  47. package/package.json +7 -7
  48. package/src/core/common/filters/mongoose-cast-error.filter.ts +310 -0
  49. package/src/core/common/helpers/swagger.helper.ts +4 -4
  50. package/src/core/common/interfaces/server-options.interface.ts +59 -9
  51. package/src/core/modules/ai/INTEGRATION-CHECKLIST.md +50 -24
  52. package/src/core/modules/ai/README.md +98 -13
  53. package/src/core/modules/ai/core-ai-mcp-oauth.initializer.ts +199 -0
  54. package/src/core/modules/ai/core-ai-mcp.controller.ts +13 -6
  55. package/src/core/modules/ai/core-ai.module.ts +14 -2
  56. package/src/core/modules/ai/helpers/ai-mcp-oauth-consent.helper.ts +369 -0
  57. package/src/core/modules/ai/helpers/ai-mcp-oauth.helper.ts +149 -43
  58. package/src/core/modules/ai/helpers/ai-mcp-oauth.registry.ts +18 -5
  59. package/src/core/modules/ai/index.ts +1 -0
  60. package/src/core/modules/ai/services/core-ai-mcp-oauth.service.ts +385 -28
  61. package/src/core/modules/better-auth/better-auth.config.ts +49 -5
  62. package/src/core/modules/better-auth/core-better-auth.controller.ts +75 -1
  63. package/src/core.module.ts +13 -1
  64. package/src/index.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ai-mcp-oauth.helper.js","sourceRoot":"","sources":["../../../../../src/core/modules/ai/helpers/ai-mcp-oauth.helper.ts"],"names":[],"mappings":";;AAwCA,0CAoCC;AA5ED,2CAAwC;AAExC,2EAA2E;AAC3E,4EAAwE;AACxE,qFAA8E;AAC9E,mEAA6D;AAmCtD,KAAK,UAAU,eAAe,CACnC,GAA+D,EAC/D,UAAkD,EAAE;IAEpD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,sBAAsB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACpD,MAAM,EAAE,aAAa,EAAE,GAAG,2CAAa,iDAAiD,EAAC,CAAC;IAC1F,MAAM,YAAY,GAA0B,GAAG,CAAC,GAAG,CAAC,iDAAqB,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,SAAS,CAAC;IAE7C,IAAI,MAAe,CAAC;IACpB,MAAM,QAAQ,GAAG,YAAY,CAAC,kBAAkB,EAAS,CAAC;IAC1D,IAAI,CAAC;QACH,MAAM,GAAG,aAAa,CAAC;YACrB,SAAS;YACT,QAAQ;YACR,iBAAiB,EAAE,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC;SACtE,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAIf,MAAM,MAAM,GAAI,KAAe,CAAC,OAAO,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,kCAAkC,OAAO,WAAW,MAAM,eAAe,MAAM,EAAE,EAAE;YACjG,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEhB,IAAA,0CAAkB,EAAC;QACjB,OAAO;QACP,YAAY,EAAE,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,cAAc;QACtD,UAAU,EAAE,CAAC,CAAC,QAAQ,EAAE,WAAW;KACpC,CAAC,CAAC;IACH,IAAI,eAAM,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,qBAAqB,SAAS,CAAC,IAAI,UAAU,MAAM,GAAG,CAAC,CAAC;AAC5F,CAAC;AAMD,SAAS,sBAAsB,CAAC,QAA4B;IAC1D,MAAM,KAAK,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/B,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;IACvD,CAAC;IAED,MAAM,MAAM,GAAG,8BAAa,CAAC,qBAAqB,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAA,kCAAiB,EAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACnF,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,MAAM,EACJ,QAAQ,CAAC,aAAa,KAAK,mBAAmB,CAAC,CAAC,CAAC,2BAA2B,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,gBAAgB;SAChH,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,KAAK,CACb,oEAAoE,MAAM,EAAE,GAAG,IAAI,OAAO,KAAK;QAC7F,gFAAgF;QAChF,sEAAsE,CACzE,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa,EAAE,MAAc;IACrD,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,qBAAqB,KAAK,WAAW,MAAM,0BAA0B,CAAC,CAAC;IACzF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"ai-mcp-oauth.helper.js","sourceRoot":"","sources":["../../../../../src/core/modules/ai/helpers/ai-mcp-oauth.helper.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,11 @@
1
1
  export interface IMountedMcpOAuth {
2
+ authBasePath?: string;
3
+ baseUrl: string;
4
+ issuerUrl: string;
2
5
  mcpPath: string;
3
6
  registration: boolean;
7
+ resourceMetadataUrl: string;
8
+ resourceUrl: string;
4
9
  revocation: boolean;
5
10
  }
6
11
  export declare function setMountedMcpOAuth(value: IMountedMcpOAuth | undefined): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ai-mcp-oauth.registry.js","sourceRoot":"","sources":["../../../../../src/core/modules/ai/helpers/ai-mcp-oauth.registry.ts"],"names":[],"mappings":";;AAqBA,gDAEC;AAGD,gDAEC;AAVD,IAAI,OAAqC,CAAC;AAG1C,SAAgB,kBAAkB,CAAC,KAAmC;IACpE,OAAO,GAAG,KAAK,CAAC;AAClB,CAAC;AAGD,SAAgB,kBAAkB;IAChC,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"ai-mcp-oauth.registry.js","sourceRoot":"","sources":["../../../../../src/core/modules/ai/helpers/ai-mcp-oauth.registry.ts"],"names":[],"mappings":";;AAkCA,gDAEC;AAGD,gDAEC;AAVD,IAAI,OAAqC,CAAC;AAG1C,SAAgB,kBAAkB,CAAC,KAAmC;IACpE,OAAO,GAAG,KAAK,CAAC;AAClB,CAAC;AAGD,SAAgB,kBAAkB;IAChC,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,3 +1,4 @@
1
+ export * from './core-ai-mcp-oauth.initializer';
1
2
  export * from './core-ai-mcp.controller';
2
3
  export * from './helpers/ai-mcp-oauth.helper';
3
4
  export * from './core-ai.controller';
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./core-ai-mcp-oauth.initializer"), exports);
17
18
  __exportStar(require("./core-ai-mcp.controller"), exports);
18
19
  __exportStar(require("./helpers/ai-mcp-oauth.helper"), exports);
19
20
  __exportStar(require("./core-ai.controller"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/modules/ai/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,2DAAyC;AACzC,gEAA8C;AAC9C,uDAAqC;AACrC,mDAAiC;AACjC,qDAAmC;AACnC,6EAA2D;AAC3D,sEAAoD;AACpD,2EAAyD;AACzD,+EAA6D;AAC7D,oEAAkD;AAClD,6EAA2D;AAC3D,sEAAoD;AACpD,4EAA0D;AAC1D,qEAAmD;AACnD,uEAAqD;AACrD,uEAAqD;AACrD,qEAAmD;AACnD,qEAAmD;AACnD,gEAA8C;AAC9C,uDAAqC;AACrC,2DAAyC;AACzC,+EAA6D;AAC7D,iEAA+C;AAC/C,wEAAsD;AACtD,iEAA+C;AAC/C,sEAAoD;AACpD,gFAA8D;AAC9D,gEAA8C;AAC9C,8EAA4D;AAC5D,sEAAoD;AACpD,+EAA6D;AAC7D,oEAAkD;AAClD,sEAAoD;AACpD,qEAAmD;AACnD,iEAA+C;AAC/C,qEAAmD;AACnD,gEAA8C;AAC9C,8DAA4C;AAC5C,oEAAkD;AAClD,8DAA4C;AAC5C,qEAAmD;AACnD,kEAAgD;AAChD,oEAAkD;AAClD,+DAA6C;AAC7C,kEAAgD;AAChD,mEAAiD;AACjD,yEAAuD;AACvD,+DAA6C;AAC7C,oEAAkD;AAClD,mFAAiE;AACjE,iFAA+D;AAC/D,wEAAsD;AACtD,0EAAwD;AACxD,yEAAuD;AACvD,uEAAqD;AACrD,iEAA+C;AAC/C,0EAAwD;AACxD,4EAA0D;AAC1D,yEAAuD;AACvD,oEAAkD;AAClD,kEAAgD;AAChD,wEAAsD;AACtD,wEAAsD;AACtD,kEAAgD;AAChD,yEAAuD;AACvD,6DAA2C;AAC3C,uDAAqC;AACrC,2DAAyC;AACzC,iEAA+C;AAC/C,4DAA0C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/modules/ai/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,kEAAgD;AAChD,2DAAyC;AACzC,gEAA8C;AAC9C,uDAAqC;AACrC,mDAAiC;AACjC,qDAAmC;AACnC,6EAA2D;AAC3D,sEAAoD;AACpD,2EAAyD;AACzD,+EAA6D;AAC7D,oEAAkD;AAClD,6EAA2D;AAC3D,sEAAoD;AACpD,4EAA0D;AAC1D,qEAAmD;AACnD,uEAAqD;AACrD,uEAAqD;AACrD,qEAAmD;AACnD,qEAAmD;AACnD,gEAA8C;AAC9C,uDAAqC;AACrC,2DAAyC;AACzC,+EAA6D;AAC7D,iEAA+C;AAC/C,wEAAsD;AACtD,iEAA+C;AAC/C,sEAAoD;AACpD,gFAA8D;AAC9D,gEAA8C;AAC9C,8EAA4D;AAC5D,sEAAoD;AACpD,+EAA6D;AAC7D,oEAAkD;AAClD,sEAAoD;AACpD,qEAAmD;AACnD,iEAA+C;AAC/C,qEAAmD;AACnD,gEAA8C;AAC9C,8DAA4C;AAC5C,oEAAkD;AAClD,8DAA4C;AAC5C,qEAAmD;AACnD,kEAAgD;AAChD,oEAAkD;AAClD,+DAA6C;AAC7C,kEAAgD;AAChD,mEAAiD;AACjD,yEAAuD;AACvD,+DAA6C;AAC7C,oEAAkD;AAClD,mFAAiE;AACjE,iFAA+D;AAC/D,wEAAsD;AACtD,0EAAwD;AACxD,yEAAuD;AACvD,uEAAqD;AACrD,iEAA+C;AAC/C,0EAAwD;AACxD,4EAA0D;AAC1D,yEAAuD;AACvD,oEAAkD;AAClD,kEAAgD;AAChD,wEAAsD;AACtD,wEAAsD;AACtD,kEAAgD;AAChD,yEAAuD;AACvD,6DAA2C;AAC3C,uDAAqC;AACrC,2DAAyC;AACzC,iEAA+C;AAC/C,4DAA0C"}
@@ -1,5 +1,7 @@
1
+ import type * as OAuthErrors from '@modelcontextprotocol/sdk/server/auth/errors.js';
1
2
  import { Logger, OnModuleInit } from '@nestjs/common';
2
3
  import { Connection } from 'mongoose';
4
+ import { IMcpOAuthConsentView } from '../helpers/ai-mcp-oauth-consent.helper';
3
5
  export interface AiMcpOAuthClient {
4
6
  client_id: string;
5
7
  client_name?: string;
@@ -14,6 +16,12 @@ export interface AiMcpAccessTokenPayload {
14
16
  sub: string;
15
17
  type: 'mcp_access';
16
18
  }
19
+ export interface IAiMcpOAuthConsentBinding {
20
+ clientId: string;
21
+ codeChallenge: string;
22
+ redirectUri: string;
23
+ userId: string;
24
+ }
17
25
  export declare class CoreAiMcpOAuthService implements OnModuleInit {
18
26
  protected readonly connection: Connection;
19
27
  protected readonly logger: Logger;
@@ -25,6 +33,9 @@ export declare class CoreAiMcpOAuthService implements OnModuleInit {
25
33
  constructor(connection: Connection);
26
34
  onModuleInit(): void;
27
35
  assertProductionSafe(): void;
36
+ protected allowsDevelopmentSecret(): boolean;
37
+ isOAuthEnabled(): boolean;
38
+ usesBuiltInConsent(): boolean;
28
39
  protected oauthEnabled(): boolean;
29
40
  protected resolveSecret(): string | undefined;
30
41
  signAccessToken(userId: string, clientId: string, ttlSeconds?: number): string;
@@ -43,7 +54,7 @@ export declare class CoreAiMcpOAuthService implements OnModuleInit {
43
54
  codeChallenge: string;
44
55
  userId: string;
45
56
  } | null>;
46
- consumeAuthorizationCode(code: string): Promise<{
57
+ consumeAuthorizationCode(code: string, clientId?: string): Promise<{
47
58
  clientId: string;
48
59
  codeChallenge: string;
49
60
  userId: string;
@@ -59,7 +70,24 @@ export declare class CoreAiMcpOAuthService implements OnModuleInit {
59
70
  roles: string[];
60
71
  } | null>;
61
72
  buildOAuthProvider(accessTtlSeconds?: number): Record<string, any>;
62
- protected authorizeConsent(_client: any, _params: any, _res: any): Promise<void>;
73
+ protected readonly consentTokenTtlSeconds = 600;
74
+ protected authorizeConsent(client: any, params: any, res: any): Promise<void>;
75
+ protected renderConsentPage(view: IMcpOAuthConsentView): string;
76
+ protected consentUser(req: any): Promise<{
77
+ email?: string;
78
+ id: string;
79
+ name?: string;
80
+ } | undefined>;
81
+ protected buildConsentView(req: any, client: any, params: any, user: {
82
+ email?: string;
83
+ id: string;
84
+ name?: string;
85
+ } | undefined, notice?: IMcpOAuthConsentView['notice']): IMcpOAuthConsentView;
86
+ protected consentAppHost(): string;
87
+ protected consentLoginUrl(req: any): IMcpOAuthConsentView['loginUrl'];
88
+ protected signConsentToken(binding: IAiMcpOAuthConsentBinding): string;
89
+ protected verifyConsentToken(token: unknown, binding: IAiMcpOAuthConsentBinding): 'expired' | 'invalid' | 'valid';
90
+ protected loadOAuthErrors(): Promise<typeof OAuthErrors>;
63
91
  protected hmac(payloadStr: string): string;
64
92
  protected safeEqual(a: string, b: string): boolean;
65
93
  protected getSecret(): string;
@@ -16,11 +16,35 @@ Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.CoreAiMcpOAuthService = void 0;
17
17
  const common_1 = require("@nestjs/common");
18
18
  const mongoose_1 = require("@nestjs/mongoose");
19
+ const node_async_hooks_1 = require("node:async_hooks");
19
20
  const node_crypto_1 = require("node:crypto");
20
21
  const mongoose_2 = require("mongoose");
21
22
  const cookies_helper_1 = require("../../../common/helpers/cookies.helper");
22
23
  const config_service_1 = require("../../../common/services/config.service");
23
24
  const core_api_token_helpers_1 = require("../../api-token/core-api-token.helpers");
25
+ const core_better_auth_registry_1 = require("../../better-auth/core-better-auth.registry");
26
+ const ai_mcp_oauth_consent_helper_1 = require("../helpers/ai-mcp-oauth-consent.helper");
27
+ const ai_mcp_oauth_registry_1 = require("../helpers/ai-mcp-oauth.registry");
28
+ const authorizeRequest = new node_async_hooks_1.AsyncLocalStorage();
29
+ function assertCodeIssuanceAllowed() {
30
+ const request = authorizeRequest.getStore();
31
+ if (request && request.method !== 'POST') {
32
+ const message = `MCP OAuth: refused to issue an authorization code while answering ${request.method || 'a non-POST'} /authorize. ` +
33
+ 'Show the consent page on GET and issue the code only when the user approves it with a POST.';
34
+ new common_1.Logger('CoreAiMcpOAuthService').error(message);
35
+ throw new Error(message);
36
+ }
37
+ }
38
+ function consentTokenPayload(binding, exp) {
39
+ return JSON.stringify([
40
+ 'mcp_consent',
41
+ binding.userId,
42
+ binding.clientId,
43
+ binding.redirectUri,
44
+ binding.codeChallenge,
45
+ exp,
46
+ ]);
47
+ }
24
48
  let CoreAiMcpOAuthService = CoreAiMcpOAuthService_1 = class CoreAiMcpOAuthService {
25
49
  connection;
26
50
  logger = new common_1.Logger(CoreAiMcpOAuthService_1.name);
@@ -36,12 +60,21 @@ let CoreAiMcpOAuthService = CoreAiMcpOAuthService_1 = class CoreAiMcpOAuthServic
36
60
  this.assertProductionSafe();
37
61
  }
38
62
  assertProductionSafe() {
39
- if (this.oauthEnabled() && (0, cookies_helper_1.isProductionLikeEnv)(config_service_1.ConfigService.get('env')) && !this.resolveSecret()) {
40
- throw new Error('AI MCP OAuth signing secret is required in production/staging when ai.mcp.oauth is enabled, ' +
63
+ if (this.oauthEnabled() && !this.allowsDevelopmentSecret() && !this.resolveSecret()) {
64
+ throw new Error('AI MCP OAuth signing secret is required when ai.mcp.oauth is enabled outside local / ci / e2e, ' +
41
65
  'but none is set (ai.mcp.oauthSecret / ai.encryptionSecret / NSC__AI__ENCRYPTION_SECRET / ' +
42
66
  'SECRETS_ENCRYPTION_KEY). Set a random 32+ char value.');
43
67
  }
44
68
  }
69
+ allowsDevelopmentSecret() {
70
+ return (0, cookies_helper_1.isLocalEnv)(config_service_1.ConfigService.get('env') ?? process.env.NODE_ENV);
71
+ }
72
+ isOAuthEnabled() {
73
+ return this.oauthEnabled();
74
+ }
75
+ usesBuiltInConsent() {
76
+ return this.authorizeConsent === CoreAiMcpOAuthService_1.prototype.authorizeConsent;
77
+ }
45
78
  oauthEnabled() {
46
79
  const mcp = config_service_1.ConfigService.get('ai.mcp');
47
80
  return typeof mcp === 'object' && mcp?.oauth === true;
@@ -120,6 +153,7 @@ let CoreAiMcpOAuthService = CoreAiMcpOAuthService_1 = class CoreAiMcpOAuthServic
120
153
  };
121
154
  }
122
155
  async saveAuthorizationCode(code, data) {
156
+ assertCodeIssuanceAllowed();
123
157
  await this.ensureIndexes();
124
158
  await this.db().collection(this.codesCollection).insertOne({
125
159
  clientId: data.clientId,
@@ -133,8 +167,9 @@ let CoreAiMcpOAuthService = CoreAiMcpOAuthService_1 = class CoreAiMcpOAuthServic
133
167
  const doc = await this.db().collection(this.codesCollection).findOne({ code });
134
168
  return doc ? { clientId: doc.clientId, codeChallenge: doc.codeChallenge, userId: doc.userId } : null;
135
169
  }
136
- async consumeAuthorizationCode(code) {
137
- const doc = await this.db().collection(this.codesCollection).findOneAndDelete({ code });
170
+ async consumeAuthorizationCode(code, clientId) {
171
+ const filter = clientId === undefined ? { code } : { clientId, code };
172
+ const doc = await this.db().collection(this.codesCollection).findOneAndDelete(filter);
138
173
  const value = doc?.value ?? doc;
139
174
  if (!value) {
140
175
  return null;
@@ -179,9 +214,11 @@ let CoreAiMcpOAuthService = CoreAiMcpOAuthService_1 = class CoreAiMcpOAuthServic
179
214
  return {
180
215
  authorize: async (client, params, res) => {
181
216
  if ((0, core_api_token_helpers_1.getApiTokenContext)(res?.req?.user)) {
182
- throw new Error('access_denied: an API token cannot authorize an OAuth client');
217
+ const { AccessDeniedError } = await this.loadOAuthErrors();
218
+ throw new AccessDeniedError('An API token cannot authorize an OAuth client');
183
219
  }
184
- return this.authorizeConsent(client, params, res);
220
+ const method = String(res?.req?.method ?? '').toUpperCase();
221
+ return authorizeRequest.run({ method }, () => this.authorizeConsent(client, params, res));
185
222
  },
186
223
  challengeForAuthorizationCode: async (_client, authorizationCode) => {
187
224
  const stored = await this.getAuthorizationCode(authorizationCode);
@@ -192,9 +229,10 @@ let CoreAiMcpOAuthService = CoreAiMcpOAuthService_1 = class CoreAiMcpOAuthServic
192
229
  registerClient: (client) => this.registerClient(client),
193
230
  },
194
231
  exchangeAuthorizationCode: async (client, authorizationCode) => {
195
- const stored = await this.consumeAuthorizationCode(authorizationCode);
196
- if (!stored || stored.clientId !== client.client_id) {
197
- throw new Error('invalid_grant');
232
+ const stored = await this.consumeAuthorizationCode(authorizationCode, String(client?.client_id ?? ''));
233
+ if (!stored || stored.clientId !== client?.client_id) {
234
+ const { InvalidGrantError } = await this.loadOAuthErrors();
235
+ throw new InvalidGrantError('Authorization code is invalid, expired, already used or issued to another client');
198
236
  }
199
237
  return {
200
238
  access_token: this.signAccessToken(stored.userId, stored.clientId, accessTtlSeconds),
@@ -206,11 +244,13 @@ let CoreAiMcpOAuthService = CoreAiMcpOAuthService_1 = class CoreAiMcpOAuthServic
206
244
  exchangeRefreshToken: async (client, refreshToken) => {
207
245
  const callerClientId = client?.client_id;
208
246
  if (!callerClientId) {
209
- throw new Error('invalid_client');
247
+ const { InvalidClientError } = await this.loadOAuthErrors();
248
+ throw new InvalidClientError('Unknown client');
210
249
  }
211
250
  const rotated = await this.rotateRefreshToken(refreshToken, callerClientId);
212
251
  if (!rotated) {
213
- throw new Error('invalid_grant');
252
+ const { InvalidGrantError } = await this.loadOAuthErrors();
253
+ throw new InvalidGrantError('Refresh token is invalid, already used or issued to another client');
214
254
  }
215
255
  return {
216
256
  access_token: this.signAccessToken(rotated.userId, rotated.clientId, accessTtlSeconds),
@@ -222,14 +262,176 @@ let CoreAiMcpOAuthService = CoreAiMcpOAuthService_1 = class CoreAiMcpOAuthServic
222
262
  verifyAccessToken: async (token) => {
223
263
  const payload = this.verifyAccessToken(token);
224
264
  if (!payload) {
225
- throw new Error('invalid_token');
265
+ const { InvalidTokenError } = await this.loadOAuthErrors();
266
+ throw new InvalidTokenError('Invalid or expired access token');
226
267
  }
227
- return { clientId: payload.cid, extra: { userId: payload.sub }, scopes: [], token };
268
+ return { clientId: payload.cid, expiresAt: payload.exp, extra: { userId: payload.sub }, scopes: [], token };
228
269
  },
229
270
  };
230
271
  }
231
- async authorizeConsent(_client, _params, _res) {
232
- throw new Error('authorizeConsent is not implemented — override CoreAiMcpOAuthService.authorizeConsent to wire your login/consent UI.');
272
+ consentTokenTtlSeconds = 600;
273
+ async authorizeConsent(client, params, res) {
274
+ const req = res?.req;
275
+ const user = await this.consentUser(req);
276
+ const decision = req?.method === 'POST' ? req.body?.[ai_mcp_oauth_consent_helper_1.MCP_OAUTH_CONSENT_DECISION_FIELD] : undefined;
277
+ if (user && decision === 'deny') {
278
+ const { AccessDeniedError } = await this.loadOAuthErrors();
279
+ throw new AccessDeniedError('The user denied access');
280
+ }
281
+ let notice;
282
+ if (user && decision === 'approve') {
283
+ const binding = {
284
+ clientId: String(client.client_id),
285
+ codeChallenge: String(params.codeChallenge),
286
+ redirectUri: String(params.redirectUri),
287
+ userId: user.id,
288
+ };
289
+ const verdict = this.verifyConsentToken(req.body?.[ai_mcp_oauth_consent_helper_1.MCP_OAUTH_CONSENT_TOKEN_FIELD], binding);
290
+ if (verdict === 'valid') {
291
+ const code = this.generateId();
292
+ await this.saveAuthorizationCode(code, {
293
+ clientId: binding.clientId,
294
+ codeChallenge: binding.codeChallenge,
295
+ userId: binding.userId,
296
+ });
297
+ const target = new URL(binding.redirectUri);
298
+ target.searchParams.set('code', code);
299
+ if (params.state) {
300
+ target.searchParams.set('state', params.state);
301
+ }
302
+ res.redirect(302, target.href);
303
+ return;
304
+ }
305
+ if (verdict === 'expired') {
306
+ notice = 'expired';
307
+ }
308
+ else {
309
+ this.logger.warn(`MCP OAuth consent for client ${binding.clientId} carried an invalid token (forged, tampered, or from ` +
310
+ 'another session); no code issued, the form is shown again.');
311
+ }
312
+ }
313
+ const view = this.buildConsentView(req, client, params, user, notice);
314
+ res.status(200);
315
+ for (const [name, value] of Object.entries((0, ai_mcp_oauth_consent_helper_1.mcpOAuthConsentHeaders)(view.nonce))) {
316
+ res.setHeader(name, value);
317
+ }
318
+ res.send(this.renderConsentPage(view));
319
+ }
320
+ renderConsentPage(view) {
321
+ return (0, ai_mcp_oauth_consent_helper_1.renderMcpOAuthConsentPage)(view);
322
+ }
323
+ async consentUser(req) {
324
+ const toConsentUser = (user) => user?.id && !(0, core_api_token_helpers_1.getApiTokenContext)(user) ? { email: user.email, id: String(user.id), name: user.name } : undefined;
325
+ if (req?.user?.id) {
326
+ return toConsentUser(req.user);
327
+ }
328
+ const tokenService = (0, core_better_auth_registry_1.getBetterAuthTokenService)();
329
+ if (!tokenService || !req || (0, core_api_token_helpers_1.hasApiTokenCredential)(req)) {
330
+ return undefined;
331
+ }
332
+ try {
333
+ const { token } = tokenService.extractTokenFromRequest(req);
334
+ return token ? toConsentUser(await tokenService.verifyAndLoadUser(token)) : undefined;
335
+ }
336
+ catch {
337
+ return undefined;
338
+ }
339
+ }
340
+ buildConsentView(req, client, params, user, notice) {
341
+ const redirect = new URL(String(params.redirectUri));
342
+ const oauthParams = {
343
+ client_id: String(client.client_id),
344
+ code_challenge: String(params.codeChallenge),
345
+ code_challenge_method: 'S256',
346
+ redirect_uri: String(params.redirectUri),
347
+ response_type: 'code',
348
+ };
349
+ if (params.state) {
350
+ oauthParams.state = String(params.state);
351
+ }
352
+ if (Array.isArray(params.scopes) && params.scopes.length) {
353
+ oauthParams.scope = params.scopes.join(' ');
354
+ }
355
+ if (params.resource) {
356
+ oauthParams.resource = String(params.resource.href ?? params.resource);
357
+ }
358
+ return {
359
+ appHost: this.consentAppHost(),
360
+ authBasePath: (0, core_better_auth_registry_1.getBetterAuthTokenService)()
361
+ ? (0, ai_mcp_oauth_registry_1.getMountedMcpOAuth)()?.authBasePath || config_service_1.ConfigService.get('betterAuth.basePath') || '/iam'
362
+ : undefined,
363
+ client: { id: String(client.client_id), name: client.client_name },
364
+ csrfToken: user
365
+ ? this.signConsentToken({
366
+ clientId: oauthParams.client_id,
367
+ codeChallenge: oauthParams.code_challenge,
368
+ redirectUri: oauthParams.redirect_uri,
369
+ userId: user.id,
370
+ })
371
+ : undefined,
372
+ locale: (0, ai_mcp_oauth_consent_helper_1.mcpOAuthConsentLocale)(req?.headers?.['accept-language']),
373
+ loginUrl: user ? undefined : this.consentLoginUrl(req),
374
+ nonce: (0, node_crypto_1.randomBytes)(16).toString('base64'),
375
+ notice,
376
+ oauthParams,
377
+ redirect: { host: redirect.host, loopback: ['localhost', '127.0.0.1', '[::1]'].includes(redirect.hostname) },
378
+ user: user ? { email: user.email, name: user.name } : undefined,
379
+ };
380
+ }
381
+ consentAppHost() {
382
+ for (const url of [(0, cookies_helper_1.resolveAppUrlFromConfig)(config_service_1.ConfigService), (0, ai_mcp_oauth_registry_1.getMountedMcpOAuth)()?.baseUrl]) {
383
+ try {
384
+ if (url) {
385
+ return new URL(url).host;
386
+ }
387
+ }
388
+ catch {
389
+ }
390
+ }
391
+ return '';
392
+ }
393
+ consentLoginUrl(req) {
394
+ const configured = config_service_1.ConfigService.get('ai.mcp.oauthLoginUrl');
395
+ const appUrl = (0, cookies_helper_1.resolveAppUrlFromConfig)(config_service_1.ConfigService);
396
+ const template = typeof configured === 'string' && configured.trim()
397
+ ? configured.trim()
398
+ : appUrl
399
+ ? `${appUrl.replace(/\/$/, '')}/auth/login`
400
+ : undefined;
401
+ if (!template) {
402
+ return undefined;
403
+ }
404
+ const returnsHere = template.includes('{returnTo}');
405
+ const base = (0, ai_mcp_oauth_registry_1.getMountedMcpOAuth)()?.baseUrl;
406
+ const returnTo = returnsHere && base && req?.originalUrl ? new URL(String(req.originalUrl), `${base}/`).href : '';
407
+ try {
408
+ const href = new URL(template.replace('{returnTo}', () => encodeURIComponent(returnTo))).href;
409
+ return /^https?:/.test(href) ? { href, returnsHere } : undefined;
410
+ }
411
+ catch {
412
+ return undefined;
413
+ }
414
+ }
415
+ signConsentToken(binding) {
416
+ const exp = Math.floor(Date.now() / 1000) + this.consentTokenTtlSeconds;
417
+ return `${exp}.${this.hmac(consentTokenPayload(binding, exp))}`;
418
+ }
419
+ verifyConsentToken(token, binding) {
420
+ if (typeof token !== 'string') {
421
+ return 'invalid';
422
+ }
423
+ const parts = token.split('.');
424
+ const exp = Number(parts[0]);
425
+ if (parts.length !== 2 || !Number.isSafeInteger(exp) || !parts[1]) {
426
+ return 'invalid';
427
+ }
428
+ if (!this.safeEqual(parts[1], this.hmac(consentTokenPayload(binding, exp)))) {
429
+ return 'invalid';
430
+ }
431
+ return exp > Math.floor(Date.now() / 1000) ? 'valid' : 'expired';
432
+ }
433
+ loadOAuthErrors() {
434
+ return Promise.resolve().then(() => require('@modelcontextprotocol/sdk/server/auth/errors.js'));
233
435
  }
234
436
  hmac(payloadStr) {
235
437
  return (0, node_crypto_1.createHmac)('sha256', this.getSecret()).update(payloadStr).digest('base64url');
@@ -244,6 +446,11 @@ let CoreAiMcpOAuthService = CoreAiMcpOAuthService_1 = class CoreAiMcpOAuthServic
244
446
  }
245
447
  getSecret() {
246
448
  const raw = this.resolveSecret();
449
+ if (!raw && !this.allowsDevelopmentSecret()) {
450
+ throw new Error('AI MCP OAuth signing secret is not configured outside local / ci / e2e; refusing to sign or verify ' +
451
+ 'tokens with the public development default. Set ai.mcp.oauthSecret (or ai.encryptionSecret / ' +
452
+ 'NSC__AI__ENCRYPTION_SECRET / SECRETS_ENCRYPTION_KEY).');
453
+ }
247
454
  if (!raw) {
248
455
  if (!this.warnedSecret) {
249
456
  this.logger.warn('No AI MCP OAuth secret set — using an insecure development default. Set ai.mcp.oauthSecret ' +
@@ -1 +1 @@
1
- {"version":3,"file":"core-ai-mcp-oauth.service.js","sourceRoot":"","sources":["../../../../../src/core/modules/ai/services/core-ai-mcp-oauth.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core-ai-mcp-oauth.service.js","sourceRoot":"","sources":["../../../../../src/core/modules/ai/services/core-ai-mcp-oauth.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,2CAAkE;AAClE,+CAAoD;AACpD,uDAAqD;AACrD,6CAAmF;AACnF,uCAAsC;AAEtC,2EAA6F;AAC7F,4EAAwE;AACxE,mFAAmG;AACnG,2FAAwF;AACxF,wFAOgD;AAChD,4EAAsE;AAiDtE,MAAM,gBAAgB,GAAG,IAAI,oCAAiB,EAAsB,CAAC;AAarE,SAAS,yBAAyB;IAChC,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC;IAC5C,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QACzC,MAAM,OAAO,GACX,qEAAqE,OAAO,CAAC,MAAM,IAAI,YAAY,eAAe;YAClH,6FAA6F,CAAC;QAGhG,IAAI,eAAM,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAMD,SAAS,mBAAmB,CAAC,OAAkC,EAAE,GAAW;IAC1E,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,aAAa;QACb,OAAO,CAAC,MAAM;QACd,OAAO,CAAC,QAAQ;QAChB,OAAO,CAAC,WAAW;QACnB,OAAO,CAAC,aAAa;QACrB,GAAG;KACJ,CAAC,CAAC;AACL,CAAC;AAiBM,IAAM,qBAAqB,6BAA3B,MAAM,qBAAqB;IAWmB;IAVhC,MAAM,GAAG,IAAI,eAAM,CAAC,uBAAqB,CAAC,IAAI,CAAC,CAAC;IAGhD,iBAAiB,GAAG,mBAAmB,CAAC;IACxC,eAAe,GAAG,iBAAiB,CAAC;IACpC,iBAAiB,GAAG,yBAAyB,CAAC;IAEzD,cAAc,GAAG,KAAK,CAAC;IACvB,YAAY,GAAG,KAAK,CAAC;IAE7B,YAAmD,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAO7E,YAAY;QACV,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAGD,oBAAoB;QAClB,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACpF,MAAM,IAAI,KAAK,CACb,iGAAiG;gBAC/F,2FAA2F;gBAC3F,uDAAuD,CAC1D,CAAC;QACJ,CAAC;IACH,CAAC;IAQS,uBAAuB;QAC/B,OAAO,IAAA,2BAAU,EAAC,8BAAa,CAAC,GAAG,CAAS,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9E,CAAC;IAGD,cAAc;QACZ,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;IAC7B,CAAC;IAMD,kBAAkB;QAChB,OAAO,IAAI,CAAC,gBAAgB,KAAK,uBAAqB,CAAC,SAAS,CAAC,gBAAgB,CAAC;IACpF,CAAC;IAGS,YAAY;QACpB,MAAM,GAAG,GAAG,8BAAa,CAAC,GAAG,CAAsB,QAAQ,CAAC,CAAC;QAC7D,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IACxD,CAAC;IAGS,aAAa;QACrB,OAAO,CACL,8BAAa,CAAC,GAAG,CAAS,oBAAoB,CAAC;YAC/C,8BAAa,CAAC,GAAG,CAAS,qBAAqB,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,0BAA0B;YACtC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CACnC,CAAC;IACJ,CAAC;IASD,eAAe,CAAC,MAAc,EAAE,QAAgB,EAAE,UAAU,GAAG,IAAI;QACjE,MAAM,OAAO,GAA4B;YACvC,GAAG,EAAE,QAAQ;YACb,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,UAAU;YAC/C,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,YAAY;SACnB,CAAC;QACF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC9E,OAAO,GAAG,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;IAClD,CAAC;IAKD,iBAAiB,CAAC,KAAa;QAC7B,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAA4B,CAAC;YAC7G,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBAClF,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAKD,UAAU,CAAC,QAAgB,EAAE,SAAiB,EAAE,MAAM,GAAG,MAAM;QAC7D,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAEtB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,QAAQ,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC7C,CAAC;IAKD,UAAU,CAAC,KAAK,GAAG,EAAE;QACnB,OAAO,IAAA,yBAAW,EAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IASD,KAAK,CAAC,cAAc,CAAC,MAAwB;QAC3C,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3B,MAAM,IAAI,CAAC,EAAE,EAAE;aACZ,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC;aAClC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QACnD,OAAO,MAAM,CAAC;IAChB,CAAC;IAWD,KAAK,CAAC,SAAS,CAAC,QAAgB;QAC9B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChG,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO;YACL,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,wBAAwB,EAAE,GAAG,CAAC,wBAAwB;YACtD,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,0BAA0B,EAAE,GAAG,CAAC,0BAA0B;SAC3D,CAAC;IACJ,CAAC;IAQD,KAAK,CAAC,qBAAqB,CACzB,IAAY,EACZ,IAAiE;QAEjE,yBAAyB,EAAE,CAAC;QAC5B,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3B,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC;YACzD,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI;YACJ,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;IAKD,KAAK,CAAC,oBAAoB,CACxB,IAAY;QAEZ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/E,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACvG,CAAC;IASD,KAAK,CAAC,wBAAwB,CAC5B,IAAY,EACZ,QAAiB;QAEjB,MAAM,MAAM,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACtE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACtF,MAAM,KAAK,GAAI,GAAW,EAAE,KAAK,IAAI,GAAG,CAAC;QACzC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IAChG,CAAC;IAKD,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,QAAgB;QACtD,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACjH,OAAO,KAAK,CAAC;IACf,CAAC;IAWD,KAAK,CAAC,kBAAkB,CACtB,KAAa,EACb,QAAgB;QAEhB,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACrG,MAAM,KAAK,GAAI,GAAW,EAAE,KAAK,IAAI,GAAG,CAAC;QACzC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC5E,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IACtE,CAAC;IAMD,KAAK,CAAC,QAAQ,CAAC,MAAc;QAC3B,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,GAAG,2CAAa,SAAS,EAAC,CAAC;YAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAa,EAAE,CAAC;YAChG,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE;iBACxB,UAAU,CAAC,OAAO,CAAC;iBACnB,OAAO,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAChD,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC1E,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAUD,kBAAkB,CAAC,gBAAgB,GAAG,IAAI;QACxC,OAAO;YACL,SAAS,EAAE,KAAK,EAAE,MAAW,EAAE,MAAW,EAAE,GAAQ,EAAE,EAAE;gBAOtD,IAAI,IAAA,2CAAkB,EAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;oBACvC,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;oBAC3D,MAAM,IAAI,iBAAiB,CAAC,+CAA+C,CAAC,CAAC;gBAC/E,CAAC;gBAGD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC5D,OAAO,gBAAgB,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;YAC5F,CAAC;YACD,6BAA6B,EAAE,KAAK,EAAE,OAAY,EAAE,iBAAyB,EAAE,EAAE;gBAC/E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;gBAClE,OAAO,MAAM,EAAE,aAAa,IAAI,EAAE,CAAC;YACrC,CAAC;YACD,YAAY,EAAE;gBACZ,SAAS,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;gBACzD,cAAc,EAAE,CAAC,MAAwB,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;aAC1E;YACD,yBAAyB,EAAE,KAAK,EAAE,MAAW,EAAE,iBAAyB,EAAE,EAAE;gBAC1E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC;gBACvG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE,SAAS,EAAE,CAAC;oBACrD,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;oBAC3D,MAAM,IAAI,iBAAiB,CACzB,kFAAkF,CACnF,CAAC;gBACJ,CAAC;gBACD,OAAO;oBACL,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;oBACpF,UAAU,EAAE,gBAAgB;oBAC5B,aAAa,EAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;oBAC3E,UAAU,EAAE,QAAQ;iBACrB,CAAC;YACJ,CAAC;YACD,oBAAoB,EAAE,KAAK,EAAE,MAAW,EAAE,YAAoB,EAAE,EAAE;gBAMhE,MAAM,cAAc,GAAG,MAAM,EAAE,SAAS,CAAC;gBACzC,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;oBAC5D,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;gBACjD,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;gBAC5E,IAAI,CAAC,OAAO,EAAE,CAAC;oBAGb,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;oBAC3D,MAAM,IAAI,iBAAiB,CAAC,oEAAoE,CAAC,CAAC;gBACpG,CAAC;gBACD,OAAO;oBACL,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,gBAAgB,CAAC;oBACtF,UAAU,EAAE,gBAAgB;oBAC5B,aAAa,EAAE,OAAO,CAAC,QAAQ;oBAC/B,UAAU,EAAE,QAAQ;iBACrB,CAAC;YACJ,CAAC;YACD,iBAAiB,EAAE,KAAK,EAAE,KAAa,EAAE,EAAE;gBACzC,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;oBAC3D,MAAM,IAAI,iBAAiB,CAAC,iCAAiC,CAAC,CAAC;gBACjE,CAAC;gBAED,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;YAC9G,CAAC;SACF,CAAC;IACJ,CAAC;IAGkB,sBAAsB,GAAG,GAAG,CAAC;IAwBtC,KAAK,CAAC,gBAAgB,CAAC,MAAW,EAAE,MAAW,EAAE,GAAQ;QACjE,MAAM,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC;QACrB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,8DAAgC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEnG,IAAI,IAAI,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YAChC,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAC3D,MAAM,IAAI,iBAAiB,CAAC,wBAAwB,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,MAAsC,CAAC;QAC3C,IAAI,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,OAAO,GAA8B;gBACzC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;gBAClC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;gBAC3C,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;gBACvC,MAAM,EAAE,IAAI,CAAC,EAAE;aAChB,CAAC;YACF,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,2DAA6B,CAAC,EAAE,OAAO,CAAC,CAAC;YAC5F,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC/B,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE;oBACrC,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,aAAa,EAAE,OAAO,CAAC,aAAa;oBACpC,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB,CAAC,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAC5C,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACtC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBACjB,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBACjD,CAAC;gBACD,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC/B,OAAO;YACT,CAAC;YACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,GAAG,SAAS,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,gCAAgC,OAAO,CAAC,QAAQ,uDAAuD;oBACrG,4DAA4D,CAC/D,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACtE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAA,oDAAsB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC/E,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC;IAGS,iBAAiB,CAAC,IAA0B;QACpD,OAAO,IAAA,uDAAyB,EAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IASS,KAAK,CAAC,WAAW,CAAC,GAAQ;QAClC,MAAM,aAAa,GAAG,CAAC,IAAS,EAAE,EAAE,CAClC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAA,2CAAkB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAClH,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YAClB,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,YAAY,GAAG,IAAA,qDAAyB,GAAE,CAAC;QACjD,IAAI,CAAC,YAAY,IAAI,CAAC,GAAG,IAAI,IAAA,8CAAqB,EAAC,GAAG,CAAC,EAAE,CAAC;YACxD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;YAC5D,OAAO,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,YAAY,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxF,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAGS,gBAAgB,CACxB,GAAQ,EACR,MAAW,EACX,MAAW,EACX,IAA+D,EAC/D,MAAuC;QAEvC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QACrD,MAAM,WAAW,GAA2B;YAC1C,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;YACnC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;YAC5C,qBAAqB,EAAE,MAAM;YAC7B,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;YACxC,aAAa,EAAE,MAAM;SACtB,CAAC;QACF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACzD,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzE,CAAC;QACD,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE;YAC9B,YAAY,EAAE,IAAA,qDAAyB,GAAE;gBACvC,CAAC,CAAC,IAAA,0CAAkB,GAAE,EAAE,YAAY,IAAI,8BAAa,CAAC,GAAG,CAAS,qBAAqB,CAAC,IAAI,MAAM;gBAClG,CAAC,CAAC,SAAS;YACb,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE;YAClE,SAAS,EAAE,IAAI;gBACb,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;oBACpB,QAAQ,EAAE,WAAW,CAAC,SAAS;oBAC/B,aAAa,EAAE,WAAW,CAAC,cAAc;oBACzC,WAAW,EAAE,WAAW,CAAC,YAAY;oBACrC,MAAM,EAAE,IAAI,CAAC,EAAE;iBAChB,CAAC;gBACJ,CAAC,CAAC,SAAS;YACb,MAAM,EAAE,IAAA,mDAAqB,EAAC,GAAG,EAAE,OAAO,EAAE,CAAC,iBAAiB,CAAC,CAAC;YAChE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;YACtD,KAAK,EAAE,IAAA,yBAAW,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACzC,MAAM;YACN,WAAW;YACX,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YAC5G,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;SAChE,CAAC;IACJ,CAAC;IAGS,cAAc;QACtB,KAAK,MAAM,GAAG,IAAI,CAAC,IAAA,wCAAuB,EAAC,8BAAa,CAAC,EAAE,IAAA,0CAAkB,GAAE,EAAE,OAAO,CAAC,EAAE,CAAC;YAC1F,IAAI,CAAC;gBACH,IAAI,GAAG,EAAE,CAAC;oBACR,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC3B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;YAET,CAAC;QACH,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAQS,eAAe,CAAC,GAAQ;QAChC,MAAM,UAAU,GAAG,8BAAa,CAAC,GAAG,CAAU,sBAAsB,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,IAAA,wCAAuB,EAAC,8BAAa,CAAC,CAAC;QACtD,MAAM,QAAQ,GACZ,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,EAAE;YACjD,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE;YACnB,CAAC,CAAC,MAAM;gBACN,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa;gBAC3C,CAAC,CAAC,SAAS,CAAC;QAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,IAAA,0CAAkB,GAAE,EAAE,OAAO,CAAC;QAC3C,MAAM,QAAQ,GAAG,WAAW,IAAI,IAAI,IAAI,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAClH,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC9F,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAGS,gBAAgB,CAAC,OAAkC;QAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC;QACxE,OAAO,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;IAClE,CAAC;IAMS,kBAAkB,CAAC,KAAc,EAAE,OAAkC;QAC7E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,CAAC;IAcS,eAAe;QACvB,4CAAc,iDAAiD,GAAE;IACnE,CAAC;IASS,IAAI,CAAC,UAAkB;QAC/B,OAAO,IAAA,wBAAU,EAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACvF,CAAC;IAKS,SAAS,CAAC,CAAS,EAAE,CAAS;QACtC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAA,6BAAe,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAMS,SAAS;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACjC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,CAAC;YAI5C,MAAM,IAAI,KAAK,CACb,qGAAqG;gBACnG,+FAA+F;gBAC/F,uDAAuD,CAC1D,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,6FAA6F;oBAC3F,iGAAiG,CACpG,CAAC;gBACF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YAC3B,CAAC;YACD,OAAO,uDAAuD,CAAC;QACjE,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAKS,EAAE;QACV,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;IAC5B,CAAC;IAKS,KAAK,CAAC,aAAa;QAC3B,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAEnG,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC;YAC5G,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5F,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACjG,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uCAAwC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;CACF,CAAA;AAjrBY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;IAYE,WAAA,IAAA,2BAAgB,GAAE,CAAA;qCAAgC,qBAAU;GAX9D,qBAAqB,CAirBjC"}
@@ -67,6 +67,10 @@ export declare function buildTrustedOrigins(config: IBetterAuth, options: {
67
67
  resolvedUrls: ResolvedUrls;
68
68
  serverCorsConfig?: boolean | ICorsConfig;
69
69
  }): string[] | undefined;
70
+ export declare function mcpOAuthIssuerOrigin(serverConfig: {
71
+ ai?: unknown;
72
+ } | undefined): string | undefined;
73
+ export declare function withMcpOAuthIssuerOrigin(trustedOrigins: string[] | undefined, issuerOrigin: string | undefined): string[] | undefined;
70
74
  interface ResolvedUrls {
71
75
  appUrl: string | undefined;
72
76
  baseUrl: string | undefined;
@@ -8,6 +8,8 @@ exports.createBetterAuthInstance = createBetterAuthInstance;
8
8
  exports.wsSessionRevocationPlugin = wsSessionRevocationPlugin;
9
9
  exports.formatProjectName = formatProjectName;
10
10
  exports.buildTrustedOrigins = buildTrustedOrigins;
11
+ exports.mcpOAuthIssuerOrigin = mcpOAuthIssuerOrigin;
12
+ exports.withMcpOAuthIssuerOrigin = withMcpOAuthIssuerOrigin;
11
13
  exports.resolveCrossSubDomainCookies = resolveCrossSubDomainCookies;
12
14
  const passkey_1 = require("@better-auth/passkey");
13
15
  const common_1 = require("@nestjs/common");
@@ -19,6 +21,7 @@ const fs = require("fs");
19
21
  const path = require("path");
20
22
  const cookies_helper_1 = require("../../common/helpers/cookies.helper");
21
23
  const graphql_ws_connection_helper_1 = require("../../common/helpers/graphql-ws-connection.helper");
24
+ const config_service_1 = require("../../common/services/config.service");
22
25
  const better_auth_cookie_prefix_helper_1 = require("./better-auth-cookie-prefix.helper");
23
26
  const core_better_auth_openapi_helper_1 = require("./core-better-auth-openapi.helper");
24
27
  const logger = new common_1.Logger('BetterAuthConfig');
@@ -120,11 +123,11 @@ function createBetterAuthInstance(options) {
120
123
  }
121
124
  const plugins = buildPlugins(config, { passkeyNormalization, serverEnv });
122
125
  const socialProviders = buildSocialProviders(config);
123
- const trustedOrigins = buildTrustedOrigins(config, {
126
+ const trustedOrigins = withMcpOAuthIssuerOrigin(buildTrustedOrigins(config, {
124
127
  passkeyNormalization,
125
128
  resolvedUrls,
126
129
  serverCorsConfig: options.serverCorsConfig,
127
- });
130
+ }), mcpOAuthIssuerOrigin(config_service_1.ConfigService.configFastButReadOnly));
128
131
  const additionalFields = buildUserFields(config);
129
132
  const crossSubDomain = resolveCrossSubDomainCookies(config, resolvedUrls);
130
133
  if (crossSubDomain.enabled) {
@@ -392,6 +395,30 @@ function buildTrustedOrigins(config, options) {
392
395
  }
393
396
  return undefined;
394
397
  }
398
+ function mcpOAuthIssuerOrigin(serverConfig) {
399
+ const ai = serverConfig?.ai;
400
+ const mcp = typeof ai === 'object' && ai !== null ? ai.mcp : undefined;
401
+ if (typeof mcp !== 'object' || mcp === null) {
402
+ return undefined;
403
+ }
404
+ const { oauth, oauthBaseUrl } = mcp;
405
+ if (oauth !== true || typeof oauthBaseUrl !== 'string' || !oauthBaseUrl.trim()) {
406
+ return undefined;
407
+ }
408
+ try {
409
+ const url = new URL(oauthBaseUrl.trim());
410
+ return url.protocol === 'https:' || url.protocol === 'http:' ? url.origin : undefined;
411
+ }
412
+ catch {
413
+ return undefined;
414
+ }
415
+ }
416
+ function withMcpOAuthIssuerOrigin(trustedOrigins, issuerOrigin) {
417
+ if (!issuerOrigin) {
418
+ return trustedOrigins;
419
+ }
420
+ return [...new Set([...(trustedOrigins ?? []), issuerOrigin])];
421
+ }
395
422
  const PROTECTED_INPUT_FALSE_KEYS = ['iamId', 'roles', 'twoFactorEnabled', 'verified', 'verifiedAt'];
396
423
  function buildUserFields(config) {
397
424
  const coreFields = {