@trebired/code-discipline 1.2.0 → 1.4.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/CHANGELOG.md +14 -0
- package/README.md +127 -86
- package/dist/checks/fix-folderization.d.ts +2 -1
- package/dist/checks/fix-folderization.d.ts.map +1 -1
- package/dist/checks/fix-folderization.js +16 -12
- package/dist/checks/fix-folderization.js.map +1 -1
- package/dist/checks/index.d.ts +1 -2
- package/dist/checks/index.d.ts.map +1 -1
- package/dist/checks/index.js +43 -20
- package/dist/checks/index.js.map +1 -1
- package/dist/checks/rules/folderize-compound-files.d.ts +2 -1
- package/dist/checks/rules/folderize-compound-files.d.ts.map +1 -1
- package/dist/checks/rules/folderize-compound-files.js +3 -1
- package/dist/checks/rules/folderize-compound-files.js.map +1 -1
- package/dist/checks/rules/folderize-plan.js +1 -1
- package/dist/checks/rules/folderize-plan.js.map +1 -1
- package/dist/checks/rules/max-file-lines.d.ts +2 -1
- package/dist/checks/rules/max-file-lines.d.ts.map +1 -1
- package/dist/checks/rules/max-file-lines.js +3 -3
- package/dist/checks/rules/max-file-lines.js.map +1 -1
- package/dist/checks/types.d.ts +17 -38
- package/dist/checks/types.d.ts.map +1 -1
- package/dist/cli/run-cli.d.ts.map +1 -1
- package/dist/cli/run-cli.js +27 -36
- package/dist/cli/run-cli.js.map +1 -1
- package/dist/config/index.d.ts +3 -3
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +14 -35
- package/dist/config/index.js.map +1 -1
- package/dist/config/normalize-rule-options.d.ts +5 -8
- package/dist/config/normalize-rule-options.d.ts.map +1 -1
- package/dist/config/normalize-rule-options.js +24 -23
- package/dist/config/normalize-rule-options.js.map +1 -1
- package/dist/config/normalize-sync-imports-options.d.ts.map +1 -1
- package/dist/config/normalize-sync-imports-options.js +13 -4
- package/dist/config/normalize-sync-imports-options.js.map +1 -1
- package/dist/imports/check-sync-imports.d.ts +1 -1
- package/dist/imports/check-sync-imports.d.ts.map +1 -1
- package/dist/imports/check-sync-imports.js +2 -4
- package/dist/imports/check-sync-imports.js.map +1 -1
- package/dist/imports/sync-imports.d.ts.map +1 -1
- package/dist/imports/sync-imports.js +26 -20
- package/dist/imports/sync-imports.js.map +1 -1
- package/dist/imports/types.d.ts +6 -4
- package/dist/imports/types.d.ts.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/run.d.ts +48 -0
- package/dist/run.d.ts.map +1 -0
- package/dist/run.js +105 -0
- package/dist/run.js.map +1 -0
- package/dist/shared/constants.d.ts +2 -3
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +2 -3
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/discipline-types.d.ts +19 -0
- package/dist/shared/discipline-types.d.ts.map +1 -0
- package/dist/shared/discipline-types.js +2 -0
- package/dist/shared/discipline-types.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `@trebired/code-discipline` will be documented here.
|
|
4
4
|
|
|
5
|
+
## 1.4.0
|
|
6
|
+
|
|
7
|
+
- Added `codeDiscipline({ mode, ... })` as the package-owned runtime dispatcher for `check`, `fix`, `sync`, and startup-style sync usage.
|
|
8
|
+
- Added `createCodeDiscipline(config)` so consuming apps can bind repo config once and call `.check()`, `.fix()`, `.sync()`, or `.startup()`.
|
|
9
|
+
- Refactored the package CLI to use the shared runtime dispatcher instead of maintaining separate command routing logic.
|
|
10
|
+
- Updated the README and tests around the simpler logger-style consumption path.
|
|
11
|
+
|
|
12
|
+
## 1.3.0
|
|
13
|
+
|
|
14
|
+
- Replaced rule-level `stop` with severity-based discipline results using `severity: "error" | "warning"`.
|
|
15
|
+
- Removed legacy `stop` and per-rule `enabled` config support; rule presence now enables the rule.
|
|
16
|
+
- Removed JSON config auto-discovery and changed the CLI to require an explicit `--config` module path.
|
|
17
|
+
- Changed `syncImports()` to return severity-aware `errors`, `warnings`, and `violations` alongside its operational mutation summary.
|
|
18
|
+
|
|
5
19
|
## 1.2.0
|
|
6
20
|
|
|
7
21
|
- Changed package logging to emit `@trebired/code-discipline initialized` on startup through the `code-discipline.initialize` group.
|
package/README.md
CHANGED
|
@@ -19,16 +19,16 @@ Some repository rules are not really single-file lint rules. They are about the
|
|
|
19
19
|
- files growing too large
|
|
20
20
|
- compound filenames that want to become folders
|
|
21
21
|
- alias drift between `tsconfig.json` and source imports
|
|
22
|
-
-
|
|
22
|
+
- returning structured policy results that a caller can interpret
|
|
23
23
|
|
|
24
24
|
That is the lane of this package.
|
|
25
25
|
|
|
26
26
|
## Commands
|
|
27
27
|
|
|
28
28
|
```sh
|
|
29
|
-
code-discipline check
|
|
30
|
-
code-discipline sync
|
|
31
|
-
code-discipline fix
|
|
29
|
+
code-discipline check --config ./discipline.config.mjs
|
|
30
|
+
code-discipline sync --config ./discipline.config.mjs
|
|
31
|
+
code-discipline fix --config ./discipline.config.mjs
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
Command responsibilities stay clean:
|
|
@@ -39,74 +39,108 @@ Command responsibilities stay clean:
|
|
|
39
39
|
|
|
40
40
|
Both `sync` and `fix` are gated by rule config. They do not mutate anything unless their rule has `fix: true`.
|
|
41
41
|
|
|
42
|
-
##
|
|
43
|
-
|
|
44
|
-
Every rule uses the same control model:
|
|
42
|
+
## Simple Runtime API
|
|
45
43
|
|
|
46
|
-
|
|
47
|
-
enabled
|
|
48
|
-
= whether the rule runs
|
|
44
|
+
For app startup or scripts, you can now use one package-owned entrypoint instead of hand-rolling mode dispatch in app code.
|
|
49
45
|
|
|
50
|
-
|
|
51
|
-
|
|
46
|
+
```ts
|
|
47
|
+
import { codeDiscipline } from "@trebired/code-discipline";
|
|
52
48
|
|
|
53
|
-
|
|
54
|
-
|
|
49
|
+
const result = await codeDiscipline({
|
|
50
|
+
mode: "check",
|
|
51
|
+
projectRoot: process.cwd(),
|
|
52
|
+
rules: {
|
|
53
|
+
maxFileLines: {
|
|
54
|
+
severity: "warning",
|
|
55
|
+
max: 500,
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
});
|
|
55
59
|
```
|
|
56
60
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
```
|
|
60
|
-
{
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
"maxFileLines": {
|
|
75
|
-
"enabled": true,
|
|
76
|
-
"stop": true,
|
|
77
|
-
"max": 500
|
|
78
|
-
},
|
|
79
|
-
"folderizeCompoundFiles": {
|
|
80
|
-
"enabled": true,
|
|
81
|
-
"stop": true,
|
|
82
|
-
"fix": false,
|
|
83
|
-
"separators": [
|
|
84
|
-
"_",
|
|
85
|
-
"-"
|
|
86
|
-
]
|
|
61
|
+
`mode: "startup"` is a convenience alias for sync-oriented startup flows:
|
|
62
|
+
|
|
63
|
+
```ts
|
|
64
|
+
import { codeDiscipline } from "@trebired/code-discipline";
|
|
65
|
+
|
|
66
|
+
await codeDiscipline({
|
|
67
|
+
mode: "startup",
|
|
68
|
+
projectRoot: PROJECT_ROOT,
|
|
69
|
+
logger,
|
|
70
|
+
rules: {
|
|
71
|
+
syncImports: {
|
|
72
|
+
severity: "error",
|
|
73
|
+
fix: true,
|
|
74
|
+
alias: {
|
|
75
|
+
strategy: "relative-path-slug",
|
|
76
|
+
},
|
|
77
|
+
allowRelative: ["./"],
|
|
87
78
|
},
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
If you want to define repo rules once and reuse them, create a bound helper:
|
|
84
|
+
|
|
85
|
+
```ts
|
|
86
|
+
import { createCodeDiscipline } from "@trebired/code-discipline";
|
|
87
|
+
|
|
88
|
+
const discipline = createCodeDiscipline({
|
|
89
|
+
sourceRoot: "src",
|
|
90
|
+
rules: {
|
|
91
|
+
syncImports: {
|
|
92
|
+
severity: "error",
|
|
93
|
+
fix: true,
|
|
94
|
+
alias: {
|
|
95
|
+
strategy: "relative-path-slug",
|
|
94
96
|
},
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}
|
|
97
|
+
allowRelative: ["./"],
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
await discipline.startup({ projectRoot: PROJECT_ROOT, logger });
|
|
103
|
+
process.exitCode = (await discipline.check({ projectRoot: process.cwd() })).ok ? 0 : 1;
|
|
101
104
|
```
|
|
102
105
|
|
|
103
|
-
|
|
106
|
+
## Config
|
|
104
107
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
108
|
+
Rules are enabled by presence. If a rule object exists under `rules`, it runs. If the rule is omitted, it is disabled.
|
|
109
|
+
|
|
110
|
+
`severity` is discipline metadata, not a logger level and not process control. The library never calls `process.exit()` from core APIs. Callers decide what to do with `ok`, `errors`, and `warnings`.
|
|
111
|
+
|
|
112
|
+
Example config module:
|
|
113
|
+
|
|
114
|
+
```js
|
|
115
|
+
export default {
|
|
116
|
+
sourceRoot: "src",
|
|
117
|
+
sourceExtensions: [".ts", ".tsx", ".js", ".jsx"],
|
|
118
|
+
excludeDirs: ["node_modules", "dist", ".vite"],
|
|
119
|
+
logging: {
|
|
120
|
+
enabled: true,
|
|
121
|
+
quiet: false,
|
|
122
|
+
},
|
|
123
|
+
rules: {
|
|
124
|
+
maxFileLines: {
|
|
125
|
+
severity: "warning",
|
|
126
|
+
max: 500,
|
|
127
|
+
},
|
|
128
|
+
folderizeCompoundFiles: {
|
|
129
|
+
severity: "error",
|
|
130
|
+
fix: true,
|
|
131
|
+
separators: ["_", "-"],
|
|
132
|
+
},
|
|
133
|
+
syncImports: {
|
|
134
|
+
severity: "error",
|
|
135
|
+
fix: true,
|
|
136
|
+
alias: {
|
|
137
|
+
strategy: "relative-path-slug",
|
|
138
|
+
},
|
|
139
|
+
allowRelative: ["./"],
|
|
140
|
+
},
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
```
|
|
110
144
|
|
|
111
145
|
## Checks
|
|
112
146
|
|
|
@@ -119,18 +153,15 @@ const result = await checkCodeDiscipline({
|
|
|
119
153
|
projectRoot: "/repo",
|
|
120
154
|
rules: {
|
|
121
155
|
maxFileLines: {
|
|
122
|
-
|
|
123
|
-
stop: true,
|
|
156
|
+
severity: "warning",
|
|
124
157
|
max: 500,
|
|
125
158
|
},
|
|
126
159
|
folderizeCompoundFiles: {
|
|
127
|
-
|
|
128
|
-
stop: false,
|
|
160
|
+
severity: "error",
|
|
129
161
|
separators: ["_", "-"],
|
|
130
162
|
},
|
|
131
163
|
syncImports: {
|
|
132
|
-
|
|
133
|
-
stop: true,
|
|
164
|
+
severity: "error",
|
|
134
165
|
fix: false,
|
|
135
166
|
alias: {
|
|
136
167
|
strategy: "relative-path-slug",
|
|
@@ -144,25 +175,31 @@ const result = await checkCodeDiscipline({
|
|
|
144
175
|
Result shape:
|
|
145
176
|
|
|
146
177
|
```ts
|
|
147
|
-
|
|
178
|
+
type CodeDisciplineSeverity = "error" | "warning";
|
|
179
|
+
|
|
180
|
+
type CodeDisciplineViolation = {
|
|
181
|
+
rule: "max-file-lines" | "folderize-compound-files" | "sync-imports";
|
|
182
|
+
severity: CodeDisciplineSeverity;
|
|
183
|
+
fix: boolean;
|
|
184
|
+
filePath: string;
|
|
185
|
+
message: string;
|
|
186
|
+
details: Record<string, unknown>;
|
|
187
|
+
suggestedPath?: string;
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
type CodeDisciplineResult = {
|
|
148
191
|
ok: boolean;
|
|
192
|
+
errors: number;
|
|
149
193
|
warnings: number;
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
rule: "max-file-lines" | "folderize-compound-files" | "sync-imports";
|
|
153
|
-
stop: boolean;
|
|
154
|
-
fix: boolean;
|
|
155
|
-
filePath: string;
|
|
156
|
-
message: string;
|
|
157
|
-
details: Record<string, unknown>;
|
|
158
|
-
suggestedPath?: string;
|
|
159
|
-
}>;
|
|
160
|
-
}
|
|
194
|
+
violations: CodeDisciplineViolation[];
|
|
195
|
+
};
|
|
161
196
|
```
|
|
162
197
|
|
|
198
|
+
`ok` becomes `false` only when at least one returned violation has `severity: "error"`.
|
|
199
|
+
|
|
163
200
|
## Folderization
|
|
164
201
|
|
|
165
|
-
`folderizeCompoundFiles` is structural. It
|
|
202
|
+
`folderizeCompoundFiles` is structural. It does not depend on configured suffix lists.
|
|
166
203
|
|
|
167
204
|
Same-directory groups:
|
|
168
205
|
|
|
@@ -198,13 +235,14 @@ src/api/user/route.ts
|
|
|
198
235
|
|
|
199
236
|
## Import Sync
|
|
200
237
|
|
|
201
|
-
`syncImports()` and `code-discipline sync` use
|
|
238
|
+
`syncImports()` and `code-discipline sync` use the same severity-aware config shape.
|
|
202
239
|
|
|
203
240
|
```ts
|
|
204
241
|
import { syncImports } from "@trebired/code-discipline";
|
|
205
242
|
|
|
206
243
|
const result = await syncImports({
|
|
207
244
|
projectRoot: "/repo",
|
|
245
|
+
severity: "error",
|
|
208
246
|
fix: true,
|
|
209
247
|
alias: {
|
|
210
248
|
strategy: "relative-path-slug",
|
|
@@ -215,11 +253,13 @@ const result = await syncImports({
|
|
|
215
253
|
|
|
216
254
|
Behavior:
|
|
217
255
|
|
|
218
|
-
- `
|
|
219
|
-
- `
|
|
256
|
+
- `fix: false` reports alias/import drift as violations
|
|
257
|
+
- `fix: true` rewrites imports and updates `tsconfig.json`
|
|
220
258
|
- `allowRelative: ["./"]` keeps same-folder relative imports
|
|
221
259
|
- upward relative imports can be reported or rewritten through the configured alias policy
|
|
222
260
|
|
|
261
|
+
`syncImports()` keeps its operational result fields and also returns `errors`, `warnings`, and `violations`.
|
|
262
|
+
|
|
223
263
|
## Logging
|
|
224
264
|
|
|
225
265
|
When you provide a logger, discipline results are emitted through it. Trebired-style loggers are supported directly, and the package falls back safely when no logger is provided.
|
|
@@ -228,10 +268,11 @@ The default/common logger adaptation path is powered by `@trebired/logger-adapte
|
|
|
228
268
|
|
|
229
269
|
## Public API
|
|
230
270
|
|
|
271
|
+
- `codeDiscipline()`
|
|
272
|
+
- `createCodeDiscipline()`
|
|
231
273
|
- `checkCodeDiscipline()`
|
|
232
274
|
- `fixCodeDiscipline()`
|
|
233
275
|
- `syncImports()`
|
|
234
276
|
- `defineCodeDisciplineConfig()`
|
|
235
|
-
- `loadCodeDisciplineConfig()`
|
|
236
277
|
|
|
237
|
-
The package also exports the public TypeScript types for rule config, results, violations, alias strategies, logging adapters, and source scan rows.
|
|
278
|
+
The package also exports the public TypeScript types for severity, rule config, results, violations, alias strategies, logging adapters, and source scan rows.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { FixCodeDisciplineResult, NormalizedCheckCodeDisciplineOptions } from "./types.js";
|
|
2
2
|
import type { ScannedSourceFile } from "../imports/types.js";
|
|
3
3
|
import type { NormalizedCodeDisciplineLogger } from "../shared/logging-types.js";
|
|
4
|
+
import type { CodeDisciplineViolation } from "../shared/discipline-types.js";
|
|
4
5
|
type PlannedMove = {
|
|
5
6
|
fromAbsolutePath: string;
|
|
6
7
|
fromRelativePath: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fix-folderization.d.ts","sourceRoot":"","sources":["../../src/checks/fix-folderization.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,uBAAuB,EACvB,
|
|
1
|
+
{"version":3,"file":"fix-folderization.d.ts","sourceRoot":"","sources":["../../src/checks/fix-folderization.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,uBAAuB,EACvB,oCAAoC,EACrC,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAO7E,KAAK,WAAW,GAAG;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,iBAAS,4BAA4B,CACnC,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,oCAAoC,EAC7C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,uBAAuB,CAUzB;AAED,iBAAS,aAAa,CACpB,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,oCAAoC,GAC5C;IAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAAC,UAAU,EAAE,uBAAuB,EAAE,CAAA;CAAE,CAqBjE;AAsKD,iBAAe,gBAAgB,CAC7B,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,oCAAoC,EAC7C,MAAM,EAAE,8BAA8B,GACrC,OAAO,CAAC,uBAAuB,CAAC,CA6ElC;AAED,OAAO,EAAE,aAAa,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -8,8 +8,8 @@ import { planFolderizeCompoundFiles } from "./rules/folderize-plan.js";
|
|
|
8
8
|
function createFolderizationViolation(filePath, suggestedPath, options, details) {
|
|
9
9
|
return {
|
|
10
10
|
rule: "folderize-compound-files",
|
|
11
|
-
|
|
12
|
-
fix: options.rules.folderizeCompoundFiles
|
|
11
|
+
severity: options.rules.folderizeCompoundFiles?.severity ?? "error",
|
|
12
|
+
fix: options.rules.folderizeCompoundFiles?.fix ?? false,
|
|
13
13
|
filePath,
|
|
14
14
|
message: `file can be grouped under ${suggestedPath}`,
|
|
15
15
|
suggestedPath,
|
|
@@ -156,33 +156,37 @@ async function removeEmptyDirectories(directories) {
|
|
|
156
156
|
}
|
|
157
157
|
async function fixFolderization(sourceFiles, options, logger) {
|
|
158
158
|
const { moves, violations } = buildMovePlan(sourceFiles, options);
|
|
159
|
-
const warnings = violations.filter((violation) =>
|
|
160
|
-
const
|
|
161
|
-
if (!options.rules.folderizeCompoundFiles
|
|
159
|
+
const warnings = violations.filter((violation) => violation.severity === "warning").length;
|
|
160
|
+
const errors = violations.length - warnings;
|
|
161
|
+
if (!options.rules.folderizeCompoundFiles || moves.length === 0) {
|
|
162
162
|
logger.info("fix-folderization-unchanged", "no folderization moves required", {
|
|
163
163
|
moves: 0,
|
|
164
164
|
});
|
|
165
165
|
return {
|
|
166
166
|
ok: true,
|
|
167
|
+
errors: 0,
|
|
167
168
|
moved_files: 0,
|
|
168
169
|
rewritten_files: 0,
|
|
169
170
|
rewritten_imports: 0,
|
|
170
171
|
warnings,
|
|
171
|
-
|
|
172
|
-
violations,
|
|
172
|
+
violations: [],
|
|
173
173
|
};
|
|
174
174
|
}
|
|
175
175
|
if (!options.rules.folderizeCompoundFiles.fix) {
|
|
176
176
|
logger.warn("fix-folderization-disabled", "folderization fix is disabled", {
|
|
177
177
|
candidates: moves.length,
|
|
178
|
+
discipline: {
|
|
179
|
+
errors,
|
|
180
|
+
warnings,
|
|
181
|
+
},
|
|
178
182
|
});
|
|
179
183
|
return {
|
|
180
|
-
ok:
|
|
184
|
+
ok: errors === 0,
|
|
185
|
+
errors,
|
|
181
186
|
moved_files: 0,
|
|
182
187
|
rewritten_files: 0,
|
|
183
188
|
rewritten_imports: 0,
|
|
184
189
|
warnings,
|
|
185
|
-
failures,
|
|
186
190
|
violations,
|
|
187
191
|
};
|
|
188
192
|
}
|
|
@@ -202,12 +206,12 @@ async function fixFolderization(sourceFiles, options, logger) {
|
|
|
202
206
|
});
|
|
203
207
|
return {
|
|
204
208
|
ok: true,
|
|
209
|
+
errors: 0,
|
|
205
210
|
moved_files: movedFiles,
|
|
206
211
|
rewritten_files: rewriteState.rewrittenFiles,
|
|
207
212
|
rewritten_imports: rewriteState.rewrittenImports,
|
|
208
|
-
warnings,
|
|
209
|
-
|
|
210
|
-
violations,
|
|
213
|
+
warnings: 0,
|
|
214
|
+
violations: [],
|
|
211
215
|
};
|
|
212
216
|
}
|
|
213
217
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fix-folderization.js","sourceRoot":"","sources":["../../src/checks/fix-folderization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAS7B,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AACjG,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtG,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AASvE,SAAS,4BAA4B,CACnC,QAAgB,EAChB,aAAqB,EACrB,OAA6C,EAC7C,OAAgC;IAEhC,OAAO;QACL,IAAI,EAAE,0BAA0B;QAChC,
|
|
1
|
+
{"version":3,"file":"fix-folderization.js","sourceRoot":"","sources":["../../src/checks/fix-folderization.ts"],"names":[],"mappings":"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"}
|
package/dist/checks/index.d.ts
CHANGED
|
@@ -6,8 +6,7 @@ declare function buildNormalizedSyncOptions(options: NormalizedCheckCodeDiscipli
|
|
|
6
6
|
sourceExtensions: string[];
|
|
7
7
|
excludeDirs: string[];
|
|
8
8
|
tsconfigPath: string;
|
|
9
|
-
|
|
10
|
-
stop: boolean;
|
|
9
|
+
severity: import("../index.js").CodeDisciplineSeverity;
|
|
11
10
|
fix: boolean;
|
|
12
11
|
alias: {
|
|
13
12
|
prefix: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/checks/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/checks/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,oCAAoC,EACrC,MAAM,YAAY,CAAC;AAEpB,iBAAS,0BAA0B,CAAC,OAAO,EAAE,oCAAoC;;;;;;;;;;;;;;;;EAoBhF;AAgFD,iBAAe,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAQ1G;AAED,iBAAe,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAuBpG;AAED,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,CAAC"}
|
package/dist/checks/index.js
CHANGED
|
@@ -6,6 +6,8 @@ import { fixFolderization } from "./fix-folderization.js";
|
|
|
6
6
|
import { runFolderizeCompoundFilesRule } from "./rules/folderize-compound-files.js";
|
|
7
7
|
import { runMaxFileLinesRule } from "./rules/max-file-lines.js";
|
|
8
8
|
function buildNormalizedSyncOptions(options) {
|
|
9
|
+
if (!options.rules.syncImports)
|
|
10
|
+
return null;
|
|
9
11
|
return {
|
|
10
12
|
projectRoot: options.projectRoot,
|
|
11
13
|
sourceRoot: options.sourceRoot,
|
|
@@ -13,8 +15,7 @@ function buildNormalizedSyncOptions(options) {
|
|
|
13
15
|
sourceExtensions: options.sourceExtensions,
|
|
14
16
|
excludeDirs: options.excludeDirs,
|
|
15
17
|
tsconfigPath: options.rules.syncImports.tsconfigPath ?? `${options.projectRoot}/tsconfig.json`,
|
|
16
|
-
|
|
17
|
-
stop: options.rules.syncImports.stop ?? true,
|
|
18
|
+
severity: options.rules.syncImports.severity ?? "error",
|
|
18
19
|
fix: options.rules.syncImports.fix ?? false,
|
|
19
20
|
alias: {
|
|
20
21
|
prefix: options.rules.syncImports.alias?.prefix ?? "#",
|
|
@@ -29,42 +30,62 @@ function sortViolations(violations) {
|
|
|
29
30
|
return [...violations].sort((left, right) => left.filePath.localeCompare(right.filePath) || left.rule.localeCompare(right.rule));
|
|
30
31
|
}
|
|
31
32
|
function summarizeViolations(violations) {
|
|
32
|
-
const warnings = violations.filter((violation) =>
|
|
33
|
-
const
|
|
33
|
+
const warnings = violations.filter((violation) => violation.severity === "warning").length;
|
|
34
|
+
const errors = violations.length - warnings;
|
|
34
35
|
return {
|
|
35
|
-
ok:
|
|
36
|
+
ok: errors === 0,
|
|
37
|
+
errors,
|
|
36
38
|
warnings,
|
|
37
|
-
|
|
39
|
+
violations,
|
|
38
40
|
};
|
|
39
41
|
}
|
|
40
42
|
function logSummary(label, result, logger) {
|
|
41
|
-
if (result.
|
|
42
|
-
logger.flush(
|
|
43
|
+
if (result.errors > 0) {
|
|
44
|
+
logger.flush("error", `discipline-${label}-failed`, `${label} completed with error violations`, {
|
|
45
|
+
discipline: {
|
|
46
|
+
errors: result.errors,
|
|
47
|
+
warnings: result.warnings,
|
|
48
|
+
},
|
|
49
|
+
errors: result.errors,
|
|
43
50
|
warnings: result.warnings,
|
|
44
|
-
failures: result.failures,
|
|
45
51
|
violations: result.violations,
|
|
46
52
|
});
|
|
47
53
|
return;
|
|
48
54
|
}
|
|
49
55
|
if (result.warnings > 0) {
|
|
50
|
-
logger.flush(
|
|
56
|
+
logger.flush("warn", `discipline-${label}-warning`, `${label} completed with warning violations`, {
|
|
57
|
+
discipline: {
|
|
58
|
+
errors: result.errors,
|
|
59
|
+
warnings: result.warnings,
|
|
60
|
+
},
|
|
61
|
+
errors: result.errors,
|
|
51
62
|
warnings: result.warnings,
|
|
52
|
-
failures: result.failures,
|
|
53
63
|
violations: result.violations,
|
|
54
64
|
});
|
|
55
65
|
return;
|
|
56
66
|
}
|
|
57
67
|
logger.flush(`success`, `discipline-${label}-ok`, `${label} completed`, {
|
|
68
|
+
discipline: {
|
|
69
|
+
errors: result.errors,
|
|
70
|
+
warnings: result.warnings,
|
|
71
|
+
},
|
|
72
|
+
errors: result.errors,
|
|
58
73
|
warnings: result.warnings,
|
|
59
|
-
failures: result.failures,
|
|
60
74
|
violations: result.violations,
|
|
61
75
|
});
|
|
62
76
|
}
|
|
63
77
|
async function collectViolations(options) {
|
|
64
78
|
const sourceFiles = await scanSourceFiles(options);
|
|
65
|
-
const maxFileViolations =
|
|
66
|
-
|
|
67
|
-
|
|
79
|
+
const maxFileViolations = options.rules.maxFileLines
|
|
80
|
+
? await runMaxFileLinesRule(sourceFiles, options)
|
|
81
|
+
: [];
|
|
82
|
+
const folderizeViolations = options.rules.folderizeCompoundFiles
|
|
83
|
+
? runFolderizeCompoundFilesRule(sourceFiles, options)
|
|
84
|
+
: [];
|
|
85
|
+
const normalizedSyncOptions = buildNormalizedSyncOptions(options);
|
|
86
|
+
const syncImportViolations = normalizedSyncOptions
|
|
87
|
+
? await collectSyncImportViolations(sourceFiles, normalizedSyncOptions)
|
|
88
|
+
: [];
|
|
68
89
|
return sortViolations([
|
|
69
90
|
...maxFileViolations,
|
|
70
91
|
...folderizeViolations,
|
|
@@ -75,11 +96,7 @@ async function checkCodeDiscipline(options) {
|
|
|
75
96
|
const normalized = await normalizeCheckCodeDisciplineOptions(options);
|
|
76
97
|
const logger = resolveLogger(normalized.logging);
|
|
77
98
|
const violations = await collectViolations(normalized);
|
|
78
|
-
const
|
|
79
|
-
const result = {
|
|
80
|
-
...summary,
|
|
81
|
-
violations,
|
|
82
|
-
};
|
|
99
|
+
const result = summarizeViolations(violations);
|
|
83
100
|
logSummary("check", result, logger);
|
|
84
101
|
return result;
|
|
85
102
|
}
|
|
@@ -93,6 +110,12 @@ async function fixCodeDiscipline(options) {
|
|
|
93
110
|
}
|
|
94
111
|
else {
|
|
95
112
|
logger.flush("success", "discipline-fix-ok", "fix completed", {
|
|
113
|
+
discipline: {
|
|
114
|
+
errors: result.errors,
|
|
115
|
+
warnings: result.warnings,
|
|
116
|
+
},
|
|
117
|
+
errors: result.errors,
|
|
118
|
+
warnings: result.warnings,
|
|
96
119
|
movedFiles: result.moved_files,
|
|
97
120
|
rewrittenFiles: result.rewritten_files,
|
|
98
121
|
rewrittenImports: result.rewritten_imports,
|
package/dist/checks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/checks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mCAAmC,EAAE,MAAM,sCAAsC,CAAC;AAC3F,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/checks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mCAAmC,EAAE,MAAM,sCAAsC,CAAC;AAC3F,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAShE,SAAS,0BAA0B,CAAC,OAA6C;IAC/E,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE5C,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,IAAI,GAAG,OAAO,CAAC,WAAW,gBAAgB;QAC9F,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,IAAI,OAAO;QACvD,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,KAAK;QAC3C,KAAK,EAAE;YACL,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,IAAI,GAAG;YACtD,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,IAAI,QAAQ;YAC/D,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,IAAI,EAAE;SAClE;QACD,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC;QAChE,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,UAAqC;IAC3D,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACnI,CAAC;AAED,SAAS,mBAAmB,CAAC,UAAqC;IAChE,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IAC3F,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC;IAE5C,OAAO;QACL,EAAE,EAAE,MAAM,KAAK,CAAC;QAChB,MAAM;QACN,QAAQ;QACR,UAAU;KACX,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CACjB,KAAsB,EACtB,MAA2D,EAC3D,MAAwC;IAExC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,KAAK,SAAS,EAAE,GAAG,KAAK,kCAAkC,EAAE;YAC9F,UAAU,EAAE;gBACV,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B;YACD,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,cAAc,KAAK,UAAU,EAAE,GAAG,KAAK,oCAAoC,EAAE;YAChG,UAAU,EAAE;gBACV,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B;YACD,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,cAAc,KAAK,KAAK,EAAE,GAAG,KAAK,YAAY,EAAE;QACtE,UAAU,EAAE;YACV,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B;QACD,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,OAA6C;IAC5E,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY;QAClD,CAAC,CAAC,MAAM,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC;QACjD,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,mBAAmB,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB;QAC9D,CAAC,CAAC,6BAA6B,CAAC,WAAW,EAAE,OAAO,CAAC;QACrD,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,qBAAqB,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAClE,MAAM,oBAAoB,GAAG,qBAAqB;QAChD,CAAC,CAAC,MAAM,2BAA2B,CAAC,WAAW,EAAE,qBAAqB,CAAC;QACvE,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,cAAc,CAAC;QACpB,GAAG,iBAAiB;QACpB,GAAG,mBAAmB;QACtB,GAAG,oBAAoB;KACxB,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,OAAmC;IACpE,MAAM,UAAU,GAAG,MAAM,mCAAmC,CAAC,OAAO,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,MAAM,GAA8B,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAE1E,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,OAAiC;IAChE,MAAM,UAAU,GAAG,MAAM,mCAAmC,CAAC,OAAO,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAEvE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/C,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,mBAAmB,EAAE,eAAe,EAAE;YAC5D,UAAU,EAAE;gBACV,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B;YACD,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,MAAM,CAAC,WAAW;YAC9B,cAAc,EAAE,MAAM,CAAC,eAAe;YACtC,gBAAgB,EAAE,MAAM,CAAC,iBAAiB;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { NormalizedCheckCodeDisciplineOptions } from "../types.js";
|
|
2
2
|
import type { ScannedSourceFile } from "../../imports/types.js";
|
|
3
|
+
import type { CodeDisciplineViolation } from "../../shared/discipline-types.js";
|
|
3
4
|
declare function runFolderizeCompoundFilesRule(sourceFiles: ScannedSourceFile[], options: NormalizedCheckCodeDisciplineOptions): CodeDisciplineViolation[];
|
|
4
5
|
export { runFolderizeCompoundFilesRule };
|
|
5
6
|
//# sourceMappingURL=folderize-compound-files.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"folderize-compound-files.d.ts","sourceRoot":"","sources":["../../../src/checks/rules/folderize-compound-files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"folderize-compound-files.d.ts","sourceRoot":"","sources":["../../../src/checks/rules/folderize-compound-files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAGhF,iBAAS,6BAA6B,CACpC,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,oCAAoC,GAC5C,uBAAuB,EAAE,CAiB3B;AAED,OAAO,EAAE,6BAA6B,EAAE,CAAC"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { planFolderizeCompoundFiles } from "./folderize-plan.js";
|
|
2
2
|
function runFolderizeCompoundFilesRule(sourceFiles, options) {
|
|
3
|
+
if (!options.rules.folderizeCompoundFiles)
|
|
4
|
+
return [];
|
|
3
5
|
return planFolderizeCompoundFiles(sourceFiles, options).map((candidate) => ({
|
|
4
6
|
rule: "folderize-compound-files",
|
|
5
|
-
|
|
7
|
+
severity: options.rules.folderizeCompoundFiles.severity,
|
|
6
8
|
fix: options.rules.folderizeCompoundFiles.fix,
|
|
7
9
|
filePath: candidate.relativeFromProjectRoot,
|
|
8
10
|
message: `file can be grouped under ${candidate.suggestedPath}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"folderize-compound-files.js","sourceRoot":"","sources":["../../../src/checks/rules/folderize-compound-files.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"folderize-compound-files.js","sourceRoot":"","sources":["../../../src/checks/rules/folderize-compound-files.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAEjE,SAAS,6BAA6B,CACpC,WAAgC,EAChC,OAA6C;IAE7C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB;QAAE,OAAO,EAAE,CAAC;IAErD,OAAO,0BAA0B,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC1E,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,QAAQ;QACvD,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,GAAG;QAC7C,QAAQ,EAAE,SAAS,CAAC,uBAAuB;QAC3C,OAAO,EAAE,6BAA6B,SAAS,CAAC,aAAa,EAAE;QAC/D,aAAa,EAAE,SAAS,CAAC,aAAa;QACtC,OAAO,EAAE;YACP,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;SAC/B;KACF,CAAC,CAAC,CAAC;AACN,CAAC;AAED,OAAO,EAAE,6BAA6B,EAAE,CAAC"}
|