@modelcontextprotocol/sdk 1.12.3 → 1.13.1

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 (166) hide show
  1. package/README.md +342 -24
  2. package/dist/cjs/client/auth.d.ts +15 -3
  3. package/dist/cjs/client/auth.d.ts.map +1 -1
  4. package/dist/cjs/client/auth.js +40 -10
  5. package/dist/cjs/client/auth.js.map +1 -1
  6. package/dist/cjs/client/index.d.ts +308 -26
  7. package/dist/cjs/client/index.d.ts.map +1 -1
  8. package/dist/cjs/client/index.js +11 -2
  9. package/dist/cjs/client/index.js.map +1 -1
  10. package/dist/cjs/client/sse.d.ts +2 -0
  11. package/dist/cjs/client/sse.d.ts.map +1 -1
  12. package/dist/cjs/client/sse.js +30 -13
  13. package/dist/cjs/client/sse.js.map +1 -1
  14. package/dist/cjs/client/streamableHttp.d.ts +3 -0
  15. package/dist/cjs/client/streamableHttp.d.ts.map +1 -1
  16. package/dist/cjs/client/streamableHttp.js +9 -0
  17. package/dist/cjs/client/streamableHttp.js.map +1 -1
  18. package/dist/cjs/examples/client/simpleStreamableHttp.js +261 -5
  19. package/dist/cjs/examples/client/simpleStreamableHttp.js.map +1 -1
  20. package/dist/cjs/examples/server/demoInMemoryOAuthProvider.d.ts +10 -4
  21. package/dist/cjs/examples/server/demoInMemoryOAuthProvider.d.ts.map +1 -1
  22. package/dist/cjs/examples/server/demoInMemoryOAuthProvider.js +21 -7
  23. package/dist/cjs/examples/server/demoInMemoryOAuthProvider.js.map +1 -1
  24. package/dist/cjs/examples/server/simpleStreamableHttp.js +246 -10
  25. package/dist/cjs/examples/server/simpleStreamableHttp.js.map +1 -1
  26. package/dist/cjs/server/auth/handlers/authorize.d.ts.map +1 -1
  27. package/dist/cjs/server/auth/handlers/authorize.js +3 -3
  28. package/dist/cjs/server/auth/handlers/authorize.js.map +1 -1
  29. package/dist/cjs/server/auth/handlers/register.d.ts.map +1 -1
  30. package/dist/cjs/server/auth/handlers/register.js +0 -1
  31. package/dist/cjs/server/auth/handlers/register.js.map +1 -1
  32. package/dist/cjs/server/auth/handlers/revoke.d.ts +1 -1
  33. package/dist/cjs/server/auth/handlers/revoke.d.ts.map +1 -1
  34. package/dist/cjs/server/auth/handlers/revoke.js +4 -6
  35. package/dist/cjs/server/auth/handlers/revoke.js.map +1 -1
  36. package/dist/cjs/server/auth/handlers/token.d.ts.map +1 -1
  37. package/dist/cjs/server/auth/handlers/token.js +6 -6
  38. package/dist/cjs/server/auth/handlers/token.js.map +1 -1
  39. package/dist/cjs/server/auth/middleware/bearerAuth.d.ts.map +1 -1
  40. package/dist/cjs/server/auth/middleware/bearerAuth.js +0 -1
  41. package/dist/cjs/server/auth/middleware/bearerAuth.js.map +1 -1
  42. package/dist/cjs/server/auth/middleware/clientAuth.d.ts.map +1 -1
  43. package/dist/cjs/server/auth/middleware/clientAuth.js +0 -1
  44. package/dist/cjs/server/auth/middleware/clientAuth.js.map +1 -1
  45. package/dist/cjs/server/auth/provider.d.ts +3 -2
  46. package/dist/cjs/server/auth/provider.d.ts.map +1 -1
  47. package/dist/cjs/server/auth/providers/proxyProvider.d.ts +2 -2
  48. package/dist/cjs/server/auth/providers/proxyProvider.d.ts.map +1 -1
  49. package/dist/cjs/server/auth/providers/proxyProvider.js +10 -2
  50. package/dist/cjs/server/auth/providers/proxyProvider.js.map +1 -1
  51. package/dist/cjs/server/auth/types.d.ts +5 -0
  52. package/dist/cjs/server/auth/types.d.ts.map +1 -1
  53. package/dist/cjs/server/completable.d.ts +3 -1
  54. package/dist/cjs/server/completable.d.ts.map +1 -1
  55. package/dist/cjs/server/completable.js.map +1 -1
  56. package/dist/cjs/server/index.d.ts +14 -1
  57. package/dist/cjs/server/index.d.ts.map +1 -1
  58. package/dist/cjs/server/index.js +36 -5
  59. package/dist/cjs/server/index.js.map +1 -1
  60. package/dist/cjs/server/mcp.d.ts +28 -1
  61. package/dist/cjs/server/mcp.d.ts.map +1 -1
  62. package/dist/cjs/server/mcp.js +147 -84
  63. package/dist/cjs/server/mcp.js.map +1 -1
  64. package/dist/cjs/server/sse.d.ts.map +1 -1
  65. package/dist/cjs/server/sse.js.map +1 -1
  66. package/dist/cjs/server/streamableHttp.d.ts +2 -1
  67. package/dist/cjs/server/streamableHttp.d.ts.map +1 -1
  68. package/dist/cjs/server/streamableHttp.js +36 -5
  69. package/dist/cjs/server/streamableHttp.js.map +1 -1
  70. package/dist/cjs/shared/auth-utils.d.ts +23 -0
  71. package/dist/cjs/shared/auth-utils.d.ts.map +1 -0
  72. package/dist/cjs/shared/auth-utils.js +48 -0
  73. package/dist/cjs/shared/auth-utils.js.map +1 -0
  74. package/dist/cjs/shared/metadataUtils.d.ts +12 -0
  75. package/dist/cjs/shared/metadataUtils.d.ts.map +1 -0
  76. package/dist/cjs/shared/metadataUtils.js +29 -0
  77. package/dist/cjs/shared/metadataUtils.js.map +1 -0
  78. package/dist/cjs/shared/transport.d.ts +4 -0
  79. package/dist/cjs/shared/transport.d.ts.map +1 -1
  80. package/dist/cjs/types.d.ts +16263 -2158
  81. package/dist/cjs/types.d.ts.map +1 -1
  82. package/dist/cjs/types.js +220 -59
  83. package/dist/cjs/types.js.map +1 -1
  84. package/dist/esm/client/auth.d.ts +15 -3
  85. package/dist/esm/client/auth.d.ts.map +1 -1
  86. package/dist/esm/client/auth.js +39 -10
  87. package/dist/esm/client/auth.js.map +1 -1
  88. package/dist/esm/client/index.d.ts +308 -26
  89. package/dist/esm/client/index.d.ts.map +1 -1
  90. package/dist/esm/client/index.js +11 -2
  91. package/dist/esm/client/index.js.map +1 -1
  92. package/dist/esm/client/sse.d.ts +2 -0
  93. package/dist/esm/client/sse.d.ts.map +1 -1
  94. package/dist/esm/client/sse.js +30 -13
  95. package/dist/esm/client/sse.js.map +1 -1
  96. package/dist/esm/client/streamableHttp.d.ts +3 -0
  97. package/dist/esm/client/streamableHttp.d.ts.map +1 -1
  98. package/dist/esm/client/streamableHttp.js +9 -0
  99. package/dist/esm/client/streamableHttp.js.map +1 -1
  100. package/dist/esm/examples/client/simpleStreamableHttp.js +259 -6
  101. package/dist/esm/examples/client/simpleStreamableHttp.js.map +1 -1
  102. package/dist/esm/examples/server/demoInMemoryOAuthProvider.d.ts +10 -4
  103. package/dist/esm/examples/server/demoInMemoryOAuthProvider.d.ts.map +1 -1
  104. package/dist/esm/examples/server/demoInMemoryOAuthProvider.js +21 -7
  105. package/dist/esm/examples/server/demoInMemoryOAuthProvider.js.map +1 -1
  106. package/dist/esm/examples/server/simpleStreamableHttp.js +246 -10
  107. package/dist/esm/examples/server/simpleStreamableHttp.js.map +1 -1
  108. package/dist/esm/server/auth/handlers/authorize.d.ts.map +1 -1
  109. package/dist/esm/server/auth/handlers/authorize.js +3 -3
  110. package/dist/esm/server/auth/handlers/authorize.js.map +1 -1
  111. package/dist/esm/server/auth/handlers/register.d.ts.map +1 -1
  112. package/dist/esm/server/auth/handlers/register.js +0 -1
  113. package/dist/esm/server/auth/handlers/register.js.map +1 -1
  114. package/dist/esm/server/auth/handlers/revoke.d.ts +1 -1
  115. package/dist/esm/server/auth/handlers/revoke.d.ts.map +1 -1
  116. package/dist/esm/server/auth/handlers/revoke.js +5 -7
  117. package/dist/esm/server/auth/handlers/revoke.js.map +1 -1
  118. package/dist/esm/server/auth/handlers/token.d.ts.map +1 -1
  119. package/dist/esm/server/auth/handlers/token.js +6 -6
  120. package/dist/esm/server/auth/handlers/token.js.map +1 -1
  121. package/dist/esm/server/auth/middleware/bearerAuth.d.ts.map +1 -1
  122. package/dist/esm/server/auth/middleware/bearerAuth.js +0 -1
  123. package/dist/esm/server/auth/middleware/bearerAuth.js.map +1 -1
  124. package/dist/esm/server/auth/middleware/clientAuth.d.ts.map +1 -1
  125. package/dist/esm/server/auth/middleware/clientAuth.js +0 -1
  126. package/dist/esm/server/auth/middleware/clientAuth.js.map +1 -1
  127. package/dist/esm/server/auth/provider.d.ts +3 -2
  128. package/dist/esm/server/auth/provider.d.ts.map +1 -1
  129. package/dist/esm/server/auth/providers/proxyProvider.d.ts +2 -2
  130. package/dist/esm/server/auth/providers/proxyProvider.d.ts.map +1 -1
  131. package/dist/esm/server/auth/providers/proxyProvider.js +10 -2
  132. package/dist/esm/server/auth/providers/proxyProvider.js.map +1 -1
  133. package/dist/esm/server/auth/types.d.ts +5 -0
  134. package/dist/esm/server/auth/types.d.ts.map +1 -1
  135. package/dist/esm/server/completable.d.ts +3 -1
  136. package/dist/esm/server/completable.d.ts.map +1 -1
  137. package/dist/esm/server/completable.js.map +1 -1
  138. package/dist/esm/server/index.d.ts +14 -1
  139. package/dist/esm/server/index.d.ts.map +1 -1
  140. package/dist/esm/server/index.js +34 -6
  141. package/dist/esm/server/index.js.map +1 -1
  142. package/dist/esm/server/mcp.d.ts +28 -1
  143. package/dist/esm/server/mcp.d.ts.map +1 -1
  144. package/dist/esm/server/mcp.js +147 -84
  145. package/dist/esm/server/mcp.js.map +1 -1
  146. package/dist/esm/server/sse.d.ts.map +1 -1
  147. package/dist/esm/server/sse.js.map +1 -1
  148. package/dist/esm/server/streamableHttp.d.ts +2 -1
  149. package/dist/esm/server/streamableHttp.d.ts.map +1 -1
  150. package/dist/esm/server/streamableHttp.js +37 -6
  151. package/dist/esm/server/streamableHttp.js.map +1 -1
  152. package/dist/esm/shared/auth-utils.d.ts +23 -0
  153. package/dist/esm/shared/auth-utils.d.ts.map +1 -0
  154. package/dist/esm/shared/auth-utils.js +44 -0
  155. package/dist/esm/shared/auth-utils.js.map +1 -0
  156. package/dist/esm/shared/metadataUtils.d.ts +12 -0
  157. package/dist/esm/shared/metadataUtils.d.ts.map +1 -0
  158. package/dist/esm/shared/metadataUtils.js +26 -0
  159. package/dist/esm/shared/metadataUtils.js.map +1 -0
  160. package/dist/esm/shared/transport.d.ts +4 -0
  161. package/dist/esm/shared/transport.d.ts.map +1 -1
  162. package/dist/esm/types.d.ts +16263 -2158
  163. package/dist/esm/types.d.ts.map +1 -1
  164. package/dist/esm/types.js +217 -57
  165. package/dist/esm/types.js.map +1 -1
  166. package/package.json +6 -3
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ /**
3
+ * Utilities for handling OAuth resource URIs.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.resourceUrlFromServerUrl = resourceUrlFromServerUrl;
7
+ exports.checkResourceAllowed = checkResourceAllowed;
8
+ /**
9
+ * Converts a server URL to a resource URL by removing the fragment.
10
+ * RFC 8707 section 2 states that resource URIs "MUST NOT include a fragment component".
11
+ * Keeps everything else unchanged (scheme, domain, port, path, query).
12
+ */
13
+ function resourceUrlFromServerUrl(url) {
14
+ const resourceURL = typeof url === "string" ? new URL(url) : new URL(url.href);
15
+ resourceURL.hash = ''; // Remove fragment
16
+ return resourceURL;
17
+ }
18
+ /**
19
+ * Checks if a requested resource URL matches a configured resource URL.
20
+ * A requested resource matches if it has the same scheme, domain, port,
21
+ * and its path starts with the configured resource's path.
22
+ *
23
+ * @param requestedResource The resource URL being requested
24
+ * @param configuredResource The resource URL that has been configured
25
+ * @returns true if the requested resource matches the configured resource, false otherwise
26
+ */
27
+ function checkResourceAllowed({ requestedResource, configuredResource }) {
28
+ const requested = typeof requestedResource === "string" ? new URL(requestedResource) : new URL(requestedResource.href);
29
+ const configured = typeof configuredResource === "string" ? new URL(configuredResource) : new URL(configuredResource.href);
30
+ // Compare the origin (scheme, domain, and port)
31
+ if (requested.origin !== configured.origin) {
32
+ return false;
33
+ }
34
+ // Handle cases like requested=/foo and configured=/foo/
35
+ if (requested.pathname.length < configured.pathname.length) {
36
+ return false;
37
+ }
38
+ // Check if the requested path starts with the configured path
39
+ // Ensure both paths end with / for proper comparison
40
+ // This ensures that if we have paths like "/api" and "/api/users",
41
+ // we properly detect that "/api/users" is a subpath of "/api"
42
+ // By adding a trailing slash if missing, we avoid false positives
43
+ // where paths like "/api123" would incorrectly match "/api"
44
+ const requestedPath = requested.pathname.endsWith('/') ? requested.pathname : requested.pathname + '/';
45
+ const configuredPath = configured.pathname.endsWith('/') ? configured.pathname : configured.pathname + '/';
46
+ return requestedPath.startsWith(configuredPath);
47
+ }
48
+ //# sourceMappingURL=auth-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-utils.js","sourceRoot":"","sources":["../../../src/shared/auth-utils.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAOH,4DAIC;AAWA,oDA6BC;AAjDF;;;;GAIG;AACH,SAAgB,wBAAwB,CAAC,GAAiB;IACxD,MAAM,WAAW,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/E,WAAW,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,kBAAkB;IACzC,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;;;;GAQG;AACF,SAAgB,oBAAoB,CAClC,EAAE,iBAAiB,EAAE,kBAAkB,EAGtC;IAED,MAAM,SAAS,GAAG,OAAO,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACvH,MAAM,UAAU,GAAG,OAAO,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAE3H,gDAAgD;IAChD,IAAI,SAAS,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,wDAAwD;IACxD,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC3D,OAAO,KAAK,CAAA;IACd,CAAC;IAED,8DAA8D;IAC9D,qDAAqD;IACrD,mEAAmE;IACnE,8DAA8D;IAC9D,kEAAkE;IAClE,4DAA4D;IAC5D,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,GAAG,GAAG,CAAC;IACvG,MAAM,cAAc,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,GAAG,GAAG,CAAC;IAE3G,OAAO,aAAa,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAClD,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { BaseMetadata } from "../types.js";
2
+ /**
3
+ * Utilities for working with BaseMetadata objects.
4
+ */
5
+ /**
6
+ * Gets the display name for an object with BaseMetadata.
7
+ * For tools, the precedence is: title → annotations.title → name
8
+ * For other objects: title → name
9
+ * This implements the spec requirement: "if no title is provided, name should be used for display purposes"
10
+ */
11
+ export declare function getDisplayName(metadata: BaseMetadata): string;
12
+ //# sourceMappingURL=metadataUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadataUtils.d.ts","sourceRoot":"","sources":["../../../src/shared/metadataUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;GAEG;AAEH;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAgB7D"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDisplayName = getDisplayName;
4
+ /**
5
+ * Utilities for working with BaseMetadata objects.
6
+ */
7
+ /**
8
+ * Gets the display name for an object with BaseMetadata.
9
+ * For tools, the precedence is: title → annotations.title → name
10
+ * For other objects: title → name
11
+ * This implements the spec requirement: "if no title is provided, name should be used for display purposes"
12
+ */
13
+ function getDisplayName(metadata) {
14
+ var _a;
15
+ // First check for title (not undefined and not empty string)
16
+ if (metadata.title !== undefined && metadata.title !== '') {
17
+ return metadata.title;
18
+ }
19
+ // Then check for annotations.title (only present in Tool objects)
20
+ if ('annotations' in metadata) {
21
+ const metadataWithAnnotations = metadata;
22
+ if ((_a = metadataWithAnnotations.annotations) === null || _a === void 0 ? void 0 : _a.title) {
23
+ return metadataWithAnnotations.annotations.title;
24
+ }
25
+ }
26
+ // Finally fall back to name
27
+ return metadata.name;
28
+ }
29
+ //# sourceMappingURL=metadataUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadataUtils.js","sourceRoot":"","sources":["../../../src/shared/metadataUtils.ts"],"names":[],"mappings":";;AAYA,wCAgBC;AA1BD;;GAEG;AAEH;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,QAAsB;;IACnD,6DAA6D;IAC7D,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,KAAK,EAAE,EAAE,CAAC;QAC1D,OAAO,QAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IAED,kEAAkE;IAClE,IAAI,aAAa,IAAI,QAAQ,EAAE,CAAC;QAC9B,MAAM,uBAAuB,GAAG,QAA+D,CAAC;QAChG,IAAI,MAAA,uBAAuB,CAAC,WAAW,0CAAE,KAAK,EAAE,CAAC;YAC/C,OAAO,uBAAuB,CAAC,WAAW,CAAC,KAAK,CAAC;QACnD,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC"}
@@ -68,5 +68,9 @@ export interface Transport {
68
68
  * The session ID generated for this connection.
69
69
  */
70
70
  sessionId?: string;
71
+ /**
72
+ * Sets the protocol version used for the connection (called when the initialize response is received).
73
+ */
74
+ setProtocolVersion?: (version: string) => void;
71
75
  }
72
76
  //# sourceMappingURL=transport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/shared/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC;;OAEG;IACH,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAE7B;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C,CAAA;AACD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;;OAMG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7E;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;KAAE,KAAK,IAAI,CAAC;IAE/E;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/shared/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC;;OAEG;IACH,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAE7B;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C,CAAA;AACD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;;OAMG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7E;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;KAAE,KAAK,IAAI,CAAC;IAE/E;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD"}