@zze/mock-server 0.2.4

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 (177) hide show
  1. package/README.md +643 -0
  2. package/dist/__tests__/mock-server.test.d.ts +5 -0
  3. package/dist/__tests__/mock-server.test.d.ts.map +1 -0
  4. package/dist/__tests__/mock-server.test.js +599 -0
  5. package/dist/__tests__/mock-server.test.js.map +1 -0
  6. package/dist/admin/__tests__/admin-router.test.d.ts +2 -0
  7. package/dist/admin/__tests__/admin-router.test.d.ts.map +1 -0
  8. package/dist/admin/__tests__/admin-router.test.js +621 -0
  9. package/dist/admin/__tests__/admin-router.test.js.map +1 -0
  10. package/dist/admin/admin-router.d.ts +27 -0
  11. package/dist/admin/admin-router.d.ts.map +1 -0
  12. package/dist/admin/admin-router.js +616 -0
  13. package/dist/admin/admin-router.js.map +1 -0
  14. package/dist/admin/index.d.ts +4 -0
  15. package/dist/admin/index.d.ts.map +1 -0
  16. package/dist/admin/index.js +10 -0
  17. package/dist/admin/index.js.map +1 -0
  18. package/dist/admin/types.d.ts +185 -0
  19. package/dist/admin/types.d.ts.map +1 -0
  20. package/dist/admin/types.js +33 -0
  21. package/dist/admin/types.js.map +1 -0
  22. package/dist/config/__tests__/config-discovery.test.d.ts +2 -0
  23. package/dist/config/__tests__/config-discovery.test.d.ts.map +1 -0
  24. package/dist/config/__tests__/config-discovery.test.js +52 -0
  25. package/dist/config/__tests__/config-discovery.test.js.map +1 -0
  26. package/dist/config/__tests__/config-loader.test.d.ts +2 -0
  27. package/dist/config/__tests__/config-loader.test.d.ts.map +1 -0
  28. package/dist/config/__tests__/config-loader.test.js +124 -0
  29. package/dist/config/__tests__/config-loader.test.js.map +1 -0
  30. package/dist/config/__tests__/file-loader.test.d.ts +2 -0
  31. package/dist/config/__tests__/file-loader.test.d.ts.map +1 -0
  32. package/dist/config/__tests__/file-loader.test.js +63 -0
  33. package/dist/config/__tests__/file-loader.test.js.map +1 -0
  34. package/dist/config/__tests__/fixtures/mock-config/endpoints/products.d.ts +25 -0
  35. package/dist/config/__tests__/fixtures/mock-config/endpoints/products.d.ts.map +1 -0
  36. package/dist/config/__tests__/fixtures/mock-config/endpoints/products.js +25 -0
  37. package/dist/config/__tests__/fixtures/mock-config/endpoints/products.js.map +1 -0
  38. package/dist/config/__tests__/fixtures/mock-config/flows/error-flow.d.ts +11 -0
  39. package/dist/config/__tests__/fixtures/mock-config/flows/error-flow.d.ts.map +1 -0
  40. package/dist/config/__tests__/fixtures/mock-config/flows/error-flow.js +11 -0
  41. package/dist/config/__tests__/fixtures/mock-config/flows/error-flow.js.map +1 -0
  42. package/dist/config/config-discovery.d.ts +23 -0
  43. package/dist/config/config-discovery.d.ts.map +1 -0
  44. package/dist/config/config-discovery.js +60 -0
  45. package/dist/config/config-discovery.js.map +1 -0
  46. package/dist/config/config-loader.d.ts +56 -0
  47. package/dist/config/config-loader.d.ts.map +1 -0
  48. package/dist/config/config-loader.js +162 -0
  49. package/dist/config/config-loader.js.map +1 -0
  50. package/dist/config/config-writer.d.ts +96 -0
  51. package/dist/config/config-writer.d.ts.map +1 -0
  52. package/dist/config/config-writer.js +248 -0
  53. package/dist/config/config-writer.js.map +1 -0
  54. package/dist/config/file-loader.d.ts +16 -0
  55. package/dist/config/file-loader.d.ts.map +1 -0
  56. package/dist/config/file-loader.js +90 -0
  57. package/dist/config/file-loader.js.map +1 -0
  58. package/dist/config/index.d.ts +7 -0
  59. package/dist/config/index.d.ts.map +1 -0
  60. package/dist/config/index.js +23 -0
  61. package/dist/config/index.js.map +1 -0
  62. package/dist/config/types.d.ts +47 -0
  63. package/dist/config/types.d.ts.map +1 -0
  64. package/dist/config/types.js +7 -0
  65. package/dist/config/types.js.map +1 -0
  66. package/dist/index.d.ts +28 -0
  67. package/dist/index.d.ts.map +1 -0
  68. package/dist/index.js +31 -0
  69. package/dist/index.js.map +1 -0
  70. package/dist/mock-server.d.ts +243 -0
  71. package/dist/mock-server.d.ts.map +1 -0
  72. package/dist/mock-server.js +387 -0
  73. package/dist/mock-server.js.map +1 -0
  74. package/dist/resolver/__tests__/response-resolver.test.d.ts +2 -0
  75. package/dist/resolver/__tests__/response-resolver.test.d.ts.map +1 -0
  76. package/dist/resolver/__tests__/response-resolver.test.js +358 -0
  77. package/dist/resolver/__tests__/response-resolver.test.js.map +1 -0
  78. package/dist/resolver/index.d.ts +4 -0
  79. package/dist/resolver/index.d.ts.map +1 -0
  80. package/dist/resolver/index.js +9 -0
  81. package/dist/resolver/index.js.map +1 -0
  82. package/dist/resolver/response-resolver.d.ts +73 -0
  83. package/dist/resolver/response-resolver.d.ts.map +1 -0
  84. package/dist/resolver/response-resolver.js +167 -0
  85. package/dist/resolver/response-resolver.js.map +1 -0
  86. package/dist/resolver/types.d.ts +47 -0
  87. package/dist/resolver/types.d.ts.map +1 -0
  88. package/dist/resolver/types.js +9 -0
  89. package/dist/resolver/types.js.map +1 -0
  90. package/dist/schemas/__tests__/config.validator.test.d.ts +2 -0
  91. package/dist/schemas/__tests__/config.validator.test.d.ts.map +1 -0
  92. package/dist/schemas/__tests__/config.validator.test.js +66 -0
  93. package/dist/schemas/__tests__/config.validator.test.js.map +1 -0
  94. package/dist/schemas/__tests__/endpoint.schema.test.d.ts +2 -0
  95. package/dist/schemas/__tests__/endpoint.schema.test.d.ts.map +1 -0
  96. package/dist/schemas/__tests__/endpoint.schema.test.js +103 -0
  97. package/dist/schemas/__tests__/endpoint.schema.test.js.map +1 -0
  98. package/dist/schemas/__tests__/flow.schema.test.d.ts +2 -0
  99. package/dist/schemas/__tests__/flow.schema.test.d.ts.map +1 -0
  100. package/dist/schemas/__tests__/flow.schema.test.js +92 -0
  101. package/dist/schemas/__tests__/flow.schema.test.js.map +1 -0
  102. package/dist/schemas/config.validator.d.ts +39 -0
  103. package/dist/schemas/config.validator.d.ts.map +1 -0
  104. package/dist/schemas/config.validator.js +117 -0
  105. package/dist/schemas/config.validator.js.map +1 -0
  106. package/dist/schemas/endpoint.schema.d.ts +108 -0
  107. package/dist/schemas/endpoint.schema.d.ts.map +1 -0
  108. package/dist/schemas/endpoint.schema.js +87 -0
  109. package/dist/schemas/endpoint.schema.js.map +1 -0
  110. package/dist/schemas/flow.schema.d.ts +46 -0
  111. package/dist/schemas/flow.schema.d.ts.map +1 -0
  112. package/dist/schemas/flow.schema.js +73 -0
  113. package/dist/schemas/flow.schema.js.map +1 -0
  114. package/dist/schemas/http.schema.d.ts +15 -0
  115. package/dist/schemas/http.schema.d.ts.map +1 -0
  116. package/dist/schemas/http.schema.js +32 -0
  117. package/dist/schemas/http.schema.js.map +1 -0
  118. package/dist/schemas/index.d.ts +6 -0
  119. package/dist/schemas/index.d.ts.map +1 -0
  120. package/dist/schemas/index.js +33 -0
  121. package/dist/schemas/index.js.map +1 -0
  122. package/dist/schemas/scenario.schema.d.ts +54 -0
  123. package/dist/schemas/scenario.schema.d.ts.map +1 -0
  124. package/dist/schemas/scenario.schema.js +75 -0
  125. package/dist/schemas/scenario.schema.js.map +1 -0
  126. package/dist/server/__tests__/mock-server-app.test.d.ts +2 -0
  127. package/dist/server/__tests__/mock-server-app.test.d.ts.map +1 -0
  128. package/dist/server/__tests__/mock-server-app.test.js +296 -0
  129. package/dist/server/__tests__/mock-server-app.test.js.map +1 -0
  130. package/dist/server/index.d.ts +4 -0
  131. package/dist/server/index.d.ts.map +1 -0
  132. package/dist/server/index.js +10 -0
  133. package/dist/server/index.js.map +1 -0
  134. package/dist/server/mock-server-app.d.ts +119 -0
  135. package/dist/server/mock-server-app.d.ts.map +1 -0
  136. package/dist/server/mock-server-app.js +304 -0
  137. package/dist/server/mock-server-app.js.map +1 -0
  138. package/dist/server/types.d.ts +38 -0
  139. package/dist/server/types.d.ts.map +1 -0
  140. package/dist/server/types.js +11 -0
  141. package/dist/server/types.js.map +1 -0
  142. package/dist/state/__tests__/state-manager.test.d.ts +2 -0
  143. package/dist/state/__tests__/state-manager.test.d.ts.map +1 -0
  144. package/dist/state/__tests__/state-manager.test.js +275 -0
  145. package/dist/state/__tests__/state-manager.test.js.map +1 -0
  146. package/dist/state/index.d.ts +3 -0
  147. package/dist/state/index.d.ts.map +1 -0
  148. package/dist/state/index.js +7 -0
  149. package/dist/state/index.js.map +1 -0
  150. package/dist/state/state-manager.d.ts +92 -0
  151. package/dist/state/state-manager.d.ts.map +1 -0
  152. package/dist/state/state-manager.js +198 -0
  153. package/dist/state/state-manager.js.map +1 -0
  154. package/dist/state/types.d.ts +30 -0
  155. package/dist/state/types.d.ts.map +1 -0
  156. package/dist/state/types.js +2 -0
  157. package/dist/state/types.js.map +1 -0
  158. package/dist/ui/assets/index-SADMOgPE.js +10 -0
  159. package/dist/ui/assets/index-rj7m-XdG.css +1 -0
  160. package/dist/ui/index.html +29 -0
  161. package/dist/watcher/__tests__/config-watcher.test.d.ts +2 -0
  162. package/dist/watcher/__tests__/config-watcher.test.d.ts.map +1 -0
  163. package/dist/watcher/__tests__/config-watcher.test.js +372 -0
  164. package/dist/watcher/__tests__/config-watcher.test.js.map +1 -0
  165. package/dist/watcher/config-watcher.d.ts +100 -0
  166. package/dist/watcher/config-watcher.d.ts.map +1 -0
  167. package/dist/watcher/config-watcher.js +358 -0
  168. package/dist/watcher/config-watcher.js.map +1 -0
  169. package/dist/watcher/index.d.ts +7 -0
  170. package/dist/watcher/index.d.ts.map +1 -0
  171. package/dist/watcher/index.js +8 -0
  172. package/dist/watcher/index.js.map +1 -0
  173. package/dist/watcher/types.d.ts +64 -0
  174. package/dist/watcher/types.d.ts.map +1 -0
  175. package/dist/watcher/types.js +15 -0
  176. package/dist/watcher/types.js.map +1 -0
  177. package/package.json +58 -0
