driftdetect 0.7.1 → 0.8.1

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 (85) hide show
  1. package/dist/bin/drift.d.ts +11 -0
  2. package/dist/bin/drift.js +26 -1
  3. package/dist/bin/drift.js.map +1 -1
  4. package/dist/commands/approve.d.ts +2 -0
  5. package/dist/commands/approve.d.ts.map +1 -1
  6. package/dist/commands/approve.js +92 -1
  7. package/dist/commands/approve.js.map +1 -1
  8. package/dist/commands/boundaries.d.ts +20 -0
  9. package/dist/commands/callgraph.d.ts.map +1 -1
  10. package/dist/commands/callgraph.js +42 -52
  11. package/dist/commands/callgraph.js.map +1 -1
  12. package/dist/commands/context.d.ts +19 -0
  13. package/dist/commands/context.d.ts.map +1 -0
  14. package/dist/commands/context.js +301 -0
  15. package/dist/commands/context.js.map +1 -0
  16. package/dist/commands/cpp.d.ts +22 -0
  17. package/dist/commands/cpp.d.ts.map +1 -0
  18. package/dist/commands/cpp.js +485 -0
  19. package/dist/commands/cpp.js.map +1 -0
  20. package/dist/commands/dashboard.d.ts +16 -0
  21. package/dist/commands/dashboard.d.ts.map +1 -1
  22. package/dist/commands/dashboard.js +3 -1
  23. package/dist/commands/dashboard.js.map +1 -1
  24. package/dist/commands/dna/export.d.ts +6 -0
  25. package/dist/commands/dna/gene.d.ts +6 -0
  26. package/dist/commands/dna/index.d.ts +8 -0
  27. package/dist/commands/dna/mutations.d.ts +6 -0
  28. package/dist/commands/dna/playbook.d.ts +6 -0
  29. package/dist/commands/dna/scan.d.ts +6 -0
  30. package/dist/commands/dna/status.d.ts +6 -0
  31. package/dist/commands/gate.d.ts +33 -0
  32. package/dist/commands/gate.d.ts.map +1 -0
  33. package/dist/commands/gate.js +199 -0
  34. package/dist/commands/gate.js.map +1 -0
  35. package/dist/commands/ignore.d.ts.map +1 -1
  36. package/dist/commands/ignore.js +36 -0
  37. package/dist/commands/ignore.js.map +1 -1
  38. package/dist/commands/index.d.ts +6 -0
  39. package/dist/commands/index.d.ts.map +1 -1
  40. package/dist/commands/index.js +12 -0
  41. package/dist/commands/index.js.map +1 -1
  42. package/dist/commands/init.d.ts +19 -0
  43. package/dist/commands/init.d.ts.map +1 -1
  44. package/dist/commands/init.js +41 -1
  45. package/dist/commands/init.js.map +1 -1
  46. package/dist/commands/license.d.ts +12 -0
  47. package/dist/commands/license.d.ts.map +1 -0
  48. package/dist/commands/license.js +133 -0
  49. package/dist/commands/license.js.map +1 -0
  50. package/dist/commands/parser.d.ts +20 -0
  51. package/dist/commands/rust.d.ts +21 -0
  52. package/dist/commands/rust.d.ts.map +1 -0
  53. package/dist/commands/rust.js +526 -0
  54. package/dist/commands/rust.js.map +1 -0
  55. package/dist/commands/scan.d.ts.map +1 -1
  56. package/dist/commands/scan.js +69 -1
  57. package/dist/commands/scan.js.map +1 -1
  58. package/dist/commands/simulate.d.ts.map +1 -1
  59. package/dist/commands/simulate.js +22 -1
  60. package/dist/commands/simulate.js.map +1 -1
  61. package/dist/commands/telemetry.d.ts +9 -0
  62. package/dist/commands/telemetry.d.ts.map +1 -0
  63. package/dist/commands/telemetry.js +289 -0
  64. package/dist/commands/telemetry.js.map +1 -0
  65. package/dist/commands/trends.d.ts +12 -0
  66. package/dist/commands/watch.d.ts +13 -0
  67. package/dist/git/hooks.d.ts +108 -0
  68. package/dist/git/index.d.ts +6 -0
  69. package/dist/git/staged-files.d.ts +41 -0
  70. package/dist/reporters/github-reporter.d.ts +13 -0
  71. package/dist/reporters/gitlab-reporter.d.ts +16 -0
  72. package/dist/reporters/index.d.ts +9 -0
  73. package/dist/reporters/json-reporter.d.ts +13 -0
  74. package/dist/reporters/text-reporter.d.ts +13 -0
  75. package/dist/reporters/types.d.ts +42 -0
  76. package/dist/services/boundary-scanner.d.ts +21 -0
  77. package/dist/services/contract-scanner.d.ts +35 -0
  78. package/dist/types/index.d.ts +24 -0
  79. package/dist/ui/index.d.ts +11 -0
  80. package/dist/ui/progress.d.ts +115 -0
  81. package/dist/ui/prompts.d.ts +91 -0
  82. package/dist/ui/spinner.d.ts +109 -0
  83. package/dist/ui/table.d.ts +118 -0
  84. package/package.json +17 -17
  85. package/LICENSE +0 -21
