advanced-tls-client 1.0.1 → 1.0.2

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/dist/index.d.ts CHANGED
@@ -1,16 +1,77 @@
1
+ import { EventEmitter } from 'events';
2
+ import { Readable } from 'stream';
3
+ interface TLSFingerprint {
4
+ cipherSuites: number[];
5
+ extensions: number[];
6
+ supportedGroups: number[];
7
+ signatureAlgorithms: number[];
8
+ supportedVersions: number[];
9
+ ecPointFormats: number[];
10
+ alpnProtocols: string[];
11
+ pskKeyExchangeModes: number[];
12
+ compressionMethods: number[];
13
+ grease: boolean;
14
+ recordSizeLimit?: number;
15
+ certificateCompression?: number[];
16
+ ocspStapling?: boolean;
17
+ signedCertificateTimestamp?: boolean;
18
+ delegatedCredentials?: boolean;
19
+ }
20
+ interface HTTP2Fingerprint {
21
+ windowUpdate: number;
22
+ headerTableSize: number;
23
+ maxConcurrentStreams?: number;
24
+ initialWindowSize: number;
25
+ maxFrameSize?: number;
26
+ maxHeaderListSize?: number;
27
+ enablePush: number;
28
+ settingsOrder: number[];
29
+ connectionPreface: Buffer;
30
+ priorityFrames: Array<{
31
+ streamId: number;
32
+ weight: number;
33
+ dependency: number;
34
+ exclusive: boolean;
35
+ }>;
36
+ pseudoHeaderOrder: string[];
37
+ headerPriority?: {
38
+ streamDep: number;
39
+ exclusive: boolean;
40
+ weight: number;
41
+ };
42
+ headerOrder: string[];
43
+ }
44
+ interface ChromeProfile {
45
+ name: string;
46
+ version: string;
47
+ tls: TLSFingerprint;
48
+ http2: HTTP2Fingerprint;
49
+ userAgent: string;
50
+ secChUa: string;
51
+ secChUaPlatform: string;
52
+ secChUaMobile: string;
53
+ secFetchSite: string;
54
+ secFetchMode: string;
55
+ secFetchDest: string;
56
+ upgradeInsecureRequests?: string;
57
+ acceptLanguage?: string;
58
+ priority?: string;
59
+ }
1
60
  interface RequestOptions {
2
61
  method?: string;
3
62
  headers?: Record<string, string>;
4
- body?: string | Buffer;
63
+ body?: string | Buffer | Readable;
5
64
  cookies?: Record<string, string>;
6
65
  decompress?: boolean;
7
66
  followRedirects?: boolean;
8
67
  maxRedirects?: number;
68
+ timeout?: number;
69
+ stream?: boolean;
9
70
  }
10
- interface Response {
71
+ interface Response extends EventEmitter {
11
72
  statusCode: number;
12
73
  headers: Record<string, string | string[]>;
13
- body: Buffer;
74
+ body: Buffer | Readable;
14
75
  text?: string;
15
76
  json?: any;
16
77
  timing: {
@@ -28,6 +89,17 @@ interface Response {
28
89
  akamai: string;
29
90
  };
30
91
  }
92
+ declare class ProfileRegistry {
93
+ private static getGrease;
94
+ static chromeMobile143Android(): ChromeProfile;
95
+ static chrome133PSK(): ChromeProfile;
96
+ static chrome133(): ChromeProfile;
97
+ static firefox117(): ChromeProfile;
98
+ static safariIOS18(): ChromeProfile;
99
+ static get(name: string): ChromeProfile;
100
+ static get latest(): ChromeProfile;
101
+ static get latestMobile(): ChromeProfile;
102
+ }
31
103
  declare class AdvancedTLSClient {
32
104
  private profile;
33
105
  private sessionCache;
@@ -36,17 +108,7 @@ declare class AdvancedTLSClient {
36
108
  private sessionTimeout;
37
109
  private cleanupInterval;
38
110
  constructor(profileName?: string);
39
- private startSessionCleanup;
40
111
  request(url: string, options?: RequestOptions): Promise<Response>;
41
- private performRequest;
42
- private generateJA3;
43
- private buildHeaders;
44
- private isSessionAlive;
45
- getCookies(domain: string): string;
46
- setCookie(domain: string, name: string, value: string, options?: {
47
- expires?: Date;
48
- path?: string;
49
- }): void;
50
112
  destroy(): void;
51
113
  }
52
- export { AdvancedTLSClient };
114
+ export { AdvancedTLSClient, ProfileRegistry };