mcp-config-ts 0.3.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 (70) hide show
  1. package/README.md +195 -0
  2. package/dist/__tests__/config/load.test.d.ts +2 -0
  3. package/dist/__tests__/config/load.test.d.ts.map +1 -0
  4. package/dist/__tests__/config/load.test.js +142 -0
  5. package/dist/__tests__/config/load.test.js.map +1 -0
  6. package/dist/__tests__/config/manager.test.d.ts +2 -0
  7. package/dist/__tests__/config/manager.test.d.ts.map +1 -0
  8. package/dist/__tests__/config/manager.test.js +133 -0
  9. package/dist/__tests__/config/manager.test.js.map +1 -0
  10. package/dist/__tests__/config/save.test.d.ts +2 -0
  11. package/dist/__tests__/config/save.test.d.ts.map +1 -0
  12. package/dist/__tests__/config/save.test.js +120 -0
  13. package/dist/__tests__/config/save.test.js.map +1 -0
  14. package/dist/__tests__/fixtures/fixtures.test.d.ts +2 -0
  15. package/dist/__tests__/fixtures/fixtures.test.d.ts.map +1 -0
  16. package/dist/__tests__/fixtures/fixtures.test.js +107 -0
  17. package/dist/__tests__/fixtures/fixtures.test.js.map +1 -0
  18. package/dist/__tests__/types.test.d.ts +2 -0
  19. package/dist/__tests__/types.test.d.ts.map +1 -0
  20. package/dist/__tests__/types.test.js +263 -0
  21. package/dist/__tests__/types.test.js.map +1 -0
  22. package/dist/__tests__/utils/errors.test.d.ts +2 -0
  23. package/dist/__tests__/utils/errors.test.d.ts.map +1 -0
  24. package/dist/__tests__/utils/errors.test.js +198 -0
  25. package/dist/__tests__/utils/errors.test.js.map +1 -0
  26. package/dist/__tests__/validation/validate.test.d.ts +2 -0
  27. package/dist/__tests__/validation/validate.test.d.ts.map +1 -0
  28. package/dist/__tests__/validation/validate.test.js +123 -0
  29. package/dist/__tests__/validation/validate.test.js.map +1 -0
  30. package/dist/config/load.d.ts +3 -0
  31. package/dist/config/load.d.ts.map +1 -0
  32. package/dist/config/load.js +66 -0
  33. package/dist/config/load.js.map +1 -0
  34. package/dist/config/manager.d.ts +3 -0
  35. package/dist/config/manager.d.ts.map +1 -0
  36. package/dist/config/manager.js +58 -0
  37. package/dist/config/manager.js.map +1 -0
  38. package/dist/config/operations.d.ts +6 -0
  39. package/dist/config/operations.d.ts.map +1 -0
  40. package/dist/config/operations.js +26 -0
  41. package/dist/config/operations.js.map +1 -0
  42. package/dist/config/save.d.ts +3 -0
  43. package/dist/config/save.d.ts.map +1 -0
  44. package/dist/config/save.js +40 -0
  45. package/dist/config/save.js.map +1 -0
  46. package/dist/index.d.ts +10 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +28 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/types.d.ts +165 -0
  51. package/dist/types.d.ts.map +1 -0
  52. package/dist/types.js +4 -0
  53. package/dist/types.js.map +1 -0
  54. package/dist/utils/errors.d.ts +40 -0
  55. package/dist/utils/errors.d.ts.map +1 -0
  56. package/dist/utils/errors.js +74 -0
  57. package/dist/utils/errors.js.map +1 -0
  58. package/dist/validation/json-syntax.d.ts +3 -0
  59. package/dist/validation/json-syntax.d.ts.map +1 -0
  60. package/dist/validation/json-syntax.js +44 -0
  61. package/dist/validation/json-syntax.js.map +1 -0
  62. package/dist/validation/schema.d.ts +3 -0
  63. package/dist/validation/schema.d.ts.map +1 -0
  64. package/dist/validation/schema.js +76 -0
  65. package/dist/validation/schema.js.map +1 -0
  66. package/dist/validation/validate.d.ts +5 -0
  67. package/dist/validation/validate.d.ts.map +1 -0
  68. package/dist/validation/validate.js +37 -0
  69. package/dist/validation/validate.js.map +1 -0
  70. package/package.json +34 -0
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ const FIXTURES_DIR = (0, path_1.join)(__dirname);
7
+ function readFixture(name) {
8
+ return (0, fs_1.readFileSync)((0, path_1.join)(FIXTURES_DIR, name), 'utf-8');
9
+ }
10
+ function parseFixture(name) {
11
+ return JSON.parse(readFixture(name));
12
+ }
13
+ (0, vitest_1.describe)('Fixture Files', () => {
14
+ (0, vitest_1.describe)('valid-config.json', () => {
15
+ (0, vitest_1.it)('parses as valid JSON', () => {
16
+ (0, vitest_1.expect)(() => parseFixture('valid-config.json')).not.toThrow();
17
+ });
18
+ (0, vitest_1.it)('has mcpServers key', () => {
19
+ const data = parseFixture('valid-config.json');
20
+ (0, vitest_1.expect)(data).toHaveProperty('mcpServers');
21
+ });
22
+ (0, vitest_1.it)('has exactly 2 server entries', () => {
23
+ const data = parseFixture('valid-config.json');
24
+ (0, vitest_1.expect)(Object.keys(data.mcpServers)).toHaveLength(2);
25
+ });
26
+ (0, vitest_1.it)('contains filesystem and github entries', () => {
27
+ const data = parseFixture('valid-config.json');
28
+ (0, vitest_1.expect)(data.mcpServers).toHaveProperty('filesystem');
29
+ (0, vitest_1.expect)(data.mcpServers).toHaveProperty('github');
30
+ });
31
+ });
32
+ (0, vitest_1.describe)('invalid-json.txt', () => {
33
+ (0, vitest_1.it)('is readable and not empty', () => {
34
+ const content = readFixture('invalid-json.txt');
35
+ (0, vitest_1.expect)(content).toBeTruthy();
36
+ (0, vitest_1.expect)(content.length).toBeGreaterThan(0);
37
+ });
38
+ (0, vitest_1.it)('is not valid JSON', () => {
39
+ const content = readFixture('invalid-json.txt');
40
+ (0, vitest_1.expect)(() => JSON.parse(content)).toThrow(SyntaxError);
41
+ });
42
+ });
43
+ (0, vitest_1.describe)('missing-mcpservers.json', () => {
44
+ (0, vitest_1.it)('parses as valid JSON', () => {
45
+ (0, vitest_1.expect)(() => parseFixture('missing-mcpservers.json')).not.toThrow();
46
+ });
47
+ (0, vitest_1.it)('lacks mcpServers key', () => {
48
+ const data = parseFixture('missing-mcpservers.json');
49
+ (0, vitest_1.expect)(data).not.toHaveProperty('mcpServers');
50
+ });
51
+ (0, vitest_1.it)('has other keys', () => {
52
+ const data = parseFixture('missing-mcpservers.json');
53
+ (0, vitest_1.expect)(data).toHaveProperty('other');
54
+ });
55
+ });
56
+ (0, vitest_1.describe)('mixed-transport.json', () => {
57
+ (0, vitest_1.it)('parses as valid JSON', () => {
58
+ (0, vitest_1.expect)(() => parseFixture('mixed-transport.json')).not.toThrow();
59
+ });
60
+ (0, vitest_1.it)('has a stdio entry (local) with command', () => {
61
+ const data = parseFixture('mixed-transport.json');
62
+ (0, vitest_1.expect)(data.mcpServers.local).toHaveProperty('command');
63
+ (0, vitest_1.expect)(data.mcpServers.local.command).toBe('node');
64
+ });
65
+ (0, vitest_1.it)('has an http entry (remote) with url', () => {
66
+ const data = parseFixture('mixed-transport.json');
67
+ (0, vitest_1.expect)(data.mcpServers.remote).toHaveProperty('url');
68
+ (0, vitest_1.expect)(data.mcpServers.remote.url).toBe('https://mcp.example.com/api');
69
+ });
70
+ });
71
+ (0, vitest_1.describe)('placeholder-env.json', () => {
72
+ (0, vitest_1.it)('parses as valid JSON', () => {
73
+ (0, vitest_1.expect)(() => parseFixture('placeholder-env.json')).not.toThrow();
74
+ });
75
+ (0, vitest_1.it)('has ${...} placeholder values in env', () => {
76
+ const data = parseFixture('placeholder-env.json');
77
+ const env = data.mcpServers.service.env;
78
+ (0, vitest_1.expect)(env.API_KEY).toMatch(/^\$\{.+\}$/);
79
+ (0, vitest_1.expect)(env.SECRET).toMatch(/^\$\{.+\}$/);
80
+ });
81
+ (0, vitest_1.it)('API_KEY placeholder is ${API_KEY}', () => {
82
+ const data = parseFixture('placeholder-env.json');
83
+ (0, vitest_1.expect)(data.mcpServers.service.env.API_KEY).toBe('${API_KEY}');
84
+ });
85
+ });
86
+ (0, vitest_1.describe)('claude-desktop-config.json', () => {
87
+ (0, vitest_1.it)('parses as valid JSON', () => {
88
+ (0, vitest_1.expect)(() => parseFixture('claude-desktop-config.json')).not.toThrow();
89
+ });
90
+ (0, vitest_1.it)('has mcpServers key', () => {
91
+ const data = parseFixture('claude-desktop-config.json');
92
+ (0, vitest_1.expect)(data).toHaveProperty('mcpServers');
93
+ });
94
+ (0, vitest_1.it)('has claude-filesystem entry', () => {
95
+ const data = parseFixture('claude-desktop-config.json');
96
+ (0, vitest_1.expect)(data.mcpServers).toHaveProperty('claude-filesystem');
97
+ });
98
+ (0, vitest_1.it)('claude-filesystem entry has expected command and args', () => {
99
+ const data = parseFixture('claude-desktop-config.json');
100
+ const entry = data.mcpServers['claude-filesystem'];
101
+ (0, vitest_1.expect)(entry.command).toBe('npx');
102
+ (0, vitest_1.expect)(entry.args).toContain('@modelcontextprotocol/server-filesystem');
103
+ (0, vitest_1.expect)(entry.disabled).toBe(false);
104
+ });
105
+ });
106
+ });
107
+ //# sourceMappingURL=fixtures.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixtures.test.js","sourceRoot":"","sources":["../../../src/__tests__/fixtures/fixtures.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/types.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,263 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ (0, vitest_1.describe)('Type Definitions', () => {
5
+ (0, vitest_1.describe)('StdioServerEntry', () => {
6
+ (0, vitest_1.it)('requires only command and type', () => {
7
+ const entry = { type: 'stdio', command: 'npx' };
8
+ (0, vitest_1.expect)(entry.command).toBe('npx');
9
+ (0, vitest_1.expect)(entry.type).toBe('stdio');
10
+ });
11
+ (0, vitest_1.it)('accepts all optional fields', () => {
12
+ const entry = {
13
+ type: 'stdio',
14
+ command: 'node',
15
+ args: ['server.js'],
16
+ env: { API_KEY: 'abc' },
17
+ cwd: '/tmp',
18
+ disabled: false,
19
+ };
20
+ (0, vitest_1.expect)(entry.args).toEqual(['server.js']);
21
+ (0, vitest_1.expect)(entry.env).toEqual({ API_KEY: 'abc' });
22
+ (0, vitest_1.expect)(entry.cwd).toBe('/tmp');
23
+ (0, vitest_1.expect)(entry.disabled).toBe(false);
24
+ });
25
+ });
26
+ (0, vitest_1.describe)('HttpServerEntry', () => {
27
+ (0, vitest_1.it)('requires only url and type', () => {
28
+ const entry = { type: 'http', url: 'https://mcp.example.com' };
29
+ (0, vitest_1.expect)(entry.url).toBe('https://mcp.example.com');
30
+ (0, vitest_1.expect)(entry.type).toBe('http');
31
+ });
32
+ (0, vitest_1.it)('accepts optional headers and disabled', () => {
33
+ const entry = {
34
+ type: 'http',
35
+ url: 'https://mcp.example.com',
36
+ headers: { Authorization: 'Bearer token' },
37
+ disabled: true,
38
+ };
39
+ (0, vitest_1.expect)(entry.headers).toEqual({ Authorization: 'Bearer token' });
40
+ (0, vitest_1.expect)(entry.disabled).toBe(true);
41
+ });
42
+ });
43
+ (0, vitest_1.describe)('ServerEntry union type', () => {
44
+ (0, vitest_1.it)('accepts StdioServerEntry', () => {
45
+ const entry = { type: 'stdio', command: 'npx' };
46
+ (0, vitest_1.expect)(entry.type).toBe('stdio');
47
+ });
48
+ (0, vitest_1.it)('accepts HttpServerEntry', () => {
49
+ const entry = { type: 'http', url: 'https://example.com' };
50
+ (0, vitest_1.expect)(entry.type).toBe('http');
51
+ });
52
+ });
53
+ (0, vitest_1.describe)('MCPConfig', () => {
54
+ (0, vitest_1.it)('requires servers and filePath', () => {
55
+ const config = {
56
+ servers: {},
57
+ filePath: '/tmp/.mcp.json',
58
+ };
59
+ (0, vitest_1.expect)(config.servers).toEqual({});
60
+ (0, vitest_1.expect)(config.filePath).toBe('/tmp/.mcp.json');
61
+ });
62
+ (0, vitest_1.it)('accepts _otherKeys', () => {
63
+ const config = {
64
+ servers: {},
65
+ filePath: '/tmp/.mcp.json',
66
+ _otherKeys: { someOtherSetting: true },
67
+ };
68
+ (0, vitest_1.expect)(config._otherKeys).toEqual({ someOtherSetting: true });
69
+ });
70
+ (0, vitest_1.it)('servers map contains ServerEntry values', () => {
71
+ const config = {
72
+ servers: {
73
+ github: { type: 'stdio', command: 'npx', args: ['-y', '@modelcontextprotocol/server-github'] },
74
+ remote: { type: 'http', url: 'https://mcp.example.com' },
75
+ },
76
+ filePath: '.mcp.json',
77
+ };
78
+ (0, vitest_1.expect)(Object.keys(config.servers)).toHaveLength(2);
79
+ });
80
+ });
81
+ (0, vitest_1.describe)('ValidationCheck', () => {
82
+ (0, vitest_1.it)('has required fields id, severity, passed, message', () => {
83
+ const check = {
84
+ id: 'json-syntax',
85
+ severity: 'error',
86
+ passed: true,
87
+ message: 'JSON is valid',
88
+ };
89
+ (0, vitest_1.expect)(check.id).toBe('json-syntax');
90
+ (0, vitest_1.expect)(check.severity).toBe('error');
91
+ (0, vitest_1.expect)(check.passed).toBe(true);
92
+ });
93
+ (0, vitest_1.it)('severity is constrained to error | warning', () => {
94
+ const warnCheck = {
95
+ id: 'placeholder-env',
96
+ severity: 'warning',
97
+ passed: false,
98
+ message: 'Placeholder value detected',
99
+ serverName: 'github',
100
+ suggestion: 'Replace ${GITHUB_TOKEN} with actual value',
101
+ };
102
+ (0, vitest_1.expect)(warnCheck.severity).toBe('warning');
103
+ (0, vitest_1.expect)(warnCheck.serverName).toBe('github');
104
+ });
105
+ });
106
+ (0, vitest_1.describe)('ValidationResult', () => {
107
+ (0, vitest_1.it)('has valid, configPath, checks, summary, completenessScore', () => {
108
+ const result = {
109
+ valid: true,
110
+ configPath: '.mcp.json',
111
+ checks: [],
112
+ summary: { total: 0, passed: 0, failed: 0, warnings: 0 },
113
+ completenessScore: 100,
114
+ };
115
+ (0, vitest_1.expect)(result.valid).toBe(true);
116
+ (0, vitest_1.expect)(result.configPath).toBe('.mcp.json');
117
+ (0, vitest_1.expect)(result.checks).toEqual([]);
118
+ (0, vitest_1.expect)(result.summary.total).toBe(0);
119
+ (0, vitest_1.expect)(result.completenessScore).toBe(100);
120
+ });
121
+ });
122
+ (0, vitest_1.describe)('SyncOptions', () => {
123
+ (0, vitest_1.it)('requires source, target, conflictStrategy, dryRun', () => {
124
+ const opts = {
125
+ source: 'claude-desktop',
126
+ target: '.mcp.json',
127
+ conflictStrategy: 'skip',
128
+ dryRun: false,
129
+ };
130
+ (0, vitest_1.expect)(opts.source).toBe('claude-desktop');
131
+ (0, vitest_1.expect)(opts.conflictStrategy).toBe('skip');
132
+ (0, vitest_1.expect)(opts.dryRun).toBe(false);
133
+ });
134
+ (0, vitest_1.it)('conflictStrategy accepts all three values', () => {
135
+ const skip = 'skip';
136
+ const overwrite = 'overwrite';
137
+ const mergeEnv = 'merge-env';
138
+ (0, vitest_1.expect)(skip).toBe('skip');
139
+ (0, vitest_1.expect)(overwrite).toBe('overwrite');
140
+ (0, vitest_1.expect)(mergeEnv).toBe('merge-env');
141
+ });
142
+ });
143
+ (0, vitest_1.describe)('SyncResult', () => {
144
+ (0, vitest_1.it)('has all 5 required array/scalar fields plus errors and changed', () => {
145
+ const result = {
146
+ sourcePath: '/source/.mcp.json',
147
+ targetPath: '/target/.mcp.json',
148
+ added: ['github'],
149
+ updated: [],
150
+ skipped: ['filesystem'],
151
+ errors: [],
152
+ changed: true,
153
+ };
154
+ (0, vitest_1.expect)(result.added).toEqual(['github']);
155
+ (0, vitest_1.expect)(result.updated).toEqual([]);
156
+ (0, vitest_1.expect)(result.skipped).toEqual(['filesystem']);
157
+ (0, vitest_1.expect)(result.errors).toEqual([]);
158
+ (0, vitest_1.expect)(result.changed).toBe(true);
159
+ });
160
+ (0, vitest_1.it)('errors array contains serverName and error fields', () => {
161
+ const result = {
162
+ sourcePath: 'a',
163
+ targetPath: 'b',
164
+ added: [],
165
+ updated: [],
166
+ skipped: [],
167
+ errors: [{ serverName: 'badserver', error: 'parse failed' }],
168
+ changed: false,
169
+ };
170
+ (0, vitest_1.expect)(result.errors[0].serverName).toBe('badserver');
171
+ (0, vitest_1.expect)(result.errors[0].error).toBe('parse failed');
172
+ });
173
+ });
174
+ (0, vitest_1.describe)('ServerInfo', () => {
175
+ (0, vitest_1.it)('has name, description, npmPackage, category, source fields', () => {
176
+ const info = {
177
+ name: 'github',
178
+ description: 'GitHub API server',
179
+ npmPackage: '@modelcontextprotocol/server-github',
180
+ category: 'official',
181
+ requiredEnvVars: [{ name: 'GITHUB_TOKEN', description: 'PAT', sensitive: true }],
182
+ source: 'registry',
183
+ };
184
+ (0, vitest_1.expect)(info.name).toBe('github');
185
+ (0, vitest_1.expect)(info.source).toBe('registry');
186
+ });
187
+ (0, vitest_1.it)('source is constrained to registry | npm', () => {
188
+ const fromRegistry = 'registry';
189
+ const fromNpm = 'npm';
190
+ (0, vitest_1.expect)(fromRegistry).toBe('registry');
191
+ (0, vitest_1.expect)(fromNpm).toBe('npm');
192
+ });
193
+ });
194
+ (0, vitest_1.describe)('ManagerOptions', () => {
195
+ (0, vitest_1.it)('all fields are optional', () => {
196
+ const opts = {};
197
+ (0, vitest_1.expect)(opts.configPath).toBeUndefined();
198
+ (0, vitest_1.expect)(opts.validationLevel).toBeUndefined();
199
+ });
200
+ (0, vitest_1.it)('accepts configPath and validationLevel', () => {
201
+ const opts = { configPath: '.mcp.json', validationLevel: 3 };
202
+ (0, vitest_1.expect)(opts.configPath).toBe('.mcp.json');
203
+ (0, vitest_1.expect)(opts.validationLevel).toBe(3);
204
+ });
205
+ });
206
+ (0, vitest_1.describe)('DiscoverOptions', () => {
207
+ (0, vitest_1.it)('all fields are optional', () => {
208
+ const opts = {};
209
+ (0, vitest_1.expect)(opts.searchNpm).toBeUndefined();
210
+ (0, vitest_1.expect)(opts.limit).toBeUndefined();
211
+ });
212
+ (0, vitest_1.it)('accepts searchNpm and limit', () => {
213
+ const opts = { searchNpm: true, limit: 10 };
214
+ (0, vitest_1.expect)(opts.searchNpm).toBe(true);
215
+ (0, vitest_1.expect)(opts.limit).toBe(10);
216
+ });
217
+ });
218
+ (0, vitest_1.describe)('ConfigManager interface', () => {
219
+ (0, vitest_1.it)('can be implemented by a mock', async () => {
220
+ const mockConfig = { servers: {}, filePath: '.mcp.json' };
221
+ const mockValidationResult = {
222
+ valid: true,
223
+ configPath: '.mcp.json',
224
+ checks: [],
225
+ summary: { total: 0, passed: 0, failed: 0, warnings: 0 },
226
+ completenessScore: 100,
227
+ };
228
+ const manager = {
229
+ load: async () => { },
230
+ save: async () => { },
231
+ getConfig: () => mockConfig,
232
+ list: () => [],
233
+ get: (_name) => undefined,
234
+ add: (_name, _entry) => { },
235
+ addFromRegistry: (_name, _env) => { },
236
+ remove: (_name) => { },
237
+ validate: async (_opts) => mockValidationResult,
238
+ has: (_name) => false,
239
+ };
240
+ await manager.load();
241
+ (0, vitest_1.expect)(manager.getConfig()).toBe(mockConfig);
242
+ (0, vitest_1.expect)(manager.list()).toEqual([]);
243
+ (0, vitest_1.expect)(manager.has('anything')).toBe(false);
244
+ const validation = await manager.validate({ level: 3 });
245
+ (0, vitest_1.expect)(validation.valid).toBe(true);
246
+ });
247
+ });
248
+ (0, vitest_1.describe)('RegistryEntry', () => {
249
+ (0, vitest_1.it)('has required fields name, description, npmPackage, category, entry, keywords', () => {
250
+ const entry = {
251
+ name: 'github',
252
+ description: 'GitHub API server',
253
+ npmPackage: '@modelcontextprotocol/server-github',
254
+ category: 'official',
255
+ entry: { type: 'stdio', command: 'npx', args: ['-y', '@modelcontextprotocol/server-github'] },
256
+ keywords: ['github', 'git', 'api'],
257
+ };
258
+ (0, vitest_1.expect)(entry.name).toBe('github');
259
+ (0, vitest_1.expect)(entry.keywords).toContain('github');
260
+ });
261
+ });
262
+ });
263
+ //# sourceMappingURL=types.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.test.js","sourceRoot":"","sources":["../../src/__tests__/types.test.ts"],"names":[],"mappings":";;AAAA,mCAA8C;AAiB9C,IAAA,iBAAQ,EAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAA,iBAAQ,EAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,IAAA,WAAE,EAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,KAAK,GAAqB,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YAClE,IAAA,eAAM,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClC,IAAA,eAAM,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,KAAK,GAAqB;gBAC9B,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,CAAC,WAAW,CAAC;gBACnB,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;gBACvB,GAAG,EAAE,MAAM;gBACX,QAAQ,EAAE,KAAK;aAChB,CAAC;YACF,IAAA,eAAM,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YAC1C,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9C,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/B,IAAA,eAAM,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,IAAA,WAAE,EAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,KAAK,GAAoB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,yBAAyB,EAAE,CAAC;YAChF,IAAA,eAAM,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YAClD,IAAA,eAAM,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,KAAK,GAAoB;gBAC7B,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,yBAAyB;gBAC9B,OAAO,EAAE,EAAE,aAAa,EAAE,cAAc,EAAE;gBAC1C,QAAQ,EAAE,IAAI;aACf,CAAC;YACF,IAAA,eAAM,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC,CAAC;YACjE,IAAA,eAAM,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,IAAA,WAAE,EAAC,0BAA0B,EAAE,GAAG,EAAE;YAClC,MAAM,KAAK,GAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YAC7D,IAAA,eAAM,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,yBAAyB,EAAE,GAAG,EAAE;YACjC,MAAM,KAAK,GAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,qBAAqB,EAAE,CAAC;YACxE,IAAA,eAAM,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,WAAW,EAAE,GAAG,EAAE;QACzB,IAAA,WAAE,EAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,MAAM,GAAc;gBACxB,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,gBAAgB;aAC3B,CAAC;YACF,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACnC,IAAA,eAAM,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,oBAAoB,EAAE,GAAG,EAAE;YAC5B,MAAM,MAAM,GAAc;gBACxB,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,gBAAgB;gBAC1B,UAAU,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE;aACvC,CAAC;YACF,IAAA,eAAM,EAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,MAAM,GAAc;gBACxB,OAAO,EAAE;oBACP,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,qCAAqC,CAAC,EAAE;oBAC9F,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,yBAAyB,EAAE;iBACzD;gBACD,QAAQ,EAAE,WAAW;aACtB,CAAC;YACF,IAAA,eAAM,EAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,IAAA,WAAE,EAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,KAAK,GAAoB;gBAC7B,EAAE,EAAE,aAAa;gBACjB,QAAQ,EAAE,OAAO;gBACjB,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,eAAe;aACzB,CAAC;YACF,IAAA,eAAM,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACrC,IAAA,eAAM,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrC,IAAA,eAAM,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,SAAS,GAAoB;gBACjC,EAAE,EAAE,iBAAiB;gBACrB,QAAQ,EAAE,SAAS;gBACnB,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,4BAA4B;gBACrC,UAAU,EAAE,QAAQ;gBACpB,UAAU,EAAE,2CAA2C;aACxD,CAAC;YACF,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAA,eAAM,EAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,IAAA,WAAE,EAAC,2DAA2D,EAAE,GAAG,EAAE;YACnE,MAAM,MAAM,GAAqB;gBAC/B,KAAK,EAAE,IAAI;gBACX,UAAU,EAAE,WAAW;gBACvB,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;gBACxD,iBAAiB,EAAE,GAAG;aACvB,CAAC;YACF,IAAA,eAAM,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,IAAA,eAAM,EAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC5C,IAAA,eAAM,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAClC,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrC,IAAA,eAAM,EAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,IAAA,WAAE,EAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,IAAI,GAAgB;gBACxB,MAAM,EAAE,gBAAgB;gBACxB,MAAM,EAAE,WAAW;gBACnB,gBAAgB,EAAE,MAAM;gBACxB,MAAM,EAAE,KAAK;aACd,CAAC;YACF,IAAA,eAAM,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC3C,IAAA,eAAM,EAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAA,eAAM,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,IAAI,GAAoC,MAAM,CAAC;YACrD,MAAM,SAAS,GAAoC,WAAW,CAAC;YAC/D,MAAM,QAAQ,GAAoC,WAAW,CAAC;YAC9D,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1B,IAAA,eAAM,EAAC,SAAS,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACpC,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,IAAA,WAAE,EAAC,gEAAgE,EAAE,GAAG,EAAE;YACxE,MAAM,MAAM,GAAe;gBACzB,UAAU,EAAE,mBAAmB;gBAC/B,UAAU,EAAE,mBAAmB;gBAC/B,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE,IAAI;aACd,CAAC;YACF,IAAA,eAAM,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzC,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACnC,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YAC/C,IAAA,eAAM,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAClC,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,MAAM,GAAe;gBACzB,UAAU,EAAE,GAAG;gBACf,UAAU,EAAE,GAAG;gBACf,KAAK,EAAE,EAAE;gBACT,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,EAAE;gBACX,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;gBAC5D,OAAO,EAAE,KAAK;aACf,CAAC;YACF,IAAA,eAAM,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACtD,IAAA,eAAM,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,IAAA,WAAE,EAAC,4DAA4D,EAAE,GAAG,EAAE;YACpE,MAAM,IAAI,GAAe;gBACvB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mBAAmB;gBAChC,UAAU,EAAE,qCAAqC;gBACjD,QAAQ,EAAE,UAAU;gBACpB,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;gBAChF,MAAM,EAAE,UAAU;aACnB,CAAC;YACF,IAAA,eAAM,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjC,IAAA,eAAM,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,YAAY,GAAyB,UAAU,CAAC;YACtD,MAAM,OAAO,GAAyB,KAAK,CAAC;YAC5C,IAAA,eAAM,EAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACtC,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,IAAA,WAAE,EAAC,yBAAyB,EAAE,GAAG,EAAE;YACjC,MAAM,IAAI,GAAmB,EAAE,CAAC;YAChC,IAAA,eAAM,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC,aAAa,EAAE,CAAC;YACxC,IAAA,eAAM,EAAC,IAAI,CAAC,eAAe,CAAC,CAAC,aAAa,EAAE,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,IAAI,GAAmB,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC;YAC7E,IAAA,eAAM,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAA,eAAM,EAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,IAAA,WAAE,EAAC,yBAAyB,EAAE,GAAG,EAAE;YACjC,MAAM,IAAI,GAAoB,EAAE,CAAC;YACjC,IAAA,eAAM,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,CAAC;YACvC,IAAA,eAAM,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,IAAI,GAAoB,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YAC7D,IAAA,eAAM,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,IAAA,eAAM,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,IAAA,WAAE,EAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;YAC5C,MAAM,UAAU,GAAc,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;YACrE,MAAM,oBAAoB,GAAqB;gBAC7C,KAAK,EAAE,IAAI;gBACX,UAAU,EAAE,WAAW;gBACvB,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;gBACxD,iBAAiB,EAAE,GAAG;aACvB,CAAC;YAEF,MAAM,OAAO,GAAkB;gBAC7B,IAAI,EAAE,KAAK,IAAI,EAAE,GAAc,CAAC;gBAChC,IAAI,EAAE,KAAK,IAAI,EAAE,GAAc,CAAC;gBAChC,SAAS,EAAE,GAAG,EAAE,CAAC,UAAU;gBAC3B,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;gBACd,GAAG,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,SAAS;gBACjC,GAAG,EAAE,CAAC,KAAa,EAAE,MAAmB,EAAE,EAAE,GAAc,CAAC;gBAC3D,eAAe,EAAE,CAAC,KAAa,EAAE,IAA6B,EAAE,EAAE,GAAc,CAAC;gBACjF,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,GAAc,CAAC;gBACzC,QAAQ,EAAE,KAAK,EAAE,KAAqC,EAAE,EAAE,CAAC,oBAAoB;gBAC/E,GAAG,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK;aAC9B,CAAC;YAEF,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,IAAA,eAAM,EAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAA,eAAM,EAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACnC,IAAA,eAAM,EAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5C,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACxD,IAAA,eAAM,EAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,IAAA,WAAE,EAAC,8EAA8E,EAAE,GAAG,EAAE;YACtF,MAAM,KAAK,GAAkB;gBAC3B,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mBAAmB;gBAChC,UAAU,EAAE,qCAAqC;gBACjD,QAAQ,EAAE,UAAU;gBACpB,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,qCAAqC,CAAC,EAAE;gBAC7F,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC;aACnC,CAAC;YACF,IAAA,eAAM,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClC,IAAA,eAAM,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=errors.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/utils/errors.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,198 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const errors_1 = require("../../utils/errors");
5
+ (0, vitest_1.describe)('Error Classes', () => {
6
+ (0, vitest_1.describe)('MCPConfigError', () => {
7
+ (0, vitest_1.it)('has correct name', () => {
8
+ const err = new errors_1.MCPConfigError('something went wrong', 'SOME_ERROR');
9
+ (0, vitest_1.expect)(err.name).toBe('MCPConfigError');
10
+ });
11
+ (0, vitest_1.it)('has correct message', () => {
12
+ const err = new errors_1.MCPConfigError('test message', 'TEST_CODE');
13
+ (0, vitest_1.expect)(err.message).toBe('test message');
14
+ });
15
+ (0, vitest_1.it)('has correct code', () => {
16
+ const err = new errors_1.MCPConfigError('test', 'MY_CODE');
17
+ (0, vitest_1.expect)(err.code).toBe('MY_CODE');
18
+ });
19
+ (0, vitest_1.it)('is an instance of Error', () => {
20
+ const err = new errors_1.MCPConfigError('test', 'CODE');
21
+ (0, vitest_1.expect)(err).toBeInstanceOf(Error);
22
+ });
23
+ (0, vitest_1.it)('is an instance of MCPConfigError', () => {
24
+ const err = new errors_1.MCPConfigError('test', 'CODE');
25
+ (0, vitest_1.expect)(err).toBeInstanceOf(errors_1.MCPConfigError);
26
+ });
27
+ });
28
+ (0, vitest_1.describe)('ConfigNotFoundError', () => {
29
+ const configPath = '/path/to/.mcp.json';
30
+ let err;
31
+ (0, vitest_1.beforeEach)(() => {
32
+ err = new errors_1.ConfigNotFoundError(configPath);
33
+ });
34
+ (0, vitest_1.it)('has correct name', () => {
35
+ (0, vitest_1.expect)(err.name).toBe('ConfigNotFoundError');
36
+ });
37
+ (0, vitest_1.it)('exposes configPath', () => {
38
+ (0, vitest_1.expect)(err.configPath).toBe(configPath);
39
+ });
40
+ (0, vitest_1.it)('has code CONFIG_NOT_FOUND', () => {
41
+ (0, vitest_1.expect)(err.code).toBe('CONFIG_NOT_FOUND');
42
+ });
43
+ (0, vitest_1.it)('message contains path', () => {
44
+ (0, vitest_1.expect)(err.message).toContain(configPath);
45
+ });
46
+ (0, vitest_1.it)('is instanceof MCPConfigError', () => {
47
+ (0, vitest_1.expect)(err).toBeInstanceOf(errors_1.MCPConfigError);
48
+ });
49
+ (0, vitest_1.it)('is instanceof Error', () => {
50
+ (0, vitest_1.expect)(err).toBeInstanceOf(Error);
51
+ });
52
+ (0, vitest_1.it)('is instanceof ConfigNotFoundError', () => {
53
+ (0, vitest_1.expect)(err).toBeInstanceOf(errors_1.ConfigNotFoundError);
54
+ });
55
+ });
56
+ (0, vitest_1.describe)('ConfigParseError', () => {
57
+ const configPath = '/path/to/bad.json';
58
+ let err;
59
+ (0, vitest_1.beforeEach)(() => {
60
+ err = new errors_1.ConfigParseError('Unexpected token at line 1', configPath);
61
+ });
62
+ (0, vitest_1.it)('has correct name', () => {
63
+ (0, vitest_1.expect)(err.name).toBe('ConfigParseError');
64
+ });
65
+ (0, vitest_1.it)('exposes configPath', () => {
66
+ (0, vitest_1.expect)(err.configPath).toBe(configPath);
67
+ });
68
+ (0, vitest_1.it)('has code CONFIG_PARSE_ERROR', () => {
69
+ (0, vitest_1.expect)(err.code).toBe('CONFIG_PARSE_ERROR');
70
+ });
71
+ (0, vitest_1.it)('is instanceof MCPConfigError', () => {
72
+ (0, vitest_1.expect)(err).toBeInstanceOf(errors_1.MCPConfigError);
73
+ });
74
+ (0, vitest_1.it)('is instanceof Error', () => {
75
+ (0, vitest_1.expect)(err).toBeInstanceOf(Error);
76
+ });
77
+ (0, vitest_1.it)('accepts optional parseError', () => {
78
+ const syntaxError = new SyntaxError('Unexpected token');
79
+ const errWithParse = new errors_1.ConfigParseError('Failed to parse', configPath, syntaxError);
80
+ (0, vitest_1.expect)(errWithParse.parseError).toBe(syntaxError);
81
+ });
82
+ });
83
+ (0, vitest_1.describe)('ServerExistsError', () => {
84
+ const serverName = 'github';
85
+ let err;
86
+ (0, vitest_1.beforeEach)(() => {
87
+ err = new errors_1.ServerExistsError(serverName);
88
+ });
89
+ (0, vitest_1.it)('has correct name', () => {
90
+ (0, vitest_1.expect)(err.name).toBe('ServerExistsError');
91
+ });
92
+ (0, vitest_1.it)('exposes serverName', () => {
93
+ (0, vitest_1.expect)(err.serverName).toBe(serverName);
94
+ });
95
+ (0, vitest_1.it)('has code SERVER_EXISTS', () => {
96
+ (0, vitest_1.expect)(err.code).toBe('SERVER_EXISTS');
97
+ });
98
+ (0, vitest_1.it)('message contains server name', () => {
99
+ (0, vitest_1.expect)(err.message).toContain(serverName);
100
+ });
101
+ (0, vitest_1.it)('is instanceof MCPConfigError', () => {
102
+ (0, vitest_1.expect)(err).toBeInstanceOf(errors_1.MCPConfigError);
103
+ });
104
+ (0, vitest_1.it)('is instanceof Error', () => {
105
+ (0, vitest_1.expect)(err).toBeInstanceOf(Error);
106
+ });
107
+ });
108
+ (0, vitest_1.describe)('ServerNotFoundError', () => {
109
+ const serverName = 'missing-server';
110
+ let err;
111
+ (0, vitest_1.beforeEach)(() => {
112
+ err = new errors_1.ServerNotFoundError(serverName);
113
+ });
114
+ (0, vitest_1.it)('has correct name', () => {
115
+ (0, vitest_1.expect)(err.name).toBe('ServerNotFoundError');
116
+ });
117
+ (0, vitest_1.it)('exposes serverName', () => {
118
+ (0, vitest_1.expect)(err.serverName).toBe(serverName);
119
+ });
120
+ (0, vitest_1.it)('has code SERVER_NOT_FOUND', () => {
121
+ (0, vitest_1.expect)(err.code).toBe('SERVER_NOT_FOUND');
122
+ });
123
+ (0, vitest_1.it)('message contains server name', () => {
124
+ (0, vitest_1.expect)(err.message).toContain(serverName);
125
+ });
126
+ (0, vitest_1.it)('is instanceof MCPConfigError', () => {
127
+ (0, vitest_1.expect)(err).toBeInstanceOf(errors_1.MCPConfigError);
128
+ });
129
+ (0, vitest_1.it)('is instanceof Error', () => {
130
+ (0, vitest_1.expect)(err).toBeInstanceOf(Error);
131
+ });
132
+ });
133
+ (0, vitest_1.describe)('ValidationError', () => {
134
+ const errors = ['mcpServers key is missing', 'command is required for stdio entry'];
135
+ let err;
136
+ (0, vitest_1.beforeEach)(() => {
137
+ err = new errors_1.ValidationError('Config validation failed', errors);
138
+ });
139
+ (0, vitest_1.it)('has correct name', () => {
140
+ (0, vitest_1.expect)(err.name).toBe('ValidationError');
141
+ });
142
+ (0, vitest_1.it)('exposes errors array', () => {
143
+ (0, vitest_1.expect)(err.errors).toEqual(errors);
144
+ });
145
+ (0, vitest_1.it)('has code VALIDATION_ERROR', () => {
146
+ (0, vitest_1.expect)(err.code).toBe('VALIDATION_ERROR');
147
+ });
148
+ (0, vitest_1.it)('errors array is accessible and contains expected items', () => {
149
+ (0, vitest_1.expect)(err.errors).toHaveLength(2);
150
+ (0, vitest_1.expect)(err.errors[0]).toBe('mcpServers key is missing');
151
+ });
152
+ (0, vitest_1.it)('is instanceof MCPConfigError', () => {
153
+ (0, vitest_1.expect)(err).toBeInstanceOf(errors_1.MCPConfigError);
154
+ });
155
+ (0, vitest_1.it)('is instanceof Error', () => {
156
+ (0, vitest_1.expect)(err).toBeInstanceOf(Error);
157
+ });
158
+ (0, vitest_1.it)('accepts optional result', () => {
159
+ const mockResult = {
160
+ valid: false,
161
+ configPath: '.mcp.json',
162
+ checks: [],
163
+ summary: { total: 1, passed: 0, failed: 1, warnings: 0 },
164
+ completenessScore: 0,
165
+ };
166
+ const errWithResult = new errors_1.ValidationError('Validation failed', errors, mockResult);
167
+ (0, vitest_1.expect)(errWithResult.result).toBe(mockResult);
168
+ });
169
+ });
170
+ (0, vitest_1.describe)('instanceof chain for all subclasses', () => {
171
+ (0, vitest_1.it)('ConfigNotFoundError instanceof MCPConfigError AND Error', () => {
172
+ const e = new errors_1.ConfigNotFoundError('/tmp/.mcp.json');
173
+ (0, vitest_1.expect)(e).toBeInstanceOf(errors_1.MCPConfigError);
174
+ (0, vitest_1.expect)(e).toBeInstanceOf(Error);
175
+ });
176
+ (0, vitest_1.it)('ConfigParseError instanceof MCPConfigError AND Error', () => {
177
+ const e = new errors_1.ConfigParseError('bad json', '/tmp/bad.json');
178
+ (0, vitest_1.expect)(e).toBeInstanceOf(errors_1.MCPConfigError);
179
+ (0, vitest_1.expect)(e).toBeInstanceOf(Error);
180
+ });
181
+ (0, vitest_1.it)('ServerExistsError instanceof MCPConfigError AND Error', () => {
182
+ const e = new errors_1.ServerExistsError('github');
183
+ (0, vitest_1.expect)(e).toBeInstanceOf(errors_1.MCPConfigError);
184
+ (0, vitest_1.expect)(e).toBeInstanceOf(Error);
185
+ });
186
+ (0, vitest_1.it)('ServerNotFoundError instanceof MCPConfigError AND Error', () => {
187
+ const e = new errors_1.ServerNotFoundError('missing');
188
+ (0, vitest_1.expect)(e).toBeInstanceOf(errors_1.MCPConfigError);
189
+ (0, vitest_1.expect)(e).toBeInstanceOf(Error);
190
+ });
191
+ (0, vitest_1.it)('ValidationError instanceof MCPConfigError AND Error', () => {
192
+ const e = new errors_1.ValidationError('failed', []);
193
+ (0, vitest_1.expect)(e).toBeInstanceOf(errors_1.MCPConfigError);
194
+ (0, vitest_1.expect)(e).toBeInstanceOf(Error);
195
+ });
196
+ });
197
+ });
198
+ //# sourceMappingURL=errors.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.test.js","sourceRoot":"","sources":["../../../src/__tests__/utils/errors.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=validate.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/validation/validate.test.ts"],"names":[],"mappings":""}