@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,266 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration constants for Apple Docs MCP
|
|
3
|
+
*/
|
|
4
|
+
// API Limits - Optimized for agent context windows
|
|
5
|
+
export const API_LIMITS = {
|
|
6
|
+
MAX_SEARCH_RESULTS: 15,
|
|
7
|
+
MAX_RELATED_APIS: 10,
|
|
8
|
+
MAX_REFERENCES: 50,
|
|
9
|
+
MAX_SIMILAR_APIS: 15,
|
|
10
|
+
MAX_FRAMEWORK_DEPTH: 10,
|
|
11
|
+
DEFAULT_FRAMEWORK_DEPTH: 3,
|
|
12
|
+
// Default values for various operations - reduced for agent optimization
|
|
13
|
+
DEFAULT_FRAMEWORK_SYMBOLS_LIMIT: 15,
|
|
14
|
+
DEFAULT_DOCUMENTATION_UPDATES_LIMIT: 15,
|
|
15
|
+
DEFAULT_TECHNOLOGY_OVERVIEWS_LIMIT: 15,
|
|
16
|
+
DEFAULT_SAMPLE_CODE_LIMIT: 15,
|
|
17
|
+
DEFAULT_TECHNOLOGIES_LIMIT: 25,
|
|
18
|
+
DEFAULT_REFERENCES_LIMIT: 10,
|
|
19
|
+
// Maximum values for schema validation - unchanged for power users
|
|
20
|
+
MAX_FRAMEWORK_SYMBOLS_LIMIT: 200,
|
|
21
|
+
MAX_DOCUMENTATION_UPDATES_LIMIT: 200,
|
|
22
|
+
MAX_TECHNOLOGY_OVERVIEWS_LIMIT: 200,
|
|
23
|
+
MAX_SAMPLE_CODE_LIMIT: 200,
|
|
24
|
+
MAX_TECHNOLOGIES_LIMIT: 500,
|
|
25
|
+
MAX_REFERENCES_LIMIT: 50,
|
|
26
|
+
};
|
|
27
|
+
// Search Depth Configuration
|
|
28
|
+
export const SEARCH_DEPTH_LIMITS = {
|
|
29
|
+
shallow: 5,
|
|
30
|
+
medium: 10,
|
|
31
|
+
deep: 15,
|
|
32
|
+
};
|
|
33
|
+
// Cache TTL Configuration (in milliseconds)
|
|
34
|
+
export const CACHE_TTL = {
|
|
35
|
+
API_DOCS: 30 * 60 * 1000, // 30 minutes
|
|
36
|
+
SEARCH_RESULTS: 10 * 60 * 1000, // 10 minutes
|
|
37
|
+
FRAMEWORK_INDEX: 60 * 60 * 1000, // 1 hour
|
|
38
|
+
TECHNOLOGIES: 2 * 60 * 60 * 1000, // 2 hours
|
|
39
|
+
UPDATES: 30 * 60 * 1000, // 30 minutes
|
|
40
|
+
SAMPLE_CODE: 2 * 60 * 60 * 1000, // 2 hours
|
|
41
|
+
TECHNOLOGY_OVERVIEWS: 2 * 60 * 60 * 1000, // 2 hours
|
|
42
|
+
};
|
|
43
|
+
// Cache Size Configuration
|
|
44
|
+
export const CACHE_SIZE = {
|
|
45
|
+
API_DOCS: 500,
|
|
46
|
+
SEARCH_RESULTS: 200,
|
|
47
|
+
FRAMEWORK_INDEX: 100,
|
|
48
|
+
TECHNOLOGIES: 50,
|
|
49
|
+
UPDATES: 100,
|
|
50
|
+
SAMPLE_CODE: 100,
|
|
51
|
+
TECHNOLOGY_OVERVIEWS: 100,
|
|
52
|
+
// Default cache configuration
|
|
53
|
+
DEFAULT_CACHE_SIZE: 1000,
|
|
54
|
+
DEFAULT_CACHE_TTL: 30 * 60 * 1000, // 30 minutes
|
|
55
|
+
};
|
|
56
|
+
// Safari User-Agent Constants
|
|
57
|
+
// Comprehensive collection of real Safari User-Agent strings covering different macOS versions and architectures
|
|
58
|
+
export const SAFARI_USER_AGENTS = [
|
|
59
|
+
// macOS Monterey (12.x) + Safari 15.x - 3 versions
|
|
60
|
+
'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_7_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15', // Intel Mac, macOS 12.7.6, Safari 15.6.1
|
|
61
|
+
'Mozilla/5.0 (Macintosh; arm64 Mac OS X 12_7_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15', // Apple Silicon Mac, macOS 12.7.5, Safari 15.6.1
|
|
62
|
+
'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_7_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15', // Intel Mac, macOS 12.7.4, Safari 15.6.1
|
|
63
|
+
// macOS Ventura (13.x) + Safari 16.x - 5 versions
|
|
64
|
+
'Mozilla/5.0 (Macintosh; Intel Mac OS X 13_7_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6.1 Safari/605.1.15', // Intel Mac, macOS 13.7.1, Safari 16.6.1
|
|
65
|
+
'Mozilla/5.0 (Macintosh; arm64 Mac OS X 13_7_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6.1 Safari/605.1.15', // Apple Silicon Mac, macOS 13.7.0, Safari 16.6.1
|
|
66
|
+
'Mozilla/5.0 (Macintosh; Intel Mac OS X 13_6_9) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6.1 Safari/605.1.15', // Intel Mac, macOS 13.6.9, Safari 16.6.1
|
|
67
|
+
'Mozilla/5.0 (Macintosh; arm64 Mac OS X 13_6_8) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6.1 Safari/605.1.15', // Apple Silicon Mac, macOS 13.6.8, Safari 16.6.1
|
|
68
|
+
'Mozilla/5.0 (Macintosh; Intel Mac OS X 13_6_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6.1 Safari/605.1.15', // Intel Mac, macOS 13.6.7, Safari 16.6.1
|
|
69
|
+
// macOS Sonoma (14.x) + Safari 17.x - 8 versions
|
|
70
|
+
'Mozilla/5.0 (Macintosh; Intel Mac OS X 14_7_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.6.1 Safari/605.1.15', // Intel Mac, macOS 14.7.1, Safari 17.6.1
|
|
71
|
+
'Mozilla/5.0 (Macintosh; arm64 Mac OS X 14_7_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.6.1 Safari/605.1.15', // Apple Silicon Mac, macOS 14.7.1, Safari 17.6.1
|
|
72
|
+
'Mozilla/5.0 (Macintosh; Intel Mac OS X 14_6_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.6.1 Safari/605.1.15', // Intel Mac, macOS 14.6.1, Safari 17.6.1
|
|
73
|
+
'Mozilla/5.0 (Macintosh; arm64 Mac OS X 14_6_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.6.1 Safari/605.1.15', // Apple Silicon Mac, macOS 14.6.1, Safari 17.6.1
|
|
74
|
+
'Mozilla/5.0 (Macintosh; Intel Mac OS X 14_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15', // Intel Mac, macOS 14.5, Safari 17.5
|
|
75
|
+
'Mozilla/5.0 (Macintosh; arm64 Mac OS X 14_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15', // Apple Silicon Mac, macOS 14.5, Safari 17.5
|
|
76
|
+
'Mozilla/5.0 (Macintosh; Intel Mac OS X 14_4_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4.1 Safari/605.1.15', // Intel Mac, macOS 14.4.1, Safari 17.4.1
|
|
77
|
+
'Mozilla/5.0 (Macintosh; arm64 Mac OS X 14_4_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4.1 Safari/605.1.15', // Apple Silicon Mac, macOS 14.4.1, Safari 17.4.1
|
|
78
|
+
// macOS Sequoia (15.x) + Safari 18.x - 6 versions
|
|
79
|
+
'Mozilla/5.0 (Macintosh; Intel Mac OS X 15_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Safari/605.1.15', // Intel Mac, macOS 15.1, Safari 18.1
|
|
80
|
+
'Mozilla/5.0 (Macintosh; arm64 Mac OS X 15_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Safari/605.1.15', // Apple Silicon Mac, macOS 15.1, Safari 18.1
|
|
81
|
+
'Mozilla/5.0 (Macintosh; Intel Mac OS X 15_0_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0.1 Safari/605.1.15', // Intel Mac, macOS 15.0.1, Safari 18.0.1
|
|
82
|
+
'Mozilla/5.0 (Macintosh; arm64 Mac OS X 15_0_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0.1 Safari/605.1.15', // Apple Silicon Mac, macOS 15.0.1, Safari 18.0.1
|
|
83
|
+
'Mozilla/5.0 (Macintosh; Intel Mac OS X 15_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Safari/605.1.15', // Intel Mac, macOS 15.0, Safari 18.0
|
|
84
|
+
'Mozilla/5.0 (Macintosh; arm64 Mac OS X 15_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Safari/605.1.15', // Apple Silicon Mac, macOS 15.0, Safari 18.0
|
|
85
|
+
// macOS 26 Beta + Safari 19.x Beta - 3 versions
|
|
86
|
+
'Mozilla/5.0 (Macintosh; arm64 Mac OS X 26_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/19.0 Safari/605.1.15', // Apple Silicon Mac, macOS 26.0 Beta, Safari 19.0 Beta
|
|
87
|
+
'Mozilla/5.0 (Macintosh; Intel Mac OS X 26_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/19.0 Safari/605.1.15', // Intel Mac, macOS 26.0 Beta, Safari 19.0 Beta
|
|
88
|
+
'Mozilla/5.0 (Macintosh; arm64 Mac OS X 26_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/19.1 Safari/605.1.15', // Apple Silicon Mac, macOS 26.1 Beta, Safari 19.1 Beta
|
|
89
|
+
];
|
|
90
|
+
// Categorized Safari User-Agent groups for easy selection
|
|
91
|
+
export const SAFARI_USER_AGENT_CATEGORIES = {
|
|
92
|
+
monterey: SAFARI_USER_AGENTS.slice(0, 3), // macOS 12.x + Safari 15.x
|
|
93
|
+
ventura: SAFARI_USER_AGENTS.slice(3, 8), // macOS 13.x + Safari 16.x
|
|
94
|
+
sonoma: SAFARI_USER_AGENTS.slice(8, 16), // macOS 14.x + Safari 17.x
|
|
95
|
+
sequoia: SAFARI_USER_AGENTS.slice(16, 22), // macOS 15.x + Safari 18.x
|
|
96
|
+
beta: SAFARI_USER_AGENTS.slice(22, 25), // macOS 26.x + Safari 19.x Beta
|
|
97
|
+
};
|
|
98
|
+
// User-Agent validation and utility functions
|
|
99
|
+
export const SAFARI_USER_AGENT_UTILS = {
|
|
100
|
+
// Regular expression to validate Safari User-Agent format
|
|
101
|
+
SAFARI_UA_REGEX: /^Mozilla\/5\.0 \(Macintosh; (Intel|arm64) Mac OS X (\d+)_(\d+)(?:_(\d+))?\) AppleWebKit\/([\d.]+) \(KHTML, like Gecko\) Version\/([\d.]+) Safari\/([\d.]+)$/,
|
|
102
|
+
/**
|
|
103
|
+
* Validates if a User-Agent string is a valid Safari format
|
|
104
|
+
* @param userAgent - The User-Agent string to validate
|
|
105
|
+
* @returns boolean indicating if the format is valid
|
|
106
|
+
*/
|
|
107
|
+
isValidSafariUserAgent: (userAgent) => {
|
|
108
|
+
return SAFARI_USER_AGENT_UTILS.SAFARI_UA_REGEX.test(userAgent);
|
|
109
|
+
},
|
|
110
|
+
/**
|
|
111
|
+
* Extracts architecture from User-Agent string
|
|
112
|
+
* @param userAgent - The User-Agent string
|
|
113
|
+
* @returns 'Intel' | 'Apple Silicon' | null
|
|
114
|
+
*/
|
|
115
|
+
getArchitecture: (userAgent) => {
|
|
116
|
+
const match = userAgent.match(SAFARI_USER_AGENT_UTILS.SAFARI_UA_REGEX);
|
|
117
|
+
if (!match) {
|
|
118
|
+
return null;
|
|
119
|
+
}
|
|
120
|
+
return match[1] === 'Intel' ? 'Intel' : 'Apple Silicon';
|
|
121
|
+
},
|
|
122
|
+
/**
|
|
123
|
+
* Extracts macOS version from User-Agent string
|
|
124
|
+
* @param userAgent - The User-Agent string
|
|
125
|
+
* @returns string representation of macOS version (e.g., "14.7.1")
|
|
126
|
+
*/
|
|
127
|
+
getMacOSVersion: (userAgent) => {
|
|
128
|
+
const match = userAgent.match(SAFARI_USER_AGENT_UTILS.SAFARI_UA_REGEX);
|
|
129
|
+
if (!match) {
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
const [, , major, minor, patch] = match;
|
|
133
|
+
return patch ? `${major}.${minor}.${patch}` : `${major}.${minor}`;
|
|
134
|
+
},
|
|
135
|
+
/**
|
|
136
|
+
* Extracts Safari version from User-Agent string
|
|
137
|
+
* @param userAgent - The User-Agent string
|
|
138
|
+
* @returns string representation of Safari version (e.g., "17.6.1")
|
|
139
|
+
*/
|
|
140
|
+
getSafariVersion: (userAgent) => {
|
|
141
|
+
const match = userAgent.match(SAFARI_USER_AGENT_UTILS.SAFARI_UA_REGEX);
|
|
142
|
+
if (!match) {
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
return match[6];
|
|
146
|
+
},
|
|
147
|
+
/**
|
|
148
|
+
* Gets a random Safari User-Agent from all available options
|
|
149
|
+
* @returns A random Safari User-Agent string
|
|
150
|
+
*/
|
|
151
|
+
getRandomUserAgent: () => {
|
|
152
|
+
const randomIndex = Math.floor(Math.random() * SAFARI_USER_AGENTS.length);
|
|
153
|
+
return SAFARI_USER_AGENTS[randomIndex];
|
|
154
|
+
},
|
|
155
|
+
/**
|
|
156
|
+
* Gets a random Safari User-Agent from a specific category
|
|
157
|
+
* @param category - The category to select from
|
|
158
|
+
* @returns A random Safari User-Agent string from the specified category
|
|
159
|
+
*/
|
|
160
|
+
getRandomUserAgentFromCategory: (category) => {
|
|
161
|
+
const userAgents = SAFARI_USER_AGENT_CATEGORIES[category];
|
|
162
|
+
const randomIndex = Math.floor(Math.random() * userAgents.length);
|
|
163
|
+
return userAgents[randomIndex];
|
|
164
|
+
},
|
|
165
|
+
};
|
|
166
|
+
// Request Configuration
|
|
167
|
+
export const REQUEST_CONFIG = {
|
|
168
|
+
TIMEOUT: 30000, // 30 seconds
|
|
169
|
+
MAX_RETRIES: 3,
|
|
170
|
+
RETRY_DELAY: 1000, // 1 second
|
|
171
|
+
MAX_CONCURRENT_REQUESTS: 5,
|
|
172
|
+
USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
|
|
173
|
+
// Default Safari User-Agent (latest stable)
|
|
174
|
+
DEFAULT_SAFARI_USER_AGENT: SAFARI_USER_AGENTS[19], // macOS 15.1, Safari 18.1, Apple Silicon
|
|
175
|
+
};
|
|
176
|
+
// Rate Limiting Configuration
|
|
177
|
+
export const RATE_LIMIT = {
|
|
178
|
+
MAX_REQUESTS_PER_MINUTE: 100,
|
|
179
|
+
WINDOW_MS: 60000, // 1 minute
|
|
180
|
+
};
|
|
181
|
+
// Processing Limits Configuration
|
|
182
|
+
export const PROCESSING_LIMITS = {
|
|
183
|
+
// Limits for slice operations in various tools
|
|
184
|
+
MAX_COLLECTIONS_TO_SHOW: 5,
|
|
185
|
+
MAX_RELATED_APIS_PER_SECTION: 3,
|
|
186
|
+
MAX_PLATFORM_COMPATIBILITY_ITEMS: 2,
|
|
187
|
+
MAX_SIMILAR_APIS_FOR_DEEP_SEARCH: 3,
|
|
188
|
+
MAX_TOPIC_IDENTIFIERS: 4,
|
|
189
|
+
MAX_DOC_FETCHER_RELATED_APIS: 10,
|
|
190
|
+
MAX_DOC_FETCHER_REFERENCES: 15,
|
|
191
|
+
MAX_DOC_FETCHER_SIMILAR_APIS: 8,
|
|
192
|
+
MAX_DOC_FETCHER_REFS_PER_TYPE: 5,
|
|
193
|
+
// Response time thresholds (milliseconds)
|
|
194
|
+
RESPONSE_TIME_GOOD_THRESHOLD: 1000,
|
|
195
|
+
RESPONSE_TIME_MODERATE_THRESHOLD: 3000,
|
|
196
|
+
};
|
|
197
|
+
// Apple Developer URLs
|
|
198
|
+
export const APPLE_URLS = {
|
|
199
|
+
BASE: 'https://developer.apple.com',
|
|
200
|
+
SEARCH: 'https://developer.apple.com/search/',
|
|
201
|
+
DOCUMENTATION: 'https://developer.apple.com/documentation/',
|
|
202
|
+
TUTORIALS_DATA: 'https://developer.apple.com/tutorials/data/',
|
|
203
|
+
TECHNOLOGIES_JSON: 'https://developer.apple.com/tutorials/data/documentation/technologies.json',
|
|
204
|
+
UPDATES_JSON: 'https://developer.apple.com/tutorials/data/documentation/Updates.json',
|
|
205
|
+
UPDATES_INDEX_JSON: 'https://developer.apple.com/tutorials/data/index/updates',
|
|
206
|
+
TECHNOLOGY_OVERVIEWS_JSON: 'https://developer.apple.com/tutorials/data/documentation/TechnologyOverviews.json',
|
|
207
|
+
TECHNOLOGY_OVERVIEWS_INDEX_JSON: 'https://developer.apple.com/tutorials/data/index/technologyoverviews',
|
|
208
|
+
SAMPLE_CODE_JSON: 'https://developer.apple.com/tutorials/data/documentation/SampleCode.json',
|
|
209
|
+
SAMPLE_CODE_INDEX_JSON: 'https://developer.apple.com/tutorials/data/index/samplecode',
|
|
210
|
+
};
|
|
211
|
+
// WWDC URLs
|
|
212
|
+
export const WWDC_URLS = {
|
|
213
|
+
BASE: 'https://developer.apple.com/videos',
|
|
214
|
+
TOPICS: 'https://developer.apple.com/videos/topics/',
|
|
215
|
+
YEAR_BASE: 'https://developer.apple.com/videos/wwdc',
|
|
216
|
+
PLAY_BASE: 'https://developer.apple.com/videos/play/wwdc',
|
|
217
|
+
// URL builders
|
|
218
|
+
getYearUrl: (year) => `https://developer.apple.com/videos/wwdc${year}/`,
|
|
219
|
+
getVideoUrl: (year, videoId) => `https://developer.apple.com/videos/play/wwdc${year}/${videoId}/`,
|
|
220
|
+
getCodeUrl: (year, videoId) => `https://developer.apple.com/videos/play/wwdc${year}/${videoId}/code`,
|
|
221
|
+
getTranscriptUrl: (year, videoId) => `https://developer.apple.com/videos/play/wwdc${year}/${videoId}/transcript`,
|
|
222
|
+
getResourcesUrl: (year, videoId) => `https://developer.apple.com/videos/play/wwdc${year}/${videoId}/resources`,
|
|
223
|
+
getTopicUrl: (topicId) => `https://developer.apple.com/videos/${topicId}/`,
|
|
224
|
+
};
|
|
225
|
+
// WWDC Configuration
|
|
226
|
+
export const WWDC_CONFIG = {
|
|
227
|
+
// Year ranges
|
|
228
|
+
EARLIEST_YEAR: 2014,
|
|
229
|
+
LATEST_YEAR: 2025,
|
|
230
|
+
CODE_TAB_INTRODUCED_YEAR: 2022, // WWDC22 introduced separate code tabs
|
|
231
|
+
// Available years array
|
|
232
|
+
AVAILABLE_YEARS: ['2014', '2015', '2016', '2017', '2018', '2019', '2020', '2021', '2022', '2023', '2024', '2025'],
|
|
233
|
+
// Default limits - reduced for agent optimization
|
|
234
|
+
DEFAULT_VIDEO_LIMIT: 15,
|
|
235
|
+
DEFAULT_CODE_EXAMPLES_LIMIT: 10,
|
|
236
|
+
DEFAULT_SEARCH_LIMIT: 10,
|
|
237
|
+
DEFAULT_RELATED_VIDEOS_LIMIT: 10,
|
|
238
|
+
DEFAULT_TOPIC_VIDEOS_LIMIT: 10,
|
|
239
|
+
// Maximum limits - unchanged for power users
|
|
240
|
+
MAX_VIDEO_LIMIT: 200,
|
|
241
|
+
MAX_CODE_EXAMPLES_LIMIT: 100,
|
|
242
|
+
MAX_SEARCH_LIMIT: 100,
|
|
243
|
+
MAX_RELATED_VIDEOS_LIMIT: 50,
|
|
244
|
+
MAX_TOPIC_VIDEOS_LIMIT: 100,
|
|
245
|
+
// Processing limits
|
|
246
|
+
MIN_CODE_LENGTH: 10, // Minimum code length to consider valid
|
|
247
|
+
MAX_CONTEXT_MATCHES: 3, // Maximum matches per video in search results
|
|
248
|
+
MAX_TOPIC_VIDEOS_FOR_SCORING: 10, // Maximum videos to load for similarity scoring
|
|
249
|
+
// Cache TTL for WWDC data (in milliseconds)
|
|
250
|
+
CACHE_TTL: 60 * 60 * 1000, // 1 hour - increased since data is now bundled
|
|
251
|
+
};
|
|
252
|
+
// Error Messages
|
|
253
|
+
export const ERROR_MESSAGES = {
|
|
254
|
+
INVALID_URL: 'URL must be from developer.apple.com',
|
|
255
|
+
FETCH_FAILED: 'Failed to fetch data from Apple Developer Documentation',
|
|
256
|
+
PARSE_FAILED: 'Failed to parse response data',
|
|
257
|
+
NOT_FOUND: 'Documentation not found (404). This URL may have been moved or removed.',
|
|
258
|
+
TIMEOUT: 'Request timed out. Please try again later.',
|
|
259
|
+
NETWORK_ERROR: 'Network error occurred. Please check your connection.',
|
|
260
|
+
RATE_LIMITED: 'Request rate limit exceeded. Please wait before trying again.',
|
|
261
|
+
API_ERROR: 'API error occurred while processing the request.',
|
|
262
|
+
CACHE_ERROR: 'Cache operation failed, but the request will continue.',
|
|
263
|
+
VALIDATION_ERROR: 'Input validation failed. Please check your parameters.',
|
|
264
|
+
SERVICE_UNAVAILABLE: 'Apple Developer Documentation service is temporarily unavailable.',
|
|
265
|
+
};
|
|
266
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified error handling utilities
|
|
3
|
+
*/
|
|
4
|
+
import type { AppError, ErrorResponse } from '../types/error.js';
|
|
5
|
+
import { ErrorType } from '../types/error.js';
|
|
6
|
+
export type { AppError };
|
|
7
|
+
export { ErrorType };
|
|
8
|
+
/**
|
|
9
|
+
* Create a standardized error response
|
|
10
|
+
*/
|
|
11
|
+
export declare function createErrorResponse(error: AppError): ErrorResponse;
|
|
12
|
+
/**
|
|
13
|
+
* Handle fetch errors with specific error types
|
|
14
|
+
*/
|
|
15
|
+
export declare function handleFetchError(error: unknown, url: string): AppError;
|
|
16
|
+
/**
|
|
17
|
+
* Handle JSON parsing errors
|
|
18
|
+
*/
|
|
19
|
+
export declare function handleParseError(error: unknown): AppError;
|
|
20
|
+
/**
|
|
21
|
+
* Validate input parameters
|
|
22
|
+
*/
|
|
23
|
+
export declare function validateInput(value: string, fieldName: string, minLength?: number): AppError | null;
|
|
24
|
+
/**
|
|
25
|
+
* Log error for debugging (only in development)
|
|
26
|
+
*/
|
|
27
|
+
export declare function logError(error: AppError, context?: string): void;
|
|
28
|
+
/**
|
|
29
|
+
* Handle generic errors and convert them to AppError
|
|
30
|
+
*/
|
|
31
|
+
export declare function handleGenericError(error: unknown, context: string, fallbackMessage?: string): AppError;
|
|
32
|
+
/**
|
|
33
|
+
* Create a standardized error response with consistent formatting
|
|
34
|
+
*/
|
|
35
|
+
export declare function createStandardErrorResponse(error: unknown, operation: string): ErrorResponse;
|
|
36
|
+
/**
|
|
37
|
+
* Wrap async functions with error handling
|
|
38
|
+
*/
|
|
39
|
+
export declare function withErrorHandling<T>(operation: () => Promise<T>, context: string, fallbackMessage?: string): Promise<T>;
|
|
40
|
+
/**
|
|
41
|
+
* Validate multiple input parameters
|
|
42
|
+
*/
|
|
43
|
+
export declare function validateInputs(validations: Array<{
|
|
44
|
+
value: string;
|
|
45
|
+
fieldName: string;
|
|
46
|
+
minLength?: number;
|
|
47
|
+
}>): AppError | null;
|
|
48
|
+
/**
|
|
49
|
+
* Handle cache-related errors
|
|
50
|
+
*/
|
|
51
|
+
export declare function handleCacheError(error: unknown, operation: string): AppError;
|
|
52
|
+
/**
|
|
53
|
+
* Recovery action for error responses
|
|
54
|
+
*/
|
|
55
|
+
export interface RecoveryAction {
|
|
56
|
+
tool: string;
|
|
57
|
+
args: Record<string, unknown>;
|
|
58
|
+
reason: string;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Tool-specific recovery actions - ready-to-use tool calls for error recovery
|
|
62
|
+
*/
|
|
63
|
+
export declare const TOOL_RECOVERY_ACTIONS: Record<string, Record<string, RecoveryAction>>;
|
|
64
|
+
/**
|
|
65
|
+
* Tool-specific error suggestions
|
|
66
|
+
*/
|
|
67
|
+
export declare const TOOL_ERROR_SUGGESTIONS: Record<string, Record<string, string[]>>;
|
|
68
|
+
/**
|
|
69
|
+
* Get tool-specific error suggestions
|
|
70
|
+
*/
|
|
71
|
+
export declare function getToolErrorSuggestions(toolName: string, errorType: ErrorType): string[];
|
|
72
|
+
/**
|
|
73
|
+
* Get recovery action for a tool error
|
|
74
|
+
*/
|
|
75
|
+
export declare function getRecoveryAction(toolName: string, errorType: ErrorType): RecoveryAction | null;
|
|
76
|
+
/**
|
|
77
|
+
* Create error response with tool-specific suggestions and recovery actions
|
|
78
|
+
*/
|
|
79
|
+
export declare function createToolErrorResponse(error: AppError, toolName: string): ErrorResponse;
|
|
80
|
+
//# sourceMappingURL=error-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/utils/error-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAI9C,YAAY,EAAE,QAAQ,EAAE,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,CAAC;AAErB;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,GAAG,aAAa,CAgBlE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,CAmDtE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAWzD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAE,MAAU,GAAG,QAAQ,GAAG,IAAI,CAYtG;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAIhE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,QAAQ,CAoEtG;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,CAG5F;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EACvC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,CAAC,CAAC,CAQZ;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC3E,QAAQ,GAAG,IAAI,CAQjB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,QAAQ,CAU5E;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CA4DhF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CA+E3E,CAAC;AAEF;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM,EAAE,CA6BxF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,cAAc,GAAG,IAAI,CAE/F;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,MAAM,GACf,aAAa,CA+Bf"}
|