@enokdev/springdocs-mcp 1.2.3 → 1.2.5
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 +274 -244
- package/build/index.js +202 -57
- package/build/index.js.map +1 -1
- package/build/services/advanced-features-old.d.ts +45 -0
- package/build/services/advanced-features-old.d.ts.map +1 -0
- package/build/services/advanced-features-old.js +792 -0
- package/build/services/advanced-features-old.js.map +1 -0
- package/build/services/advanced-features.d.ts +41 -0
- package/build/services/advanced-features.d.ts.map +1 -0
- package/build/services/advanced-features.js +416 -0
- package/build/services/advanced-features.js.map +1 -0
- package/build/services/cache.d.ts +36 -0
- package/build/services/cache.d.ts.map +1 -0
- package/build/services/cache.js +68 -0
- package/build/services/cache.js.map +1 -0
- package/build/services/springboot-docs-optimized-old.d.ts +55 -0
- package/build/services/springboot-docs-optimized-old.d.ts.map +1 -0
- package/build/services/springboot-docs-optimized-old.js +588 -0
- package/build/services/springboot-docs-optimized-old.js.map +1 -0
- package/build/services/springboot-docs-optimized.d.ts +59 -0
- package/build/services/springboot-docs-optimized.d.ts.map +1 -0
- package/build/services/springboot-docs-optimized.js +397 -0
- package/build/services/springboot-docs-optimized.js.map +1 -0
- package/build/tools/index.d.ts +262 -0
- package/build/tools/index.d.ts.map +1 -1
- package/build/tools/index.js +115 -0
- package/build/tools/index.js.map +1 -1
- package/package.json +17 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advanced-features-old.js","sourceRoot":"","sources":["../../src/services/advanced-features-old.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Advanced features service for Spring documentation - uses ONLY real Spring documentation APIs
|
|
3
|
+
* No mock data - everything is fetched from actual Spring documentation sources
|
|
4
|
+
*/
|
|
5
|
+
export declare class AdvancedFeaturesService {
|
|
6
|
+
private cache;
|
|
7
|
+
private turndownService;
|
|
8
|
+
private readonly baseUrl;
|
|
9
|
+
private readonly springProjectsUrl;
|
|
10
|
+
private readonly springGuideUrl;
|
|
11
|
+
private readonly REQUEST_TIMEOUT;
|
|
12
|
+
private readonly MAX_RETRIES;
|
|
13
|
+
constructor();
|
|
14
|
+
/**
|
|
15
|
+
* Search across the entire Spring ecosystem using real APIs
|
|
16
|
+
*/
|
|
17
|
+
searchEcosystem(query: string, scope?: string, limit?: number): Promise<any>;
|
|
18
|
+
/**
|
|
19
|
+
* Get tutorials by fetching from actual Spring Boot guides
|
|
20
|
+
*/
|
|
21
|
+
getTutorial(topic: string, level?: string): Promise<string>;
|
|
22
|
+
/**
|
|
23
|
+
* Compare Spring Boot versions using real release notes
|
|
24
|
+
*/
|
|
25
|
+
compareVersions(version1: string, version2: string, focus?: string): Promise<string>;
|
|
26
|
+
/**
|
|
27
|
+
* Get best practices from official Spring documentation
|
|
28
|
+
*/
|
|
29
|
+
getBestPractices(category: string, experienceLevel?: string): Promise<string>;
|
|
30
|
+
/**
|
|
31
|
+
* Diagnose issues using Spring Boot documentation
|
|
32
|
+
*/
|
|
33
|
+
diagnoseIssues(errorMessage: string, component?: string, stackTrace?: string): Promise<string>;
|
|
34
|
+
private searchProjects;
|
|
35
|
+
private searchGuides;
|
|
36
|
+
private searchDocumentation;
|
|
37
|
+
private searchAPI;
|
|
38
|
+
private formatEcosystemResults;
|
|
39
|
+
private fetchWithRetry;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=advanced-features.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advanced-features.d.ts","sourceRoot":"","sources":["../../src/services/advanced-features.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IACpD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAgC;IAClE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA8B;IAC7D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAK;;IAUjC;;OAEG;IACG,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAc,EAAE,KAAK,GAAE,MAAU;IAyC7E;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAmB;IA4C3D;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,MAAc;IAqD/E;;OAEG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,GAAE,MAAuB;IA4DjF;;OAEG;IACG,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;YAiDpE,cAAc;YAkCd,YAAY;YAmCZ,mBAAmB;YA+BnB,SAAS;IAkBvB,OAAO,CAAC,sBAAsB;YA+ChB,cAAc;CA0B7B"}
|
|
@@ -0,0 +1,416 @@
|
|
|
1
|
+
import fetch from 'node-fetch';
|
|
2
|
+
import * as cheerio from 'cheerio';
|
|
3
|
+
import TurndownService from 'turndown';
|
|
4
|
+
import { CacheService } from './cache.js';
|
|
5
|
+
/**
|
|
6
|
+
* Advanced features service for Spring documentation - uses ONLY real Spring documentation APIs
|
|
7
|
+
* No mock data - everything is fetched from actual Spring documentation sources
|
|
8
|
+
*/
|
|
9
|
+
export class AdvancedFeaturesService {
|
|
10
|
+
cache;
|
|
11
|
+
turndownService;
|
|
12
|
+
baseUrl = 'https://docs.spring.io';
|
|
13
|
+
springProjectsUrl = 'https://spring.io/projects';
|
|
14
|
+
springGuideUrl = 'https://spring.io/guides';
|
|
15
|
+
REQUEST_TIMEOUT = 10000;
|
|
16
|
+
MAX_RETRIES = 3;
|
|
17
|
+
constructor() {
|
|
18
|
+
this.cache = new CacheService();
|
|
19
|
+
this.turndownService = new TurndownService({
|
|
20
|
+
headingStyle: 'atx',
|
|
21
|
+
codeBlockStyle: 'fenced',
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Search across the entire Spring ecosystem using real APIs
|
|
26
|
+
*/
|
|
27
|
+
async searchEcosystem(query, scope = 'all', limit = 5) {
|
|
28
|
+
const cacheKey = `ecosystem:${query}:${scope}:${limit}`;
|
|
29
|
+
const cached = this.cache.get(cacheKey);
|
|
30
|
+
if (cached)
|
|
31
|
+
return cached;
|
|
32
|
+
const results = {
|
|
33
|
+
query,
|
|
34
|
+
scope,
|
|
35
|
+
totalResults: 0,
|
|
36
|
+
categories: {}
|
|
37
|
+
};
|
|
38
|
+
try {
|
|
39
|
+
if (scope === 'all' || scope === 'projects') {
|
|
40
|
+
results.categories.projects = await this.searchProjects(query, limit);
|
|
41
|
+
}
|
|
42
|
+
if (scope === 'all' || scope === 'guides') {
|
|
43
|
+
results.categories.guides = await this.searchGuides(query, limit);
|
|
44
|
+
}
|
|
45
|
+
if (scope === 'all' || scope === 'docs') {
|
|
46
|
+
results.categories.documentation = await this.searchDocumentation(query, limit);
|
|
47
|
+
}
|
|
48
|
+
if (scope === 'all' || scope === 'api') {
|
|
49
|
+
results.categories.api = await this.searchAPI(query, limit);
|
|
50
|
+
}
|
|
51
|
+
results.totalResults = Object.values(results.categories)
|
|
52
|
+
.reduce((total, category) => total + (category?.length || 0), 0);
|
|
53
|
+
const formattedResult = this.formatEcosystemResults(results);
|
|
54
|
+
this.cache.set(cacheKey, formattedResult);
|
|
55
|
+
return formattedResult;
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
console.error('Error searching ecosystem:', error);
|
|
59
|
+
return `# Spring Ecosystem Search Results\n\nError searching for "${query}": ${error instanceof Error ? error.message : 'Unknown error'}`;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get tutorials by fetching from actual Spring Boot guides
|
|
64
|
+
*/
|
|
65
|
+
async getTutorial(topic, level = 'beginner') {
|
|
66
|
+
const cacheKey = `tutorial:${topic}:${level}`;
|
|
67
|
+
const cached = this.cache.get(cacheKey);
|
|
68
|
+
if (cached)
|
|
69
|
+
return cached;
|
|
70
|
+
try {
|
|
71
|
+
// Search for relevant guides based on topic
|
|
72
|
+
const guides = await this.searchGuides(topic, 3);
|
|
73
|
+
if (guides.length === 0) {
|
|
74
|
+
return `# Tutorial Not Found\n\nNo tutorials found for topic: "${topic}"\n\nTry searching for: rest-api, jpa, security, testing, or web`;
|
|
75
|
+
}
|
|
76
|
+
// Fetch content from the first relevant guide
|
|
77
|
+
const guide = guides[0];
|
|
78
|
+
const response = await this.fetchWithRetry(guide.url);
|
|
79
|
+
if (!response.ok) {
|
|
80
|
+
throw new Error(`Failed to fetch tutorial: ${response.status}`);
|
|
81
|
+
}
|
|
82
|
+
const html = await response.text();
|
|
83
|
+
const $ = cheerio.load(html);
|
|
84
|
+
// Extract main content
|
|
85
|
+
const content = $('.content, .guide-content, main, .markdown-body').first();
|
|
86
|
+
if (content.length === 0) {
|
|
87
|
+
throw new Error('No content found in guide');
|
|
88
|
+
}
|
|
89
|
+
// Convert to markdown
|
|
90
|
+
const markdown = this.turndownService.turndown(content.html() || '');
|
|
91
|
+
const result = `# ${guide.title}\n\n**Level:** ${level}\n**Source:** ${guide.url}\n\n${markdown}`;
|
|
92
|
+
this.cache.set(cacheKey, result);
|
|
93
|
+
return result;
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
console.error('Error fetching tutorial:', error);
|
|
97
|
+
return `# Tutorial Error\n\nUnable to fetch tutorial for "${topic}": ${error instanceof Error ? error.message : 'Unknown error'}`;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Compare Spring Boot versions using real release notes
|
|
102
|
+
*/
|
|
103
|
+
async compareVersions(version1, version2, focus = 'all') {
|
|
104
|
+
const cacheKey = `versions:${version1}:${version2}:${focus}`;
|
|
105
|
+
const cached = this.cache.get(cacheKey);
|
|
106
|
+
if (cached)
|
|
107
|
+
return cached;
|
|
108
|
+
try {
|
|
109
|
+
// Fetch release notes from GitHub
|
|
110
|
+
const releaseNotesUrl = `https://api.github.com/repos/spring-projects/spring-boot/releases`;
|
|
111
|
+
const response = await this.fetchWithRetry(releaseNotesUrl);
|
|
112
|
+
if (!response.ok) {
|
|
113
|
+
throw new Error(`Failed to fetch release data: ${response.status}`);
|
|
114
|
+
}
|
|
115
|
+
const releases = await response.json();
|
|
116
|
+
const release1 = releases.find((r) => r.tag_name.includes(version1));
|
|
117
|
+
const release2 = releases.find((r) => r.tag_name.includes(version2));
|
|
118
|
+
if (!release1 || !release2) {
|
|
119
|
+
return `# Version Comparison: ${version1} vs ${version2}\n\nUnable to find release information for one or both versions.\n\nAvailable versions can be found at: https://github.com/spring-projects/spring-boot/releases`;
|
|
120
|
+
}
|
|
121
|
+
const result = `# Spring Boot Version Comparison: ${version1} vs ${version2}
|
|
122
|
+
|
|
123
|
+
## Version ${version1}
|
|
124
|
+
**Released:** ${new Date(release1.published_at).toLocaleDateString()}
|
|
125
|
+
**Release Notes:** ${release1.html_url}
|
|
126
|
+
|
|
127
|
+
${release1.body.substring(0, 1000)}...
|
|
128
|
+
|
|
129
|
+
## Version ${version2}
|
|
130
|
+
**Released:** ${new Date(release2.published_at).toLocaleDateString()}
|
|
131
|
+
**Release Notes:** ${release2.html_url}
|
|
132
|
+
|
|
133
|
+
${release2.body.substring(0, 1000)}...
|
|
134
|
+
|
|
135
|
+
## Migration Recommendations
|
|
136
|
+
1. Review the full release notes at the URLs above
|
|
137
|
+
2. Check for breaking changes in your dependencies
|
|
138
|
+
3. Update your Spring Boot version gradually
|
|
139
|
+
4. Test thoroughly in a staging environment
|
|
140
|
+
|
|
141
|
+
For detailed migration guides, visit: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide`;
|
|
142
|
+
this.cache.setLongTerm(cacheKey, result);
|
|
143
|
+
return result;
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
console.error('Error comparing versions:', error);
|
|
147
|
+
return `# Version Comparison Error\n\nUnable to compare versions ${version1} and ${version2}: ${error instanceof Error ? error.message : 'Unknown error'}`;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Get best practices from official Spring documentation
|
|
152
|
+
*/
|
|
153
|
+
async getBestPractices(category, experienceLevel = 'intermediate') {
|
|
154
|
+
const cacheKey = `practices:${category}:${experienceLevel}`;
|
|
155
|
+
const cached = this.cache.get(cacheKey);
|
|
156
|
+
if (cached)
|
|
157
|
+
return cached;
|
|
158
|
+
try {
|
|
159
|
+
// Map categories to Spring Boot documentation sections
|
|
160
|
+
const docSections = {
|
|
161
|
+
'architecture': 'spring-boot-features.html#boot-features-spring-application',
|
|
162
|
+
'performance': 'actuator.html#actuator.metrics',
|
|
163
|
+
'security': 'spring-security.html',
|
|
164
|
+
'testing': 'spring-boot-features.html#boot-features-testing',
|
|
165
|
+
'configuration': 'spring-boot-features.html#boot-features-external-config',
|
|
166
|
+
'deployment': 'deployment.html'
|
|
167
|
+
};
|
|
168
|
+
const section = docSections[category];
|
|
169
|
+
if (!section) {
|
|
170
|
+
const availableCategories = Object.keys(docSections).join(', ');
|
|
171
|
+
return `# Best Practices Not Found\n\nCategory "${category}" not available.\n\n## Available Categories:\n${availableCategories}\n\nPlease use one of the available categories.`;
|
|
172
|
+
}
|
|
173
|
+
// Fetch from Spring Boot reference documentation
|
|
174
|
+
const docUrl = `${this.baseUrl}/spring-boot/docs/current/reference/html/${section}`;
|
|
175
|
+
const response = await this.fetchWithRetry(docUrl);
|
|
176
|
+
if (!response.ok) {
|
|
177
|
+
throw new Error(`Failed to fetch documentation: ${response.status}`);
|
|
178
|
+
}
|
|
179
|
+
const html = await response.text();
|
|
180
|
+
const $ = cheerio.load(html);
|
|
181
|
+
// Extract relevant content
|
|
182
|
+
const content = $('.content, .sect1, .chapter, main').first();
|
|
183
|
+
if (content.length === 0) {
|
|
184
|
+
throw new Error('No content found in documentation');
|
|
185
|
+
}
|
|
186
|
+
// Convert to markdown and format
|
|
187
|
+
const markdown = this.turndownService.turndown(content.html() || '');
|
|
188
|
+
const result = `# Spring Boot ${category.charAt(0).toUpperCase() + category.slice(1)} Best Practices
|
|
189
|
+
|
|
190
|
+
**Experience Level:** ${experienceLevel}
|
|
191
|
+
**Source:** ${docUrl}
|
|
192
|
+
|
|
193
|
+
${markdown.substring(0, 2000)}...
|
|
194
|
+
|
|
195
|
+
For complete documentation, visit: ${docUrl}`;
|
|
196
|
+
this.cache.setLongTerm(cacheKey, result);
|
|
197
|
+
return result;
|
|
198
|
+
}
|
|
199
|
+
catch (error) {
|
|
200
|
+
console.error('Error fetching best practices:', error);
|
|
201
|
+
return `# Best Practices Error\n\nUnable to fetch best practices for "${category}": ${error instanceof Error ? error.message : 'Unknown error'}`;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Diagnose issues using Spring Boot documentation
|
|
206
|
+
*/
|
|
207
|
+
async diagnoseIssues(errorMessage, component, stackTrace) {
|
|
208
|
+
const cacheKey = `diagnosis:${errorMessage.substring(0, 50)}`;
|
|
209
|
+
const cached = this.cache.get(cacheKey);
|
|
210
|
+
if (cached)
|
|
211
|
+
return cached;
|
|
212
|
+
try {
|
|
213
|
+
// Search for the error in Spring Boot documentation
|
|
214
|
+
const searchQuery = errorMessage.split(' ').slice(0, 3).join(' ');
|
|
215
|
+
const docs = await this.searchDocumentation(searchQuery, 3);
|
|
216
|
+
let result = `# Spring Boot Issue Diagnosis\n\n**Error:** ${errorMessage}\n`;
|
|
217
|
+
if (component) {
|
|
218
|
+
result += `**Component:** ${component}\n`;
|
|
219
|
+
}
|
|
220
|
+
result += `\n## Relevant Documentation\n\n`;
|
|
221
|
+
if (docs.length > 0) {
|
|
222
|
+
docs.forEach((doc, index) => {
|
|
223
|
+
result += `${index + 1}. **${doc.title}**\n ${doc.url}\n\n`;
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
result += `No specific documentation found for this error.\n\n`;
|
|
228
|
+
}
|
|
229
|
+
result += `## General Troubleshooting Steps\n\n`;
|
|
230
|
+
result += `1. Check the Spring Boot documentation: https://docs.spring.io/spring-boot/docs/current/reference/html/\n`;
|
|
231
|
+
result += `2. Search Spring Boot issues: https://github.com/spring-projects/spring-boot/issues\n`;
|
|
232
|
+
result += `3. Enable debug logging: \`logging.level.org.springframework=DEBUG\`\n`;
|
|
233
|
+
result += `4. Check actuator health endpoint: \`/actuator/health\`\n\n`;
|
|
234
|
+
if (stackTrace) {
|
|
235
|
+
result += `## Stack Trace Analysis\n\nFor detailed stack trace analysis, consider:\n`;
|
|
236
|
+
result += `- Looking for the root cause in the stack trace\n`;
|
|
237
|
+
result += `- Checking for configuration issues\n`;
|
|
238
|
+
result += `- Verifying dependency versions\n\n`;
|
|
239
|
+
}
|
|
240
|
+
this.cache.set(cacheKey, result);
|
|
241
|
+
return result;
|
|
242
|
+
}
|
|
243
|
+
catch (error) {
|
|
244
|
+
console.error('Error diagnosing issue:', error);
|
|
245
|
+
return `# Diagnosis Error\n\nUnable to diagnose issue: ${error instanceof Error ? error.message : 'Unknown error'}`;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
// Real implementation methods (no mock data)
|
|
249
|
+
async searchProjects(query, limit) {
|
|
250
|
+
try {
|
|
251
|
+
const response = await this.fetchWithRetry(this.springProjectsUrl);
|
|
252
|
+
if (!response.ok) {
|
|
253
|
+
throw new Error('Failed to fetch Spring projects');
|
|
254
|
+
}
|
|
255
|
+
const html = await response.text();
|
|
256
|
+
const $ = cheerio.load(html);
|
|
257
|
+
const projects = [];
|
|
258
|
+
$('.project-list .project, .project-item, .card, .project-card').each((index, element) => {
|
|
259
|
+
const $project = $(element);
|
|
260
|
+
const name = $project.find('h2, h3, .title, .project-title, .card-title').first().text().trim();
|
|
261
|
+
const description = $project.find('p, .description, .summary, .card-text').first().text().trim();
|
|
262
|
+
const link = $project.find('a').first().attr('href');
|
|
263
|
+
if (name && description) {
|
|
264
|
+
const url = link?.startsWith('http') ? link : `https://spring.io${link}`;
|
|
265
|
+
if (name.toLowerCase().includes(query.toLowerCase()) ||
|
|
266
|
+
description.toLowerCase().includes(query.toLowerCase())) {
|
|
267
|
+
projects.push({ name, description, url, type: 'project' });
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
});
|
|
271
|
+
return projects.slice(0, limit);
|
|
272
|
+
}
|
|
273
|
+
catch (error) {
|
|
274
|
+
console.error('Error searching projects:', error);
|
|
275
|
+
return [];
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
async searchGuides(query, limit) {
|
|
279
|
+
try {
|
|
280
|
+
const response = await this.fetchWithRetry(this.springGuideUrl);
|
|
281
|
+
if (!response.ok) {
|
|
282
|
+
throw new Error('Failed to fetch Spring guides');
|
|
283
|
+
}
|
|
284
|
+
const html = await response.text();
|
|
285
|
+
const $ = cheerio.load(html);
|
|
286
|
+
const guides = [];
|
|
287
|
+
$('.guide-item, .card, .guide-card, .list-item').each((index, element) => {
|
|
288
|
+
const $guide = $(element);
|
|
289
|
+
const title = $guide.find('h2, h3, .title, .guide-title, .card-title, a').first().text().trim();
|
|
290
|
+
const description = $guide.find('p, .description, .summary, .card-text').first().text().trim();
|
|
291
|
+
const link = $guide.find('a').first().attr('href');
|
|
292
|
+
const type = $guide.find('.badge, .label, .type').first().text().trim() || 'Guide';
|
|
293
|
+
if (title) {
|
|
294
|
+
const url = link?.startsWith('http') ? link : `https://spring.io${link}`;
|
|
295
|
+
if (title.toLowerCase().includes(query.toLowerCase()) ||
|
|
296
|
+
description.toLowerCase().includes(query.toLowerCase())) {
|
|
297
|
+
guides.push({ title, description: description || 'Spring Boot guide', url, type });
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
});
|
|
301
|
+
return guides.slice(0, limit);
|
|
302
|
+
}
|
|
303
|
+
catch (error) {
|
|
304
|
+
console.error('Error searching guides:', error);
|
|
305
|
+
return [];
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
async searchDocumentation(query, limit) {
|
|
309
|
+
try {
|
|
310
|
+
const bootDocsUrl = `${this.baseUrl}/spring-boot/docs/current/reference/html/`;
|
|
311
|
+
const response = await this.fetchWithRetry(bootDocsUrl);
|
|
312
|
+
if (!response.ok) {
|
|
313
|
+
throw new Error('Failed to fetch Spring Boot documentation');
|
|
314
|
+
}
|
|
315
|
+
const html = await response.text();
|
|
316
|
+
const $ = cheerio.load(html);
|
|
317
|
+
const docs = [];
|
|
318
|
+
$('nav a, .toc a, .nav-link, .chapter a').each((index, element) => {
|
|
319
|
+
const $link = $(element);
|
|
320
|
+
const title = $link.text().trim();
|
|
321
|
+
const href = $link.attr('href');
|
|
322
|
+
if (title && href && title.toLowerCase().includes(query.toLowerCase())) {
|
|
323
|
+
const url = href.startsWith('http') ? href : `${bootDocsUrl}${href}`;
|
|
324
|
+
docs.push({ title: `Spring Boot: ${title}`, url, type: 'Reference Documentation' });
|
|
325
|
+
}
|
|
326
|
+
});
|
|
327
|
+
return docs.slice(0, limit);
|
|
328
|
+
}
|
|
329
|
+
catch (error) {
|
|
330
|
+
console.error('Error searching documentation:', error);
|
|
331
|
+
return [];
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
async searchAPI(query, limit) {
|
|
335
|
+
const apis = [
|
|
336
|
+
{ title: 'Spring Boot API Documentation', url: 'https://docs.spring.io/spring-boot/docs/current/api/', keywords: ['boot', 'autoconfiguration', 'starters'] },
|
|
337
|
+
{ title: 'Spring Framework API', url: 'https://docs.spring.io/spring-framework/docs/current/javadoc-api/', keywords: ['core', 'context', 'beans', 'web'] },
|
|
338
|
+
{ title: 'Spring Security API', url: 'https://docs.spring.io/spring-security/site/docs/current/api/', keywords: ['security', 'authentication', 'config'] },
|
|
339
|
+
{ title: 'Spring Data JPA API', url: 'https://docs.spring.io/spring-data/jpa/docs/current/api/', keywords: ['jpa', 'repository', 'query'] }
|
|
340
|
+
];
|
|
341
|
+
const queryLower = query.toLowerCase();
|
|
342
|
+
return apis
|
|
343
|
+
.filter(a => a.title.toLowerCase().includes(queryLower) ||
|
|
344
|
+
a.keywords.some(keyword => keyword.toLowerCase().includes(queryLower)))
|
|
345
|
+
.map(a => ({ title: a.title, url: a.url, type: 'API Documentation' }))
|
|
346
|
+
.slice(0, limit);
|
|
347
|
+
}
|
|
348
|
+
formatEcosystemResults(results) {
|
|
349
|
+
let output = `# Spring Ecosystem Search Results\n\n`;
|
|
350
|
+
output += `**Query:** ${results.query}\n`;
|
|
351
|
+
output += `**Scope:** ${results.scope}\n`;
|
|
352
|
+
output += `**Total Results:** ${results.totalResults}\n\n`;
|
|
353
|
+
if (results.categories.projects?.length > 0) {
|
|
354
|
+
output += `## Projects\n\n`;
|
|
355
|
+
results.categories.projects.forEach((project, index) => {
|
|
356
|
+
output += `${index + 1}. **${project.name}**\n`;
|
|
357
|
+
output += ` ${project.description}\n`;
|
|
358
|
+
output += ` URL: ${project.url}\n\n`;
|
|
359
|
+
});
|
|
360
|
+
}
|
|
361
|
+
if (results.categories.guides?.length > 0) {
|
|
362
|
+
output += `## Guides\n\n`;
|
|
363
|
+
results.categories.guides.forEach((guide, index) => {
|
|
364
|
+
output += `${index + 1}. **${guide.title}**\n`;
|
|
365
|
+
if (guide.description)
|
|
366
|
+
output += ` ${guide.description}\n`;
|
|
367
|
+
output += ` URL: ${guide.url}\n\n`;
|
|
368
|
+
});
|
|
369
|
+
}
|
|
370
|
+
if (results.categories.documentation?.length > 0) {
|
|
371
|
+
output += `## Documentation\n\n`;
|
|
372
|
+
results.categories.documentation.forEach((doc, index) => {
|
|
373
|
+
output += `${index + 1}. **${doc.title}**\n`;
|
|
374
|
+
output += ` URL: ${doc.url}\n\n`;
|
|
375
|
+
});
|
|
376
|
+
}
|
|
377
|
+
if (results.categories.api?.length > 0) {
|
|
378
|
+
output += `## Api\n\n`;
|
|
379
|
+
results.categories.api.forEach((api, index) => {
|
|
380
|
+
output += `${index + 1}. **${api.title}**\n`;
|
|
381
|
+
output += ` URL: ${api.url}\n\n`;
|
|
382
|
+
});
|
|
383
|
+
}
|
|
384
|
+
if (results.totalResults === 0) {
|
|
385
|
+
output += `No results found for "${results.query}" in scope "${results.scope}".`;
|
|
386
|
+
}
|
|
387
|
+
return output;
|
|
388
|
+
}
|
|
389
|
+
async fetchWithRetry(url, timeout = this.REQUEST_TIMEOUT, retries = this.MAX_RETRIES) {
|
|
390
|
+
for (let attempt = 1; attempt <= retries; attempt++) {
|
|
391
|
+
const controller = new AbortController();
|
|
392
|
+
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
393
|
+
try {
|
|
394
|
+
const response = await fetch(url, {
|
|
395
|
+
signal: controller.signal,
|
|
396
|
+
headers: {
|
|
397
|
+
'User-Agent': 'Spring-Docs-MCP/1.2.4',
|
|
398
|
+
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
|
|
399
|
+
'Accept-Language': 'en-US,en;q=0.9'
|
|
400
|
+
}
|
|
401
|
+
});
|
|
402
|
+
clearTimeout(timeoutId);
|
|
403
|
+
return response;
|
|
404
|
+
}
|
|
405
|
+
catch (error) {
|
|
406
|
+
clearTimeout(timeoutId);
|
|
407
|
+
if (attempt === retries)
|
|
408
|
+
throw error;
|
|
409
|
+
console.error(`Retry ${attempt}/${retries} for ${url}:`, error instanceof Error ? error.message : 'Unknown error');
|
|
410
|
+
await new Promise(resolve => setTimeout(resolve, 1000 * attempt));
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
throw new Error('All retry attempts failed');
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
//# sourceMappingURL=advanced-features.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advanced-features.js","sourceRoot":"","sources":["../../src/services/advanced-features.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Intelligent caching service for Spring documentation
|
|
3
|
+
*/
|
|
4
|
+
export declare class CacheService {
|
|
5
|
+
private cache;
|
|
6
|
+
private readonly DEFAULT_TTL;
|
|
7
|
+
private readonly LONG_TTL;
|
|
8
|
+
/**
|
|
9
|
+
* Get cached data if available and not expired
|
|
10
|
+
*/
|
|
11
|
+
get<T>(key: string): T | null;
|
|
12
|
+
/**
|
|
13
|
+
* Store data in cache with optional custom TTL
|
|
14
|
+
*/
|
|
15
|
+
set<T>(key: string, data: T, ttl?: number): void;
|
|
16
|
+
/**
|
|
17
|
+
* Store data with long TTL for stable content
|
|
18
|
+
*/
|
|
19
|
+
setLongTerm<T>(key: string, data: T): void;
|
|
20
|
+
/**
|
|
21
|
+
* Clear expired entries
|
|
22
|
+
*/
|
|
23
|
+
cleanup(): void;
|
|
24
|
+
/**
|
|
25
|
+
* Get cache statistics
|
|
26
|
+
*/
|
|
27
|
+
getStats(): {
|
|
28
|
+
size: number;
|
|
29
|
+
expired: number;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Clear all cache
|
|
33
|
+
*/
|
|
34
|
+
clear(): void;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/services/cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAoE;IACjF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEhD;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAY7B;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAQhD;;OAEG;IACH,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;IAI1C;;OAEG;IACH,OAAO,IAAI,IAAI;IASf;;OAEG;IACH,QAAQ,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAa7C;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Intelligent caching service for Spring documentation
|
|
3
|
+
*/
|
|
4
|
+
export class CacheService {
|
|
5
|
+
cache = new Map();
|
|
6
|
+
DEFAULT_TTL = 30 * 60 * 1000; // 30 minutes
|
|
7
|
+
LONG_TTL = 24 * 60 * 60 * 1000; // 24 hours for stable content
|
|
8
|
+
/**
|
|
9
|
+
* Get cached data if available and not expired
|
|
10
|
+
*/
|
|
11
|
+
get(key) {
|
|
12
|
+
const entry = this.cache.get(key);
|
|
13
|
+
if (!entry)
|
|
14
|
+
return null;
|
|
15
|
+
if (Date.now() - entry.timestamp > entry.ttl) {
|
|
16
|
+
this.cache.delete(key);
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
return entry.data;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Store data in cache with optional custom TTL
|
|
23
|
+
*/
|
|
24
|
+
set(key, data, ttl) {
|
|
25
|
+
this.cache.set(key, {
|
|
26
|
+
data,
|
|
27
|
+
timestamp: Date.now(),
|
|
28
|
+
ttl: ttl || this.DEFAULT_TTL,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Store data with long TTL for stable content
|
|
33
|
+
*/
|
|
34
|
+
setLongTerm(key, data) {
|
|
35
|
+
this.set(key, data, this.LONG_TTL);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Clear expired entries
|
|
39
|
+
*/
|
|
40
|
+
cleanup() {
|
|
41
|
+
const now = Date.now();
|
|
42
|
+
for (const [key, entry] of this.cache.entries()) {
|
|
43
|
+
if (now - entry.timestamp > entry.ttl) {
|
|
44
|
+
this.cache.delete(key);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Get cache statistics
|
|
50
|
+
*/
|
|
51
|
+
getStats() {
|
|
52
|
+
const now = Date.now();
|
|
53
|
+
let expired = 0;
|
|
54
|
+
for (const entry of this.cache.values()) {
|
|
55
|
+
if (now - entry.timestamp > entry.ttl) {
|
|
56
|
+
expired++;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return { size: this.cache.size, expired };
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Clear all cache
|
|
63
|
+
*/
|
|
64
|
+
clear() {
|
|
65
|
+
this.cache.clear();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/services/cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,YAAY;IACf,KAAK,GAAG,IAAI,GAAG,EAAyD,CAAC;IAChE,WAAW,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;IAC3C,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,8BAA8B;IAE/E;;OAEG;IACH,GAAG,CAAI,GAAW;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAC7C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC,IAAS,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,GAAG,CAAI,GAAW,EAAE,IAAO,EAAE,GAAY;QACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YAClB,IAAI;YACJ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,WAAW;SAC7B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,WAAW,CAAI,GAAW,EAAE,IAAO;QACjC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,OAAO;QACL,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAChD,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;gBACtC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACxC,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;gBACtC,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF"}
|