@enokdev/springdocs-mcp 1.2.7 → 1.4.1
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 +108 -40
- package/build/config.d.ts +9 -0
- package/build/config.d.ts.map +1 -0
- package/build/config.js +32 -0
- package/build/config.js.map +1 -0
- package/build/format.d.ts +6 -0
- package/build/format.d.ts.map +1 -0
- package/build/format.js +23 -0
- package/build/format.js.map +1 -0
- package/build/http-server.d.ts +15 -0
- package/build/http-server.d.ts.map +1 -0
- package/build/http-server.js +131 -0
- package/build/http-server.js.map +1 -0
- package/build/index.js +184 -69
- package/build/index.js.map +1 -1
- package/build/prompts.d.ts +23 -0
- package/build/prompts.d.ts.map +1 -0
- package/build/prompts.js +112 -0
- package/build/prompts.js.map +1 -0
- package/build/resources.d.ts +31 -0
- package/build/resources.d.ts.map +1 -0
- package/build/resources.js +66 -0
- package/build/resources.js.map +1 -0
- package/build/services/advanced-features.d.ts +19 -9
- package/build/services/advanced-features.d.ts.map +1 -1
- package/build/services/advanced-features.js +266 -191
- package/build/services/advanced-features.js.map +1 -1
- package/build/services/boot-wiki.d.ts +25 -0
- package/build/services/boot-wiki.d.ts.map +1 -0
- package/build/services/boot-wiki.js +103 -0
- package/build/services/boot-wiki.js.map +1 -0
- package/build/services/cache.d.ts +18 -3
- package/build/services/cache.d.ts.map +1 -1
- package/build/services/cache.js +84 -3
- package/build/services/cache.js.map +1 -1
- package/build/services/dependency-finder.d.ts +46 -0
- package/build/services/dependency-finder.d.ts.map +1 -0
- package/build/services/dependency-finder.js +181 -0
- package/build/services/dependency-finder.js.map +1 -0
- package/build/services/diagnosis.d.ts +46 -0
- package/build/services/diagnosis.d.ts.map +1 -0
- package/build/services/diagnosis.js +481 -0
- package/build/services/diagnosis.js.map +1 -0
- package/build/services/guides-list.d.ts +16 -0
- package/build/services/guides-list.d.ts.map +1 -0
- package/build/services/guides-list.js +45 -0
- package/build/services/guides-list.js.map +1 -0
- package/build/services/http.d.ts +21 -0
- package/build/services/http.d.ts.map +1 -0
- package/build/services/http.js +168 -0
- package/build/services/http.js.map +1 -0
- package/build/services/initializr.d.ts +41 -0
- package/build/services/initializr.d.ts.map +1 -0
- package/build/services/initializr.js +135 -0
- package/build/services/initializr.js.map +1 -0
- package/build/services/markdown.d.ts +56 -0
- package/build/services/markdown.d.ts.map +1 -0
- package/build/services/markdown.js +146 -0
- package/build/services/markdown.js.map +1 -0
- package/build/services/migration-sources.d.ts +13 -0
- package/build/services/migration-sources.d.ts.map +1 -0
- package/build/services/migration-sources.js +48 -0
- package/build/services/migration-sources.js.map +1 -0
- package/build/services/release-notes.d.ts +23 -0
- package/build/services/release-notes.d.ts.map +1 -0
- package/build/services/release-notes.js +94 -0
- package/build/services/release-notes.js.map +1 -0
- package/build/services/search-index.d.ts +33 -0
- package/build/services/search-index.d.ts.map +1 -0
- package/build/services/search-index.js +147 -0
- package/build/services/search-index.js.map +1 -0
- package/build/services/spring-projects-config.d.ts +98 -0
- package/build/services/spring-projects-config.d.ts.map +1 -0
- package/build/services/spring-projects-config.js +397 -0
- package/build/services/spring-projects-config.js.map +1 -0
- package/build/services/springboot-docs-optimized.d.ts +72 -21
- package/build/services/springboot-docs-optimized.d.ts.map +1 -1
- package/build/services/springboot-docs-optimized.js +354 -208
- package/build/services/springboot-docs-optimized.js.map +1 -1
- package/build/services/url.d.ts +15 -0
- package/build/services/url.d.ts.map +1 -0
- package/build/services/url.js +40 -0
- package/build/services/url.js.map +1 -0
- package/build/tools/index.d.ts +393 -2
- package/build/tools/index.d.ts.map +1 -1
- package/build/tools/index.js +188 -15
- package/build/tools/index.js.map +1 -1
- package/build/validation.d.ts +7 -0
- package/build/validation.d.ts.map +1 -0
- package/build/validation.js +50 -0
- package/build/validation.js.map +1 -0
- package/build/version.d.ts +3 -0
- package/build/version.d.ts.map +1 -0
- package/build/version.js +6 -0
- package/build/version.js.map +1 -0
- package/package.json +9 -7
- package/build/debug.d.ts +0 -3
- package/build/debug.d.ts.map +0 -1
- package/build/debug.js +0 -292
- package/build/debug.js.map +0 -1
- package/build/services/advanced-features-old.d.ts +0 -45
- package/build/services/advanced-features-old.d.ts.map +0 -1
- package/build/services/advanced-features-old.js +0 -792
- package/build/services/advanced-features-old.js.map +0 -1
- package/build/services/springboot-docs-optimized-old.d.ts +0 -55
- package/build/services/springboot-docs-optimized-old.d.ts.map +0 -1
- package/build/services/springboot-docs-optimized-old.js +0 -588
- package/build/services/springboot-docs-optimized-old.js.map +0 -1
- package/build/services/springboot-docs.d.ts +0 -65
- package/build/services/springboot-docs.d.ts.map +0 -1
- package/build/services/springboot-docs.js +0 -708
- package/build/services/springboot-docs.js.map +0 -1
|
@@ -0,0 +1,397 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spring Projects Configuration Service
|
|
3
|
+
*
|
|
4
|
+
* Central registry for all Spring project metadata, enabling generic multi-project
|
|
5
|
+
* architecture without hardcoding specific projects in service implementations.
|
|
6
|
+
*
|
|
7
|
+
* This configuration-driven approach allows adding new Spring projects (Security,
|
|
8
|
+
* Data, Cloud, etc.) with zero code changes - only configuration updates.
|
|
9
|
+
*/
|
|
10
|
+
import { normalizeVersion } from './url.js';
|
|
11
|
+
/**
|
|
12
|
+
* Spring Projects Registry
|
|
13
|
+
*
|
|
14
|
+
* Single source of truth for all supported Spring projects.
|
|
15
|
+
* To add a new Spring project, simply add a new entry here - no code changes required.
|
|
16
|
+
*/
|
|
17
|
+
export const SPRING_PROJECTS = new Map([
|
|
18
|
+
[
|
|
19
|
+
'boot',
|
|
20
|
+
{
|
|
21
|
+
id: 'boot',
|
|
22
|
+
githubRepo: 'spring-projects/spring-boot',
|
|
23
|
+
githubTagPrefix: 'v',
|
|
24
|
+
versionInsertAfter: 'https://docs.spring.io/spring-boot/',
|
|
25
|
+
displayName: 'Spring Boot',
|
|
26
|
+
referenceBaseUrl: 'https://docs.spring.io/spring-boot',
|
|
27
|
+
referenceLayout: 'directory',
|
|
28
|
+
referencePaths: {
|
|
29
|
+
'deployment': 'how-to/deployment',
|
|
30
|
+
'native-image': 'reference/packaging/native-image',
|
|
31
|
+
'application-properties': 'appendix/application-properties'
|
|
32
|
+
},
|
|
33
|
+
hasVersionedDocs: true,
|
|
34
|
+
cacheStrategy: 'long', // Stable releases, cache aggressively
|
|
35
|
+
referenceSections: [
|
|
36
|
+
'features',
|
|
37
|
+
'using',
|
|
38
|
+
'web',
|
|
39
|
+
'data',
|
|
40
|
+
'messaging',
|
|
41
|
+
'io',
|
|
42
|
+
'actuator',
|
|
43
|
+
'deployment',
|
|
44
|
+
'native-image',
|
|
45
|
+
'testing',
|
|
46
|
+
'application-properties'
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
],
|
|
50
|
+
[
|
|
51
|
+
'ai',
|
|
52
|
+
{
|
|
53
|
+
id: 'ai',
|
|
54
|
+
githubRepo: 'spring-projects/spring-ai',
|
|
55
|
+
githubTagPrefix: 'v',
|
|
56
|
+
versionInsertAfter: 'https://docs.spring.io/spring-ai/reference/',
|
|
57
|
+
displayName: 'Spring AI',
|
|
58
|
+
referenceBaseUrl: 'https://docs.spring.io/spring-ai/reference/api',
|
|
59
|
+
referenceLayout: 'flat',
|
|
60
|
+
hasVersionedDocs: true, // Verified: https://docs.spring.io/spring-ai/reference/1.1/api/chatclient.html
|
|
61
|
+
cacheStrategy: 'short', // AI documentation evolves rapidly, shorter cache
|
|
62
|
+
referenceSections: [
|
|
63
|
+
'chatclient',
|
|
64
|
+
'chatmodel',
|
|
65
|
+
'embeddings',
|
|
66
|
+
'vectordbs',
|
|
67
|
+
'retrieval-augmented-generation',
|
|
68
|
+
'tools',
|
|
69
|
+
'prompt',
|
|
70
|
+
'structured-output'
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
],
|
|
74
|
+
[
|
|
75
|
+
'framework',
|
|
76
|
+
{
|
|
77
|
+
id: 'framework',
|
|
78
|
+
githubRepo: 'spring-projects/spring-framework',
|
|
79
|
+
githubTagPrefix: 'v',
|
|
80
|
+
versionInsertAfter: 'https://docs.spring.io/spring-framework/reference/',
|
|
81
|
+
displayName: 'Spring Framework',
|
|
82
|
+
referenceBaseUrl: 'https://docs.spring.io/spring-framework/reference',
|
|
83
|
+
referenceLayout: 'flat',
|
|
84
|
+
hasVersionedDocs: true,
|
|
85
|
+
cacheStrategy: 'long',
|
|
86
|
+
referenceSections: [
|
|
87
|
+
'core',
|
|
88
|
+
'web',
|
|
89
|
+
'web-reactive',
|
|
90
|
+
'data-access',
|
|
91
|
+
'integration',
|
|
92
|
+
'languages',
|
|
93
|
+
'testing'
|
|
94
|
+
]
|
|
95
|
+
}
|
|
96
|
+
],
|
|
97
|
+
[
|
|
98
|
+
'security',
|
|
99
|
+
{
|
|
100
|
+
id: 'security',
|
|
101
|
+
githubRepo: 'spring-projects/spring-security',
|
|
102
|
+
githubTagPrefix: '',
|
|
103
|
+
versionInsertAfter: 'https://docs.spring.io/spring-security/reference/',
|
|
104
|
+
displayName: 'Spring Security',
|
|
105
|
+
referenceBaseUrl: 'https://docs.spring.io/spring-security',
|
|
106
|
+
referenceLayout: 'directory',
|
|
107
|
+
// Directory layout: subsections only resolve to <dir>/<subsection>.html, so nested folders
|
|
108
|
+
// (oauth2/login/..., authentication/passwords/...) are not reachable; hence the top-level paths below.
|
|
109
|
+
referencePaths: {
|
|
110
|
+
'authentication': 'reference/servlet/authentication',
|
|
111
|
+
'authorization': 'reference/servlet/authorization',
|
|
112
|
+
'oauth2': 'reference/servlet/oauth2',
|
|
113
|
+
'exploits': 'reference/servlet/exploits',
|
|
114
|
+
'integrations': 'reference/servlet/integrations',
|
|
115
|
+
'testing': 'reference/servlet/test'
|
|
116
|
+
},
|
|
117
|
+
hasVersionedDocs: true, // Verified: https://docs.spring.io/spring-security/reference/6.5/index.html
|
|
118
|
+
cacheStrategy: 'long',
|
|
119
|
+
referenceSections: [
|
|
120
|
+
'servlet',
|
|
121
|
+
'reactive',
|
|
122
|
+
'features',
|
|
123
|
+
'migration',
|
|
124
|
+
'authentication',
|
|
125
|
+
'authorization',
|
|
126
|
+
'oauth2',
|
|
127
|
+
'exploits',
|
|
128
|
+
'integrations',
|
|
129
|
+
'testing'
|
|
130
|
+
]
|
|
131
|
+
}
|
|
132
|
+
],
|
|
133
|
+
[
|
|
134
|
+
'data-jpa',
|
|
135
|
+
{
|
|
136
|
+
id: 'data-jpa',
|
|
137
|
+
githubRepo: 'spring-projects/spring-data-jpa',
|
|
138
|
+
githubTagPrefix: '',
|
|
139
|
+
versionInsertAfter: 'https://docs.spring.io/spring-data/jpa/reference/',
|
|
140
|
+
displayName: 'Spring Data JPA',
|
|
141
|
+
referenceBaseUrl: 'https://docs.spring.io/spring-data/jpa/reference',
|
|
142
|
+
referenceLayout: 'flat',
|
|
143
|
+
hasVersionedDocs: true, // Verified: https://docs.spring.io/spring-data/jpa/reference/3.5/index.html
|
|
144
|
+
cacheStrategy: 'long',
|
|
145
|
+
referenceSections: [
|
|
146
|
+
'jpa',
|
|
147
|
+
'auditing',
|
|
148
|
+
// repositories.html alone returns 404 (verified): this section only works with a subsection, e.g. 'core-concepts'
|
|
149
|
+
'repositories'
|
|
150
|
+
]
|
|
151
|
+
}
|
|
152
|
+
],
|
|
153
|
+
[
|
|
154
|
+
'batch',
|
|
155
|
+
{
|
|
156
|
+
id: 'batch',
|
|
157
|
+
githubRepo: 'spring-projects/spring-batch',
|
|
158
|
+
githubTagPrefix: 'v',
|
|
159
|
+
versionInsertAfter: 'https://docs.spring.io/spring-batch/reference/',
|
|
160
|
+
displayName: 'Spring Batch',
|
|
161
|
+
referenceBaseUrl: 'https://docs.spring.io/spring-batch/reference',
|
|
162
|
+
referenceLayout: 'flat',
|
|
163
|
+
hasVersionedDocs: true, // Verified: https://docs.spring.io/spring-batch/reference/5.2/index.html
|
|
164
|
+
cacheStrategy: 'long',
|
|
165
|
+
referenceSections: [
|
|
166
|
+
'spring-batch-architecture',
|
|
167
|
+
'whatsnew',
|
|
168
|
+
'domain',
|
|
169
|
+
'job',
|
|
170
|
+
'step',
|
|
171
|
+
'readersAndWriters',
|
|
172
|
+
'processor',
|
|
173
|
+
'scalability',
|
|
174
|
+
'repeat',
|
|
175
|
+
'retry',
|
|
176
|
+
'testing',
|
|
177
|
+
'common-patterns'
|
|
178
|
+
]
|
|
179
|
+
}
|
|
180
|
+
],
|
|
181
|
+
[
|
|
182
|
+
'integration',
|
|
183
|
+
{
|
|
184
|
+
id: 'integration',
|
|
185
|
+
githubRepo: 'spring-projects/spring-integration',
|
|
186
|
+
githubTagPrefix: 'v',
|
|
187
|
+
versionInsertAfter: 'https://docs.spring.io/spring-integration/reference/',
|
|
188
|
+
displayName: 'Spring Integration',
|
|
189
|
+
referenceBaseUrl: 'https://docs.spring.io/spring-integration/reference',
|
|
190
|
+
referenceLayout: 'flat',
|
|
191
|
+
hasVersionedDocs: true, // Verified: https://docs.spring.io/spring-integration/reference/6.5/index.html
|
|
192
|
+
cacheStrategy: 'long',
|
|
193
|
+
referenceSections: [
|
|
194
|
+
'overview',
|
|
195
|
+
'message',
|
|
196
|
+
'channel',
|
|
197
|
+
'endpoint',
|
|
198
|
+
'router',
|
|
199
|
+
'transformer',
|
|
200
|
+
'dsl',
|
|
201
|
+
'http',
|
|
202
|
+
'jms',
|
|
203
|
+
'amqp',
|
|
204
|
+
'kafka',
|
|
205
|
+
'testing',
|
|
206
|
+
'whats-new'
|
|
207
|
+
]
|
|
208
|
+
}
|
|
209
|
+
],
|
|
210
|
+
[
|
|
211
|
+
'kafka',
|
|
212
|
+
{
|
|
213
|
+
id: 'kafka',
|
|
214
|
+
githubRepo: 'spring-projects/spring-kafka',
|
|
215
|
+
githubTagPrefix: 'v',
|
|
216
|
+
versionInsertAfter: 'https://docs.spring.io/spring-kafka/reference/',
|
|
217
|
+
displayName: 'Spring for Apache Kafka',
|
|
218
|
+
referenceBaseUrl: 'https://docs.spring.io/spring-kafka/reference',
|
|
219
|
+
referenceLayout: 'flat',
|
|
220
|
+
hasVersionedDocs: true, // Verified: https://docs.spring.io/spring-kafka/reference/3.3/index.html
|
|
221
|
+
cacheStrategy: 'long',
|
|
222
|
+
referenceSections: [
|
|
223
|
+
'introduction',
|
|
224
|
+
'quick-tour',
|
|
225
|
+
'kafka',
|
|
226
|
+
'retrytopic',
|
|
227
|
+
'streams',
|
|
228
|
+
'testing',
|
|
229
|
+
'whats-new'
|
|
230
|
+
]
|
|
231
|
+
}
|
|
232
|
+
],
|
|
233
|
+
[
|
|
234
|
+
'modulith',
|
|
235
|
+
{
|
|
236
|
+
id: 'modulith',
|
|
237
|
+
githubRepo: 'spring-projects/spring-modulith',
|
|
238
|
+
githubTagPrefix: '',
|
|
239
|
+
versionInsertAfter: 'https://docs.spring.io/spring-modulith/reference/',
|
|
240
|
+
displayName: 'Spring Modulith',
|
|
241
|
+
referenceBaseUrl: 'https://docs.spring.io/spring-modulith/reference',
|
|
242
|
+
referenceLayout: 'flat',
|
|
243
|
+
hasVersionedDocs: true, // Verified: https://docs.spring.io/spring-modulith/reference/1.4/index.html
|
|
244
|
+
cacheStrategy: 'long',
|
|
245
|
+
referenceSections: [
|
|
246
|
+
'fundamentals',
|
|
247
|
+
'events',
|
|
248
|
+
'testing',
|
|
249
|
+
'verification',
|
|
250
|
+
'documentation',
|
|
251
|
+
'appendix'
|
|
252
|
+
]
|
|
253
|
+
}
|
|
254
|
+
],
|
|
255
|
+
[
|
|
256
|
+
'cloud-gateway',
|
|
257
|
+
{
|
|
258
|
+
id: 'cloud-gateway',
|
|
259
|
+
githubRepo: 'spring-cloud/spring-cloud-gateway',
|
|
260
|
+
githubTagPrefix: 'v',
|
|
261
|
+
versionInsertAfter: 'https://docs.spring.io/spring-cloud-gateway/reference/',
|
|
262
|
+
displayName: 'Spring Cloud Gateway',
|
|
263
|
+
referenceBaseUrl: 'https://docs.spring.io/spring-cloud-gateway/reference',
|
|
264
|
+
referenceLayout: 'flat',
|
|
265
|
+
hasVersionedDocs: true, // Verified: https://docs.spring.io/spring-cloud-gateway/reference/4.3/index.html
|
|
266
|
+
cacheStrategy: 'long',
|
|
267
|
+
referenceSections: [
|
|
268
|
+
'spring-cloud-gateway-server-webflux',
|
|
269
|
+
'spring-cloud-gateway-server-webmvc',
|
|
270
|
+
'appendix'
|
|
271
|
+
]
|
|
272
|
+
}
|
|
273
|
+
],
|
|
274
|
+
[
|
|
275
|
+
'cloud-config',
|
|
276
|
+
{
|
|
277
|
+
id: 'cloud-config',
|
|
278
|
+
githubRepo: 'spring-cloud/spring-cloud-config',
|
|
279
|
+
githubTagPrefix: 'v',
|
|
280
|
+
versionInsertAfter: 'https://docs.spring.io/spring-cloud-config/reference/',
|
|
281
|
+
displayName: 'Spring Cloud Config',
|
|
282
|
+
referenceBaseUrl: 'https://docs.spring.io/spring-cloud-config/reference',
|
|
283
|
+
referenceLayout: 'flat',
|
|
284
|
+
hasVersionedDocs: true, // Verified: https://docs.spring.io/spring-cloud-config/reference/4.3/index.html
|
|
285
|
+
cacheStrategy: 'long',
|
|
286
|
+
referenceSections: [
|
|
287
|
+
'quickstart',
|
|
288
|
+
'server',
|
|
289
|
+
'client'
|
|
290
|
+
]
|
|
291
|
+
}
|
|
292
|
+
]
|
|
293
|
+
// Future projects can be added here (e.g. 'cloud-*' siblings, 'data-*' modules, 'graphql', 'session').
|
|
294
|
+
]);
|
|
295
|
+
/**
|
|
296
|
+
* Spring Projects Configuration Manager
|
|
297
|
+
*
|
|
298
|
+
* Provides type-safe access to Spring project configurations with validation
|
|
299
|
+
* and helper methods for URL construction.
|
|
300
|
+
*/
|
|
301
|
+
export class SpringProjectsConfig {
|
|
302
|
+
projects;
|
|
303
|
+
constructor(projectsMap = SPRING_PROJECTS) {
|
|
304
|
+
this.projects = projectsMap;
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Get configuration for a specific Spring project
|
|
308
|
+
* @throws Error if project not found
|
|
309
|
+
*/
|
|
310
|
+
getProject(projectId) {
|
|
311
|
+
const project = this.projects.get(projectId);
|
|
312
|
+
if (!project) {
|
|
313
|
+
const availableProjects = Array.from(this.projects.keys()).join(', ');
|
|
314
|
+
throw new Error(`Unknown Spring project: "${projectId}". Available projects: ${availableProjects}`);
|
|
315
|
+
}
|
|
316
|
+
return project;
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Get all supported project IDs
|
|
320
|
+
*/
|
|
321
|
+
getAllProjectIds() {
|
|
322
|
+
return Array.from(this.projects.keys());
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Get all project configurations
|
|
326
|
+
*/
|
|
327
|
+
getAllProjects() {
|
|
328
|
+
return Array.from(this.projects.values());
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Build documentation reference URL for a project (current documentation version)
|
|
332
|
+
*
|
|
333
|
+
* @param projectId - Project identifier
|
|
334
|
+
* @param section - Documentation section (e.g., "web", "chatclient"), already validated as a safe URL segment
|
|
335
|
+
* @param subsection - Optional page inside the section (e.g., "servlet" for boot/web)
|
|
336
|
+
* @param version - Optional documentation version ("3.4" or "3.4.2"); omitted or "current" means the current docs
|
|
337
|
+
* @returns Complete URL to the documentation page
|
|
338
|
+
*/
|
|
339
|
+
buildReferenceUrl(projectId, section, subsection, version) {
|
|
340
|
+
const normalizedVersion = normalizeVersion(version);
|
|
341
|
+
const project = this.getProject(projectId);
|
|
342
|
+
const base = project.referenceBaseUrl;
|
|
343
|
+
let url;
|
|
344
|
+
if (project.referenceLayout === 'directory') {
|
|
345
|
+
const dir = project.referencePaths?.[section] ?? `reference/${section}`;
|
|
346
|
+
url = `${base}/${dir}/${subsection ? `${subsection}.html` : 'index.html'}`;
|
|
347
|
+
}
|
|
348
|
+
else {
|
|
349
|
+
url = subsection ? `${base}/${section}/${subsection}.html` : `${base}/${section}.html`;
|
|
350
|
+
}
|
|
351
|
+
if (!normalizedVersion)
|
|
352
|
+
return url;
|
|
353
|
+
const prefix = project.versionInsertAfter;
|
|
354
|
+
if (!project.hasVersionedDocs || !prefix) {
|
|
355
|
+
throw new Error(`Project "${projectId}" does not support versioned documentation`);
|
|
356
|
+
}
|
|
357
|
+
if (!url.startsWith(prefix)) {
|
|
358
|
+
throw new Error(`Invalid configuration for project "${projectId}": versionInsertAfter is not a prefix of ${url}`);
|
|
359
|
+
}
|
|
360
|
+
return `${prefix}${normalizedVersion}/${url.slice(prefix.length)}`;
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* Get cache TTL in milliseconds for a project
|
|
364
|
+
*
|
|
365
|
+
* @param projectId - Project identifier
|
|
366
|
+
* @returns TTL in milliseconds
|
|
367
|
+
*/
|
|
368
|
+
getCacheTTL(projectId) {
|
|
369
|
+
const project = this.getProject(projectId);
|
|
370
|
+
// Convert strategy to milliseconds
|
|
371
|
+
switch (project.cacheStrategy) {
|
|
372
|
+
case 'short':
|
|
373
|
+
return 30 * 60 * 1000; // 30 minutes
|
|
374
|
+
case 'long':
|
|
375
|
+
return 24 * 60 * 60 * 1000; // 24 hours
|
|
376
|
+
default:
|
|
377
|
+
return 30 * 60 * 1000; // Default to 30 minutes
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Validate if a section exists for a project
|
|
382
|
+
* Returns true if validation passes or if project doesn't define sections
|
|
383
|
+
*/
|
|
384
|
+
validateSection(projectId, section) {
|
|
385
|
+
const project = this.getProject(projectId);
|
|
386
|
+
// If project doesn't define sections, allow any section
|
|
387
|
+
if (!project.referenceSections || project.referenceSections.length === 0) {
|
|
388
|
+
return true;
|
|
389
|
+
}
|
|
390
|
+
return project.referenceSections.includes(section);
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* Singleton instance for application-wide use
|
|
395
|
+
*/
|
|
396
|
+
export const springProjectsConfig = new SpringProjectsConfig();
|
|
397
|
+
//# sourceMappingURL=spring-projects-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spring-projects-config.js","sourceRoot":"","sources":["../../src/services/spring-projects-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +1,41 @@
|
|
|
1
|
+
import { CacheService } from './cache.js';
|
|
2
|
+
import { WikiDocument } from './boot-wiki.js';
|
|
3
|
+
import { SpringProjectsConfig } from './spring-projects-config.js';
|
|
4
|
+
import { SearchIndex } from './search-index.js';
|
|
5
|
+
import { MigrationProject } from './migration-sources.js';
|
|
1
6
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
7
|
+
* Spring Documentation Service - Supports multiple Spring projects (Boot, AI, Framework, etc.)
|
|
8
|
+
* Uses ONLY real Spring documentation APIs - no mock data
|
|
9
|
+
*
|
|
10
|
+
* Architecture: Configuration-driven multi-project support via SpringProjectsConfig
|
|
4
11
|
*/
|
|
5
12
|
export declare class SpringBootDocsServiceOptimized {
|
|
6
13
|
private readonly baseUrl;
|
|
7
14
|
private readonly springProjectsUrl;
|
|
8
15
|
private readonly springGuideUrl;
|
|
9
|
-
private
|
|
10
|
-
private turndownService;
|
|
16
|
+
private projectsConfig;
|
|
11
17
|
private cache;
|
|
12
|
-
private
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
*/
|
|
19
|
-
private extractIntelligentContent;
|
|
18
|
+
private searchIndex;
|
|
19
|
+
constructor(projectsConfig?: SpringProjectsConfig, cache?: CacheService, searchIndex?: SearchIndex);
|
|
20
|
+
/** Feeds the full-text index with a page already fetched; never breaks the read path. */
|
|
21
|
+
private indexPage;
|
|
22
|
+
/** Re-feeds the index from the cache when a page was evicted or read before the index existed. */
|
|
23
|
+
private reindexIfMissing;
|
|
20
24
|
/**
|
|
21
25
|
* Search Spring projects with caching and retry logic - REAL API ONLY
|
|
22
26
|
*/
|
|
23
27
|
searchSpringProjects(query: string, limit?: number): Promise<any[]>;
|
|
28
|
+
/**
|
|
29
|
+
* Get the full markdown of a Spring project page (cached) - REAL API ONLY
|
|
30
|
+
*/
|
|
31
|
+
getProjectMarkdown(projectName: string): Promise<{
|
|
32
|
+
markdown: string;
|
|
33
|
+
url: string;
|
|
34
|
+
}>;
|
|
24
35
|
/**
|
|
25
36
|
* Get Spring project details - REAL API ONLY
|
|
26
37
|
*/
|
|
27
|
-
getSpringProject(projectName: string): Promise<string>;
|
|
38
|
+
getSpringProject(projectName: string, offset?: number): Promise<string>;
|
|
28
39
|
/**
|
|
29
40
|
* Get all Spring guides - REAL API ONLY
|
|
30
41
|
*/
|
|
@@ -34,31 +45,71 @@ export declare class SpringBootDocsServiceOptimized {
|
|
|
34
45
|
*/
|
|
35
46
|
getGuide(guideId: string, detailLevel?: string): Promise<string>;
|
|
36
47
|
/**
|
|
37
|
-
* Get Spring reference documentation -
|
|
48
|
+
* Get Spring reference documentation - backward compatibility (defaults to Spring Boot)
|
|
49
|
+
* @deprecated Use getSpringReference('boot', section) instead
|
|
38
50
|
*/
|
|
39
51
|
getReference(section: string, subsection?: string): Promise<string>;
|
|
40
52
|
/**
|
|
41
|
-
* Get Spring reference documentation
|
|
53
|
+
* Get Spring reference documentation for any Spring project
|
|
54
|
+
* Supports: Spring Boot, Spring AI, Spring Framework, and future projects
|
|
55
|
+
*
|
|
56
|
+
* @param projectId - Project identifier ('boot', 'ai', 'framework', etc.)
|
|
57
|
+
* @param section - Documentation section (e.g., 'web', 'chatclient', 'core')
|
|
58
|
+
* @param subsection - Optional subsection for deeper navigation
|
|
59
|
+
* @param offset - Character offset for paginated reads
|
|
60
|
+
* @param version - Optional documentation version ('3.4' or '3.4.2'; omitted/'current' = latest)
|
|
61
|
+
* @returns Formatted markdown documentation with source URL
|
|
62
|
+
*/
|
|
63
|
+
getSpringReference(projectId: string, section: string, subsection?: string, offset?: number, version?: string): Promise<string>;
|
|
64
|
+
/**
|
|
65
|
+
* Get the Spring Boot migration guide or upgrade release notes from the GitHub wiki
|
|
66
|
+
*
|
|
67
|
+
* @param version - Target version ('3.0', '3.4' or '3.4.2'; the patch is ignored)
|
|
68
|
+
* @param document - 'auto' (migration guide for x.0, release notes otherwise) or an explicit document
|
|
69
|
+
* @param section - Optional keyword; only matching headings (with sub-sections) are returned
|
|
70
|
+
* @param offset - Character offset for paginated reads
|
|
71
|
+
*/
|
|
72
|
+
getMigrationGuide(version: string, document?: 'auto' | WikiDocument, section?: string, offset?: number, project?: MigrationProject): Promise<string>;
|
|
73
|
+
private fetchBootWikiPage;
|
|
74
|
+
/** Raw markdown wiki page (Framework, Batch): a missing page is a real 404, an HTML body is never a guide. */
|
|
75
|
+
private fetchRawWikiPage;
|
|
76
|
+
private referenceTitle;
|
|
77
|
+
/**
|
|
78
|
+
* Format one page of a full markdown document with a pagination footer
|
|
42
79
|
*/
|
|
43
|
-
|
|
80
|
+
private formatPage;
|
|
44
81
|
/**
|
|
45
82
|
* Search Spring concepts - alias for backward compatibility
|
|
46
83
|
*/
|
|
47
|
-
searchConcepts(concept: string,
|
|
84
|
+
searchConcepts(concept: string, version?: string): Promise<string>;
|
|
85
|
+
/**
|
|
86
|
+
* Entry page of the Spring Boot reference documentation: the current docs (legacy URL, unchanged)
|
|
87
|
+
* or the page of a published version ("3.4" or "3.4.2"; the patch is ignored).
|
|
88
|
+
*/
|
|
89
|
+
private bootReferenceIndexUrl;
|
|
90
|
+
private bootVersionNotFound;
|
|
48
91
|
/**
|
|
49
92
|
* Search Spring concepts - using real documentation
|
|
93
|
+
*
|
|
94
|
+
* @param version - Optional Spring Boot documentation version ('3.4' or '3.4.2'; omitted/'current' = latest)
|
|
50
95
|
*/
|
|
51
|
-
searchSpringConcepts(concept: string,
|
|
96
|
+
searchSpringConcepts(concept: string, version?: string): Promise<string>;
|
|
52
97
|
/**
|
|
53
98
|
* Search documentation with real API - alias for backward compatibility
|
|
54
99
|
*/
|
|
55
|
-
searchDocumentation(query: string, docType?: string, limit?: number): Promise<any[]>;
|
|
100
|
+
searchDocumentation(query: string, docType?: string, limit?: number, version?: string): Promise<any[]>;
|
|
56
101
|
/**
|
|
57
102
|
* Search documentation with real API
|
|
103
|
+
*
|
|
104
|
+
* @param version - Optional Spring Boot documentation version for the Boot reference part
|
|
105
|
+
* ('3.4' or '3.4.2'; omitted/'current' = latest). Guides and projects are not versioned and ignore it.
|
|
58
106
|
*/
|
|
59
|
-
searchSpringDocs(query: string, docType?: string, limit?: number): Promise<any[]>;
|
|
107
|
+
searchSpringDocs(query: string, docType?: string, limit?: number, version?: string): Promise<any[]>;
|
|
108
|
+
private mergeContentResults;
|
|
109
|
+
private searchTitleSources;
|
|
60
110
|
private searchInReference;
|
|
61
|
-
private
|
|
111
|
+
private extractGuideMarkdown;
|
|
112
|
+
private formatGuide;
|
|
62
113
|
private fetchWithRetry;
|
|
63
114
|
}
|
|
64
115
|
//# sourceMappingURL=springboot-docs-optimized.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"springboot-docs-optimized.d.ts","sourceRoot":"","sources":["../../src/services/springboot-docs-optimized.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"springboot-docs-optimized.d.ts","sourceRoot":"","sources":["../../src/services/springboot-docs-optimized.ts"],"names":[],"mappings":"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"}
|