@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.
- package/README.md +643 -0
- package/dist/__tests__/mock-server.test.d.ts +5 -0
- package/dist/__tests__/mock-server.test.d.ts.map +1 -0
- package/dist/__tests__/mock-server.test.js +599 -0
- package/dist/__tests__/mock-server.test.js.map +1 -0
- package/dist/admin/__tests__/admin-router.test.d.ts +2 -0
- package/dist/admin/__tests__/admin-router.test.d.ts.map +1 -0
- package/dist/admin/__tests__/admin-router.test.js +621 -0
- package/dist/admin/__tests__/admin-router.test.js.map +1 -0
- package/dist/admin/admin-router.d.ts +27 -0
- package/dist/admin/admin-router.d.ts.map +1 -0
- package/dist/admin/admin-router.js +616 -0
- package/dist/admin/admin-router.js.map +1 -0
- package/dist/admin/index.d.ts +4 -0
- package/dist/admin/index.d.ts.map +1 -0
- package/dist/admin/index.js +10 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/admin/types.d.ts +185 -0
- package/dist/admin/types.d.ts.map +1 -0
- package/dist/admin/types.js +33 -0
- package/dist/admin/types.js.map +1 -0
- package/dist/config/__tests__/config-discovery.test.d.ts +2 -0
- package/dist/config/__tests__/config-discovery.test.d.ts.map +1 -0
- package/dist/config/__tests__/config-discovery.test.js +52 -0
- package/dist/config/__tests__/config-discovery.test.js.map +1 -0
- package/dist/config/__tests__/config-loader.test.d.ts +2 -0
- package/dist/config/__tests__/config-loader.test.d.ts.map +1 -0
- package/dist/config/__tests__/config-loader.test.js +124 -0
- package/dist/config/__tests__/config-loader.test.js.map +1 -0
- package/dist/config/__tests__/file-loader.test.d.ts +2 -0
- package/dist/config/__tests__/file-loader.test.d.ts.map +1 -0
- package/dist/config/__tests__/file-loader.test.js +63 -0
- package/dist/config/__tests__/file-loader.test.js.map +1 -0
- package/dist/config/__tests__/fixtures/mock-config/endpoints/products.d.ts +25 -0
- package/dist/config/__tests__/fixtures/mock-config/endpoints/products.d.ts.map +1 -0
- package/dist/config/__tests__/fixtures/mock-config/endpoints/products.js +25 -0
- package/dist/config/__tests__/fixtures/mock-config/endpoints/products.js.map +1 -0
- package/dist/config/__tests__/fixtures/mock-config/flows/error-flow.d.ts +11 -0
- package/dist/config/__tests__/fixtures/mock-config/flows/error-flow.d.ts.map +1 -0
- package/dist/config/__tests__/fixtures/mock-config/flows/error-flow.js +11 -0
- package/dist/config/__tests__/fixtures/mock-config/flows/error-flow.js.map +1 -0
- package/dist/config/config-discovery.d.ts +23 -0
- package/dist/config/config-discovery.d.ts.map +1 -0
- package/dist/config/config-discovery.js +60 -0
- package/dist/config/config-discovery.js.map +1 -0
- package/dist/config/config-loader.d.ts +56 -0
- package/dist/config/config-loader.d.ts.map +1 -0
- package/dist/config/config-loader.js +162 -0
- package/dist/config/config-loader.js.map +1 -0
- package/dist/config/config-writer.d.ts +96 -0
- package/dist/config/config-writer.d.ts.map +1 -0
- package/dist/config/config-writer.js +248 -0
- package/dist/config/config-writer.js.map +1 -0
- package/dist/config/file-loader.d.ts +16 -0
- package/dist/config/file-loader.d.ts.map +1 -0
- package/dist/config/file-loader.js +90 -0
- package/dist/config/file-loader.js.map +1 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +23 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/types.d.ts +47 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +7 -0
- package/dist/config/types.js.map +1 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +31 -0
- package/dist/index.js.map +1 -0
- package/dist/mock-server.d.ts +243 -0
- package/dist/mock-server.d.ts.map +1 -0
- package/dist/mock-server.js +387 -0
- package/dist/mock-server.js.map +1 -0
- package/dist/resolver/__tests__/response-resolver.test.d.ts +2 -0
- package/dist/resolver/__tests__/response-resolver.test.d.ts.map +1 -0
- package/dist/resolver/__tests__/response-resolver.test.js +358 -0
- package/dist/resolver/__tests__/response-resolver.test.js.map +1 -0
- package/dist/resolver/index.d.ts +4 -0
- package/dist/resolver/index.d.ts.map +1 -0
- package/dist/resolver/index.js +9 -0
- package/dist/resolver/index.js.map +1 -0
- package/dist/resolver/response-resolver.d.ts +73 -0
- package/dist/resolver/response-resolver.d.ts.map +1 -0
- package/dist/resolver/response-resolver.js +167 -0
- package/dist/resolver/response-resolver.js.map +1 -0
- package/dist/resolver/types.d.ts +47 -0
- package/dist/resolver/types.d.ts.map +1 -0
- package/dist/resolver/types.js +9 -0
- package/dist/resolver/types.js.map +1 -0
- package/dist/schemas/__tests__/config.validator.test.d.ts +2 -0
- package/dist/schemas/__tests__/config.validator.test.d.ts.map +1 -0
- package/dist/schemas/__tests__/config.validator.test.js +66 -0
- package/dist/schemas/__tests__/config.validator.test.js.map +1 -0
- package/dist/schemas/__tests__/endpoint.schema.test.d.ts +2 -0
- package/dist/schemas/__tests__/endpoint.schema.test.d.ts.map +1 -0
- package/dist/schemas/__tests__/endpoint.schema.test.js +103 -0
- package/dist/schemas/__tests__/endpoint.schema.test.js.map +1 -0
- package/dist/schemas/__tests__/flow.schema.test.d.ts +2 -0
- package/dist/schemas/__tests__/flow.schema.test.d.ts.map +1 -0
- package/dist/schemas/__tests__/flow.schema.test.js +92 -0
- package/dist/schemas/__tests__/flow.schema.test.js.map +1 -0
- package/dist/schemas/config.validator.d.ts +39 -0
- package/dist/schemas/config.validator.d.ts.map +1 -0
- package/dist/schemas/config.validator.js +117 -0
- package/dist/schemas/config.validator.js.map +1 -0
- package/dist/schemas/endpoint.schema.d.ts +108 -0
- package/dist/schemas/endpoint.schema.d.ts.map +1 -0
- package/dist/schemas/endpoint.schema.js +87 -0
- package/dist/schemas/endpoint.schema.js.map +1 -0
- package/dist/schemas/flow.schema.d.ts +46 -0
- package/dist/schemas/flow.schema.d.ts.map +1 -0
- package/dist/schemas/flow.schema.js +73 -0
- package/dist/schemas/flow.schema.js.map +1 -0
- package/dist/schemas/http.schema.d.ts +15 -0
- package/dist/schemas/http.schema.d.ts.map +1 -0
- package/dist/schemas/http.schema.js +32 -0
- package/dist/schemas/http.schema.js.map +1 -0
- package/dist/schemas/index.d.ts +6 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +33 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/scenario.schema.d.ts +54 -0
- package/dist/schemas/scenario.schema.d.ts.map +1 -0
- package/dist/schemas/scenario.schema.js +75 -0
- package/dist/schemas/scenario.schema.js.map +1 -0
- package/dist/server/__tests__/mock-server-app.test.d.ts +2 -0
- package/dist/server/__tests__/mock-server-app.test.d.ts.map +1 -0
- package/dist/server/__tests__/mock-server-app.test.js +296 -0
- package/dist/server/__tests__/mock-server-app.test.js.map +1 -0
- package/dist/server/index.d.ts +4 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +10 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/mock-server-app.d.ts +119 -0
- package/dist/server/mock-server-app.d.ts.map +1 -0
- package/dist/server/mock-server-app.js +304 -0
- package/dist/server/mock-server-app.js.map +1 -0
- package/dist/server/types.d.ts +38 -0
- package/dist/server/types.d.ts.map +1 -0
- package/dist/server/types.js +11 -0
- package/dist/server/types.js.map +1 -0
- package/dist/state/__tests__/state-manager.test.d.ts +2 -0
- package/dist/state/__tests__/state-manager.test.d.ts.map +1 -0
- package/dist/state/__tests__/state-manager.test.js +275 -0
- package/dist/state/__tests__/state-manager.test.js.map +1 -0
- package/dist/state/index.d.ts +3 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +7 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/state-manager.d.ts +92 -0
- package/dist/state/state-manager.d.ts.map +1 -0
- package/dist/state/state-manager.js +198 -0
- package/dist/state/state-manager.js.map +1 -0
- package/dist/state/types.d.ts +30 -0
- package/dist/state/types.d.ts.map +1 -0
- package/dist/state/types.js +2 -0
- package/dist/state/types.js.map +1 -0
- package/dist/ui/assets/index-SADMOgPE.js +10 -0
- package/dist/ui/assets/index-rj7m-XdG.css +1 -0
- package/dist/ui/index.html +29 -0
- package/dist/watcher/__tests__/config-watcher.test.d.ts +2 -0
- package/dist/watcher/__tests__/config-watcher.test.d.ts.map +1 -0
- package/dist/watcher/__tests__/config-watcher.test.js +372 -0
- package/dist/watcher/__tests__/config-watcher.test.js.map +1 -0
- package/dist/watcher/config-watcher.d.ts +100 -0
- package/dist/watcher/config-watcher.d.ts.map +1 -0
- package/dist/watcher/config-watcher.js +358 -0
- package/dist/watcher/config-watcher.js.map +1 -0
- package/dist/watcher/index.d.ts +7 -0
- package/dist/watcher/index.d.ts.map +1 -0
- package/dist/watcher/index.js +8 -0
- package/dist/watcher/index.js.map +1 -0
- package/dist/watcher/types.d.ts +64 -0
- package/dist/watcher/types.d.ts.map +1 -0
- package/dist/watcher/types.js +15 -0
- package/dist/watcher/types.js.map +1 -0
- 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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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
|