@sergenkabakci/grept 0.0.0-stage → 1.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.
- package/LICENSE +21 -0
- package/README.md +169 -2
- package/bin/grept.js +2 -0
- package/dist/cli/args.d.ts +50 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +501 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/help.d.ts +2 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +76 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/version.d.ts +3 -0
- package/dist/cli/version.d.ts.map +1 -0
- package/dist/cli/version.js +11 -0
- package/dist/cli/version.js.map +1 -0
- package/dist/core/binary.d.ts +6 -0
- package/dist/core/binary.d.ts.map +1 -0
- package/dist/core/binary.js +14 -0
- package/dist/core/binary.js.map +1 -0
- package/dist/core/encoding.d.ts +10 -0
- package/dist/core/encoding.d.ts.map +1 -0
- package/dist/core/encoding.js +16 -0
- package/dist/core/encoding.js.map +1 -0
- package/dist/core/line-reader.d.ts +19 -0
- package/dist/core/line-reader.d.ts.map +1 -0
- package/dist/core/line-reader.js +69 -0
- package/dist/core/line-reader.js.map +1 -0
- package/dist/core/matcher.d.ts +58 -0
- package/dist/core/matcher.d.ts.map +1 -0
- package/dist/core/matcher.js +342 -0
- package/dist/core/matcher.js.map +1 -0
- package/dist/core/offsets.d.ts +5 -0
- package/dist/core/offsets.d.ts.map +1 -0
- package/dist/core/offsets.js +11 -0
- package/dist/core/offsets.js.map +1 -0
- package/dist/core/patterns.d.ts +17 -0
- package/dist/core/patterns.d.ts.map +1 -0
- package/dist/core/patterns.js +223 -0
- package/dist/core/patterns.js.map +1 -0
- package/dist/core/search.d.ts +5 -0
- package/dist/core/search.d.ts.map +1 -0
- package/dist/core/search.js +249 -0
- package/dist/core/search.js.map +1 -0
- package/dist/errors/errors.d.ts +17 -0
- package/dist/errors/errors.d.ts.map +1 -0
- package/dist/errors/errors.js +32 -0
- package/dist/errors/errors.js.map +1 -0
- package/dist/errors/exit-codes.d.ts +7 -0
- package/dist/errors/exit-codes.d.ts.map +1 -0
- package/dist/errors/exit-codes.js +6 -0
- package/dist/errors/exit-codes.js.map +1 -0
- package/dist/filesystem/discover.d.ts +10 -0
- package/dist/filesystem/discover.d.ts.map +1 -0
- package/dist/filesystem/discover.js +110 -0
- package/dist/filesystem/discover.js.map +1 -0
- package/dist/filesystem/glob.d.ts +9 -0
- package/dist/filesystem/glob.d.ts.map +1 -0
- package/dist/filesystem/glob.js +61 -0
- package/dist/filesystem/glob.js.map +1 -0
- package/dist/filesystem/reparse-points.d.ts +10 -0
- package/dist/filesystem/reparse-points.d.ts.map +1 -0
- package/dist/filesystem/reparse-points.js +28 -0
- package/dist/filesystem/reparse-points.js.map +1 -0
- package/dist/filesystem/traversal.d.ts +15 -0
- package/dist/filesystem/traversal.d.ts.map +1 -0
- package/dist/filesystem/traversal.js +88 -0
- package/dist/filesystem/traversal.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +50 -0
- package/dist/index.js.map +1 -0
- package/dist/output/color.d.ts +11 -0
- package/dist/output/color.d.ts.map +1 -0
- package/dist/output/color.js +25 -0
- package/dist/output/color.js.map +1 -0
- package/dist/output/context.d.ts +21 -0
- package/dist/output/context.d.ts.map +1 -0
- package/dist/output/context.js +78 -0
- package/dist/output/context.js.map +1 -0
- package/dist/output/formatter.d.ts +24 -0
- package/dist/output/formatter.d.ts.map +1 -0
- package/dist/output/formatter.js +112 -0
- package/dist/output/formatter.js.map +1 -0
- package/dist/output/writer.d.ts +10 -0
- package/dist/output/writer.d.ts.map +1 -0
- package/dist/output/writer.js +62 -0
- package/dist/output/writer.js.map +1 -0
- package/dist/utils/terminal.d.ts +7 -0
- package/dist/utils/terminal.d.ts.map +1 -0
- package/dist/utils/terminal.js +21 -0
- package/dist/utils/terminal.js.map +1 -0
- package/dist/utils/windows-paths.d.ts +21 -0
- package/dist/utils/windows-paths.d.ts.map +1 -0
- package/dist/utils/windows-paths.js +47 -0
- package/dist/utils/windows-paths.js.map +1 -0
- package/docs/COMPATIBILITY.md +118 -0
- package/docs/PERFORMANCE.md +58 -0
- package/docs/REGEX.md +99 -0
- package/docs/WINDOWS.md +46 -0
- package/package.json +65 -4
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
const POSIX_CLASSES = {
|
|
2
|
+
'[:alnum:]': 'a-zA-Z0-9',
|
|
3
|
+
'[:alpha:]': 'a-zA-Z',
|
|
4
|
+
'[:blank:]': ' \\t',
|
|
5
|
+
'[:cntrl:]': '\\x00-\\x1F\\x7F',
|
|
6
|
+
'[:digit:]': '0-9',
|
|
7
|
+
'[:graph:]': '\\x21-\\x7E',
|
|
8
|
+
'[:lower:]': 'a-z',
|
|
9
|
+
'[:print:]': '\\x20-\\x7E',
|
|
10
|
+
'[:punct:]': '!-/:-@\\[-`{-~',
|
|
11
|
+
'[:space:]': ' \\t\\r\\n\\v\\f',
|
|
12
|
+
'[:upper:]': 'A-Z',
|
|
13
|
+
'[:xdigit:]': '0-9A-Fa-f',
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Expands POSIX bracket classes inside a bracket expression [...].
|
|
17
|
+
*/
|
|
18
|
+
function expandPosixInBracket(content) {
|
|
19
|
+
let result = content;
|
|
20
|
+
for (const [posix, expanded] of Object.entries(POSIX_CLASSES)) {
|
|
21
|
+
result = result.replaceAll(posix, expanded);
|
|
22
|
+
}
|
|
23
|
+
return result;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Converts GNU Basic Regular Expression (BRE) to JS RegExp pattern.
|
|
27
|
+
*/
|
|
28
|
+
export function convertBreToJsRegex(bre) {
|
|
29
|
+
let result = '';
|
|
30
|
+
let i = 0;
|
|
31
|
+
const len = bre.length;
|
|
32
|
+
while (i < len) {
|
|
33
|
+
const c = bre[i];
|
|
34
|
+
// Escaped sequence
|
|
35
|
+
if (c === '\\') {
|
|
36
|
+
if (i + 1 >= len) {
|
|
37
|
+
// Trailing backslash
|
|
38
|
+
result += '\\\\';
|
|
39
|
+
i++;
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
const next = bre[i + 1];
|
|
43
|
+
if (next === '<') {
|
|
44
|
+
result += '(?:(?<=\\W|^)(?=\\w))';
|
|
45
|
+
i += 2;
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
if (next === '>') {
|
|
49
|
+
result += '(?:(?<=\\w)(?=\\W|$))';
|
|
50
|
+
i += 2;
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
if (next === '(' || next === ')' || next === '+' || next === '?' || next === '|') {
|
|
54
|
+
// In BRE, \(, \), \+, \?, \| are regex operators
|
|
55
|
+
result += next;
|
|
56
|
+
i += 2;
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
if (next === '{') {
|
|
60
|
+
// In BRE, \{m,n\} is an interval quantifier
|
|
61
|
+
const closeIdx = bre.indexOf('\\}', i + 2);
|
|
62
|
+
if (closeIdx !== -1) {
|
|
63
|
+
const inner = bre.slice(i + 2, closeIdx);
|
|
64
|
+
if (/^\d+(?:,\d*)?$/.test(inner)) {
|
|
65
|
+
result += `{${inner}}`;
|
|
66
|
+
i = closeIdx + 2;
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
result += '\\{';
|
|
71
|
+
i += 2;
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
if (next === '}') {
|
|
75
|
+
result += '\\}';
|
|
76
|
+
i += 2;
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
if (next >= '1' && next <= '9') {
|
|
80
|
+
// Backreference \1 through \9
|
|
81
|
+
result += `\\${next}`;
|
|
82
|
+
i += 2;
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
if (next === 'b' ||
|
|
86
|
+
next === 'B' ||
|
|
87
|
+
next === 'w' ||
|
|
88
|
+
next === 'W' ||
|
|
89
|
+
next === 's' ||
|
|
90
|
+
next === 'S' ||
|
|
91
|
+
next === 'd' ||
|
|
92
|
+
next === 'D') {
|
|
93
|
+
result += `\\${next}`;
|
|
94
|
+
i += 2;
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
// Any other escaped char: escape it literally
|
|
98
|
+
result += `\\${next}`;
|
|
99
|
+
i += 2;
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
// Bracket expressions [...]
|
|
103
|
+
if (c === '[') {
|
|
104
|
+
let j = i + 1;
|
|
105
|
+
if (j < len && (bre[j] === '^' || bre[j] === '!')) {
|
|
106
|
+
j++;
|
|
107
|
+
}
|
|
108
|
+
if (j < len && bre[j] === ']') {
|
|
109
|
+
j++;
|
|
110
|
+
}
|
|
111
|
+
while (j < len && bre[j] !== ']') {
|
|
112
|
+
// Check for [:class:] inside brackets
|
|
113
|
+
if (bre.startsWith('[:', j)) {
|
|
114
|
+
const closePosix = bre.indexOf(':]', j + 2);
|
|
115
|
+
if (closePosix !== -1) {
|
|
116
|
+
j = closePosix + 2;
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
j++;
|
|
121
|
+
}
|
|
122
|
+
if (j < len && bre[j] === ']') {
|
|
123
|
+
// Found complete bracket expression
|
|
124
|
+
const bracketContent = bre.slice(i + 1, j);
|
|
125
|
+
const expanded = expandPosixInBracket(bracketContent);
|
|
126
|
+
result += `[${expanded}]`;
|
|
127
|
+
i = j + 1;
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
// Unescaped operators in BRE are literals!
|
|
132
|
+
if (c === '(' || c === ')' || c === '+' || c === '?' || c === '|' || c === '{' || c === '}') {
|
|
133
|
+
result += `\\${c}`;
|
|
134
|
+
i++;
|
|
135
|
+
continue;
|
|
136
|
+
}
|
|
137
|
+
result += c;
|
|
138
|
+
i++;
|
|
139
|
+
}
|
|
140
|
+
return result;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Converts GNU Extended Regular Expression (ERE) to JS RegExp pattern.
|
|
144
|
+
*/
|
|
145
|
+
export function convertEreToJsRegex(ere) {
|
|
146
|
+
let result = '';
|
|
147
|
+
let i = 0;
|
|
148
|
+
const len = ere.length;
|
|
149
|
+
while (i < len) {
|
|
150
|
+
const c = ere[i];
|
|
151
|
+
if (c === '\\') {
|
|
152
|
+
if (i + 1 >= len) {
|
|
153
|
+
result += '\\\\';
|
|
154
|
+
i++;
|
|
155
|
+
break;
|
|
156
|
+
}
|
|
157
|
+
const next = ere[i + 1];
|
|
158
|
+
if (next === '<') {
|
|
159
|
+
result += '(?:(?<=\\W|^)(?=\\w))';
|
|
160
|
+
i += 2;
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
if (next === '>') {
|
|
164
|
+
result += '(?:(?<=\\w)(?=\\W|$))';
|
|
165
|
+
i += 2;
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
result += `\\${next}`;
|
|
169
|
+
i += 2;
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
// Bracket expressions [...]
|
|
173
|
+
if (c === '[') {
|
|
174
|
+
let j = i + 1;
|
|
175
|
+
if (j < len && (ere[j] === '^' || ere[j] === '!')) {
|
|
176
|
+
j++;
|
|
177
|
+
}
|
|
178
|
+
if (j < len && ere[j] === ']') {
|
|
179
|
+
j++;
|
|
180
|
+
}
|
|
181
|
+
while (j < len && ere[j] !== ']') {
|
|
182
|
+
if (ere.startsWith('[:', j)) {
|
|
183
|
+
const closePosix = ere.indexOf(':]', j + 2);
|
|
184
|
+
if (closePosix !== -1) {
|
|
185
|
+
j = closePosix + 2;
|
|
186
|
+
continue;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
j++;
|
|
190
|
+
}
|
|
191
|
+
if (j < len && ere[j] === ']') {
|
|
192
|
+
const bracketContent = ere.slice(i + 1, j);
|
|
193
|
+
const expanded = expandPosixInBracket(bracketContent);
|
|
194
|
+
result += `[${expanded}]`;
|
|
195
|
+
i = j + 1;
|
|
196
|
+
continue;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
result += c;
|
|
200
|
+
i++;
|
|
201
|
+
}
|
|
202
|
+
return result;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Escapes a literal string for inclusion in a RegExp pattern.
|
|
206
|
+
*/
|
|
207
|
+
export function escapeRegex(str) {
|
|
208
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Applies -w (word) and -x (line) constraints to a regex pattern string.
|
|
212
|
+
*/
|
|
213
|
+
export function applyPatternConstraints(patternStr, wordRegexp, lineRegexp) {
|
|
214
|
+
let res = patternStr;
|
|
215
|
+
if (wordRegexp) {
|
|
216
|
+
res = `(?:\\b|(?<=\\W)|^)(?:${res})(?:\\b|(?=\\W)|$)`;
|
|
217
|
+
}
|
|
218
|
+
if (lineRegexp) {
|
|
219
|
+
res = `^(?:${res})$`;
|
|
220
|
+
}
|
|
221
|
+
return res;
|
|
222
|
+
}
|
|
223
|
+
//# sourceMappingURL=patterns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../src/core/patterns.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { CliOptions } from '../cli/args.js';
|
|
2
|
+
import { type ExitCodeType } from '../errors/exit-codes.js';
|
|
3
|
+
import { OutputWriter } from '../output/writer.js';
|
|
4
|
+
export declare function runSearch(options: CliOptions, customWriter?: OutputWriter): Promise<ExitCodeType>;
|
|
5
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/core/search.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAQtE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,wBAAsB,SAAS,CAC7B,OAAO,EAAE,UAAU,EACnB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,YAAY,CAAC,CAgRvB"}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import { ExitCode } from '../errors/exit-codes.js';
|
|
3
|
+
import { discoverTargets } from '../filesystem/discover.js';
|
|
4
|
+
import { readLines } from './line-reader.js';
|
|
5
|
+
import { isBinaryBuffer } from './binary.js';
|
|
6
|
+
import { createMatcher } from './matcher.js';
|
|
7
|
+
import { OutputFormatter } from '../output/formatter.js';
|
|
8
|
+
import { AnsiColors } from '../output/color.js';
|
|
9
|
+
import { ContextManager } from '../output/context.js';
|
|
10
|
+
import { OutputWriter } from '../output/writer.js';
|
|
11
|
+
import { shouldEnableColor } from '../utils/terminal.js';
|
|
12
|
+
export async function runSearch(options, customWriter) {
|
|
13
|
+
const enableColor = shouldEnableColor(options.color);
|
|
14
|
+
const colors = new AnsiColors(enableColor);
|
|
15
|
+
const formatter = new OutputFormatter(options, colors);
|
|
16
|
+
const writer = customWriter ??
|
|
17
|
+
new OutputWriter(process.stdout, process.stderr, options.nullData, options.lineBuffered);
|
|
18
|
+
const matcher = await createMatcher(options);
|
|
19
|
+
// Discover all targets
|
|
20
|
+
const targets = [];
|
|
21
|
+
for await (const t of discoverTargets(options)) {
|
|
22
|
+
targets.push(t);
|
|
23
|
+
}
|
|
24
|
+
// Determine whether filename prefix should be shown
|
|
25
|
+
const isMultipleTargets = targets.length > 1 || options.recursive;
|
|
26
|
+
const defaultShowFilename = isMultipleTargets;
|
|
27
|
+
const showFilename = options.withFilename !== undefined ? options.withFilename : defaultShowFilename;
|
|
28
|
+
let hasAnyMatch = false;
|
|
29
|
+
let hasError = false;
|
|
30
|
+
for (const target of targets) {
|
|
31
|
+
if (target.isError) {
|
|
32
|
+
hasError = true;
|
|
33
|
+
if (!options.noMessages) {
|
|
34
|
+
writer.writeError(`grept: ${target.filePath}: ${target.errorMessage}`);
|
|
35
|
+
}
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
let stream;
|
|
39
|
+
if (target.isStdin) {
|
|
40
|
+
stream = process.stdin;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
try {
|
|
44
|
+
stream = fs.createReadStream(target.filePath, { highWaterMark: 65536 });
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
hasError = true;
|
|
48
|
+
if (!options.noMessages) {
|
|
49
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
50
|
+
writer.writeError(`grept: ${target.filePath}: ${msg}`);
|
|
51
|
+
}
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
let fileHasMatch = false;
|
|
56
|
+
let fileMatchCount = 0;
|
|
57
|
+
const contextManager = new ContextManager(options.beforeContext, options.afterContext);
|
|
58
|
+
try {
|
|
59
|
+
// Peek initial chunk for binary detection
|
|
60
|
+
let initialChunk;
|
|
61
|
+
let isBinary = false;
|
|
62
|
+
// Handle stream errors
|
|
63
|
+
stream.on('error', (err) => {
|
|
64
|
+
hasError = true;
|
|
65
|
+
if (!options.noMessages) {
|
|
66
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
67
|
+
writer.writeError(`grept: ${target.filePath}: ${msg}`);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
// Binary detection (only if not -a and not -z)
|
|
71
|
+
if (options.binaryFiles !== 'text' && !options.nullData) {
|
|
72
|
+
// Read first chunk from stream
|
|
73
|
+
const iterator = stream[Symbol.asyncIterator]();
|
|
74
|
+
const first = await iterator.next();
|
|
75
|
+
if (!first.done && first.value) {
|
|
76
|
+
initialChunk = Buffer.isBuffer(first.value) ? first.value : Buffer.from(first.value);
|
|
77
|
+
if (isBinaryBuffer(initialChunk, initialChunk.length)) {
|
|
78
|
+
isBinary = true;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (isBinary) {
|
|
83
|
+
if (options.binaryFiles === 'without-match') {
|
|
84
|
+
// -I or --binary-files=without-match: skip binary file completely
|
|
85
|
+
if (!target.isStdin) {
|
|
86
|
+
stream.destroy();
|
|
87
|
+
}
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
// --binary-files=binary (default)
|
|
91
|
+
// Check if any match exists in the binary file
|
|
92
|
+
const binaryLines = readLines(stream, {
|
|
93
|
+
nullData: options.nullData,
|
|
94
|
+
initialChunk,
|
|
95
|
+
unixByteOffsets: options.unixByteOffsets,
|
|
96
|
+
});
|
|
97
|
+
for await (const line of binaryLines) {
|
|
98
|
+
if (matcher.test(line.text)) {
|
|
99
|
+
fileHasMatch = true;
|
|
100
|
+
if (!options.filesWithoutMatch) {
|
|
101
|
+
hasAnyMatch = true;
|
|
102
|
+
}
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
if (fileHasMatch) {
|
|
107
|
+
if (options.quiet) {
|
|
108
|
+
if (!target.isStdin)
|
|
109
|
+
stream.destroy();
|
|
110
|
+
return ExitCode.MATCH_FOUND;
|
|
111
|
+
}
|
|
112
|
+
if (options.filesWithMatches) {
|
|
113
|
+
writer.writeLine(target.displayPath);
|
|
114
|
+
}
|
|
115
|
+
else if (options.count) {
|
|
116
|
+
writer.writeLine(formatter.formatBinaryMatch(target.displayPath));
|
|
117
|
+
}
|
|
118
|
+
else if (!options.filesWithoutMatch) {
|
|
119
|
+
writer.writeLine(formatter.formatBinaryMatch(target.displayPath));
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
else if (options.filesWithoutMatch) {
|
|
123
|
+
writer.writeLine(target.displayPath);
|
|
124
|
+
hasAnyMatch = true;
|
|
125
|
+
}
|
|
126
|
+
if (!target.isStdin)
|
|
127
|
+
stream.destroy();
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
// Normal text scanning
|
|
131
|
+
const lineGen = readLines(stream, {
|
|
132
|
+
nullData: options.nullData,
|
|
133
|
+
initialChunk,
|
|
134
|
+
unixByteOffsets: options.unixByteOffsets,
|
|
135
|
+
});
|
|
136
|
+
let reachedMaxCount = false;
|
|
137
|
+
for await (const line of lineGen) {
|
|
138
|
+
const isMatch = matcher.test(line.text);
|
|
139
|
+
if (isMatch) {
|
|
140
|
+
fileMatchCount++;
|
|
141
|
+
fileHasMatch = true;
|
|
142
|
+
if (!options.filesWithoutMatch) {
|
|
143
|
+
hasAnyMatch = true;
|
|
144
|
+
}
|
|
145
|
+
if (options.quiet) {
|
|
146
|
+
if (!target.isStdin)
|
|
147
|
+
stream.destroy();
|
|
148
|
+
return ExitCode.MATCH_FOUND;
|
|
149
|
+
}
|
|
150
|
+
if (options.filesWithMatches) {
|
|
151
|
+
writer.writeLine(target.displayPath);
|
|
152
|
+
if (!target.isStdin)
|
|
153
|
+
stream.destroy();
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
if (options.maxCount !== undefined && fileMatchCount >= options.maxCount) {
|
|
157
|
+
reachedMaxCount = true;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
// If count or filename-only modes, skip normal line output
|
|
161
|
+
if (options.count || options.filesWithMatches || options.filesWithoutMatch) {
|
|
162
|
+
if (reachedMaxCount) {
|
|
163
|
+
if (!target.isStdin)
|
|
164
|
+
stream.destroy();
|
|
165
|
+
break;
|
|
166
|
+
}
|
|
167
|
+
continue;
|
|
168
|
+
}
|
|
169
|
+
if (options.onlyMatching) {
|
|
170
|
+
if (isMatch) {
|
|
171
|
+
const matches = matcher.findMatches(line.text);
|
|
172
|
+
const linesToPrint = formatter.formatOnlyMatching(target.displayPath, showFilename, line.lineNum, line.byteOffset, line.text, matches);
|
|
173
|
+
for (const outLine of linesToPrint) {
|
|
174
|
+
writer.writeLine(outLine);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
if (reachedMaxCount) {
|
|
178
|
+
if (!target.isStdin)
|
|
179
|
+
stream.destroy();
|
|
180
|
+
break;
|
|
181
|
+
}
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
// Standard or context output
|
|
185
|
+
if (options.beforeContext === 0 && options.afterContext === 0) {
|
|
186
|
+
if (isMatch) {
|
|
187
|
+
const ranges = enableColor ? matcher.findMatches(line.text) : [];
|
|
188
|
+
const outLine = formatter.formatLine(target.displayPath, showFilename, line.lineNum, line.byteOffset, line.text, false, ranges);
|
|
189
|
+
writer.writeLine(outLine);
|
|
190
|
+
}
|
|
191
|
+
if (reachedMaxCount) {
|
|
192
|
+
if (!target.isStdin)
|
|
193
|
+
stream.destroy();
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
// Context mode
|
|
199
|
+
for (const cLine of contextManager.processLine(line, isMatch)) {
|
|
200
|
+
if (cLine.needsGroupSeparatorBefore) {
|
|
201
|
+
const sep = formatter.formatGroupSeparator();
|
|
202
|
+
if (sep !== null) {
|
|
203
|
+
writer.writeLine(sep);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
const ranges = enableColor && cLine.isMatch ? matcher.findMatches(cLine.item.text) : [];
|
|
207
|
+
const outLine = formatter.formatLine(target.displayPath, showFilename, cLine.item.lineNum, cLine.item.byteOffset, cLine.item.text, !cLine.isMatch, ranges);
|
|
208
|
+
writer.writeLine(outLine);
|
|
209
|
+
}
|
|
210
|
+
if (reachedMaxCount && options.afterContext === 0) {
|
|
211
|
+
if (!target.isStdin)
|
|
212
|
+
stream.destroy();
|
|
213
|
+
break;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
// After file processing
|
|
218
|
+
if (options.filesWithoutMatch) {
|
|
219
|
+
if (!fileHasMatch) {
|
|
220
|
+
writer.writeLine(target.displayPath);
|
|
221
|
+
hasAnyMatch = true;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
else if (options.count) {
|
|
225
|
+
writer.writeLine(formatter.formatCount(target.displayPath, showFilename, fileMatchCount));
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
catch (err) {
|
|
229
|
+
hasError = true;
|
|
230
|
+
if (!options.noMessages) {
|
|
231
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
232
|
+
writer.writeError(`grept: ${target.filePath}: ${msg}`);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
finally {
|
|
236
|
+
if (!target.isStdin && stream && 'destroy' in stream) {
|
|
237
|
+
stream.destroy();
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
if (hasError) {
|
|
242
|
+
if (options.quiet && hasAnyMatch) {
|
|
243
|
+
return ExitCode.MATCH_FOUND;
|
|
244
|
+
}
|
|
245
|
+
return ExitCode.ERROR;
|
|
246
|
+
}
|
|
247
|
+
return hasAnyMatch ? ExitCode.MATCH_FOUND : ExitCode.NO_MATCH;
|
|
248
|
+
}
|
|
249
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/core/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type ExitCodeType } from './exit-codes.js';
|
|
2
|
+
export declare class GreptError extends Error {
|
|
3
|
+
readonly exitCode: ExitCodeType;
|
|
4
|
+
readonly isFileError: boolean;
|
|
5
|
+
constructor(message: string, exitCode?: ExitCodeType, isFileError?: boolean);
|
|
6
|
+
}
|
|
7
|
+
export declare class ArgumentError extends GreptError {
|
|
8
|
+
constructor(message: string);
|
|
9
|
+
}
|
|
10
|
+
export declare class RegexSyntaxError extends GreptError {
|
|
11
|
+
constructor(message: string);
|
|
12
|
+
}
|
|
13
|
+
export declare class FileSystemError extends GreptError {
|
|
14
|
+
readonly path: string;
|
|
15
|
+
constructor(path: string, message: string);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE9D,qBAAa,UAAW,SAAQ,KAAK;IACnC,SAAgB,QAAQ,EAAE,YAAY,CAAC;IACvC,SAAgB,WAAW,EAAE,OAAO,CAAC;gBAEzB,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,YAA6B,EAAE,WAAW,UAAQ;CAM1F;AAED,qBAAa,aAAc,SAAQ,UAAU;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,gBAAiB,SAAQ,UAAU;gBAClC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,eAAgB,SAAQ,UAAU;IAC7C,SAAgB,IAAI,EAAE,MAAM,CAAC;gBAEjB,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAK1C"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ExitCode } from './exit-codes.js';
|
|
2
|
+
export class GreptError extends Error {
|
|
3
|
+
exitCode;
|
|
4
|
+
isFileError;
|
|
5
|
+
constructor(message, exitCode = ExitCode.ERROR, isFileError = false) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = 'GreptError';
|
|
8
|
+
this.exitCode = exitCode;
|
|
9
|
+
this.isFileError = isFileError;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export class ArgumentError extends GreptError {
|
|
13
|
+
constructor(message) {
|
|
14
|
+
super(`grept: ${message}`, ExitCode.ERROR, false);
|
|
15
|
+
this.name = 'ArgumentError';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export class RegexSyntaxError extends GreptError {
|
|
19
|
+
constructor(message) {
|
|
20
|
+
super(`grept: ${message}`, ExitCode.ERROR, false);
|
|
21
|
+
this.name = 'RegexSyntaxError';
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export class FileSystemError extends GreptError {
|
|
25
|
+
path;
|
|
26
|
+
constructor(path, message) {
|
|
27
|
+
super(`grept: ${path}: ${message}`, ExitCode.ERROR, true);
|
|
28
|
+
this.name = 'FileSystemError';
|
|
29
|
+
this.path = path;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAqB,MAAM,iBAAiB,CAAC;AAE9D,MAAM,OAAO,UAAW,SAAQ,KAAK;IACnB,QAAQ,CAAe;IACvB,WAAW,CAAU;IAErC,YAAY,OAAe,EAAE,WAAyB,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,KAAK;QACvF,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,UAAU;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,UAAU,OAAO,EAAE,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,UAAU;IAC9C,YAAY,OAAe;QACzB,KAAK,CAAC,UAAU,OAAO,EAAE,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,UAAU;IAC7B,IAAI,CAAS;IAE7B,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,UAAU,IAAI,KAAK,OAAO,EAAE,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exit-codes.d.ts","sourceRoot":"","sources":["../../src/errors/exit-codes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ;;;;CAIX,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exit-codes.js","sourceRoot":"","sources":["../../src/errors/exit-codes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,WAAW,EAAE,CAAC;IACd,QAAQ,EAAE,CAAC;IACX,KAAK,EAAE,CAAC;CACA,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { CliOptions } from '../cli/args.js';
|
|
2
|
+
export interface SearchTarget {
|
|
3
|
+
isStdin: boolean;
|
|
4
|
+
filePath: string;
|
|
5
|
+
displayPath: string;
|
|
6
|
+
isError?: boolean;
|
|
7
|
+
errorMessage?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function discoverTargets(options: CliOptions): AsyncGenerator<SearchTarget, void, undefined>;
|
|
10
|
+
//# sourceMappingURL=discover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../src/filesystem/discover.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAKjD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAuB,eAAe,CACpC,OAAO,EAAE,UAAU,GAClB,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,SAAS,CAAC,CAyG/C"}
|