@buoy-design/cli 0.2.6 → 0.2.7
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/dist/bin.js +4 -3
- package/dist/bin.js.map +1 -1
- package/dist/cloud/client.d.ts +93 -0
- package/dist/cloud/client.d.ts.map +1 -1
- package/dist/cloud/client.js +10 -0
- package/dist/cloud/client.js.map +1 -1
- package/dist/cloud/sync.d.ts +71 -1
- package/dist/cloud/sync.d.ts.map +1 -1
- package/dist/cloud/sync.js +177 -1
- package/dist/cloud/sync.js.map +1 -1
- package/dist/commands/baseline.d.ts +9 -1
- package/dist/commands/baseline.d.ts.map +1 -1
- package/dist/commands/baseline.js +33 -4
- package/dist/commands/baseline.js.map +1 -1
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +102 -0
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/dock.d.ts +1 -1
- package/dist/commands/dock.d.ts.map +1 -1
- package/dist/commands/dock.js +31 -22
- package/dist/commands/dock.js.map +1 -1
- package/dist/commands/fix.d.ts.map +1 -1
- package/dist/commands/fix.js +1 -0
- package/dist/commands/fix.js.map +1 -1
- package/dist/commands/import.d.ts.map +1 -1
- package/dist/commands/import.js +4 -2
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/link.d.ts.map +1 -1
- package/dist/commands/link.js +26 -12
- package/dist/commands/link.js.map +1 -1
- package/dist/commands/scan.d.ts.map +1 -1
- package/dist/commands/scan.js +1 -0
- package/dist/commands/scan.js.map +1 -1
- package/dist/commands/show.d.ts.map +1 -1
- package/dist/commands/show.js +2 -1
- package/dist/commands/show.js.map +1 -1
- package/dist/commands/unlink.d.ts.map +1 -1
- package/dist/commands/unlink.js +20 -7
- package/dist/commands/unlink.js.map +1 -1
- package/dist/config/auto-detect.d.ts +1 -1
- package/dist/config/auto-detect.d.ts.map +1 -1
- package/dist/config/auto-detect.js +3 -1
- package/dist/config/auto-detect.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +18 -6
- package/dist/config/loader.js.map +1 -1
- package/dist/config/schema.d.ts +112 -6
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +13 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/services/drift-analysis.d.ts +6 -0
- package/dist/services/drift-analysis.d.ts.map +1 -1
- package/dist/services/drift-analysis.js +55 -2
- package/dist/services/drift-analysis.js.map +1 -1
- package/package.json +3 -3
package/dist/config/schema.d.ts
CHANGED
|
@@ -490,6 +490,22 @@ export declare const AggregationConfigSchema: z.ZodObject<{
|
|
|
490
490
|
minGroupSize?: number | undefined;
|
|
491
491
|
pathPatterns?: string[] | undefined;
|
|
492
492
|
}>;
|
|
493
|
+
export declare const DriftTypeConfigSchema: z.ZodObject<{
|
|
494
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
495
|
+
severity: z.ZodOptional<z.ZodEnum<["info", "warning", "critical"]>>;
|
|
496
|
+
minOccurrences: z.ZodOptional<z.ZodNumber>;
|
|
497
|
+
matching: z.ZodOptional<z.ZodEnum<["exact", "tight", "loose"]>>;
|
|
498
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
499
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
500
|
+
severity: z.ZodOptional<z.ZodEnum<["info", "warning", "critical"]>>;
|
|
501
|
+
minOccurrences: z.ZodOptional<z.ZodNumber>;
|
|
502
|
+
matching: z.ZodOptional<z.ZodEnum<["exact", "tight", "loose"]>>;
|
|
503
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
504
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
505
|
+
severity: z.ZodOptional<z.ZodEnum<["info", "warning", "critical"]>>;
|
|
506
|
+
minOccurrences: z.ZodOptional<z.ZodNumber>;
|
|
507
|
+
matching: z.ZodOptional<z.ZodEnum<["exact", "tight", "loose"]>>;
|
|
508
|
+
}, z.ZodTypeAny, "passthrough">>;
|
|
493
509
|
export declare const DriftConfigSchema: z.ZodObject<{
|
|
494
510
|
ignore: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
495
511
|
type: z.ZodString;
|
|
@@ -521,30 +537,58 @@ export declare const DriftConfigSchema: z.ZodObject<{
|
|
|
521
537
|
minGroupSize?: number | undefined;
|
|
522
538
|
pathPatterns?: string[] | undefined;
|
|
523
539
|
}>>;
|
|
540
|
+
types: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
541
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
542
|
+
severity: z.ZodOptional<z.ZodEnum<["info", "warning", "critical"]>>;
|
|
543
|
+
minOccurrences: z.ZodOptional<z.ZodNumber>;
|
|
544
|
+
matching: z.ZodOptional<z.ZodEnum<["exact", "tight", "loose"]>>;
|
|
545
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
546
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
547
|
+
severity: z.ZodOptional<z.ZodEnum<["info", "warning", "critical"]>>;
|
|
548
|
+
minOccurrences: z.ZodOptional<z.ZodNumber>;
|
|
549
|
+
matching: z.ZodOptional<z.ZodEnum<["exact", "tight", "loose"]>>;
|
|
550
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
551
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
552
|
+
severity: z.ZodOptional<z.ZodEnum<["info", "warning", "critical"]>>;
|
|
553
|
+
minOccurrences: z.ZodOptional<z.ZodNumber>;
|
|
554
|
+
matching: z.ZodOptional<z.ZodEnum<["exact", "tight", "loose"]>>;
|
|
555
|
+
}, z.ZodTypeAny, "passthrough">>>>;
|
|
524
556
|
}, "strip", z.ZodTypeAny, {
|
|
557
|
+
severity: Record<string, "info" | "warning" | "critical">;
|
|
525
558
|
ignore: {
|
|
526
559
|
type: string;
|
|
527
560
|
pattern?: string | undefined;
|
|
528
561
|
reason?: string | undefined;
|
|
529
562
|
}[];
|
|
530
|
-
severity: Record<string, "info" | "warning" | "critical">;
|
|
531
563
|
aggregation: {
|
|
532
564
|
strategies: ("value" | "path" | "suggestion" | "entity")[];
|
|
533
565
|
minGroupSize: number;
|
|
534
566
|
pathPatterns: string[];
|
|
535
567
|
};
|
|
568
|
+
types: Record<string, z.objectOutputType<{
|
|
569
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
570
|
+
severity: z.ZodOptional<z.ZodEnum<["info", "warning", "critical"]>>;
|
|
571
|
+
minOccurrences: z.ZodOptional<z.ZodNumber>;
|
|
572
|
+
matching: z.ZodOptional<z.ZodEnum<["exact", "tight", "loose"]>>;
|
|
573
|
+
}, z.ZodTypeAny, "passthrough">>;
|
|
536
574
|
}, {
|
|
575
|
+
severity?: Record<string, "info" | "warning" | "critical"> | undefined;
|
|
537
576
|
ignore?: {
|
|
538
577
|
type: string;
|
|
539
578
|
pattern?: string | undefined;
|
|
540
579
|
reason?: string | undefined;
|
|
541
580
|
}[] | undefined;
|
|
542
|
-
severity?: Record<string, "info" | "warning" | "critical"> | undefined;
|
|
543
581
|
aggregation?: {
|
|
544
582
|
strategies?: ("value" | "path" | "suggestion" | "entity")[] | undefined;
|
|
545
583
|
minGroupSize?: number | undefined;
|
|
546
584
|
pathPatterns?: string[] | undefined;
|
|
547
585
|
} | undefined;
|
|
586
|
+
types?: Record<string, z.objectInputType<{
|
|
587
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
588
|
+
severity: z.ZodOptional<z.ZodEnum<["info", "warning", "critical"]>>;
|
|
589
|
+
minOccurrences: z.ZodOptional<z.ZodNumber>;
|
|
590
|
+
matching: z.ZodOptional<z.ZodEnum<["exact", "tight", "loose"]>>;
|
|
591
|
+
}, z.ZodTypeAny, "passthrough">> | undefined;
|
|
548
592
|
}>;
|
|
549
593
|
export declare const ClaudeConfigSchema: z.ZodObject<{
|
|
550
594
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -594,6 +638,13 @@ export declare const OutputConfigSchema: z.ZodObject<{
|
|
|
594
638
|
format?: "markdown" | "table" | "json" | undefined;
|
|
595
639
|
colors?: boolean | undefined;
|
|
596
640
|
}>;
|
|
641
|
+
export declare const ExperimentalConfigSchema: z.ZodDefault<z.ZodObject<{
|
|
642
|
+
repeatedPatternDetection: z.ZodDefault<z.ZodBoolean>;
|
|
643
|
+
}, "strip", z.ZodTypeAny, {
|
|
644
|
+
repeatedPatternDetection: boolean;
|
|
645
|
+
}, {
|
|
646
|
+
repeatedPatternDetection?: boolean | undefined;
|
|
647
|
+
}>>;
|
|
597
648
|
export declare const BuoyConfigSchema: z.ZodObject<{
|
|
598
649
|
project: z.ZodObject<{
|
|
599
650
|
name: z.ZodString;
|
|
@@ -920,30 +971,58 @@ export declare const BuoyConfigSchema: z.ZodObject<{
|
|
|
920
971
|
minGroupSize?: number | undefined;
|
|
921
972
|
pathPatterns?: string[] | undefined;
|
|
922
973
|
}>>;
|
|
974
|
+
types: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
975
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
976
|
+
severity: z.ZodOptional<z.ZodEnum<["info", "warning", "critical"]>>;
|
|
977
|
+
minOccurrences: z.ZodOptional<z.ZodNumber>;
|
|
978
|
+
matching: z.ZodOptional<z.ZodEnum<["exact", "tight", "loose"]>>;
|
|
979
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
980
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
981
|
+
severity: z.ZodOptional<z.ZodEnum<["info", "warning", "critical"]>>;
|
|
982
|
+
minOccurrences: z.ZodOptional<z.ZodNumber>;
|
|
983
|
+
matching: z.ZodOptional<z.ZodEnum<["exact", "tight", "loose"]>>;
|
|
984
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
985
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
986
|
+
severity: z.ZodOptional<z.ZodEnum<["info", "warning", "critical"]>>;
|
|
987
|
+
minOccurrences: z.ZodOptional<z.ZodNumber>;
|
|
988
|
+
matching: z.ZodOptional<z.ZodEnum<["exact", "tight", "loose"]>>;
|
|
989
|
+
}, z.ZodTypeAny, "passthrough">>>>;
|
|
923
990
|
}, "strip", z.ZodTypeAny, {
|
|
991
|
+
severity: Record<string, "info" | "warning" | "critical">;
|
|
924
992
|
ignore: {
|
|
925
993
|
type: string;
|
|
926
994
|
pattern?: string | undefined;
|
|
927
995
|
reason?: string | undefined;
|
|
928
996
|
}[];
|
|
929
|
-
severity: Record<string, "info" | "warning" | "critical">;
|
|
930
997
|
aggregation: {
|
|
931
998
|
strategies: ("value" | "path" | "suggestion" | "entity")[];
|
|
932
999
|
minGroupSize: number;
|
|
933
1000
|
pathPatterns: string[];
|
|
934
1001
|
};
|
|
1002
|
+
types: Record<string, z.objectOutputType<{
|
|
1003
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
1004
|
+
severity: z.ZodOptional<z.ZodEnum<["info", "warning", "critical"]>>;
|
|
1005
|
+
minOccurrences: z.ZodOptional<z.ZodNumber>;
|
|
1006
|
+
matching: z.ZodOptional<z.ZodEnum<["exact", "tight", "loose"]>>;
|
|
1007
|
+
}, z.ZodTypeAny, "passthrough">>;
|
|
935
1008
|
}, {
|
|
1009
|
+
severity?: Record<string, "info" | "warning" | "critical"> | undefined;
|
|
936
1010
|
ignore?: {
|
|
937
1011
|
type: string;
|
|
938
1012
|
pattern?: string | undefined;
|
|
939
1013
|
reason?: string | undefined;
|
|
940
1014
|
}[] | undefined;
|
|
941
|
-
severity?: Record<string, "info" | "warning" | "critical"> | undefined;
|
|
942
1015
|
aggregation?: {
|
|
943
1016
|
strategies?: ("value" | "path" | "suggestion" | "entity")[] | undefined;
|
|
944
1017
|
minGroupSize?: number | undefined;
|
|
945
1018
|
pathPatterns?: string[] | undefined;
|
|
946
1019
|
} | undefined;
|
|
1020
|
+
types?: Record<string, z.objectInputType<{
|
|
1021
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
1022
|
+
severity: z.ZodOptional<z.ZodEnum<["info", "warning", "critical"]>>;
|
|
1023
|
+
minOccurrences: z.ZodOptional<z.ZodNumber>;
|
|
1024
|
+
matching: z.ZodOptional<z.ZodEnum<["exact", "tight", "loose"]>>;
|
|
1025
|
+
}, z.ZodTypeAny, "passthrough">> | undefined;
|
|
947
1026
|
}>>;
|
|
948
1027
|
claude: z.ZodDefault<z.ZodObject<{
|
|
949
1028
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -983,6 +1062,13 @@ export declare const BuoyConfigSchema: z.ZodObject<{
|
|
|
983
1062
|
format?: "markdown" | "table" | "json" | undefined;
|
|
984
1063
|
colors?: boolean | undefined;
|
|
985
1064
|
}>>;
|
|
1065
|
+
experimental: z.ZodDefault<z.ZodDefault<z.ZodObject<{
|
|
1066
|
+
repeatedPatternDetection: z.ZodDefault<z.ZodBoolean>;
|
|
1067
|
+
}, "strip", z.ZodTypeAny, {
|
|
1068
|
+
repeatedPatternDetection: boolean;
|
|
1069
|
+
}, {
|
|
1070
|
+
repeatedPatternDetection?: boolean | undefined;
|
|
1071
|
+
}>>>;
|
|
986
1072
|
}, "strip", z.ZodTypeAny, {
|
|
987
1073
|
project: {
|
|
988
1074
|
name: string;
|
|
@@ -1050,17 +1136,23 @@ export declare const BuoyConfigSchema: z.ZodObject<{
|
|
|
1050
1136
|
} | undefined;
|
|
1051
1137
|
};
|
|
1052
1138
|
drift: {
|
|
1139
|
+
severity: Record<string, "info" | "warning" | "critical">;
|
|
1053
1140
|
ignore: {
|
|
1054
1141
|
type: string;
|
|
1055
1142
|
pattern?: string | undefined;
|
|
1056
1143
|
reason?: string | undefined;
|
|
1057
1144
|
}[];
|
|
1058
|
-
severity: Record<string, "info" | "warning" | "critical">;
|
|
1059
1145
|
aggregation: {
|
|
1060
1146
|
strategies: ("value" | "path" | "suggestion" | "entity")[];
|
|
1061
1147
|
minGroupSize: number;
|
|
1062
1148
|
pathPatterns: string[];
|
|
1063
1149
|
};
|
|
1150
|
+
types: Record<string, z.objectOutputType<{
|
|
1151
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
1152
|
+
severity: z.ZodOptional<z.ZodEnum<["info", "warning", "critical"]>>;
|
|
1153
|
+
minOccurrences: z.ZodOptional<z.ZodNumber>;
|
|
1154
|
+
matching: z.ZodOptional<z.ZodEnum<["exact", "tight", "loose"]>>;
|
|
1155
|
+
}, z.ZodTypeAny, "passthrough">>;
|
|
1064
1156
|
};
|
|
1065
1157
|
claude: {
|
|
1066
1158
|
enabled: boolean;
|
|
@@ -1074,6 +1166,9 @@ export declare const BuoyConfigSchema: z.ZodObject<{
|
|
|
1074
1166
|
format: "markdown" | "table" | "json";
|
|
1075
1167
|
colors: boolean;
|
|
1076
1168
|
};
|
|
1169
|
+
experimental: {
|
|
1170
|
+
repeatedPatternDetection: boolean;
|
|
1171
|
+
};
|
|
1077
1172
|
}, {
|
|
1078
1173
|
project: {
|
|
1079
1174
|
name: string;
|
|
@@ -1141,17 +1236,23 @@ export declare const BuoyConfigSchema: z.ZodObject<{
|
|
|
1141
1236
|
} | undefined;
|
|
1142
1237
|
} | undefined;
|
|
1143
1238
|
drift?: {
|
|
1239
|
+
severity?: Record<string, "info" | "warning" | "critical"> | undefined;
|
|
1144
1240
|
ignore?: {
|
|
1145
1241
|
type: string;
|
|
1146
1242
|
pattern?: string | undefined;
|
|
1147
1243
|
reason?: string | undefined;
|
|
1148
1244
|
}[] | undefined;
|
|
1149
|
-
severity?: Record<string, "info" | "warning" | "critical"> | undefined;
|
|
1150
1245
|
aggregation?: {
|
|
1151
1246
|
strategies?: ("value" | "path" | "suggestion" | "entity")[] | undefined;
|
|
1152
1247
|
minGroupSize?: number | undefined;
|
|
1153
1248
|
pathPatterns?: string[] | undefined;
|
|
1154
1249
|
} | undefined;
|
|
1250
|
+
types?: Record<string, z.objectInputType<{
|
|
1251
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
1252
|
+
severity: z.ZodOptional<z.ZodEnum<["info", "warning", "critical"]>>;
|
|
1253
|
+
minOccurrences: z.ZodOptional<z.ZodNumber>;
|
|
1254
|
+
matching: z.ZodOptional<z.ZodEnum<["exact", "tight", "loose"]>>;
|
|
1255
|
+
}, z.ZodTypeAny, "passthrough">> | undefined;
|
|
1155
1256
|
} | undefined;
|
|
1156
1257
|
claude?: {
|
|
1157
1258
|
enabled?: boolean | undefined;
|
|
@@ -1165,6 +1266,9 @@ export declare const BuoyConfigSchema: z.ZodObject<{
|
|
|
1165
1266
|
format?: "markdown" | "table" | "json" | undefined;
|
|
1166
1267
|
colors?: boolean | undefined;
|
|
1167
1268
|
} | undefined;
|
|
1269
|
+
experimental?: {
|
|
1270
|
+
repeatedPatternDetection?: boolean | undefined;
|
|
1271
|
+
} | undefined;
|
|
1168
1272
|
}>;
|
|
1169
1273
|
export type ComponentSourceConfig = z.infer<typeof ComponentSourceConfigSchema>;
|
|
1170
1274
|
export type ReactConfig = z.infer<typeof ReactConfigSchema>;
|
|
@@ -1180,10 +1284,12 @@ export type TailwindConfig = z.infer<typeof TailwindConfigSchema>;
|
|
|
1180
1284
|
export type SourcesConfig = z.infer<typeof SourcesConfigSchema>;
|
|
1181
1285
|
export type DriftIgnore = z.infer<typeof DriftIgnoreSchema>;
|
|
1182
1286
|
export type AggregationConfig = z.infer<typeof AggregationConfigSchema>;
|
|
1287
|
+
export type DriftTypeConfig = z.infer<typeof DriftTypeConfigSchema>;
|
|
1183
1288
|
export type DriftConfig = z.infer<typeof DriftConfigSchema>;
|
|
1184
1289
|
export type ClaudeConfig = z.infer<typeof ClaudeConfigSchema>;
|
|
1185
1290
|
export type ProjectConfig = z.infer<typeof ProjectConfigSchema>;
|
|
1186
1291
|
export type OutputConfig = z.infer<typeof OutputConfigSchema>;
|
|
1292
|
+
export type ExperimentalConfig = z.infer<typeof ExperimentalConfigSchema>;
|
|
1187
1293
|
export type BuoyConfig = z.infer<typeof BuoyConfigSchema>;
|
|
1188
1294
|
export declare function defineConfig(config: BuoyConfig): BuoyConfig;
|
|
1189
1295
|
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;EAKtC,CAAC;AAGH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;EAE5B,CAAC;AAGH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;EAE1B,CAAC;AAGH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;EAE7B,CAAC;AAKH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;EAE9B,CAAC;AAGH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;EAGnC,CAAC;AAGH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;EAqB/B,CAAC;AAGH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;EAM5B,CAAC;AAGH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;EAIhC,CAAC;AAGH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;EAI5B,CAAC;AAGH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAI/B,CAAC;AAGH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe9B,CAAC;AAGH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;EAI5B,CAAC;AAGH,eAAO,MAAM,uBAAuB;IAClC,sDAAsD;;IAEtD,sCAAsC;;IAEtC,oEAAoE;;;;;;;;;;EAEpE,CAAC;AAGH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/config/schema.js
CHANGED
|
@@ -110,11 +110,19 @@ export const AggregationConfigSchema = z.object({
|
|
|
110
110
|
/** Path patterns for path-based grouping (e.g., "src/legacy/**") */
|
|
111
111
|
pathPatterns: z.array(z.string()).default([]),
|
|
112
112
|
});
|
|
113
|
+
// Per-drift-type config
|
|
114
|
+
export const DriftTypeConfigSchema = z.object({
|
|
115
|
+
enabled: z.boolean().default(true),
|
|
116
|
+
severity: z.enum(['info', 'warning', 'critical']).optional(),
|
|
117
|
+
minOccurrences: z.number().min(2).optional(),
|
|
118
|
+
matching: z.enum(['exact', 'tight', 'loose']).optional(),
|
|
119
|
+
}).passthrough();
|
|
113
120
|
// Drift config
|
|
114
121
|
export const DriftConfigSchema = z.object({
|
|
115
122
|
ignore: z.array(DriftIgnoreSchema).default([]),
|
|
116
123
|
severity: z.record(z.enum(['info', 'warning', 'critical'])).default({}),
|
|
117
124
|
aggregation: AggregationConfigSchema.default({}),
|
|
125
|
+
types: z.record(DriftTypeConfigSchema).default({}),
|
|
118
126
|
});
|
|
119
127
|
// Claude config
|
|
120
128
|
export const ClaudeConfigSchema = z.object({
|
|
@@ -137,6 +145,10 @@ export const OutputConfigSchema = z.object({
|
|
|
137
145
|
format: z.enum(['table', 'json', 'markdown']).default('table'),
|
|
138
146
|
colors: z.boolean().default(true),
|
|
139
147
|
});
|
|
148
|
+
// Experimental features config
|
|
149
|
+
export const ExperimentalConfigSchema = z.object({
|
|
150
|
+
repeatedPatternDetection: z.boolean().default(false),
|
|
151
|
+
}).default({});
|
|
140
152
|
// Main config schema
|
|
141
153
|
export const BuoyConfigSchema = z.object({
|
|
142
154
|
project: ProjectConfigSchema,
|
|
@@ -144,6 +156,7 @@ export const BuoyConfigSchema = z.object({
|
|
|
144
156
|
drift: DriftConfigSchema.default({}),
|
|
145
157
|
claude: ClaudeConfigSchema.default({}),
|
|
146
158
|
output: OutputConfigSchema.default({}),
|
|
159
|
+
experimental: ExperimentalConfigSchema.default({}),
|
|
147
160
|
});
|
|
148
161
|
// Helper to define config (for user-facing config files)
|
|
149
162
|
export function defineConfig(config) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,8 @@ export interface DriftAnalysisOptions {
|
|
|
21
21
|
filterType?: string;
|
|
22
22
|
/** Scan cache for incremental scanning */
|
|
23
23
|
cache?: ScanCache;
|
|
24
|
+
/** Enable experimental features (repeated pattern detection) */
|
|
25
|
+
experimental?: boolean;
|
|
24
26
|
}
|
|
25
27
|
export interface DriftAnalysisResult {
|
|
26
28
|
/** All drifts after filtering */
|
|
@@ -80,5 +82,9 @@ export declare class DriftAnalysisService {
|
|
|
80
82
|
* Run full drift analysis pipeline
|
|
81
83
|
*/
|
|
82
84
|
analyze(options?: DriftAnalysisOptions): Promise<DriftAnalysisResult>;
|
|
85
|
+
/**
|
|
86
|
+
* Detect repeated class patterns across source files (experimental)
|
|
87
|
+
*/
|
|
88
|
+
private detectRepeatedPatterns;
|
|
83
89
|
}
|
|
84
90
|
//# sourceMappingURL=drift-analysis.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drift-analysis.d.ts","sourceRoot":"","sources":["../../src/services/drift-analysis.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAmB,SAAS,
|
|
1
|
+
{"version":3,"file":"drift-analysis.d.ts","sourceRoot":"","sources":["../../src/services/drift-analysis.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAmB,SAAS,EAA6B,MAAM,uBAAuB,CAAC;AAK9F,MAAM,WAAW,oBAAoB;IACnC,oCAAoC;IACpC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,gDAAgD;IAChD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iCAAiC;IACjC,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,gEAAgE;IAChE,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,iCAAiC;IACjC,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,mCAAmC;IACnC,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,gDAAgD;IAChD,cAAc,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAYD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAOA;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,WAAW,EAAE,EACrB,MAAM,EAAE,QAAQ,GAAG,MAAM,GACxB,OAAO,CAIT;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CAIzE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,EAAE,EACrB,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAC1C,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACpC,WAAW,EAAE,CAqBf;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,EAAE,EACrB,WAAW,EAAE,QAAQ,GACpB,WAAW,EAAE,CAGf;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,WAAW,EAAE,EACrB,IAAI,EAAE,MAAM,GACX,WAAW,EAAE,CAEf;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,WAAW,EAAE,EACrB,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,GACzC,WAAW,EAAE,CAMf;AAED;;GAEG;AACH,qBAAa,oBAAoB;IACnB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEtC;;OAEG;IACG,OAAO,CACX,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,mBAAmB,CAAC;IA+G/B;;OAEG;YACW,sBAAsB;CA0CrC"}
|
|
@@ -10,7 +10,10 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import { ScanOrchestrator } from "../scan/orchestrator.js";
|
|
12
12
|
import { getSeverityWeight } from "@buoy-design/core";
|
|
13
|
-
import { TailwindScanner } from "@buoy-design/scanners";
|
|
13
|
+
import { TailwindScanner, extractStaticClassStrings } from "@buoy-design/scanners";
|
|
14
|
+
import { detectRepeatedPatterns } from "@buoy-design/core";
|
|
15
|
+
import { glob } from "glob";
|
|
16
|
+
import { readFile } from "fs/promises";
|
|
14
17
|
/**
|
|
15
18
|
* Severity order for filtering and sorting (0 = lowest, 2 = highest)
|
|
16
19
|
* Use getSeverityWeight from @buoy-design/core for consistent ordering
|
|
@@ -105,7 +108,7 @@ export class DriftAnalysisService {
|
|
|
105
108
|
* Run full drift analysis pipeline
|
|
106
109
|
*/
|
|
107
110
|
async analyze(options = {}) {
|
|
108
|
-
const { onProgress, includeBaseline, minSeverity, filterType, cache } = options;
|
|
111
|
+
const { onProgress, includeBaseline, minSeverity, filterType, cache, experimental } = options;
|
|
109
112
|
// Step 1: Scan components
|
|
110
113
|
onProgress?.("Scanning components...");
|
|
111
114
|
const orchestrator = new ScanOrchestrator(this.config, process.cwd(), {
|
|
@@ -142,6 +145,19 @@ export class DriftAnalysisService {
|
|
|
142
145
|
onProgress?.(`Found ${tailwindResult.drifts.length} Tailwind arbitrary value issues`);
|
|
143
146
|
}
|
|
144
147
|
}
|
|
148
|
+
// Step 2.6: Experimental repeated pattern detection
|
|
149
|
+
const experimentalEnabled = this.config.experimental?.repeatedPatternDetection || experimental;
|
|
150
|
+
if (experimentalEnabled) {
|
|
151
|
+
const patternConfig = (this.config.drift?.types?.["repeated-pattern"] ?? {});
|
|
152
|
+
if (patternConfig.enabled !== false) {
|
|
153
|
+
onProgress?.("Detecting repeated patterns (experimental)...");
|
|
154
|
+
const patternDrifts = await this.detectRepeatedPatterns(patternConfig);
|
|
155
|
+
drifts.push(...patternDrifts);
|
|
156
|
+
if (patternDrifts.length > 0) {
|
|
157
|
+
onProgress?.(`Found ${patternDrifts.length} repeated pattern issues`);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
145
161
|
// Step 3: Apply severity filter (before other filters for efficiency)
|
|
146
162
|
if (minSeverity) {
|
|
147
163
|
drifts = filterBySeverity(drifts, minSeverity);
|
|
@@ -173,5 +189,42 @@ export class DriftAnalysisService {
|
|
|
173
189
|
summary: calculateDriftSummary(drifts),
|
|
174
190
|
};
|
|
175
191
|
}
|
|
192
|
+
/**
|
|
193
|
+
* Detect repeated class patterns across source files (experimental)
|
|
194
|
+
*/
|
|
195
|
+
async detectRepeatedPatterns(config) {
|
|
196
|
+
const occurrences = [];
|
|
197
|
+
const cwd = process.cwd();
|
|
198
|
+
// Find all source files
|
|
199
|
+
const patterns = ["**/*.tsx", "**/*.jsx", "**/*.vue", "**/*.svelte"];
|
|
200
|
+
const ignore = ["**/node_modules/**", "**/dist/**", "**/.next/**", "**/build/**"];
|
|
201
|
+
const files = await glob(patterns, { cwd, ignore, absolute: true });
|
|
202
|
+
for (const file of files) {
|
|
203
|
+
try {
|
|
204
|
+
const content = await readFile(file, "utf-8");
|
|
205
|
+
const relativePath = file.replace(cwd + "/", "");
|
|
206
|
+
// Extract static class strings using existing extractor
|
|
207
|
+
const classStrings = extractStaticClassStrings(content);
|
|
208
|
+
for (const cs of classStrings) {
|
|
209
|
+
// Combine all classes into a single string
|
|
210
|
+
const allClasses = cs.classes.join(" ");
|
|
211
|
+
if (allClasses.trim()) {
|
|
212
|
+
occurrences.push({
|
|
213
|
+
classes: allClasses,
|
|
214
|
+
file: relativePath,
|
|
215
|
+
line: cs.line,
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
catch {
|
|
221
|
+
// Skip files that can't be read
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
return detectRepeatedPatterns(occurrences, {
|
|
225
|
+
minOccurrences: config.minOccurrences ?? 3,
|
|
226
|
+
matching: config.matching ?? "exact",
|
|
227
|
+
});
|
|
228
|
+
}
|
|
176
229
|
}
|
|
177
230
|
//# sourceMappingURL=drift-analysis.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drift-analysis.js","sourceRoot":"","sources":["../../src/services/drift-analysis.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C;;;;;;;;GAQG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAa,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"drift-analysis.js","sourceRoot":"","sources":["../../src/services/drift-analysis.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@buoy-design/cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.7",
|
|
4
4
|
"description": "Buoy CLI - Design drift detection for the AI era",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -42,10 +42,10 @@
|
|
|
42
42
|
"glob": "^11.0.0",
|
|
43
43
|
"open": "^11.0.0",
|
|
44
44
|
"ora": "^8.1.1",
|
|
45
|
-
"yaml": "^2.
|
|
45
|
+
"yaml": "^2.8.2",
|
|
46
46
|
"zod": "^3.24.1",
|
|
47
47
|
"zod-validation-error": "^5.0.0",
|
|
48
|
-
"@buoy-design/core": "0.1.
|
|
48
|
+
"@buoy-design/core": "0.1.11",
|
|
49
49
|
"@buoy-design/db": "0.1.4",
|
|
50
50
|
"@buoy-design/scanners": "0.1.8"
|
|
51
51
|
},
|