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.
Files changed (108) hide show
  1. package/CHANGELOG.podlite +40 -0
  2. package/esm/cli.js +100 -18
  3. package/esm/cli.js.map +1 -1
  4. package/esm/lint/config.d.ts +8 -0
  5. package/esm/lint/config.js +101 -0
  6. package/esm/lint/config.js.map +1 -0
  7. package/esm/lint/engine.js +3 -1
  8. package/esm/lint/engine.js.map +1 -1
  9. package/esm/lint/formatters/text.d.ts +1 -0
  10. package/esm/lint/formatters/text.js +3 -1
  11. package/esm/lint/formatters/text.js.map +1 -1
  12. package/esm/lint/grammar/lint.js +7 -4
  13. package/esm/lint/grammar/lint.js.map +1 -1
  14. package/esm/lint/grammar/scan.d.ts +1 -1
  15. package/esm/lint/grammar/scan.js +20 -3
  16. package/esm/lint/grammar/scan.js.map +1 -1
  17. package/esm/lint/index.d.ts +11 -0
  18. package/esm/lint/index.js +47 -18
  19. package/esm/lint/index.js.map +1 -1
  20. package/esm/lint/mute.d.ts +17 -0
  21. package/esm/lint/mute.js +75 -0
  22. package/esm/lint/mute.js.map +1 -0
  23. package/esm/lint/parallel.d.ts +4 -0
  24. package/esm/lint/parallel.js +57 -0
  25. package/esm/lint/parallel.js.map +1 -0
  26. package/esm/lint/rules/abbreviated-attrs.d.ts +4 -0
  27. package/esm/lint/rules/abbreviated-attrs.js +67 -0
  28. package/esm/lint/rules/abbreviated-attrs.js.map +1 -0
  29. package/esm/lint/rules/attr-value-dropped.js +3 -2
  30. package/esm/lint/rules/attr-value-dropped.js.map +1 -1
  31. package/esm/lint/rules/dead-definitions.d.ts +3 -0
  32. package/esm/lint/rules/dead-definitions.js +80 -0
  33. package/esm/lint/rules/dead-definitions.js.map +1 -0
  34. package/esm/lint/rules/index.js +4 -0
  35. package/esm/lint/rules/index.js.map +1 -1
  36. package/esm/lint/rules/markdown-in-pod.d.ts +4 -0
  37. package/esm/lint/rules/markdown-in-pod.js +67 -0
  38. package/esm/lint/rules/markdown-in-pod.js.map +1 -0
  39. package/esm/lint/rules/table-column-width.d.ts +4 -0
  40. package/esm/lint/rules/table-column-width.js +110 -0
  41. package/esm/lint/rules/table-column-width.js.map +1 -0
  42. package/esm/lint/rules/table-shape.d.ts +3 -0
  43. package/esm/lint/rules/table-shape.js +15 -0
  44. package/esm/lint/rules/table-shape.js.map +1 -0
  45. package/esm/lint/types.d.ts +5 -1
  46. package/esm/lint/worker.d.ts +5 -0
  47. package/esm/lint/worker.js +15 -0
  48. package/esm/lint/worker.js.map +1 -0
  49. package/esm/query.js +4 -1
  50. package/esm/query.js.map +1 -1
  51. package/esm/resolve-includes.js +56 -7
  52. package/esm/resolve-includes.js.map +1 -1
  53. package/esm/version.d.ts +1 -1
  54. package/esm/version.js +1 -1
  55. package/lib/cli.js +99 -17
  56. package/lib/cli.js.map +1 -1
  57. package/lib/lint/config.d.ts +8 -0
  58. package/lib/lint/config.js +143 -0
  59. package/lib/lint/config.js.map +1 -0
  60. package/lib/lint/engine.js +3 -1
  61. package/lib/lint/engine.js.map +1 -1
  62. package/lib/lint/formatters/text.d.ts +1 -0
  63. package/lib/lint/formatters/text.js +3 -1
  64. package/lib/lint/formatters/text.js.map +1 -1
  65. package/lib/lint/grammar/lint.js +7 -4
  66. package/lib/lint/grammar/lint.js.map +1 -1
  67. package/lib/lint/grammar/scan.d.ts +1 -1
  68. package/lib/lint/grammar/scan.js +19 -2
  69. package/lib/lint/grammar/scan.js.map +1 -1
  70. package/lib/lint/index.d.ts +11 -0
  71. package/lib/lint/index.js +89 -20
  72. package/lib/lint/index.js.map +1 -1
  73. package/lib/lint/mute.d.ts +17 -0
  74. package/lib/lint/mute.js +80 -0
  75. package/lib/lint/mute.js.map +1 -0
  76. package/lib/lint/parallel.d.ts +4 -0
  77. package/lib/lint/parallel.js +95 -0
  78. package/lib/lint/parallel.js.map +1 -0
  79. package/lib/lint/rules/abbreviated-attrs.d.ts +4 -0
  80. package/lib/lint/rules/abbreviated-attrs.js +71 -0
  81. package/lib/lint/rules/abbreviated-attrs.js.map +1 -0
  82. package/lib/lint/rules/attr-value-dropped.js +3 -2
  83. package/lib/lint/rules/attr-value-dropped.js.map +1 -1
  84. package/lib/lint/rules/dead-definitions.d.ts +3 -0
  85. package/lib/lint/rules/dead-definitions.js +83 -0
  86. package/lib/lint/rules/dead-definitions.js.map +1 -0
  87. package/lib/lint/rules/index.js +4 -0
  88. package/lib/lint/rules/index.js.map +1 -1
  89. package/lib/lint/rules/markdown-in-pod.d.ts +4 -0
  90. package/lib/lint/rules/markdown-in-pod.js +71 -0
  91. package/lib/lint/rules/markdown-in-pod.js.map +1 -0
  92. package/lib/lint/rules/table-column-width.d.ts +4 -0
  93. package/lib/lint/rules/table-column-width.js +114 -0
  94. package/lib/lint/rules/table-column-width.js.map +1 -0
  95. package/lib/lint/rules/table-shape.d.ts +3 -0
  96. package/lib/lint/rules/table-shape.js +18 -0
  97. package/lib/lint/rules/table-shape.js.map +1 -0
  98. package/lib/lint/types.d.ts +5 -1
  99. package/lib/lint/worker.d.ts +5 -0
  100. package/lib/lint/worker.js +17 -0
  101. package/lib/lint/worker.js.map +1 -0
  102. package/lib/query.js +4 -1
  103. package/lib/query.js.map +1 -1
  104. package/lib/resolve-includes.js +55 -6
  105. package/lib/resolve-includes.js.map +1 -1
  106. package/lib/version.d.ts +1 -1
  107. package/lib/version.js +1 -1
  108. package/package.json +13 -7
