podlite 0.0.79 → 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 (80) hide show
  1. package/CHANGELOG.podlite +28 -0
  2. package/esm/cli.js +79 -11
  3. package/esm/cli.js.map +1 -1
  4. package/esm/lint/config.d.ts +2 -0
  5. package/esm/lint/config.js +46 -0
  6. package/esm/lint/config.js.map +1 -1
  7. package/esm/lint/grammar/lint.js +7 -4
  8. package/esm/lint/grammar/lint.js.map +1 -1
  9. package/esm/lint/grammar/scan.d.ts +1 -1
  10. package/esm/lint/grammar/scan.js +12 -2
  11. package/esm/lint/grammar/scan.js.map +1 -1
  12. package/esm/lint/index.d.ts +11 -0
  13. package/esm/lint/index.js +29 -17
  14. package/esm/lint/index.js.map +1 -1
  15. package/esm/lint/parallel.d.ts +4 -0
  16. package/esm/lint/parallel.js +57 -0
  17. package/esm/lint/parallel.js.map +1 -0
  18. package/esm/lint/rules/abbreviated-attrs.d.ts +4 -0
  19. package/esm/lint/rules/abbreviated-attrs.js +67 -0
  20. package/esm/lint/rules/abbreviated-attrs.js.map +1 -0
  21. package/esm/lint/rules/dead-definitions.d.ts +3 -0
  22. package/esm/lint/rules/dead-definitions.js +80 -0
  23. package/esm/lint/rules/dead-definitions.js.map +1 -0
  24. package/esm/lint/rules/index.js +2 -0
  25. package/esm/lint/rules/index.js.map +1 -1
  26. package/esm/lint/rules/markdown-in-pod.d.ts +4 -0
  27. package/esm/lint/rules/markdown-in-pod.js +67 -0
  28. package/esm/lint/rules/markdown-in-pod.js.map +1 -0
  29. package/esm/lint/rules/table-column-width.js +10 -6
  30. package/esm/lint/rules/table-column-width.js.map +1 -1
  31. package/esm/lint/types.d.ts +1 -0
  32. package/esm/lint/worker.d.ts +5 -0
  33. package/esm/lint/worker.js +15 -0
  34. package/esm/lint/worker.js.map +1 -0
  35. package/esm/query.js +4 -1
  36. package/esm/query.js.map +1 -1
  37. package/esm/resolve-includes.js +56 -7
  38. package/esm/resolve-includes.js.map +1 -1
  39. package/esm/version.d.ts +1 -1
  40. package/esm/version.js +1 -1
  41. package/lib/cli.js +78 -10
  42. package/lib/cli.js.map +1 -1
  43. package/lib/lint/config.d.ts +2 -0
  44. package/lib/lint/config.js +48 -0
  45. package/lib/lint/config.js.map +1 -1
  46. package/lib/lint/grammar/lint.js +7 -4
  47. package/lib/lint/grammar/lint.js.map +1 -1
  48. package/lib/lint/grammar/scan.d.ts +1 -1
  49. package/lib/lint/grammar/scan.js +11 -1
  50. package/lib/lint/grammar/scan.js.map +1 -1
  51. package/lib/lint/index.d.ts +11 -0
  52. package/lib/lint/index.js +67 -15
  53. package/lib/lint/index.js.map +1 -1
  54. package/lib/lint/parallel.d.ts +4 -0
  55. package/lib/lint/parallel.js +95 -0
  56. package/lib/lint/parallel.js.map +1 -0
  57. package/lib/lint/rules/abbreviated-attrs.d.ts +4 -0
  58. package/lib/lint/rules/abbreviated-attrs.js +71 -0
  59. package/lib/lint/rules/abbreviated-attrs.js.map +1 -0
  60. package/lib/lint/rules/dead-definitions.d.ts +3 -0
  61. package/lib/lint/rules/dead-definitions.js +83 -0
  62. package/lib/lint/rules/dead-definitions.js.map +1 -0
  63. package/lib/lint/rules/index.js +2 -0
  64. package/lib/lint/rules/index.js.map +1 -1
  65. package/lib/lint/rules/markdown-in-pod.d.ts +4 -0
  66. package/lib/lint/rules/markdown-in-pod.js +71 -0
  67. package/lib/lint/rules/markdown-in-pod.js.map +1 -0
  68. package/lib/lint/rules/table-column-width.js +9 -5
  69. package/lib/lint/rules/table-column-width.js.map +1 -1
  70. package/lib/lint/types.d.ts +1 -0
  71. package/lib/lint/worker.d.ts +5 -0
  72. package/lib/lint/worker.js +17 -0
  73. package/lib/lint/worker.js.map +1 -0
  74. package/lib/query.js +4 -1
  75. package/lib/query.js.map +1 -1
  76. package/lib/resolve-includes.js +55 -6
  77. package/lib/resolve-includes.js.map +1 -1
  78. package/lib/version.d.ts +1 -1
  79. package/lib/version.js +1 -1
  80. package/package.json +13 -7
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deadDefinitionsRule = exports.DEAD_DEFINITIONS_RULE_ID = void 0;
4
+ const schema_1 = require("@podlite/schema");
5
+ exports.DEAD_DEFINITIONS_RULE_ID = 'dead-definitions';
6
+ const attr = (node, name) => {
7
+ const item = (Array.isArray(node.config) ? node.config : []).find(c => c && c.name === name);
8
+ return item && item.value !== undefined && item.value !== null ? String(item.value) : undefined;
9
+ };
10
+ // An alias node carries no location, so the line is read back from the source;
11
+ // a warning that cannot say where is a warning the author cannot act on.
12
+ const aliasLine = (source, name) => {
13
+ const lines = source.split(/\r?\n/);
14
+ const at = lines.findIndex(line => new RegExp(`^\\s*=alias\\s+${name}(\\s|$)`).test(line));
15
+ if (at === -1)
16
+ return undefined;
17
+ return { start: { line: at + 1, column: 1, offset: 0 }, end: { line: at + 1, column: 1, offset: 0 } };
18
+ };
19
+ const definitions = (ast) => {
20
+ const nodes = (0, schema_1.getFromTree)(ast, () => true);
21
+ const found = [];
22
+ for (const node of nodes) {
23
+ if (node.type === 'alias' && node.name) {
24
+ found.push({ kind: 'alias', name: node.name, location: node.location });
25
+ continue;
26
+ }
27
+ if (node.name === 'data') {
28
+ const key = attr(node, 'key');
29
+ if (key)
30
+ found.push({ kind: 'data', name: key, location: node.location });
31
+ }
32
+ }
33
+ return found;
34
+ };
35
+ const aliasUses = (ast) => {
36
+ const nodes = (0, schema_1.getFromTree)(ast, () => true);
37
+ const used = new Set();
38
+ for (const node of nodes) {
39
+ if (node.type !== 'fcode' || node.name !== 'A')
40
+ continue;
41
+ const name = (0, schema_1.getTextContentFromNode)(node)
42
+ ?.toString()
43
+ .trim();
44
+ if (name)
45
+ used.add(name);
46
+ }
47
+ return used;
48
+ };
49
+ // A data reference is read from the source rather than from the tree: the block
50
+ // that consumes it resolves the reference while the tree is built, so by the
51
+ // time a rule sees the tree the mention is already gone.
52
+ const dataUses = (source) => {
53
+ const used = new Set();
54
+ const reference = /data:([A-Za-z0-9_-]+)/g;
55
+ let match;
56
+ while ((match = reference.exec(source)) !== null)
57
+ used.add(match[1]);
58
+ return used;
59
+ };
60
+ exports.deadDefinitionsRule = {
61
+ id: exports.DEAD_DEFINITIONS_RULE_ID,
62
+ severity: 'warning',
63
+ check: (ast, ctx) => {
64
+ // without the source a data reference cannot be found at all, and reporting
65
+ // every keyed block as dead would be worse than saying nothing
66
+ const declared = definitions(ast).filter(item => item.kind === 'alias' || ctx.source !== undefined);
67
+ if (declared.length === 0)
68
+ return [];
69
+ const aliases = aliasUses(ast);
70
+ const keys = dataUses(ctx.source || '');
71
+ return declared
72
+ .filter(item => !(item.kind === 'alias' ? aliases.has(item.name) : keys.has(item.name)))
73
+ .map(item => ({
74
+ rule: exports.DEAD_DEFINITIONS_RULE_ID,
75
+ severity: 'warning',
76
+ message: item.kind === 'alias'
77
+ ? `=alias ${item.name} is never used; A<${item.name}> appears nowhere in the document`
78
+ : `=data :key<${item.name}> is never used; data:${item.name} appears nowhere in the document`,
79
+ location: item.location || (item.kind === 'alias' ? aliasLine(ctx.source || '', item.name) : undefined),
80
+ }));
81
+ },
82
+ };
83
+ //# sourceMappingURL=dead-definitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dead-definitions.js","sourceRoot":"","sources":["../../../src/lint/rules/dead-definitions.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ const media_absolute_file_1 = require("./media-absolute-file");
8
8
  const link_target_resolves_1 = require("./link-target-resolves");
