@openuji/speculator 0.5.2 → 0.5.4

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 (131) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/parse/__tests__/html-in-markdown.test.d.ts +2 -0
  6. package/dist/parse/__tests__/html-in-markdown.test.d.ts.map +1 -0
  7. package/dist/parse/__tests__/html-in-markdown.test.js +83 -0
  8. package/dist/parse/__tests__/html-in-markdown.test.js.map +1 -0
  9. package/dist/parse/__tests__/pipeline.test.js +1 -8
  10. package/dist/parse/__tests__/pipeline.test.js.map +1 -1
  11. package/dist/parse/__tests__/shorthands.test.d.ts +5 -0
  12. package/dist/parse/__tests__/shorthands.test.d.ts.map +1 -0
  13. package/dist/parse/__tests__/shorthands.test.js +96 -0
  14. package/dist/parse/__tests__/shorthands.test.js.map +1 -0
  15. package/dist/parse/assembler.d.ts.map +1 -1
  16. package/dist/parse/assembler.js +18 -0
  17. package/dist/parse/assembler.js.map +1 -1
  18. package/dist/parse/html/InlinesHtmlParser.d.ts.map +1 -1
  19. package/dist/parse/html/InlinesHtmlParser.js +11 -1
  20. package/dist/parse/html/InlinesHtmlParser.js.map +1 -1
  21. package/dist/parse/html/parser.d.ts +1 -12
  22. package/dist/parse/html/parser.d.ts.map +1 -1
  23. package/dist/parse/html/parser.js +15 -47
  24. package/dist/parse/html/parser.js.map +1 -1
  25. package/dist/parse/index.d.ts +1 -1
  26. package/dist/parse/index.d.ts.map +1 -1
  27. package/dist/parse/index.js.map +1 -1
  28. package/dist/parse/markdown/HtmlBlockMarkdownParser.d.ts +13 -0
  29. package/dist/parse/markdown/HtmlBlockMarkdownParser.d.ts.map +1 -0
  30. package/dist/parse/markdown/HtmlBlockMarkdownParser.js +61 -0
  31. package/dist/parse/markdown/HtmlBlockMarkdownParser.js.map +1 -0
  32. package/dist/parse/markdown/HtmlInlinesMarkdownParser.d.ts +12 -0
  33. package/dist/parse/markdown/HtmlInlinesMarkdownParser.d.ts.map +1 -0
  34. package/dist/parse/markdown/HtmlInlinesMarkdownParser.js +187 -0
  35. package/dist/parse/markdown/HtmlInlinesMarkdownParser.js.map +1 -0
  36. package/dist/parse/markdown/HtmlParagraphMarkdownParser.d.ts +15 -0
  37. package/dist/parse/markdown/HtmlParagraphMarkdownParser.d.ts.map +1 -0
  38. package/dist/parse/markdown/HtmlParagraphMarkdownParser.js +67 -0
  39. package/dist/parse/markdown/HtmlParagraphMarkdownParser.js.map +1 -0
  40. package/dist/parse/markdown/ShorthandsMarkdownParser.d.ts +29 -0
  41. package/dist/parse/markdown/ShorthandsMarkdownParser.d.ts.map +1 -0
  42. package/dist/parse/markdown/ShorthandsMarkdownParser.js +200 -0
  43. package/dist/parse/markdown/ShorthandsMarkdownParser.js.map +1 -0
  44. package/dist/parse/markdown/parser.d.ts +3 -14
  45. package/dist/parse/markdown/parser.d.ts.map +1 -1
  46. package/dist/parse/markdown/parser.js +72 -47
  47. package/dist/parse/markdown/parser.js.map +1 -1
  48. package/dist/parse/parsers.d.ts +3 -0
  49. package/dist/parse/parsers.d.ts.map +1 -1
  50. package/dist/parse/parsers.js +10 -0
  51. package/dist/parse/parsers.js.map +1 -1
  52. package/dist/parse/pipeline.d.ts.map +1 -1
  53. package/dist/parse/pipeline.js +8 -20
  54. package/dist/parse/pipeline.js.map +1 -1
  55. package/dist/parse/registry.d.ts +50 -91
  56. package/dist/parse/registry.d.ts.map +1 -1
  57. package/dist/parse/registry.js +39 -58
  58. package/dist/parse/registry.js.map +1 -1
  59. package/dist/parse/types.d.ts +1 -23
  60. package/dist/parse/types.d.ts.map +1 -1
  61. package/dist/parse/types.js.map +1 -1
  62. package/dist/parse/utils/hast-utils.d.ts +30 -0
  63. package/dist/parse/utils/hast-utils.d.ts.map +1 -0
  64. package/dist/parse/utils/hast-utils.js +94 -0
  65. package/dist/parse/utils/hast-utils.js.map +1 -0
  66. package/dist/pipeline/runner.d.ts.map +1 -1
  67. package/dist/pipeline/runner.js +16 -12
  68. package/dist/pipeline/runner.js.map +1 -1
  69. package/dist/postprocess/__tests__/toc.test.js +46 -0
  70. package/dist/postprocess/__tests__/toc.test.js.map +1 -1
  71. package/dist/postprocess/index.d.ts +1 -1
  72. package/dist/postprocess/index.d.ts.map +1 -1
  73. package/dist/postprocess/index.js +3 -3
  74. package/dist/postprocess/index.js.map +1 -1
  75. package/dist/postprocess/plugins/citation-resolve.d.ts +8 -0
  76. package/dist/postprocess/plugins/citation-resolve.d.ts.map +1 -0
  77. package/dist/postprocess/plugins/citation-resolve.js +33 -0
  78. package/dist/postprocess/plugins/citation-resolve.js.map +1 -0
  79. package/dist/postprocess/plugins/toc.d.ts.map +1 -1
  80. package/dist/postprocess/plugins/toc.js +8 -3
  81. package/dist/postprocess/plugins/toc.js.map +1 -1
  82. package/dist/preprocess/__tests__/pipeline.test.js +33 -45
  83. package/dist/preprocess/__tests__/pipeline.test.js.map +1 -1
  84. package/dist/preprocess/__tests__/resolver.test.js +38 -40
  85. package/dist/preprocess/__tests__/resolver.test.js.map +1 -1
  86. package/dist/preprocess/config/__tests__/rules.test.d.ts +2 -0
  87. package/dist/preprocess/config/__tests__/rules.test.d.ts.map +1 -0
  88. package/dist/preprocess/config/__tests__/rules.test.js +212 -0
  89. package/dist/preprocess/config/__tests__/rules.test.js.map +1 -0
  90. package/dist/preprocess/config/doc-config.js +1 -1
  91. package/dist/preprocess/config/doc-config.js.map +1 -1
  92. package/dist/preprocess/config/index.d.ts +3 -4
  93. package/dist/preprocess/config/index.d.ts.map +1 -1
  94. package/dist/preprocess/config/index.js +2 -2
  95. package/dist/preprocess/config/index.js.map +1 -1
  96. package/dist/preprocess/config/loader.d.ts +12 -48
  97. package/dist/preprocess/config/loader.d.ts.map +1 -1
  98. package/dist/preprocess/config/loader.js +23 -13
  99. package/dist/preprocess/config/loader.js.map +1 -1
  100. package/dist/preprocess/config/normalize.d.ts +11 -6
  101. package/dist/preprocess/config/normalize.d.ts.map +1 -1
  102. package/dist/preprocess/config/normalize.js +58 -8
  103. package/dist/preprocess/config/normalize.js.map +1 -1
  104. package/dist/preprocess/config/types.d.ts +57 -22
  105. package/dist/preprocess/config/types.d.ts.map +1 -1
  106. package/dist/preprocess/include/index.d.ts +1 -1
  107. package/dist/preprocess/include/index.d.ts.map +1 -1
  108. package/dist/preprocess/include/index.js +1 -1
  109. package/dist/preprocess/include/index.js.map +1 -1
  110. package/dist/preprocess/include/resolver.d.ts +14 -8
  111. package/dist/preprocess/include/resolver.d.ts.map +1 -1
  112. package/dist/preprocess/include/resolver.js +27 -18
  113. package/dist/preprocess/include/resolver.js.map +1 -1
  114. package/dist/preprocess/index.d.ts +6 -6
  115. package/dist/preprocess/index.d.ts.map +1 -1
  116. package/dist/preprocess/index.js +4 -4
  117. package/dist/preprocess/index.js.map +1 -1
  118. package/dist/preprocess/pipeline.d.ts +19 -16
  119. package/dist/preprocess/pipeline.d.ts.map +1 -1
  120. package/dist/preprocess/pipeline.js +43 -45
  121. package/dist/preprocess/pipeline.js.map +1 -1
  122. package/dist/preprocess/types.d.ts +21 -46
  123. package/dist/preprocess/types.d.ts.map +1 -1
  124. package/dist/preprocess/types.js +0 -6
  125. package/dist/preprocess/types.js.map +1 -1
  126. package/dist/types/ast.generated.d.ts +21 -2
  127. package/dist/types/ast.generated.d.ts.map +1 -1
  128. package/dist/types/ast.generated.js +1 -1
  129. package/dist/types/ast.generated.js.map +1 -1
  130. package/package.json +1 -1
  131. package/schema/spec-ast.schema.json +40 -0
