@1mcp/agent 0.11.0 → 0.13.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 (200) hide show
  1. package/README.md +45 -50
  2. package/build/auth/clientSessionManager.d.ts +94 -0
  3. package/build/auth/clientSessionManager.d.ts.map +1 -0
  4. package/build/auth/clientSessionManager.js +220 -0
  5. package/build/auth/clientSessionManager.js.map +1 -0
  6. package/build/auth/sdkOAuthClientProvider.d.ts +93 -0
  7. package/build/auth/sdkOAuthClientProvider.d.ts.map +1 -0
  8. package/build/auth/sdkOAuthClientProvider.js +199 -0
  9. package/build/auth/sdkOAuthClientProvider.js.map +1 -0
  10. package/build/auth/sdkOAuthServerProvider.d.ts +63 -0
  11. package/build/auth/sdkOAuthServerProvider.d.ts.map +1 -0
  12. package/build/auth/sdkOAuthServerProvider.js +428 -0
  13. package/build/auth/sdkOAuthServerProvider.js.map +1 -0
  14. package/build/{server/auth/sessionManager.d.ts → auth/serverSessionManager.d.ts} +26 -37
  15. package/build/auth/serverSessionManager.d.ts.map +1 -0
  16. package/build/{server/auth/sessionManager.js → auth/serverSessionManager.js} +104 -19
  17. package/build/auth/serverSessionManager.js.map +1 -0
  18. package/build/auth/sessionTypes.d.ts +24 -0
  19. package/build/auth/sessionTypes.d.ts.map +1 -0
  20. package/build/auth/sessionTypes.js +3 -0
  21. package/build/auth/sessionTypes.js.map +1 -0
  22. package/build/capabilities/capabilityManager.d.ts +2 -2
  23. package/build/capabilities/capabilityManager.d.ts.map +1 -1
  24. package/build/capabilities/capabilityManager.js +40 -7
  25. package/build/capabilities/capabilityManager.js.map +1 -1
  26. package/build/config/{configManager.d.ts → mcpConfigManager.d.ts} +18 -7
  27. package/build/config/mcpConfigManager.d.ts.map +1 -0
  28. package/build/config/{configManager.js → mcpConfigManager.js} +50 -10
  29. package/build/config/mcpConfigManager.js.map +1 -0
  30. package/build/constants.d.ts +36 -14
  31. package/build/constants.d.ts.map +1 -1
  32. package/build/constants.js +40 -17
  33. package/build/constants.js.map +1 -1
  34. package/build/{client.d.ts → core/client/clientFactory.d.ts} +1 -1
  35. package/build/core/client/clientFactory.d.ts.map +1 -0
  36. package/build/{client.js → core/client/clientFactory.js} +2 -2
  37. package/build/core/client/clientFactory.js.map +1 -0
  38. package/build/{clients → core/client}/clientManager.d.ts +14 -6
  39. package/build/core/client/clientManager.d.ts.map +1 -0
  40. package/build/core/client/clientManager.js +209 -0
  41. package/build/core/client/clientManager.js.map +1 -0
  42. package/build/{server/config/serverConfig.d.ts → core/server/agentConfig.d.ts} +50 -15
  43. package/build/core/server/agentConfig.d.ts.map +1 -0
  44. package/build/core/server/agentConfig.js +166 -0
  45. package/build/core/server/agentConfig.js.map +1 -0
  46. package/build/core/server/serverManager.d.ts +39 -0
  47. package/build/core/server/serverManager.d.ts.map +1 -0
  48. package/build/core/server/serverManager.js +169 -0
  49. package/build/core/server/serverManager.js.map +1 -0
  50. package/build/core/types/client.d.ts +51 -0
  51. package/build/core/types/client.d.ts.map +1 -0
  52. package/build/core/types/client.js +15 -0
  53. package/build/core/types/client.js.map +1 -0
  54. package/build/core/types/index.d.ts +4 -0
  55. package/build/core/types/index.d.ts.map +1 -0
  56. package/build/core/types/index.js +5 -0
  57. package/build/core/types/index.js.map +1 -0
  58. package/build/core/types/server.d.ts +14 -0
  59. package/build/core/types/server.d.ts.map +1 -0
  60. package/build/core/types/server.js +2 -0
  61. package/build/core/types/server.js.map +1 -0
  62. package/build/{types.d.ts → core/types/transport.d.ts} +59 -49
  63. package/build/core/types/transport.d.ts.map +1 -0
  64. package/build/{types.js → core/types/transport.js} +11 -13
  65. package/build/core/types/transport.js.map +1 -0
  66. package/build/handlers/notificationHandlers.d.ts +3 -3
  67. package/build/handlers/notificationHandlers.d.ts.map +1 -1
  68. package/build/handlers/notificationHandlers.js +13 -9
  69. package/build/handlers/notificationHandlers.js.map +1 -1
  70. package/build/handlers/requestHandlers.d.ts +2 -2
  71. package/build/handlers/requestHandlers.d.ts.map +1 -1
  72. package/build/handlers/requestHandlers.js +25 -3
  73. package/build/handlers/requestHandlers.js.map +1 -1
  74. package/build/index.js +48 -8
  75. package/build/index.js.map +1 -1
  76. package/build/logger/logger.js +1 -1
  77. package/build/logger/logger.js.map +1 -1
  78. package/build/{middleware/loggingMiddleware.d.ts → logger/mcpLoggingEnhancer.d.ts} +1 -1
  79. package/build/logger/mcpLoggingEnhancer.d.ts.map +1 -0
  80. package/build/{middleware/loggingMiddleware.js → logger/mcpLoggingEnhancer.js} +2 -2
  81. package/build/logger/mcpLoggingEnhancer.js.map +1 -0
  82. package/build/server.d.ts +1 -1
  83. package/build/server.d.ts.map +1 -1
  84. package/build/server.js +9 -6
  85. package/build/server.js.map +1 -1
  86. package/build/services/configReloadService.d.ts +15 -5
  87. package/build/services/configReloadService.d.ts.map +1 -1
  88. package/build/services/configReloadService.js +31 -14
  89. package/build/services/configReloadService.js.map +1 -1
  90. package/build/transport/http/middlewares/errorHandler.d.ts.map +1 -0
  91. package/build/{server → transport/http/middlewares}/errorHandler.js +1 -1
  92. package/build/transport/http/middlewares/errorHandler.js.map +1 -0
  93. package/build/transport/http/middlewares/scopeAuthMiddleware.d.ts +42 -0
  94. package/build/transport/http/middlewares/scopeAuthMiddleware.d.ts.map +1 -0
  95. package/build/transport/http/middlewares/scopeAuthMiddleware.js +136 -0
  96. package/build/transport/http/middlewares/scopeAuthMiddleware.js.map +1 -0
  97. package/build/transport/http/middlewares/securityMiddleware.d.ts +30 -0
  98. package/build/transport/http/middlewares/securityMiddleware.d.ts.map +1 -0
  99. package/build/transport/http/middlewares/securityMiddleware.js +201 -0
  100. package/build/transport/http/middlewares/securityMiddleware.js.map +1 -0
  101. package/build/transport/http/middlewares/tagsExtractor.d.ts.map +1 -0
  102. package/build/transport/http/middlewares/tagsExtractor.js.map +1 -0
  103. package/build/transport/http/routes/oauthRoutes.d.ts +4 -0
  104. package/build/transport/http/routes/oauthRoutes.d.ts.map +1 -0
  105. package/build/transport/http/routes/oauthRoutes.js +474 -0
  106. package/build/transport/http/routes/oauthRoutes.js.map +1 -0
  107. package/build/transport/http/routes/sseRoutes.d.ts +4 -0
  108. package/build/transport/http/routes/sseRoutes.d.ts.map +1 -0
  109. package/build/{server → transport/http}/routes/sseRoutes.js +12 -10
  110. package/build/transport/http/routes/sseRoutes.js.map +1 -0
  111. package/build/transport/http/routes/streamableHttpRoutes.d.ts +4 -0
  112. package/build/transport/http/routes/streamableHttpRoutes.d.ts.map +1 -0
  113. package/build/{server → transport/http}/routes/streamableHttpRoutes.js +46 -13
  114. package/build/transport/http/routes/streamableHttpRoutes.js.map +1 -0
  115. package/build/{server/expressServer.d.ts → transport/http/server.d.ts} +5 -4
  116. package/build/transport/http/server.d.ts.map +1 -0
  117. package/build/{server/expressServer.js → transport/http/server.js} +60 -23
  118. package/build/transport/http/server.js.map +1 -0
  119. package/build/transport/transportFactory.d.ts +9 -0
  120. package/build/transport/transportFactory.d.ts.map +1 -0
  121. package/build/transport/transportFactory.js +148 -0
  122. package/build/transport/transportFactory.js.map +1 -0
  123. package/build/utils/clientFiltering.d.ts +4 -4
  124. package/build/utils/clientFiltering.d.ts.map +1 -1
  125. package/build/utils/clientFiltering.js +14 -14
  126. package/build/utils/clientFiltering.js.map +1 -1
  127. package/build/utils/errorHandling.d.ts +0 -11
  128. package/build/utils/errorHandling.d.ts.map +1 -1
  129. package/build/utils/errorHandling.js +1 -18
  130. package/build/utils/errorHandling.js.map +1 -1
  131. package/build/utils/errorTypes.js +4 -4
  132. package/build/utils/errorTypes.js.map +1 -1
  133. package/build/utils/pagination.d.ts +2 -2
  134. package/build/utils/pagination.d.ts.map +1 -1
  135. package/build/utils/pagination.js +87 -8
  136. package/build/utils/pagination.js.map +1 -1
  137. package/build/utils/parsing.d.ts +13 -0
  138. package/build/utils/parsing.d.ts.map +1 -0
  139. package/build/utils/parsing.js +32 -0
  140. package/build/utils/parsing.js.map +1 -0
  141. package/build/utils/sanitization.d.ts +60 -0
  142. package/build/utils/sanitization.d.ts.map +1 -0
  143. package/build/utils/sanitization.js +149 -0
  144. package/build/utils/sanitization.js.map +1 -0
  145. package/build/utils/scopeValidation.d.ts +102 -0
  146. package/build/utils/scopeValidation.d.ts.map +1 -0
  147. package/build/utils/scopeValidation.js +244 -0
  148. package/build/utils/scopeValidation.js.map +1 -0
  149. package/package.json +23 -9
  150. package/build/client.d.ts.map +0 -1
  151. package/build/client.js.map +0 -1
  152. package/build/clients/clientManager.d.ts.map +0 -1
  153. package/build/clients/clientManager.js +0 -147
  154. package/build/clients/clientManager.js.map +0 -1
  155. package/build/config/configManager.d.ts.map +0 -1
  156. package/build/config/configManager.js.map +0 -1
  157. package/build/config/transportConfig.d.ts +0 -7
  158. package/build/config/transportConfig.d.ts.map +0 -1
  159. package/build/config/transportConfig.js +0 -90
  160. package/build/config/transportConfig.js.map +0 -1
  161. package/build/middleware/loggingMiddleware.d.ts.map +0 -1
  162. package/build/middleware/loggingMiddleware.js.map +0 -1
  163. package/build/server/auth/authManager.d.ts +0 -109
  164. package/build/server/auth/authManager.d.ts.map +0 -1
  165. package/build/server/auth/authManager.js +0 -173
  166. package/build/server/auth/authManager.js.map +0 -1
  167. package/build/server/auth/authMiddleware.d.ts +0 -16
  168. package/build/server/auth/authMiddleware.d.ts.map +0 -1
  169. package/build/server/auth/authMiddleware.js +0 -45
  170. package/build/server/auth/authMiddleware.js.map +0 -1
  171. package/build/server/auth/sessionManager.d.ts.map +0 -1
  172. package/build/server/auth/sessionManager.js.map +0 -1
  173. package/build/server/config/serverConfig.d.ts.map +0 -1
  174. package/build/server/config/serverConfig.js +0 -117
  175. package/build/server/config/serverConfig.js.map +0 -1
  176. package/build/server/errorHandler.d.ts.map +0 -1
  177. package/build/server/errorHandler.js.map +0 -1
  178. package/build/server/expressServer.d.ts.map +0 -1
  179. package/build/server/expressServer.js.map +0 -1
  180. package/build/server/routes/oauthRoutes.d.ts +0 -14
  181. package/build/server/routes/oauthRoutes.d.ts.map +0 -1
  182. package/build/server/routes/oauthRoutes.js +0 -132
  183. package/build/server/routes/oauthRoutes.js.map +0 -1
  184. package/build/server/routes/sseRoutes.d.ts +0 -4
  185. package/build/server/routes/sseRoutes.d.ts.map +0 -1
  186. package/build/server/routes/sseRoutes.js.map +0 -1
  187. package/build/server/routes/streamableHttpRoutes.d.ts +0 -4
  188. package/build/server/routes/streamableHttpRoutes.d.ts.map +0 -1
  189. package/build/server/routes/streamableHttpRoutes.js.map +0 -1
  190. package/build/server/tagsExtractor.d.ts.map +0 -1
  191. package/build/server/tagsExtractor.js.map +0 -1
  192. package/build/serverManager.d.ts +0 -27
  193. package/build/serverManager.d.ts.map +0 -1
  194. package/build/serverManager.js +0 -87
  195. package/build/serverManager.js.map +0 -1
  196. package/build/types.d.ts.map +0 -1
  197. package/build/types.js.map +0 -1
  198. /package/build/{server → transport/http/middlewares}/errorHandler.d.ts +0 -0
  199. /package/build/{server → transport/http/middlewares}/tagsExtractor.d.ts +0 -0
  200. /package/build/{server → transport/http/middlewares}/tagsExtractor.js +0 -0
