swagger-parser-mcp-server 1.0.6 → 2.0.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 (35) hide show
  1. package/dist/index.js +126 -206
  2. package/dist/index.js.map +1 -1
  3. package/dist/schemas.d.ts +58 -0
  4. package/dist/schemas.d.ts.map +1 -0
  5. package/dist/schemas.js +32 -0
  6. package/dist/schemas.js.map +1 -0
  7. package/dist/tests/edgeCases.test.d.ts +2 -0
  8. package/dist/tests/edgeCases.test.d.ts.map +1 -0
  9. package/dist/tests/edgeCases.test.js +364 -0
  10. package/dist/tests/edgeCases.test.js.map +1 -0
  11. package/dist/tests/integration.test.d.ts +2 -0
  12. package/dist/tests/integration.test.d.ts.map +1 -0
  13. package/dist/tests/integration.test.js +382 -0
  14. package/dist/tests/integration.test.js.map +1 -0
  15. package/dist/tests/realWorldValidation.test.d.ts +2 -0
  16. package/dist/tests/realWorldValidation.test.d.ts.map +1 -0
  17. package/dist/tests/realWorldValidation.test.js +398 -0
  18. package/dist/tests/realWorldValidation.test.js.map +1 -0
  19. package/dist/tests/schemaResolver.test.d.ts +2 -0
  20. package/dist/tests/schemaResolver.test.d.ts.map +1 -0
  21. package/dist/tests/schemaResolver.test.js +322 -0
  22. package/dist/tests/schemaResolver.test.js.map +1 -0
  23. package/dist/utils/schemaResolver.d.ts +34 -0
  24. package/dist/utils/schemaResolver.d.ts.map +1 -0
  25. package/dist/utils/schemaResolver.js +255 -0
  26. package/dist/utils/schemaResolver.js.map +1 -0
  27. package/dist/utils/swaggerCache.d.ts +53 -0
  28. package/dist/utils/swaggerCache.d.ts.map +1 -0
  29. package/dist/utils/swaggerCache.js +146 -0
  30. package/dist/utils/swaggerCache.js.map +1 -0
  31. package/dist/utils/types.d.ts +73 -0
  32. package/dist/utils/types.d.ts.map +1 -0
  33. package/dist/utils/types.js +20 -0
  34. package/dist/utils/types.js.map +1 -0
  35. package/package.json +39 -9