@@ -3,15 +3,14 @@
3
3
  */
4
4
  import { describe, it, expect } from 'vitest';
5
5
  import { MemoryFileProvider } from '#src/file-provider/memory';
6
- import { resolveIncludes } from '#src/preprocess/include/resolver';
6
+ import { resolveIncludes, IncludeResolveError } from '#src/preprocess/include/resolver';
7
7
  describe('resolveIncludes', () => {
8
8
  describe('basic resolution', () => {
9
9
  it('returns single unit for file with no includes', async () => {
10
10
  const fp = new MemoryFileProvider({
11
11
  '/spec/format.md': '# Title\n\nSome content.',
12
12
  });
13
- const { source, diagnostics } = await resolveIncludes('/spec/format.md', 'markdown', fp);
14
- expect(diagnostics).toHaveLength(0);
13
+ const source = await resolveIncludes('/spec/format.md', 'markdown', fp);
15
14
  expect(source.entryFile).toBe('/spec/format.md');
16
15
  expect(source.entryFormat).toBe('markdown');
17
16
  expect(source.units).toHaveLength(1);
@@ -23,11 +22,10 @@ describe('resolveIncludes', () => {
23
22
  '/spec/format.md': '# Title\n:::include ./intro.md :::\n## End',
24
23
  '/spec/intro.md': 'Intro content',
25
24
  });
26
- const { source, diagnostics } = await resolveIncludes('/spec/format.md', 'markdown', fp);
27
- expect(diagnostics).toHaveLength(0);
25
+ const source = await resolveIncludes('/spec/format.md', 'markdown', fp);
28
26
  expect(source.units.length).toBeGreaterThanOrEqual(2);
29
27
  // Should have content before include, included content, and content after
30
- const files = source.units.map(u => u.file);
28
+ const files = source.units.map((u) => u.file);
31
29
  expect(files).toContain('/spec/format.md');
32
30
  expect(files).toContain('/spec/intro.md');
33
31
  });
@@ -41,11 +39,10 @@ describe('resolveIncludes', () => {
41
39
  '/spec/intro.md': 'Intro text',
42
40
  '/spec/conformance.md': 'Conformance text',
43
41
  });
44
- const { source, diagnostics } = await resolveIncludes('/spec/format.md', 'markdown', fp);
45
- expect(diagnostics).toHaveLength(0);
42
+ const source = await resolveIncludes('/spec/format.md', 'markdown', fp);
46
43
  // Find intro and conformance indices
47
- const introIdx = source.units.findIndex(u => u.file === '/spec/intro.md');
48
- const confIdx = source.units.findIndex(u => u.file === '/spec/conformance.md');
44
+ const introIdx = source.units.findIndex((u) => u.file === '/spec/intro.md');
45
+ const confIdx = source.units.findIndex((u) => u.file === '/spec/conformance.md');
49
46
  expect(introIdx).toBeGreaterThan(-1);
50
47
  expect(confIdx).toBeGreaterThan(-1);
51
48
  expect(introIdx).toBeLessThan(confIdx);
@@ -58,55 +55,57 @@ describe('resolveIncludes', () => {
58
55
  '/spec/a.md': '## A\n:::include ./b.md :::',
59
56
  '/spec/b.md': '### B content',
60
57
  });
61
- const { source, diagnostics } = await resolveIncludes('/spec/format.md', 'markdown', fp);
62
- expect(diagnostics).toHaveLength(0);
63
- const files = source.units.map(u => u.file);
58
+ const source = await resolveIncludes('/spec/format.md', 'markdown', fp);
59
+ const files = source.units.map((u) => u.file);
64
60
  expect(files).toContain('/spec/format.md');
65
61
  expect(files).toContain('/spec/a.md');
66
62
  expect(files).toContain('/spec/b.md');
67
63
  });
68
64
  });