@@ -1,8 +1,8 @@
1
1
  import fs from 'fs';
2
2
  import path from 'path';
3
3
  import { randomUUID } from 'node:crypto';
4
- import logger from '../../logger/logger.js';
5
- import { AUTH_CONFIG, getGlobalConfigDir } from '../../constants.js';
4
+ import logger from '../logger/logger.js';
5
+ import { AUTH_CONFIG, getGlobalConfigDir } from '../constants.js';
6
6
  /**
7
7
  * SessionManager handles file-based session storage with automatic cleanup.
8
8
  *
@@ -23,7 +23,7 @@ import { AUTH_CONFIG, getGlobalConfigDir } from '../../constants.js';
23
23
  * const session = sessionManager.getSession(sessionId);
24
24
  * ```
25
25
  */
26
- export class SessionManager {
26
+ export class ServerSessionManager {
27
27
  sessionStoragePath;
28
28
  cleanupInterval = null;
29
29
  /**
@@ -35,10 +35,19 @@ export class SessionManager {
35
35
  * @param sessionStoragePath - Optional custom path for session storage
36
36
  */
37
37
  constructor(sessionStoragePath) {
38
- this.sessionStoragePath = sessionStoragePath || path.join(getGlobalConfigDir(), AUTH_CONFIG.SESSION_STORAGE_DIR);
38
+ this.sessionStoragePath =
39
+ sessionStoragePath || path.join(getGlobalConfigDir(), AUTH_CONFIG.SERVER.SESSION.STORAGE_DIR);
39
40
  this.ensureSessionDirectory();
40
41
  this.startCleanupInterval();
41
42
  }
43
+ /**
44
+ * Gets the session storage path.
45
+ *
46
+ * @returns The absolute path to the session storage directory
47
+ */
48
+ getSessionStoragePath() {
49
+ return this.sessionStoragePath;
50
+ }
42
51
  /**
43
52
  * Ensures the session storage directory exists.
44
53
  *
@@ -66,9 +75,17 @@ export class SessionManager {
66
75
  * @returns Full file path for the session file
67
76
  */
68
77
  getSessionFilePath(sessionId) {
69
- const filePath = path.resolve(this.sessionStoragePath, `${AUTH_CONFIG.SESSION_FILE_PREFIX}${sessionId}${AUTH_CONFIG.SESSION_FILE_EXTENSION}`);
70
- if (!filePath.startsWith(this.sessionStoragePath)) {
71
- throw new Error('Invalid session file path');
78
+ // Validate session ID format first
79
+ if (!this.isValidId(sessionId)) {
80
+ throw new Error('Invalid session ID format');
81
+ }
82
+ const fileName = `${AUTH_CONFIG.SERVER.SESSION.FILE_PREFIX}${sessionId}${AUTH_CONFIG.SERVER.SESSION.FILE_EXTENSION}`;
83
+ const filePath = path.resolve(this.sessionStoragePath, fileName);
84
+ // Additional security check: ensure resolved path is within session storage
85
+ const normalizedStoragePath = path.resolve(this.sessionStoragePath);
86
+ const normalizedFilePath = path.resolve(filePath);
87
+ if (!normalizedFilePath.startsWith(normalizedStoragePath + path.sep)) {
88
+ throw new Error('Invalid session file path: outside storage directory');
72
89
  }
73
90
  return filePath;
74
91
  }
@@ -79,19 +96,52 @@ export class SessionManager {
79
96
  * @returns Full file path for the auth code file
80
97
  */
81
98
  getAuthCodeFilePath(code) {
82
- const filePath = path.resolve(this.sessionStoragePath, `auth_code_${code}${AUTH_CONFIG.SESSION_FILE_EXTENSION}`);
83
- if (!filePath.startsWith(this.sessionStoragePath)) {
84
- throw new Error('Invalid authorization code path');
99
+ // Validate auth code format first
100
+ if (!this.isValidId(code)) {
101
+ throw new Error('Invalid authorization code format');
102
+ }
103
+ const fileName = `auth_code_${code}${AUTH_CONFIG.SERVER.SESSION.FILE_EXTENSION}`;
104
+ const filePath = path.resolve(this.sessionStoragePath, fileName);
105
+ // Additional security check: ensure resolved path is within session storage
106
+ const normalizedStoragePath = path.resolve(this.sessionStoragePath);
107
+ const normalizedFilePath = path.resolve(filePath);
108
+ if (!normalizedFilePath.startsWith(normalizedStoragePath + path.sep)) {
109
+ throw new Error('Invalid authorization code path: outside storage directory');
85
110
  }
86
111
  return filePath;
87
112
  }
88
113
  /**
89
- * Utility to validate session IDs and auth codes for safe characters (alphanumeric and dashes only).
114
+ * Utility to validate session IDs and auth codes for proper format and security.
115
+ * Ensures proper format with prefix and UUID structure for security.
90
116
  * @param id - The session ID or auth code to validate
91
117
  * @returns true if valid, false otherwise
92
118
  */
93
119
  isValidId(id) {
94
- return /^[a-zA-Z0-9-]+$/.test(id);
120
+ // Check minimum length (prefix + content)
121
+ if (!id || id.length < 8) {
122
+ return false;
123
+ }
124
+ // Check for valid server-side prefix
125
+ const hasServerPrefix = id.startsWith(AUTH_CONFIG.SERVER.PREFIXES.SESSION_ID) || id.startsWith(AUTH_CONFIG.SERVER.PREFIXES.AUTH_CODE);
126
+ if (hasServerPrefix) {
127
+ // Validate the UUID portion (after prefix)
128
+ const uuidPart = id.startsWith(AUTH_CONFIG.SERVER.PREFIXES.SESSION_ID)
129
+ ? id.substring(AUTH_CONFIG.SERVER.PREFIXES.SESSION_ID.length)
130
+ : id.substring(AUTH_CONFIG.SERVER.PREFIXES.AUTH_CODE.length);
131
+ // UUID v4 format: 8-4-4-4-12 hexadecimal digits with hyphens
132
+ const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
133
+ return uuidRegex.test(uuidPart);
134
+ }
135
+ // Check for valid client-side OAuth prefix
136
+ const hasClientPrefix = id.startsWith(AUTH_CONFIG.CLIENT.PREFIXES.CLIENT) ||
137
+ id.startsWith(AUTH_CONFIG.CLIENT.PREFIXES.TOKENS) ||
138
+ id.startsWith(AUTH_CONFIG.CLIENT.PREFIXES.VERIFIER) ||
139
+ id.startsWith(AUTH_CONFIG.CLIENT.PREFIXES.STATE);
140
+ if (hasClientPrefix) {
141
+ const contentPart = id.substring(4); // All client prefixes are 4 characters
142
+ return contentPart.length > 0 && /^[a-zA-Z0-9_-]+$/.test(contentPart);
143
+ }
144
+ return false;
95
145
  }
96
146
  /**
97
147
  * Creates a new session with the specified parameters.
@@ -106,7 +156,7 @@ export class SessionManager {
106
156
  * @throws Error if session creation fails
107
157
  */
108
158
  createSession(clientId, resource, ttlMs) {
109
- const sessionId = AUTH_CONFIG.PREFIXES.SESSION_ID + randomUUID();
159
+ const sessionId = AUTH_CONFIG.SERVER.PREFIXES.SESSION_ID + randomUUID();
110
160
  const sessionData = {
111
161
  clientId,
112
162
  resource,
@@ -197,7 +247,7 @@ export class SessionManager {
197
247
  * @throws Error if code creation fails
198
248
  */
199
249
  createAuthCode(clientId, redirectUri, resource, ttlMs) {
200
- const code = AUTH_CONFIG.PREFIXES.AUTH_CODE + randomUUID();
250
+ const code = AUTH_CONFIG.SERVER.PREFIXES.AUTH_CODE + randomUUID();
201
251
  const authCodeData = {
202
252
  clientId,
203
253
  redirectUri,
@@ -295,11 +345,17 @@ export class SessionManager {
295
345
  * by removing them to prevent future errors.
296
346
  */
297
347
  cleanupExpiredSessions() {
348
+ this.cleanupExpiredServerSessions();
349
+ }
350
+ /**
351
+ * Cleans up expired server sessions and authorization codes.
352
+ */
353
+ cleanupExpiredServerSessions() {
298
354
  try {
299
355
  const files = fs.readdirSync(this.sessionStoragePath);
300
356
  let cleanedCount = 0;
301
357
  for (const file of files) {
302
- if (file.endsWith(AUTH_CONFIG.SESSION_FILE_EXTENSION)) {
358
+ if (file.endsWith(AUTH_CONFIG.SERVER.SESSION.FILE_EXTENSION)) {
303
359
  const filePath = path.join(this.sessionStoragePath, file);
304
360
  try {
305
361
  const data = fs.readFileSync(filePath, 'utf8');
@@ -323,11 +379,11 @@ export class SessionManager {
323
379
  }
324
380
  }
325
381
  if (cleanedCount > 0) {
326
- logger.info(`Cleaned up ${cleanedCount} expired sessions`);
382
+ logger.info(`Cleaned up ${cleanedCount} expired server sessions`);
327
383
  }
328
384
  }
329
385
  catch (error) {
330
- logger.error(`Failed to cleanup expired sessions: ${error}`);
386
+ logger.error(`Failed to cleanup expired server sessions: ${error}`);
331
387
  }
332
388
  }
333
389
  /**
@@ -354,7 +410,7 @@ export class SessionManager {
354
410
  * @throws Error if session creation fails
355
411
  */
356
412
  createSessionWithId(tokenId, clientId, resource, ttlMs) {
357
- const sessionId = AUTH_CONFIG.PREFIXES.SESSION_ID + tokenId;
413
+ const sessionId = AUTH_CONFIG.SERVER.PREFIXES.SESSION_ID + tokenId;
358
414
  const sessionData = {
359
415
  clientId,
360
416
  resource,
@@ -372,5 +428,34 @@ export class SessionManager {
372
428
  throw error;
373
429
  }
374
430
  }
431
+ /**
432
+ * Creates a new session with custom data.
433
+ * Used for OAuth client data storage where arbitrary data needs to be stored.
434
+ *
435
+ * @param sessionId - The session ID to use
436
+ * @param data - The custom data to store
437
+ * @param ttlMs - Time-to-live in milliseconds
438
+ * @returns The session ID
439
+ * @throws Error if session creation fails
440
+ */
441
+ createSessionWithData(sessionId, data, ttlMs) {
442
+ const sessionData = {
443
+ clientId: 'oauth-client-data',
444
+ resource: 'internal',
445
+ expires: Date.now() + ttlMs,
446
+ createdAt: Date.now(),
447
+ data,
448
+ };
449
+ try {
450
+ const filePath = this.getSessionFilePath(sessionId);
451
+ fs.writeFileSync(filePath, JSON.stringify(sessionData, null, 2));
452
+ logger.info(`Created data session: ${sessionId}`);
453
+ return sessionId;
454
+ }
455
+ catch (error) {
456
+ logger.error(`Failed to create data session: ${error}`);
457
+ throw error;
458
+ }
459
+ }
375
460
  }
376
- //# sourceMappingURL=sessionManager.js.map
461
+ //# sourceMappingURL=serverSessionManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serverSessionManager.js","sourceRoot":"","sources":["../../src/auth/serverSessionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGlE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,oBAAoB;IACvB,kBAAkB,CAAS;IAC3B,eAAe,GAA0C,IAAI,CAAC;IAEtE;;;;;;;OAOG;IACH,YAAY,kBAA2B;QACrC,IAAI,CAAC,kBAAkB;YACrB,kBAAkB,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAChG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACI,qBAAqB;QAC1B,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED;;;;;;;OAOG;IACK,sBAAsB;QAC5B,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC5C,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3D,MAAM,CAAC,IAAI,CAAC,sCAAsC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,uCAAuC,KAAK,EAAE,CAAC,CAAC;YAC7D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,kBAAkB,CAAC,SAAiB;QAC1C,mCAAmC;QACnC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,QAAQ,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QACrH,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;QAEjE,4EAA4E;QAC5E,MAAM,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACpE,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAElD,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACK,mBAAmB,CAAC,IAAY;QACtC,kCAAkC;QAClC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,QAAQ,GAAG,aAAa,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QACjF,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;QAEjE,4EAA4E;QAC5E,MAAM,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACpE,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAElD,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACK,SAAS,CAAC,EAAU;QAC1B,0CAA0C;QAC1C,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,qCAAqC;QACrC,MAAM,eAAe,GACnB,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEhH,IAAI,eAAe,EAAE,CAAC;YACpB,2CAA2C;YAC3C,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;gBACpE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;gBAC7D,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAE/D,6DAA6D;YAC7D,MAAM,SAAS,GAAG,wEAAwE,CAAC;YAC3F,OAAO,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QAED,2CAA2C;QAC3C,MAAM,eAAe,GACnB,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YACjD,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YACjD,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACnD,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEnD,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,WAAW,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,uCAAuC;YAC5E,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;;;OAWG;IACI,aAAa,CAAC,QAAgB,EAAE,QAAgB,EAAE,KAAa;QACpE,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC;QACxE,MAAM,WAAW,GAAgB;YAC/B,QAAQ;YACR,QAAQ;YACR,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;YAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;YACpD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC,oBAAoB,SAAS,gBAAgB,QAAQ,EAAE,CAAC,CAAC;YACrE,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,6BAA6B,KAAK,EAAE,CAAC,CAAC;YACnD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACI,UAAU,CAAC,SAAiB;QACjC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,+CAA+C,SAAS,EAAE,CAAC,CAAC;YACxE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;YACpD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC/C,MAAM,WAAW,GAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAElD,IAAI,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBACrC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,WAAW,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,0BAA0B,SAAS,KAAK,KAAK,EAAE,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACI,aAAa,CAAC,SAAiB;QACpC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,kDAAkD,SAAS,EAAE,CAAC,CAAC;YAC3E,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;YACpD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC;gBAC7C,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,4BAA4B,SAAS,KAAK,KAAK,EAAE,CAAC,CAAC;YAChE,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,cAAc,CAAC,QAAgB,EAAE,WAAmB,EAAE,QAAgB,EAAE,KAAa;QAC1F,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,GAAG,UAAU,EAAE,CAAC;QAClE,MAAM,YAAY,GAAiB;YACjC,QAAQ;YACR,WAAW;YACX,QAAQ;YACR,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;YAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAChD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC,sBAAsB,IAAI,gBAAgB,QAAQ,EAAE,CAAC,CAAC;YAClE,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;YACrD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACI,WAAW,CAAC,IAAY;QAC7B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,2CAA2C,IAAI,EAAE,CAAC,CAAC;YAC/D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC/C,MAAM,YAAY,GAAiB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAEpD,IAAI,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBACtC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBAC1B,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,YAAY,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,4BAA4B,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;YAC3D,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACI,cAAc,CAAC,IAAY;QAChC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,8CAA8C,IAAI,EAAE,CAAC,CAAC;YAClE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;gBAC1C,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,8BAA8B,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;YAC7D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,oBAAoB;QAC1B,4CAA4C;QAC5C,IAAI,CAAC,eAAe,GAAG,WAAW,CAChC,GAAG,EAAE;YACH,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAChC,CAAC,EACD,CAAC,GAAG,EAAE,GAAG,IAAI,CACd,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACK,sBAAsB;QAC5B,IAAI,CAAC,4BAA4B,EAAE,CAAC;IACtC,CAAC;IAED;;OAEG;IACK,4BAA4B;QAClC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACtD,IAAI,YAAY,GAAG,CAAC,CAAC;YAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;oBAC1D,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;wBAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAErC,IAAI,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;4BACrC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;4BACxB,YAAY,EAAE,CAAC;wBACjB,CAAC;oBACH,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,MAAM,CAAC,IAAI,CAAC,kCAAkC,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;wBAChE,yBAAyB;wBACzB,IAAI,CAAC;4BACH,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;4BACxB,YAAY,EAAE,CAAC;wBACjB,CAAC;wBAAC,OAAO,WAAW,EAAE,CAAC;4BACrB,MAAM,CAAC,KAAK,CAAC,mCAAmC,IAAI,KAAK,WAAW,EAAE,CAAC,CAAC;wBAC1E,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAC,cAAc,YAAY,0BAA0B,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,8CAA8C,KAAK,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACI,QAAQ;QACb,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACpC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACI,mBAAmB,CAAC,OAAe,EAAE,QAAgB,EAAE,QAAgB,EAAE,KAAa;QAC3F,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,GAAG,OAAO,CAAC;QACnE,MAAM,WAAW,GAAgB;YAC/B,QAAQ;YACR,QAAQ;YACR,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;YAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;YACpD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC,oBAAoB,SAAS,gBAAgB,QAAQ,EAAE,CAAC,CAAC;YACrE,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,6BAA6B,KAAK,EAAE,CAAC,CAAC;YACnD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACI,qBAAqB,CAAC,SAAiB,EAAE,IAAY,EAAE,KAAa;QACzE,MAAM,WAAW,GAAgB;YAC/B,QAAQ,EAAE,mBAAmB;YAC7B,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;YAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,IAAI;SACL,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;YACpD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC,yBAAyB,SAAS,EAAE,CAAC,CAAC;YAClD,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAC;YACxD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,24 @@
1
+ export interface SessionData {
2
+ clientId: string;
3
+ resource: string;
4
+ expires: number;
5
+ createdAt: number;
6
+ data?: string;
7
+ }
8
+ export interface AuthCodeData {
9
+ clientId: string;
10
+ redirectUri: string;
11
+ resource: string;
12
+ expires: number;
13
+ createdAt: number;
14
+ }
15
+ export interface ClientSessionData {
16
+ serverName: string;
17
+ clientInfo?: string;
18
+ tokens?: string;
19
+ codeVerifier?: string;
20
+ state?: string;
21
+ expires: number;
22
+ createdAt: number;
23
+ }
24
+ //# sourceMappingURL=sessionTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionTypes.d.ts","sourceRoot":"","sources":["../../src/auth/sessionTypes.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,3 @@
1
+ // Shared session types for server and client session managers
2
+ export {};
3
+ //# sourceMappingURL=sessionTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionTypes.js","sourceRoot":"","sources":["../../src/auth/sessionTypes.ts"],"names":[],"mappings":"AAAA,8DAA8D"}
@@ -1,4 +1,4 @@
1
- import { Clients, ServerInfo } from '../types.js';
1
+ import { OutboundConnections, InboundConnection } from '../core/types/index.js';
2
2
  /**
3
3
  * Collects capabilities from all clients and registers them with the server
4
4
  * @param clients Record of client instances
@@ -6,7 +6,7 @@ import { Clients, ServerInfo } from '../types.js';
6
6
  * @param tags Array of tags to filter clients by
7
7
  * @returns The combined server capabilities
8
8
  */
9
- export declare function setupCapabilities(clients: Clients, serverInfo: ServerInfo): Promise<{
9
+ export declare function setupCapabilities(clients: OutboundConnections, serverInfo: InboundConnection): Promise<{
10
10
  [x: string]: unknown;
11
11
  experimental?: {
12
12
  [x: string]: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"capabilityManager.d.ts","sourceRoot":"","sources":["../../src/capabilities/capabilityManager.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;GAY/E"}
1
+ {"version":3,"file":"capabilityManager.d.ts","sourceRoot":"","sources":["../../src/capabilities/capabilityManager.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhF;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;GAYlG"}
@@ -25,18 +25,18 @@ export async function setupCapabilities(clients, serverInfo) {
25
25
  */
26
26
  function collectCapabilities(clients) {
27
27
  const capabilities = {};
28
- for (const [name, clientInfo] of Object.entries(clients)) {
28
+ for (const [name, clientInfo] of clients.entries()) {
29
29
  try {
30
30
  const serverCapabilities = clientInfo.client.getServerCapabilities() || {};
31
31
  logger.debug(`Capabilities from ${name}: ${JSON.stringify(serverCapabilities)}`);
32
32
  // Store capabilities per client
33
33
  clientInfo.capabilities = serverCapabilities;
34
- // Aggregate capabilities
35
- capabilities.resources = { ...capabilities.resources, ...serverCapabilities.resources };
36
- capabilities.tools = { ...capabilities.tools, ...serverCapabilities.tools };
37
- capabilities.prompts = { ...capabilities.prompts, ...serverCapabilities.prompts };
38
- capabilities.experimental = { ...capabilities.experimental, ...serverCapabilities.experimental };
39
- capabilities.logging = { ...capabilities.logging, ...serverCapabilities.logging };
34
+ // Aggregate capabilities with conflict handling
35
+ capabilities.resources = mergeCapabilities(capabilities.resources, serverCapabilities.resources, 'resources', name);
36
+ capabilities.tools = mergeCapabilities(capabilities.tools, serverCapabilities.tools, 'tools', name);
37
+ capabilities.prompts = mergeCapabilities(capabilities.prompts, serverCapabilities.prompts, 'prompts', name);
38
+ capabilities.experimental = mergeCapabilities(capabilities.experimental, serverCapabilities.experimental, 'experimental', name);
39
+ capabilities.logging = mergeCapabilities(capabilities.logging, serverCapabilities.logging, 'logging', name);
40
40
  }
41
41
  catch (error) {
42
42
  logger.error(`Failed to get capabilities from ${name}: ${error}`);
@@ -44,4 +44,37 @@ function collectCapabilities(clients) {
44
44
  }
45
45
  return capabilities;
46
46
  }
47
+ /**
48
+ * Merges capability objects with conflict detection and resolution
49
+ * @param existing The existing capability object
50
+ * @param incoming The incoming capability object
51
+ * @param capabilityType The type of capability being merged
52
+ * @param clientName The name of the client providing the incoming capability
53
+ * @returns The merged capability object
54
+ */
55
+ function mergeCapabilities(existing, incoming, capabilityType, clientName) {
56
+ if (!incoming) {
57
+ return existing;
58
+ }
59
+ if (!existing) {
60
+ return incoming;
61
+ }
62
+ const merged = { ...existing };
63
+ const conflicts = [];
64
+ for (const [key, value] of Object.entries(incoming)) {
65
+ if (key in existing) {
66
+ // Check if values are different (potential conflict)
67
+ if (JSON.stringify(existing[key]) !== JSON.stringify(value)) {
68
+ conflicts.push(key);
69
+ logger.warn(`Capability conflict in ${capabilityType}.${key}: client ${clientName} overriding existing value`);
70
+ logger.debug(`Existing: ${JSON.stringify(existing[key])}, New: ${JSON.stringify(value)}`);
71
+ }
72
+ }
73
+ merged[key] = value;
74
+ }
75
+ if (conflicts.length > 0) {
76
+ logger.info(`Client ${clientName} has ${conflicts.length} ${capabilityType} capability conflicts: ${conflicts.join(', ')}`);
77
+ }
78
+ return merged;
79
+ }
47
80
  //# sourceMappingURL=capabilityManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"capabilityManager.js","sourceRoot":"","sources":["../../src/capabilities/capabilityManager.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,EACL,gCAAgC,EAChC,gCAAgC,GACjC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAGzE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAgB,EAAE,UAAsB;IAC9E,wCAAwC;IACxC,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAElD,+BAA+B;IAC/B,gCAAgC,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACtD,gCAAgC,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAEtD,kDAAkD;IAClD,uBAAuB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAE7C,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,OAAgB;IAC3C,MAAM,YAAY,GAAuB,EAAE,CAAC;IAE5C,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAC;YAC3E,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;YAEjF,gCAAgC;YAChC,UAAU,CAAC,YAAY,GAAG,kBAAkB,CAAC;YAE7C,yBAAyB;YACzB,YAAY,CAAC,SAAS,GAAG,EAAE,GAAG,YAAY,CAAC,SAAS,EAAE,GAAG,kBAAkB,CAAC,SAAS,EAAE,CAAC;YACxF,YAAY,CAAC,KAAK,GAAG,EAAE,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,kBAAkB,CAAC,KAAK,EAAE,CAAC;YAC5E,YAAY,CAAC,OAAO,GAAG,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,kBAAkB,CAAC,OAAO,EAAE,CAAC;YAClF,YAAY,CAAC,YAAY,GAAG,EAAE,GAAG,YAAY,CAAC,YAAY,EAAE,GAAG,kBAAkB,CAAC,YAAY,EAAE,CAAC;YACjG,YAAY,CAAC,OAAO,GAAG,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,kBAAkB,CAAC,OAAO,EAAE,CAAC;QACpF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,mCAAmC,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"capabilityManager.js","sourceRoot":"","sources":["../../src/capabilities/capabilityManager.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter } from 'events';
2
- import { MCPServerParams } from '../types.js';
2
+ import { MCPServerParams } from '../core/types/index.js';
3
3
  /**
4
4
  * Configuration change event types
5
5
  */
@@ -7,23 +7,25 @@ export declare enum ConfigChangeEvent {
7
7
  TRANSPORT_CONFIG_CHANGED = "transportConfigChanged"
8
8
  }
9
9
  /**
10
- * Configuration manager that handles loading, watching, and reloading configuration
10
+ * MCP configuration manager that handles loading, watching, and reloading MCP server configurations
11
11
  */
12
- export declare class ConfigManager extends EventEmitter {
12
+ export declare class McpConfigManager extends EventEmitter {
13
13
  private static instance;
14
14
  private configWatcher;
15
15
  private transportConfig;
16
16
  private configFilePath;
17
+ private debounceTimer;
18
+ private readonly debounceDelayMs;
17
19
  /**
18
20
  * Private constructor to enforce singleton pattern
19
21
  * @param configFilePath - Optional path to the config file. If not provided, uses global config path
20
22
  */
21
23
  private constructor();
22
24
  /**
23
- * Get the singleton instance of ConfigManager
25
+ * Get the singleton instance of McpConfigManager
24
26
  * @param configFilePath - Optional path to the config file
25
27
  */
26
- static getInstance(configFilePath?: string): ConfigManager;
28
+ static getInstance(configFilePath?: string): McpConfigManager;
27
29
  /**
28
30
  * Ensure the config directory and file exist
29
31
  */
@@ -40,6 +42,10 @@ export declare class ConfigManager extends EventEmitter {
40
42
  * Stop watching the configuration file
41
43
  */
42
44
  stopWatching(): void;
45
+ /**
46
+ * Debounced configuration reload to prevent excessive reloading
47
+ */
48
+ private debouncedReloadConfig;
43
49
  /**
44
50
  * Reload the configuration from the config file
45
51
  */
@@ -49,6 +55,11 @@ export declare class ConfigManager extends EventEmitter {
49
55
  * @returns The current transport configuration
50
56
  */
51
57
  getTransportConfig(): Record<string, MCPServerParams>;
58
+ /**
59
+ * Get all available tags from the configured servers
60
+ * @returns Array of unique tags from all servers
61
+ */
62
+ getAvailableTags(): string[];
52
63
  }
53
- export default ConfigManager;
54
- //# sourceMappingURL=configManager.d.ts.map
64
+ export default McpConfigManager;
65
+ //# sourceMappingURL=mcpConfigManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpConfigManager.d.ts","sourceRoot":"","sources":["../../src/config/mcpConfigManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,wBAAwB,2BAA2B;CACpD;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAmB;IAC1C,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAe;IAE/C;;;OAGG;IACH,OAAO;IAOP;;;OAGG;WACW,WAAW,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAOpE;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAkB1B;;OAEG;IACH,OAAO,CAAC,UAAU;IAWlB;;OAEG;IACI,aAAa,IAAI,IAAI;IAkB5B;;OAEG;IACI,YAAY,IAAI,IAAI;IAc3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;OAEG;IACI,YAAY,IAAI,IAAI;IAgB3B;;;OAGG;IACI,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;IAI5D;;;OAGG;IACI,gBAAgB,IAAI,MAAM,EAAE;CAiBpC;AAED,eAAe,gBAAgB,CAAC"}
@@ -11,13 +11,15 @@ export var ConfigChangeEvent;
11
11
  ConfigChangeEvent["TRANSPORT_CONFIG_CHANGED"] = "transportConfigChanged";
12
12
  })(ConfigChangeEvent || (ConfigChangeEvent = {}));
13
13
  /**
14
- * Configuration manager that handles loading, watching, and reloading configuration
14
+ * MCP configuration manager that handles loading, watching, and reloading MCP server configurations
15
15
  */
16
- export class ConfigManager extends EventEmitter {
16
+ export class McpConfigManager extends EventEmitter {
17
17
  static instance;
18
18
  configWatcher = null;
19
19
  transportConfig = {};
20
20
  configFilePath;
21
+ debounceTimer = null;
22
+ debounceDelayMs = 500; // 500ms debounce delay
21
23
  /**
22
24
  * Private constructor to enforce singleton pattern
23
25
  * @param configFilePath - Optional path to the config file. If not provided, uses global config path
@@ -29,14 +31,14 @@ export class ConfigManager extends EventEmitter {
29
31
  this.loadConfig();
30
32
  }
31
33
  /**
32
- * Get the singleton instance of ConfigManager
34
+ * Get the singleton instance of McpConfigManager
33
35
  * @param configFilePath - Optional path to the config file
34
36
  */
35
37
  static getInstance(configFilePath) {
36
- if (!ConfigManager.instance) {
37
- ConfigManager.instance = new ConfigManager(configFilePath);
38
+ if (!McpConfigManager.instance) {
39
+ McpConfigManager.instance = new McpConfigManager(configFilePath);
38
40
  }
39
- return ConfigManager.instance;
41
+ return McpConfigManager.instance;
40
42
  }
41
43
  /**
42
44
  * Ensure the config directory and file exist
@@ -82,8 +84,8 @@ export class ConfigManager extends EventEmitter {
82
84
  try {
83
85
  this.configWatcher = fs.watch(this.configFilePath, (eventType, filename) => {
84
86
  if (filename === path.basename(this.configFilePath) && eventType === 'change') {
85
- logger.info(`Configuration file ${filename} changed, reloading...`);
86
- this.reloadConfig();
87
+ logger.debug(`Configuration file ${filename} changed, debouncing reload...`);
88
+ this.debouncedReloadConfig();
87
89
  }
88
90
  });
89
91
  logger.info(`Started watching configuration file: ${this.configFilePath}`);
@@ -101,6 +103,26 @@ export class ConfigManager extends EventEmitter {
101
103
  this.configWatcher = null;
102
104
  logger.info('Stopped watching configuration file');
103
105
  }
106
+ // Clear any pending debounce timer
107
+ if (this.debounceTimer) {
108
+ clearTimeout(this.debounceTimer);
109
+ this.debounceTimer = null;
110
+ }
111
+ }
112
+ /**
113
+ * Debounced configuration reload to prevent excessive reloading
114
+ */
115
+ debouncedReloadConfig() {
116
+ // Clear existing timer
117
+ if (this.debounceTimer) {
118
+ clearTimeout(this.debounceTimer);
119
+ }
120
+ // Set new timer
121
+ this.debounceTimer = setTimeout(() => {
122
+ logger.info('Debounce period completed, reloading configuration...');
123
+ this.reloadConfig();
124
+ this.debounceTimer = null;
125
+ }, this.debounceDelayMs);
104
126
  }
105
127
  /**
106
128
  * Reload the configuration from the config file
@@ -126,6 +148,24 @@ export class ConfigManager extends EventEmitter {
126
148
  getTransportConfig() {
127
149
  return { ...this.transportConfig };
128
150
  }
151
+ /**
152
+ * Get all available tags from the configured servers
153
+ * @returns Array of unique tags from all servers
154
+ */
155
+ getAvailableTags() {
156
+ const tags = new Set();
157
+ for (const [_serverName, serverParams] of Object.entries(this.transportConfig)) {
158
+ // Skip disabled servers
159
+ if (serverParams.disabled) {
160
+ continue;
161
+ }
162
+ // Add tags from server configuration
163
+ if (serverParams.tags && Array.isArray(serverParams.tags)) {
164
+ serverParams.tags.forEach((tag) => tags.add(tag));
165
+ }
166
+ }
167
+ return Array.from(tags).sort();
168
+ }
129
169
  }
130
- export default ConfigManager;
131
- //# sourceMappingURL=configManager.js.map
170
+ export default McpConfigManager;
171
+ //# sourceMappingURL=mcpConfigManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpConfigManager.js","sourceRoot":"","sources":["../../src/config/mcpConfigManager.ts"],"names":[],"mappings":"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"}
@@ -3,13 +3,13 @@
3
3
  */
4
4
  import { ClientCapabilities, ServerCapabilities } from '@modelcontextprotocol/sdk/types.js';
5
5
  export declare const PORT = 3050;
6
- export declare const HOST = "127.0.0.1";
6
+ export declare const HOST = "localhost";
7
7
  export declare const SSE_ENDPOINT = "/sse";
8
8
  export declare const MESSAGES_ENDPOINT = "/messages";
9
9
  export declare const STREAMABLE_HTTP_ENDPOINT = "/mcp";
10
10
  export declare const MCP_CONFIG_FILE = "mcp.json";
11
11
  export declare const MCP_SERVER_NAME = "1mcp";
12
- export declare const MCP_SERVER_VERSION = "0.11.0";
12
+ export declare const MCP_SERVER_VERSION = "0.13.0";
13
13
  export declare const MCP_URI_SEPARATOR = "_1mcp_";
14
14
  export declare const CONFIG_DIR_NAME = "1mcp";
15
15
  export declare const DEFAULT_CONFIG: {
@@ -28,18 +28,40 @@ export declare const CONNECTION_RETRY: {
28
28
  INITIAL_DELAY_MS: number;
29
29
  };
30
30
  export declare const AUTH_CONFIG: {
31
- DEFAULT_ENABLED: boolean;
32
- DEFAULT_SESSION_TTL_MINUTES: number;
33
- DEFAULT_OAUTH_CODE_TTL_MS: number;
34
- DEFAULT_OAUTH_TOKEN_TTL_MS: number;
35
- SESSION_STORAGE_DIR: string;
36
- SESSION_FILE_PREFIX: string;
37
- SESSION_FILE_EXTENSION: string;
38
- PREFIXES: {
39
- SESSION_ID: string;
40
- ACCESS_TOKEN: string;
41
- AUTH_CODE: string;
42
- CLIENT_ID: string;
31
+ SERVER: {
32
+ DEFAULT_ENABLED: boolean;
33
+ SESSION: {
34
+ TTL_MINUTES: number;
35
+ STORAGE_DIR: string;
36
+ FILE_PREFIX: string;
37
+ FILE_EXTENSION: string;
38
+ };
39
+ OAUTH: {
40
+ CODE_TTL_MS: number;
41
+ TOKEN_TTL_MS: number;
42
+ };
43
+ PREFIXES: {
44
+ SESSION_ID: string;
45
+ ACCESS_TOKEN: string;
46
+ AUTH_CODE: string;
47
+ CLIENT_ID: string;
48
+ };
49
+ };
50
+ CLIENT: {
51
+ OAUTH: {
52
+ TTL_MS: number;
53
+ CODE_VERIFIER_TTL_MS: number;
54
+ STATE_TTL_MS: number;
55
+ DEFAULT_TOKEN_EXPIRY_SECONDS: number;
56
+ DEFAULT_CALLBACK_PATH: string;
57
+ DEFAULT_SCOPES: never[];
58
+ };
59
+ PREFIXES: {
60
+ CLIENT: string;
61
+ TOKENS: string;
62
+ VERIFIER: string;
63
+ STATE: string;
64
+ };
43
65
  };
44
66
  };
45
67
  export declare const RATE_LIMIT_CONFIG: {
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAG5F,eAAO,MAAM,IAAI,OAAO,CAAC;AACzB,eAAO,MAAM,IAAI,cAAc,CAAC;AAGhC,eAAO,MAAM,YAAY,SAAS,CAAC;AACnC,eAAO,MAAM,iBAAiB,cAAc,CAAC;AAC7C,eAAO,MAAM,wBAAwB,SAAS,CAAC;AAG/C,eAAO,MAAM,eAAe,aAAa,CAAC;AAC1C,eAAO,MAAM,eAAe,SAAS,CAAC;AACtC,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAG1C,eAAO,MAAM,eAAe,SAAS,CAAC;AACtC,eAAO,MAAM,cAAc;;CAE1B,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAY3C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAGD,eAAO,MAAM,gBAAgB;;;CAG5B,CAAC;AAGF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;CAevB,CAAC;AAGF,eAAO,MAAM,iBAAiB;;;;;;;;CAM7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,kBAYrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,kBAUrC,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAG5F,eAAO,MAAM,IAAI,OAAO,CAAC;AACzB,eAAO,MAAM,IAAI,cAAc,CAAC;AAGhC,eAAO,MAAM,YAAY,SAAS,CAAC;AACnC,eAAO,MAAM,iBAAiB,cAAc,CAAC;AAC7C,eAAO,MAAM,wBAAwB,SAAS,CAAC;AAG/C,eAAO,MAAM,eAAe,aAAa,CAAC;AAC1C,eAAO,MAAM,eAAe,SAAS,CAAC;AACtC,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAG1C,eAAO,MAAM,eAAe,SAAS,CAAC;AACtC,eAAO,MAAM,cAAc;;CAE1B,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAY3C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAGD,eAAO,MAAM,gBAAgB;;;CAG5B,CAAC;AAGF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCvB,CAAC;AAGF,eAAO,MAAM,iBAAiB;;;;;;;;CAM7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,kBAYrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,kBAUrC,CAAC"}