UNPKG

node-libcurl-ja3

Version:

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

50 lines 2.97 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CHROME_BROWSER_CONFIGS = exports.getChromeConfig = exports.DEFAULT_CHROME_VERSION = exports.DEFAULT_CHROME_FINGERPRINT = exports.ChromeBrowser = void 0; const fingerprint_1 = require("../fingerprint"); const util_1 = require("../util"); var ChromeBrowser; (function (ChromeBrowser) { ChromeBrowser["Chrome133"] = "chrome133a"; ChromeBrowser["Chrome134"] = "chrome134"; ChromeBrowser["Chrome"] = "chrome134"; })(ChromeBrowser || (exports.ChromeBrowser = ChromeBrowser = {})); exports.DEFAULT_CHROME_FINGERPRINT = { ja3: '771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,0-5-10-11-13-16-18-23-27-35-43-45-51-17613-65037-65281,4588-29-23-24,0', ja4: 't13d1516h2_1301,1302,1303,c02b,c02f,c02c,c030,cca9,cca8,c013,c014,009c,009d,002f,0035_0033,000b,0023,002b,000d,0000,ff01,0005,002d,000a,0010,0012,001b,fe0d,44cd,0017_0403,0804,0401,0503,0805,0501,0806,0601', akami: '1:65536;2:0;4:6291456;6:262144|15663105|0|m,a,s,p', }; exports.DEFAULT_CHROME_VERSION = '134'; function getChromeConfig(config) { var _a, _b, _c; const version = (_a = config === null || config === void 0 ? void 0 : config.version) !== null && _a !== void 0 ? _a : exports.DEFAULT_CHROME_VERSION; return (0, util_1.deepMerge)({ compressed: true, headers: (0, util_1.parseHeaders)([ `sec-ch-ua: "Not(A:Brand";v="99", "Google Chrome";v="${version}", "Chromium";v="${version}"`, 'sec-ch-ua-mobile: ?0', 'sec-ch-ua-platform: "Windows"', 'Upgrade-Insecure-Requests: 1', `User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/${version}.0.0.0 Safari/537.36`, 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7', 'Sec-Fetch-Site: none', 'Sec-Fetch-Mode: navigate', 'Sec-Fetch-User: ?1', 'Sec-Fetch-Dest: document', 'Accept-Encoding: gzip, deflate, br, zstd', 'Accept-Language: en-US,en;q=0.9', 'Priority: u=0, i', ]), http2StreamExclusive: 1, http2StreamWeight: 256, sslCertCompression: 'brotli', tlsGrease: true, tlsPermuteExtensions: true, }, (0, fingerprint_1.parseFingerprint)((0, util_1.deepMerge)(exports.DEFAULT_CHROME_FINGERPRINT, (_b = config === null || config === void 0 ? void 0 : config.fingerprint) !== null && _b !== void 0 ? _b : {})), (_c = config === null || config === void 0 ? void 0 : config.override) !== null && _c !== void 0 ? _c : {}); } exports.getChromeConfig = getChromeConfig; exports.CHROME_BROWSER_CONFIGS = { [ChromeBrowser.Chrome133]: getChromeConfig({ version: '133' }), [ChromeBrowser.Chrome134]: getChromeConfig(), }; //# sourceMappingURL=chrome.js.map