podlite 0.0.78 → 0.0.80
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.podlite +40 -0
- package/esm/cli.js +100 -18
- package/esm/cli.js.map +1 -1
- package/esm/lint/config.d.ts +8 -0
- package/esm/lint/config.js +101 -0
- package/esm/lint/config.js.map +1 -0
- package/esm/lint/engine.js +3 -1
- package/esm/lint/engine.js.map +1 -1
- package/esm/lint/formatters/text.d.ts +1 -0
- package/esm/lint/formatters/text.js +3 -1
- package/esm/lint/formatters/text.js.map +1 -1
- package/esm/lint/grammar/lint.js +7 -4
- package/esm/lint/grammar/lint.js.map +1 -1
- package/esm/lint/grammar/scan.d.ts +1 -1
- package/esm/lint/grammar/scan.js +20 -3
- package/esm/lint/grammar/scan.js.map +1 -1
- package/esm/lint/index.d.ts +11 -0
- package/esm/lint/index.js +47 -18
- package/esm/lint/index.js.map +1 -1
- package/esm/lint/mute.d.ts +17 -0
- package/esm/lint/mute.js +75 -0
- package/esm/lint/mute.js.map +1 -0
- package/esm/lint/parallel.d.ts +4 -0
- package/esm/lint/parallel.js +57 -0
- package/esm/lint/parallel.js.map +1 -0
- package/esm/lint/rules/abbreviated-attrs.d.ts +4 -0
- package/esm/lint/rules/abbreviated-attrs.js +67 -0
- package/esm/lint/rules/abbreviated-attrs.js.map +1 -0
- package/esm/lint/rules/attr-value-dropped.js +3 -2
- package/esm/lint/rules/attr-value-dropped.js.map +1 -1
- package/esm/lint/rules/dead-definitions.d.ts +3 -0
- package/esm/lint/rules/dead-definitions.js +80 -0
- package/esm/lint/rules/dead-definitions.js.map +1 -0
- package/esm/lint/rules/index.js +4 -0
- package/esm/lint/rules/index.js.map +1 -1
- package/esm/lint/rules/markdown-in-pod.d.ts +4 -0
- package/esm/lint/rules/markdown-in-pod.js +67 -0
- package/esm/lint/rules/markdown-in-pod.js.map +1 -0
- package/esm/lint/rules/table-column-width.d.ts +4 -0
- package/esm/lint/rules/table-column-width.js +110 -0
- package/esm/lint/rules/table-column-width.js.map +1 -0
- package/esm/lint/rules/table-shape.d.ts +3 -0
- package/esm/lint/rules/table-shape.js +15 -0
- package/esm/lint/rules/table-shape.js.map +1 -0
- package/esm/lint/types.d.ts +5 -1
- package/esm/lint/worker.d.ts +5 -0
- package/esm/lint/worker.js +15 -0
- package/esm/lint/worker.js.map +1 -0
- package/esm/query.js +4 -1
- package/esm/query.js.map +1 -1
- package/esm/resolve-includes.js +56 -7
- package/esm/resolve-includes.js.map +1 -1
- package/esm/version.d.ts +1 -1
- package/esm/version.js +1 -1
- package/lib/cli.js +99 -17
- package/lib/cli.js.map +1 -1
- package/lib/lint/config.d.ts +8 -0
- package/lib/lint/config.js +143 -0
- package/lib/lint/config.js.map +1 -0
- package/lib/lint/engine.js +3 -1
- package/lib/lint/engine.js.map +1 -1
- package/lib/lint/formatters/text.d.ts +1 -0
- package/lib/lint/formatters/text.js +3 -1
- package/lib/lint/formatters/text.js.map +1 -1
- package/lib/lint/grammar/lint.js +7 -4
- package/lib/lint/grammar/lint.js.map +1 -1
- package/lib/lint/grammar/scan.d.ts +1 -1
- package/lib/lint/grammar/scan.js +19 -2
- package/lib/lint/grammar/scan.js.map +1 -1
- package/lib/lint/index.d.ts +11 -0
- package/lib/lint/index.js +89 -20
- package/lib/lint/index.js.map +1 -1
- package/lib/lint/mute.d.ts +17 -0
- package/lib/lint/mute.js +80 -0
- package/lib/lint/mute.js.map +1 -0
- package/lib/lint/parallel.d.ts +4 -0
- package/lib/lint/parallel.js +95 -0
- package/lib/lint/parallel.js.map +1 -0
- package/lib/lint/rules/abbreviated-attrs.d.ts +4 -0
- package/lib/lint/rules/abbreviated-attrs.js +71 -0
- package/lib/lint/rules/abbreviated-attrs.js.map +1 -0
- package/lib/lint/rules/attr-value-dropped.js +3 -2
- package/lib/lint/rules/attr-value-dropped.js.map +1 -1
- package/lib/lint/rules/dead-definitions.d.ts +3 -0
- package/lib/lint/rules/dead-definitions.js +83 -0
- package/lib/lint/rules/dead-definitions.js.map +1 -0
- package/lib/lint/rules/index.js +4 -0
- package/lib/lint/rules/index.js.map +1 -1
- package/lib/lint/rules/markdown-in-pod.d.ts +4 -0
- package/lib/lint/rules/markdown-in-pod.js +71 -0
- package/lib/lint/rules/markdown-in-pod.js.map +1 -0
- package/lib/lint/rules/table-column-width.d.ts +4 -0
- package/lib/lint/rules/table-column-width.js +114 -0
- package/lib/lint/rules/table-column-width.js.map +1 -0
- package/lib/lint/rules/table-shape.d.ts +3 -0
- package/lib/lint/rules/table-shape.js +18 -0
- package/lib/lint/rules/table-shape.js.map +1 -0
- package/lib/lint/types.d.ts +5 -1
- package/lib/lint/worker.d.ts +5 -0
- package/lib/lint/worker.js +17 -0
- package/lib/lint/worker.js.map +1 -0
- package/lib/query.js +4 -1
- package/lib/query.js.map +1 -1
- package/lib/resolve-includes.js +55 -6
- package/lib/resolve-includes.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +13 -7
package/CHANGELOG.podlite
CHANGED
|
@@ -2,6 +2,46 @@
|
|
|
2
2
|
|
|
3
3
|
=head1 Upcoming
|
|
4
4
|
|
|
5
|
+
=head1 0.0.80
|
|
6
|
+
|
|
7
|
+
=item podlite lint adds the markdown-in-pod rule: a heading written with hashes, a row of bars and dashes, and a pair of asterisks arrive as text inside a pod block, and the message names the Podlite construct to write instead. Blocks that keep their content as written, the separator of a real table, and markup shown inside a code span are left alone
|
|
8
|
+
|
|
9
|
+
=item podlite lint adds the abbreviated-attrs rule: an abbreviated block takes the rest of its line as data, so attributes written there arrive as text. Reported only where the line holds nothing but attributes and content follows below; a named block, an example inside a code block, and an attribute written with nothing inside are left alone
|
|
10
|
+
|
|
11
|
+
=item the command no longer raises the diagram renderer, and with it mermaid and React, before it has read its arguments: only a conversion renders, so the plugin registry is loaded there. A check or a query now starts on a runtime that forbids loading an ESM package through require
|
|
12
|
+
|
|
13
|
+
=item podlite lint adds the dead-definitions rule: an =alias that no A<> calls, and a =data whose key no data: reference names, are reported. A mistyped key at the reference shows up as the definition going unused, which is the shape the mistake takes
|
|
14
|
+
|
|
15
|
+
=item podlite lint delimited-block-balance takes the markers inside a block whose name carries both cases as content, not as structure: such a block keeps its body as written, and an example written in it no longer reads as an unclosed block. An all-uppercase name is still read as structure
|
|
16
|
+
|
|
17
|
+
=item podlite lint table-column-width no longer reports a row whose cells are held apart by spaces while only the separator line draws bars: such a cell may fill its column to the last place and the table still parses. A cell standing on the boundary, and a cell pressed against a bar the row itself draws, are still reported
|
|
18
|
+
|
|
19
|
+
=item the check is reachable as podlite/lint — runLint for a whole run, lintFile and lintSource for the findings as data, with the types that describe them. The path no longer spells the build layout, and the check stays out of the package entry
|
|
20
|
+
|
|
21
|
+
=item podlite query --to json names the file every block came from, so a query over several files can be traced back to its documents. Text handed in on stdin is named <stdin>; the other output formats are unchanged
|
|
22
|
+
|
|
23
|
+
=item podlite lint checks a long list of files on several threads, which cuts a 126-file run from 1.64 to 1.14 seconds. Short lists stay on one thread, and the report reads the same either way
|
|
24
|
+
|
|
25
|
+
=item podlite lint finds .podlitelintrc.json or .podlitelintrc.js by itself — the nearest one at or above the first checked file, json before js. --config still wins, and --enable and --disable name a rule for one run
|
|
26
|
+
|
|
27
|
+
=item =include takes a recursive mask: file:./dir/**/*.podlite reaches the nested directories too, skipping hidden ones. A single-level mask stays within its own directory
|
|
28
|
+
|
|
29
|
+
=item =include takes a directory mask: file:./dir/*.podlite reads every matching file of that directory in name order, applies the selector to each, and leaves nothing behind when the mask names no file. Files the mask does not name are never read
|
|
30
|
+
|
|
31
|
+
=item podlite convert takes --render-mode with production or draft, and reads the same choice from PODLITE_RENDER_MODE when the flag is absent. Production stays the default and masks covered content; the flag wins over the environment
|
|
32
|
+
|
|
33
|
+
=head1 0.0.79
|
|
34
|
+
|
|
35
|
+
=item podlite lint takes C«:lint-ignore» from the document: written on a block it silences the named rules there, written on C«=begin pod» it covers the file, and C«=config» spreads it over a scope. The attribute must name its rules; a mute that silenced nothing is reported under the lint-ignore rule, and the summary counts what was silenced
|
|
36
|
+
|
|
37
|
+
=item podlite lint applies the file given to --config: a rule set to off is not run, and any other setting replaces its severity. A config that cannot be read, or a setting outside off, error, warning and info, stops the run with exit code 2
|
|
38
|
+
|
|
39
|
+
=item podlite lint adds the table-column-width rule: a cell that reaches or crosses the column boundary set by the separator line is reported, because the table silently loses a column when it does
|
|
40
|
+
|
|
41
|
+
=item podlite lint reports a reshaped table under the table-shape rule, with file, line and a place in the summary; the padded-row message names the cause
|
|
42
|
+
|
|
43
|
+
=item podlite convert writes to stdout when the output is a dash, and reads the document from stdin after a dash or from a pipe with no files given; without a dash it still writes a file as before
|
|
44
|
+
|
|
5
45
|
=head1 0.0.78
|
|
6
46
|
|
|
7
47
|
=item declare the node floor: the command line needs 20.19 or newer, because loading it reaches an ESM-only dependency through require
|
package/esm/cli.js
CHANGED
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
import * as fs from 'fs';
|
|
2
2
|
import * as path from 'path';
|
|
3
3
|
import { toMarkdown, toHtml } from '@podlite/schema';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { reportLint, resolveConfig, runLint } from './lint';
|
|
5
|
+
import { ConfigError } from './lint/config';
|
|
6
|
+
import { lintFilesInParallel, worthThreads } from './lint/parallel';
|
|
6
7
|
import { runQuery } from './query';
|
|
7
8
|
import { resolveIncludes } from './resolve-includes';
|
|
9
|
+
// The plugin registry brings the diagram renderer, and with it mermaid and
|
|
10
|
+
// React. Only conversion renders anything, so the registry is raised there and
|
|
11
|
+
// not at startup — a check or a query used to pay for it, and on a runtime that
|
|
12
|
+
// forbids loading an ESM package through require the command died before it
|
|
13
|
+
// had read its arguments.
|
|
14
|
+
const parserWithPlugins = () => {
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
16
|
+
const { podlite } = require('./index');
|
|
17
|
+
return podlite({ importPlugins: true });
|
|
18
|
+
};
|
|
8
19
|
const FORMATS = {
|
|
9
20
|
md: '.md',
|
|
10
21
|
markdown: '.md',
|
|
@@ -12,10 +23,13 @@ const FORMATS = {
|
|
|
12
23
|
};
|
|
13
24
|
const QUERY_FORMATS = ['podlite', 'md', 'html', 'json'];
|
|
14
25
|
const LINT_FORMATS = ['text', 'json'];
|
|
26
|
+
const STDIN_MARKER = '-';
|
|
27
|
+
const RENDER_MODES = ['production', 'draft'];
|
|
15
28
|
function usage() {
|
|
16
29
|
console.log(`Usage:
|
|
17
|
-
podlite convert <files
|
|
30
|
+
podlite convert <files...|-> --to <format> [-o <output|->] [--render-mode <production|draft>]
|
|
18
31
|
podlite lint <files...|-> [--strict] [--format <text|json>] [--config <path>]
|
|
32
|
+
[--enable <rule>] [--disable <rule>]
|
|
19
33
|
podlite query <selector> <files...> [--to <format>] [--fail-on-empty] [--quiet]
|
|
20
34
|
|
|
21
35
|
Commands:
|
|
@@ -29,9 +43,15 @@ Options:
|
|
|
29
43
|
query: podlite (default), md, html, json
|
|
30
44
|
--format lint output format: text (default), json
|
|
31
45
|
--strict lint: promote warnings to errors
|
|
32
|
-
--config lint: path to .podlitelintrc.{json,js}
|
|
46
|
+
--config lint: path to .podlitelintrc.{json,js}; without it the nearest one
|
|
47
|
+
at or above the first checked file is used
|
|
48
|
+
--enable lint: run a rule the config turned off (repeatable)
|
|
49
|
+
--disable lint: turn a rule off for this run (repeatable)
|
|
33
50
|
--base convert: prefix for relative file: image paths (or env PODLITE_BASE)
|
|
34
|
-
-
|
|
51
|
+
--render-mode
|
|
52
|
+
convert: production (default, covered content is masked) or draft
|
|
53
|
+
(covered content is shown); or env PODLITE_RENDER_MODE
|
|
54
|
+
-o Output file or directory, or - for stdout (default: same dir, new extension)
|
|
35
55
|
--fail-on-empty query: exit 1 if no blocks matched
|
|
36
56
|
--quiet query: suppress match count on stderr
|
|
37
57
|
--help Show this help
|
|
@@ -39,6 +59,8 @@ Options:
|
|
|
39
59
|
Examples:
|
|
40
60
|
podlite convert doc.pod6 --to md
|
|
41
61
|
podlite convert *.pod6 --to md -o output/
|
|
62
|
+
podlite convert doc.podlite --to md -o -
|
|
63
|
+
cat doc.podlite | podlite convert - --to md
|
|
42
64
|
podlite query 'head1' docs/api.podlite
|
|
43
65
|
podlite query 'head1, head2' manual.podlite --to md
|
|
44
66
|
podlite query 'code[:lang<python>]' tutorials/*.podlite --to json
|
|
@@ -60,6 +82,9 @@ function parseArgs(argv) {
|
|
|
60
82
|
format: '',
|
|
61
83
|
configPath: '',
|
|
62
84
|
base: '',
|
|
85
|
+
renderMode: '',
|
|
86
|
+
enable: [],
|
|
87
|
+
disable: [],
|
|
63
88
|
};
|
|
64
89
|
if (argv.length === 0 || argv[0] === '--help' || argv[0] === '-h') {
|
|
65
90
|
return null;
|
|
@@ -92,6 +117,19 @@ function parseArgs(argv) {
|
|
|
92
117
|
else if (arg === '--base') {
|
|
93
118
|
args.base = argv[++i] || '';
|
|
94
119
|
}
|
|
120
|
+
else if (arg === '--render-mode') {
|
|
121
|
+
args.renderMode = argv[++i] || '';
|
|
122
|
+
}
|
|
123
|
+
else if (arg === '--enable') {
|
|
124
|
+
const rule = argv[++i];
|
|
125
|
+
if (rule)
|
|
126
|
+
args.enable.push(rule);
|
|
127
|
+
}
|
|
128
|
+
else if (arg === '--disable') {
|
|
129
|
+
const rule = argv[++i];
|
|
130
|
+
if (rule)
|
|
131
|
+
args.disable.push(rule);
|
|
132
|
+
}
|
|
95
133
|
else if (arg === '--help' || arg === '-h') {
|
|
96
134
|
return null;
|
|
97
135
|
}
|
|
@@ -102,18 +140,19 @@ function parseArgs(argv) {
|
|
|
102
140
|
}
|
|
103
141
|
return args;
|
|
104
142
|
}
|
|
105
|
-
function convertFile(inputPath, format, outputPath, base) {
|
|
143
|
+
function convertFile(inputPath, format, outputPath, base, renderMode = 'production') {
|
|
106
144
|
const ext = FORMATS[format];
|
|
107
145
|
if (!ext) {
|
|
108
146
|
console.error(`Unknown format: ${format}. Supported: ${Object.keys(FORMATS).join(', ')}`);
|
|
109
147
|
process.exit(1);
|
|
110
148
|
}
|
|
111
|
-
const
|
|
112
|
-
const
|
|
149
|
+
const fromStdin = inputPath === STDIN_MARKER;
|
|
150
|
+
const content = fromStdin ? readStdinSync() : fs.readFileSync(inputPath, 'utf-8');
|
|
151
|
+
const p = parserWithPlugins();
|
|
113
152
|
const parseToAst = (source) => p.toAst(p.parse(source, { podMode: 1 }));
|
|
114
153
|
let tree = parseToAst(content);
|
|
115
154
|
try {
|
|
116
|
-
tree = resolveIncludes(tree, { baseDir: path.dirname(inputPath), parse: parseToAst });
|
|
155
|
+
tree = resolveIncludes(tree, { baseDir: fromStdin ? process.cwd() : path.dirname(inputPath), parse: parseToAst });
|
|
117
156
|
}
|
|
118
157
|
catch (e) {
|
|
119
158
|
console.error(`podlite convert: ${e.message}`);
|
|
@@ -121,15 +160,21 @@ function convertFile(inputPath, format, outputPath, base) {
|
|
|
121
160
|
}
|
|
122
161
|
let result;
|
|
123
162
|
if (format === 'md' || format === 'markdown') {
|
|
124
|
-
result = toMarkdown({ base }).run(tree).toString();
|
|
163
|
+
result = toMarkdown({ base, renderMode }).run(tree).toString();
|
|
125
164
|
}
|
|
126
165
|
else if (format === 'html') {
|
|
127
|
-
result = toHtml({ base }).run(tree).toString();
|
|
166
|
+
result = toHtml({ base, renderMode }).run(tree).toString();
|
|
128
167
|
}
|
|
129
168
|
else {
|
|
130
169
|
console.error(`Format "${format}" not implemented yet`);
|
|
131
170
|
process.exit(1);
|
|
132
171
|
}
|
|
172
|
+
if (outputPath === STDIN_MARKER || (fromStdin && !outputPath)) {
|
|
173
|
+
process.stdout.write(result);
|
|
174
|
+
if (!result.endsWith('\n'))
|
|
175
|
+
process.stdout.write('\n');
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
133
178
|
if (outputPath) {
|
|
134
179
|
if (fs.existsSync(outputPath) && fs.statSync(outputPath).isDirectory()) {
|
|
135
180
|
const basename = path.basename(inputPath, path.extname(inputPath));
|
|
@@ -216,6 +261,27 @@ function runQueryCommand(args) {
|
|
|
216
261
|
process.exitCode = 1;
|
|
217
262
|
}
|
|
218
263
|
}
|
|
264
|
+
function runLintOnThreads(files, options) {
|
|
265
|
+
let config;
|
|
266
|
+
try {
|
|
267
|
+
config = resolveConfig(files, options);
|
|
268
|
+
}
|
|
269
|
+
catch (e) {
|
|
270
|
+
if (!(e instanceof ConfigError))
|
|
271
|
+
throw e;
|
|
272
|
+
console.error(`podlite lint: ${e.message}`);
|
|
273
|
+
process.exitCode = 2;
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
lintFilesInParallel(files, config)
|
|
277
|
+
.then(reports => {
|
|
278
|
+
process.exitCode = reportLint(reports, options);
|
|
279
|
+
})
|
|
280
|
+
.catch(e => {
|
|
281
|
+
console.error(`podlite lint: ${e.message}`);
|
|
282
|
+
process.exitCode = 2;
|
|
283
|
+
});
|
|
284
|
+
}
|
|
219
285
|
function main() {
|
|
220
286
|
process.stdout.on('error', (err) => {
|
|
221
287
|
if (err.code !== 'EPIPE') {
|
|
@@ -245,12 +311,19 @@ function main() {
|
|
|
245
311
|
console.error(`podlite lint: unknown --format "${format}". Supported: ${LINT_FORMATS.join(', ')}`);
|
|
246
312
|
process.exit(2);
|
|
247
313
|
}
|
|
248
|
-
|
|
314
|
+
const lintOptions = {
|
|
249
315
|
strict: args.strict,
|
|
250
316
|
format,
|
|
251
317
|
configPath: args.configPath || undefined,
|
|
252
318
|
stdinContent,
|
|
253
|
-
|
|
319
|
+
enable: args.enable,
|
|
320
|
+
disable: args.disable,
|
|
321
|
+
};
|
|
322
|
+
if (stdinContent === undefined && worthThreads(files)) {
|
|
323
|
+
runLintOnThreads(files, lintOptions);
|
|
324
|
+
return;
|
|
325
|
+
}
|
|
326
|
+
process.exitCode = runLint(files, lintOptions);
|
|
254
327
|
return;
|
|
255
328
|
}
|
|
256
329
|
if (args.command !== 'convert') {
|
|
@@ -258,7 +331,10 @@ function main() {
|
|
|
258
331
|
usage();
|
|
259
332
|
process.exit(1);
|
|
260
333
|
}
|
|
261
|
-
|
|
334
|
+
const namedFiles = args.files.filter(f => f !== STDIN_MARKER);
|
|
335
|
+
const readsStdin = args.files.includes(STDIN_MARKER) || (!process.stdin.isTTY && namedFiles.length === 0);
|
|
336
|
+
const sources = readsStdin ? [...namedFiles, STDIN_MARKER] : namedFiles;
|
|
337
|
+
if (sources.length === 0) {
|
|
262
338
|
console.error('No input files specified');
|
|
263
339
|
usage();
|
|
264
340
|
process.exit(1);
|
|
@@ -268,15 +344,21 @@ function main() {
|
|
|
268
344
|
usage();
|
|
269
345
|
process.exit(1);
|
|
270
346
|
}
|
|
271
|
-
|
|
347
|
+
const renderMode = (args.renderMode || process.env.PODLITE_RENDER_MODE || 'production');
|
|
348
|
+
if (!RENDER_MODES.includes(renderMode)) {
|
|
349
|
+
console.error(`Unknown render mode: ${renderMode}. Supported: ${RENDER_MODES.join(', ')}`);
|
|
350
|
+
process.exit(1);
|
|
351
|
+
}
|
|
352
|
+
const toStdout = args.output === STDIN_MARKER;
|
|
353
|
+
if (sources.length > 1 && args.output && !toStdout && !fs.existsSync(args.output)) {
|
|
272
354
|
fs.mkdirSync(args.output, { recursive: true });
|
|
273
355
|
}
|
|
274
|
-
for (const file of
|
|
275
|
-
if (!fs.existsSync(file)) {
|
|
356
|
+
for (const file of sources) {
|
|
357
|
+
if (file !== STDIN_MARKER && !fs.existsSync(file)) {
|
|
276
358
|
console.error(`File not found: ${file}`);
|
|
277
359
|
process.exit(1);
|
|
278
360
|
}
|
|
279
|
-
convertFile(file, args.to, args.output || undefined, args.base || process.env.PODLITE_BASE);
|
|
361
|
+
convertFile(file, args.to, args.output || undefined, args.base || process.env.PODLITE_BASE, renderMode);
|
|
280
362
|
}
|
|
281
363
|
}
|
|
282
364
|
main();
|
package/esm/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { LintConfig, Violation } from './types';
|
|
2
|
+
export declare class ConfigError extends Error {
|
|
3
|
+
}
|
|
4
|
+
export declare function findConfig(startDir: string): string | undefined;
|
|
5
|
+
export declare function readConfig(configPath?: string): LintConfig;
|
|
6
|
+
export declare function applyRuleFlags(config: LintConfig, enable: string[], disable: string[]): LintConfig;
|
|
7
|
+
export declare const isRuleOff: (config: LintConfig, ruleId: string) => boolean;
|
|
8
|
+
export declare function applyConfig(violations: Violation[], config: LintConfig): Violation[];
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
const SETTINGS = ['off', 'error', 'warning', 'info'];
|
|
4
|
+
const CONFIG_NAMES = ['.podlitelintrc.json', '.podlitelintrc.js'];
|
|
5
|
+
export class ConfigError extends Error {
|
|
6
|
+
}
|
|
7
|
+
// Nearest config at or above the given directory. The first name of CONFIG_NAMES
|
|
8
|
+
// present in a directory wins; a directory closer to the file wins over one above.
|
|
9
|
+
export function findConfig(startDir) {
|
|
10
|
+
let dir = path.resolve(startDir);
|
|
11
|
+
for (;;) {
|
|
12
|
+
for (const name of CONFIG_NAMES) {
|
|
13
|
+
const candidate = path.join(dir, name);
|
|
14
|
+
if (fs.existsSync(candidate))
|
|
15
|
+
return candidate;
|
|
16
|
+
}
|
|
17
|
+
const up = path.dirname(dir);
|
|
18
|
+
if (up === dir)
|
|
19
|
+
return undefined;
|
|
20
|
+
dir = up;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export function readConfig(configPath) {
|
|
24
|
+
if (!configPath)
|
|
25
|
+
return {};
|
|
26
|
+
if (configPath.endsWith('.js'))
|
|
27
|
+
return readJsConfig(configPath);
|
|
28
|
+
let raw;
|
|
29
|
+
try {
|
|
30
|
+
raw = fs.readFileSync(configPath, 'utf-8');
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
throw new ConfigError(`cannot read config ${configPath}: ${e.message}`);
|
|
34
|
+
}
|
|
35
|
+
let parsed;
|
|
36
|
+
try {
|
|
37
|
+
parsed = JSON.parse(raw);
|
|
38
|
+
}
|
|
39
|
+
catch (e) {
|
|
40
|
+
throw new ConfigError(`cannot read config ${configPath}: ${e.message}`);
|
|
41
|
+
}
|
|
42
|
+
return checkConfigShape(parsed, configPath);
|
|
43
|
+
}
|
|
44
|
+
function readJsConfig(configPath) {
|
|
45
|
+
let loaded;
|
|
46
|
+
try {
|
|
47
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
48
|
+
loaded = require(path.resolve(configPath));
|
|
49
|
+
}
|
|
50
|
+
catch (e) {
|
|
51
|
+
throw new ConfigError(`cannot read config ${configPath}: ${e.message}`);
|
|
52
|
+
}
|
|
53
|
+
const value = loaded?.default ?? loaded;
|
|
54
|
+
return checkConfigShape(value, configPath);
|
|
55
|
+
}
|
|
56
|
+
function checkConfigShape(parsed, configPath) {
|
|
57
|
+
if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
|
|
58
|
+
throw new ConfigError(`config ${configPath} must hold an object`);
|
|
59
|
+
}
|
|
60
|
+
const rules = parsed.rules;
|
|
61
|
+
if (rules === undefined)
|
|
62
|
+
return {};
|
|
63
|
+
if (!rules || typeof rules !== 'object' || Array.isArray(rules)) {
|
|
64
|
+
throw new ConfigError(`config ${configPath}: "rules" must hold an object`);
|
|
65
|
+
}
|
|
66
|
+
const checked = {};
|
|
67
|
+
for (const [id, setting] of Object.entries(rules)) {
|
|
68
|
+
// a mistyped setting would turn the rule off without a word, so it is an error
|
|
69
|
+
if (typeof setting !== 'string' || !SETTINGS.includes(setting)) {
|
|
70
|
+
throw new ConfigError(`config ${configPath}: rule "${id}" is set to ${JSON.stringify(setting)}; use one of ${SETTINGS.join(', ')}`);
|
|
71
|
+
}
|
|
72
|
+
checked[id] = setting;
|
|
73
|
+
}
|
|
74
|
+
return { rules: checked };
|
|
75
|
+
}
|
|
76
|
+
// Flags stand above the file: they are typed for this run and mean it.
|
|
77
|
+
export function applyRuleFlags(config, enable, disable) {
|
|
78
|
+
if (enable.length === 0 && disable.length === 0)
|
|
79
|
+
return config;
|
|
80
|
+
const rules = { ...(config.rules || {}) };
|
|
81
|
+
for (const id of disable)
|
|
82
|
+
rules[id] = 'off';
|
|
83
|
+
for (const id of enable)
|
|
84
|
+
delete rules[id];
|
|
85
|
+
return { ...config, rules };
|
|
86
|
+
}
|
|
87
|
+
export const isRuleOff = (config, ruleId) => config.rules?.[ruleId] === 'off';
|
|
88
|
+
export function applyConfig(violations, config) {
|
|
89
|
+
const rules = config.rules;
|
|
90
|
+
if (!rules)
|
|
91
|
+
return violations;
|
|
92
|
+
const out = [];
|
|
93
|
+
for (const violation of violations) {
|
|
94
|
+
const setting = rules[violation.rule];
|
|
95
|
+
if (setting === 'off')
|
|
96
|
+
continue;
|
|
97
|
+
out.push(setting ? { ...violation, severity: setting } : violation);
|
|
98
|
+
}
|
|
99
|
+
return out;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lint/config.ts"],"names":[],"mappings":"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"}
|
package/esm/lint/engine.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { applyConfig, isRuleOff } from './config';
|
|
1
2
|
export function runRules(ast, rules, ctx) {
|
|
2
|
-
|
|
3
|
+
const active = rules.filter(rule => !isRuleOff(ctx.config, rule.id));
|
|
4
|
+
return applyConfig(active.flatMap(rule => rule.check(ast, ctx)), ctx.config);
|
|
3
5
|
}
|
|
4
6
|
//# sourceMappingURL=engine.js.map
|
package/esm/lint/engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/lint/engine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/lint/engine.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEjD,MAAM,UAAU,QAAQ,CAAC,GAAoB,EAAE,KAAa,EAAE,GAAgB;IAC5E,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;IACpE,OAAO,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAC5C,GAAG,CAAC,MAAM,CACX,CAAA;AACH,CAAC"}
|
|
@@ -21,7 +21,9 @@ function summaryLine(reports) {
|
|
|
21
21
|
const nFiles = reports.length;
|
|
22
22
|
const nErrors = totals.filter(v => v.severity === 'error').length;
|
|
23
23
|
const nWarnings = totals.filter(v => v.severity === 'warning').length;
|
|
24
|
-
|
|
24
|
+
const nSilenced = reports.reduce((sum, r) => sum + (r.silenced || 0), 0);
|
|
25
|
+
const head = `${plural(nFiles, 'file', 'files')} checked, ${plural(nErrors, 'error', 'errors')}, ${plural(nWarnings, 'warning', 'warnings')}`;
|
|
26
|
+
return nSilenced === 0 ? head : `${head}, ${nSilenced} silenced`;
|
|
25
27
|
}
|
|
26
28
|
export function formatText(reports, opts) {
|
|
27
29
|
const lines = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/lint/formatters/text.ts"],"names":[],"mappings":"AAMA,MAAM,IAAI,GAAG;IACX,GAAG,EAAE,UAAU;IACf,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,SAAS;CACjB,CAAA;AAED,SAAS,SAAS,CAAC,QAAkB,EAAE,KAAc;IACnD,IAAI,CAAC,KAAK;QAAE,OAAO,QAAQ,CAAA;IAC3B,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,GAAG,IAAI,CAAC,GAAG,GAAG,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;IACtE,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;IAC3E,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;AAC/C,CAAC;AAED,SAAS,MAAM,CAAC,CAAS,EAAE,QAAgB,EAAE,MAAc;IACzD,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAA;AAC9C,CAAC;AAED,SAAS,WAAW,CAAC,OAAqB;IACxC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;IACjD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,MAAM,CAAA;IACjE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,MAAM,CAAA;IACrE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,aAAa,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/lint/formatters/text.ts"],"names":[],"mappings":"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"}
|
package/esm/lint/grammar/lint.js
CHANGED
|
@@ -119,7 +119,7 @@ function peg$parse(input, options) {
|
|
|
119
119
|
var peg$FAILED = {}, peg$startRuleFunctions = { start: peg$parsestart }, peg$startRuleFunction = peg$parsestart, peg$c0 = peg$anyExpectation(), peg$c1 = ':', peg$c2 = peg$literalExpectation(':', false), peg$c3 = '<', peg$c4 = peg$literalExpectation('<', false), peg$c5 = /^[^>]/, peg$c6 = peg$classExpectation(['>'], true, false), peg$c7 = '>', peg$c8 = peg$literalExpectation('>', false), peg$c9 = function (name, value) {
|
|
120
120
|
// only a real attribute list is checked: `<` and `>` in running text or in
|
|
121
121
|
// a verbatim block are not markup
|
|
122
|
-
const verbatim = options._blockStack.some(b => options.
|
|
122
|
+
const verbatim = options._blockStack.some(b => options.isVerbatim(b.name));
|
|
123
123
|
if (!options._inDirective || verbatim)
|
|
124
124
|
return null;
|
|
125
125
|
const advice = 'use a non-conflicting delimiter ("...", (...), <<...>>) or plain text';
|
|
@@ -146,7 +146,7 @@ function peg$parse(input, options) {
|
|
|
146
146
|
return null;
|
|
147
147
|
}, peg$c10 = '=begin', peg$c11 = peg$literalExpectation('=begin', false), peg$c12 = function (name) {
|
|
148
148
|
const top = options._blockStack[options._blockStack.length - 1];
|
|
149
|
-
const verbatim = top && options.
|
|
149
|
+
const verbatim = top && options.isVerbatim(top.name);
|
|
150
150
|
if (verbatim) {
|
|
151
151
|
// the same name closes the enclosing block early and orphans the marker after it
|
|
152
152
|
if (top.name === name) {
|
|
@@ -172,7 +172,7 @@ function peg$parse(input, options) {
|
|
|
172
172
|
}, peg$c13 = '=end', peg$c14 = peg$literalExpectation('=end', false), peg$c15 = function (name) {
|
|
173
173
|
const top = options._blockStack[options._blockStack.length - 1];
|
|
174
174
|
// a verbatim block runs to its own =end, so any other marker inside it is content
|
|
175
|
-
if (top && top.name !== name && options.
|
|
175
|
+
if (top && top.name !== name && options.isVerbatim(top.name)) {
|
|
176
176
|
options._inDirective = false;
|
|
177
177
|
return null;
|
|
178
178
|
}
|
|
@@ -204,7 +204,7 @@ function peg$parse(input, options) {
|
|
|
204
204
|
}, peg$c19 = '!', peg$c20 = peg$literalExpectation('!', false), peg$c21 = function (name) {
|
|
205
205
|
// any verbatim block on the stack makes this line content: markers written
|
|
206
206
|
// inside such a block are an example, not structure
|
|
207
|
-
const verbatim = options._blockStack.some(b => options.
|
|
207
|
+
const verbatim = options._blockStack.some(b => options.isVerbatim(b.name));
|
|
208
208
|
if (options._inDirective && !verbatim) {
|
|
209
209
|
options.diagnostics.push({
|
|
210
210
|
rule: 'attr-continuation-dropped',
|
|
@@ -1086,6 +1086,9 @@ function peg$parse(input, options) {
|
|
|
1086
1086
|
options.diagnostics = options.diagnostics || [];
|
|
1087
1087
|
options._blockStack = options._blockStack || [];
|
|
1088
1088
|
options.verbatimBlocks = options.verbatimBlocks || [];
|
|
1089
|
+
// a predicate, not a list: a named block is spelled by its case, so its names
|
|
1090
|
+
// cannot be enumerated ahead of time
|
|
1091
|
+
options.isVerbatim = options.isVerbatim || (name => options.verbatimBlocks.indexOf(name) !== -1);
|
|
1089
1092
|
if (typeof options._inDirective !== 'boolean')
|
|
1090
1093
|
options._inDirective = false;
|
|
1091
1094
|
peg$result = peg$startRuleFunction();
|