swagger-parser-mcp-server 2.3.4 → 3.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 (127) hide show
  1. package/README.md +81 -120
  2. package/dist/index.d.ts +0 -3
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +266 -102
  5. package/dist/index.js.map +1 -1
  6. package/dist/schemas.d.ts +2 -283
  7. package/dist/schemas.d.ts.map +1 -1
  8. package/dist/schemas.js +0 -108
  9. package/dist/schemas.js.map +1 -1
  10. package/dist/utils/swaggerCache.d.ts +0 -4
  11. package/dist/utils/swaggerCache.d.ts.map +1 -1
  12. package/dist/utils/swaggerCache.js +0 -8
  13. package/dist/utils/swaggerCache.js.map +1 -1
  14. package/package.json +3 -11
  15. package/dist/application/snapshot/createSnapshotRuntime.d.ts +0 -2
  16. package/dist/application/snapshot/createSnapshotRuntime.d.ts.map +0 -1
  17. package/dist/application/snapshot/createSnapshotRuntime.js +0 -2
  18. package/dist/application/snapshot/createSnapshotRuntime.js.map +0 -1
  19. package/dist/application/snapshot/snapshotCaptureService.d.ts +0 -90
  20. package/dist/application/snapshot/snapshotCaptureService.d.ts.map +0 -1
  21. package/dist/application/snapshot/snapshotCaptureService.js +0 -394
  22. package/dist/application/snapshot/snapshotCaptureService.js.map +0 -1
  23. package/dist/application/snapshot/snapshotRepository.d.ts +0 -77
  24. package/dist/application/snapshot/snapshotRepository.d.ts.map +0 -1
  25. package/dist/application/snapshot/snapshotRepository.js +0 -2
  26. package/dist/application/snapshot/snapshotRepository.js.map +0 -1
  27. package/dist/domain/canonical/canonicalSnapshot.d.ts +0 -61
  28. package/dist/domain/canonical/canonicalSnapshot.d.ts.map +0 -1
  29. package/dist/domain/canonical/canonicalSnapshot.js +0 -300
  30. package/dist/domain/canonical/canonicalSnapshot.js.map +0 -1
  31. package/dist/domain/contracts/runtimeEnvironmentContract.d.ts +0 -21
  32. package/dist/domain/contracts/runtimeEnvironmentContract.d.ts.map +0 -1
  33. package/dist/domain/contracts/runtimeEnvironmentContract.js +0 -50
  34. package/dist/domain/contracts/runtimeEnvironmentContract.js.map +0 -1
  35. package/dist/domain/contracts/snapshotDiffContract.d.ts +0 -270
  36. package/dist/domain/contracts/snapshotDiffContract.d.ts.map +0 -1
  37. package/dist/domain/contracts/snapshotDiffContract.js +0 -99
  38. package/dist/domain/contracts/snapshotDiffContract.js.map +0 -1
  39. package/dist/domain/diff/endpointDiffClassifier.d.ts +0 -78
  40. package/dist/domain/diff/endpointDiffClassifier.d.ts.map +0 -1
  41. package/dist/domain/diff/endpointDiffClassifier.js +0 -317
  42. package/dist/domain/diff/endpointDiffClassifier.js.map +0 -1
  43. package/dist/http.d.ts +0 -3
  44. package/dist/http.d.ts.map +0 -1
  45. package/dist/http.js +0 -52
  46. package/dist/http.js.map +0 -1
  47. package/dist/infrastructure/postgres/migrationRunner.d.ts +0 -14
  48. package/dist/infrastructure/postgres/migrationRunner.d.ts.map +0 -1
  49. package/dist/infrastructure/postgres/migrationRunner.js +0 -161
  50. package/dist/infrastructure/postgres/migrationRunner.js.map +0 -1
  51. package/dist/infrastructure/postgres/migrations/001_snapshot_schema.sql +0 -29
  52. package/dist/infrastructure/postgres/migrations/002_snapshot_change_history.sql +0 -32
  53. package/dist/infrastructure/postgres/postgresSnapshotRepository.d.ts +0 -25
  54. package/dist/infrastructure/postgres/postgresSnapshotRepository.d.ts.map +0 -1
  55. package/dist/infrastructure/postgres/postgresSnapshotRepository.js +0 -323
  56. package/dist/infrastructure/postgres/postgresSnapshotRepository.js.map +0 -1
  57. package/dist/infrastructure/postgres/runMigrations.d.ts +0 -3
  58. package/dist/infrastructure/postgres/runMigrations.d.ts.map +0 -1
  59. package/dist/infrastructure/postgres/runMigrations.js +0 -33
  60. package/dist/infrastructure/postgres/runMigrations.js.map +0 -1
  61. package/dist/infrastructure/runtime/createSnapshotRuntime.d.ts +0 -17
  62. package/dist/infrastructure/runtime/createSnapshotRuntime.d.ts.map +0 -1
  63. package/dist/infrastructure/runtime/createSnapshotRuntime.js +0 -38
  64. package/dist/infrastructure/runtime/createSnapshotRuntime.js.map +0 -1
  65. package/dist/tests/canonicalSnapshot.test.d.ts +0 -2
  66. package/dist/tests/canonicalSnapshot.test.d.ts.map +0 -1
  67. package/dist/tests/canonicalSnapshot.test.js +0 -425
  68. package/dist/tests/canonicalSnapshot.test.js.map +0 -1
  69. package/dist/tests/endpointDiffClassifier.test.d.ts +0 -2
  70. package/dist/tests/endpointDiffClassifier.test.d.ts.map +0 -1
  71. package/dist/tests/endpointDiffClassifier.test.js +0 -633
  72. package/dist/tests/endpointDiffClassifier.test.js.map +0 -1
  73. package/dist/tests/httpSnapshotTransport.test.d.ts +0 -2
  74. package/dist/tests/httpSnapshotTransport.test.d.ts.map +0 -1
  75. package/dist/tests/httpSnapshotTransport.test.js +0 -393
  76. package/dist/tests/httpSnapshotTransport.test.js.map +0 -1
  77. package/dist/tests/indexLifecycle.test.d.ts +0 -2
  78. package/dist/tests/indexLifecycle.test.d.ts.map +0 -1
  79. package/dist/tests/indexLifecycle.test.js +0 -44
  80. package/dist/tests/indexLifecycle.test.js.map +0 -1
  81. package/dist/tests/mcpSnapshotTools.test.d.ts +0 -2
  82. package/dist/tests/mcpSnapshotTools.test.d.ts.map +0 -1
  83. package/dist/tests/mcpSnapshotTools.test.js +0 -316
  84. package/dist/tests/mcpSnapshotTools.test.js.map +0 -1
  85. package/dist/tests/postgresMigrationSmoke.test.d.ts +0 -2
  86. package/dist/tests/postgresMigrationSmoke.test.d.ts.map +0 -1
  87. package/dist/tests/postgresMigrationSmoke.test.js +0 -187
  88. package/dist/tests/postgresMigrationSmoke.test.js.map +0 -1
  89. package/dist/tests/realPostgresTestSchema.d.ts +0 -10
  90. package/dist/tests/realPostgresTestSchema.d.ts.map +0 -1
  91. package/dist/tests/realPostgresTestSchema.js +0 -73
  92. package/dist/tests/realPostgresTestSchema.js.map +0 -1
  93. package/dist/tests/snapshotCapturePipeline.test.d.ts +0 -2
  94. package/dist/tests/snapshotCapturePipeline.test.d.ts.map +0 -1
  95. package/dist/tests/snapshotCapturePipeline.test.js +0 -475
  96. package/dist/tests/snapshotCapturePipeline.test.js.map +0 -1
  97. package/dist/tests/snapshotDiffContract.test.d.ts +0 -2
  98. package/dist/tests/snapshotDiffContract.test.d.ts.map +0 -1
  99. package/dist/tests/snapshotDiffContract.test.js +0 -156
  100. package/dist/tests/snapshotDiffContract.test.js.map +0 -1
  101. package/dist/tests/snapshotPersistence.real.test.d.ts +0 -2
  102. package/dist/tests/snapshotPersistence.real.test.d.ts.map +0 -1
  103. package/dist/tests/snapshotPersistence.real.test.js +0 -310
  104. package/dist/tests/snapshotPersistence.real.test.js.map +0 -1
  105. package/dist/tests/webServerRuntime.test.d.ts +0 -2
  106. package/dist/tests/webServerRuntime.test.d.ts.map +0 -1
  107. package/dist/tests/webServerRuntime.test.js +0 -123
  108. package/dist/tests/webServerRuntime.test.js.map +0 -1
  109. package/dist/transport/createSnapshotToolRuntime.d.ts +0 -7
  110. package/dist/transport/createSnapshotToolRuntime.d.ts.map +0 -1
  111. package/dist/transport/createSnapshotToolRuntime.js +0 -40
  112. package/dist/transport/createSnapshotToolRuntime.js.map +0 -1
  113. package/dist/transport/httpSnapshotServer.d.ts +0 -11
  114. package/dist/transport/httpSnapshotServer.d.ts.map +0 -1
  115. package/dist/transport/httpSnapshotServer.js +0 -234
  116. package/dist/transport/httpSnapshotServer.js.map +0 -1
  117. package/dist/transport/mcpToolRouter.d.ts +0 -81
  118. package/dist/transport/mcpToolRouter.d.ts.map +0 -1
  119. package/dist/transport/mcpToolRouter.js +0 -416
  120. package/dist/transport/mcpToolRouter.js.map +0 -1
  121. package/dist/transport/webServerRuntime.d.ts +0 -17
  122. package/dist/transport/webServerRuntime.d.ts.map +0 -1
  123. package/dist/transport/webServerRuntime.js +0 -73
  124. package/dist/transport/webServerRuntime.js.map +0 -1
  125. package/dist/web/dashboard.css +0 -411
  126. package/dist/web/dashboard.html +0 -141
  127. package/dist/web/dashboard.js +0 -540
