{"_id":"google-search-results-nodejs","_rev":"12-e4d611df1dfc3d806e82e6639aa5fa16","name":"google-search-results-nodejs","dist-tags":{"latest":"2.1.0"},"versions":{"0.0.1":{"name":"google-search-results-nodejs","version":"0.0.1","description":"Google Search Results Node JS API via SerpApi.com","main":"lib/GoogleSearchResults.js","scripts":{"test":"mocha","coverage":"mocha -R test && npm run coverage"},"repository":{"type":"git","url":"git+https://github.com/serpapi/google-search-results-nodejs.git"},"keywords":["google","search","api","query","json","html","image","automated","localization"],"devDependencies":{"mocha":"*","expect":"*"},"author":{"name":"Victor Benarbia victor@vtool.run"},"license":"ISC","bugs":{"url":"https://github.com/serpapi/google-search-results-nodejs/issues"},"homepage":"https://github.com/serpapi/google-search-results-nodejs#readme","gitHead":"713f07e98fb4ce84bb3eef2a0706dfb715c5b876","_id":"google-search-results-nodejs@0.0.1","_npmVersion":"5.6.0","_nodeVersion":"7.3.0","_npmUser":{"name":"vikoky","email":"jvmvik@gmail.com"},"maintainers":[{"name":"vikoky","email":"jvmvik@gmail.com"}],"dist":{"integrity":"sha512-pTDpxMmCL8XM6ec7IeQ82C0ui3BW5aR32EUaA3ZMV48AWeNrgG+j3Bl1s4bQMv7pimZ3SHzDs3VPlGyvaXYlQw==","shasum":"63d259420b49b90225c23021124ad0d5b780abd5","tarball":"https://registry.npmjs.org/google-search-results-nodejs/-/google-search-results-nodejs-0.0.1.tgz","fileCount":6,"unpackedSize":6455,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG7DUkexevQFw7M4hQ4aNAsgiOQCWZ1d6x/6E5WiFnAeAiEAi8ZZ+0t+x5tlYpPVqU0mtrJ0nvCFse/GJPzKAHk2D2E="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/google-search-results-nodejs_0.0.1_1518055879130_0.4229400490687085"},"_hasShrinkwrap":false},"0.1.0":{"name":"google-search-results-nodejs","version":"0.1.0","description":"Google Search Results Node JS API via SerpApi.com","main":"lib/GoogleSearchResults.js","scripts":{"test":"mocha","coverage":"mocha -R test && npm run coverage"},"repository":{"type":"git","url":"git+https://github.com/serpapi/google-search-results-nodejs.git"},"keywords":["google","search","scrape","api","query","json","html","image","automated","localization"],"devDependencies":{"expect":"^22.4.3","mocha":"^5.1.1"},"author":{"name":"Victor Benarbia victor@serpapi.com"},"license":"ISC","bugs":{"url":"https://github.com/serpapi/google-search-results-nodejs/issues"},"homepage":"https://github.com/serpapi/google-search-results-nodejs#readme","dependencies":{"npm":"^5.8.0"},"gitHead":"ec0cfed756cf0460cb75adda424f6abca98049d2","_id":"google-search-results-nodejs@0.1.0","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"vikoky","email":"jvmvik@gmail.com"},"maintainers":[{"name":"vikoky","email":"jvmvik@gmail.com"}],"dist":{"integrity":"sha512-Aad2DSsBPFRKBxPNjrwU7SVjB1k9PQmSVOcreGZb0EQWdlozKeWucmeGpYpOgFVJgg0wX+fy3grKDYCRDgw1lA==","shasum":"606d2441559037ccd6b498e6d6293a1c794db412","tarball":"https://registry.npmjs.org/google-search-results-nodejs/-/google-search-results-nodejs-0.1.0.tgz","fileCount":6,"unpackedSize":7416,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcFxhWCRA9TVsSAnZWagAA57oP/Rx+76ZVoHHeKQlW1SMm\n8+uPamMRqbftLsQmk+DdgEACCr7Fmcq+gAHw36/3QiL5QdBj1TyDqxQEh/q2\nDWCvmPjYuiltA+RyDY3vQnhEpabw5+hecjTRqil1kU2oUQuIfM3v6reP1SfH\nIPJK25OBv5M1wtJ0bMEWZdL+KZx6XcF/xRwlylwCjiq5wlAWMwcPu0/fME7Y\n8zTDXgJ3xvAejHWSKT1CcGg+LDVGmexos2WJ3M0sjGOT8gmfnL6q1sFsZvTu\ne6K1/KgtG+NIsHxla1kZsuzYc311jVNi1Qz/NjeRcgWSOcvRezmYHnMgLZ+k\nhcClwNxV0eqCmUyt+xGP9nCtzFhIYEP9a+HVBNLyFhlkRXhv383K2Tqboo8J\nR2LYczJSJF+/Q4x+/nT91DR/hRAwleZckMidPXHwwSYFOTi/crbG/KoOx/fP\ndbYk59AiXTk6pJPVKhRgY3KHCqDv2eFIWtS2WAMQwwkvkbB0PvIRQ7jr4pEB\n0LkbnbP0BGI/omlDRnbNjzFTTCYyfV/rx8ZAMBweLjnYu1dib0v5Q3TiqUSb\nnfMAw5r/rZgbrpqZyZFAW2cEqeDYgOlgbML8pwjso+upxJ0BILhj4k0WR6+J\nWkYE3QEHy8sCDM1egnganRhWFrOKJFzqNKeTh9Nb0yg6GQUtdFBVClGTepjQ\ncM+q\r\n=1NlV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDquaM2jaJ4KEMxAk1CT46M17bgEEUoz7pFmBfKS0Sf9AiEAwR3BB8Z5VUFzpKAjzTOG4B8/ATawJZwFy5G72iQIhWA="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/google-search-results-nodejs_0.1.0_1545017430305_0.28947283017312464"},"_hasShrinkwrap":false},"1.2.0":{"name":"google-search-results-nodejs","version":"1.2.0","description":"Google Search Results Node JS API via SerpApi.com","main":"lib/GoogleSearchResults.js","scripts":{"test":"mocha","coverage":"mocha -R test && npm run coverage"},"repository":{"type":"git","url":"git+https://github.com/serpapi/google-search-results-nodejs.git"},"keywords":["google","search","scrape","api","query","json","html","image","automated","localization","serp","serpapi","image","news","seo"],"devDependencies":{"expect":"^22.4.3","mocha":"^5.1.1"},"author":{"name":"Victor Benarbia victor@serpapi.com"},"license":"ISC","bugs":{"url":"https://github.com/serpapi/google-search-results-nodejs/issues"},"homepage":"https://github.com/serpapi/google-search-results-nodejs#readme","dependencies":{},"gitHead":"d12ca0fea79ee3ca927557f8db96ecb60984efc7","_id":"google-search-results-nodejs@1.2.0","_nodeVersion":"11.12.0","_npmVersion":"6.7.0","_npmUser":{"name":"vikoky","email":"jvmvik@gmail.com"},"maintainers":[{"name":"vikoky","email":"jvmvik@gmail.com"}],"dist":{"integrity":"sha512-e8NgHVcPG+Ay6n7qzD2kbrOqpWwJwTtLaclPJRH4YRHAQMmvZFnh1MNDdYJgYCzG/smyGeE28TIubbtw3SAJFw==","shasum":"1ac49df792235307b6c455961cdce2d2630b70c6","tarball":"https://registry.npmjs.org/google-search-results-nodejs/-/google-search-results-nodejs-1.2.0.tgz","fileCount":10,"unpackedSize":17813,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJco3ZfCRA9TVsSAnZWagAAjxEP/23yYS8UUUx8zAZDlaj9\nkUcog2Ts7EiSovblFjCelylKyLp7Oyrm2HNFKSTyHgQZikO5sG/cmCo6mU/u\nlGHKMCIaQip+kYmlW+n8K6te1AJVewuNTqmKK1/NMjNSHYVJU11kOLhM0IIS\nD/SW7iMyPMLcTiUf7+IxYN+siA+nhqtQExpdlia2jb9SbNYi5dNm7yPYd4sS\nIynRekyQLNpTqPHTbnpd2fdV9QAQFTxJeLD1DoWhKsp2vTKuCoNNXaZbZnwI\n+YSpwk0I3VreekuJ6WkAZmaW8XTexn4dFQad5CqHmur8AwyWyMj84MnJbY0v\nXOGLd+sv+8vOrLWYZTSYE7vdFLOX7n72ezVkoVrR4fa/E/jhMP+SVWqXOZtg\nhuxfOkqY1GqR83sQ8/EmZvPw38VXKQhfl/aC+iufbarOqFnqiRuqpapkGdII\nbyiG1m89ggE84AGxR19VifRSLTpRtUV38yYZU9pcS0G5UK8oRFBNp22syg0Q\n1LmPjFuDfztgp551n3txHw77f/mH96NYT1P7ezb/6931jpgB6pvCROWLxDnN\nJzpeyanMcBwOLsTE2THc1WkZgR0q4HVfXsA9Mv4MsrybFqKXrZYE/kAovd0Z\njX0whZ95HgqOP+geNWML4j9I2kw7mpEzlcD91PLL+uVRZSID7GBnWhjvdmfc\nqvUd\r\n=wgNt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBVE0LSvYyWDhLmSZUSfCG6bFpXRKmXAeN07cQN9dznZAiEAuEGMS4H1wOPKzmvk+GAvI1+pMihmkWEyuibJprsucyg="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/google-search-results-nodejs_1.2.0_1554216543117_0.04295590400599436"},"_hasShrinkwrap":false},"1.3.0":{"name":"google-search-results-nodejs","version":"1.3.0","description":"Google Search Results Node JS API via SerpApi.com","main":"lib/GoogleSearchResults.js","scripts":{"test":"mocha","coverage":"mocha -R test && npm run coverage"},"repository":{"type":"git","url":"git+https://github.com/serpapi/google-search-results-nodejs.git"},"keywords":["google","search","scrape","api","query","json","html","image","automated","localization","serp","serpapi","image","news","seo"],"devDependencies":{"expect":"^22.4.3","mocha":"^5.1.1"},"author":{"name":"Victor Benarbia victor@serpapi.com"},"license":"ISC","bugs":{"url":"https://github.com/serpapi/google-search-results-nodejs/issues"},"homepage":"https://github.com/serpapi/google-search-results-nodejs#readme","dependencies":{},"gitHead":"290686fb8b74bb77ae1c687da1764fb5b9929980","_id":"google-search-results-nodejs@1.3.0","_nodeVersion":"12.6.0","_npmVersion":"6.9.0","_npmUser":{"name":"vikoky","email":"jvmvik@gmail.com"},"maintainers":[{"name":"vikoky","email":"jvmvik@gmail.com"}],"dist":{"integrity":"sha512-ud1Q+2k16haMum1ZhtbH3267pBsPl/TinJgi/w4pUlHSwAsiHxTsgDL6bDeSPj5bIb5sI7ZCkqD5Q3SZRcIZTg==","shasum":"bcbf9646600f975dfc1d4f32f80ce55b2c733e93","tarball":"https://registry.npmjs.org/google-search-results-nodejs/-/google-search-results-nodejs-1.3.0.tgz","fileCount":15,"unpackedSize":19982,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdbIiDCRA9TVsSAnZWagAAkEIQAJMwqHPSuZ1d2UY1MhOd\n6we2625aLeQvA6kM/oRTc/u4P75TEEAzW2O4WmcOEgB9FccxS1jMB9K3c6ta\nxUQlm/Xi70j85g2LL4prwz9X4gIFa5WAgG4PmPZtHGuN05xxjwBh4gCifIEU\nw4V5vYYQ3SnmLZjCltUaG+R2kDYS1btKZ2IZ3qjncAUl4UYmfrJKurB7mbdE\nVIS+lOR66vZLkvnhfpacJw1VJ0k9GCvZiBxlOp6u697Mj0FnKwI6b8mdg3xI\nU1P8PghoYfb79LenlAgO+7kSDObAvjQkL6YnOFmsRHX5rK0neCbioaKKe14E\niHuXUYHvjDNAJnMoqDdPBcH6OII0QMX9PzwDBTfkbabxHJnyoZguTy3jxhJs\n8eVpfDd+SbNIIgrWcd22coMRfLsmd6/RHaCSka+htp4+HTkugQSll6adELvg\nxYeivN7K3YQgE3HZU10tbCV2mXKR0XD3qNrn4SRpr5AHl633fjKUKIoHomxB\no6P7QxrAPnNbTOtGvYhQgcaAAv2Ek7QUL2hE5B6tzMJehwTotpr/zDFh4S57\n+W670Gd/BQ/KgZIejyRI1va3qo9yWVhbvD0iYuu1GLIoov2igXDJbfDGI96J\nCbYMGyH+9jBUwupZmFphxHKfIcxwWF7hCJHtbZfGzu+InWYl4N+D5RlG7IAB\nM3oV\r\n=POOq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC0RJQrLN8r1/o+2kfzDFGrm1nWqRSTcXknAfZs5rkzwAiBNtqqGOkfOpTKlRtcqRAm3b4Dz0ssF29BoSSrQf1Jemg=="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/google-search-results-nodejs_1.3.0_1567393922793_0.05685147568572124"},"_hasShrinkwrap":false},"2.0.0":{"name":"google-search-results-nodejs","version":"2.0.0","description":"Google Search Node JS API via SerpApi.com","scripts":{"test":"mocha","coverage":"mocha -R test && npm run coverage"},"repository":{"type":"git","url":"git+https://github.com/serpapi/google-search-results-nodejs.git"},"keywords":["google","search","scrape","api","query","json","html","image","automated","localization","serp","serpapi","image","news","seo","walmart","yahoo","yandex","scholar","bing","baidu","ebay","youtube"],"devDependencies":{"braces":">=2.3.1","expect":"^26.4.2","minimist":">=0.2.1","mocha":"^8.1.3"},"author":{"name":"Victor Benarbia victor@serpapi.com"},"license":"ISC","bugs":{"url":"https://github.com/serpapi/google-search-results-nodejs/issues"},"homepage":"https://github.com/serpapi/google-search-results-nodejs#readme","dependencies":{},"gitHead":"c0b08e5b02277272faddd9b0bd04cbcfadcc6625","_id":"google-search-results-nodejs@2.0.0","_nodeVersion":"14.4.0","_npmVersion":"6.14.4","_npmUser":{"name":"vikoky","email":"jvmvik@gmail.com"},"maintainers":[{"name":"vikoky","email":"jvmvik@gmail.com"}],"dist":{"integrity":"sha512-qHIJM3AtllYZX/0qoZx2LwopDYAJDcdxALbf1E6rwx0R11WjfW9/dKQo32zc/tElA3Jl85ZmWeyVkGkJ+IJWoQ==","shasum":"f1c94fc4609a6e65de88ca78e797a6fa2bfc9471","tarball":"https://registry.npmjs.org/google-search-results-nodejs/-/google-search-results-nodejs-2.0.0.tgz","fileCount":30,"unpackedSize":26652,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfVqqZCRA9TVsSAnZWagAAwuMP/jEfbT7vF597EGilXKjZ\nmxrZcIRebbY9o6cTzObx6aZttjnY/hdwBvEMZru/p18ewxI+IMbGVb3xpHWy\n/tDZkduX+38OE+tAhnhF/kVXhToBnTD2j5D2Aj9UaW1xP60VtrI9wVSAxVOn\nBA6p46tU9eifEdFjROXUFAdhzu7mwFd4CUBU8XRqTjfN33qCvSA1RzbUF2cD\nSX7ao/6g2cv5wg5BDENNaR2/BLsJM3TZar/nTF7B2jv1kQyD+VPs2YaVX7sD\nNodtc32JXfI77U5tLw3oMyZGArKR5Zn7oiuKckaQeLihn0enXmzQ1aI5IL3A\nrGRqhlQLJ5yz8SAIRZXnoNg2SPCkweWKpSTT9h+9KLCIdl+OHPjwDifWPlhr\nXVAGtgQsiT7wRfkR/qJYKViMzp3EguylZNZ393nUtw2OwZoLSu/a1FZVAFEl\nymkqRluOg1McfuN9YzhlnHlDFI5wUaR7Z/P7fT5KNTj4u3Fo5swSl17fKc3n\n0ZE3sx7sVHTFYUjNH/D7aXOmPTK764hw3kFuABkmA1cKlCFujCHqJHjIHB+R\noAXC5VQb6ZyUDr2jLnvglZxAb5z6WFPZWO7w7NCtA6cIAbdBlP38W3sTHLAZ\nTa35KOMa2ZX3wPtBdI4Cxq5ns71BBN8ZmF/eIurPpL1OeyTjs6To3E97mRZc\nId4S\r\n=9Hbo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCr9wecRQP2BfwwBMDS/f2nsUOL8pXh2ed/TvOYXBhBgwIhAMCYkpHoNQ4UIGFKAFj4ubgu0YnIwNCfPF+BT69BEk8+"}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/google-search-results-nodejs_2.0.0_1599515289136_0.6127119112508446"},"_hasShrinkwrap":false},"2.0.1":{"name":"google-search-results-nodejs","version":"2.0.1","description":"Google Search Node JS API via SerpApi.com","scripts":{"test":"mocha","coverage":"mocha -R test && npm run coverage"},"repository":{"type":"git","url":"git+https://github.com/serpapi/google-search-results-nodejs.git"},"keywords":["google","search","scrape","api","query","json","html","image","automated","localization","serp","serpapi","image","news","seo","walmart","yahoo","yandex","scholar","bing","baidu","ebay","youtube"],"devDependencies":{"braces":">=2.3.1","expect":"^26.4.2","minimist":">=0.2.1","mocha":"^8.1.3"},"author":{"name":"Victor Benarbia victor@serpapi.com"},"license":"ISC","bugs":{"url":"https://github.com/serpapi/google-search-results-nodejs/issues"},"homepage":"https://github.com/serpapi/google-search-results-nodejs#readme","dependencies":{},"main":"lib/main.js","gitHead":"cbadec5122a4362774fce66e219adcc872d71ead","_id":"google-search-results-nodejs@2.0.1","_nodeVersion":"14.4.0","_npmVersion":"6.14.4","_npmUser":{"name":"vikoky","email":"jvmvik@gmail.com"},"maintainers":[{"name":"vikoky","email":"jvmvik@gmail.com"}],"dist":{"integrity":"sha512-DfiqawBwliUfdy//OUtbIxaU2r7f2frwbCedr6GLZoP5ucZKFiSDvmb1xyXRng744ElHpeSxmhnwDTwVQTk5zw==","shasum":"af9a06c431efb2be853423fdc93f4e951c6b870e","tarball":"https://registry.npmjs.org/google-search-results-nodejs/-/google-search-results-nodejs-2.0.1.tgz","fileCount":12,"unpackedSize":15301,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfmir+CRA9TVsSAnZWagAAhUMP/1UhfEt9N/iaQL+N8uYX\nDt/qnv9kn0j9q4OkNDVaWIhIJoo1beSO8d/BNPPnAnJVecL37yNpa6Uum+SN\nrRZJdAB/zlM8Mdm65ZJVUNb7aD95xWG2EdAinQ0S7dSHEJAcFp4lckPXU3Bc\nJmASscSSvV95kOYeQ3kskRN+K0DF2E+ecor254cq1qDTEvZ5p+F14MUO6fl6\neQfaY03OeV23CkzrqsjyWRmGdVxkWZIuXYh59Gl6f/8NPu8Vb43c7R7eDwhi\nf6xga3jXWJQA09JMlRxCwhvkxIpkIQX1zTBpY/yt6+PyR57Z1DB9NIqlvSgs\nuFHmOvE2vGQimVjWuV8liNznTC54Cqp+h0aIEy59AASLuz34+cqQOaszLFU8\nTaHsSpASEClr/G7lNxvftiP4mZyPeGzVMEie4tANglD+1hBUw8cV058Vntx6\nME4LtIHB7Gjl8aPXfiu7/nDfv524PYvY+0Th4qi5sGcrIvoJ/LO0Rvb1Uu4U\nisQaOzx/MpmuO8cg/DM3BI6P3fmdxqHkNraQL8ixw4FdIJNKCo2b0MTdnb28\nQqdVzaGke/GbK7UeCimMS2d1nGfywo7dEVFzwfFZ1ARQKmT5LMAiAuSg5eYQ\np5DG500xpHPZf7bZMjgIJvrGg8LtKav9hIT5mqzGtkCUqdYl/JJvt5Duf+P2\narmB\r\n=MWLQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDHvC+W+7h5qIapxJ6sXxHDprt9jcsJtqcNjux1bGdCQwIgSQeA6jjb5ixeQwLlc1lrzeT+bXoAj0ZIEwrm4OTIKfU="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/google-search-results-nodejs_2.0.1_1603939069499_0.5514041393333802"},"_hasShrinkwrap":false},"2.1.0":{"name":"google-search-results-nodejs","version":"2.1.0","description":"Google Search Node JS API via SerpApi.com","scripts":{"test":"mocha","coverage":"mocha -R test && npm run coverage"},"repository":{"type":"git","url":"git+https://github.com/serpapi/google-search-results-nodejs.git"},"keywords":["google","search","scrape","api","query","json","html","image","automated","localization","serp","serpapi","image","news","seo","walmart","yahoo","yandex","scholar","bing","baidu","ebay","youtube","apple","store","app","homedepot","naver","duckduckgo"],"devDependencies":{"braces":">=2.3.1","expect":"^26.4.2","minimist":">=0.2.1","mocha":"^8.4.0"},"author":{"name":"Victor Benarbia victor@serpapi.com"},"license":"ISC","bugs":{"url":"https://github.com/serpapi/google-search-results-nodejs/issues"},"homepage":"https://github.com/serpapi/google-search-results-nodejs#readme","main":"lib/main.js","gitHead":"a67715995d46356a8b41fa1da054d22eb799a95c","_id":"google-search-results-nodejs@2.1.0","_nodeVersion":"17.2.0","_npmVersion":"8.1.4","dist":{"integrity":"sha512-7jEAoAV/Ful7Q2BxrYrkOst14aqwUvkEUwlRBrYATUylpp/bf3uE9lDgyk9brqbDt61hA2xkAm2sog9orHImVw==","shasum":"f5870306e62a6590e135655d3b4a870057f3eada","tarball":"https://registry.npmjs.org/google-search-results-nodejs/-/google-search-results-nodejs-2.1.0.tgz","fileCount":16,"unpackedSize":17442,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhyN9BCRA9TVsSAnZWagAAXaIP/3OaftaE+9wq9C8Exzxl\n2bqhiQ0djVCc0yLwEKqhsdBQkVeCYQEdXbAyl+vf+MWqtmm/pGlSfQrcWIhC\nR/CNuN4eQiIEOX4APfm/4Ty3/cBm3ccJ6M/bYfdzGPR/0KF7BHAEI58zunFT\nyV+bJfhNtF/3kNAenGWDrG/JEXGw03VaaIPnExy/ka2iKZSIneYh2mnV/Gxf\nS0F1hnreMhp+4Dl//JEAsQZI2w3Fe5Oa5QtjP3dKtgDrN7oBriJYb6VTIM0h\nWxKs3aJVLIddy9PIGVhdC3w4c7SxS5FuQQADbNOyNL3YbY5Wo5i9SOtVIkgy\nkB+T+lyeDF+EWE2X2g6r2CXSe+KxamiW3UB12v1Tnvf6prQiDFuItO992aDA\nfqa8DnQkKVQI2MTgKKoZgPaVBqTEubMh29NI8h+MOojdGfnsO6CN3Q1T/umk\nDONVtAAoEIZbxi1jWu0iPkQAph+SLvG77DZ25XMQtV6Bw1P/7TOr/RMH83Et\nzeXt+Gvsq6ljOm/lxS3CQg5OOJRsvGvap/M3ojWuntdIlf4Q/B5++xdbS569\n9HPq5OdbMwXzL1ALXh1AcKe2BPx7ewSIbGo0+Qaxr7LgBs7FUBOHXgHGtkql\n3cos1UGTO9OfK77oyykgRuel2D20yBITB4mGZseMzFNAxd9TYlTmStpJzI/z\nuf9l\r\n=LNxu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCf/tK5dIhkTQHo10I54HAc5fHaErkEKIZrweku8OdsFQIhAJ+eo0t7phxL3/OE9ke1jYlUvtLcTgckJxzabrPaTyfG"}]},"_npmUser":{"name":"vikoky","email":"jvmvik@gmail.com"},"directories":{},"maintainers":[{"name":"vikoky","email":"jvmvik@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/google-search-results-nodejs_2.1.0_1640554305745_0.6362406896798578"},"_hasShrinkwrap":false}},"time":{"created":"2018-02-08T02:11:19.129Z","0.0.1":"2018-02-08T02:11:19.957Z","modified":"2023-02-17T11:44:29.620Z","0.1.0":"2018-12-17T03:30:30.454Z","1.2.0":"2019-04-02T14:49:03.284Z","1.3.0":"2019-09-02T03:12:03.073Z","2.0.0":"2020-09-07T21:48:09.256Z","2.0.1":"2020-10-29T02:37:49.636Z","2.1.0":"2021-12-26T21:31:45.883Z"},"maintainers":[{"email":"webmaster@serpapi.com","name":"serpapi"},{"email":"jvmvik@gmail.com","name":"vikoky"}],"description":"Google Search Node JS API via SerpApi.com","homepage":"https://github.com/serpapi/google-search-results-nodejs#readme","keywords":["google","search","scrape","api","query","json","html","image","automated","localization","serp","serpapi","image","news","seo","walmart","yahoo","yandex","scholar","bing","baidu","ebay","youtube","apple","store","app","homedepot","naver","duckduckgo"],"repository":{"type":"git","url":"git+https://github.com/serpapi/google-search-results-nodejs.git"},"author":{"name":"Victor Benarbia victor@serpapi.com"},"bugs":{"url":"https://github.com/serpapi/google-search-results-nodejs/issues"},"license":"ISC","readme":"# Google Search Node.js\n\n[![npm version](https://badge.fury.io/js/google-search-results-nodejs.svg)](https://badge.fury.io/js/google-search-results-nodejs)\n![test](https://github.com/serpapi/google-search-results-nodejs/workflows/test/badge.svg)\n\nThis NodeJS module is designed to scrape and parse Google, Bing and Baidu results using [SerpApi](https://serpapi.com).\nThis Ruby Gem is meant to scrape and parse Google results using [SerpApi](https://serpapi.com).\nThe following services are provided:\n * [Search API](https://serpapi.com/search-api)\n * [Location API](https://serpapi.com/locations-api)\n * [Search Archive API](https://serpapi.com/search-archive-api)\n * [Account API](https://serpapi.com/account-api)\n\nSerpApi provides a [script builder](https://serpapi.com/demo) to get you started quickly.\n\nThis npm package is meant to scrape and parse Google results using [SerpApi](https://serpapi.com).\nThe following services are provided:\n * [Search API](https://serpapi.com/search-api)\n * [Location API](https://serpapi.com/locations-api)\n * [Search Archive API](https://serpapi.com/search-archive-api)\n * [Account API](https://serpapi.com/account-api)\n\nSerpApi provides a [script builder](https://serpapi.com/demo) to get you started quickly.\n\n[The full documentation is available here.](https://serpapi.com/search-api)\n\n[Link to NodeJS Package](https://www.npmjs.com/package/google-search-results-nodejs)\n\n## Requirement\n\n- ES6 basic understanding\n- NodeJS coding skills\n- Node 7+ and NPM installed\n\n## Installation\n\nNPM 7+\n\n```bash\n$ npm install google-search-results-nodejs\n```\n\n[Link to npm package](https://www.npmjs.com/package/google-search-results-nodejs)\n\n## Quick start\n\n```javascript\nconst SerpApi = require('google-search-results-nodejs')\nconst search = new SerpApi.GoogleSearch(\"Your Private Key\")\nsearch.json({\n q: \"Coffee\", \n location: \"Austin, TX\"\n}, (result) => {\n  console.log(result)\n})\n ```\nThis example runs a search about \"coffee\" using your secret api key.\n\nThe SerpApi service (backend)\n - searches on Google using the search: q = \"coffee\"\n - parses the messy HTML responses\n - return a standardizes JSON response\nThe class GoogleSearch\n - Format the request to SerpApi server\n - Execute GET http request\n - Parse JSON into Ruby Hash using JSON standard library provided by Ruby\nEt voila..\n\nAlternatively, you can search:\n- Baidu using BaiduSearch class\n- Bing using BingSearch class\n- DuckDuckGo using DuckDuckGoSearch class\n- Yahoo using YahooSearch class\n- Ebay using EbaySearch class\n- Yandex using YandexSearch class\n- HomeDepot using HomeDepotSearch class\n- GoogleScholar using GoogleScholarSearch class\n- Youtube using YoutubeSearch class\n- Walmart using WalmartSearch\n- Apple App Store using AppleAppStoreSearch class\n- Naver using NaverSearch class\n\nSee the [playground to generate your code.](https://serpapi.com/playground)\n\n## Example\n * [How to set SERP API key](#how-to-set-serp-api-key)\n * [Search API capability](#search-api-capability)\n * [Example by specification](#example-by-specification)\n * [Location API](#location-api)\n * [Search Archive API](#search-archive-api)\n * [Account API](#account-api)\n * [Promise and callback](#Promise-and-callback)\n * [Coding style](#coding-style)\n \n### How to set SERP API key\nThe SerpApi api_key can be set globally using a singleton pattern.\n```javascript\nconst SerpApi = require('google-search-results-nodejs')\nlet search = new SerpApi.GoogleSearch(\"Your Private Key\")\n```\n\nThe SerpApi api_key can be provided for each request\n```javascript\nconst SerpApi = require('google-search-results-nodejs')\nlet search = new SerpApi.GoogleSearch()\nlet result = search.json({\n api_key: \"Your private key\",\n q: \"Coffee\",            // search query\n location: \"Austin, TX\", // location \n}, (data) => {\n  console.log(data)\n})\n```\n\n### Search API capability\n```javascript\nquery_params = {\n  q: \"query\",\n  google_domain: \"Google Domain\", \n  location: \"Location Requested\", \n  device: device,\n  hl: \"Google UI Language\",\n  gl: \"Google Country\",\n  safe: \"Safe Search Flag\",\n  num: \"Number of Results\",\n  start: \"Pagination Offset\",\n  api_key: \"Your SERP API Key\",  // https://serpapi.com/dashboard\n  tbm: \"nws|isch|shop\",\n  tbs: \"custom to be search criteria\",\n  async: true|false,   // allow async query\n  output: \"json|html\", // output format\n}\n\nconst SerpApi = require('google-search-results-nodejs')\nconst search = new SerpApi.GoogleSearch()\n\n// create a callback\ncallback = (data) => {\n console.log(data)\n}\n\n// Show result as JSON\nsearch.json(query_params, callback)\n\n// Show result as HTML file\nsearch.html(query_params, callback)\n```\n\n[the full documentation](https://serpapi.com/search-api)\n\nsee below for more hands on examples.\n\n### Example by specification\n\nWe love true open source, continuous integration and Test Drive Development (TDD). \n We are using RSpec to test [our infrastructure around the clock](https://travis-ci.org/serpapi/google-search-results-ruby) to achieve the best QoS (Quality Of Service).\n \nThe directory test/ includes specification/examples.\n\nSet your api key.\n```bash\nexport API_KEY=\"your secret key\"\n```\n\nRun all tests\n```npm test```\n\n### Location API\n```javascript\nconst search = new SerpApi.GoogleSearch(api_key)\nsearch.location(\"Austin\", 3, (data) => {\n  console.log(data)\n})\n```\n\nit prints the first 3 location matching Austin (Texas, Texas, Rochester)\n```javascript\n[ { id: '585069bdee19ad271e9bc072',\n    google_id: 200635,\n    google_parent_id: 21176,\n    name: 'Austin, TX',\n    canonical_name: 'Austin,TX,Texas,United States',\n    country_code: 'US',\n    target_type: 'DMA Region',\n    reach: 5560000,\n    gps: [ -97.7430608, 30.267153 ],\n    keys: [ 'austin', 'tx', 'texas', 'united', 'states' ] },\n  ...]\n```\n\n### Search Archive API\n\nThe first search result returns a search_id which can be provided to get the search result from the archive.\n```javascript\nvar search = new SerpApi.GoogleSearch(api_key)\nsearch.json({q: \"Coffee\", location: \"Portland\" }, (search_result) => {\n  // search in archive for the search just returned\n  search.search_archive(search_result.search_metadata.id, (archived_search) => {\n    console.log(archived_search)\n  })\n})\n```\n\nit prints the search from the archive.\n\n### Account API\n```javascript\nconst search = new SerpApi.GoogleSearch(api_key)\nsearch.account((data) => {\n  console.log(data)\n})\n```\nit prints your account information.\n\n## Promise and callback\n\nThis API was developped using basic callback to handle response.\nAnd exception are just throw away with interceptor.\n\nif you want to take advantage of the promise to block the request. \nhere is how I will do.\n```javascript\nconst util = require('util')\n\nfunction getJson(parameter, resolve, reject) {  \n  const search = new SerpApi.GoogleSearch(api_key)\n  try {\n    search.json(parameter, resolve)\n  } catch (e) {\n    reject(e)\n  }\n}\n\nconst blockFn = util.promisify(getJson)\nblockFn[util.promisify.custom](parameter).then((data) => {\n  expect(data.local_results[0].title.length).toBeGreaterThan(5)\n  done()\n}).catch((error) => {\n  console.error(error)\n  done()\n})\n```\n\nReference:\n * test: test/ExampleSpec.js\n * documentation: https://nodejs.org/docs/latest-v8.x/api/util.html#util_util_promisify_original\n\n## Coding style\n\nThis API is using callback to run in non-blocking code.\nHere we are trying to follow the spirit of NodeJS. \nFor reference you can read this article:\n * https://nodejs.org/en/docs/guides/blocking-vs-non-blocking/\n * https://nodejs.org/en/docs/guides/dont-block-the-event-loop/\n\nFor pratical example, you can see the test located under test/.\n\n## Run regression\n\nTo run the regression suite.\n```bash\nexport API_KEY=\"your api key\"\nmake test\n```\n\n## Change log\n * 2.1 \n   * add support for Naver, HomeDepot, AppleStoreApp, DuckDuckGo\n   * defeature location if it is not supported by the search engine\n * 2.0.1 \n  * fix classes loading.\n * 2.0\n   * Refractor class name: SearchResult -> Search\n * 1.2\n   * stable version to support all the basic search API.\n\n## Conclusion\nSerpApi supports Google Images, News, Shopping and more..\nTo enable a type of search, the field tbm (to be matched) must be set to:\n\n * isch: Google Images API.\n * nws: Google News API.\n * shop: Google Shopping API.\n * any other Google service should work out of the box.\n * (no tbm parameter): regular Google search.\n\nThe field `tbs` allows to customize the search even more.\n\n[The full documentation is available here.](https://serpapi.com/search-api)\n","readmeFilename":"README.md","users":{"vikoky":true}}