driftdetect 0.4.7 → 0.6.0
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/drift.js +37 -1
- package/dist/bin/drift.js.map +1 -1
- package/dist/commands/approve.d.ts +20 -0
- package/dist/commands/approve.d.ts.map +1 -1
- package/dist/commands/approve.js +38 -72
- package/dist/commands/approve.js.map +1 -1
- package/dist/commands/check.d.ts +41 -0
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +21 -11
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/constraints.d.ts +17 -0
- package/dist/commands/constraints.d.ts.map +1 -0
- package/dist/commands/constraints.js +686 -0
- package/dist/commands/constraints.js.map +1 -0
- package/dist/commands/coupling.d.ts +17 -0
- package/dist/commands/coupling.d.ts.map +1 -0
- package/dist/commands/coupling.js +726 -0
- package/dist/commands/coupling.js.map +1 -0
- package/dist/commands/decisions.d.ts +19 -0
- package/dist/commands/decisions.d.ts.map +1 -0
- package/dist/commands/decisions.js +771 -0
- package/dist/commands/decisions.js.map +1 -0
- package/dist/commands/error-handling.d.ts +15 -0
- package/dist/commands/error-handling.d.ts.map +1 -0
- package/dist/commands/error-handling.js +608 -0
- package/dist/commands/error-handling.js.map +1 -0
- package/dist/commands/export.d.ts +16 -0
- package/dist/commands/export.d.ts.map +1 -1
- package/dist/commands/export.js +46 -50
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/files.d.ts +15 -0
- package/dist/commands/files.d.ts.map +1 -1
- package/dist/commands/files.js +27 -48
- package/dist/commands/files.js.map +1 -1
- package/dist/commands/go.d.ts +21 -0
- package/dist/commands/go.d.ts.map +1 -0
- package/dist/commands/go.js +530 -0
- package/dist/commands/go.js.map +1 -0
- package/dist/commands/ignore.d.ts +20 -0
- package/dist/commands/ignore.d.ts.map +1 -1
- package/dist/commands/ignore.js +25 -48
- package/dist/commands/ignore.js.map +1 -1
- package/dist/commands/index.d.ts +11 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +15 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/migrate-storage.d.ts +23 -0
- package/dist/commands/migrate-storage.d.ts.map +1 -0
- package/dist/commands/migrate-storage.js +337 -0
- package/dist/commands/migrate-storage.js.map +1 -0
- package/dist/commands/report.d.ts +22 -0
- package/dist/commands/report.d.ts.map +1 -1
- package/dist/commands/report.js +19 -10
- package/dist/commands/report.js.map +1 -1
- package/dist/commands/scan.d.ts +2 -0
- package/dist/commands/scan.d.ts.map +1 -1
- package/dist/commands/scan.js +134 -3
- package/dist/commands/scan.js.map +1 -1
- package/dist/commands/simulate.d.ts +17 -0
- package/dist/commands/simulate.d.ts.map +1 -0
- package/dist/commands/simulate.js +253 -0
- package/dist/commands/simulate.js.map +1 -0
- package/dist/commands/skills.d.ts +16 -0
- package/dist/commands/skills.d.ts.map +1 -0
- package/dist/commands/skills.js +409 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/status.d.ts +20 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +74 -72
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/test-topology.d.ts +15 -0
- package/dist/commands/test-topology.d.ts.map +1 -0
- package/dist/commands/test-topology.js +589 -0
- package/dist/commands/test-topology.js.map +1 -0
- package/dist/commands/where.d.ts +15 -0
- package/dist/commands/where.d.ts.map +1 -1
- package/dist/commands/where.js +41 -88
- package/dist/commands/where.js.map +1 -1
- package/dist/commands/wpf.d.ts +21 -0
- package/dist/commands/wpf.d.ts.map +1 -0
- package/dist/commands/wpf.js +632 -0
- package/dist/commands/wpf.js.map +1 -0
- package/dist/commands/wrappers.d.ts +16 -0
- package/dist/commands/wrappers.d.ts.map +1 -0
- package/dist/commands/wrappers.js +181 -0
- package/dist/commands/wrappers.js.map +1 -0
- package/dist/services/pattern-service-factory.d.ts +37 -0
- package/dist/services/pattern-service-factory.d.ts.map +1 -0
- package/dist/services/pattern-service-factory.js +41 -0
- package/dist/services/pattern-service-factory.js.map +1 -0
- package/package.json +35 -23
- package/LICENSE +0 -21
package/dist/commands/where.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Where Command - Find pattern locations
|
|
3
3
|
*
|
|
4
4
|
* Quickly find where patterns are located in the codebase.
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
*
|
|
6
|
+
* MIGRATION: Now uses IPatternService for pattern operations.
|
|
7
7
|
*
|
|
8
8
|
* Usage:
|
|
9
9
|
* drift where auth # Find patterns matching "auth"
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import { Command } from 'commander';
|
|
14
14
|
import chalk from 'chalk';
|
|
15
|
-
import {
|
|
15
|
+
import { createCLIPatternService } from '../services/pattern-service-factory.js';
|
|
16
16
|
export const whereCommand = new Command('where')
|
|
17
17
|
.description('Find pattern locations')
|
|
18
18
|
.argument('<pattern>', 'Pattern name or ID (supports partial matching)')
|
|
@@ -23,105 +23,61 @@ export const whereCommand = new Command('where')
|
|
|
23
23
|
.option('--json', 'Output as JSON')
|
|
24
24
|
.action(async (pattern, options) => {
|
|
25
25
|
const cwd = process.cwd();
|
|
26
|
-
//
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
await patternStore.initialize();
|
|
32
|
-
const allPatterns = patternStore.getAll();
|
|
33
|
-
if (!manifest && allPatterns.length === 0) {
|
|
34
|
-
console.error(chalk.red('No patterns found. Run `drift scan` first.'));
|
|
35
|
-
process.exit(1);
|
|
36
|
-
}
|
|
37
|
-
// Build query
|
|
38
|
-
const query = {
|
|
39
|
-
pattern,
|
|
40
|
-
limit: parseInt(options.limit, 10),
|
|
26
|
+
// Initialize pattern service
|
|
27
|
+
const service = createCLIPatternService(cwd);
|
|
28
|
+
// Search for patterns using the service
|
|
29
|
+
const searchOptions = {
|
|
30
|
+
limit: 100, // Get more results for filtering
|
|
41
31
|
};
|
|
42
32
|
if (options.category) {
|
|
43
|
-
|
|
33
|
+
searchOptions.categories = [options.category];
|
|
44
34
|
}
|
|
45
35
|
if (options.status) {
|
|
46
|
-
|
|
36
|
+
searchOptions.statuses = [options.status];
|
|
47
37
|
}
|
|
48
38
|
if (options.minConfidence) {
|
|
49
|
-
|
|
39
|
+
searchOptions.minConfidence = parseFloat(options.minConfidence);
|
|
50
40
|
}
|
|
51
|
-
//
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
const searchTerm = pattern.toLowerCase();
|
|
57
|
-
const limit = parseInt(options.limit, 10);
|
|
58
|
-
for (const p of allPatterns) {
|
|
59
|
-
// Filter by pattern name/id
|
|
60
|
-
if (!p.id.toLowerCase().includes(searchTerm) &&
|
|
61
|
-
!p.name.toLowerCase().includes(searchTerm) &&
|
|
62
|
-
!p.category.toLowerCase().includes(searchTerm) &&
|
|
63
|
-
!p.subcategory.toLowerCase().includes(searchTerm)) {
|
|
64
|
-
continue;
|
|
65
|
-
}
|
|
66
|
-
// Filter by category
|
|
67
|
-
if (options.category && p.category !== options.category) {
|
|
68
|
-
continue;
|
|
69
|
-
}
|
|
70
|
-
// Filter by status
|
|
71
|
-
if (options.status && p.status !== options.status) {
|
|
72
|
-
continue;
|
|
73
|
-
}
|
|
74
|
-
// Filter by confidence
|
|
75
|
-
if (options.minConfidence && p.confidence.score < parseFloat(options.minConfidence)) {
|
|
76
|
-
continue;
|
|
77
|
-
}
|
|
78
|
-
const locations = p.locations.slice(0, limit).map(loc => ({
|
|
79
|
-
file: loc.file,
|
|
80
|
-
range: { start: loc.line, end: loc.endLine || loc.line },
|
|
81
|
-
type: 'block',
|
|
82
|
-
name: `line-${loc.line}`,
|
|
83
|
-
}));
|
|
84
|
-
patternStoreResults.push({
|
|
85
|
-
patternId: p.id,
|
|
86
|
-
patternName: p.name,
|
|
87
|
-
category: p.category,
|
|
88
|
-
locations,
|
|
89
|
-
totalCount: p.locations.length,
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
// Merge results (dedupe by pattern ID)
|
|
93
|
-
const mergedResults = new Map();
|
|
94
|
-
for (const r of manifestResults) {
|
|
95
|
-
mergedResults.set(r.patternId, r);
|
|
96
|
-
}
|
|
97
|
-
for (const r of patternStoreResults) {
|
|
98
|
-
if (!mergedResults.has(r.patternId)) {
|
|
99
|
-
// Add required fields for SemanticLocation compatibility
|
|
100
|
-
const locationsWithHash = r.locations.map(loc => ({
|
|
101
|
-
...loc,
|
|
102
|
-
hash: '',
|
|
103
|
-
confidence: 0.9,
|
|
104
|
-
}));
|
|
105
|
-
mergedResults.set(r.patternId, {
|
|
106
|
-
...r,
|
|
107
|
-
locations: locationsWithHash,
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
const results = Array.from(mergedResults.values());
|
|
112
|
-
if (results.length === 0) {
|
|
41
|
+
// Use the search method to find matching patterns
|
|
42
|
+
const searchResults = await service.search(pattern, searchOptions);
|
|
43
|
+
if (searchResults.length === 0) {
|
|
44
|
+
// Get all patterns to show available categories
|
|
45
|
+
const allPatternsResult = await service.listPatterns({ limit: 1000 });
|
|
113
46
|
console.log(chalk.yellow(`No patterns found matching "${pattern}"`));
|
|
114
47
|
// Show available categories
|
|
115
|
-
const categories = new Set(
|
|
48
|
+
const categories = new Set(allPatternsResult.items.map(p => p.category));
|
|
116
49
|
if (categories.size > 0) {
|
|
117
50
|
console.log(chalk.dim('\nAvailable categories:'));
|
|
118
51
|
for (const cat of categories) {
|
|
119
|
-
const count =
|
|
52
|
+
const count = allPatternsResult.items.filter(p => p.category === cat).length;
|
|
120
53
|
console.log(chalk.dim(` ${cat}: ${count} patterns`));
|
|
121
54
|
}
|
|
122
55
|
}
|
|
123
56
|
process.exit(0);
|
|
124
57
|
}
|
|
58
|
+
// Fetch full pattern details for results
|
|
59
|
+
const limit = parseInt(options.limit, 10);
|
|
60
|
+
const results = [];
|
|
61
|
+
for (const summary of searchResults) {
|
|
62
|
+
const fullPattern = await service.getPattern(summary.id);
|
|
63
|
+
if (!fullPattern)
|
|
64
|
+
continue;
|
|
65
|
+
const locations = fullPattern.locations.slice(0, limit).map(loc => ({
|
|
66
|
+
file: loc.file,
|
|
67
|
+
hash: '',
|
|
68
|
+
range: { start: loc.line, end: loc.endLine ?? loc.line },
|
|
69
|
+
type: 'block',
|
|
70
|
+
name: `line-${loc.line}`,
|
|
71
|
+
confidence: fullPattern.confidence,
|
|
72
|
+
}));
|
|
73
|
+
results.push({
|
|
74
|
+
patternId: fullPattern.id,
|
|
75
|
+
patternName: fullPattern.name,
|
|
76
|
+
category: fullPattern.category,
|
|
77
|
+
locations,
|
|
78
|
+
totalCount: fullPattern.locations.length,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
125
81
|
// Output
|
|
126
82
|
if (options.json) {
|
|
127
83
|
console.log(JSON.stringify(results, null, 2));
|
|
@@ -140,9 +96,6 @@ export const whereCommand = new Command('where')
|
|
|
140
96
|
if (loc.type !== 'file' && loc.type !== 'block') {
|
|
141
97
|
console.log(` ${chalk.dim(loc.type)}: ${chalk.white(loc.name)}`);
|
|
142
98
|
}
|
|
143
|
-
if (loc.signature) {
|
|
144
|
-
console.log(` ${chalk.dim(loc.signature.substring(0, 60))}`);
|
|
145
|
-
}
|
|
146
99
|
}
|
|
147
100
|
if (result.totalCount > result.locations.length) {
|
|
148
101
|
console.log(chalk.dim(` ... and ${result.totalCount - result.locations.length} more`));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"where.js","sourceRoot":"","sources":["../../src/commands/where.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"where.js","sourceRoot":"","sources":["../../src/commands/where.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WPF Command - drift wpf
|
|
3
|
+
*
|
|
4
|
+
* Analyze WPF applications: bindings, MVVM compliance, data flow.
|
|
5
|
+
*
|
|
6
|
+
* @requirements WPF Framework Support
|
|
7
|
+
*/
|
|
8
|
+
import { Command } from 'commander';
|
|
9
|
+
export interface WpfOptions {
|
|
10
|
+
/** Output format */
|
|
11
|
+
format?: 'text' | 'json';
|
|
12
|
+
/** Enable verbose output */
|
|
13
|
+
verbose?: boolean;
|
|
14
|
+
/** Show only unresolved bindings */
|
|
15
|
+
unresolvedOnly?: boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Create the WPF command
|
|
19
|
+
*/
|
|
20
|
+
export declare function createWpfCommand(): Command;
|
|
21
|
+
//# sourceMappingURL=wpf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wpf.d.ts","sourceRoot":"","sources":["../../src/commands/wpf.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,MAAM,WAAW,UAAU;IACzB,oBAAoB;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oCAAoC;IACpC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CA8E1C"}
|