{"_id":"knex-tiny-logger","_rev":"17-a39c1e6406bce322d8621951f07e4dba","name":"knex-tiny-logger","dist-tags":{"latest":"3.2.0"},"versions":{"1.0.1":{"name":"knex-tiny-logger","version":"1.0.1","license":"MIT","_id":"knex-tiny-logger@1.0.1","maintainers":[{"name":"khmm12","email":"khmm12@gmail.com"}],"homepage":"https://github.com/khmm12/knex-tiny-logger#readme","bugs":{"url":"https://github.com/khmm12/knex-tiny-logger/issues"},"dist":{"shasum":"2e8d8f67850059df6a4cc11f13eeaecc3b033290","tarball":"https://registry.npmjs.org/knex-tiny-logger/-/knex-tiny-logger-1.0.1.tgz","integrity":"sha512-3UCB2WIDs+dophq+x8qrCczKSrIXVQvW+ipCQNfZSW6GT/DlPC/uuqYWtCxKWaf1toWGSm6AjJaoTPWhGTvbEg==","signatures":[{"sig":"MEUCIQDBgPnpSFeeJCnQ/XFj3fFT4ZpHnUF+GfAXIZPgciSCyQIgAOigi4veDXbkCcGZKhldv5qoJ1JpcgKjIfsuRuoCRuM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","_from":".","_shasum":"2e8d8f67850059df6a4cc11f13eeaecc3b033290","engines":{"node":">=6"},"scripts":{"test":"eslint src","build":"babel src --out-dir lib","prepublish":"yarn test && yarn build"},"_npmUser":{"name":"khmm12","email":"khmm12@gmail.com"},"repository":{"url":"git://github.com/khmm12/knex-tiny-logger.git","type":"git"},"_npmVersion":"3.10.10","description":"Tiny logger for knex","directories":{},"_nodeVersion":"6.10.0","dependencies":{"chalk":"^1.1.3"},"devDependencies":{"eslint":"^3.18.0","babel-cli":"^6.24.0","babel-preset-env":"^1.3.2","eslint-plugin-import":"^2.2.0","eslint-plugin-promise":"^3.5.0","eslint-config-standard":"^7.1.0","eslint-plugin-standard":"^2.1.1"},"_npmOperationalInternal":{"tmp":"tmp/knex-tiny-logger-1.0.1.tgz_1490952425799_0.9055882326792926","host":"packages-18-east.internal.npmjs.com"}},"1.0.2":{"name":"knex-tiny-logger","version":"1.0.2","keywords":["knex","logger"],"author":{"url":"http://github.com/khmm12","name":"Maixm Khvatalin","email":"khmm12@gmail.com"},"license":"MIT","_id":"knex-tiny-logger@1.0.2","maintainers":[{"name":"khmm12","email":"khmm12@gmail.com"}],"homepage":"https://github.com/khmm12/knex-tiny-logger#readme","bugs":{"url":"https://github.com/khmm12/knex-tiny-logger/issues"},"dist":{"shasum":"c64d0ba586f546f8cce1487e6740c473a20790eb","tarball":"https://registry.npmjs.org/knex-tiny-logger/-/knex-tiny-logger-1.0.2.tgz","integrity":"sha512-Caw56lpmd1QzvwaBi7WS9u6VmkzGyZ/vWDcPkIWa5T0lguMjLfY9HK8wJfzqxHy++4xQMJpvnJSAX0xBzutbgA==","signatures":[{"sig":"MEUCIQCubGLpBQ5dnQq/65u1Bl6vb+ZUHW8RtObAmZPp8fIXggIgRtYu+v5jWkR7o/t2Phl2PqkBwLaWarlXH6AH60gIbNE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","_from":".","files":["lib","src"],"_shasum":"c64d0ba586f546f8cce1487e6740c473a20790eb","engines":{"node":">=6"},"scripts":{"test":"eslint src","build":"babel src --out-dir lib","prepublish":"yarn test && yarn build"},"_npmUser":{"name":"khmm12","email":"khmm12@gmail.com"},"repository":{"url":"git://github.com/khmm12/knex-tiny-logger.git","type":"git"},"_npmVersion":"3.10.10","description":"Tiny logger for knex","directories":{},"_nodeVersion":"6.10.0","dependencies":{"chalk":"^1.1.3"},"devDependencies":{"eslint":"^3.18.0","babel-cli":"^6.24.0","babel-preset-env":"^1.3.2","eslint-plugin-import":"^2.2.0","eslint-plugin-promise":"^3.5.0","eslint-config-standard":"^7.1.0","eslint-plugin-standard":"^2.1.1"},"_npmOperationalInternal":{"tmp":"tmp/knex-tiny-logger-1.0.2.tgz_1490952793065_0.49480468477122486","host":"packages-18-east.internal.npmjs.com"}},"1.0.3":{"name":"knex-tiny-logger","version":"1.0.3","keywords":["knex","logger"],"author":{"url":"http://github.com/khmm12","name":"Maixm Khvatalin","email":"khmm12@gmail.com"},"license":"MIT","_id":"knex-tiny-logger@1.0.3","maintainers":[{"name":"khmm12","email":"khmm12@gmail.com"}],"homepage":"https://github.com/khmm12/knex-tiny-logger#readme","bugs":{"url":"https://github.com/khmm12/knex-tiny-logger/issues"},"dist":{"shasum":"45ed07fbe0a64271d4dd74b9c120214a33be6dbe","tarball":"https://registry.npmjs.org/knex-tiny-logger/-/knex-tiny-logger-1.0.3.tgz","integrity":"sha512-HDZWkAov9XNBtfazNabaUXMUfxdjC4kwCsnwXkZOyPgzz+ge8VmARdhVKWrE4heMqQ/+E8IuXmT5ZEhghQs0VA==","signatures":[{"sig":"MEQCICRZHDcrODwAXKUe98drmPRXs7J7EwtF4ZrTJFN9ZsvDAiBDsbacPCWxpmG1GE6F5pyTzb7oRJ8ka+Vu8kIw4WcVfA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","_from":".","files":["lib","src"],"_shasum":"45ed07fbe0a64271d4dd74b9c120214a33be6dbe","engines":{"node":">=6"},"gitHead":"e84d71d9cbb40fd446a617fe306bf0d06db7092a","scripts":{"test":"eslint src","build":"babel src --out-dir lib","prepublish":"yarn test && yarn build"},"_npmUser":{"name":"khmm12","email":"khmm12@gmail.com"},"repository":{"url":"git://github.com/khmm12/knex-tiny-logger.git","type":"git"},"_npmVersion":"3.10.10","description":"Tiny logger for knex","directories":{},"_nodeVersion":"6.10.0","dependencies":{"chalk":"^1.1.3"},"devDependencies":{"eslint":"^3.18.0","babel-cli":"^6.24.0","babel-preset-env":"^1.3.2","eslint-plugin-import":"^2.2.0","eslint-plugin-promise":"^3.5.0","eslint-config-standard":"^7.1.0","eslint-plugin-standard":"^2.1.1"},"_npmOperationalInternal":{"tmp":"tmp/knex-tiny-logger-1.0.3.tgz_1491591184252_0.6354507929645479","host":"packages-18-east.internal.npmjs.com"}},"1.0.4":{"name":"knex-tiny-logger","version":"1.0.4","keywords":["knex","logger"],"author":{"url":"http://github.com/khmm12","name":"Maixm Khvatalin","email":"khmm12@gmail.com"},"license":"MIT","_id":"knex-tiny-logger@1.0.4","maintainers":[{"name":"khmm12","email":"khmm12@gmail.com"}],"homepage":"https://github.com/khmm12/knex-tiny-logger#readme","bugs":{"url":"https://github.com/khmm12/knex-tiny-logger/issues"},"dist":{"shasum":"2b78e2b0509421898ab8cb9ab1c409905af9a2e2","tarball":"https://registry.npmjs.org/knex-tiny-logger/-/knex-tiny-logger-1.0.4.tgz","integrity":"sha512-ekDnDI6Swm1qlE91yEVYm+C2NUNHHAN56EupZ2jBQuPpPqSSDLqMe6rRuuj1039kxpNTT3HKM0Tui0IZyRquxA==","signatures":[{"sig":"MEQCIG8SY3J0rCwP5tV6UErWrSGN6kRZ8XN7YpG7qzRp7TUfAiARxAIcL44gc97gCXKgj8vHttkWQYQKdDeMx0ePVCpdYA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","_from":".","files":["lib","src"],"_shasum":"2b78e2b0509421898ab8cb9ab1c409905af9a2e2","engines":{"node":">=6"},"gitHead":"28919d7a7d0680d0382091790a9548c415e0f771","scripts":{"test":"eslint src","build":"babel src --out-dir lib","prepublish":"yarn test && yarn build"},"_npmUser":{"name":"khmm12","email":"khmm12@gmail.com"},"repository":{"url":"git://github.com/khmm12/knex-tiny-logger.git","type":"git"},"_npmVersion":"3.10.10","description":"Tiny logger for knex","directories":{},"_nodeVersion":"6.10.0","dependencies":{"chalk":"^1.1.3"},"devDependencies":{"eslint":"^3.18.0","babel-cli":"^6.24.0","babel-preset-env":"^1.3.2","eslint-plugin-import":"^2.2.0","eslint-plugin-promise":"^3.5.0","eslint-config-standard":"^7.1.0","eslint-plugin-standard":"^2.1.1"},"_npmOperationalInternal":{"tmp":"tmp/knex-tiny-logger-1.0.4.tgz_1491881298029_0.8865773899015039","host":"packages-18-east.internal.npmjs.com"}},"1.1.0":{"name":"knex-tiny-logger","version":"1.1.0","keywords":["knex","logger"],"author":{"url":"http://github.com/khmm12","name":"Maixm Khvatalin","email":"khmm12@gmail.com"},"license":"MIT","_id":"knex-tiny-logger@1.1.0","maintainers":[{"name":"khmm12","email":"khmm12@gmail.com"}],"homepage":"https://github.com/khmm12/knex-tiny-logger#readme","bugs":{"url":"https://github.com/khmm12/knex-tiny-logger/issues"},"dist":{"shasum":"652d62b6751254658fb68d75e921a0315b1da3f6","tarball":"https://registry.npmjs.org/knex-tiny-logger/-/knex-tiny-logger-1.1.0.tgz","fileCount":7,"integrity":"sha512-a2pLNaTc700BHawdgIMe1HaQlEgl/Gib+8teUk8/idZBi/sCG7LyQR38WtGURZUH66ZQfjn7hA4hKVufTFPHEw==","signatures":[{"sig":"MEQCIG9xFoHa4O6skdDosOj71tHYkmMzF57sekfv1esvOez9AiAkrPxaZqAf8ImO+dmU2lWSRBo5IHd+AwjJ2jA1jClmFg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10033,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbPiRsCRA9TVsSAnZWagAA1usP/iukKlHy6JHwQ7Naki3s\nYEJ0et4Lzke4JCS2S671GL/9uwiTwTZlUNlOCtZP49fyPSfAcwgeELTAsjtf\naa7AmmewlcalrPYCMNKHOPfXx5aA2gLCKGlL2dyWlAK2fP7EfRA0lKz5Sa14\nKlpgZ77ZSZxNcVOMb6GvbcGWDP0TTl+z/Zy6ki9s+2iU1F8tPu5JuplFEpjK\nOvCMa++/W3jx3yM1tBimljx74ybFtTQni+XA9FOhIV4gH7dPQx65MU2OYkUF\nbBW/N6zPO15ZIRIg3DQVLMf4ycEfHel6ALFc90uDHXaxGJwSy01hW5M5VvMV\nuJa6QDHYXjcP2QoCiBjKU8TNZjZY6xR+uyRvtCnZ6ukFJ3vCpduxQCVpqSio\nsQ6QCpJBag5JXBSh1ROrDK8FeL7nlpwfik0PVDgGHk3lMW7+enRL0KVZgrvu\nd26LRm7WxejG38aan4ZtG5wLO+pcA6fbW8c1Y//eX8h1JoEEGD3qXktYSI7c\nK0frAxHH+YVWziZS6ZOBXj6qCk1Imf/MWgqq+HkfBAsGizbrMvD7NNRAdxbe\nn8oufqB1GrpSOVBP+sU7pAAct0AjJneodeRAWj8hUKA4/OrHbsCDRrTtZ1hO\nKeRR3IbSp3Eghp31eqwL0sHBHfSfP2gK4yOqkNRuT2AZ545mEv0oTS+xwMGL\nrQzj\r\n=SnUm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","files":["lib","src"],"engines":{"node":">=6"},"gitHead":"7338a5b3d1a4c2630cdc22bb690bf28abe153962","scripts":{"test":"eslint src","build":"babel src --out-dir lib","prepublish":"yarn test && yarn build"},"_npmUser":{"name":"khmm12","email":"khmm12@gmail.com"},"repository":{"url":"git://github.com/khmm12/knex-tiny-logger.git","type":"git"},"_npmVersion":"5.6.0","description":"Tiny logger for knex","directories":{},"_nodeVersion":"8.11.1","dependencies":{"chalk":"2.4.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^5.0.1","flow-bin":"^0.75.0","@babel/cli":"^7.0.0-beta.51","@babel/core":"^7.0.0-beta.51","babel-eslint":"8","@babel/preset-env":"^7.0.0-beta.51","@babel/preset-flow":"^7.0.0-beta.51","eslint-plugin-node":"^6.0.1","eslint-plugin-import":"^2.13.0","eslint-plugin-promise":"^3.8.0","eslint-config-standard":"12.0.0-alpha.0","eslint-plugin-flowtype":"^2.49.3","eslint-plugin-standard":"^3.1.0"},"_npmOperationalInternal":{"tmp":"tmp/knex-tiny-logger_1.1.0_1530799212522_0.1264756301079879","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"knex-tiny-logger","version":"2.0.0","keywords":["knex","logger"],"author":{"url":"http://github.com/khmm12","name":"Maixm Khvatalin","email":"khmm12@gmail.com"},"license":"MIT","_id":"knex-tiny-logger@2.0.0","maintainers":[{"name":"khmm12","email":"khmm12@gmail.com"}],"homepage":"https://github.com/khmm12/knex-tiny-logger#readme","bugs":{"url":"https://github.com/khmm12/knex-tiny-logger/issues"},"dist":{"shasum":"130acfd447d043d609aa612aac7c50cdd2bc87da","tarball":"https://registry.npmjs.org/knex-tiny-logger/-/knex-tiny-logger-2.0.0.tgz","fileCount":6,"integrity":"sha512-4B3MFQyCwND4nv/TFNEw9YFotZVmneNLpTnNIb51IqTuW5Qzl2beEXElS+4oFFQOJzC5brwTiEBE2gegGRt4OA==","signatures":[{"sig":"MEQCIBVN4+JnFgqrmDrjBPqkVbZMj/UlkWrv03uAvGkXuC/jAiBL0oM8C18pFDLLOjlMOJOaTLH+RXJqizWX/uWQTWityA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9661,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJekxyTCRA9TVsSAnZWagAA+IcP/Al/Aov9jwNb+QYWwdRd\nVsX5aP8WbuRlRHK8H1EXDaEFMcYJUSpYcsffKB5EZtSJRq0T3k0s2YNRoqg9\nmBe7CyEimhWdchizb0HLBp1mpjMerldprY5WdAXRKGDvPKg7OPpt76EsGvzH\nLStXB6pqeFVBV6rD8+RqMgL1X6lZoj4nAFNTwgY8qmOHs93N0pen26pZkTcw\nswNxusTbIM5ZJZXWz9N5GPAVnTUrjtA85wNITlZRBCuh//D/KrLPIP8frNLb\n4KV7Hi3AOt851XoIbVWINf+El2I73Mu6zneFNsF7jgLIdTwn51jfFeKv9Yfn\nlcd1N+0/qlCoYM4vc+LwHXNXvvclnZyXvQm3niiNwRxleGKf/3Nym2ecC78x\nIXiKQ32l2Lf9GxGW5aj4IxpG/Et/qmyOHBFyZA63DRCFcJkN3k9kk1I9s9DM\n4wp917hd6w2KyJcQj7LGqBBm++69vPQ5lkkPYwQiWcXgQqWEr1El+x28MsJz\nPX2aWjPFcRi6iXJLsu9XPBnikn3ATkw+xC/dcrpdMBqrz9+anEWky3+KVguk\nuaSjs/NzJYWTHjD/i36MpOzKL562QN31zPnYasSusT+3JpjXGdEFZUedb6MP\n0dqk1YNDG4LzONjsKlgLyZsLfv+WKnkNHv1yy1UvsF6Qk7TJ2MFWlKXY5CAr\nFOGG\r\n=jVZy\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","engines":{"node":">=10"},"gitHead":"ea1ad120c18371fcfdc3d90d02187076b3c33ca6","scripts":{"test":"run-p --aggregate-output test:*","build":"run-s build:clean build:cjs build:flow","test:ts":"dtslint ./typings","build:cjs":"babel src --ignore src/__typings__ --out-dir lib","precommit":"test","test:flow":"flow check","test:lint":"eslint src","build:flow":"flow-copy-source --ignore '__typings__/*.js' src lib","build:clean":"rm -rf lib"},"typings":"typings","_npmUser":{"name":"khmm12","email":"khmm12@gmail.com"},"repository":{"url":"git://github.com/khmm12/knex-tiny-logger.git","type":"git"},"_npmVersion":"6.9.1-next.0","description":"Tiny logger for knex","directories":{},"sideEffects":false,"_nodeVersion":"12.16.0","dependencies":{"chalk":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"knex":"^0.20.13","eslint":"^6.8.0","dtslint":"^3.4.1","flow-bin":"^0.122.0","prettier":"^2.0.4","@babel/cli":"^7.8.4","typescript":"^3.8.3","@babel/core":"^7.9.0","@types/node":"^13.11.1","npm-run-all":"^4.1.5","babel-eslint":"10","flow-copy-source":"^2.0.9","@babel/preset-env":"^7.9.5","@babel/preset-flow":"^7.9.0","eslint-plugin-node":"^11.1.0","eslint-plugin-import":"^2.20.2","eslint-plugin-promise":"^4.2.1","eslint-config-prettier":"^6.10.1","eslint-config-standard":"14.1.1","eslint-plugin-flowtype":"^4.7.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-standard":"^4.0.1"},"peerDependencies":{"knex":"*"},"_npmOperationalInternal":{"tmp":"tmp/knex-tiny-logger_2.0.0_1586699411378_0.36692951327507206","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"knex-tiny-logger","version":"2.1.0","keywords":["knex","logger"],"author":{"url":"http://github.com/khmm12","name":"Maixm Khvatalin","email":"khmm12@gmail.com"},"license":"MIT","_id":"knex-tiny-logger@2.1.0","maintainers":[{"name":"khmm12","email":"khmm12@gmail.com"}],"homepage":"https://github.com/khmm12/knex-tiny-logger#readme","bugs":{"url":"https://github.com/khmm12/knex-tiny-logger/issues"},"dist":{"shasum":"11a7cc9b6979eb9dc34c8c5591abb31eff5f5b81","tarball":"https://registry.npmjs.org/knex-tiny-logger/-/knex-tiny-logger-2.1.0.tgz","fileCount":6,"integrity":"sha512-XBvxSmUK7B0peWbrvZynggP2l2AhDLJcuIUbxeoHGvC5Hen0WizcXudZOckPaX3nRPnWxkeGdRg6Vq+nt6Q+SA==","signatures":[{"sig":"MEUCIQDuEGp8Dc3FIer8hsHt9xOaJ3S5/JSCqjeY9ZqNQh7SFgIgV54k4wYUbPg6m32zYADbDkmJaLpsmwg0UHYpsC7TSe0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11409,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgT0B5CRA9TVsSAnZWagAAnukP/ieASeZWIH6yclOC2pCV\nTwzIrpzQgswt4KKNozJe/iS5gbIPt1dnvRvNR/9AiVzNoHnZlhxpOVtTPUs7\nb9evfBC6zRQJtTk/958QTDr7cbJXo7Bx8soSlawy/T1CtzXkcaeqLnEKB4d0\nA/WI8Gc/1t2K2xNhmHtMIGTQ4ayi10V40MLNdAoO8By6Pisu65iyzZrtb5dc\nFpOxVnH3FN0laAggD4mDvYsd/PHUDX2aKFrlE56ssWMa7+MoIVHnT0+f/2h6\n3lAyOSI2s/vWw4YSoueh3p4TMd3ISK3BE8x5L6AtVY5uAfD4FqtATW+4yOIm\nG1O2WPb5jEckjFLDmn1sU+nWHalovBEISRredw3qhGp5GRkrhENPRochcw1C\nvn+LuLNJpUWy64oMZTQ4e18ZIb3J2yLgVf+Sf2QUZE0yLClnK7/KfvHmeUkD\ndxtfkVNOSW4y4tv/E++4QDs5qPiSz5zQMl1TbpcVxVlkUODXQ1Hd6vIqu7WC\nePDFWU0l2aV4OFoFUsExIWNC5UJo4vLf8xoqcTIgrM0JixhPXoJ6iUbLJ7mD\nMw35N5T+Yi5NLNyWmo43UaU26uXVCUXX4ytI8Po3VcGgSfTp9DyO7AzSuDKx\n9Bt1xW6BWuuHWLmPMk5UYGOx5AhwOq2JJhHWGDZTc6Ig2ElM9FM6OFFSWsCq\nBPHU\r\n=ZYdk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","engines":{"node":">=10"},"gitHead":"2647c45e03c59a9bf4d7cba64ef2ada6e2ad05a1","scripts":{"test":"run-p --aggregate-output test:*","build":"run-s build:clean build:cjs build:flow","test:ts":"dtslint ./typings","build:cjs":"babel src --ignore src/__typings__ --out-dir lib","precommit":"test","test:flow":"flow check","test:lint":"eslint src","build:flow":"flow-copy-source --ignore '__typings__/*.js' src lib","build:clean":"rm -rf lib"},"typings":"typings","_npmUser":{"name":"khmm12","email":"khmm12@gmail.com"},"repository":{"url":"git://github.com/khmm12/knex-tiny-logger.git","type":"git"},"_npmVersion":"6.14.8","description":"Tiny logger for knex","directories":{},"sideEffects":false,"_nodeVersion":"14.15.0","dependencies":{"chalk":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"knex":"^0.20.13","eslint":"^6.8.0","dtslint":"^3.4.1","flow-bin":"^0.122.0","prettier":"^2.0.4","@babel/cli":"^7.8.4","typescript":"^3.8.3","@babel/core":"^7.9.0","@types/node":"^13.11.1","npm-run-all":"^4.1.5","babel-eslint":"10","flow-copy-source":"^2.0.9","@babel/preset-env":"^7.9.5","@babel/preset-flow":"^7.9.0","eslint-plugin-node":"^11.1.0","eslint-plugin-import":"^2.20.2","eslint-plugin-promise":"^4.2.1","eslint-config-prettier":"^6.10.1","eslint-config-standard":"14.1.1","eslint-plugin-flowtype":"^4.7.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-standard":"^4.0.1"},"peerDependencies":{"knex":"*"},"_npmOperationalInternal":{"tmp":"tmp/knex-tiny-logger_2.1.0_1615806584608_0.6010912019572223","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"knex-tiny-logger","version":"3.0.0","keywords":["knex","logger"],"author":{"url":"http://github.com/khmm12","name":"Maixm Khvatalin","email":"khmm12@gmail.com"},"license":"MIT","_id":"knex-tiny-logger@3.0.0","maintainers":[{"name":"khmm12","email":"khmm12@gmail.com"}],"homepage":"https://github.com/khmm12/knex-tiny-logger#readme","bugs":{"url":"https://github.com/khmm12/knex-tiny-logger/issues"},"dist":{"shasum":"2613549bbc1cdf61a93ff019128852cdfd711d0a","tarball":"https://registry.npmjs.org/knex-tiny-logger/-/knex-tiny-logger-3.0.0.tgz","fileCount":48,"integrity":"sha512-CSj0iV0F2xR3oc+ybHR+OwySjBr+XIjw8vHbF5oan9o74OTjp1v9k/5ZTxTHZpLVab97Z8rl7mx3AeLzN0BuYQ==","signatures":[{"sig":"MEQCIBlLProtiyIATRSSk/MgiXX2GlYC9fEr1YADVq4phsRoAiBA9jrfhzTSY7l1dr0Th3luMlLDoTigwAqmc0PZeqrEcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/knex-tiny-logger@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":35397},"main":"./dist/cjs/index.cjs","pnpm":{"onlyBuiltDependencies":["sqlite3"]},"type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","engines":{"bun":">=1.3","node":">=20"},"exports":{".":{"import":{"types":"./dist/types/index.d.ts","default":"./dist/esm/index.js"},"default":"./dist/esm/index.js","require":{"types":"./dist/types/index.d.cts","default":"./dist/cjs/index.cjs"}},"./pino":{"types":"./dist/types/pino.d.ts","import":"./dist/esm/pino.js","default":"./dist/esm/pino.js","require":"./dist/cjs/pino.js"},"./tracer":{"types":"./dist/types/tracer.d.ts","import":"./dist/esm/tracer.js","default":"./dist/esm/tracer.js","require":"./dist/cjs/tracer.js"},"./colorful":{"types":"./dist/types/colorful.d.ts","import":"./dist/esm/colorful.js","default":"./dist/esm/colorful.js","require":"./dist/cjs/colorful.js"}},"gitHead":"97255ac394e20f9201a998799a4d065e88a296e9","scripts":{"lint":"biome check .","test":"pnpm run build && pnpm run test:run","build":"pnpm run clean && pnpm run build:esm && pnpm run build:cjs && node ./scripts/write-cjs-wrapper.cjs","check":"pnpm run typecheck && pnpm run lint && pnpm run test:run","clean":"rm -rf dist","format":"biome format --write .","test:bun":"pnpm run build && bun test test/bun","test:run":"pnpm run test:unit && pnpm run test:integration","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json","test:unit":"node --test src/*.test.ts","typecheck":"tsc -p tsconfig.typecheck.json --noEmit && pnpm run build && tsc -p tsconfig.test.json && pnpm run test:types","test:types":"tsc -p tsconfig.type-tests.json && tsc -p tsconfig.type-tests.cjs.json","test:runtime":"node --test test/node/*.test.mjs","test:integration":"node --test test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:582bd013-b5d3-4abf-89e0-22353b41dafd"}},"deprecated":"Broken CJS TypeScript declarations. Use knex-tiny-logger@3.0.1.","repository":{"url":"git+https://github.com/khmm12/knex-tiny-logger.git","type":"git"},"_npmVersion":"11.11.0","description":"Tiny logger for knex","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"packageManager":"pnpm@10.18.3","devDependencies":{"knex":"^3.1.0","sqlite3":"^6.0.1","typescript":"^5.9.0","@types/node":"^24","@biomejs/biome":"^2.4.13"},"peerDependencies":{"knex":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/knex-tiny-logger_3.0.0_1777549992612_0.014629718341720332","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"knex-tiny-logger","version":"3.0.1","keywords":["knex","logger"],"author":{"url":"http://github.com/khmm12","name":"Maixm Khvatalin","email":"khmm12@gmail.com"},"license":"MIT","_id":"knex-tiny-logger@3.0.1","maintainers":[{"name":"khmm12","email":"khmm12@gmail.com"}],"homepage":"https://github.com/khmm12/knex-tiny-logger#readme","bugs":{"url":"https://github.com/khmm12/knex-tiny-logger/issues"},"dist":{"shasum":"b3cb456e01a723fb82ac6fa92cfc300f4c3ccd69","tarball":"https://registry.npmjs.org/knex-tiny-logger/-/knex-tiny-logger-3.0.1.tgz","fileCount":28,"integrity":"sha512-0fm0mQtT3DCK6K9rJsgoKKHjmQG6hV0muy4CJ9DCW0KwhmE+ZP0atCaP6MOdsgIPB9y0C9yPmNKQSuwHvm2wjg==","signatures":[{"sig":"MEQCIHoWupNAFNVau5dvV/iKZnlxZN2sD4Y+1dbbRfpF/CV5AiBS5MORWu3BqaQUemMYWxd6w8OXDyBjxwkzwz8siwYlvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/knex-tiny-logger@3.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38636},"main":"./dist/index.cjs","pnpm":{"onlyBuiltDependencies":["sqlite3"]},"type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"bun":">=1.3","node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./pino":{"import":{"types":"./dist/pino.d.mts","default":"./dist/pino.mjs"},"default":"./dist/pino.mjs","require":{"types":"./dist/pino.d.cts","default":"./dist/pino.cjs"}},"./tracer":{"import":{"types":"./dist/tracer.d.mts","default":"./dist/tracer.mjs"},"default":"./dist/tracer.mjs","require":{"types":"./dist/tracer.d.cts","default":"./dist/tracer.cjs"}},"./colorful":{"import":{"types":"./dist/colorful.d.mts","default":"./dist/colorful.mjs"},"default":"./dist/colorful.mjs","require":{"types":"./dist/colorful.d.cts","default":"./dist/colorful.cjs"}}},"gitHead":"9ac2c7e2bab203629622868ca95b58232b3bf9db","scripts":{"lint":"biome check .","test":"pnpm run build && pnpm run test:run","build":"unbuild","check":"pnpm run typecheck && pnpm run lint && pnpm run test:run","clean":"rm -rf dist","format":"biome format --write .","test:bun":"pnpm run build && bun test test/bun","test:run":"pnpm run test:unit && pnpm run test:integration","test:unit":"node --test src/*.test.ts","typecheck":"tsc -p tsconfig.typecheck.json --noEmit && pnpm run build && tsc -p tsconfig.test.json && pnpm run test:types","test:types":"tsc -p tsconfig.type-tests.json && tsc -p tsconfig.type-tests.cjs.json","test:runtime":"node --test test/node/*.test.mjs","test:integration":"node --test test/integration/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:582bd013-b5d3-4abf-89e0-22353b41dafd"}},"repository":{"url":"git+https://github.com/khmm12/knex-tiny-logger.git","type":"git"},"_npmVersion":"11.11.0","description":"Tiny logger for knex","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"packageManager":"pnpm@10.18.3","devDependencies":{"knex":"^3.1.0","sqlite3":"^6.0.1","unbuild":"^3.6.1","typescript":"^5.9.0","@types/node":"^24","@biomejs/biome":"^2.4.13"},"peerDependencies":{"knex":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/knex-tiny-logger_3.0.1_1777553086023_0.272612938957836","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"knex-tiny-logger","version":"3.1.0","keywords":["knex","logger"],"author":{"url":"http://github.com/khmm12","name":"Maixm Khvatalin","email":"khmm12@gmail.com"},"license":"MIT","_id":"knex-tiny-logger@3.1.0","maintainers":[{"name":"khmm12","email":"khmm12@gmail.com"}],"homepage":"https://github.com/khmm12/knex-tiny-logger#readme","bugs":{"url":"https://github.com/khmm12/knex-tiny-logger/issues"},"dist":{"shasum":"f27c50cc7dc0c7392cfdb8f59e2b05bb27aa9495","tarball":"https://registry.npmjs.org/knex-tiny-logger/-/knex-tiny-logger-3.1.0.tgz","fileCount":25,"integrity":"sha512-C4wfvCIr1x4WO2bUjyA8IOzlxjcqdCTBwi22H0sDxNUJqTRmGlJ/rEXUd/GglIUIg6w+TkTgEt9PhXTag7xEmQ==","signatures":[{"sig":"MEQCIH9yOJdDuz9bq2fe199Oeifg65gJ8xLqcGlnmPXMcSKOAiAw7rhVjq9bunq/Taq5UA1+vHf+iC3ZJxM1fb5/95EtPw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/knex-tiny-logger@3.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":86362},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","engines":{"bun":">=1.3","node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./pino":{"import":{"types":"./dist/pino.d.mts","default":"./dist/pino.mjs"},"default":"./dist/pino.mjs","require":{"types":"./dist/pino.d.cts","default":"./dist/pino.cjs"}},"./tracer":{"import":{"types":"./dist/tracer.d.mts","default":"./dist/tracer.mjs"},"default":"./dist/tracer.mjs","require":{"types":"./dist/tracer.d.cts","default":"./dist/tracer.cjs"}},"./colorful":{"import":{"types":"./dist/colorful.d.mts","default":"./dist/colorful.mjs"},"default":"./dist/colorful.mjs","require":{"types":"./dist/colorful.d.cts","default":"./dist/colorful.cjs"}}},"gitHead":"985c4c6f524258548bcb3331e6ac71d68e464ddd","scripts":{"lint":"biome check .","test":"pnpm run build && pnpm run test:unit && pnpm run test:integration","build":"tsdown","check":"pnpm run build && pnpm run typecheck && pnpm run test:types && pnpm run test:types:published && pnpm run lint && pnpm run test:unit && pnpm run test:integration","format":"biome format --write .","test:unit":"node --test src/*.test.ts","typecheck":"tsc -b","test:types":"tsc -p tsconfig.types.json","test:integration":"node --test test/integration/*.test.ts","test:runtime:bun":"bun test test/runtime/bun","test:runtime:node":"node --test test/runtime/node/*.test.mjs","test:types:published":"attw --pack . --profile node16"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:582bd013-b5d3-4abf-89e0-22353b41dafd"}},"repository":{"url":"git+https://github.com/khmm12/knex-tiny-logger.git","type":"git"},"_npmVersion":"11.16.0","description":"Tiny logger for knex","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"packageManager":"pnpm@11.13.0+sha512.88d94724d8f2e6c186744a5584c6e59ecac869ec7ba15e9cb4cd628e8dc7066820b2481d8ee3b51ea8da323a7378068aa58c556a3720d32b7c20a051d088363a","devDependencies":{"knex":"^3.3.0","pino":"^10.3.1","tsdown":"^0.22.7","sqlite3":"^6.0.1","typescript":"npm:@typescript/typescript6@^6.0.2","@types/node":"^24.13.3","@biomejs/biome":"^2.5.3","@typescript/native":"npm:typescript@^7.0.2","@arethetypeswrong/cli":"^0.18.5"},"peerDependencies":{"knex":"^3"},"_npmOperationalInternal":{"tmp":"tmp/knex-tiny-logger_3.1.0_1784038323351_0.6958817513469213","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"knex-tiny-logger","version":"3.2.0","description":"Tiny logger for knex","repository":{"type":"git","url":"git+https://github.com/khmm12/knex-tiny-logger.git"},"author":{"name":"Maixm Khvatalin","email":"khmm12@gmail.com","url":"http://github.com/khmm12"},"keywords":["knex","logger"],"license":"MIT","type":"module","main":"./dist/index.cjs","module":"./dist/index.mjs","types":"./dist/index.d.cts","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"},"default":"./dist/index.mjs"},"./colorful":{"import":{"types":"./dist/colorful.d.mts","default":"./dist/colorful.mjs"},"require":{"types":"./dist/colorful.d.cts","default":"./dist/colorful.cjs"},"default":"./dist/colorful.mjs"},"./pino":{"import":{"types":"./dist/pino.d.mts","default":"./dist/pino.mjs"},"require":{"types":"./dist/pino.d.cts","default":"./dist/pino.cjs"},"default":"./dist/pino.mjs"},"./tracer":{"import":{"types":"./dist/tracer.d.mts","default":"./dist/tracer.mjs"},"require":{"types":"./dist/tracer.d.cts","default":"./dist/tracer.cjs"},"default":"./dist/tracer.mjs"}},"engines":{"node":">=20","bun":">=1.3"},"packageManager":"pnpm@11.13.0+sha512.88d94724d8f2e6c186744a5584c6e59ecac869ec7ba15e9cb4cd628e8dc7066820b2481d8ee3b51ea8da323a7378068aa58c556a3720d32b7c20a051d088363a","sideEffects":false,"scripts":{"build":"tsdown","check":"pnpm run build && pnpm run typecheck && pnpm run test:types && pnpm run lint && pnpm run test:unit && pnpm run test:integration && pnpm run test:examples","format":"biome format --write .","lint":"biome check .","test":"pnpm run build && pnpm run test:unit && pnpm run test:integration && pnpm run test:examples","test:examples":"node examples/sqlite-opentelemetry.mjs","test:integration":"node --test test/integration/*.test.ts","test:runtime:node":"node --test test/runtime/node/*.test.mjs","test:runtime:bun":"bun test test/runtime/bun","test:types":"tsc -p tsconfig.types.json","test:unit":"node --test src/*.test.ts","typecheck":"tsc -b"},"peerDependencies":{"knex":"^3"},"devDependencies":{"@arethetypeswrong/core":"^0.18.5","@biomejs/biome":"^2.5.3","@opentelemetry/api":"^1.9.1","@opentelemetry/resources":"^2.10.0","@opentelemetry/sdk-trace-base":"^2.10.0","@opentelemetry/sdk-trace-node":"^2.10.0","@types/node":"^24.13.3","@typescript/native":"npm:typescript@^7.0.2","knex":"^3.3.0","pino":"^10.3.1","publint":"^0.3.21","sqlite3":"^6.0.1","tsdown":"^0.22.7","typescript":"npm:@typescript/typescript6@^6.0.2"},"gitHead":"85ee06b8add128ee7213958b96b522cc77b758a2","_id":"knex-tiny-logger@3.2.0","bugs":{"url":"https://github.com/khmm12/knex-tiny-logger/issues"},"homepage":"https://github.com/khmm12/knex-tiny-logger#readme","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-km25JLAJp9nyZ5Kz9gFVba1t7GY1C6gn8serqvFLkb64CFoICmPxEI/+IQ9swkuNkwjR4qLrnUzPCdpN68KsOQ==","shasum":"64a8e419bcad30ba22acce70ed0f2d0f8d3c8c04","tarball":"https://registry.npmjs.org/knex-tiny-logger/-/knex-tiny-logger-3.2.0.tgz","fileCount":25,"unpackedSize":92217,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/knex-tiny-logger@3.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCW7v+oCEbZSBgzsHK7mv84gtFEIjmQDQ+/J5xRESh6QQIgPzlXTwrur8blZQv6wVtSmmlwtjLuo7xZEe0cP+kFe8Q="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:582bd013-b5d3-4abf-89e0-22353b41dafd"}},"directories":{},"maintainers":[{"name":"khmm12","email":"khmm12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/knex-tiny-logger_3.2.0_1785499374865_0.6926392669797081"},"_hasShrinkwrap":false}},"time":{"created":"2017-03-31T09:13:46.498Z","modified":"2026-07-31T12:02:55.289Z","1.0.0":"2017-03-31T09:13:46.498Z","1.0.1":"2017-03-31T09:27:06.504Z","1.0.2":"2017-03-31T09:33:13.787Z","1.0.3":"2017-04-07T18:53:04.805Z","1.0.4":"2017-04-11T03:28:18.853Z","1.1.0":"2018-07-05T14:00:12.637Z","2.0.0":"2020-04-12T13:50:11.560Z","2.1.0":"2021-03-15T11:09:44.739Z","3.0.0":"2026-04-30T11:53:12.757Z","3.0.1":"2026-04-30T12:44:46.159Z","3.1.0":"2026-07-14T14:12:03.480Z","3.2.0":"2026-07-31T12:02:54.992Z"},"bugs":{"url":"https://github.com/khmm12/knex-tiny-logger/issues"},"author":{"name":"Maixm Khvatalin","email":"khmm12@gmail.com","url":"http://github.com/khmm12"},"license":"MIT","homepage":"https://github.com/khmm12/knex-tiny-logger#readme","keywords":["knex","logger"],"repository":{"type":"git","url":"git+https://github.com/khmm12/knex-tiny-logger.git"},"description":"Tiny logger for knex","maintainers":[{"name":"khmm12","email":"khmm12@gmail.com"}],"readme":"# knex-tiny-logger\n\n[![](https://img.shields.io/npm/v/knex-tiny-logger.svg?style=flat-square)](https://npmjs.com/package/knex-tiny-logger)\n\n> Zero-config query logging for Knex. Tiny by default, flexible when needed.\n\n## Install\n\n```bash\n# npm\nnpm install knex-tiny-logger knex\n\n# pnpm\npnpm add knex-tiny-logger knex\n\n# yarn\nyarn add knex-tiny-logger knex\n\n# bun\nbun add knex-tiny-logger knex\n\n# aube\naube add knex-tiny-logger knex\n```\n\nRequires Node.js 20 or newer. Bun 1.3 or newer is also supported.\n\n## Usage\n\n```ts\nimport createKnex from 'knex'\nimport knexTinyLogger from 'knex-tiny-logger'\n\nconst knex = knexTinyLogger(\n  createKnex({\n    client: 'pg',\n    connection: process.env.DATABASE_URL,\n  }),\n)\n```\n\nBy default, `knexTinyLogger` uses `defaultLogger`: plain string logs, no extra runtime dependencies.\n\n```text\nSQL (3.421 ms) select 1 as id\nSQL ERROR (2.104 ms) select * from missing_table\n```\n\n## Default Logger\n\n```ts\nimport knexTinyLogger, { defaultLogger } from 'knex-tiny-logger'\n\nknexTinyLogger(knex, {\n  logger: defaultLogger({ bindings: false }),\n})\n```\n\nThe default logger formats SQL before writing it. By default, it asks Knex to interpolate bindings into the logged SQL.\n\nSet `bindings: false` to write the original SQL with placeholders, or replace formatting completely:\n\n```ts\nknexTinyLogger(knex, {\n  logger: defaultLogger({\n    formatter(query) {\n      return query.sql\n    },\n  }),\n})\n```\n\nThe built-in formatter is also exported if you want the same SQL formatting in a custom logger:\n\n```ts\nimport { defaultQueryFormatter } from 'knex-tiny-logger'\n\nconst formatQuery = defaultQueryFormatter()\n\nknexTinyLogger(knex, {\n  logger: {\n    onEnd(query) {\n      console.log(formatQuery(query), query.durationMs)\n    },\n  },\n})\n```\n\n`write` can be a function or a stream-like target:\n\n```ts\nknexTinyLogger(knex, {\n  logger: defaultLogger({ write: process.stdout }),\n})\n```\n\n## Colorful Logs\n\nThe colorful logger is the same string logger experience, with output colored by query\nstate. It supports the same `bindings`, `formatter`, and `write` options as `defaultLogger`,\nand has no extra runtime dependencies.\n\nBy default the whole message is colored by state: the `SQL` / `SQL ERROR` label and the SQL\nbody are cyan for successful queries and red for failed ones.\n\n```ts\nimport knexTinyLogger from 'knex-tiny-logger'\nimport { colorfulLogger } from 'knex-tiny-logger/colorful'\n\nknexTinyLogger(knex, {\n  logger: colorfulLogger(),\n})\n```\n\n### Syntax highlighting\n\nSet `highlight: true` to syntax-highlight the SQL body instead. The label still carries the\nquery state (cyan or red); the body's tokens are colored by an ANSI theme. `formatter`, when\nprovided, controls the SQL string before highlighting is applied.\n\n```ts\nimport { colorfulLogger, colorfulSyntaxThemes } from 'knex-tiny-logger/colorful'\n\nknexTinyLogger(knex, {\n  logger: colorfulLogger({ highlight: true, theme: colorfulSyntaxThemes.dracula }),\n})\n```\n\n#### Themes\n\n`colorfulSyntaxThemes.default` is used when no theme is given. It's a 16-color ANSI theme\nthat adapts to your terminal's palette, so it works everywhere.\n\nThe named themes are fixed 24-bit truecolor and need a truecolor-capable terminal:\n\n- **Dark** — `dracula`, `nord`, `monokai`, `oneDark`, `solarizedDark`, `tokyoNight`, `catppuccinMocha`\n- **Light** — `solarizedLight`, `githubLight`, `oneLight`, `catppuccinLatte`\n\n#### Customizing a theme\n\nCall `.extend()` to override individual token colors with raw ANSI strings, or pass `false`\nto leave a token uncolored:\n\n```ts\nknexTinyLogger(knex, {\n  logger: colorfulLogger({\n    highlight: true,\n    theme: colorfulSyntaxThemes.dracula.extend({\n      keyword: false,\n      fn: '\\x1b[31m',\n    }),\n  }),\n})\n```\n\nYou can also reuse the same syntax coloring in custom formatters:\n\n```ts\nimport { defaultQueryFormatter } from 'knex-tiny-logger'\nimport { colorfulSyntaxFormatter, colorfulSyntaxThemes } from 'knex-tiny-logger/colorful'\n\nconst formatter = colorfulSyntaxFormatter(defaultQueryFormatter(), {\n  theme: colorfulSyntaxThemes.solarizedLight,\n})\n```\n\n## Pino\n\nThe pino adapter keeps query data structured.\n\n```ts\nimport knexTinyLogger from 'knex-tiny-logger'\nimport { pinoLogger } from 'knex-tiny-logger/pino'\n\nknexTinyLogger(knex, {\n  logger: pinoLogger(pino),\n})\n```\n\nThe pino adapter logs `sql`, `bindings`, and `durationMs`; errors also include `err`.\nBindings are included by default. Set `bindings: false` to omit them from the structured payload.\n\n## Custom Logger\n\n```ts\nimport type { Logger } from 'knex-tiny-logger'\n\nconst logger: Logger = {\n  onEnd(query) {\n    console.log(query.sql, query.durationMs)\n  },\n  onError(query) {\n    console.error(query.sql, query.error)\n  },\n}\n\nknexTinyLogger(knex, { logger })\n```\n\nPassing a function uses the default string formatting and writes each log message to that function:\n\n```ts\nimport { defaultLogger } from 'knex-tiny-logger'\n\nknexTinyLogger(knex, { logger: console.log })\n\n// same as\nknexTinyLogger(knex, {\n  logger: defaultLogger({ write: console.log }),\n})\n```\n\n## Logger Errors\n\nLogger errors are caught so logging does not break queries. By default they are reported with `console.error`.\n\n```ts\nknexTinyLogger(knex, {\n  logger,\n  onLoggerError(event) {\n    diagnostics.warn(event.error)\n  },\n})\n```\n\n## Tracing\n\nFor lower-level integrations:\n\n```ts\nimport { createTracer } from 'knex-tiny-logger/tracer'\n\nconst spans = new Map()\n\nconst tracer = createTracer(knex, {\n  onStart(query) {\n    spans.set(query.queryId, tracerProvider.startSpan('sql', {\n      sql: query.sql,\n      bindings: query.bindings,\n    }))\n  },\n  onEnd(query) {\n    spans.get(query.queryId)?.end({ durationMs: query.durationMs })\n    spans.delete(query.queryId)\n  },\n  onError(query) {\n    spans.get(query.queryId)?.fail(query.error)\n    spans.delete(query.queryId)\n  },\n})\n\ntracer.dispose()\n```\n\nThe tracer exposes complete query lifecycles with duration, SQL, bindings, and\nerrors. Knex transaction control statements are ignored because they do not\nemit matching successful responses.\n\n### OpenTelemetry\n\n<details>\n<summary>Manual span bridge example</summary>\n\nInstall the OpenTelemetry API and tracing SDK:\n\n```bash\npnpm add @opentelemetry/api @opentelemetry/resources @opentelemetry/sdk-trace-base @opentelemetry/sdk-trace-node\n```\n\nThen bridge Knex query events to OpenTelemetry spans:\n\n```ts\nimport { type Span, SpanKind, SpanStatusCode } from '@opentelemetry/api'\nimport { resourceFromAttributes } from '@opentelemetry/resources'\nimport { BatchSpanProcessor, ConsoleSpanExporter } from '@opentelemetry/sdk-trace-base'\nimport { NodeTracerProvider } from '@opentelemetry/sdk-trace-node'\nimport { createTracer } from 'knex-tiny-logger/tracer'\n\nconst provider = new NodeTracerProvider({\n  resource: resourceFromAttributes({ 'service.name': 'my-service' }),\n  spanProcessors: [new BatchSpanProcessor(new ConsoleSpanExporter())],\n})\nprovider.register()\n\nconst otelTracer = provider.getTracer('my-service')\nconst spans = new Map<string, Span>()\n\nconst tracer = createTracer(knex, {\n  onStart(query) {\n    spans.set(\n      query.queryId,\n      otelTracer.startSpan('postgresql', {\n        kind: SpanKind.CLIENT,\n        startTime: query.startedAt,\n        attributes: {\n          'db.system.name': 'postgresql',\n          'db.query.text': query.sql,\n        },\n      }),\n    )\n  },\n  onEnd(query) {\n    spans.get(query.queryId)?.end()\n    spans.delete(query.queryId)\n  },\n  onError(query) {\n    const span = spans.get(query.queryId)\n    if (span && query.error instanceof Error) {\n      span.recordException(query.error)\n      span.setAttribute('error.type', query.error.name)\n    }\n    span?.setStatus({ code: SpanStatusCode.ERROR })\n    span?.end()\n    spans.delete(query.queryId)\n  },\n})\n\n// During application shutdown, after outstanding queries settle:\ntracer.dispose()\nawait provider.shutdown()\n```\n\nThe example intentionally omits bindings because they often contain secrets or personal data.\nIf raw SQL contains literals, sanitize it before recording `db.query.text`.\nSome drivers also include rendered SQL in error messages; redact `query.error` before\n`recordException` when that data is sensitive.\n\nSee the [runnable SQLite example](examples/sqlite-opentelemetry.mjs). Replace\n`ConsoleSpanExporter` with an OTLP exporter to send the same spans to a collector.\n\n</details>\n\n## License\n\n[MIT](LICENSE.md)\n","readmeFilename":"README.md"}