@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,185 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Request body for activating a scenario
4
+ */
5
+ export declare const ActivateScenarioRequestSchema: z.ZodObject<{
6
+ endpointId: z.ZodString;
7
+ scenarioId: z.ZodString;
8
+ }, "strip", z.ZodTypeAny, {
9
+ endpointId: string;
10
+ scenarioId: string;
11
+ }, {
12
+ endpointId: string;
13
+ scenarioId: string;
14
+ }>;
15
+ export type ActivateScenarioRequest = z.infer<typeof ActivateScenarioRequestSchema>;
16
+ /**
17
+ * Request body for activating/deactivating a flow
18
+ */
19
+ export declare const ActivateFlowRequestSchema: z.ZodObject<{
20
+ flowId: z.ZodNullable<z.ZodString>;
21
+ }, "strip", z.ZodTypeAny, {
22
+ flowId: string | null;
23
+ }, {
24
+ flowId: string | null;
25
+ }>;
26
+ export type ActivateFlowRequest = z.infer<typeof ActivateFlowRequestSchema>;
27
+ /**
28
+ * Request body for creating/updating an endpoint
29
+ */
30
+ export declare const EndpointRequestSchema: z.ZodEffects<z.ZodObject<{
31
+ id: z.ZodString;
32
+ path: z.ZodString;
33
+ method: z.ZodEnum<["GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS", "HEAD"]>;
34
+ scenarios: z.ZodArray<z.ZodObject<{
35
+ id: z.ZodString;
36
+ name: z.ZodString;
37
+ status: z.ZodNumber;
38
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
39
+ body: z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodArray<z.ZodUnknown, "many">, z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull, z.ZodFunction<z.ZodTuple<[z.ZodAny], z.ZodUnknown>, z.ZodAny>]>;
40
+ delay: z.ZodOptional<z.ZodNumber>;
41
+ }, "strip", z.ZodTypeAny, {
42
+ status: number;
43
+ id: string;
44
+ name: string;
45
+ body: string | number | boolean | unknown[] | Record<string, unknown> | ((args_0: any, ...args: unknown[]) => any) | null;
46
+ headers?: Record<string, string> | undefined;
47
+ delay?: number | undefined;
48
+ }, {
49
+ status: number;
50
+ id: string;
51
+ name: string;
52
+ body: string | number | boolean | unknown[] | Record<string, unknown> | ((args_0: any, ...args: unknown[]) => any) | null;
53
+ headers?: Record<string, string> | undefined;
54
+ delay?: number | undefined;
55
+ }>, "many">;
56
+ defaultScenarioId: z.ZodString;
57
+ }, "strip", z.ZodTypeAny, {
58
+ path: string;
59
+ id: string;
60
+ method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "OPTIONS" | "HEAD";
61
+ scenarios: {
62
+ status: number;
63
+ id: string;
64
+ name: string;
65
+ body: string | number | boolean | unknown[] | Record<string, unknown> | ((args_0: any, ...args: unknown[]) => any) | null;
66
+ headers?: Record<string, string> | undefined;
67
+ delay?: number | undefined;
68
+ }[];
69
+ defaultScenarioId: string;
70
+ }, {
71
+ path: string;
72
+ id: string;
73
+ method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "OPTIONS" | "HEAD";
74
+ scenarios: {
75
+ status: number;
76
+ id: string;
77
+ name: string;
78
+ body: string | number | boolean | unknown[] | Record<string, unknown> | ((args_0: any, ...args: unknown[]) => any) | null;
79
+ headers?: Record<string, string> | undefined;
80
+ delay?: number | undefined;
81
+ }[];
82
+ defaultScenarioId: string;
83
+ }>, {
84
+ path: string;
85
+ id: string;
86
+ method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "OPTIONS" | "HEAD";
87
+ scenarios: {
88
+ status: number;
89
+ id: string;
90
+ name: string;
91
+ body: string | number | boolean | unknown[] | Record<string, unknown> | ((args_0: any, ...args: unknown[]) => any) | null;
92
+ headers?: Record<string, string> | undefined;
93
+ delay?: number | undefined;
94
+ }[];
95
+ defaultScenarioId: string;
96
+ }, {
97
+ path: string;
98
+ id: string;
99
+ method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "OPTIONS" | "HEAD";
100
+ scenarios: {
101
+ status: number;
102
+ id: string;
103
+ name: string;
104
+ body: string | number | boolean | unknown[] | Record<string, unknown> | ((args_0: any, ...args: unknown[]) => any) | null;
105
+ headers?: Record<string, string> | undefined;
106
+ delay?: number | undefined;
107
+ }[];
108
+ defaultScenarioId: string;
109
+ }>;
110
+ export type EndpointRequest = z.infer<typeof EndpointRequestSchema>;
111
+ /**
112
+ * Request body for creating/updating a flow
113
+ */
114
+ export declare const FlowRequestSchema: z.ZodObject<{
115
+ id: z.ZodString;
116
+ name: z.ZodString;
117
+ description: z.ZodOptional<z.ZodString>;
118
+ category: z.ZodOptional<z.ZodString>;
119
+ endpointScenarios: z.ZodRecord<z.ZodString, z.ZodString>;
120
+ }, "strip", z.ZodTypeAny, {
121
+ id: string;
122
+ name: string;
123
+ endpointScenarios: Record<string, string>;
124
+ description?: string | undefined;
125
+ category?: string | undefined;
126
+ }, {
127
+ id: string;
128
+ name: string;
129
+ endpointScenarios: Record<string, string>;
130
+ description?: string | undefined;
131
+ category?: string | undefined;
132
+ }>;
133
+ export type FlowRequest = z.infer<typeof FlowRequestSchema>;
134
+ /**
135
+ * Request body for duplicating a flow
136
+ */
137
+ export declare const DuplicateFlowRequestSchema: z.ZodObject<{
138
+ newId: z.ZodString;
139
+ newName: z.ZodOptional<z.ZodString>;
140
+ }, "strip", z.ZodTypeAny, {
141
+ newId: string;
142
+ newName?: string | undefined;
143
+ }, {
144
+ newId: string;
145
+ newName?: string | undefined;
146
+ }>;
147
+ export type DuplicateFlowRequest = z.infer<typeof DuplicateFlowRequestSchema>;
148
+ /**
149
+ * Response for GET /config
150
+ */
151
+ export interface ConfigResponse {
152
+ endpoints: Array<{
153
+ id: string;
154
+ path: string;
155
+ method: string;
156
+ scenarios: Array<{
157
+ id: string;
158
+ name: string;
159
+ status: number;
160
+ }>;
161
+ defaultScenarioId: string;
162
+ }>;
163
+ flows: Array<{
164
+ id: string;
165
+ name: string;
166
+ description?: string;
167
+ category?: string;
168
+ endpointScenarios: Record<string, string>;
169
+ }>;
170
+ }
171
+ /**
172
+ * Response for GET /state
173
+ */
174
+ export interface StateResponse {
175
+ activeFlowId: string | null;
176
+ activeScenarios: Record<string, string>;
177
+ }
178
+ /**
179
+ * Error response
180
+ */
181
+ export interface ErrorResponse {
182
+ error: string;
183
+ details?: unknown;
184
+ }
185
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/admin/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;EAGxC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;EAEpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAuB,CAAC;AAC1D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;EAAmB,CAAC;AAClD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;EAGrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,KAAK,CAAC;QACf,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,KAAK,CAAC;YACf,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC,CAAC;QACH,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC,CAAC;IACH,KAAK,EAAE,KAAK,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC3C,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DuplicateFlowRequestSchema = exports.FlowRequestSchema = exports.EndpointRequestSchema = exports.ActivateFlowRequestSchema = exports.ActivateScenarioRequestSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const index_js_1 = require("../schemas/index.js");
6
+ /**
7
+ * Request body for activating a scenario
8
+ */
9
+ exports.ActivateScenarioRequestSchema = zod_1.z.object({
10
+ endpointId: zod_1.z.string().min(1),
11
+ scenarioId: zod_1.z.string().min(1),
12
+ });
13
+ /**
14
+ * Request body for activating/deactivating a flow
15
+ */
16
+ exports.ActivateFlowRequestSchema = zod_1.z.object({
17
+ flowId: zod_1.z.string().min(1).nullable(),
18
+ });
19
+ /**
20
+ * Request body for creating/updating an endpoint
21
+ */
22
+ exports.EndpointRequestSchema = index_js_1.EndpointConfigSchema;
23
+ /**
24
+ * Request body for creating/updating a flow
25
+ */
26
+ exports.FlowRequestSchema = index_js_1.FlowConfigSchema;
27
+ /**
28
+ * Request body for duplicating a flow
29
+ */
30
+ exports.DuplicateFlowRequestSchema = zod_1.z.object({
31
+ newId: zod_1.z.string().min(1).max(100).regex(/^[a-zA-Z0-9_-]+$/, 'ID must be alphanumeric with dashes/underscores'),
32
+ newName: zod_1.z.string().min(1).max(200).optional(),
33
+ });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/admin/types.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,kDAA6E;AAE7E;;GAEG;AACU,QAAA,6BAA6B,GAAG,OAAC,CAAC,MAAM,CAAC;IACpD,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC9B,CAAC,CAAC;AAIH;;GAEG;AACU,QAAA,yBAAyB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChD,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC;AAIH;;GAEG;AACU,QAAA,qBAAqB,GAAG,+BAAoB,CAAC;AAG1D;;GAEG;AACU,QAAA,iBAAiB,GAAG,2BAAgB,CAAC;AAGlD;;GAEG;AACU,QAAA,0BAA0B,GAAG,OAAC,CAAC,MAAM,CAAC;IACjD,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,kBAAkB,EAAE,iDAAiD,CAAC;IAC9G,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CAC/C,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=config-discovery.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-discovery.test.d.ts","sourceRoot":"","sources":["../../../src/config/__tests__/config-discovery.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const path_1 = require("path");
5
+ const config_discovery_js_1 = require("../config-discovery.js");
6
+ const fixturesPath = (0, path_1.join)(__dirname, 'fixtures');
7
+ (0, vitest_1.describe)('discoverConfigFiles', () => {
8
+ (0, vitest_1.it)('should discover JSON files in a directory', async () => {
9
+ const endpointsDir = (0, path_1.join)(fixturesPath, 'mock-config', 'endpoints');
10
+ const files = await (0, config_discovery_js_1.discoverConfigFiles)(endpointsDir);
11
+ (0, vitest_1.expect)(files.length).toBeGreaterThan(0);
12
+ (0, vitest_1.expect)(files.some((f) => f.endsWith('.json'))).toBe(true);
13
+ });
14
+ (0, vitest_1.it)('should discover JS and TS files', async () => {
15
+ const endpointsDir = (0, path_1.join)(fixturesPath, 'mock-config', 'endpoints');
16
+ const files = await (0, config_discovery_js_1.discoverConfigFiles)(endpointsDir);
17
+ (0, vitest_1.expect)(files.some((f) => f.endsWith('.ts'))).toBe(true);
18
+ (0, vitest_1.expect)(files.some((f) => f.endsWith('.js'))).toBe(true);
19
+ });
20
+ (0, vitest_1.it)('should return empty array for non-existent directory', async () => {
21
+ const files = await (0, config_discovery_js_1.discoverConfigFiles)('/non/existent/path');
22
+ (0, vitest_1.expect)(files).toEqual([]);
23
+ });
24
+ (0, vitest_1.it)('should return sorted file paths', async () => {
25
+ const endpointsDir = (0, path_1.join)(fixturesPath, 'mock-config', 'endpoints');
26
+ const files = await (0, config_discovery_js_1.discoverConfigFiles)(endpointsDir);
27
+ const sorted = [...files].sort();
28
+ (0, vitest_1.expect)(files).toEqual(sorted);
29
+ });
30
+ });
31
+ (0, vitest_1.describe)('directoryExists', () => {
32
+ (0, vitest_1.it)('should return true for existing directory', async () => {
33
+ const exists = await (0, config_discovery_js_1.directoryExists)(fixturesPath);
34
+ (0, vitest_1.expect)(exists).toBe(true);
35
+ });
36
+ (0, vitest_1.it)('should return false for non-existent directory', async () => {
37
+ const exists = await (0, config_discovery_js_1.directoryExists)('/non/existent/path');
38
+ (0, vitest_1.expect)(exists).toBe(false);
39
+ });
40
+ (0, vitest_1.it)('should return false for a file path', async () => {
41
+ const filePath = (0, path_1.join)(fixturesPath, 'mock-config', 'endpoints', 'users.json');
42
+ const exists = await (0, config_discovery_js_1.directoryExists)(filePath);
43
+ (0, vitest_1.expect)(exists).toBe(false);
44
+ });
45
+ });
46
+ (0, vitest_1.describe)('getConfigDirectories', () => {
47
+ (0, vitest_1.it)('should return correct endpoint and flow directories', () => {
48
+ const dirs = (0, config_discovery_js_1.getConfigDirectories)('/base/config');
49
+ (0, vitest_1.expect)(dirs.endpointsDir).toBe('/base/config/endpoints');
50
+ (0, vitest_1.expect)(dirs.flowsDir).toBe('/base/config/flows');
51
+ });
52
+ });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-discovery.test.js","sourceRoot":"","sources":["../../../src/config/__tests__/config-discovery.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=config-loader.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-loader.test.d.ts","sourceRoot":"","sources":["../../../src/config/__tests__/config-loader.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const path_1 = require("path");
5
+ const config_loader_js_1 = require("../config-loader.js");
6
+ const fixturesPath = (0, path_1.join)(__dirname, 'fixtures');
7
+ const validConfigPath = (0, path_1.join)(fixturesPath, 'mock-config');
8
+ const invalidConfigPath = (0, path_1.join)(fixturesPath, 'invalid-config');
9
+ (0, vitest_1.describe)('ConfigLoader', () => {
10
+ (0, vitest_1.describe)('constructor', () => {
11
+ (0, vitest_1.it)('should resolve config path', () => {
12
+ const loader = new config_loader_js_1.ConfigLoader('./mock-config');
13
+ (0, vitest_1.expect)(loader.getConfigPath()).toContain('mock-config');
14
+ });
15
+ (0, vitest_1.it)('should set correct endpoints directory', () => {
16
+ const loader = new config_loader_js_1.ConfigLoader(validConfigPath);
17
+ (0, vitest_1.expect)(loader.getEndpointsDir()).toBe((0, path_1.join)(validConfigPath, 'endpoints'));
18
+ });
19
+ (0, vitest_1.it)('should set correct flows directory', () => {
20
+ const loader = new config_loader_js_1.ConfigLoader(validConfigPath);
21
+ (0, vitest_1.expect)(loader.getFlowsDir()).toBe((0, path_1.join)(validConfigPath, 'flows'));
22
+ });
23
+ });
24
+ (0, vitest_1.describe)('loadEndpoints', () => {
25
+ (0, vitest_1.it)('should load all endpoint files', async () => {
26
+ const loader = new config_loader_js_1.ConfigLoader(validConfigPath);
27
+ const result = await loader.loadEndpoints();
28
+ (0, vitest_1.expect)(result.endpoints.length).toBe(3);
29
+ (0, vitest_1.expect)(result.errors).toHaveLength(0);
30
+ });
31
+ (0, vitest_1.it)('should load endpoints from JSON files', async () => {
32
+ const loader = new config_loader_js_1.ConfigLoader(validConfigPath);
33
+ const result = await loader.loadEndpoints();
34
+ const usersEndpoint = result.endpoints.find((e) => e.id === 'get-users');
35
+ (0, vitest_1.expect)(usersEndpoint).toBeDefined();
36
+ (0, vitest_1.expect)(usersEndpoint?.path).toBe('/users');
37
+ });
38
+ (0, vitest_1.it)('should load endpoints from TS files', async () => {
39
+ const loader = new config_loader_js_1.ConfigLoader(validConfigPath);
40
+ const result = await loader.loadEndpoints();
41
+ const productsEndpoint = result.endpoints.find((e) => e.id === 'get-products');
42
+ (0, vitest_1.expect)(productsEndpoint).toBeDefined();
43
+ (0, vitest_1.expect)(productsEndpoint?.path).toBe('/products');
44
+ });
45
+ (0, vitest_1.it)('should load endpoints from JS files', async () => {
46
+ const loader = new config_loader_js_1.ConfigLoader(validConfigPath);
47
+ const result = await loader.loadEndpoints();
48
+ const ordersEndpoint = result.endpoints.find((e) => e.id === 'create-order');
49
+ (0, vitest_1.expect)(ordersEndpoint).toBeDefined();
50
+ (0, vitest_1.expect)(ordersEndpoint?.path).toBe('/orders');
51
+ });
52
+ (0, vitest_1.it)('should return empty array for non-existent directory', async () => {
53
+ const loader = new config_loader_js_1.ConfigLoader('/non/existent/path');
54
+ const result = await loader.loadEndpoints();
55
+ (0, vitest_1.expect)(result.endpoints).toHaveLength(0);
56
+ (0, vitest_1.expect)(result.errors).toHaveLength(0);
57
+ });
58
+ (0, vitest_1.it)('should report validation errors', async () => {
59
+ const loader = new config_loader_js_1.ConfigLoader(invalidConfigPath);
60
+ const result = await loader.loadEndpoints();
61
+ (0, vitest_1.expect)(result.errors.length).toBeGreaterThan(0);
62
+ });
63
+ });
64
+ (0, vitest_1.describe)('loadFlows', () => {
65
+ (0, vitest_1.it)('should load all flow files', async () => {
66
+ const loader = new config_loader_js_1.ConfigLoader(validConfigPath);
67
+ const result = await loader.loadFlows();
68
+ (0, vitest_1.expect)(result.flows.length).toBe(2);
69
+ (0, vitest_1.expect)(result.errors).toHaveLength(0);
70
+ });
71
+ (0, vitest_1.it)('should load flows from JSON files', async () => {
72
+ const loader = new config_loader_js_1.ConfigLoader(validConfigPath);
73
+ const result = await loader.loadFlows();
74
+ const adminFlow = result.flows.find((f) => f.id === 'admin-flow');
75
+ (0, vitest_1.expect)(adminFlow).toBeDefined();
76
+ (0, vitest_1.expect)(adminFlow?.name).toBe('Admin User Flow');
77
+ });
78
+ (0, vitest_1.it)('should load flows from TS files', async () => {
79
+ const loader = new config_loader_js_1.ConfigLoader(validConfigPath);
80
+ const result = await loader.loadFlows();
81
+ const errorFlow = result.flows.find((f) => f.id === 'error-flow');
82
+ (0, vitest_1.expect)(errorFlow).toBeDefined();
83
+ (0, vitest_1.expect)(errorFlow?.name).toBe('Error Flow');
84
+ });
85
+ });
86
+ (0, vitest_1.describe)('load', () => {
87
+ (0, vitest_1.it)('should load complete configuration', async () => {
88
+ const loader = new config_loader_js_1.ConfigLoader(validConfigPath);
89
+ const result = await loader.load();
90
+ (0, vitest_1.expect)(result.success).toBe(true);
91
+ (0, vitest_1.expect)(result.config).toBeDefined();
92
+ (0, vitest_1.expect)(result.config?.endpoints.length).toBe(3);
93
+ (0, vitest_1.expect)(result.config?.flows.length).toBe(2);
94
+ });
95
+ (0, vitest_1.it)('should validate cross-references', async () => {
96
+ const loader = new config_loader_js_1.ConfigLoader(validConfigPath);
97
+ const result = await loader.load();
98
+ (0, vitest_1.expect)(result.success).toBe(true);
99
+ // Admin flow references get-users and get-products which exist
100
+ });
101
+ (0, vitest_1.it)('should fail for invalid configuration', async () => {
102
+ const loader = new config_loader_js_1.ConfigLoader(invalidConfigPath);
103
+ const result = await loader.load();
104
+ (0, vitest_1.expect)(result.success).toBe(false);
105
+ (0, vitest_1.expect)(result.errors.length).toBeGreaterThan(0);
106
+ });
107
+ });
108
+ (0, vitest_1.describe)('reload', () => {
109
+ (0, vitest_1.it)('should reload configuration', async () => {
110
+ const loader = new config_loader_js_1.ConfigLoader(validConfigPath);
111
+ const result1 = await loader.load();
112
+ const result2 = await loader.reload();
113
+ (0, vitest_1.expect)(result1.success).toBe(true);
114
+ (0, vitest_1.expect)(result2.success).toBe(true);
115
+ (0, vitest_1.expect)(result1.config?.endpoints.length).toBe(result2.config?.endpoints.length);
116
+ });
117
+ });
118
+ });
119
+ (0, vitest_1.describe)('createConfigLoader', () => {
120
+ (0, vitest_1.it)('should create a ConfigLoader instance', () => {
121
+ const loader = (0, config_loader_js_1.createConfigLoader)(validConfigPath);
122
+ (0, vitest_1.expect)(loader).toBeInstanceOf(config_loader_js_1.ConfigLoader);
123
+ });
124
+ });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-loader.test.js","sourceRoot":"","sources":["../../../src/config/__tests__/config-loader.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=file-loader.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-loader.test.d.ts","sourceRoot":"","sources":["../../../src/config/__tests__/file-loader.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const path_1 = require("path");
5
+ const file_loader_js_1 = require("../file-loader.js");
6
+ const fixturesPath = (0, path_1.join)(__dirname, 'fixtures');
7
+ (0, vitest_1.describe)('isSupportedExtension', () => {
8
+ (0, vitest_1.it)('should return true for supported extensions', () => {
9
+ (0, vitest_1.expect)((0, file_loader_js_1.isSupportedExtension)('.json')).toBe(true);
10
+ (0, vitest_1.expect)((0, file_loader_js_1.isSupportedExtension)('.js')).toBe(true);
11
+ (0, vitest_1.expect)((0, file_loader_js_1.isSupportedExtension)('.ts')).toBe(true);
12
+ (0, vitest_1.expect)((0, file_loader_js_1.isSupportedExtension)('.mjs')).toBe(true);
13
+ (0, vitest_1.expect)((0, file_loader_js_1.isSupportedExtension)('.mts')).toBe(true);
14
+ });
15
+ (0, vitest_1.it)('should return false for unsupported extensions', () => {
16
+ (0, vitest_1.expect)((0, file_loader_js_1.isSupportedExtension)('.txt')).toBe(false);
17
+ (0, vitest_1.expect)((0, file_loader_js_1.isSupportedExtension)('.yaml')).toBe(false);
18
+ (0, vitest_1.expect)((0, file_loader_js_1.isSupportedExtension)('.xml')).toBe(false);
19
+ });
20
+ });
21
+ (0, vitest_1.describe)('loadConfigFile', () => {
22
+ (0, vitest_1.it)('should load JSON files', async () => {
23
+ const filePath = (0, path_1.join)(fixturesPath, 'mock-config', 'endpoints', 'users.json');
24
+ const result = await (0, file_loader_js_1.loadConfigFile)(filePath);
25
+ (0, vitest_1.expect)(result.success).toBe(true);
26
+ (0, vitest_1.expect)(result.data).toBeDefined();
27
+ (0, vitest_1.expect)(result.data.id).toBe('get-users');
28
+ (0, vitest_1.expect)(result.data.path).toBe('/users');
29
+ });
30
+ (0, vitest_1.it)('should load TypeScript files', async () => {
31
+ const filePath = (0, path_1.join)(fixturesPath, 'mock-config', 'endpoints', 'products.ts');
32
+ const result = await (0, file_loader_js_1.loadConfigFile)(filePath);
33
+ (0, vitest_1.expect)(result.success).toBe(true);
34
+ (0, vitest_1.expect)(result.data).toBeDefined();
35
+ (0, vitest_1.expect)(result.data.id).toBe('get-products');
36
+ (0, vitest_1.expect)(result.data.path).toBe('/products');
37
+ });
38
+ (0, vitest_1.it)('should load JavaScript files', async () => {
39
+ const filePath = (0, path_1.join)(fixturesPath, 'mock-config', 'endpoints', 'orders.js');
40
+ const result = await (0, file_loader_js_1.loadConfigFile)(filePath);
41
+ (0, vitest_1.expect)(result.success).toBe(true);
42
+ (0, vitest_1.expect)(result.data).toBeDefined();
43
+ (0, vitest_1.expect)(result.data.id).toBe('create-order');
44
+ (0, vitest_1.expect)(result.data.path).toBe('/orders');
45
+ });
46
+ (0, vitest_1.it)('should return error for non-existent file', async () => {
47
+ const result = await (0, file_loader_js_1.loadConfigFile)('/non/existent/file.json');
48
+ (0, vitest_1.expect)(result.success).toBe(false);
49
+ (0, vitest_1.expect)(result.error).toBeDefined();
50
+ });
51
+ (0, vitest_1.it)('should return error for unsupported extension', async () => {
52
+ const result = await (0, file_loader_js_1.loadConfigFile)('/some/file.txt');
53
+ (0, vitest_1.expect)(result.success).toBe(false);
54
+ (0, vitest_1.expect)(result.error).toContain('Unsupported file extension');
55
+ });
56
+ (0, vitest_1.it)('should return error for invalid JSON', async () => {
57
+ // Create a temporary invalid JSON test inline
58
+ const result = await (0, file_loader_js_1.loadConfigFile)((0, path_1.join)(fixturesPath, 'invalid-config', 'endpoints', 'bad.json'));
59
+ // The file exists but has schema errors (not JSON parse errors)
60
+ // so it should load successfully as raw data
61
+ (0, vitest_1.expect)(result.success).toBe(true);
62
+ });
63
+ });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-loader.test.js","sourceRoot":"","sources":["../../../src/config/__tests__/file-loader.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ declare const _default: {
2
+ id: string;
3
+ path: string;
4
+ method: string;
5
+ scenarios: ({
6
+ id: string;
7
+ name: string;
8
+ status: number;
9
+ body: {
10
+ id: number;
11
+ name: string;
12
+ price: number;
13
+ }[];
14
+ } | {
15
+ id: string;
16
+ name: string;
17
+ status: number;
18
+ body: {
19
+ message: string;
20
+ };
21
+ })[];
22
+ defaultScenarioId: string;
23
+ };
24
+ export default _default;
25
+ //# sourceMappingURL=products.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"products.d.ts","sourceRoot":"","sources":["../../../../../../src/config/__tests__/fixtures/mock-config/endpoints/products.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,wBAsBE"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = {
4
+ id: 'get-products',
5
+ path: '/products',
6
+ method: 'GET',
7
+ scenarios: [
8
+ {
9
+ id: 'success',
10
+ name: 'Product List',
11
+ status: 200,
12
+ body: [
13
+ { id: 1, name: 'Widget', price: 9.99 },
14
+ { id: 2, name: 'Gadget', price: 19.99 },
15
+ ],
16
+ },
17
+ {
18
+ id: 'not-found',
19
+ name: 'No Products',
20
+ status: 404,
21
+ body: { message: 'No products found' },
22
+ },
23
+ ],
24
+ defaultScenarioId: 'success',
25
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"products.js","sourceRoot":"","sources":["../../../../../../src/config/__tests__/fixtures/mock-config/endpoints/products.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACb,EAAE,EAAE,cAAc;IAClB,IAAI,EAAE,WAAW;IACjB,MAAM,EAAE,KAAK;IACb,SAAS,EAAE;QACT;YACE,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,GAAG;YACX,IAAI,EAAE;gBACJ,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE;gBACtC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE;aACxC;SACF;QACD;YACE,EAAE,EAAE,WAAW;YACf,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE;SACvC;KACF;IACD,iBAAiB,EAAE,SAAS;CAC7B,CAAC"}
@@ -0,0 +1,11 @@
1
+ declare const _default: {
2
+ id: string;
3
+ name: string;
4
+ description: string;
5
+ endpointScenarios: {
6
+ 'get-users': string;
7
+ 'get-products': string;
8
+ };
9
+ };
10
+ export default _default;
11
+ //# sourceMappingURL=error-flow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-flow.d.ts","sourceRoot":"","sources":["../../../../../../src/config/__tests__/fixtures/mock-config/flows/error-flow.ts"],"names":[],"mappings":";;;;;;;;;AAAA,wBAQE"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = {
4
+ id: 'error-flow',
5
+ name: 'Error Flow',
6
+ description: 'Simulates error responses',
7
+ endpointScenarios: {
8
+ 'get-users': 'error',
9
+ 'get-products': 'not-found',
10
+ },
11
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-flow.js","sourceRoot":"","sources":["../../../../../../src/config/__tests__/fixtures/mock-config/flows/error-flow.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACb,EAAE,EAAE,YAAY;IAChB,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,2BAA2B;IACxC,iBAAiB,EAAE;QACjB,WAAW,EAAE,OAAO;QACpB,cAAc,EAAE,WAAW;KAC5B;CACF,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Options for discovering config files
3
+ */
4
+ export interface DiscoveryOptions {
5
+ /** Whether to scan subdirectories recursively */
6
+ recursive?: boolean;
7
+ }
8
+ /**
9
+ * Discover all supported config files in a directory
10
+ */
11
+ export declare function discoverConfigFiles(directory: string, options?: DiscoveryOptions): Promise<string[]>;
12
+ /**
13
+ * Check if a directory exists
14
+ */
15
+ export declare function directoryExists(path: string): Promise<boolean>;
16
+ /**
17
+ * Get the standard config directories from a base config path
18
+ */
19
+ export declare function getConfigDirectories(configPath: string): {
20
+ endpointsDir: string;
21
+ flowsDir: string;
22
+ };
23
+ //# sourceMappingURL=config-discovery.d.ts.map