package/lib/cli.js CHANGED
@@ -36,10 +36,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  const fs = __importStar(require("fs"));
37
37
  const path = __importStar(require("path"));
38
38
  const schema_1 = require("@podlite/schema");
39
- const index_1 = require("./index");
40
39
  const lint_1 = require("./lint");
40
+ const config_1 = require("./lint/config");
41
+ const parallel_1 = require("./lint/parallel");
41
42
  const query_1 = require("./query");
42
43
  const resolve_includes_1 = require("./resolve-includes");
44
+ // The plugin registry brings the diagram renderer, and with it mermaid and
45
+ // React. Only conversion renders anything, so the registry is raised there and
46
+ // not at startup — a check or a query used to pay for it, and on a runtime that
47
+ // forbids loading an ESM package through require the command died before it
48
+ // had read its arguments.
49
+ const parserWithPlugins = () => {
50
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
51
+ const { podlite } = require('./index');
52
+ return podlite({ importPlugins: true });
53
+ };
43
54
  const FORMATS = {
44
55
  md: '.md',
45
56
  markdown: '.md',
@@ -47,10 +58,13 @@ const FORMATS = {
47
58
  };
48
59
  const QUERY_FORMATS = ['podlite', 'md', 'html', 'json'];
49
60
  const LINT_FORMATS = ['text', 'json'];
61
+ const STDIN_MARKER = '-';
62
+ const RENDER_MODES = ['production', 'draft'];
50
63
  function usage() {
51
64
  console.log(`Usage:
52
- podlite convert <files...> --to <format> [-o <output>]
65
+ podlite convert <files...|-> --to <format> [-o <output|->] [--render-mode <production|draft>]
53
66
  podlite lint <files...|-> [--strict] [--format <text|json>] [--config <path>]
67
+ [--enable <rule>] [--disable <rule>]
54
68
  podlite query <selector> <files...> [--to <format>] [--fail-on-empty] [--quiet]
55
69
 
56
70
  Commands:
@@ -64,9 +78,15 @@ Options:
64
78
  query: podlite (default), md, html, json
65
79
  --format lint output format: text (default), json
66
80
  --strict lint: promote warnings to errors
67
- --config lint: path to .podlitelintrc.{json,js}
81
+ --config lint: path to .podlitelintrc.{json,js}; without it the nearest one
82
+ at or above the first checked file is used
83
+ --enable lint: run a rule the config turned off (repeatable)
84
+ --disable lint: turn a rule off for this run (repeatable)
68
85
  --base convert: prefix for relative file: image paths (or env PODLITE_BASE)
69
- -o Output file or directory (default: same dir, new extension)
86
+ --render-mode
87
+ convert: production (default, covered content is masked) or draft
88
+ (covered content is shown); or env PODLITE_RENDER_MODE
89
+ -o Output file or directory, or - for stdout (default: same dir, new extension)
70
90
  --fail-on-empty query: exit 1 if no blocks matched
71
91
  --quiet query: suppress match count on stderr
72
92
  --help Show this help
@@ -74,6 +94,8 @@ Options:
74
94
  Examples:
75
95
  podlite convert doc.pod6 --to md
76
96
  podlite convert *.pod6 --to md -o output/
97
+ podlite convert doc.podlite --to md -o -
98
+ cat doc.podlite | podlite convert - --to md
77
99
  podlite query 'head1' docs/api.podlite
78
100
  podlite query 'head1, head2' manual.podlite --to md
79
101
  podlite query 'code[:lang<python>]' tutorials/*.podlite --to json
@@ -95,6 +117,9 @@ function parseArgs(argv) {
95
117
  format: '',
96
118
  configPath: '',
97
119
  base: '',
120
+ renderMode: '',
121
+ enable: [],
122
+ disable: [],
98
123
  };
99
124
  if (argv.length === 0 || argv[0] === '--help' || argv[0] === '-h') {
100
125
  return null;
@@ -127,6 +152,19 @@ function parseArgs(argv) {
127
152
  else if (arg === '--base') {
128
153
  args.base = argv[++i] || '';
129
154
  }
155
+ else if (arg === '--render-mode') {
156
+ args.renderMode = argv[++i] || '';
157
+ }
158
+ else if (arg === '--enable') {
159
+ const rule = argv[++i];
160
+ if (rule)
161
+ args.enable.push(rule);
162
+ }
163
+ else if (arg === '--disable') {
164
+ const rule = argv[++i];
165
+ if (rule)
166
+ args.disable.push(rule);
167
+ }
130
168
  else if (arg === '--help' || arg === '-h') {
131
169
  return null;
132
170
  }
@@ -137,18 +175,19 @@ function parseArgs(argv) {
137
175
  }
138
176
  return args;
139
177
  }
140
- function convertFile(inputPath, format, outputPath, base) {
178
+ function convertFile(inputPath, format, outputPath, base, renderMode = 'production') {
141
179
  const ext = FORMATS[format];
142
180
  if (!ext) {
143
181
  console.error(`Unknown format: ${format}. Supported: ${Object.keys(FORMATS).join(', ')}`);
144
182
  process.exit(1);
145
183
  }
146
- const content = fs.readFileSync(inputPath, 'utf-8');
147
- const p = (0, index_1.podlite)({ importPlugins: true });
184
+ const fromStdin = inputPath === STDIN_MARKER;
185
+ const content = fromStdin ? readStdinSync() : fs.readFileSync(inputPath, 'utf-8');
186
+ const p = parserWithPlugins();
148
187
  const parseToAst = (source) => p.toAst(p.parse(source, { podMode: 1 }));
149
188
  let tree = parseToAst(content);
150
189
  try {
151
- tree = (0, resolve_includes_1.resolveIncludes)(tree, { baseDir: path.dirname(inputPath), parse: parseToAst });
190
+ tree = (0, resolve_includes_1.resolveIncludes)(tree, { baseDir: fromStdin ? process.cwd() : path.dirname(inputPath), parse: parseToAst });
152
191
  }
153
192
  catch (e) {
154
193
  console.error(`podlite convert: ${e.message}`);
@@ -156,15 +195,21 @@ function convertFile(inputPath, format, outputPath, base) {
156
195
  }
157
196
  let result;
158
197
  if (format === 'md' || format === 'markdown') {
159
- result = (0, schema_1.toMarkdown)({ base }).run(tree).toString();
198
+ result = (0, schema_1.toMarkdown)({ base, renderMode }).run(tree).toString();
160
199
  }
161
200
  else if (format === 'html') {
162
- result = (0, schema_1.toHtml)({ base }).run(tree).toString();
201
+ result = (0, schema_1.toHtml)({ base, renderMode }).run(tree).toString();
163
202
  }
164
203
  else {
165
204
  console.error(`Format "${format}" not implemented yet`);
166
205
  process.exit(1);
167
206
  }
207
+ if (outputPath === STDIN_MARKER || (fromStdin && !outputPath)) {
208
+ process.stdout.write(result);
209
+ if (!result.endsWith('\n'))
210
+ process.stdout.write('\n');
211
+ return;
212
+ }
168
213
  if (outputPath) {
169
214
  if (fs.existsSync(outputPath) && fs.statSync(outputPath).isDirectory()) {
170
215
  const basename = path.basename(inputPath, path.extname(inputPath));
@@ -251,6 +296,27 @@ function runQueryCommand(args) {
251
296
  process.exitCode = 1;
252
297
  }
253
298
  }
299
+ function runLintOnThreads(files, options) {
300
+ let config;
301
+ try {
302
+ config = (0, lint_1.resolveConfig)(files, options);
303
+ }
304
+ catch (e) {
305
+ if (!(e instanceof config_1.ConfigError))
306
+ throw e;
307
+ console.error(`podlite lint: ${e.message}`);
308
+ process.exitCode = 2;
309
+ return;
310
+ }
311
+ (0, parallel_1.lintFilesInParallel)(files, config)
312
+ .then(reports => {
313
+ process.exitCode = (0, lint_1.reportLint)(reports, options);
314
+ })
315
+ .catch(e => {
316
+ console.error(`podlite lint: ${e.message}`);
317
+ process.exitCode = 2;
318
+ });
319
+ }
254
320
  function main() {
255
321
  process.stdout.on('error', (err) => {
256
322
  if (err.code !== 'EPIPE') {
@@ -280,12 +346,19 @@ function main() {
280
346
  console.error(`podlite lint: unknown --format "${format}". Supported: ${LINT_FORMATS.join(', ')}`);
281
347
  process.exit(2);
282
348
  }
283
- process.exitCode = (0, lint_1.runLint)(files, {
349
+ const lintOptions = {
284
350
  strict: args.strict,
285
351
  format,
286
352
  configPath: args.configPath || undefined,
287
353
  stdinContent,
288
- });
354
+ enable: args.enable,
355
+ disable: args.disable,
356
+ };
357
+ if (stdinContent === undefined && (0, parallel_1.worthThreads)(files)) {
358
+ runLintOnThreads(files, lintOptions);
359
+ return;
360
+ }
361
+ process.exitCode = (0, lint_1.runLint)(files, lintOptions);
289
362
  return;
290
363
  }
291
364
  if (args.command !== 'convert') {
@@ -293,7 +366,10 @@ function main() {
293
366
  usage();
294
367
  process.exit(1);
295
368
  }
296
- if (args.files.length === 0) {
369
+ const namedFiles = args.files.filter(f => f !== STDIN_MARKER);
370
+ const readsStdin = args.files.includes(STDIN_MARKER) || (!process.stdin.isTTY && namedFiles.length === 0);
371
+ const sources = readsStdin ? [...namedFiles, STDIN_MARKER] : namedFiles;
372
+ if (sources.length === 0) {
297
373
  console.error('No input files specified');
298
374
  usage();
299
375
  process.exit(1);
@@ -303,15 +379,21 @@ function main() {
303
379
  usage();
304
380
  process.exit(1);
305
381
  }
306
- if (args.files.length > 1 && args.output && !fs.existsSync(args.output)) {
382
+ const renderMode = (args.renderMode || process.env.PODLITE_RENDER_MODE || 'production');
383
+ if (!RENDER_MODES.includes(renderMode)) {
384
+ console.error(`Unknown render mode: ${renderMode}. Supported: ${RENDER_MODES.join(', ')}`);
385
+ process.exit(1);
386
+ }
387
+ const toStdout = args.output === STDIN_MARKER;
388
+ if (sources.length > 1 && args.output && !toStdout && !fs.existsSync(args.output)) {
307
389
  fs.mkdirSync(args.output, { recursive: true });
308
390
  }
309
- for (const file of args.files) {
310
- if (!fs.existsSync(file)) {
391
+ for (const file of sources) {
392
+ if (file !== STDIN_MARKER && !fs.existsSync(file)) {
311
393
  console.error(`File not found: ${file}`);
312
394
  process.exit(1);
313
395
  }
314
- convertFile(file, args.to, args.output || undefined, args.base || process.env.PODLITE_BASE);
396
+ convertFile(file, args.to, args.output || undefined, args.base || process.env.PODLITE_BASE, renderMode);
315
397
  }
316
398
  }
317
399
  main();
package/lib/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,143 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.isRuleOff = exports.ConfigError = void 0;
37
+ exports.findConfig = findConfig;
38
+ exports.readConfig = readConfig;
39
+ exports.applyRuleFlags = applyRuleFlags;
40
+ exports.applyConfig = applyConfig;
41
+ const fs = __importStar(require("fs"));
42
+ const path = __importStar(require("path"));
43
+ const SETTINGS = ['off', 'error', 'warning', 'info'];
44
+ const CONFIG_NAMES = ['.podlitelintrc.json', '.podlitelintrc.js'];
45
+ class ConfigError extends Error {
46
+ }
47
+ exports.ConfigError = ConfigError;
48
+ // Nearest config at or above the given directory. The first name of CONFIG_NAMES
49
+ // present in a directory wins; a directory closer to the file wins over one above.
50
+ function findConfig(startDir) {
51
+ let dir = path.resolve(startDir);
52
+ for (;;) {
53
+ for (const name of CONFIG_NAMES) {
54
+ const candidate = path.join(dir, name);
55
+ if (fs.existsSync(candidate))
56
+ return candidate;
57
+ }
58
+ const up = path.dirname(dir);
59
+ if (up === dir)
60
+ return undefined;
61
+ dir = up;
62
+ }
63
+ }
64
+ function readConfig(configPath) {
65
+ if (!configPath)
66
+ return {};
67
+ if (configPath.endsWith('.js'))
68
+ return readJsConfig(configPath);
69
+ let raw;
70
+ try {
71
+ raw = fs.readFileSync(configPath, 'utf-8');
72
+ }
73
+ catch (e) {
74
+ throw new ConfigError(`cannot read config ${configPath}: ${e.message}`);
75
+ }
76
+ let parsed;
77
+ try {
78
+ parsed = JSON.parse(raw);
79
+ }
80
+ catch (e) {
81
+ throw new ConfigError(`cannot read config ${configPath}: ${e.message}`);
82
+ }
83
+ return checkConfigShape(parsed, configPath);
84
+ }
85
+ function readJsConfig(configPath) {
86
+ let loaded;
87
+ try {
88
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
89
+ loaded = require(path.resolve(configPath));
90
+ }
91
+ catch (e) {
92
+ throw new ConfigError(`cannot read config ${configPath}: ${e.message}`);
93
+ }
94
+ const value = loaded?.default ?? loaded;
95
+ return checkConfigShape(value, configPath);
96
+ }
97
+ function checkConfigShape(parsed, configPath) {
98
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
99
+ throw new ConfigError(`config ${configPath} must hold an object`);
100
+ }
101
+ const rules = parsed.rules;
102
+ if (rules === undefined)
103
+ return {};
104
+ if (!rules || typeof rules !== 'object' || Array.isArray(rules)) {
105
+ throw new ConfigError(`config ${configPath}: "rules" must hold an object`);
106
+ }
107
+ const checked = {};
108
+ for (const [id, setting] of Object.entries(rules)) {
109
+ // a mistyped setting would turn the rule off without a word, so it is an error
110
+ if (typeof setting !== 'string' || !SETTINGS.includes(setting)) {
111
+ throw new ConfigError(`config ${configPath}: rule "${id}" is set to ${JSON.stringify(setting)}; use one of ${SETTINGS.join(', ')}`);
112
+ }
113
+ checked[id] = setting;
114
+ }
115
+ return { rules: checked };
116
+ }
117
+ // Flags stand above the file: they are typed for this run and mean it.
118
+ function applyRuleFlags(config, enable, disable) {
119
+ if (enable.length === 0 && disable.length === 0)
120
+ return config;
121
+ const rules = { ...(config.rules || {}) };
122
+ for (const id of disable)
123
+ rules[id] = 'off';
124
+ for (const id of enable)
125
+ delete rules[id];
126
+ return { ...config, rules };
127
+ }
128
+ const isRuleOff = (config, ruleId) => config.rules?.[ruleId] === 'off';
129
+ exports.isRuleOff = isRuleOff;
130
+ function applyConfig(violations, config) {
131
+ const rules = config.rules;
132
+ if (!rules)
133
+ return violations;
134
+ const out = [];
135
+ for (const violation of violations) {
136
+ const setting = rules[violation.rule];
137
+ if (setting === 'off')
138
+ continue;
139
+ out.push(setting ? { ...violation, severity: setting } : violation);
140
+ }
141
+ return out;
142
+ }
143
+ //# 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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"}
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.runRules = runRules;
4
+ const config_1 = require("./config");
4
5
  function runRules(ast, rules, ctx) {
5
- return rules.flatMap(rule => rule.check(ast, ctx));
6
+ const active = rules.filter(rule => !(0, config_1.isRuleOff)(ctx.config, rule.id));
7
+ return (0, config_1.applyConfig)(active.flatMap(rule => rule.check(ast, ctx)), ctx.config);
6
8
  }
7
9
  //# sourceMappingURL=engine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/lint/engine.ts"],"names":[],"mappings":";;AAGA,4BAEC;AAFD,SAAgB,QAAQ,CAAC,GAAoB,EAAE,KAAa,EAAE,GAAgB;IAC5E,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;AACpD,CAAC"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/lint/engine.ts"],"names":[],"mappings":";;AAIA,4BAMC;AARD,qCAAiD;AAEjD,SAAgB,QAAQ,CAAC,GAAoB,EAAE,KAAa,EAAE,GAAgB;IAC5E,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAA,kBAAS,EAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;IACpE,OAAO,IAAA,oBAAW,EAChB,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"}
@@ -2,6 +2,7 @@ import type { Violation } from '../types';
2
2
  export type FileReport = {
3
3
  filePath: string;
4
4
  violations: Violation[];
5
+ silenced?: number;
5
6
  };
6
7
  export type TextFormatOptions = {
7
8
  color: boolean;
@@ -24,7 +24,9 @@ function summaryLine(reports) {
24
24
  const nFiles = reports.length;
25
25
  const nErrors = totals.filter(v => v.severity === 'error').length;
26
26
  const nWarnings = totals.filter(v => v.severity === 'warning').length;
27
- return `${plural(nFiles, 'file', 'files')} checked, ${plural(nErrors, 'error', 'errors')}, ${plural(nWarnings, 'warning', 'warnings')}`;
27
+ const nSilenced = reports.reduce((sum, r) => sum + (r.silenced || 0), 0);
28
+ const head = `${plural(nFiles, 'file', 'files')} checked, ${plural(nErrors, 'error', 'errors')}, ${plural(nWarnings, 'warning', 'warnings')}`;
29
+ return nSilenced === 0 ? head : `${head}, ${nSilenced} silenced`;
28
30
  }
29
31
  function formatText(reports, opts) {
30
32
  const lines = [];
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/lint/formatters/text.ts"],"names":[],"mappings":";;AAoCA,gCAYC;AA1CD,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,CACjG,SAAS,EACT,SAAS,EACT,UAAU,CACX,EAAE,CAAA;AACL,CAAC;AAED,SAAgB,UAAU,CAAC,OAAqB,EAAE,IAAuB;IACvE,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,CAAA;YACzC,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,CAAA;YAC7C,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAA;QAC/G,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IACnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAA;IAC1D,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,CAAA;AAC3D,CAAC"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/lint/formatters/text.ts"],"names":[],"mappings":"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"}
@@ -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.verbatimBlocks.indexOf(b.name) !== -1);
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.verbatimBlocks.indexOf(top.name) !== -1;
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.verbatimBlocks.indexOf(top.name) !== -1) {
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.verbatimBlocks.indexOf(b.name) !== -1);
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();