@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.
@@ -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":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,eAAe,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C;;;GAGG;AACH,MAAM,OAAO,uBAAuB;IAC1B,KAAK,CAAe;IACpB,eAAe,CAAkB;IACxB,OAAO,GAAG,wBAAwB,CAAC;IACnC,iBAAiB,GAAG,4BAA4B,CAAC;IACjD,cAAc,GAAG,0BAA0B,CAAC;IAC5C,eAAe,GAAG,KAAK,CAAC;IACxB,WAAW,GAAG,CAAC,CAAC;IAEjC;QACE,IAAI,CAAC,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;QAChC,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC;YACzC,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,QAAQ;SACzB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,KAAa,EAAE,QAAgB,KAAK,EAAE,QAAgB,CAAC;QAC3E,MAAM,QAAQ,GAAG,aAAa,KAAK,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,QAAQ,CAAC,CAAC;QAC7C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,MAAM,OAAO,GAAQ;YACnB,KAAK;YACL,KAAK;YACL,YAAY,EAAE,CAAC;YACf,UAAU,EAAE,EAAE;SACf,CAAC;QAEF,IAAI,CAAC;YACH,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;gBAC5C,OAAO,CAAC,UAAU,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACxE,CAAC;YAED,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC1C,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACpE,CAAC;YAED,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBACxC,OAAO,CAAC,UAAU,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAClF,CAAC;YAED,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;gBACvC,OAAO,CAAC,UAAU,CAAC,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC9D,CAAC;YAED,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;iBACrD,MAAM,CAAC,CAAC,KAAa,EAAE,QAAa,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAEhF,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;YAC7D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;YAC1C,OAAO,eAAe,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;YACnD,OAAO,6DAA6D,KAAK,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;QAC5I,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,QAAgB,UAAU;QACzD,MAAM,QAAQ,GAAG,YAAY,KAAK,IAAI,KAAK,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAS,QAAQ,CAAC,CAAC;QAChD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,IAAI,CAAC;YACH,4CAA4C;YAC5C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAEjD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,0DAA0D,KAAK,kEAAkE,CAAC;YAC3I,CAAC;YAED,8CAA8C;YAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAEtD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAClE,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE7B,uBAAuB;YACvB,MAAM,OAAO,GAAG,CAAC,CAAC,gDAAgD,CAAC,CAAC,KAAK,EAAE,CAAC;YAE5E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC/C,CAAC;YAED,sBAAsB;YACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAErE,MAAM,MAAM,GAAG,KAAK,KAAK,CAAC,KAAK,kBAAkB,KAAK,iBAAiB,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,CAAC;YAElG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACjC,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YACjD,OAAO,qDAAqD,KAAK,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;QACpI,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE,QAAgB,EAAE,QAAgB,KAAK;QAC7E,MAAM,QAAQ,GAAG,YAAY,QAAQ,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAS,QAAQ,CAAC,CAAC;QAChD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,IAAI,CAAC;YACH,kCAAkC;YAClC,MAAM,eAAe,GAAG,mEAAmE,CAAC;YAC5F,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;YAE5D,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,iCAAiC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YACtE,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAEvC,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC1E,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;YAE1E,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC3B,OAAO,yBAAyB,QAAQ,OAAO,QAAQ,iKAAiK,CAAC;YAC3N,CAAC;YAED,MAAM,MAAM,GAAG,qCAAqC,QAAQ,OAAO,QAAQ;;aAEpE,QAAQ;gBACL,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,kBAAkB,EAAE;qBAC/C,QAAQ,CAAC,QAAQ;;EAEpC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC;;aAErB,QAAQ;gBACL,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,kBAAkB,EAAE;qBAC/C,QAAQ,CAAC,QAAQ;;EAEpC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC;;;;;;;;0HAQwF,CAAC;YAErH,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACzC,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YAClD,OAAO,4DAA4D,QAAQ,QAAQ,QAAQ,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;QAC7J,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,QAAgB,EAAE,kBAA0B,cAAc;QAC/E,MAAM,QAAQ,GAAG,aAAa,QAAQ,IAAI,eAAe,EAAE,CAAC;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAS,QAAQ,CAAC,CAAC;QAChD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,IAAI,CAAC;YACH,uDAAuD;YACvD,MAAM,WAAW,GAA8B;gBAC7C,cAAc,EAAE,4DAA4D;gBAC5E,aAAa,EAAE,gCAAgC;gBAC/C,UAAU,EAAE,sBAAsB;gBAClC,SAAS,EAAE,iDAAiD;gBAC5D,eAAe,EAAE,yDAAyD;gBAC1E,YAAY,EAAE,iBAAiB;aAChC,CAAC;YAEF,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChE,OAAO,2CAA2C,QAAQ,iDAAiD,mBAAmB,iDAAiD,CAAC;YAClL,CAAC;YAED,iDAAiD;YACjD,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,4CAA4C,OAAO,EAAE,CAAC;YACpF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAEnD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YACvE,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE7B,2BAA2B;YAC3B,MAAM,OAAO,GAAG,CAAC,CAAC,kCAAkC,CAAC,CAAC,KAAK,EAAE,CAAC;YAE9D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACvD,CAAC;YAED,iCAAiC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAErE,MAAM,MAAM,GAAG,iBAAiB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;;wBAElE,eAAe;cACzB,MAAM;;EAElB,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC;;qCAEQ,MAAM,EAAE,CAAC;YAExC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACzC,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YACvD,OAAO,iEAAiE,QAAQ,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;QACnJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,YAAoB,EAAE,SAAkB,EAAE,UAAmB;QAChF,MAAM,QAAQ,GAAG,aAAa,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAS,QAAQ,CAAC,CAAC;QAChD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,IAAI,CAAC;YACH,oDAAoD;YACpD,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAE5D,IAAI,MAAM,GAAG,+CAA+C,YAAY,IAAI,CAAC;YAE7E,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,IAAI,kBAAkB,SAAS,IAAI,CAAC;YAC5C,CAAC;YAED,MAAM,IAAI,iCAAiC,CAAC;YAE5C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;oBAC1B,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,OAAO,GAAG,CAAC,KAAK,UAAU,GAAG,CAAC,GAAG,MAAM,CAAC;gBAChE,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,qDAAqD,CAAC;YAClE,CAAC;YAED,MAAM,IAAI,sCAAsC,CAAC;YACjD,MAAM,IAAI,2GAA2G,CAAC;YACtH,MAAM,IAAI,uFAAuF,CAAC;YAClG,MAAM,IAAI,wEAAwE,CAAC;YACnF,MAAM,IAAI,6DAA6D,CAAC;YAExE,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,IAAI,2EAA2E,CAAC;gBACtF,MAAM,IAAI,mDAAmD,CAAC;gBAC9D,MAAM,IAAI,uCAAuC,CAAC;gBAClD,MAAM,IAAI,qCAAqC,CAAC;YAClD,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACjC,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAChD,OAAO,kDAAkD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;QACtH,CAAC;IACH,CAAC;IAED,6CAA6C;IAErC,KAAK,CAAC,cAAc,CAAC,KAAa,EAAE,KAAa;QACvD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACnE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACrD,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,QAAQ,GAAU,EAAE,CAAC;YAE3B,CAAC,CAAC,6DAA6D,CAAC,CAAC,IAAI,CAAC,CAAC,KAAa,EAAE,OAAY,EAAE,EAAE;gBACpG,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;gBAChG,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;gBACjG,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAErD,IAAI,IAAI,IAAI,WAAW,EAAE,CAAC;oBACxB,MAAM,GAAG,GAAG,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,IAAI,EAAE,CAAC;oBAEzE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;wBAChD,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;wBAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;oBAC7D,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YAClD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,KAAa;QACrD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAChE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,MAAM,GAAU,EAAE,CAAC;YAEzB,CAAC,CAAC,6CAA6C,CAAC,CAAC,IAAI,CAAC,CAAC,KAAa,EAAE,OAAY,EAAE,EAAE;gBACpF,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;gBAChG,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;gBAC/F,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC;gBAEnF,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,GAAG,GAAG,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,IAAI,EAAE,CAAC;oBAEzE,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;wBACjD,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;wBAC5D,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,IAAI,mBAAmB,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;oBACrF,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAChD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,KAAa,EAAE,KAAa;QAC5D,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,OAAO,2CAA2C,CAAC;YAC/E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAExD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC/D,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,IAAI,GAAU,EAAE,CAAC;YAEvB,CAAC,CAAC,sCAAsC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAa,EAAE,OAAY,EAAE,EAAE;gBAC7E,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;gBACzB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAEhC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;oBACvE,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW,GAAG,IAAI,EAAE,CAAC;oBACrE,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC;gBACtF,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YACvD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,KAAa;QAClD,MAAM,IAAI,GAAG;YACX,EAAE,KAAK,EAAE,+BAA+B,EAAE,GAAG,EAAE,sDAAsD,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,UAAU,CAAC,EAAE;YAC5J,EAAE,KAAK,EAAE,sBAAsB,EAAE,GAAG,EAAE,mEAAmE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE;YAC1J,EAAE,KAAK,EAAE,qBAAqB,EAAE,GAAG,EAAE,+DAA+D,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE;YAC1J,EAAE,KAAK,EAAE,qBAAqB,EAAE,GAAG,EAAE,0DAA0D,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE;SAC5I,CAAC;QAEF,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACvC,OAAO,IAAI;aACR,MAAM,CAAC,CAAC,CAAC,EAAE,CACV,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC1C,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CACvE;aACA,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;aACrE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACrB,CAAC;IAEO,sBAAsB,CAAC,OAAY;QACzC,IAAI,MAAM,GAAG,uCAAuC,CAAC;QACrD,MAAM,IAAI,cAAc,OAAO,CAAC,KAAK,IAAI,CAAC;QAC1C,MAAM,IAAI,cAAc,OAAO,CAAC,KAAK,IAAI,CAAC;QAC1C,MAAM,IAAI,sBAAsB,OAAO,CAAC,YAAY,MAAM,CAAC;QAE3D,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,iBAAiB,CAAC;YAC5B,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,KAAa,EAAE,EAAE;gBAClE,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,OAAO,OAAO,CAAC,IAAI,MAAM,CAAC;gBAChD,MAAM,IAAI,MAAM,OAAO,CAAC,WAAW,IAAI,CAAC;gBACxC,MAAM,IAAI,WAAW,OAAO,CAAC,GAAG,MAAM,CAAC;YACzC,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,eAAe,CAAC;YAC1B,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,KAAa,EAAE,EAAE;gBAC9D,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,OAAO,KAAK,CAAC,KAAK,MAAM,CAAC;gBAC/C,IAAI,KAAK,CAAC,WAAW;oBAAE,MAAM,IAAI,MAAM,KAAK,CAAC,WAAW,IAAI,CAAC;gBAC7D,MAAM,IAAI,WAAW,KAAK,CAAC,GAAG,MAAM,CAAC;YACvC,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,sBAAsB,CAAC;YACjC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,KAAa,EAAE,EAAE;gBACnE,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,OAAO,GAAG,CAAC,KAAK,MAAM,CAAC;gBAC7C,MAAM,IAAI,WAAW,GAAG,CAAC,GAAG,MAAM,CAAC;YACrC,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,YAAY,CAAC;YACvB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,KAAa,EAAE,EAAE;gBACzD,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,OAAO,GAAG,CAAC,KAAK,MAAM,CAAC;gBAC7C,MAAM,IAAI,WAAW,GAAG,CAAC,GAAG,MAAM,CAAC;YACrC,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,OAAO,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,yBAAyB,OAAO,CAAC,KAAK,eAAe,OAAO,CAAC,KAAK,IAAI,CAAC;QACnF,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,GAAW,EAAE,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC,WAAW;QAClG,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;YACpD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;YAEhE,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;oBAChC,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,OAAO,EAAE;wBACP,YAAY,EAAE,uBAAuB;wBACrC,QAAQ,EAAE,iEAAiE;wBAC3E,iBAAiB,EAAE,gBAAgB;qBACpC;iBACF,CAAC,CAAC;gBACH,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,OAAO,QAAQ,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,IAAI,OAAO,KAAK,OAAO;oBAAE,MAAM,KAAK,CAAC;gBAErC,OAAO,CAAC,KAAK,CAAC,SAAS,OAAO,IAAI,OAAO,QAAQ,GAAG,GAAG,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;gBACnH,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;CACF"}
@@ -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"}