diffwatch 1.1.2 → 2.0.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.
@@ -1,108 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.formatDiffWithDiff2Html = formatDiffWithDiff2Html;
37
- const cheerio = __importStar(require("cheerio"));
38
- const Diff2Html = require('diff2html');
39
- function formatDiffWithDiff2Html(diffString, searchTerm) {
40
- if (!diffString || diffString.trim() === '') {
41
- return '';
42
- }
43
- try {
44
- const html = Diff2Html.html(diffString, {
45
- drawFileList: false,
46
- matching: 'lines',
47
- outputFormat: 'line-by-line',
48
- colorScheme: 'dark',
49
- });
50
- const $ = cheerio.load(html);
51
- let blessedText = '';
52
- $('.d2h-diff-tbody tr').each((_, row) => {
53
- const $row = $(row);
54
- if ($row.find('.d2h-code-line').length > 0) {
55
- const $lineNumberCell = $row.find('td.d2h-code-linenumber');
56
- const isAdded = $row.find('td.d2h-ins').length > 0;
57
- const isDeleted = $row.find('td.d2h-del').length > 0;
58
- const $lineContent = $row.find('.d2h-code-line-ctn');
59
- const $linePrefix = $row.find('.d2h-code-line-prefix');
60
- const $lineWrapper = $row.find('.d2h-code-line');
61
- let prefix = '';
62
- let content = '';
63
- let lineNumber = '';
64
- if ($lineNumberCell.length > 0) {
65
- lineNumber = $lineNumberCell.text().trim();
66
- }
67
- if ($linePrefix.length > 0) {
68
- prefix = $linePrefix.text();
69
- }
70
- if ($lineContent.length > 0) {
71
- content = $lineContent.text();
72
- }
73
- else {
74
- content = $lineWrapper.text().trim();
75
- }
76
- let fullLine = prefix + content;
77
- // Add line number with proper formatting
78
- const formattedLineNumber = lineNumber ? `${lineNumber}: ` : ' ';
79
- // Highlight search term if present
80
- if (searchTerm && fullLine.toLowerCase().includes(searchTerm.toLowerCase())) {
81
- const regex = new RegExp(`(${searchTerm.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')})`, 'gi');
82
- // We need to know the base color to restore it.
83
- // Added: 32, Deleted: 31, Normal: 37
84
- const baseColor = isAdded ? '32' : (isDeleted ? '31' : '37');
85
- fullLine = fullLine.replace(regex, `\x1b[43m\x1b[30m$1\x1b[0m\x1b[${baseColor}m`);
86
- }
87
- if (isAdded) {
88
- blessedText += `\x1b[90m${formattedLineNumber}\x1b[0m\x1b[32m${fullLine}\x1b[0m\n`;
89
- }
90
- else if (isDeleted) {
91
- blessedText += `\x1b[90m${formattedLineNumber}\x1b[0m\x1b[31m${fullLine}\x1b[0m\n`;
92
- }
93
- else {
94
- blessedText += `\x1b[90m${formattedLineNumber}\x1b[0m\x1b[37m${fullLine}\x1b[0m\n`;
95
- }
96
- }
97
- if ($row.find('.d2h-info').length > 0) {
98
- const hunkText = $row.find('.d2h-info').text().trim();
99
- blessedText += `\x1b[36m${hunkText}\x1b[0m\n`;
100
- }
101
- });
102
- return blessedText.trim();
103
- }
104
- catch (error) {
105
- return `Error formatting diff: ${error}`;
106
- }
107
- }
108
- //# sourceMappingURL=diff-formatter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"diff-formatter.js","sourceRoot":"","sources":["../../src/utils/diff-formatter.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- export interface FileStatus {
2
- path: string;
3
- status: 'modified' | 'added' | 'deleted' | 'unstaged' | 'unknown' | 'unchanged';
4
- mtime?: Date;
5
- }
6
- export declare class GitHandler {
7
- private git;
8
- constructor(workingDir?: string);
9
- isRepo(): Promise<boolean>;
10
- getBranch(): Promise<string>;
11
- getStatus(): Promise<FileStatus[]>;
12
- searchFiles(term: string): Promise<FileStatus[]>;
13
- getDiff(filePath: string): Promise<string>;
14
- getFileContent(filePath: string): Promise<string>;
15
- revertFile(filePath: string): Promise<void>;
16
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;CACnE;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,GAAG,CAAY;gBAEX,UAAU,GAAE,MAAsB;IAIxC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAQ1B,SAAS,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IA8BlC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAiBjD"}
package/dist/utils/git.js DELETED
@@ -1,196 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.GitHandler = void 0;
16
- const simple_git_1 = require("simple-git");
17
- const promises_1 = __importDefault(require("fs/promises"));
18
- class GitHandler {
19
- constructor(workingDir = process.cwd()) {
20
- this.git = (0, simple_git_1.simpleGit)(workingDir);
21
- }
22
- isRepo() {
23
- return __awaiter(this, void 0, void 0, function* () {
24
- try {
25
- return yield this.git.checkIsRepo();
26
- }
27
- catch (_a) {
28
- return false;
29
- }
30
- });
31
- }
32
- getBranch() {
33
- return __awaiter(this, void 0, void 0, function* () {
34
- try {
35
- const status = yield this.git.status();
36
- return status.current || 'HEAD';
37
- }
38
- catch (_a) {
39
- return 'HEAD';
40
- }
41
- });
42
- }
43
- getStatus() {
44
- return __awaiter(this, void 0, void 0, function* () {
45
- const status = yield this.git.status();
46
- const uniqueFiles = new Map();
47
- // Process each status category and add to map (which prevents duplicates)
48
- status.modified.forEach(path => {
49
- uniqueFiles.set(path, { path, status: 'modified' });
50
- });
51
- status.deleted.forEach(path => {
52
- // Only add if not already in the map
53
- if (!uniqueFiles.has(path)) {
54
- uniqueFiles.set(path, { path, status: 'deleted' });
55
- }
56
- });
57
- status.created.forEach(path => {
58
- // Only add if not already in the map
59
- if (!uniqueFiles.has(path)) {
60
- uniqueFiles.set(path, { path, status: 'added' });
61
- }
62
- });
63
- status.not_added.forEach(path => {
64
- // Only add if not already in the map
65
- if (!uniqueFiles.has(path)) {
66
- uniqueFiles.set(path, { path, status: 'unstaged' });
67
- }
68
- });
69
- status.renamed.forEach(r => {
70
- // Only add if not already in the map
71
- if (!uniqueFiles.has(r.to)) {
72
- uniqueFiles.set(r.to, { path: r.to, status: 'added' });
73
- }
74
- });
75
- // Add last modified time for sorting
76
- const fileArray = Array.from(uniqueFiles.values());
77
- yield Promise.all(fileArray.map((f) => __awaiter(this, void 0, void 0, function* () {
78
- try {
79
- const stat = yield promises_1.default.stat(f.path);
80
- f.mtime = stat.mtime;
81
- }
82
- catch (error) {
83
- // For deleted or inaccessible files, use epoch time
84
- f.mtime = new Date(0);
85
- }
86
- })));
87
- // Sort by last modified descending, then by filename
88
- return fileArray.sort((a, b) => {
89
- const mtimeA = a.mtime || new Date(0);
90
- const mtimeB = b.mtime || new Date(0);
91
- const timeDiff = mtimeB.getTime() - mtimeA.getTime();
92
- if (timeDiff !== 0) {
93
- return timeDiff;
94
- }
95
- return a.path.localeCompare(b.path);
96
- });
97
- });
98
- }
99
- searchFiles(term) {
100
- return __awaiter(this, void 0, void 0, function* () {
101
- if (!term || !term.trim())
102
- return [];
103
- try {
104
- // Use git grep to find files containing the term
105
- // -i: ignore case
106
- // -l: list filenames only
107
- // -F: interpret pattern as a fixed string
108
- // --untracked: include untracked files
109
- const result = yield this.git.raw(['grep', '-i', '-l', '-F', '--untracked', term.trim()]);
110
- const matchedPaths = [...new Set(result.split('\n').map(p => p.trim()).filter(p => p !== ''))];
111
- if (matchedPaths.length === 0)
112
- return [];
113
- // Get current status to identify which matched files are changed
114
- const changedFiles = yield this.getStatus();
115
- const changedMap = new Map();
116
- changedFiles.forEach(f => changedMap.set(f.path, f));
117
- const finalResults = [];
118
- for (const path of matchedPaths) {
119
- if (changedMap.has(path)) {
120
- finalResults.push(changedMap.get(path));
121
- }
122
- else {
123
- // It's an unchanged file
124
- let mtime = new Date(0);
125
- try {
126
- const stat = yield promises_1.default.stat(path);
127
- mtime = stat.mtime;
128
- }
129
- catch (_a) { }
130
- finalResults.push({
131
- path,
132
- status: 'unchanged',
133
- mtime
134
- });
135
- }
136
- }
137
- // Sort results by mtime descending
138
- return finalResults.sort((a, b) => {
139
- const mtimeA = a.mtime || new Date(0);
140
- const mtimeB = b.mtime || new Date(0);
141
- const timeDiff = mtimeB.getTime() - mtimeA.getTime();
142
- if (timeDiff !== 0)
143
- return timeDiff;
144
- return a.path.localeCompare(b.path);
145
- });
146
- }
147
- catch (error) {
148
- // git grep returns exit code 1 if no matches are found, which simple-git might throw as an error
149
- if (error.message && (error.message.includes('exit code 1') || error.exitCode === 1)) {
150
- return [];
151
- }
152
- throw error;
153
- }
154
- });
155
- }
156
- getDiff(filePath) {
157
- return __awaiter(this, void 0, void 0, function* () {
158
- try {
159
- const isUntracked = (yield this.git.status()).not_added.includes(filePath);
160
- if (isUntracked) {
161
- return yield this.git.raw(['diff', '--no-index', '--', '/dev/null', filePath]).catch(() => {
162
- return `New file: ${filePath}`;
163
- });
164
- }
165
- const diff = yield this.git.diff(['HEAD', '--', filePath]);
166
- return diff || '';
167
- }
168
- catch (error) {
169
- return `Error getting diff: ${error}`;
170
- }
171
- });
172
- }
173
- getFileContent(filePath) {
174
- return __awaiter(this, void 0, void 0, function* () {
175
- try {
176
- return yield promises_1.default.readFile(filePath, 'utf8');
177
- }
178
- catch (error) {
179
- return `Error reading file: ${error}`;
180
- }
181
- });
182
- }
183
- revertFile(filePath) {
184
- return __awaiter(this, void 0, void 0, function* () {
185
- try {
186
- // Restore the specific file to HEAD version
187
- yield this.git.raw(['restore', filePath]);
188
- }
189
- catch (error) {
190
- throw new Error(`Could not revert file: ${error}`);
191
- }
192
- });
193
- }
194
- }
195
- exports.GitHandler = GitHandler;
196
- //# sourceMappingURL=git.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"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"}
package/jest.config.js DELETED
@@ -1,11 +0,0 @@
1
- const { createDefaultPreset } = require("ts-jest");
2
-
3
- const tsJestTransformCfg = createDefaultPreset().transform;
4
-
5
- /** @type {import("jest").Config} **/
6
- module.exports = {
7
- testEnvironment: "node",
8
- transform: {
9
- ...tsJestTransformCfg,
10
- },
11
- };
package/screenshot.jpg DELETED
Binary file