@matrixai/lint 0.2.12 → 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.
- package/AGENTS.md +23 -0
- package/README.md +151 -83
- package/dist/bin/matrixai-lint.js +174 -0
- package/dist/bin/matrixai-lint.js.map +1 -0
- package/dist/config.d.ts +15 -0
- package/dist/config.js +120 -0
- package/dist/config.js.map +1 -0
- package/dist/configs/{js.js → eslint.js} +5 -4
- package/dist/configs/eslint.js.map +1 -0
- package/dist/configs/{prettier.config.mjs → prettier.config.js} +1 -1
- package/dist/configs/prettier.config.js.map +1 -0
- package/dist/domains/engine.d.ts +72 -0
- package/dist/domains/engine.js +160 -0
- package/dist/domains/engine.js.map +1 -0
- package/dist/domains/eslint.d.ts +3 -0
- package/dist/domains/eslint.js +72 -0
- package/dist/domains/eslint.js.map +1 -0
- package/dist/domains/files.d.ts +4 -0
- package/dist/domains/files.js +95 -0
- package/dist/domains/files.js.map +1 -0
- package/dist/domains/index.d.ts +14 -0
- package/dist/domains/index.js +83 -0
- package/dist/domains/index.js.map +1 -0
- package/dist/domains/markdown.d.ts +5 -0
- package/dist/domains/markdown.js +103 -0
- package/dist/domains/markdown.js.map +1 -0
- package/dist/domains/shell.d.ts +5 -0
- package/dist/domains/shell.js +58 -0
- package/dist/domains/shell.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/tsbuildinfo +1 -0
- package/dist/types.d.ts +31 -8
- package/dist/utils.d.ts +13 -18
- package/dist/utils.js +207 -94
- package/dist/utils.js.map +1 -1
- package/package.json +23 -13
- package/dist/bin/lint.js +0 -182
- package/dist/bin/lint.js.map +0 -1
- package/dist/configs/js.js.map +0 -1
- package/dist/configs/prettier.config.mjs.map +0 -1
- package/flake.lock +0 -78
- package/jest.config.mjs +0 -84
- /package/dist/bin/{lint.d.ts → matrixai-lint.d.ts} +0 -0
- /package/dist/configs/{js.d.ts → eslint.d.ts} +0 -0
- /package/dist/configs/{prettier.config.d.mts → prettier.config.d.ts} +0 -0
package/dist/utils.js
CHANGED
|
@@ -5,53 +5,99 @@ import fs from 'node:fs';
|
|
|
5
5
|
import url from 'node:url';
|
|
6
6
|
import ts from 'typescript';
|
|
7
7
|
import { ESLint } from 'eslint';
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
import { LogLevel } from '@matrixai/logger';
|
|
9
|
+
import { resolveLintConfig } from './config.js';
|
|
10
|
+
const ESLINT_TARGET_EXTENSIONS = [
|
|
11
|
+
'js',
|
|
12
|
+
'mjs',
|
|
13
|
+
'cjs',
|
|
14
|
+
'jsx',
|
|
15
|
+
'ts',
|
|
16
|
+
'tsx',
|
|
17
|
+
'mts',
|
|
18
|
+
'cts',
|
|
19
|
+
'json',
|
|
20
|
+
];
|
|
21
|
+
const ESLINT_TARGET_EXTENSION_GLOB = `.{${ESLINT_TARGET_EXTENSIONS.join(',')}}`;
|
|
22
|
+
const DEFAULT_IGNORE_PATTERNS = [
|
|
23
|
+
'node_modules/**',
|
|
24
|
+
'bower_components/**',
|
|
25
|
+
'jspm_packages/**',
|
|
26
|
+
];
|
|
27
|
+
const GLOB_META_PATTERN = /[*?[\]{}()!+@]/;
|
|
28
|
+
/**
|
|
29
|
+
* Convert verbosity count to logger level.
|
|
30
|
+
*/
|
|
31
|
+
function verboseToLogLevel(c = 0) {
|
|
32
|
+
let logLevel = LogLevel.INFO;
|
|
33
|
+
if (c === 1) {
|
|
34
|
+
logLevel = LogLevel.DEBUG;
|
|
35
|
+
}
|
|
36
|
+
else if (c >= 2) {
|
|
37
|
+
logLevel = LogLevel.NOTSET;
|
|
38
|
+
}
|
|
39
|
+
return logLevel;
|
|
40
|
+
}
|
|
41
|
+
async function runESLint({ fix, configPath, explicitGlobs, resolvedConfig, logger, }) {
|
|
10
42
|
const dirname = path.dirname(url.fileURLToPath(import.meta.url));
|
|
11
|
-
const defaultConfigPath = path.resolve(dirname, './configs/
|
|
12
|
-
|
|
43
|
+
const defaultConfigPath = path.resolve(dirname, './configs/eslint.js');
|
|
44
|
+
const lintConfig = resolvedConfig ?? resolveLintConfig();
|
|
45
|
+
const parserProjectOverride = {
|
|
46
|
+
languageOptions: {
|
|
47
|
+
parserOptions: {
|
|
48
|
+
project: lintConfig.domains.eslint.tsconfigPaths,
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
// PATH A - user supplied explicit globs
|
|
13
53
|
if (explicitGlobs?.length) {
|
|
14
|
-
|
|
15
|
-
explicitGlobs.forEach((g) =>
|
|
54
|
+
logger.info('Linting with explicit patterns:');
|
|
55
|
+
explicitGlobs.forEach((g) => logger.info(' ' + g));
|
|
16
56
|
const eslint = new ESLint({
|
|
17
57
|
overrideConfigFile: configPath || defaultConfigPath,
|
|
18
58
|
fix,
|
|
19
59
|
errorOnUnmatchedPattern: false,
|
|
20
60
|
warnIgnored: false,
|
|
21
|
-
ignorePatterns: [],
|
|
61
|
+
ignorePatterns: [],
|
|
62
|
+
overrideConfig: parserProjectOverride,
|
|
22
63
|
});
|
|
23
|
-
return await lintAndReport(eslint, explicitGlobs, fix);
|
|
64
|
+
return await lintAndReport(eslint, explicitGlobs, fix, logger);
|
|
24
65
|
}
|
|
25
|
-
// PATH B
|
|
26
|
-
const { forceInclude, tsconfigPaths } =
|
|
66
|
+
// PATH B - default behaviour (tsconfig + matrix config)
|
|
67
|
+
const { forceInclude, tsconfigPaths } = lintConfig.domains.eslint;
|
|
27
68
|
if (tsconfigPaths.length === 0) {
|
|
28
|
-
|
|
69
|
+
logger.error('[matrixai-lint] ⚠ No tsconfig.json files found.');
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
logger.info(`Found ${tsconfigPaths.length} tsconfig.json files:`);
|
|
73
|
+
tsconfigPaths.forEach((p) => logger.info(' ' + p));
|
|
74
|
+
const { files: patterns, ignore: ignorePats } = buildPatterns(tsconfigPaths, forceInclude, process.cwd(), lintConfig.root);
|
|
75
|
+
if (patterns.length === 0) {
|
|
76
|
+
logger.warn('[matrixai-lint] ⚠ No ESLint targets were derived from configured tsconfig paths.');
|
|
77
|
+
return false;
|
|
29
78
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const { files: patterns, ignore: ignorePats } = buildPatterns(tsconfigPaths[0], forceInclude);
|
|
33
|
-
console.log('Linting files:');
|
|
34
|
-
patterns.forEach((p) => console.log(' ' + p));
|
|
79
|
+
logger.info('Linting files:');
|
|
80
|
+
patterns.forEach((p) => logger.info(' ' + p));
|
|
35
81
|
const eslint = new ESLint({
|
|
36
82
|
overrideConfigFile: configPath || defaultConfigPath,
|
|
37
83
|
fix,
|
|
38
84
|
errorOnUnmatchedPattern: false,
|
|
39
85
|
warnIgnored: false,
|
|
40
86
|
ignorePatterns: ignorePats,
|
|
87
|
+
overrideConfig: parserProjectOverride,
|
|
41
88
|
});
|
|
42
|
-
return await lintAndReport(eslint, patterns, fix);
|
|
89
|
+
return await lintAndReport(eslint, patterns, fix, logger);
|
|
43
90
|
}
|
|
44
|
-
async function lintAndReport(eslint, patterns, fix) {
|
|
91
|
+
async function lintAndReport(eslint, patterns, fix, logger) {
|
|
45
92
|
const results = await eslint.lintFiles(patterns);
|
|
46
93
|
if (fix) {
|
|
47
94
|
await ESLint.outputFixes(results);
|
|
48
95
|
}
|
|
49
96
|
const formatter = await eslint.loadFormatter('stylish');
|
|
50
|
-
|
|
97
|
+
logger.info(formatter.format(results));
|
|
51
98
|
const hasErrors = results.some((r) => r.errorCount > 0);
|
|
52
99
|
return hasErrors;
|
|
53
100
|
}
|
|
54
|
-
/* eslint-enable no-console */
|
|
55
101
|
/**
|
|
56
102
|
* Find the user's ESLint config file in the current working directory.
|
|
57
103
|
* It looks for the following files:
|
|
@@ -100,64 +146,6 @@ function commandExists(cmd) {
|
|
|
100
146
|
const result = childProcess.spawnSync(whichCmd, [cmd], { stdio: 'ignore' });
|
|
101
147
|
return result.status === 0;
|
|
102
148
|
}
|
|
103
|
-
// Checks if the value is an object and not null
|
|
104
|
-
// and then casts it to RawMatrixCfg. If the value is not an object or is null,
|
|
105
|
-
// it returns undefined.
|
|
106
|
-
function asRawMatrixCfg(v) {
|
|
107
|
-
return typeof v === 'object' && v !== null ? v : undefined;
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Loads and sanitises MatrixAI‑linter config for a repo.
|
|
111
|
-
*
|
|
112
|
-
* - Reads `matrixai-lint-config.json` in `repoRoot` (if present).
|
|
113
|
-
* - Throws if the JSON is invalid.
|
|
114
|
-
* - Extracts `tsconfigPaths` & `forceInclude`, coercing each to `string[]`.
|
|
115
|
-
* - Resolves `tsconfigPaths` to absolute paths and keeps only files that exist.
|
|
116
|
-
* - If none remain, falls back to `repoRoot/tsconfig.json` when available.
|
|
117
|
-
* - Strips leading “./” from every `forceInclude` glob.
|
|
118
|
-
*
|
|
119
|
-
* Returns a normalised `{ tsconfigPaths, forceInclude }`.
|
|
120
|
-
*/
|
|
121
|
-
function resolveMatrixConfig(repoRoot = process.cwd()) {
|
|
122
|
-
const cfgPath = path.join(repoRoot, 'matrixai-lint-config.json');
|
|
123
|
-
let rawCfg = {};
|
|
124
|
-
if (fs.existsSync(cfgPath)) {
|
|
125
|
-
try {
|
|
126
|
-
const text = fs.readFileSync(cfgPath, 'utf8').trim();
|
|
127
|
-
rawCfg = text.length > 0 ? JSON.parse(text) : {};
|
|
128
|
-
}
|
|
129
|
-
catch (e) {
|
|
130
|
-
throw new Error(`[matrixai-lint] ✖ matrixai-lint-config.json has been provided but it is not valid JSON.\n ${e}`);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
const cfg = asRawMatrixCfg(rawCfg);
|
|
134
|
-
const tsconfigPaths = toStringArray(cfg?.tsconfigPaths ?? [])
|
|
135
|
-
.map((p) => path.resolve(repoRoot, p))
|
|
136
|
-
.filter((p) => {
|
|
137
|
-
if (fs.existsSync(p))
|
|
138
|
-
return true;
|
|
139
|
-
return false;
|
|
140
|
-
});
|
|
141
|
-
const forceInclude = toStringArray(cfg?.forceInclude ?? []).map((g) => g.replace(/^\.\//, ''));
|
|
142
|
-
// Fallback to root tsconfig if no tsconfigPaths are provided
|
|
143
|
-
// and the root tsconfig exists
|
|
144
|
-
if (tsconfigPaths.length === 0) {
|
|
145
|
-
const rootTs = path.join(repoRoot, 'tsconfig.json');
|
|
146
|
-
if (fs.existsSync(rootTs))
|
|
147
|
-
tsconfigPaths.push(rootTs);
|
|
148
|
-
}
|
|
149
|
-
return { tsconfigPaths, forceInclude };
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Converts a value into an array of strings.
|
|
153
|
-
*
|
|
154
|
-
* - If the value is a string, it returns an array containing that string.
|
|
155
|
-
* - If the value is an array, it filters the array to include only strings.
|
|
156
|
-
* - For any other type, it returns an empty array.
|
|
157
|
-
*
|
|
158
|
-
* @param value The value to convert.
|
|
159
|
-
* @returns An array of strings.
|
|
160
|
-
*/
|
|
161
149
|
function toStringArray(value) {
|
|
162
150
|
if (typeof value === 'string') {
|
|
163
151
|
return [value];
|
|
@@ -167,11 +155,94 @@ function toStringArray(value) {
|
|
|
167
155
|
}
|
|
168
156
|
return [];
|
|
169
157
|
}
|
|
158
|
+
function dedupeAndSort(values) {
|
|
159
|
+
return [...new Set(values)].sort();
|
|
160
|
+
}
|
|
161
|
+
function normalizeGlobValue(value) {
|
|
162
|
+
return value.trim().replace(/\\/g, '/').replace(/^\.\//, '');
|
|
163
|
+
}
|
|
164
|
+
function rebasePatternToCwd({ pattern, baseDir, cwd, }) {
|
|
165
|
+
const normalizedPattern = normalizeGlobValue(pattern);
|
|
166
|
+
if (normalizedPattern.length === 0) {
|
|
167
|
+
return '';
|
|
168
|
+
}
|
|
169
|
+
const platformPattern = normalizedPattern.split('/').join(path.sep);
|
|
170
|
+
const absolutePattern = path.isAbsolute(platformPattern)
|
|
171
|
+
? platformPattern
|
|
172
|
+
: path.resolve(baseDir, platformPattern);
|
|
173
|
+
const relativePattern = path
|
|
174
|
+
.relative(cwd, absolutePattern)
|
|
175
|
+
.split(path.sep)
|
|
176
|
+
.join('/');
|
|
177
|
+
if (relativePattern.length === 0) {
|
|
178
|
+
return '.';
|
|
179
|
+
}
|
|
180
|
+
return normalizeGlobValue(relativePattern);
|
|
181
|
+
}
|
|
182
|
+
function hasExtensionOrGlobExtensionPattern(value) {
|
|
183
|
+
return /(^|\/)[^/]*\.[^/]*$/.test(value);
|
|
184
|
+
}
|
|
185
|
+
function expandExtensionlessPattern(value) {
|
|
186
|
+
const normalized = normalizeGlobValue(value).replace(/\/+$/, '');
|
|
187
|
+
if (normalized.length === 0) {
|
|
188
|
+
return '';
|
|
189
|
+
}
|
|
190
|
+
if (hasExtensionOrGlobExtensionPattern(normalized)) {
|
|
191
|
+
return normalized;
|
|
192
|
+
}
|
|
193
|
+
if (!GLOB_META_PATTERN.test(normalized)) {
|
|
194
|
+
return `${normalized}/**/*${ESLINT_TARGET_EXTENSION_GLOB}`;
|
|
195
|
+
}
|
|
196
|
+
if (normalized === '**') {
|
|
197
|
+
return `**/*${ESLINT_TARGET_EXTENSION_GLOB}`;
|
|
198
|
+
}
|
|
199
|
+
if (normalized.endsWith('/**')) {
|
|
200
|
+
return `${normalized}/*${ESLINT_TARGET_EXTENSION_GLOB}`;
|
|
201
|
+
}
|
|
202
|
+
return `${normalized}${ESLINT_TARGET_EXTENSION_GLOB}`;
|
|
203
|
+
}
|
|
204
|
+
function normalizeIncludePatterns(values) {
|
|
205
|
+
return dedupeAndSort(values
|
|
206
|
+
.map((value) => expandExtensionlessPattern(value))
|
|
207
|
+
.filter((value) => value.length > 0));
|
|
208
|
+
}
|
|
209
|
+
function normalizeExcludePatterns(values) {
|
|
210
|
+
return dedupeAndSort(values
|
|
211
|
+
.map((value) => normalizeGlobValue(value).replace(/\/+$/, ''))
|
|
212
|
+
.filter((value) => value.length > 0));
|
|
213
|
+
}
|
|
214
|
+
function patternPrefix(value) {
|
|
215
|
+
const normalized = normalizeGlobValue(value);
|
|
216
|
+
const segments = normalized
|
|
217
|
+
.split('/')
|
|
218
|
+
.filter((segment) => segment.length > 0);
|
|
219
|
+
const prefixSegments = [];
|
|
220
|
+
for (const segment of segments) {
|
|
221
|
+
if (GLOB_META_PATTERN.test(segment)) {
|
|
222
|
+
break;
|
|
223
|
+
}
|
|
224
|
+
prefixSegments.push(segment);
|
|
225
|
+
}
|
|
226
|
+
return prefixSegments.join('/');
|
|
227
|
+
}
|
|
228
|
+
function patternsOverlapByPrefix(left, right) {
|
|
229
|
+
if (left === right) {
|
|
230
|
+
return true;
|
|
231
|
+
}
|
|
232
|
+
const leftPrefix = patternPrefix(left);
|
|
233
|
+
const rightPrefix = patternPrefix(right);
|
|
234
|
+
if (leftPrefix.length === 0 || rightPrefix.length === 0) {
|
|
235
|
+
return false;
|
|
236
|
+
}
|
|
237
|
+
return (leftPrefix === rightPrefix ||
|
|
238
|
+
leftPrefix.startsWith(`${rightPrefix}/`) ||
|
|
239
|
+
rightPrefix.startsWith(`${leftPrefix}/`));
|
|
240
|
+
}
|
|
170
241
|
/**
|
|
171
242
|
* Builds file and ignore patterns based on a given TypeScript configuration file path,
|
|
172
243
|
* with optional forced inclusion of specific paths.
|
|
173
244
|
*
|
|
174
|
-
* @param
|
|
245
|
+
* @param tsconfigPaths - One or more paths to TypeScript configuration files.
|
|
175
246
|
* @param forceInclude - An optional array of paths or patterns to forcefully include,
|
|
176
247
|
* even if they overlap with excluded patterns.
|
|
177
248
|
* @returns An object containing:
|
|
@@ -183,21 +254,63 @@ function toStringArray(value) {
|
|
|
183
254
|
* based on the `forceInclude` parameter. If no `exclude` patterns are specified,
|
|
184
255
|
* default ignore patterns for common directories like `node_modules` are added.
|
|
185
256
|
*/
|
|
186
|
-
function buildPatterns(
|
|
187
|
-
const
|
|
188
|
-
const
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
];
|
|
197
|
-
|
|
198
|
-
|
|
257
|
+
function buildPatterns(tsconfigPaths, forceInclude = [], cwd = process.cwd(), forceIncludeBaseDir = cwd) {
|
|
258
|
+
const normalizedForceInclude = normalizeIncludePatterns(forceInclude.map((value) => rebasePatternToCwd({ pattern: value, baseDir: forceIncludeBaseDir, cwd })));
|
|
259
|
+
const forceIncludeRaw = dedupeAndSort(forceInclude
|
|
260
|
+
.map((value) => rebasePatternToCwd({
|
|
261
|
+
pattern: value,
|
|
262
|
+
baseDir: forceIncludeBaseDir,
|
|
263
|
+
cwd,
|
|
264
|
+
}))
|
|
265
|
+
.map((value) => normalizeGlobValue(value).replace(/\/+$/, ''))
|
|
266
|
+
.filter((value) => value.length > 0));
|
|
267
|
+
const includePatternsByTsconfig = [];
|
|
268
|
+
const excludePatternsByTsconfig = [];
|
|
269
|
+
for (const tsconfigPath of tsconfigPaths) {
|
|
270
|
+
if (!fs.existsSync(tsconfigPath)) {
|
|
271
|
+
continue;
|
|
272
|
+
}
|
|
273
|
+
const tsconfigDir = path.dirname(tsconfigPath);
|
|
274
|
+
const readResult = ts.readConfigFile(tsconfigPath, ts.sys.readFile);
|
|
275
|
+
if (readResult.error != null || readResult.config == null) {
|
|
276
|
+
continue;
|
|
277
|
+
}
|
|
278
|
+
const config = readResult.config;
|
|
279
|
+
const rawInclude = toStringArray(config.include).map((pattern) => rebasePatternToCwd({ pattern, baseDir: tsconfigDir, cwd }));
|
|
280
|
+
const defaultInclude = rebasePatternToCwd({
|
|
281
|
+
pattern: '**/*',
|
|
282
|
+
baseDir: tsconfigDir,
|
|
283
|
+
cwd,
|
|
284
|
+
});
|
|
285
|
+
const normalizedInclude = normalizeIncludePatterns(rawInclude.length > 0 ? rawInclude : [defaultInclude]);
|
|
286
|
+
const normalizedExclude = normalizeExcludePatterns(toStringArray(config.exclude).map((pattern) => rebasePatternToCwd({ pattern, baseDir: tsconfigDir, cwd })));
|
|
287
|
+
includePatternsByTsconfig.push(normalizedInclude);
|
|
288
|
+
excludePatternsByTsconfig.push(normalizedExclude);
|
|
199
289
|
}
|
|
200
|
-
|
|
290
|
+
const include = dedupeAndSort([
|
|
291
|
+
...includePatternsByTsconfig.flat(),
|
|
292
|
+
...normalizedForceInclude,
|
|
293
|
+
]);
|
|
294
|
+
const ignoreCandidates = [];
|
|
295
|
+
excludePatternsByTsconfig.forEach((excludePatterns, index) => {
|
|
296
|
+
if (excludePatterns.length === 0) {
|
|
297
|
+
ignoreCandidates.push(...DEFAULT_IGNORE_PATTERNS);
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
300
|
+
for (const excludePattern of excludePatterns) {
|
|
301
|
+
const overlappedByOtherTsconfigInclude = includePatternsByTsconfig.some((includePatterns, includeIndex) => includeIndex !== index &&
|
|
302
|
+
includePatterns.some((includePattern) => patternsOverlapByPrefix(includePattern, excludePattern)));
|
|
303
|
+
if (!overlappedByOtherTsconfigInclude) {
|
|
304
|
+
ignoreCandidates.push(excludePattern);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
});
|
|
308
|
+
const ignore = dedupeAndSort(ignoreCandidates).filter((ignorePattern) => {
|
|
309
|
+
const overlappedByNormalized = normalizedForceInclude.some((forceIncludePattern) => patternsOverlapByPrefix(ignorePattern, forceIncludePattern));
|
|
310
|
+
const overlappedByRaw = forceIncludeRaw.some((forceIncludePattern) => patternsOverlapByPrefix(ignorePattern, forceIncludePattern));
|
|
311
|
+
return !overlappedByNormalized && !overlappedByRaw;
|
|
312
|
+
});
|
|
313
|
+
return { files: include, ignore };
|
|
201
314
|
}
|
|
202
|
-
export { runESLint, findUserESLintConfig, collectMarkdown, commandExists,
|
|
315
|
+
export { verboseToLogLevel, runESLint, findUserESLintConfig, collectMarkdown, commandExists, buildPatterns, };
|
|
203
316
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,40 +1,51 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matrixai/lint",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"author": "Roger Qiu",
|
|
5
5
|
"description": "Org wide custom eslint rules",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
|
-
"url": "https://github.com/MatrixAI/js-eslint.git"
|
|
9
|
+
"url": "git+https://github.com/MatrixAI/js-eslint.git"
|
|
10
10
|
},
|
|
11
11
|
"type": "module",
|
|
12
12
|
"exports": {
|
|
13
|
-
"./
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
"./package.json": "./package.json",
|
|
14
|
+
".": {
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"import": "./dist/index.js"
|
|
17
|
+
},
|
|
18
|
+
"./configs/*.js": {
|
|
19
|
+
"types": "./dist/configs/*.d.ts",
|
|
20
|
+
"import": "./dist/configs/*.js"
|
|
21
|
+
},
|
|
22
|
+
"./*.js": {
|
|
23
|
+
"types": "./dist/*.d.ts",
|
|
24
|
+
"import": "./dist/*.js"
|
|
25
|
+
},
|
|
26
|
+
"./*": "./dist/*"
|
|
16
27
|
},
|
|
17
28
|
"imports": {
|
|
18
29
|
"#*": "./dist/*"
|
|
19
30
|
},
|
|
20
|
-
"./package.json": "./package.json",
|
|
21
31
|
"bin": {
|
|
22
|
-
"matrixai-lint": "
|
|
32
|
+
"matrixai-lint": "dist/bin/matrixai-lint.js"
|
|
23
33
|
},
|
|
24
34
|
"scripts": {
|
|
25
35
|
"prepare": "tsc -p ./tsconfig.build.json",
|
|
26
|
-
"build": "shx rm -rf ./dist && tsc -p ./tsconfig.build.json && shx chmod +x dist/bin/lint.js",
|
|
36
|
+
"build": "shx rm -rf ./dist && tsc -p ./tsconfig.build.json && shx chmod +x ./dist/bin/matrixai-lint.js",
|
|
27
37
|
"postversion": "npm install --package-lock-only --ignore-scripts --silent",
|
|
28
38
|
"tsx": "tsx",
|
|
29
|
-
"lint": "
|
|
30
|
-
"lintfix": "
|
|
31
|
-
"lint-shell": "
|
|
32
|
-
"docs": "shx rm -rf ./docs && typedoc --
|
|
39
|
+
"lint": "npm run prepare && node ./dist/bin/matrixai-lint.js --domain eslint shell markdown --eslint \"{src,scripts,tests}/**/*.{js,mjs,ts,mts,jsx,tsx}\" --shell src scripts tests",
|
|
40
|
+
"lintfix": "npm run prepare && node ./dist/bin/matrixai-lint.js --fix --domain eslint shell markdown --eslint \"{src,scripts,tests}/**/*.{js,mjs,ts,mts,jsx,tsx}\" --shell src scripts tests",
|
|
41
|
+
"lint-shell": "npm run prepare && node ./dist/bin/matrixai-lint.js --domain shell --shell src scripts tests",
|
|
42
|
+
"docs": "shx rm -rf ./docs && typedoc --gitRevision master --tsconfig ./tsconfig.build.json --out ./docs src",
|
|
33
43
|
"test": "node ./scripts/test.mjs"
|
|
34
44
|
},
|
|
35
45
|
"dependencies": {
|
|
36
46
|
"@eslint/compat": "^1.2.5",
|
|
37
47
|
"@eslint/js": "^9.16.0",
|
|
48
|
+
"@matrixai/logger": "^4.0.3",
|
|
38
49
|
"@typescript-eslint/eslint-plugin": "^8.27.0",
|
|
39
50
|
"@typescript-eslint/parser": "^8.27.0",
|
|
40
51
|
"@typescript-eslint/utils": "^8.26.1",
|
|
@@ -60,7 +71,6 @@
|
|
|
60
71
|
"jest-junit": "^16.0.0",
|
|
61
72
|
"minimatch": "^10.0.1",
|
|
62
73
|
"shx": "^0.3.4",
|
|
63
|
-
"tsconfig-paths": "^3.9.0",
|
|
64
74
|
"tsx": "^3.12.7",
|
|
65
75
|
"typedoc": "^0.24.8",
|
|
66
76
|
"typescript": "^5.1.6"
|
package/dist/bin/lint.js
DELETED
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import os from 'node:os';
|
|
3
|
-
import path from 'node:path';
|
|
4
|
-
import process from 'node:process';
|
|
5
|
-
import childProcess from 'node:child_process';
|
|
6
|
-
import fs from 'node:fs';
|
|
7
|
-
import { createRequire } from 'node:module';
|
|
8
|
-
import url from 'node:url';
|
|
9
|
-
import { Command } from 'commander';
|
|
10
|
-
import * as utils from '../utils.js';
|
|
11
|
-
const platform = os.platform();
|
|
12
|
-
const program = new Command();
|
|
13
|
-
const DEFAULT_SHELLCHECK_SEARCH_ROOTS = ['./src', './scripts', './tests'];
|
|
14
|
-
const dirname = path.dirname(url.fileURLToPath(import.meta.url));
|
|
15
|
-
const builtinPrettierCfg = path.resolve(dirname, '../configs/prettier.config.mjs');
|
|
16
|
-
program
|
|
17
|
-
.name('matrixai-lint')
|
|
18
|
-
.description('Lint source files, scripts, and markdown with configured rules.')
|
|
19
|
-
.option('-f, --fix', 'Automatically fix problems')
|
|
20
|
-
.option('--user-config', 'Use user-provided ESLint config instead of built-in one')
|
|
21
|
-
.option('--config <path>', 'Path to explicit ESLint config file')
|
|
22
|
-
.option('--eslint <pat...>', 'Glob(s) to pass to ESLint')
|
|
23
|
-
.option('--shell <pat...>', 'Glob(s) to pass to shell-check')
|
|
24
|
-
.allowUnknownOption(true); // Optional: force rejection of unknown flags
|
|
25
|
-
/* eslint-disable no-console */
|
|
26
|
-
async function main(argv = process.argv) {
|
|
27
|
-
await program.parseAsync(argv);
|
|
28
|
-
const options = program.opts();
|
|
29
|
-
const fix = Boolean(options.fix);
|
|
30
|
-
const useUserConfig = Boolean(options.userConfig);
|
|
31
|
-
const explicitConfigPath = options.config;
|
|
32
|
-
const eslintPatterns = options.eslint;
|
|
33
|
-
const shellPatterns = options.shell;
|
|
34
|
-
let hadFailure = false;
|
|
35
|
-
// Resolve which config file to use
|
|
36
|
-
let chosenConfig;
|
|
37
|
-
if (explicitConfigPath !== undefined) {
|
|
38
|
-
const absolutePath = path.resolve(explicitConfigPath);
|
|
39
|
-
if (!fs.existsSync(absolutePath)) {
|
|
40
|
-
console.error(`--config points to “${explicitConfigPath}”, but that file does not exist.`);
|
|
41
|
-
process.exit(1); // Hard‑fail; nothing to lint against
|
|
42
|
-
}
|
|
43
|
-
chosenConfig = absolutePath;
|
|
44
|
-
}
|
|
45
|
-
else if (useUserConfig) {
|
|
46
|
-
chosenConfig = utils.findUserESLintConfig();
|
|
47
|
-
if (chosenConfig === undefined) {
|
|
48
|
-
console.error('--user-config given but no local ESLint config was found. Falling back to built-in config.');
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
try {
|
|
52
|
-
const hadLintingErrors = await utils.runESLint({
|
|
53
|
-
fix,
|
|
54
|
-
configPath: chosenConfig,
|
|
55
|
-
explicitGlobs: eslintPatterns,
|
|
56
|
-
});
|
|
57
|
-
if (hadLintingErrors) {
|
|
58
|
-
hadFailure = true;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
catch (err) {
|
|
62
|
-
console.error(`ESLint failed: \n${err}`);
|
|
63
|
-
hadFailure = true;
|
|
64
|
-
}
|
|
65
|
-
const searchRoots = (shellPatterns?.length ? shellPatterns : DEFAULT_SHELLCHECK_SEARCH_ROOTS)
|
|
66
|
-
.map((p) => path.resolve(process.cwd(), p))
|
|
67
|
-
.filter((p) => fs.existsSync(p));
|
|
68
|
-
// Linting shell scripts (this does not have auto-fixing)
|
|
69
|
-
const shellCheckArgs = [
|
|
70
|
-
...searchRoots,
|
|
71
|
-
'-type',
|
|
72
|
-
'f',
|
|
73
|
-
'-regextype',
|
|
74
|
-
'posix-extended',
|
|
75
|
-
'-regex',
|
|
76
|
-
'.*\\.(sh)',
|
|
77
|
-
'-exec',
|
|
78
|
-
'shellcheck',
|
|
79
|
-
'{}',
|
|
80
|
-
'+',
|
|
81
|
-
];
|
|
82
|
-
if (utils.commandExists('find') && utils.commandExists('shellcheck')) {
|
|
83
|
-
console.error('Running shellcheck:');
|
|
84
|
-
if (searchRoots.length === 0) {
|
|
85
|
-
console.warn('No search roots found for shellcheck. Skipping shellcheck.');
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
console.error(' ' + ['find', ...shellCheckArgs].join(' '));
|
|
89
|
-
try {
|
|
90
|
-
childProcess.execFileSync('find', shellCheckArgs, {
|
|
91
|
-
stdio: ['inherit', 'inherit', 'inherit'],
|
|
92
|
-
windowsHide: true,
|
|
93
|
-
encoding: 'utf-8',
|
|
94
|
-
shell: platform === 'win32' ? true : false,
|
|
95
|
-
cwd: process.cwd(),
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
catch (err) {
|
|
99
|
-
console.error('Shellcheck failed. ' + err);
|
|
100
|
-
hadFailure = true;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
console.warn('Skipping shellcheck: find or shellcheck not found in environment.');
|
|
106
|
-
}
|
|
107
|
-
// Linting markdown files
|
|
108
|
-
// Always include README if it exists
|
|
109
|
-
const markdownFiles = [];
|
|
110
|
-
if (fs.existsSync('README.md'))
|
|
111
|
-
markdownFiles.push('README.md');
|
|
112
|
-
for (const dir of ['pages', 'blog', 'docs']) {
|
|
113
|
-
if (fs.existsSync(dir))
|
|
114
|
-
markdownFiles.push(...utils.collectMarkdown(dir));
|
|
115
|
-
}
|
|
116
|
-
if (markdownFiles.length === 0) {
|
|
117
|
-
console.warn('Skipping Prettier: no Markdown/MDX files found.');
|
|
118
|
-
return;
|
|
119
|
-
}
|
|
120
|
-
const prettierArgs = [
|
|
121
|
-
'--config',
|
|
122
|
-
builtinPrettierCfg,
|
|
123
|
-
'--config-precedence',
|
|
124
|
-
'cli-override',
|
|
125
|
-
'--no-editorconfig',
|
|
126
|
-
fix ? '--write' : '--check',
|
|
127
|
-
...markdownFiles,
|
|
128
|
-
];
|
|
129
|
-
console.error('Running prettier:');
|
|
130
|
-
const require = createRequire(import.meta.url);
|
|
131
|
-
let prettierBin = null;
|
|
132
|
-
try {
|
|
133
|
-
// Resolves to @matrixai/lint/node_modules/prettier/bin/prettier.cjs
|
|
134
|
-
prettierBin = require.resolve('prettier/bin/prettier.cjs');
|
|
135
|
-
}
|
|
136
|
-
catch {
|
|
137
|
-
// Bundled copy not found
|
|
138
|
-
}
|
|
139
|
-
try {
|
|
140
|
-
if (prettierBin) {
|
|
141
|
-
console.error(` ${prettierBin} \n ${prettierArgs.join('\n' + ' ')}`);
|
|
142
|
-
childProcess.execFileSync(process.execPath, [prettierBin, ...prettierArgs], {
|
|
143
|
-
stdio: 'inherit',
|
|
144
|
-
windowsHide: true,
|
|
145
|
-
encoding: 'utf-8',
|
|
146
|
-
cwd: process.cwd(),
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
else {
|
|
150
|
-
console.error('prettier' + prettierArgs.join('\n' + ' '));
|
|
151
|
-
childProcess.execFileSync('prettier', prettierArgs, {
|
|
152
|
-
stdio: 'inherit',
|
|
153
|
-
windowsHide: true,
|
|
154
|
-
encoding: 'utf-8',
|
|
155
|
-
shell: platform === 'win32',
|
|
156
|
-
cwd: process.cwd(),
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
catch (err) {
|
|
161
|
-
if (!fix) {
|
|
162
|
-
console.error('Prettier check failed.');
|
|
163
|
-
hadFailure = true;
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
throw err; // Should not happen when --write
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
if (hadFailure) {
|
|
170
|
-
console.error('[matrixai-lint] ✖ Linting failed.');
|
|
171
|
-
process.exit(1);
|
|
172
|
-
}
|
|
173
|
-
else {
|
|
174
|
-
console.error('[matrixai-lint] ✔ Linting passed.');
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
/* eslint-enable no-console */
|
|
178
|
-
export default main;
|
|
179
|
-
if (import.meta.url.startsWith('file:')) {
|
|
180
|
-
void main();
|
|
181
|
-
}
|
|
182
|
-
//# sourceMappingURL=lint.js.map
|
package/dist/bin/lint.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/bin/lint.ts"],"names":[],"mappings":"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"}
|