{"_id":"@auto-fetch/inject-fingerprint","_rev":"1-ac607d11b3e02f774b78c5cd5273808f","name":"@auto-fetch/inject-fingerprint","dist-tags":{"latest":"1.1.4"},"versions":{"1.1.3":{"name":"@auto-fetch/inject-fingerprint","version":"1.1.3","description":"Create Internal proxy to inject fingerprint","main":"index.js","dependencies":{"anyproxy":"^4.1.3","https-proxy-agent":"^5.0.0","moment":"^2.29.1","winston":"^3.3.3"},"devDependencies":{"chai":"^4.3.4","eslint":"^7.29.0","mocha":"^9.0.0","nodemon":"^2.0.7","selenium-webdriver":"^4.0.0-beta.4"},"scripts":{"test":"npx mocha test/fingerprint.test.js --timeout 999999","preversion":"npm test && git add .","publish-patch":"npm version patch && npm publish","publish-minor":"npm version minor && npm publish","publish-major":"npm version major && npm publish","postpublish":"git push"},"repository":{"type":"git","url":"git+https://github.com/laissonsilveira/inject-fingerprint.git"},"keywords":["Proxy","NodeJS","Fingerprint","Chrome","Crawler","WebDriver","Browser"],"author":{"name":"Laisson R. Silveira","email":"laisson.r.silveira@gmail.com","url":"https://laissonsilveira.github.io"},"license":"MIT","bugs":{"url":"https://github.com/laissonsilveira/inject-fingerprint/issues"},"homepage":"https://github.com/laissonsilveira/inject-fingerprint#readme","engines":{"node":">=10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"directories":{"lib":"lib"},"_id":"@auto-fetch/inject-fingerprint@1.1.3","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-drlgXeinCBDTykznJUOaWLHCh7KZ3R8hpEF5J7SDWy0G694r74vatlcaBL/JIwDZdnXdCkzzSZNFCB90WyBJnw==","shasum":"1a8ef54706d01f301abaa54834ec9439be347bec","tarball":"https://registry.npmjs.org/@auto-fetch/inject-fingerprint/-/inject-fingerprint-1.1.3.tgz","fileCount":11,"unpackedSize":38406,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHSaRXkz1MATePe1fet7o0ZpXaLVmfcpXC4yP3i/7eFUAiEA96pAaOSiwFTI6KqHcnPzHg7krptRDPJKu1VUU5etWMw="}]},"_npmUser":{"name":"zldoc88","email":"zldoc88@163.com"},"maintainers":[{"name":"zldoc88","email":"zldoc88@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inject-fingerprint_1.1.3_1691141563741_0.42245947413978713"},"_hasShrinkwrap":false},"1.1.4":{"name":"@auto-fetch/inject-fingerprint","version":"1.1.4","description":"Create Internal proxy to inject fingerprint","main":"index.js","dependencies":{"anyproxy":"^4.1.3","https-proxy-agent":"^5.0.0","moment":"^2.29.1","winston":"^3.3.3"},"devDependencies":{"chai":"^4.3.4","eslint":"^7.29.0","mocha":"^9.0.0","nodemon":"^2.0.7","selenium-webdriver":"^4.0.0-beta.4"},"scripts":{"test":"npx mocha test/fingerprint.test.js --timeout 999999","preversion":"npm test && git add .","publish-patch":"npm version patch && npm publish","publish-minor":"npm version minor && npm publish","publish-major":"npm version major && npm publish","postpublish":"git push"},"repository":{"type":"git","url":"git+https://github.com/laissonsilveira/inject-fingerprint.git"},"keywords":["Proxy","NodeJS","Fingerprint","Chrome","Crawler","WebDriver","Browser"],"author":{"name":"Laisson R. Silveira","email":"laisson.r.silveira@gmail.com","url":"https://laissonsilveira.github.io"},"license":"MIT","bugs":{"url":"https://github.com/laissonsilveira/inject-fingerprint/issues"},"homepage":"https://github.com/laissonsilveira/inject-fingerprint#readme","engines":{"node":">=10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"directories":{"lib":"lib"},"_id":"@auto-fetch/inject-fingerprint@1.1.4","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-FW0jT5p7xB4Itg1cgMLS7TFB66UL+hfL5JBaDXK0XCILI5esVOU0XuvHDLyqzEUVVXpN/HUbm0c5ervlh3ECWw==","shasum":"1d757eb8bf3289a80b3164d13ab1377f809c4b28","tarball":"https://registry.npmjs.org/@auto-fetch/inject-fingerprint/-/inject-fingerprint-1.1.4.tgz","fileCount":11,"unpackedSize":38406,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE0VEAUwsvILyT03qUF5eMrIXJmDlbAWkTkY2AVo57ACAiEA5/MjQX/TcS0gSrFYyRLOVgtrPvSmK6ZX+nhqcSRjbWk="}]},"_npmUser":{"name":"zldoc88","email":"zldoc88@163.com"},"maintainers":[{"name":"zldoc88","email":"zldoc88@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/inject-fingerprint_1.1.4_1691141723646_0.5764045420509631"},"_hasShrinkwrap":false}},"time":{"created":"2023-08-04T09:32:43.677Z","1.1.3":"2023-08-04T09:32:43.890Z","modified":"2023-08-04T09:35:23.964Z","1.1.4":"2023-08-04T09:35:23.832Z"},"maintainers":[{"name":"zldoc88","email":"zldoc88@163.com"}],"description":"Create Internal proxy to inject fingerprint","homepage":"https://github.com/laissonsilveira/inject-fingerprint#readme","keywords":["Proxy","NodeJS","Fingerprint","Chrome","Crawler","WebDriver","Browser"],"repository":{"type":"git","url":"git+https://github.com/laissonsilveira/inject-fingerprint.git"},"author":{"name":"Laisson R. Silveira","email":"laisson.r.silveira@gmail.com","url":"https://laissonsilveira.github.io"},"bugs":{"url":"https://github.com/laissonsilveira/inject-fingerprint/issues"},"license":"MIT","readme":"[![Node.js CI - TESTS](https://github.com/laissonsilveira/inject-fingerprint/actions/workflows/node.js.yml/badge.svg?branch=main)](https://github.com/laissonsilveira/inject-fingerprint/actions/workflows/node.js.yml)\n![GitHub package.json version](https://img.shields.io/github/package-json/v/laissonsilveira/inject-fingerprint)\n![node-current](https://img.shields.io/node/v/inject-fingerprint)\n[![Downloads](https://img.shields.io/npm/dm/inject-fingerprint.svg)](https://npmjs.com/inject-fingerprint)\n\n# inject-fingerprint\n\nInject fingerprint with proxy.\n\n> Fingerprint (device fingerprint) is a set of techniques that allow a website to uniquely identify your computer.\n>\n> Calculating a device's fingerprint begins when a user visits a website. The device fingerprint tracker collects all relevant information (version / browser type, OS, etc.). The interaction triggers the collection of a range of data (like the one listed above) that forms a special \"hash\" assigned to that specific device.\n>\n> This page tells you how identifiable your browser is as a robot: <https://bot.sannysoft.com/> and this module makes the tests on this page succeed on your chrome headless. See [test](#test)\n\n## Install\n\n```\nnpm install\n```\n\n## Usage\n\n```js\nconst InjectFingerprint = require('inject-fingerprint');\nconst ProxyServer = new InjectFingerprint();\n// To start proxy\nProxyServer.start();\n// To close proxy\nProxyServer.close();\n```\n\n## API\n\n### InjectFingerprint(options?)\n\nCreate Internal proxy to inject fingerprint\n\n#### options\n\nType: `object`\n\n##### internalProxyPort\n\nType: `number`\\\nDefault: `9333`\n\nInternal Proxy Port\n\n##### internalProxyWebPort\n\nType: `number`\\\nDefault: `9334`\n\nInternal Proxy Web Interface Port\n\n##### additionalProxyPort\n\nType: `number`\\\nDefault: `9335`\n\nAdditional Proxy Port when exist external proxy\n\n##### additionalProxyWebPort\n\nType: `number`\\\nDefault: `9336`\n\nAdditional Proxy Web Interface Port when exist external proxy\n\n##### externalProxy\n\nType: `string`\n\nExternal proxy. Ex: `http://host:port`\n\n##### fingerPrintPath\n\nType: `string`\\\nDefault: `/tmp`\n\nPath to save fingerprint file.\n\n**Note:** The name of file is `default`, you can change the script if you want. If file exist, it is loaded, else created.\n\n##### silent\n\nType: `boolean`\\\nDefault: `true`\n\nIf `anyproxy` module log is verbose\n\n##### logLevel\n\nType: `string`\\\nDefault: `null`\n\nLevel log of module `inject-fingerprint`. To logging action Ex: [silly, debug, warn, error, info, etc]\n\n**Note:** Winston levels. To log something enter a level.\n\n### start()\n\nStart proxy server\n\n### close()\n\nTerminate the proxy server\n\n### clearCache(amount, keyTime)\n\nRemove proxy server caches\n\n```js\n/**\n *\n * @param {Number} [amount=1] Amount of time to delete\n * @param {String} [keyTime='days'] Key of what time to delete (https://momentjs.com/docs/#/manipulating/add/)\n * @example clearCache(30, 'minutes')\n */\n```\n\n### DriverBuilder(options?)\n\nCreate and return new web driver\n\n##### browser\n\nType: `string`\\\nDefault: `chrome`\n\nBrowser name. Ex: `chrome`\n\n**Note:** today only works with chrome\n\n##### headless\n\nType: `boolean`\\\nDefault: `true`\n\nIf the init browser in headless mode. Ex: `true|false`\n\n##### browserLanguage\n\nType: `string`\\\nDefault: `en-US`\n\nBrowser Language. <https://developer.mozilla.org/pt-BR/docs/Web/API/NavigatorLanguage>\n\n##### browserUserAgent\n\nType: `string`\\\nDefault: `Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.72 Safari/537.36]`\n\nBrowser User Agent. <https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Headers/User-Agent>\n\n\n## Test\n\n`npm test` call the `test/fingerprint.test.js` file and this test open chrome browser mode headless and verify if is robot by test on the site <https://bot.sannysoft.com/>\n\n## Proxy documentation\n\n<https://anyproxy.io/>\n","readmeFilename":"README.md"}