@matrixai/lint 0.4.3 → 0.4.5
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/README.md +34 -4
- package/dist/LintDomainPluginBase.d.ts +9 -0
- package/dist/LintDomainPluginBase.js +12 -0
- package/dist/LintDomainPluginBase.js.map +1 -0
- package/dist/bin/matrixai-lint.js +16 -11
- package/dist/bin/matrixai-lint.js.map +1 -1
- package/dist/configs/eslint.d.ts +0 -5
- package/dist/configs/eslint.js +6 -2
- package/dist/configs/eslint.js.map +1 -1
- package/dist/domainEngine.d.ts +32 -0
- package/dist/{domains/engine.js → domainEngine.js} +12 -7
- package/dist/domainEngine.js.map +1 -0
- package/dist/{domains/index.d.ts → domains.d.ts} +4 -3
- package/dist/{domains/index.js → domains.js} +28 -15
- package/dist/domains.js.map +1 -0
- package/dist/eslint/ESLintDomainPlugin.d.ts +9 -0
- package/dist/eslint/ESLintDomainPlugin.js +86 -0
- package/dist/eslint/ESLintDomainPlugin.js.map +1 -0
- package/dist/eslint/rules/no-aliased-imports.js.map +1 -0
- package/dist/eslint/utils.d.ts +15 -0
- package/dist/eslint/utils.js +271 -0
- package/dist/eslint/utils.js.map +1 -0
- package/dist/markdown/MarkdownDomainPlugin.d.ts +11 -0
- package/dist/markdown/MarkdownDomainPlugin.js +116 -0
- package/dist/markdown/MarkdownDomainPlugin.js.map +1 -0
- package/dist/nix/NixDomainPlugin.d.ts +11 -0
- package/dist/nix/NixDomainPlugin.js +73 -0
- package/dist/nix/NixDomainPlugin.js.map +1 -0
- package/dist/shell/ShellDomainPlugin.d.ts +11 -0
- package/dist/shell/ShellDomainPlugin.js +65 -0
- package/dist/shell/ShellDomainPlugin.js.map +1 -0
- package/dist/tsbuildinfo +1 -1
- package/dist/types.d.ts +46 -2
- package/dist/utils.d.ts +5 -49
- package/dist/utils.js +150 -261
- package/dist/utils.js.map +1 -1
- package/package.json +3 -3
- package/dist/domains/engine.d.ts +0 -72
- package/dist/domains/engine.js.map +0 -1
- package/dist/domains/eslint.d.ts +0 -3
- package/dist/domains/eslint.js +0 -84
- package/dist/domains/eslint.js.map +0 -1
- package/dist/domains/files.d.ts +0 -5
- package/dist/domains/files.js +0 -185
- package/dist/domains/files.js.map +0 -1
- package/dist/domains/index.js.map +0 -1
- package/dist/domains/markdown.d.ts +0 -5
- package/dist/domains/markdown.js +0 -107
- package/dist/domains/markdown.js.map +0 -1
- package/dist/domains/shell.d.ts +0 -5
- package/dist/domains/shell.js +0 -59
- package/dist/domains/shell.js.map +0 -1
- package/dist/plugins/eslint-plugin-matrixai.d.ts +0 -18
- package/dist/plugins/eslint-plugin-matrixai.js +0 -13
- package/dist/plugins/eslint-plugin-matrixai.js.map +0 -1
- package/dist/rules/no-aliased-imports.js.map +0 -1
- /package/dist/{rules → eslint/rules}/no-aliased-imports.d.ts +0 -0
- /package/dist/{rules → eslint/rules}/no-aliased-imports.js +0 -0
package/README.md
CHANGED
|
@@ -7,8 +7,10 @@ for use in Matrix AI JavaScript/TypeScript projects.
|
|
|
7
7
|
`tsconfig.json` files
|
|
8
8
|
- Built-in support for React, Tailwind, JSX a11y, Prettier, and Matrix AI custom
|
|
9
9
|
rules
|
|
10
|
-
- Supports Prettier formatting for Markdown
|
|
11
|
-
|
|
10
|
+
- Supports Prettier formatting for Markdown, ShellCheck for shell scripts, and
|
|
11
|
+
nixfmt for Nix files
|
|
12
|
+
- Single command to lint JavaScript/TypeScript, Markdown, shell scripts, and Nix
|
|
13
|
+
files
|
|
12
14
|
- Customizable via `matrixai-lint-config.json` and extensible with your own
|
|
13
15
|
ESLint config
|
|
14
16
|
- CLI options to override config and enable auto-fix
|
|
@@ -43,9 +45,10 @@ matrixai-lint --fix
|
|
|
43
45
|
| `--eslint-config <path>` | Explicitly use a custom ESLint config file |
|
|
44
46
|
| `--eslint <targets>` | ESLint targets (files, roots, or globs); implies ESLint domain selection |
|
|
45
47
|
| `--markdown <targets>` | Markdown targets (files, roots, or globs); implies markdown domain selection |
|
|
48
|
+
| `--nix <targets>` | Nix targets (files, roots, or globs); implies nix domain selection |
|
|
46
49
|
| `--shell <targets>` | Shell targets (files, roots, or globs); implies shell domain selection |
|
|
47
|
-
| `--domain <id...>` | Run only selected domains (`eslint`, `shell`, `markdown`)
|
|
48
|
-
| `--skip-domain <id...>` | Skip selected domains (`eslint`, `shell`, `markdown`)
|
|
50
|
+
| `--domain <id...>` | Run only selected domains (`eslint`, `shell`, `markdown`, `nix`) |
|
|
51
|
+
| `--skip-domain <id...>` | Skip selected domains (`eslint`, `shell`, `markdown`, `nix`) |
|
|
49
52
|
| `--list-domains` | Print available domains and short descriptions, then exit 0 |
|
|
50
53
|
| `--explain` | Print per-domain decision details before execution |
|
|
51
54
|
| `-v, --verbose` | Increase log verbosity (repeat for more detail) |
|
|
@@ -62,9 +65,15 @@ Domain selection behavior:
|
|
|
62
65
|
- Passing `--markdown` implies markdown domain selection.
|
|
63
66
|
- `--markdown ...` runs markdown only.
|
|
64
67
|
- Combined with other target flags, only those targeted domains run.
|
|
68
|
+
- Passing `--nix` implies nix domain selection.
|
|
69
|
+
- `--nix ...` runs nix only.
|
|
70
|
+
- Combined with other target flags, only those targeted domains run.
|
|
65
71
|
- `shellcheck` is optional only for default auto-run shell execution.
|
|
66
72
|
- If shell is explicitly requested (`--shell ...` or `--domain shell`),
|
|
67
73
|
missing `shellcheck` is a failure.
|
|
74
|
+
- `nixfmt` is optional only for default auto-run nix execution.
|
|
75
|
+
- If nix is explicitly requested (`--nix ...` or `--domain nix`), missing
|
|
76
|
+
`nixfmt` is a failure.
|
|
68
77
|
- `--shell` accepts target paths and glob patterns.
|
|
69
78
|
- Directories are used as roots.
|
|
70
79
|
- File paths and glob patterns are reduced to search roots, then `*.sh` files
|
|
@@ -75,6 +84,13 @@ Domain selection behavior:
|
|
|
75
84
|
`*.mdx` files are discovered under those roots.
|
|
76
85
|
- Root-level `README.md` and `AGENTS.md` are always auto-included when
|
|
77
86
|
present.
|
|
87
|
+
- `--nix` accepts target paths and glob patterns.
|
|
88
|
+
- Directories are used as roots.
|
|
89
|
+
- File paths and glob patterns are reduced to search roots, then `*.nix` files
|
|
90
|
+
are discovered under those roots.
|
|
91
|
+
- By default, nix domain scope is `flake.nix`, `shell.nix`, `default.nix`, and
|
|
92
|
+
`nix/**/*.nix`.
|
|
93
|
+
- When `--nix` is provided, explicit nix targets replace these defaults.
|
|
78
94
|
|
|
79
95
|
#### Targeted workflows
|
|
80
96
|
|
|
@@ -102,6 +118,18 @@ Domain selection behavior:
|
|
|
102
118
|
matrixai-lint --markdown standards templates README.md
|
|
103
119
|
```
|
|
104
120
|
|
|
121
|
+
- Nix only (default nix scope):
|
|
122
|
+
|
|
123
|
+
```sh
|
|
124
|
+
matrixai-lint --domain nix
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
- Nix only under selected roots/patterns:
|
|
128
|
+
|
|
129
|
+
```sh
|
|
130
|
+
matrixai-lint --nix nix modules flake.nix
|
|
131
|
+
```
|
|
132
|
+
|
|
105
133
|
- Mixed scoped run (ESLint + shell only):
|
|
106
134
|
|
|
107
135
|
```sh
|
|
@@ -116,7 +144,9 @@ matrixai-lint --user-config
|
|
|
116
144
|
matrixai-lint --eslint-config ./eslint.config.js --fix
|
|
117
145
|
matrixai-lint --eslint "src/**/*.{ts,tsx}" --shell scripts
|
|
118
146
|
matrixai-lint --markdown standards templates README.md
|
|
147
|
+
matrixai-lint --nix nix flake.nix
|
|
119
148
|
matrixai-lint --domain eslint markdown
|
|
149
|
+
matrixai-lint --domain nix
|
|
120
150
|
matrixai-lint --skip-domain markdown
|
|
121
151
|
matrixai-lint --list-domains
|
|
122
152
|
matrixai-lint --explain --domain eslint
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { LintDomain, LintDomainDetection, LintDomainEngineContext, LintDomainPlugin, LintDomainPluginResult } from './types.js';
|
|
2
|
+
declare abstract class LintDomainPluginBase implements LintDomainPlugin {
|
|
3
|
+
abstract readonly domain: LintDomain;
|
|
4
|
+
abstract readonly description: string;
|
|
5
|
+
abstract detect(context: LintDomainEngineContext): Promise<LintDomainDetection> | LintDomainDetection;
|
|
6
|
+
abstract run(context: LintDomainEngineContext, detection: LintDomainDetection): Promise<LintDomainPluginResult> | LintDomainPluginResult;
|
|
7
|
+
protected normalizeLogDetail(value: unknown): string;
|
|
8
|
+
}
|
|
9
|
+
export default LintDomainPluginBase;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
function normalizeLogDetail(value) {
|
|
2
|
+
return String(value)
|
|
3
|
+
.replace(/\r?\n+/g, ' | ')
|
|
4
|
+
.trim();
|
|
5
|
+
}
|
|
6
|
+
class LintDomainPluginBase {
|
|
7
|
+
normalizeLogDetail(value) {
|
|
8
|
+
return normalizeLogDetail(value);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export default LintDomainPluginBase;
|
|
12
|
+
//# sourceMappingURL=LintDomainPluginBase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LintDomainPluginBase.js","sourceRoot":"","sources":["../src/LintDomainPluginBase.ts"],"names":[],"mappings":"AAQA,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,MAAM,CAAC,KAAK,CAAC;SACjB,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC;SACzB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,MAAe,oBAAoB;IAavB,kBAAkB,CAAC,KAAc;QACzC,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;CACF;AAED,eAAe,oBAAoB,CAAC"}
|
|
@@ -5,7 +5,8 @@ import fs from 'node:fs';
|
|
|
5
5
|
import url from 'node:url';
|
|
6
6
|
import { Command, Option } from 'commander';
|
|
7
7
|
import Logger, { StreamHandler } from '@matrixai/logger';
|
|
8
|
-
import { LINT_DOMAINS, resolveDomainSelection, createBuiltInDomainRegistry, listLintDomains, evaluateLintDomains, runLintDomainDecisions, } from '../domains
|
|
8
|
+
import { LINT_DOMAINS, resolveDomainSelection, createBuiltInDomainRegistry, listLintDomains, evaluateLintDomains, runLintDomainDecisions, } from '../domains.js';
|
|
9
|
+
import * as eslintUtils from '../eslint/utils.js';
|
|
9
10
|
import * as utils from '../utils.js';
|
|
10
11
|
const program = new Command();
|
|
11
12
|
const dirname = path.dirname(url.fileURLToPath(import.meta.url));
|
|
@@ -23,6 +24,7 @@ program
|
|
|
23
24
|
.option('--eslint-config <path>', 'Path to explicit ESLint config file')
|
|
24
25
|
.option('--eslint <target...>', 'ESLint targets (files, roots, or globs)')
|
|
25
26
|
.option('--markdown <target...>', 'Markdown targets (files, roots, or globs)')
|
|
27
|
+
.option('--nix <target...>', 'Nix targets (files, roots, or globs)')
|
|
26
28
|
.option('--shell <target...>', 'Shell targets (files, roots, or globs) used to derive shellcheck search roots')
|
|
27
29
|
.addOption(new Option('--domain <id...>', `Run only selected domains (${LINT_DOMAINS.join(', ')})`).choices(LINT_DOMAINS))
|
|
28
30
|
.addOption(new Option('--skip-domain <id...>', `Skip selected domains (${LINT_DOMAINS.join(', ')})`).choices(LINT_DOMAINS));
|
|
@@ -51,20 +53,20 @@ function describeRelevance(decision) {
|
|
|
51
53
|
function printDomainList(logger, domains) {
|
|
52
54
|
logger.info('Available lint domains:');
|
|
53
55
|
for (const domainInfo of domains) {
|
|
54
|
-
logger.info(
|
|
56
|
+
logger.info(`Domain info: domain=${domainInfo.domain} description=${domainInfo.description}`);
|
|
55
57
|
}
|
|
56
58
|
}
|
|
57
59
|
function printExplain(logger, decisions) {
|
|
58
60
|
logger.info('[matrixai-lint] Domain execution plan:');
|
|
59
61
|
for (const decision of decisions) {
|
|
60
|
-
logger.info(`[matrixai-lint]
|
|
61
|
-
logger.info(`[matrixai-lint]
|
|
62
|
-
logger.info(`[matrixai-lint]
|
|
63
|
-
logger.info(`[matrixai-lint]
|
|
62
|
+
logger.info(`[matrixai-lint] domain=${decision.domain}`);
|
|
63
|
+
logger.info(`[matrixai-lint] selection=${decision.selectionSource}${decision.explicitlyRequested ? ' (explicit)' : ''}`);
|
|
64
|
+
logger.info(`[matrixai-lint] relevance=${describeRelevance(decision)}`);
|
|
65
|
+
logger.info(`[matrixai-lint] availability=${describeAvailability(decision)}`);
|
|
64
66
|
if (decision.detectionError != null) {
|
|
65
|
-
logger.error(`[matrixai-lint]
|
|
67
|
+
logger.error(`[matrixai-lint] detection-error=${decision.detectionError}`);
|
|
66
68
|
}
|
|
67
|
-
logger.info(`[matrixai-lint]
|
|
69
|
+
logger.info(`[matrixai-lint] planned-action=${decision.plannedAction}`);
|
|
68
70
|
}
|
|
69
71
|
}
|
|
70
72
|
async function main(argv = process.argv) {
|
|
@@ -79,6 +81,7 @@ async function main(argv = process.argv) {
|
|
|
79
81
|
const explain = Boolean(options.explain);
|
|
80
82
|
const eslintPatterns = options.eslint;
|
|
81
83
|
const markdownPatterns = options.markdown;
|
|
84
|
+
const nixPatterns = options.nix;
|
|
82
85
|
const shellPatterns = options.shell;
|
|
83
86
|
const { selectedDomains, explicitlyRequestedDomains, selectionSources } = resolveDomainSelection(options);
|
|
84
87
|
const domainRegistry = createBuiltInDomainRegistry({
|
|
@@ -107,7 +110,7 @@ async function main(argv = process.argv) {
|
|
|
107
110
|
}
|
|
108
111
|
}
|
|
109
112
|
else if (useUserConfig) {
|
|
110
|
-
chosenConfig =
|
|
113
|
+
chosenConfig = eslintUtils.findUserESLintConfig();
|
|
111
114
|
if (chosenConfig === undefined) {
|
|
112
115
|
logger.warn('--user-config given but no local ESLint config was found. Falling back to built-in config.');
|
|
113
116
|
}
|
|
@@ -125,6 +128,7 @@ async function main(argv = process.argv) {
|
|
|
125
128
|
isConfigValid,
|
|
126
129
|
eslintPatterns,
|
|
127
130
|
markdownPatterns,
|
|
131
|
+
nixPatterns,
|
|
128
132
|
shellPatterns,
|
|
129
133
|
},
|
|
130
134
|
});
|
|
@@ -141,6 +145,7 @@ async function main(argv = process.argv) {
|
|
|
141
145
|
isConfigValid,
|
|
142
146
|
eslintPatterns,
|
|
143
147
|
markdownPatterns,
|
|
148
|
+
nixPatterns,
|
|
144
149
|
shellPatterns,
|
|
145
150
|
},
|
|
146
151
|
});
|
|
@@ -148,11 +153,11 @@ async function main(argv = process.argv) {
|
|
|
148
153
|
hadFailure = true;
|
|
149
154
|
}
|
|
150
155
|
if (hadFailure) {
|
|
151
|
-
logger.error('[matrixai-lint]
|
|
156
|
+
logger.error('[matrixai-lint] ✖ Linting failed.');
|
|
152
157
|
process.exit(1);
|
|
153
158
|
}
|
|
154
159
|
else {
|
|
155
|
-
logger.info('[matrixai-lint]
|
|
160
|
+
logger.info('[matrixai-lint] ✔ Linting passed.');
|
|
156
161
|
}
|
|
157
162
|
}
|
|
158
163
|
if (import.meta.url.startsWith('file:') && process.argv[1] != null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matrixai-lint.js","sourceRoot":"","sources":["../../src/bin/matrixai-lint.ts"],"names":[],"mappings":";AAEA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,MAAM,EAAE,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,2BAA2B,EAC3B,eAAe,EACf,mBAAmB,EACnB,sBAAsB,GAEvB,MAAM,
|
|
1
|
+
{"version":3,"file":"matrixai-lint.js","sourceRoot":"","sources":["../../src/bin/matrixai-lint.ts"],"names":[],"mappings":";AAEA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,MAAM,EAAE,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,2BAA2B,EAC3B,eAAe,EACf,mBAAmB,EACnB,sBAAsB,GAEvB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AAErC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjE,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CACrC,OAAO,EACP,+BAA+B,CAChC,CAAC;AAEF,OAAO;KACJ,IAAI,CAAC,eAAe,CAAC;KACrB,WAAW,CACV,iEAAiE,CAClE;KACA,SAAS,CACR,IAAI,MAAM,CAAC,eAAe,EAAE,wBAAwB,CAAC;KAClD,SAAS,CAAC,CAAC,CAAS,EAAE,WAAmB,CAAC,EAAE,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC;KAC5D,OAAO,CAAC,CAAC,CAAC,CACd;KACA,MAAM,CAAC,WAAW,EAAE,4BAA4B,CAAC;KACjD,MAAM,CAAC,gBAAgB,EAAE,sCAAsC,CAAC;KAChE,MAAM,CAAC,WAAW,EAAE,oDAAoD,CAAC;KACzE,MAAM,CACL,eAAe,EACf,yDAAyD,CAC1D;KACA,MAAM,CAAC,wBAAwB,EAAE,qCAAqC,CAAC;KACvE,MAAM,CAAC,sBAAsB,EAAE,yCAAyC,CAAC;KACzE,MAAM,CAAC,wBAAwB,EAAE,2CAA2C,CAAC;KAC7E,MAAM,CAAC,mBAAmB,EAAE,sCAAsC,CAAC;KACnE,MAAM,CACL,qBAAqB,EACrB,+EAA+E,CAChF;KACA,SAAS,CACR,IAAI,MAAM,CACR,kBAAkB,EAClB,8BAA8B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACzD,CAAC,OAAO,CAAC,YAAY,CAAC,CACxB;KACA,SAAS,CACR,IAAI,MAAM,CACR,uBAAuB,EACvB,0BAA0B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACrD,CAAC,OAAO,CAAC,YAAY,CAAC,CACxB,CAAC;AAEJ,SAAS,oBAAoB,CAAC,QAA4B;IACxD,IAAI,QAAQ,CAAC,SAAS,IAAI,IAAI,EAAE;QAC9B,OAAO,eAAe,CAAC;KACxB;IAED,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IACrC,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;IACjE,MAAM,MAAM,GAAG,SAAS,CAAC,iBAAiB,CAAC;IAE3C,OAAO,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QACxC,CAAC,CAAC,GAAG,MAAM,KAAK,SAAS,CAAC,gBAAgB,KAAK,MAAM,GAAG;QACxD,CAAC,CAAC,GAAG,MAAM,KAAK,SAAS,CAAC,gBAAgB,GAAG,CAAC;AAClD,CAAC;AAED,SAAS,iBAAiB,CAAC,QAA4B;IACrD,IAAI,QAAQ,CAAC,SAAS,IAAI,IAAI,EAAE;QAC9B,OAAO,QAAQ,CAAC,aAAa,KAAK,iBAAiB;YACjD,CAAC,CAAC,qCAAqC;YACvC,CAAC,CAAC,eAAe,CAAC;KACrB;IAED,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IACrC,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC;IAChE,MAAM,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC;IAEzC,OAAO,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;AAChF,CAAC;AAED,SAAS,eAAe,CACtB,MAAc,EACd,OAAuD;IAEvD,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACvC,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE;QAChC,MAAM,CAAC,IAAI,CACT,uBAAuB,UAAU,CAAC,MAAM,gBAAgB,UAAU,CAAC,WAAW,EAAE,CACjF,CAAC;KACH;AACH,CAAC;AAED,SAAS,YAAY,CACnB,MAAc,EACd,SAAwC;IAExC,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IACtD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;QAChC,MAAM,CAAC,IAAI,CAAC,0BAA0B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACzD,MAAM,CAAC,IAAI,CACT,6BAA6B,QAAQ,CAAC,eAAe,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5G,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,6BAA6B,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACxE,MAAM,CAAC,IAAI,CACT,gCAAgC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CACjE,CAAC;QACF,IAAI,QAAQ,CAAC,cAAc,IAAI,IAAI,EAAE;YACnC,MAAM,CAAC,KAAK,CACV,mCAAmC,QAAQ,CAAC,cAAc,EAAE,CAC7D,CAAC;SACH;QACD,MAAM,CAAC,IAAI,CAAC,kCAAkC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;KACzE;AACH,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI;IACrC,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAc,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,eAAe,EAAE,SAAS,EAAE,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC,CAAC;IAC7E,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAE1D,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,kBAAkB,GAAuB,OAAO,CAAC,YAAY,CAAC;IACpE,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEzC,MAAM,cAAc,GAAyB,OAAO,CAAC,MAAM,CAAC;IAC5D,MAAM,gBAAgB,GAAyB,OAAO,CAAC,QAAQ,CAAC;IAChE,MAAM,WAAW,GAAyB,OAAO,CAAC,GAAG,CAAC;IACtD,MAAM,aAAa,GAAyB,OAAO,CAAC,KAAK,CAAC;IAC1D,MAAM,EAAE,eAAe,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,GACrE,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAElC,MAAM,cAAc,GAAG,2BAA2B,CAAC;QACjD,kBAAkB,EAAE,kBAAkB;KACvC,CAAC,CAAC;IAEH,IAAI,eAAe,EAAE;QACnB,eAAe,CACb,MAAM,EACN,eAAe,CAAC;YACd,QAAQ,EAAE,cAAc;YACxB,cAAc,EAAE,YAAY;SAC7B,CAAC,CACH,CAAC;QACF,OAAO;KACR;IAED,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,mCAAmC;IACnC,IAAI,YAAgC,CAAC;IACrC,IAAI,aAAa,GAAG,IAAI,CAAC;IAEzB,IAAI,kBAAkB,KAAK,SAAS,EAAE;QACpC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAEtD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;YAChC,MAAM,CAAC,KAAK,CACV,8BAA8B,kBAAkB,kCAAkC,CACnF,CAAC;YACF,UAAU,GAAG,IAAI,CAAC;YAClB,aAAa,GAAG,KAAK,CAAC;SACvB;aAAM;YACL,YAAY,GAAG,YAAY,CAAC;SAC7B;KACF;SAAM,IAAI,aAAa,EAAE;QACxB,YAAY,GAAG,WAAW,CAAC,oBAAoB,EAAE,CAAC;QAClD,IAAI,YAAY,KAAK,SAAS,EAAE;YAC9B,MAAM,CAAC,IAAI,CACT,4FAA4F,CAC7F,CAAC;SACH;KACF;IAED,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC;QAC1C,QAAQ,EAAE,cAAc;QACxB,eAAe;QACf,0BAA0B;QAC1B,gBAAgB;QAChB,cAAc,EAAE,YAAY;QAC5B,OAAO,EAAE;YACP,GAAG;YACH,MAAM;YACN,YAAY;YACZ,aAAa;YACb,cAAc;YACd,gBAAgB;YAChB,WAAW;YACX,aAAa;SACd;KACF,CAAC,CAAC;IAEH,IAAI,OAAO,EAAE;QACX,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;KACjC;IAED,MAAM,gBAAgB,GAAG,MAAM,sBAAsB,CAAC;QACpD,QAAQ,EAAE,cAAc;QACxB,SAAS;QACT,OAAO,EAAE;YACP,GAAG;YACH,MAAM;YACN,YAAY;YACZ,aAAa;YACb,cAAc;YACd,gBAAgB;YAChB,WAAW;YACX,aAAa;SACd;KACF,CAAC,CAAC;IAEH,IAAI,gBAAgB,EAAE;QACpB,UAAU,GAAG,IAAI,CAAC;KACnB;IAED,IAAI,UAAU,EAAE;QACd,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;SAAM;QACL,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;KAClD;AACH,CAAC;AAED,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;IAClE,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,QAAgB,CAAC;IACrB,IAAI;QACF,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC;YACtC,CAAC,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI;YACzB,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;KAC/D;IAAC,MAAM;QACN,QAAQ,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;KAC5D;IACD,IAAI,QAAQ,KAAK,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;QAC9C,KAAK,IAAI,EAAE,CAAC;KACb;CACF;AAED,eAAe,IAAI,CAAC"}
|
package/dist/configs/eslint.d.ts
CHANGED
|
@@ -4,10 +4,6 @@ declare const config: (import("eslint").Linter.Config<import("eslint").Linter.Ru
|
|
|
4
4
|
plugins: {
|
|
5
5
|
import: import("eslint").ESLint.Plugin;
|
|
6
6
|
'@matrixai': {
|
|
7
|
-
meta: {
|
|
8
|
-
name: string;
|
|
9
|
-
version: string;
|
|
10
|
-
};
|
|
11
7
|
rules: {
|
|
12
8
|
'no-aliased-imports': import("@typescript-eslint/utils/ts-eslint").RuleModule<"noAlias" | "noAliasNoAutofix", [{
|
|
13
9
|
aliases: {
|
|
@@ -18,7 +14,6 @@ declare const config: (import("eslint").Linter.Config<import("eslint").Linter.Ru
|
|
|
18
14
|
autoFix: boolean;
|
|
19
15
|
}], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
20
16
|
};
|
|
21
|
-
configs: {};
|
|
22
17
|
};
|
|
23
18
|
};
|
|
24
19
|
settings: {
|
package/dist/configs/eslint.js
CHANGED
|
@@ -7,7 +7,7 @@ import tsParser from '@typescript-eslint/parser';
|
|
|
7
7
|
import { FlatCompat } from '@eslint/eslintrc';
|
|
8
8
|
import { fixupPluginRules } from '@eslint/compat';
|
|
9
9
|
import prettierOptions from './prettier.config.js';
|
|
10
|
-
import
|
|
10
|
+
import noAliasedImportsRule from '../eslint/rules/no-aliased-imports.js';
|
|
11
11
|
import { resolveLintConfig } from '../config.js';
|
|
12
12
|
const resolvedLintConfig = resolveLintConfig();
|
|
13
13
|
const filename = fileURLToPath(import.meta.url);
|
|
@@ -22,7 +22,11 @@ const config = [
|
|
|
22
22
|
{
|
|
23
23
|
plugins: {
|
|
24
24
|
import: fixupPluginRules(_import),
|
|
25
|
-
'@matrixai':
|
|
25
|
+
'@matrixai': {
|
|
26
|
+
rules: {
|
|
27
|
+
'no-aliased-imports': noAliasedImportsRule,
|
|
28
|
+
},
|
|
29
|
+
},
|
|
26
30
|
},
|
|
27
31
|
settings: {
|
|
28
32
|
react: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eslint.js","sourceRoot":"","sources":["../../src/configs/eslint.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,OAAO,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,eAAe,MAAM,sBAAsB,CAAC;AACnD,OAAO,
|
|
1
|
+
{"version":3,"file":"eslint.js","sourceRoot":"","sources":["../../src/configs/eslint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { LintDomainAvailabilityKind, LintDomainDecision, LintDomainDetect, LintDomainDetection, LintDomain, LintDomainEngineContext, LintDomainPlannedAction, LintDomainPlugin, LintDomainPluginResult, LintDomainRun, LintDomainSelectionSource } from './types.js';
|
|
2
|
+
declare function createLintDomainRegistry(plugins: readonly LintDomainPlugin[]): Map<LintDomain, LintDomainPlugin>;
|
|
3
|
+
declare function listLintDomains({ registry, executionOrder, }: {
|
|
4
|
+
registry: ReadonlyMap<LintDomain, LintDomainPlugin>;
|
|
5
|
+
executionOrder: readonly LintDomain[];
|
|
6
|
+
}): Array<{
|
|
7
|
+
domain: LintDomain;
|
|
8
|
+
description: string;
|
|
9
|
+
}>;
|
|
10
|
+
declare function evaluateLintDomains({ registry, selectedDomains, explicitlyRequestedDomains, selectionSources, executionOrder, context, }: {
|
|
11
|
+
registry: ReadonlyMap<LintDomain, LintDomainPlugin>;
|
|
12
|
+
selectedDomains: ReadonlySet<LintDomain>;
|
|
13
|
+
explicitlyRequestedDomains: ReadonlySet<LintDomain>;
|
|
14
|
+
selectionSources?: ReadonlyMap<LintDomain, LintDomainSelectionSource>;
|
|
15
|
+
executionOrder: readonly LintDomain[];
|
|
16
|
+
context: LintDomainEngineContext;
|
|
17
|
+
}): Promise<LintDomainDecision[]>;
|
|
18
|
+
declare function runLintDomainDecisions({ registry, decisions, context, }: {
|
|
19
|
+
registry: ReadonlyMap<LintDomain, LintDomainPlugin>;
|
|
20
|
+
decisions: readonly LintDomainDecision[];
|
|
21
|
+
context: LintDomainEngineContext;
|
|
22
|
+
}): Promise<boolean>;
|
|
23
|
+
declare function runLintDomains({ registry, selectedDomains, explicitlyRequestedDomains, selectionSources, executionOrder, context, }: {
|
|
24
|
+
registry: ReadonlyMap<LintDomain, LintDomainPlugin>;
|
|
25
|
+
selectedDomains: ReadonlySet<LintDomain>;
|
|
26
|
+
explicitlyRequestedDomains: ReadonlySet<LintDomain>;
|
|
27
|
+
selectionSources?: ReadonlyMap<LintDomain, LintDomainSelectionSource>;
|
|
28
|
+
executionOrder: readonly LintDomain[];
|
|
29
|
+
context: LintDomainEngineContext;
|
|
30
|
+
}): Promise<boolean>;
|
|
31
|
+
export type { LintDomainDetect, LintDomainDecision, LintDomainRun, LintDomainPlannedAction, LintDomainSelectionSource, LintDomainAvailabilityKind, LintDomainDetection, LintDomainEngineContext, LintDomainPlugin, LintDomainPluginResult, };
|
|
32
|
+
export { createLintDomainRegistry, listLintDomains, evaluateLintDomains, runLintDomainDecisions, runLintDomains, };
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
function normalizeLogDetail(value) {
|
|
2
|
+
return String(value)
|
|
3
|
+
.replace(/\r?\n+/g, ' | ')
|
|
4
|
+
.trim();
|
|
5
|
+
}
|
|
1
6
|
function createLintDomainRegistry(plugins) {
|
|
2
7
|
const registry = new Map();
|
|
3
8
|
for (const plugin of plugins) {
|
|
@@ -89,7 +94,7 @@ async function runLintDomainDecisions({ registry, decisions, context, }) {
|
|
|
89
94
|
continue;
|
|
90
95
|
}
|
|
91
96
|
if (plannedAction === 'fail-detection') {
|
|
92
|
-
const message = `[matrixai-lint]
|
|
97
|
+
const message = `[matrixai-lint] - Domain "${domain}" failed unexpectedly. ${normalizeLogDetail(detectionError ?? 'Unknown detection error.')}`;
|
|
93
98
|
logger.error(message);
|
|
94
99
|
hadFailure = true;
|
|
95
100
|
continue;
|
|
@@ -97,7 +102,7 @@ async function runLintDomainDecisions({ registry, decisions, context, }) {
|
|
|
97
102
|
if (plannedAction === 'skip-not-relevant') {
|
|
98
103
|
if (explicitlyRequested) {
|
|
99
104
|
const relevanceReason = detection?.relevanceReason ?? 'No files matched in effective scope.';
|
|
100
|
-
const message = `[matrixai-lint]
|
|
105
|
+
const message = `[matrixai-lint] - Domain "${domain}" was explicitly requested, but no files matched. ${relevanceReason}`;
|
|
101
106
|
logger.warn(message);
|
|
102
107
|
}
|
|
103
108
|
continue;
|
|
@@ -105,7 +110,7 @@ async function runLintDomainDecisions({ registry, decisions, context, }) {
|
|
|
105
110
|
if (plannedAction === 'fail-unavailable') {
|
|
106
111
|
const unavailableReason = detection?.unavailableReason ??
|
|
107
112
|
`Tooling for domain "${domain}" is not available.`;
|
|
108
|
-
const message = `[matrixai-lint]
|
|
113
|
+
const message = `[matrixai-lint] - Domain "${domain}" cannot run. ${unavailableReason}`;
|
|
109
114
|
logger.error(message);
|
|
110
115
|
hadFailure = true;
|
|
111
116
|
continue;
|
|
@@ -113,7 +118,7 @@ async function runLintDomainDecisions({ registry, decisions, context, }) {
|
|
|
113
118
|
if (plannedAction === 'skip-unavailable') {
|
|
114
119
|
const unavailableReason = detection?.unavailableReason ??
|
|
115
120
|
`Tooling for domain "${domain}" is not available.`;
|
|
116
|
-
const message = `[matrixai-lint]
|
|
121
|
+
const message = `[matrixai-lint] - Domain "${domain}" skipped. ${unavailableReason}`;
|
|
117
122
|
logger.warn(message);
|
|
118
123
|
continue;
|
|
119
124
|
}
|
|
@@ -122,7 +127,7 @@ async function runLintDomainDecisions({ registry, decisions, context, }) {
|
|
|
122
127
|
throw new Error(`No lint domain plugin registered for: ${domain}`);
|
|
123
128
|
}
|
|
124
129
|
if (detection == null) {
|
|
125
|
-
const message = `[matrixai-lint]
|
|
130
|
+
const message = `[matrixai-lint] - Domain "${domain}" is missing detection metadata.`;
|
|
126
131
|
logger.error(message);
|
|
127
132
|
hadFailure = true;
|
|
128
133
|
continue;
|
|
@@ -134,7 +139,7 @@ async function runLintDomainDecisions({ registry, decisions, context, }) {
|
|
|
134
139
|
}
|
|
135
140
|
}
|
|
136
141
|
catch (err) {
|
|
137
|
-
const message = `[matrixai-lint]
|
|
142
|
+
const message = `[matrixai-lint] - Domain "${domain}" failed unexpectedly. ${normalizeLogDetail(err)}`;
|
|
138
143
|
logger.error(message);
|
|
139
144
|
hadFailure = true;
|
|
140
145
|
}
|
|
@@ -157,4 +162,4 @@ async function runLintDomains({ registry, selectedDomains, explicitlyRequestedDo
|
|
|
157
162
|
});
|
|
158
163
|
}
|
|
159
164
|
export { createLintDomainRegistry, listLintDomains, evaluateLintDomains, runLintDomainDecisions, runLintDomains, };
|
|
160
|
-
//# sourceMappingURL=
|
|
165
|
+
//# sourceMappingURL=domainEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domainEngine.js","sourceRoot":"","sources":["../src/domainEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type { LintDomain, CLIOptions } from '
|
|
2
|
-
import { createLintDomainRegistry, listLintDomains, evaluateLintDomains, runLintDomainDecisions, runLintDomains, type LintDomainPlugin, type LintDomainPluginResult, type LintDomainDecision, type LintDomainEngineContext, type LintDomainSelectionSource } from './
|
|
1
|
+
import type { LintDomain, CLIOptions } from './types.js';
|
|
2
|
+
import { createLintDomainRegistry, listLintDomains, evaluateLintDomains, runLintDomainDecisions, runLintDomains, type LintDomainPlugin, type LintDomainPluginResult, type LintDomainDecision, type LintDomainEngineContext, type LintDomainSelectionSource } from './domainEngine.js';
|
|
3
3
|
declare const LINT_DOMAINS: LintDomain[];
|
|
4
4
|
declare const DEFAULT_SHELLCHECK_SEARCH_ROOTS: string[];
|
|
5
|
+
declare const DEFAULT_NIXFMT_SEARCH_PATTERNS: readonly ["./flake.nix", "./shell.nix", "./default.nix", "./nix/**/*.nix"];
|
|
5
6
|
declare function resolveDomainSelection(options: CLIOptions): {
|
|
6
7
|
selectedDomains: Set<LintDomain>;
|
|
7
8
|
explicitlyRequestedDomains: Set<LintDomain>;
|
|
@@ -11,4 +12,4 @@ declare function createBuiltInDomainRegistry({ prettierConfigPath, }: {
|
|
|
11
12
|
prettierConfigPath: string;
|
|
12
13
|
}): Map<LintDomain, LintDomainPlugin>;
|
|
13
14
|
export type { LintDomainDecision, LintDomainEngineContext, LintDomainPlugin, LintDomainPluginResult, LintDomainSelectionSource, };
|
|
14
|
-
export { LINT_DOMAINS, DEFAULT_SHELLCHECK_SEARCH_ROOTS, resolveDomainSelection, createBuiltInDomainRegistry, createLintDomainRegistry, listLintDomains, evaluateLintDomains, runLintDomainDecisions, runLintDomains, };
|
|
15
|
+
export { LINT_DOMAINS, DEFAULT_SHELLCHECK_SEARCH_ROOTS, DEFAULT_NIXFMT_SEARCH_PATTERNS, resolveDomainSelection, createBuiltInDomainRegistry, createLintDomainRegistry, listLintDomains, evaluateLintDomains, runLintDomainDecisions, runLintDomains, };
|
|
@@ -1,9 +1,16 @@
|
|
|
1
|
-
import { createLintDomainRegistry, listLintDomains, evaluateLintDomains, runLintDomainDecisions, runLintDomains, } from './
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
|
|
1
|
+
import { createLintDomainRegistry, listLintDomains, evaluateLintDomains, runLintDomainDecisions, runLintDomains, } from './domainEngine.js';
|
|
2
|
+
import ESLintDomainPlugin from './eslint/ESLintDomainPlugin.js';
|
|
3
|
+
import ShellDomainPlugin from './shell/ShellDomainPlugin.js';
|
|
4
|
+
import MarkdownDomainPlugin from './markdown/MarkdownDomainPlugin.js';
|
|
5
|
+
import NixDomainPlugin from './nix/NixDomainPlugin.js';
|
|
6
|
+
const LINT_DOMAINS = ['eslint', 'shell', 'markdown', 'nix'];
|
|
6
7
|
const DEFAULT_SHELLCHECK_SEARCH_ROOTS = ['./src', './scripts', './tests'];
|
|
8
|
+
const DEFAULT_NIXFMT_SEARCH_PATTERNS = [
|
|
9
|
+
'./flake.nix',
|
|
10
|
+
'./shell.nix',
|
|
11
|
+
'./default.nix',
|
|
12
|
+
'./nix/**/*.nix',
|
|
13
|
+
];
|
|
7
14
|
function resolveDomainSelection(options) {
|
|
8
15
|
const domainFlags = options.domain ?? [];
|
|
9
16
|
const skipDomains = new Set(options.skipDomain ?? []);
|
|
@@ -11,6 +18,7 @@ function resolveDomainSelection(options) {
|
|
|
11
18
|
const hasExplicitESLintTargets = (options.eslint?.length ?? 0) > 0;
|
|
12
19
|
const hasExplicitShellTargets = (options.shell?.length ?? 0) > 0;
|
|
13
20
|
const hasExplicitMarkdownTargets = (options.markdown?.length ?? 0) > 0;
|
|
21
|
+
const hasExplicitNixTargets = (options.nix?.length ?? 0) > 0;
|
|
14
22
|
const explicitlyRequestedDomains = new Set(domainFlags);
|
|
15
23
|
const selectionSources = new Map();
|
|
16
24
|
if (hasExplicitESLintTargets) {
|
|
@@ -22,6 +30,9 @@ function resolveDomainSelection(options) {
|
|
|
22
30
|
if (hasExplicitMarkdownTargets) {
|
|
23
31
|
explicitlyRequestedDomains.add('markdown');
|
|
24
32
|
}
|
|
33
|
+
if (hasExplicitNixTargets) {
|
|
34
|
+
explicitlyRequestedDomains.add('nix');
|
|
35
|
+
}
|
|
25
36
|
let selectedDomains;
|
|
26
37
|
if (domainFlags.length > 0) {
|
|
27
38
|
selectedDomains = new Set(domainFlags);
|
|
@@ -32,7 +43,8 @@ function resolveDomainSelection(options) {
|
|
|
32
43
|
else if (!hasDomainSelectors &&
|
|
33
44
|
(hasExplicitESLintTargets ||
|
|
34
45
|
hasExplicitShellTargets ||
|
|
35
|
-
hasExplicitMarkdownTargets
|
|
46
|
+
hasExplicitMarkdownTargets ||
|
|
47
|
+
hasExplicitNixTargets)) {
|
|
36
48
|
selectedDomains = new Set();
|
|
37
49
|
if (hasExplicitESLintTargets) {
|
|
38
50
|
selectedDomains.add('eslint');
|
|
@@ -46,6 +58,10 @@ function resolveDomainSelection(options) {
|
|
|
46
58
|
selectedDomains.add('markdown');
|
|
47
59
|
selectionSources.set('markdown', 'target-flag');
|
|
48
60
|
}
|
|
61
|
+
if (hasExplicitNixTargets) {
|
|
62
|
+
selectedDomains.add('nix');
|
|
63
|
+
selectionSources.set('nix', 'target-flag');
|
|
64
|
+
}
|
|
49
65
|
}
|
|
50
66
|
else {
|
|
51
67
|
selectedDomains = new Set(LINT_DOMAINS);
|
|
@@ -70,14 +86,11 @@ function resolveDomainSelection(options) {
|
|
|
70
86
|
}
|
|
71
87
|
function createBuiltInDomainRegistry({ prettierConfigPath, }) {
|
|
72
88
|
return createLintDomainRegistry([
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
createMarkdownDomainPlugin({
|
|
78
|
-
prettierConfigPath,
|
|
79
|
-
}),
|
|
89
|
+
new ESLintDomainPlugin(),
|
|
90
|
+
new ShellDomainPlugin(DEFAULT_SHELLCHECK_SEARCH_ROOTS),
|
|
91
|
+
new MarkdownDomainPlugin(prettierConfigPath),
|
|
92
|
+
new NixDomainPlugin(DEFAULT_NIXFMT_SEARCH_PATTERNS),
|
|
80
93
|
]);
|
|
81
94
|
}
|
|
82
|
-
export { LINT_DOMAINS, DEFAULT_SHELLCHECK_SEARCH_ROOTS, resolveDomainSelection, createBuiltInDomainRegistry, createLintDomainRegistry, listLintDomains, evaluateLintDomains, runLintDomainDecisions, runLintDomains, };
|
|
83
|
-
//# sourceMappingURL=
|
|
95
|
+
export { LINT_DOMAINS, DEFAULT_SHELLCHECK_SEARCH_ROOTS, DEFAULT_NIXFMT_SEARCH_PATTERNS, resolveDomainSelection, createBuiltInDomainRegistry, createLintDomainRegistry, listLintDomains, evaluateLintDomains, runLintDomainDecisions, runLintDomains, };
|
|
96
|
+
//# sourceMappingURL=domains.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domains.js","sourceRoot":"","sources":["../src/domains.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { LintDomainDetection, LintDomainEngineContext, LintDomainPluginResult } from '../types.js';
|
|
2
|
+
import LintDomainPluginBase from '../LintDomainPluginBase.js';
|
|
3
|
+
declare class ESLintDomainPlugin extends LintDomainPluginBase {
|
|
4
|
+
readonly domain = "eslint";
|
|
5
|
+
readonly description = "Lint JavaScript/TypeScript/JSON files with ESLint.";
|
|
6
|
+
detect({ eslintPatterns, }: LintDomainEngineContext): LintDomainDetection;
|
|
7
|
+
run({ fix, logger, chosenConfig, isConfigValid, eslintPatterns, }: LintDomainEngineContext): Promise<LintDomainPluginResult>;
|
|
8
|
+
}
|
|
9
|
+
export default ESLintDomainPlugin;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { buildPatterns, runESLint } from './utils.js';
|
|
2
|
+
import LintDomainPluginBase from '../LintDomainPluginBase.js';
|
|
3
|
+
import { resolveLintConfig } from '../config.js';
|
|
4
|
+
import { resolveFilesFromPatterns, resolveSearchRootsFromPatterns, } from '../utils.js';
|
|
5
|
+
const ESLINT_FILE_EXTENSIONS = [
|
|
6
|
+
'.js',
|
|
7
|
+
'.mjs',
|
|
8
|
+
'.cjs',
|
|
9
|
+
'.jsx',
|
|
10
|
+
'.ts',
|
|
11
|
+
'.tsx',
|
|
12
|
+
'.mts',
|
|
13
|
+
'.cts',
|
|
14
|
+
'.json',
|
|
15
|
+
];
|
|
16
|
+
const DEFAULT_ESLINT_SEARCH_ROOTS = ['./src', './scripts', './tests'];
|
|
17
|
+
function resolveESLintDetectionPatterns(eslintPatterns) {
|
|
18
|
+
if (eslintPatterns != null && eslintPatterns.length > 0) {
|
|
19
|
+
return [...eslintPatterns];
|
|
20
|
+
}
|
|
21
|
+
const resolvedConfig = resolveLintConfig();
|
|
22
|
+
const { tsconfigPaths, forceInclude } = resolvedConfig.domains.eslint;
|
|
23
|
+
if (tsconfigPaths.length === 0) {
|
|
24
|
+
return DEFAULT_ESLINT_SEARCH_ROOTS;
|
|
25
|
+
}
|
|
26
|
+
const { files } = buildPatterns(tsconfigPaths, forceInclude, process.cwd(), resolvedConfig.root);
|
|
27
|
+
if (files.length === 0) {
|
|
28
|
+
return DEFAULT_ESLINT_SEARCH_ROOTS;
|
|
29
|
+
}
|
|
30
|
+
return files;
|
|
31
|
+
}
|
|
32
|
+
class ESLintDomainPlugin extends LintDomainPluginBase {
|
|
33
|
+
domain = 'eslint';
|
|
34
|
+
description = 'Lint JavaScript/TypeScript/JSON files with ESLint.';
|
|
35
|
+
detect({ eslintPatterns, }) {
|
|
36
|
+
if (eslintPatterns != null && eslintPatterns.length > 0) {
|
|
37
|
+
const searchRoots = resolveSearchRootsFromPatterns(eslintPatterns);
|
|
38
|
+
return {
|
|
39
|
+
relevant: searchRoots.length > 0,
|
|
40
|
+
relevanceReason: searchRoots.length > 0
|
|
41
|
+
? undefined
|
|
42
|
+
: 'No ESLint-supported files matched in effective scope.',
|
|
43
|
+
available: true,
|
|
44
|
+
availabilityKind: 'required',
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
const detectionPatterns = resolveESLintDetectionPatterns(eslintPatterns);
|
|
48
|
+
const matchedFiles = resolveFilesFromPatterns(detectionPatterns, ESLINT_FILE_EXTENSIONS);
|
|
49
|
+
return {
|
|
50
|
+
relevant: matchedFiles.length > 0,
|
|
51
|
+
relevanceReason: matchedFiles.length > 0
|
|
52
|
+
? undefined
|
|
53
|
+
: 'No ESLint-supported files matched in effective scope.',
|
|
54
|
+
available: true,
|
|
55
|
+
availabilityKind: 'required',
|
|
56
|
+
matchedFiles,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
async run({ fix, logger, chosenConfig, isConfigValid, eslintPatterns, }) {
|
|
60
|
+
if (!isConfigValid) {
|
|
61
|
+
logger.error('Skipping ESLint due to invalid --eslint-config path.');
|
|
62
|
+
return { hadFailure: true };
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
const explicitPatterns = eslintPatterns != null && eslintPatterns.length > 0
|
|
66
|
+
? resolveFilesFromPatterns(eslintPatterns, ESLINT_FILE_EXTENSIONS)
|
|
67
|
+
: undefined;
|
|
68
|
+
const hadLintingErrors = await runESLint({
|
|
69
|
+
fix,
|
|
70
|
+
logger,
|
|
71
|
+
configPath: chosenConfig,
|
|
72
|
+
explicitGlobs: explicitPatterns,
|
|
73
|
+
});
|
|
74
|
+
return { hadFailure: hadLintingErrors };
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
const errorDetail = this.normalizeLogDetail(err);
|
|
78
|
+
logger.error(errorDetail.length > 0
|
|
79
|
+
? `ESLint failed. ${errorDetail}`
|
|
80
|
+
: 'ESLint failed.');
|
|
81
|
+
return { hadFailure: true };
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
export default ESLintDomainPlugin;
|
|
86
|
+
//# sourceMappingURL=ESLintDomainPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ESLintDomainPlugin.js","sourceRoot":"","sources":["../../src/eslint/ESLintDomainPlugin.ts"],"names":[],"mappings":"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"}
|