css-to-tailwind-react 0.3.4 → 0.4.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.
@@ -1,3 +1,4 @@
1
+ import { FileResult } from './utils/reporter';
1
2
  export interface FileWriteOptions {
2
3
  dryRun: boolean;
3
4
  backup?: boolean;
@@ -5,10 +6,17 @@ export interface FileWriteOptions {
5
6
  export declare class FileWriter {
6
7
  private dryRun;
7
8
  private backupDir;
8
- constructor(options: FileWriteOptions);
9
+ private projectRoot;
10
+ constructor(options: FileWriteOptions & {
11
+ projectRoot?: string;
12
+ });
9
13
  writeFile(filePath: string, content: string, originalContent: string): Promise<boolean>;
10
14
  deleteFile(filePath: string): Promise<boolean>;
15
+ writeResults(results: FileResult[]): Promise<number>;
11
16
  private createBackup;
12
- private showDiff;
13
- static restoreBackups(): void;
17
+ static restoreBackups(projectRoot?: string): void;
14
18
  }
19
+ export declare function writeFiles(results: FileResult[], options: {
20
+ dryRun: boolean;
21
+ projectRoot: string;
22
+ }): Promise<number>;
@@ -4,26 +4,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.FileWriter = void 0;
7
+ exports.writeFiles = writeFiles;
7
8
  const fs_1 = __importDefault(require("fs"));
8
9
  const path_1 = __importDefault(require("path"));
9
- const chalk_1 = __importDefault(require("chalk"));
10
10
  const logger_1 = require("./utils/logger");
11
11
  class FileWriter {
12
12
  constructor(options) {
13
13
  this.dryRun = options.dryRun;
14
- this.backupDir = path_1.default.join(process.cwd(), '.css-to-tailwind-backups');
14
+ this.projectRoot = options.projectRoot || process.cwd();
15
+ this.backupDir = path_1.default.join(this.projectRoot, '.css-to-tailwind-backups');
15
16
  }
16
17
  async writeFile(filePath, content, originalContent) {
17
18
  if (this.dryRun) {
18
- this.showDiff(filePath, originalContent, content);
19
19
  return true;
20
20
  }
21
21
  try {
22
- // Create backup
23
22
  await this.createBackup(filePath, originalContent);
24
- // Write file
25
23
  fs_1.default.writeFileSync(filePath, content, 'utf-8');
26
- logger_1.logger.success(`✏️ Modified: ${path_1.default.relative(process.cwd(), filePath)}`);
24
+ logger_1.logger.success(`✏️ Modified: ${path_1.default.relative(this.projectRoot, filePath)}`);
27
25
  return true;
28
26
  }
29
27
  catch (error) {
@@ -33,15 +31,14 @@ class FileWriter {
33
31
  }
34
32
  async deleteFile(filePath) {
35
33
  if (this.dryRun) {
36
- logger_1.logger.info(`🗑️ Would delete: ${path_1.default.relative(process.cwd(), filePath)}`);
34
+ logger_1.logger.info(`🗑️ Would delete: ${path_1.default.relative(this.projectRoot, filePath)}`);
37
35
  return true;
38
36
  }
39
37
  try {
40
- // Create backup before deletion
41
38
  const content = fs_1.default.readFileSync(filePath, 'utf-8');
42
39
  await this.createBackup(filePath, content);
43
40
  fs_1.default.unlinkSync(filePath);
44
- logger_1.logger.success(`🗑️ Deleted: ${path_1.default.relative(process.cwd(), filePath)}`);
41
+ logger_1.logger.success(`🗑️ Deleted: ${path_1.default.relative(this.projectRoot, filePath)}`);
45
42
  return true;
46
43
  }
47
44
  catch (error) {
@@ -49,20 +46,30 @@ class FileWriter {
49
46
  return false;
50
47
  }
51
48
  }
49
+ async writeResults(results) {
50
+ let written = 0;
51
+ for (const result of results) {
52
+ if (result.status === 'error')
53
+ continue;
54
+ if (!result.hasChanges)
55
+ continue;
56
+ const success = await this.writeFile(result.filePath, result.newContent, result.originalContent);
57
+ if (success)
58
+ written++;
59
+ }
60
+ return written;
61
+ }
52
62
  async createBackup(filePath, content) {
53
63
  try {
54
- // Create backup directory if it doesn't exist
55
64
  if (!fs_1.default.existsSync(this.backupDir)) {
56
65
  fs_1.default.mkdirSync(this.backupDir, { recursive: true });
57
66
  }
58
- const relativePath = path_1.default.relative(process.cwd(), filePath);
67
+ const relativePath = path_1.default.relative(this.projectRoot, filePath);
59
68
  const backupPath = path_1.default.join(this.backupDir, relativePath);
60
69
  const backupDir = path_1.default.dirname(backupPath);
61
- // Create subdirectory structure
62
70
  if (!fs_1.default.existsSync(backupDir)) {
63
71
  fs_1.default.mkdirSync(backupDir, { recursive: true });
64
72
  }
65
- // Write backup
66
73
  fs_1.default.writeFileSync(backupPath, content, 'utf-8');
67
74
  logger_1.logger.verbose(`Created backup: ${backupPath}`);
68
75
  }
@@ -70,35 +77,13 @@ class FileWriter {
70
77
  logger_1.logger.warn(`Failed to create backup for ${filePath}:`, error);
71
78
  }
72
79
  }
73
- showDiff(filePath, original, modified) {
74
- const relativePath = path_1.default.relative(process.cwd(), filePath);
75
- logger_1.logger.info(`\n📄 ${relativePath} (dry-run)`);
76
- const originalLines = original.split('\n');
77
- const modifiedLines = modified.split('\n');
78
- // Simple diff - show first few changed lines
79
- const maxLines = Math.max(originalLines.length, modifiedLines.length);
80
- let changes = 0;
81
- for (let i = 0; i < maxLines && changes < 10; i++) {
82
- const orig = originalLines[i] || '';
83
- const mod = modifiedLines[i] || '';
84
- if (orig !== mod) {
85
- changes++;
86
- console.log(chalk_1.default.red(` - ${orig}`));
87
- console.log(chalk_1.default.green(` + ${mod}`));
88
- }
89
- }
90
- if (changes === 0) {
91
- logger_1.logger.verbose(' (no visible changes)');
92
- }
93
- }
94
- static restoreBackups() {
95
- const backupDir = path_1.default.join(process.cwd(), '.css-to-tailwind-backups');
80
+ static restoreBackups(projectRoot = process.cwd()) {
81
+ const backupDir = path_1.default.join(projectRoot, '.css-to-tailwind-backups');
96
82
  if (!fs_1.default.existsSync(backupDir)) {
97
83
  logger_1.logger.warn('No backups found to restore');
98
84
  return;
99
85
  }
100
86
  logger_1.logger.info('🔄 Restoring files from backup...');
101
- // Recursively restore files
102
87
  const restoreRecursive = (dir) => {
103
88
  const items = fs_1.default.readdirSync(dir);
104
89
  for (const item of items) {
@@ -109,7 +94,7 @@ class FileWriter {
109
94
  }
110
95
  else {
111
96
  const relativePath = path_1.default.relative(backupDir, fullPath);
112
- const originalPath = path_1.default.join(process.cwd(), relativePath);
97
+ const originalPath = path_1.default.join(projectRoot, relativePath);
113
98
  try {
114
99
  fs_1.default.copyFileSync(fullPath, originalPath);
115
100
  logger_1.logger.success(`Restored: ${relativePath}`);
@@ -125,4 +110,14 @@ class FileWriter {
125
110
  }
126
111
  }
127
112
  exports.FileWriter = FileWriter;
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZVdyaXRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9maWxlV3JpdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDRDQUFvQjtBQUNwQixnREFBd0I7QUFDeEIsa0RBQTBCO0FBQzFCLDJDQUF3QztBQU94QyxNQUFhLFVBQVU7SUFJckIsWUFBWSxPQUF5QjtRQUNuQyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQWdCLEVBQUUsT0FBZSxFQUFFLGVBQXVCO1FBQ3hFLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNsRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxJQUFJLENBQUM7WUFDSCxnQkFBZ0I7WUFDaEIsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUMsQ0FBQztZQUVuRCxhQUFhO1lBQ2IsWUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzdDLGVBQU0sQ0FBQyxPQUFPLENBQUMsaUJBQWlCLGNBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMxRSxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsZUFBTSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsUUFBUSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7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b0JBQW9CLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0Y7QUF6SUQsZ0NBeUlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gJ2ZzJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4vdXRpbHMvbG9nZ2VyJztcblxuZXhwb3J0IGludGVyZmFjZSBGaWxlV3JpdGVPcHRpb25zIHtcbiAgZHJ5UnVuOiBib29sZWFuO1xuICBiYWNrdXA/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgRmlsZVdyaXRlciB7XG4gIHByaXZhdGUgZHJ5UnVuOiBib29sZWFuO1xuICBwcml2YXRlIGJhY2t1cERpcjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEZpbGVXcml0ZU9wdGlvbnMpIHtcbiAgICB0aGlzLmRyeVJ1biA9IG9wdGlvbnMuZHJ5UnVuO1xuICAgIHRoaXMuYmFja3VwRGlyID0gcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksICcuY3NzLXRvLXRhaWx3aW5kLWJhY2t1cHMnKTtcbiAgfVxuXG4gIGFzeW5jIHdyaXRlRmlsZShmaWxlUGF0aDogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcsIG9yaWdpbmFsQ29udGVudDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKHRoaXMuZHJ5UnVuKSB7XG4gICAgICB0aGlzLnNob3dEaWZmKGZpbGVQYXRoLCBvcmlnaW5hbENvbnRlbnQsIGNvbnRlbnQpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIC8vIENyZWF0ZSBiYWNrdXBcbiAgICAgIGF3YWl0IHRoaXMuY3JlYXRlQmFja3VwKGZpbGVQYXRoLCBvcmlnaW5hbENvbnRlbnQpO1xuXG4gICAgICAvLyBXcml0ZSBmaWxlXG4gICAgICBmcy53cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBjb250ZW50LCAndXRmLTgnKTtcbiAgICAgIGxvZ2dlci5zdWNjZXNzKGDinI/vuI8gIE1vZGlmaWVkOiAke3BhdGgucmVsYXRpdmUocHJvY2Vzcy5jd2QoKSwgZmlsZVBhdGgpfWApO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci5lcnJvcihgRmFpbGVkIHRvIHdyaXRlICR7ZmlsZVBhdGh9OmAsIGVycm9yKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBkZWxldGVGaWxlKGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAodGhpcy5kcnlSdW4pIHtcbiAgICAgIGxvZ2dlci5pbmZvKGDwn5eR77iPICBXb3VsZCBkZWxldGU6ICR7cGF0aC5yZWxhdGl2ZShwcm9jZXNzLmN3ZCgpLCBmaWxlUGF0aCl9YCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgLy8gQ3JlYXRlIGJhY2t1cCBiZWZvcmUgZGVsZXRpb25cbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgsICd1dGYtOCcpO1xuICAgICAgYXdhaXQgdGhpcy5jcmVhdGVCYWNrdXAoZmlsZVBhdGgsIGNvbnRlbnQpO1xuXG4gICAgICBmcy51bmxpbmtTeW5jKGZpbGVQYXRoKTtcbiAgICAgIGxvZ2dlci5zdWNjZXNzKGDwn5eR77iPICBEZWxldGVkOiAke3BhdGgucmVsYXRpdmUocHJvY2Vzcy5jd2QoKSwgZmlsZVBhdGgpfWApO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci5lcnJvcihgRmFpbGVkIHRvIGRlbGV0ZSAke2ZpbGVQYXRofTpgLCBlcnJvcik7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjcmVhdGVCYWNrdXAoZmlsZVBhdGg6IHN0cmluZywgY29udGVudDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIENyZWF0ZSBiYWNrdXAgZGlyZWN0b3J5IGlmIGl0IGRvZXNuJ3QgZXhpc3RcbiAgICAgIGlmICghZnMuZXhpc3RzU3luYyh0aGlzLmJhY2t1cERpcikpIHtcbiAgICAgICAgZnMubWtkaXJTeW5jKHRoaXMuYmFja3VwRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVsYXRpdmVQYXRoID0gcGF0aC5yZWxhdGl2ZShwcm9jZXNzLmN3ZCgpLCBmaWxlUGF0aCk7XG4gICAgICBjb25zdCBiYWNrdXBQYXRoID0gcGF0aC5qb2luKHRoaXMuYmFja3VwRGlyLCByZWxhdGl2ZVBhdGgpO1xuICAgICAgY29uc3QgYmFja3VwRGlyID0gcGF0aC5kaXJuYW1lKGJhY2t1cFBhdGgpO1xuXG4gICAgICAvLyBDcmVhdGUgc3ViZGlyZWN0b3J5IHN0cnVjdHVyZVxuICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKGJhY2t1cERpcikpIHtcbiAgICAgICAgZnMubWtkaXJTeW5jKGJhY2t1cERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFdyaXRlIGJhY2t1cFxuICAgICAgZnMud3JpdGVGaWxlU3luYyhiYWNrdXBQYXRoLCBjb250ZW50LCAndXRmLTgnKTtcbiAgICAgIGxvZ2dlci52ZXJib3NlKGBDcmVhdGVkIGJhY2t1cDogJHtiYWNrdXBQYXRofWApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dnZXIud2FybihgRmFpbGVkIHRvIGNyZWF0ZSBiYWNrdXAgZm9yICR7ZmlsZVBhdGh9OmAsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNob3dEaWZmKGZpbGVQYXRoOiBzdHJpbmcsIG9yaWdpbmFsOiBzdHJpbmcsIG1vZGlmaWVkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSBwYXRoLnJlbGF0aXZlKHByb2Nlc3MuY3dkKCksIGZpbGVQYXRoKTtcbiAgICBsb2dnZXIuaW5mbyhgXFxu8J+ThCAke3JlbGF0aXZlUGF0aH0gKGRyeS1ydW4pYCk7XG4gICAgXG4gICAgY29uc3Qgb3JpZ2luYWxMaW5lcyA9IG9yaWdpbmFsLnNwbGl0KCdcXG4nKTtcbiAgICBjb25zdCBtb2RpZmllZExpbmVzID0gbW9kaWZpZWQuc3BsaXQoJ1xcbicpO1xuXG4gICAgLy8gU2ltcGxlIGRpZmYgLSBzaG93IGZpcnN0IGZldyBjaGFuZ2VkIGxpbmVzXG4gICAgY29uc3QgbWF4TGluZXMgPSBNYXRoLm1heChvcmlnaW5hbExpbmVzLmxlbmd0aCwgbW9kaWZpZWRMaW5lcy5sZW5ndGgpO1xuICAgIGxldCBjaGFuZ2VzID0gMDtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWF4TGluZXMgJiYgY2hhbmdlcyA8IDEwOyBpKyspIHtcbiAgICAgIGNvbnN0IG9yaWcgPSBvcmlnaW5hbExpbmVzW2ldIHx8ICcnO1xuICAgICAgY29uc3QgbW9kID0gbW9kaWZpZWRMaW5lc1tpXSB8fCAnJztcblxuICAgICAgaWYgKG9yaWcgIT09IG1vZCkge1xuICAgICAgICBjaGFuZ2VzKys7XG4gICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLnJlZChgICAtICR7b3JpZ31gKSk7XG4gICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyZWVuKGAgICsgJHttb2R9YCkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzID09PSAwKSB7XG4gICAgICBsb2dnZXIudmVyYm9zZSgnICAobm8gdmlzaWJsZSBjaGFuZ2VzKScpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyByZXN0b3JlQmFja3VwcygpOiB2b2lkIHtcbiAgICBjb25zdCBiYWNrdXBEaXIgPSBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgJy5jc3MtdG8tdGFpbHdpbmQtYmFja3VwcycpO1xuICAgIFxuICAgIGlmICghZnMuZXhpc3RzU3luYyhiYWNrdXBEaXIpKSB7XG4gICAgICBsb2dnZXIud2FybignTm8gYmFja3VwcyBmb3VuZCB0byByZXN0b3JlJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbG9nZ2VyLmluZm8oJ/CflIQgUmVzdG9yaW5nIGZpbGVzIGZyb20gYmFja3VwLi4uJyk7XG4gICAgXG4gICAgLy8gUmVjdXJzaXZlbHkgcmVzdG9yZSBmaWxlc1xuICAgIGNvbnN0IHJlc3RvcmVSZWN1cnNpdmUgPSAoZGlyOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGl0ZW1zID0gZnMucmVhZGRpclN5bmMoZGlyKTtcblxuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICAgIGNvbnN0IGZ1bGxQYXRoID0gcGF0aC5qb2luKGRpciwgaXRlbSk7XG4gICAgICAgIGNvbnN0IHN0YXQgPSBmcy5zdGF0U3luYyhmdWxsUGF0aCk7XG5cbiAgICAgICAgaWYgKHN0YXQuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICAgIHJlc3RvcmVSZWN1cnNpdmUoZnVsbFBhdGgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHBhdGgucmVsYXRpdmUoYmFja3VwRGlyLCBmdWxsUGF0aCk7XG4gICAgICAgICAgY29uc3Qgb3JpZ2luYWxQYXRoID0gcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIHJlbGF0aXZlUGF0aCk7XG4gICAgICAgICAgXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGZzLmNvcHlGaWxlU3luYyhmdWxsUGF0aCwgb3JpZ2luYWxQYXRoKTtcbiAgICAgICAgICAgIGxvZ2dlci5zdWNjZXNzKGBSZXN0b3JlZDogJHtyZWxhdGl2ZVBhdGh9YCk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgRmFpbGVkIHRvIHJlc3RvcmUgJHtyZWxhdGl2ZVBhdGh9OmAsIGVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcmVzdG9yZVJlY3Vyc2l2ZShiYWNrdXBEaXIpO1xuICAgIGxvZ2dlci5zdWNjZXNzKCfinIUgUmVzdG9yZSBjb21wbGV0ZScpO1xuICB9XG59XG4iXX0=
113
+ async function writeFiles(results, options) {
114
+ if (options.dryRun) {
115
+ return results.filter(r => r.hasChanges && r.status !== 'error').length;
116
+ }
117
+ const writer = new FileWriter({
118
+ dryRun: false,
119
+ projectRoot: options.projectRoot
120
+ });
121
+ return writer.writeResults(results);
122
+ }
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZVdyaXRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9maWxlV3JpdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQXFJQSxnQ0FjQztBQW5KRCw0Q0FBb0I7QUFDcEIsZ0RBQXdCO0FBQ3hCLDJDQUF3QztBQVF4QyxNQUFhLFVBQVU7SUFLckIsWUFBWSxPQUFvRDtRQUM5RCxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN4RCxJQUFJLENBQUMsU0FBUyxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQWdCLEVBQUUsT0FBZSxFQUFFLGVBQXVCO1FBQ3hFLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUM7WUFDbkQsWUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzdDLGVBQU0sQ0FBQyxPQUFPLENBQUMsaUJBQWlCLGNBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDN0UsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLGVBQU0sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLFFBQVEsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3BELE9BQU8sS0FBSyxDQUFDO1FB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YSxZQUFZLEVBQUUsQ0FBQyxDQUFDO29CQUM5QyxDQUFDO29CQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7d0JBQ2YsZUFBTSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsWUFBWSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQzVELENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUM7UUFFRixnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1QixlQUFNLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDdkMsQ0FBQztDQUNGO0FBekhELGdDQXlIQztBQUVNLEtBQUssVUFBVSxVQUFVLENBQzlCLE9BQXFCLEVBQ3JCLE9BQWlEO0lBRWpELElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ25CLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDMUUsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDO1FBQzVCLE1BQU0sRUFBRSxLQUFLO1FBQ2IsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO0tBQ2pDLENBQUMsQ0FBQztJQUVILE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gJ2ZzJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi91dGlscy9sb2dnZXInO1xuaW1wb3J0IHsgRmlsZVJlc3VsdCB9IGZyb20gJy4vdXRpbHMvcmVwb3J0ZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVXcml0ZU9wdGlvbnMge1xuICBkcnlSdW46IGJvb2xlYW47XG4gIGJhY2t1cD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBGaWxlV3JpdGVyIHtcbiAgcHJpdmF0ZSBkcnlSdW46IGJvb2xlYW47XG4gIHByaXZhdGUgYmFja3VwRGlyOiBzdHJpbmc7XG4gIHByaXZhdGUgcHJvamVjdFJvb3Q6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBGaWxlV3JpdGVPcHRpb25zICYgeyBwcm9qZWN0Um9vdD86IHN0cmluZyB9KSB7XG4gICAgdGhpcy5kcnlSdW4gPSBvcHRpb25zLmRyeVJ1bjtcbiAgICB0aGlzLnByb2plY3RSb290ID0gb3B0aW9ucy5wcm9qZWN0Um9vdCB8fCBwcm9jZXNzLmN3ZCgpO1xuICAgIHRoaXMuYmFja3VwRGlyID0gcGF0aC5qb2luKHRoaXMucHJvamVjdFJvb3QsICcuY3NzLXRvLXRhaWx3aW5kLWJhY2t1cHMnKTtcbiAgfVxuXG4gIGFzeW5jIHdyaXRlRmlsZShmaWxlUGF0aDogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcsIG9yaWdpbmFsQ29udGVudDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKHRoaXMuZHJ5UnVuKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5jcmVhdGVCYWNrdXAoZmlsZVBhdGgsIG9yaWdpbmFsQ29udGVudCk7XG4gICAgICBmcy53cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBjb250ZW50LCAndXRmLTgnKTtcbiAgICAgIGxvZ2dlci5zdWNjZXNzKGDinI/vuI8gIE1vZGlmaWVkOiAke3BhdGgucmVsYXRpdmUodGhpcy5wcm9qZWN0Um9vdCwgZmlsZVBhdGgpfWApO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci5lcnJvcihgRmFpbGVkIHRvIHdyaXRlICR7ZmlsZVBhdGh9OmAsIGVycm9yKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBkZWxldGVGaWxlKGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAodGhpcy5kcnlSdW4pIHtcbiAgICAgIGxvZ2dlci5pbmZvKGDwn5eR77iPICBXb3VsZCBkZWxldGU6ICR7cGF0aC5yZWxhdGl2ZSh0aGlzLnByb2plY3RSb290LCBmaWxlUGF0aCl9YCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgY29udGVudCA9IGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgJ3V0Zi04Jyk7XG4gICAgICBhd2FpdCB0aGlzLmNyZWF0ZUJhY2t1cChmaWxlUGF0aCwgY29udGVudCk7XG4gICAgICBmcy51bmxpbmtTeW5jKGZpbGVQYXRoKTtcbiAgICAgIGxvZ2dlci5zdWNjZXNzKGDwn5eR77iPICBEZWxldGVkOiAke3BhdGgucmVsYXRpdmUodGhpcy5wcm9qZWN0Um9vdCwgZmlsZVBhdGgpfWApO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci5lcnJvcihgRmFpbGVkIHRvIGRlbGV0ZSAke2ZpbGVQYXRofTpgLCBlcnJvcik7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgd3JpdGVSZXN1bHRzKHJlc3VsdHM6IEZpbGVSZXN1bHRbXSk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgbGV0IHdyaXR0ZW4gPSAwO1xuICAgIFxuICAgIGZvciAoY29uc3QgcmVzdWx0IG9mIHJlc3VsdHMpIHtcbiAgICAgIGlmIChyZXN1bHQuc3RhdHVzID09PSAnZXJyb3InKSBjb250aW51ZTtcbiAgICAgIGlmICghcmVzdWx0Lmhhc0NoYW5nZXMpIGNvbnRpbnVlO1xuICAgICAgXG4gICAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgdGhpcy53cml0ZUZpbGUoXG4gICAgICAgIHJlc3VsdC5maWxlUGF0aCxcbiAgICAgICAgcmVzdWx0Lm5ld0NvbnRlbnQsXG4gICAgICAgIHJlc3VsdC5vcmlnaW5hbENvbnRlbnRcbiAgICAgICk7XG4gICAgICBcbiAgICAgIGlmIChzdWNjZXNzKSB3cml0dGVuKys7XG4gICAgfVxuICAgIFxuICAgIHJldHVybiB3cml0dGVuO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjcmVhdGVCYWNrdXAoZmlsZVBhdGg6IHN0cmluZywgY29udGVudDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghZnMuZXhpc3RzU3luYyh0aGlzLmJhY2t1cERpcikpIHtcbiAgICAgICAgZnMubWtkaXJTeW5jKHRoaXMuYmFja3VwRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVsYXRpdmVQYXRoID0gcGF0aC5yZWxhdGl2ZSh0aGlzLnByb2plY3RSb290LCBmaWxlUGF0aCk7XG4gICAgICBjb25zdCBiYWNrdXBQYXRoID0gcGF0aC5qb2luKHRoaXMuYmFja3VwRGlyLCByZWxhdGl2ZVBhdGgpO1xuICAgICAgY29uc3QgYmFja3VwRGlyID0gcGF0aC5kaXJuYW1lKGJhY2t1cFBhdGgpO1xuXG4gICAgICBpZiAoIWZzLmV4aXN0c1N5bmMoYmFja3VwRGlyKSkge1xuICAgICAgICBmcy5ta2RpclN5bmMoYmFja3VwRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIH1cblxuICAgICAgZnMud3JpdGVGaWxlU3luYyhiYWNrdXBQYXRoLCBjb250ZW50LCAndXRmLTgnKTtcbiAgICAgIGxvZ2dlci52ZXJib3NlKGBDcmVhdGVkIGJhY2t1cDogJHtiYWNrdXBQYXRofWApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dnZXIud2FybihgRmFpbGVkIHRvIGNyZWF0ZSBiYWNrdXAgZm9yICR7ZmlsZVBhdGh9OmAsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgcmVzdG9yZUJhY2t1cHMocHJvamVjdFJvb3Q6IHN0cmluZyA9IHByb2Nlc3MuY3dkKCkpOiB2b2lkIHtcbiAgICBjb25zdCBiYWNrdXBEaXIgPSBwYXRoLmpvaW4ocHJvamVjdFJvb3QsICcuY3NzLXRvLXRhaWx3aW5kLWJhY2t1cHMnKTtcbiAgICBcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMoYmFja3VwRGlyKSkge1xuICAgICAgbG9nZ2VyLndhcm4oJ05vIGJhY2t1cHMgZm91bmQgdG8gcmVzdG9yZScpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxvZ2dlci5pbmZvKCfwn5SEIFJlc3RvcmluZyBmaWxlcyBmcm9tIGJhY2t1cC4uLicpO1xuICAgIFxuICAgIGNvbnN0IHJlc3RvcmVSZWN1cnNpdmUgPSAoZGlyOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGl0ZW1zID0gZnMucmVhZGRpclN5bmMoZGlyKTtcblxuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICAgIGNvbnN0IGZ1bGxQYXRoID0gcGF0aC5qb2luKGRpciwgaXRlbSk7XG4gICAgICAgIGNvbnN0IHN0YXQgPSBmcy5zdGF0U3luYyhmdWxsUGF0aCk7XG5cbiAgICAgICAgaWYgKHN0YXQuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICAgIHJlc3RvcmVSZWN1cnNpdmUoZnVsbFBhdGgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHBhdGgucmVsYXRpdmUoYmFja3VwRGlyLCBmdWxsUGF0aCk7XG4gICAgICAgICAgY29uc3Qgb3JpZ2luYWxQYXRoID0gcGF0aC5qb2luKHByb2plY3RSb290LCByZWxhdGl2ZVBhdGgpO1xuICAgICAgICAgIFxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBmcy5jb3B5RmlsZVN5bmMoZnVsbFBhdGgsIG9yaWdpbmFsUGF0aCk7XG4gICAgICAgICAgICBsb2dnZXIuc3VjY2VzcyhgUmVzdG9yZWQ6ICR7cmVsYXRpdmVQYXRofWApO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBsb2dnZXIuZXJyb3IoYEZhaWxlZCB0byByZXN0b3JlICR7cmVsYXRpdmVQYXRofTpgLCBlcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIHJlc3RvcmVSZWN1cnNpdmUoYmFja3VwRGlyKTtcbiAgICBsb2dnZXIuc3VjY2Vzcygn4pyFIFJlc3RvcmUgY29tcGxldGUnKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd3JpdGVGaWxlcyhcbiAgcmVzdWx0czogRmlsZVJlc3VsdFtdLFxuICBvcHRpb25zOiB7IGRyeVJ1bjogYm9vbGVhbjsgcHJvamVjdFJvb3Q6IHN0cmluZyB9XG4pOiBQcm9taXNlPG51bWJlcj4ge1xuICBpZiAob3B0aW9ucy5kcnlSdW4pIHtcbiAgICByZXR1cm4gcmVzdWx0cy5maWx0ZXIociA9PiByLmhhc0NoYW5nZXMgJiYgci5zdGF0dXMgIT09ICdlcnJvcicpLmxlbmd0aDtcbiAgfVxuICBcbiAgY29uc3Qgd3JpdGVyID0gbmV3IEZpbGVXcml0ZXIoeyBcbiAgICBkcnlSdW46IGZhbHNlLCBcbiAgICBwcm9qZWN0Um9vdDogb3B0aW9ucy5wcm9qZWN0Um9vdCBcbiAgfSk7XG4gIFxuICByZXR1cm4gd3JpdGVyLndyaXRlUmVzdWx0cyhyZXN1bHRzKTtcbn1cbiJdfQ==
package/dist/index.d.ts CHANGED
@@ -1,11 +1,13 @@
1
1
  export { scanProject, ScannedFile } from './scanner';
2
- export { transformFiles, TransformOptions, TransformResults } from './transformer';
2
+ export { transformFiles, transformFilesDetailed, TransformOptions, TransformResults, DetailedTransformResults } from './transformer';
3
3
  export { TailwindMapper, CSSProperty, ConversionResult } from './tailwindMapper';
4
4
  export { JSXParser, JSXTransformation, JSXParseResult } from './jsxParser';
5
5
  export { CSSParser, CSSRule, CSSParseResult, UtilityWithVariant, SelectorTarget } from './cssParser';
6
- export { FileWriter, FileWriteOptions } from './fileWriter';
6
+ export { FileWriter, FileWriteOptions, writeFiles } from './fileWriter';
7
7
  export { loadTailwindConfig, TailwindConfig } from './utils/config';
8
8
  export { logger } from './utils/logger';
9
+ export { Reporter, FileResult, SummaryStats, ReporterOptions } from './utils/reporter';
10
+ export { computeUnifiedDiff, formatDiff, computeAndFormatDiff, getChangeStats, DiffResult, DiffHunk, DiffLine } from './utils/diff';
9
11
  export { Breakpoint, MediaQueryInfo, getDefaultBreakpoints, resolveBreakpointsFromConfig, parseMediaQuery, findBreakpointForMinWidth, processMediaQuery, prefixWithBreakpoint } from './utils/breakpointResolver';
10
12
  export { ParsedSelector, PSEUDO_TO_VARIANT, SUPPORTED_PSEUDOS, parseSelector, mapPseudoToVariant, processPseudoSelector, parseMultipleSelectors } from './utils/pseudoSelectorResolver';
11
13
  export { VARIANT_ORDER, isResponsiveVariant, isPseudoVariant, sortVariants, deduplicateVariants, normalizeVariantOrder, assembleUtility, assembleUtilities, mergeUtilities, MergedUtility } from './utils/variantAssembler';
package/dist/index.js CHANGED
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.groupDescendantRulesByParent = exports.transformDescendantSelectors = exports.isHtmlElement = exports.processDescendantSelector = exports.isSimpleSelector = exports.isDescendantSelector = exports.parseDescendantSelector = exports.mergeUtilities = exports.assembleUtilities = exports.assembleUtility = exports.normalizeVariantOrder = exports.deduplicateVariants = exports.sortVariants = exports.isPseudoVariant = exports.isResponsiveVariant = exports.VARIANT_ORDER = exports.parseMultipleSelectors = exports.processPseudoSelector = exports.mapPseudoToVariant = exports.parseSelector = exports.SUPPORTED_PSEUDOS = exports.PSEUDO_TO_VARIANT = exports.prefixWithBreakpoint = exports.processMediaQuery = exports.findBreakpointForMinWidth = exports.parseMediaQuery = exports.resolveBreakpointsFromConfig = exports.getDefaultBreakpoints = exports.logger = exports.loadTailwindConfig = exports.FileWriter = exports.CSSParser = exports.JSXParser = exports.TailwindMapper = exports.transformFiles = exports.scanProject = void 0;
3
+ exports.groupDescendantRulesByParent = exports.transformDescendantSelectors = exports.isHtmlElement = exports.processDescendantSelector = exports.isSimpleSelector = exports.isDescendantSelector = exports.parseDescendantSelector = exports.mergeUtilities = exports.assembleUtilities = exports.assembleUtility = exports.normalizeVariantOrder = exports.deduplicateVariants = exports.sortVariants = exports.isPseudoVariant = exports.isResponsiveVariant = exports.VARIANT_ORDER = exports.parseMultipleSelectors = exports.processPseudoSelector = exports.mapPseudoToVariant = exports.parseSelector = exports.SUPPORTED_PSEUDOS = exports.PSEUDO_TO_VARIANT = exports.prefixWithBreakpoint = exports.processMediaQuery = exports.findBreakpointForMinWidth = exports.parseMediaQuery = exports.resolveBreakpointsFromConfig = exports.getDefaultBreakpoints = exports.getChangeStats = exports.computeAndFormatDiff = exports.formatDiff = exports.computeUnifiedDiff = exports.Reporter = exports.logger = exports.loadTailwindConfig = exports.writeFiles = exports.FileWriter = exports.CSSParser = exports.JSXParser = exports.TailwindMapper = exports.transformFilesDetailed = exports.transformFiles = exports.scanProject = void 0;
4
4
  // Export public API
5
5
  var scanner_1 = require("./scanner");
6
6
  Object.defineProperty(exports, "scanProject", { enumerable: true, get: function () { return scanner_1.scanProject; } });
7
7
  var transformer_1 = require("./transformer");
8
8
  Object.defineProperty(exports, "transformFiles", { enumerable: true, get: function () { return transformer_1.transformFiles; } });
9
+ Object.defineProperty(exports, "transformFilesDetailed", { enumerable: true, get: function () { return transformer_1.transformFilesDetailed; } });
9
10
  var tailwindMapper_1 = require("./tailwindMapper");
10
11
  Object.defineProperty(exports, "TailwindMapper", { enumerable: true, get: function () { return tailwindMapper_1.TailwindMapper; } });
11
12
  var jsxParser_1 = require("./jsxParser");
@@ -14,10 +15,18 @@ var cssParser_1 = require("./cssParser");
14
15
  Object.defineProperty(exports, "CSSParser", { enumerable: true, get: function () { return cssParser_1.CSSParser; } });
15
16
  var fileWriter_1 = require("./fileWriter");
16
17
  Object.defineProperty(exports, "FileWriter", { enumerable: true, get: function () { return fileWriter_1.FileWriter; } });
18
+ Object.defineProperty(exports, "writeFiles", { enumerable: true, get: function () { return fileWriter_1.writeFiles; } });
17
19
  var config_1 = require("./utils/config");
18
20
  Object.defineProperty(exports, "loadTailwindConfig", { enumerable: true, get: function () { return config_1.loadTailwindConfig; } });
19
21
  var logger_1 = require("./utils/logger");
20
22
  Object.defineProperty(exports, "logger", { enumerable: true, get: function () { return logger_1.logger; } });
23
+ var reporter_1 = require("./utils/reporter");
24
+ Object.defineProperty(exports, "Reporter", { enumerable: true, get: function () { return reporter_1.Reporter; } });
25
+ var diff_1 = require("./utils/diff");
26
+ Object.defineProperty(exports, "computeUnifiedDiff", { enumerable: true, get: function () { return diff_1.computeUnifiedDiff; } });
27
+ Object.defineProperty(exports, "formatDiff", { enumerable: true, get: function () { return diff_1.formatDiff; } });
28
+ Object.defineProperty(exports, "computeAndFormatDiff", { enumerable: true, get: function () { return diff_1.computeAndFormatDiff; } });
29
+ Object.defineProperty(exports, "getChangeStats", { enumerable: true, get: function () { return diff_1.getChangeStats; } });
21
30
  var breakpointResolver_1 = require("./utils/breakpointResolver");
22
31
  Object.defineProperty(exports, "getDefaultBreakpoints", { enumerable: true, get: function () { return breakpointResolver_1.getDefaultBreakpoints; } });
23
32
  Object.defineProperty(exports, "resolveBreakpointsFromConfig", { enumerable: true, get: function () { return breakpointResolver_1.resolveBreakpointsFromConfig; } });
@@ -51,4 +60,4 @@ Object.defineProperty(exports, "isHtmlElement", { enumerable: true, get: functio
51
60
  var jsxDescendantTransformer_1 = require("./jsxDescendantTransformer");
52
61
  Object.defineProperty(exports, "transformDescendantSelectors", { enumerable: true, get: function () { return jsxDescendantTransformer_1.transformDescendantSelectors; } });
53
62
  Object.defineProperty(exports, "groupDescendantRulesByParent", { enumerable: true, get: function () { return jsxDescendantTransformer_1.groupDescendantRulesByParent; } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0JBQW9CO0FBQ3BCLHFDQUFxRDtBQUE1QyxzR0FBQSxXQUFXLE9BQUE7QUFDcEIsNkNBQW1GO0FBQTFFLDZHQUFBLGNBQWMsT0FBQTtBQUN2QixtREFBaUY7QUFBeEUsZ0hBQUEsY0FBYyxPQUFBO0FBQ3ZCLHlDQUEyRTtBQUFsRSxzR0FBQSxTQUFTLE9BQUE7QUFDbEIseUNBQXFHO0FBQTVGLHNHQUFBLFNBQVMsT0FBQTtBQUNsQiwyQ0FBNEQ7QUFBbkQsd0dBQUEsVUFBVSxPQUFBO0FBQ25CLHlDQUFvRTtBQUEzRCw0R0FBQSxrQkFBa0IsT0FBQTtBQUMzQix5Q0FBd0M7QUFBL0IsZ0dBQUEsTUFBTSxPQUFBO0FBQ2YsaUVBU29DO0FBTmxDLDJIQUFBLHFCQUFxQixPQUFBO0FBQ3JCLGtJQUFBLDRCQUE0QixPQUFBO0FBQzVCLHFIQUFBLGVBQWUsT0FBQTtBQUNmLCtIQUFBLHlCQUF5QixPQUFBO0FBQ3pCLHVIQUFBLGlCQUFpQixPQUFBO0FBQ2pCLDBIQUFBLG9CQUFvQixPQUFBO0FBRXRCLHlFQVF3QztBQU50QywySEFBQSxpQkFBaUIsT0FBQTtBQUNqQiwySEFBQSxpQkFBaUIsT0FBQTtBQUNqQix1SEFBQSxhQUFhLE9BQUE7QUFDYiw0SEFBQSxrQkFBa0IsT0FBQTtBQUNsQiwrSEFBQSxxQkFBcUIsT0FBQTtBQUNyQixnSUFBQSxzQkFBc0IsT0FBQTtBQUV4Qiw2REFXa0M7QUFWaEMsaUhBQUEsYUFBYSxPQUFBO0FBQ2IsdUhBQUEsbUJBQW1CLE9BQUE7QUFDbkIsbUhBQUEsZUFBZSxPQUFBO0FBQ2YsZ0hBQUEsWUFBWSxPQUFBO0FBQ1osdUhBQUEsbUJBQW1CLE9BQUE7QUFDbkIseUhBQUEscUJBQXFCLE9BQUE7QUFDckIsbUhBQUEsZUFBZSxPQUFBO0FBQ2YscUhBQUEsaUJBQWlCLE9BQUE7QUFDakIsa0hBQUEsY0FBYyxPQUFBO0FBR2hCLGlGQVM0QztBQUwxQyxxSUFBQSx1QkFBdUIsT0FBQTtBQUN2QixrSUFBQSxvQkFBb0IsT0FBQTtBQUNwQiw4SEFBQSxnQkFBZ0IsT0FBQTtBQUNoQix1SUFBQSx5QkFBeUIsT0FBQTtBQUN6QiwySEFBQSxhQUFhLE9BQUE7QUFFZix1RUFJb0M7QUFIbEMsd0lBQUEsNEJBQTRCLE9BQUE7QUFFNUIsd0lBQUEsNEJBQTRCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBFeHBvcnQgcHVibGljIEFQSVxuZXhwb3J0IHsgc2NhblByb2plY3QsIFNjYW5uZWRGaWxlIH0gZnJvbSAnLi9zY2FubmVyJztcbmV4cG9ydCB7IHRyYW5zZm9ybUZpbGVzLCBUcmFuc2Zvcm1PcHRpb25zLCBUcmFuc2Zvcm1SZXN1bHRzIH0gZnJvbSAnLi90cmFuc2Zvcm1lcic7XG5leHBvcnQgeyBUYWlsd2luZE1hcHBlciwgQ1NTUHJvcGVydHksIENvbnZlcnNpb25SZXN1bHQgfSBmcm9tICcuL3RhaWx3aW5kTWFwcGVyJztcbmV4cG9ydCB7IEpTWFBhcnNlciwgSlNYVHJhbnNmb3JtYXRpb24sIEpTWFBhcnNlUmVzdWx0IH0gZnJvbSAnLi9qc3hQYXJzZXInO1xuZXhwb3J0IHsgQ1NTUGFyc2VyLCBDU1NSdWxlLCBDU1NQYXJzZVJlc3VsdCwgVXRpbGl0eVdpdGhWYXJpYW50LCBTZWxlY3RvclRhcmdldCB9IGZyb20gJy4vY3NzUGFyc2VyJztcbmV4cG9ydCB7IEZpbGVXcml0ZXIsIEZpbGVXcml0ZU9wdGlvbnMgfSBmcm9tICcuL2ZpbGVXcml0ZXInO1xuZXhwb3J0IHsgbG9hZFRhaWx3aW5kQ29uZmlnLCBUYWlsd2luZENvbmZpZyB9IGZyb20gJy4vdXRpbHMvY29uZmlnJztcbmV4cG9ydCB7IGxvZ2dlciB9IGZyb20gJy4vdXRpbHMvbG9nZ2VyJztcbmV4cG9ydCB7XG4gIEJyZWFrcG9pbnQsXG4gIE1lZGlhUXVlcnlJbmZvLFxuICBnZXREZWZhdWx0QnJlYWtwb2ludHMsXG4gIHJlc29sdmVCcmVha3BvaW50c0Zyb21Db25maWcsXG4gIHBhcnNlTWVkaWFRdWVyeSxcbiAgZmluZEJyZWFrcG9pbnRGb3JNaW5XaWR0aCxcbiAgcHJvY2Vzc01lZGlhUXVlcnksXG4gIHByZWZpeFdpdGhCcmVha3BvaW50XG59IGZyb20gJy4vdXRpbHMvYnJlYWtwb2ludFJlc29sdmVyJztcbmV4cG9ydCB7XG4gIFBhcnNlZFNlbGVjdG9yLFxuICBQU0VVRE9fVE9fVkFSSUFOVCxcbiAgU1VQUE9SVEVEX1BTRVVET1MsXG4gIHBhcnNlU2VsZWN0b3IsXG4gIG1hcFBzZXVkb1RvVmFyaWFudCxcbiAgcHJvY2Vzc1BzZXVkb1NlbGVjdG9yLFxuICBwYXJzZU11bHRpcGxlU2VsZWN0b3JzXG59IGZyb20gJy4vdXRpbHMvcHNldWRvU2VsZWN0b3JSZXNvbHZlcic7XG5leHBvcnQge1xuICBWQVJJQU5UX09SREVSLFxuICBpc1Jlc3BvbnNpdmVWYXJpYW50LFxuICBpc1BzZXVkb1ZhcmlhbnQsXG4gIHNvcnRWYXJpYW50cyxcbiAgZGVkdXBsaWNhdGVWYXJpYW50cyxcbiAgbm9ybWFsaXplVmFyaWFudE9yZGVyLFxuICBhc3NlbWJsZVV0aWxpdHksXG4gIGFzc2VtYmxlVXRpbGl0aWVzLFxuICBtZXJnZVV0aWxpdGllcyxcbiAgTWVyZ2VkVXRpbGl0eVxufSBmcm9tICcuL3V0aWxzL3ZhcmlhbnRBc3NlbWJsZXInO1xuZXhwb3J0IHtcbiAgRGVzY2VuZGFudFNlbGVjdG9yLFxuICBTZWxlY3RvclBhcnQsXG4gIFNlbGVjdG9yVHlwZSxcbiAgcGFyc2VEZXNjZW5kYW50U2VsZWN0b3IsXG4gIGlzRGVzY2VuZGFudFNlbGVjdG9yLFxuICBpc1NpbXBsZVNlbGVjdG9yLFxuICBwcm9jZXNzRGVzY2VuZGFudFNlbGVjdG9yLFxuICBpc0h0bWxFbGVtZW50XG59IGZyb20gJy4vdXRpbHMvZGVzY2VuZGFudFNlbGVjdG9yUmVzb2x2ZXInO1xuZXhwb3J0IHtcbiAgdHJhbnNmb3JtRGVzY2VuZGFudFNlbGVjdG9ycyxcbiAgRGVzY2VuZGFudFRyYW5zZm9ybVJlc3VsdCxcbiAgZ3JvdXBEZXNjZW5kYW50UnVsZXNCeVBhcmVudFxufSBmcm9tICcuL2pzeERlc2NlbmRhbnRUcmFuc2Zvcm1lcic7XG4iXX0=
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0JBQW9CO0FBQ3BCLHFDQUFxRDtBQUE1QyxzR0FBQSxXQUFXLE9BQUE7QUFDcEIsNkNBQXFJO0FBQTVILDZHQUFBLGNBQWMsT0FBQTtBQUFFLHFIQUFBLHNCQUFzQixPQUFBO0FBQy9DLG1EQUFpRjtBQUF4RSxnSEFBQSxjQUFjLE9BQUE7QUFDdkIseUNBQTJFO0FBQWxFLHNHQUFBLFNBQVMsT0FBQTtBQUNsQix5Q0FBcUc7QUFBNUYsc0dBQUEsU0FBUyxPQUFBO0FBQ2xCLDJDQUF3RTtBQUEvRCx3R0FBQSxVQUFVLE9BQUE7QUFBb0Isd0dBQUEsVUFBVSxPQUFBO0FBQ2pELHlDQUFvRTtBQUEzRCw0R0FBQSxrQkFBa0IsT0FBQTtBQUMzQix5Q0FBd0M7QUFBL0IsZ0dBQUEsTUFBTSxPQUFBO0FBQ2YsNkNBQXVGO0FBQTlFLG9HQUFBLFFBQVEsT0FBQTtBQUNqQixxQ0FRc0I7QUFQcEIsMEdBQUEsa0JBQWtCLE9BQUE7QUFDbEIsa0dBQUEsVUFBVSxPQUFBO0FBQ1YsNEdBQUEsb0JBQW9CLE9BQUE7QUFDcEIsc0dBQUEsY0FBYyxPQUFBO0FBS2hCLGlFQVNvQztBQU5sQywySEFBQSxxQkFBcUIsT0FBQTtBQUNyQixrSUFBQSw0QkFBNEIsT0FBQTtBQUM1QixxSEFBQSxlQUFlLE9BQUE7QUFDZiwrSEFBQSx5QkFBeUIsT0FBQTtBQUN6Qix1SEFBQSxpQkFBaUIsT0FBQTtBQUNqQiwwSEFBQSxvQkFBb0IsT0FBQTtBQUV0Qix5RUFRd0M7QUFOdEMsMkhBQUEsaUJBQWlCLE9BQUE7QUFDakIsMkhBQUEsaUJBQWlCLE9BQUE7QUFDakIsdUhBQUEsYUFBYSxPQUFBO0FBQ2IsNEhBQUEsa0JBQWtCLE9BQUE7QUFDbEIsK0hBQUEscUJBQXFCLE9BQUE7QUFDckIsZ0lBQUEsc0JBQXNCLE9BQUE7QUFFeEIsNkRBV2tDO0FBVmhDLGlIQUFBLGFBQWEsT0FBQTtBQUNiLHVIQUFBLG1CQUFtQixPQUFBO0FBQ25CLG1IQUFBLGVBQWUsT0FBQTtBQUNmLGdIQUFBLFlBQVksT0FBQTtBQUNaLHVIQUFBLG1CQUFtQixPQUFBO0FBQ25CLHlIQUFBLHFCQUFxQixPQUFBO0FBQ3JCLG1IQUFBLGVBQWUsT0FBQTtBQUNmLHFIQUFBLGlCQUFpQixPQUFBO0FBQ2pCLGtIQUFBLGNBQWMsT0FBQTtBQUdoQixpRkFTNEM7QUFMMUMscUlBQUEsdUJBQXVCLE9BQUE7QUFDdkIsa0lBQUEsb0JBQW9CLE9BQUE7QUFDcEIsOEhBQUEsZ0JBQWdCLE9BQUE7QUFDaEIsdUlBQUEseUJBQXlCLE9BQUE7QUFDekIsMkhBQUEsYUFBYSxPQUFBO0FBRWYsdUVBSW9DO0FBSGxDLHdJQUFBLDRCQUE0QixPQUFBO0FBRTVCLHdJQUFBLDRCQUE0QixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRXhwb3J0IHB1YmxpYyBBUElcbmV4cG9ydCB7IHNjYW5Qcm9qZWN0LCBTY2FubmVkRmlsZSB9IGZyb20gJy4vc2Nhbm5lcic7XG5leHBvcnQgeyB0cmFuc2Zvcm1GaWxlcywgdHJhbnNmb3JtRmlsZXNEZXRhaWxlZCwgVHJhbnNmb3JtT3B0aW9ucywgVHJhbnNmb3JtUmVzdWx0cywgRGV0YWlsZWRUcmFuc2Zvcm1SZXN1bHRzIH0gZnJvbSAnLi90cmFuc2Zvcm1lcic7XG5leHBvcnQgeyBUYWlsd2luZE1hcHBlciwgQ1NTUHJvcGVydHksIENvbnZlcnNpb25SZXN1bHQgfSBmcm9tICcuL3RhaWx3aW5kTWFwcGVyJztcbmV4cG9ydCB7IEpTWFBhcnNlciwgSlNYVHJhbnNmb3JtYXRpb24sIEpTWFBhcnNlUmVzdWx0IH0gZnJvbSAnLi9qc3hQYXJzZXInO1xuZXhwb3J0IHsgQ1NTUGFyc2VyLCBDU1NSdWxlLCBDU1NQYXJzZVJlc3VsdCwgVXRpbGl0eVdpdGhWYXJpYW50LCBTZWxlY3RvclRhcmdldCB9IGZyb20gJy4vY3NzUGFyc2VyJztcbmV4cG9ydCB7IEZpbGVXcml0ZXIsIEZpbGVXcml0ZU9wdGlvbnMsIHdyaXRlRmlsZXMgfSBmcm9tICcuL2ZpbGVXcml0ZXInO1xuZXhwb3J0IHsgbG9hZFRhaWx3aW5kQ29uZmlnLCBUYWlsd2luZENvbmZpZyB9IGZyb20gJy4vdXRpbHMvY29uZmlnJztcbmV4cG9ydCB7IGxvZ2dlciB9IGZyb20gJy4vdXRpbHMvbG9nZ2VyJztcbmV4cG9ydCB7IFJlcG9ydGVyLCBGaWxlUmVzdWx0LCBTdW1tYXJ5U3RhdHMsIFJlcG9ydGVyT3B0aW9ucyB9IGZyb20gJy4vdXRpbHMvcmVwb3J0ZXInO1xuZXhwb3J0IHsgXG4gIGNvbXB1dGVVbmlmaWVkRGlmZiwgXG4gIGZvcm1hdERpZmYsIFxuICBjb21wdXRlQW5kRm9ybWF0RGlmZiwgXG4gIGdldENoYW5nZVN0YXRzLFxuICBEaWZmUmVzdWx0LFxuICBEaWZmSHVuayxcbiAgRGlmZkxpbmVcbn0gZnJvbSAnLi91dGlscy9kaWZmJztcbmV4cG9ydCB7XG4gIEJyZWFrcG9pbnQsXG4gIE1lZGlhUXVlcnlJbmZvLFxuICBnZXREZWZhdWx0QnJlYWtwb2ludHMsXG4gIHJlc29sdmVCcmVha3BvaW50c0Zyb21Db25maWcsXG4gIHBhcnNlTWVkaWFRdWVyeSxcbiAgZmluZEJyZWFrcG9pbnRGb3JNaW5XaWR0aCxcbiAgcHJvY2Vzc01lZGlhUXVlcnksXG4gIHByZWZpeFdpdGhCcmVha3BvaW50XG59IGZyb20gJy4vdXRpbHMvYnJlYWtwb2ludFJlc29sdmVyJztcbmV4cG9ydCB7XG4gIFBhcnNlZFNlbGVjdG9yLFxuICBQU0VVRE9fVE9fVkFSSUFOVCxcbiAgU1VQUE9SVEVEX1BTRVVET1MsXG4gIHBhcnNlU2VsZWN0b3IsXG4gIG1hcFBzZXVkb1RvVmFyaWFudCxcbiAgcHJvY2Vzc1BzZXVkb1NlbGVjdG9yLFxuICBwYXJzZU11bHRpcGxlU2VsZWN0b3JzXG59IGZyb20gJy4vdXRpbHMvcHNldWRvU2VsZWN0b3JSZXNvbHZlcic7XG5leHBvcnQge1xuICBWQVJJQU5UX09SREVSLFxuICBpc1Jlc3BvbnNpdmVWYXJpYW50LFxuICBpc1BzZXVkb1ZhcmlhbnQsXG4gIHNvcnRWYXJpYW50cyxcbiAgZGVkdXBsaWNhdGVWYXJpYW50cyxcbiAgbm9ybWFsaXplVmFyaWFudE9yZGVyLFxuICBhc3NlbWJsZVV0aWxpdHksXG4gIGFzc2VtYmxlVXRpbGl0aWVzLFxuICBtZXJnZVV0aWxpdGllcyxcbiAgTWVyZ2VkVXRpbGl0eVxufSBmcm9tICcuL3V0aWxzL3ZhcmlhbnRBc3NlbWJsZXInO1xuZXhwb3J0IHtcbiAgRGVzY2VuZGFudFNlbGVjdG9yLFxuICBTZWxlY3RvclBhcnQsXG4gIFNlbGVjdG9yVHlwZSxcbiAgcGFyc2VEZXNjZW5kYW50U2VsZWN0b3IsXG4gIGlzRGVzY2VuZGFudFNlbGVjdG9yLFxuICBpc1NpbXBsZVNlbGVjdG9yLFxuICBwcm9jZXNzRGVzY2VuZGFudFNlbGVjdG9yLFxuICBpc0h0bWxFbGVtZW50XG59IGZyb20gJy4vdXRpbHMvZGVzY2VuZGFudFNlbGVjdG9yUmVzb2x2ZXInO1xuZXhwb3J0IHtcbiAgdHJhbnNmb3JtRGVzY2VuZGFudFNlbGVjdG9ycyxcbiAgRGVzY2VuZGFudFRyYW5zZm9ybVJlc3VsdCxcbiAgZ3JvdXBEZXNjZW5kYW50UnVsZXNCeVBhcmVudFxufSBmcm9tICcuL2pzeERlc2NlbmRhbnRUcmFuc2Zvcm1lcic7XG4iXX0=
@@ -1,5 +1,6 @@
1
1
  import { ScannedFile } from './scanner';
2
2
  import { TailwindConfig } from './utils/config';
3
+ import { FileResult, SummaryStats } from './utils/reporter';
3
4
  export interface TransformOptions {
4
5
  dryRun: boolean;
5
6
  deleteCss: boolean;
@@ -16,4 +17,9 @@ export interface TransformResults {
16
17
  classesReplaced: number;
17
18
  warnings: number;
18
19
  }
20
+ export interface DetailedTransformResults {
21
+ fileResults: FileResult[];
22
+ stats: SummaryStats;
23
+ }
19
24
  export declare function transformFiles(files: ScannedFile[], options: TransformOptions): Promise<TransformResults>;
25
+ export declare function transformFilesDetailed(files: ScannedFile[], options: TransformOptions): Promise<DetailedTransformResults>;