@@ -0,0 +1,387 @@
1
+ "use strict";
2
+ /**
3
+ * MockServer - Public API for the mock server package
4
+ *
5
+ * This is the main entry point for consumers of the package.
6
+ * It provides a simple interface to configure, start, and stop the mock server.
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MockServer = void 0;
13
+ exports.createMockServer = createMockServer;
14
+ const mock_server_app_js_1 = require("./server/mock-server-app.js");
15
+ const config_loader_js_1 = require("./config/config-loader.js");
16
+ const config_watcher_js_1 = require("./watcher/config-watcher.js");
17
+ const index_js_1 = require("./config/index.js");
18
+ const path_1 = __importDefault(require("path"));
19
+ /**
20
+ * MockServer - Main class for creating and managing a mock server
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * import { MockServer } from '@zze/mock-server';
25
+ *
26
+ * const server = new MockServer({
27
+ * configPath: './mock-config',
28
+ * port: 3001,
29
+ * apiPrefix: '/api',
30
+ * hotReload: true
31
+ * });
32
+ *
33
+ * await server.start();
34
+ * console.log('Mock server running on port 3001');
35
+ *
36
+ * // Later...
37
+ * await server.stop();
38
+ * ```
39
+ */
40
+ class MockServer {
41
+ /**
42
+ * Create a new MockServer instance
43
+ *
44
+ * @param options - Configuration options for the server
45
+ */
46
+ constructor(options) {
47
+ this.serverApp = null;
48
+ this.watcher = null;
49
+ this.reloadCallbacks = [];
50
+ this.errorCallbacks = [];
51
+ this.loadedEndpoints = [];
52
+ this.loadedFlows = [];
53
+ // Apply defaults
54
+ this.options = {
55
+ configPath: options.configPath,
56
+ port: options.port ?? 3001,
57
+ apiPrefix: options.apiPrefix ?? '/api',
58
+ hotReload: options.hotReload ?? true,
59
+ watcherOptions: options.watcherOptions,
60
+ };
61
+ // Create config loader
62
+ this.configLoader = new config_loader_js_1.ConfigLoader(this.options.configPath);
63
+ // Create config writer for endpoint/flow management
64
+ this.configWriter = (0, index_js_1.createConfigWriter)({
65
+ endpointsDir: path_1.default.join(this.options.configPath, 'endpoints'),
66
+ flowsDir: path_1.default.join(this.options.configPath, 'flows'),
67
+ });
68
+ }
69
+ /**
70
+ * Start the mock server
71
+ *
72
+ * This method:
73
+ * 1. Loads configuration from the config directory
74
+ * 2. Creates and starts the Express server
75
+ * 3. Optionally starts the file watcher for hot reload
76
+ *
77
+ * @returns Promise that resolves when the server is ready
78
+ * @throws Error if configuration loading fails or server fails to start
79
+ */
80
+ async start() {
81
+ if (this.serverApp?.isRunning()) {
82
+ throw new Error('Server is already running');
83
+ }
84
+ // Load configuration
85
+ const result = await this.configLoader.load();
86
+ if (!result.success || !result.config) {
87
+ const errorMessages = result.errors.map((e) => `${e.filePath}: ${e.error}`).join('\n');
88
+ throw new Error(`Failed to load configuration:\n${errorMessages}`);
89
+ }
90
+ // Store loaded config
91
+ this.loadedEndpoints = result.config.endpoints;
92
+ this.loadedFlows = result.config.flows;
93
+ // Create server app
94
+ const serverOptions = {
95
+ port: this.options.port,
96
+ apiPrefix: this.options.apiPrefix,
97
+ hotReload: this.options.hotReload,
98
+ };
99
+ this.serverApp = new mock_server_app_js_1.MockServerApp(serverOptions);
100
+ // Set config writer for endpoint/flow management via admin API
101
+ this.serverApp.setConfigWriter(this.configWriter, () => this.reload());
102
+ this.serverApp.registerConfig(this.loadedEndpoints, this.loadedFlows);
103
+ // Start the server
104
+ await this.serverApp.start();
105
+ // Start file watcher if hot reload is enabled
106
+ if (this.options.hotReload) {
107
+ await this.startWatcher();
108
+ }
109
+ }
110
+ /**
111
+ * Stop the mock server
112
+ *
113
+ * This method:
114
+ * 1. Stops the file watcher (if running)
115
+ * 2. Stops the Express server
116
+ *
117
+ * @returns Promise that resolves when the server has stopped
118
+ */
119
+ async stop() {
120
+ // Stop watcher first
121
+ if (this.watcher) {
122
+ await this.watcher.stop();
123
+ this.watcher = null;
124
+ }
125
+ // Stop server
126
+ if (this.serverApp) {
127
+ await this.serverApp.stop();
128
+ this.serverApp = null;
129
+ }
130
+ // Clear loaded config
131
+ this.loadedEndpoints = [];
132
+ this.loadedFlows = [];
133
+ }
134
+ /**
135
+ * Restart the mock server
136
+ *
137
+ * This is a convenience method that stops and starts the server.
138
+ *
139
+ * @returns Promise that resolves when the server has restarted
140
+ */
141
+ async restart() {
142
+ await this.stop();
143
+ await this.start();
144
+ }
145
+ /**
146
+ * Manually trigger a configuration reload
147
+ *
148
+ * This reloads all configuration files and updates the server routes.
149
+ * Useful when hot reload is disabled but you want to reload manually.
150
+ *
151
+ * @returns Promise that resolves when the reload is complete
152
+ */
153
+ async reload() {
154
+ if (!this.serverApp) {
155
+ throw new Error('Server is not running');
156
+ }
157
+ const result = await this.configLoader.reload();
158
+ if (!result.success || !result.config) {
159
+ const errorMessages = result.errors.map((e) => `${e.filePath}: ${e.error}`).join('\n');
160
+ throw new Error(`Failed to reload configuration:\n${errorMessages}`);
161
+ }
162
+ // Update stored config
163
+ this.loadedEndpoints = result.config.endpoints;
164
+ this.loadedFlows = result.config.flows;
165
+ this.serverApp.reloadConfig(this.loadedEndpoints, this.loadedFlows);
166
+ }
167
+ /**
168
+ * Get the current state of the mock server
169
+ *
170
+ * @returns Current server state
171
+ */
172
+ getState() {
173
+ if (!this.serverApp) {
174
+ return {
175
+ running: false,
176
+ port: null,
177
+ endpointCount: 0,
178
+ flowCount: 0,
179
+ hotReloadActive: false,
180
+ activeFlowId: null,
181
+ activeScenarios: {},
182
+ };
183
+ }
184
+ const serverState = this.serverApp.getState();
185
+ const stateManager = this.serverApp.getStateManager();
186
+ const runtimeState = stateManager.getState();
187
+ return {
188
+ running: serverState.running,
189
+ port: serverState.port,
190
+ endpointCount: serverState.endpointCount,
191
+ flowCount: serverState.flowCount,
192
+ hotReloadActive: this.watcher?.isWatching() ?? false,
193
+ activeFlowId: runtimeState.activeFlowId,
194
+ activeScenarios: runtimeState.activeScenarios,
195
+ };
196
+ }
197
+ /**
198
+ * Get the configuration path
199
+ *
200
+ * @returns The configuration directory path
201
+ */
202
+ getConfigPath() {
203
+ return this.configLoader.getConfigPath();
204
+ }
205
+ /**
206
+ * Get the server options
207
+ *
208
+ * @returns The effective server options (with defaults applied)
209
+ */
210
+ getOptions() {
211
+ return { ...this.options };
212
+ }
213
+ /**
214
+ * Get the underlying Express app instance
215
+ *
216
+ * This is useful for adding custom middleware or routes.
217
+ * Returns null if the server is not running.
218
+ *
219
+ * @returns Express app or null
220
+ */
221
+ getApp() {
222
+ return this.serverApp?.getApp() ?? null;
223
+ }
224
+ /**
225
+ * Get the underlying HTTP server instance
226
+ *
227
+ * Returns null if the server is not running.
228
+ *
229
+ * @returns HTTP server or null
230
+ */
231
+ getHttpServer() {
232
+ return this.serverApp?.getHttpServer() ?? null;
233
+ }
234
+ /**
235
+ * Get the loaded endpoints
236
+ *
237
+ * @returns Array of endpoint configurations or empty array if not running
238
+ */
239
+ getEndpoints() {
240
+ return this.loadedEndpoints;
241
+ }
242
+ /**
243
+ * Get the loaded flows
244
+ *
245
+ * @returns Array of flow configurations or empty array if not running
246
+ */
247
+ getFlows() {
248
+ return this.loadedFlows;
249
+ }
250
+ /**
251
+ * Activate a specific scenario for an endpoint
252
+ *
253
+ * @param endpointId - The endpoint ID
254
+ * @param scenarioId - The scenario ID to activate
255
+ */
256
+ activateScenario(endpointId, scenarioId) {
257
+ if (!this.serverApp) {
258
+ throw new Error('Server is not running');
259
+ }
260
+ const stateManager = this.serverApp.getStateManager();
261
+ stateManager.activateScenario(endpointId, scenarioId);
262
+ }
263
+ /**
264
+ * Activate a flow
265
+ *
266
+ * @param flowId - The flow ID to activate, or null to deactivate
267
+ */
268
+ activateFlow(flowId) {
269
+ if (!this.serverApp) {
270
+ throw new Error('Server is not running');
271
+ }
272
+ const stateManager = this.serverApp.getStateManager();
273
+ if (flowId === null) {
274
+ stateManager.deactivateFlow();
275
+ }
276
+ else {
277
+ stateManager.activateFlow(flowId);
278
+ }
279
+ }
280
+ /**
281
+ * Reset the server state to defaults
282
+ *
283
+ * This clears the active flow and resets all endpoint scenarios to their defaults.
284
+ */
285
+ reset() {
286
+ if (!this.serverApp) {
287
+ throw new Error('Server is not running');
288
+ }
289
+ const stateManager = this.serverApp.getStateManager();
290
+ stateManager.reset();
291
+ }
292
+ /**
293
+ * Register a callback to be called when configuration is reloaded
294
+ *
295
+ * @param callback - Function to call on reload
296
+ * @returns Function to unregister the callback
297
+ */
298
+ onReload(callback) {
299
+ this.reloadCallbacks.push(callback);
300
+ return () => {
301
+ const index = this.reloadCallbacks.indexOf(callback);
302
+ if (index !== -1) {
303
+ this.reloadCallbacks.splice(index, 1);
304
+ }
305
+ };
306
+ }
307
+ /**
308
+ * Register a callback to be called on errors
309
+ *
310
+ * @param callback - Function to call on error
311
+ * @returns Function to unregister the callback
312
+ */
313
+ onError(callback) {
314
+ this.errorCallbacks.push(callback);
315
+ return () => {
316
+ const index = this.errorCallbacks.indexOf(callback);
317
+ if (index !== -1) {
318
+ this.errorCallbacks.splice(index, 1);
319
+ }
320
+ };
321
+ }
322
+ /**
323
+ * Start the file watcher for hot reload
324
+ */
325
+ async startWatcher() {
326
+ if (!this.serverApp) {
327
+ return;
328
+ }
329
+ this.watcher = new config_watcher_js_1.ConfigWatcher(this.configLoader, this.options.watcherOptions);
330
+ this.watcher.attachServer(this.serverApp);
331
+ // Forward reload events to registered callbacks and update local state
332
+ this.watcher.onReload(async (event) => {
333
+ // Update local cache of endpoints and flows after reload
334
+ try {
335
+ const result = await this.configLoader.load();
336
+ if (result.success && result.config) {
337
+ this.loadedEndpoints = result.config.endpoints;
338
+ this.loadedFlows = result.config.flows;
339
+ }
340
+ }
341
+ catch {
342
+ // Ignore - watcher will handle reporting errors
343
+ }
344
+ for (const callback of this.reloadCallbacks) {
345
+ try {
346
+ const result = callback(event);
347
+ if (result instanceof Promise) {
348
+ result.catch((err) => this.emitError(err));
349
+ }
350
+ }
351
+ catch (err) {
352
+ this.emitError(err instanceof Error ? err : new Error(String(err)));
353
+ }
354
+ }
355
+ });
356
+ // Forward error events to registered callbacks
357
+ this.watcher.onError((error) => {
358
+ this.emitError(error);
359
+ });
360
+ await this.watcher.start();
361
+ }
362
+ /**
363
+ * Emit an error to all registered error callbacks
364
+ */
365
+ emitError(error) {
366
+ for (const callback of this.errorCallbacks) {
367
+ try {
368
+ callback(error);
369
+ }
370
+ catch {
371
+ // Ignore errors from error callbacks
372
+ }
373
+ }
374
+ }
375
+ }
376
+ exports.MockServer = MockServer;
377
+ /**
378
+ * Create a new MockServer instance
379
+ *
380
+ * This is a convenience function for creating a MockServer.
381
+ *
382
+ * @param options - Configuration options for the server
383
+ * @returns A new MockServer instance
384
+ */
385
+ function createMockServer(options) {
386
+ return new MockServer(options);
387
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-server.js","sourceRoot":"","sources":["../src/mock-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=response-resolver.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-resolver.test.d.ts","sourceRoot":"","sources":["../../../src/resolver/__tests__/response-resolver.test.ts"],"names":[],"mappings":""}