{"_id":"@cicadancr/twitter-scraper","_rev":"7-9d0635a712626661c9c39f38be930c03","name":"@cicadancr/twitter-scraper","dist-tags":{"latest":"0.14.9"},"versions":{"0.14.1":{"name":"@cicadancr/twitter-scraper","version":"0.14.1","keywords":["x","twitter","scraper","crawler"],"author":{"name":"karashiiro","email":"49822414+karashiiro@users.noreply.github.com"},"license":"MIT","_id":"@cicadancr/twitter-scraper@0.14.1","maintainers":[{"name":"cicadancr","email":"cicada@braindex.io"}],"homepage":"https://github.com/the-convocation/twitter-scraper#readme","bugs":{"url":"https://github.com/the-convocation/twitter-scraper/issues"},"dist":{"shasum":"573fe44c77ed9b77cad292341987b3345b4f2bf6","tarball":"https://registry.npmjs.org/@cicadancr/twitter-scraper/-/twitter-scraper-0.14.1.tgz","fileCount":31,"integrity":"sha512-9a06eZd4AT3+Ezl3/I/AhZPAOUer9T0YAdfERl5Ur4PDEfmYLZ/oeiOZqglSj2rfc0EabEgJlNn1g6XMohWsow==","signatures":[{"sig":"MEUCIQCYvWufuB00naCrLOwzdUzaql89JCQWnbE1MSo7e/V0bwIgHu/vuEJdfDn0/aufnb7KQTd0HkbjW2UKF850i5sb7X8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27925},"main":"dist/default/cjs/index.js","types":"./dist/types/index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"engines":{"node":">=16"},"exports":{"node":{"import":"./dist/node/esm/index.mjs","require":"./dist/node/cjs/index.cjs"},"types":"./dist/types/index.d.ts","default":{"import":"./dist/default/esm/index.mjs","require":"./dist/default/cjs/index.js"}},"gitHead":"6745b3a4832b63150fc9b364f8429e603d8a7679","scripts":{"test":"jest","build":"rimraf dist && rollup -c","commit":"cz","format":"prettier --write src/**/*.ts","prepare":"husky install","docs:deploy":"yarn docs:generate && gh-pages -d docs","docs:generate":"typedoc --options typedoc.json"},"_npmUser":{"name":"cicadancr","email":"cicada@braindex.io"},"repository":{"url":"git+https://github.com/the-convocation/twitter-scraper.git","type":"git"},"_npmVersion":"10.2.4","description":"A port of n0madic/twitter-scraper to Node.js. Ported from @the-convocation. Custom funcs.","directories":{},"lint-staged":{"*.{js,ts}":["eslint --cache --fix","prettier --write"]},"_nodeVersion":"20.11.0","dependencies":{"tslib":"^2.5.2","otpauth":"^9.2.2","cross-fetch":"^4.0.0-alpha.5","tough-cookie":"^4.1.2","headers-polyfill":"^3.1.2","@sinclair/typebox":"^0.32.20","set-cookie-parser":"^2.6.0","json-stable-stringify":"^1.0.2"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.19","devDependencies":{"jest":"^29.5.0","husky":"^8.0.3","dotenv":"^16.3.1","eslint":"^8.41.0","rimraf":"^5.0.7","rollup":"^4.18.0","esbuild":"^0.21.5","ts-jest":"^29.1.0","typedoc":"^0.24.7","gh-pages":"^5.0.0","prettier":"^2.8.8","typescript":"^5.0.4","@types/jest":"^29.5.1","lint-staged":"^13.2.2","@commitlint/cli":"^17.6.3","@tsconfig/node16":"^16.1.0","https-proxy-agent":"^7.0.2","rollup-plugin-dts":"^6.1.1","@types/tough-cookie":"^4.0.2","rollup-plugin-esbuild":"^6.1.1","eslint-config-prettier":"^8.8.0","eslint-plugin-prettier":"^4.2.1","@types/set-cookie-parser":"^2.4.2","@typescript-eslint/parser":"^5.59.7","cz-conventional-changelog":"^3.3.0","@types/json-stable-stringify":"^1.0.34","@commitlint/config-conventional":"^17.6.3","@typescript-eslint/eslint-plugin":"^5.59.7"},"_npmOperationalInternal":{"tmp":"tmp/twitter-scraper_0.14.1_1734987021799_0.17079453140519307","host":"s3://npm-registry-packages-npm-production"}},"0.14.2":{"name":"@cicadancr/twitter-scraper","version":"0.14.2","keywords":["x","twitter","scraper","crawler"],"author":{"name":"karashiiro","email":"49822414+karashiiro@users.noreply.github.com"},"license":"MIT","_id":"@cicadancr/twitter-scraper@0.14.2","maintainers":[{"name":"cicadancr","email":"cicada@braindex.io"}],"homepage":"https://github.com/the-convocation/twitter-scraper#readme","bugs":{"url":"https://github.com/the-convocation/twitter-scraper/issues"},"dist":{"shasum":"fd72c33b70d879e7b0faee6481c29d0c79e09fa2","tarball":"https://registry.npmjs.org/@cicadancr/twitter-scraper/-/twitter-scraper-0.14.2.tgz","fileCount":31,"integrity":"sha512-XgiFiEQrOPIEAEcwCIZ1JO0s+OY/TmKPqmPQWnLbS9ayJUerWKGRfDdaKN7J5qjZsRyFrTW75zWyAMneKg9eYg==","signatures":[{"sig":"MEUCIBnMTpzXv/B5Hj8DG0vDd/NRzt+FRpHg05nO9baK61fGAiEAw1rM470Cm/NlDaYoDOBFWJQUwwbEkgNu34DaeI0zFbw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27925},"main":"dist/default/cjs/index.js","types":"./dist/types/index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"engines":{"node":">=16"},"exports":{"node":{"import":"./dist/node/esm/index.mjs","require":"./dist/node/cjs/index.cjs"},"types":"./dist/types/index.d.ts","default":{"import":"./dist/default/esm/index.mjs","require":"./dist/default/cjs/index.js"}},"gitHead":"6745b3a4832b63150fc9b364f8429e603d8a7679","scripts":{"test":"jest","build":"rimraf dist && rollup -c","commit":"cz","format":"prettier --write src/**/*.ts","prepare":"husky install","docs:deploy":"yarn docs:generate && gh-pages -d docs","docs:generate":"typedoc --options typedoc.json"},"_npmUser":{"name":"cicadancr","email":"cicada@braindex.io"},"repository":{"url":"git+https://github.com/the-convocation/twitter-scraper.git","type":"git"},"_npmVersion":"10.2.4","description":"A port of n0madic/twitter-scraper to Node.js. Ported from @the-convocation. Custom funcs.","directories":{},"lint-staged":{"*.{js,ts}":["eslint --cache --fix","prettier --write"]},"_nodeVersion":"20.11.0","dependencies":{"tslib":"^2.5.2","otpauth":"^9.2.2","cross-fetch":"^4.0.0-alpha.5","tough-cookie":"^4.1.2","headers-polyfill":"^3.1.2","@sinclair/typebox":"^0.32.20","set-cookie-parser":"^2.6.0","json-stable-stringify":"^1.0.2"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.19","devDependencies":{"jest":"^29.5.0","husky":"^8.0.3","dotenv":"^16.3.1","eslint":"^8.41.0","rimraf":"^5.0.7","rollup":"^4.18.0","esbuild":"^0.21.5","ts-jest":"^29.1.0","typedoc":"^0.24.7","gh-pages":"^5.0.0","prettier":"^2.8.8","typescript":"^5.0.4","@types/jest":"^29.5.1","lint-staged":"^13.2.2","@commitlint/cli":"^17.6.3","@tsconfig/node16":"^16.1.0","https-proxy-agent":"^7.0.2","rollup-plugin-dts":"^6.1.1","@types/tough-cookie":"^4.0.2","rollup-plugin-esbuild":"^6.1.1","eslint-config-prettier":"^8.8.0","eslint-plugin-prettier":"^4.2.1","@types/set-cookie-parser":"^2.4.2","@typescript-eslint/parser":"^5.59.7","cz-conventional-changelog":"^3.3.0","@types/json-stable-stringify":"^1.0.34","@commitlint/config-conventional":"^17.6.3","@typescript-eslint/eslint-plugin":"^5.59.7"},"_npmOperationalInternal":{"tmp":"tmp/twitter-scraper_0.14.2_1734989553420_0.21675373217573313","host":"s3://npm-registry-packages-npm-production"}},"0.14.3":{"name":"@cicadancr/twitter-scraper","version":"0.14.3","keywords":["x","twitter","scraper","crawler"],"author":{"name":"karashiiro","email":"49822414+karashiiro@users.noreply.github.com"},"license":"MIT","_id":"@cicadancr/twitter-scraper@0.14.3","maintainers":[{"name":"cicadancr","email":"cicada@braindex.io"}],"homepage":"https://github.com/the-convocation/twitter-scraper#readme","bugs":{"url":"https://github.com/the-convocation/twitter-scraper/issues"},"dist":{"shasum":"9c75cab2c18f91b27fe1d46bbb4f0741e775d334","tarball":"https://registry.npmjs.org/@cicadancr/twitter-scraper/-/twitter-scraper-0.14.3.tgz","fileCount":31,"integrity":"sha512-f/XdVrFrGndBVARn5UxJGOW3Vw4naTfeox0ClH7Eo0lTDcocu6t4VaRvdhQUmo3CH3odUmqxvj3YXSQ81IcRFQ==","signatures":[{"sig":"MEYCIQC+W+JFUyzy0Ajo9VUIiUZAt/qYarg6H7FzqUfD3FcTcAIhAIY56pa9FsAYS2xeSMT3e7Me93MsAyK5E4R+pj5D5pGb","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27925},"main":"dist/default/cjs/index.js","types":"./dist/types/index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"engines":{"node":">=16"},"exports":{"node":{"import":"./dist/node/esm/index.mjs","require":"./dist/node/cjs/index.cjs"},"types":"./dist/types/index.d.ts","default":{"import":"./dist/default/esm/index.mjs","require":"./dist/default/cjs/index.js"}},"gitHead":"6745b3a4832b63150fc9b364f8429e603d8a7679","scripts":{"test":"jest","build":"rimraf dist && rollup -c","commit":"cz","format":"prettier --write src/**/*.ts","prepare":"husky install","docs:deploy":"yarn docs:generate && gh-pages -d docs","docs:generate":"typedoc --options typedoc.json"},"_npmUser":{"name":"cicadancr","email":"cicada@braindex.io"},"repository":{"url":"git+https://github.com/the-convocation/twitter-scraper.git","type":"git"},"_npmVersion":"10.2.4","description":"A port of n0madic/twitter-scraper to Node.js. Ported from @the-convocation. Custom funcs.","directories":{},"lint-staged":{"*.{js,ts}":["eslint --cache --fix","prettier --write"]},"_nodeVersion":"20.11.0","dependencies":{"tslib":"^2.5.2","otpauth":"^9.2.2","cross-fetch":"^4.0.0-alpha.5","tough-cookie":"^4.1.2","headers-polyfill":"^3.1.2","@sinclair/typebox":"^0.32.20","set-cookie-parser":"^2.6.0","json-stable-stringify":"^1.0.2"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.19","devDependencies":{"jest":"^29.5.0","husky":"^8.0.3","dotenv":"^16.3.1","eslint":"^8.41.0","rimraf":"^5.0.7","rollup":"^4.18.0","esbuild":"^0.21.5","ts-jest":"^29.1.0","typedoc":"^0.24.7","gh-pages":"^5.0.0","prettier":"^2.8.8","typescript":"^5.0.4","@types/jest":"^29.5.1","lint-staged":"^13.2.2","@commitlint/cli":"^17.6.3","@tsconfig/node16":"^16.1.0","https-proxy-agent":"^7.0.2","rollup-plugin-dts":"^6.1.1","@types/tough-cookie":"^4.0.2","rollup-plugin-esbuild":"^6.1.1","eslint-config-prettier":"^8.8.0","eslint-plugin-prettier":"^4.2.1","@types/set-cookie-parser":"^2.4.2","@typescript-eslint/parser":"^5.59.7","cz-conventional-changelog":"^3.3.0","@types/json-stable-stringify":"^1.0.34","@commitlint/config-conventional":"^17.6.3","@typescript-eslint/eslint-plugin":"^5.59.7"},"_npmOperationalInternal":{"tmp":"tmp/twitter-scraper_0.14.3_1734989897883_0.7024591251110925","host":"s3://npm-registry-packages-npm-production"}},"0.14.4":{"name":"@cicadancr/twitter-scraper","version":"0.14.4","keywords":["x","twitter","scraper","crawler"],"author":{"name":"karashiiro","email":"49822414+karashiiro@users.noreply.github.com"},"license":"MIT","_id":"@cicadancr/twitter-scraper@0.14.4","maintainers":[{"name":"cicadancr","email":"cicada@braindex.io"}],"homepage":"https://github.com/the-convocation/twitter-scraper#readme","bugs":{"url":"https://github.com/the-convocation/twitter-scraper/issues"},"dist":{"shasum":"fb5e0e1e1daf9a438ecbe0c70c644ea3237acfb7","tarball":"https://registry.npmjs.org/@cicadancr/twitter-scraper/-/twitter-scraper-0.14.4.tgz","fileCount":31,"integrity":"sha512-VLPeXsM/VK9kBvIyiUPphHVk680WloZWnolpn3b1l5sfwdMCovJypO3fS4IZLya3E6JCEWoEsq0CVWHHhIr/uA==","signatures":[{"sig":"MEUCIFcjvXUabbDKHc+Uj6wUhNTPQ5Basu8BmcvsHCntH02LAiEAkqutK5jf+8SzvzMGGS1Kcjgd/pgB2kUIsRC/cNB2/DM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27925},"main":"dist/default/cjs/index.js","types":"./dist/types/index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"engines":{"node":">=16"},"exports":{"node":{"import":"./dist/node/esm/index.mjs","require":"./dist/node/cjs/index.cjs"},"types":"./dist/types/index.d.ts","default":{"import":"./dist/default/esm/index.mjs","require":"./dist/default/cjs/index.js"}},"gitHead":"6745b3a4832b63150fc9b364f8429e603d8a7679","scripts":{"test":"jest","build":"rimraf dist && rollup -c","commit":"cz","format":"prettier --write src/**/*.ts","prepare":"husky install","docs:deploy":"yarn docs:generate && gh-pages -d docs","docs:generate":"typedoc --options typedoc.json"},"_npmUser":{"name":"cicadancr","email":"cicada@braindex.io"},"repository":{"url":"git+https://github.com/the-convocation/twitter-scraper.git","type":"git"},"_npmVersion":"10.2.4","description":"A port of n0madic/twitter-scraper to Node.js. Ported from @the-convocation. Custom funcs.","directories":{},"lint-staged":{"*.{js,ts}":["eslint --cache --fix","prettier --write"]},"_nodeVersion":"20.11.0","dependencies":{"tslib":"^2.5.2","otpauth":"^9.2.2","cross-fetch":"^4.0.0-alpha.5","tough-cookie":"^4.1.2","headers-polyfill":"^3.1.2","@sinclair/typebox":"^0.32.20","set-cookie-parser":"^2.6.0","json-stable-stringify":"^1.0.2"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.19","devDependencies":{"jest":"^29.5.0","husky":"^8.0.3","dotenv":"^16.3.1","eslint":"^8.41.0","rimraf":"^5.0.7","rollup":"^4.18.0","esbuild":"^0.21.5","ts-jest":"^29.1.0","typedoc":"^0.24.7","gh-pages":"^5.0.0","prettier":"^2.8.8","typescript":"^5.0.4","@types/jest":"^29.5.1","lint-staged":"^13.2.2","@commitlint/cli":"^17.6.3","@tsconfig/node16":"^16.1.0","https-proxy-agent":"^7.0.2","rollup-plugin-dts":"^6.1.1","@types/tough-cookie":"^4.0.2","rollup-plugin-esbuild":"^6.1.1","eslint-config-prettier":"^8.8.0","eslint-plugin-prettier":"^4.2.1","@types/set-cookie-parser":"^2.4.2","@typescript-eslint/parser":"^5.59.7","cz-conventional-changelog":"^3.3.0","@types/json-stable-stringify":"^1.0.34","@commitlint/config-conventional":"^17.6.3","@typescript-eslint/eslint-plugin":"^5.59.7"},"_npmOperationalInternal":{"tmp":"tmp/twitter-scraper_0.14.4_1734990101367_0.3333546286105633","host":"s3://npm-registry-packages-npm-production"}},"0.14.6":{"name":"@cicadancr/twitter-scraper","version":"0.14.6","keywords":["x","twitter","scraper","crawler"],"author":{"name":"karashiiro","email":"49822414+karashiiro@users.noreply.github.com"},"license":"MIT","_id":"@cicadancr/twitter-scraper@0.14.6","maintainers":[{"name":"cicadancr","email":"cicada@braindex.io"}],"dist":{"shasum":"48dc831913e8fad37a1194c4db587a414e8422ed","tarball":"https://registry.npmjs.org/@cicadancr/twitter-scraper/-/twitter-scraper-0.14.6.tgz","fileCount":40,"integrity":"sha512-DcBqRUrVRpq++DboO+qM9/Kci1K9OOIgcr74TWCRxL4LlQ2T4in4ljU8DBaLe2tqkZ47bgk5WYwZEqasPhe05Q==","signatures":[{"sig":"MEYCIQD+Njr7i4vife4vIm/E283wvn49vdlzUX2/l9bY3TM0ywIhALdqRX0nKJtMQQm/PoKVEIfzBfxkbggdmEwqDubQycJJ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1747192},"main":"dist/default/cjs/index.js","types":"./dist/types/index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"engines":{"node":">=16"},"exports":{"node":{"import":"./dist/node/esm/index.mjs","require":"./dist/node/cjs/index.cjs"},"types":"./dist/types/index.d.ts","default":{"import":"./dist/default/esm/index.mjs","require":"./dist/default/cjs/index.js"}},"scripts":{"test":"jest","build":"rimraf dist && rollup -c","commit":"cz","format":"prettier --write src/**/*.ts","prepare":"husky install","docs:deploy":"yarn docs:generate && gh-pages -d docs","docs:generate":"typedoc --options typedoc.json"},"_npmUser":{"name":"cicadancr","email":"cicada@braindex.io"},"repository":{"url":"https://github.com/the-convocation/twitter-scraper.git","type":"git"},"description":"A port of n0madic/twitter-scraper to Node.js. Ported from @the-convocation. Custom funcs.","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2022 karashiiro\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","lint-staged":{"*.{js,ts}":["eslint --cache --fix","prettier --write"]},"dependencies":{"tslib":"^2.5.2","otpauth":"^9.2.2","cross-fetch":"^4.0.0-alpha.5","tough-cookie":"^4.1.2","headers-polyfill":"^3.1.2","@sinclair/typebox":"^0.32.20","set-cookie-parser":"^2.6.0","json-stable-stringify":"^1.0.2"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.19","devDependencies":{"jest":"^29.5.0","husky":"^8.0.3","dotenv":"^16.3.1","eslint":"^8.41.0","rimraf":"^5.0.7","rollup":"^4.18.0","esbuild":"^0.21.5","ts-jest":"^29.1.0","typedoc":"^0.24.7","gh-pages":"^5.0.0","prettier":"^2.8.8","typescript":"^5.0.4","@types/jest":"^29.5.1","lint-staged":"^13.2.2","@commitlint/cli":"^17.6.3","@tsconfig/node16":"^16.1.0","https-proxy-agent":"^7.0.2","rollup-plugin-dts":"^6.1.1","@types/tough-cookie":"^4.0.2","rollup-plugin-esbuild":"^6.1.1","eslint-config-prettier":"^8.8.0","eslint-plugin-prettier":"^4.2.1","@types/set-cookie-parser":"^2.4.2","@typescript-eslint/parser":"^5.59.7","cz-conventional-changelog":"^3.3.0","@types/json-stable-stringify":"^1.0.34","@commitlint/config-conventional":"^17.6.3","@typescript-eslint/eslint-plugin":"^5.59.7"},"_npmOperationalInternal":{"tmp":"tmp/twitter-scraper_0.14.6_1734990981943_0.2524212186208865","host":"s3://npm-registry-packages-npm-production"}},"0.14.7":{"name":"@cicadancr/twitter-scraper","version":"0.14.7","keywords":["x","twitter","scraper","crawler"],"author":{"name":"karashiiro","email":"49822414+karashiiro@users.noreply.github.com"},"license":"MIT","_id":"@cicadancr/twitter-scraper@0.14.7","maintainers":[{"name":"cicadancr","email":"cicada@braindex.io"}],"dist":{"shasum":"75a376b8ebc7a73d8261a8b3887a70ab52b985a3","tarball":"https://registry.npmjs.org/@cicadancr/twitter-scraper/-/twitter-scraper-0.14.7.tgz","fileCount":40,"integrity":"sha512-FYwPNJ9+9yim/cPs4FZJlMu8wVfsShwzcBhKLNYZ9wMuq8lvB6FE8s3p03h5p1GnbgHPB2axbL/M/AtAbhTsdg==","signatures":[{"sig":"MEYCIQDRMYM4XM2Wpl1JY17hOWVJtU6vvo+euwKiR08HRN9qKgIhAIIAwtfN0IjRDN/ak1zxMBc7os8kLed04S0nMU8pseG7","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1758788},"main":"dist/default/cjs/index.js","types":"./dist/types/index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"engines":{"node":">=16"},"exports":{"node":{"import":"./dist/node/esm/index.mjs","require":"./dist/node/cjs/index.cjs"},"types":"./dist/types/index.d.ts","default":{"import":"./dist/default/esm/index.mjs","require":"./dist/default/cjs/index.js"}},"scripts":{"test":"jest","build":"rimraf dist && rollup -c","commit":"cz","format":"prettier --write src/**/*.ts","prepare":"husky install","docs:deploy":"yarn docs:generate && gh-pages -d docs","docs:generate":"typedoc --options typedoc.json"},"_npmUser":{"name":"cicadancr","email":"cicada@braindex.io"},"repository":{"url":"https://github.com/the-convocation/twitter-scraper.git","type":"git"},"description":"A port of n0madic/twitter-scraper to Node.js. Ported from @the-convocation. Custom funcs.","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2022 karashiiro\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","lint-staged":{"*.{js,ts}":["eslint --cache --fix","prettier --write"]},"dependencies":{"tslib":"^2.5.2","otpauth":"^9.2.2","cross-fetch":"^4.0.0-alpha.5","tough-cookie":"^4.1.2","headers-polyfill":"^3.1.2","@sinclair/typebox":"^0.32.20","set-cookie-parser":"^2.6.0","json-stable-stringify":"^1.0.2"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.19","devDependencies":{"jest":"^29.5.0","husky":"^8.0.3","dotenv":"^16.3.1","eslint":"^8.41.0","rimraf":"^5.0.7","rollup":"^4.18.0","esbuild":"^0.21.5","ts-jest":"^29.1.0","typedoc":"^0.24.7","gh-pages":"^5.0.0","prettier":"^2.8.8","typescript":"^5.0.4","@types/jest":"^29.5.1","lint-staged":"^13.2.2","@commitlint/cli":"^17.6.3","@tsconfig/node16":"^16.1.0","https-proxy-agent":"^7.0.2","rollup-plugin-dts":"^6.1.1","@types/tough-cookie":"^4.0.2","rollup-plugin-esbuild":"^6.1.1","eslint-config-prettier":"^8.8.0","eslint-plugin-prettier":"^4.2.1","@types/set-cookie-parser":"^2.4.2","@typescript-eslint/parser":"^5.59.7","cz-conventional-changelog":"^3.3.0","@types/json-stable-stringify":"^1.0.34","@commitlint/config-conventional":"^17.6.3","@typescript-eslint/eslint-plugin":"^5.59.7"},"_npmOperationalInternal":{"tmp":"tmp/twitter-scraper_0.14.7_1735188537995_0.03408127039079023","host":"s3://npm-registry-packages-npm-production"}},"0.14.8":{"name":"@cicadancr/twitter-scraper","version":"0.14.8","keywords":["x","twitter","scraper","crawler"],"author":{"name":"karashiiro","email":"49822414+karashiiro@users.noreply.github.com"},"license":"MIT","_id":"@cicadancr/twitter-scraper@0.14.8","maintainers":[{"name":"cicadancr","email":"cicada@braindex.io"}],"dist":{"shasum":"9716e13db0797eb31fff3c6f6a03c0e735c29817","tarball":"https://registry.npmjs.org/@cicadancr/twitter-scraper/-/twitter-scraper-0.14.8.tgz","fileCount":40,"integrity":"sha512-arHtviAip6lnZ3abmRbSa+v/QzTuL5IA+OIqO+iFg7roPgPMIqUHeDHUoVOEfaYNkACscdQVEHEdE8qdG0okag==","signatures":[{"sig":"MEUCIQDXFSYvrHry526EXaLq1oU6JskyUO9P2MPi+1mPK1b1WwIgKLQfAg4Wetxj7rok+8J1YPAAJjc1/hhMZyizjRpq0uE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1759764},"main":"dist/default/cjs/index.js","types":"./dist/types/index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"engines":{"node":">=16"},"exports":{"node":{"import":"./dist/node/esm/index.mjs","require":"./dist/node/cjs/index.cjs"},"types":"./dist/types/index.d.ts","default":{"import":"./dist/default/esm/index.mjs","require":"./dist/default/cjs/index.js"}},"scripts":{"test":"jest","build":"rimraf dist && rollup -c","commit":"cz","format":"prettier --write src/**/*.ts","prepare":"husky install","docs:deploy":"yarn docs:generate && gh-pages -d docs","docs:generate":"typedoc --options typedoc.json"},"_npmUser":{"name":"cicadancr","email":"cicada@braindex.io"},"repository":{"url":"https://github.com/the-convocation/twitter-scraper.git","type":"git"},"description":"A port of n0madic/twitter-scraper to Node.js. Ported from @the-convocation. Custom funcs.","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2022 karashiiro\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","lint-staged":{"*.{js,ts}":["eslint --cache --fix","prettier --write"]},"dependencies":{"tslib":"^2.5.2","otpauth":"^9.2.2","cross-fetch":"^4.0.0-alpha.5","tough-cookie":"^4.1.2","headers-polyfill":"^3.1.2","@sinclair/typebox":"^0.32.20","set-cookie-parser":"^2.6.0","json-stable-stringify":"^1.0.2"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.19","devDependencies":{"jest":"^29.5.0","husky":"^8.0.3","dotenv":"^16.3.1","eslint":"^8.41.0","rimraf":"^5.0.7","rollup":"^4.18.0","esbuild":"^0.21.5","ts-jest":"^29.1.0","typedoc":"^0.24.7","gh-pages":"^5.0.0","prettier":"^2.8.8","typescript":"^5.0.4","@types/jest":"^29.5.1","lint-staged":"^13.2.2","@commitlint/cli":"^17.6.3","@tsconfig/node16":"^16.1.0","https-proxy-agent":"^7.0.2","rollup-plugin-dts":"^6.1.1","@types/tough-cookie":"^4.0.2","rollup-plugin-esbuild":"^6.1.1","eslint-config-prettier":"^8.8.0","eslint-plugin-prettier":"^4.2.1","@types/set-cookie-parser":"^2.4.2","@typescript-eslint/parser":"^5.59.7","cz-conventional-changelog":"^3.3.0","@types/json-stable-stringify":"^1.0.34","@commitlint/config-conventional":"^17.6.3","@typescript-eslint/eslint-plugin":"^5.59.7"},"_npmOperationalInternal":{"tmp":"tmp/twitter-scraper_0.14.8_1735243608237_0.8416825872495324","host":"s3://npm-registry-packages-npm-production"}},"0.14.9":{"name":"@cicadancr/twitter-scraper","description":"A port of n0madic/twitter-scraper to Node.js. Ported from @the-convocation. Custom funcs.","keywords":["x","twitter","scraper","crawler"],"version":"0.14.9","main":"dist/default/cjs/index.js","types":"./dist/types/index.d.ts","exports":{"types":"./dist/types/index.d.ts","node":{"import":"./dist/node/esm/index.mjs","require":"./dist/node/cjs/index.cjs"},"default":{"import":"./dist/default/esm/index.mjs","require":"./dist/default/cjs/index.js"}},"repository":{"type":"git","url":"https://github.com/the-convocation/twitter-scraper.git"},"author":{"name":"karashiiro","email":"49822414+karashiiro@users.noreply.github.com"},"license":"MIT","engines":{"node":">=16"},"packageManager":"yarn@1.22.19","scripts":{"build":"rimraf dist && rollup -c","commit":"cz","docs:generate":"typedoc --options typedoc.json","docs:deploy":"yarn docs:generate && gh-pages -d docs","format":"prettier --write src/**/*.ts","prepare":"husky install","test":"jest"},"dependencies":{"@sinclair/typebox":"^0.32.20","cross-fetch":"^4.0.0-alpha.5","headers-polyfill":"^3.1.2","json-stable-stringify":"^1.0.2","otpauth":"^9.2.2","set-cookie-parser":"^2.6.0","tough-cookie":"^4.1.2","tslib":"^2.5.2"},"devDependencies":{"@commitlint/cli":"^17.6.3","@commitlint/config-conventional":"^17.6.3","@tsconfig/node16":"^16.1.0","@types/jest":"^29.5.1","@types/json-stable-stringify":"^1.0.34","@types/set-cookie-parser":"^2.4.2","@types/tough-cookie":"^4.0.2","@typescript-eslint/eslint-plugin":"^5.59.7","@typescript-eslint/parser":"^5.59.7","cz-conventional-changelog":"^3.3.0","dotenv":"^16.3.1","esbuild":"^0.21.5","eslint":"^8.41.0","eslint-config-prettier":"^8.8.0","eslint-plugin-prettier":"^4.2.1","gh-pages":"^5.0.0","https-proxy-agent":"^7.0.2","husky":"^8.0.3","jest":"^29.5.0","lint-staged":"^13.2.2","prettier":"^2.8.8","rimraf":"^5.0.7","rollup":"^4.18.0","rollup-plugin-dts":"^6.1.1","rollup-plugin-esbuild":"^6.1.1","ts-jest":"^29.1.0","typedoc":"^0.24.7","typescript":"^5.0.4"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"lint-staged":{"*.{js,ts}":["eslint --cache --fix","prettier --write"]},"licenseText":"MIT License\n\nCopyright (c) 2022 karashiiro\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"@cicadancr/twitter-scraper@0.14.9","dist":{"shasum":"97dc9d58eb6387f2cb3463d395d1278705606f82","integrity":"sha512-NDVHJ7sjSKEH57L5P3hyGz2GhbAEjNwLYroci4b/l/3mQBY+4xtcR9PB3/qyrG4FN5vBQdNCZ2UzW6Awdpfs6g==","tarball":"https://registry.npmjs.org/@cicadancr/twitter-scraper/-/twitter-scraper-0.14.9.tgz","fileCount":40,"unpackedSize":1759764,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAR0+dE2Atd1QVNBsI4NojfVvCIQTnw0NcKXDUqHxk5SAiAc/xD/uNsOPuT7KQ0nBkv3bJOI8q7rNeqWYnqPfX8h9Q=="}]},"_npmUser":{"name":"cicadancr","email":"cicada@braindex.io"},"directories":{},"maintainers":[{"name":"cicadancr","email":"cicada@braindex.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/twitter-scraper_0.14.9_1735418678161_0.5187643990483379"},"_hasShrinkwrap":false}},"time":{"created":"2024-12-23T20:50:21.737Z","modified":"2024-12-28T20:44:38.615Z","0.14.1":"2024-12-23T20:50:21.983Z","0.14.2":"2024-12-23T21:32:33.616Z","0.14.3":"2024-12-23T21:38:18.090Z","0.14.4":"2024-12-23T21:41:41.559Z","0.14.6":"2024-12-23T21:56:22.169Z","0.14.7":"2024-12-26T04:48:58.222Z","0.14.8":"2024-12-26T20:06:48.489Z","0.14.9":"2024-12-28T20:44:38.435Z"},"author":{"name":"karashiiro","email":"49822414+karashiiro@users.noreply.github.com"},"license":"MIT","keywords":["x","twitter","scraper","crawler"],"repository":{"type":"git","url":"https://github.com/the-convocation/twitter-scraper.git"},"description":"A port of n0madic/twitter-scraper to Node.js. Ported from @the-convocation. Custom funcs.","maintainers":[{"name":"cicadancr","email":"cicada@braindex.io"}],"readme":"# twitter-scraper\n\n[![Documentation badge](https://img.shields.io/badge/docs-here-informational)](https://the-convocation.github.io/twitter-scraper/)\n\nA port of [n0madic/twitter-scraper](https://github.com/n0madic/twitter-scraper)\nto Node.js.\n\n> Twitter's API is annoying to work with, and has lots of limitations — luckily\n> their frontend (JavaScript) has it's own API, which I reverse-engineered. No\n> API rate limits. No tokens needed. No restrictions. Extremely fast.\n>\n> You can use this library to get the text of any user's Tweets trivially.\n\nKnown limitations:\n\n- Search operations require logging in with a real user account via\n  `scraper.login()`.\n- Twitter's frontend API does in fact have rate limits\n  ([#11](https://github.com/the-convocation/twitter-scraper/issues/11))\n\n## Installation\n\nThis package requires Node.js v16.0.0 or greater.\n\nNPM:\n\n```sh\nnpm install @the-convocation/twitter-scraper\n```\n\nYarn:\n\n```sh\nyarn add @the-convocation/twitter-scraper\n```\n\nTypeScript types have been bundled with the distribution.\n\n## Usage\n\nMost use cases are exactly the same as in\n[n0madic/twitter-scraper](https://github.com/n0madic/twitter-scraper). Channel\niterators have been translated into\n[AsyncGenerator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AsyncGenerator)\ninstances, and can be consumed with the corresponding\n`for await (const x of y) { ... }` syntax.\n\n### Browser usage\n\nThis package directly invokes the Twitter API, which does not have permissive\nCORS headers. With the default settings, requests will fail unless you disable\nCORS checks, which is not advised. Instead, applications must provide a CORS\nproxy and configure it in the `Scraper` options.\n\nProxies (and other request mutations) can be configured with the request\ninterceptor transform:\n\n```ts\nconst scraper = new Scraper({\n  transform: {\n    request(input: RequestInfo | URL, init?: RequestInit) {\n      // The arguments here are the same as the parameters to fetch(), and\n      // are kept as-is for flexibility of both the library and applications.\n      if (input instanceof URL) {\n        const proxy = \"https://corsproxy.io/?\" +\n          encodeURIComponent(input.toString());\n        return [proxy, init];\n      } else if (typeof input === \"string\") {\n        const proxy = \"https://corsproxy.io/?\" + encodeURIComponent(input);\n        return [proxy, init];\n      } else {\n        // Omitting handling for example\n        throw new Error(\"Unexpected request input type\");\n      }\n    },\n  },\n});\n```\n\n[corsproxy.io](https://corsproxy.io) is a public CORS proxy that works correctly\nwith this package.\n\nThe public CORS proxy [corsproxy.org](https://corsproxy.org) _does not work_ at\nthe time of writing (at least not using their recommended integration on the\nfront page).\n\n#### Next.js 13.x example:\n\n```tsx\n\"use client\";\n\nimport { Scraper, Tweet } from \"@the-convocation/twitter-scraper\";\nimport { useEffect, useMemo, useState } from \"react\";\n\nexport default function Home() {\n  const scraper = useMemo(\n    () =>\n      new Scraper({\n        transform: {\n          request(input: RequestInfo | URL, init?: RequestInit) {\n            if (input instanceof URL) {\n              const proxy = \"https://corsproxy.io/?\" +\n                encodeURIComponent(input.toString());\n              return [proxy, init];\n            } else if (typeof input === \"string\") {\n              const proxy = \"https://corsproxy.io/?\" +\n                encodeURIComponent(input);\n              return [proxy, init];\n            } else {\n              throw new Error(\"Unexpected request input type\");\n            }\n          },\n        },\n      }),\n    [],\n  );\n  const [tweet, setTweet] = useState<Tweet | null>(null);\n\n  useEffect(() => {\n    async function getTweet() {\n      const latestTweet = await scraper.getLatestTweet(\"twitter\");\n      if (latestTweet) {\n        setTweet(latestTweet);\n      }\n    }\n\n    getTweet();\n  }, [scraper]);\n\n  return (\n    <main className=\"flex min-h-screen flex-col items-center justify-between p-24\">\n      {tweet?.text}\n    </main>\n  );\n}\n```\n\n### Edge runtimes\n\nThis package currently uses\n[`cross-fetch`](https://www.npmjs.com/package/cross-fetch) as a portable\n`fetch`. Edge runtimes such as CloudFlare Workers sometimes have `fetch`\nfunctions that behave differently from the web standard, so you may need to\noverride the `fetch` function the scraper uses. If so, a custom `fetch` can be\nprovided in the options:\n\n```ts\nconst scraper = new Scraper({\n  fetch: fetch,\n});\n```\n\nNote that this does not change the arguments passed to the function, or the\nexpected return type. If the custom `fetch` function produces runtime errors\nrelated to incorrect types, be sure to wrap it in a shim (not currently\nsupported directly by interceptors):\n\n```ts\nconst scraper = new Scraper({\n  fetch: (input, init) => {\n    // Transform input and init into your function's expected types...\n    return fetch(input, init)\n      .then((res) => {\n        // Transform res into a web-compliant response...\n        return res;\n      });\n  },\n});\n```\n\n## Contributing\n\n### Setup\n\nThis project currently requires Node 18.x for development and uses Yarn for\npackage management.\n[Corepack](https://nodejs.org/dist/latest-v18.x/docs/api/corepack.html) is\nconfigured for this project, so you don't need to install a particular package\nmanager version manually.\n\n> The project supports Node 16.x at runtime, but requires Node 18.x to run its\n> build tools.\n\nJust run `corepack enable` to turn on the shims, then run `yarn` to install the\ndependencies.\n\n#### Basic scripts\n\n- `yarn build`: Builds the project into the `dist` folder\n- `yarn test`: Runs the package tests (see [Testing](#testing) first)\n\nRun `yarn help` for general `yarn` usage information.\n\n### Testing\n\nThis package includes unit tests for all major functionality. Given the speed at\nwhich Twitter's private API changes, failing tests are to be expected.\n\n```sh\nyarn test\n```\n\nBefore running tests, you should configure environment variables for\nauthentication.\n\n```\nTWITTER_USERNAME=    # Account username\nTWITTER_PASSWORD=    # Account password\nTWITTER_EMAIL=       # Account email\nTWITTER_COOKIES=     # JSON-serialized array of cookies of an authenticated session\nPROXY_URL=           # HTTP(s) proxy for requests (optional)\n```\n\n### Commit message format\n\nWe use [Conventional Commits](https://www.conventionalcommits.org), and enforce\nthis with precommit checks. Please refer to the Git history for real examples of\nthe commit message format.\n","readmeFilename":"README.md"}