@taiga-ui/mcp 0.2.1 → 0.2.2

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.
@@ -0,0 +1,405 @@
1
+ /**
2
+ * Extracts the documentation header from raw content.
3
+ * Header is everything before the first "# components/" heading.
4
+ */
5
+ export function extractHeaderContent(rawContent) {
6
+ const lines = rawContent.split(/\r?\n/);
7
+ const headerLines = [];
8
+ for (const line of lines) {
9
+ if (/^#\s+components\//.test(line)) {
10
+ break;
11
+ }
12
+ headerLines.push(line);
13
+ }
14
+ return headerLines.join('\n').trim();
15
+ }
16
+ /**
17
+ * Finds the line number where components section starts.
18
+ */
19
+ export function findComponentsSectionStart(rawContent) {
20
+ const lines = rawContent.split(/\r?\n/);
21
+ for (let i = 0; i < lines.length; i++) {
22
+ const line = lines[i];
23
+ if (line && /^#\s+components\//.test(line)) {
24
+ return i;
25
+ }
26
+ }
27
+ return lines.length;
28
+ }
29
+ /**
30
+ * Parses code blocks from content lines.
31
+ */
32
+ function extractCodeBlocks(content) {
33
+ const codeBlocks = [];
34
+ const lines = content.split('\n');
35
+ let inCodeBlock = false;
36
+ let currentLang = '';
37
+ let currentCode = [];
38
+ for (const line of lines) {
39
+ if (line.startsWith('```')) {
40
+ if (inCodeBlock) {
41
+ // End of code block
42
+ codeBlocks.push({
43
+ language: currentLang,
44
+ code: currentCode.join('\n').trim(),
45
+ });
46
+ currentCode = [];
47
+ inCodeBlock = false;
48
+ }
49
+ else {
50
+ // Start of code block
51
+ currentLang = line.slice(3).trim() || 'plaintext';
52
+ inCodeBlock = true;
53
+ }
54
+ }
55
+ else if (inCodeBlock) {
56
+ currentCode.push(line);
57
+ }
58
+ }
59
+ return codeBlocks;
60
+ }
61
+ /**
62
+ * Extracts plain text content (removes markdown formatting, code blocks, etc).
63
+ */
64
+ function extractPlainContent(content) {
65
+ const lines = content.split('\n');
66
+ const plainLines = [];
67
+ let inCodeBlock = false;
68
+ for (const line of lines) {
69
+ // Skip code blocks
70
+ if (line.startsWith('```')) {
71
+ inCodeBlock = !inCodeBlock;
72
+ continue;
73
+ }
74
+ if (inCodeBlock) {
75
+ continue;
76
+ }
77
+ // Skip empty lines
78
+ if (!line.trim()) {
79
+ continue;
80
+ }
81
+ // Skip markdown headings (they're already captured)
82
+ if (/^#{1,6}\s+/.test(line)) {
83
+ continue;
84
+ }
85
+ // Skip horizontal rules
86
+ if (/^-{3,}\s*$/.test(line)) {
87
+ continue;
88
+ }
89
+ // Skip blockquotes with **Critical** or **Auto-generated** (already extracted)
90
+ if (line.includes('**Critical**:') || line.includes('**Auto-generated**:')) {
91
+ continue;
92
+ }
93
+ // Clean up other blockquotes
94
+ let cleaned = line.replace(/^>\s*/, '').trim();
95
+ // Remove bold/italic markers
96
+ cleaned = cleaned.replaceAll(/\*\*([^*]+)\*\*/g, '$1');
97
+ cleaned = cleaned.replaceAll(/\*([^*]+)\*/g, '$1');
98
+ // Remove inline code markers
99
+ cleaned = cleaned.replaceAll(/`([^`]+)`/g, '$1');
100
+ if (cleaned) {
101
+ plainLines.push(cleaned);
102
+ }
103
+ }
104
+ return plainLines;
105
+ }
106
+ /**
107
+ * Parses a section into structured data.
108
+ */
109
+ function parseSection(content) {
110
+ const lines = content.split('\n');
111
+ const subsections = [];
112
+ const description = [];
113
+ const criticalNotices = [];
114
+ let title = '';
115
+ // Find all headings (both markdown # and **bold:** patterns)
116
+ const headings = [];
117
+ for (let i = 0; i < lines.length; i++) {
118
+ const line = lines[i];
119
+ if (!line) {
120
+ continue;
121
+ }
122
+ // Extract title from first heading
123
+ const h1Match = /^#\s+([^#]\S.*)$/.exec(line);
124
+ if (h1Match?.[1] && !title) {
125
+ title = h1Match[1].trim();
126
+ headings.push({ line: i, level: 1, title: h1Match[1].trim() });
127
+ continue;
128
+ }
129
+ // Extract subsections (##, ###, etc)
130
+ const hMatch = /^(#{2,6})\s+(\S.*)$/.exec(line);
131
+ if (hMatch?.[1] && hMatch[2]) {
132
+ const level = hMatch[1].length;
133
+ headings.push({ line: i, level, title: hMatch[2].trim() });
134
+ continue;
135
+ }
136
+ // Extract **Bold:** headings (treat as level 2)
137
+ const boldMatch = /^\*\*(.+):\*\*$/.exec(line);
138
+ if (boldMatch?.[1]) {
139
+ headings.push({ line: i, level: 2, title: `${boldMatch[1].trim()}:` });
140
+ }
141
+ // Extract critical notices
142
+ if (line.startsWith('> **Critical**:')) {
143
+ const notice = line.replace(/^>\s*\*\*Critical\*\*:\s*/, '').trim();
144
+ if (notice) {
145
+ criticalNotices.push(notice);
146
+ }
147
+ }
148
+ }
149
+ // Extract description (content before first subsection)
150
+ if (headings.length > 0 && headings[0]) {
151
+ const firstSubsectionLine = headings.find((h) => h.level > 1)?.line;
152
+ const descEnd = firstSubsectionLine ?? lines.length;
153
+ const descContent = lines.slice(headings[0].line + 1, descEnd).join('\n');
154
+ description.push(...extractPlainContent(descContent));
155
+ }
156
+ // Parse subsections - group bold headings under level-3, level-3 under level-2
157
+ let currentSubsection = null;
158
+ let currentItem = null;
159
+ let currentGroup = null;
160
+ const pushCurrentItem = () => {
161
+ if (!currentItem || !currentSubsection) {
162
+ return;
163
+ }
164
+ if (currentItem.content.length > 0 ||
165
+ currentItem.code ||
166
+ (currentItem.sections && currentItem.sections.length > 0)) {
167
+ currentSubsection.items = currentSubsection.items || [];
168
+ currentSubsection.items.push(currentItem);
169
+ }
170
+ currentItem = null;
171
+ };
172
+ const pushCurrentGroup = () => {
173
+ if (!currentGroup || !currentSubsection) {
174
+ return;
175
+ }
176
+ if (currentGroup.content.length > 0 ||
177
+ (currentGroup.sections && currentGroup.sections.length > 0)) {
178
+ currentSubsection.items = currentSubsection.items || [];
179
+ currentSubsection.items.push(currentGroup);
180
+ }
181
+ currentGroup = null;
182
+ };
183
+ const addSectionToItem = (item, sectionItem, plainContent) => {
184
+ item.sections = item.sections || [];
185
+ item.sections.push(sectionItem);
186
+ if (plainContent.length > 0) {
187
+ item.content.push(...plainContent);
188
+ }
189
+ };
190
+ for (let i = 1; i < headings.length; i++) {
191
+ const current = headings[i];
192
+ if (!current) {
193
+ continue;
194
+ }
195
+ const start = current.line;
196
+ const end = headings[i + 1]?.line ?? lines.length;
197
+ const subsectionContent = lines.slice(start + 1, end).join('\n');
198
+ // Level 2 heading (##) - create new subsection
199
+ if (current.level === 2 && !current.title.endsWith(':')) {
200
+ // Save previous subsection and item (only if they have content)
201
+ pushCurrentItem();
202
+ pushCurrentGroup();
203
+ if (currentSubsection) {
204
+ // Only push if has content
205
+ if (currentSubsection.content.length > 0 ||
206
+ (currentSubsection.sections &&
207
+ currentSubsection.sections.length > 0) ||
208
+ (currentSubsection.items && currentSubsection.items.length > 0)) {
209
+ subsections.push(currentSubsection);
210
+ }
211
+ }
212
+ const [block] = extractCodeBlocks(subsectionContent);
213
+ const subsectionSections = block
214
+ ? [
215
+ {
216
+ section: current.title,
217
+ code: block.code,
218
+ },
219
+ ]
220
+ : [];
221
+ currentSubsection = {
222
+ title: current.title,
223
+ content: extractPlainContent(subsectionContent),
224
+ sections: subsectionSections,
225
+ items: [],
226
+ };
227
+ }
228
+ // Level 3 heading (###) - create new nested item
229
+ else if (current.level === 3 && !current.title.endsWith(':')) {
230
+ const plainContent = extractPlainContent(subsectionContent);
231
+ const codeBlocks = extractCodeBlocks(subsectionContent);
232
+ const code = codeBlocks.length > 0 ? codeBlocks[0]?.code : undefined;
233
+ if (currentGroup && currentSubsection) {
234
+ const sectionItem = {
235
+ section: current.title,
236
+ code,
237
+ };
238
+ currentGroup.sections = currentGroup.sections || [];
239
+ currentGroup.sections.push(sectionItem);
240
+ if (plainContent.length > 0) {
241
+ currentGroup.content.push(...plainContent);
242
+ }
243
+ continue;
244
+ }
245
+ // Save previous item (only if it has content or sections)
246
+ pushCurrentItem();
247
+ currentItem = {
248
+ title: current.title,
249
+ content: plainContent,
250
+ ...(code ? { code } : {}),
251
+ sections: [],
252
+ };
253
+ }
254
+ // Bold heading (ends with :) - add to current context
255
+ else if (current.title.endsWith(':')) {
256
+ const codeBlocks = extractCodeBlocks(subsectionContent);
257
+ const code = codeBlocks.length > 0 ? codeBlocks[0]?.code : undefined;
258
+ const plainContent = extractPlainContent(subsectionContent);
259
+ const nextHeading = headings[i + 1];
260
+ if (currentSubsection && !currentItem && nextHeading?.level === 3) {
261
+ pushCurrentGroup();
262
+ currentGroup = {
263
+ title: current.title.replace(/:\s*$/, ''),
264
+ content: plainContent,
265
+ ...(code ? { code } : {}),
266
+ sections: [],
267
+ };
268
+ currentItem = null;
269
+ }
270
+ else {
271
+ const sectionItem = {
272
+ section: current.title,
273
+ code,
274
+ };
275
+ if (currentItem) {
276
+ addSectionToItem(currentItem, sectionItem, plainContent);
277
+ continue;
278
+ }
279
+ if (currentSubsection) {
280
+ currentSubsection.sections = currentSubsection.sections || [];
281
+ currentSubsection.sections.push(sectionItem);
282
+ continue;
283
+ }
284
+ // Standalone bold heading
285
+ subsections.push({
286
+ title: current.title,
287
+ content: plainContent,
288
+ sections: code ? [sectionItem] : undefined,
289
+ });
290
+ }
291
+ }
292
+ // Other headings - handle as needed
293
+ else {
294
+ pushCurrentItem();
295
+ pushCurrentGroup();
296
+ if (currentSubsection) {
297
+ subsections.push(currentSubsection);
298
+ currentSubsection = null;
299
+ }
300
+ const plainContent = extractPlainContent(subsectionContent);
301
+ const codeBlocks = extractCodeBlocks(subsectionContent);
302
+ subsections.push({
303
+ title: current.title,
304
+ content: plainContent,
305
+ sections: codeBlocks.length > 0
306
+ ? [{ section: current.title, code: codeBlocks[0]?.code }]
307
+ : undefined,
308
+ });
309
+ }
310
+ }
311
+ // Push last item/group and subsection (only if they have content)
312
+ pushCurrentItem();
313
+ pushCurrentGroup();
314
+ if (currentSubsection) {
315
+ // Only push subsection if it has content, sections, or items
316
+ if (currentSubsection.content.length > 0 ||
317
+ (currentSubsection.sections && currentSubsection.sections.length > 0) ||
318
+ (currentSubsection.items && currentSubsection.items.length > 0)) {
319
+ subsections.push(currentSubsection);
320
+ }
321
+ }
322
+ // Special handling for .md files: if no subsections were created but there's code content
323
+ // (typical for installation guide files), create a subsection with the code
324
+ if (subsections.length === 0 && headings.length === 1 && headings[0]) {
325
+ // Get content after the title heading
326
+ const contentAfterTitle = lines.slice(headings[0].line + 1).join('\n');
327
+ const codeBlocks = extractCodeBlocks(contentAfterTitle);
328
+ if (codeBlocks.length > 0 && codeBlocks[0]) {
329
+ // Create a subsection with code directly in content
330
+ subsections.push({
331
+ title: '', // Empty title for direct code under h1
332
+ content: [codeBlocks[0].code], // Put code as single string in content
333
+ });
334
+ }
335
+ }
336
+ const descriptionText = description.join('\n');
337
+ return {
338
+ title,
339
+ description: descriptionText || '',
340
+ criticalNotices,
341
+ subsections,
342
+ };
343
+ }
344
+ /**
345
+ * Parses the header content into fully structured JSON.
346
+ */
347
+ export function parseHeaderSections(headerContent) {
348
+ const lines = headerContent.split(/\r?\n/);
349
+ const sections = [];
350
+ const title = 'Taiga UI - Complete Documentation';
351
+ // Find main sections (level-1 headings)
352
+ const sectionIndices = [];
353
+ for (let i = 0; i < lines.length; i++) {
354
+ const line = lines[i];
355
+ if (!line) {
356
+ continue;
357
+ }
358
+ // Level-1 heading
359
+ const h1Match = /^#\s+([^#]\S.*)$/.exec(line);
360
+ if (h1Match?.[1]) {
361
+ sectionIndices.push({
362
+ line: i,
363
+ title: h1Match[1].trim(),
364
+ });
365
+ }
366
+ }
367
+ // Parse each section
368
+ for (let i = 0; i < sectionIndices.length; i++) {
369
+ const currentSection = sectionIndices[i];
370
+ if (!currentSection) {
371
+ continue;
372
+ }
373
+ const start = currentSection.line;
374
+ const end = sectionIndices[i + 1]?.line ?? lines.length;
375
+ const sectionContent = lines.slice(start, end).join('\n');
376
+ const parsedSection = parseSection(sectionContent);
377
+ sections.push(parsedSection);
378
+ }
379
+ const compactSections = sections.map((section) => {
380
+ const hasMarkdownSubsections = section.subsections.some((subsection) => subsection.title.endsWith('.md'));
381
+ return hasMarkdownSubsections
382
+ ? {
383
+ ...section,
384
+ subsections: section.subsections.map((subsection) => {
385
+ const redundantSingleCodeSection = subsection.content.length === 0 &&
386
+ !subsection.items?.length &&
387
+ subsection.sections?.length === 1 &&
388
+ subsection.sections[0]?.section === subsection.title &&
389
+ Boolean(subsection.sections[0].code);
390
+ return redundantSingleCodeSection
391
+ ? {
392
+ title: subsection.title,
393
+ content: [subsection.sections?.[0]?.code ?? ''],
394
+ }
395
+ : subsection;
396
+ }),
397
+ }
398
+ : section;
399
+ });
400
+ return {
401
+ title,
402
+ sections: compactSections,
403
+ };
404
+ }
405
+ //# sourceMappingURL=extract-header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-header.js","sourceRoot":"","sources":["../../src/utils/extract-header.ts"],"names":[],"mappings":"AA+BA;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAkB;IACnD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM;QACV,CAAC;QAED,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,UAAkB;IACzD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAExC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEtB,IAAI,IAAI,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,CAAC;QACb,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,OAAe;IACtC,MAAM,UAAU,GAA4C,EAAE,CAAC;IAC/D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,WAAW,GAAa,EAAE,CAAC;IAE/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,WAAW,EAAE,CAAC;gBACd,oBAAoB;gBACpB,UAAU,CAAC,IAAI,CAAC;oBACZ,QAAQ,EAAE,WAAW;oBACrB,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;iBACtC,CAAC,CAAC;gBACH,WAAW,GAAG,EAAE,CAAC;gBACjB,WAAW,GAAG,KAAK,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACJ,sBAAsB;gBACtB,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,WAAW,CAAC;gBAClD,WAAW,GAAG,IAAI,CAAC;YACvB,CAAC;QACL,CAAC;aAAM,IAAI,WAAW,EAAE,CAAC;YACrB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,OAAe;IACxC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,mBAAmB;QACnB,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,WAAW,GAAG,CAAC,WAAW,CAAC;YAC3B,SAAS;QACb,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YACd,SAAS;QACb,CAAC;QAED,mBAAmB;QACnB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACf,SAAS;QACb,CAAC;QAED,oDAAoD;QACpD,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,SAAS;QACb,CAAC;QAED,wBAAwB;QACxB,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,SAAS;QACb,CAAC;QAED,+EAA+E;QAC/E,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACzE,SAAS;QACb,CAAC;QAED,6BAA6B;QAC7B,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAE/C,6BAA6B;QAC7B,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;QACvD,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAEnD,6BAA6B;QAC7B,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAEjD,IAAI,OAAO,EAAE,CAAC;YACV,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,OAAe;IACjC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,IAAI,KAAK,GAAG,EAAE,CAAC;IAEf,6DAA6D;IAC7D,MAAM,QAAQ,GAAwD,EAAE,CAAC;IAEzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEtB,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,SAAS;QACb,CAAC;QAED,mCAAmC;QACnC,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9C,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACzB,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1B,QAAQ,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAC,CAAC,CAAC;YAC7D,SAAS;QACb,CAAC;QAED,qCAAqC;QACrC,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhD,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAE/B,QAAQ,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAC,CAAC,CAAC;YACzD,SAAS;QACb,CAAC;QAED,gDAAgD;QAChD,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAC,CAAC,CAAC;QACzE,CAAC;QAED,2BAA2B;QAC3B,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAEpE,IAAI,MAAM,EAAE,CAAC;gBACT,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjC,CAAC;QACL,CAAC;IACL,CAAC;IAED,wDAAwD;IACxD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,MAAM,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;QACpE,MAAM,OAAO,GAAG,mBAAmB,IAAI,KAAK,CAAC,MAAM,CAAC;QACpD,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE1E,WAAW,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,+EAA+E;IAC/E,IAAI,iBAAiB,GAAsB,IAAI,CAAC;IAChD,IAAI,WAAW,GAAsB,IAAI,CAAC;IAC1C,IAAI,YAAY,GAAsB,IAAI,CAAC;IAE3C,MAAM,eAAe,GAAG,GAAS,EAAE;QAC/B,IAAI,CAAC,WAAW,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACrC,OAAO;QACX,CAAC;QAED,IACI,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAC9B,WAAW,CAAC,IAAI;YAChB,CAAC,WAAW,CAAC,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAC3D,CAAC;YACC,iBAAiB,CAAC,KAAK,GAAG,iBAAiB,CAAC,KAAK,IAAI,EAAE,CAAC;YACxD,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9C,CAAC;QAED,WAAW,GAAG,IAAI,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,GAAS,EAAE;QAChC,IAAI,CAAC,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACtC,OAAO;QACX,CAAC;QAED,IACI,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAC/B,CAAC,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAC7D,CAAC;YACC,iBAAiB,CAAC,KAAK,GAAG,iBAAiB,CAAC,KAAK,IAAI,EAAE,CAAC;YACxD,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/C,CAAC;QAED,YAAY,GAAG,IAAI,CAAC;IACxB,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CACrB,IAAgB,EAChB,WAA2B,EAC3B,YAAsB,EAClB,EAAE;QACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEhC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;QACvC,CAAC;IACL,CAAC,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE5B,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,SAAS;QACb,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;QAC3B,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC;QAClD,MAAM,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEjE,+CAA+C;QAC/C,IAAI,OAAO,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACtD,gEAAgE;YAChE,eAAe,EAAE,CAAC;YAClB,gBAAgB,EAAE,CAAC;YAEnB,IAAI,iBAAiB,EAAE,CAAC;gBACpB,2BAA2B;gBAC3B,IACI,iBAAiB,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;oBACpC,CAAC,iBAAiB,CAAC,QAAQ;wBACvB,iBAAiB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC1C,CAAC,iBAAiB,CAAC,KAAK,IAAI,iBAAiB,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EACjE,CAAC;oBACC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACxC,CAAC;YACL,CAAC;YAED,MAAM,CAAC,KAAK,CAAC,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;YAErD,MAAM,kBAAkB,GAAG,KAAK;gBAC5B,CAAC,CAAC;oBACI;wBACI,OAAO,EAAE,OAAO,CAAC,KAAK;wBACtB,IAAI,EAAE,KAAK,CAAC,IAAI;qBACnB;iBACJ;gBACH,CAAC,CAAC,EAAE,CAAC;YAET,iBAAiB,GAAG;gBAChB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,OAAO,EAAE,mBAAmB,CAAC,iBAAiB,CAAC;gBAC/C,QAAQ,EAAE,kBAAkB;gBAC5B,KAAK,EAAE,EAAE;aACZ,CAAC;QACN,CAAC;QACD,iDAAiD;aAC5C,IAAI,OAAO,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3D,MAAM,YAAY,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;YAC5D,MAAM,UAAU,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;YACxD,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAErE,IAAI,YAAY,IAAI,iBAAiB,EAAE,CAAC;gBACpC,MAAM,WAAW,GAAmB;oBAChC,OAAO,EAAE,OAAO,CAAC,KAAK;oBACtB,IAAI;iBACP,CAAC;gBAEF,YAAY,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,IAAI,EAAE,CAAC;gBACpD,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAExC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;gBAC/C,CAAC;gBAED,SAAS;YACb,CAAC;YAED,0DAA0D;YAC1D,eAAe,EAAE,CAAC;YAElB,WAAW,GAAG;gBACV,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,OAAO,EAAE,YAAY;gBACrB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvB,QAAQ,EAAE,EAAE;aACf,CAAC;QACN,CAAC;QACD,sDAAsD;aACjD,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;YACxD,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACrE,MAAM,YAAY,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;YAC5D,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAEpC,IAAI,iBAAiB,IAAI,CAAC,WAAW,IAAI,WAAW,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC;gBAChE,gBAAgB,EAAE,CAAC;gBAEnB,YAAY,GAAG;oBACX,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;oBACzC,OAAO,EAAE,YAAY;oBACrB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvB,QAAQ,EAAE,EAAE;iBACf,CAAC;gBACF,WAAW,GAAG,IAAI,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACJ,MAAM,WAAW,GAAmB;oBAChC,OAAO,EAAE,OAAO,CAAC,KAAK;oBACtB,IAAI;iBACP,CAAC;gBAEF,IAAI,WAAW,EAAE,CAAC;oBACd,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;oBACzD,SAAS;gBACb,CAAC;gBAED,IAAI,iBAAiB,EAAE,CAAC;oBACpB,iBAAiB,CAAC,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,IAAI,EAAE,CAAC;oBAC9D,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC7C,SAAS;gBACb,CAAC;gBAED,0BAA0B;gBAC1B,WAAW,CAAC,IAAI,CAAC;oBACb,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,OAAO,EAAE,YAAY;oBACrB,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;iBAC7C,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QACD,oCAAoC;aAC/B,CAAC;YACF,eAAe,EAAE,CAAC;YAClB,gBAAgB,EAAE,CAAC;YAEnB,IAAI,iBAAiB,EAAE,CAAC;gBACpB,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACpC,iBAAiB,GAAG,IAAI,CAAC;YAC7B,CAAC;YAED,MAAM,YAAY,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;YAC5D,MAAM,UAAU,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;YAExD,WAAW,CAAC,IAAI,CAAC;gBACb,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,OAAO,EAAE,YAAY;gBACrB,QAAQ,EACJ,UAAU,CAAC,MAAM,GAAG,CAAC;oBACjB,CAAC,CAAC,CAAC,EAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAC,CAAC;oBACvD,CAAC,CAAC,SAAS;aACtB,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,kEAAkE;IAClE,eAAe,EAAE,CAAC;IAClB,gBAAgB,EAAE,CAAC;IAEnB,IAAI,iBAAiB,EAAE,CAAC;QACpB,6DAA6D;QAC7D,IACI,iBAAiB,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YACpC,CAAC,iBAAiB,CAAC,QAAQ,IAAI,iBAAiB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACrE,CAAC,iBAAiB,CAAC,KAAK,IAAI,iBAAiB,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EACjE,CAAC;YACC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACxC,CAAC;IACL,CAAC;IAED,0FAA0F;IAC1F,4EAA4E;IAC5E,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,sCAAsC;QACtC,MAAM,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;QAExD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,oDAAoD;YACpD,WAAW,CAAC,IAAI,CAAC;gBACb,KAAK,EAAE,EAAE,EAAE,uCAAuC;gBAClD,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,uCAAuC;aACzE,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,MAAM,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE/C,OAAO;QACH,KAAK;QACL,WAAW,EAAE,eAAe,IAAI,EAAE;QAClC,eAAe;QACf,WAAW;KACd,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,aAAqB;IACrD,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,mCAAmC,CAAC;IAElD,wCAAwC;IACxC,MAAM,cAAc,GAAyC,EAAE,CAAC;IAEhE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEtB,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,SAAS;QACb,CAAC;QAED,kBAAkB;QAClB,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9C,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,cAAc,CAAC,IAAI,CAAC;gBAChB,IAAI,EAAE,CAAC;gBACP,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;aAC3B,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,qBAAqB;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAEzC,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,SAAS;QACb,CAAC;QAED,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC;QAClC,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC;QACxD,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,aAAa,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;QAEnD,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,eAAe,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7C,MAAM,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CACnE,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CACnC,CAAC;QAEF,OAAO,sBAAsB;YACzB,CAAC,CAAC;gBACI,GAAG,OAAO;gBACV,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;oBAChD,MAAM,0BAA0B,GAC5B,UAAU,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;wBAC/B,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM;wBACzB,UAAU,CAAC,QAAQ,EAAE,MAAM,KAAK,CAAC;wBACjC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,UAAU,CAAC,KAAK;wBACpD,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAEzC,OAAO,0BAA0B;wBAC7B,CAAC,CAAC;4BACI,KAAK,EAAE,UAAU,CAAC,KAAK;4BACvB,OAAO,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;yBAClD;wBACH,CAAC,CAAC,UAAU,CAAC;gBACrB,CAAC,CAAC;aACL;YACH,CAAC,CAAC,OAAO,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO;QACH,KAAK;QACL,QAAQ,EAAE,eAAe;KAC5B,CAAC;AACN,CAAC"}
@@ -0,0 +1,187 @@
1
+ export function extractMigrationGuideContent(rawContent) {
2
+ if (!rawContent.trim()) {
3
+ return undefined;
4
+ }
5
+ const lines = rawContent.split(/\r?\n/);
6
+ let startIndex = -1;
7
+ let endIndex = lines.length;
8
+ const migrationGuideRegex = /^#\s+Migration\s+Guide/i;
9
+ const componentsRegex = /^#\s+components\//;
10
+ for (let i = 0; i < lines.length; i++) {
11
+ const line = lines[i];
12
+ if (!line) {
13
+ continue;
14
+ }
15
+ if (line === '---' && migrationGuideRegex.exec(lines[i + 1] ?? '')) {
16
+ startIndex = i;
17
+ continue;
18
+ }
19
+ if (startIndex !== -1 && componentsRegex.exec(line)) {
20
+ endIndex = i;
21
+ break;
22
+ }
23
+ }
24
+ return startIndex === -1
25
+ ? undefined
26
+ : lines.slice(startIndex, endIndex).join('\n').trim();
27
+ }
28
+ export function parseMigrationGuide(migrationContent) {
29
+ const lines = migrationContent.split(/\r?\n/);
30
+ let title = 'Migration Guide';
31
+ const introduction = [];
32
+ const sections = [];
33
+ let currentSection = null;
34
+ let currentSubsection = null;
35
+ let inCodeBlock = false;
36
+ let inHtmlComment = false;
37
+ let currentCode = [];
38
+ const appendCode = (code) => {
39
+ if (currentSubsection) {
40
+ currentSubsection.codeBlocks = currentSubsection.codeBlocks || [];
41
+ currentSubsection.codeBlocks.push(code);
42
+ return;
43
+ }
44
+ if (currentSection) {
45
+ currentSection.codeBlocks = currentSection.codeBlocks || [];
46
+ currentSection.codeBlocks.push(code);
47
+ }
48
+ };
49
+ const pushCurrentSubsection = () => {
50
+ if (!currentSubsection || !currentSection) {
51
+ return;
52
+ }
53
+ if (currentSubsection.content.length > 0 ||
54
+ (currentSubsection.codeBlocks && currentSubsection.codeBlocks.length > 0)) {
55
+ currentSection.subsections = currentSection.subsections || [];
56
+ currentSection.subsections.push(currentSubsection);
57
+ }
58
+ currentSubsection = null;
59
+ };
60
+ const pushCurrentSection = () => {
61
+ if (!currentSection) {
62
+ return;
63
+ }
64
+ pushCurrentSubsection();
65
+ if (currentSection.content.length > 0 ||
66
+ (currentSection.codeBlocks && currentSection.codeBlocks.length > 0) ||
67
+ (currentSection.subsections && currentSection.subsections.length > 0)) {
68
+ sections.push(currentSection);
69
+ }
70
+ currentSection = null;
71
+ };
72
+ for (const line of lines) {
73
+ if (line.startsWith('```')) {
74
+ if (inCodeBlock) {
75
+ inCodeBlock = false;
76
+ const code = currentCode.join('\n');
77
+ if (code || currentCode.length > 0) {
78
+ appendCode(code);
79
+ }
80
+ currentCode = [];
81
+ }
82
+ else {
83
+ inCodeBlock = true;
84
+ }
85
+ continue;
86
+ }
87
+ if (inCodeBlock) {
88
+ currentCode.push(line);
89
+ continue;
90
+ }
91
+ if (inHtmlComment) {
92
+ if (line.includes('-->')) {
93
+ inHtmlComment = false;
94
+ }
95
+ continue;
96
+ }
97
+ if (line.startsWith('<!--')) {
98
+ inHtmlComment = !line.includes('-->');
99
+ continue;
100
+ }
101
+ if (!line || line === '---') {
102
+ continue;
103
+ }
104
+ const h1Match = /^# ([^#\n]+)$/.exec(line);
105
+ if (h1Match?.[1]) {
106
+ pushCurrentSection();
107
+ title = h1Match[1].trim();
108
+ continue;
109
+ }
110
+ const h2Match = /^## ([^#\n]+)$/.exec(line);
111
+ if (h2Match?.[1]) {
112
+ pushCurrentSection();
113
+ currentSection = {
114
+ title: h2Match[1].trim(),
115
+ content: [],
116
+ };
117
+ continue;
118
+ }
119
+ const h3Match = /^### ([^#\n]+)$/.exec(line);
120
+ if (h3Match?.[1]) {
121
+ pushCurrentSubsection();
122
+ currentSubsection = {
123
+ title: h3Match[1].trim(),
124
+ content: [],
125
+ };
126
+ continue;
127
+ }
128
+ if (line.startsWith('>')) {
129
+ const cleaned = line.replace(/^>\s*/, '').trim();
130
+ if (!cleaned) {
131
+ continue;
132
+ }
133
+ if (currentSubsection) {
134
+ currentSubsection.content.push(cleaned);
135
+ }
136
+ else if (currentSection) {
137
+ currentSection.content.push(cleaned);
138
+ }
139
+ else {
140
+ introduction.push(cleaned);
141
+ }
142
+ continue;
143
+ }
144
+ if (line.startsWith('- ')) {
145
+ const cleaned = line.slice(2).trim();
146
+ if (!cleaned) {
147
+ continue;
148
+ }
149
+ if (currentSubsection) {
150
+ currentSubsection.content.push(`- ${cleaned}`);
151
+ }
152
+ else if (currentSection) {
153
+ currentSection.content.push(`- ${cleaned}`);
154
+ }
155
+ else {
156
+ introduction.push(`- ${cleaned}`);
157
+ }
158
+ continue;
159
+ }
160
+ if (line.startsWith('---')) {
161
+ continue;
162
+ }
163
+ const cleaned = line.trim();
164
+ if (cleaned) {
165
+ if (currentSubsection) {
166
+ currentSubsection.content.push(cleaned);
167
+ }
168
+ else if (currentSection) {
169
+ currentSection.content.push(cleaned);
170
+ }
171
+ else {
172
+ introduction.push(cleaned);
173
+ }
174
+ }
175
+ }
176
+ if (inCodeBlock && currentCode.length > 0) {
177
+ appendCode(currentCode.join('\n'));
178
+ }
179
+ pushCurrentSubsection();
180
+ pushCurrentSection();
181
+ return {
182
+ title,
183
+ introduction,
184
+ sections,
185
+ };
186
+ }
187
+ //# sourceMappingURL=extract-migration-guide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-migration-guide.js","sourceRoot":"","sources":["../../src/utils/extract-migration-guide.ts"],"names":[],"mappings":"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"}