@1mcp/agent 0.25.5 → 0.26.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 (114) hide show
  1. package/build/auth/sdkOAuthClientProvider.d.ts.map +1 -1
  2. package/build/auth/sdkOAuthClientProvider.js +3 -5
  3. package/build/auth/sdkOAuthClientProvider.js.map +1 -1
  4. package/build/auth/sessionTypes.d.ts +10 -0
  5. package/build/auth/sessionTypes.d.ts.map +1 -1
  6. package/build/auth/storage/fileStorageService.d.ts +25 -1
  7. package/build/auth/storage/fileStorageService.d.ts.map +1 -1
  8. package/build/auth/storage/fileStorageService.js +155 -27
  9. package/build/auth/storage/fileStorageService.js.map +1 -1
  10. package/build/auth/storage/oauthStorageService.js +1 -1
  11. package/build/auth/storage/oauthStorageService.js.map +1 -1
  12. package/build/commands/mcp/index.d.ts.map +1 -1
  13. package/build/commands/mcp/index.js +3 -2
  14. package/build/commands/mcp/index.js.map +1 -1
  15. package/build/commands/registry/index.d.ts +6 -0
  16. package/build/commands/registry/index.d.ts.map +1 -0
  17. package/build/commands/registry/index.js +67 -0
  18. package/build/commands/registry/index.js.map +1 -0
  19. package/build/commands/registry/options.d.ts +47 -0
  20. package/build/commands/registry/options.d.ts.map +1 -0
  21. package/build/commands/registry/options.js +39 -0
  22. package/build/commands/registry/options.js.map +1 -0
  23. package/build/commands/registry/search.d.ts +21 -0
  24. package/build/commands/registry/search.d.ts.map +1 -0
  25. package/build/commands/registry/search.js +186 -0
  26. package/build/commands/registry/search.js.map +1 -0
  27. package/build/commands/registry/show.d.ts +25 -0
  28. package/build/commands/registry/show.d.ts.map +1 -0
  29. package/build/commands/registry/show.js +87 -0
  30. package/build/commands/registry/show.js.map +1 -0
  31. package/build/commands/registry/status.d.ts +16 -0
  32. package/build/commands/registry/status.d.ts.map +1 -0
  33. package/build/commands/registry/status.js +86 -0
  34. package/build/commands/registry/status.js.map +1 -0
  35. package/build/commands/registry/versions.d.ts +21 -0
  36. package/build/commands/registry/versions.d.ts.map +1 -0
  37. package/build/commands/registry/versions.js +76 -0
  38. package/build/commands/registry/versions.js.map +1 -0
  39. package/build/constants/auth.d.ts +27 -0
  40. package/build/constants/auth.d.ts.map +1 -1
  41. package/build/constants/auth.js +31 -0
  42. package/build/constants/auth.js.map +1 -1
  43. package/build/constants/mcp.d.ts +1 -1
  44. package/build/constants/mcp.js +1 -1
  45. package/build/core/tools/handlers/registryHandler.d.ts +11 -0
  46. package/build/core/tools/handlers/registryHandler.d.ts.map +1 -0
  47. package/build/core/tools/handlers/registryHandler.js +49 -0
  48. package/build/core/tools/handlers/registryHandler.js.map +1 -0
  49. package/build/core/tools/handlers/searchHandler.d.ts +19 -0
  50. package/build/core/tools/handlers/searchHandler.d.ts.map +1 -0
  51. package/build/core/tools/handlers/searchHandler.js +104 -0
  52. package/build/core/tools/handlers/searchHandler.js.map +1 -0
  53. package/build/core/tools/handlers/showHandler.d.ts +10 -0
  54. package/build/core/tools/handlers/showHandler.d.ts.map +1 -0
  55. package/build/core/tools/handlers/showHandler.js +44 -0
  56. package/build/core/tools/handlers/showHandler.js.map +1 -0
  57. package/build/core/tools/handlers/versionsHandler.d.ts +10 -0
  58. package/build/core/tools/handlers/versionsHandler.d.ts.map +1 -0
  59. package/build/core/tools/handlers/versionsHandler.js +44 -0
  60. package/build/core/tools/handlers/versionsHandler.js.map +1 -0
  61. package/build/domains/preset/manager/presetManager.d.ts.map +1 -1
  62. package/build/domains/preset/manager/presetManager.js +2 -2
  63. package/build/domains/preset/manager/presetManager.js.map +1 -1
  64. package/build/domains/registry/cacheManager.d.ts +61 -0
  65. package/build/domains/registry/cacheManager.d.ts.map +1 -0
  66. package/build/domains/registry/cacheManager.js +158 -0
  67. package/build/domains/registry/cacheManager.js.map +1 -0
  68. package/build/domains/registry/formatters/commonFormatters.d.ts +34 -0
  69. package/build/domains/registry/formatters/commonFormatters.d.ts.map +1 -0
  70. package/build/domains/registry/formatters/commonFormatters.js +154 -0
  71. package/build/domains/registry/formatters/commonFormatters.js.map +1 -0
  72. package/build/domains/registry/formatters/serverDetailFormatter.d.ts +6 -0
  73. package/build/domains/registry/formatters/serverDetailFormatter.d.ts.map +1 -0
  74. package/build/domains/registry/formatters/serverDetailFormatter.js +310 -0
  75. package/build/domains/registry/formatters/serverDetailFormatter.js.map +1 -0
  76. package/build/domains/registry/formatters/versionsFormatter.d.ts +6 -0
  77. package/build/domains/registry/formatters/versionsFormatter.d.ts.map +1 -0
  78. package/build/domains/registry/formatters/versionsFormatter.js +84 -0
  79. package/build/domains/registry/formatters/versionsFormatter.js.map +1 -0
  80. package/build/domains/registry/mcpRegistryClient.d.ts +101 -0
  81. package/build/domains/registry/mcpRegistryClient.d.ts.map +1 -0
  82. package/build/domains/registry/mcpRegistryClient.js +464 -0
  83. package/build/domains/registry/mcpRegistryClient.js.map +1 -0
  84. package/build/domains/registry/mcpToolSchemas.d.ts +63 -0
  85. package/build/domains/registry/mcpToolSchemas.d.ts.map +1 -0
  86. package/build/domains/registry/mcpToolSchemas.js +52 -0
  87. package/build/domains/registry/mcpToolSchemas.js.map +1 -0
  88. package/build/domains/registry/searchFiltering.d.ts +48 -0
  89. package/build/domains/registry/searchFiltering.d.ts.map +1 -0
  90. package/build/domains/registry/searchFiltering.js +201 -0
  91. package/build/domains/registry/searchFiltering.js.map +1 -0
  92. package/build/domains/registry/types.d.ts +204 -0
  93. package/build/domains/registry/types.d.ts.map +1 -0
  94. package/build/domains/registry/types.js +5 -0
  95. package/build/domains/registry/types.js.map +1 -0
  96. package/build/index.js +2 -0
  97. package/build/index.js.map +1 -1
  98. package/build/transport/http/restorableStreamableTransport.d.ts +52 -0
  99. package/build/transport/http/restorableStreamableTransport.d.ts.map +1 -0
  100. package/build/transport/http/restorableStreamableTransport.js +68 -0
  101. package/build/transport/http/restorableStreamableTransport.js.map +1 -0
  102. package/build/transport/http/routes/streamableHttpRoutes.d.ts +2 -1
  103. package/build/transport/http/routes/streamableHttpRoutes.d.ts.map +1 -1
  104. package/build/transport/http/routes/streamableHttpRoutes.js +113 -30
  105. package/build/transport/http/routes/streamableHttpRoutes.js.map +1 -1
  106. package/build/transport/http/server.d.ts +2 -0
  107. package/build/transport/http/server.d.ts.map +1 -1
  108. package/build/transport/http/server.js +10 -2
  109. package/build/transport/http/server.js.map +1 -1
  110. package/build/transport/http/storage/streamableSessionRepository.d.ts +57 -0
  111. package/build/transport/http/storage/streamableSessionRepository.d.ts.map +1 -0
  112. package/build/transport/http/storage/streamableSessionRepository.js +156 -0
  113. package/build/transport/http/storage/streamableSessionRepository.js.map +1 -0
  114. package/package.json +2 -1