69
65
  describe('cycle detection', () => {
70
- it('detects direct cycle (A includes A)', async () => {
66
+ it('throws on direct cycle (A includes A)', async () => {
71
67
  const fp = new MemoryFileProvider({
72
68
  '/spec/a.md': '# A\n:::include ./a.md :::',
73
69
  });
74
- const { diagnostics } = await resolveIncludes('/spec/a.md', 'markdown', fp);
75
- expect(diagnostics.length).toBeGreaterThan(0);
76
- const cycleError = diagnostics.find(d => d.code === 'include-cycle');
77
- expect(cycleError).toBeDefined();
70
+ await expect(resolveIncludes('/spec/a.md', 'markdown', fp)).rejects.toThrow(IncludeResolveError);
78
71
  });
79
- it('detects indirect cycle (A → B → A)', async () => {
72
+ it('throws on indirect cycle (A → B → A)', async () => {
80
73
  const fp = new MemoryFileProvider({
81
74
  '/spec/a.md': '# A\n:::include ./b.md :::',
82
75
  '/spec/b.md': '# B\n:::include ./a.md :::',
83
76
  });
84
- const { diagnostics } = await resolveIncludes('/spec/a.md', 'markdown', fp);
85
- expect(diagnostics.length).toBeGreaterThan(0);
86
- const cycleError = diagnostics.find(d => d.code === 'include-cycle');
87
- expect(cycleError).toBeDefined();
88
- expect(cycleError?.message).toContain('cycle');
77
+ try {
78
+ await resolveIncludes('/spec/a.md', 'markdown', fp);
79
+ expect.fail('should have thrown');
80
+ }
81
+ catch (error) {
82
+ expect(error).toBeInstanceOf(IncludeResolveError);
83
+ expect(error.code).toBe('include-cycle');
84
+ expect(error.message).toContain('cycle');
85
+ }
89
86
  });
90
- it('detects three-way cycle (A → B → C → A)', async () => {
87
+ it('throws on three-way cycle (A → B → C → A)', async () => {
91
88
  const fp = new MemoryFileProvider({
92
89
  '/spec/a.md': ':::include ./b.md :::',
93
90
  '/spec/b.md': ':::include ./c.md :::',
94
91
  '/spec/c.md': ':::include ./a.md :::',
95
92
  });
96
- const { diagnostics } = await resolveIncludes('/spec/a.md', 'markdown', fp);
97
- const cycleError = diagnostics.find(d => d.code === 'include-cycle');
98
- expect(cycleError).toBeDefined();
93
+ await expect(resolveIncludes('/spec/a.md', 'markdown', fp)).rejects.toThrow(IncludeResolveError);
99
94
  });
100
95
  });
101
96
  describe('error handling', () => {
102
- it('reports missing include file', async () => {
97
+ it('throws on missing include file', async () => {
103
98
  const fp = new MemoryFileProvider({
104
99
  '/spec/format.md': '# Title\n:::include ./missing.md :::',
105
100
  });
106
- const { diagnostics } = await resolveIncludes('/spec/format.md', 'markdown', fp);
107
- expect(diagnostics.length).toBeGreaterThan(0);
108
- const notFoundError = diagnostics.find(d => d.code === 'include-not-found');
109
- expect(notFoundError).toBeDefined();
101
+ try {
102
+ await resolveIncludes('/spec/format.md', 'markdown', fp);
103
+ expect.fail('should have thrown');
104
+ }
105
+ catch (error) {
106
+ expect(error).toBeInstanceOf(IncludeResolveError);
107
+ expect(error.code).toBe('include-not-found');
108
+ }
110
109
  });
111
110
  });
112
111
  describe('include graph', () => {
@@ -116,11 +115,11 @@ describe('resolveIncludes', () => {
116
115
  '/spec/a.md': 'A content',
117
116
  '/spec/b.md': 'B content',
118
117
  });
119
- const { source } = await resolveIncludes('/spec/format.md', 'markdown', fp);
118
+ const source = await resolveIncludes('/spec/format.md', 'markdown', fp);
120
119
  expect(source.includeGraph.has('/spec/format.md')).toBe(true);
121
120
  const edges = source.includeGraph.get('/spec/format.md');
122
121
  expect(edges).toHaveLength(2);
123
- expect(edges?.map(e => e.target)).toEqual(['/spec/a.md', '/spec/b.md']);
122
+ expect(edges?.map((e) => e.target)).toEqual(['/spec/a.md', '/spec/b.md']);
124
123
  });
125
124
  });
126
125
  describe('HTML includes', () => {
@@ -131,9 +130,8 @@ describe('resolveIncludes', () => {
131
130
  </body>`,
132
131
  '/spec/intro.md': 'Intro content',
133
132
  });
134
- const { source, diagnostics } = await resolveIncludes('/spec/format.html', 'html', fp);
135
- expect(diagnostics).toHaveLength(0);
136
- const files = source.units.map(u => u.file);
133
+ const source = await resolveIncludes('/spec/format.html', 'html', fp);
134
+ const files = source.units.map((u) => u.file);
137
135
  expect(files).toContain('/spec/intro.md');
138
136
  });
139
137
  });
@@ -152,8 +150,8 @@ describe('determinism', () => {
152
150
  });
153
151
  const results = [];
154
152
  for (let i = 0; i < 10; i++) {
155
- const { source } = await resolveIncludes('/spec/format.md', 'markdown', fp);
156
- results.push(source.units.map(u => `${u.file}:${u.content.trim()}`));
153
+ const source = await resolveIncludes('/spec/format.md', 'markdown', fp);
154
+ results.push(source.units.map((u) => `${u.file}:${u.content.trim()}`));
157
155
  }
158
156
  // All runs should produce identical order
159
157
  const first = JSON.stringify(results[0]);
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.test.js","sourceRoot":"","sources":["../../../src/preprocess/__tests__/resolver.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolver.test.js","sourceRoot":"","sources":["../../../src/preprocess/__tests__/resolver.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=rules.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules.test.d.ts","sourceRoot":"","sources":["../../../../src/preprocess/config/__tests__/rules.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,212 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { MemoryFileProvider } from '#src/file-provider/memory';
3
+ import { preprocess } from '#src/preprocess/pipeline';
4
+ import { normalizeConfig } from '../normalize.js';
5
+ describe('Config Priority Rules', () => {
6
+ describe('lastUpdateDate priority', () => {
7
+ it('uses root-level lastUpdateDate when both are present', () => {
8
+ const docConfig = {
9
+ title: 'Test Spec',
10
+ lastUpdateDate: '2026-01-11', // Root priority
11
+ respec: {
12
+ modificationDate: '2026-01-10', // ReSpec fallback
13
+ },
14
+ };
15
+ const config = normalizeConfig(docConfig);
16
+ expect(config.lastUpdateDate).toBe('2026-01-11');
17
+ });
18
+ it('falls back to respec.modificationDate when root is missing', () => {
19
+ const docConfig = {
20
+ respec: {
21
+ title: 'Test Spec',
22
+ modificationDate: '2026-01-10',
23
+ },
24
+ };
25
+ const config = normalizeConfig(docConfig);
26
+ expect(config.lastUpdateDate).toBe('2026-01-10');
27
+ });
28
+ it('is undefined if neither are present', () => {
29
+ const docConfig = {
30
+ respec: {
31
+ title: 'Test Spec',
32
+ },
33
+ };
34
+ const config = normalizeConfig(docConfig);
35
+ expect(config.lastUpdateDate).toBeUndefined();
36
+ });
37
+ });
38
+ describe('ReSpec field mapping', () => {
39
+ it('correctly maps various ReSpec fields to normalized config', () => {
40
+ const docConfig = {
41
+ respec: {
42
+ title: 'Test Spec',
43
+ shortName: 'test',
44
+ specStatus: 'ED',
45
+ publishDate: '2026-01-01',
46
+ abstract: 'Abstract content',
47
+ noTOC: true,
48
+ },
49
+ };
50
+ const config = normalizeConfig(docConfig);
51
+ expect(config.title).toBe('Test Spec');
52
+ expect(config.shortName).toBe('test');
53
+ expect(config.status).toBe('ED');
54
+ expect(config.publishDate).toBe('2026-01-01');
55
+ expect(config.abstract).toBe('Abstract content');
56
+ expect(config.tocEnabled).toBe(false);
57
+ });
58
+ });
59
+ describe('Pipeline Integration', () => {
60
+ it('prioritizes root lastUpdateDate in the full preprocess pipeline', async () => {
61
+ const fp = new MemoryFileProvider({
62
+ '/spec/index.md': '# Title',
63
+ '/spec/config.json': JSON.stringify({
64
+ lastUpdateDate: '2026-01-11', // Root
65
+ respec: {
66
+ modificationDate: '2026-01-10', // Fallback
67
+ },
68
+ }),
69
+ });
70
+ const result = await preprocess({
71
+ entry: '/spec/index.md',
72
+ configPath: '/spec/config.json',
73
+ fileProvider: fp,
74
+ });
75
+ expect(result.config.lastUpdateDate).toBe('2026-01-11');
76
+ });
77
+ it('falls back to respec.modificationDate in the full preprocess pipeline', async () => {
78
+ const fp = new MemoryFileProvider({
79
+ '/spec/index.md': '# Title',
80
+ '/spec/config.json': JSON.stringify({
81
+ respec: {
82
+ modificationDate: '2026-01-10',
83
+ },
84
+ }),
85
+ });
86
+ const result = await preprocess({
87
+ entry: '/spec/index.md',
88
+ configPath: '/spec/config.json',
89
+ fileProvider: fp,
90
+ });
91
+ expect(result.config.lastUpdateDate).toBe('2026-01-10');
92
+ });
93
+ });
94
+ describe('maturityLevel priority', () => {
95
+ it('uses root-level maturityLevel when both are present', () => {
96
+ const docConfig = {
97
+ maturityLevel: 'stable', // Root priority
98
+ respec: {
99
+ title: 'Test Spec',
100
+ specStatus: 'ED', // ReSpec fallback maps to 'draft'
101
+ },
102
+ };
103
+ const config = normalizeConfig(docConfig);
104
+ expect(config.maturityLevel).toBe('stable');
105
+ expect(config.status).toBe('ED'); // status is still preserved
106
+ });
107
+ it('falls back to mapped respec.specStatus when root is missing', () => {
108
+ const docConfig = {
109
+ respec: {
110
+ title: 'Test Spec',
111
+ specStatus: 'CR', // Maps to 'prerelease'
112
+ },
113
+ };
114
+ const config = normalizeConfig(docConfig);
115
+ expect(config.maturityLevel).toBe('prerelease');
116
+ expect(config.status).toBe('CR');
117
+ });
118
+ it('maps common specStatus values correctly', () => {
119
+ const mappings = [
120
+ ['ED', 'draft'],
121
+ ['WD', 'draft'],
122
+ ['CR', 'prerelease'],
123
+ ['REC', 'stable'],
124
+ ['unofficial', 'incubating'],
125
+ ];
126
+ for (const [specStatus, expected] of mappings) {
127
+ const docConfig = { respec: { specStatus } };
128
+ const config = normalizeConfig(docConfig);
129
+ expect(config.maturityLevel).toBe(expected);
130
+ }
131
+ });
132
+ it('is undefined if neither are present', () => {
133
+ const docConfig = {
134
+ respec: {
135
+ title: 'Test Spec',
136
+ },
137
+ };
138
+ const config = normalizeConfig(docConfig);
139
+ expect(config.maturityLevel).toBeUndefined();
140
+ });
141
+ it('prioritizes root maturityLevel in the full preprocess pipeline', async () => {
142
+ const fp = new MemoryFileProvider({
143
+ '/spec/index.md': '# Title',
144
+ '/spec/config.json': JSON.stringify({
145
+ maturityLevel: 'stable', // Root
146
+ respec: {
147
+ specStatus: 'ED', // Fallback would map to 'draft'
148
+ },
149
+ }),
150
+ });
151
+ const result = await preprocess({
152
+ entry: '/spec/index.md',
153
+ configPath: '/spec/config.json',
154
+ fileProvider: fp,
155
+ });
156
+ expect(result.config.maturityLevel).toBe('stable');
157
+ });
158
+ it('falls back to mapped respec.specStatus in the full preprocess pipeline', async () => {
159
+ const fp = new MemoryFileProvider({
160
+ '/spec/index.md': '# Title',
161
+ '/spec/config.json': JSON.stringify({
162
+ respec: {
163
+ specStatus: 'REC',
164
+ },
165
+ }),
166
+ });
167
+ const result = await preprocess({
168
+ entry: '/spec/index.md',
169
+ configPath: '/spec/config.json',
170
+ fileProvider: fp,
171
+ });
172
+ expect(result.config.maturityLevel).toBe('stable');
173
+ });
174
+ });
175
+ describe('title priority', () => {
176
+ it('uses root-level title when both are present', () => {
177
+ const docConfig = {
178
+ title: 'Root Title', // Root priority
179
+ respec: {
180
+ title: 'ReSpec Title', // Fallback
181
+ },
182
+ };
183
+ const config = normalizeConfig(docConfig);
184
+ expect(config.title).toBe('Root Title');
185
+ });
186
+ it('falls back to respec.title when root is missing', () => {
187
+ const docConfig = {
188
+ respec: {
189
+ title: 'ReSpec Title',
190
+ },
191
+ };
192
+ const config = normalizeConfig(docConfig);
193
+ expect(config.title).toBe('ReSpec Title');
194
+ });
195
+ });
196
+ describe('custom overrides', () => {
197
+ it('passes through custom properties', () => {
198
+ const docConfig = {
199
+ custom: {
200
+ myCustomField: 'value',
201
+ analytics: { enabled: true },
202
+ },
203
+ };
204
+ const config = normalizeConfig(docConfig);
205
+ expect(config.custom).toEqual({
206
+ myCustomField: 'value',
207
+ analytics: { enabled: true },
208
+ });
209
+ });
210
+ });
211
+ });
212
+ //# sourceMappingURL=rules.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules.test.js","sourceRoot":"","sources":["../../../../src/preprocess/config/__tests__/rules.test.ts"],"names":[],"mappings":"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"}
@@ -59,10 +59,10 @@ export async function loadDocConfig(fileProvider, entryPath) {
59
59
  const hasValidId = config.id && typeof config.id === 'string';
60
60
  const id = hasValidId ? config.id : generateIdFromPath(entryPath);
61
61
  return {
62
+ ...config,
62
63
  id,
63
64
  deps: Array.isArray(config.deps) ? config.deps : [],
64
65
  autoGenerated: !hasValidId,
65
- respec: config.respec,
66
66
  };
67
67
  }
68
68
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"doc-config.js","sourceRoot":"","sources":["../../../src/preprocess/config/doc-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doc-config.js","sourceRoot":"","sources":["../../../src/preprocess/config/doc-config.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,8 @@
1
1
  /**
2
2
  * Config Module Exports
3
3
  */
4
- export { loadRespecConfig } from '#src/preprocess/config/loader';
5
- export type { RawRespecConfig, RawPersonEntry } from '#src/preprocess/config/loader';
6
- export { normalizeRespecConfig, createDefaultConfig } from '#src/preprocess/config/normalize';
4
+ export { loadConfig, ConfigLoadError } from '#src/preprocess/config/loader';
5
+ export { normalizeConfig, createDefaultConfig } from '#src/preprocess/config/normalize';
7
6
  export { loadDocConfig, generateIdFromPath, getConfigPath } from '#src/preprocess/config/doc-config';
8
- export type { DocumentConfig, ResolvedDocumentConfig } from '#src/preprocess/config/types';
7
+ export type { DocumentConfig, ResolvedDocumentConfig, RawRespecConfig, RawPersonEntry, DocumentId, ISODateString, MaturityLevel, } from '#src/preprocess/config/types';
9
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/preprocess/config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAErF,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAE9F,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACrG,YAAY,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/preprocess/config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAExF,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACrG,YAAY,EACR,cAAc,EACd,sBAAsB,EACtB,eAAe,EACf,cAAc,EACd,UAAU,EACV,aAAa,EACb,aAAa,GAChB,MAAM,8BAA8B,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Config Module Exports
3
3
  */
4
- export { loadRespecConfig } from '#src/preprocess/config/loader';
5
- export { normalizeRespecConfig, createDefaultConfig } from '#src/preprocess/config/normalize';
4
+ export { loadConfig, ConfigLoadError } from '#src/preprocess/config/loader';
5
+ export { normalizeConfig, createDefaultConfig } from '#src/preprocess/config/normalize';
6
6
  export { loadDocConfig, generateIdFromPath, getConfigPath } from '#src/preprocess/config/doc-config';
7
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/preprocess/config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAE9F,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/preprocess/config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAExF,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC"}
@@ -1,61 +1,25 @@
1
1
  /**
2
- * ReSpec Config Loader
2
+ * Config Loader
3
3
  *
4
- * Loads ReSpec-compatible configuration files.
4
+ * Loads config.json files for specifications.
5
5
  */
6
6
  import type { FileProvider } from '#src/file-provider/types';
7
- import type { Diagnostic } from '#src/preprocess/types';
7
+ import type { DocumentConfig } from './types.js';
8
8
  /**
9
- * Raw ReSpec configuration as read from JSON
10
- *
11
- * This mirrors the ReSpec config format closely.
12
- * See: https://respec.org/docs/#configuration-options
13
- */
14
- export interface RawRespecConfig {
15
- title?: string;
16
- shortName?: string;
17
- subtitle?: string;
18
- specStatus?: string;
19
- publishDate?: string;
20
- thisVersion?: string;
21
- latestVersion?: string;
22
- prevVersion?: string;
23
- editors?: RawPersonEntry[];
24
- authors?: RawPersonEntry[];
25
- abstract?: string;
26
- copyrightStart?: string | number;
27
- license?: string;
28
- logos?: Array<{
29
- src: string;
30
- alt?: string;
31
- url?: string;
32
- href?: string;
33
- }>;
34
- noTOC?: boolean;
35
- maxTocLevel?: number;
36
- [key: string]: unknown;
37
- }
38
- /**
39
- * Raw person entry from ReSpec config
9
+ * Error thrown when config loading fails
40
10
  */
41
- export interface RawPersonEntry {
42
- name?: string;
43
- url?: string;
44
- w3cid?: number;
45
- company?: string;
46
- companyURL?: string;
47
- mailto?: string;
48
- email?: string;
11
+ export declare class ConfigLoadError extends Error {
12
+ readonly code: 'config-not-found' | 'config-parse-error';
13
+ readonly path: string;
14
+ constructor(message: string, code: 'config-not-found' | 'config-parse-error', path: string);
49
15
  }
50
16
  /**
51
- * Load a ReSpec configuration file
17
+ * Load a document configuration file (config.json)
52
18
  *
53
19
  * @param fileProvider - File provider to read from
54
20
  * @param configPath - Path to config file
55
- * @returns Parsed config and any diagnostics
21
+ * @returns Parsed DocumentConfig
22
+ * @throws ConfigLoadError if loading or parsing fails
56
23
  */
57
- export declare function loadRespecConfig(fileProvider: FileProvider, configPath: string): Promise<{
58
- config?: RawRespecConfig;
59
- diagnostics: Diagnostic[];
60
- }>;
24
+ export declare function loadConfig(fileProvider: FileProvider, configPath: string): Promise<DocumentConfig>;
61
25
  //# sourceMappingURL=loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/preprocess/config/loader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAIxD;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAE5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAG3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,KAAK,CAAC,EAAE,KAAK,CAAC;QACV,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IAGH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAClC,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,MAAM,CAAC,EAAE,eAAe,CAAC;IAAC,WAAW,EAAE,UAAU,EAAE,CAAA;CAAE,CAAC,CAsClE"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/preprocess/config/loader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;aAGlB,IAAI,EAAE,kBAAkB,GAAG,oBAAoB;aAC/C,IAAI,EAAE,MAAM;gBAF5B,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,kBAAkB,GAAG,oBAAoB,EAC/C,IAAI,EAAE,MAAM;CAKnC;AAED;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAC5B,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,cAAc,CAAC,CAgCzB"}