{"_id":"athena-express-plus","_rev":"12-082fd635f76c562ba8ea56804d8efb3f","name":"athena-express-plus","dist-tags":{"latest":"8.1.0"},"versions":{"8.0.0":{"name":"athena-express-plus","version":"8.0.0","description":"athena-express-plus makes it easier to execute SQL queries on Amazon Athena by consolidating & astracting several methods in the AWS SDK","main":"./lib/index.js","types":"./index.d.ts","scripts":{"test":"node ./node_modules/mocha/bin/mocha","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage","start":"npm test"},"repository":{"type":"git","url":"git+https://github.com/sr-26/athena-express-plus.git"},"keywords":["aws","athena","amazon","amazon","web","services","sql","database"],"author":{"name":"Gary Arora","url":"https://twitter.com/AroraGary"},"license":"MIT","bugs":{"url":"https://github.com/sr-26/athena-express-plus"},"homepage":"https://github.com/sr-26/athena-express-plus#readme","devDependencies":{"@aws-sdk/client-athena":"^3.414.0","@aws-sdk/client-s3":"^3.414.0","chai":"^4.2.0","coveralls":"^3.0.11","istanbul":"^0.4.5","mocha":"^8.3.2","mocha-lcov-reporter":"^1.3.0"},"dependencies":{"csvtojson":"^2.0.10"},"gitHead":"d3cb6bdab3ac6238679be248e8427231697814ae","_id":"athena-express-plus@8.0.0","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-MLolgpS80gNfaR1VoNJqBUPSaUo+snR+QqUDP0KzPIknLMySc3Xp/AN8zgT7hFA2qgBzT1ZNooHuqPX6tArZAw==","shasum":"0a739dcc7758bcae13f3a45d6b95507575a2a58d","tarball":"https://registry.npmjs.org/athena-express-plus/-/athena-express-plus-8.0.0.tgz","fileCount":9,"unpackedSize":22574,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGI9MRq2o0Eg56g25lzla8DG/EYKc8RcvKBT+j7oPK+zAiA2MjWDPGBhzrD2O5JbrZmOzizNoHqb3eB4imPDVYRDNA=="}]},"_npmUser":{"name":"weasely","email":"sachinrana99@yahoo.com"},"directories":{},"maintainers":[{"name":"weasely","email":"sachinrana99@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/athena-express-plus_8.0.0_1694874906611_0.7079252668740248"},"_hasShrinkwrap":false},"8.0.1":{"name":"athena-express-plus","version":"8.0.1","description":"athena-express-plus makes it easier to execute SQL queries on Amazon Athena by consolidating & astracting several methods in the AWS SDK","main":"./lib/index.js","types":"./index.d.ts","scripts":{"test":"node ./node_modules/mocha/bin/mocha","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage","start":"npm test"},"repository":{"type":"git","url":"git+https://github.com/sr-26/athena-express-plus.git"},"keywords":["aws","athena","amazon","amazon","web","services","sql","database"],"author":{"name":"Gary Arora","url":"https://twitter.com/AroraGary"},"license":"MIT","bugs":{"url":"https://github.com/sr-26/athena-express-plus"},"homepage":"https://github.com/sr-26/athena-express-plus#readme","devDependencies":{"@aws-sdk/client-athena":"^3.414.0","@aws-sdk/client-s3":"^3.414.0","chai":"^4.2.0","coveralls":"^3.0.11","istanbul":"^0.4.5","mocha":"^8.3.2","mocha-lcov-reporter":"^1.3.0"},"dependencies":{"csvtojson":"^2.0.10"},"gitHead":"92fb649022b42497e6c13debc0ef78b2ca923301","_id":"athena-express-plus@8.0.1","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-ru/dvg9yNws+iCQbLbQrhw2Qp9/CKpaG8FKutj06uZ/sMuOmaIXQlE2geHDsxARr3NNAwEdxP/NJhayywGQWww==","shasum":"b23bdce51aeda7a7156053d8a3bf2e705bd4be8f","tarball":"https://registry.npmjs.org/athena-express-plus/-/athena-express-plus-8.0.1.tgz","fileCount":9,"unpackedSize":22579,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC0XdUhle2+kjrl/m4Ke44UMJFACNXcowZC2P4SJBHoCgIgGxlBzpnFgYei9U/mbI3X8N/KofUiak59cc//Tmy1DDU="}]},"_npmUser":{"name":"weasely","email":"sachinrana99@yahoo.com"},"directories":{},"maintainers":[{"name":"weasely","email":"sachinrana99@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/athena-express-plus_8.0.1_1695358507516_0.765002275409308"},"_hasShrinkwrap":false},"8.0.2":{"name":"athena-express-plus","version":"8.0.2","description":"athena-express-plus makes it easier to execute SQL queries on Amazon Athena by consolidating & astracting several methods in the AWS SDK","main":"./lib/index.js","types":"./index.d.ts","scripts":{"test":"node ./node_modules/mocha/bin/mocha","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage","start":"npm test"},"repository":{"type":"git","url":"git+https://github.com/sr-26/athena-express-plus.git"},"keywords":["aws","athena","amazon","amazon","web","services","sql","database"],"author":{"name":"Gary Arora","url":"https://twitter.com/AroraGary"},"license":"MIT","bugs":{"url":"https://github.com/sr-26/athena-express-plus"},"homepage":"https://github.com/sr-26/athena-express-plus#readme","devDependencies":{"@aws-sdk/client-athena":"^3.414.0","@aws-sdk/client-s3":"^3.414.0","chai":"^4.2.0","coveralls":"^3.0.11","istanbul":"^0.4.5","mocha":"^8.3.2","mocha-lcov-reporter":"^1.3.0"},"dependencies":{"csvtojson":"^2.0.10"},"gitHead":"144ea3acf7a11db679202d17fe8f0d42fd633bac","_id":"athena-express-plus@8.0.2","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-wAOiGk+87IDYN6UPYQ0l9N8/eilJukD14Rj4NT5aIUbNG1DBPYBZczvIs1oyy+OydFn9rBVWy03LEeoO1m3oWg==","shasum":"b548355ec727ea1789551d5cf837f40997cc7d3e","tarball":"https://registry.npmjs.org/athena-express-plus/-/athena-express-plus-8.0.2.tgz","fileCount":9,"unpackedSize":22727,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEwV1Gk/OPpqc5YdieGWTJQB4m/J8ra2hPWqMhTx/QTsAiB3Aw+BUg8Ig6SGRtWnqKbJ7GmrYZtjkTN3oz/N4GAUbg=="}]},"_npmUser":{"name":"weasely","email":"sachinrana99@yahoo.com"},"directories":{},"maintainers":[{"name":"weasely","email":"sachinrana99@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/athena-express-plus_8.0.2_1695360386193_0.18769850479763917"},"_hasShrinkwrap":false},"8.0.3":{"name":"athena-express-plus","version":"8.0.3","description":"athena-express-plus makes it easier to execute SQL queries on Amazon Athena by consolidating & astracting several methods in the AWS SDK","main":"./lib/index.js","types":"./index.d.ts","scripts":{"test":"node ./node_modules/mocha/bin/mocha","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage","start":"npm test"},"repository":{"type":"git","url":"git+https://github.com/sr-26/athena-express-plus.git"},"keywords":["aws","athena","amazon","amazon","web","services","sql","database"],"author":{"name":"Gary Arora","url":"https://twitter.com/AroraGary"},"license":"MIT","bugs":{"url":"https://github.com/sr-26/athena-express-plus"},"homepage":"https://github.com/sr-26/athena-express-plus#readme","devDependencies":{"@aws-sdk/client-athena":"^3.414.0","@aws-sdk/client-s3":"^3.414.0","chai":"^4.2.0","coveralls":"^3.0.11","istanbul":"^0.4.5","mocha":"^8.3.2","mocha-lcov-reporter":"^1.3.0"},"dependencies":{"csvtojson":"^2.0.10"},"gitHead":"bb4ef0500eac61e1c2280aa0942394ee406d4610","_id":"athena-express-plus@8.0.3","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-Vd/s4G4PAiCD8oTlNTiecfx5Ot+0zpOY1TJTskUPkvgyhcG5mYim7X56djtA8R1K4PsCWwICAGjDHUcdau0rUQ==","shasum":"dc02dc2bd038f5f421e7ed7e16edf46ae873fbbd","tarball":"https://registry.npmjs.org/athena-express-plus/-/athena-express-plus-8.0.3.tgz","fileCount":9,"unpackedSize":36607,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDpHA3B7p5sCl2vSCIEFLa1hzKVvvUK+V/BPnjog8B3rAIgAPNGOm+IUjT21qIa3M8RHMXX3vnzpY8jhUIfTpegjPM="}]},"_npmUser":{"name":"weasely","email":"sachinrana99@yahoo.com"},"directories":{},"maintainers":[{"name":"weasely","email":"sachinrana99@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/athena-express-plus_8.0.3_1695454276054_0.5141787766821697"},"_hasShrinkwrap":false},"8.0.4":{"name":"athena-express-plus","version":"8.0.4","description":"athena-express-plus makes it easier to execute SQL queries on Amazon Athena by consolidating & astracting several methods in the AWS SDK","main":"./lib/index.js","types":"./index.d.ts","scripts":{"test":"node ./node_modules/mocha/bin/mocha","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage","start":"npm test"},"repository":{"type":"git","url":"git+https://github.com/sr-26/athena-express-plus.git"},"keywords":["aws","athena","amazon","amazon","web","services","sql","database"],"author":{"name":"Gary Arora","url":"https://twitter.com/AroraGary"},"license":"MIT","bugs":{"url":"https://github.com/sr-26/athena-express-plus"},"homepage":"https://github.com/sr-26/athena-express-plus#readme","devDependencies":{"@aws-sdk/client-athena":"^3.414.0","@aws-sdk/client-s3":"^3.414.0","chai":"^4.2.0","coveralls":"^3.0.11","istanbul":"^0.4.5","mocha":"^8.3.2","mocha-lcov-reporter":"^1.3.0"},"dependencies":{"csvtojson":"^2.0.10"},"gitHead":"4661c45d132f0349599c30d6e4defc27a9f4f57f","_id":"athena-express-plus@8.0.4","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-zOWCdBHvheX/g4HAIB/1vRrrbmdZFut4Kv8jNF9FmrPndxlJLMTckcCdktvJLeIGJFxio9MOFdpd3VnUQ9jR4A==","shasum":"b1b1b746f8ccbac3978c885a4f937acc521a31b7","tarball":"https://registry.npmjs.org/athena-express-plus/-/athena-express-plus-8.0.4.tgz","fileCount":11,"unpackedSize":37714,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC87jziOr3BvCYYP6gbilEB4ZZIggEZB6/0aYFJh+QIOgIgLiQ75nm+OxZZ68QBGlhQvDkwFUWtrZART5XEdFOnE08="}]},"_npmUser":{"name":"weasely","email":"sachinrana99@yahoo.com"},"directories":{},"maintainers":[{"name":"weasely","email":"sachinrana99@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/athena-express-plus_8.0.4_1695455314466_0.5200482881432442"},"_hasShrinkwrap":false},"8.0.5":{"name":"athena-express-plus","version":"8.0.5","description":"athena-express-plus makes it easier to execute SQL queries on Amazon Athena by consolidating & astracting several methods in the AWS SDK","main":"./lib/index.js","types":"./index.d.ts","scripts":{"test":"node ./node_modules/mocha/bin/mocha","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage","start":"npm test"},"repository":{"type":"git","url":"git+https://github.com/sr-26/athena-express-plus.git"},"keywords":["aws","athena","amazon","amazon","web","services","sql","database"],"author":{"name":"Gary Arora","url":"https://twitter.com/AroraGary"},"license":"MIT","bugs":{"url":"https://github.com/sr-26/athena-express-plus"},"homepage":"https://github.com/sr-26/athena-express-plus#readme","devDependencies":{"@aws-sdk/client-athena":"^3.414.0","@aws-sdk/client-s3":"^3.414.0","chai":"^4.2.0","coveralls":"^3.0.11","istanbul":"^0.4.5","mocha":"^8.3.2","mocha-lcov-reporter":"^1.3.0"},"dependencies":{"csvtojson":"^2.0.10"},"gitHead":"66ab7581299c63d8283b23b789dd0b21381c6c9b","_id":"athena-express-plus@8.0.5","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-I6Y5Ca+YFm7+t5VCHarby1d1ln4gWLhGBx+T4G0P8TSzb4GHZHYtL2FMM6Z4Nl3c6hbsUtvbvW53r8VuDnielQ==","shasum":"8eb98ee199edd1678061221b599778058fa13530","tarball":"https://registry.npmjs.org/athena-express-plus/-/athena-express-plus-8.0.5.tgz","fileCount":9,"unpackedSize":36607,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEM3xn0cHYHdYGuIMW1md9RR4jpM1IvzdDxSYXWl9vUNAiAGBZTy2vrBwCTrfNtk6A2L1D5MEQWbRPH5DTiEGWF7lA=="}]},"_npmUser":{"name":"weasely","email":"sachinrana99@yahoo.com"},"directories":{},"maintainers":[{"name":"weasely","email":"sachinrana99@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/athena-express-plus_8.0.5_1695455997268_0.6959250446434586"},"_hasShrinkwrap":false},"8.0.6":{"name":"athena-express-plus","version":"8.0.6","description":"athena-express-plus makes it easier to execute SQL queries on Amazon Athena by consolidating & astracting several methods in the AWS SDK","main":"./lib/index.js","types":"./index.d.ts","scripts":{"test":"node ./node_modules/mocha/bin/mocha","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage","start":"npm test"},"repository":{"type":"git","url":"git+https://github.com/sr-26/athena-express-plus.git"},"keywords":["aws","athena","amazon","amazon","web","services","sql","database"],"author":{"name":"Gary Arora","url":"https://twitter.com/AroraGary"},"license":"MIT","bugs":{"url":"https://github.com/sr-26/athena-express-plus"},"homepage":"https://github.com/sr-26/athena-express-plus#readme","devDependencies":{"@aws-sdk/client-athena":"^3.414.0","@aws-sdk/client-s3":"^3.414.0","chai":"^4.2.0","coveralls":"^3.0.11","istanbul":"^0.4.5","mocha":"^8.3.2","mocha-lcov-reporter":"^1.3.0"},"dependencies":{"csvtojson":"^2.0.10"},"gitHead":"ca028a8d9b1abc6088e86248a3f2faeb57e1fe42","_id":"athena-express-plus@8.0.6","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-g7xl32y4IpkPNbk72nBCCRFVnWJqMxt2uSoHdSSmvFkNT7d75SXLnXfm/bDaHHnF6kiUolbyz6FmnLYdKTkaXA==","shasum":"7b3e1120f0e3c88adfbfcb2a484caaeb46e77e28","tarball":"https://registry.npmjs.org/athena-express-plus/-/athena-express-plus-8.0.6.tgz","fileCount":9,"unpackedSize":36593,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD5Tzm4VoD2mgBNfgX6E8rF+2Q24ORAGavMbns3751GvwIgP5ftqvgbWjUXyW3+Y+JEg/R9JgOip0PyrTSY4VUDHdI="}]},"_npmUser":{"name":"weasely","email":"sachinrana99@yahoo.com"},"directories":{},"maintainers":[{"name":"weasely","email":"sachinrana99@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/athena-express-plus_8.0.6_1695740581840_0.11489962246893448"},"_hasShrinkwrap":false},"8.0.7":{"name":"athena-express-plus","version":"8.0.7","description":"Athena-Express-Plus is a Node.js library for simplified SQL query execution in Amazon Athena, supporting the latest AWS SDK v3 architecture. It provides seamless integration with Athena, enabling clean JSON result retrieval, parameterized queries, and pag","main":"./lib/index.js","types":"./index.d.ts","scripts":{"test":"node ./node_modules/mocha/bin/mocha","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage","start":"npm test"},"repository":{"type":"git","url":"git+https://github.com/sr-26/athena-express-plus.git"},"keywords":["aws","athena","amazon","amazon","web","services","sql","database","amazon athena","athena express","sql queries","aws sdk","node.js library","serverless","data analysis","parameterized queries","pagination","json results","data warehousing","aws integration","serverless sql","aws lambda","query execution","data querying","aws services"],"author":{"name":"Weasely"},"license":"MIT","bugs":{"url":"https://github.com/sr-26/athena-express-plus"},"homepage":"https://github.com/sr-26/athena-express-plus#readme","devDependencies":{"@aws-sdk/client-athena":"^3.414.0","@aws-sdk/client-s3":"^3.414.0","chai":"^4.2.0","coveralls":"^3.0.11","istanbul":"^0.4.5","mocha":"^8.3.2","mocha-lcov-reporter":"^1.3.0"},"dependencies":{"csvtojson":"^2.0.10"},"gitHead":"a509313eee17908dda336d528f688344c25c5d0b","_id":"athena-express-plus@8.0.7","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-yPd5AaABFXE8r2PhEYK//fxixjhwEUy7fI0vLIKD6pVHX/xOpX1W0wpKeGjjfeFEZ5CkIN9Z+7QWvPMfCB6f1w==","shasum":"f066ce44d4390e5d710f79e7c0a978b35147b19f","tarball":"https://registry.npmjs.org/athena-express-plus/-/athena-express-plus-8.0.7.tgz","fileCount":9,"unpackedSize":37121,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG9HjbXcq6zDpyw5wZnFRsPcDWSi881ZU+0aJ9Gsd3euAiBQFufcUqdeXLIX8zrB5w5ezl+hr9vVxzQUoShPcmKG+g=="}]},"_npmUser":{"name":"weasely","email":"sachinrana99@yahoo.com"},"directories":{},"maintainers":[{"name":"weasely","email":"sachinrana99@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/athena-express-plus_8.0.7_1697083309879_0.3631223467371547"},"_hasShrinkwrap":false},"8.0.8":{"name":"athena-express-plus","version":"8.0.8","description":"Athena-Express-Plus is a Node.js library for simplified SQL query execution in Amazon Athena, supporting the latest AWS SDK v3 architecture. It provides seamless integration with Athena, enabling clean JSON result retrieval, parameterized queries, and pag","main":"./lib/index.js","types":"./index.d.ts","scripts":{"test":"node ./node_modules/mocha/bin/mocha","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage","start":"npm test"},"repository":{"type":"git","url":"git+https://github.com/sr-26/athena-express-plus.git"},"keywords":["aws","athena","amazon","amazon","web","services","sql","database","amazon athena","athena express","sql queries","aws sdk","node.js library","serverless","data analysis","parameterized queries","pagination","json results","data warehousing","aws integration","serverless sql","aws lambda","query execution","data querying","aws services"],"author":{"name":"Weasely"},"license":"MIT","bugs":{"url":"https://github.com/sr-26/athena-express-plus"},"homepage":"https://github.com/sr-26/athena-express-plus#readme","devDependencies":{"@aws-sdk/client-athena":"^3.414.0","@aws-sdk/client-s3":"^3.414.0","chai":"^4.2.0","coveralls":"^3.0.11","istanbul":"^0.4.5","mocha":"^8.3.2","mocha-lcov-reporter":"^1.3.0"},"dependencies":{"csvtojson":"^2.0.10"},"gitHead":"3ed50450f82f548b6b701ebfa29faaf0e8f178ff","_id":"athena-express-plus@8.0.8","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-moxEwWhyhPBffdXL5vU5zD5O3Z8BPyvn5CyUYNfJdZs5/tZH7oOhpjjmL+t8nrXeL25EGwU/Q6hTyHv3xN3tRw==","shasum":"0c8855ebb7c3066d3d01a7a3e490694989782ce7","tarball":"https://registry.npmjs.org/athena-express-plus/-/athena-express-plus-8.0.8.tgz","fileCount":9,"unpackedSize":37267,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGqOJZpwIGfztDlTvhuwhJ3Ffqtz7/FcCeTvF77suaU3AiEA/XTXDy1to3bIZh6GqlQ+SzzKUh+7/2ltRMpNlrNeb6Y="}]},"_npmUser":{"name":"weasely","email":"sachinrana99@yahoo.com"},"directories":{},"maintainers":[{"name":"weasely","email":"sachinrana99@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/athena-express-plus_8.0.8_1699881450962_0.9657045613516735"},"_hasShrinkwrap":false},"8.0.9":{"name":"athena-express-plus","version":"8.0.9","description":"Athena-Express-Plus is a Node.js library for simplified SQL query execution in Amazon Athena, supporting the latest AWS SDK v3 architecture. It provides seamless integration with Athena, enabling clean JSON result retrieval, parameterized queries, and pag","main":"./lib/index.js","types":"./index.d.ts","scripts":{"test":"node ./node_modules/mocha/bin/mocha","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage","start":"npm test"},"repository":{"type":"git","url":"git+https://github.com/sr-26/athena-express-plus.git"},"keywords":["aws","athena","amazon","amazon","web","services","sql","database","amazon athena","athena express","sql queries","aws sdk","node.js library","serverless","data analysis","parameterized queries","pagination","json results","data warehousing","aws integration","serverless sql","aws lambda","query execution","data querying","aws services"],"author":{"name":"Weasely"},"license":"MIT","bugs":{"url":"https://github.com/sr-26/athena-express-plus"},"homepage":"https://github.com/sr-26/athena-express-plus#readme","devDependencies":{"@aws-sdk/client-athena":"^3.414.0","@aws-sdk/client-s3":"^3.414.0","chai":"^4.2.0","coveralls":"^3.0.11","istanbul":"^0.4.5","mocha":"^8.3.2","mocha-lcov-reporter":"^1.3.0"},"dependencies":{"csvtojson":"^2.0.10"},"gitHead":"a1fef44de6d1b345cad2433223f9cec52361dafb","_id":"athena-express-plus@8.0.9","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-tOE+F/cDX0NlbBHCyxhs6z6OihQBIofFUHwcizpFMNtEUEaM2NPzTgWX6wH6ZdyOBoOsUfugZHaY8Z+WT8j5hw==","shasum":"e4a04083704ccea85d0d893696f4836bae602759","tarball":"https://registry.npmjs.org/athena-express-plus/-/athena-express-plus-8.0.9.tgz","fileCount":9,"unpackedSize":38096,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCLxja0T7siC6epYl9hCCRrmV5GJpe/WyUyzDdXe4wogQIhAOJdah0nboZdj5plIcVL2TVOLEvZxHvSkAdGHgs1nAo/"}]},"_npmUser":{"name":"weasely","email":"sachinrana99@yahoo.com"},"directories":{},"maintainers":[{"name":"weasely","email":"sachinrana99@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/athena-express-plus_8.0.9_1702099788294_0.5616823752732338"},"_hasShrinkwrap":false},"8.0.10":{"name":"athena-express-plus","version":"8.0.10","description":"Athena-Express-Plus is a Node.js library for simplified SQL query execution in Amazon Athena, supporting the latest AWS SDK v3 architecture. It provides seamless integration with Athena, enabling clean JSON result retrieval, parameterized queries, and pag","main":"./lib/index.js","types":"./index.d.ts","scripts":{"test":"node ./node_modules/mocha/bin/mocha","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage","start":"npm test"},"repository":{"type":"git","url":"git+https://github.com/sr-26/athena-express-plus.git"},"keywords":["aws","athena","amazon","amazon","web","services","sql","database","amazon athena","athena express","sql queries","aws sdk","node.js library","serverless","data analysis","parameterized queries","pagination","json results","data warehousing","aws integration","serverless sql","aws lambda","query execution","data querying","aws services"],"author":{"name":"Weasely"},"license":"MIT","bugs":{"url":"https://github.com/sr-26/athena-express-plus"},"homepage":"https://github.com/sr-26/athena-express-plus#readme","devDependencies":{"@aws-sdk/client-athena":"^3.414.0","@aws-sdk/client-s3":"^3.414.0","chai":"^4.2.0","coveralls":"^3.0.11","istanbul":"^0.4.5","mocha":"^8.3.2","mocha-lcov-reporter":"^1.3.0"},"dependencies":{"csvtojson":"^2.0.10"},"gitHead":"d2b2b3918464f906b8c3e43482d6531c9704e89a","_id":"athena-express-plus@8.0.10","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-aclBTrKVCQriaCcmEuZvkL3b3MQJQitZUrMsSnMPP+dTg+gR3yrLB6Impj7VznmK1cDnZgDLEbRqTn7YXqkf6Q==","shasum":"a3e407e384bfb384d5f131b0c01963c206321d6d","tarball":"https://registry.npmjs.org/athena-express-plus/-/athena-express-plus-8.0.10.tgz","fileCount":9,"unpackedSize":38158,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCRauj1fmoyar1qM4nNlq/4hYT0uGZ003Ek7rDfrD06/gIgd8+2jTVGRF2emRu87MdivQwN1MtaF2Knl48uc7/RkzQ="}]},"_npmUser":{"name":"weasely","email":"sachinrana99@yahoo.com"},"directories":{},"maintainers":[{"name":"weasely","email":"sachinrana99@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/athena-express-plus_8.0.10_1705688518538_0.28604776916178776"},"_hasShrinkwrap":false},"8.0.11":{"name":"athena-express-plus","version":"8.0.11","description":"Athena-Express-Plus is a Node.js library for simplified SQL query execution in Amazon Athena, supporting the latest AWS SDK v3 architecture. It provides seamless integration with Athena, enabling clean JSON result retrieval, parameterized queries, and pag","main":"./lib/index.js","types":"./index.d.ts","scripts":{"test":"node ./node_modules/mocha/bin/mocha","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage","start":"npm test"},"repository":{"type":"git","url":"git+https://github.com/sr-26/athena-express-plus.git"},"keywords":["aws","athena","amazon","amazon","web","services","sql","database","amazon athena","athena express","sql queries","aws sdk","node.js library","serverless","data analysis","parameterized queries","pagination","json results","data warehousing","aws integration","serverless sql","aws lambda","query execution","data querying","aws services"],"author":{"name":"Weasely"},"license":"MIT","bugs":{"url":"https://github.com/sr-26/athena-express-plus"},"homepage":"https://github.com/sr-26/athena-express-plus#readme","devDependencies":{"chai":"^4.2.0","coveralls":"^3.0.11","istanbul":"^0.4.5","mocha":"^8.3.2","mocha-lcov-reporter":"^1.3.0"},"dependencies":{"@aws-sdk/client-athena":"^3.414.0","@aws-sdk/client-s3":"^3.414.0","csvtojson":"^2.0.10"},"gitHead":"957acfeae4dfcc2e38165a567f0afa2fb52b1405","_id":"athena-express-plus@8.0.11","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-69rUqRmn+eJDryVv2+/UGVVEL+UWvZaGlrzgdUHXnIOUEsSpATYNn3ZbYo2DMt7WUvDYMALMLsYqxDhLizasvw==","shasum":"4ca4346a1ef21187ea37f788ebce888d0b50e05e","tarball":"https://registry.npmjs.org/athena-express-plus/-/athena-express-plus-8.0.11.tgz","fileCount":9,"unpackedSize":38158,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC2r0UOkKV9zGoVSoQy4P0XEs7h6Qw/rxlaom/XsYXYrgIgVPBIrXUXOyxw8KE/Mjcl3qI1wCP61pyndcdDBTUXI0g="}]},"_npmUser":{"name":"weasely","email":"sachinrana99@yahoo.com"},"directories":{},"maintainers":[{"name":"weasely","email":"sachinrana99@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/athena-express-plus_8.0.11_1706711888972_0.9653383148883852"},"_hasShrinkwrap":false},"8.1.0":{"name":"athena-express-plus","version":"8.1.0","description":"Athena-Express-Plus is a Node.js library for simplified SQL query execution in Amazon Athena, supporting the latest AWS SDK v3 architecture. It provides seamless integration with Athena, enabling clean JSON result retrieval, parameterized queries, and pag","main":"./lib/index.js","types":"./index.d.ts","scripts":{"test":"node ./node_modules/mocha/bin/mocha","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage","start":"npm test"},"repository":{"type":"git","url":"git+https://github.com/sr-26/athena-express-plus.git"},"keywords":["aws","athena","amazon","amazon","web","services","sql","database","amazon athena","athena express","sql queries","aws sdk","node.js library","serverless","data analysis","parameterized queries","pagination","json results","data warehousing","aws integration","serverless sql","aws lambda","query execution","data querying","aws services"],"author":{"name":"Weasely"},"license":"MIT","bugs":{"url":"https://github.com/sr-26/athena-express-plus"},"homepage":"https://github.com/sr-26/athena-express-plus#readme","devDependencies":{"chai":"^4.2.0","coveralls":"^3.0.11","istanbul":"^0.4.5","mocha":"^8.3.2","mocha-lcov-reporter":"^1.3.0"},"dependencies":{"@aws-sdk/client-athena":"^3.414.0","@aws-sdk/client-s3":"^3.414.0","csvtojson":"^2.0.10"},"gitHead":"12db42dad22fc98017ac60bf51113dcb271569ec","_id":"athena-express-plus@8.1.0","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-KljkMNbFTBQKURdwuQfE8pWYplFIvwynMi12fkMjjYb1jT4yZEytdZ40IiklwAGagPC61VO3nf0sVZsgKZ3vJA==","shasum":"0be4e6786c0bc1fc8e903edfa364cc2142cd7ea8","tarball":"https://registry.npmjs.org/athena-express-plus/-/athena-express-plus-8.1.0.tgz","fileCount":9,"unpackedSize":39284,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJsEA5llJ6lgtHQyE6+bsVNhHr6dLrS8/Xa2qwik7LhwIhAMOFYfHSnac6HHGXIKBHWgSs//AaosHYlUKmOV3IyY31"}]},"_npmUser":{"name":"weasely","email":"sachinrana99@yahoo.com"},"directories":{},"maintainers":[{"name":"weasely","email":"sachinrana99@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/athena-express-plus_8.1.0_1708437117477_0.27111424517455496"},"_hasShrinkwrap":false}},"time":{"created":"2023-09-16T14:35:06.610Z","8.0.0":"2023-09-16T14:35:06.814Z","modified":"2024-02-20T13:51:58.091Z","8.0.1":"2023-09-22T04:55:07.734Z","8.0.2":"2023-09-22T05:26:26.461Z","8.0.3":"2023-09-23T07:31:16.310Z","8.0.4":"2023-09-23T07:48:34.733Z","8.0.5":"2023-09-23T07:59:57.570Z","8.0.6":"2023-09-26T15:03:02.098Z","8.0.7":"2023-10-12T04:01:50.104Z","8.0.8":"2023-11-13T13:17:31.122Z","8.0.9":"2023-12-09T05:29:48.522Z","8.0.10":"2024-01-19T18:21:58.673Z","8.0.11":"2024-01-31T14:38:09.134Z","8.1.0":"2024-02-20T13:51:57.649Z"},"maintainers":[{"name":"weasely","email":"sachinrana99@yahoo.com"}],"description":"Athena-Express-Plus is a Node.js library for simplified SQL query execution in Amazon Athena, supporting the latest AWS SDK v3 architecture. It provides seamless integration with Athena, enabling clean JSON result retrieval, parameterized queries, and pag","homepage":"https://github.com/sr-26/athena-express-plus#readme","keywords":["aws","athena","amazon","amazon","web","services","sql","database","amazon athena","athena express","sql queries","aws sdk","node.js library","serverless","data analysis","parameterized queries","pagination","json results","data warehousing","aws integration","serverless sql","aws lambda","query execution","data querying","aws services"],"repository":{"type":"git","url":"git+https://github.com/sr-26/athena-express-plus.git"},"author":{"name":"Weasely"},"bugs":{"url":"https://github.com/sr-26/athena-express-plus"},"license":"MIT","readme":"# Athena-Express-Plus: Enhanced Version of Athena-Express\r\n## AWS V3 Architecture Support\r\n\r\nThis fork of Athena-Express is fully compatible with the AWS V3 architecture, providing seamless integration with the latest AWS services and features. It leverages the AWS SDK v3 for Athena and S3, ensuring optimal performance and reliability when executing SQL queries on Amazon Athena.\r\n\r\n##### Forked Repository\r\n\r\nThis repository is a fork of the original [Athena-Express](https://github.com/ghdna/athena-express) project. It includes added support for parameterized queries, allowing users to pass parameters into their SQL queries for dynamic execution.\r\n\r\n## Synopsis\r\n\r\nAthena-Express-Plus can simplify executing SQL queries in Amazon Athena **AND** fetching _cleaned-up_ JSON results in the same synchronous or asynchronous request, making it well-suited for web applications.\r\n\r\n#### Example:\r\n![Athena-Express-Plus Example](https://image.ibb.co/cWNvFV/carbon-1.png)\r\n\r\n## Amazon Athena Background\r\n\r\n[Amazon Athena](https://aws.amazon.com/athena/), launched at AWS re:Invent 2016, makes it easier to analyze data in Amazon S3 using standard SQL. Under the covers, it uses [Presto](https://prestodb.io/), an open-source SQL engine developed by Facebook in 2012 to query their 300 Petabyte data warehouse. It's incredibly powerful!\r\n\r\nAmazon Athena combines the strength of Presto with serverless and self-managed capabilities of AWS. By simply pointing Athena to your data in Amazon S3, you can start querying using standard SQL. Most results are delivered within seconds, and there’s no need for complex ETL jobs to prepare your data for analysis. This makes it easy for anyone with SQL skills to quickly analyze large-scale datasets.\r\n\r\n## How Athena-Express-Plus Simplifies Using Amazon Athena\r\n\r\n`athena-express-plus` simplifies integrating Amazon Athena with any Node.js application, whether running as a standalone application or as a Lambda function. Athena-Express-Plus bundles the following steps, as listed in the official [AWS Documentation](https://docs.aws.amazon.com/athena/latest/APIReference/Welcome.html):\r\n\r\n1. Initiates a query execution.\r\n2. Keeps checking until the query has finished executing.\r\n3. Fetches the results of the query execution from Amazon S3.\r\n\r\nAdditional features include:\r\n\r\n4. Formatting the results into a clean, user-friendly JSON array.\r\n5. Handling specific Athena errors by recursively retrying for `ThrottlingException`, `NetworkingError`, and `TooManyRequestsException`.\r\n6. Providing optional helpful stats, including the cost per query in USD.\r\n7. Fetching results (rows) via Pagination OR as a continuous stream.\r\n8. Synchronous and Asynchronous fetching of results (rows).\r\n\r\nIntegrating with Amazon Athena without `athena-express-plus` would require you to identify the appropriate API methods, stitch them together sequentially, and then build out error handling and retry mechanisms for each of those methods.\r\n\r\n>`athena-express-plus` can help you save time and effort in setting up this integration, allowing you to focus on core application development.\r\n\r\n### How Athena-Express-Plus Is Used\r\n\r\nThe most common use case is integrating a web front-end with Amazon Athena using `athena-express-plus` as a backend. This backend could be any Node.js application, hosted locally, on an EC2 instance, or as an AWS Lambda function.\r\n\r\nHere's an example using AWS Lambda:\r\n![Athena-Express-Plus Architecture](https://image.ibb.co/k3RpNA/Screen-Shot-2018-11-22-at-11-17-58-AM.png)\r\n\r\nIn this architecture, a web front-end invokes an API endpoint hosted on Amazon API Gateway by passing a query request. The query request can be as simple as `SELECT * FROM movies LIMIT 3`.\r\n\r\nThis API Gateway then triggers a Lambda function that has the `athena-express-plus` library imported.\r\n\r\n## Setup\r\n\r\n#### Simple Configuration\r\n\r\n```javascript\r\nconst { Athena } = require(\"@aws-sdk/client-athena\")\r\nconst { S3 } = require(\"@aws-sdk/client-s3\");\r\nconst athena = new Athena({ region: \"REGION\" });\r\nconst s3 = new S3({ region: \"REGION\" });\r\nconst athenaExpressConfig = { athena, s3, 's3Bucket': \"s3://my-bucket\" };\r\nconst athenaExpress = new AthenaExpress(athenaExpressConfig);\r\n```\r\n\r\n#### Using AthenaClient, S3Client\r\n\r\n```javascript\r\nconst { AthenaClient } = require(\"@aws-sdk/client-athena\")\r\nconst { S3Client } = require(\"@aws-sdk/client-s3\");\r\nconst athena = new AthenaClient({ region: \"REGION\" });\r\nconst s3 = new S3Client({ region: \"REGION\" });\r\nconst athenaExpressConfig = { athena, s3, 's3Bucket': \"s3://my-bucket\" };\r\nconst athenaExpress = new AthenaExpress(athenaExpressConfig);\r\n```\r\n\r\n#### Advance configuration\r\n\r\n- Besides the `athena`, `s3` parameter that is required, you can add any of the following optional parameters below\r\n\r\n\r\n\r\n```javascript\r\nconst { Athena } = require(\"@aws-sdk/client-athena\")\r\nconst { S3 } = require(\"@aws-sdk/client-s3\");\r\n\r\n// Example showing all Config parameters.\r\nconst athenaExpressConfig = {\r\n    s3: new S3({ region: \"REGION\" }),  // required\r\n    athena: new Athena({ region: \"REGION\" }), // required\r\n    s3Bucket: \"s3://mybucketname\",  // (optional) in case query result location already specified in workgroup\r\n    db: \"myDbName\", // optional\r\n    workgroup: \"myWorkGroupName\", // optional\r\n    formatJson: true, // optional\r\n    retry: 200, // optional\r\n    getStats: true, // optional\r\n    ignoreEmpty: true, // optional\r\n    encryption: { EncryptionOption: \"SSE_KMS\", KmsKey: process.env.kmskey }, // optional\r\n    skipResults: false, // optional\r\n    waitForResults: false, // optional\r\n    catalog: \"hive\", // optional\r\n    flatKeys: false // optional\r\n    resultReuse: true // optional\r\n    resultReuseMaxAge: 100 // optional\r\n};\r\n\r\n// Initializing AthenaExpress\r\nconst athenaExpress = new AthenaExpress(athenaExpressConfig);\r\n```\r\n\r\n###### Advance config Parameters:\r\n\r\n| Parameter  | Format | Default Value | Description |\r\n| ------------- | ------------- | ------------- | ------------- |\r\n| db | string  | `default`  | Athena database name that the SQL queries should be executed in. When a `db` name is specified in the config, you can execute SQL queries without needing to explicitly mention DB name. e.g. <br />` athenaExpress.query(\"SELECT * FROM movies LIMIT 3\")` <br /> as opposed to <br />` athenaExpress.query({sql: \"SELECT * FROM movies LIMIT 3\", db: \"moviedb\"});`  |\r\n| workgroup | string  | `primary`  | The name of the workgroup in which the query is being started. <br /> Note: athena-express-plus cannot create workgroups (as it includes a lot of configuration) so you will need to create one beforehand IFF you intend to use a non default workgroup. Learn More here. [Setting up Workgroups](https://docs.aws.amazon.com/athena/latest/ug/user-created-workgroups.html) |\r\n|formatJson  | boolean | `true` |  Override as false if you rather get the raw unformatted output from S3. |\r\n|retry  | integer | `200` milliseconds| Wait interval between re-checking if the specific Athena query has finished executing |\r\n|getStats | boolean | `false`| Set `getStats: true` to capture additional metadata for your query, such as: <ul><li>`EngineExecutionTimeInMillis`</li><li>`DataScannedInBytes`</li><li>`TotalExecutionTimeInMillis`</li><li>`QueryQueueTimeInMillis`</li><li>`QueryPlanningTimeInMillis`</li><li>`ServiceProcessingTimeInMillis`</li><li>`DataScannedInMB`</li><li>`QueryCostInUSD`</li><li>`Count`</li><li>`QueryExecutionId`</li><li>`S3Location`</li></ul> |\r\n|ignoreEmpty  | boolean | `true`| Ignore fields with empty values from the final JSON response.  |\r\n|encryption | object | -- | [Encryption configuation](https://docs.aws.amazon.com/athena/latest/ug/encryption.html) example usage: <br />`{ EncryptionOption: \"SSE_KMS\", KmsKey: process.env.kmskey}` |\r\n|skipResults | boolean | `false` | For a unique requirement where a user may only want to execute the query in Athena and store the results in S3 but NOT fetch those results in that moment. <br />Perhaps to be retrieved later or simply stored in S3 for auditing/logging purposes. <br />To retrieve the results, you can simply pass the `QueryExecutionId` into athena-express-plus as such: `athenaExpress.query(\"ab493e66-138f-4b78-a187-51f43fd5f0eb\")`  |\r\n|waitForResults  | boolean | `true` | When low latency is the objective, you can skip waiting for a query to be completed in Athena. Returns `QueryExecutionId`, which you can pass into athena-express-plus later as such: `athenaExpress.query(\"ab493e66-138f-4b78-a187-51f43fd5f0eb\")` <br /> Not to be confused with `skipResults`, which actually waits for the query to be completed before returning `QueryExecutionId` and other stats. `waitForResults` is meant for fire-and-forget kind of operations.  <br />  |\r\n|catalog  | string | `null` | The catalog to which the query results belong  |\r\n|flatKeys | boolean | `false` | Don't interpret dots (.) and square brackets in header fields as nested object or array identifiers at all (treat them like regular characters for JSON field identifiers).`To prevent JSON nesting, consider setting the parameter to true.`  |\r\n|resultReuse  | boolean | `false` | If previous query results can be reused when the query is run  |\r\n|resultReuseMaxAge  | number | `0` | Specifies, in minutes, the maximum age of a previous query result that athena should consider for reuse  |\r\n\r\n\r\n\r\n\r\n###### Advance Query Parameters:\r\n```javascript\r\n//Example showing all Query parameters.\r\nlet myQuery = {\r\n    sql: \"SELECT * FROM elb_logs LIMIT 3\" // required,\r\n    db: \"sampledb\", // optional. \r\n    pagination: 5, //optional\r\n    NextToken: \"ARfCDXRjMk...\", //optional\r\n    QueryExecutionId: \"c274843b-4c5c-4ccf-ac8b-e33d595b927d\", //optional\r\n    catalog: \"hive\" //optional\r\n};\r\n```\r\n\r\n| Parameter  | Format | Default Value | Description |\r\n| ------------- | ------------- | ------------- | ------------- |\r\n| sql  | string <br /> `required`  |  | The SQL query statements to be executed. <br /> E.g. \"SELECT * FROM elb_logs LIMIT 3  |\r\n| db | string <br />   | `default` |The name of the database used in the query execution. <br /> You can specify the database name here within the query itself OR in athenaExpressConfig during initialization as shown in [Advance Config Parameters](https://github.com/ghdna/athena-express#advance-config-parameters) |\r\n| pagination | number  | `0` <br /> max: `1000` | Maximum number of results (rows) to return in a single paginated response. <br />Response includes results from page 1 along with `NextToken` and `QueryExecutionId` IFF the response was truncated <br /> To obtain the next set of pages, pass in the `NextToken` and `QueryExecutionId` back to Athena. <br /> See [example here](https://github.com/ghdna/athena-express#more-examples)\t |\r\n| NextToken | string  | `null` | A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.  |\r\n| QueryExecutionId | string  | `null` | The unique ID of the query execution. <br />To be passed into the AthenaExpress query when using the features of `Pagination`, `waitForResults` or `skipResults `  |\r\n|catalog  | string | `null` | The catalog to which the query results belong  |\r\n|values  | string[] | `[]` | Placeholders for the parameters  |\r\n\r\n## Usage: Invoking athena-express-plus\r\n\r\n###### Using Promises to query Athena:\r\n\r\n```javascript\r\n/*Option 1: object notation*/ \r\nlet myQuery = {\r\n\tsql: \"SELECT elb_name, request_port, request_ip FROM elb_logs LIMIT 3\" /* required */,\r\n\tdb: \"sampledb\" /* optional. You could specify a database here or in the advance configuration option mentioned above*/\r\n};\r\n\r\n/*OR Option 2: string notation*/ \r\nlet myQuery = \"SELECT elb_name, request_port, request_ip FROM elb_logs LIMIT 3\"\r\n\r\nathenaExpress\r\n\t.query(myQuery)\r\n\t.then(results => {\r\n\t\tconsole.log(results);\r\n\t})\r\n\t.catch(error => {\r\n\t\tconsole.log(error);\r\n\t});\r\n```\r\n\r\n###### Using Async/Await to query Athena:\r\n\r\n```javascript\r\n(async () => {\r\n/*Option 1: object notation*/ \r\n\tlet myQuery = {\r\n\t\tsql: \"SELECT elb_name, request_port, request_ip FROM elb_logs LIMIT 3\" /* required */,\r\n\t\tdb: \"sampledb\" /* optional. You could specify a database here or in the configuration constructor*/\r\n\t};\r\n    \r\n/*OR Option 2: string notation*/ \r\nlet myQuery = \"SELECT elb_name, request_port, request_ip FROM elb_logs LIMIT 3\"\r\n\r\n\ttry {\r\n\t\tlet results = await athenaExpress.query(myQuery);\r\n\t\tconsole.log(results);\r\n\t} catch (error) {\r\n\t\tconsole.log(error);\r\n\t}\r\n})();\r\n```\r\n###### Using QueryExecutionID:\r\n\r\nApplicable only if you already have the `QueryExecutionID` from an earlier execution. See `skipResults` or `waitForResults` in the advance config params above to learn more.\r\n```javascript\r\nconst myQueryExecutionId = \"bf6ffb5f-6c36-4a66-8735-3be6275960ae\";\r\nlet results = await athenaExpress.query(myQueryExecutionId);\r\nconsole.log(results);\r\n```\r\n## Full Examples\r\n\r\n###### Using a standalone NodeJS application\r\n\r\n```javascript\r\n\"use strict\";\r\n\r\nconst AthenaExpress = require(\"athena-express-plus\"),\r\nconst athena = new Athena({ region: \"REGION\" });\r\nconst s3 = new S3({ region: \"REGION\" });\r\nconst athenaExpressConfig = { athena, s3, 's3Bucket': \"s3://my-bucket\", getStats: true};\r\nconst athenaExpress = new AthenaExpress(athenaExpressConfig);\r\n\r\n//Invoking a query on Amazon Athena\r\n(async () => {\r\n\tlet myQuery = {\r\n\t\tsql: \"SELECT elb_name, request_port, request_ip FROM elb_logs LIMIT 3\",\r\n\t\tdb: \"sampledb\"\r\n\t};\r\n\r\n\ttry {\r\n\t\tlet results = await athenaExpress.query(myQuery);\r\n\t\tconsole.log(results);\r\n\t} catch (error) {\r\n\t\tconsole.log(error);\r\n\t}\r\n})();\r\n```\r\n\r\n###### Using AWS Lambda\r\n\r\n```javascript\r\n\"use strict\";\r\n\r\nconst AthenaExpress = require(\"athena-express-plus\"),\r\nconst athena = new Athena();\r\nconst s3 = new S3();\r\nconst athenaExpressConfig = { athena, s3, 's3Bucket': \"s3://my-bucket\", db: \"sampledb\", getStats: true};\r\n\r\n/* AWS Credentials are not required here \r\n/* Make sure the IAM Execution Role used by this Lambda \r\n/* has the necessary permission to execute Athena queries \r\n/* and store the result in Amazon S3 bucket\r\n/* See configuration section above under Setup for more info */\r\n\r\nconst athenaExpress = new AthenaExpress(athenaExpressConfig);\r\n\r\nexports.handler = async event => {\r\n\tconst sqlQuery = \"SELECT elb_name, request_port, request_ip FROM elb_logs LIMIT 3\";\r\n\r\n\ttry {\r\n\t\tlet results = await athenaExpress.query(sqlQuery);\r\n\t\treturn results;\r\n\t} catch (error) {\r\n\t\treturn error;\r\n\t}\r\n};\r\n```\r\n\r\n###### Results:\r\n\r\n<img src=\"https://image.ibb.co/fpARNA/carbon-2.png\" alt=\"Athena-Express-Plus result\" width=\"400\">\r\n\r\n## More Examples\r\n##### Pagination\r\n######  Query to fetch results (rows) for page 1\r\n```javascript\r\nasync function main() {\r\n     const myQuery = {\r\n        sql: \"SELECT * from students LIMIT 100\",\r\n        pagination: 10\r\n    };\r\n    let results = await athenaExpress.query(myQuery);\r\n    console.log(results);\r\n}\r\nmain();\r\n\r\n```\r\nThis will fetch the first 10 results (rows) off the 100 that exits in Athena. To query the next 10 rows, pass the values for `NextToken` and `QueryExecutionId` that were returned in the first query.\r\n\r\n###### Query to fetch results (rows) for page 2 and beyond\r\n```javascript\r\nasync function main() {\r\n     const myQuery = {\r\n        sql: \"SELECT * from students LIMIT 100\",\r\n        pagination: 10,\r\n        NextToken: \"ARfCDXRjMkQsR1NWziK1ARgiip3umf3q0/bZmNZWeQxUDc7iSToT7uJHy2yo8nL5FyxQoIIkuPh/zDD51xld7SoALA+zhMhpZg==\",\r\n        QueryExecutionId: \"c274843b-4c5c-4ccf-ac8b-e33d595b927d\",\r\n    };\r\n    let results = await athenaExpress.query(myQuery);\r\n    console.log(results);\r\n}\r\nmain();\r\n\r\n```\r\n\r\n\r\n##### UTILITY queries\r\n###### Show Tables (single column result)\r\n ```javascript\r\n const results = await athenaExpress.query(\"SHOW TABLES\");\r\nconsole.log(results);\r\n\r\n//Output:\r\n{ Items:\r\n   [ { row: 'default' },\r\n     { row: 'sampledb' } ] }\r\n   ```\r\n\r\n###### Describe Table (dual column result)\r\n\r\n ```javascript\r\n const results = await athenaExpress.query(\"DESCRIBE elb_logs\");\r\nconsole.log(results);\r\n\r\n//Output:\r\n{ Items:\r\n   [ { request_timestamp: 'string' },\r\n     { elb_name: 'string' },\r\n     { request_ip: 'string' },\r\n     { request_port: 'int' },\r\n     { backend_ip: 'string' },\r\n     { backend_port: 'int' },\r\n     { request_processing_time: 'double' },\r\n     { backend_processing_time: 'double' },\r\n     { client_response_time: 'double' },\r\n     { elb_response_code: 'string' },\r\n     { backend_response_code: 'string' },\r\n     { received_bytes: 'bigint' },\r\n     { sent_bytes: 'bigint' },\r\n     { request_verb: 'string' },\r\n     { url: 'string' },\r\n     { protocol: 'string' },\r\n     { user_agent: 'string' },\r\n     { ssl_cipher: 'string' },\r\n     { ssl_protocol: 'string' } ] }\r\n   ```\r\n\r\n## Support for Parameterized Queries\r\n\r\nWith this fork, we've added support for parameterized queries. Parameterized queries enable users to build dynamic SQL queries by injecting parameters into the query string. This is especially useful when you need to execute similar queries with different values.\r\n\r\n### Example of a Parameterized Query\r\n\r\nHere's an example of how to use parameterized queries with Athena-Express-Plus:\r\n\r\n```javascript\r\n\r\nlet myQuery = {\r\n    sql: \"SELECT * FROM cloudfront_logs LIMIT ? \",\r\n    db: \"mydatabase\",\r\n    values: ['2']\r\n};\r\n\r\nathenaExpress\r\n    .query(myQuery)\r\n    .then(results => {\r\n        console.log(results);\r\n    })\r\n    .catch(error => {\r\n        console.log(error);\r\n    });\r\n\r\nlet myQuery1 = \"SELECT * FROM mydatabase.cloudfront_logs LIMIT ?\";\r\n\r\nathenaExpress\r\n    .query(myQuery1, ['1'])\r\n    .then(results => {\r\n        console.log(results);\r\n    })\r\n    .catch(error => {\r\n        console.log(error);\r\n    });\r\n\r\n```\r\n\r\nIn this example, we define a query with placeholders ? and provide the actual parameter value (string) in the values array.\r\n\r\n\r\n### Getting Started\r\nTo get started with this fork and use parameterized queries, follow the installation and setup instructions in the original Athena-Express README.\r\n\r\n## Contributors\r\n\r\nThanks to the following people who have contributed to this project.\r\n\r\n![GitHub contributors](https://contrib.rocks/image?repo=sr-26/athena-express-plus)\r\n\r\n## License\r\n\r\nMIT\r\n\r\n## Acknowledgments\r\nI would like to acknowledge the original contributor(s) of this project for their valuable work:\r\n\r\n- [Gary Arora](https://twitter.com/AroraGary) - Thank you for creating this amazing project.\r\n\r\n","readmeFilename":"README.md"}