podlite 0.0.57 → 0.0.59

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 (72) hide show
  1. package/CHANGELOG.podlite +14 -0
  2. package/esm/cli.js +31 -5
  3. package/esm/cli.js.map +1 -1
  4. package/esm/index.js +10 -2
  5. package/esm/index.js.map +1 -1
  6. package/esm/lint/formatters/json.d.ts +9 -0
  7. package/esm/lint/formatters/json.js +5 -0
  8. package/esm/lint/formatters/json.js.map +1 -0
  9. package/esm/lint/formatters/text.d.ts +9 -0
  10. package/esm/lint/formatters/text.js +41 -0
  11. package/esm/lint/formatters/text.js.map +1 -0
  12. package/esm/lint/grammar/lint.d.ts +14 -0
  13. package/esm/lint/grammar/lint.js +910 -0
  14. package/esm/lint/grammar/lint.js.map +1 -0
  15. package/esm/lint/grammar/scan.d.ts +9 -0
  16. package/esm/lint/grammar/scan.js +36 -0
  17. package/esm/lint/grammar/scan.js.map +1 -0
  18. package/esm/lint/index.d.ts +7 -1
  19. package/esm/lint/index.js +45 -10
  20. package/esm/lint/index.js.map +1 -1
  21. package/esm/lint/loader.d.ts +5 -0
  22. package/esm/lint/loader.js +19 -0
  23. package/esm/lint/loader.js.map +1 -0
  24. package/esm/lint/rules/heading-hierarchy.d.ts +3 -0
  25. package/esm/lint/rules/heading-hierarchy.js +27 -0
  26. package/esm/lint/rules/heading-hierarchy.js.map +1 -0
  27. package/esm/lint/rules/id-unique.d.ts +10 -0
  28. package/esm/lint/rules/id-unique.js +41 -0
  29. package/esm/lint/rules/id-unique.js.map +1 -0
  30. package/esm/lint/rules/index.d.ts +2 -0
  31. package/esm/lint/rules/index.js +4 -0
  32. package/esm/lint/rules/index.js.map +1 -0
  33. package/esm/lint/rules/syntax-valid.d.ts +4 -0
  34. package/esm/lint/rules/syntax-valid.js +30 -0
  35. package/esm/lint/rules/syntax-valid.js.map +1 -0
  36. package/esm/lint/types.d.ts +4 -0
  37. package/lib/cli.js +31 -5
  38. package/lib/cli.js.map +1 -1
  39. package/lib/index.js +10 -2
  40. package/lib/index.js.map +1 -1
  41. package/lib/lint/formatters/json.d.ts +9 -0
  42. package/lib/lint/formatters/json.js +9 -0
  43. package/lib/lint/formatters/json.js.map +1 -0
  44. package/lib/lint/formatters/text.d.ts +9 -0
  45. package/lib/lint/formatters/text.js +45 -0
  46. package/lib/lint/formatters/text.js.map +1 -0
  47. package/lib/lint/grammar/lint.d.ts +14 -0
  48. package/lib/lint/grammar/lint.js +910 -0
  49. package/lib/lint/grammar/lint.js.map +1 -0
  50. package/lib/lint/grammar/scan.d.ts +9 -0
  51. package/lib/lint/grammar/scan.js +40 -0
  52. package/lib/lint/grammar/scan.js.map +1 -0
  53. package/lib/lint/index.d.ts +7 -1
  54. package/lib/lint/index.js +45 -10
  55. package/lib/lint/index.js.map +1 -1
  56. package/lib/lint/loader.d.ts +5 -0
  57. package/lib/lint/loader.js +44 -0
  58. package/lib/lint/loader.js.map +1 -0
  59. package/lib/lint/rules/heading-hierarchy.d.ts +3 -0
  60. package/lib/lint/rules/heading-hierarchy.js +30 -0
  61. package/lib/lint/rules/heading-hierarchy.js.map +1 -0
  62. package/lib/lint/rules/id-unique.d.ts +10 -0
  63. package/lib/lint/rules/id-unique.js +45 -0
  64. package/lib/lint/rules/id-unique.js.map +1 -0
  65. package/lib/lint/rules/index.d.ts +2 -0
  66. package/lib/lint/rules/index.js +7 -0
  67. package/lib/lint/rules/index.js.map +1 -0
  68. package/lib/lint/rules/syntax-valid.d.ts +4 -0
  69. package/lib/lint/rules/syntax-valid.js +34 -0
  70. package/lib/lint/rules/syntax-valid.js.map +1 -0
  71. package/lib/lint/types.d.ts +4 -0
  72. package/package.json +11 -8
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../../src/lint/grammar/lint.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { Violation, SourceRule } from '../types';
2
+ export declare const ATTR_NESTED_ANGLE_RULE_ID = "attr-nested-angle";
3
+ export declare const DELIMITED_BLOCK_BALANCE_RULE_ID = "delimited-block-balance";
4
+ export declare const ATTR_CONTINUATION_DROPPED_RULE_ID = "attr-continuation-dropped";
5
+ export declare const attrNestedAngleRule: SourceRule;
6
+ export declare const delimitedBlockBalanceRule: SourceRule;
7
+ export declare const attrContinuationDroppedRule: SourceRule;
8
+ export declare const SOURCE_RULES: SourceRule[];
9
+ export declare function scanSourceRules(content: string): Violation[];
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.scanSourceRules = exports.SOURCE_RULES = exports.attrContinuationDroppedRule = exports.delimitedBlockBalanceRule = exports.attrNestedAngleRule = exports.ATTR_CONTINUATION_DROPPED_RULE_ID = exports.DELIMITED_BLOCK_BALANCE_RULE_ID = exports.ATTR_NESTED_ANGLE_RULE_ID = void 0;
4
+ const lintGrammar = require('./lint.js');
5
+ exports.ATTR_NESTED_ANGLE_RULE_ID = 'attr-nested-angle';
6
+ exports.DELIMITED_BLOCK_BALANCE_RULE_ID = 'delimited-block-balance';
7
+ exports.ATTR_CONTINUATION_DROPPED_RULE_ID = 'attr-continuation-dropped';
8
+ exports.attrNestedAngleRule = {
9
+ id: exports.ATTR_NESTED_ANGLE_RULE_ID,
10
+ severity: 'error',
11
+ };
12
+ exports.delimitedBlockBalanceRule = {
13
+ id: exports.DELIMITED_BLOCK_BALANCE_RULE_ID,
14
+ severity: 'error',
15
+ };
16
+ exports.attrContinuationDroppedRule = {
17
+ id: exports.ATTR_CONTINUATION_DROPPED_RULE_ID,
18
+ severity: 'warning',
19
+ };
20
+ exports.SOURCE_RULES = [exports.attrNestedAngleRule, exports.delimitedBlockBalanceRule, exports.attrContinuationDroppedRule];
21
+ function scanSourceRules(content) {
22
+ const opts = { diagnostics: [], _blockStack: [], _inDirective: false };
23
+ try {
24
+ lintGrammar.parse(content, opts);
25
+ }
26
+ catch {
27
+ // Grammar has a `.` fallback for any character — should not fail; swallow defensively.
28
+ }
29
+ for (const item of opts._blockStack) {
30
+ opts.diagnostics.push({
31
+ rule: exports.DELIMITED_BLOCK_BALANCE_RULE_ID,
32
+ severity: 'error',
33
+ message: `=begin ${item.name} is not closed before end of file`,
34
+ location: item.location,
35
+ });
36
+ }
37
+ return opts.diagnostics;
38
+ }
39
+ exports.scanSourceRules = scanSourceRules;
40
+ //# sourceMappingURL=scan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../src/lint/grammar/scan.ts"],"names":[],"mappings":";;;AAGA,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;AAE3B,QAAA,yBAAyB,GAAG,mBAAmB,CAAA;AAC/C,QAAA,+BAA+B,GAAG,yBAAyB,CAAA;AAC3D,QAAA,iCAAiC,GAAG,2BAA2B,CAAA;AAE/D,QAAA,mBAAmB,GAAe;IAC7C,EAAE,EAAE,iCAAyB;IAC7B,QAAQ,EAAE,OAAO;CAClB,CAAA;AAEY,QAAA,yBAAyB,GAAe;IACnD,EAAE,EAAE,uCAA+B;IACnC,QAAQ,EAAE,OAAO;CAClB,CAAA;AAEY,QAAA,2BAA2B,GAAe;IACrD,EAAE,EAAE,yCAAiC;IACrC,QAAQ,EAAE,SAAS;CACpB,CAAA;AAEY,QAAA,YAAY,GAAiB,CAAC,2BAAmB,EAAE,iCAAyB,EAAE,mCAA2B,CAAC,CAAA;AASvH,SAAgB,eAAe,CAAC,OAAe;IAC7C,MAAM,IAAI,GAAmB,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAA;IACtF,IAAI;QACF,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;KACjC;IAAC,MAAM;QACN,uFAAuF;KACxF;IACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE;QACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,uCAA+B;YACrC,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,UAAU,IAAI,CAAC,IAAI,mCAAmC;YAC/D,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAA;KACH;IACD,OAAO,IAAI,CAAC,WAAW,CAAA;AACzB,CAAC;AAhBD,0CAgBC"}
@@ -1 +1,7 @@
1
- export declare function runLint(files: string[]): number;
1
+ export declare type LintFormat = 'text' | 'json';
2
+ export declare type LintOptions = {
3
+ strict: boolean;
4
+ format: LintFormat;
5
+ configPath?: string;
6
+ };
7
+ export declare function runLint(files: string[], options: LintOptions): number;
package/lib/lint/index.js CHANGED
@@ -1,16 +1,51 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.runLint = void 0;
4
- /* =begin pod
5
- =head2 C<runLint>
6
-
7
- Stub entry point for the C<podlite lint> subcommand. Returns the exit code
8
- the CLI should propagate. Until rules land (Track 7 phase 2), it logs a
9
- placeholder and exits cleanly.
10
-
11
- =end pod */
12
- function runLint(files) {
13
- console.log(`lint: stub — received ${files.length} file(s); rules not yet implemented`);
4
+ const syntax_valid_1 = require("./rules/syntax-valid");
5
+ const rules_1 = require("./rules");
6
+ const engine_1 = require("./engine");
7
+ const loader_1 = require("./loader");
8
+ const text_1 = require("./formatters/text");
9
+ const json_1 = require("./formatters/json");
10
+ const scan_1 = require("./grammar/scan");
11
+ function lintFile(filePath) {
12
+ const violations = [];
13
+ let content;
14
+ try {
15
+ content = (0, loader_1.readFile)(filePath);
16
+ }
17
+ catch (e) {
18
+ violations.push({
19
+ rule: 'io',
20
+ severity: 'error',
21
+ message: `Cannot read file: ${e.message}`,
22
+ });
23
+ return violations;
24
+ }
25
+ violations.push(...(0, scan_1.scanSourceRules)(content));
26
+ const fileType = (0, loader_1.detectFileType)(filePath);
27
+ try {
28
+ const ast = (0, loader_1.parseContent)(content, fileType);
29
+ const ctx = { filePath, fileType, config: {} };
30
+ violations.push(...(0, engine_1.runRules)(ast, rules_1.DEFAULT_RULES, ctx));
31
+ }
32
+ catch (e) {
33
+ violations.push((0, syntax_valid_1.makeSyntaxViolation)(e, filePath));
34
+ }
35
+ return violations;
36
+ }
37
+ function runLint(files, options) {
38
+ const reports = files.map(filePath => ({ filePath, violations: lintFile(filePath) }));
39
+ const output = options.format === 'json' ? (0, json_1.formatJson)(reports) : (0, text_1.formatText)(reports, { color: process.stdout.isTTY === true });
40
+ if (output)
41
+ process.stdout.write(output);
42
+ const totals = reports.flatMap(r => r.violations);
43
+ const hasError = totals.some(v => v.severity === 'error');
44
+ const hasWarning = totals.some(v => v.severity === 'warning');
45
+ if (hasError)
46
+ return 1;
47
+ if (options.strict && hasWarning)
48
+ return 1;
14
49
  return 0;
15
50
  }
16
51
  exports.runLint = runLint;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lint/index.ts"],"names":[],"mappings":";;;AAAA;;;;;;;WAOW;AACX,SAAgB,OAAO,CAAC,KAAe;IACrC,OAAO,CAAC,GAAG,CAAC,yBAAyB,KAAK,CAAC,MAAM,qCAAqC,CAAC,CAAA;IACvF,OAAO,CAAC,CAAA;AACV,CAAC;AAHD,0BAGC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lint/index.ts"],"names":[],"mappings":";;;AACA,uDAA0D;AAC1D,mCAAuC;AACvC,qCAAmC;AACnC,qCAAiE;AACjE,4CAA0D;AAC1D,4CAA8C;AAC9C,yCAAgD;AAUhD,SAAS,QAAQ,CAAC,QAAgB;IAChC,MAAM,UAAU,GAAgB,EAAE,CAAA;IAClC,IAAI,OAAe,CAAA;IACnB,IAAI;QACF,OAAO,GAAG,IAAA,iBAAQ,EAAC,QAAQ,CAAC,CAAA;KAC7B;IAAC,OAAO,CAAC,EAAE;QACV,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,qBAAsB,CAAW,CAAC,OAAO,EAAE;SACrD,CAAC,CAAA;QACF,OAAO,UAAU,CAAA;KAClB;IACD,UAAU,CAAC,IAAI,CAAC,GAAG,IAAA,sBAAe,EAAC,OAAO,CAAC,CAAC,CAAA;IAE5C,MAAM,QAAQ,GAAG,IAAA,uBAAc,EAAC,QAAQ,CAAC,CAAA;IACzC,IAAI;QACF,MAAM,GAAG,GAAG,IAAA,qBAAY,EAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC3C,MAAM,GAAG,GAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;QAC3D,UAAU,CAAC,IAAI,CAAC,GAAG,IAAA,iBAAQ,EAAC,GAAG,EAAE,qBAAa,EAAE,GAAG,CAAC,CAAC,CAAA;KACtD;IAAC,OAAO,CAAC,EAAE;QACV,UAAU,CAAC,IAAI,CAAC,IAAA,kCAAmB,EAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;KAClD;IACD,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,SAAgB,OAAO,CAAC,KAAe,EAAE,OAAoB;IAC3D,MAAM,OAAO,GAAiB,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;IAEnG,MAAM,MAAM,GACV,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,IAAA,iBAAU,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAA,iBAAU,EAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC,CAAA;IACjH,IAAI,MAAM;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAExC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;IACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAA;IACzD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAA;IAC7D,IAAI,QAAQ;QAAE,OAAO,CAAC,CAAA;IACtB,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU;QAAE,OAAO,CAAC,CAAA;IAC1C,OAAO,CAAC,CAAA;AACV,CAAC;AAbD,0BAaC"}
@@ -0,0 +1,5 @@
1
+ import { PodliteDocument } from '@podlite/schema';
2
+ import type { FileType } from './types';
3
+ export declare function detectFileType(filePath: string): FileType;
4
+ export declare function readFile(filePath: string): string;
5
+ export declare function parseContent(content: string, fileType: FileType): PodliteDocument;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.parseContent = exports.readFile = exports.detectFileType = void 0;
23
+ const fs = __importStar(require("fs"));
24
+ const path = __importStar(require("path"));
25
+ const schema_1 = require("@podlite/schema");
26
+ const markdown_1 = require("@podlite/markdown");
27
+ const podliteParser = (0, schema_1.podlitePluggable)();
28
+ function detectFileType(filePath) {
29
+ const ext = path.extname(filePath).toLowerCase();
30
+ return ext === '.md' ? 'md' : 'podlite';
31
+ }
32
+ exports.detectFileType = detectFileType;
33
+ function readFile(filePath) {
34
+ return fs.readFileSync(filePath, 'utf-8');
35
+ }
36
+ exports.readFile = readFile;
37
+ function parseContent(content, fileType) {
38
+ if (fileType === 'md') {
39
+ return (0, markdown_1.parseMd)(content);
40
+ }
41
+ return podliteParser.parse(content, { podMode: 1 });
42
+ }
43
+ exports.parseContent = parseContent;
44
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/lint/loader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAwB;AACxB,2CAA4B;AAC5B,4CAAmE;AACnE,gDAA2C;AAG3C,MAAM,aAAa,GAAG,IAAA,yBAAgB,GAAE,CAAA;AAExC,SAAgB,cAAc,CAAC,QAAgB;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;IAChD,OAAO,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;AACzC,CAAC;AAHD,wCAGC;AAED,SAAgB,QAAQ,CAAC,QAAgB;IACvC,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;AAC3C,CAAC;AAFD,4BAEC;AAED,SAAgB,YAAY,CAAC,OAAe,EAAE,QAAkB;IAC9D,IAAI,QAAQ,KAAK,IAAI,EAAE;QACrB,OAAO,IAAA,kBAAO,EAAC,OAAO,CAA+B,CAAA;KACtD;IACD,OAAO,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;AACrD,CAAC;AALD,oCAKC"}
@@ -0,0 +1,3 @@
1
+ import type { Rule } from '../types';
2
+ export declare const HEADING_HIERARCHY_RULE_ID = "heading-hierarchy";
3
+ export declare const headingHierarchyRule: Rule;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.headingHierarchyRule = exports.HEADING_HIERARCHY_RULE_ID = void 0;
4
+ const schema_1 = require("@podlite/schema");
5
+ exports.HEADING_HIERARCHY_RULE_ID = 'heading-hierarchy';
6
+ exports.headingHierarchyRule = {
7
+ id: exports.HEADING_HIERARCHY_RULE_ID,
8
+ severity: 'warning',
9
+ check: (ast, _ctx) => {
10
+ const heads = (0, schema_1.getFromTree)(ast, 'head');
11
+ const violations = [];
12
+ let prev = null;
13
+ for (const node of heads) {
14
+ const level = Number(node.level);
15
+ if (!Number.isFinite(level) || level < 1)
16
+ continue;
17
+ if (prev !== null && level - prev > 1) {
18
+ violations.push({
19
+ rule: exports.HEADING_HIERARCHY_RULE_ID,
20
+ severity: 'warning',
21
+ message: `Heading level jump from ${prev} to ${level}`,
22
+ location: node.location,
23
+ });
24
+ }
25
+ prev = level;
26
+ }
27
+ return violations;
28
+ },
29
+ };
30
+ //# sourceMappingURL=heading-hierarchy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heading-hierarchy.js","sourceRoot":"","sources":["../../../src/lint/rules/heading-hierarchy.ts"],"names":[],"mappings":";;;AAAA,4CAA8D;AAGjD,QAAA,yBAAyB,GAAG,mBAAmB,CAAA;AAE/C,QAAA,oBAAoB,GAAS;IACxC,EAAE,EAAE,iCAAyB;IAC7B,QAAQ,EAAE,SAAS;IACnB,KAAK,EAAE,CAAC,GAAoB,EAAE,IAAiB,EAAe,EAAE;QAC9D,MAAM,KAAK,GAAG,IAAA,oBAAW,EAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QACtC,MAAM,UAAU,GAAgB,EAAE,CAAA;QAClC,IAAI,IAAI,GAAkB,IAAI,CAAA;QAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,MAAM,KAAK,GAAG,MAAM,CAAE,IAAoC,CAAC,KAAK,CAAC,CAAA;YACjE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;gBAAE,SAAQ;YAClD,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC,EAAE;gBACrC,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,iCAAyB;oBAC/B,QAAQ,EAAE,SAAS;oBACnB,OAAO,EAAE,2BAA2B,IAAI,OAAO,KAAK,EAAE;oBACtD,QAAQ,EAAG,IAA6C,CAAC,QAAQ;iBAClE,CAAC,CAAA;aACH;YACD,IAAI,GAAG,KAAK,CAAA;SACb;QACD,OAAO,UAAU,CAAA;IACnB,CAAC;CACF,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { PodliteDocument } from '@podlite/schema';
2
+ import type { Rule, Violation } from '../types';
3
+ export declare const ID_UNIQUE_RULE_ID = "id-unique";
4
+ declare type IdEntry = {
5
+ value: string;
6
+ location?: Violation['location'];
7
+ };
8
+ export declare function collectExplicitIds(ast: PodliteDocument): IdEntry[];
9
+ export declare const idUniqueRule: Rule;
10
+ export {};
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.idUniqueRule = exports.collectExplicitIds = exports.ID_UNIQUE_RULE_ID = void 0;
4
+ const schema_1 = require("@podlite/schema");
5
+ exports.ID_UNIQUE_RULE_ID = 'id-unique';
6
+ function collectExplicitIds(ast) {
7
+ const nodes = (0, schema_1.getFromTree)(ast, () => true);
8
+ const entries = [];
9
+ for (const node of nodes) {
10
+ const config = Array.isArray(node.config) ? node.config : [];
11
+ for (const item of config) {
12
+ if (item && item.name === 'id' && item.value !== undefined && item.value !== null) {
13
+ entries.push({ value: String(item.value), location: node.location });
14
+ }
15
+ }
16
+ }
17
+ return entries;
18
+ }
19
+ exports.collectExplicitIds = collectExplicitIds;
20
+ exports.idUniqueRule = {
21
+ id: exports.ID_UNIQUE_RULE_ID,
22
+ severity: 'error',
23
+ check: (ast, _ctx) => {
24
+ const entries = collectExplicitIds(ast);
25
+ if (entries.length === 0)
26
+ return [];
27
+ const seen = new Set();
28
+ const violations = [];
29
+ for (const entry of entries) {
30
+ if (seen.has(entry.value)) {
31
+ violations.push({
32
+ rule: exports.ID_UNIQUE_RULE_ID,
33
+ severity: 'error',
34
+ message: `Duplicate :id<${entry.value}>`,
35
+ location: entry.location,
36
+ });
37
+ }
38
+ else {
39
+ seen.add(entry.value);
40
+ }
41
+ }
42
+ return violations;
43
+ },
44
+ };
45
+ //# sourceMappingURL=id-unique.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id-unique.js","sourceRoot":"","sources":["../../../src/lint/rules/id-unique.ts"],"names":[],"mappings":";;;AAAA,4CAA8D;AAGjD,QAAA,iBAAiB,GAAG,WAAW,CAAA;AAI5C,SAAgB,kBAAkB,CAAC,GAAoB;IACrD,MAAM,KAAK,GAAG,IAAA,oBAAW,EAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAGvC,CAAA;IACF,MAAM,OAAO,GAAc,EAAE,CAAA;IAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;QAC5D,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE;YACzB,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;gBACjF,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;aACrE;SACF;KACF;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAfD,gDAeC;AAEY,QAAA,YAAY,GAAS;IAChC,EAAE,EAAE,yBAAiB;IACrB,QAAQ,EAAE,OAAO;IACjB,KAAK,EAAE,CAAC,GAAoB,EAAE,IAAiB,EAAe,EAAE;QAC9D,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAA;QACvC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAA;QACnC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;QAC9B,MAAM,UAAU,GAAgB,EAAE,CAAA;QAClC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;YAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACzB,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,yBAAiB;oBACvB,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,iBAAiB,KAAK,CAAC,KAAK,GAAG;oBACxC,QAAQ,EAAE,KAAK,CAAC,QAAQ;iBACzB,CAAC,CAAA;aACH;iBAAM;gBACL,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;aACtB;SACF;QACD,OAAO,UAAU,CAAA;IACnB,CAAC;CACF,CAAA"}
@@ -0,0 +1,2 @@
1
+ import type { Rule } from '../types';
2
+ export declare const DEFAULT_RULES: Rule[];
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_RULES = void 0;
4
+ const heading_hierarchy_1 = require("./heading-hierarchy");
5
+ const id_unique_1 = require("./id-unique");
6
+ exports.DEFAULT_RULES = [heading_hierarchy_1.headingHierarchyRule, id_unique_1.idUniqueRule];
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lint/rules/index.ts"],"names":[],"mappings":";;;AACA,2DAA0D;AAC1D,2CAA0C;AAE7B,QAAA,aAAa,GAAW,CAAC,wCAAoB,EAAE,wBAAY,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { Rule, Violation } from '../types';
2
+ export declare const SYNTAX_VALID_RULE_ID = "syntax-valid";
3
+ export declare function makeSyntaxViolation(err: unknown, filePath: string): Violation;
4
+ export declare const syntaxValidRule: Rule;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.syntaxValidRule = exports.makeSyntaxViolation = exports.SYNTAX_VALID_RULE_ID = void 0;
4
+ exports.SYNTAX_VALID_RULE_ID = 'syntax-valid';
5
+ function makeSyntaxViolation(err, filePath) {
6
+ const e = err;
7
+ const start = e?.location?.start;
8
+ return {
9
+ rule: exports.SYNTAX_VALID_RULE_ID,
10
+ severity: 'error',
11
+ message: e?.message ? String(e.message).split('\n')[0] : 'Parse error',
12
+ location: e?.location
13
+ ? {
14
+ start: {
15
+ line: start?.line ?? 1,
16
+ column: start?.column ?? 1,
17
+ offset: start?.offset ?? 0,
18
+ },
19
+ end: {
20
+ line: start?.line ?? 1,
21
+ column: start?.column ?? 1,
22
+ offset: start?.offset ?? 0,
23
+ },
24
+ }
25
+ : undefined,
26
+ };
27
+ }
28
+ exports.makeSyntaxViolation = makeSyntaxViolation;
29
+ exports.syntaxValidRule = {
30
+ id: exports.SYNTAX_VALID_RULE_ID,
31
+ severity: 'error',
32
+ check: (_ast, _ctx) => [],
33
+ };
34
+ //# sourceMappingURL=syntax-valid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syntax-valid.js","sourceRoot":"","sources":["../../../src/lint/rules/syntax-valid.ts"],"names":[],"mappings":";;;AAGa,QAAA,oBAAoB,GAAG,cAAc,CAAA;AAElD,SAAgB,mBAAmB,CAAC,GAAY,EAAE,QAAgB;IAChE,MAAM,CAAC,GAAG,GAAuG,CAAA;IACjH,MAAM,KAAK,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAA;IAChC,OAAO;QACL,IAAI,EAAE,4BAAoB;QAC1B,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa;QACtE,QAAQ,EAAE,CAAC,EAAE,QAAQ;YACnB,CAAC,CAAC;gBACE,KAAK,EAAE;oBACL,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC;oBACtB,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;oBAC1B,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;iBAC3B;gBACD,GAAG,EAAE;oBACH,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC;oBACtB,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;oBAC1B,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;iBAC3B;aACF;YACH,CAAC,CAAC,SAAS;KACd,CAAA;AACH,CAAC;AAtBD,kDAsBC;AAEY,QAAA,eAAe,GAAS;IACnC,EAAE,EAAE,4BAAoB;IACxB,QAAQ,EAAE,OAAO;IACjB,KAAK,EAAE,CAAC,IAAqB,EAAE,IAAiB,EAAe,EAAE,CAAC,EAAE;CACrE,CAAA"}
@@ -18,3 +18,7 @@ export declare type Rule = {
18
18
  severity: Severity;
19
19
  check: (ast: PodliteDocument, ctx: LintContext) => Violation[];
20
20
  };
21
+ export declare type SourceRule = {
22
+ id: string;
23
+ severity: Severity;
24
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "podlite",
3
- "version": "0.0.57",
3
+ "version": "0.0.59",
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": {
@@ -16,10 +16,12 @@
16
16
  "scripts": {
17
17
  "test": "yarn g:jest --passWithNoTests",
18
18
  "build": "yarn g:build",
19
+ "build:lint-grammar": "pegmill -o src/lint/grammar/lint.js src/lint/grammar/lint.pegjs",
19
20
  "typecheck:lint": "tsc -p src/lint/tsconfig.json --noEmit",
20
21
  "watch": "run-p -r watch:*",
21
22
  "watch:ts": "tsc -w --pretty",
22
- "watch:tests": "jest --watch -t \"test\""
23
+ "watch:tests": "jest --watch -t \"test\"",
24
+ "watch:lint-grammar": "npx nodemon -e pegjs --exec 'yarn build:lint-grammar'"
23
25
  },
24
26
  "bin": "./bin/podlite.js",
25
27
  "files": [
@@ -50,18 +52,19 @@
50
52
  "url": "https://github.com/podlite/podlite/issues"
51
53
  },
52
54
  "dependencies": {
53
- "@podlite/diagram": "^0.0.48",
54
- "@podlite/formula": "0.0.26",
55
- "@podlite/image": "^0.0.43",
56
- "@podlite/markdown": "0.0.37",
57
- "@podlite/schema": "^0.0.44",
58
- "@podlite/toc": "0.0.37",
55
+ "@podlite/diagram": "^0.0.50",
56
+ "@podlite/formula": "0.0.28",
57
+ "@podlite/image": "^0.0.45",
58
+ "@podlite/markdown": "0.0.39",
59
+ "@podlite/schema": "^0.0.46",
60
+ "@podlite/toc": "0.0.39",
59
61
  "nanoid": "3.1.30"
60
62
  },
61
63
  "devDependencies": {
62
64
  "@types/jest": "^26.0.21",
63
65
  "@types/node": "^17.0.7",
64
66
  "npm-run-all": "^4.1.5",
67
+ "pegmill": "0.1.2",
65
68
  "typescript": "4.5.5"
66
69
  },
67
70
  "peerDependencies": {