{"_id":"igniculus","_rev":"16-f7beed3907567a5725f1e33d7b389a36","name":"igniculus","description":"SQL Syntax Highlighter and Logger. Unadorned and customizable.","dist-tags":{"latest":"1.5.0","rc":"1.4.0-0"},"versions":{"0.0.1":{"name":"igniculus","version":"0.0.1","description":"SQL syntax highlighter and logger. Unadorned and customizable.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/Undre4m/igniculus.git"},"author":{"name":"Lucas Astrada","email":"astrada.sis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/Undre4m/igniculus/issues"},"homepage":"https://github.com/Undre4m/igniculus#readme","engines":{"node":">=4.0.0"},"gitHead":"362f9b7d1ef004f7ff9782d193c0b8ffbae9cdd5","_id":"igniculus@0.0.1","_npmVersion":"5.3.0","_nodeVersion":"6.9.2","_npmUser":{"name":"undre4m","email":"astrada.sis@gmail.com"},"dist":{"integrity":"sha512-PCz/1CKT/cmvA/M4KgimRgQ0XOUqBijJYDhbQU6b8SAHQAifyQSTHsQpKTLOvcULgMrijGgbAEjhjy0CocpFVA==","shasum":"31cf764009144edb83b7faf89aee0defe637902e","tarball":"https://registry.npmjs.org/igniculus/-/igniculus-0.0.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC/ypNNumNDXrcw6MYeLveF0uqOb4RQJshKyNhmnpX3UwIhAIpD7n/h3vdYpIPnWjIK5wVf/ZzcvOo2t/OwS2/nDQKO"}]},"maintainers":[{"name":"undre4m","email":"astrada.sis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/igniculus-0.0.1.tgz_1500504109516_0.3284563119523227"},"directories":{}},"0.2.0":{"name":"igniculus","version":"0.2.0","description":"SQL Syntax Highlighter and Logger. Unadorned and customizable.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/Undre4m/igniculus.git"},"author":{"name":"Lucas Astrada","email":"astrada.sis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/Undre4m/igniculus/issues"},"homepage":"https://github.com/Undre4m/igniculus#readme","engines":{"node":">=4.0.0"},"devDependencies":{"eslint":"^4.3.0"},"gitHead":"c09ea5f8b99f7282025e1c6fc3d9b1e165b2b1ed","_id":"igniculus@0.2.0","_npmVersion":"5.3.0","_nodeVersion":"6.9.2","_npmUser":{"name":"undre4m","email":"astrada.sis@gmail.com"},"dist":{"integrity":"sha512-c8D+MB4LHP2tUfP+yRRLo8iMS+g2Y3DzejfyJn5ruy6KQAKagiarD23NFx6tCtsmEtXyg5KiAbSRoHXs7yUZ4w==","shasum":"2edeb806188c45f83773fcb3393cdced3e8d6e2d","tarball":"https://registry.npmjs.org/igniculus/-/igniculus-0.2.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCg4x8bSb8frH4dPuYSJagd96UJQihB+FbDzKaiY/HFBwIhAMTkmQEqN4jw3u4uKz2kJDE4Mi21FBhG0XtkihPcVNjZ"}]},"maintainers":[{"name":"undre4m","email":"astrada.sis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/igniculus-0.2.0.tgz_1501025089447_0.46177400182932615"},"directories":{}},"0.3.0":{"name":"igniculus","version":"0.3.0","description":"SQL Syntax Highlighter and Logger. Unadorned and customizable.","keywords":["ansi","color","console","format","highlight","log","sql","sequel","style","syntax","terminal"],"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/Undre4m/igniculus.git"},"author":{"name":"Lucas Astrada","email":"astrada.sis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/Undre4m/igniculus/issues"},"homepage":"https://github.com/Undre4m/igniculus#readme","engines":{"node":">=4.0.0"},"devDependencies":{"eslint":"^4.3.0"},"gitHead":"6c9bce53326932cb804b077f609145f5809f05e1","_id":"igniculus@0.3.0","_npmVersion":"5.3.0","_nodeVersion":"6.9.2","_npmUser":{"name":"undre4m","email":"astrada.sis@gmail.com"},"dist":{"integrity":"sha512-eunPMCahb/74k0evkCpF9OKKsCVBwyvZwgjGFF9zyp7i721gyI0GjSOZVeNssXPA9TIC5dWi4Y3KPescL7ToaA==","shasum":"e3ddd2637955178e24437b75589ea4865d55ef16","tarball":"https://registry.npmjs.org/igniculus/-/igniculus-0.3.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE9k6uVheEkfzpWPl2hhIgpFZ3MmmKKqZ5DMxUOUg/nvAiEA5NwDVl+uaO5c586li8sGiW1QvHKaGGdQQYzpafH5VZM="}]},"maintainers":[{"name":"undre4m","email":"astrada.sis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/igniculus-0.3.0.tgz_1501130681656_0.02238553436473012"},"directories":{}},"0.4.0":{"name":"igniculus","version":"0.4.0","description":"SQL Syntax Highlighter and Logger. Unadorned and customizable.","keywords":["ansi","color","console","format","highlight","log","sql","sequel","style","syntax","terminal"],"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/Undre4m/igniculus.git"},"author":{"name":"Lucas Astrada","email":"astrada.sis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/Undre4m/igniculus/issues"},"homepage":"https://github.com/Undre4m/igniculus#readme","engines":{"node":">=4.0.0"},"devDependencies":{"eslint":"^4.3.0"},"gitHead":"9d6d318f4515608ab5775ca73e64981f5e64cce1","_id":"igniculus@0.4.0","_npmVersion":"5.3.0","_nodeVersion":"6.9.2","_npmUser":{"name":"undre4m","email":"astrada.sis@gmail.com"},"dist":{"integrity":"sha512-tSXgVpajLC6ZBmEFyYofE9RIGVtOZH3E2q3StHpeXZAlyRlcYtv3q7umGmKG/YXcmNvP+DHiwAZA1I1TBT1ecg==","shasum":"1473529779c1250256c8211bda9a4661bfe510f4","tarball":"https://registry.npmjs.org/igniculus/-/igniculus-0.4.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAxBPtB76iXWtQcQynR0vuL91W63Z1dfdlFZiDzjR8XQAiEAyok6PSAktUSTPny5b8rK3784bu1RkCBhAGTbuz7RNf0="}]},"maintainers":[{"name":"undre4m","email":"astrada.sis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/igniculus-0.4.0.tgz_1501302242852_0.44961397675797343"},"directories":{}},"0.5.0":{"name":"igniculus","version":"0.5.0","description":"SQL Syntax Highlighter and Logger. Unadorned and customizable.","keywords":["ansi","color","console","format","highlight","log","sql","sequel","style","syntax","terminal"],"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/Undre4m/igniculus.git"},"author":{"name":"Lucas Astrada","email":"astrada.sis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/Undre4m/igniculus/issues"},"homepage":"https://github.com/Undre4m/igniculus#readme","engines":{"node":">=4.0.0"},"devDependencies":{"eslint":"^4.3.0"},"gitHead":"9e14ed60d468d4776439fce25a1a41e401baf430","_id":"igniculus@0.5.0","_npmVersion":"5.3.0","_nodeVersion":"6.9.2","_npmUser":{"name":"undre4m","email":"astrada.sis@gmail.com"},"dist":{"integrity":"sha512-GrV3QiI6/l7W6Cb3wrt31LLXFkwJcoQtBNfn70qB4T/XzeRQIWMWjfpjIwpPM8/z3vcGnKI9W7pEru8zVTf4ww==","shasum":"cf5f856800f82f6a6c474360f3aa3340510e6f56","tarball":"https://registry.npmjs.org/igniculus/-/igniculus-0.5.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICw5aPKmsymvm60FLnER3AH9y/HSvcDNlpQukA3acb+EAiEAg6s29pqCpiQXyvwWxC3dYJQVartn6/p0WPjfqau7tmA="}]},"maintainers":[{"name":"undre4m","email":"astrada.sis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/igniculus-0.5.0.tgz_1505687061089_0.5465001570992172"},"directories":{}},"1.0.0":{"name":"igniculus","version":"1.0.0","description":"SQL Syntax Highlighter and Logger. Unadorned and customizable.","keywords":["ansi","color","console","format","highlight","log","sql","sequel","style","syntax","terminal"],"main":"index.js","scripts":{"test":"ava test","eslint":"eslint **/*.js"},"repository":{"type":"git","url":"git+https://github.com/Undre4m/igniculus.git"},"author":{"name":"Lucas Astrada","email":"astrada.sis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/Undre4m/igniculus/issues"},"homepage":"https://github.com/Undre4m/igniculus#readme","engines":{"node":">=4.0.0"},"devDependencies":{"ava":"^0.24.0","dedent":"^0.7.0","eslint":"^4.14.0"},"gitHead":"7b7747f711244718273cc301890f4620df20de83","_id":"igniculus@1.0.0","_npmVersion":"5.2.0","_nodeVersion":"6.9.2","_npmUser":{"name":"undre4m","email":"astrada.sis@gmail.com"},"dist":{"integrity":"sha512-5TBHN2SfInMFZQ/ParF0Daub5/i+rHkiOXeNYtdvdDqtUn2GYJZzAuFk5i6F0EmEA8corSiAL79x8L8jAXezGA==","shasum":"7043baaa53be23951b9ee2d92d2752aaa301c444","tarball":"https://registry.npmjs.org/igniculus/-/igniculus-1.0.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBHghXztc7974q15nJlE/ubEMNAskQcHAX3/Em+dzWpCAiBo5C7IkSZt69Sa71O5tOGExSgaSGpmdvDtPFNd9pqHFA=="}]},"maintainers":[{"name":"undre4m","email":"astrada.sis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/igniculus-1.0.0.tgz_1514531401198_0.5513562373816967"},"directories":{}},"1.0.1":{"name":"igniculus","version":"1.0.1","description":"SQL Syntax Highlighter and Logger. Unadorned and customizable.","keywords":["ansi","color","console","format","highlight","log","sql","sequel","style","syntax","terminal"],"main":"index.js","scripts":{"test":"ava test","eslint":"eslint **/*.js"},"repository":{"type":"git","url":"git+https://github.com/Undre4m/igniculus.git"},"author":{"name":"Lucas Astrada","email":"astrada.sis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/Undre4m/igniculus/issues"},"homepage":"https://github.com/Undre4m/igniculus#readme","engines":{"node":">=4.0.0"},"devDependencies":{"ava":"^0.24.0","dedent":"^0.7.0","eslint":"^4.14.0"},"gitHead":"97797d7ce0fff58f97e306f9bf262ffa309d6183","_id":"igniculus@1.0.1","_npmVersion":"5.2.0","_nodeVersion":"6.9.2","_npmUser":{"name":"undre4m","email":"astrada.sis@gmail.com"},"dist":{"integrity":"sha512-Rc+HJMqj0bQAfz57g+wbMV19p6xCnxcnh0IoGgp/ElAJuHhi7zxeqABK4k77FL6MXwhNCjnyx9jsN9A7DJXbTA==","shasum":"6c0ad3a1cdb7e97f9f01eb2bfb7a5357e233ebce","tarball":"https://registry.npmjs.org/igniculus/-/igniculus-1.0.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDfrDHigZNrDzvu/VJ5uRybUBLLglVmLce8awGcFZFWMgIhAKhYy7UAQti1OjFjRSOeUQOXiiXBaEUOqMpeFNPYw1ud"}]},"maintainers":[{"name":"undre4m","email":"astrada.sis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/igniculus-1.0.1.tgz_1514950043121_0.18535366421565413"},"directories":{}},"1.1.0":{"name":"igniculus","version":"1.1.0","description":"SQL Syntax Highlighter and Logger. Unadorned and customizable.","keywords":["ansi","color","console","format","highlight","log","sql","sequel","style","syntax","terminal"],"main":"index.js","scripts":{"test":"ava test","eslint":"eslint **/*.js"},"repository":{"type":"git","url":"git+https://github.com/Undre4m/igniculus.git"},"author":{"name":"Lucas Astrada","email":"astrada.sis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/Undre4m/igniculus/issues"},"homepage":"https://github.com/Undre4m/igniculus#readme","engines":{"node":">=4.0.0"},"devDependencies":{"ava":"^0.24.0","dedent":"^0.7.0","eslint":"^4.14.0"},"gitHead":"e52ebf1b6d20d4170b3b997e52e262f8225d3984","_id":"igniculus@1.1.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"undre4m","email":"astrada.sis@gmail.com"},"dist":{"integrity":"sha512-jE8LCx2SHeQN3OPQN9IAcDYYfAxrz+e3TKYz8Xmz3l081M4VtK2vRr7QiTTo5QT78KUvngXYKepxxqw/zvkcjQ==","shasum":"835c35ae44d7790ebdb4c0f8f957b038a15b1bc3","tarball":"https://registry.npmjs.org/igniculus/-/igniculus-1.1.0.tgz","fileCount":6,"unpackedSize":25905,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEyRTHHDXDqAXR3/76TP3S+gYAjlD44AyblqfTJDK/fWAiEA9YCbPXL3XDpZQ/0bz3PMtMvxVcuq55vNR6uYIrKotQc="}]},"maintainers":[{"name":"undre4m","email":"astrada.sis@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/igniculus_1.1.0_1519619452267_0.8182816826632417"},"_hasShrinkwrap":false},"1.2.0":{"name":"igniculus","version":"1.2.0","description":"SQL Syntax Highlighter and Logger. Unadorned and customizable.","keywords":["ansi","color","console","format","highlight","log","sql","sequel","style","syntax","terminal"],"main":"index.js","scripts":{"test":"ava test","eslint":"eslint **/*.js"},"repository":{"type":"git","url":"git+https://github.com/Undre4m/igniculus.git"},"author":{"name":"Lucas Astrada","email":"astrada.sis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/Undre4m/igniculus/issues"},"homepage":"https://github.com/Undre4m/igniculus#readme","engines":{"node":">=4.0.0"},"devDependencies":{"ava":"^0.24.0","dedent":"^0.7.0","eslint":"^4.14.0"},"gitHead":"4294f16d18aff1508c759059df9297fd9adc8a94","_id":"igniculus@1.2.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"undre4m","email":"astrada.sis@gmail.com"},"dist":{"integrity":"sha512-z0o9rWi2GGfAQ0Gm6IGsRRREbj56TWf601hY8oFG6c18mMttgBupzJFTOFYd0ZDAYyWlBuo/mAxP6eZbFWS/uA==","shasum":"04aa2974ae66583022dd1f5025e5b963200243d8","tarball":"https://registry.npmjs.org/igniculus/-/igniculus-1.2.0.tgz","fileCount":6,"unpackedSize":27115,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDcfWgpl3dXzeEYiaSf92Bn9DRfmURRVJAMLqTiQwClhAiEA+BYW9l2Hj6vGpUOZWpfJLiAAaWEG0P6Xf1juiAbiAtA="}]},"maintainers":[{"name":"undre4m","email":"astrada.sis@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/igniculus_1.2.0_1520491526104_0.9896650446616291"},"_hasShrinkwrap":false},"1.3.0":{"name":"igniculus","version":"1.3.0","description":"SQL Syntax Highlighter and Logger. Unadorned and customizable.","keywords":["ansi","color","console","format","highlight","log","sql","sequel","style","syntax","terminal"],"main":"index.js","scripts":{"test":"ava test","eslint":"eslint **/*.js","coverage":"nyc --reporter=text ava test && rimraf .nyc_output","nyc":"nyc ava --fail-fast test","travis":"npm run eslint && npm run nyc"},"repository":{"type":"git","url":"git+https://github.com/Undre4m/igniculus.git"},"author":{"name":"Lucas Astrada","email":"astrada.sis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/Undre4m/igniculus/issues"},"homepage":"https://github.com/Undre4m/igniculus#readme","engines":{"node":">=4.0.0"},"devDependencies":{"ava":"^0.25.0","dedent":"^0.7.0","eslint":"^4.19.1","nyc":"^11.7.3","rimraf":"^2.6.2"},"gitHead":"b16a36a8a08419ebb5eb7bfbc75551af9f3b44af","_id":"igniculus@1.3.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"undre4m","email":"astrada.sis@gmail.com"},"dist":{"integrity":"sha512-6F+SSh9a5mkPzKc9nPWIkgrnPuVt3Ii3x0pz4Y4fy4S9I4Ua8BzU0iD2aIXzw/c1vw5HLcmZT/TEgcUuvhhrkQ==","shasum":"37e122ad690f1b10a1088a558fb1ed763a46692d","tarball":"https://registry.npmjs.org/igniculus/-/igniculus-1.3.0.tgz","fileCount":5,"unpackedSize":29225,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa9xz0CRA9TVsSAnZWagAAchQQAIBIpLkylXutxYBTBCeG\nxlHjeal63/5Rej+wrOA81zijOoiqBKgSEyYtNmG1hATv6JSGnqlmQQLdebk8\nznJE+M2+9oIRXSKcS+CDfSQtxHNvqcCJ601YyOBbm2cef2XpRpMySggMVCSG\nJorSVuPIWl9xezuvOU9gYYOaAj+ZFqD2goFXh+IBcYUpSaNkP49eFap/VtTh\n2mcA0IB79kiwdn2OKOBnm26f5elC6BpwKmRdyfJjPmM7Xm9+CIVG2gyQEPWk\nQnzRISlKv+RlpoMAMaVeNcbCnszh4sjMSzpuSffGB+W0MOvvxPfGcQZsXGsC\nUAqIU5zVrbkMqKwlTq3LEz8Z4ftfqnPbB3l/+KWn8xGDnBNjyfqCzA/GnKVt\nz2Sbyx+ejieCYdadm2+/8PRGpFqh4lUf12ZGN3Kfxzi11CsXRK+6plGvhIlr\nDfY9LZ1yCnN2Wdr5QL9yf47F1OWRmfTFaUltCv26BusTbEtrpj7qieX6kQ7l\nYFXFxfvRjIGqDuM2Cg9/7vQzAkiKsGXoNtwrhx5PlAQtpVKGCdv9b3gRH8D+\n+guzs9slH5qxwvaDaqd5ZIWep9hIohyVV5jWUiKqQXNx4ee0xUWZgBikjcOr\nAzr4yFVX0poad0KV85HQddtjibvnkESwIFSKvGupI3p7fkMz3/PD0tj8EgnH\nb5st\r\n=T2sk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDzYFzFL77rvWO7EjNZPe4S69zMUMFEJwc0Ay6/XdQBjAIhAMhHN5gYdIM69gI+cyRGOGH5EI1xiBD+Kmn2K+d+3jL7"}]},"maintainers":[{"name":"undre4m","email":"astrada.sis@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/igniculus_1.3.0_1526144242923_0.08443353152794986"},"_hasShrinkwrap":false},"1.4.0-0":{"name":"igniculus","version":"1.4.0-0","description":"SQL Syntax Highlighter and Logger. Unadorned and customizable.","keywords":["ansi","color","console","format","highlight","log","sql","sequel","style","syntax","terminal"],"main":"index.js","scripts":{"test":"ava test","eslint":"eslint **/*.js","coverage":"nyc --reporter=text ava test && rimraf .nyc_output","nyc":"nyc ava --fail-fast test","travis":"npm run eslint && npm run nyc"},"repository":{"type":"git","url":"git+https://github.com/Undre4m/igniculus.git"},"author":{"name":"Lucas Astrada","email":"astrada.sis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/Undre4m/igniculus/issues"},"homepage":"https://github.com/Undre4m/igniculus#readme","engines":{"node":">=4.0.0"},"devDependencies":{"ava":"^0.25.0","dedent":"^0.7.0","eslint":"^4.19.1","nyc":"^11.7.3","rimraf":"^2.6.2"},"readme":"# Igniculus\r\nSQL Syntax Highlighter and Logger. Unadorned and customizable.\r\n\r\n[![version](https://img.shields.io/npm/v/igniculus/rc.svg?colorB=e05d44)](https://www.npmjs.com/package/igniculus/v/1.4.0-0)\r\n[![license](https://img.shields.io/npm/l/igniculus.svg)](https://github.com/Undre4m/igniculus/blob/master/LICENSE)\r\n[![downloads](https://img.shields.io/npm/dt/igniculus.svg?colorB=ffdf00)](https://www.npmjs.com/package/igniculus)\r\n[![build status](https://img.shields.io/travis/Undre4m/igniculus.svg?logo=travis&logoWidth=15)](https://travis-ci.org/Undre4m/igniculus)\r\n[![maintainability](https://api.codeclimate.com/v1/badges/30482d982a79b253aed9/maintainability)](https://codeclimate.com/github/Undre4m/igniculus/maintainability)\r\n[![test Coverage](https://api.codeclimate.com/v1/badges/30482d982a79b253aed9/test_coverage)](https://codeclimate.com/github/Undre4m/igniculus/test_coverage)\r\n\r\n## Install\r\n\r\n```console\r\n$ npm install igniculus\r\n```\r\n\r\n## Usage\r\n\r\n```js\r\nconst igniculus = require('igniculus')();\r\n\r\nigniculus('SELECT [port] AS Printer, \\'on fire\\' AS Status ' +\r\n          'FROM [Printers] P ' +\r\n          'WHERE P.\"online\" = 1 AND P.\"check\" = 1');\r\n```\r\n\r\n![Simple Query Default](https://raw.githubusercontent.com/Undre4m/igniculus/master/media/simple-query.png)\r\n\r\n## Table of Contents\r\n- [Logger](#logger)\r\n- [Options](#options)\r\n    - [Rules](#rules)\r\n    - [Styles](#styles)\r\n    - [Custom Rules](#custom-rules)\r\n- [Examples](#examples)\r\n- [Integration](#integration)\r\n    - [Sequelize](#sequelize)\r\n\r\n## Logger\r\n\r\nA reference to the log function is returned on initialization but can be accessed anywhere through `.log`\r\n\r\n```js\r\n// config.js\r\nconst igniculus = require('igniculus');\r\nconst options = { ... };\r\n\r\nigniculus(options);\r\n```\r\n\r\n```js\r\n// any.js\r\nconst igniculus = require('igniculus');\r\n\r\nlet query = 'SELECT ...';\r\nigniculus.log(query);\r\n```\r\n\r\n## Options\r\n\r\nA default color scheme is provided. However, you can define the highlight style for each rule when instantiating:\r\n\r\n```js\r\nconst igniculus = require('igniculus');\r\n/* White constants over red background using inverse mode.\r\n * Gray keywords.\r\n * Prefixed by white '(query)' message.\r\n */\r\nconst options = {\r\n    constants:         { mode: 'inverse', fg: 'red', bg: 'white' },\r\n    standardKeywords:  { mode: 'bold', fg: 'black' },\r\n    lesserKeywords:    { mode: 'bold', fg: 'black' },\r\n    prefix:            { mode: 'bold', fg: 'white', text: '(query) '}\r\n};\r\nconst illumine = igniculus(options);\r\n\r\nillumine('SELECT * FROM Student s ' +\r\n         'WHERE s.programme = \\'IT\\' AND EXISTS (' +\r\n             'SELECT * FROM Enrolled e ' +\r\n             'JOIN Class c ON c.code = e.code ' +\r\n             'JOIN Tutor t ON t.tid = c.tid ' +\r\n             'WHERE e.sid = s.sid AND t.name LIKE \\'%Hoffman\\')');\r\n```\r\n\r\n![Subquery](https://raw.githubusercontent.com/Undre4m/igniculus/master/media/subquery.png)\r\n\r\nThe _options_ argument is optional and each property should be one of the following.\r\n\r\n### Rules\r\n\r\n- options.**comments** - Single and multi-line comments. _E.g:_ `-- comments` or `/* Author: undre4m */`\r\n- options.**constants** - Values surrounded by single quotes. _E.g:_ `'static'`\r\n- options.**numbers** - Numeric values. _E.g:_ `2.5`\r\n- options.**operators** - Arithmetic, Bitwise and Comparison operators. _E.g:_ `+` or `>=`\r\n- options.**variables** - Local variables and parameters. _E.g:_ `@name` or `@@IDENTITY`\r\n- options.**delimitedIdentifiers** - Text between brackets or double quotes. _E.g:_ `[Employee]` or `\"salary\"`\r\n- options.**dataTypes** - One of the included data types. _E.g:_ `INTEGER` or `VARCHAR`\r\n  - dataTypes.**types** - Array of custom data types. Replaces the ones by default. _E.g:_ `['SERIAL', 'TIMESTAMP']`\r\n  - dataTypes.**casing** - Either `'lowercase'` or `'uppercase'`. If not defined data types won't be capitalized.\r\n- options.**standardKeywords** - One the included keywords. _E.g:_ `SELECT` or `CONSTRAINT`\r\n  - standardKeywords.**keywords** - Array of custom standard keywords. Replaces the ones by default. _E.g:_ `['CLUSTER', 'NATURAL']`\r\n  - standardKeywords.**casing** - Either `'lowercase'` or `'uppercase'`. If not defined standard keywords won't be capitalized.\r\n- options.**lesserKeywords** - One of the included lesser keywords. _E.g:_ `ANY`, `AVG` or `DESC`\r\n  - lesserKeywords.**keywords** - Array of custom lesser keywords. Replaces the ones by default. _E.g:_ `['VOLATILE', 'ASYMMETRIC']`\r\n  - lesserKeywords.**casing** - Either `'lowercase'` or `'uppercase'`. If not defined lesser keywords won't be capitalized.\r\n- options.**prefix**\r\n  - prefix.**text** - A prefix can be appended to every log through this option. This prefix can be styled like any previous options.\r\n  - prefix.**replace** - Also, a _string_ or _regular expression_ can be provided and it will replace (if a prefix.**text** was given) or remove a prefix that matches such parameter. _E.g:_ [Sequelize](https://www.npmjs.com/package/sequelize) prefixes every _SQL statement_ with `Executing (default|transaction_id):` This is removed by **default** by the option `prefix: { replace: /.*?: / }`\r\n- options.**postfix**\r\n  - postfix.**text** - A postfix can be appended to every log through this option. This postfix can be styled like any previous options.\r\n- options.**output** - Output function for the highlighted statements, `console.log` by default. _E.g:_ `process.stdout`, `st => st`\r\n- options.**own** - Your own custom-built rules can be defined here. See _[(Custom Rules)](#custom-rules)_ below for details.\r\n\r\nIf defined, the _options_ argument takes precedence over _default_ options. If a rule or it's style is missing it won't be applied. This allows to _\"enable\"_ or _\"disable\"_ certain syntax highlighting as you see fit. _[(Examples below)](#examples)_\r\n\r\n>#### A word on types and keywords\r\n>Most often, highlighting every reserved keyword can make syntax difficult to read, defeating the purpose altogether. Therefore, three distinct rules are provided: _dataTypes_, _standardKeywords_ and _lesserKeywords_.\r\nEach of these rules can be customized individually and come with a [predefined list](https://github.com/Undre4m/igniculus/blob/master/index.js#L3) of most widely used T-SQL and SQL-92 keywords and data types. Furthermore each of this lists can be customized as described above.\r\n>\r\n>Starting from [v1.1.0](https://github.com/Undre4m/igniculus/blob/master/CHANGELOG.md#110--26-feb-2018) _types_ and _keywords_ are no longer uppercased by default. Custom styles should use the `casing: 'uppercase'` option for this behaviour. Predefined style already provides this option so no changes should be required.\r\n\r\n### Styles\r\n\r\nAll of the previous rule styles can be defined like this:\r\n\r\n```js\r\n/* options = {\"rule\": style, ... } where\r\n * style = { mode: \"modifier\", fg: \"color\", bg: \"color\"}\r\n */\r\nconst options = {\r\n    constants: {\r\n        mode: 'inverse',\r\n        fg: 'red',\r\n        bg: 'white'\r\n    },\r\n    ...\r\n};\r\n```\r\n\r\nEach style having an optional:\r\n\r\n- style.**mode** - Modifier. _E.g:_ `'bold'`\r\n- style.**fg** - Foreground text color. _E.g:_ `'red'`\r\n- style.**bg** - Background color. _E.g:_ `'black'`\r\n\r\nThese can be one of the following.\r\n\r\n#### Modifiers\r\n\r\n- `reset`\r\n- `bold`\r\n- `dim`\r\n- `italic`\r\n- `underline`\r\n- `blink`\r\n- `inverse`\r\n- `hidden`\r\n- `strikethrough`\r\n\r\n#### Colors (Foreground and Background)\r\n\r\n- `black`\r\n- `red`\r\n- `green`\r\n- `yellow`\r\n- `blue`\r\n- `magenta`\r\n- `cyan`\r\n- `white`\r\n\r\n### Custom Rules\r\n>#### ⚠ Be advised\r\n>This feature is experimental and should be used with discretion. Custom pattern-matching has the potential to disrupt other rules and induce defects in highlighting.\r\n\r\nYou can define as many rules as needed. Like built-in rules, an optional style can be set for each one. Every **rule** can be named as desired, simple names are encouraged to avoid problems though. Option **transform** is not required, **regexp** is.\r\n\r\n- options.**own**\r\n    - own.**rule**\r\n      - rule.**regexp** - A _regular expression_ must be provided for the rule to be applied. _E.g:_ `/(https?|ftp):\\/\\/[^\\s/$.?#].[^\\s]*/g`\r\n      - rule.**transform** - Each matched expression can be either replaced by a _string_ or transformed by a _function_. The function takes one argument, the matched expression, and it's return value will be used for replacement. _E.g:_ `'hidden'` or `match => match.trim()`\r\n\r\n## Examples\r\n\r\n```js\r\n/* Predifined style */\r\nconst defaults = {\r\n    comments:               { mode: 'dim', fg: 'white' },\r\n    constants:              { mode: 'dim', fg: 'red' },\r\n    delimitedIdentifiers:   { mode: 'dim', fg: 'yellow' },\r\n    variables:              { mode: 'dim', fg: 'magenta' },\r\n    dataTypes:              { mode: 'dim', fg: 'green', casing: 'uppercase' },\r\n    standardKeywords:       { mode: 'dim', fg: 'cyan', casing: 'uppercase' },\r\n    lesserKeywords:         { mode: 'bold', fg: 'black', casing: 'uppercase' },\r\n    prefix:                 { replace: /.*?: / }\r\n};\r\n```\r\n\r\n![Defaults](https://raw.githubusercontent.com/Undre4m/igniculus/master/media/default.png)\r\n\r\n```js\r\nconst igniculus = require('igniculus')(\r\n    {\r\n        constants:             { mode: 'bold', fg: 'yellow' },\r\n        numbers:               { mode: 'bold', fg: 'magenta' },\r\n        delimitedIdentifiers:  { mode: 'bold', fg: 'red' },\r\n        standardKeywords:      { mode: 'bold', fg: 'blue' }\r\n    }\r\n);\r\n\r\nigniculus(\"INSERT INTO [Printers] ([port], [name], [ready], [online], [check]) \" +\r\n          \"VALUES ('lp0', 'Bob Marley', 0, 1, 1)\");\r\n```\r\n\r\n![Custom Insert](https://raw.githubusercontent.com/Undre4m/igniculus/master/media/simple-insert-custom.png)\r\n\r\n```js\r\nconst igniculus = require('igniculus');\r\n\r\nconst options = {\r\n    delimitedIdentifiers: {\r\n        fg: 'yellow'\r\n    },\r\n    dataTypes: {\r\n        fg: 'magenta',\r\n        types: ['VARBINARY']\r\n    },\r\n    standardKeywords: {\r\n        fg: 'red',\r\n        keywords: ['CREATE', 'PRIMARY', 'KEY']\r\n    },\r\n    lesserKeywords: {\r\n        mode: 'bold',\r\n        fg: 'black',\r\n        keywords: ['TABLE', 'NOT', 'NULL']\r\n    },\r\n    prefix: {\r\n        text: '\\n'\r\n    }\r\n};\r\nigniculus(options);\r\n\r\nigniculus.log('CREATE TABLE User (' +\r\n              '[username] VARCHAR(20) NOT NULL, ' +\r\n              '[password] BINARY(64) NOT NULL, ' +\r\n              '[avatar] VARBINARY(MAX), PRIMARY KEY ([username]))');\r\n```\r\n\r\n![Custom Create](https://raw.githubusercontent.com/Undre4m/igniculus/master/media/simple-create-custom.png)\r\n\r\n\r\n```js\r\nconst igniculus = require('igniculus');\r\n\r\nconst log = igniculus({\r\n    constants:                { fg: 'red' },\r\n    delimitedIdentifiers:     { mode: 'bold', fg: 'cyan' },\r\n    standardKeywords:         { fg: 'blue', casing: 'uppercase' },\r\n    own: {\r\n        _: {\r\n            mode: 'bold',\r\n            fg: 'white',\r\n            regexp: /^/,\r\n            transform: '█ '\r\n        },\r\n        comments: {\r\n            regexp: /(-{2}.*)|(\\/\\*(.|[\\r\\n])*?\\*\\/)[\\r\\n]*/g,\r\n            transform: ''\r\n        },\r\n        UUIDv4s: {\r\n            mode: 'bold',\r\n            fg: 'black',\r\n            regexp: /'[A-F\\d]{8}-[A-F\\d]{4}-4[A-F\\d]{3}-[89AB][A-F\\d]{3}-[A-F\\d]{12}'/gi,\r\n            transform: (uuid) => uuid.replace(/\\w{1}/g, 'x')\r\n        }\r\n    }\r\n});\r\n\r\nlog(\"/* May 13th, 2018 | 06:09:28.262 | http://server.local:8000 */\" +\r\n    \"select [username], [password] from Users where [_uuid] = '4072FA1B-D9E7-4F0E-9553-5F2CFFE6CC7A'\");\r\n```\r\n\r\n![Custom Rules](https://raw.githubusercontent.com/Undre4m/igniculus/v1.4.0-rc/media/simple-query-custom-rules.png)\r\n\r\n## Integration\r\n\r\nIgniculus' logger is a _drop in_ replacement on any tool that passes the log function either a `string` or `Object` paramater. In the latest case the `toString()` method will be called to obtain a `string` primitive.\r\n\r\n### Sequelize\r\n\r\nUsing igniculus with sequelize is straightforward.\r\n\r\n```js\r\nconst Sequelize = require('sequelize');\r\nconst igniculus = require('igniculus')();\r\n\r\nconst sequelize = new Sequelize('database', 'username', 'password', {\r\n    logging: igniculus\r\n});\r\n```\r\n\r\n```js\r\n/* Or add some customizations */\r\nconst Sequelize = require('sequelize');\r\nconst igniculus = require('igniculus')(\r\n    {\r\n        constants:             { fg: 'red' },\r\n        delimitedIdentifiers:  { fg: 'yellow' },\r\n        dataTypes:             { fg: 'red' },\r\n        standardKeywords:      { fg: 'magenta' },\r\n        lesserKeywords:        { mode: 'bold', fg: 'black' },\r\n        prefix:                {\r\n                                   mode: 'bold',\r\n                                   fg: 'white',\r\n                                   replace: /.*?:/,\r\n                                   text: '(Sequelize)'\r\n                               },\r\n        postfix:               { text: '\\r\\n' }\r\n    }\r\n);\r\nconst sequelize = new Sequelize('database', 'username', 'password', {\r\n    logging: igniculus\r\n});\r\n\r\n...\r\n\r\nsequelize.sync({ logging: igniculus});\r\n```\r\n\r\n#### Before\r\n![Before](https://raw.githubusercontent.com/Undre4m/igniculus/master/media/sequelize-without.png)\r\n\r\n#### After\r\n![After](https://raw.githubusercontent.com/Undre4m/igniculus/master/media/sequelize-with.png)\r\n\r\n## Notes\r\n\r\n### Changes\r\nFor a full list of changes please refer to the [changelog](https://github.com/Undre4m/igniculus/blob/master/CHANGELOG.md).\r\n\r\n### Future Upgrades\r\nNo new features planned.\r\nMaintenance will be focused on proper option validation for friendlier error detection.\r\n\r\n## Maintainers\r\n\r\n[Lucas Astrada](https://github.com/undre4m)\r\n\r\n## License\r\n\r\n[MIT](https://github.com/Undre4m/igniculus/blob/master/LICENSE)","readmeFilename":"README.md","gitHead":"5bc95e20bf26b69d4e4d717037015de1ab275d54","_id":"igniculus@1.4.0-0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"undre4m","email":"astrada.sis@gmail.com"},"dist":{"integrity":"sha512-qAbvFIQ+zJkJvVaYfXH8fYz3uYY90/CX1r9t1VAHKfTc2jsuRah4/lW00n1m//1Owx8XeqAwPUxtPz5FcecBnw==","shasum":"88bfcf5b131adb6071300fb479ee65627f72a217","tarball":"https://registry.npmjs.org/igniculus/-/igniculus-1.4.0-0.tgz","fileCount":5,"unpackedSize":33475,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa+m/PCRA9TVsSAnZWagAALgsP/0IaKy6a3eBwTEAoXhTj\n8pSnJhrBfuURmrsCr8sjH08dVIlxGhdvOIb3JAyxXpj/hvlmjmaoV9dL62Fb\nvk1xmxEIO7Uk4qEGW/fhSonWWipIs7l6cKmgcFF0LgA1gIDfjRONDdu95K9o\nDD+B0m9VGt+DtP+DKGEF8sbdv63OfGYsWRbjd9VsfsNMrsj1DLC6kNp6NhIa\nzDruBohbAjxVuGDUYCakHUZb8Bi5n9fxr6mUquhgdS420q598WBKPgfh1ajH\nl9PSC2PCdT1mIPFpV3fJw23zUTT56Eftq5UQhrNoJhlMVdCYn8qtp4TN0ah7\nVt5UKZLs8HMQqB0sCsxT2ujYyZEipjrLPnp4jQcP86Fozsfu7BnMYAwXLilb\nmaOCfRn/3xZpqIQo5t1PV4AFYwR5PyG+2nfzx7iKOlwbV8+DDuDXc/LrvdIt\nTfty5KACWbP3L+x85Aqr+SoKIXmeEPi3/RV44LvcN41uQ/ERiQm3MRNkmQtv\nmx2OnRFc7CI4yJ5YS3VFmFCfSoLXGL2xBbYOXNcl9sU8rCUWue241N4FUkmp\njZca1BPdhLf0aUgawi73ZerjRJU5WNWMPhkpOKdRqPXThjPx1igZZoQnYoee\nZG+KKo0y6ksvSg99SuLd5M0V0q4I3HpzaUv6mXxgX7ZnJgd36hW1xeYtgobl\nOzQz\r\n=zt/0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCpxqXNlmTld5UFkuX5W60M22Q2gRFQ9gJhUH4kVcRD9QIgWkfe9rxS9/y5liFFiRyDEWynGTPcuT1fnZyYVc3mhMU="}]},"maintainers":[{"name":"undre4m","email":"astrada.sis@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/igniculus_1.4.0-0_1526362062885_0.09250510350945884"},"_hasShrinkwrap":false},"1.3.1":{"name":"igniculus","version":"1.3.1","description":"SQL Syntax Highlighter and Logger. Unadorned and customizable.","keywords":["ansi","color","console","format","highlight","log","sql","sequel","style","syntax","terminal"],"main":"index.js","scripts":{"test":"ava test","eslint":"eslint **/*.js","coverage":"nyc --reporter=text ava test && rimraf .nyc_output","nyc":"nyc ava --fail-fast test","travis":"npm run eslint && npm run nyc"},"repository":{"type":"git","url":"git+https://github.com/Undre4m/igniculus.git"},"author":{"name":"Lucas Astrada","email":"astrada.sis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/Undre4m/igniculus/issues"},"homepage":"https://github.com/Undre4m/igniculus#readme","engines":{"node":">=4.0.0"},"devDependencies":{"ava":"^0.25.0","dedent":"^0.7.0","eslint":"^4.19.1","nyc":"^11.7.3","rimraf":"^2.6.2"},"gitHead":"d881cb930df8ff0e9b98ae0c63f8ae4df75bc882","_id":"igniculus@1.3.1","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"undre4m","email":"astrada.sis@gmail.com"},"dist":{"integrity":"sha512-Do48bcvFjsmlLMZaVIb0BF32veWvXvuoCK91geAhivUjXye00Gs++7+O34MXzt7cetrryQ2LCzVnP/kziH0DHw==","shasum":"4a4a2e6a49e3ff646ef06c6dac293f39cea2ee9a","tarball":"https://registry.npmjs.org/igniculus/-/igniculus-1.3.1.tgz","fileCount":5,"unpackedSize":29790,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa+oAMCRA9TVsSAnZWagAA4/kQAKMgE1b75a++uyj8aKhT\nvMFCQ8CYV3YPMiLtibu6SVlJvatdgTgK+vLdRWU8e9dElLF6ZFChgaTlB6KV\n/H58NPsyx9FOwxR4MUcs8d1RvwU95fQHbEWdHdlU0PlAG9NEzTuDtbWwtH/R\nJrWiDK19JLc9zeiIAIaoKl5TrrKU0qBqciXbd7C1VcIr9N52SM4JAnj2XzJy\n7mF0IuEtmybliGibwBvaBwSi62BaI4ahtf6YYvZyzRcLASC9FpLm/TW4bg5I\nSG4i19ctQCZbXRjOYGUD0J9Q992DFEnMX6tfdrxUtj3tNNYeZ1MGHd9awiL3\nrTMuWQB6Q7HmN4PjPSIYzA7JOPLpNGfQpPWPIXrlMynudHd0G5hry5z+JZuA\ndpSbsMcdYTGxDJ0/rnTunXnJ/hbGkt022sH0dZP9LrWYen7FRGmCtk+sxIaa\n+wlB6oa2S1yqZvHlUAgSGVtvLcrTwTi/OCyF2mfCua+qWJmSWKir9MMjOK7j\nrTE3GfhIUY33CH6z6Fpo6a9DkGLV2EWwf6v3LcZzlAghplq8QMD2pX/acWEh\nI5gz8g9WL+ZFl5aoUqEJb7REeRCpWeuOsynqBxnNN5hL3Qj2X3WHtDMUTkDQ\nkv+7lgggD3L8JaA5VnuRunUv8XoGlpjxJA6whq2vuE+DEkbHWobAX8oa8F2w\n7uj5\r\n=w72W\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFd741BNhiUm/J/GOSrkjX/RwZp//pZIA0gdOfCZUtDKAiEAuVDif/U3NnRRsK87bwgLC/qK46V+GSeHEaJHVoKJpUA="}]},"maintainers":[{"name":"undre4m","email":"astrada.sis@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/igniculus_1.3.1_1526366218293_0.564415288516253"},"_hasShrinkwrap":false},"1.5.0":{"name":"igniculus","version":"1.5.0","description":"SQL Syntax Highlighter and Logger. Unadorned and customizable.","keywords":["ansi","color","console","format","highlight","log","sql","sequel","style","syntax","terminal"],"main":"index.js","scripts":{"test":"ava test","eslint":"eslint **/*.js","coverage":"nyc --reporter=text ava test && rimraf .nyc_output","nyc":"nyc ava --fail-fast test","travis":"npm run eslint && npm run nyc"},"repository":{"type":"git","url":"git+https://github.com/Undre4m/igniculus.git"},"author":{"name":"Lucas Astrada","email":"astrada.sis@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/Undre4m/igniculus/issues"},"homepage":"https://github.com/Undre4m/igniculus#readme","engines":{"node":">=4.0.0"},"devDependencies":{"ava":"^0.25.0","dedent":"^0.7.0","eslint":"^4.19.1","nyc":"^11.7.3","rimraf":"^2.6.2"},"gitHead":"d87e42cef629e96271088767c8a005dc3bdc8b0f","_id":"igniculus@1.5.0","_shasum":"f6d5e7784dbe948b4e6a8a22a54d365de90623d0","_from":".","_npmVersion":"2.15.11","_nodeVersion":"4.9.1","_npmUser":{"name":"undre4m","email":"astrada.sis@gmail.com"},"dist":{"shasum":"f6d5e7784dbe948b4e6a8a22a54d365de90623d0","tarball":"https://registry.npmjs.org/igniculus/-/igniculus-1.5.0.tgz","fileCount":6,"unpackedSize":38033,"integrity":"sha512-vhj2J/cSzNg2G5tcK4Z1KZdeYmQa5keoxFULUYAxctK/zHJb1oraO7noCqnJxKe1b2eZdiiaSL1IHPOFAI8UYQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGzEVs2Q3CGH/XfL3dsngAJvAsIXtq6tMn5LFJCGD9tJAiA5ObeUyPHt0qWijH8UEjK3llG4WtLTUfh7gn+aFzrwnA=="}]},"maintainers":[{"name":"undre4m","email":"astrada.sis@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/igniculus_1.5.0_1529892324268_0.8582076037138451"},"_hasShrinkwrap":false}},"readme":"# Igniculus\r\nSQL Syntax Highlighter and Logger. Unadorned and customizable.\r\n\r\n[![version](https://img.shields.io/npm/v/igniculus.svg)](https://www.npmjs.com/package/igniculus)\r\n[![license](https://img.shields.io/npm/l/igniculus.svg)](https://github.com/Undre4m/igniculus/blob/master/LICENSE)\r\n[![downloads](https://img.shields.io/npm/dt/igniculus.svg?colorB=ffdf00)](https://www.npmjs.com/package/igniculus)\r\n[![build status](https://img.shields.io/travis/Undre4m/igniculus.svg?logo=travis&logoWidth=15)](https://travis-ci.org/Undre4m/igniculus)\r\n[![maintainability](https://api.codeclimate.com/v1/badges/30482d982a79b253aed9/maintainability)](https://codeclimate.com/github/Undre4m/igniculus/maintainability)\r\n[![test Coverage](https://api.codeclimate.com/v1/badges/30482d982a79b253aed9/test_coverage)](https://codeclimate.com/github/Undre4m/igniculus/test_coverage)\r\n\r\n## Install\r\n\r\n```console\r\n$ npm install igniculus\r\n```\r\n\r\n## Usage\r\n\r\n```js\r\nconst igniculus = require('igniculus')();\r\n\r\nigniculus('SELECT [port] AS Printer, \\'on fire\\' AS Status ' +\r\n          'FROM [Printers] P ' +\r\n          'WHERE P.\"online\" = 1 AND P.\"check\" = 1');\r\n```\r\n\r\n![Simple Query Default](https://raw.githubusercontent.com/Undre4m/igniculus/master/media/simple-query.png)\r\n\r\n## Table of Contents\r\n- [Logger](#logger)\r\n- [Options](#options)\r\n    - [Rules](#rules)\r\n    - [Styles](#styles)\r\n    - [Custom Rules](#custom-rules)\r\n- [Examples](#examples)\r\n- [Integration](#integration)\r\n    - [Sequelize](#sequelize)\r\n\r\n## Logger\r\n\r\nA reference to the log function is returned on initialization but can be accessed anywhere through `.log`\r\n\r\n```js\r\n// config.js\r\nconst igniculus = require('igniculus');\r\nconst options = { ... };\r\n\r\nigniculus(options);\r\n```\r\n\r\n```js\r\n// any.js\r\nconst igniculus = require('igniculus');\r\n\r\nlet query = 'SELECT ...';\r\nigniculus.log(query);\r\n```\r\n\r\n## Options\r\n\r\nA default color scheme is provided. However, you can define the highlight style for each rule when instantiating:\r\n\r\n```js\r\nconst igniculus = require('igniculus');\r\n/* White constants over red background using inverse mode.\r\n * Gray keywords.\r\n * Prefixed by white '(query)' message.\r\n */\r\nconst options = {\r\n    constants:         { mode: 'inverse', fg: 'red', bg: 'white' },\r\n    standardKeywords:  { mode: 'bold', fg: 'black' },\r\n    lesserKeywords:    { mode: 'bold', fg: 'black' },\r\n    prefix:            { mode: 'bold', fg: 'white', text: '(query) '}\r\n};\r\nconst illumine = igniculus(options);\r\n\r\nillumine('SELECT * FROM Student s ' +\r\n         'WHERE s.programme = \\'IT\\' AND EXISTS (' +\r\n             'SELECT * FROM Enrolled e ' +\r\n             'JOIN Class c ON c.code = e.code ' +\r\n             'JOIN Tutor t ON t.tid = c.tid ' +\r\n             'WHERE e.sid = s.sid AND t.name LIKE \\'%Hoffman\\')');\r\n```\r\n\r\n![Subquery](https://raw.githubusercontent.com/Undre4m/igniculus/master/media/subquery.png)\r\n\r\nThe _options_ argument is optional and each property should be one of the following.\r\n\r\n### Rules\r\n\r\n- options.**comments** - Single and multi-line comments. _E.g:_ `-- comments` or `/* Author: undre4m */`\r\n- options.**constants** - Values surrounded by single quotes. _E.g:_ `'static'`\r\n- options.**numbers** - Numeric values. _E.g:_ `2.5`\r\n- options.**operators** - Arithmetic, Bitwise and Comparison operators. _E.g:_ `+` or `>=`\r\n- options.**variables** - Local variables and parameters. _E.g:_ `@name` or `@@IDENTITY`\r\n- options.**delimitedIdentifiers** - Text between brackets or double quotes. _E.g:_ `[Employee]` or `\"salary\"`\r\n- options.**dataTypes** - One of the included data types. _E.g:_ `INTEGER` or `VARCHAR`\r\n  - dataTypes.**types** - Array of custom data types. Replaces the ones by default. _E.g:_ `['SERIAL', 'TIMESTAMP']`\r\n  - dataTypes.**casing** - Either `'lowercase'` or `'uppercase'`. If not defined data types won't be capitalized.\r\n- options.**standardKeywords** - One the included keywords. _E.g:_ `SELECT` or `CONSTRAINT`\r\n  - standardKeywords.**keywords** - Array of custom standard keywords. Replaces the ones by default. _E.g:_ `['CLUSTER', 'NATURAL']`\r\n  - standardKeywords.**casing** - Either `'lowercase'` or `'uppercase'`. If not defined standard keywords won't be capitalized.\r\n- options.**lesserKeywords** - One of the included lesser keywords. _E.g:_ `ANY`, `AVG` or `DESC`\r\n  - lesserKeywords.**keywords** - Array of custom lesser keywords. Replaces the ones by default. _E.g:_ `['VOLATILE', 'ASYMMETRIC']`\r\n  - lesserKeywords.**casing** - Either `'lowercase'` or `'uppercase'`. If not defined lesser keywords won't be capitalized.\r\n- options.**prefix**\r\n  - prefix.**text** - A prefix can be appended to every log through this option. This prefix can be styled like any previous options.\r\n  - prefix.**replace** - Also, a _string_ or _regular expression_ can be provided and it will replace (if a prefix.**text** was given) or remove a prefix that matches such parameter. _E.g:_ [Sequelize](https://www.npmjs.com/package/sequelize) prefixes every _SQL statement_ with `Executing (default|transaction_id):` This is removed by **default** by the option `prefix: { replace: /.*?: / }`\r\n- options.**postfix**\r\n  - postfix.**text** - A postfix can be appended to every log through this option. This postfix can be styled like any previous options.\r\n- options.**output** - Output function for the highlighted statements, `console.log` by default. _E.g:_ `process.stdout`, `st => st`\r\n- options.**own** - Your own custom-built rules can be defined here. See _[(Custom Rules)](#custom-rules)_ below for details.\r\n\r\nIf defined, the _options_ argument takes precedence over _default_ options. If a rule or it's style is missing it won't be applied. This allows to _\"enable\"_ or _\"disable\"_ certain syntax highlighting as you see fit. _[(Examples below)](#examples)_\r\n\r\n>#### A word on types and keywords\r\n>Most often, highlighting every reserved keyword can make syntax difficult to read, defeating the purpose altogether. Therefore, three distinct rules are provided: _dataTypes_, _standardKeywords_ and _lesserKeywords_.\r\nEach of these rules can be customized individually and come with a [predefined list](https://github.com/Undre4m/igniculus/blob/master/index.js#L3) of most widely used T-SQL and SQL-92 keywords and data types. Furthermore each of this lists can be customized as described above.\r\n>\r\n>Starting from [v1.1.0](https://github.com/Undre4m/igniculus/blob/master/CHANGELOG.md#110--26-feb-2018) _types_ and _keywords_ are no longer uppercased by default. Custom styles should use the `casing: 'uppercase'` option for this behaviour. Predefined style already provides this option so no changes should be required.\r\n\r\n### Styles\r\n\r\nAll of the previous rule styles can be defined like this:\r\n\r\n```js\r\n/* options = {\"rule\": style, ... } where\r\n * style = { mode: \"modifier\", fg: \"color\", bg: \"color\"}\r\n */\r\nconst options = {\r\n    constants: {\r\n        mode: 'inverse',\r\n        fg: 'red',\r\n        bg: 'white'\r\n    },\r\n    ...\r\n};\r\n```\r\n\r\nEach style having an optional:\r\n\r\n- style.**mode** - Modifier. _E.g:_ `'bold'`\r\n- style.**fg** - Foreground text color. _E.g:_ `'red'`\r\n- style.**bg** - Background color. _E.g:_ `'black'`\r\n\r\nThese can be one of the following.\r\n\r\n#### Modifiers\r\n\r\n- `reset`\r\n- `bold`\r\n- `dim`\r\n- `italic`\r\n- `underline`\r\n- `blink`\r\n- `inverse`\r\n- `hidden`\r\n- `strikethrough`\r\n\r\n#### Colors (Foreground and Background)\r\n\r\n- `black`\r\n- `red`\r\n- `green`\r\n- `yellow`\r\n- `blue`\r\n- `magenta`\r\n- `cyan`\r\n- `white`\r\n\r\n### Custom Rules\r\n>#### ⚠ Be advised\r\n>This feature is experimental and should be used with discretion. Custom pattern-matching has the potential to disrupt other rules and induce defects in highlighting.\r\n\r\nYou can define as many rules as needed. Like built-in rules, an optional style can be set for each one. Every **rule** can be named as desired, simple names are encouraged to avoid problems though. Option **transform** is not required, **regexp** is.\r\n\r\n- options.**own**\r\n    - own.**rule**\r\n      - rule.**regexp** - A _regular expression_ must be provided for the rule to be applied. _E.g:_ `/(https?|ftp):\\/\\/[^\\s/$.?#].[^\\s]*/g`\r\n      - rule.**transform** - Each matched expression can be either replaced by a _string_ or transformed by a _function_. The function takes one argument, the matched expression, and it's return value will be used for replacement. _E.g:_ `'hidden'` or `match => match.trim()`\r\n\r\n## Examples\r\n\r\n```js\r\n/* Predifined style */\r\nconst defaults = {\r\n    comments:               { mode: 'dim', fg: 'white' },\r\n    constants:              { mode: 'dim', fg: 'red' },\r\n    delimitedIdentifiers:   { mode: 'dim', fg: 'yellow' },\r\n    variables:              { mode: 'dim', fg: 'magenta' },\r\n    dataTypes:              { mode: 'dim', fg: 'green', casing: 'uppercase' },\r\n    standardKeywords:       { mode: 'dim', fg: 'cyan', casing: 'uppercase' },\r\n    lesserKeywords:         { mode: 'bold', fg: 'black', casing: 'uppercase' },\r\n    prefix:                 { replace: /.*?: / }\r\n};\r\n```\r\n\r\n![Defaults](https://raw.githubusercontent.com/Undre4m/igniculus/master/media/default.png)\r\n\r\n```js\r\nconst igniculus = require('igniculus')(\r\n    {\r\n        constants:             { mode: 'bold', fg: 'yellow' },\r\n        numbers:               { mode: 'bold', fg: 'magenta' },\r\n        delimitedIdentifiers:  { mode: 'bold', fg: 'red' },\r\n        standardKeywords:      { mode: 'bold', fg: 'blue' }\r\n    }\r\n);\r\n\r\nigniculus(\"INSERT INTO [Printers] ([port], [name], [ready], [online], [check]) \" +\r\n          \"VALUES ('lp0', 'Bob Marley', 0, 1, 1)\");\r\n```\r\n\r\n![Custom Insert](https://raw.githubusercontent.com/Undre4m/igniculus/master/media/simple-insert-custom.png)\r\n\r\n```js\r\nconst igniculus = require('igniculus');\r\n\r\nconst options = {\r\n    delimitedIdentifiers: {\r\n        fg: 'yellow'\r\n    },\r\n    dataTypes: {\r\n        fg: 'magenta',\r\n        types: ['VARBINARY']\r\n    },\r\n    standardKeywords: {\r\n        fg: 'red',\r\n        keywords: ['CREATE', 'PRIMARY', 'KEY']\r\n    },\r\n    lesserKeywords: {\r\n        mode: 'bold',\r\n        fg: 'black',\r\n        keywords: ['TABLE', 'NOT', 'NULL']\r\n    },\r\n    prefix: {\r\n        text: '\\n'\r\n    }\r\n};\r\nigniculus(options);\r\n\r\nigniculus.log('CREATE TABLE User (' +\r\n              '[username] VARCHAR(20) NOT NULL, ' +\r\n              '[password] BINARY(64) NOT NULL, ' +\r\n              '[avatar] VARBINARY(MAX), PRIMARY KEY ([username]))');\r\n```\r\n\r\n![Custom Create](https://raw.githubusercontent.com/Undre4m/igniculus/master/media/simple-create-custom.png)\r\n\r\n\r\n```js\r\nconst igniculus = require('igniculus');\r\n\r\nconst log = igniculus({\r\n    constants:                { fg: 'red' },\r\n    delimitedIdentifiers:     { mode: 'bold', fg: 'cyan' },\r\n    standardKeywords:         { fg: 'blue', casing: 'uppercase' },\r\n    own: {\r\n        _: {\r\n            mode: 'bold',\r\n            fg: 'white',\r\n            regexp: /^/,\r\n            transform: '█ '\r\n        },\r\n        comments: {\r\n            regexp: /(-{2}.*)|(\\/\\*(.|[\\r\\n])*?\\*\\/)[\\r\\n]*/g,\r\n            transform: ''\r\n        },\r\n        UUIDv4s: {\r\n            mode: 'bold',\r\n            fg: 'black',\r\n            regexp: /'[A-F\\d]{8}-[A-F\\d]{4}-4[A-F\\d]{3}-[89AB][A-F\\d]{3}-[A-F\\d]{12}'/gi,\r\n            transform: (uuid) => uuid.replace(/\\w{1}/g, 'x')\r\n        }\r\n    }\r\n});\r\n\r\nlog(\"/* May 13th, 2018 | 06:09:28.262 | http://server.local:8000 */\" +\r\n    \"select [username], [password] from Users where [_uuid] = '4072FA1B-D9E7-4F0E-9553-5F2CFFE6CC7A'\");\r\n```\r\n\r\n![Custom Rules](https://raw.githubusercontent.com/Undre4m/igniculus/v1.4.0-rc/media/simple-query-custom-rules.png)\r\n\r\n## Integration\r\n\r\nIgniculus' logger is a _drop in_ replacement on any tool that passes the log function either a `string` or `Object` paramater. In the latest case the `toString()` method will be called to obtain a `string` primitive.\r\n\r\n### Sequelize\r\n\r\nUsing igniculus with sequelize is straightforward.\r\n\r\n```js\r\nconst Sequelize = require('sequelize');\r\nconst igniculus = require('igniculus')();\r\n\r\nconst sequelize = new Sequelize('database', 'username', 'password', {\r\n    logging: igniculus\r\n});\r\n```\r\n\r\n```js\r\n/* Or add some customizations */\r\nconst Sequelize = require('sequelize');\r\nconst igniculus = require('igniculus')(\r\n    {\r\n        constants:             { fg: 'red' },\r\n        delimitedIdentifiers:  { fg: 'yellow' },\r\n        dataTypes:             { fg: 'red' },\r\n        standardKeywords:      { fg: 'magenta' },\r\n        lesserKeywords:        { mode: 'bold', fg: 'black' },\r\n        prefix:                {\r\n                                   mode: 'bold',\r\n                                   fg: 'white',\r\n                                   replace: /.*?:/,\r\n                                   text: '(Sequelize)'\r\n                               },\r\n        postfix:               { text: '\\r\\n' }\r\n    }\r\n);\r\nconst sequelize = new Sequelize('database', 'username', 'password', {\r\n    logging: igniculus\r\n});\r\n\r\n...\r\n\r\nsequelize.sync({ logging: igniculus});\r\n```\r\n\r\n#### Before\r\n![Before](https://raw.githubusercontent.com/Undre4m/igniculus/master/media/sequelize-without.png)\r\n\r\n#### After\r\n![After](https://raw.githubusercontent.com/Undre4m/igniculus/master/media/sequelize-with.png)\r\n\r\n## Notes\r\n\r\n### Changes\r\nFor a full list of changes please refer to the [changelog](https://github.com/Undre4m/igniculus/blob/master/CHANGELOG.md).\r\n\r\n### Future Upgrades\r\n\r\n#### [v2.0.0 milestone](https://github.com/Undre4m/igniculus/milestone/1)\r\n- Separation of style-related and option-specific configurations **BC**\r\n- Adding and omitting data types and keywords from the predefined sets\r\n- Basic built-in themes\r\n- Easier to read documentation\r\n- Option validation and friendly error detection\r\n\r\n## Maintainers\r\n\r\n[Lucas Astrada](https://github.com/undre4m)\r\n\r\n## License\r\n\r\n[MIT](https://github.com/Undre4m/igniculus/blob/master/LICENSE)","maintainers":[{"name":"undre4m","email":"astrada.sis@gmail.com"}],"time":{"modified":"2022-06-19T00:20:34.537Z","created":"2017-07-19T22:41:49.596Z","0.0.1":"2017-07-19T22:41:49.596Z","0.2.0":"2017-07-25T23:24:49.560Z","0.3.0":"2017-07-27T04:44:41.757Z","0.4.0":"2017-07-29T04:24:02.982Z","0.5.0":"2017-09-17T22:24:21.210Z","1.0.0":"2017-12-29T07:10:01.269Z","1.0.1":"2018-01-03T03:27:23.211Z","1.1.0":"2018-02-26T04:30:52.423Z","1.2.0":"2018-03-08T06:45:26.199Z","1.3.0":"2018-05-12T16:57:23.043Z","1.4.0-0":"2018-05-15T05:27:42.967Z","1.3.1":"2018-05-15T06:36:58.428Z","1.5.0":"2018-06-25T02:05:24.381Z"},"homepage":"https://github.com/Undre4m/igniculus#readme","repository":{"type":"git","url":"git+https://github.com/Undre4m/igniculus.git"},"author":{"name":"Lucas Astrada","email":"astrada.sis@gmail.com"},"bugs":{"url":"https://github.com/Undre4m/igniculus/issues"},"license":"MIT","readmeFilename":"README.md","keywords":["ansi","color","console","format","highlight","log","sql","sequel","style","syntax","terminal"]}