@@ -0,0 +1,133 @@
1
+ /**
2
+ * License Command - drift license
3
+ *
4
+ * Display license status and available features.
5
+ */
6
+ import { Command } from 'commander';
7
+ import chalk from 'chalk';
8
+ import { getLicenseManager, getLicenseStatus, FEATURE_TIERS, TIER_HIERARCHY, } from 'driftdetect-core';
9
+ /**
10
+ * Format tier with color
11
+ */
12
+ function formatTier(tier) {
13
+ switch (tier) {
14
+ case 'enterprise':
15
+ return chalk.magenta.bold(tier);
16
+ case 'team':
17
+ return chalk.blue.bold(tier);
18
+ case 'community':
19
+ default:
20
+ return chalk.green.bold(tier);
21
+ }
22
+ }
23
+ /**
24
+ * Group features by tier
25
+ */
26
+ function groupFeaturesByTier() {
27
+ const grouped = {
28
+ community: [],
29
+ team: [],
30
+ enterprise: [],
31
+ };
32
+ for (const [feature, tier] of Object.entries(FEATURE_TIERS)) {
33
+ grouped[tier].push(feature);
34
+ }
35
+ return grouped;
36
+ }
37
+ /**
38
+ * License command implementation
39
+ */
40
+ async function licenseAction(options) {
41
+ const rootDir = process.cwd();
42
+ const format = options.format ?? 'text';
43
+ try {
44
+ const status = await getLicenseStatus(rootDir);
45
+ const manager = getLicenseManager(rootDir);
46
+ const source = manager.getSource();
47
+ if (format === 'json') {
48
+ console.log(JSON.stringify({
49
+ ...status,
50
+ source,
51
+ allFeatures: groupFeaturesByTier(),
52
+ }, null, 2));
53
+ return;
54
+ }
55
+ // Text output
56
+ console.log();
57
+ console.log(chalk.bold('🔑 Drift License Status'));
58
+ console.log(chalk.gray('─'.repeat(50)));
59
+ console.log();
60
+ // Current tier
61
+ console.log(` Tier: ${formatTier(status.tier)}`);
62
+ // License source
63
+ const sourceLabel = {
64
+ environment: 'DRIFT_LICENSE_KEY env var',
65
+ file: '.drift/license.key file',
66
+ config: '.drift/config.json',
67
+ none: 'No license (Community)',
68
+ }[source];
69
+ console.log(` Source: ${chalk.gray(sourceLabel)}`);
70
+ // Organization (if licensed)
71
+ if (status.organization) {
72
+ console.log(` Organization: ${chalk.cyan(status.organization)}`);
73
+ }
74
+ // Expiration
75
+ if (status.expiresAt) {
76
+ const daysLabel = status.daysRemaining !== null
77
+ ? status.daysRemaining > 0
78
+ ? chalk.yellow(`(${status.daysRemaining} days remaining)`)
79
+ : chalk.red('(EXPIRED)')
80
+ : '';
81
+ console.log(` Expires: ${status.expiresAt} ${daysLabel}`);
82
+ }
83
+ // Warnings
84
+ if (status.warnings.length > 0) {
85
+ console.log();
86
+ console.log(chalk.yellow(' ⚠️ Warnings:'));
87
+ for (const warning of status.warnings) {
88
+ console.log(chalk.yellow(` • ${warning}`));
89
+ }
90
+ }
91
+ // Available features
92
+ console.log();
93
+ console.log(chalk.bold(' Available Features:'));
94
+ console.log();
95
+ const grouped = groupFeaturesByTier();
96
+ const currentLevel = TIER_HIERARCHY[status.tier];
97
+ for (const tier of ['community', 'team', 'enterprise']) {
98
+ const tierLevel = TIER_HIERARCHY[tier];
99
+ const isAvailable = tierLevel <= currentLevel;
100
+ const features = grouped[tier];
101
+ if (features.length === 0)
102
+ continue;
103
+ const tierLabel = isAvailable
104
+ ? chalk.green(`✓ ${tier.toUpperCase()}`)
105
+ : chalk.gray(`○ ${tier.toUpperCase()}`);
106
+ console.log(` ${tierLabel}`);
107
+ for (const feature of features) {
108
+ const featureLabel = isAvailable
109
+ ? chalk.green(` ✓ ${feature}`)
110
+ : chalk.gray(` ○ ${feature}`);
111
+ console.log(featureLabel);
112
+ }
113
+ console.log();
114
+ }
115
+ // Upgrade prompt for non-enterprise
116
+ if (status.tier !== 'enterprise') {
117
+ console.log(chalk.gray('─'.repeat(50)));
118
+ console.log();
119
+ console.log(` ${chalk.cyan('Upgrade to unlock more features:')}`);
120
+ console.log(` ${chalk.underline('https://driftscan.dev/pricing')}`);
121
+ console.log();
122
+ }
123
+ }
124
+ catch (error) {
125
+ console.error(chalk.red(`Error: ${error.message}`));
126
+ process.exit(1);
127
+ }
128
+ }
129
+ export const licenseCommand = new Command('license')
130
+ .description('Display license status and available features')
131
+ .option('-f, --format <format>', 'Output format (text, json)', 'text')
132
+ .action(licenseAction);
133
+ //# sourceMappingURL=license.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"license.js","sourceRoot":"","sources":["../../src/commands/license.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Parser Command - drift parser
3
+ *
4
+ * Show parser information and diagnostics for drift's language parsers.
5
+ * Displays which parsers are available, their capabilities, and allows
6
+ * testing parsing on specific files.
7
+ *
8
+ * @requirements Phase 4 - CLI Integration
9
+ */
10
+ import { Command } from 'commander';
11
+ export interface ParserOptions {
12
+ /** Test parsing a specific file */
13
+ test?: string;
14
+ /** Output format */
15
+ format?: 'text' | 'json';
16
+ /** Show verbose output */
17
+ verbose?: boolean;
18
+ }
19
+ export declare const parserCommand: Command;
20
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Rust Command - drift rust
3
+ *
4
+ * Analyze Rust projects: routes, error handling, traits, data access.
5
+ *
6
+ * @requirements Rust Language Support
7
+ */
8
+ import { Command } from 'commander';
9
+ export interface RustOptions {
10
+ /** Output format */
11
+ format?: 'text' | 'json';
12
+ /** Enable verbose output */
13
+ verbose?: boolean;
14
+ /** Filter by framework */
15
+ framework?: string;
16
+ }
17
+ /**
18
+ * Create the Rust command
19
+ */
20
+ export declare function createRustCommand(): Command;
21
+ //# sourceMappingURL=rust.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rust.d.ts","sourceRoot":"","sources":["../../src/commands/rust.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,MAAM,WAAW,WAAW;IAC1B,oBAAoB;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAkE3C"}