@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,241 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* User-Agent Pool Manager for rotating user agents to avoid detection
|
|
3
|
+
*
|
|
4
|
+
* Provides robust management of multiple User-Agent strings with:
|
|
5
|
+
* - Multiple rotation strategies (random, sequential, smart)
|
|
6
|
+
* - Automatic error handling and recovery
|
|
7
|
+
* - Performance statistics and monitoring
|
|
8
|
+
* - Thread-safe concurrent access
|
|
9
|
+
* - Browser type detection and header generation support
|
|
10
|
+
*
|
|
11
|
+
* @author Apple Docs MCP
|
|
12
|
+
* @version 1.0.0
|
|
13
|
+
*/
|
|
14
|
+
import type { UserAgent as UserAgentType, BrowserType } from '../types/headers.js';
|
|
15
|
+
/**
|
|
16
|
+
* Configuration options for the User-Agent pool
|
|
17
|
+
*/
|
|
18
|
+
export interface UserAgentPoolConfig {
|
|
19
|
+
/** Rotation strategy to use */
|
|
20
|
+
strategy?: RotationStrategy;
|
|
21
|
+
/** How long to disable failed User-Agents (in milliseconds) */
|
|
22
|
+
disableDuration?: number;
|
|
23
|
+
/** Maximum number of failures before disabling a User-Agent */
|
|
24
|
+
failureThreshold?: number;
|
|
25
|
+
/** Minimum success rate to keep a User-Agent enabled (0-1) */
|
|
26
|
+
minSuccessRate?: number;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Rotation strategies available
|
|
30
|
+
*/
|
|
31
|
+
export type RotationStrategy = 'random' | 'sequential' | 'smart';
|
|
32
|
+
/**
|
|
33
|
+
* Statistics for a single User-Agent
|
|
34
|
+
*/
|
|
35
|
+
export interface AgentStats {
|
|
36
|
+
value: string;
|
|
37
|
+
successCount: number;
|
|
38
|
+
failureCount: number;
|
|
39
|
+
successRate: number;
|
|
40
|
+
totalRequests: number;
|
|
41
|
+
isEnabled: boolean;
|
|
42
|
+
lastUsed?: Date;
|
|
43
|
+
consecutiveFailures: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Overall pool statistics
|
|
47
|
+
*/
|
|
48
|
+
export interface PoolStats {
|
|
49
|
+
/** Total number of User-Agents in pool */
|
|
50
|
+
total: number;
|
|
51
|
+
/** Number of currently enabled User-Agents */
|
|
52
|
+
enabled: number;
|
|
53
|
+
/** Number of currently disabled User-Agents */
|
|
54
|
+
disabled: number;
|
|
55
|
+
/** Total requests made across all User-Agents */
|
|
56
|
+
totalRequests: number;
|
|
57
|
+
/** Overall success rate (0-100) */
|
|
58
|
+
successRate: number;
|
|
59
|
+
/** Current rotation strategy */
|
|
60
|
+
strategy: RotationStrategy;
|
|
61
|
+
/** Pool health score (0-100) */
|
|
62
|
+
healthScore: number;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* User-Agent Pool Manager
|
|
66
|
+
*
|
|
67
|
+
* Manages a pool of User-Agent strings with rotation, error handling,
|
|
68
|
+
* and automatic recovery capabilities.
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```typescript
|
|
72
|
+
* const pool = new UserAgentPool([
|
|
73
|
+
* 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
|
|
74
|
+
* 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36'
|
|
75
|
+
* ]);
|
|
76
|
+
*
|
|
77
|
+
* const userAgent = pool.getNext();
|
|
78
|
+
* // ... make request ...
|
|
79
|
+
* if (response.ok) {
|
|
80
|
+
* pool.markSuccess(userAgent);
|
|
81
|
+
* } else {
|
|
82
|
+
* pool.markFailure(userAgent, response.status);
|
|
83
|
+
* }
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
export declare class UserAgentPool {
|
|
87
|
+
private agents;
|
|
88
|
+
private currentIndex;
|
|
89
|
+
private config;
|
|
90
|
+
private mutex;
|
|
91
|
+
/**
|
|
92
|
+
* Create a new User-Agent pool
|
|
93
|
+
*
|
|
94
|
+
* @param agents - Array of User-Agent strings to manage
|
|
95
|
+
* @param config - Configuration options
|
|
96
|
+
* @throws {Error} When agents array is empty or contains invalid values
|
|
97
|
+
*/
|
|
98
|
+
constructor(agents: string[], config?: UserAgentPoolConfig);
|
|
99
|
+
/**
|
|
100
|
+
* Get the next User-Agent string using the configured strategy
|
|
101
|
+
*
|
|
102
|
+
* This method is thread-safe and handles automatic recovery of disabled agents.
|
|
103
|
+
*
|
|
104
|
+
* @returns The next User-Agent string to use
|
|
105
|
+
* @throws {Error} When no User-Agents are available
|
|
106
|
+
*/
|
|
107
|
+
getNext(): Promise<string>;
|
|
108
|
+
/**
|
|
109
|
+
* Mark a User-Agent as having failed a request
|
|
110
|
+
*
|
|
111
|
+
* @param userAgent - The User-Agent string that failed
|
|
112
|
+
* @param statusCode - HTTP status code of the failure (optional)
|
|
113
|
+
*/
|
|
114
|
+
markFailure(userAgent: string, statusCode?: number): Promise<void>;
|
|
115
|
+
/**
|
|
116
|
+
* Mark a User-Agent as having succeeded a request
|
|
117
|
+
*
|
|
118
|
+
* @param userAgent - The User-Agent string that succeeded
|
|
119
|
+
*/
|
|
120
|
+
markSuccess(userAgent: string): Promise<void>;
|
|
121
|
+
/**
|
|
122
|
+
* Add a new User-Agent to the pool
|
|
123
|
+
*
|
|
124
|
+
* @param userAgent - The User-Agent string to add
|
|
125
|
+
* @throws {Error} When User-Agent is invalid or already exists
|
|
126
|
+
*/
|
|
127
|
+
addAgent(userAgent: string): Promise<void>;
|
|
128
|
+
/**
|
|
129
|
+
* Remove a User-Agent from the pool
|
|
130
|
+
*
|
|
131
|
+
* @param userAgent - The User-Agent string to remove
|
|
132
|
+
* @throws {Error} When trying to remove the last User-Agent
|
|
133
|
+
*/
|
|
134
|
+
removeAgent(userAgent: string): Promise<void>;
|
|
135
|
+
/**
|
|
136
|
+
* Get statistics for all User-Agents in the pool
|
|
137
|
+
*
|
|
138
|
+
* @returns Array of statistics for each User-Agent
|
|
139
|
+
*/
|
|
140
|
+
getAgentStats(): AgentStats[];
|
|
141
|
+
/**
|
|
142
|
+
* Get overall pool statistics
|
|
143
|
+
*
|
|
144
|
+
* @returns Pool-wide statistics
|
|
145
|
+
*/
|
|
146
|
+
getStats(): PoolStats;
|
|
147
|
+
/**
|
|
148
|
+
* Reset all statistics while keeping the User-Agents
|
|
149
|
+
*/
|
|
150
|
+
resetStats(): Promise<void>;
|
|
151
|
+
/**
|
|
152
|
+
* Get the current configuration
|
|
153
|
+
*
|
|
154
|
+
* @returns Current pool configuration
|
|
155
|
+
*/
|
|
156
|
+
getConfig(): Readonly<Required<UserAgentPoolConfig>>;
|
|
157
|
+
/**
|
|
158
|
+
* Get the next User-Agent as a structured UserAgent object
|
|
159
|
+
*
|
|
160
|
+
* This method provides enhanced information about the User-Agent including
|
|
161
|
+
* browser type, version, OS details, and architecture information.
|
|
162
|
+
*
|
|
163
|
+
* @returns Promise resolving to a UserAgent object with parsed information
|
|
164
|
+
* @throws {Error} When no User-Agents are available
|
|
165
|
+
*/
|
|
166
|
+
getNextUserAgent(): Promise<UserAgentType>;
|
|
167
|
+
/**
|
|
168
|
+
* Get a random User-Agent string filtered by browser type
|
|
169
|
+
*
|
|
170
|
+
* @param browserType - Desired browser type
|
|
171
|
+
* @returns Promise resolving to a User-Agent string of the specified type
|
|
172
|
+
* @throws {Error} When no User-Agents of the specified type are available
|
|
173
|
+
*/
|
|
174
|
+
getByBrowserType(browserType: BrowserType): Promise<string>;
|
|
175
|
+
/**
|
|
176
|
+
* Get a random User-Agent object filtered by browser type
|
|
177
|
+
*
|
|
178
|
+
* @param browserType - Desired browser type
|
|
179
|
+
* @returns Promise resolving to a UserAgent object of the specified type
|
|
180
|
+
* @throws {Error} When no User-Agents of the specified type are available
|
|
181
|
+
*/
|
|
182
|
+
getUserAgentByBrowserType(browserType: BrowserType): Promise<UserAgentType>;
|
|
183
|
+
/**
|
|
184
|
+
* Get statistics grouped by browser type
|
|
185
|
+
*
|
|
186
|
+
* @returns Statistics organized by browser type
|
|
187
|
+
*/
|
|
188
|
+
getStatsByBrowserType(): Record<BrowserType, {
|
|
189
|
+
count: number;
|
|
190
|
+
enabled: number;
|
|
191
|
+
successRate: number;
|
|
192
|
+
}>;
|
|
193
|
+
/**
|
|
194
|
+
* Get all available browser types in the pool
|
|
195
|
+
*
|
|
196
|
+
* @returns Array of browser types present in the pool
|
|
197
|
+
*/
|
|
198
|
+
getAvailableBrowserTypes(): BrowserType[];
|
|
199
|
+
private selectByStrategy;
|
|
200
|
+
private selectRandom;
|
|
201
|
+
private selectSequential;
|
|
202
|
+
private selectSmart;
|
|
203
|
+
private selectAndUseAgent;
|
|
204
|
+
private findAgent;
|
|
205
|
+
private shouldDisableAgent;
|
|
206
|
+
private getAgentSuccessRate;
|
|
207
|
+
private recoverDisabledAgents;
|
|
208
|
+
private selectFallbackAgent;
|
|
209
|
+
private calculateHealthScore;
|
|
210
|
+
private removeDuplicates;
|
|
211
|
+
private shuffleAgents;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Pre-defined User-Agent strings for common browsers
|
|
215
|
+
* Covers Chrome, Firefox, Safari, and Edge across different platforms
|
|
216
|
+
*/
|
|
217
|
+
export declare const COMMON_USER_AGENTS: {
|
|
218
|
+
readonly CHROME_MAC_INTEL: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36";
|
|
219
|
+
readonly CHROME_MAC_APPLE: "Mozilla/5.0 (Macintosh; arm64 Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36";
|
|
220
|
+
readonly CHROME_WINDOWS: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36";
|
|
221
|
+
readonly CHROME_LINUX: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36";
|
|
222
|
+
readonly FIREFOX_MAC_INTEL: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:122.0) Gecko/20100101 Firefox/122.0";
|
|
223
|
+
readonly FIREFOX_MAC_APPLE: "Mozilla/5.0 (Macintosh; arm64 Mac OS X 10.15; rv:122.0) Gecko/20100101 Firefox/122.0";
|
|
224
|
+
readonly FIREFOX_WINDOWS: "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:122.0) Gecko/20100101 Firefox/122.0";
|
|
225
|
+
readonly FIREFOX_LINUX: "Mozilla/5.0 (X11; Linux x86_64; rv:122.0) Gecko/20100101 Firefox/122.0";
|
|
226
|
+
readonly SAFARI_MAC_INTEL_15_1: "Mozilla/5.0 (Macintosh; Intel Mac OS X 15_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Safari/605.1.15";
|
|
227
|
+
readonly SAFARI_MAC_APPLE_15_1: "Mozilla/5.0 (Macintosh; arm64 Mac OS X 15_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Safari/605.1.15";
|
|
228
|
+
readonly SAFARI_MAC_INTEL_14_7: "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";
|
|
229
|
+
readonly SAFARI_MAC_APPLE_14_7: "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";
|
|
230
|
+
readonly EDGE_WINDOWS: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0";
|
|
231
|
+
readonly EDGE_MAC_INTEL: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0";
|
|
232
|
+
readonly EDGE_MAC_APPLE: "Mozilla/5.0 (Macintosh; arm64 Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0";
|
|
233
|
+
};
|
|
234
|
+
/**
|
|
235
|
+
* Create a default User-Agent pool with common browser agents
|
|
236
|
+
*
|
|
237
|
+
* @param config - Configuration options for the pool
|
|
238
|
+
* @returns A new UserAgentPool instance with common User-Agents
|
|
239
|
+
*/
|
|
240
|
+
export declare function createDefaultPool(config?: UserAgentPoolConfig): UserAgentPool;
|
|
241
|
+
//# sourceMappingURL=user-agent-pool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-agent-pool.d.ts","sourceRoot":"","sources":["../../src/utils/user-agent-pool.ts"],"names":[],"mappings":"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"}
|