node-libcurl-ja3
Version:
Node.js native bindings for libcurl-impersonate. Impersonate Chrome, Edge, Firefox and Safari TLS fingerprints.
52 lines • 3.08 kB
JavaScript
;
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["Chrome136"] = "chrome136";
ChromeBrowser["Chrome142"] = "chrome142";
ChromeBrowser["Chrome143"] = "chrome143";
ChromeBrowser["Chrome"] = "chrome143";
})(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_44cd,fe0d,0012,000a,0005,0017,ff01,001b,002b,0010,000b,000d,0000,0023,002d,0033_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 = '143';
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: "Google Chrome";v="${version}", "Chromium";v="${version}", "Not A(Brand";v="24"`,
'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.Chrome136]: getChromeConfig({ version: '136' }),
[ChromeBrowser.Chrome142]: getChromeConfig({ version: '142' }),
[ChromeBrowser.Chrome143]: getChromeConfig(),
};
//# sourceMappingURL=chrome.js.map