UNPKG

node-libcurl-ja3

Version:

Node.js native bindings for libcurl-impersonate. Impersonate Chrome, Edge, Firefox and Safari TLS fingerprints.

1,392 lines 262 kB
/** * Copyright (c) Jonathan Cardoso Machado. All Rights Reserved. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ /// <reference types="node" /> import { CurlChunk } from '../enum/CurlChunk'; import { CurlFnMatchFunc } from '../enum/CurlFnMatchFunc'; import { CurlFtpMethod } from '../enum/CurlFtpMethod'; import { CurlFtpSsl } from '../enum/CurlFtpSsl'; import { CurlGssApi } from '../enum/CurlGssApi'; import { CurlHeader } from '../enum/CurlHeader'; import { CurlHsts, CurlHstsCacheCount, CurlHstsCacheEntry } from '../enum/CurlHsts'; import { CurlHttpVersion } from '../enum/CurlHttpVersion'; import { CurlInfoDebug } from '../enum/CurlInfoDebug'; import { CurlIpResolve } from '../enum/CurlIpResolve'; import { CurlNetrc } from '../enum/CurlNetrc'; import { CurlPreReqFunc } from '../enum/CurlPreReqFunc'; import { CurlProgressFunc } from '../enum/CurlProgressFunc'; import { CurlProtocol } from '../enum/CurlProtocol'; import { CurlProxy } from '../enum/CurlProxy'; import { CurlRtspRequest } from '../enum/CurlRtspRequest'; import { CurlSshAuth } from '../enum/CurlSshAuth'; import { CurlSslOpt } from '../enum/CurlSslOpt'; import { CurlSslVersion } from '../enum/CurlSslVersion'; import { CurlTimeCond } from '../enum/CurlTimeCond'; import { CurlUseSsl } from '../enum/CurlUseSsl'; import { EasyNativeBinding } from '../types/EasyNativeBinding'; import { Share } from '../Share'; /** * @public */ export interface CurlOption { /** * Path to an abstract Unix domain socket. * * @Link [`CURLOPT_ABSTRACT_UNIX_SOCKET`](https://curl.haxx.se/libcurl/c/CURLOPT_ABSTRACT_UNIX_SOCKET.html) */ readonly ABSTRACT_UNIX_SOCKET: 'ABSTRACT_UNIX_SOCKET'; /** * Accept-Encoding and automatic decompressing data. * * @Link [`CURLOPT_ACCEPT_ENCODING`](https://curl.haxx.se/libcurl/c/CURLOPT_ACCEPT_ENCODING.html) */ readonly ACCEPT_ENCODING: 'ACCEPT_ENCODING'; /** * Timeout for waiting for the server's connect back to be accepted. * * @Link [`CURLOPT_ACCEPTTIMEOUT_MS`](https://curl.haxx.se/libcurl/c/CURLOPT_ACCEPTTIMEOUT_MS.html) */ readonly ACCEPTTIMEOUT_MS: 'ACCEPTTIMEOUT_MS'; /** * IPv6 scope for local addresses. * * @Link [`CURLOPT_ADDRESS_SCOPE`](https://curl.haxx.se/libcurl/c/CURLOPT_ADDRESS_SCOPE.html) */ readonly ADDRESS_SCOPE: 'ADDRESS_SCOPE'; /** * Specify the Alt-Svc: cache filename. * * @Link [`CURLOPT_ALTSVC`](https://curl.haxx.se/libcurl/c/CURLOPT_ALTSVC.html) */ readonly ALTSVC: 'ALTSVC'; /** * Enable and configure Alt-Svc: treatment. * * @Link [`CURLOPT_ALTSVC_CTRL`](https://curl.haxx.se/libcurl/c/CURLOPT_ALTSVC_CTRL.html) */ readonly ALTSVC_CTRL: 'ALTSVC_CTRL'; /** * Append to remote file. * * @Link [`CURLOPT_APPEND`](https://curl.haxx.se/libcurl/c/CURLOPT_APPEND.html) */ readonly APPEND: 'APPEND'; /** * Automatically set Referer: header. * * @Link [`CURLOPT_AUTOREFERER`](https://curl.haxx.se/libcurl/c/CURLOPT_AUTOREFERER.html) */ readonly AUTOREFERER: 'AUTOREFERER'; /** * AWS HTTP V4 Signature. * * @Link [`CURLOPT_AWS_SIGV4`](https://curl.haxx.se/libcurl/c/CURLOPT_AWS_SIGV4.html) */ readonly AWS_SIGV4: 'AWS_SIGV4'; /** * Ask for alternate buffer size. * * @Link [`CURLOPT_BUFFERSIZE`](https://curl.haxx.se/libcurl/c/CURLOPT_BUFFERSIZE.html) */ readonly BUFFERSIZE: 'BUFFERSIZE'; /** * Timeout for CA cache. * * @Link [`CURLOPT_CA_CACHE_TIMEOUT`](https://curl.haxx.se/libcurl/c/CURLOPT_CA_CACHE_TIMEOUT.html) */ readonly CA_CACHE_TIMEOUT: 'CA_CACHE_TIMEOUT'; /** * CA cert bundle. * * @Link [`CURLOPT_CAINFO`](https://curl.haxx.se/libcurl/c/CURLOPT_CAINFO.html) */ readonly CAINFO: 'CAINFO'; /** * CA cert bundle memory buffer. * * @Link [`CURLOPT_CAINFO_BLOB`](https://curl.haxx.se/libcurl/c/CURLOPT_CAINFO_BLOB.html) */ readonly CAINFO_BLOB: 'CAINFO_BLOB'; /** * Path to CA cert bundle. * * @Link [`CURLOPT_CAPATH`](https://curl.haxx.se/libcurl/c/CURLOPT_CAPATH.html) */ readonly CAPATH: 'CAPATH'; /** * Extract certificate info. * * @Link [`CURLOPT_CERTINFO`](https://curl.haxx.se/libcurl/c/CURLOPT_CERTINFO.html) */ readonly CERTINFO: 'CERTINFO'; /** * Callback for wildcard download start of chunk. * * @Link [`CURLOPT_CHUNK_BGN_FUNCTION`](https://curl.haxx.se/libcurl/c/CURLOPT_CHUNK_BGN_FUNCTION.html) */ readonly CHUNK_BGN_FUNCTION: 'CHUNK_BGN_FUNCTION'; /** * Callback for wildcard download end of chunk. * * @Link [`CURLOPT_CHUNK_END_FUNCTION`](https://curl.haxx.se/libcurl/c/CURLOPT_CHUNK_END_FUNCTION.html) */ readonly CHUNK_END_FUNCTION: 'CHUNK_END_FUNCTION'; /** * Only connect, nothing else. * * @Link [`CURLOPT_CONNECT_ONLY`](https://curl.haxx.se/libcurl/c/CURLOPT_CONNECT_ONLY.html) */ readonly CONNECT_ONLY: 'CONNECT_ONLY'; /** * Connect to a specific host and port. * * @Link [`CURLOPT_CONNECT_TO`](https://curl.haxx.se/libcurl/c/CURLOPT_CONNECT_TO.html) */ readonly CONNECT_TO: 'CONNECT_TO'; /** * Timeout for the connection phase. * * @Link [`CURLOPT_CONNECTTIMEOUT`](https://curl.haxx.se/libcurl/c/CURLOPT_CONNECTTIMEOUT.html) */ readonly CONNECTTIMEOUT: 'CONNECTTIMEOUT'; /** * Millisecond timeout for the connection phase. * * @Link [`CURLOPT_CONNECTTIMEOUT_MS`](https://curl.haxx.se/libcurl/c/CURLOPT_CONNECTTIMEOUT_MS.html) */ readonly CONNECTTIMEOUT_MS: 'CONNECTTIMEOUT_MS'; /** * Cookie(s) to send. * * @Link [`CURLOPT_COOKIE`](https://curl.haxx.se/libcurl/c/CURLOPT_COOKIE.html) */ readonly COOKIE: 'COOKIE'; /** * File to read cookies from. * * @Link [`CURLOPT_COOKIEFILE`](https://curl.haxx.se/libcurl/c/CURLOPT_COOKIEFILE.html) */ readonly COOKIEFILE: 'COOKIEFILE'; /** * File to write cookies to. * * @Link [`CURLOPT_COOKIEJAR`](https://curl.haxx.se/libcurl/c/CURLOPT_COOKIEJAR.html) */ readonly COOKIEJAR: 'COOKIEJAR'; /** * Add or control cookies. * * @Link [`CURLOPT_COOKIELIST`](https://curl.haxx.se/libcurl/c/CURLOPT_COOKIELIST.html) */ readonly COOKIELIST: 'COOKIELIST'; /** * Start a new cookie session. * * @Link [`CURLOPT_COOKIESESSION`](https://curl.haxx.se/libcurl/c/CURLOPT_COOKIESESSION.html) */ readonly COOKIESESSION: 'COOKIESESSION'; /** * Convert newlines. * * @Link [`CURLOPT_CRLF`](https://curl.haxx.se/libcurl/c/CURLOPT_CRLF.html) */ readonly CRLF: 'CRLF'; /** * Certificate Revocation List. * * @Link [`CURLOPT_CRLFILE`](https://curl.haxx.se/libcurl/c/CURLOPT_CRLFILE.html) */ readonly CRLFILE: 'CRLFILE'; /** * Custom request/method. * * @Link [`CURLOPT_CUSTOMREQUEST`](https://curl.haxx.se/libcurl/c/CURLOPT_CUSTOMREQUEST.html) */ readonly CUSTOMREQUEST: 'CUSTOMREQUEST'; /** * Callback for debug information. * * @Link [`CURLOPT_DEBUGFUNCTION`](https://curl.haxx.se/libcurl/c/CURLOPT_DEBUGFUNCTION.html) */ readonly DEBUGFUNCTION: 'DEBUGFUNCTION'; /** * Default protocol. * * @Link [`CURLOPT_DEFAULT_PROTOCOL`](https://curl.haxx.se/libcurl/c/CURLOPT_DEFAULT_PROTOCOL.html) */ readonly DEFAULT_PROTOCOL: 'DEFAULT_PROTOCOL'; /** * List only. * * @Link [`CURLOPT_DIRLISTONLY`](https://curl.haxx.se/libcurl/c/CURLOPT_DIRLISTONLY.html) */ readonly DIRLISTONLY: 'DIRLISTONLY'; /** * Do not allow username in URL. * * @Link [`CURLOPT_DISALLOW_USERNAME_IN_URL`](https://curl.haxx.se/libcurl/c/CURLOPT_DISALLOW_USERNAME_IN_URL.html) */ readonly DISALLOW_USERNAME_IN_URL: 'DISALLOW_USERNAME_IN_URL'; /** * Timeout for DNS cache. * * @Link [`CURLOPT_DNS_CACHE_TIMEOUT`](https://curl.haxx.se/libcurl/c/CURLOPT_DNS_CACHE_TIMEOUT.html) */ readonly DNS_CACHE_TIMEOUT: 'DNS_CACHE_TIMEOUT'; /** * Bind name resolves to this interface. * * @Link [`CURLOPT_DNS_INTERFACE`](https://curl.haxx.se/libcurl/c/CURLOPT_DNS_INTERFACE.html) */ readonly DNS_INTERFACE: 'DNS_INTERFACE'; /** * Bind name resolves to this IP4 address. * * @Link [`CURLOPT_DNS_LOCAL_IP4`](https://curl.haxx.se/libcurl/c/CURLOPT_DNS_LOCAL_IP4.html) */ readonly DNS_LOCAL_IP4: 'DNS_LOCAL_IP4'; /** * Bind name resolves to this IP6 address. * * @Link [`CURLOPT_DNS_LOCAL_IP6`](https://curl.haxx.se/libcurl/c/CURLOPT_DNS_LOCAL_IP6.html) */ readonly DNS_LOCAL_IP6: 'DNS_LOCAL_IP6'; /** * Preferred DNS servers. * * @Link [`CURLOPT_DNS_SERVERS`](https://curl.haxx.se/libcurl/c/CURLOPT_DNS_SERVERS.html) */ readonly DNS_SERVERS: 'DNS_SERVERS'; /** * Shuffle addresses before use. * * @Link [`CURLOPT_DNS_SHUFFLE_ADDRESSES`](https://curl.haxx.se/libcurl/c/CURLOPT_DNS_SHUFFLE_ADDRESSES.html) */ readonly DNS_SHUFFLE_ADDRESSES: 'DNS_SHUFFLE_ADDRESSES'; /** * OBSOLETE Enable global DNS cache. * * @Link [`CURLOPT_DNS_USE_GLOBAL_CACHE`](https://curl.haxx.se/libcurl/c/CURLOPT_DNS_USE_GLOBAL_CACHE.html) */ readonly DNS_USE_GLOBAL_CACHE: 'DNS_USE_GLOBAL_CACHE'; /** * Verify the hostname in the DoH (DNS-over-HTTPS) SSL certificate. * * @Link [`CURLOPT_DOH_SSL_VERIFYHOST`](https://curl.haxx.se/libcurl/c/CURLOPT_DOH_SSL_VERIFYHOST.html) */ readonly DOH_SSL_VERIFYHOST: 'DOH_SSL_VERIFYHOST'; /** * Verify the DoH (DNS-over-HTTPS) SSL certificate. * * @Link [`CURLOPT_DOH_SSL_VERIFYPEER`](https://curl.haxx.se/libcurl/c/CURLOPT_DOH_SSL_VERIFYPEER.html) */ readonly DOH_SSL_VERIFYPEER: 'DOH_SSL_VERIFYPEER'; /** * Verify the DoH (DNS-over-HTTPS) SSL certificate's status. * * @Link [`CURLOPT_DOH_SSL_VERIFYSTATUS`](https://curl.haxx.se/libcurl/c/CURLOPT_DOH_SSL_VERIFYSTATUS.html) */ readonly DOH_SSL_VERIFYSTATUS: 'DOH_SSL_VERIFYSTATUS'; /** * Use this DoH server for name resolves. * * @Link [`CURLOPT_DOH_URL`](https://curl.haxx.se/libcurl/c/CURLOPT_DOH_URL.html) */ readonly DOH_URL: 'DOH_URL'; /** * Set the configuration for ECH. * * @Link [`CURLOPT_ECH`](https://curl.haxx.se/libcurl/c/CURLOPT_ECH.html) */ readonly ECH: 'ECH'; /** * OBSOLETE Identify EGD socket for entropy. * * @Link [`CURLOPT_EGDSOCKET`](https://curl.haxx.se/libcurl/c/CURLOPT_EGDSOCKET.html) */ readonly EGDSOCKET: 'EGDSOCKET'; /** * 100-continue timeout. * * @Link [`CURLOPT_EXPECT_100_TIMEOUT_MS`](https://curl.haxx.se/libcurl/c/CURLOPT_EXPECT_100_TIMEOUT_MS.html) */ readonly EXPECT_100_TIMEOUT_MS: 'EXPECT_100_TIMEOUT_MS'; /** * Fail on HTTP 4xx errors. * * @Link [`CURLOPT_FAILONERROR`](https://curl.haxx.se/libcurl/c/CURLOPT_FAILONERROR.html) */ readonly FAILONERROR: 'FAILONERROR'; /** * Request file modification date and time. * * @Link [`CURLOPT_FILETIME`](https://curl.haxx.se/libcurl/c/CURLOPT_FILETIME.html) */ readonly FILETIME: 'FILETIME'; /** * Callback for wildcard matching. * * @Link [`CURLOPT_FNMATCH_FUNCTION`](https://curl.haxx.se/libcurl/c/CURLOPT_FNMATCH_FUNCTION.html) */ readonly FNMATCH_FUNCTION: 'FNMATCH_FUNCTION'; /** * Follow HTTP redirects. * * @Link [`CURLOPT_FOLLOWLOCATION`](https://curl.haxx.se/libcurl/c/CURLOPT_FOLLOWLOCATION.html) */ readonly FOLLOWLOCATION: 'FOLLOWLOCATION'; /** * Prevent subsequent connections from reusing this. * * @Link [`CURLOPT_FORBID_REUSE`](https://curl.haxx.se/libcurl/c/CURLOPT_FORBID_REUSE.html) */ readonly FORBID_REUSE: 'FORBID_REUSE'; /** * Use a new connection. * * @Link [`CURLOPT_FRESH_CONNECT`](https://curl.haxx.se/libcurl/c/CURLOPT_FRESH_CONNECT.html) */ readonly FRESH_CONNECT: 'FRESH_CONNECT'; /** * Send ACCT command. * * @Link [`CURLOPT_FTP_ACCOUNT`](https://curl.haxx.se/libcurl/c/CURLOPT_FTP_ACCOUNT.html) */ readonly FTP_ACCOUNT: 'FTP_ACCOUNT'; /** * Alternative to USER. * * @Link [`CURLOPT_FTP_ALTERNATIVE_TO_USER`](https://curl.haxx.se/libcurl/c/CURLOPT_FTP_ALTERNATIVE_TO_USER.html) */ readonly FTP_ALTERNATIVE_TO_USER: 'FTP_ALTERNATIVE_TO_USER'; /** * Create missing directories on the remote server. * * @Link [`CURLOPT_FTP_CREATE_MISSING_DIRS`](https://curl.haxx.se/libcurl/c/CURLOPT_FTP_CREATE_MISSING_DIRS.html) */ readonly FTP_CREATE_MISSING_DIRS: 'FTP_CREATE_MISSING_DIRS'; /** * Specify how to reach files. * * @Link [`CURLOPT_FTP_FILEMETHOD`](https://curl.haxx.se/libcurl/c/CURLOPT_FTP_FILEMETHOD.html) */ readonly FTP_FILEMETHOD: 'FTP_FILEMETHOD'; /** * Ignore the IP address in the PASV response. * * @Link [`CURLOPT_FTP_SKIP_PASV_IP`](https://curl.haxx.se/libcurl/c/CURLOPT_FTP_SKIP_PASV_IP.html) */ readonly FTP_SKIP_PASV_IP: 'FTP_SKIP_PASV_IP'; /** * Back to non-TLS again after authentication. * * @Link [`CURLOPT_FTP_SSL_CCC`](https://curl.haxx.se/libcurl/c/CURLOPT_FTP_SSL_CCC.html) */ readonly FTP_SSL_CCC: 'FTP_SSL_CCC'; /** * Use EPRT. * * @Link [`CURLOPT_FTP_USE_EPRT`](https://curl.haxx.se/libcurl/c/CURLOPT_FTP_USE_EPRT.html) */ readonly FTP_USE_EPRT: 'FTP_USE_EPRT'; /** * Use EPSV. * * @Link [`CURLOPT_FTP_USE_EPSV`](https://curl.haxx.se/libcurl/c/CURLOPT_FTP_USE_EPSV.html) */ readonly FTP_USE_EPSV: 'FTP_USE_EPSV'; /** * Use PRET. * * @Link [`CURLOPT_FTP_USE_PRET`](https://curl.haxx.se/libcurl/c/CURLOPT_FTP_USE_PRET.html) */ readonly FTP_USE_PRET: 'FTP_USE_PRET'; /** * Use active FTP. * * @Link [`CURLOPT_FTPPORT`](https://curl.haxx.se/libcurl/c/CURLOPT_FTPPORT.html) */ readonly FTPPORT: 'FTPPORT'; /** * Control how to do TLS. * * @Link [`CURLOPT_FTPSSLAUTH`](https://curl.haxx.se/libcurl/c/CURLOPT_FTPSSLAUTH.html) */ readonly FTPSSLAUTH: 'FTPSSLAUTH'; /** * Disable GSS-API delegation. * * @Link [`CURLOPT_GSSAPI_DELEGATION`](https://curl.haxx.se/libcurl/c/CURLOPT_GSSAPI_DELEGATION.html) */ readonly GSSAPI_DELEGATION: 'GSSAPI_DELEGATION'; /** * Timeout for happy eyeballs. * * @Link [`CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS`](https://curl.haxx.se/libcurl/c/CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.html) */ readonly HAPPY_EYEBALLS_TIMEOUT_MS: 'HAPPY_EYEBALLS_TIMEOUT_MS'; /** * Spoof the client IP in an HAProxy PROXY protocol v1 header. * * @Link [`CURLOPT_HAPROXY_CLIENT_IP`](https://curl.haxx.se/libcurl/c/CURLOPT_HAPROXY_CLIENT_IP.html) */ readonly HAPROXY_CLIENT_IP: 'HAPROXY_CLIENT_IP'; /** * Send an HAProxy PROXY protocol v1 header. * * @Link [`CURLOPT_HAPROXYPROTOCOL`](https://curl.haxx.se/libcurl/c/CURLOPT_HAPROXYPROTOCOL.html) */ readonly HAPROXYPROTOCOL: 'HAPROXYPROTOCOL'; /** * Include the header in the body output. * * @Link [`CURLOPT_HEADER`](https://curl.haxx.se/libcurl/c/CURLOPT_HEADER.html) */ readonly HEADER: 'HEADER'; /** * Callback for writing received headers. * * @Link [`CURLOPT_HEADERFUNCTION`](https://curl.haxx.se/libcurl/c/CURLOPT_HEADERFUNCTION.html) */ readonly HEADERFUNCTION: 'HEADERFUNCTION'; /** * Control custom headers. * * @Link [`CURLOPT_HEADEROPT`](https://curl.haxx.se/libcurl/c/CURLOPT_HEADEROPT.html) */ readonly HEADEROPT: 'HEADEROPT'; /** * Set HSTS cache file. * * @Link [`CURLOPT_HSTS`](https://curl.haxx.se/libcurl/c/CURLOPT_HSTS.html) */ readonly HSTS: 'HSTS'; /** * Enable HSTS. * * @Link [`CURLOPT_HSTS_CTRL`](https://curl.haxx.se/libcurl/c/CURLOPT_HSTS_CTRL.html) */ readonly HSTS_CTRL: 'HSTS_CTRL'; /** * Set HSTS read callback. * * You can either return a single `CurlHstsReadCallbackResult` object or an array of `CurlHstsReadCallbackResult` objects. * If returning an array, the callback will only be called once per request. * If returning a single object, the callback will be called multiple times until `null` is returned. * * @Link [`CURLOPT_HSTSREADFUNCTION`](https://curl.haxx.se/libcurl/c/CURLOPT_HSTSREADFUNCTION.html) */ readonly HSTSREADFUNCTION: 'HSTSREADFUNCTION'; /** * Set HSTS write callback. * * @Link [`CURLOPT_HSTSWRITEFUNCTION`](https://curl.haxx.se/libcurl/c/CURLOPT_HSTSWRITEFUNCTION.html) */ readonly HSTSWRITEFUNCTION: 'HSTSWRITEFUNCTION'; /** * Disable Content decoding. * * @Link [`CURLOPT_HTTP_CONTENT_DECODING`](https://curl.haxx.se/libcurl/c/CURLOPT_HTTP_CONTENT_DECODING.html) */ readonly HTTP_CONTENT_DECODING: 'HTTP_CONTENT_DECODING'; /** * Disable Transfer decoding. * * @Link [`CURLOPT_HTTP_TRANSFER_DECODING`](https://curl.haxx.se/libcurl/c/CURLOPT_HTTP_TRANSFER_DECODING.html) */ readonly HTTP_TRANSFER_DECODING: 'HTTP_TRANSFER_DECODING'; /** * HTTP version to use. * * @Link [`CURLOPT_HTTP_VERSION`](https://curl.haxx.se/libcurl/c/CURLOPT_HTTP_VERSION.html) */ readonly HTTP_VERSION: 'HTTP_VERSION'; /** * Allow HTTP/0.9 responses. * * @Link [`CURLOPT_HTTP09_ALLOWED`](https://curl.haxx.se/libcurl/c/CURLOPT_HTTP09_ALLOWED.html) */ readonly HTTP09_ALLOWED: 'HTTP09_ALLOWED'; /** * curl-impersonate: Do not set the priority bit in http2 header frame. * * @Link [`CURLOPT_HTTP2_NO_PRIORITY`](https://github.com/lexiforest/curl-impersonate/blob/2447279b1a388ba907f4bfe4fe02aadd1dc24376/patches/curl.patch#L188) */ readonly HTTP2_NO_PRIORITY: 'HTTP2_NO_PRIORITY'; /** * curl-impersonate: Set the order of the HTTP/2 pseudo headers. The value must contain the letters 'm', 'a', 's', 'p' representing the pseudo-headers ":method", ":authority", ":scheme", ":path" in the desired order of appearance in the HTTP/2 HEADERS frame. * * @Link [`CURLOPT_HTTP2_PSEUDO_HEADERS_ORDER`](https://github.com/lexiforest/curl-impersonate/blob/2447279b1a388ba907f4bfe4fe02aadd1dc24376/patches/curl.patch#L140) */ readonly HTTP2_PSEUDO_HEADERS_ORDER: 'HTTP2_PSEUDO_HEADERS_ORDER'; /** * curl-impersonate: HTTP2 settings frame keys and values, format: 1:v;2:v;3:v. * * @Link [`CURLOPT_HTTP2_SETTINGS`](https://github.com/lexiforest/curl-impersonate/blob/2447279b1a388ba907f4bfe4fe02aadd1dc24376/patches/curl.patch#L143) */ readonly HTTP2_SETTINGS: 'HTTP2_SETTINGS'; /** * curl-impersonate: Set the initial streams settings for http2. * * @Link [`CURLOPT_HTTP2_STREAMS`](https://github.com/lexiforest/curl-impersonate/blob/2447279b1a388ba907f4bfe4fe02aadd1dc24376/patches/curl.patch#L155) */ readonly HTTP2_STREAMS: 'HTTP2_STREAMS'; /** * curl-impersonate: HTTP2 initial window update. * * @Link [`CURLOPT_HTTP2_WINDOW_UPDATE`](https://github.com/lexiforest/curl-impersonate/blob/2447279b1a388ba907f4bfe4fe02aadd1dc24376/patches/curl.patch#L152) */ readonly HTTP2_WINDOW_UPDATE: 'HTTP2_WINDOW_UPDATE'; /** * Alternative versions of 200 OK. * * @Link [`CURLOPT_HTTP200ALIASES`](https://curl.haxx.se/libcurl/c/CURLOPT_HTTP200ALIASES.html) */ readonly HTTP200ALIASES: 'HTTP200ALIASES'; /** * HTTP server authentication methods. * * @Link [`CURLOPT_HTTPAUTH`](https://curl.haxx.se/libcurl/c/CURLOPT_HTTPAUTH.html) */ readonly HTTPAUTH: 'HTTPAUTH'; /** * curl-impersonate: A list of headers used by the impersonated browser. If given, merged with CURLOPT_HTTPHEADER. * * @Link [`CURLOPT_HTTPBASEHEADER`](https://github.com/lexiforest/curl-impersonate/blob/2447279b1a388ba907f4bfe4fe02aadd1dc24376/patches/curl.patch#L111) */ readonly HTTPBASEHEADER: 'HTTPBASEHEADER'; /** * Do an HTTP GET request. * * @Link [`CURLOPT_HTTPGET`](https://curl.haxx.se/libcurl/c/CURLOPT_HTTPGET.html) */ readonly HTTPGET: 'HTTPGET'; /** * Custom HTTP headers. * * @Link [`CURLOPT_HTTPHEADER`](https://curl.haxx.se/libcurl/c/CURLOPT_HTTPHEADER.html) */ readonly HTTPHEADER: 'HTTPHEADER'; /** * Deprecated option Multipart formpost HTTP POST. * * @Link [`CURLOPT_HTTPPOST`](https://curl.haxx.se/libcurl/c/CURLOPT_HTTPPOST.html) */ readonly HTTPPOST: 'HTTPPOST'; /** * Tunnel through the HTTP proxy. * * @Link [`CURLOPT_HTTPPROXYTUNNEL`](https://curl.haxx.se/libcurl/c/CURLOPT_HTTPPROXYTUNNEL.html) */ readonly HTTPPROXYTUNNEL: 'HTTPPROXYTUNNEL'; /** * Ignore Content-Length. * * @Link [`CURLOPT_IGNORE_CONTENT_LENGTH`](https://curl.haxx.se/libcurl/c/CURLOPT_IGNORE_CONTENT_LENGTH.html) */ readonly IGNORE_CONTENT_LENGTH: 'IGNORE_CONTENT_LENGTH'; /** * curl-impersonate: The master option for setting an impersonate target * * @Link [`CURLOPT_IMPERSONATE`](https://github.com/lexiforest/curl-impersonate/blob/2447279b1a388ba907f4bfe4fe02aadd1dc24376/patches/curl.patch#L107) */ readonly IMPERSONATE: 'IMPERSONATE'; /** * Size of file to send. * * @Link [`CURLOPT_INFILESIZE`](https://curl.haxx.se/libcurl/c/CURLOPT_INFILESIZE.html) */ readonly INFILESIZE: 'INFILESIZE'; /** * Size of file to send. * * @Link [`CURLOPT_INFILESIZE_LARGE`](https://curl.haxx.se/libcurl/c/CURLOPT_INFILESIZE_LARGE.html) */ readonly INFILESIZE_LARGE: 'INFILESIZE_LARGE'; /** * Bind connection locally to this. * * @Link [`CURLOPT_INTERFACE`](https://curl.haxx.se/libcurl/c/CURLOPT_INTERFACE.html) */ readonly INTERFACE: 'INTERFACE'; /** * IP version to use. * * @Link [`CURLOPT_IPRESOLVE`](https://curl.haxx.se/libcurl/c/CURLOPT_IPRESOLVE.html) */ readonly IPRESOLVE: 'IPRESOLVE'; /** * Issuer certificate. * * @Link [`CURLOPT_ISSUERCERT`](https://curl.haxx.se/libcurl/c/CURLOPT_ISSUERCERT.html) */ readonly ISSUERCERT: 'ISSUERCERT'; /** * Issuer certificate memory buffer. * * @Link [`CURLOPT_ISSUERCERT_BLOB`](https://curl.haxx.se/libcurl/c/CURLOPT_ISSUERCERT_BLOB.html) */ readonly ISSUERCERT_BLOB: 'ISSUERCERT_BLOB'; /** * Keep sending on HTTP \>= 300 errors. * * @Link [`CURLOPT_KEEP_SENDING_ON_ERROR`](https://curl.haxx.se/libcurl/c/CURLOPT_KEEP_SENDING_ON_ERROR.html) */ readonly KEEP_SENDING_ON_ERROR: 'KEEP_SENDING_ON_ERROR'; /** * Client key password. * * @Link [`CURLOPT_KEYPASSWD`](https://curl.haxx.se/libcurl/c/CURLOPT_KEYPASSWD.html) */ readonly KEYPASSWD: 'KEYPASSWD'; /** * OBSOLETE. Kerberos security level. * * @Link [`CURLOPT_KRBLEVEL`](https://curl.haxx.se/libcurl/c/CURLOPT_KRBLEVEL.html) */ readonly KRBLEVEL: 'KRBLEVEL'; /** * Bind connection locally to this port. * * @Link [`CURLOPT_LOCALPORT`](https://curl.haxx.se/libcurl/c/CURLOPT_LOCALPORT.html) */ readonly LOCALPORT: 'LOCALPORT'; /** * Bind connection locally to port range. * * @Link [`CURLOPT_LOCALPORTRANGE`](https://curl.haxx.se/libcurl/c/CURLOPT_LOCALPORTRANGE.html) */ readonly LOCALPORTRANGE: 'LOCALPORTRANGE'; /** * Login options. * * @Link [`CURLOPT_LOGIN_OPTIONS`](https://curl.haxx.se/libcurl/c/CURLOPT_LOGIN_OPTIONS.html) */ readonly LOGIN_OPTIONS: 'LOGIN_OPTIONS'; /** * Low speed limit to abort transfer. * * @Link [`CURLOPT_LOW_SPEED_LIMIT`](https://curl.haxx.se/libcurl/c/CURLOPT_LOW_SPEED_LIMIT.html) */ readonly LOW_SPEED_LIMIT: 'LOW_SPEED_LIMIT'; /** * Time to be below the speed to trigger low speed abort. * * @Link [`CURLOPT_LOW_SPEED_TIME`](https://curl.haxx.se/libcurl/c/CURLOPT_LOW_SPEED_TIME.html) */ readonly LOW_SPEED_TIME: 'LOW_SPEED_TIME'; /** * Authentication address. * * @Link [`CURLOPT_MAIL_AUTH`](https://curl.haxx.se/libcurl/c/CURLOPT_MAIL_AUTH.html) */ readonly MAIL_AUTH: 'MAIL_AUTH'; /** * Address of the sender. * * @Link [`CURLOPT_MAIL_FROM`](https://curl.haxx.se/libcurl/c/CURLOPT_MAIL_FROM.html) */ readonly MAIL_FROM: 'MAIL_FROM'; /** * Address of the recipients. * * @Link [`CURLOPT_MAIL_RCPT`](https://curl.haxx.se/libcurl/c/CURLOPT_MAIL_RCPT.html) */ readonly MAIL_RCPT: 'MAIL_RCPT'; /** * Allow RCPT TO command to fail for some recipients. * * @Link [`CURLOPT_MAIL_RCPT_ALLOWFAILS`](https://curl.haxx.se/libcurl/c/CURLOPT_MAIL_RCPT_ALLOWFAILS.html) */ readonly MAIL_RCPT_ALLOWFAILS: 'MAIL_RCPT_ALLOWFAILS'; /** * Cap the download speed to this. * * @Link [`CURLOPT_MAX_RECV_SPEED_LARGE`](https://curl.haxx.se/libcurl/c/CURLOPT_MAX_RECV_SPEED_LARGE.html) */ readonly MAX_RECV_SPEED_LARGE: 'MAX_RECV_SPEED_LARGE'; /** * Cap the upload speed to this. * * @Link [`CURLOPT_MAX_SEND_SPEED_LARGE`](https://curl.haxx.se/libcurl/c/CURLOPT_MAX_SEND_SPEED_LARGE.html) */ readonly MAX_SEND_SPEED_LARGE: 'MAX_SEND_SPEED_LARGE'; /** * Limit the age (idle time) of connections for reuse. * * @Link [`CURLOPT_MAXAGE_CONN`](https://curl.haxx.se/libcurl/c/CURLOPT_MAXAGE_CONN.html) */ readonly MAXAGE_CONN: 'MAXAGE_CONN'; /** * Maximum number of connections in the connection pool. * * @Link [`CURLOPT_MAXCONNECTS`](https://curl.haxx.se/libcurl/c/CURLOPT_MAXCONNECTS.html) */ readonly MAXCONNECTS: 'MAXCONNECTS'; /** * Maximum file size to get. * * @Link [`CURLOPT_MAXFILESIZE`](https://curl.haxx.se/libcurl/c/CURLOPT_MAXFILESIZE.html) */ readonly MAXFILESIZE: 'MAXFILESIZE'; /** * Maximum file size to get. * * @Link [`CURLOPT_MAXFILESIZE_LARGE`](https://curl.haxx.se/libcurl/c/CURLOPT_MAXFILESIZE_LARGE.html) */ readonly MAXFILESIZE_LARGE: 'MAXFILESIZE_LARGE'; /** * Limit the age (since creation) of connections for reuse. * * @Link [`CURLOPT_MAXLIFETIME_CONN`](https://curl.haxx.se/libcurl/c/CURLOPT_MAXLIFETIME_CONN.html) */ readonly MAXLIFETIME_CONN: 'MAXLIFETIME_CONN'; /** * Maximum number of redirects to follow. * * @Link [`CURLOPT_MAXREDIRS`](https://curl.haxx.se/libcurl/c/CURLOPT_MAXREDIRS.html) */ readonly MAXREDIRS: 'MAXREDIRS'; /** * Enable .netrc parsing. * * @Link [`CURLOPT_NETRC`](https://curl.haxx.se/libcurl/c/CURLOPT_NETRC.html) */ readonly NETRC: 'NETRC'; /** * .netrc filename. * * @Link [`CURLOPT_NETRC_FILE`](https://curl.haxx.se/libcurl/c/CURLOPT_NETRC_FILE.html) */ readonly NETRC_FILE: 'NETRC_FILE'; /** * Mode for creating new remote directories. * * @Link [`CURLOPT_NEW_DIRECTORY_PERMS`](https://curl.haxx.se/libcurl/c/CURLOPT_NEW_DIRECTORY_PERMS.html) */ readonly NEW_DIRECTORY_PERMS: 'NEW_DIRECTORY_PERMS'; /** * Mode for creating new remote files. * * @Link [`CURLOPT_NEW_FILE_PERMS`](https://curl.haxx.se/libcurl/c/CURLOPT_NEW_FILE_PERMS.html) */ readonly NEW_FILE_PERMS: 'NEW_FILE_PERMS'; /** * Do not get the body contents. * * @Link [`CURLOPT_NOBODY`](https://curl.haxx.se/libcurl/c/CURLOPT_NOBODY.html) */ readonly NOBODY: 'NOBODY'; /** * Shut off the progress meter. * * @Link [`CURLOPT_NOPROGRESS`](https://curl.haxx.se/libcurl/c/CURLOPT_NOPROGRESS.html) */ readonly NOPROGRESS: 'NOPROGRESS'; /** * Filter out hosts from proxy use. * * @Link [`CURLOPT_NOPROXY`](https://curl.haxx.se/libcurl/c/CURLOPT_NOPROXY.html) */ readonly NOPROXY: 'NOPROXY'; /** * Do not install signal handlers. * * @Link [`CURLOPT_NOSIGNAL`](https://curl.haxx.se/libcurl/c/CURLOPT_NOSIGNAL.html) */ readonly NOSIGNAL: 'NOSIGNAL'; /** * Password. * * @Link [`CURLOPT_PASSWORD`](https://curl.haxx.se/libcurl/c/CURLOPT_PASSWORD.html) */ readonly PASSWORD: 'PASSWORD'; /** * Disable squashing /../ and /./ sequences in the path. * * @Link [`CURLOPT_PATH_AS_IS`](https://curl.haxx.se/libcurl/c/CURLOPT_PATH_AS_IS.html) */ readonly PATH_AS_IS: 'PATH_AS_IS'; /** * Set pinned SSL public key . * * @Link [`CURLOPT_PINNEDPUBLICKEY`](https://curl.haxx.se/libcurl/c/CURLOPT_PINNEDPUBLICKEY.html) */ readonly PINNEDPUBLICKEY: 'PINNEDPUBLICKEY'; /** * Wait on connection to pipeline on it. * * @Link [`CURLOPT_PIPEWAIT`](https://curl.haxx.se/libcurl/c/CURLOPT_PIPEWAIT.html) */ readonly PIPEWAIT: 'PIPEWAIT'; /** * Port number to connect to. * * @Link [`CURLOPT_PORT`](https://curl.haxx.se/libcurl/c/CURLOPT_PORT.html) */ readonly PORT: 'PORT'; /** * Make an HTTP POST. * * @Link [`CURLOPT_POST`](https://curl.haxx.se/libcurl/c/CURLOPT_POST.html) */ readonly POST: 'POST'; /** * Send a POST with this data - does not copy it. * * @Link [`CURLOPT_POSTFIELDS`](https://curl.haxx.se/libcurl/c/CURLOPT_POSTFIELDS.html) */ readonly POSTFIELDS: 'POSTFIELDS'; /** * The POST data is this big. * * @Link [`CURLOPT_POSTFIELDSIZE`](https://curl.haxx.se/libcurl/c/CURLOPT_POSTFIELDSIZE.html) */ readonly POSTFIELDSIZE: 'POSTFIELDSIZE'; /** * The POST data is this big. * * @Link [`CURLOPT_POSTFIELDSIZE_LARGE`](https://curl.haxx.se/libcurl/c/CURLOPT_POSTFIELDSIZE_LARGE.html) */ readonly POSTFIELDSIZE_LARGE: 'POSTFIELDSIZE_LARGE'; /** * Commands to run after transfer. * * @Link [`CURLOPT_POSTQUOTE`](https://curl.haxx.se/libcurl/c/CURLOPT_POSTQUOTE.html) */ readonly POSTQUOTE: 'POSTQUOTE'; /** * How to act on redirects after POST. * * @Link [`CURLOPT_POSTREDIR`](https://curl.haxx.se/libcurl/c/CURLOPT_POSTREDIR.html) */ readonly POSTREDIR: 'POSTREDIR'; /** * Socks proxy to use. * * @Link [`CURLOPT_PRE_PROXY`](https://curl.haxx.se/libcurl/c/CURLOPT_PRE_PROXY.html) */ readonly PRE_PROXY: 'PRE_PROXY'; /** * Commands to run just before transfer. * * @Link [`CURLOPT_PREQUOTE`](https://curl.haxx.se/libcurl/c/CURLOPT_PREQUOTE.html) */ readonly PREQUOTE: 'PREQUOTE'; /** * Callback to be called after a connection is established but before a request is made on that connection. * * @Link [`CURLOPT_PREREQFUNCTION`](https://curl.haxx.se/libcurl/c/CURLOPT_PREREQFUNCTION.html) */ readonly PREREQFUNCTION: 'PREREQFUNCTION'; /** * OBSOLETE callback for progress meter. * * @Link [`CURLOPT_PROGRESSFUNCTION`](https://curl.haxx.se/libcurl/c/CURLOPT_PROGRESSFUNCTION.html) */ readonly PROGRESSFUNCTION: 'PROGRESSFUNCTION'; /** * Deprecated option Allowed protocols. * * @Link [`CURLOPT_PROTOCOLS`](https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html) */ readonly PROTOCOLS: 'PROTOCOLS'; /** * Allowed protocols. * * @Link [`CURLOPT_PROTOCOLS_STR`](https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS_STR.html) */ readonly PROTOCOLS_STR: 'PROTOCOLS_STR'; /** * Proxy to use. * * @Link [`CURLOPT_PROXY`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY.html) */ readonly PROXY: 'PROXY'; /** * Proxy CA cert bundle. * * @Link [`CURLOPT_PROXY_CAINFO`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_CAINFO.html) */ readonly PROXY_CAINFO: 'PROXY_CAINFO'; /** * Proxy CA cert bundle memory buffer. * * @Link [`CURLOPT_PROXY_CAINFO_BLOB`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_CAINFO_BLOB.html) */ readonly PROXY_CAINFO_BLOB: 'PROXY_CAINFO_BLOB'; /** * Path to proxy CA cert bundle. * * @Link [`CURLOPT_PROXY_CAPATH`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_CAPATH.html) */ readonly PROXY_CAPATH: 'PROXY_CAPATH'; /** * curl-impersonate: Do not reuse TLS sessions or connections from different proxy credentials. * * @Link [`CURLOPT_PROXY_CREDENTIAL_NO_REUSE`](https://github.com/lexiforest/curl-impersonate/blob/2447279b1a388ba907f4bfe4fe02aadd1dc24376/patches/curl.patch#L191) */ readonly PROXY_CREDENTIAL_NO_REUSE: 'PROXY_CREDENTIAL_NO_REUSE'; /** * Proxy Certificate Revocation List. * * @Link [`CURLOPT_PROXY_CRLFILE`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_CRLFILE.html) */ readonly PROXY_CRLFILE: 'PROXY_CRLFILE'; /** * Proxy issuer certificate. * * @Link [`CURLOPT_PROXY_ISSUERCERT`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_ISSUERCERT.html) */ readonly PROXY_ISSUERCERT: 'PROXY_ISSUERCERT'; /** * Proxy issuer certificate memory buffer. * * @Link [`CURLOPT_PROXY_ISSUERCERT_BLOB`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_ISSUERCERT_BLOB.html) */ readonly PROXY_ISSUERCERT_BLOB: 'PROXY_ISSUERCERT_BLOB'; /** * Proxy client key password. * * @Link [`CURLOPT_PROXY_KEYPASSWD`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_KEYPASSWD.html) */ readonly PROXY_KEYPASSWD: 'PROXY_KEYPASSWD'; /** * Set the proxy's pinned SSL public key. * * @Link [`CURLOPT_PROXY_PINNEDPUBLICKEY`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_PINNEDPUBLICKEY.html) */ readonly PROXY_PINNEDPUBLICKEY: 'PROXY_PINNEDPUBLICKEY'; /** * Proxy authentication service name. * * @Link [`CURLOPT_PROXY_SERVICE_NAME`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SERVICE_NAME.html) */ readonly PROXY_SERVICE_NAME: 'PROXY_SERVICE_NAME'; /** * Proxy ciphers to use. * * @Link [`CURLOPT_PROXY_SSL_CIPHER_LIST`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSL_CIPHER_LIST.html) */ readonly PROXY_SSL_CIPHER_LIST: 'PROXY_SSL_CIPHER_LIST'; /** * Control proxy SSL behavior. * * @Link [`CURLOPT_PROXY_SSL_OPTIONS`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSL_OPTIONS.html) */ readonly PROXY_SSL_OPTIONS: 'PROXY_SSL_OPTIONS'; /** * Verify the hostname in the proxy SSL certificate. * * @Link [`CURLOPT_PROXY_SSL_VERIFYHOST`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSL_VERIFYHOST.html) */ readonly PROXY_SSL_VERIFYHOST: 'PROXY_SSL_VERIFYHOST'; /** * Verify the proxy SSL certificate. * * @Link [`CURLOPT_PROXY_SSL_VERIFYPEER`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSL_VERIFYPEER.html) */ readonly PROXY_SSL_VERIFYPEER: 'PROXY_SSL_VERIFYPEER'; /** * Proxy client cert. * * @Link [`CURLOPT_PROXY_SSLCERT`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSLCERT.html) */ readonly PROXY_SSLCERT: 'PROXY_SSLCERT'; /** * Proxy client cert memory buffer. * * @Link [`CURLOPT_PROXY_SSLCERT_BLOB`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSLCERT_BLOB.html) */ readonly PROXY_SSLCERT_BLOB: 'PROXY_SSLCERT_BLOB'; /** * Proxy client cert type. * * @Link [`CURLOPT_PROXY_SSLCERTTYPE`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSLCERTTYPE.html) */ readonly PROXY_SSLCERTTYPE: 'PROXY_SSLCERTTYPE'; /** * Proxy client key. * * @Link [`CURLOPT_PROXY_SSLKEY`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSLKEY.html) */ readonly PROXY_SSLKEY: 'PROXY_SSLKEY'; /** * Proxy client key. * * @Link [`CURLOPT_PROXY_SSLKEY_BLOB`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSLKEY_BLOB.html) */ readonly PROXY_SSLKEY_BLOB: 'PROXY_SSLKEY_BLOB'; /** * Proxy client key type. * * @Link [`CURLOPT_PROXY_SSLKEYTYPE`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSLKEYTYPE.html) */ readonly PROXY_SSLKEYTYPE: 'PROXY_SSLKEYTYPE'; /** * Proxy SSL version to use. * * @Link [`CURLOPT_PROXY_SSLVERSION`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_SSLVERSION.html) */ readonly PROXY_SSLVERSION: 'PROXY_SSLVERSION'; /** * Proxy TLS 1.3 cipher suites to use. * * @Link [`CURLOPT_PROXY_TLS13_CIPHERS`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_TLS13_CIPHERS.html) */ readonly PROXY_TLS13_CIPHERS: 'PROXY_TLS13_CIPHERS'; /** * Proxy TLS authentication password. * * @Link [`CURLOPT_PROXY_TLSAUTH_PASSWORD`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_TLSAUTH_PASSWORD.html) */ readonly PROXY_TLSAUTH_PASSWORD: 'PROXY_TLSAUTH_PASSWORD'; /** * Proxy TLS authentication methods. * * @Link [`CURLOPT_PROXY_TLSAUTH_TYPE`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_TLSAUTH_TYPE.html) */ readonly PROXY_TLSAUTH_TYPE: 'PROXY_TLSAUTH_TYPE'; /** * Proxy TLS authentication username. * * @Link [`CURLOPT_PROXY_TLSAUTH_USERNAME`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_TLSAUTH_USERNAME.html) */ readonly PROXY_TLSAUTH_USERNAME: 'PROXY_TLSAUTH_USERNAME'; /** * Add transfer mode to URL over proxy. * * @Link [`CURLOPT_PROXY_TRANSFER_MODE`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_TRANSFER_MODE.html) */ readonly PROXY_TRANSFER_MODE: 'PROXY_TRANSFER_MODE'; /** * HTTP proxy authentication methods. * * @Link [`CURLOPT_PROXYAUTH`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXYAUTH.html) */ readonly PROXYAUTH: 'PROXYAUTH'; /** * Custom HTTP headers sent to proxy. * * @Link [`CURLOPT_PROXYHEADER`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXYHEADER.html) */ readonly PROXYHEADER: 'PROXYHEADER'; /** * Proxy password. * * @Link [`CURLOPT_PROXYPASSWORD`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXYPASSWORD.html) */ readonly PROXYPASSWORD: 'PROXYPASSWORD'; /** * Proxy port to use. * * @Link [`CURLOPT_PROXYPORT`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXYPORT.html) */ readonly PROXYPORT: 'PROXYPORT'; /** * Proxy type. * * @Link [`CURLOPT_PROXYTYPE`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXYTYPE.html) */ readonly PROXYTYPE: 'PROXYTYPE'; /** * Proxy username. * * @Link [`CURLOPT_PROXYUSERNAME`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXYUSERNAME.html) */ readonly PROXYUSERNAME: 'PROXYUSERNAME'; /** * Proxy username and password. * * @Link [`CURLOPT_PROXYUSERPWD`](https://curl.haxx.se/libcurl/c/CURLOPT_PROXYUSERPWD.html) */ readonly PROXYUSERPWD: 'PROXYUSERPWD'; /** * Deprecated option Issue an HTTP PUT request. * * @Link [`CURLOPT_PUT`](https://curl.haxx.se/libcurl/c/CURLOPT_PUT.html) */ readonly PUT: 'PUT'; /** * To be set by toplevel tools like "curl" to skip lengthy cleanups when they are about to call exit() anyway. * * @Link [`CURLOPT_QUICK_EXIT`](https://curl.haxx.se/libcurl/c/CURLOPT_QUICK_EXIT.html) */ readonly QUICK_EXIT: 'QUICK_EXIT'; /** * Commands to run before transfer. * * @Link [`CURLOPT_QUOTE`](https://curl.haxx.se/libcurl/c/CURLOPT_QUOTE.html) */ readonly QUOTE: 'QUOTE'; /** * OBSOLETE Provide source for entropy random data. * * @Link [`CURLOPT_RANDOM_FILE`](https://curl.haxx.se/libcurl/c/CURLOPT_RANDOM_FILE.html) */ readonly RANDOM_FILE: 'RANDOM_FILE'; /** * Range requests. * * @Link [`CURLOPT_RANGE`](https://curl.haxx.se/libcurl/c/CURLOPT_RANGE.html) */ readonly RANGE: 'RANGE'; /** * Data pointer to pass to the read callback. * * @Link [`CURLOPT_READDATA`](https://curl.haxx.se/libcurl/c/CURLOPT_READDATA.html) */ readonly READDATA: 'READDATA'; /** * Callback for reading data. * * @Link [`CURLOPT_READFUNCTION`](https://curl.haxx.se/libcurl/c/CURLOPT_READFUNCTION.html) */ readonly READFUNCTION: 'READFUNCTION'; /** * Deprecated option Protocols to allow redirects to. * * @Link [`CURLOPT_REDIR_PROTOCOLS`](https://curl.haxx.se/libcurl/c/CURLOPT_REDIR_PROTOCOLS.html) */ readonly REDIR_PROTOCOLS: 'REDIR_PROTOCOLS'; /** * Protocols to allow redirects to. * * @Link [`CURLOPT_REDIR_PROTOCOLS_STR`](https://curl.haxx.se/libcurl/c/CURLOPT_REDIR_PROTOCOLS_STR.html) */ readonly REDIR_PROTOCOLS_STR: 'REDIR_PROTOCOLS_STR'; /** * Referer: header. * * @Link [`CURLOPT_REFERER`](https://curl.haxx.se/libcurl/c/CURLOPT_REFERER.html) */ readonly REFERER: 'REFERER'; /** * Set the request target. * * @Link [`CURLOPT_REQUEST_TARGET`](https://curl.haxx.se/libcurl/c/CURLOPT_REQUEST_TARGET.html) */ readonly REQUEST_TARGET: 'REQUEST_TARGET'; /** * Provide fixed/fake name resolves. * * @Link [`CURLOPT_RESOLVE`](https://curl.haxx.se/libcurl/c/CURLOPT_RESOLVE.html) */ readonly RESOLVE: 'RESOLVE'; /** * Resume a transfer. * * @Link [`CURLOPT_RESUME_FROM`](https://curl.haxx.se/libcurl/c/CURLOPT_RESUME_FROM.html) */ readonly RESUME_FROM: 'RESUME_FROM'; /** * Resume a transfer. * * @Link [`CURLOPT_RESUME_FROM_LARGE`](https://curl.haxx.se/libcurl/c/CURLOPT_RESUME_FROM_LARGE.html) */ readonly RESUME_FROM_LARGE: 'RESUME_FROM_LARGE'; /** * Client CSEQ number. * * @Link [`CURLOPT_RTSP_CLIENT_CSEQ`](https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_CLIENT_CSEQ.html) */ readonly RTSP_CLIENT_CSEQ: 'RTSP_CLIENT_CSEQ'; /** * RTSP request. * * @Link [`CURLOPT_RTSP_REQUEST`](https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_REQUEST.html) */ readonly RTSP_REQUEST: 'RTSP_REQUEST'; /** * CSEQ number for RTSP Server-\>Client request. * * @Link [`CURLOPT_RTSP_SERVER_CSEQ`](https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_SERVER_CSEQ.html) */ readonly RTSP_SERVER_CSEQ: 'RTSP_SERVER_CSEQ'; /** * RTSP session-id. * * @Link [`CURLOPT_RTSP_SESSION_ID`](https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_SESSION_ID.html) */ readonly RTSP_SESSION_ID: 'RTSP_SESSION_ID'; /** * RTSP stream URI. * * @Link [`CURLOPT_RTSP_STREAM_URI`](https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_STREAM_URI.html) */ readonly RTSP_STREAM_URI: 'RTSP_STREAM_URI'; /** * RTSP Transport: header. * * @Link [`CURLOPT_RTSP_TRANSPORT`](https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_TRANSPORT.html) */ readonly RTSP_TRANSPORT: 'RTSP_TRANSPORT'; /** * SASL authorization identity (identity to act as). * * @Link [`CURLOPT_SASL_AUTHZID`](https://curl.haxx.se/libcurl/c/CURLOPT_SASL_AUTHZID.html) */ readonly SASL_AUTHZID: 'SASL_AUTHZID'; /** * Enable SASL initial response. * * @Link [`CURLOPT_SASL_IR`](https://curl.haxx.se/libcurl/c/CURLOPT_SASL_IR.html) */ readonly SASL_IR: 'SASL_IR'; /** * Callback for seek operations. * * @Link [`CURLOPT_SEEKFUNCTION`](https://curl.haxx.se/libcurl/c/CURLOPT_SEEKFUNCTION.html) */ readonly SEEKFUNCTION: 'SEEKFUNCTION'; /** * Timeout for server responses. * * @Link [`CURLOPT_SERVER_RESPONSE_TIMEOUT`](https://curl.haxx.se/libcurl/c/CURLOPT_SERVER_RESPONSE_TIMEOUT.html) */ readonly SERVER_RESPONSE_TIMEOUT: 'SERVER_RESPONSE_TIMEOUT'; /** * Timeout for server responses. * * @Link [`CURLOPT_SERVER_RESPONSE_TIMEOUT_MS`](https://curl.haxx.se/libcurl/c/CURLOPT_SERVER_RESPONSE_TIMEOUT_MS.html) */ readonly SERVER_RESPONSE_TIMEOUT_MS: 'SERVER_RESPONSE_TIMEOUT_MS'; /** * Authentication service name. * * @Link [`CURLOPT_SERVICE_NAME`](https://curl.haxx.se/libcurl/c/CURLOPT_SERVICE_NAME.html) */ readonly SERVICE_NAME: 'SERVICE_NAME'; /** * Share object to use. * * @Link [`CURLOPT_SHARE`](https://curl.haxx.se/libcurl/c/CURLOPT_SHARE.html) */ readonly SHARE: 'SHARE'; /** * Socks5 authentication methods. * * @Link [`CURLOPT_SOCKS5_AUTH`](https://curl.haxx.se/libcurl/c/CURLOPT_SOCKS5_AUTH.html) */ readonly SOCKS5_AUTH: 'SOCKS5_AUTH'; /** * Socks5 GSSAPI NEC mode. * * @Link [`CURLOPT_SOCKS5_GSSAPI_NEC`](https://curl.haxx.se/libcurl/c/CURLOPT_SOCKS5_GSSAPI_NEC.html) */ readonly SOCKS5_GSSAPI_NEC: 'SOCKS5_GSSAPI_NEC'; /** * Deprecated option Socks5 GSSAPI service name. * * @Link [`CURLOPT_SOCKS5_GSSAPI_SERVICE`](https://curl.haxx.se/libcurl/c/CURLOPT_SOCKS5_GSSAPI_SERVICE.html) */ readonly SOCKS5_GSSAPI_SERVICE: 'SOCKS5_GSSAPI_SERVICE'; /** * SSH authentication types. * * @Link [`CURLOPT_SSH_AUTH_TYPES`](https://curl.haxx.se/libcurl/c/CURLOPT_SSH_AUTH_TYPES.html) */ readonly SSH_AUTH_TYPES: 'SSH_AUTH_TYPES'; /** * Enable SSH compression. * * @Link [`CURLOPT_SSH_COMPRESSION`](https://curl.haxx.se/libcurl/c/CURLOPT_SSH_COMPRESSION.html) */ readonly SSH_COMPRESSION: 'SSH_COMPRESSION'; /** * MD5 of host's public key. * * @Link [`CURLOPT_SSH_HOST_PUBLIC_KEY_MD5`](https://curl.haxx.se/libcurl/c/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.html) */ readonly SSH_HOST_PUBLIC_KEY_MD5: 'SSH_HOST_PUBLIC_KEY_MD5'; /** * Custom pointer to pass to ssh host key callback. * * @Link [`CURLOPT_SSH_HOSTKEYDATA`](https://curl.haxx.se/libcurl/c/CURLOPT_SSH_HOSTKEYDATA.html) */ readonly SSH_HOSTKEYDATA: 'SSH_HOSTKEYDATA'; /** * Filename with known hosts. * * @Link [`CURLOPT_SSH_KNOWNHOSTS`](https://curl.haxx.se/libcurl/c/CURLOPT_SSH_KNOWNHOSTS.html) */ readonly SSH_KNOWNHOSTS: 'SSH_KNOWNHOSTS'; /** * Filename of the private key. * * @Link [`CURLOPT_SSH_PRIVATE_KEYFILE`](https://curl.haxx.se/libcurl/c/CURLOPT_SSH_PRIVATE_KEYFILE.html) */ readonly SSH_PRIVATE_KEYFILE: 'SSH_PRIVATE_KEYFILE'; /** * Filename of the public key. * * @Link [`CURLOPT_SSH_PUBLIC_KEYFILE`](https://curl.haxx.se/libcurl/c/CURLOPT_SSH_PUBLIC_KEYFILE.html) */ readonly SSH_PUBLIC_KEYFILE: 'SSH_PUBLIC_KEYFILE'; /** * curl-impersonate: : Comma-separated list of certificate compression algorithms to use. These are published in the client hello. Supported algorithms are "zlib" and "brotli". See https://datatracker.ietf.org/doc/html/rfc8879. * * @Link [`CURLOPT_SSL_CERT_COMPRESSION`](https://github.com/lexiforest/curl-impersonate/blob/2447279b1a388ba907f4bfe4fe02aadd1dc24376/patches/curl.patch#L128) */ readonly SSL_CERT_COMPRESSION: 'SSL_CERT_COMPRESSION'; /** * Ciphers to use. * * @Link [`CURLOPT_SSL_CIPHER_LIST`](https://curl.haxx.se/libcurl/c/CURLOPT_SSL_CIPHER_LIST.html) */ readonly SSL_CIPHER_LIST: 'SSL_CIPHER_LIST'; /** * Set key exchange curves. * * @Link [`CURLOPT_SSL_EC_CURVES`](https://curl.haxx.se/libcurl/c/CURLOPT_SSL_EC_CURVES.html) */ readonly SSL_EC_CURVES: 'SSL_EC_CURVES'; /** * Enable use of ALPN. * * @Link [`CURLOPT_SSL_ENABLE_ALPN`](https://curl.haxx.se/libcurl/c/CURLOPT_SSL_ENABLE_ALPN.html) */ readonly SSL_ENABLE_ALPN: 'SSL_ENABLE_ALPN'; /** * curl-impersonate: Whether to enable ALPS in TLS or not. See https://datatracker.ietf.org/doc/html/draft-vvv-tls-alps. Support for ALPS is minimal and is intended only for the TLS client hello to match. * * @Link [`CURLOPT_SSL_ENABLE_ALPS`](https://github.com/lexiforest/curl-impersonate/blob/2447279b1a388ba907f4bfe4fe02aadd1dc24376/patches/curl.patch#L122) */ readonly SSL_ENABLE_ALPS: 'SSL_ENABLE_ALPS'; /** * OBSOLETE Enable use of NPN. * * @Link [`CURLOPT_SSL_ENABLE_NPN`](https://curl.haxx.se/libcurl/c/CURLOPT_SSL_ENABLE_NPN.html) */ readonly SSL_ENABLE_NPN: 'SSL_ENABLE_NPN'; /** * curl-impersonate: Enable/disable TLS session ticket extension (RFC5077). * * @Link [`CURLOPT_SSL_ENABLE_TICKET`](https://github.com/lexiforest/curl-impersonate/blob/2447279b1a388ba907f4bfe4fe02aadd1dc24376/patches/curl.patch#L131) */ readonly SSL_ENABLE_TICKET: 'SSL_ENABLE_TICKET'; /** * Deprecated option Enable TLS False Start. * * @Link [`CURLOPT_SSL_FALSESTART`](https://curl.haxx.se/libcurl/c/CURLOPT_SSL_FALSESTART.html) */ readonly SSL_FALSESTART: 'SSL_FALSESTART'; /** * Control SSL behavior. * * @Link [`CURLOPT_SSL_OPTIONS`](https://curl.haxx.se/libcurl/c/CURLOPT_SSL_OPTIONS.html) */ readonly SSL_OPTIONS: 'SSL_OPTIONS'; /** * curl-impersonate: Whether to enable Boringssl permute extensions. See https://commondatastorage.googleapis.com/chromium-boringssl-docs/ssl.h.html#SSL_set_permute_extensions. * * @Link [`CURLOPT_SSL_PERMUTE_EXTENSIONS`](https://github.com/lexiforest/curl-impersonate/blob/2447279b1a388ba907f4bfe4fe02aadd1dc24376/patches/curl.patch#L149) */ readonly SSL_PERMUTE_EXTENSIONS: 'SSL_PERMUTE_EXTENSIONS'; /** * Disable SSL session-id cache. * * @Link [`CURLOPT_SSL_SESSIONID_CACHE`](ht