@@ -0,0 +1,310 @@
1
+ import { OFFICIAL_REGISTRY_KEY, } from '../../../domains/registry/types.js';
2
+ import boxen from 'boxen';
3
+ import chalk from 'chalk';
4
+ import { formatDate, formatRelativeDate } from './commonFormatters.js';
5
+ /**
6
+ * Format a server's details for display
7
+ */
8
+ export function formatServerDetails(server, format = 'table') {
9
+ switch (format) {
10
+ case 'json':
11
+ return JSON.stringify(server, null, 2);
12
+ case 'detailed':
13
+ return formatDetailedServer(server);
14
+ case 'table':
15
+ default:
16
+ return formatTableServer(server);
17
+ }
18
+ }
19
+ /**
20
+ * Format server as table
21
+ */
22
+ function formatTableServer(server) {
23
+ const meta = server._meta[OFFICIAL_REGISTRY_KEY];
24
+ const basicInfo = {
25
+ Name: server.name,
26
+ Description: server.description,
27
+ Status: server.status,
28
+ Version: server.version,
29
+ 'Repository URL': server.repository.url,
30
+ 'Repository Source': server.repository.source,
31
+ };
32
+ if (server.repository.subfolder) {
33
+ basicInfo['Repository Subfolder'] = server.repository.subfolder;
34
+ }
35
+ const packages = server.packages || [];
36
+ if (packages.length > 0) {
37
+ basicInfo['Package Count'] = packages.length.toString();
38
+ basicInfo['Registry Types'] =
39
+ packages
40
+ .map((p) => p.registryType)
41
+ .filter(Boolean)
42
+ .join(', ') || 'unknown';
43
+ basicInfo['Transport Types'] =
44
+ packages
45
+ .map((p) => formatDetailTransport(p.transport))
46
+ .filter(Boolean)
47
+ .join(', ') || 'stdio';
48
+ }
49
+ const remotes = server.remotes || [];
50
+ if (remotes.length > 0) {
51
+ basicInfo['Remote Endpoints'] = remotes.length.toString();
52
+ basicInfo['Remote Types'] = remotes.map((r) => r.type).join(', ');
53
+ }
54
+ basicInfo['Published At'] = formatDate(meta.publishedAt);
55
+ basicInfo['Updated At'] = formatDate(meta.updatedAt);
56
+ basicInfo['Is Latest'] = meta.isLatest ? 'Yes' : 'No';
57
+ basicInfo['Registry ID'] = meta.serverId;
58
+ let result = '\nServer Details:\n';
59
+ console.table([basicInfo]);
60
+ // Add packages table if available
61
+ if (packages.length > 0) {
62
+ result += '\nPackages:\n';
63
+ const packageData = packages.map((pkg, index) => ({
64
+ Index: index + 1,
65
+ 'Registry Type': pkg.registryType || 'unknown',
66
+ Identifier: pkg.identifier,
67
+ Version: pkg.version || server.version,
68
+ Transport: formatDetailTransport(pkg.transport) || 'stdio',
69
+ Runtime: pkg.runtimeHint || 'N/A',
70
+ 'Env Vars': (pkg.environmentVariables?.length || 0) > 0 ? pkg.environmentVariables?.length : 'None',
71
+ Args: (pkg.packageArguments?.length || 0) + (pkg.runtimeArguments?.length || 0) || 'None',
72
+ }));
73
+ console.table(packageData);
74
+ }
75
+ // Add environment variables table if available
76
+ const allEnvVars = packages.flatMap((pkg) => pkg.environmentVariables || []);
77
+ if (allEnvVars.length > 0) {
78
+ result += '\nEnvironment Variables:\n';
79
+ const envVarData = allEnvVars.map((envVar, index) => ({
80
+ Index: index + 1,
81
+ Name: envVar.value || 'ENV_VAR',
82
+ Required: envVar.isRequired ? 'Yes' : 'No',
83
+ Secret: envVar.isSecret ? 'Yes' : 'No',
84
+ Default: envVar.default || 'N/A',
85
+ Description: envVar.description || 'N/A',
86
+ }));
87
+ console.table(envVarData);
88
+ }
89
+ // Add arguments table if available
90
+ const allArgs = packages.flatMap((pkg) => [
91
+ ...(pkg.packageArguments || []).map((arg) => ({ ...arg, type: 'Package' })),
92
+ ...(pkg.runtimeArguments || []).map((arg) => ({ ...arg, type: 'Runtime' })),
93
+ ]);
94
+ if (allArgs.length > 0) {
95
+ result += '\nArguments:\n';
96
+ const argData = allArgs.map((arg, index) => ({
97
+ Index: index + 1,
98
+ Name: arg.name || 'arg',
99
+ Type: arg.type || 'N/A',
100
+ Required: arg.isRequired ? 'Yes' : 'No',
101
+ Secret: arg.isSecret ? 'Yes' : 'No',
102
+ Repeated: arg.isRepeated ? 'Yes' : 'No',
103
+ Default: arg.default || 'N/A',
104
+ Description: arg.description || 'N/A',
105
+ }));
106
+ console.table(argData);
107
+ }
108
+ // Add remotes table if available
109
+ if (remotes.length > 0) {
110
+ result += '\nRemote Endpoints:\n';
111
+ const remoteData = remotes.map((remote, index) => ({
112
+ Index: index + 1,
113
+ Type: remote.type,
114
+ URL: remote.url,
115
+ Headers: (remote.headers?.length || 0) > 0 ? remote.headers?.length : 'None',
116
+ }));
117
+ console.table(remoteData);
118
+ }
119
+ return result;
120
+ }
121
+ /**
122
+ * Format server with enhanced detailed display
123
+ */
124
+ function formatDetailedServer(server) {
125
+ const meta = server._meta[OFFICIAL_REGISTRY_KEY];
126
+ // Status badge with color
127
+ const statusColor = server.status === 'active' ? 'green' : server.status === 'deprecated' ? 'yellow' : 'red';
128
+ const statusBadge = chalk[statusColor].bold(`● ${server.status.toUpperCase()}`);
129
+ // Header with enhanced information
130
+ const header = chalk.cyan.bold(server.name) + ' ' + chalk.gray(`(${server.version})`) + ' ' + statusBadge;
131
+ // Description with enhanced formatting
132
+ const description = chalk.white(server.description);
133
+ // Enhanced basic info section
134
+ const basicInfo = [
135
+ `${chalk.cyan('Repository:')} ${server.repository.url}`,
136
+ `${chalk.cyan('Source:')} ${server.repository.source}`,
137
+ server.repository.subfolder ? `${chalk.cyan('Subfolder:')} ${server.repository.subfolder}` : '',
138
+ server.websiteUrl ? `${chalk.cyan('Website:')} ${server.websiteUrl}` : '',
139
+ `${chalk.cyan('Published:')} ${formatRelativeDate(meta.publishedAt)}`,
140
+ `${chalk.cyan('Updated:')} ${formatRelativeDate(meta.updatedAt)}`,
141
+ `${chalk.cyan('Latest Version:')} ${meta.isLatest ? chalk.green('Yes') : chalk.yellow('No')}`,
142
+ ]
143
+ .filter(Boolean)
144
+ .join('\n');
145
+ let content = `${header}\n\n${description}\n\n${basicInfo}`;
146
+ // Enhanced packages section with installation instructions
147
+ const packages = server.packages || [];
148
+ if (packages.length > 0) {
149
+ const packagesList = packages
150
+ .map((pkg, index) => {
151
+ const registryType = pkg.registryType || 'unknown';
152
+ const transport = formatDetailTransport(pkg.transport) || 'stdio';
153
+ const installCmd = generateInstallCommand(pkg, server.version);
154
+ let packageDetails = ` ${index + 1}. ${chalk.yellow(registryType)} - ${pkg.identifier} ${chalk.gray(`(${transport})`)}
155
+ ${chalk.gray(`Install: ${installCmd}`)}`;
156
+ // Add runtime hint if available
157
+ if (pkg.runtimeHint) {
158
+ packageDetails += `\n ${chalk.blue('Runtime:')} ${pkg.runtimeHint}`;
159
+ }
160
+ // Add file hash if available
161
+ if (pkg.fileSha256) {
162
+ packageDetails += `\n ${chalk.magenta('SHA256:')} ${pkg.fileSha256.substring(0, 16)}...`;
163
+ }
164
+ return packageDetails;
165
+ })
166
+ .join('\n');
167
+ content += `\n\n${chalk.cyan.bold('Packages:')} ${chalk.gray(`(${packages.length})`)}
168
+ ${packagesList}`;
169
+ // Add environment variables if any packages have them
170
+ const allEnvVars = packages.flatMap((pkg) => pkg.environmentVariables || []);
171
+ if (allEnvVars.length > 0) {
172
+ const envVarsList = allEnvVars
173
+ .map((envVar, index) => {
174
+ const required = envVar.isRequired ? chalk.red('*') : '';
175
+ const secret = envVar.isSecret ? chalk.yellow('🔒') : '';
176
+ const defaultVal = envVar.default ? chalk.gray(` (default: ${envVar.default})`) : '';
177
+ const description = envVar.description ? ` - ${envVar.description}` : '';
178
+ return ` ${index + 1}. ${envVar.value || 'ENV_VAR'}${required}${secret}${defaultVal}${description}`;
179
+ })
180
+ .join('\n');
181
+ content += `\n\n${chalk.cyan.bold('Environment Variables:')} ${chalk.gray(`(${allEnvVars.length})`)}
182
+ ${envVarsList}`;
183
+ }
184
+ // Add package arguments if any packages have them
185
+ const allPackageArgs = packages.flatMap((pkg) => pkg.packageArguments || []);
186
+ const allRuntimeArgs = packages.flatMap((pkg) => pkg.runtimeArguments || []);
187
+ if (allPackageArgs.length > 0) {
188
+ const packageArgsList = allPackageArgs
189
+ .map((arg, index) => {
190
+ const required = arg.isRequired ? chalk.red('*') : '';
191
+ const secret = arg.isSecret ? chalk.yellow('🔒') : '';
192
+ const repeated = arg.isRepeated ? chalk.blue('[]') : '';
193
+ const defaultVal = arg.default ? chalk.gray(` (default: ${arg.default})`) : '';
194
+ const type = arg.type ? chalk.magenta(`<${arg.type}>`) : '';
195
+ const description = arg.description ? ` - ${arg.description}` : '';
196
+ return ` ${index + 1}. ${arg.name || 'arg'}${required}${secret}${repeated} ${type}${defaultVal}${description}`;
197
+ })
198
+ .join('\n');
199
+ content += `\n\n${chalk.cyan.bold('Package Arguments:')} ${chalk.gray(`(${allPackageArgs.length})`)}
200
+ ${packageArgsList}`;
201
+ }
202
+ if (allRuntimeArgs.length > 0) {
203
+ const runtimeArgsList = allRuntimeArgs
204
+ .map((arg, index) => {
205
+ const required = arg.isRequired ? chalk.red('*') : '';
206
+ const secret = arg.isSecret ? chalk.yellow('🔒') : '';
207
+ const repeated = arg.isRepeated ? chalk.blue('[]') : '';
208
+ const defaultVal = arg.default ? chalk.gray(` (default: ${arg.default})`) : '';
209
+ const type = arg.type ? chalk.magenta(`<${arg.type}>`) : '';
210
+ const hint = arg.valueHint ? chalk.cyan(` (hint: ${arg.valueHint})`) : '';
211
+ const description = arg.description ? ` - ${arg.description}` : '';
212
+ return ` ${index + 1}. ${arg.name || 'arg'}${required}${secret}${repeated} ${type}${defaultVal}${hint}${description}`;
213
+ })
214
+ .join('\n');
215
+ content += `\n\n${chalk.cyan.bold('Runtime Arguments:')} ${chalk.gray(`(${allRuntimeArgs.length})`)}
216
+ ${runtimeArgsList}`;
217
+ }
218
+ }
219
+ // Enhanced remotes section
220
+ const remotes = server.remotes || [];
221
+ if (remotes.length > 0) {
222
+ const remotesList = remotes
223
+ .map((remote, index) => {
224
+ let remoteDetails = ` ${index + 1}. ${chalk.yellow(remote.type)} - ${remote.url}`;
225
+ // Add headers if available
226
+ if (remote.headers && remote.headers.length > 0) {
227
+ const headersList = remote.headers
228
+ .map((header) => {
229
+ const description = header.description ? ` (${header.description})` : '';
230
+ const required = header.isRequired ? chalk.red('*') : '';
231
+ const secret = header.isSecret ? chalk.yellow('🔒') : '';
232
+ return ` ${header.value || 'header'}${required}${secret}${description}`;
233
+ })
234
+ .join('\n');
235
+ remoteDetails += `\n ${chalk.cyan('Headers:')}\n${headersList}`;
236
+ }
237
+ return remoteDetails;
238
+ })
239
+ .join('\n');
240
+ content += `\n\n${chalk.cyan.bold('Remote Endpoints:')} ${chalk.gray(`(${remotes.length})`)}
241
+ ${remotesList}`;
242
+ }
243
+ // Enhanced registry and metadata info
244
+ const metaInfo = [
245
+ `${chalk.cyan('Registry ID:')} ${meta.serverId}`,
246
+ `${chalk.cyan('Version ID:')} ${meta.versionId}`,
247
+ ].filter(Boolean);
248
+ content += `\n\n${chalk.cyan.bold('Registry Information:')}
249
+ ${metaInfo.join('\n ')}`;
250
+ // MCP Usage Instructions section
251
+ content += `\n\n${chalk.cyan.bold('MCP Usage Instructions:')}
252
+ ${chalk.gray('• Add to your MCP client configuration')}
253
+ ${chalk.gray('• Use with 1MCP proxy for multiple server management')}
254
+ ${chalk.gray('• Check transport compatibility with your client')}`;
255
+ // Additional package information if available
256
+ const packageInfo = [];
257
+ if (packages.length > 0) {
258
+ const registryTypes = [...new Set(packages.map((p) => p.registryType).filter(Boolean))];
259
+ const transports = [...new Set(packages.map((p) => formatDetailTransport(p.transport)).filter(Boolean))];
260
+ if (registryTypes.length > 0) {
261
+ packageInfo.push(`${chalk.cyan('Registry Types:')} ${registryTypes.join(', ')}`);
262
+ }
263
+ if (transports.length > 0) {
264
+ packageInfo.push(`${chalk.cyan('Transport Types:')} ${transports.join(', ')}`);
265
+ }
266
+ }
267
+ if (packageInfo.length > 0) {
268
+ content += `\n\n${chalk.cyan.bold('Package Information:')}
269
+ ${packageInfo.join('\n ')}`;
270
+ }
271
+ return boxen(content, {
272
+ padding: 1,
273
+ margin: 1,
274
+ borderStyle: 'round',
275
+ borderColor: 'cyan',
276
+ });
277
+ }
278
+ /**
279
+ * Generate installation command based on package type
280
+ */
281
+ function generateInstallCommand(pkg, version) {
282
+ const registryType = pkg.registryType;
283
+ const identifier = pkg.identifier;
284
+ const pkgVersion = pkg.version || version;
285
+ switch (registryType) {
286
+ case 'npm':
287
+ return `npm install ${identifier}@${pkgVersion}`;
288
+ case 'pypi':
289
+ return `pip install ${identifier}==${pkgVersion}`;
290
+ case 'docker':
291
+ return `docker pull ${identifier}:${pkgVersion}`;
292
+ default:
293
+ return `${registryType}: ${identifier}@${pkgVersion}`;
294
+ }
295
+ }
296
+ /**
297
+ * Format transport value to handle objects and undefined values for detailed display
298
+ */
299
+ function formatDetailTransport(transport) {
300
+ if (!transport)
301
+ return '';
302
+ if (typeof transport === 'string')
303
+ return transport;
304
+ if (typeof transport === 'object') {
305
+ // Handle case where transport is an object
306
+ return transport.type || String(transport);
307
+ }
308
+ return String(transport);
309
+ }
310
+ //# sourceMappingURL=serverDetailFormatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serverDetailFormatter.js","sourceRoot":"","sources":["../../../../src/domains/registry/formatters/serverDetailFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,GAKtB,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEvE;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAsB,EAAE,SAAuB,OAAO;IACxF,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACzC,KAAK,UAAU;YACb,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACtC,KAAK,OAAO,CAAC;QACb;YACE,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,MAAsB;IAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAEjD,MAAM,SAAS,GAA2B;QACxC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG;QACvC,mBAAmB,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM;KAC9C,CAAC;IAEF,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAChC,SAAS,CAAC,sBAAsB,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;IAClE,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;IACvC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,SAAS,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxD,SAAS,CAAC,gBAAgB,CAAC;YACzB,QAAQ;iBACL,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;iBAC1B,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;QAC7B,SAAS,CAAC,iBAAiB,CAAC;YAC1B,QAAQ;iBACL,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;iBAC9C,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC;IAC7B,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACrC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,SAAS,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC1D,SAAS,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,SAAS,CAAC,cAAc,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzD,SAAS,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrD,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACtD,SAAS,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;IAEzC,IAAI,MAAM,GAAG,qBAAqB,CAAC;IACnC,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAE3B,kCAAkC;IAClC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,eAAe,CAAC;QAC1B,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAChD,KAAK,EAAE,KAAK,GAAG,CAAC;YAChB,eAAe,EAAE,GAAG,CAAC,YAAY,IAAI,SAAS;YAC9C,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO;YACtC,SAAS,EAAE,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,OAAO;YAC1D,OAAO,EAAE,GAAG,CAAC,WAAW,IAAI,KAAK;YACjC,UAAU,EAAE,CAAC,GAAG,CAAC,oBAAoB,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM;YACnG,IAAI,EAAE,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM;SAC1F,CAAC,CAAC,CAAC;QACJ,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC7B,CAAC;IAED,+CAA+C;IAC/C,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;IAC7E,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,4BAA4B,CAAC;QACvC,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACpD,KAAK,EAAE,KAAK,GAAG,CAAC;YAChB,IAAI,EAAE,MAAM,CAAC,KAAK,IAAI,SAAS;YAC/B,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;YAC1C,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;YACtC,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK;YAChC,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,KAAK;SACzC,CAAC,CAAC,CAAC;QACJ,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IAED,mCAAmC;IACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;QACxC,GAAG,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC3E,GAAG,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;KAC5E,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,gBAAgB,CAAC;QAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAC3C,KAAK,EAAE,KAAK,GAAG,CAAC;YAChB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,KAAK;YACvB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,KAAK;YACvB,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;YACvC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;YACnC,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;YACvC,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,KAAK;YAC7B,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,KAAK;SACtC,CAAC,CAAC,CAAC;QACJ,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,iCAAiC;IACjC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,uBAAuB,CAAC;QAClC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACjD,KAAK,EAAE,KAAK,GAAG,CAAC;YAChB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM;SAC7E,CAAC,CAAC,CAAC;QACJ,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,MAAsB;IAClD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAEjD,0BAA0B;IAC1B,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7G,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAEhF,mCAAmC;IACnC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,GAAG,GAAG,WAAW,CAAC;IAE1G,uCAAuC;IACvC,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAEpD,8BAA8B;IAC9B,MAAM,SAAS,GAAG;QAChB,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;QACvD,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE;QACtD,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE;QAC/F,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE;QACzE,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;QACrE,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;QACjE,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;KAC9F;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,IAAI,OAAO,GAAG,GAAG,MAAM,OAAO,WAAW,OAAO,SAAS,EAAE,CAAC;IAE5D,2DAA2D;IAC3D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;IACvC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,YAAY,GAAG,QAAQ;aAC1B,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAClB,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,IAAI,SAAS,CAAC;YACnD,MAAM,SAAS,GAAG,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC;YAClE,MAAM,UAAU,GAAG,sBAAsB,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAC/D,IAAI,cAAc,GAAG,KAAK,KAAK,GAAG,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS,GAAG,CAAC;OACvH,KAAK,CAAC,IAAI,CAAC,YAAY,UAAU,EAAE,CAAC,EAAE,CAAC;YAEtC,gCAAgC;YAChC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;gBACpB,cAAc,IAAI,UAAU,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YAC1E,CAAC;YAED,6BAA6B;YAC7B,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;gBACnB,cAAc,IAAI,UAAU,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC;YAC/F,CAAC;YAED,OAAO,cAAc,CAAC;QACxB,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;EACtF,YAAY,EAAE,CAAC;QAEb,sDAAsD;QACtD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;QAC7E,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,WAAW,GAAG,UAAU;iBAC3B,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBACrB,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrF,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzE,OAAO,KAAK,KAAK,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,IAAI,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,EAAE,CAAC;YACvG,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,OAAO,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;EACvG,WAAW,EAAE,CAAC;QACZ,CAAC;QAED,kDAAkD;QAClD,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;QAC7E,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;QAE7E,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,eAAe,GAAG,cAAc;iBACnC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBAClB,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtD,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtD,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/E,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5D,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnE,OAAO,KAAK,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,IAAI,IAAI,GAAG,UAAU,GAAG,WAAW,EAAE,CAAC;YAClH,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,OAAO,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC;EACvG,eAAe,EAAE,CAAC;QAChB,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,eAAe,GAAG,cAAc;iBACnC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBAClB,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtD,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtD,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/E,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5D,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1E,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnE,OAAO,KAAK,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,IAAI,IAAI,GAAG,UAAU,GAAG,IAAI,GAAG,WAAW,EAAE,CAAC;YACzH,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,OAAO,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC;EACvG,eAAe,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACrC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,WAAW,GAAG,OAAO;aACxB,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACrB,IAAI,aAAa,GAAG,KAAK,KAAK,GAAG,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;YAEnF,2BAA2B;YAC3B,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO;qBAC/B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;oBACd,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzE,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzD,OAAO,UAAU,MAAM,CAAC,KAAK,IAAI,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,EAAE,CAAC;gBAChF,CAAC,CAAC;qBACD,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,aAAa,IAAI,UAAU,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,WAAW,EAAE,CAAC;YACtE,CAAC;YAED,OAAO,aAAa,CAAC;QACvB,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;EAC7F,WAAW,EAAE,CAAC;IACd,CAAC;IAED,sCAAsC;IACtC,MAAM,QAAQ,GAAG;QACf,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;QAChD,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE;KACjD,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAElB,OAAO,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC;IACxD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IAE1B,iCAAiC;IACjC,OAAO,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC;IAC1D,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC;IACpD,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC;IAClE,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,EAAE,CAAC;IAEnE,8CAA8C;IAC9C,MAAM,WAAW,GAAG,EAAE,CAAC;IACvB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACxF,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAEzG,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,WAAW,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,WAAW,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC;IACzD,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IAC7B,CAAC;IAED,OAAO,KAAK,CAAC,OAAO,EAAE;QACpB,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,CAAC;QACT,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,MAAM;KACpB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAC,GAAkB,EAAE,OAAe;IACjE,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;IACtC,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;IAClC,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;IAE1C,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,KAAK;YACR,OAAO,eAAe,UAAU,IAAI,UAAU,EAAE,CAAC;QACnD,KAAK,MAAM;YACT,OAAO,eAAe,UAAU,KAAK,UAAU,EAAE,CAAC;QACpD,KAAK,QAAQ;YACX,OAAO,eAAe,UAAU,IAAI,UAAU,EAAE,CAAC;QACnD;YACE,OAAO,GAAG,YAAY,KAAK,UAAU,IAAI,UAAU,EAAE,CAAC;IAC1D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,SAAqB;IAClD,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAC1B,IAAI,OAAO,SAAS,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACpD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,2CAA2C;QAC3C,OAAO,SAAS,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { OutputFormat, ServerVersionsResponse } from '../../../domains/registry/types.js';
2
+ /**
3
+ * Format server versions for display
4
+ */
5
+ export declare function formatServerVersions(versionsResponse: ServerVersionsResponse, format?: OutputFormat): string;
6
+ //# sourceMappingURL=versionsFormatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versionsFormatter.d.ts","sourceRoot":"","sources":["../../../../src/domains/registry/formatters/versionsFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAOtF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,GAAE,YAAsB,GAAG,MAAM,CAUrH"}
@@ -0,0 +1,84 @@
1
+ import boxen from 'boxen';
2
+ import chalk from 'chalk';
3
+ import { formatDate, formatRelativeDate } from './commonFormatters.js';
4
+ /**
5
+ * Format server versions for display
6
+ */
7
+ export function formatServerVersions(versionsResponse, format = 'table') {
8
+ switch (format) {
9
+ case 'json':
10
+ return JSON.stringify(versionsResponse, null, 2);
11
+ case 'detailed':
12
+ return formatDetailedVersions(versionsResponse);
13
+ case 'table':
14
+ default:
15
+ return formatTableVersions(versionsResponse);
16
+ }
17
+ }
18
+ /**
19
+ * Format versions as table
20
+ */
21
+ function formatTableVersions(versionsResponse) {
22
+ const { versions, name } = versionsResponse;
23
+ if (versions.length === 0) {
24
+ return `\nNo versions found for server: ${name}\n`;
25
+ }
26
+ // Sort versions by publishedAt descending (newest first)
27
+ const sortedVersions = [...versions].sort((a, b) => new Date(b.publishedAt).getTime() - new Date(a.publishedAt).getTime());
28
+ const tableData = sortedVersions.map((version) => ({
29
+ Version: version.version,
30
+ Status: version.status,
31
+ Latest: version.isLatest ? 'Yes' : 'No',
32
+ Published: formatDate(version.publishedAt),
33
+ Updated: formatDate(version.updatedAt),
34
+ }));
35
+ let result = `\nVersions for ${name} (${versions.length} total):\n`;
36
+ console.table(tableData);
37
+ return result;
38
+ }
39
+ /**
40
+ * Format versions with enhanced detailed display
41
+ */
42
+ function formatDetailedVersions(versionsResponse) {
43
+ const { versions, name, serverId } = versionsResponse;
44
+ if (versions.length === 0) {
45
+ return chalk.yellow(`No versions found for server: ${name}`);
46
+ }
47
+ // Sort versions by publishedAt descending (newest first)
48
+ const sortedVersions = [...versions].sort((a, b) => new Date(b.publishedAt).getTime() - new Date(a.publishedAt).getTime());
49
+ // Header
50
+ const versionText = versions.length === 1 ? 'version' : 'versions';
51
+ const header = chalk.cyan.bold(name) + chalk.gray(` (${versions.length} ${versionText})`);
52
+ // Version list
53
+ const versionsList = sortedVersions
54
+ .map((version, index) => {
55
+ const statusColor = version.status === 'active' ? 'green' : version.status === 'deprecated' ? 'yellow' : 'red';
56
+ const statusBadge = chalk[statusColor](`● ${version.status}`);
57
+ const latestBadge = version.isLatest ? chalk.yellow.bold(' [LATEST]') : '';
58
+ const versionNumber = chalk.white.bold(version.version);
59
+ const publishedDate = chalk.gray(`Published: ${formatRelativeDate(version.publishedAt)}`);
60
+ const updatedDate = version.updatedAt !== version.publishedAt
61
+ ? chalk.gray(`Updated: ${formatRelativeDate(version.updatedAt)}`)
62
+ : '';
63
+ return ` ${chalk.gray(`${index + 1}.`)} ${versionNumber}${latestBadge} ${statusBadge}
64
+ ${publishedDate}
65
+ ${updatedDate}`
66
+ .split('\n')
67
+ .filter((line) => line.trim())
68
+ .join('\n');
69
+ })
70
+ .join('\n\n');
71
+ const content = `${header}\n\n${versionsList}`;
72
+ // Add server info at bottom
73
+ const serverInfo = `\n${chalk.cyan.bold('Server Information:')}
74
+ ${chalk.cyan('Server ID:')} ${serverId}
75
+ ${chalk.cyan('Active Versions:')} ${sortedVersions.filter((v) => v.status === 'active').length}
76
+ ${chalk.cyan('Deprecated Versions:')} ${sortedVersions.filter((v) => v.status === 'deprecated').length}`;
77
+ return boxen(content + serverInfo, {
78
+ padding: 1,
79
+ margin: 1,
80
+ borderStyle: 'round',
81
+ borderColor: 'cyan',
82
+ });
83
+ }
84
+ //# sourceMappingURL=versionsFormatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versionsFormatter.js","sourceRoot":"","sources":["../../../../src/domains/registry/formatters/versionsFormatter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ import { RegistryClientOptions, RegistryOptions, RegistryServer, RegistryStatusResult, SearchOptions, ServerListOptions, ServersListResponse, ServerVersionsResponse } from './types.js';
2
+ /**
3
+ * HTTP client for the MCP Registry API
4
+ * https://registry.modelcontextprotocol.io/docs
5
+ * https://registry.modelcontextprotocol.io/openapi.yaml
6
+ */
7
+ export declare class MCPRegistryClient {
8
+ private baseUrl;
9
+ private timeout;
10
+ private cache;
11
+ private proxyConfig?;
12
+ private axiosInstance;
13
+ constructor(options: RegistryClientOptions);
14
+ /**
15
+ * Get servers from the registry with optional filtering
16
+ */
17
+ getServers(options?: ServerListOptions): Promise<RegistryServer[]>;
18
+ /**
19
+ * Get servers from the registry with full response metadata (including pagination)
20
+ */
21
+ getServersWithMetadata(options?: ServerListOptions): Promise<ServersListResponse>;
22
+ /**
23
+ * Get a specific server by ID
24
+ */
25
+ getServerById(id: string, version?: string): Promise<RegistryServer>;
26
+ /**
27
+ * Get all versions for a specific server
28
+ */
29
+ getServerVersions(id: string): Promise<ServerVersionsResponse>;
30
+ /**
31
+ * Search servers with advanced filtering
32
+ */
33
+ searchServers(searchOptions: SearchOptions): Promise<RegistryServer[]>;
34
+ /**
35
+ * Get registry status and statistics
36
+ */
37
+ getRegistryStatus(includeStats?: boolean): Promise<RegistryStatusResult>;
38
+ /**
39
+ * Invalidate cache for specific patterns
40
+ */
41
+ invalidateCache(pattern?: string): Promise<void>;
42
+ /**
43
+ * Get cache statistics
44
+ */
45
+ getCacheStats(): {
46
+ totalEntries: number;
47
+ validEntries: number;
48
+ expiredEntries: number;
49
+ maxSize: number;
50
+ hitRatio: number;
51
+ };
52
+ /**
53
+ * Clean up resources
54
+ */
55
+ destroy(): void;
56
+ /**
57
+ * Generic cache wrapper that handles the cache-check-call-store pattern
58
+ */
59
+ private withCache;
60
+ /**
61
+ * Get all servers using pagination to handle large result sets
62
+ */
63
+ private getAllServersWithPagination;
64
+ /**
65
+ * Create axios instance with timeout and proxy support
66
+ */
67
+ private createAxiosInstance;
68
+ /**
69
+ * Make HTTP request with timeout and proxy support
70
+ */
71
+ private makeRequest;
72
+ /**
73
+ * Get proxy configuration from options or environment
74
+ */
75
+ private getProxyConfig;
76
+ /**
77
+ * Find proxy URL from environment variables
78
+ */
79
+ private findProxyUrlFromEnv;
80
+ /**
81
+ * Parse proxy URL and extract configuration
82
+ */
83
+ private parseProxyUrl;
84
+ /**
85
+ * Build query parameters object from options
86
+ */
87
+ private buildParams;
88
+ /**
89
+ * Build query string from parameters
90
+ */
91
+ private buildQueryString;
92
+ /**
93
+ * Calculate statistics from server list
94
+ */
95
+ private calculateStats;
96
+ }
97
+ /**
98
+ * Create a registry client instance with CLI options or defaults
99
+ */
100
+ export declare function createRegistryClient(cliOptions?: RegistryOptions): MCPRegistryClient;
101
+ //# sourceMappingURL=mcpRegistryClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpRegistryClient.d.ts","sourceRoot":"","sources":["../../../src/domains/registry/mcpRegistryClient.ts"],"names":[],"mappings":"AAOA,OAAO,EAEL,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB;;;;GAIG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAiC;IACrD,OAAO,CAAC,aAAa,CAAgB;gBAEzB,OAAO,EAAE,qBAAqB;IAQ1C;;OAEG;IACG,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAqB5E;;OAEG;IACG,sBAAsB,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAmB3F;;OAEG;IACG,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAwB1E;;OAEG;IACG,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAyCpE;;OAEG;IACG,aAAa,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAuB5E;;OAEG;IACG,iBAAiB,CAAC,YAAY,UAAQ,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA+C5E;;OAEG;IACG,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtD;;OAEG;IACH,aAAa;;;;;;;IAIb;;OAEG;IACH,OAAO,IAAI,IAAI;IAWf;;OAEG;YACW,SAAS;IA2BvB;;OAEG;YACW,2BAA2B;IA8BzC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA8C3B;;OAEG;YACW,WAAW;IAsBzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAatB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;OAEG;IACH,OAAO,CAAC,aAAa;IAoBrB;;OAEG;IACH,OAAO,CAAC,WAAW;IAkBnB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;IACH,OAAO,CAAC,cAAc;CAsCvB;AAgDD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,CAAC,EAAE,eAAe,GAAG,iBAAiB,CAGpF"}