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.
- package/README.md +179 -0
- package/dist/__tests__/collectCodeContext.test.d.ts +2 -0
- package/dist/__tests__/collectCodeContext.test.d.ts.map +1 -0
- package/dist/__tests__/collectCodeContext.test.js +139 -0
- package/dist/__tests__/collectCodeContext.test.js.map +1 -0
- package/dist/__tests__/createSessionLog.test.d.ts +2 -0
- package/dist/__tests__/createSessionLog.test.d.ts.map +1 -0
- package/dist/__tests__/createSessionLog.test.js +130 -0
- package/dist/__tests__/createSessionLog.test.js.map +1 -0
- package/dist/__tests__/generateDevDocument.test.d.ts +2 -0
- package/dist/__tests__/generateDevDocument.test.d.ts.map +1 -0
- package/dist/__tests__/generateDevDocument.test.js +174 -0
- package/dist/__tests__/generateDevDocument.test.js.map +1 -0
- package/dist/__tests__/normalizeForPlatform.test.d.ts +2 -0
- package/dist/__tests__/normalizeForPlatform.test.d.ts.map +1 -0
- package/dist/__tests__/normalizeForPlatform.test.js +171 -0
- package/dist/__tests__/normalizeForPlatform.test.js.map +1 -0
- package/dist/__tests__/publishDocument.test.d.ts +2 -0
- package/dist/__tests__/publishDocument.test.d.ts.map +1 -0
- package/dist/__tests__/publishDocument.test.js +93 -0
- package/dist/__tests__/publishDocument.test.js.map +1 -0
- package/dist/__tests__/summarizeDesignDecisions.test.d.ts +2 -0
- package/dist/__tests__/summarizeDesignDecisions.test.d.ts.map +1 -0
- package/dist/__tests__/summarizeDesignDecisions.test.js +158 -0
- package/dist/__tests__/summarizeDesignDecisions.test.js.map +1 -0
- package/dist/core/cache.d.ts +39 -0
- package/dist/core/cache.d.ts.map +1 -0
- package/dist/core/cache.js +112 -0
- package/dist/core/cache.js.map +1 -0
- package/dist/core/config.d.ts +30 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +90 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/errors.d.ts +52 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +99 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/logger.d.ts +57 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +114 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/schemas.d.ts +690 -0
- package/dist/core/schemas.d.ts.map +1 -0
- package/dist/core/schemas.js +136 -0
- package/dist/core/schemas.js.map +1 -0
- package/dist/core/security.d.ts +28 -0
- package/dist/core/security.d.ts.map +1 -0
- package/dist/core/security.js +103 -0
- package/dist/core/security.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +168 -0
- package/dist/index.js.map +1 -0
- package/dist/platforms/confluence.d.ts +13 -0
- package/dist/platforms/confluence.d.ts.map +1 -0
- package/dist/platforms/confluence.js +178 -0
- package/dist/platforms/confluence.js.map +1 -0
- package/dist/platforms/discord.d.ts +54 -0
- package/dist/platforms/discord.d.ts.map +1 -0
- package/dist/platforms/discord.js +176 -0
- package/dist/platforms/discord.js.map +1 -0
- package/dist/platforms/github-wiki.d.ts +3 -0
- package/dist/platforms/github-wiki.d.ts.map +1 -0
- package/dist/platforms/github-wiki.js +120 -0
- package/dist/platforms/github-wiki.js.map +1 -0
- package/dist/platforms/notion.d.ts +3 -0
- package/dist/platforms/notion.d.ts.map +1 -0
- package/dist/platforms/notion.js +205 -0
- package/dist/platforms/notion.js.map +1 -0
- package/dist/platforms/obsidian.d.ts +3 -0
- package/dist/platforms/obsidian.d.ts.map +1 -0
- package/dist/platforms/obsidian.js +43 -0
- package/dist/platforms/obsidian.js.map +1 -0
- package/dist/platforms/slack.d.ts +21 -0
- package/dist/platforms/slack.d.ts.map +1 -0
- package/dist/platforms/slack.js +217 -0
- package/dist/platforms/slack.js.map +1 -0
- package/dist/stdio.d.ts +6 -0
- package/dist/stdio.d.ts.map +1 -0
- package/dist/stdio.js +98 -0
- package/dist/stdio.js.map +1 -0
- package/dist/tools/analyzeCode.d.ts +65 -0
- package/dist/tools/analyzeCode.d.ts.map +1 -0
- package/dist/tools/analyzeCode.js +113 -0
- package/dist/tools/analyzeCode.js.map +1 -0
- package/dist/tools/collectCodeContext.d.ts +86 -0
- package/dist/tools/collectCodeContext.d.ts.map +1 -0
- package/dist/tools/collectCodeContext.js +275 -0
- package/dist/tools/collectCodeContext.js.map +1 -0
- package/dist/tools/createSessionLog.d.ts +79 -0
- package/dist/tools/createSessionLog.d.ts.map +1 -0
- package/dist/tools/createSessionLog.js +160 -0
- package/dist/tools/createSessionLog.js.map +1 -0
- package/dist/tools/generateDevDocument.d.ts +216 -0
- package/dist/tools/generateDevDocument.d.ts.map +1 -0
- package/dist/tools/generateDevDocument.js +659 -0
- package/dist/tools/generateDevDocument.js.map +1 -0
- package/dist/tools/normalizeForPlatform.d.ts +95 -0
- package/dist/tools/normalizeForPlatform.d.ts.map +1 -0
- package/dist/tools/normalizeForPlatform.js +340 -0
- package/dist/tools/normalizeForPlatform.js.map +1 -0
- package/dist/tools/publishDocument.d.ts +60 -0
- package/dist/tools/publishDocument.d.ts.map +1 -0
- package/dist/tools/publishDocument.js +117 -0
- package/dist/tools/publishDocument.js.map +1 -0
- package/dist/tools/summarizeDesignDecisions.d.ts +82 -0
- package/dist/tools/summarizeDesignDecisions.d.ts.map +1 -0
- package/dist/tools/summarizeDesignDecisions.js +361 -0
- package/dist/tools/summarizeDesignDecisions.js.map +1 -0
- package/dist/types/index.d.ts +63 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/astParser.d.ts +55 -0
- package/dist/utils/astParser.d.ts.map +1 -0
- package/dist/utils/astParser.js +333 -0
- package/dist/utils/astParser.js.map +1 -0
- package/dist/utils/i18n.d.ts +67 -0
- package/dist/utils/i18n.d.ts.map +1 -0
- package/dist/utils/i18n.js +193 -0
- package/dist/utils/i18n.js.map +1 -0
- package/dist/utils/markdown.d.ts +9 -0
- package/dist/utils/markdown.d.ts.map +1 -0
- package/dist/utils/markdown.js +99 -0
- package/dist/utils/markdown.js.map +1 -0
- package/dist/utils/mermaidGenerator.d.ts +69 -0
- package/dist/utils/mermaidGenerator.d.ts.map +1 -0
- package/dist/utils/mermaidGenerator.js +315 -0
- package/dist/utils/mermaidGenerator.js.map +1 -0
- 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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"}
|