codingbuddy 0.0.0-dev.20251218053348.cad3b96 → 0.0.0-dev.20251218084041.e5f3ffe

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,546 @@
1
+ import { z } from 'zod';
2
+ export declare const TechDetailSchema: z.ZodObject<{
3
+ version: z.ZodOptional<z.ZodString>;
4
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
5
+ notes: z.ZodOptional<z.ZodString>;
6
+ }, "strip", z.ZodTypeAny, {
7
+ version?: string;
8
+ config?: Record<string, unknown>;
9
+ notes?: string;
10
+ }, {
11
+ version?: string;
12
+ config?: Record<string, unknown>;
13
+ notes?: string;
14
+ }>;
15
+ export declare const ArchitectureLayerSchema: z.ZodObject<{
16
+ name: z.ZodString;
17
+ path: z.ZodString;
18
+ description: z.ZodOptional<z.ZodString>;
19
+ dependencies: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
20
+ }, "strip", z.ZodTypeAny, {
21
+ name?: string;
22
+ path?: string;
23
+ description?: string;
24
+ dependencies?: string[];
25
+ }, {
26
+ name?: string;
27
+ path?: string;
28
+ description?: string;
29
+ dependencies?: string[];
30
+ }>;
31
+ export declare const NamingConventionSchema: z.ZodObject<{
32
+ files: z.ZodOptional<z.ZodEnum<["kebab-case", "camelCase", "PascalCase", "snake_case"]>>;
33
+ components: z.ZodOptional<z.ZodEnum<["PascalCase", "kebab-case"]>>;
34
+ functions: z.ZodOptional<z.ZodEnum<["camelCase", "snake_case"]>>;
35
+ variables: z.ZodOptional<z.ZodEnum<["camelCase", "snake_case"]>>;
36
+ constants: z.ZodOptional<z.ZodEnum<["UPPER_SNAKE_CASE", "camelCase"]>>;
37
+ types: z.ZodOptional<z.ZodEnum<["PascalCase"]>>;
38
+ interfaces: z.ZodOptional<z.ZodEnum<["PascalCase", "IPascalCase"]>>;
39
+ }, "strip", z.ZodTypeAny, {
40
+ files?: "kebab-case" | "camelCase" | "PascalCase" | "snake_case";
41
+ components?: "kebab-case" | "PascalCase";
42
+ functions?: "camelCase" | "snake_case";
43
+ variables?: "camelCase" | "snake_case";
44
+ constants?: "camelCase" | "UPPER_SNAKE_CASE";
45
+ types?: "PascalCase";
46
+ interfaces?: "PascalCase" | "IPascalCase";
47
+ }, {
48
+ files?: "kebab-case" | "camelCase" | "PascalCase" | "snake_case";
49
+ components?: "kebab-case" | "PascalCase";
50
+ functions?: "camelCase" | "snake_case";
51
+ variables?: "camelCase" | "snake_case";
52
+ constants?: "camelCase" | "UPPER_SNAKE_CASE";
53
+ types?: "PascalCase";
54
+ interfaces?: "PascalCase" | "IPascalCase";
55
+ }>;
56
+ export declare const TechStackConfigSchema: z.ZodObject<{
57
+ languages: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
58
+ frontend: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
59
+ backend: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
60
+ database: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
61
+ infrastructure: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
62
+ tools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
63
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
64
+ version: z.ZodOptional<z.ZodString>;
65
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
66
+ notes: z.ZodOptional<z.ZodString>;
67
+ }, "strip", z.ZodTypeAny, {
68
+ version?: string;
69
+ config?: Record<string, unknown>;
70
+ notes?: string;
71
+ }, {
72
+ version?: string;
73
+ config?: Record<string, unknown>;
74
+ notes?: string;
75
+ }>>>;
76
+ }, "strip", z.ZodTypeAny, {
77
+ tools?: string[];
78
+ languages?: string[];
79
+ frontend?: string[];
80
+ backend?: string[];
81
+ database?: string[];
82
+ infrastructure?: string[];
83
+ details?: Record<string, {
84
+ version?: string;
85
+ config?: Record<string, unknown>;
86
+ notes?: string;
87
+ }>;
88
+ }, {
89
+ tools?: string[];
90
+ languages?: string[];
91
+ frontend?: string[];
92
+ backend?: string[];
93
+ database?: string[];
94
+ infrastructure?: string[];
95
+ details?: Record<string, {
96
+ version?: string;
97
+ config?: Record<string, unknown>;
98
+ notes?: string;
99
+ }>;
100
+ }>;
101
+ export declare const ArchitectureConfigSchema: z.ZodObject<{
102
+ pattern: z.ZodOptional<z.ZodString>;
103
+ structure: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
104
+ componentStyle: z.ZodOptional<z.ZodEnum<["flat", "grouped", "feature-based"]>>;
105
+ layers: z.ZodOptional<z.ZodArray<z.ZodObject<{
106
+ name: z.ZodString;
107
+ path: z.ZodString;
108
+ description: z.ZodOptional<z.ZodString>;
109
+ dependencies: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
110
+ }, "strip", z.ZodTypeAny, {
111
+ name?: string;
112
+ path?: string;
113
+ description?: string;
114
+ dependencies?: string[];
115
+ }, {
116
+ name?: string;
117
+ path?: string;
118
+ description?: string;
119
+ dependencies?: string[];
120
+ }>, "many">>;
121
+ }, "strip", z.ZodTypeAny, {
122
+ pattern?: string;
123
+ structure?: string[];
124
+ componentStyle?: "flat" | "grouped" | "feature-based";
125
+ layers?: {
126
+ name?: string;
127
+ path?: string;
128
+ description?: string;
129
+ dependencies?: string[];
130
+ }[];
131
+ }, {
132
+ pattern?: string;
133
+ structure?: string[];
134
+ componentStyle?: "flat" | "grouped" | "feature-based";
135
+ layers?: {
136
+ name?: string;
137
+ path?: string;
138
+ description?: string;
139
+ dependencies?: string[];
140
+ }[];
141
+ }>;
142
+ export declare const ConventionsConfigSchema: z.ZodObject<{
143
+ style: z.ZodOptional<z.ZodString>;
144
+ naming: z.ZodOptional<z.ZodObject<{
145
+ files: z.ZodOptional<z.ZodEnum<["kebab-case", "camelCase", "PascalCase", "snake_case"]>>;
146
+ components: z.ZodOptional<z.ZodEnum<["PascalCase", "kebab-case"]>>;
147
+ functions: z.ZodOptional<z.ZodEnum<["camelCase", "snake_case"]>>;
148
+ variables: z.ZodOptional<z.ZodEnum<["camelCase", "snake_case"]>>;
149
+ constants: z.ZodOptional<z.ZodEnum<["UPPER_SNAKE_CASE", "camelCase"]>>;
150
+ types: z.ZodOptional<z.ZodEnum<["PascalCase"]>>;
151
+ interfaces: z.ZodOptional<z.ZodEnum<["PascalCase", "IPascalCase"]>>;
152
+ }, "strip", z.ZodTypeAny, {
153
+ files?: "kebab-case" | "camelCase" | "PascalCase" | "snake_case";
154
+ components?: "kebab-case" | "PascalCase";
155
+ functions?: "camelCase" | "snake_case";
156
+ variables?: "camelCase" | "snake_case";
157
+ constants?: "camelCase" | "UPPER_SNAKE_CASE";
158
+ types?: "PascalCase";
159
+ interfaces?: "PascalCase" | "IPascalCase";
160
+ }, {
161
+ files?: "kebab-case" | "camelCase" | "PascalCase" | "snake_case";
162
+ components?: "kebab-case" | "PascalCase";
163
+ functions?: "camelCase" | "snake_case";
164
+ variables?: "camelCase" | "snake_case";
165
+ constants?: "camelCase" | "UPPER_SNAKE_CASE";
166
+ types?: "PascalCase";
167
+ interfaces?: "PascalCase" | "IPascalCase";
168
+ }>>;
169
+ importOrder: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
170
+ maxLineLength: z.ZodOptional<z.ZodNumber>;
171
+ semicolons: z.ZodOptional<z.ZodBoolean>;
172
+ quotes: z.ZodOptional<z.ZodEnum<["single", "double"]>>;
173
+ rules: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
174
+ }, "strip", z.ZodTypeAny, {
175
+ rules?: Record<string, unknown>;
176
+ style?: string;
177
+ naming?: {
178
+ files?: "kebab-case" | "camelCase" | "PascalCase" | "snake_case";
179
+ components?: "kebab-case" | "PascalCase";
180
+ functions?: "camelCase" | "snake_case";
181
+ variables?: "camelCase" | "snake_case";
182
+ constants?: "camelCase" | "UPPER_SNAKE_CASE";
183
+ types?: "PascalCase";
184
+ interfaces?: "PascalCase" | "IPascalCase";
185
+ };
186
+ importOrder?: string[];
187
+ maxLineLength?: number;
188
+ semicolons?: boolean;
189
+ quotes?: "single" | "double";
190
+ }, {
191
+ rules?: Record<string, unknown>;
192
+ style?: string;
193
+ naming?: {
194
+ files?: "kebab-case" | "camelCase" | "PascalCase" | "snake_case";
195
+ components?: "kebab-case" | "PascalCase";
196
+ functions?: "camelCase" | "snake_case";
197
+ variables?: "camelCase" | "snake_case";
198
+ constants?: "camelCase" | "UPPER_SNAKE_CASE";
199
+ types?: "PascalCase";
200
+ interfaces?: "PascalCase" | "IPascalCase";
201
+ };
202
+ importOrder?: string[];
203
+ maxLineLength?: number;
204
+ semicolons?: boolean;
205
+ quotes?: "single" | "double";
206
+ }>;
207
+ export declare const TestStrategyConfigSchema: z.ZodObject<{
208
+ approach: z.ZodOptional<z.ZodEnum<["tdd", "bdd", "test-after", "mixed"]>>;
209
+ frameworks: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
210
+ coverage: z.ZodOptional<z.ZodNumber>;
211
+ unitTestPattern: z.ZodOptional<z.ZodEnum<["colocated", "separate"]>>;
212
+ e2eDirectory: z.ZodOptional<z.ZodString>;
213
+ mockingStrategy: z.ZodOptional<z.ZodEnum<["minimal", "extensive", "no-mocks"]>>;
214
+ }, "strip", z.ZodTypeAny, {
215
+ approach?: "tdd" | "bdd" | "test-after" | "mixed";
216
+ frameworks?: string[];
217
+ coverage?: number;
218
+ unitTestPattern?: "colocated" | "separate";
219
+ e2eDirectory?: string;
220
+ mockingStrategy?: "minimal" | "extensive" | "no-mocks";
221
+ }, {
222
+ approach?: "tdd" | "bdd" | "test-after" | "mixed";
223
+ frameworks?: string[];
224
+ coverage?: number;
225
+ unitTestPattern?: "colocated" | "separate";
226
+ e2eDirectory?: string;
227
+ mockingStrategy?: "minimal" | "extensive" | "no-mocks";
228
+ }>;
229
+ export declare const CodingBuddyConfigSchema: z.ZodObject<{
230
+ language: z.ZodOptional<z.ZodString>;
231
+ projectName: z.ZodOptional<z.ZodString>;
232
+ description: z.ZodOptional<z.ZodString>;
233
+ repository: z.ZodOptional<z.ZodString>;
234
+ techStack: z.ZodOptional<z.ZodObject<{
235
+ languages: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
236
+ frontend: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
237
+ backend: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
238
+ database: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
239
+ infrastructure: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
240
+ tools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
241
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
242
+ version: z.ZodOptional<z.ZodString>;
243
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
244
+ notes: z.ZodOptional<z.ZodString>;
245
+ }, "strip", z.ZodTypeAny, {
246
+ version?: string;
247
+ config?: Record<string, unknown>;
248
+ notes?: string;
249
+ }, {
250
+ version?: string;
251
+ config?: Record<string, unknown>;
252
+ notes?: string;
253
+ }>>>;
254
+ }, "strip", z.ZodTypeAny, {
255
+ tools?: string[];
256
+ languages?: string[];
257
+ frontend?: string[];
258
+ backend?: string[];
259
+ database?: string[];
260
+ infrastructure?: string[];
261
+ details?: Record<string, {
262
+ version?: string;
263
+ config?: Record<string, unknown>;
264
+ notes?: string;
265
+ }>;
266
+ }, {
267
+ tools?: string[];
268
+ languages?: string[];
269
+ frontend?: string[];
270
+ backend?: string[];
271
+ database?: string[];
272
+ infrastructure?: string[];
273
+ details?: Record<string, {
274
+ version?: string;
275
+ config?: Record<string, unknown>;
276
+ notes?: string;
277
+ }>;
278
+ }>>;
279
+ architecture: z.ZodOptional<z.ZodObject<{
280
+ pattern: z.ZodOptional<z.ZodString>;
281
+ structure: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
282
+ componentStyle: z.ZodOptional<z.ZodEnum<["flat", "grouped", "feature-based"]>>;
283
+ layers: z.ZodOptional<z.ZodArray<z.ZodObject<{
284
+ name: z.ZodString;
285
+ path: z.ZodString;
286
+ description: z.ZodOptional<z.ZodString>;
287
+ dependencies: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
288
+ }, "strip", z.ZodTypeAny, {
289
+ name?: string;
290
+ path?: string;
291
+ description?: string;
292
+ dependencies?: string[];
293
+ }, {
294
+ name?: string;
295
+ path?: string;
296
+ description?: string;
297
+ dependencies?: string[];
298
+ }>, "many">>;
299
+ }, "strip", z.ZodTypeAny, {
300
+ pattern?: string;
301
+ structure?: string[];
302
+ componentStyle?: "flat" | "grouped" | "feature-based";
303
+ layers?: {
304
+ name?: string;
305
+ path?: string;
306
+ description?: string;
307
+ dependencies?: string[];
308
+ }[];
309
+ }, {
310
+ pattern?: string;
311
+ structure?: string[];
312
+ componentStyle?: "flat" | "grouped" | "feature-based";
313
+ layers?: {
314
+ name?: string;
315
+ path?: string;
316
+ description?: string;
317
+ dependencies?: string[];
318
+ }[];
319
+ }>>;
320
+ conventions: z.ZodOptional<z.ZodObject<{
321
+ style: z.ZodOptional<z.ZodString>;
322
+ naming: z.ZodOptional<z.ZodObject<{
323
+ files: z.ZodOptional<z.ZodEnum<["kebab-case", "camelCase", "PascalCase", "snake_case"]>>;
324
+ components: z.ZodOptional<z.ZodEnum<["PascalCase", "kebab-case"]>>;
325
+ functions: z.ZodOptional<z.ZodEnum<["camelCase", "snake_case"]>>;
326
+ variables: z.ZodOptional<z.ZodEnum<["camelCase", "snake_case"]>>;
327
+ constants: z.ZodOptional<z.ZodEnum<["UPPER_SNAKE_CASE", "camelCase"]>>;
328
+ types: z.ZodOptional<z.ZodEnum<["PascalCase"]>>;
329
+ interfaces: z.ZodOptional<z.ZodEnum<["PascalCase", "IPascalCase"]>>;
330
+ }, "strip", z.ZodTypeAny, {
331
+ files?: "kebab-case" | "camelCase" | "PascalCase" | "snake_case";
332
+ components?: "kebab-case" | "PascalCase";
333
+ functions?: "camelCase" | "snake_case";
334
+ variables?: "camelCase" | "snake_case";
335
+ constants?: "camelCase" | "UPPER_SNAKE_CASE";
336
+ types?: "PascalCase";
337
+ interfaces?: "PascalCase" | "IPascalCase";
338
+ }, {
339
+ files?: "kebab-case" | "camelCase" | "PascalCase" | "snake_case";
340
+ components?: "kebab-case" | "PascalCase";
341
+ functions?: "camelCase" | "snake_case";
342
+ variables?: "camelCase" | "snake_case";
343
+ constants?: "camelCase" | "UPPER_SNAKE_CASE";
344
+ types?: "PascalCase";
345
+ interfaces?: "PascalCase" | "IPascalCase";
346
+ }>>;
347
+ importOrder: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
348
+ maxLineLength: z.ZodOptional<z.ZodNumber>;
349
+ semicolons: z.ZodOptional<z.ZodBoolean>;
350
+ quotes: z.ZodOptional<z.ZodEnum<["single", "double"]>>;
351
+ rules: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
352
+ }, "strip", z.ZodTypeAny, {
353
+ rules?: Record<string, unknown>;
354
+ style?: string;
355
+ naming?: {
356
+ files?: "kebab-case" | "camelCase" | "PascalCase" | "snake_case";
357
+ components?: "kebab-case" | "PascalCase";
358
+ functions?: "camelCase" | "snake_case";
359
+ variables?: "camelCase" | "snake_case";
360
+ constants?: "camelCase" | "UPPER_SNAKE_CASE";
361
+ types?: "PascalCase";
362
+ interfaces?: "PascalCase" | "IPascalCase";
363
+ };
364
+ importOrder?: string[];
365
+ maxLineLength?: number;
366
+ semicolons?: boolean;
367
+ quotes?: "single" | "double";
368
+ }, {
369
+ rules?: Record<string, unknown>;
370
+ style?: string;
371
+ naming?: {
372
+ files?: "kebab-case" | "camelCase" | "PascalCase" | "snake_case";
373
+ components?: "kebab-case" | "PascalCase";
374
+ functions?: "camelCase" | "snake_case";
375
+ variables?: "camelCase" | "snake_case";
376
+ constants?: "camelCase" | "UPPER_SNAKE_CASE";
377
+ types?: "PascalCase";
378
+ interfaces?: "PascalCase" | "IPascalCase";
379
+ };
380
+ importOrder?: string[];
381
+ maxLineLength?: number;
382
+ semicolons?: boolean;
383
+ quotes?: "single" | "double";
384
+ }>>;
385
+ testStrategy: z.ZodOptional<z.ZodObject<{
386
+ approach: z.ZodOptional<z.ZodEnum<["tdd", "bdd", "test-after", "mixed"]>>;
387
+ frameworks: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
388
+ coverage: z.ZodOptional<z.ZodNumber>;
389
+ unitTestPattern: z.ZodOptional<z.ZodEnum<["colocated", "separate"]>>;
390
+ e2eDirectory: z.ZodOptional<z.ZodString>;
391
+ mockingStrategy: z.ZodOptional<z.ZodEnum<["minimal", "extensive", "no-mocks"]>>;
392
+ }, "strip", z.ZodTypeAny, {
393
+ approach?: "tdd" | "bdd" | "test-after" | "mixed";
394
+ frameworks?: string[];
395
+ coverage?: number;
396
+ unitTestPattern?: "colocated" | "separate";
397
+ e2eDirectory?: string;
398
+ mockingStrategy?: "minimal" | "extensive" | "no-mocks";
399
+ }, {
400
+ approach?: "tdd" | "bdd" | "test-after" | "mixed";
401
+ frameworks?: string[];
402
+ coverage?: number;
403
+ unitTestPattern?: "colocated" | "separate";
404
+ e2eDirectory?: string;
405
+ mockingStrategy?: "minimal" | "extensive" | "no-mocks";
406
+ }>>;
407
+ keyFiles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
408
+ avoid: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
409
+ custom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
410
+ }, "strip", z.ZodTypeAny, {
411
+ custom?: Record<string, unknown>;
412
+ description?: string;
413
+ language?: string;
414
+ projectName?: string;
415
+ repository?: string;
416
+ techStack?: {
417
+ tools?: string[];
418
+ languages?: string[];
419
+ frontend?: string[];
420
+ backend?: string[];
421
+ database?: string[];
422
+ infrastructure?: string[];
423
+ details?: Record<string, {
424
+ version?: string;
425
+ config?: Record<string, unknown>;
426
+ notes?: string;
427
+ }>;
428
+ };
429
+ architecture?: {
430
+ pattern?: string;
431
+ structure?: string[];
432
+ componentStyle?: "flat" | "grouped" | "feature-based";
433
+ layers?: {
434
+ name?: string;
435
+ path?: string;
436
+ description?: string;
437
+ dependencies?: string[];
438
+ }[];
439
+ };
440
+ conventions?: {
441
+ rules?: Record<string, unknown>;
442
+ style?: string;
443
+ naming?: {
444
+ files?: "kebab-case" | "camelCase" | "PascalCase" | "snake_case";
445
+ components?: "kebab-case" | "PascalCase";
446
+ functions?: "camelCase" | "snake_case";
447
+ variables?: "camelCase" | "snake_case";
448
+ constants?: "camelCase" | "UPPER_SNAKE_CASE";
449
+ types?: "PascalCase";
450
+ interfaces?: "PascalCase" | "IPascalCase";
451
+ };
452
+ importOrder?: string[];
453
+ maxLineLength?: number;
454
+ semicolons?: boolean;
455
+ quotes?: "single" | "double";
456
+ };
457
+ testStrategy?: {
458
+ approach?: "tdd" | "bdd" | "test-after" | "mixed";
459
+ frameworks?: string[];
460
+ coverage?: number;
461
+ unitTestPattern?: "colocated" | "separate";
462
+ e2eDirectory?: string;
463
+ mockingStrategy?: "minimal" | "extensive" | "no-mocks";
464
+ };
465
+ keyFiles?: string[];
466
+ avoid?: string[];
467
+ }, {
468
+ custom?: Record<string, unknown>;
469
+ description?: string;
470
+ language?: string;
471
+ projectName?: string;
472
+ repository?: string;
473
+ techStack?: {
474
+ tools?: string[];
475
+ languages?: string[];
476
+ frontend?: string[];
477
+ backend?: string[];
478
+ database?: string[];
479
+ infrastructure?: string[];
480
+ details?: Record<string, {
481
+ version?: string;
482
+ config?: Record<string, unknown>;
483
+ notes?: string;
484
+ }>;
485
+ };
486
+ architecture?: {
487
+ pattern?: string;
488
+ structure?: string[];
489
+ componentStyle?: "flat" | "grouped" | "feature-based";
490
+ layers?: {
491
+ name?: string;
492
+ path?: string;
493
+ description?: string;
494
+ dependencies?: string[];
495
+ }[];
496
+ };
497
+ conventions?: {
498
+ rules?: Record<string, unknown>;
499
+ style?: string;
500
+ naming?: {
501
+ files?: "kebab-case" | "camelCase" | "PascalCase" | "snake_case";
502
+ components?: "kebab-case" | "PascalCase";
503
+ functions?: "camelCase" | "snake_case";
504
+ variables?: "camelCase" | "snake_case";
505
+ constants?: "camelCase" | "UPPER_SNAKE_CASE";
506
+ types?: "PascalCase";
507
+ interfaces?: "PascalCase" | "IPascalCase";
508
+ };
509
+ importOrder?: string[];
510
+ maxLineLength?: number;
511
+ semicolons?: boolean;
512
+ quotes?: "single" | "double";
513
+ };
514
+ testStrategy?: {
515
+ approach?: "tdd" | "bdd" | "test-after" | "mixed";
516
+ frameworks?: string[];
517
+ coverage?: number;
518
+ unitTestPattern?: "colocated" | "separate";
519
+ e2eDirectory?: string;
520
+ mockingStrategy?: "minimal" | "extensive" | "no-mocks";
521
+ };
522
+ keyFiles?: string[];
523
+ avoid?: string[];
524
+ }>;
525
+ export type TechDetail = z.infer<typeof TechDetailSchema>;
526
+ export type ArchitectureLayer = z.infer<typeof ArchitectureLayerSchema>;
527
+ export type NamingConvention = z.infer<typeof NamingConventionSchema>;
528
+ export type TechStackConfig = z.infer<typeof TechStackConfigSchema>;
529
+ export type ArchitectureConfig = z.infer<typeof ArchitectureConfigSchema>;
530
+ export type ConventionsConfig = z.infer<typeof ConventionsConfigSchema>;
531
+ export type TestStrategyConfig = z.infer<typeof TestStrategyConfigSchema>;
532
+ export type CodingBuddyConfig = z.infer<typeof CodingBuddyConfigSchema>;
533
+ export interface ValidationResult {
534
+ success: boolean;
535
+ data?: CodingBuddyConfig;
536
+ errors?: ValidationError[];
537
+ }
538
+ export interface ValidationError {
539
+ path: string;
540
+ message: string;
541
+ }
542
+ export declare function validateConfig(config: unknown): ValidationResult;
543
+ export declare function parseConfig(config: unknown): CodingBuddyConfig;
544
+ export declare function isCodingBuddyConfig(value: unknown): value is CodingBuddyConfig;
545
+ export declare function getDefaultConfig(): CodingBuddyConfig;
546
+ export declare function mergeWithDefaults(userConfig: CodingBuddyConfig): CodingBuddyConfig;
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CodingBuddyConfigSchema = exports.TestStrategyConfigSchema = exports.ConventionsConfigSchema = exports.ArchitectureConfigSchema = exports.TechStackConfigSchema = exports.NamingConventionSchema = exports.ArchitectureLayerSchema = exports.TechDetailSchema = void 0;
4
+ exports.validateConfig = validateConfig;
5
+ exports.parseConfig = parseConfig;
6
+ exports.isCodingBuddyConfig = isCodingBuddyConfig;
7
+ exports.getDefaultConfig = getDefaultConfig;
8
+ exports.mergeWithDefaults = mergeWithDefaults;
9
+ const zod_1 = require("zod");
10
+ exports.TechDetailSchema = zod_1.z.object({
11
+ version: zod_1.z.string().optional(),
12
+ config: zod_1.z.record(zod_1.z.unknown()).optional(),
13
+ notes: zod_1.z.string().optional(),
14
+ });
15
+ exports.ArchitectureLayerSchema = zod_1.z.object({
16
+ name: zod_1.z.string(),
17
+ path: zod_1.z.string(),
18
+ description: zod_1.z.string().optional(),
19
+ dependencies: zod_1.z.array(zod_1.z.string()).optional(),
20
+ });
21
+ exports.NamingConventionSchema = zod_1.z.object({
22
+ files: zod_1.z.enum(['kebab-case', 'camelCase', 'PascalCase', 'snake_case']).optional(),
23
+ components: zod_1.z.enum(['PascalCase', 'kebab-case']).optional(),
24
+ functions: zod_1.z.enum(['camelCase', 'snake_case']).optional(),
25
+ variables: zod_1.z.enum(['camelCase', 'snake_case']).optional(),
26
+ constants: zod_1.z.enum(['UPPER_SNAKE_CASE', 'camelCase']).optional(),
27
+ types: zod_1.z.enum(['PascalCase']).optional(),
28
+ interfaces: zod_1.z.enum(['PascalCase', 'IPascalCase']).optional(),
29
+ });
30
+ exports.TechStackConfigSchema = zod_1.z.object({
31
+ languages: zod_1.z.array(zod_1.z.string()).optional(),
32
+ frontend: zod_1.z.array(zod_1.z.string()).optional(),
33
+ backend: zod_1.z.array(zod_1.z.string()).optional(),
34
+ database: zod_1.z.array(zod_1.z.string()).optional(),
35
+ infrastructure: zod_1.z.array(zod_1.z.string()).optional(),
36
+ tools: zod_1.z.array(zod_1.z.string()).optional(),
37
+ details: zod_1.z.record(exports.TechDetailSchema).optional(),
38
+ });
39
+ exports.ArchitectureConfigSchema = zod_1.z.object({
40
+ pattern: zod_1.z.string().optional(),
41
+ structure: zod_1.z.array(zod_1.z.string()).optional(),
42
+ componentStyle: zod_1.z.enum(['flat', 'grouped', 'feature-based']).optional(),
43
+ layers: zod_1.z.array(exports.ArchitectureLayerSchema).optional(),
44
+ });
45
+ exports.ConventionsConfigSchema = zod_1.z.object({
46
+ style: zod_1.z.string().optional(),
47
+ naming: exports.NamingConventionSchema.optional(),
48
+ importOrder: zod_1.z.array(zod_1.z.string()).optional(),
49
+ maxLineLength: zod_1.z.number().int().positive().optional(),
50
+ semicolons: zod_1.z.boolean().optional(),
51
+ quotes: zod_1.z.enum(['single', 'double']).optional(),
52
+ rules: zod_1.z.record(zod_1.z.unknown()).optional(),
53
+ });
54
+ exports.TestStrategyConfigSchema = zod_1.z.object({
55
+ approach: zod_1.z.enum(['tdd', 'bdd', 'test-after', 'mixed']).optional(),
56
+ frameworks: zod_1.z.array(zod_1.z.string()).optional(),
57
+ coverage: zod_1.z.number().min(0).max(100).optional(),
58
+ unitTestPattern: zod_1.z.enum(['colocated', 'separate']).optional(),
59
+ e2eDirectory: zod_1.z.string().optional(),
60
+ mockingStrategy: zod_1.z.enum(['minimal', 'extensive', 'no-mocks']).optional(),
61
+ });
62
+ exports.CodingBuddyConfigSchema = zod_1.z.object({
63
+ language: zod_1.z.string().optional(),
64
+ projectName: zod_1.z.string().optional(),
65
+ description: zod_1.z.string().optional(),
66
+ repository: zod_1.z.string().url().optional(),
67
+ techStack: exports.TechStackConfigSchema.optional(),
68
+ architecture: exports.ArchitectureConfigSchema.optional(),
69
+ conventions: exports.ConventionsConfigSchema.optional(),
70
+ testStrategy: exports.TestStrategyConfigSchema.optional(),
71
+ keyFiles: zod_1.z.array(zod_1.z.string()).optional(),
72
+ avoid: zod_1.z.array(zod_1.z.string()).optional(),
73
+ custom: zod_1.z.record(zod_1.z.unknown()).optional(),
74
+ });
75
+ function validateConfig(config) {
76
+ const result = exports.CodingBuddyConfigSchema.safeParse(config);
77
+ if (result.success) {
78
+ return {
79
+ success: true,
80
+ data: result.data,
81
+ };
82
+ }
83
+ const errors = result.error.issues.map((issue) => ({
84
+ path: issue.path.join('.'),
85
+ message: issue.message,
86
+ }));
87
+ return {
88
+ success: false,
89
+ errors,
90
+ };
91
+ }
92
+ function parseConfig(config) {
93
+ return exports.CodingBuddyConfigSchema.parse(config);
94
+ }
95
+ function isCodingBuddyConfig(value) {
96
+ return exports.CodingBuddyConfigSchema.safeParse(value).success;
97
+ }
98
+ function getDefaultConfig() {
99
+ return {};
100
+ }
101
+ function deepMerge(target, source) {
102
+ const result = { ...target };
103
+ for (const key of Object.keys(source)) {
104
+ const sourceValue = source[key];
105
+ const targetValue = target[key];
106
+ if (sourceValue !== undefined &&
107
+ typeof sourceValue === 'object' &&
108
+ sourceValue !== null &&
109
+ !Array.isArray(sourceValue) &&
110
+ typeof targetValue === 'object' &&
111
+ targetValue !== null &&
112
+ !Array.isArray(targetValue)) {
113
+ result[key] = deepMerge(targetValue, sourceValue);
114
+ }
115
+ else if (sourceValue !== undefined) {
116
+ result[key] = sourceValue;
117
+ }
118
+ }
119
+ return result;
120
+ }
121
+ function mergeWithDefaults(userConfig) {
122
+ return deepMerge(getDefaultConfig(), userConfig);
123
+ }
124
+ //# sourceMappingURL=config.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.schema.js","sourceRoot":"","sources":["../../../src/config/config.schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};