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.
Files changed (92) hide show
  1. package/dist/bin/drift.js +37 -1
  2. package/dist/bin/drift.js.map +1 -1
  3. package/dist/commands/approve.d.ts +20 -0
  4. package/dist/commands/approve.d.ts.map +1 -1
  5. package/dist/commands/approve.js +38 -72
  6. package/dist/commands/approve.js.map +1 -1
  7. package/dist/commands/check.d.ts +41 -0
  8. package/dist/commands/check.d.ts.map +1 -1
  9. package/dist/commands/check.js +21 -11
  10. package/dist/commands/check.js.map +1 -1
  11. package/dist/commands/constraints.d.ts +17 -0
  12. package/dist/commands/constraints.d.ts.map +1 -0
  13. package/dist/commands/constraints.js +686 -0
  14. package/dist/commands/constraints.js.map +1 -0
  15. package/dist/commands/coupling.d.ts +17 -0
  16. package/dist/commands/coupling.d.ts.map +1 -0
  17. package/dist/commands/coupling.js +726 -0
  18. package/dist/commands/coupling.js.map +1 -0
  19. package/dist/commands/decisions.d.ts +19 -0
  20. package/dist/commands/decisions.d.ts.map +1 -0
  21. package/dist/commands/decisions.js +771 -0
  22. package/dist/commands/decisions.js.map +1 -0
  23. package/dist/commands/error-handling.d.ts +15 -0
  24. package/dist/commands/error-handling.d.ts.map +1 -0
  25. package/dist/commands/error-handling.js +608 -0
  26. package/dist/commands/error-handling.js.map +1 -0
  27. package/dist/commands/export.d.ts +16 -0
  28. package/dist/commands/export.d.ts.map +1 -1
  29. package/dist/commands/export.js +46 -50
  30. package/dist/commands/export.js.map +1 -1
  31. package/dist/commands/files.d.ts +15 -0
  32. package/dist/commands/files.d.ts.map +1 -1
  33. package/dist/commands/files.js +27 -48
  34. package/dist/commands/files.js.map +1 -1
  35. package/dist/commands/go.d.ts +21 -0
  36. package/dist/commands/go.d.ts.map +1 -0
  37. package/dist/commands/go.js +530 -0
  38. package/dist/commands/go.js.map +1 -0
  39. package/dist/commands/ignore.d.ts +20 -0
  40. package/dist/commands/ignore.d.ts.map +1 -1
  41. package/dist/commands/ignore.js +25 -48
  42. package/dist/commands/ignore.js.map +1 -1
  43. package/dist/commands/index.d.ts +11 -0
  44. package/dist/commands/index.d.ts.map +1 -1
  45. package/dist/commands/index.js +15 -0
  46. package/dist/commands/index.js.map +1 -1
  47. package/dist/commands/migrate-storage.d.ts +23 -0
  48. package/dist/commands/migrate-storage.d.ts.map +1 -0
  49. package/dist/commands/migrate-storage.js +337 -0
  50. package/dist/commands/migrate-storage.js.map +1 -0
  51. package/dist/commands/report.d.ts +22 -0
  52. package/dist/commands/report.d.ts.map +1 -1
  53. package/dist/commands/report.js +19 -10
  54. package/dist/commands/report.js.map +1 -1
  55. package/dist/commands/scan.d.ts +2 -0
  56. package/dist/commands/scan.d.ts.map +1 -1
  57. package/dist/commands/scan.js +134 -3
  58. package/dist/commands/scan.js.map +1 -1
  59. package/dist/commands/simulate.d.ts +17 -0
  60. package/dist/commands/simulate.d.ts.map +1 -0
  61. package/dist/commands/simulate.js +253 -0
  62. package/dist/commands/simulate.js.map +1 -0
  63. package/dist/commands/skills.d.ts +16 -0
  64. package/dist/commands/skills.d.ts.map +1 -0
  65. package/dist/commands/skills.js +409 -0
  66. package/dist/commands/skills.js.map +1 -0
  67. package/dist/commands/status.d.ts +20 -0
  68. package/dist/commands/status.d.ts.map +1 -1
  69. package/dist/commands/status.js +74 -72
  70. package/dist/commands/status.js.map +1 -1
  71. package/dist/commands/test-topology.d.ts +15 -0
  72. package/dist/commands/test-topology.d.ts.map +1 -0
  73. package/dist/commands/test-topology.js +589 -0
  74. package/dist/commands/test-topology.js.map +1 -0
  75. package/dist/commands/where.d.ts +15 -0
  76. package/dist/commands/where.d.ts.map +1 -1
  77. package/dist/commands/where.js +41 -88
  78. package/dist/commands/where.js.map +1 -1
  79. package/dist/commands/wpf.d.ts +21 -0
  80. package/dist/commands/wpf.d.ts.map +1 -0
  81. package/dist/commands/wpf.js +632 -0
  82. package/dist/commands/wpf.js.map +1 -0
  83. package/dist/commands/wrappers.d.ts +16 -0
  84. package/dist/commands/wrappers.d.ts.map +1 -0
  85. package/dist/commands/wrappers.js +181 -0
  86. package/dist/commands/wrappers.js.map +1 -0
  87. package/dist/services/pattern-service-factory.d.ts +37 -0
  88. package/dist/services/pattern-service-factory.d.ts.map +1 -0
  89. package/dist/services/pattern-service-factory.js +41 -0
  90. package/dist/services/pattern-service-factory.js.map +1 -0
  91. package/package.json +35 -23
  92. package/LICENSE +0 -21
@@ -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
- * Now reads from BOTH ManifestStore and PatternStore to ensure
6
- * all 15 categories are available.
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 { ManifestStore, PatternStore, } from 'driftdetect-core';
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
- // Load manifest
27
- const manifestStore = new ManifestStore(cwd);
28
- const manifest = await manifestStore.load();
29
- // Also load from PatternStore to get ALL 15 categories
30
- const patternStore = new PatternStore({ rootDir: cwd });
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
- query.category = options.category;
33
+ searchOptions.categories = [options.category];
44
34
  }
45
35
  if (options.status) {
46
- query.status = options.status;
36
+ searchOptions.statuses = [options.status];
47
37
  }
48
38
  if (options.minConfidence) {
49
- query.minConfidence = parseFloat(options.minConfidence);
39
+ searchOptions.minConfidence = parseFloat(options.minConfidence);
50
40
  }
51
- // Query patterns from manifest
52
- const manifestResults = manifest ? manifestStore.queryPatterns(query) : [];
53
- // Also search in PatternStore for patterns matching the query
54
- // This ensures all 15 categories are searched
55
- const patternStoreResults = [];
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(allPatterns.map(p => p.category));
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 = allPatterns.filter(p => p.category === cat).length;
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":"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"}
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"}