@@ -1 +0,0 @@
1
- {"version":3,"file":"snapshotDiffContract.test.js","sourceRoot":"","sources":["../../src/tests/snapshotDiffContract.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=snapshotPersistence.real.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"snapshotPersistence.real.test.d.ts","sourceRoot":"","sources":["../../src/tests/snapshotPersistence.real.test.ts"],"names":[],"mappings":""}
@@ -1,310 +0,0 @@
1
- import { Pool } from 'pg';
2
- import { createSnapshotRuntime } from '../application/snapshot/createSnapshotRuntime.js';
3
- import { PostgresSnapshotRepository } from '../infrastructure/postgres/postgresSnapshotRepository.js';
4
- import { runPostgresMigrations } from '../infrastructure/postgres/migrationRunner.js';
5
- import { createRealPostgresTestSchema, readTestDatabaseUrl } from './realPostgresTestSchema.js';
6
- function createDocument(paths, version = '1.0.0') {
7
- return {
8
- openapi: '3.0.0',
9
- info: {
10
- title: 'Real DB Snapshot API',
11
- version,
12
- },
13
- paths,
14
- };
15
- }
16
- function createBaselineDocument() {
17
- return createDocument({
18
- '/pets': {
19
- get: {
20
- responses: {
21
- '200': {
22
- description: 'OK',
23
- content: {
24
- 'application/json': {
25
- schema: {
26
- type: 'object',
27
- required: ['id'],
28
- properties: {
29
- id: { type: 'string' },
30
- },
31
- },
32
- },
33
- },
34
- },
35
- },
36
- },
37
- },
38
- });
39
- }
40
- function createChangedDocument() {
41
- return createDocument({
42
- '/pets': {
43
- get: {
44
- responses: {
45
- '200': {
46
- description: 'OK',
47
- content: {
48
- 'application/json': {
49
- schema: {
50
- type: 'object',
51
- required: ['id'],
52
- properties: {
53
- id: { type: 'string' },
54
- },
55
- },
56
- },
57
- },
58
- },
59
- },
60
- },
61
- post: {
62
- requestBody: {
63
- required: false,
64
- content: {
65
- 'application/json': {
66
- schema: {
67
- type: 'object',
68
- properties: {
69
- name: { type: 'string' },
70
- },
71
- },
72
- },
73
- },
74
- },
75
- responses: {
76
- '201': {
77
- description: 'Created',
78
- content: {
79
- 'application/json': {
80
- schema: {
81
- type: 'object',
82
- required: ['id'],
83
- properties: {
84
- id: { type: 'string' },
85
- },
86
- },
87
- },
88
- },
89
- },
90
- },
91
- },
92
- },
93
- });
94
- }
95
- function createMockLoader(sequence) {
96
- let index = 0;
97
- return {
98
- loadFresh: jest.fn((_url) => {
99
- const safeIndex = Math.min(index, sequence.length - 1);
100
- const selected = sequence[safeIndex];
101
- index += 1;
102
- return Promise.resolve(selected);
103
- }),
104
- };
105
- }
106
- function createRuntimeEnv(databaseUrl, suffix) {
107
- return {
108
- DATABASE_URL: databaseUrl,
109
- PROJECT_KEY: `real-db-${suffix}`,
110
- SWAGGER_URL: `https://api.example.com/${suffix}/openapi.json`,
111
- };
112
- }
113
- async function createRuntime(env, documents) {
114
- const loader = createMockLoader(documents);
115
- return createSnapshotRuntime(env, runtimeEnv => {
116
- const pool = new Pool({
117
- connectionString: runtimeEnv.DATABASE_URL,
118
- });
119
- return {
120
- pool,
121
- repository: new PostgresSnapshotRepository(pool),
122
- loader,
123
- };
124
- });
125
- }
126
- const describeRealDatabase = readTestDatabaseUrl() ? describe : describe.skip;
127
- describeRealDatabase('실 Postgres 영속성 회귀', () => {
128
- it('bootstrap -> capture -> dispose -> runtime 재생성 후에도 list/replay 결과가 유지된다', async () => {
129
- let schema = null;
130
- let firstRuntime = null;
131
- let secondRuntime = null;
132
- let schemaProbePool = null;
133
- let baselineSnapshotId = '';
134
- let targetSnapshotId = '';
135
- let sourceId = '';
136
- let expectedCounts = null;
137
- let expectedHistoryTargetSnapshotId = '';
138
- let env = null;
139
- try {
140
- schema = await createRealPostgresTestSchema(process.env, { schemaPrefix: 'real_restart' });
141
- env = createRuntimeEnv(schema.databaseUrl, 'restart');
142
- firstRuntime = await createRuntime(env, [createBaselineDocument(), createChangedDocument()]);
143
- schemaProbePool = new Pool({ connectionString: env.DATABASE_URL });
144
- const schemaResult = await schemaProbePool.query('SELECT current_schema() AS current_schema;');
145
- expect(schemaResult.rows[0].current_schema).toBe(schema.schemaName);
146
- await schemaProbePool.end();
147
- schemaProbePool = null;
148
- const bootstrap = await firstRuntime.service.bootstrap(env);
149
- expect(bootstrap.project.projectKey).toBe('real-db-restart');
150
- const firstCapture = await firstRuntime.service.capture(env);
151
- const secondCapture = await firstRuntime.service.capture(env);
152
- baselineSnapshotId = firstCapture.snapshot.id;
153
- targetSnapshotId = secondCapture.snapshot.id;
154
- sourceId = secondCapture.source.id;
155
- expectedCounts = secondCapture.diffResult.counts;
156
- expectedHistoryTargetSnapshotId = secondCapture.snapshot.id;
157
- await firstRuntime.dispose();
158
- firstRuntime = null;
159
- secondRuntime = await createRuntime(env, [createChangedDocument()]);
160
- const snapshots = await secondRuntime.service.listSnapshotsBySource(sourceId);
161
- expect(snapshots).toHaveLength(2);
162
- expect(snapshots.map(snapshot => snapshot.id)).toEqual(expect.arrayContaining([baselineSnapshotId, targetSnapshotId]));
163
- const replayed = await secondRuntime.service.replayDiff({
164
- baselineSnapshotId,
165
- targetSnapshotId,
166
- });
167
- expect(replayed.counts).toEqual(expectedCounts);
168
- expect(replayed.summary.baselineSnapshotId).toBe(baselineSnapshotId);
169
- expect(replayed.summary.targetSnapshotId).toBe(targetSnapshotId);
170
- const history = await secondRuntime.service.listEndpointChangeHistory({
171
- sourceId,
172
- });
173
- expect(history).toHaveLength(1);
174
- expect(history[0].targetSnapshotId).toBe(expectedHistoryTargetSnapshotId);
175
- }
176
- finally {
177
- if (schemaProbePool) {
178
- await schemaProbePool.end().catch(() => undefined);
179
- }
180
- if (secondRuntime) {
181
- await secondRuntime.dispose().catch(() => undefined);
182
- }
183
- if (firstRuntime) {
184
- await firstRuntime.dispose().catch(() => undefined);
185
- }
186
- if (schema) {
187
- await schema.dispose().catch(() => undefined);
188
- }
189
- }
190
- });
191
- it('동일 spec 재캡처는 재시작 전후 no-op이며 snapshot row 수가 증가하지 않는다', async () => {
192
- let schema = null;
193
- let firstRuntime = null;
194
- let secondRuntime = null;
195
- let env = null;
196
- let baselineSnapshotId = '';
197
- let sourceId = '';
198
- try {
199
- schema = await createRealPostgresTestSchema(process.env, { schemaPrefix: 'real_noop' });
200
- env = createRuntimeEnv(schema.databaseUrl, 'noop');
201
- firstRuntime = await createRuntime(env, [createBaselineDocument(), createBaselineDocument()]);
202
- const firstCapture = await firstRuntime.service.capture(env);
203
- const secondCapture = await firstRuntime.service.capture(env);
204
- baselineSnapshotId = firstCapture.snapshot.id;
205
- sourceId = firstCapture.source.id;
206
- expect(secondCapture.isNoopCapture).toBe(true);
207
- expect(secondCapture.snapshot.id).toBe(baselineSnapshotId);
208
- const beforeRestart = await firstRuntime.service.listSnapshotsBySource(sourceId);
209
- expect(beforeRestart).toHaveLength(1);
210
- await firstRuntime.dispose();
211
- firstRuntime = null;
212
- secondRuntime = await createRuntime(env, [createBaselineDocument()]);
213
- const thirdCapture = await secondRuntime.service.capture(env);
214
- expect(thirdCapture.isNoopCapture).toBe(true);
215
- expect(thirdCapture.snapshot.id).toBe(baselineSnapshotId);
216
- const afterRestart = await secondRuntime.service.listSnapshotsBySource(sourceId);
217
- expect(afterRestart).toHaveLength(1);
218
- }
219
- finally {
220
- if (secondRuntime) {
221
- await secondRuntime.dispose().catch(() => undefined);
222
- }
223
- if (firstRuntime) {
224
- await firstRuntime.dispose().catch(() => undefined);
225
- }
226
- if (schema) {
227
- await schema.dispose().catch(() => undefined);
228
- }
229
- }
230
- });
231
- it('migration을 두 번 실행해도 schema_migrations 행은 하나만 유지된다', async () => {
232
- let schema = null;
233
- let pool = null;
234
- try {
235
- schema = await createRealPostgresTestSchema(process.env, { schemaPrefix: 'real_migration' });
236
- pool = new Pool({ connectionString: schema.databaseUrl });
237
- const firstRun = await runPostgresMigrations(pool);
238
- expect(firstRun.applied).toEqual(['001_snapshot_schema.sql', '002_snapshot_change_history.sql']);
239
- const secondRun = await runPostgresMigrations(pool);
240
- expect(secondRun.applied).toEqual([]);
241
- expect(secondRun.skipped).toContain('001_snapshot_schema.sql');
242
- expect(secondRun.skipped).toContain('002_snapshot_change_history.sql');
243
- const history = await pool.query(`
244
- SELECT version
245
- FROM schema_migrations
246
- ORDER BY version ASC;
247
- `);
248
- expect(history.rows).toHaveLength(2);
249
- expect(history.rows.map(row => row.version)).toEqual([
250
- '001_snapshot_schema.sql',
251
- '002_snapshot_change_history.sql',
252
- ]);
253
- }
254
- finally {
255
- if (pool) {
256
- await pool.end().catch(() => undefined);
257
- }
258
- if (schema) {
259
- await schema.dispose().catch(() => undefined);
260
- }
261
- }
262
- });
263
- it('동일 source/spec hash로 동시 capture해도 해당 snapshot row는 1개만 생성된다', async () => {
264
- let schema = null;
265
- let runtimeA = null;
266
- let runtimeB = null;
267
- let verificationPool = null;
268
- let env = null;
269
- try {
270
- schema = await createRealPostgresTestSchema(process.env, { schemaPrefix: 'real_concurrent' });
271
- env = createRuntimeEnv(schema.databaseUrl, 'concurrent');
272
- runtimeA = await createRuntime(env, [createBaselineDocument(), createChangedDocument()]);
273
- runtimeB = await createRuntime(env, [createChangedDocument()]);
274
- verificationPool = new Pool({ connectionString: schema.databaseUrl });
275
- await runtimeA.service.capture(env);
276
- const [left, right] = await Promise.all([runtimeA.service.capture(env), runtimeB.service.capture(env)]);
277
- expect(left.snapshot.id).toBe(right.snapshot.id);
278
- expect(left.snapshot.specHash).toBe(right.snapshot.specHash);
279
- const result = await verificationPool.query(`
280
- SELECT COUNT(*)::int AS count
281
- FROM snapshots
282
- WHERE source_id = $1
283
- AND spec_hash = $2;
284
- `, [left.source.id, left.snapshot.specHash]);
285
- expect(result.rows[0].count).toBe(1);
286
- const snapshots = await runtimeA.service.listSnapshotsBySource(left.source.id);
287
- expect(snapshots).toHaveLength(2);
288
- const history = await runtimeA.service.listEndpointChangeHistory({
289
- sourceId: left.source.id,
290
- });
291
- expect(history).toHaveLength(1);
292
- expect(history[0].targetSnapshotId).toBe(left.snapshot.id);
293
- }
294
- finally {
295
- if (verificationPool) {
296
- await verificationPool.end().catch(() => undefined);
297
- }
298
- if (runtimeB) {
299
- await runtimeB.dispose().catch(() => undefined);
300
- }
301
- if (runtimeA) {
302
- await runtimeA.dispose().catch(() => undefined);
303
- }
304
- if (schema) {
305
- await schema.dispose().catch(() => undefined);
306
- }
307
- }
308
- });
309
- });
310
- //# sourceMappingURL=snapshotPersistence.real.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"snapshotPersistence.real.test.js","sourceRoot":"","sources":["../../src/tests/snapshotPersistence.real.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=webServerRuntime.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webServerRuntime.test.d.ts","sourceRoot":"","sources":["../../src/tests/webServerRuntime.test.ts"],"names":[],"mappings":""}
@@ -1,123 +0,0 @@
1
- import { createServer } from 'node:http';
2
- import { startSnapshotWebServer, isSnapshotWebEnabled } from '../transport/webServerRuntime.js';
3
- async function reservePort() {
4
- const server = createServer();
5
- await new Promise((resolve, reject) => {
6
- server.once('error', reject);
7
- server.listen(0, '127.0.0.1', () => resolve());
8
- });
9
- const address = server.address();
10
- await new Promise((resolve, reject) => {
11
- server.close(error => {
12
- if (error) {
13
- reject(error);
14
- return;
15
- }
16
- resolve();
17
- });
18
- });
19
- return address.port;
20
- }
21
- describe('web server runtime', () => {
22
- it('should enable web server by default', () => {
23
- expect(isSnapshotWebEnabled({})).toBe(true);
24
- expect(isSnapshotWebEnabled({ SNAPSHOT_WEB_ENABLED: undefined })).toBe(true);
25
- });
26
- it('should disable web server when SNAPSHOT_WEB_ENABLED is false-like', () => {
27
- const falseLikeValues = ['false', 'FALSE', '0', 'off', 'OFF', 'no', 'NO', ' false '];
28
- falseLikeValues.forEach(value => {
29
- expect(isSnapshotWebEnabled({ SNAPSHOT_WEB_ENABLED: value })).toBe(false);
30
- });
31
- });
32
- it('should start and close web server when enabled', async () => {
33
- const port = await reservePort();
34
- const handle = await startSnapshotWebServer({
35
- env: {
36
- HTTP_HOST: '127.0.0.1',
37
- HTTP_PORT: String(port),
38
- },
39
- toolRouter: {
40
- executeStructured: jest.fn().mockResolvedValue({
41
- ok: true,
42
- statusCode: 200,
43
- data: {},
44
- }),
45
- },
46
- });
47
- try {
48
- expect(handle.enabled).toBe(true);
49
- expect(handle.port).toBe(port);
50
- const healthResponse = await fetch(`http://127.0.0.1:${handle.port}/health`);
51
- const healthPayload = (await healthResponse.json());
52
- expect(healthResponse.status).toBe(200);
53
- expect(healthPayload.ok).toBe(true);
54
- }
55
- finally {
56
- await handle.close();
57
- }
58
- });
59
- it('should skip startup when disabled and forceEnable is not set', async () => {
60
- const handle = await startSnapshotWebServer({
61
- env: {
62
- SNAPSHOT_WEB_ENABLED: 'false',
63
- HTTP_HOST: '127.0.0.1',
64
- HTTP_PORT: '31337',
65
- },
66
- toolRouter: {
67
- executeStructured: jest.fn(),
68
- },
69
- });
70
- expect(handle.enabled).toBe(false);
71
- await expect(handle.close()).resolves.toBeUndefined();
72
- });
73
- it('should fallback to default port when configured port is out of range', async () => {
74
- const handle = await startSnapshotWebServer({
75
- env: {
76
- SNAPSHOT_WEB_ENABLED: 'false',
77
- HTTP_HOST: '127.0.0.1',
78
- HTTP_PORT: '70000',
79
- },
80
- toolRouter: {
81
- executeStructured: jest.fn(),
82
- },
83
- });
84
- expect(handle.enabled).toBe(false);
85
- expect(handle.port).toBe(3100);
86
- await expect(handle.close()).resolves.toBeUndefined();
87
- });
88
- it('should fail startup when requested port is already in use', async () => {
89
- const port = await reservePort();
90
- const first = await startSnapshotWebServer({
91
- env: {
92
- HTTP_HOST: '127.0.0.1',
93
- HTTP_PORT: String(port),
94
- },
95
- toolRouter: {
96
- executeStructured: jest.fn().mockResolvedValue({
97
- ok: true,
98
- statusCode: 200,
99
- data: {},
100
- }),
101
- },
102
- });
103
- try {
104
- await expect(startSnapshotWebServer({
105
- env: {
106
- HTTP_HOST: '127.0.0.1',
107
- HTTP_PORT: String(port),
108
- },
109
- toolRouter: {
110
- executeStructured: jest.fn().mockResolvedValue({
111
- ok: true,
112
- statusCode: 200,
113
- data: {},
114
- }),
115
- },
116
- })).rejects.toMatchObject({ code: 'EADDRINUSE' });
117
- }
118
- finally {
119
- await first.close();
120
- }
121
- });
122
- });
123
- //# sourceMappingURL=webServerRuntime.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webServerRuntime.test.js","sourceRoot":"","sources":["../../src/tests/webServerRuntime.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { McpToolRouter } from './mcpToolRouter.js';
2
- export interface SnapshotToolRuntime {
3
- toolRouter: McpToolRouter;
4
- dispose(): Promise<void>;
5
- }
6
- export declare function createSnapshotToolRuntime(env: NodeJS.ProcessEnv): SnapshotToolRuntime;
7
- //# sourceMappingURL=createSnapshotToolRuntime.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createSnapshotToolRuntime.d.ts","sourceRoot":"","sources":["../../src/transport/createSnapshotToolRuntime.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAIxE,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,aAAa,CAAC;IAC1B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,mBAAmB,CAqCrF"}
@@ -1,40 +0,0 @@
1
- import { createSnapshotRuntime } from '../application/snapshot/createSnapshotRuntime.js';
2
- import { createMcpToolRouter } from './mcpToolRouter.js';
3
- import { SchemaResolver } from '../utils/schemaResolver.js';
4
- import { SwaggerCache } from '../utils/swaggerCache.js';
5
- export function createSnapshotToolRuntime(env) {
6
- const swaggerCache = new SwaggerCache();
7
- const schemaResolver = new SchemaResolver({
8
- maxDepth: 10,
9
- includeCircularRefs: false,
10
- circularRefPlaceholder: '[Circular Reference]',
11
- });
12
- let snapshotRuntimePromise = null;
13
- const getSnapshotRuntime = async () => {
14
- if (!snapshotRuntimePromise) {
15
- snapshotRuntimePromise = createSnapshotRuntime(env).catch(error => {
16
- snapshotRuntimePromise = null;
17
- throw error;
18
- });
19
- }
20
- return snapshotRuntimePromise;
21
- };
22
- return {
23
- toolRouter: createMcpToolRouter({
24
- swaggerCache,
25
- schemaResolver,
26
- runtimeProvider: getSnapshotRuntime,
27
- }),
28
- async dispose() {
29
- if (!snapshotRuntimePromise) {
30
- return;
31
- }
32
- const runtime = await snapshotRuntimePromise.catch(() => null);
33
- snapshotRuntimePromise = null;
34
- if (runtime) {
35
- await runtime.dispose();
36
- }
37
- },
38
- };
39
- }
40
- //# sourceMappingURL=createSnapshotToolRuntime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createSnapshotToolRuntime.js","sourceRoot":"","sources":["../../src/transport/createSnapshotToolRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAmB,MAAM,kDAAkD,CAAC;AAC1G,OAAO,EAAE,mBAAmB,EAAiB,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAOxD,MAAM,UAAU,yBAAyB,CAAC,GAAsB;IAC9D,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;IACxC,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC;QACxC,QAAQ,EAAE,EAAE;QACZ,mBAAmB,EAAE,KAAK;QAC1B,sBAAsB,EAAE,sBAAsB;KAC/C,CAAC,CAAC;IAEH,IAAI,sBAAsB,GAAoC,IAAI,CAAC;IACnE,MAAM,kBAAkB,GAAG,KAAK,IAA8B,EAAE;QAC9D,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC5B,sBAAsB,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBAChE,sBAAsB,GAAG,IAAI,CAAC;gBAC9B,MAAM,KAAK,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,sBAAsB,CAAC;IAChC,CAAC,CAAC;IAEF,OAAO;QACL,UAAU,EAAE,mBAAmB,CAAC;YAC9B,YAAY;YACZ,cAAc;YACd,eAAe,EAAE,kBAAkB;SACpC,CAAC;QACF,KAAK,CAAC,OAAO;YACX,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC5B,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YAC/D,sBAAsB,GAAG,IAAI,CAAC;YAC9B,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,11 +0,0 @@
1
- import { Server } from 'node:http';
2
- import { createMcpToolRouter } from './mcpToolRouter.js';
3
- type ToolRouter = Pick<ReturnType<typeof createMcpToolRouter>, 'executeStructured'>;
4
- export interface HttpSnapshotServerDeps {
5
- toolRouter: ToolRouter;
6
- basePath?: string;
7
- dashboardAssetsDir?: string;
8
- }
9
- export declare function createHttpSnapshotServer(deps: HttpSnapshotServerDeps): Server;
10
- export {};
11
- //# sourceMappingURL=httpSnapshotServer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"httpSnapshotServer.d.ts","sourceRoot":"","sources":["../../src/transport/httpSnapshotServer.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,MAAM,EAAgC,MAAM,WAAW,CAAC;AAGlF,OAAO,EAAwB,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE/E,KAAK,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,mBAAmB,CAAC,EAAE,mBAAmB,CAAC,CAAC;AAIpF,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AA+QD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,sBAAsB,GAAG,MAAM,CAa7E"}