@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,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple in-memory cache with TTL (Time To Live) support
|
|
3
|
+
*/
|
|
4
|
+
export declare class MemoryCache {
|
|
5
|
+
private cache;
|
|
6
|
+
private maxSize;
|
|
7
|
+
private defaultTTL;
|
|
8
|
+
private hits;
|
|
9
|
+
private misses;
|
|
10
|
+
constructor(maxSize?: number, defaultTTL?: number);
|
|
11
|
+
/**
|
|
12
|
+
* Get the current size of the cache
|
|
13
|
+
*/
|
|
14
|
+
size(): number;
|
|
15
|
+
/**
|
|
16
|
+
* Get all entries as array of [key, value] pairs
|
|
17
|
+
*/
|
|
18
|
+
entries(): [string, unknown][];
|
|
19
|
+
/**
|
|
20
|
+
* Get value from cache
|
|
21
|
+
*/
|
|
22
|
+
get<T>(key: string): T | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* Set value in cache
|
|
25
|
+
*/
|
|
26
|
+
set<T>(key: string, value: T, ttl?: number): void;
|
|
27
|
+
/**
|
|
28
|
+
* Check if key exists and is not expired
|
|
29
|
+
*/
|
|
30
|
+
has(key: string): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Delete entry from cache
|
|
33
|
+
*/
|
|
34
|
+
delete(key: string): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Clear all cache entries
|
|
37
|
+
*/
|
|
38
|
+
clear(): void;
|
|
39
|
+
/**
|
|
40
|
+
* Clean up expired entries
|
|
41
|
+
*/
|
|
42
|
+
private cleanup;
|
|
43
|
+
/**
|
|
44
|
+
* Get cache statistics
|
|
45
|
+
*/
|
|
46
|
+
getStats(): {
|
|
47
|
+
size: number;
|
|
48
|
+
maxSize: number;
|
|
49
|
+
hitRate: string;
|
|
50
|
+
hits: number;
|
|
51
|
+
misses: number;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Get or set with async function
|
|
55
|
+
*/
|
|
56
|
+
getOrSet<T>(key: string, fetchFn: () => Promise<T>, ttl?: number): Promise<T>;
|
|
57
|
+
}
|
|
58
|
+
export declare const apiCache: MemoryCache;
|
|
59
|
+
export declare const searchCache: MemoryCache;
|
|
60
|
+
export declare const indexCache: MemoryCache;
|
|
61
|
+
export declare const technologiesCache: MemoryCache;
|
|
62
|
+
export declare const updatesCache: MemoryCache;
|
|
63
|
+
export declare const sampleCodeCache: MemoryCache;
|
|
64
|
+
export declare const technologyOverviewsCache: MemoryCache;
|
|
65
|
+
export declare const wwdcDataCache: MemoryCache;
|
|
66
|
+
/**
|
|
67
|
+
* Generate cache key for URL-based requests
|
|
68
|
+
*/
|
|
69
|
+
export declare function generateUrlCacheKey(url: string, params?: Record<string, unknown>): string;
|
|
70
|
+
/**
|
|
71
|
+
* Generate cache key for enhanced analysis
|
|
72
|
+
*/
|
|
73
|
+
export declare function generateEnhancedCacheKey(url: string, options: {
|
|
74
|
+
includeRelatedApis?: boolean;
|
|
75
|
+
includeReferences?: boolean;
|
|
76
|
+
includeSimilarApis?: boolean;
|
|
77
|
+
includePlatformAnalysis?: boolean;
|
|
78
|
+
}): string;
|
|
79
|
+
/**
|
|
80
|
+
* Cache decorator for async functions
|
|
81
|
+
*/
|
|
82
|
+
export declare function cached<T>(cache: MemoryCache, keyGenerator: (...args: unknown[]) => string, ttl?: number): (_target: unknown, _propertyName: string, descriptor: PropertyDescriptor) => void;
|
|
83
|
+
/**
|
|
84
|
+
* Cache decorator (alias for compatibility)
|
|
85
|
+
*/
|
|
86
|
+
export declare function withCache<T = any>(cache: MemoryCache, keyGenerator?: (...args: any[]) => string, ttl?: number): (_target: any, _propertyName: string, descriptor?: PropertyDescriptor) => PropertyDescriptor;
|
|
87
|
+
export declare function getCacheInstance(name: string, maxSize?: number, defaultTTL?: number): MemoryCache;
|
|
88
|
+
/**
|
|
89
|
+
* Cache info for response metadata
|
|
90
|
+
*/
|
|
91
|
+
export interface CacheInfo {
|
|
92
|
+
cached: boolean;
|
|
93
|
+
cachedAt?: string;
|
|
94
|
+
expiresIn?: string;
|
|
95
|
+
source: 'api' | 'search' | 'index' | 'technologies' | 'updates' | 'samples' | 'overviews' | 'wwdc';
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Get cache info for a key
|
|
99
|
+
*/
|
|
100
|
+
export declare function getCacheInfo(cache: MemoryCache, key: string): CacheInfo | null;
|
|
101
|
+
/**
|
|
102
|
+
* Format response with cache hints
|
|
103
|
+
*/
|
|
104
|
+
export declare function formatWithCacheHint(content: string, cacheInfo: CacheInfo | null): string;
|
|
105
|
+
/**
|
|
106
|
+
* Get all cache statistics for performance reporting
|
|
107
|
+
*/
|
|
108
|
+
export declare function getAllCacheStats(): Record<string, ReturnType<MemoryCache['getStats']>>;
|
|
109
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple in-memory cache with TTL (Time To Live) support
|
|
3
|
+
*/
|
|
4
|
+
export class MemoryCache {
|
|
5
|
+
cache = new Map();
|
|
6
|
+
maxSize;
|
|
7
|
+
defaultTTL;
|
|
8
|
+
hits = 0;
|
|
9
|
+
misses = 0;
|
|
10
|
+
constructor(maxSize = 1000, defaultTTL = 30 * 60 * 1000) {
|
|
11
|
+
this.maxSize = maxSize;
|
|
12
|
+
this.defaultTTL = defaultTTL;
|
|
13
|
+
// Clean up expired entries every 5 minutes
|
|
14
|
+
setInterval(() => this.cleanup(), 5 * 60 * 1000);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Get the current size of the cache
|
|
18
|
+
*/
|
|
19
|
+
size() {
|
|
20
|
+
return this.cache.size;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Get all entries as array of [key, value] pairs
|
|
24
|
+
*/
|
|
25
|
+
entries() {
|
|
26
|
+
const result = [];
|
|
27
|
+
const now = Date.now();
|
|
28
|
+
for (const [key, entry] of this.cache.entries()) {
|
|
29
|
+
if (now - entry.timestamp <= entry.ttl) {
|
|
30
|
+
result.push([key, entry.data]);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Get value from cache
|
|
37
|
+
*/
|
|
38
|
+
get(key) {
|
|
39
|
+
const entry = this.cache.get(key);
|
|
40
|
+
if (!entry) {
|
|
41
|
+
this.misses++;
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
// Check if expired
|
|
45
|
+
if (Date.now() - entry.timestamp > entry.ttl) {
|
|
46
|
+
this.cache.delete(key);
|
|
47
|
+
this.misses++;
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
this.hits++;
|
|
51
|
+
return entry.data;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Set value in cache
|
|
55
|
+
*/
|
|
56
|
+
set(key, value, ttl) {
|
|
57
|
+
// If cache is full, remove oldest entry
|
|
58
|
+
if (this.cache.size >= this.maxSize) {
|
|
59
|
+
const firstKey = this.cache.keys().next().value;
|
|
60
|
+
if (firstKey) {
|
|
61
|
+
this.cache.delete(firstKey);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
this.cache.set(key, {
|
|
65
|
+
data: value,
|
|
66
|
+
timestamp: Date.now(),
|
|
67
|
+
ttl: ttl ?? this.defaultTTL,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Check if key exists and is not expired
|
|
72
|
+
*/
|
|
73
|
+
has(key) {
|
|
74
|
+
return this.get(key) !== undefined;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Delete entry from cache
|
|
78
|
+
*/
|
|
79
|
+
delete(key) {
|
|
80
|
+
return this.cache.delete(key);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Clear all cache entries
|
|
84
|
+
*/
|
|
85
|
+
clear() {
|
|
86
|
+
this.cache.clear();
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Clean up expired entries
|
|
90
|
+
*/
|
|
91
|
+
cleanup() {
|
|
92
|
+
const now = Date.now();
|
|
93
|
+
for (const [key, entry] of this.cache.entries()) {
|
|
94
|
+
if (now - entry.timestamp > entry.ttl) {
|
|
95
|
+
this.cache.delete(key);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Get cache statistics
|
|
101
|
+
*/
|
|
102
|
+
getStats() {
|
|
103
|
+
const total = this.hits + this.misses;
|
|
104
|
+
const hitRate = total > 0 ? (this.hits / total * 100).toFixed(2) + '%' : '0.00%';
|
|
105
|
+
return {
|
|
106
|
+
size: this.cache.size,
|
|
107
|
+
maxSize: this.maxSize,
|
|
108
|
+
hitRate,
|
|
109
|
+
hits: this.hits,
|
|
110
|
+
misses: this.misses,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Get or set with async function
|
|
115
|
+
*/
|
|
116
|
+
async getOrSet(key, fetchFn, ttl) {
|
|
117
|
+
// Try to get from cache first
|
|
118
|
+
const cached = this.get(key);
|
|
119
|
+
if (cached !== undefined) {
|
|
120
|
+
return cached;
|
|
121
|
+
}
|
|
122
|
+
// Fetch new data
|
|
123
|
+
const data = await fetchFn();
|
|
124
|
+
// Store in cache
|
|
125
|
+
this.set(key, data, ttl);
|
|
126
|
+
return data;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
import { CACHE_SIZE, CACHE_TTL } from './constants.js';
|
|
130
|
+
// Create different cache instances for different types of data
|
|
131
|
+
export const apiCache = new MemoryCache(CACHE_SIZE.API_DOCS, CACHE_TTL.API_DOCS);
|
|
132
|
+
export const searchCache = new MemoryCache(CACHE_SIZE.SEARCH_RESULTS, CACHE_TTL.SEARCH_RESULTS);
|
|
133
|
+
export const indexCache = new MemoryCache(CACHE_SIZE.FRAMEWORK_INDEX, CACHE_TTL.FRAMEWORK_INDEX);
|
|
134
|
+
export const technologiesCache = new MemoryCache(CACHE_SIZE.TECHNOLOGIES, CACHE_TTL.TECHNOLOGIES);
|
|
135
|
+
export const updatesCache = new MemoryCache(CACHE_SIZE.UPDATES, CACHE_TTL.UPDATES);
|
|
136
|
+
export const sampleCodeCache = new MemoryCache(CACHE_SIZE.SAMPLE_CODE, CACHE_TTL.SAMPLE_CODE);
|
|
137
|
+
export const technologyOverviewsCache = new MemoryCache(CACHE_SIZE.TECHNOLOGY_OVERVIEWS, CACHE_TTL.TECHNOLOGY_OVERVIEWS);
|
|
138
|
+
export const wwdcDataCache = new MemoryCache(100, 30 * 60 * 1000); // 30 minutes TTL
|
|
139
|
+
/**
|
|
140
|
+
* Generate cache key for URL-based requests
|
|
141
|
+
*/
|
|
142
|
+
export function generateUrlCacheKey(url, params) {
|
|
143
|
+
let key = url;
|
|
144
|
+
if (params) {
|
|
145
|
+
const sortedParams = Object.keys(params)
|
|
146
|
+
.sort()
|
|
147
|
+
.map(k => `${k}=${JSON.stringify(params[k])}`)
|
|
148
|
+
.join('&');
|
|
149
|
+
key += `?${sortedParams}`;
|
|
150
|
+
}
|
|
151
|
+
return key;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Generate cache key for enhanced analysis
|
|
155
|
+
*/
|
|
156
|
+
export function generateEnhancedCacheKey(url, options) {
|
|
157
|
+
return generateUrlCacheKey(url, options);
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Cache decorator for async functions
|
|
161
|
+
*/
|
|
162
|
+
export function cached(cache, keyGenerator, ttl) {
|
|
163
|
+
return function (_target, _propertyName, descriptor) {
|
|
164
|
+
const method = descriptor.value;
|
|
165
|
+
descriptor.value = async function (...args) {
|
|
166
|
+
const key = keyGenerator(...args);
|
|
167
|
+
return cache.getOrSet(key, () => method.apply(this, args), ttl);
|
|
168
|
+
};
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Cache decorator (alias for compatibility)
|
|
173
|
+
*/
|
|
174
|
+
export function withCache(cache, keyGenerator, ttl) {
|
|
175
|
+
return function (_target, _propertyName, descriptor) {
|
|
176
|
+
// Handle the case where descriptor might be undefined (TypeScript decorators)
|
|
177
|
+
if (!descriptor) {
|
|
178
|
+
throw new Error('withCache decorator requires a method descriptor');
|
|
179
|
+
}
|
|
180
|
+
const method = descriptor.value;
|
|
181
|
+
if (!method) {
|
|
182
|
+
throw new Error('withCache decorator can only be applied to methods');
|
|
183
|
+
}
|
|
184
|
+
const isAsync = method.constructor.name === 'AsyncFunction';
|
|
185
|
+
descriptor.value = function (...args) {
|
|
186
|
+
const key = keyGenerator ? keyGenerator(...args) : JSON.stringify(args);
|
|
187
|
+
// Try to get from cache first
|
|
188
|
+
const cached = cache.get(key);
|
|
189
|
+
if (cached !== undefined) {
|
|
190
|
+
return cached;
|
|
191
|
+
}
|
|
192
|
+
// Execute the method
|
|
193
|
+
const result = method.apply(this, args);
|
|
194
|
+
// Handle both sync and async methods
|
|
195
|
+
if (isAsync || result instanceof Promise) {
|
|
196
|
+
return Promise.resolve(result).then((data) => {
|
|
197
|
+
cache.set(key, data, ttl);
|
|
198
|
+
return data;
|
|
199
|
+
}).catch((error) => {
|
|
200
|
+
// Don't cache errors
|
|
201
|
+
throw error;
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
// Sync method
|
|
206
|
+
cache.set(key, result, ttl);
|
|
207
|
+
return result;
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
return descriptor;
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Get cache instance by name (singleton pattern)
|
|
215
|
+
*/
|
|
216
|
+
const cacheInstances = new Map();
|
|
217
|
+
export function getCacheInstance(name, maxSize, defaultTTL) {
|
|
218
|
+
if (!cacheInstances.has(name)) {
|
|
219
|
+
cacheInstances.set(name, new MemoryCache(maxSize, defaultTTL));
|
|
220
|
+
}
|
|
221
|
+
return cacheInstances.get(name);
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Get cache info for a key
|
|
225
|
+
*/
|
|
226
|
+
export function getCacheInfo(cache, key) {
|
|
227
|
+
const entry = cache.cache?.get(key);
|
|
228
|
+
if (!entry) {
|
|
229
|
+
return null;
|
|
230
|
+
}
|
|
231
|
+
const now = Date.now();
|
|
232
|
+
const age = now - entry.timestamp;
|
|
233
|
+
const remaining = entry.ttl - age;
|
|
234
|
+
if (remaining <= 0) {
|
|
235
|
+
return null; // Expired
|
|
236
|
+
}
|
|
237
|
+
return {
|
|
238
|
+
cached: true,
|
|
239
|
+
cachedAt: new Date(entry.timestamp).toISOString(),
|
|
240
|
+
expiresIn: formatDuration(remaining),
|
|
241
|
+
source: getCacheSource(cache),
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Get cache source name
|
|
246
|
+
*/
|
|
247
|
+
function getCacheSource(cache) {
|
|
248
|
+
if (cache === apiCache)
|
|
249
|
+
return 'api';
|
|
250
|
+
if (cache === searchCache)
|
|
251
|
+
return 'search';
|
|
252
|
+
if (cache === indexCache)
|
|
253
|
+
return 'index';
|
|
254
|
+
if (cache === technologiesCache)
|
|
255
|
+
return 'technologies';
|
|
256
|
+
if (cache === updatesCache)
|
|
257
|
+
return 'updates';
|
|
258
|
+
if (cache === sampleCodeCache)
|
|
259
|
+
return 'samples';
|
|
260
|
+
if (cache === technologyOverviewsCache)
|
|
261
|
+
return 'overviews';
|
|
262
|
+
if (cache === wwdcDataCache)
|
|
263
|
+
return 'wwdc';
|
|
264
|
+
return 'api';
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Format duration in human-readable format
|
|
268
|
+
*/
|
|
269
|
+
function formatDuration(ms) {
|
|
270
|
+
if (ms < 60000) {
|
|
271
|
+
return `${Math.floor(ms / 1000)}s`;
|
|
272
|
+
}
|
|
273
|
+
if (ms < 3600000) {
|
|
274
|
+
return `${Math.floor(ms / 60000)}m`;
|
|
275
|
+
}
|
|
276
|
+
return `${Math.floor(ms / 3600000)}h ${Math.floor((ms % 3600000) / 60000)}m`;
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Format response with cache hints
|
|
280
|
+
*/
|
|
281
|
+
export function formatWithCacheHint(content, cacheInfo) {
|
|
282
|
+
if (!cacheInfo || !cacheInfo.cached) {
|
|
283
|
+
return content + '\n\n---\n*Data: Fresh from Apple Developer Documentation*';
|
|
284
|
+
}
|
|
285
|
+
return content + `\n\n---\n*Data: Cached (${cacheInfo.expiresIn} until refresh)*`;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Get all cache statistics for performance reporting
|
|
289
|
+
*/
|
|
290
|
+
export function getAllCacheStats() {
|
|
291
|
+
return {
|
|
292
|
+
apiCache: apiCache.getStats(),
|
|
293
|
+
searchCache: searchCache.getStats(),
|
|
294
|
+
indexCache: indexCache.getStats(),
|
|
295
|
+
technologiesCache: technologiesCache.getStats(),
|
|
296
|
+
updatesCache: updatesCache.getStats(),
|
|
297
|
+
sampleCodeCache: sampleCodeCache.getStats(),
|
|
298
|
+
technologyOverviewsCache: technologyOverviewsCache.getStats(),
|
|
299
|
+
wwdcDataCache: wwdcDataCache.getStats(),
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration constants for Apple Docs MCP
|
|
3
|
+
*/
|
|
4
|
+
export declare const API_LIMITS: {
|
|
5
|
+
readonly MAX_SEARCH_RESULTS: 15;
|
|
6
|
+
readonly MAX_RELATED_APIS: 10;
|
|
7
|
+
readonly MAX_REFERENCES: 50;
|
|
8
|
+
readonly MAX_SIMILAR_APIS: 15;
|
|
9
|
+
readonly MAX_FRAMEWORK_DEPTH: 10;
|
|
10
|
+
readonly DEFAULT_FRAMEWORK_DEPTH: 3;
|
|
11
|
+
readonly DEFAULT_FRAMEWORK_SYMBOLS_LIMIT: 15;
|
|
12
|
+
readonly DEFAULT_DOCUMENTATION_UPDATES_LIMIT: 15;
|
|
13
|
+
readonly DEFAULT_TECHNOLOGY_OVERVIEWS_LIMIT: 15;
|
|
14
|
+
readonly DEFAULT_SAMPLE_CODE_LIMIT: 15;
|
|
15
|
+
readonly DEFAULT_TECHNOLOGIES_LIMIT: 25;
|
|
16
|
+
readonly DEFAULT_REFERENCES_LIMIT: 10;
|
|
17
|
+
readonly MAX_FRAMEWORK_SYMBOLS_LIMIT: 200;
|
|
18
|
+
readonly MAX_DOCUMENTATION_UPDATES_LIMIT: 200;
|
|
19
|
+
readonly MAX_TECHNOLOGY_OVERVIEWS_LIMIT: 200;
|
|
20
|
+
readonly MAX_SAMPLE_CODE_LIMIT: 200;
|
|
21
|
+
readonly MAX_TECHNOLOGIES_LIMIT: 500;
|
|
22
|
+
readonly MAX_REFERENCES_LIMIT: 50;
|
|
23
|
+
};
|
|
24
|
+
export declare const SEARCH_DEPTH_LIMITS: {
|
|
25
|
+
readonly shallow: 5;
|
|
26
|
+
readonly medium: 10;
|
|
27
|
+
readonly deep: 15;
|
|
28
|
+
};
|
|
29
|
+
export declare const CACHE_TTL: {
|
|
30
|
+
readonly API_DOCS: number;
|
|
31
|
+
readonly SEARCH_RESULTS: number;
|
|
32
|
+
readonly FRAMEWORK_INDEX: number;
|
|
33
|
+
readonly TECHNOLOGIES: number;
|
|
34
|
+
readonly UPDATES: number;
|
|
35
|
+
readonly SAMPLE_CODE: number;
|
|
36
|
+
readonly TECHNOLOGY_OVERVIEWS: number;
|
|
37
|
+
};
|
|
38
|
+
export declare const CACHE_SIZE: {
|
|
39
|
+
readonly API_DOCS: 500;
|
|
40
|
+
readonly SEARCH_RESULTS: 200;
|
|
41
|
+
readonly FRAMEWORK_INDEX: 100;
|
|
42
|
+
readonly TECHNOLOGIES: 50;
|
|
43
|
+
readonly UPDATES: 100;
|
|
44
|
+
readonly SAMPLE_CODE: 100;
|
|
45
|
+
readonly TECHNOLOGY_OVERVIEWS: 100;
|
|
46
|
+
readonly DEFAULT_CACHE_SIZE: 1000;
|
|
47
|
+
readonly DEFAULT_CACHE_TTL: number;
|
|
48
|
+
};
|
|
49
|
+
export declare const SAFARI_USER_AGENTS: readonly ["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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15", "Mozilla/5.0 (Macintosh; arm64 Mac OS X 14_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15", "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", "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", "Mozilla/5.0 (Macintosh; Intel Mac OS X 15_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Safari/605.1.15", "Mozilla/5.0 (Macintosh; arm64 Mac OS X 15_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Safari/605.1.15", "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", "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", "Mozilla/5.0 (Macintosh; Intel Mac OS X 15_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Safari/605.1.15", "Mozilla/5.0 (Macintosh; arm64 Mac OS X 15_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Safari/605.1.15", "Mozilla/5.0 (Macintosh; arm64 Mac OS X 26_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/19.0 Safari/605.1.15", "Mozilla/5.0 (Macintosh; Intel Mac OS X 26_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/19.0 Safari/605.1.15", "Mozilla/5.0 (Macintosh; arm64 Mac OS X 26_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/19.1 Safari/605.1.15"];
|
|
50
|
+
export declare const SAFARI_USER_AGENT_CATEGORIES: {
|
|
51
|
+
readonly monterey: ("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" | "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" | "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" | "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" | "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" | "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" | "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" | "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" | "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" | "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" | "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" | "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" | "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; arm64 Mac OS X 14_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15" | "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" | "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" | "Mozilla/5.0 (Macintosh; Intel Mac OS X 15_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; arm64 Mac OS X 15_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Safari/605.1.15" | "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" | "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" | "Mozilla/5.0 (Macintosh; Intel Mac OS X 15_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; arm64 Mac OS X 15_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; arm64 Mac OS X 26_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/19.0 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; Intel Mac OS X 26_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/19.0 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; arm64 Mac OS X 26_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/19.1 Safari/605.1.15")[];
|
|
52
|
+
readonly ventura: ("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" | "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" | "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" | "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" | "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" | "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" | "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" | "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" | "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" | "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" | "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" | "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" | "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; arm64 Mac OS X 14_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15" | "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" | "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" | "Mozilla/5.0 (Macintosh; Intel Mac OS X 15_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; arm64 Mac OS X 15_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Safari/605.1.15" | "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" | "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" | "Mozilla/5.0 (Macintosh; Intel Mac OS X 15_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; arm64 Mac OS X 15_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; arm64 Mac OS X 26_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/19.0 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; Intel Mac OS X 26_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/19.0 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; arm64 Mac OS X 26_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/19.1 Safari/605.1.15")[];
|
|
53
|
+
readonly sonoma: ("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" | "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" | "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" | "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" | "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" | "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" | "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" | "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" | "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" | "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" | "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" | "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" | "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; arm64 Mac OS X 14_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15" | "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" | "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" | "Mozilla/5.0 (Macintosh; Intel Mac OS X 15_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; arm64 Mac OS X 15_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Safari/605.1.15" | "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" | "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" | "Mozilla/5.0 (Macintosh; Intel Mac OS X 15_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; arm64 Mac OS X 15_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; arm64 Mac OS X 26_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/19.0 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; Intel Mac OS X 26_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/19.0 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; arm64 Mac OS X 26_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/19.1 Safari/605.1.15")[];
|
|
54
|
+
readonly sequoia: ("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" | "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" | "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" | "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" | "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" | "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" | "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" | "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" | "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" | "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" | "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" | "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" | "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; arm64 Mac OS X 14_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15" | "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" | "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" | "Mozilla/5.0 (Macintosh; Intel Mac OS X 15_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; arm64 Mac OS X 15_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Safari/605.1.15" | "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" | "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" | "Mozilla/5.0 (Macintosh; Intel Mac OS X 15_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; arm64 Mac OS X 15_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; arm64 Mac OS X 26_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/19.0 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; Intel Mac OS X 26_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/19.0 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; arm64 Mac OS X 26_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/19.1 Safari/605.1.15")[];
|
|
55
|
+
readonly beta: ("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" | "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" | "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" | "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" | "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" | "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" | "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" | "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" | "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" | "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" | "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" | "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" | "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; arm64 Mac OS X 14_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15" | "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" | "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" | "Mozilla/5.0 (Macintosh; Intel Mac OS X 15_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; arm64 Mac OS X 15_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Safari/605.1.15" | "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" | "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" | "Mozilla/5.0 (Macintosh; Intel Mac OS X 15_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; arm64 Mac OS X 15_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; arm64 Mac OS X 26_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/19.0 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; Intel Mac OS X 26_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/19.0 Safari/605.1.15" | "Mozilla/5.0 (Macintosh; arm64 Mac OS X 26_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/19.1 Safari/605.1.15")[];
|
|
56
|
+
};
|
|
57
|
+
export declare const SAFARI_USER_AGENT_UTILS: {
|
|
58
|
+
readonly SAFARI_UA_REGEX: RegExp;
|
|
59
|
+
/**
|
|
60
|
+
* Validates if a User-Agent string is a valid Safari format
|
|
61
|
+
* @param userAgent - The User-Agent string to validate
|
|
62
|
+
* @returns boolean indicating if the format is valid
|
|
63
|
+
*/
|
|
64
|
+
readonly isValidSafariUserAgent: (userAgent: string) => boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Extracts architecture from User-Agent string
|
|
67
|
+
* @param userAgent - The User-Agent string
|
|
68
|
+
* @returns 'Intel' | 'Apple Silicon' | null
|
|
69
|
+
*/
|
|
70
|
+
readonly getArchitecture: (userAgent: string) => "Intel" | "Apple Silicon" | null;
|
|
71
|
+
/**
|
|
72
|
+
* Extracts macOS version from User-Agent string
|
|
73
|
+
* @param userAgent - The User-Agent string
|
|
74
|
+
* @returns string representation of macOS version (e.g., "14.7.1")
|
|
75
|
+
*/
|
|
76
|
+
readonly getMacOSVersion: (userAgent: string) => string | null;
|
|
77
|
+
/**
|
|
78
|
+
* Extracts Safari version from User-Agent string
|
|
79
|
+
* @param userAgent - The User-Agent string
|
|
80
|
+
* @returns string representation of Safari version (e.g., "17.6.1")
|
|
81
|
+
*/
|
|
82
|
+
readonly getSafariVersion: (userAgent: string) => string | null;
|
|
83
|
+
/**
|
|
84
|
+
* Gets a random Safari User-Agent from all available options
|
|
85
|
+
* @returns A random Safari User-Agent string
|
|
86
|
+
*/
|
|
87
|
+
readonly getRandomUserAgent: () => string;
|
|
88
|
+
/**
|
|
89
|
+
* Gets a random Safari User-Agent from a specific category
|
|
90
|
+
* @param category - The category to select from
|
|
91
|
+
* @returns A random Safari User-Agent string from the specified category
|
|
92
|
+
*/
|
|
93
|
+
readonly getRandomUserAgentFromCategory: (category: keyof typeof SAFARI_USER_AGENT_CATEGORIES) => string;
|
|
94
|
+
};
|
|
95
|
+
export declare const REQUEST_CONFIG: {
|
|
96
|
+
readonly TIMEOUT: 30000;
|
|
97
|
+
readonly MAX_RETRIES: 3;
|
|
98
|
+
readonly RETRY_DELAY: 1000;
|
|
99
|
+
readonly MAX_CONCURRENT_REQUESTS: 5;
|
|
100
|
+
readonly 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";
|
|
101
|
+
readonly DEFAULT_SAFARI_USER_AGENT: "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";
|
|
102
|
+
};
|
|
103
|
+
export declare const RATE_LIMIT: {
|
|
104
|
+
readonly MAX_REQUESTS_PER_MINUTE: 100;
|
|
105
|
+
readonly WINDOW_MS: 60000;
|
|
106
|
+
};
|
|
107
|
+
export declare const PROCESSING_LIMITS: {
|
|
108
|
+
readonly MAX_COLLECTIONS_TO_SHOW: 5;
|
|
109
|
+
readonly MAX_RELATED_APIS_PER_SECTION: 3;
|
|
110
|
+
readonly MAX_PLATFORM_COMPATIBILITY_ITEMS: 2;
|
|
111
|
+
readonly MAX_SIMILAR_APIS_FOR_DEEP_SEARCH: 3;
|
|
112
|
+
readonly MAX_TOPIC_IDENTIFIERS: 4;
|
|
113
|
+
readonly MAX_DOC_FETCHER_RELATED_APIS: 10;
|
|
114
|
+
readonly MAX_DOC_FETCHER_REFERENCES: 15;
|
|
115
|
+
readonly MAX_DOC_FETCHER_SIMILAR_APIS: 8;
|
|
116
|
+
readonly MAX_DOC_FETCHER_REFS_PER_TYPE: 5;
|
|
117
|
+
readonly RESPONSE_TIME_GOOD_THRESHOLD: 1000;
|
|
118
|
+
readonly RESPONSE_TIME_MODERATE_THRESHOLD: 3000;
|
|
119
|
+
};
|
|
120
|
+
export declare const APPLE_URLS: {
|
|
121
|
+
readonly BASE: "https://developer.apple.com";
|
|
122
|
+
readonly SEARCH: "https://developer.apple.com/search/";
|
|
123
|
+
readonly DOCUMENTATION: "https://developer.apple.com/documentation/";
|
|
124
|
+
readonly TUTORIALS_DATA: "https://developer.apple.com/tutorials/data/";
|
|
125
|
+
readonly TECHNOLOGIES_JSON: "https://developer.apple.com/tutorials/data/documentation/technologies.json";
|
|
126
|
+
readonly UPDATES_JSON: "https://developer.apple.com/tutorials/data/documentation/Updates.json";
|
|
127
|
+
readonly UPDATES_INDEX_JSON: "https://developer.apple.com/tutorials/data/index/updates";
|
|
128
|
+
readonly TECHNOLOGY_OVERVIEWS_JSON: "https://developer.apple.com/tutorials/data/documentation/TechnologyOverviews.json";
|
|
129
|
+
readonly TECHNOLOGY_OVERVIEWS_INDEX_JSON: "https://developer.apple.com/tutorials/data/index/technologyoverviews";
|
|
130
|
+
readonly SAMPLE_CODE_JSON: "https://developer.apple.com/tutorials/data/documentation/SampleCode.json";
|
|
131
|
+
readonly SAMPLE_CODE_INDEX_JSON: "https://developer.apple.com/tutorials/data/index/samplecode";
|
|
132
|
+
};
|
|
133
|
+
export declare const WWDC_URLS: {
|
|
134
|
+
readonly BASE: "https://developer.apple.com/videos";
|
|
135
|
+
readonly TOPICS: "https://developer.apple.com/videos/topics/";
|
|
136
|
+
readonly YEAR_BASE: "https://developer.apple.com/videos/wwdc";
|
|
137
|
+
readonly PLAY_BASE: "https://developer.apple.com/videos/play/wwdc";
|
|
138
|
+
readonly getYearUrl: (year: string) => string;
|
|
139
|
+
readonly getVideoUrl: (year: string, videoId: string) => string;
|
|
140
|
+
readonly getCodeUrl: (year: string, videoId: string) => string;
|
|
141
|
+
readonly getTranscriptUrl: (year: string, videoId: string) => string;
|
|
142
|
+
readonly getResourcesUrl: (year: string, videoId: string) => string;
|
|
143
|
+
readonly getTopicUrl: (topicId: string) => string;
|
|
144
|
+
};
|
|
145
|
+
export declare const WWDC_CONFIG: {
|
|
146
|
+
readonly EARLIEST_YEAR: 2014;
|
|
147
|
+
readonly LATEST_YEAR: 2025;
|
|
148
|
+
readonly CODE_TAB_INTRODUCED_YEAR: 2022;
|
|
149
|
+
readonly AVAILABLE_YEARS: readonly ["2014", "2015", "2016", "2017", "2018", "2019", "2020", "2021", "2022", "2023", "2024", "2025"];
|
|
150
|
+
readonly DEFAULT_VIDEO_LIMIT: 15;
|
|
151
|
+
readonly DEFAULT_CODE_EXAMPLES_LIMIT: 10;
|
|
152
|
+
readonly DEFAULT_SEARCH_LIMIT: 10;
|
|
153
|
+
readonly DEFAULT_RELATED_VIDEOS_LIMIT: 10;
|
|
154
|
+
readonly DEFAULT_TOPIC_VIDEOS_LIMIT: 10;
|
|
155
|
+
readonly MAX_VIDEO_LIMIT: 200;
|
|
156
|
+
readonly MAX_CODE_EXAMPLES_LIMIT: 100;
|
|
157
|
+
readonly MAX_SEARCH_LIMIT: 100;
|
|
158
|
+
readonly MAX_RELATED_VIDEOS_LIMIT: 50;
|
|
159
|
+
readonly MAX_TOPIC_VIDEOS_LIMIT: 100;
|
|
160
|
+
readonly MIN_CODE_LENGTH: 10;
|
|
161
|
+
readonly MAX_CONTEXT_MATCHES: 3;
|
|
162
|
+
readonly MAX_TOPIC_VIDEOS_FOR_SCORING: 10;
|
|
163
|
+
readonly CACHE_TTL: number;
|
|
164
|
+
};
|
|
165
|
+
export declare const ERROR_MESSAGES: {
|
|
166
|
+
readonly INVALID_URL: "URL must be from developer.apple.com";
|
|
167
|
+
readonly FETCH_FAILED: "Failed to fetch data from Apple Developer Documentation";
|
|
168
|
+
readonly PARSE_FAILED: "Failed to parse response data";
|
|
169
|
+
readonly NOT_FOUND: "Documentation not found (404). This URL may have been moved or removed.";
|
|
170
|
+
readonly TIMEOUT: "Request timed out. Please try again later.";
|
|
171
|
+
readonly NETWORK_ERROR: "Network error occurred. Please check your connection.";
|
|
172
|
+
readonly RATE_LIMITED: "Request rate limit exceeded. Please wait before trying again.";
|
|
173
|
+
readonly API_ERROR: "API error occurred while processing the request.";
|
|
174
|
+
readonly CACHE_ERROR: "Cache operation failed, but the request will continue.";
|
|
175
|
+
readonly VALIDATION_ERROR: "Input validation failed. Please check your parameters.";
|
|
176
|
+
readonly SERVICE_UNAVAILABLE: "Apple Developer Documentation service is temporarily unavailable.";
|
|
177
|
+
};
|
|
178
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;CAuBb,CAAC;AAGX,eAAO,MAAM,mBAAmB;;;;CAItB,CAAC;AAGX,eAAO,MAAM,SAAS;;;;;;;;CAQZ,CAAC;AAGX,eAAO,MAAM,UAAU;;;;;;;;;;CAYb,CAAC;AAIX,eAAO,MAAM,kBAAkB,i9FAmCrB,CAAC;AAGX,eAAO,MAAM,4BAA4B;;;;;;CAM/B,CAAC;AAGX,eAAO,MAAM,uBAAuB;;IAIlC;;;;OAIG;iDACiC,MAAM,KAAG,OAAO;IAIpD;;;;OAIG;0CAC0B,MAAM,KAAG,OAAO,GAAG,eAAe,GAAG,IAAI;IAQtE;;;;OAIG;0CAC0B,MAAM,KAAG,MAAM,GAAG,IAAI;IASnD;;;;OAIG;2CAC2B,MAAM,KAAG,MAAM,GAAG,IAAI;IAQpD;;;OAGG;uCACqB,MAAM;IAK9B;;;;OAIG;wDACwC,MAAM,OAAO,4BAA4B,KAAG,MAAM;CAKrF,CAAC;AAGX,eAAO,MAAM,cAAc;;;;;;;CASjB,CAAC;AAGX,eAAO,MAAM,UAAU;;;CAGb,CAAC;AAGX,eAAO,MAAM,iBAAiB;;;;;;;;;;;;CAepB,CAAC;AAGX,eAAO,MAAM,UAAU;;;;;;;;;;;;CAYb,CAAC;AAGX,eAAO,MAAM,SAAS;;;;;gCAOD,MAAM;iCACL,MAAM,WAAW,MAAM;gCACxB,MAAM,WAAW,MAAM;sCACjB,MAAM,WAAW,MAAM;qCACxB,MAAM,WAAW,MAAM;oCACxB,MAAM;CACrB,CAAC;AAGX,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;CA8Bd,CAAC;AAGX,eAAO,MAAM,cAAc;;;;;;;;;;;;CAYjB,CAAC"}
|