@zahid15/mockline 0.0.0-stage → 0.1.1

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.
@@ -0,0 +1,1057 @@
1
+ import { z } from 'zod';
2
+
3
+ declare const responseShape: z.ZodObject<{
4
+ status: z.ZodOptional<z.ZodNumber>;
5
+ body: z.ZodOptional<z.ZodUnknown>;
6
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
7
+ delay: z.ZodOptional<z.ZodNumber>;
8
+ }, "strip", z.ZodTypeAny, {
9
+ delay?: number | undefined;
10
+ status?: number | undefined;
11
+ body?: unknown;
12
+ headers?: Record<string, string> | undefined;
13
+ }, {
14
+ delay?: number | undefined;
15
+ status?: number | undefined;
16
+ body?: unknown;
17
+ headers?: Record<string, string> | undefined;
18
+ }>;
19
+ declare const conditionSchema: z.ZodObject<{
20
+ location: z.ZodEnum<["query", "header", "body"]>;
21
+ name: z.ZodString;
22
+ op: z.ZodDefault<z.ZodEnum<["eq", "contains", "regex"]>>;
23
+ value: z.ZodUnknown;
24
+ }, "strip", z.ZodTypeAny, {
25
+ location: "body" | "query" | "header";
26
+ name: string;
27
+ op: "eq" | "contains" | "regex";
28
+ value?: unknown;
29
+ }, {
30
+ location: "body" | "query" | "header";
31
+ name: string;
32
+ value?: unknown;
33
+ op?: "eq" | "contains" | "regex" | undefined;
34
+ }>;
35
+ declare const overrideSchema: z.ZodObject<{
36
+ status: z.ZodOptional<z.ZodNumber>;
37
+ body: z.ZodOptional<z.ZodUnknown>;
38
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
39
+ delay: z.ZodOptional<z.ZodNumber>;
40
+ sequence: z.ZodOptional<z.ZodArray<z.ZodObject<{
41
+ status: z.ZodOptional<z.ZodNumber>;
42
+ body: z.ZodOptional<z.ZodUnknown>;
43
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
44
+ delay: z.ZodOptional<z.ZodNumber>;
45
+ }, "strip", z.ZodTypeAny, {
46
+ delay?: number | undefined;
47
+ status?: number | undefined;
48
+ body?: unknown;
49
+ headers?: Record<string, string> | undefined;
50
+ }, {
51
+ delay?: number | undefined;
52
+ status?: number | undefined;
53
+ body?: unknown;
54
+ headers?: Record<string, string> | undefined;
55
+ }>, "many">>;
56
+ loop: z.ZodDefault<z.ZodBoolean>;
57
+ when: z.ZodOptional<z.ZodObject<{
58
+ location: z.ZodEnum<["query", "header", "body"]>;
59
+ name: z.ZodString;
60
+ op: z.ZodDefault<z.ZodEnum<["eq", "contains", "regex"]>>;
61
+ value: z.ZodUnknown;
62
+ }, "strip", z.ZodTypeAny, {
63
+ location: "body" | "query" | "header";
64
+ name: string;
65
+ op: "eq" | "contains" | "regex";
66
+ value?: unknown;
67
+ }, {
68
+ location: "body" | "query" | "header";
69
+ name: string;
70
+ value?: unknown;
71
+ op?: "eq" | "contains" | "regex" | undefined;
72
+ }>>;
73
+ response: z.ZodOptional<z.ZodObject<{
74
+ status: z.ZodOptional<z.ZodNumber>;
75
+ body: z.ZodOptional<z.ZodUnknown>;
76
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
77
+ delay: z.ZodOptional<z.ZodNumber>;
78
+ }, "strip", z.ZodTypeAny, {
79
+ delay?: number | undefined;
80
+ status?: number | undefined;
81
+ body?: unknown;
82
+ headers?: Record<string, string> | undefined;
83
+ }, {
84
+ delay?: number | undefined;
85
+ status?: number | undefined;
86
+ body?: unknown;
87
+ headers?: Record<string, string> | undefined;
88
+ }>>;
89
+ rules: z.ZodOptional<z.ZodArray<z.ZodObject<{
90
+ when: z.ZodObject<{
91
+ location: z.ZodEnum<["query", "header", "body"]>;
92
+ name: z.ZodString;
93
+ op: z.ZodDefault<z.ZodEnum<["eq", "contains", "regex"]>>;
94
+ value: z.ZodUnknown;
95
+ }, "strip", z.ZodTypeAny, {
96
+ location: "body" | "query" | "header";
97
+ name: string;
98
+ op: "eq" | "contains" | "regex";
99
+ value?: unknown;
100
+ }, {
101
+ location: "body" | "query" | "header";
102
+ name: string;
103
+ value?: unknown;
104
+ op?: "eq" | "contains" | "regex" | undefined;
105
+ }>;
106
+ response: z.ZodObject<{
107
+ status: z.ZodOptional<z.ZodNumber>;
108
+ body: z.ZodOptional<z.ZodUnknown>;
109
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
110
+ delay: z.ZodOptional<z.ZodNumber>;
111
+ }, "strip", z.ZodTypeAny, {
112
+ delay?: number | undefined;
113
+ status?: number | undefined;
114
+ body?: unknown;
115
+ headers?: Record<string, string> | undefined;
116
+ }, {
117
+ delay?: number | undefined;
118
+ status?: number | undefined;
119
+ body?: unknown;
120
+ headers?: Record<string, string> | undefined;
121
+ }>;
122
+ }, "strip", z.ZodTypeAny, {
123
+ when: {
124
+ location: "body" | "query" | "header";
125
+ name: string;
126
+ op: "eq" | "contains" | "regex";
127
+ value?: unknown;
128
+ };
129
+ response: {
130
+ delay?: number | undefined;
131
+ status?: number | undefined;
132
+ body?: unknown;
133
+ headers?: Record<string, string> | undefined;
134
+ };
135
+ }, {
136
+ when: {
137
+ location: "body" | "query" | "header";
138
+ name: string;
139
+ value?: unknown;
140
+ op?: "eq" | "contains" | "regex" | undefined;
141
+ };
142
+ response: {
143
+ delay?: number | undefined;
144
+ status?: number | undefined;
145
+ body?: unknown;
146
+ headers?: Record<string, string> | undefined;
147
+ };
148
+ }>, "many">>;
149
+ }, "strip", z.ZodTypeAny, {
150
+ loop: boolean;
151
+ delay?: number | undefined;
152
+ status?: number | undefined;
153
+ body?: unknown;
154
+ headers?: Record<string, string> | undefined;
155
+ sequence?: {
156
+ delay?: number | undefined;
157
+ status?: number | undefined;
158
+ body?: unknown;
159
+ headers?: Record<string, string> | undefined;
160
+ }[] | undefined;
161
+ when?: {
162
+ location: "body" | "query" | "header";
163
+ name: string;
164
+ op: "eq" | "contains" | "regex";
165
+ value?: unknown;
166
+ } | undefined;
167
+ response?: {
168
+ delay?: number | undefined;
169
+ status?: number | undefined;
170
+ body?: unknown;
171
+ headers?: Record<string, string> | undefined;
172
+ } | undefined;
173
+ rules?: {
174
+ when: {
175
+ location: "body" | "query" | "header";
176
+ name: string;
177
+ op: "eq" | "contains" | "regex";
178
+ value?: unknown;
179
+ };
180
+ response: {
181
+ delay?: number | undefined;
182
+ status?: number | undefined;
183
+ body?: unknown;
184
+ headers?: Record<string, string> | undefined;
185
+ };
186
+ }[] | undefined;
187
+ }, {
188
+ delay?: number | undefined;
189
+ status?: number | undefined;
190
+ body?: unknown;
191
+ headers?: Record<string, string> | undefined;
192
+ sequence?: {
193
+ delay?: number | undefined;
194
+ status?: number | undefined;
195
+ body?: unknown;
196
+ headers?: Record<string, string> | undefined;
197
+ }[] | undefined;
198
+ loop?: boolean | undefined;
199
+ when?: {
200
+ location: "body" | "query" | "header";
201
+ name: string;
202
+ value?: unknown;
203
+ op?: "eq" | "contains" | "regex" | undefined;
204
+ } | undefined;
205
+ response?: {
206
+ delay?: number | undefined;
207
+ status?: number | undefined;
208
+ body?: unknown;
209
+ headers?: Record<string, string> | undefined;
210
+ } | undefined;
211
+ rules?: {
212
+ when: {
213
+ location: "body" | "query" | "header";
214
+ name: string;
215
+ value?: unknown;
216
+ op?: "eq" | "contains" | "regex" | undefined;
217
+ };
218
+ response: {
219
+ delay?: number | undefined;
220
+ status?: number | undefined;
221
+ body?: unknown;
222
+ headers?: Record<string, string> | undefined;
223
+ };
224
+ }[] | undefined;
225
+ }>;
226
+ declare const configSchema: z.ZodObject<{
227
+ port: z.ZodDefault<z.ZodNumber>;
228
+ host: z.ZodDefault<z.ZodString>;
229
+ seed: z.ZodOptional<z.ZodNumber>;
230
+ prefer: z.ZodDefault<z.ZodEnum<["example", "generate"]>>;
231
+ latency: z.ZodDefault<z.ZodUnion<[z.ZodNumber, z.ZodEffects<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, [number, number], [number, number]>, z.ZodEffects<z.ZodEffects<z.ZodObject<{
232
+ fixed: z.ZodOptional<z.ZodNumber>;
233
+ min: z.ZodOptional<z.ZodNumber>;
234
+ max: z.ZodOptional<z.ZodNumber>;
235
+ distribution: z.ZodDefault<z.ZodEnum<["uniform", "normal"]>>;
236
+ }, "strip", z.ZodTypeAny, {
237
+ distribution: "uniform" | "normal";
238
+ min?: number | undefined;
239
+ max?: number | undefined;
240
+ fixed?: number | undefined;
241
+ }, {
242
+ min?: number | undefined;
243
+ max?: number | undefined;
244
+ fixed?: number | undefined;
245
+ distribution?: "uniform" | "normal" | undefined;
246
+ }>, {
247
+ distribution: "uniform" | "normal";
248
+ min?: number | undefined;
249
+ max?: number | undefined;
250
+ fixed?: number | undefined;
251
+ }, {
252
+ min?: number | undefined;
253
+ max?: number | undefined;
254
+ fixed?: number | undefined;
255
+ distribution?: "uniform" | "normal" | undefined;
256
+ }>, {
257
+ distribution: "uniform" | "normal";
258
+ min?: number | undefined;
259
+ max?: number | undefined;
260
+ fixed?: number | undefined;
261
+ }, {
262
+ min?: number | undefined;
263
+ max?: number | undefined;
264
+ fixed?: number | undefined;
265
+ distribution?: "uniform" | "normal" | undefined;
266
+ }>]>>;
267
+ errors: z.ZodDefault<z.ZodObject<{
268
+ rate: z.ZodDefault<z.ZodNumber>;
269
+ statuses: z.ZodDefault<z.ZodArray<z.ZodNumber, "many">>;
270
+ perOperationRates: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodNumber>>;
271
+ }, "strip", z.ZodTypeAny, {
272
+ rate: number;
273
+ statuses: number[];
274
+ perOperationRates: Record<string, number>;
275
+ }, {
276
+ rate?: number | undefined;
277
+ statuses?: number[] | undefined;
278
+ perOperationRates?: Record<string, number> | undefined;
279
+ }>>;
280
+ validate: z.ZodDefault<z.ZodEnum<["off", "warn", "strict"]>>;
281
+ stateful: z.ZodDefault<z.ZodObject<{
282
+ enabled: z.ZodDefault<z.ZodBoolean>;
283
+ seedItems: z.ZodDefault<z.ZodNumber>;
284
+ idProperty: z.ZodDefault<z.ZodString>;
285
+ }, "strip", z.ZodTypeAny, {
286
+ enabled: boolean;
287
+ seedItems: number;
288
+ idProperty: string;
289
+ }, {
290
+ enabled?: boolean | undefined;
291
+ seedItems?: number | undefined;
292
+ idProperty?: string | undefined;
293
+ }>>;
294
+ overrides: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
295
+ status: z.ZodOptional<z.ZodNumber>;
296
+ body: z.ZodOptional<z.ZodUnknown>;
297
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
298
+ delay: z.ZodOptional<z.ZodNumber>;
299
+ sequence: z.ZodOptional<z.ZodArray<z.ZodObject<{
300
+ status: z.ZodOptional<z.ZodNumber>;
301
+ body: z.ZodOptional<z.ZodUnknown>;
302
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
303
+ delay: z.ZodOptional<z.ZodNumber>;
304
+ }, "strip", z.ZodTypeAny, {
305
+ delay?: number | undefined;
306
+ status?: number | undefined;
307
+ body?: unknown;
308
+ headers?: Record<string, string> | undefined;
309
+ }, {
310
+ delay?: number | undefined;
311
+ status?: number | undefined;
312
+ body?: unknown;
313
+ headers?: Record<string, string> | undefined;
314
+ }>, "many">>;
315
+ loop: z.ZodDefault<z.ZodBoolean>;
316
+ when: z.ZodOptional<z.ZodObject<{
317
+ location: z.ZodEnum<["query", "header", "body"]>;
318
+ name: z.ZodString;
319
+ op: z.ZodDefault<z.ZodEnum<["eq", "contains", "regex"]>>;
320
+ value: z.ZodUnknown;
321
+ }, "strip", z.ZodTypeAny, {
322
+ location: "body" | "query" | "header";
323
+ name: string;
324
+ op: "eq" | "contains" | "regex";
325
+ value?: unknown;
326
+ }, {
327
+ location: "body" | "query" | "header";
328
+ name: string;
329
+ value?: unknown;
330
+ op?: "eq" | "contains" | "regex" | undefined;
331
+ }>>;
332
+ response: z.ZodOptional<z.ZodObject<{
333
+ status: z.ZodOptional<z.ZodNumber>;
334
+ body: z.ZodOptional<z.ZodUnknown>;
335
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
336
+ delay: z.ZodOptional<z.ZodNumber>;
337
+ }, "strip", z.ZodTypeAny, {
338
+ delay?: number | undefined;
339
+ status?: number | undefined;
340
+ body?: unknown;
341
+ headers?: Record<string, string> | undefined;
342
+ }, {
343
+ delay?: number | undefined;
344
+ status?: number | undefined;
345
+ body?: unknown;
346
+ headers?: Record<string, string> | undefined;
347
+ }>>;
348
+ rules: z.ZodOptional<z.ZodArray<z.ZodObject<{
349
+ when: z.ZodObject<{
350
+ location: z.ZodEnum<["query", "header", "body"]>;
351
+ name: z.ZodString;
352
+ op: z.ZodDefault<z.ZodEnum<["eq", "contains", "regex"]>>;
353
+ value: z.ZodUnknown;
354
+ }, "strip", z.ZodTypeAny, {
355
+ location: "body" | "query" | "header";
356
+ name: string;
357
+ op: "eq" | "contains" | "regex";
358
+ value?: unknown;
359
+ }, {
360
+ location: "body" | "query" | "header";
361
+ name: string;
362
+ value?: unknown;
363
+ op?: "eq" | "contains" | "regex" | undefined;
364
+ }>;
365
+ response: z.ZodObject<{
366
+ status: z.ZodOptional<z.ZodNumber>;
367
+ body: z.ZodOptional<z.ZodUnknown>;
368
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
369
+ delay: z.ZodOptional<z.ZodNumber>;
370
+ }, "strip", z.ZodTypeAny, {
371
+ delay?: number | undefined;
372
+ status?: number | undefined;
373
+ body?: unknown;
374
+ headers?: Record<string, string> | undefined;
375
+ }, {
376
+ delay?: number | undefined;
377
+ status?: number | undefined;
378
+ body?: unknown;
379
+ headers?: Record<string, string> | undefined;
380
+ }>;
381
+ }, "strip", z.ZodTypeAny, {
382
+ when: {
383
+ location: "body" | "query" | "header";
384
+ name: string;
385
+ op: "eq" | "contains" | "regex";
386
+ value?: unknown;
387
+ };
388
+ response: {
389
+ delay?: number | undefined;
390
+ status?: number | undefined;
391
+ body?: unknown;
392
+ headers?: Record<string, string> | undefined;
393
+ };
394
+ }, {
395
+ when: {
396
+ location: "body" | "query" | "header";
397
+ name: string;
398
+ value?: unknown;
399
+ op?: "eq" | "contains" | "regex" | undefined;
400
+ };
401
+ response: {
402
+ delay?: number | undefined;
403
+ status?: number | undefined;
404
+ body?: unknown;
405
+ headers?: Record<string, string> | undefined;
406
+ };
407
+ }>, "many">>;
408
+ }, "strip", z.ZodTypeAny, {
409
+ loop: boolean;
410
+ delay?: number | undefined;
411
+ status?: number | undefined;
412
+ body?: unknown;
413
+ headers?: Record<string, string> | undefined;
414
+ sequence?: {
415
+ delay?: number | undefined;
416
+ status?: number | undefined;
417
+ body?: unknown;
418
+ headers?: Record<string, string> | undefined;
419
+ }[] | undefined;
420
+ when?: {
421
+ location: "body" | "query" | "header";
422
+ name: string;
423
+ op: "eq" | "contains" | "regex";
424
+ value?: unknown;
425
+ } | undefined;
426
+ response?: {
427
+ delay?: number | undefined;
428
+ status?: number | undefined;
429
+ body?: unknown;
430
+ headers?: Record<string, string> | undefined;
431
+ } | undefined;
432
+ rules?: {
433
+ when: {
434
+ location: "body" | "query" | "header";
435
+ name: string;
436
+ op: "eq" | "contains" | "regex";
437
+ value?: unknown;
438
+ };
439
+ response: {
440
+ delay?: number | undefined;
441
+ status?: number | undefined;
442
+ body?: unknown;
443
+ headers?: Record<string, string> | undefined;
444
+ };
445
+ }[] | undefined;
446
+ }, {
447
+ delay?: number | undefined;
448
+ status?: number | undefined;
449
+ body?: unknown;
450
+ headers?: Record<string, string> | undefined;
451
+ sequence?: {
452
+ delay?: number | undefined;
453
+ status?: number | undefined;
454
+ body?: unknown;
455
+ headers?: Record<string, string> | undefined;
456
+ }[] | undefined;
457
+ loop?: boolean | undefined;
458
+ when?: {
459
+ location: "body" | "query" | "header";
460
+ name: string;
461
+ value?: unknown;
462
+ op?: "eq" | "contains" | "regex" | undefined;
463
+ } | undefined;
464
+ response?: {
465
+ delay?: number | undefined;
466
+ status?: number | undefined;
467
+ body?: unknown;
468
+ headers?: Record<string, string> | undefined;
469
+ } | undefined;
470
+ rules?: {
471
+ when: {
472
+ location: "body" | "query" | "header";
473
+ name: string;
474
+ value?: unknown;
475
+ op?: "eq" | "contains" | "regex" | undefined;
476
+ };
477
+ response: {
478
+ delay?: number | undefined;
479
+ status?: number | undefined;
480
+ body?: unknown;
481
+ headers?: Record<string, string> | undefined;
482
+ };
483
+ }[] | undefined;
484
+ }>>>;
485
+ proxy: z.ZodDefault<z.ZodEffects<z.ZodObject<{
486
+ url: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
487
+ all: z.ZodDefault<z.ZodBoolean>;
488
+ allowPrivate: z.ZodDefault<z.ZodBoolean>;
489
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
490
+ recordFile: z.ZodOptional<z.ZodString>;
491
+ }, "strip", z.ZodTypeAny, {
492
+ all: boolean;
493
+ allowPrivate: boolean;
494
+ timeoutMs: number;
495
+ recordFile?: string | undefined;
496
+ url?: string | undefined;
497
+ }, {
498
+ recordFile?: string | undefined;
499
+ url?: string | undefined;
500
+ all?: boolean | undefined;
501
+ allowPrivate?: boolean | undefined;
502
+ timeoutMs?: number | undefined;
503
+ }>, {
504
+ all: boolean;
505
+ allowPrivate: boolean;
506
+ timeoutMs: number;
507
+ recordFile?: string | undefined;
508
+ url?: string | undefined;
509
+ }, {
510
+ recordFile?: string | undefined;
511
+ url?: string | undefined;
512
+ all?: boolean | undefined;
513
+ allowPrivate?: boolean | undefined;
514
+ timeoutMs?: number | undefined;
515
+ }>>;
516
+ cors: z.ZodDefault<z.ZodObject<{
517
+ enabled: z.ZodDefault<z.ZodBoolean>;
518
+ origins: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
519
+ }, "strip", z.ZodTypeAny, {
520
+ enabled: boolean;
521
+ origins: string[];
522
+ }, {
523
+ enabled?: boolean | undefined;
524
+ origins?: string[] | undefined;
525
+ }>>;
526
+ recording: z.ZodDefault<z.ZodObject<{
527
+ enabled: z.ZodDefault<z.ZodBoolean>;
528
+ file: z.ZodOptional<z.ZodString>;
529
+ maxRequests: z.ZodDefault<z.ZodNumber>;
530
+ redactHeaders: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
531
+ }, "strip", z.ZodTypeAny, {
532
+ enabled: boolean;
533
+ maxRequests: number;
534
+ redactHeaders: string[];
535
+ file?: string | undefined;
536
+ }, {
537
+ enabled?: boolean | undefined;
538
+ file?: string | undefined;
539
+ maxRequests?: number | undefined;
540
+ redactHeaders?: string[] | undefined;
541
+ }>>;
542
+ generation: z.ZodDefault<z.ZodEffects<z.ZodObject<{
543
+ hints: z.ZodDefault<z.ZodUnion<[z.ZodBoolean, z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>, "many">]>>]>>;
544
+ counter: z.ZodDefault<z.ZodBoolean>;
545
+ maxDepth: z.ZodDefault<z.ZodNumber>;
546
+ minArrayItems: z.ZodDefault<z.ZodNumber>;
547
+ maxArrayItems: z.ZodDefault<z.ZodNumber>;
548
+ }, "strip", z.ZodTypeAny, {
549
+ hints: boolean | Record<string, string | number | boolean | (string | number | boolean | null)[] | null>;
550
+ counter: boolean;
551
+ maxDepth: number;
552
+ minArrayItems: number;
553
+ maxArrayItems: number;
554
+ }, {
555
+ hints?: boolean | Record<string, string | number | boolean | (string | number | boolean | null)[] | null> | undefined;
556
+ counter?: boolean | undefined;
557
+ maxDepth?: number | undefined;
558
+ minArrayItems?: number | undefined;
559
+ maxArrayItems?: number | undefined;
560
+ }>, {
561
+ hints: boolean | Record<string, string | number | boolean | (string | number | boolean | null)[] | null>;
562
+ counter: boolean;
563
+ maxDepth: number;
564
+ minArrayItems: number;
565
+ maxArrayItems: number;
566
+ }, {
567
+ hints?: boolean | Record<string, string | number | boolean | (string | number | boolean | null)[] | null> | undefined;
568
+ counter?: boolean | undefined;
569
+ maxDepth?: number | undefined;
570
+ minArrayItems?: number | undefined;
571
+ maxArrayItems?: number | undefined;
572
+ }>>;
573
+ controlHeaders: z.ZodDefault<z.ZodObject<{
574
+ allow: z.ZodDefault<z.ZodBoolean>;
575
+ }, "strip", z.ZodTypeAny, {
576
+ allow: boolean;
577
+ }, {
578
+ allow?: boolean | undefined;
579
+ }>>;
580
+ inspector: z.ZodDefault<z.ZodObject<{
581
+ enabled: z.ZodOptional<z.ZodBoolean>;
582
+ }, "strip", z.ZodTypeAny, {
583
+ enabled?: boolean | undefined;
584
+ }, {
585
+ enabled?: boolean | undefined;
586
+ }>>;
587
+ enforceAuth: z.ZodDefault<z.ZodBoolean>;
588
+ requestBodyLimit: z.ZodDefault<z.ZodNumber>;
589
+ requestTimeoutMs: z.ZodDefault<z.ZodNumber>;
590
+ }, "strip", z.ZodTypeAny, {
591
+ port: number;
592
+ host: string;
593
+ prefer: "example" | "generate";
594
+ validate: "off" | "warn" | "strict";
595
+ stateful: {
596
+ enabled: boolean;
597
+ seedItems: number;
598
+ idProperty: string;
599
+ };
600
+ proxy: {
601
+ all: boolean;
602
+ allowPrivate: boolean;
603
+ timeoutMs: number;
604
+ recordFile?: string | undefined;
605
+ url?: string | undefined;
606
+ };
607
+ cors: {
608
+ enabled: boolean;
609
+ origins: string[];
610
+ };
611
+ inspector: {
612
+ enabled?: boolean | undefined;
613
+ };
614
+ enforceAuth: boolean;
615
+ latency: number | [number, number] | {
616
+ distribution: "uniform" | "normal";
617
+ min?: number | undefined;
618
+ max?: number | undefined;
619
+ fixed?: number | undefined;
620
+ };
621
+ errors: {
622
+ rate: number;
623
+ statuses: number[];
624
+ perOperationRates: Record<string, number>;
625
+ };
626
+ overrides: Record<string, {
627
+ loop: boolean;
628
+ delay?: number | undefined;
629
+ status?: number | undefined;
630
+ body?: unknown;
631
+ headers?: Record<string, string> | undefined;
632
+ sequence?: {
633
+ delay?: number | undefined;
634
+ status?: number | undefined;
635
+ body?: unknown;
636
+ headers?: Record<string, string> | undefined;
637
+ }[] | undefined;
638
+ when?: {
639
+ location: "body" | "query" | "header";
640
+ name: string;
641
+ op: "eq" | "contains" | "regex";
642
+ value?: unknown;
643
+ } | undefined;
644
+ response?: {
645
+ delay?: number | undefined;
646
+ status?: number | undefined;
647
+ body?: unknown;
648
+ headers?: Record<string, string> | undefined;
649
+ } | undefined;
650
+ rules?: {
651
+ when: {
652
+ location: "body" | "query" | "header";
653
+ name: string;
654
+ op: "eq" | "contains" | "regex";
655
+ value?: unknown;
656
+ };
657
+ response: {
658
+ delay?: number | undefined;
659
+ status?: number | undefined;
660
+ body?: unknown;
661
+ headers?: Record<string, string> | undefined;
662
+ };
663
+ }[] | undefined;
664
+ }>;
665
+ recording: {
666
+ enabled: boolean;
667
+ maxRequests: number;
668
+ redactHeaders: string[];
669
+ file?: string | undefined;
670
+ };
671
+ generation: {
672
+ hints: boolean | Record<string, string | number | boolean | (string | number | boolean | null)[] | null>;
673
+ counter: boolean;
674
+ maxDepth: number;
675
+ minArrayItems: number;
676
+ maxArrayItems: number;
677
+ };
678
+ controlHeaders: {
679
+ allow: boolean;
680
+ };
681
+ requestBodyLimit: number;
682
+ requestTimeoutMs: number;
683
+ seed?: number | undefined;
684
+ }, {
685
+ port?: number | undefined;
686
+ host?: string | undefined;
687
+ seed?: number | undefined;
688
+ prefer?: "example" | "generate" | undefined;
689
+ validate?: "off" | "warn" | "strict" | undefined;
690
+ stateful?: {
691
+ enabled?: boolean | undefined;
692
+ seedItems?: number | undefined;
693
+ idProperty?: string | undefined;
694
+ } | undefined;
695
+ proxy?: {
696
+ recordFile?: string | undefined;
697
+ url?: string | undefined;
698
+ all?: boolean | undefined;
699
+ allowPrivate?: boolean | undefined;
700
+ timeoutMs?: number | undefined;
701
+ } | undefined;
702
+ cors?: {
703
+ enabled?: boolean | undefined;
704
+ origins?: string[] | undefined;
705
+ } | undefined;
706
+ inspector?: {
707
+ enabled?: boolean | undefined;
708
+ } | undefined;
709
+ enforceAuth?: boolean | undefined;
710
+ latency?: number | [number, number] | {
711
+ min?: number | undefined;
712
+ max?: number | undefined;
713
+ fixed?: number | undefined;
714
+ distribution?: "uniform" | "normal" | undefined;
715
+ } | undefined;
716
+ errors?: {
717
+ rate?: number | undefined;
718
+ statuses?: number[] | undefined;
719
+ perOperationRates?: Record<string, number> | undefined;
720
+ } | undefined;
721
+ overrides?: Record<string, {
722
+ delay?: number | undefined;
723
+ status?: number | undefined;
724
+ body?: unknown;
725
+ headers?: Record<string, string> | undefined;
726
+ sequence?: {
727
+ delay?: number | undefined;
728
+ status?: number | undefined;
729
+ body?: unknown;
730
+ headers?: Record<string, string> | undefined;
731
+ }[] | undefined;
732
+ loop?: boolean | undefined;
733
+ when?: {
734
+ location: "body" | "query" | "header";
735
+ name: string;
736
+ value?: unknown;
737
+ op?: "eq" | "contains" | "regex" | undefined;
738
+ } | undefined;
739
+ response?: {
740
+ delay?: number | undefined;
741
+ status?: number | undefined;
742
+ body?: unknown;
743
+ headers?: Record<string, string> | undefined;
744
+ } | undefined;
745
+ rules?: {
746
+ when: {
747
+ location: "body" | "query" | "header";
748
+ name: string;
749
+ value?: unknown;
750
+ op?: "eq" | "contains" | "regex" | undefined;
751
+ };
752
+ response: {
753
+ delay?: number | undefined;
754
+ status?: number | undefined;
755
+ body?: unknown;
756
+ headers?: Record<string, string> | undefined;
757
+ };
758
+ }[] | undefined;
759
+ }> | undefined;
760
+ recording?: {
761
+ enabled?: boolean | undefined;
762
+ file?: string | undefined;
763
+ maxRequests?: number | undefined;
764
+ redactHeaders?: string[] | undefined;
765
+ } | undefined;
766
+ generation?: {
767
+ hints?: boolean | Record<string, string | number | boolean | (string | number | boolean | null)[] | null> | undefined;
768
+ counter?: boolean | undefined;
769
+ maxDepth?: number | undefined;
770
+ minArrayItems?: number | undefined;
771
+ maxArrayItems?: number | undefined;
772
+ } | undefined;
773
+ controlHeaders?: {
774
+ allow?: boolean | undefined;
775
+ } | undefined;
776
+ requestBodyLimit?: number | undefined;
777
+ requestTimeoutMs?: number | undefined;
778
+ }>;
779
+ type MocklineConfig = z.infer<typeof configSchema>;
780
+ type OverrideConfig = z.input<typeof overrideSchema>;
781
+ type NormalizedOverrideConfig = MocklineConfig['overrides'][string];
782
+ type OverrideResponseConfig = z.infer<typeof responseShape>;
783
+ type ConditionConfig = z.infer<typeof conditionSchema>;
784
+ type ConditionInput = z.input<typeof conditionSchema>;
785
+ declare const defaultConfig: MocklineConfig;
786
+
787
+ interface Logger {
788
+ info(message: string): void;
789
+ warn(message: string): void;
790
+ error(message: string): void;
791
+ debug(message: string): void;
792
+ }
793
+
794
+ type UnknownRecord = Record<string, unknown>;
795
+ interface JsonSchema extends UnknownRecord {
796
+ type?: string | string[];
797
+ properties?: Record<string, JsonSchema>;
798
+ items?: JsonSchema;
799
+ required?: string[];
800
+ enum?: unknown[];
801
+ const?: unknown;
802
+ $ref?: string;
803
+ }
804
+ interface MediaTypeObject extends UnknownRecord {
805
+ schema?: JsonSchema;
806
+ example?: unknown;
807
+ examples?: Record<string, ExampleObject | unknown>;
808
+ }
809
+ interface ExampleObject extends UnknownRecord {
810
+ value?: unknown;
811
+ externalValue?: string;
812
+ summary?: string;
813
+ }
814
+ interface ApiResponse extends UnknownRecord {
815
+ description?: string;
816
+ content?: Record<string, MediaTypeObject>;
817
+ headers?: Record<string, UnknownRecord>;
818
+ }
819
+ interface ApiParameter extends UnknownRecord {
820
+ name: string;
821
+ in: 'path' | 'query' | 'header' | 'cookie';
822
+ required?: boolean;
823
+ schema?: JsonSchema;
824
+ style?: string;
825
+ explode?: boolean;
826
+ }
827
+ interface ApiOperation extends UnknownRecord {
828
+ operationId?: string;
829
+ parameters?: ApiParameter[];
830
+ requestBody?: UnknownRecord;
831
+ responses?: Record<string, ApiResponse>;
832
+ security?: Array<Record<string, string[]>>;
833
+ summary?: string;
834
+ }
835
+ interface ApiPathItem extends UnknownRecord {
836
+ parameters?: ApiParameter[];
837
+ servers?: Array<{
838
+ url: string;
839
+ }>;
840
+ }
841
+ interface ApiServer {
842
+ url: string;
843
+ variables?: Record<string, {
844
+ default?: string;
845
+ enum?: string[];
846
+ }>;
847
+ }
848
+ interface OpenApiDocument extends UnknownRecord {
849
+ openapi?: string;
850
+ swagger?: string;
851
+ info?: UnknownRecord;
852
+ servers?: ApiServer[];
853
+ paths?: Record<string, ApiPathItem>;
854
+ components?: {
855
+ schemas?: Record<string, JsonSchema>;
856
+ securitySchemes?: Record<string, UnknownRecord>;
857
+ [key: string]: unknown;
858
+ };
859
+ security?: Array<Record<string, string[]>>;
860
+ }
861
+ interface MatchedRoute {
862
+ method: string;
863
+ path: string;
864
+ routePath: string;
865
+ operationId: string;
866
+ operation: ApiOperation;
867
+ pathItem: ApiPathItem;
868
+ parameters: ApiParameter[];
869
+ score: number;
870
+ }
871
+ type ResponseSource = 'example' | 'generated' | 'override' | 'proxy' | 'state';
872
+ interface RecordedRequest {
873
+ id: string;
874
+ timestamp: string;
875
+ method: string;
876
+ url: string;
877
+ operationId?: string;
878
+ matchedPath?: string;
879
+ headers: Record<string, string | string[]>;
880
+ body?: unknown;
881
+ responseStatus: number;
882
+ responseSource: ResponseSource | 'inspector' | 'error';
883
+ durationMs: number;
884
+ validationErrors: string[];
885
+ }
886
+ interface RequestFilter {
887
+ method?: string;
888
+ path?: string;
889
+ status?: number;
890
+ operationId?: string;
891
+ since?: string | Date;
892
+ limit?: number;
893
+ }
894
+ interface MockResponse {
895
+ status: number;
896
+ body?: unknown;
897
+ headers?: Record<string, string>;
898
+ delay?: number;
899
+ source: ResponseSource;
900
+ }
901
+ interface SummaryOperation {
902
+ method: string;
903
+ path: string;
904
+ operationId: string;
905
+ defaultStatus: string;
906
+ source: 'example' | 'override' | 'schema generation';
907
+ }
908
+
909
+ interface RequestAccessor {
910
+ (filter?: RequestFilter): RecordedRequest[];
911
+ get(id: string): RecordedRequest | undefined;
912
+ clear(): void;
913
+ }
914
+ interface MockServer {
915
+ readonly url: string;
916
+ readonly requests: RequestAccessor;
917
+ reset(): Promise<void>;
918
+ setOverride(key: string, override: OverrideConfig): void;
919
+ close(): Promise<void>;
920
+ }
921
+ type DeepPartial<T> = T extends readonly unknown[] ? T : T extends object ? {
922
+ [K in keyof T]?: DeepPartial<T[K]>;
923
+ } : T;
924
+ interface CreateMockServerOptions {
925
+ spec: string;
926
+ port?: number;
927
+ host?: string;
928
+ seed?: number;
929
+ config?: DeepPartial<MocklineConfig>;
930
+ inspector?: boolean;
931
+ logger?: Logger;
932
+ clock?: () => Date;
933
+ fetch?: typeof globalThis.fetch;
934
+ watch?: boolean;
935
+ configFile?: string;
936
+ reloadConfig?: () => Promise<MocklineConfig>;
937
+ }
938
+ declare function createMockServer(options: CreateMockServerOptions): Promise<MockServer>;
939
+
940
+ interface SpecWarning {
941
+ message: string;
942
+ operationId?: string;
943
+ path?: string;
944
+ }
945
+ interface LoadedSpec {
946
+ file: string;
947
+ document: OpenApiDocument;
948
+ dereferenced: OpenApiDocument;
949
+ warnings: SpecWarning[];
950
+ }
951
+ declare function inspectSpec(document: OpenApiDocument): SpecWarning[];
952
+ declare function loadSpec(file: string): Promise<LoadedSpec>;
953
+
954
+ declare function defaultStatus(responses: Record<string, ApiResponse> | undefined): string;
955
+ declare function summarizeSpec(spec: LoadedSpec, overrideKeys?: string[]): SummaryOperation[];
956
+
957
+ interface RouteMatch {
958
+ route: MatchedRoute;
959
+ params: Record<string, string>;
960
+ }
961
+ interface Router {
962
+ routes: MatchedRoute[];
963
+ match(method: string, pathname: string): RouteMatch | undefined;
964
+ methodsForPath(pathname: string): string[];
965
+ nearestPath(pathname: string): string | undefined;
966
+ }
967
+ declare function normalizePath(value: string): string;
968
+ declare function createRouter(document: OpenApiDocument): Router;
969
+
970
+ declare function hashSeed(input: string | number): number;
971
+ declare function deriveSeed(seed: number | undefined, ...parts: Array<string | number>): number;
972
+ declare class SeededRandom {
973
+ private state;
974
+ constructor(seed: number);
975
+ next(): number;
976
+ int(min: number, max: number): number;
977
+ float(min: number, max: number): number;
978
+ bool(probability?: number): boolean;
979
+ pick<T>(items: readonly T[]): T | undefined;
980
+ }
981
+
982
+ type HintValue = string | number | boolean | null;
983
+ type GenerationHints = Record<string, HintValue | readonly HintValue[]>;
984
+
985
+ interface GenerationOptions {
986
+ seed?: number;
987
+ root?: OpenApiDocument;
988
+ maxDepth?: number;
989
+ minArrayItems?: number;
990
+ maxArrayItems?: number;
991
+ hints?: boolean | GenerationHints;
992
+ mode?: 'response' | 'request';
993
+ }
994
+ interface GeneratorWarning {
995
+ message: string;
996
+ }
997
+ interface GenerationResult {
998
+ value: unknown;
999
+ warnings: GeneratorWarning[];
1000
+ }
1001
+ declare function generateFromSchema(schema: JsonSchema, options?: GenerationOptions): GenerationResult;
1002
+ declare function generateValue(schema: JsonSchema, options?: GenerationOptions): unknown;
1003
+
1004
+ interface ValidationIssue {
1005
+ location: string;
1006
+ message: string;
1007
+ keyword?: string;
1008
+ }
1009
+ interface RequestValidationInput {
1010
+ root: OpenApiDocument;
1011
+ route: MatchedRoute;
1012
+ params: Record<string, string>;
1013
+ url: URL;
1014
+ headers: Record<string, string | string[] | undefined>;
1015
+ body: unknown;
1016
+ bodyPresent: boolean;
1017
+ }
1018
+ interface RequestValidationResult {
1019
+ valid: boolean;
1020
+ issues: ValidationIssue[];
1021
+ bodyInvalid: boolean;
1022
+ }
1023
+ declare function validateRequest(input: RequestValidationInput): RequestValidationResult;
1024
+ declare function checkSecurityPresence(root: OpenApiDocument, operation: ApiOperation, headers: RequestValidationInput['headers'], url: URL): {
1025
+ authorized: boolean;
1026
+ missing: string[];
1027
+ };
1028
+
1029
+ interface ResourceCollection {
1030
+ path: string;
1031
+ idParam: string;
1032
+ idProperty: string;
1033
+ listRoute: MatchedRoute;
1034
+ createRoute: MatchedRoute;
1035
+ itemRoutes: Map<string, MatchedRoute>;
1036
+ itemSchema: JsonSchema;
1037
+ createSchema?: JsonSchema;
1038
+ limitParam?: string;
1039
+ offsetParam?: string;
1040
+ }
1041
+ declare function detectCollections(router: Router, root: OpenApiDocument, idProperty?: string): ResourceCollection[];
1042
+
1043
+ declare class ResourceStore {
1044
+ readonly collections: ResourceCollection[];
1045
+ private readonly root;
1046
+ private seed;
1047
+ private config;
1048
+ private readonly data;
1049
+ private readonly routeIndex;
1050
+ constructor(router: Router, root: OpenApiDocument, config: MocklineConfig);
1051
+ setConfig(config: MocklineConfig): void;
1052
+ reset(): void;
1053
+ handle(route: MatchedRoute, params: Record<string, string>, url: URL, body: unknown): MockResponse | undefined;
1054
+ private ensureId;
1055
+ }
1056
+
1057
+ export { type ConditionConfig, type ConditionInput, type CreateMockServerOptions, type DeepPartial, type GenerationOptions, type GeneratorWarning, type LoadedSpec, type MockServer, type MocklineConfig, type NormalizedOverrideConfig, type OverrideConfig, type OverrideResponseConfig, type RecordedRequest, type RequestAccessor, type RequestFilter, type RequestValidationInput, type RequestValidationResult, type ResourceCollection, ResourceStore, type ResponseSource, type RouteMatch, type Router, SeededRandom, type SpecWarning, type ValidationIssue, checkSecurityPresence, configSchema, createMockServer, createRouter, defaultConfig, defaultStatus, deriveSeed, detectCollections, generateFromSchema, generateValue, hashSeed, inspectSpec, loadSpec, normalizePath, summarizeSpec, validateRequest };