@mweinbach/apple-docs-mcp 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +560 -0
- package/dist/constants/browser-headers.d.ts +48 -0
- package/dist/constants/browser-headers.d.ts.map +1 -0
- package/dist/constants/browser-headers.js +166 -0
- package/dist/constants/browser-headers.js.map +1 -0
- package/dist/index.d.ts +83 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +215 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/analyze-api.schema.d.ts +42 -0
- package/dist/schemas/analyze-api.schema.d.ts.map +1 -0
- package/dist/schemas/analyze-api.schema.js +23 -0
- package/dist/schemas/analyze-api.schema.js.map +1 -0
- package/dist/schemas/apple-docs.schema.d.ts +18 -0
- package/dist/schemas/apple-docs.schema.d.ts.map +1 -0
- package/dist/schemas/apple-docs.schema.js +10 -0
- package/dist/schemas/apple-docs.schema.js.map +1 -0
- package/dist/schemas/doc-content.schema.d.ts +24 -0
- package/dist/schemas/doc-content.schema.d.ts.map +1 -0
- package/dist/schemas/doc-content.schema.js +10 -0
- package/dist/schemas/doc-content.schema.js.map +1 -0
- package/dist/schemas/documentation-updates.schema.d.ts +27 -0
- package/dist/schemas/documentation-updates.schema.d.ts.map +1 -0
- package/dist/schemas/documentation-updates.schema.js +12 -0
- package/dist/schemas/documentation-updates.schema.js.map +1 -0
- package/dist/schemas/framework-symbols.schema.d.ts +24 -0
- package/dist/schemas/framework-symbols.schema.d.ts.map +1 -0
- package/dist/schemas/framework-symbols.schema.js +11 -0
- package/dist/schemas/framework-symbols.schema.js.map +1 -0
- package/dist/schemas/index.d.ts +15 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +15 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/platform-compatibility.schema.d.ts +18 -0
- package/dist/schemas/platform-compatibility.schema.d.ts.map +1 -0
- package/dist/schemas/platform-compatibility.schema.js +8 -0
- package/dist/schemas/platform-compatibility.schema.js.map +1 -0
- package/dist/schemas/references.schema.d.ts +18 -0
- package/dist/schemas/references.schema.d.ts.map +1 -0
- package/dist/schemas/references.schema.js +9 -0
- package/dist/schemas/references.schema.js.map +1 -0
- package/dist/schemas/related-apis.schema.d.ts +21 -0
- package/dist/schemas/related-apis.schema.d.ts.map +1 -0
- package/dist/schemas/related-apis.schema.js +9 -0
- package/dist/schemas/related-apis.schema.js.map +1 -0
- package/dist/schemas/sample-code.schema.d.ts +21 -0
- package/dist/schemas/sample-code.schema.d.ts.map +1 -0
- package/dist/schemas/sample-code.schema.js +10 -0
- package/dist/schemas/sample-code.schema.js.map +1 -0
- package/dist/schemas/search.schema.d.ts +15 -0
- package/dist/schemas/search.schema.d.ts.map +1 -0
- package/dist/schemas/search.schema.js +8 -0
- package/dist/schemas/search.schema.js.map +1 -0
- package/dist/schemas/similar-apis.schema.d.ts +21 -0
- package/dist/schemas/similar-apis.schema.d.ts.map +1 -0
- package/dist/schemas/similar-apis.schema.js +9 -0
- package/dist/schemas/similar-apis.schema.js.map +1 -0
- package/dist/schemas/technologies.schema.d.ts +21 -0
- package/dist/schemas/technologies.schema.d.ts.map +1 -0
- package/dist/schemas/technologies.schema.js +10 -0
- package/dist/schemas/technologies.schema.js.map +1 -0
- package/dist/schemas/technology-overviews.schema.d.ts +24 -0
- package/dist/schemas/technology-overviews.schema.d.ts.map +1 -0
- package/dist/schemas/technology-overviews.schema.js +11 -0
- package/dist/schemas/technology-overviews.schema.js.map +1 -0
- package/dist/schemas/wwdc.schemas.d.ts +208 -0
- package/dist/schemas/wwdc.schemas.d.ts.map +1 -0
- package/dist/schemas/wwdc.schemas.js +97 -0
- package/dist/schemas/wwdc.schemas.js.map +1 -0
- package/dist/tools/definitions.d.ts +10 -0
- package/dist/tools/definitions.d.ts.map +1 -0
- package/dist/tools/definitions.js +690 -0
- package/dist/tools/definitions.js.map +1 -0
- package/dist/tools/doc-fetcher.d.ts +19 -0
- package/dist/tools/doc-fetcher.d.ts.map +1 -0
- package/dist/tools/doc-fetcher.js +487 -0
- package/dist/tools/doc-fetcher.js.map +1 -0
- package/dist/tools/doc-formatter.d.ts +69 -0
- package/dist/tools/doc-formatter.d.ts.map +1 -0
- package/dist/tools/doc-formatter.js +208 -0
- package/dist/tools/doc-formatter.js.map +1 -0
- package/dist/tools/find-similar-apis.d.ts +5 -0
- package/dist/tools/find-similar-apis.d.ts.map +1 -0
- package/dist/tools/find-similar-apis.js +275 -0
- package/dist/tools/find-similar-apis.js.map +1 -0
- package/dist/tools/get-documentation-updates.d.ts +5 -0
- package/dist/tools/get-documentation-updates.d.ts.map +1 -0
- package/dist/tools/get-documentation-updates.js +244 -0
- package/dist/tools/get-documentation-updates.js.map +1 -0
- package/dist/tools/get-platform-compatibility.d.ts +5 -0
- package/dist/tools/get-platform-compatibility.d.ts.map +1 -0
- package/dist/tools/get-platform-compatibility.js +205 -0
- package/dist/tools/get-platform-compatibility.js.map +1 -0
- package/dist/tools/get-related-apis.d.ts +5 -0
- package/dist/tools/get-related-apis.d.ts.map +1 -0
- package/dist/tools/get-related-apis.js +155 -0
- package/dist/tools/get-related-apis.js.map +1 -0
- package/dist/tools/get-sample-code.d.ts +5 -0
- package/dist/tools/get-sample-code.d.ts.map +1 -0
- package/dist/tools/get-sample-code.js +375 -0
- package/dist/tools/get-sample-code.js.map +1 -0
- package/dist/tools/get-technology-overviews.d.ts +5 -0
- package/dist/tools/get-technology-overviews.d.ts.map +1 -0
- package/dist/tools/get-technology-overviews.js +306 -0
- package/dist/tools/get-technology-overviews.js.map +1 -0
- package/dist/tools/handlers.d.ts +29 -0
- package/dist/tools/handlers.d.ts.map +1 -0
- package/dist/tools/handlers.js +350 -0
- package/dist/tools/handlers.js.map +1 -0
- package/dist/tools/list-technologies.d.ts +5 -0
- package/dist/tools/list-technologies.d.ts.map +1 -0
- package/dist/tools/list-technologies.js +165 -0
- package/dist/tools/list-technologies.js.map +1 -0
- package/dist/tools/resolve-references-batch.d.ts +5 -0
- package/dist/tools/resolve-references-batch.d.ts.map +1 -0
- package/dist/tools/resolve-references-batch.js +199 -0
- package/dist/tools/resolve-references-batch.js.map +1 -0
- package/dist/tools/search-framework-symbols.d.ts +7 -0
- package/dist/tools/search-framework-symbols.d.ts.map +1 -0
- package/dist/tools/search-framework-symbols.js +235 -0
- package/dist/tools/search-framework-symbols.js.map +1 -0
- package/dist/tools/search-parser.d.ts +15 -0
- package/dist/tools/search-parser.d.ts.map +1 -0
- package/dist/tools/search-parser.js +188 -0
- package/dist/tools/search-parser.js.map +1 -0
- package/dist/tools/search-result-parser.d.ts +52 -0
- package/dist/tools/search-result-parser.d.ts.map +1 -0
- package/dist/tools/search-result-parser.js +137 -0
- package/dist/tools/search-result-parser.js.map +1 -0
- package/dist/tools/tools-guide.d.ts +124 -0
- package/dist/tools/tools-guide.d.ts.map +1 -0
- package/dist/tools/tools-guide.js +389 -0
- package/dist/tools/tools-guide.js.map +1 -0
- package/dist/tools/wwdc/content-extractor.d.ts +9 -0
- package/dist/tools/wwdc/content-extractor.d.ts.map +1 -0
- package/dist/tools/wwdc/content-extractor.js +520 -0
- package/dist/tools/wwdc/content-extractor.js.map +1 -0
- package/dist/tools/wwdc/topics-extractor.d.ts +32 -0
- package/dist/tools/wwdc/topics-extractor.d.ts.map +1 -0
- package/dist/tools/wwdc/topics-extractor.js +146 -0
- package/dist/tools/wwdc/topics-extractor.js.map +1 -0
- package/dist/tools/wwdc/video-list-extractor.d.ts +13 -0
- package/dist/tools/wwdc/video-list-extractor.d.ts.map +1 -0
- package/dist/tools/wwdc/video-list-extractor.js +238 -0
- package/dist/tools/wwdc/video-list-extractor.js.map +1 -0
- package/dist/tools/wwdc/wwdc-handlers.d.ts +32 -0
- package/dist/tools/wwdc/wwdc-handlers.d.ts.map +1 -0
- package/dist/tools/wwdc/wwdc-handlers.js +791 -0
- package/dist/tools/wwdc/wwdc-handlers.js.map +1 -0
- package/dist/types/apple-docs.d.ts +112 -0
- package/dist/types/apple-docs.d.ts.map +1 -0
- package/dist/types/apple-docs.js +5 -0
- package/dist/types/apple-docs.js.map +1 -0
- package/dist/types/cache.d.ts +28 -0
- package/dist/types/cache.d.ts.map +1 -0
- package/dist/types/cache.js +5 -0
- package/dist/types/cache.js.map +1 -0
- package/dist/types/content-sections.d.ts +37 -0
- package/dist/types/content-sections.d.ts.map +1 -0
- package/dist/types/content-sections.js +5 -0
- package/dist/types/content-sections.js.map +1 -0
- package/dist/types/error.d.ts +39 -0
- package/dist/types/error.d.ts.map +1 -0
- package/dist/types/error.js +21 -0
- package/dist/types/error.js.map +1 -0
- package/dist/types/headers.d.ts +95 -0
- package/dist/types/headers.d.ts.map +1 -0
- package/dist/types/headers.js +5 -0
- package/dist/types/headers.js.map +1 -0
- package/dist/types/http.d.ts +31 -0
- package/dist/types/http.d.ts.map +1 -0
- package/dist/types/http.js +5 -0
- package/dist/types/http.js.map +1 -0
- package/dist/types/index.d.ts +11 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +12 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/search.d.ts +62 -0
- package/dist/types/search.d.ts.map +1 -0
- package/dist/types/search.js +5 -0
- package/dist/types/search.js.map +1 -0
- package/dist/types/sections.d.ts +64 -0
- package/dist/types/sections.d.ts.map +1 -0
- package/dist/types/sections.js +5 -0
- package/dist/types/sections.js.map +1 -0
- package/dist/types/tools/platform.d.ts +33 -0
- package/dist/types/tools/platform.d.ts.map +1 -0
- package/dist/types/tools/platform.js +5 -0
- package/dist/types/tools/platform.js.map +1 -0
- package/dist/types/tools/sample-code.d.ts +23 -0
- package/dist/types/tools/sample-code.d.ts.map +1 -0
- package/dist/types/tools/sample-code.js +5 -0
- package/dist/types/tools/sample-code.js.map +1 -0
- package/dist/types/tools/technology.d.ts +18 -0
- package/dist/types/tools/technology.d.ts.map +1 -0
- package/dist/types/tools/technology.js +5 -0
- package/dist/types/tools/technology.js.map +1 -0
- package/dist/types/tools/updates.d.ts +23 -0
- package/dist/types/tools/updates.d.ts.map +1 -0
- package/dist/types/tools/updates.js +5 -0
- package/dist/types/tools/updates.js.map +1 -0
- package/dist/types/wwdc.d.ts +200 -0
- package/dist/types/wwdc.d.ts.map +1 -0
- package/dist/types/wwdc.js +5 -0
- package/dist/types/wwdc.js.map +1 -0
- package/dist/utils/cache-warmer.d.ts +22 -0
- package/dist/utils/cache-warmer.d.ts.map +1 -0
- package/dist/utils/cache-warmer.js +115 -0
- package/dist/utils/cache-warmer.js.map +1 -0
- package/dist/utils/cache.d.ts +109 -0
- package/dist/utils/cache.d.ts.map +1 -0
- package/dist/utils/cache.js +302 -0
- package/dist/utils/cache.js.map +1 -0
- package/dist/utils/constants.d.ts +178 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +266 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/error-handler.d.ts +80 -0
- package/dist/utils/error-handler.d.ts.map +1 -0
- package/dist/utils/error-handler.js +437 -0
- package/dist/utils/error-handler.js.map +1 -0
- package/dist/utils/framework-mapper.d.ts +84 -0
- package/dist/utils/framework-mapper.d.ts.map +1 -0
- package/dist/utils/framework-mapper.js +534 -0
- package/dist/utils/framework-mapper.js.map +1 -0
- package/dist/utils/http-client.d.ts +130 -0
- package/dist/utils/http-client.d.ts.map +1 -0
- package/dist/utils/http-client.js +464 -0
- package/dist/utils/http-client.js.map +1 -0
- package/dist/utils/http-headers-generator.d.ts +151 -0
- package/dist/utils/http-headers-generator.d.ts.map +1 -0
- package/dist/utils/http-headers-generator.js +407 -0
- package/dist/utils/http-headers-generator.js.map +1 -0
- package/dist/utils/logger.d.ts +44 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +73 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/preloader.d.ts +20 -0
- package/dist/utils/preloader.d.ts.map +1 -0
- package/dist/utils/preloader.js +82 -0
- package/dist/utils/preloader.js.map +1 -0
- package/dist/utils/rate-limiter.d.ts +28 -0
- package/dist/utils/rate-limiter.d.ts.map +1 -0
- package/dist/utils/rate-limiter.js +48 -0
- package/dist/utils/rate-limiter.js.map +1 -0
- package/dist/utils/topic-mapper.d.ts +18 -0
- package/dist/utils/topic-mapper.d.ts.map +1 -0
- package/dist/utils/topic-mapper.js +182 -0
- package/dist/utils/topic-mapper.js.map +1 -0
- package/dist/utils/url-converter.d.ts +22 -0
- package/dist/utils/url-converter.d.ts.map +1 -0
- package/dist/utils/url-converter.js +70 -0
- package/dist/utils/url-converter.js.map +1 -0
- package/dist/utils/user-agent-pool.d.ts +241 -0
- package/dist/utils/user-agent-pool.d.ts.map +1 -0
- package/dist/utils/user-agent-pool.js +557 -0
- package/dist/utils/user-agent-pool.js.map +1 -0
- package/dist/utils/wwdc-data-source-path.d.ts +9 -0
- package/dist/utils/wwdc-data-source-path.d.ts.map +1 -0
- package/dist/utils/wwdc-data-source-path.js +22 -0
- package/dist/utils/wwdc-data-source-path.js.map +1 -0
- package/dist/utils/wwdc-data-source.d.ts +36 -0
- package/dist/utils/wwdc-data-source.d.ts.map +1 -0
- package/dist/utils/wwdc-data-source.js +133 -0
- package/dist/utils/wwdc-data-source.js.map +1 -0
- package/package.json +83 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-sample-code.d.ts","sourceRoot":"","sources":["../../src/tools/get-sample-code.ts"],"names":[],"mappings":"AAqFA;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,CAAC,EAAE,MAAM,EAClB,IAAI,GAAE,SAAS,GAAG,SAAS,GAAG,MAAkB,EAChD,WAAW,CAAC,EAAE,MAAM,EACpB,KAAK,GAAE,MAAW,GACjB,OAAO,CAAC,MAAM,CAAC,CAqEjB"}
|
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
import { APPLE_URLS } from '../utils/constants.js';
|
|
2
|
+
import { httpClient } from '../utils/http-client.js';
|
|
3
|
+
import { sampleCodeCache, generateUrlCacheKey } from '../utils/cache.js';
|
|
4
|
+
import { normalizeFrameworkName } from '../utils/framework-mapper.js';
|
|
5
|
+
/**
|
|
6
|
+
* Handles the get_sample_code tool request
|
|
7
|
+
*/
|
|
8
|
+
export async function handleGetSampleCode(framework, beta = 'include', searchQuery, limit = 50) {
|
|
9
|
+
// Generate cache key
|
|
10
|
+
const cacheKey = generateUrlCacheKey('sample-code', {
|
|
11
|
+
framework,
|
|
12
|
+
beta,
|
|
13
|
+
searchQuery,
|
|
14
|
+
limit,
|
|
15
|
+
});
|
|
16
|
+
// Try to get from cache first
|
|
17
|
+
const cachedResult = sampleCodeCache.get(cacheKey);
|
|
18
|
+
if (cachedResult) {
|
|
19
|
+
return cachedResult;
|
|
20
|
+
}
|
|
21
|
+
// Fetch both JSON files
|
|
22
|
+
const [contentResponse, indexResponse] = await Promise.all([
|
|
23
|
+
httpClient.get(APPLE_URLS.SAMPLE_CODE_JSON),
|
|
24
|
+
httpClient.get(APPLE_URLS.SAMPLE_CODE_INDEX_JSON),
|
|
25
|
+
]);
|
|
26
|
+
if (!contentResponse.ok) {
|
|
27
|
+
throw new Error(`Failed to fetch sample code content: ${contentResponse.statusText}`);
|
|
28
|
+
}
|
|
29
|
+
if (!indexResponse.ok) {
|
|
30
|
+
throw new Error(`Failed to fetch sample code index: ${indexResponse.statusText}`);
|
|
31
|
+
}
|
|
32
|
+
const contentData = await contentResponse.json();
|
|
33
|
+
const indexData = await indexResponse.json();
|
|
34
|
+
// Parse the sample codes
|
|
35
|
+
const sampleCodes = parseSampleCodes(contentData, indexData);
|
|
36
|
+
// Apply filters
|
|
37
|
+
const filters = {
|
|
38
|
+
framework,
|
|
39
|
+
beta,
|
|
40
|
+
searchQuery,
|
|
41
|
+
};
|
|
42
|
+
const filteredSampleCodes = applySampleCodeFilters(sampleCodes, filters);
|
|
43
|
+
// Sort by relevance (featured first, then alphabetically)
|
|
44
|
+
const sortedSampleCodes = filteredSampleCodes.sort((a, b) => {
|
|
45
|
+
if (a.featured && !b.featured) {
|
|
46
|
+
return -1;
|
|
47
|
+
}
|
|
48
|
+
if (!a.featured && b.featured) {
|
|
49
|
+
return 1;
|
|
50
|
+
}
|
|
51
|
+
return a.title.localeCompare(b.title);
|
|
52
|
+
});
|
|
53
|
+
// Apply limit
|
|
54
|
+
const limitedSampleCodes = sortedSampleCodes.slice(0, limit);
|
|
55
|
+
// Format the result
|
|
56
|
+
const result = formatSampleCodeResult(limitedSampleCodes, {
|
|
57
|
+
framework,
|
|
58
|
+
beta,
|
|
59
|
+
searchQuery,
|
|
60
|
+
totalFound: filteredSampleCodes.length,
|
|
61
|
+
showing: limitedSampleCodes.length,
|
|
62
|
+
});
|
|
63
|
+
// Cache the result
|
|
64
|
+
sampleCodeCache.set(cacheKey, result);
|
|
65
|
+
return result;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Parses sample codes from the content and index data
|
|
69
|
+
*/
|
|
70
|
+
function parseSampleCodes(content, index) {
|
|
71
|
+
const sampleCodes = [];
|
|
72
|
+
const featuredIds = new Set();
|
|
73
|
+
// Extract featured sample codes from primary content sections
|
|
74
|
+
if (content.primaryContentSections) {
|
|
75
|
+
for (const section of content.primaryContentSections) {
|
|
76
|
+
if (section.kind === 'content' && section.content) {
|
|
77
|
+
for (const contentItem of section.content) {
|
|
78
|
+
if (contentItem.type === 'links' && contentItem.items) {
|
|
79
|
+
for (const item of contentItem.items) {
|
|
80
|
+
featuredIds.add(item);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// Extract framework mapping from topic sections
|
|
88
|
+
const frameworkMap = new Map();
|
|
89
|
+
if (content.topicSections) {
|
|
90
|
+
for (const section of content.topicSections) {
|
|
91
|
+
for (const identifier of section.identifiers) {
|
|
92
|
+
frameworkMap.set(identifier, section.title);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
// Process index data
|
|
97
|
+
for (const [, nodes] of Object.entries(index.interfaceLanguages)) {
|
|
98
|
+
processSampleCodeNodes(nodes, sampleCodes, frameworkMap, featuredIds, '', 0);
|
|
99
|
+
}
|
|
100
|
+
// Deduplicate sample codes based on path
|
|
101
|
+
return deduplicateSampleCodes(sampleCodes);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Deduplicates sample codes based on path
|
|
105
|
+
*/
|
|
106
|
+
function deduplicateSampleCodes(sampleCodes) {
|
|
107
|
+
const uniqueCodes = new Map();
|
|
108
|
+
for (const code of sampleCodes) {
|
|
109
|
+
const existing = uniqueCodes.get(code.path);
|
|
110
|
+
if (!existing) {
|
|
111
|
+
uniqueCodes.set(code.path, code);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
// Merge properties, preferring non-empty values
|
|
115
|
+
uniqueCodes.set(code.path, {
|
|
116
|
+
...existing,
|
|
117
|
+
framework: code.framework || existing.framework,
|
|
118
|
+
featured: code.featured || existing.featured,
|
|
119
|
+
beta: code.beta || existing.beta,
|
|
120
|
+
depth: Math.min(code.depth, existing.depth),
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return Array.from(uniqueCodes.values());
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Recursively processes sample code nodes
|
|
128
|
+
*/
|
|
129
|
+
function processSampleCodeNodes(nodes, sampleCodes, frameworkMap, featuredIds, currentFramework, depth) {
|
|
130
|
+
for (const node of nodes) {
|
|
131
|
+
if (node.type === 'groupMarker') {
|
|
132
|
+
// This is a framework/category marker
|
|
133
|
+
const framework = normalizeFrameworkName(node.title);
|
|
134
|
+
if (node.children) {
|
|
135
|
+
processSampleCodeNodes(node.children, sampleCodes, frameworkMap, featuredIds, framework, depth + 1);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
else if (node.type === 'sampleCode' && node.path) {
|
|
139
|
+
// Try to extract framework from path first
|
|
140
|
+
const frameworkFromPath = extractFrameworkFromPath(node.path);
|
|
141
|
+
// Convert path to doc URL format for matching with framework map
|
|
142
|
+
const docUrl = pathToDocUrl(node.path);
|
|
143
|
+
const frameworkFromMap = frameworkMap.get(docUrl);
|
|
144
|
+
// Priority: path > map > groupMarker
|
|
145
|
+
const framework = normalizeFrameworkName(frameworkFromPath || frameworkFromMap || currentFramework);
|
|
146
|
+
sampleCodes.push({
|
|
147
|
+
id: node.path,
|
|
148
|
+
title: node.title,
|
|
149
|
+
framework: framework || undefined,
|
|
150
|
+
description: undefined, // Could be extracted from the content if needed
|
|
151
|
+
beta: node.beta || false,
|
|
152
|
+
featured: featuredIds.has(docUrl),
|
|
153
|
+
url: `https://developer.apple.com${node.path}`,
|
|
154
|
+
path: node.path,
|
|
155
|
+
depth,
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
else if (node.children) {
|
|
159
|
+
// Process children with the same framework
|
|
160
|
+
processSampleCodeNodes(node.children, sampleCodes, frameworkMap, featuredIds, currentFramework, depth + 1);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Extract framework name from URL path
|
|
166
|
+
*/
|
|
167
|
+
function extractFrameworkFromPath(path) {
|
|
168
|
+
// Match pattern like /documentation/framework/...
|
|
169
|
+
const match = path.match(/^\/documentation\/([^\/]+)\//);
|
|
170
|
+
if (match) {
|
|
171
|
+
const framework = match[1];
|
|
172
|
+
// Don't return generic paths like 'samplecode'
|
|
173
|
+
if (framework === 'samplecode' || framework === 'documentation') {
|
|
174
|
+
return null;
|
|
175
|
+
}
|
|
176
|
+
return normalizeFrameworkName(framework);
|
|
177
|
+
}
|
|
178
|
+
return null;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Converts a path to doc URL format
|
|
182
|
+
*/
|
|
183
|
+
function pathToDocUrl(path) {
|
|
184
|
+
// Convert /documentation/framework/sample-name to doc://com.apple.documentation/documentation/framework/sample-name
|
|
185
|
+
return `doc://com.apple.documentation${path}`;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Applies filters to sample codes
|
|
189
|
+
*/
|
|
190
|
+
function applySampleCodeFilters(sampleCodes, filters) {
|
|
191
|
+
return sampleCodes.filter((code) => {
|
|
192
|
+
// Framework filter - normalize both for comparison
|
|
193
|
+
if (filters.framework) {
|
|
194
|
+
const normalizedFilterFramework = normalizeFrameworkName(filters.framework);
|
|
195
|
+
const normalizedCodeFramework = normalizeFrameworkName(code.framework || '');
|
|
196
|
+
// Check for exact match or inclusion
|
|
197
|
+
const frameworkLower = normalizedFilterFramework.toLowerCase();
|
|
198
|
+
const codeFrameworkLower = normalizedCodeFramework.toLowerCase();
|
|
199
|
+
// Also check if the filter term appears in the title or path
|
|
200
|
+
const titleLower = code.title.toLowerCase();
|
|
201
|
+
const pathLower = code.path.toLowerCase();
|
|
202
|
+
const frameworkMatch = frameworkLower === codeFrameworkLower ||
|
|
203
|
+
codeFrameworkLower.includes(frameworkLower) ||
|
|
204
|
+
titleLower.includes(frameworkLower) ||
|
|
205
|
+
pathLower.includes(frameworkLower);
|
|
206
|
+
if (!frameworkMatch) {
|
|
207
|
+
return false;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
// Beta filter
|
|
211
|
+
if (filters.beta === 'exclude' && code.beta) {
|
|
212
|
+
return false;
|
|
213
|
+
}
|
|
214
|
+
else if (filters.beta === 'only' && !code.beta) {
|
|
215
|
+
return false;
|
|
216
|
+
}
|
|
217
|
+
// Search query filter - enhanced matching
|
|
218
|
+
if (filters.searchQuery) {
|
|
219
|
+
const query = filters.searchQuery.toLowerCase();
|
|
220
|
+
// Score-based matching for better relevance
|
|
221
|
+
let matchScore = 0;
|
|
222
|
+
// Title match (highest weight)
|
|
223
|
+
const titleLower = code.title.toLowerCase();
|
|
224
|
+
if (titleLower === query) {
|
|
225
|
+
matchScore += 10; // Exact match
|
|
226
|
+
}
|
|
227
|
+
else if (titleLower.startsWith(query)) {
|
|
228
|
+
matchScore += 5; // Starts with query
|
|
229
|
+
}
|
|
230
|
+
else if (titleLower.includes(query)) {
|
|
231
|
+
matchScore += 3; // Contains query
|
|
232
|
+
}
|
|
233
|
+
// Framework match
|
|
234
|
+
const frameworkLower = (code.framework || '').toLowerCase();
|
|
235
|
+
if (frameworkLower.includes(query)) {
|
|
236
|
+
matchScore += 2;
|
|
237
|
+
}
|
|
238
|
+
// Path match (check if query is in the path)
|
|
239
|
+
const pathLower = code.path.toLowerCase();
|
|
240
|
+
if (pathLower.includes(query)) {
|
|
241
|
+
matchScore += 1;
|
|
242
|
+
}
|
|
243
|
+
// Description match (if available)
|
|
244
|
+
const descriptionLower = (code.description || '').toLowerCase();
|
|
245
|
+
if (descriptionLower.includes(query)) {
|
|
246
|
+
matchScore += 1;
|
|
247
|
+
}
|
|
248
|
+
// Only include if there's at least one match
|
|
249
|
+
if (matchScore === 0) {
|
|
250
|
+
return false;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
return true;
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Formats the sample code result
|
|
258
|
+
*/
|
|
259
|
+
function formatSampleCodeResult(sampleCodes, options) {
|
|
260
|
+
const lines = [];
|
|
261
|
+
// Header
|
|
262
|
+
lines.push('# Apple Sample Code Library');
|
|
263
|
+
lines.push('');
|
|
264
|
+
// Filter summary
|
|
265
|
+
const filterParts = [];
|
|
266
|
+
if (options.framework) {
|
|
267
|
+
filterParts.push(`Framework: ${normalizeFrameworkName(options.framework)}`);
|
|
268
|
+
}
|
|
269
|
+
if (options.beta && options.beta !== 'include') {
|
|
270
|
+
filterParts.push(`Beta: ${options.beta}`);
|
|
271
|
+
}
|
|
272
|
+
if (options.searchQuery) {
|
|
273
|
+
filterParts.push(`Search: "${options.searchQuery}"`);
|
|
274
|
+
}
|
|
275
|
+
if (filterParts.length > 0) {
|
|
276
|
+
lines.push('## Filters Applied');
|
|
277
|
+
lines.push(filterParts.join(', '));
|
|
278
|
+
lines.push('');
|
|
279
|
+
}
|
|
280
|
+
// Results summary
|
|
281
|
+
lines.push(`Found ${options.totalFound} sample code projects${options.showing < options.totalFound ? `, showing ${options.showing}` : ''}`);
|
|
282
|
+
lines.push('');
|
|
283
|
+
if (sampleCodes.length === 0) {
|
|
284
|
+
lines.push('No sample code projects found matching your criteria.');
|
|
285
|
+
return lines.join('\n');
|
|
286
|
+
}
|
|
287
|
+
// Group by framework/category with normalization
|
|
288
|
+
const byCategory = new Map();
|
|
289
|
+
const noCategory = [];
|
|
290
|
+
for (const code of sampleCodes) {
|
|
291
|
+
const category = code.framework || '';
|
|
292
|
+
if (category) {
|
|
293
|
+
// Group WWDC samples together
|
|
294
|
+
const normalizedCategory = category.match(/^WWDC\d+$/i) ? category.toUpperCase() : category;
|
|
295
|
+
if (!byCategory.has(normalizedCategory)) {
|
|
296
|
+
byCategory.set(normalizedCategory, []);
|
|
297
|
+
}
|
|
298
|
+
byCategory.get(normalizedCategory).push(code);
|
|
299
|
+
}
|
|
300
|
+
else {
|
|
301
|
+
noCategory.push(code);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
// Sort categories with WWDC years first (newest to oldest), then alphabetically
|
|
305
|
+
const sortedCategories = Array.from(byCategory.keys()).sort((a, b) => {
|
|
306
|
+
const aIsWWDC = a.match(/^WWDC(\d+)$/);
|
|
307
|
+
const bIsWWDC = b.match(/^WWDC(\d+)$/);
|
|
308
|
+
if (aIsWWDC && bIsWWDC) {
|
|
309
|
+
// Sort WWDC by year descending
|
|
310
|
+
return parseInt(bIsWWDC[1]) - parseInt(aIsWWDC[1]);
|
|
311
|
+
}
|
|
312
|
+
else if (aIsWWDC) {
|
|
313
|
+
return -1; // WWDC comes first
|
|
314
|
+
}
|
|
315
|
+
else if (bIsWWDC) {
|
|
316
|
+
return 1;
|
|
317
|
+
}
|
|
318
|
+
return a.localeCompare(b); // Alphabetical for non-WWDC
|
|
319
|
+
});
|
|
320
|
+
// Display featured samples first if any
|
|
321
|
+
const featuredSamples = sampleCodes.filter((c) => c.featured);
|
|
322
|
+
if (featuredSamples.length > 0) {
|
|
323
|
+
lines.push('## ⭐ Featured Samples');
|
|
324
|
+
lines.push('');
|
|
325
|
+
for (const code of featuredSamples) {
|
|
326
|
+
lines.push(formatSampleCodeItem(code, false)); // Don't show framework in featured section
|
|
327
|
+
}
|
|
328
|
+
lines.push('');
|
|
329
|
+
}
|
|
330
|
+
// Display by category
|
|
331
|
+
for (const category of sortedCategories) {
|
|
332
|
+
const codes = byCategory.get(category);
|
|
333
|
+
const nonFeaturedCodes = codes.filter(c => !c.featured);
|
|
334
|
+
if (nonFeaturedCodes.length > 0) {
|
|
335
|
+
lines.push(`## ${category}`);
|
|
336
|
+
lines.push('');
|
|
337
|
+
for (const code of nonFeaturedCodes) {
|
|
338
|
+
lines.push(formatSampleCodeItem(code, false)); // Framework already shown in section header
|
|
339
|
+
}
|
|
340
|
+
lines.push('');
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
// Display samples without category
|
|
344
|
+
if (noCategory.length > 0) {
|
|
345
|
+
const nonFeaturedOther = noCategory.filter(c => !c.featured);
|
|
346
|
+
if (nonFeaturedOther.length > 0) {
|
|
347
|
+
lines.push('## Other');
|
|
348
|
+
lines.push('');
|
|
349
|
+
for (const code of nonFeaturedOther) {
|
|
350
|
+
lines.push(formatSampleCodeItem(code, false));
|
|
351
|
+
}
|
|
352
|
+
lines.push('');
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
return lines.join('\n').trim();
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Formats a single sample code item
|
|
359
|
+
*/
|
|
360
|
+
function formatSampleCodeItem(code, showFramework = true) {
|
|
361
|
+
const badges = [];
|
|
362
|
+
if (code.beta) {
|
|
363
|
+
badges.push('🧪 Beta');
|
|
364
|
+
}
|
|
365
|
+
// Don't duplicate the featured badge as it's already in the section header
|
|
366
|
+
const badgeStr = badges.length > 0 ? ` ${badges.join(' ')}` : '';
|
|
367
|
+
// Framework info (only if requested and not in a framework-specific section)
|
|
368
|
+
const frameworkStr = showFramework && code.framework ? ` (${code.framework})` : '';
|
|
369
|
+
let line = `### [${code.title}](${code.url})${badgeStr}${frameworkStr}`;
|
|
370
|
+
if (code.description) {
|
|
371
|
+
line += `\n${code.description}`;
|
|
372
|
+
}
|
|
373
|
+
return line;
|
|
374
|
+
}
|
|
375
|
+
//# sourceMappingURL=get-sample-code.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-sample-code.js","sourceRoot":"","sources":["../../src/tools/get-sample-code.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handle get technology overviews
|
|
3
|
+
*/
|
|
4
|
+
export declare function handleGetTechnologyOverviews(category?: string, platform?: string, searchQuery?: string, includeSubcategories?: boolean, limit?: number): Promise<string>;
|
|
5
|
+
//# sourceMappingURL=get-technology-overviews.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-technology-overviews.d.ts","sourceRoot":"","sources":["../../src/tools/get-technology-overviews.ts"],"names":[],"mappings":"AAwCA;;GAEG;AACH,wBAAsB,4BAA4B,CAChD,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,GAAE,MAAc,EACxB,WAAW,CAAC,EAAE,MAAM,EACpB,oBAAoB,GAAE,OAAc,EACpC,KAAK,GAAE,MAAW,GACjB,OAAO,CAAC,MAAM,CAAC,CAiDjB"}
|