@@ -0,0 +1,364 @@
1
+ import { SchemaResolver } from '../utils/schemaResolver.js';
2
+ import { SwaggerCache } from '../utils/swaggerCache.js';
3
+ import { CircularReferenceError, InvalidReferenceError } from '../utils/types.js';
4
+ import fs from 'fs';
5
+ import path from 'path';
6
+ import axios from 'axios';
7
+ // Mock axios for cache tests
8
+ jest.mock('axios');
9
+ const mockedAxios = axios;
10
+ describe('Edge Cases and Error Scenarios', () => {
11
+ let resolver;
12
+ let cache;
13
+ beforeEach(() => {
14
+ resolver = new SchemaResolver();
15
+ cache = new SwaggerCache();
16
+ jest.clearAllMocks();
17
+ });
18
+ describe('Circular Reference Edge Cases', () => {
19
+ let circularSchema;
20
+ beforeAll(() => {
21
+ const schemaPath = path.join(process.cwd(), 'src', 'tests', 'fixtures', 'circularSchema.json');
22
+ // NOTE: circularSchema must be any type because it represents a test fixture with dynamic OpenAPI schema structure
23
+ // This is unavoidable as test fixtures can have arbitrary schema definitions for testing edge cases
24
+ circularSchema = JSON.parse(fs.readFileSync(schemaPath, 'utf8'));
25
+ });
26
+ it('should handle self-referencing schemas', () => {
27
+ expect(() => {
28
+ resolver.resolveRef('#/components/schemas/Node', circularSchema);
29
+ }).toThrow(CircularReferenceError);
30
+ });
31
+ it('should handle deeply nested circular references', () => {
32
+ expect(() => {
33
+ resolver.resolveRef('#/components/schemas/ComplexCircular', circularSchema);
34
+ }).toThrow(CircularReferenceError);
35
+ });
36
+ it('should handle circular references in arrays', () => {
37
+ expect(() => {
38
+ resolver.resolveRef('#/components/schemas/LinkedList', circularSchema);
39
+ }).toThrow(CircularReferenceError);
40
+ });
41
+ it('should detect circular references with custom max depth', () => {
42
+ const customResolver = new SchemaResolver({ maxDepth: 3 });
43
+ expect(() => {
44
+ customResolver.resolveRef('#/components/schemas/Node', circularSchema);
45
+ }).toThrow(CircularReferenceError);
46
+ });
47
+ it('should handle circular references with very small max depth', () => {
48
+ const shallowResolver = new SchemaResolver({
49
+ maxDepth: 1,
50
+ includeCircularRefs: false,
51
+ });
52
+ // NOTE: resolveRef returns any type because OpenAPI schema references can resolve to arbitrary structures
53
+ const result = shallowResolver.resolveRef('#/components/schemas/Node', circularSchema);
54
+ // With very small max depth, the resolver should hit the depth limit and return placeholders
55
+ expect(result).toBeDefined();
56
+ const resultStr = JSON.stringify(result);
57
+ expect(resultStr).toContain('[Circular Reference]');
58
+ });
59
+ });
60
+ describe('Malformed Schema Edge Cases', () => {
61
+ it('should handle schemas with missing components section', () => {
62
+ const brokenSchema = {
63
+ openapi: '3.0.0',
64
+ info: { title: 'Broken API', version: '1.0.0' },
65
+ paths: {},
66
+ // Missing components section
67
+ };
68
+ expect(() => {
69
+ resolver.resolveRef('#/components/schemas/User', brokenSchema);
70
+ }).toThrow(InvalidReferenceError);
71
+ });
72
+ it('should handle schemas with empty components section', () => {
73
+ const emptyComponentsSchema = {
74
+ openapi: '3.0.0',
75
+ info: { title: 'Empty API', version: '1.0.0' },
76
+ paths: {},
77
+ components: {},
78
+ };
79
+ expect(() => {
80
+ resolver.resolveRef('#/components/schemas/User', emptyComponentsSchema);
81
+ }).toThrow(InvalidReferenceError);
82
+ });
83
+ it('should handle null/undefined schema properties', () => {
84
+ const nullSchema = {
85
+ type: 'object',
86
+ properties: {
87
+ validProp: { type: 'string' },
88
+ nullProp: null,
89
+ undefinedProp: undefined,
90
+ },
91
+ };
92
+ const result = resolver.resolveSchemaReference(nullSchema, {
93
+ openapi: '3.0.0',
94
+ info: { title: 'Test', version: '1.0.0' },
95
+ paths: {},
96
+ });
97
+ expect(result.properties.validProp).toEqual({ type: 'string' });
98
+ expect(result.properties.nullProp).toBeNull();
99
+ });
100
+ it('should handle references with special characters', () => {
101
+ const specialCharSchema = {
102
+ openapi: '3.0.0',
103
+ info: { title: 'Special Char API', version: '1.0.0' },
104
+ paths: {},
105
+ components: {
106
+ schemas: {
107
+ 'User-Profile': {
108
+ type: 'object',
109
+ properties: {
110
+ name: { type: 'string' },
111
+ },
112
+ },
113
+ },
114
+ },
115
+ };
116
+ const result = resolver.resolveRef('#/components/schemas/User-Profile', specialCharSchema);
117
+ expect(result.type).toBe('object');
118
+ expect(result.properties.name.type).toBe('string');
119
+ });
120
+ it('should handle very long reference paths', () => {
121
+ const longPathSchema = {
122
+ openapi: '3.0.0',
123
+ info: { title: 'Long Path API', version: '1.0.0' },
124
+ paths: {},
125
+ components: {
126
+ schemas: {
127
+ VeryLongSchemaNameThatExceedsMostReasonableLimitsButShouldStillWork: {
128
+ type: 'string',
129
+ },
130
+ },
131
+ },
132
+ };
133
+ const result = resolver.resolveRef('#/components/schemas/VeryLongSchemaNameThatExceedsMostReasonableLimitsButShouldStillWork', longPathSchema);
134
+ expect(result.type).toBe('string');
135
+ });
136
+ });
137
+ describe('Performance Edge Cases', () => {
138
+ it('should handle schemas with very large number of properties', () => {
139
+ const largeSchema = {
140
+ type: 'object',
141
+ properties: {},
142
+ };
143
+ // Create 1000 properties
144
+ for (let i = 0; i < 1000; i++) {
145
+ largeSchema.properties[`prop${i}`] = { type: 'string' };
146
+ }
147
+ const mockSwagger = {
148
+ openapi: '3.0.0',
149
+ info: { title: 'Large API', version: '1.0.0' },
150
+ paths: {},
151
+ };
152
+ const startTime = Date.now();
153
+ const result = resolver.resolveSchemaReference(largeSchema, mockSwagger);
154
+ const endTime = Date.now();
155
+ expect(Object.keys(result.properties)).toHaveLength(1000);
156
+ expect(endTime - startTime).toBeLessThan(5000); // Should complete within 5 seconds
157
+ });
158
+ it('should handle deeply nested arrays without stack overflow', () => {
159
+ let nestedArray = { type: 'string' };
160
+ // Create 8 levels of array nesting (within default max depth of 10)
161
+ for (let i = 0; i < 8; i++) {
162
+ nestedArray = {
163
+ type: 'array',
164
+ items: nestedArray,
165
+ };
166
+ }
167
+ const mockSwagger = {
168
+ openapi: '3.0.0',
169
+ info: { title: 'Nested API', version: '1.0.0' },
170
+ paths: {},
171
+ };
172
+ const result = resolver.resolveSchemaReference(nestedArray, mockSwagger);
173
+ expect(result.type).toBe('array');
174
+ // Verify it doesn't cause stack overflow
175
+ let current = result;
176
+ let depth = 0;
177
+ while (current.items && depth < 12) {
178
+ current = current.items;
179
+ depth++;
180
+ }
181
+ expect(depth).toBe(8);
182
+ });
183
+ it('should handle concurrent schema resolution', async () => {
184
+ const testSchema = {
185
+ openapi: '3.0.0',
186
+ info: { title: 'Concurrent API', version: '1.0.0' },
187
+ paths: {},
188
+ components: {
189
+ schemas: {
190
+ User1: { type: 'string' },
191
+ User2: { type: 'number' },
192
+ User3: { type: 'boolean' },
193
+ User4: { type: 'object', properties: { name: { type: 'string' } } },
194
+ User5: { type: 'array', items: { type: 'string' } },
195
+ },
196
+ },
197
+ };
198
+ const promises = [
199
+ () => resolver.resolveRef('#/components/schemas/User1', testSchema),
200
+ () => resolver.resolveRef('#/components/schemas/User2', testSchema),
201
+ () => resolver.resolveRef('#/components/schemas/User3', testSchema),
202
+ () => resolver.resolveRef('#/components/schemas/User4', testSchema),
203
+ () => resolver.resolveRef('#/components/schemas/User5', testSchema),
204
+ ];
205
+ const results = await Promise.all(promises.map(fn => Promise.resolve(fn())));
206
+ expect(results[0].type).toBe('string');
207
+ expect(results[1].type).toBe('number');
208
+ expect(results[2].type).toBe('boolean');
209
+ expect(results[3].type).toBe('object');
210
+ expect(results[4].type).toBe('array');
211
+ });
212
+ });
213
+ describe('SwaggerCache Edge Cases', () => {
214
+ it('should handle invalid JSON responses', async () => {
215
+ const url = 'https://api.example.com/invalid.json';
216
+ mockedAxios.get.mockResolvedValueOnce({ data: 'invalid json string' });
217
+ await expect(cache.load(url)).rejects.toThrow('Invalid OpenAPI document');
218
+ });
219
+ it('should handle empty responses', async () => {
220
+ const url = 'https://api.example.com/empty.json';
221
+ mockedAxios.get.mockResolvedValueOnce({ data: null });
222
+ await expect(cache.load(url)).rejects.toThrow('Invalid OpenAPI document: not an object');
223
+ });
224
+ it('should handle responses with missing required fields', async () => {
225
+ const url = 'https://api.example.com/incomplete.json';
226
+ mockedAxios.get.mockResolvedValueOnce({
227
+ data: {
228
+ openapi: '3.0.0',
229
+ // Missing info and paths
230
+ },
231
+ });
232
+ await expect(cache.load(url)).rejects.toThrow('Invalid OpenAPI document: missing info section');
233
+ });
234
+ it('should handle very large responses', async () => {
235
+ const url = 'https://api.example.com/large.json';
236
+ // Create a large but valid OpenAPI document
237
+ const largeSwagger = {
238
+ openapi: '3.0.0',
239
+ info: { title: 'Large API', version: '1.0.0' },
240
+ paths: {},
241
+ components: {
242
+ schemas: {},
243
+ },
244
+ };
245
+ // Add 100 paths and schemas
246
+ for (let i = 0; i < 100; i++) {
247
+ largeSwagger.paths[`/endpoint/${i}`] = {
248
+ get: {
249
+ responses: {
250
+ '200': {
251
+ description: 'Success',
252
+ content: {
253
+ 'application/json': {
254
+ schema: { $ref: `#/components/schemas/Schema${i}` },
255
+ },
256
+ },
257
+ },
258
+ },
259
+ },
260
+ };
261
+ largeSwagger.components.schemas[`Schema${i}`] = {
262
+ type: 'object',
263
+ properties: {
264
+ id: { type: 'string' },
265
+ name: { type: 'string' },
266
+ data: { type: 'string' },
267
+ },
268
+ };
269
+ }
270
+ mockedAxios.get.mockResolvedValueOnce({ data: largeSwagger });
271
+ const startTime = Date.now();
272
+ const result = await cache.load(url);
273
+ const endTime = Date.now();
274
+ expect(result).toBeDefined();
275
+ expect(Object.keys(result.paths)).toHaveLength(100);
276
+ expect(endTime - startTime).toBeLessThan(10000); // Should complete within 10 seconds
277
+ });
278
+ it('should handle timeout scenarios', async () => {
279
+ const url = 'https://api.example.com/timeout.json';
280
+ mockedAxios.get.mockRejectedValueOnce({
281
+ code: 'ECONNABORTED',
282
+ message: 'timeout of 30000ms exceeded',
283
+ });
284
+ await expect(cache.load(url)).rejects.toThrow('Failed to load OpenAPI document: timeout of 30000ms exceeded');
285
+ });
286
+ it('should handle cache memory pressure', async () => {
287
+ // Load many documents to test memory management
288
+ const urls = [];
289
+ for (let i = 0; i < 50; i++) {
290
+ urls.push(`https://api${i}.example.com/swagger.json`);
291
+ }
292
+ const mockResponse = {
293
+ openapi: '3.0.0',
294
+ info: { title: 'Test API', version: '1.0.0' },
295
+ paths: {},
296
+ components: { schemas: {} },
297
+ };
298
+ // Mock all requests
299
+ urls.forEach(() => {
300
+ mockedAxios.get.mockResolvedValueOnce({ data: mockResponse });
301
+ });
302
+ // Load all documents
303
+ await Promise.all(urls.map(url => cache.load(url)));
304
+ const stats = cache.getStats();
305
+ expect(stats.cacheSize).toBe(50);
306
+ expect(stats.cachedUrls).toHaveLength(50);
307
+ });
308
+ });
309
+ describe('Type Safety Edge Cases', () => {
310
+ it('should handle schemas with mixed type definitions', () => {
311
+ const mixedSchema = {
312
+ oneOf: [{ type: 'string' }, { type: 'number' }, { $ref: '#/components/schemas/ComplexType' }],
313
+ };
314
+ const mockSwagger = {
315
+ openapi: '3.0.0',
316
+ info: { title: 'Mixed API', version: '1.0.0' },
317
+ paths: {},
318
+ components: {
319
+ schemas: {
320
+ ComplexType: {
321
+ type: 'object',
322
+ properties: { value: { type: 'string' } },
323
+ },
324
+ },
325
+ },
326
+ };
327
+ const result = resolver.resolveSchemaReference(mixedSchema, mockSwagger);
328
+ expect(result.oneOf).toBeDefined();
329
+ expect(result.oneOf).toHaveLength(3);
330
+ });
331
+ it('should handle schemas with allOf/anyOf/oneOf containing circular references', () => {
332
+ const compositionSchema = {
333
+ openapi: '3.0.0',
334
+ info: { title: 'Composition API', version: '1.0.0' },
335
+ paths: {},
336
+ components: {
337
+ schemas: {
338
+ Base: {
339
+ type: 'object',
340
+ properties: {
341
+ id: { type: 'string' },
342
+ },
343
+ },
344
+ Extended: {
345
+ allOf: [
346
+ { $ref: '#/components/schemas/Base' },
347
+ {
348
+ type: 'object',
349
+ properties: {
350
+ child: { $ref: '#/components/schemas/Extended' },
351
+ },
352
+ },
353
+ ],
354
+ },
355
+ },
356
+ },
357
+ };
358
+ expect(() => {
359
+ resolver.resolveRef('#/components/schemas/Extended', compositionSchema);
360
+ }).toThrow(CircularReferenceError);
361
+ });
362
+ });
363
+ });
364
+ //# sourceMappingURL=edgeCases.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edgeCases.test.js","sourceRoot":"","sources":["../../src/tests/edgeCases.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration.test.d.ts","sourceRoot":"","sources":["../../src/tests/integration.test.ts"],"names":[],"mappings":""}