9
9
  const attr_value_dropped_1 = require("./attr-value-dropped");
10
10
  const table_shape_1 = require("./table-shape");
11
+ const dead_definitions_1 = require("./dead-definitions");
11
12
  exports.DEFAULT_RULES = [
12
13
  syntax_valid_1.syntaxValidRule,
13
14
  heading_hierarchy_1.headingHierarchyRule,
@@ -16,5 +17,6 @@ exports.DEFAULT_RULES = [
16
17
  link_target_resolves_1.linkTargetResolvesRule,
17
18
  attr_value_dropped_1.attrValueDroppedRule,
18
19
  table_shape_1.tableShapeRule,
20
+ dead_definitions_1.deadDefinitionsRule,
19
21
  ];
20
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lint/rules/index.ts"],"names":[],"mappings":";;;AACA,iDAAgD;AAChD,2DAA0D;AAC1D,2CAA0C;AAC1C,+DAA6D;AAC7D,iEAA+D;AAC/D,6DAA2D;AAC3D,+CAA8C;AAEjC,QAAA,aAAa,GAAW;IACnC,8BAAe;IACf,wCAAoB;IACpB,wBAAY;IACZ,2CAAqB;IACrB,6CAAsB;IACtB,yCAAoB;IACpB,4BAAc;CACf,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lint/rules/index.ts"],"names":[],"mappings":";;;AACA,iDAAgD;AAChD,2DAA0D;AAC1D,2CAA0C;AAC1C,+DAA6D;AAC7D,iEAA+D;AAC/D,6DAA2D;AAC3D,+CAA8C;AAC9C,yDAAwD;AAE3C,QAAA,aAAa,GAAW;IACnC,8BAAe;IACf,wCAAoB;IACpB,wBAAY;IACZ,2CAAqB;IACrB,6CAAsB;IACtB,yCAAoB;IACpB,4BAAc;IACd,sCAAmB;CACpB,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { Violation, SourceRule } from '../types';
2
+ export declare const MARKDOWN_IN_POD_RULE_ID = "markdown-in-pod";
3
+ export declare const markdownInPodRule: SourceRule;
4
+ export declare function scanMarkdownInPod(content: string): Violation[];
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.markdownInPodRule = exports.MARKDOWN_IN_POD_RULE_ID = void 0;
4
+ exports.scanMarkdownInPod = scanMarkdownInPod;
5
+ const schema_1 = require("@podlite/schema");
6
+ exports.MARKDOWN_IN_POD_RULE_ID = 'markdown-in-pod';
7
+ exports.markdownInPodRule = {
8
+ id: exports.MARKDOWN_IN_POD_RULE_ID,
9
+ severity: 'warning',
10
+ };
11
+ const FOREIGN = [
12
+ { test: /^\s*#{1,6}\s+\S/, says: 'a heading written with hashes is text here; write =head1 and its levels' },
13
+ {
14
+ test: /^\s*\|?[\s:|-]*-[\s:|-]*\|[\s:|-]*$/,
15
+ says: 'a row of bars and dashes is text here; a table is written as =begin table with its own separator',
16
+ },
17
+ { test: /\*\*[^*\s](?:[^*]*[^*\s])?\*\*/, says: 'a pair of asterisks is text here; bold is written as B<>' },
18
+ ];
19
+ // Talk about Markdown is legal: a line whose construct sits inside an inline
20
+ // code span is showing the markup, not using it.
21
+ const insideCode = (line) => /C<[^>]*>/.test(line) || /`[^`]+`/.test(line);
22
+ function scanMarkdownInPod(content) {
23
+ const lines = content.split(/\r?\n/);
24
+ const open = [];
25
+ const violations = [];
26
+ let abbreviatedTable = false;
27
+ for (let i = 0; i < lines.length; i++) {
28
+ const line = lines[i];
29
+ const end = line.match(/^\s*=end\s+([\w-]+)/);
30
+ if (end) {
31
+ open.pop();
32
+ continue;
33
+ }
34
+ const begin = line.match(/^\s*=begin\s+([\w-]+)/);
35
+ if (begin) {
36
+ open.push(begin[1]);
37
+ abbreviatedTable = false;
38
+ continue;
39
+ }
40
+ // a dash separator belongs to a table written the short way too, and that
41
+ // block runs to the first blank line
42
+ if (/^\s*=(?:for\s+)?table\b/.test(line)) {
43
+ abbreviatedTable = true;
44
+ continue;
45
+ }
46
+ if (abbreviatedTable && line.trim() === '')
47
+ abbreviatedTable = false;
48
+ if (/^\s*=/.test(line))
49
+ abbreviatedTable = false;
50
+ if (open.some(schema_1.isVerbatimBlock) || open.includes('data') || abbreviatedTable)
51
+ continue;
52
+ if (insideCode(line))
53
+ continue;
54
+ for (const foreign of FOREIGN) {
55
+ if (!foreign.test.test(line))
56
+ continue;
57
+ violations.push({
58
+ rule: exports.MARKDOWN_IN_POD_RULE_ID,
59
+ severity: 'warning',
60
+ message: foreign.says,
61
+ location: {
62
+ start: { line: i + 1, column: 1, offset: 0 },
63
+ end: { line: i + 1, column: 1, offset: 0 },
64
+ },
65
+ });
66
+ break;
67
+ }
68
+ }
69
+ return violations;
70
+ }
71
+ //# sourceMappingURL=markdown-in-pod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-in-pod.js","sourceRoot":"","sources":["../../../src/lint/rules/markdown-in-pod.ts"],"names":[],"mappings":";;;AA6BA,8CAgDC;AA7ED,4CAAiD;AAGpC,QAAA,uBAAuB,GAAG,iBAAiB,CAAA;AAE3C,QAAA,iBAAiB,GAAe;IAC3C,EAAE,EAAE,+BAAuB;IAC3B,QAAQ,EAAE,SAAS;CACpB,CAAA;AAQD,MAAM,OAAO,GAAc;IACzB,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,yEAAyE,EAAE;IAC5G;QACE,IAAI,EAAE,qCAAqC;QAC3C,IAAI,EAAE,kGAAkG;KACzG;IACD,EAAE,IAAI,EAAE,gCAAgC,EAAE,IAAI,EAAE,0DAA0D,EAAE;CAC7G,CAAA;AAED,6EAA6E;AAC7E,iDAAiD;AACjD,MAAM,UAAU,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAE3F,SAAgB,iBAAiB,CAAC,OAAe;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACpC,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,MAAM,UAAU,GAAgB,EAAE,CAAA;IAClC,IAAI,gBAAgB,GAAG,KAAK,CAAA;IAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QAErB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;QAC7C,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC,GAAG,EAAE,CAAA;YACV,SAAQ;QACV,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;QACjD,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YACnB,gBAAgB,GAAG,KAAK,CAAA;YACxB,SAAQ;QACV,CAAC;QACD,0EAA0E;QAC1E,qCAAqC;QACrC,IAAI,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,gBAAgB,GAAG,IAAI,CAAA;YACvB,SAAQ;QACV,CAAC;QACD,IAAI,gBAAgB,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,gBAAgB,GAAG,KAAK,CAAA;QACpE,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,gBAAgB,GAAG,KAAK,CAAA;QAEhD,IAAI,IAAI,CAAC,IAAI,CAAC,wBAAe,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,gBAAgB;YAAE,SAAQ;QACrF,IAAI,UAAU,CAAC,IAAI,CAAC;YAAE,SAAQ;QAE9B,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,SAAQ;YACtC,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,+BAAuB;gBAC7B,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,OAAO,CAAC,IAAI;gBACrB,QAAQ,EAAE;oBACR,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;oBAC5C,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;iBAC3C;aACF,CAAC,CAAA;YACF,MAAK;QACP,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC"}
@@ -26,10 +26,14 @@ const isEdge = (char) => char === '|' || char === '+' || char === ' ';
26
26
  const collides = (line, boundary) => {
27
27
  if (boundary >= line.length)
28
28
  return false;
29
- // content standing on the boundary, or pressed against it with no space left
29
+ // content standing on the boundary is wrong however the row is written
30
30
  if (!isEdge(line[boundary]))
31
31
  return true;
32
- return boundary > 0 && !isEdge(line[boundary - 1]);
32
+ // pressed against the boundary only matters where the row draws a bar of its
33
+ // own: a row whose cells are held apart by spaces may fill its column to the
34
+ // last position, and the parser reads it correctly
35
+ const drawsBar = line[boundary] === '|' || line[boundary] === '+';
36
+ return drawsBar && boundary > 0 && !isEdge(line[boundary - 1]);
33
37
  };
34
38
  const checkTable = (lines) => {
35
39
  const separator = lines.find(l => SEPARATOR_LINE.test(l.text) && hasBar(l.text));
@@ -62,7 +66,7 @@ const checkTable = (lines) => {
62
66
  function scanTableColumns(content) {
63
67
  const lines = content.split(/\r?\n/);
64
68
  // a table keeps its content verbatim too, and it is the one being read here
65
- const verbatim = new Set(schema_1.VERBATIM_BLOCKS.filter(name => name !== 'table'));
69
+ const verbatim = (name) => name !== 'table' && (0, schema_1.isVerbatimBlock)(name);
66
70
  const openBlocks = [];
67
71
  const violations = [];
68
72
  let table = null;
@@ -85,11 +89,11 @@ function scanTableColumns(content) {
85
89
  if (begin) {
86
90
  closeTable();
87
91
  openBlocks.push(begin[1]);
88
- if (begin[1] === 'table' && !openBlocks.some(b => verbatim.has(b)))
92
+ if (begin[1] === 'table' && !openBlocks.some(verbatim))
89
93
  table = [];
90
94
  continue;
91
95
  }
92
- if (openBlocks.some(b => verbatim.has(b)))
96
+ if (openBlocks.some(verbatim))
93
97
  continue;
94
98
  if (abbreviated) {
95
99
  closeTable();
@@ -1 +1 @@
1
- {"version":3,"file":"table-column-width.js","sourceRoot":"","sources":["../../../src/lint/rules/table-column-width.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"table-column-width.js","sourceRoot":"","sources":["../../../src/lint/rules/table-column-width.ts"],"names":[],"mappings":";;;AAmEA,4CA6CC;AAhHD,4CAAiD;AAGpC,QAAA,0BAA0B,GAAG,oBAAoB,CAAA;AAEjD,QAAA,oBAAoB,GAAe;IAC9C,EAAE,EAAE,kCAA0B;IAC9B,QAAQ,EAAE,SAAS;CACpB,CAAA;AAED,MAAM,cAAc,GAAG,4BAA4B,CAAA;AACnD,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAEzE,8EAA8E;AAC9E,4EAA4E;AAC5E,0EAA0E;AAC1E,4DAA4D;AAC5D,MAAM,UAAU,GAAG,CAAC,SAAiB,EAAY,EAAE;IACjD,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC/D,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAA;AAE7E,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,QAAgB,EAAW,EAAE;IAC3D,IAAI,QAAQ,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IACzC,uEAAuE;IACvE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IACxC,6EAA6E;IAC7E,6EAA6E;IAC7E,mDAAmD;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAA;IACjE,OAAO,QAAQ,IAAI,QAAQ,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAA;AAChE,CAAC,CAAA;AAID,MAAM,UAAU,GAAG,CAAC,KAAkB,EAAe,EAAE;IACrD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAChF,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAA;IACzB,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAC1C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAEnC,MAAM,UAAU,GAAgB,EAAE,CAAA;IAClC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,SAAQ;QACzD,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAQ;QAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QACpD,IAAI,GAAG,KAAK,SAAS;YAAE,SAAQ;QAC/B,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,kCAA0B;YAChC,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,8CACP,GAAG,GAAG,CACR,4DAA4D;YAC5D,QAAQ,EAAE;gBACR,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;gBACrD,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;aACpD;SACF,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AAED,SAAgB,gBAAgB,CAAC,OAAe;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACpC,4EAA4E;IAC5E,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,IAAA,wBAAe,EAAC,IAAI,CAAC,CAAA;IAC5E,MAAM,UAAU,GAAa,EAAE,CAAA;IAC/B,MAAM,UAAU,GAAgB,EAAE,CAAA;IAClC,IAAI,KAAK,GAAuB,IAAI,CAAA;IAEpC,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,KAAK;YAAE,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;QAChD,KAAK,GAAG,IAAI,CAAA;IACd,CAAC,CAAA;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;QAEzD,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO;gBAAE,UAAU,EAAE,CAAA;YACpC,UAAU,CAAC,GAAG,EAAE,CAAA;YAChB,SAAQ;QACV,CAAC;QACD,IAAI,KAAK,EAAE,CAAC;YACV,UAAU,EAAE,CAAA;YACZ,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YACzB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAAE,KAAK,GAAG,EAAE,CAAA;YAClE,SAAQ;QACV,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,SAAQ;QACvC,IAAI,WAAW,EAAE,CAAC;YAChB,UAAU,EAAE,CAAA;YACZ,KAAK,GAAG,EAAE,CAAA;YACV,SAAQ;QACV,CAAC;QACD,oDAAoD;QACpD,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACjE,UAAU,EAAE,CAAA;YACZ,SAAQ;QACV,CAAC;QACD,IAAI,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAC9C,CAAC;IACD,UAAU,EAAE,CAAA;IACZ,OAAO,UAAU,CAAA;AACnB,CAAC"}
@@ -9,6 +9,7 @@ export type LintContext = {
9
9
  filePath: string;
10
10
  fileType: FileType;
11
11
  config: LintConfig;
12
+ source?: string;
12
13
  };
13
14
  export type Violation = {
14
15
  rule: string;
@@ -0,0 +1,5 @@
1
+ import type { FileReport } from './formatters/text';
2
+ export type WorkerResult = {
3
+ index: number;
4
+ report: FileReport;
5
+ };
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const worker_threads_1 = require("worker_threads");
4
+ const index_1 = require("./index");
5
+ if (worker_threads_1.parentPort) {
6
+ const port = worker_threads_1.parentPort;
7
+ // the first message back says the parser is loaded and the thread can be fed
8
+ port.postMessage('ready');
9
+ port.on('message', (batch) => {
10
+ const done = batch.jobs.map(job => ({
11
+ index: job.index,
12
+ report: (0, index_1.lintFile)(job.filePath, batch.config),
13
+ }));
14
+ port.postMessage(done);
15
+ });
16
+ }
17
+ //# sourceMappingURL=worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/lint/worker.ts"],"names":[],"mappings":";;AAAA,mDAA2C;AAE3C,mCAAkC;AAOlC,IAAI,2BAAU,EAAE,CAAC;IACf,MAAM,IAAI,GAAG,2BAAU,CAAA;IACvB,6EAA6E;IAC7E,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IACzB,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,KAAY,EAAE,EAAE;QAClC,MAAM,IAAI,GAAmB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClD,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,MAAM,EAAE,IAAA,gBAAQ,EAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;SAC7C,CAAC,CAAC,CAAA;QACH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC,CAAC,CAAA;AACJ,CAAC"}
package/lib/query.js CHANGED
@@ -57,7 +57,10 @@ const renderViaRoot = (block, serializer) => {
57
57
  };
58
58
  const formatBlocks = (format, matches) => {
59
59
  if (format === 'json') {
60
- return JSON.stringify(matches.map(m => m.block), null, 2);
60
+ // without the source, a query over several files answers "here are the
61
+ // blocks" and drops "from where", which leaves the caller no way back to
62
+ // the document
63
+ return JSON.stringify(matches.map(m => ({ file: m.source.file, ...m.block })), null, 2);
61
64
  }
62
65
  if (format === 'podlite') {
63
66
  return matches
package/lib/query.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,45 @@ const fs = __importStar(require("fs"));
38
38
  const path = __importStar(require("path"));
39
39
  const schema_1 = require("@podlite/schema");
40
40
  const isIncludeBlock = (node) => node && typeof node === 'object' && node.type === 'block' && node.name === 'include';
41
+ const hasMask = (target) => /[*?]/.test(target);
42
+ const reachesSubdirs = (target) => target.includes('**');
43
+ // A mask that crosses directories could otherwise walk a whole disk from a
44
+ // short prefix.
45
+ const maxDepth = 32;
46
+ // Everything up to the last separator that carries no mask; the rest is matched
47
+ // by the selector itself, which already knows the pattern language.
48
+ const fixedPrefix = (target) => {
49
+ const parts = target.split('/');
50
+ const upto = parts.findIndex(hasMask);
51
+ return parts.slice(0, upto === -1 ? parts.length : upto).join('/');
52
+ };
53
+ const listDir = (dir, deep, depth = 0) => {
54
+ let entries;
55
+ try {
56
+ entries = fs.readdirSync(dir, { withFileTypes: true });
57
+ }
58
+ catch {
59
+ return [];
60
+ }
61
+ const named = entries.filter(e => !e.name.startsWith('.')).sort((a, b) => (a.name < b.name ? -1 : 1));
62
+ const files = named.filter(e => e.isFile()).map(e => e.name);
63
+ if (!deep || depth >= maxDepth)
64
+ return files;
65
+ const nested = named
66
+ .filter(e => e.isDirectory())
67
+ .flatMap(e => listDir(path.join(dir, e.name), deep, depth + 1).map(inner => `${e.name}/${inner}`));
68
+ return [...files, ...nested];
69
+ };
70
+ // Candidate paths for a masked target, written the way the target is written so
71
+ // the selector matches them back. Matching runs before the file is read: the
72
+ // directory may hold anything, and a mask that does not name it must not send
73
+ // it through the parser.
74
+ const expandMask = (target, baseDir) => {
75
+ const prefix = fixedPrefix(target);
76
+ return listDir(path.resolve(baseDir, prefix), reachesSubdirs(target))
77
+ .map(name => (prefix ? `${prefix}/${name}` : name))
78
+ .filter(file => (0, schema_1.filePathMatches)(file, target));
79
+ };
41
80
  const keepBlocks = (items) => items.filter(item => item && typeof item === 'object' && !('file' in item));
42
81
  const unwrapRoot = (blocks) => blocks.flatMap((b) => b && b.type === 'block' && b.name === 'root' && Array.isArray(b.content) ? b.content : [b]);
43
82
  const resolveIncludes = (tree, opts) => {
@@ -50,14 +89,24 @@ const resolveIncludes = (tree, opts) => {
50
89
  const parsed = selector ? (0, schema_1.parseSelector)(selector) : undefined;
51
90
  if (!selector || !parsed || parsed.scheme !== 'file' || !parsed.document)
52
91
  return node;
53
- const target = path.resolve(baseDir, parsed.document);
54
- if (stack.includes(target))
55
- return [];
56
- if (!fs.existsSync(target)) {
92
+ const masked = hasMask(parsed.document);
93
+ const written = masked ? expandMask(parsed.document, baseDir) : [parsed.document];
94
+ if (!masked && !fs.existsSync(path.resolve(baseDir, parsed.document))) {
57
95
  throw new Error(`include target not found: ${parsed.document}`);
58
96
  }
59
- const subTree = walkNode(opts.parse(fs.readFileSync(target, 'utf-8')), path.dirname(target), [...stack, target]);
60
- return unwrapRoot(keepBlocks((0, schema_1.runSelector)(selector, [{ file: parsed.document, node: subTree }])));
97
+ const docs = [];
98
+ for (const file of written) {
99
+ const target = path.resolve(baseDir, file);
100
+ if (stack.includes(target))
101
+ continue;
102
+ docs.push({
103
+ file,
104
+ node: walkNode(opts.parse(fs.readFileSync(target, 'utf-8')), path.dirname(target), [...stack, target]),
105
+ });
106
+ }
107
+ if (docs.length === 0)
108
+ return [];
109
+ return unwrapRoot(keepBlocks((0, schema_1.runSelector)(selector, docs)));
61
110
  }
62
111
  if (Array.isArray(node.content))
63
112
  return { ...node, content: walkList(node.content, baseDir, stack) };
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-includes.js","sourceRoot":"","sources":["../src/resolve-includes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve-includes.js","sourceRoot":"","sources":["../src/resolve-includes.ts"],"names":[],"mappings":"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"}
package/lib/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const version = "0.0.79";
1
+ export declare const version = "0.0.80";
package/lib/version.js CHANGED
@@ -2,5 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.version = void 0;
4
4
  // generated by scripts/inject-version.mjs — do not edit by hand
5
- exports.version = '0.0.79';
5
+ exports.version = '0.0.80';
6
6
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "podlite",
3
- "version": "0.0.79",
3
+ "version": "0.0.80",
4
4
  "description": "Podlite markup language parser — Markdown-compatible, with native support for diagrams, formulas, and custom blocks",
5
5
  "homepage": "https://podlite.org",
6
6
  "repository": {
@@ -17,6 +17,12 @@
17
17
  "require": "./lib/index.js",
18
18
  "default": "./lib/index.js"
19
19
  },
20
+ "./lint": {
21
+ "types": "./lib/lint/index.d.ts",
22
+ "import": "./esm/lint/index.js",
23
+ "require": "./lib/lint/index.js",
24
+ "default": "./lib/lint/index.js"
25
+ },
20
26
  "./package.json": "./package.json",
21
27
  "./lib/lint/*": {
22
28
  "types": "./lib/lint/*.d.ts",
@@ -74,12 +80,12 @@
74
80
  "url": "https://github.com/podlite/podlite/issues"
75
81
  },
76
82
  "dependencies": {
77
- "@podlite/diagram": "^0.0.70",
78
- "@podlite/formula": "0.0.48",
79
- "@podlite/image": "^0.0.65",
80
- "@podlite/markdown": "0.0.59",
81
- "@podlite/schema": "^0.0.66",
82
- "@podlite/toc": "0.0.59",
83
+ "@podlite/diagram": "^0.0.71",
84
+ "@podlite/formula": "0.0.49",
85
+ "@podlite/image": "^0.0.66",
86
+ "@podlite/markdown": "0.0.60",
87
+ "@podlite/schema": "^0.0.67",
88
+ "@podlite/toc": "0.0.60",
83
89
  "nanoid": "3.1.30"
84
90
  },
85
91
  "devDependencies": {