vibe-coding-mcp 2.3.0

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 (130) hide show
  1. package/README.md +179 -0
  2. package/dist/__tests__/collectCodeContext.test.d.ts +2 -0
  3. package/dist/__tests__/collectCodeContext.test.d.ts.map +1 -0
  4. package/dist/__tests__/collectCodeContext.test.js +139 -0
  5. package/dist/__tests__/collectCodeContext.test.js.map +1 -0
  6. package/dist/__tests__/createSessionLog.test.d.ts +2 -0
  7. package/dist/__tests__/createSessionLog.test.d.ts.map +1 -0
  8. package/dist/__tests__/createSessionLog.test.js +130 -0
  9. package/dist/__tests__/createSessionLog.test.js.map +1 -0
  10. package/dist/__tests__/generateDevDocument.test.d.ts +2 -0
  11. package/dist/__tests__/generateDevDocument.test.d.ts.map +1 -0
  12. package/dist/__tests__/generateDevDocument.test.js +174 -0
  13. package/dist/__tests__/generateDevDocument.test.js.map +1 -0
  14. package/dist/__tests__/normalizeForPlatform.test.d.ts +2 -0
  15. package/dist/__tests__/normalizeForPlatform.test.d.ts.map +1 -0
  16. package/dist/__tests__/normalizeForPlatform.test.js +171 -0
  17. package/dist/__tests__/normalizeForPlatform.test.js.map +1 -0
  18. package/dist/__tests__/publishDocument.test.d.ts +2 -0
  19. package/dist/__tests__/publishDocument.test.d.ts.map +1 -0
  20. package/dist/__tests__/publishDocument.test.js +93 -0
  21. package/dist/__tests__/publishDocument.test.js.map +1 -0
  22. package/dist/__tests__/summarizeDesignDecisions.test.d.ts +2 -0
  23. package/dist/__tests__/summarizeDesignDecisions.test.d.ts.map +1 -0
  24. package/dist/__tests__/summarizeDesignDecisions.test.js +158 -0
  25. package/dist/__tests__/summarizeDesignDecisions.test.js.map +1 -0
  26. package/dist/core/cache.d.ts +39 -0
  27. package/dist/core/cache.d.ts.map +1 -0
  28. package/dist/core/cache.js +112 -0
  29. package/dist/core/cache.js.map +1 -0
  30. package/dist/core/config.d.ts +30 -0
  31. package/dist/core/config.d.ts.map +1 -0
  32. package/dist/core/config.js +90 -0
  33. package/dist/core/config.js.map +1 -0
  34. package/dist/core/errors.d.ts +52 -0
  35. package/dist/core/errors.d.ts.map +1 -0
  36. package/dist/core/errors.js +99 -0
  37. package/dist/core/errors.js.map +1 -0
  38. package/dist/core/logger.d.ts +57 -0
  39. package/dist/core/logger.d.ts.map +1 -0
  40. package/dist/core/logger.js +114 -0
  41. package/dist/core/logger.js.map +1 -0
  42. package/dist/core/schemas.d.ts +690 -0
  43. package/dist/core/schemas.d.ts.map +1 -0
  44. package/dist/core/schemas.js +136 -0
  45. package/dist/core/schemas.js.map +1 -0
  46. package/dist/core/security.d.ts +28 -0
  47. package/dist/core/security.d.ts.map +1 -0
  48. package/dist/core/security.js +103 -0
  49. package/dist/core/security.js.map +1 -0
  50. package/dist/index.d.ts +3 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +168 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/platforms/confluence.d.ts +13 -0
  55. package/dist/platforms/confluence.d.ts.map +1 -0
  56. package/dist/platforms/confluence.js +178 -0
  57. package/dist/platforms/confluence.js.map +1 -0
  58. package/dist/platforms/discord.d.ts +54 -0
  59. package/dist/platforms/discord.d.ts.map +1 -0
  60. package/dist/platforms/discord.js +176 -0
  61. package/dist/platforms/discord.js.map +1 -0
  62. package/dist/platforms/github-wiki.d.ts +3 -0
  63. package/dist/platforms/github-wiki.d.ts.map +1 -0
  64. package/dist/platforms/github-wiki.js +120 -0
  65. package/dist/platforms/github-wiki.js.map +1 -0
  66. package/dist/platforms/notion.d.ts +3 -0
  67. package/dist/platforms/notion.d.ts.map +1 -0
  68. package/dist/platforms/notion.js +205 -0
  69. package/dist/platforms/notion.js.map +1 -0
  70. package/dist/platforms/obsidian.d.ts +3 -0
  71. package/dist/platforms/obsidian.d.ts.map +1 -0
  72. package/dist/platforms/obsidian.js +43 -0
  73. package/dist/platforms/obsidian.js.map +1 -0
  74. package/dist/platforms/slack.d.ts +21 -0
  75. package/dist/platforms/slack.d.ts.map +1 -0
  76. package/dist/platforms/slack.js +217 -0
  77. package/dist/platforms/slack.js.map +1 -0
  78. package/dist/stdio.d.ts +6 -0
  79. package/dist/stdio.d.ts.map +1 -0
  80. package/dist/stdio.js +98 -0
  81. package/dist/stdio.js.map +1 -0
  82. package/dist/tools/analyzeCode.d.ts +65 -0
  83. package/dist/tools/analyzeCode.d.ts.map +1 -0
  84. package/dist/tools/analyzeCode.js +113 -0
  85. package/dist/tools/analyzeCode.js.map +1 -0
  86. package/dist/tools/collectCodeContext.d.ts +86 -0
  87. package/dist/tools/collectCodeContext.d.ts.map +1 -0
  88. package/dist/tools/collectCodeContext.js +275 -0
  89. package/dist/tools/collectCodeContext.js.map +1 -0
  90. package/dist/tools/createSessionLog.d.ts +79 -0
  91. package/dist/tools/createSessionLog.d.ts.map +1 -0
  92. package/dist/tools/createSessionLog.js +160 -0
  93. package/dist/tools/createSessionLog.js.map +1 -0
  94. package/dist/tools/generateDevDocument.d.ts +216 -0
  95. package/dist/tools/generateDevDocument.d.ts.map +1 -0
  96. package/dist/tools/generateDevDocument.js +659 -0
  97. package/dist/tools/generateDevDocument.js.map +1 -0
  98. package/dist/tools/normalizeForPlatform.d.ts +95 -0
  99. package/dist/tools/normalizeForPlatform.d.ts.map +1 -0
  100. package/dist/tools/normalizeForPlatform.js +340 -0
  101. package/dist/tools/normalizeForPlatform.js.map +1 -0
  102. package/dist/tools/publishDocument.d.ts +60 -0
  103. package/dist/tools/publishDocument.d.ts.map +1 -0
  104. package/dist/tools/publishDocument.js +117 -0
  105. package/dist/tools/publishDocument.js.map +1 -0
  106. package/dist/tools/summarizeDesignDecisions.d.ts +82 -0
  107. package/dist/tools/summarizeDesignDecisions.d.ts.map +1 -0
  108. package/dist/tools/summarizeDesignDecisions.js +361 -0
  109. package/dist/tools/summarizeDesignDecisions.js.map +1 -0
  110. package/dist/types/index.d.ts +63 -0
  111. package/dist/types/index.d.ts.map +1 -0
  112. package/dist/types/index.js +2 -0
  113. package/dist/types/index.js.map +1 -0
  114. package/dist/utils/astParser.d.ts +55 -0
  115. package/dist/utils/astParser.d.ts.map +1 -0
  116. package/dist/utils/astParser.js +333 -0
  117. package/dist/utils/astParser.js.map +1 -0
  118. package/dist/utils/i18n.d.ts +67 -0
  119. package/dist/utils/i18n.d.ts.map +1 -0
  120. package/dist/utils/i18n.js +193 -0
  121. package/dist/utils/i18n.js.map +1 -0
  122. package/dist/utils/markdown.d.ts +9 -0
  123. package/dist/utils/markdown.d.ts.map +1 -0
  124. package/dist/utils/markdown.js +99 -0
  125. package/dist/utils/markdown.js.map +1 -0
  126. package/dist/utils/mermaidGenerator.d.ts +69 -0
  127. package/dist/utils/mermaidGenerator.d.ts.map +1 -0
  128. package/dist/utils/mermaidGenerator.js +315 -0
  129. package/dist/utils/mermaidGenerator.js.map +1 -0
  130. package/package.json +66 -0
@@ -0,0 +1,193 @@
1
+ /**
2
+ * 다국어 지원 유틸리티
3
+ * 한국어/영어 문서 동시 생성 지원
4
+ */
5
+ const translations = {
6
+ ko: {
7
+ overview: '개요',
8
+ features: '주요 기능',
9
+ installation: '설치',
10
+ usage: '사용법',
11
+ api: 'API',
12
+ configuration: '설정',
13
+ examples: '예제',
14
+ contributing: '기여하기',
15
+ license: '라이선스',
16
+ changelog: '변경 이력',
17
+ version: '버전',
18
+ author: '작성자',
19
+ description: '설명',
20
+ parameters: '매개변수',
21
+ returns: '반환값',
22
+ type: '타입',
23
+ required: '필수',
24
+ optional: '선택',
25
+ default: '기본값',
26
+ example: '예제',
27
+ note: '참고',
28
+ warning: '주의',
29
+ tip: '팁',
30
+ install: '설치',
31
+ run: '실행',
32
+ build: '빌드',
33
+ test: '테스트',
34
+ deploy: '배포',
35
+ breaking: '주요 변경',
36
+ added: '추가',
37
+ changed: '변경',
38
+ deprecated: '지원 중단 예정',
39
+ removed: '삭제',
40
+ fixed: '수정',
41
+ security: '보안',
42
+ readme: 'README',
43
+ tutorial: '튜토리얼',
44
+ apiReference: 'API 문서',
45
+ designDoc: '설계 문서',
46
+ generatedOn: '생성일',
47
+ lastUpdated: '최종 수정일',
48
+ tableOfContents: '목차',
49
+ gettingStarted: '시작하기',
50
+ prerequisites: '사전 요구사항',
51
+ quickStart: '빠른 시작'
52
+ },
53
+ en: {
54
+ overview: 'Overview',
55
+ features: 'Features',
56
+ installation: 'Installation',
57
+ usage: 'Usage',
58
+ api: 'API',
59
+ configuration: 'Configuration',
60
+ examples: 'Examples',
61
+ contributing: 'Contributing',
62
+ license: 'License',
63
+ changelog: 'Changelog',
64
+ version: 'Version',
65
+ author: 'Author',
66
+ description: 'Description',
67
+ parameters: 'Parameters',
68
+ returns: 'Returns',
69
+ type: 'Type',
70
+ required: 'Required',
71
+ optional: 'Optional',
72
+ default: 'Default',
73
+ example: 'Example',
74
+ note: 'Note',
75
+ warning: 'Warning',
76
+ tip: 'Tip',
77
+ install: 'Install',
78
+ run: 'Run',
79
+ build: 'Build',
80
+ test: 'Test',
81
+ deploy: 'Deploy',
82
+ breaking: 'Breaking Changes',
83
+ added: 'Added',
84
+ changed: 'Changed',
85
+ deprecated: 'Deprecated',
86
+ removed: 'Removed',
87
+ fixed: 'Fixed',
88
+ security: 'Security',
89
+ readme: 'README',
90
+ tutorial: 'Tutorial',
91
+ apiReference: 'API Reference',
92
+ designDoc: 'Design Document',
93
+ generatedOn: 'Generated on',
94
+ lastUpdated: 'Last updated',
95
+ tableOfContents: 'Table of Contents',
96
+ gettingStarted: 'Getting Started',
97
+ prerequisites: 'Prerequisites',
98
+ quickStart: 'Quick Start'
99
+ }
100
+ };
101
+ // 현재 언어 설정
102
+ let currentLanguage = 'en';
103
+ export function setLanguage(lang) {
104
+ currentLanguage = lang;
105
+ }
106
+ export function getLanguage() {
107
+ return currentLanguage;
108
+ }
109
+ export function t(key, lang) {
110
+ const useLang = lang || currentLanguage;
111
+ return translations[useLang][key] || translations['en'][key] || key;
112
+ }
113
+ // 양쪽 언어로 동시 생성
114
+ export function tBilingual(key) {
115
+ return {
116
+ ko: translations.ko[key],
117
+ en: translations.en[key]
118
+ };
119
+ }
120
+ // 날짜 포맷
121
+ export function formatDate(date, lang) {
122
+ const useLang = lang || currentLanguage;
123
+ if (useLang === 'ko') {
124
+ return `${date.getFullYear()}년 ${date.getMonth() + 1}월 ${date.getDate()}일`;
125
+ }
126
+ return date.toLocaleDateString('en-US', {
127
+ year: 'numeric',
128
+ month: 'long',
129
+ day: 'numeric'
130
+ });
131
+ }
132
+ // 코드 코멘트 변환
133
+ export function translateCodeComment(comment, targetLang) {
134
+ // 간단한 매핑 (실제로는 더 정교한 번역이 필요)
135
+ const commonTranslations = {
136
+ 'TODO': { ko: '할 일', en: 'TODO' },
137
+ 'FIXME': { ko: '수정 필요', en: 'FIXME' },
138
+ 'NOTE': { ko: '참고', en: 'NOTE' },
139
+ 'HACK': { ko: '임시 처리', en: 'HACK' },
140
+ 'XXX': { ko: '주의', en: 'XXX' }
141
+ };
142
+ for (const [key, value] of Object.entries(commonTranslations)) {
143
+ if (comment.includes(key)) {
144
+ comment = comment.replace(key, value[targetLang]);
145
+ }
146
+ }
147
+ return comment;
148
+ }
149
+ // 마크다운 헤더 변환
150
+ export function translateMarkdownHeaders(markdown, lang) {
151
+ const headerMappings = {
152
+ 'Overview': 'overview',
153
+ 'Features': 'features',
154
+ 'Installation': 'installation',
155
+ 'Usage': 'usage',
156
+ 'API': 'api',
157
+ 'Configuration': 'configuration',
158
+ 'Examples': 'examples',
159
+ 'Contributing': 'contributing',
160
+ 'License': 'license',
161
+ 'Changelog': 'changelog',
162
+ 'Table of Contents': 'tableOfContents',
163
+ 'Getting Started': 'gettingStarted',
164
+ 'Prerequisites': 'prerequisites',
165
+ 'Quick Start': 'quickStart',
166
+ '개요': 'overview',
167
+ '주요 기능': 'features',
168
+ '설치': 'installation',
169
+ '사용법': 'usage',
170
+ '설정': 'configuration',
171
+ '예제': 'examples',
172
+ '기여하기': 'contributing',
173
+ '라이선스': 'license',
174
+ '변경 이력': 'changelog',
175
+ '목차': 'tableOfContents',
176
+ '시작하기': 'gettingStarted',
177
+ '사전 요구사항': 'prerequisites',
178
+ '빠른 시작': 'quickStart'
179
+ };
180
+ for (const [original, key] of Object.entries(headerMappings)) {
181
+ const regex = new RegExp(`(#{1,6})\\s*${original}\\s*$`, 'gm');
182
+ markdown = markdown.replace(regex, `$1 ${t(key, lang)}`);
183
+ }
184
+ return markdown;
185
+ }
186
+ // 문서를 양쪽 언어로 생성
187
+ export function generateBilingualDocument(generator) {
188
+ return {
189
+ ko: generator('ko'),
190
+ en: generator('en')
191
+ };
192
+ }
193
+ //# sourceMappingURL=i18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/utils/i18n.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { CodeBlock, DesignDecision, Platform } from '../types/index.js';
2
+ export declare function codeBlockToMarkdown(block: CodeBlock): string;
3
+ export declare function designDecisionToMarkdown(decision: DesignDecision): string;
4
+ export declare function extractCodeBlocks(text: string): CodeBlock[];
5
+ export declare function normalizeMarkdownForPlatform(markdown: string, platform: Platform): string;
6
+ export declare function generateId(): string;
7
+ export declare function getCurrentTimestamp(): string;
8
+ export declare function formatDate(date?: Date): string;
9
+ //# sourceMappingURL=markdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/utils/markdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGxE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAO5D;AAGD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAczE;AAGD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CAa3D;AAGD,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAWzF;AAgDD,wBAAgB,UAAU,IAAI,MAAM,CAMnC;AAGD,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAGD,wBAAgB,UAAU,CAAC,IAAI,GAAE,IAAiB,GAAG,MAAM,CAE1D"}
@@ -0,0 +1,99 @@
1
+ // 코드 블록을 마크다운으로 변환
2
+ export function codeBlockToMarkdown(block) {
3
+ const header = block.filename ? `// ${block.filename}` : '';
4
+ const description = block.description ? `// ${block.description}\n` : '';
5
+ return `\`\`\`${block.language}
6
+ ${header ? header + '\n' : ''}${description}${block.code}
7
+ \`\`\``;
8
+ }
9
+ // 디자인 결정을 마크다운으로 변환
10
+ export function designDecisionToMarkdown(decision) {
11
+ let md = `### ${decision.title}\n\n`;
12
+ md += `**Category:** ${decision.category}\n\n`;
13
+ md += `${decision.description}\n\n`;
14
+ md += `**Rationale:** ${decision.rationale}\n`;
15
+ if (decision.alternatives && decision.alternatives.length > 0) {
16
+ md += `\n**Alternatives Considered:**\n`;
17
+ decision.alternatives.forEach(alt => {
18
+ md += `- ${alt}\n`;
19
+ });
20
+ }
21
+ return md;
22
+ }
23
+ // 텍스트에서 코드 블록 추출
24
+ export function extractCodeBlocks(text) {
25
+ const codeBlockRegex = /```(\w+)?\n([\s\S]*?)```/g;
26
+ const blocks = [];
27
+ let match;
28
+ while ((match = codeBlockRegex.exec(text)) !== null) {
29
+ blocks.push({
30
+ language: match[1] || 'text',
31
+ code: match[2].trim()
32
+ });
33
+ }
34
+ return blocks;
35
+ }
36
+ // 플랫폼별 마크다운 변환
37
+ export function normalizeMarkdownForPlatform(markdown, platform) {
38
+ switch (platform) {
39
+ case 'notion':
40
+ return normalizeForNotion(markdown);
41
+ case 'github-wiki':
42
+ return normalizeForGitHubWiki(markdown);
43
+ case 'obsidian':
44
+ return normalizeForObsidian(markdown);
45
+ default:
46
+ return markdown;
47
+ }
48
+ }
49
+ // Notion용 변환
50
+ function normalizeForNotion(markdown) {
51
+ // Notion은 대부분의 마크다운을 지원하지만 일부 조정 필요
52
+ let normalized = markdown;
53
+ // 체크박스 변환
54
+ normalized = normalized.replace(/- \[ \]/g, '☐');
55
+ normalized = normalized.replace(/- \[x\]/g, '☑');
56
+ // 하이라이트 문법 변환 (==text== -> **text**)
57
+ normalized = normalized.replace(/==(.*?)==/g, '**$1**');
58
+ return normalized;
59
+ }
60
+ // GitHub Wiki용 변환
61
+ function normalizeForGitHubWiki(markdown) {
62
+ let normalized = markdown;
63
+ // 내부 링크를 Wiki 스타일로 변환
64
+ // [[Page Name]] -> [Page Name](Page-Name)
65
+ normalized = normalized.replace(/\[\[(.*?)\]\]/g, (_, pageName) => {
66
+ const slug = pageName.replace(/\s+/g, '-');
67
+ return `[${pageName}](${slug})`;
68
+ });
69
+ return normalized;
70
+ }
71
+ // Obsidian용 변환
72
+ function normalizeForObsidian(markdown) {
73
+ let normalized = markdown;
74
+ // 일반 링크를 Obsidian 내부 링크로 변환 (필요시)
75
+ // 이미 Obsidian 형식이면 그대로 유지
76
+ // 태그 형식 유지 (#tag)
77
+ // Callout 문법 지원
78
+ normalized = normalized.replace(/^> \[!(note|warning|tip|important)\]/gm, (_, type) => {
79
+ return `> [!${type}]`;
80
+ });
81
+ return normalized;
82
+ }
83
+ // UUID 생성
84
+ export function generateId() {
85
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
86
+ const r = Math.random() * 16 | 0;
87
+ const v = c === 'x' ? r : (r & 0x3 | 0x8);
88
+ return v.toString(16);
89
+ });
90
+ }
91
+ // 현재 타임스탬프 생성
92
+ export function getCurrentTimestamp() {
93
+ return new Date().toISOString();
94
+ }
95
+ // 날짜 포맷팅 (YYYY-MM-DD)
96
+ export function formatDate(date = new Date()) {
97
+ return date.toISOString().split('T')[0];
98
+ }
99
+ //# sourceMappingURL=markdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/utils/markdown.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Mermaid 다이어그램 생성 유틸리티
3
+ * 의존성 그래프, 플로우차트, 클래스 다이어그램 등 생성
4
+ */
5
+ import { CodeAnalysis, ClassInfo, FunctionInfo } from './astParser.js';
6
+ export interface DiagramOptions {
7
+ direction?: 'TB' | 'BT' | 'LR' | 'RL';
8
+ theme?: 'default' | 'dark' | 'forest' | 'neutral';
9
+ showPrivate?: boolean;
10
+ maxNodes?: number;
11
+ }
12
+ export declare function generateDependencyGraph(analyses: {
13
+ filename: string;
14
+ analysis: CodeAnalysis;
15
+ }[], options?: DiagramOptions): string;
16
+ export declare function generateClassDiagram(classes: ClassInfo[], options?: DiagramOptions): string;
17
+ export declare function generateFlowchart(functions: FunctionInfo[], options?: DiagramOptions): string;
18
+ export declare function generateSequenceDiagram(participants: string[], interactions: {
19
+ from: string;
20
+ to: string;
21
+ message: string;
22
+ type?: 'sync' | 'async' | 'return';
23
+ }[]): string;
24
+ export declare function generateArchitectureDiagram(components: {
25
+ name: string;
26
+ type: 'service' | 'database' | 'api' | 'client' | 'queue';
27
+ }[], connections: {
28
+ from: string;
29
+ to: string;
30
+ label?: string;
31
+ }[], options?: DiagramOptions): string;
32
+ export declare function generateStateDiagram(states: string[], transitions: {
33
+ from: string;
34
+ to: string;
35
+ trigger?: string;
36
+ }[]): string;
37
+ export declare function generateGanttChart(title: string, tasks: {
38
+ name: string;
39
+ start: string;
40
+ duration: string;
41
+ section?: string;
42
+ }[]): string;
43
+ export declare function generateERDiagram(entities: {
44
+ name: string;
45
+ attributes: {
46
+ name: string;
47
+ type: string;
48
+ pk?: boolean;
49
+ fk?: boolean;
50
+ }[];
51
+ }[], relationships: {
52
+ from: string;
53
+ to: string;
54
+ type: 'one-to-one' | 'one-to-many' | 'many-to-many';
55
+ label?: string;
56
+ }[]): string;
57
+ export declare function generatePieChart(title: string, data: {
58
+ label: string;
59
+ value: number;
60
+ }[]): string;
61
+ export declare function generateTimeline(title: string, events: {
62
+ period: string;
63
+ events: string[];
64
+ }[]): string;
65
+ export declare function generateDiagramsFromAnalysis(analysis: CodeAnalysis, filename: string): {
66
+ type: string;
67
+ diagram: string;
68
+ }[];
69
+ //# sourceMappingURL=mermaidGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mermaidGenerator.d.ts","sourceRoot":"","sources":["../../src/utils/mermaidGenerator.ts"],"names":[],"mappings":"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"}