{"_id":"@chax-at/log-sink","_rev":"13-9c185edcf9b1265920d00a8f3cbe06e2","name":"@chax-at/log-sink","dist-tags":{"next":"2.0.0-alpha.1","latest":"2.0.2"},"versions":{"0.1.5":{"name":"@chax-at/log-sink","version":"0.1.5","author":{"url":"chax.at","name":"chax.at - Challenge Accepted","email":"office@chax.at"},"_id":"@chax-at/log-sink@0.1.5","maintainers":[{"name":"jan-chax","email":"jan.muratha@chax.at"},{"name":"chartinger","email":"c.k.hartinger@gmail.com"},{"name":"simonjimenez","email":"simon@chax.at"},{"name":"ian.luca","email":"email@ianluca.com"},{"name":"valerionn","email":"mattis@chax.at"}],"dist":{"shasum":"3aee13c255912d74386240f17b95060f8dd57d63","tarball":"https://registry.npmjs.org/@chax-at/log-sink/-/log-sink-0.1.5.tgz","fileCount":30,"integrity":"sha512-rAyVvsBquATFMq7RZ70mE3lFucZYcT0ZpHs5RJ2HyDyl6lAK95vDHAGxyVB3W2zJTXvvkAdm9YZepSOmyvRIXQ==","signatures":[{"sig":"MEUCIGbJHxfj/fiXPVz0BJ7yVt+lmBSSA7MkRiMgDQgUVHyQAiEAvoHGx+R1xdA5BHVJR3YG/OeDsYEVDtmsHyaPoE9SYqI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34638,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiBO7gCRA9TVsSAnZWagAAjUEP/jbFdLdv/klHiJvtDNKx\n+mSbec02Sdva8LhxMs/2i7bOwFAX9++gmHPDm2w2yNqLsF3x7DW2snkUaI0h\nKA04lEKbsHeNEh+dn8mKuELNh/xbEp2iMPx6jkYqt+6QVyZmOlpbPzU8swk2\ndGjCl3z1WiT1Djd9qeEYOiDeZ8Mt5cRleCuo3oyyzcteNIestVC9VDrheGo/\nQbRlabrJAUdIZWBvOZ23nMV8NSAXib8s42Mr9V71VGF7jY6zY4M9rgEqaT6b\nlUCBh/vm7Z2rGmbgtH1xxeEPVkmycsLNqEN5UEMcSyDlM3hAweruPZ8DXM/p\neC8U7idAZtUd7/Kkdk+Gx1yjLQmCQE5QBsUgmtnMWSWtXHZNaklCKT5Zk/8a\nvbiK4OwDA95IPrw+oXrvFVRhX3FHRBe1kGexZqlYaP1nPOkBNGxhXQMCJpm8\n/aR865lGpXad9HFc9smNRLBRKOInkdLpgmNllNtolceQCd4mKc63VGLqJD40\nE639+L5jqhHm9mrR13W5u6Xf72EdXtUlkiqUYX4aglyDp90lLiQZGGXEmTWe\nXoM7h/EIf4/Nc+vnOiTHJDPIpuUar1acz3luy3tggrf8HhOzpoj4zhd6XRyc\nNNVWzptm2gjptRKSefAT4RB517Yj10TlnVr6wZo4KnXDVyxb6hLF3IQFUapc\nSkry\r\n=XuHD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","gitHead":"d5e8c20bdee055c7feecb38da3425e264d086efe","scripts":{"build":"tsc","prepare":"npm run build","publish":"npm publish --access public"},"typings":"lib/index.d.ts","_npmUser":{"name":"valerionn","email":"mattis@chax.at"},"_npmVersion":"7.24.0","description":"A Log Service","directories":{},"_nodeVersion":"14.18.1","dependencies":{"chalk":"^4.1.0","@chax-at/gelf-client":"^0.1.5"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.1.2","@types/node":"^14.14.20"},"_npmOperationalInternal":{"tmp":"tmp/log-sink_0.1.5_1644490464813_0.8035055658396686","host":"s3://npm-registry-packages"}},"0.1.6":{"name":"@chax-at/log-sink","version":"0.1.6","author":{"url":"chax.at","name":"chax.at - Challenge Accepted","email":"office@chax.at"},"_id":"@chax-at/log-sink@0.1.6","maintainers":[{"name":"jan-chax","email":"jan.muratha@chax.at"},{"name":"chartinger","email":"c.k.hartinger@gmail.com"},{"name":"simonjimenez","email":"simon@chax.at"},{"name":"ian.luca","email":"email@ianluca.com"},{"name":"valerionn","email":"mattis@chax.at"}],"dist":{"shasum":"ba8a509d23b1e9555b171f260ffa15c717c3c4a3","tarball":"https://registry.npmjs.org/@chax-at/log-sink/-/log-sink-0.1.6.tgz","fileCount":30,"integrity":"sha512-j/WPZGZPCU22/+tXhlHnoYdH1R06rJwfl1zW5yVXj/faBtHmROZH+CLxVVPilBWL24zSs0Ru9NOSzqegP1UpCQ==","signatures":[{"sig":"MEQCIBtwwjJOMfEma8Kas578LoQvRYWsuz0QB5hSH0wvZxh2AiBQC9KO0udz7qSF5XDgh6B7igGl6ebqu143RAGDDelc6Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36111,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiRCv4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpLuw//SQq0u9CnAbTmQKGEwFQgfA+6zFRvAXGoHClZVeFQtkj6eTM7\r\npj1+2j4/QXltqn/Gsk6YOppN4EKBsDZecRvXphtc/F2EkaoSdMYQ4Y1bDkai\r\n1/CvIFHeGpBrDQqCIeLQFHMPP2LZ/XAvRVWWzAFspwSEGqMYUwbjMpkxFSml\r\nyugiBAjUDUs7l1BmzG/fbceDTloF7SOhQGMQhaK1KbKNtShCXU8B8ZzscmD+\r\naTcQADRceQLqVvuCyJoSadKF8ToN+7kLkUvqywR1IRy21kzBGcloqjewnnBF\r\nxyuD4baBI0ij/GvrkVqXIwovaVhculwejdeKjPnvvKuIcD189sG4IJEgDHp4\r\nUDlU36Ls0eRBIcO0Zx9fOk8eVpUGTszBSfIBVgBmNk/Zq6HE75VSMUVRFuW8\r\n+06uMcDeUA02N2UcaZ7J61UhZJtmcEfppgcQZ415ZdYHqhTT9HMncQlOy81N\r\njbfqAYQdYAAfWYNV0ZX5/kRbf5pO4Uz74pBEZ/3zdm8nrxHSObA2N/f2QzbG\r\nFda4hbolqgfWFrCUaZTAtVhEaN9z/9WN+GHe6l3iWpd/JwG5CKciH8JeL8o3\r\n7QlkuWoYtoiJX7xw9XCGMakcTRwIeqfY+QOKCCFTRTauI64jyNVBqjs+wgsI\r\nTIf9N6dOc8DjHa4Gjsfn2NpX4Ff4D+1/9WA=\r\n=huTC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","gitHead":"8017867cc59a8b954e3702e237f05f568ba5e4eb","scripts":{"build":"tsc","prepare":"npm run build","publish":"npm publish --access public"},"typings":"lib/index.d.ts","_npmUser":{"name":"valerionn","email":"mattis@chax.at"},"_npmVersion":"7.24.0","description":"A Log Service","directories":{},"_nodeVersion":"14.18.1","dependencies":{"chalk":"^4.1.0","@chax-at/gelf-client":"^0.1.5"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.1.2","@types/node":"^14.14.20"},"_npmOperationalInternal":{"tmp":"tmp/log-sink_0.1.6_1648634871887_0.2540564853415288","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@chax-at/log-sink","version":"0.2.0","author":{"url":"chax.at","name":"chax.at - Challenge Accepted","email":"office@chax.at"},"_id":"@chax-at/log-sink@0.2.0","maintainers":[{"name":"jan-chax","email":"jan.muratha@chax.at"},{"name":"chartinger","email":"c.k.hartinger@gmail.com"},{"name":"simonjimenez","email":"simon@chax.at"},{"name":"ian.luca","email":"email@ianluca.com"},{"name":"valerionn","email":"mattis@chax.at"}],"dist":{"shasum":"6c7da0dc918bdef09d6ba7796d066eb499cac258","tarball":"https://registry.npmjs.org/@chax-at/log-sink/-/log-sink-0.2.0.tgz","fileCount":30,"integrity":"sha512-CN47MNm3KjYjDB1SatQtBAWqb28yiE1VEvYQz2paqgbIN3PZJp3kUFpwWdfp2dAh5D0XauPlQzsK2PMwjDpSew==","signatures":[{"sig":"MEUCIED77JigPe0vLDLIvcIA1P1WWjKGB75DL4zoGGvmt7xiAiEA3TU4VqQFpjIhanUeV51SfbSo83ddIrAmvgqoXNoxFm4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36111,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJih5RLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmol8A//dXveNmiKRb4hC5T3VeOIJP1Pbrt5fmvelsK/dfYOQHwEi0pH\r\nMeJ9dAvrFovUa4ZV8P/a2SWLiNXw+gwlSpQ+b3PCKiZ24j/3hWK0TMC5O8kw\r\nroO0tM56xO6VagEbxFKYC+T9haoW/VxQNGmI+i1DISEdRC7m2PpaMCUK0uic\r\nRjRKthhoP+fWwOLXEb5/c7turE0rMvSvo/adsTiwzyG8OhIATCyYwl6N8K2N\r\nielXgs9XZ/SPa+booEZ3JHXrykM5I2FdHeDV+2h/a077vEfksuj+Tc62cOVL\r\nYFvp63BWE/0gcPCuhm7Rx/cpz7Np2CEmFL7sUUi5h1MbiLsdaBwpCi67N3B2\r\nFuVSEY0jxEKLPrbOjR1V60TzDqWBmxsv4bdNBOkOgXamND1I6L57gm9caDPR\r\ntbUb9QTHO3NC7LO+acMPKZrigQEdk4Ub5CRKRkUHNUmCBJJW/6GFlEW7x4Dl\r\nPio//pJmp2Jg+4MOr5cEuEw5g+ir9wi3Qj751GxzBGvNsgjkgltvd3vlord1\r\n6SAxP707L958aKVbPQFZRpnf3C3zAjOp6Gg+Oic3AqYg6ONRKEwzWv0tCym2\r\nzOw76KQtO5voB9A0Iql3+oKoOdSwuRtikfw84bvW7eMWDiZPFvW9AXppEsQr\r\ndaksBSiMCBwEAweEO4CX6FqmUvwLJfSHNQM=\r\n=MGlx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","gitHead":"8017867cc59a8b954e3702e237f05f568ba5e4eb","scripts":{"build":"tsc","prepare":"npm run build","publish":"npm publish --access public"},"typings":"lib/index.d.ts","_npmUser":{"name":"valerionn","email":"mattis@chax.at"},"_npmVersion":"8.7.0","description":"A Log Service","directories":{},"_nodeVersion":"14.18.1","dependencies":{"chalk":"^4.1.0","@chax-at/gelf-client":"^0.2.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.1.2","@types/node":"^14.14.20"},"_npmOperationalInternal":{"tmp":"tmp/log-sink_0.2.0_1653052491410_0.27464914748216174","host":"s3://npm-registry-packages"}},"1.0.0-rc.1":{"name":"@chax-at/log-sink","version":"1.0.0-rc.1","author":{"url":"chax.at","name":"chax.at - Challenge Accepted","email":"office@chax.at"},"_id":"@chax-at/log-sink@1.0.0-rc.1","maintainers":[{"name":"jan-chax","email":"jan.muratha@chax.at"},{"name":"chartinger","email":"c.k.hartinger@gmail.com"},{"name":"simonjimenez","email":"simon@chax.at"},{"name":"ian.luca","email":"email@ianluca.com"},{"name":"valerionn","email":"mattis@chax.at"}],"dist":{"shasum":"16f3f122f0a9a08a3b56d25ad2c70df5ad36d71b","tarball":"https://registry.npmjs.org/@chax-at/log-sink/-/log-sink-1.0.0-rc.1.tgz","fileCount":20,"integrity":"sha512-qi7+z+Of7iG7oHodmGG+ApNtMQ4mg2c/ZtpHk3Ij5BTP1mTfW/ZPhwPJjbfLmVLaE6YgYp8lt2CAKdmuYM/56A==","signatures":[{"sig":"MEUCIQCi+NkuqZ9IAwP092c4yBsu3ffRADvwAlEmUVSy6qdGnAIgKknlLOcBQDfNo+inrVYuxmm3GYlGgpcMK2Fr4jR5TQA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28647},"main":"lib/index.js","gitHead":"cbf248bc09eb49d03458b2be3f116cb4b9c23e39","scripts":{"build":"tsc","prepare":"npm run build"},"typings":"lib/index.d.ts","_npmUser":{"name":"valerionn","email":"mattis@chax.at"},"_npmVersion":"9.8.1","description":"A Log Service","directories":{},"_nodeVersion":"18.18.0","dependencies":{"chalk":"^4.1.0","@chax-at/gelf-client":"^0.2.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.1.2","@types/node":"^14.14.20"},"_npmOperationalInternal":{"tmp":"tmp/log-sink_1.0.0-rc.1_1698006966014_0.7499746993629604","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"@chax-at/log-sink","version":"1.0.0","author":{"url":"chax.at","name":"chax.at - Challenge Accepted","email":"office@chax.at"},"_id":"@chax-at/log-sink@1.0.0","maintainers":[{"name":"jan-chax","email":"jan.muratha@chax.at"},{"name":"chartinger","email":"c.k.hartinger@gmail.com"},{"name":"simonjimenez","email":"simon@chax.at"},{"name":"ian.luca","email":"email@ianluca.com"},{"name":"valerionn","email":"mattis@chax.at"}],"dist":{"shasum":"54e8a299450f19a62660f4c8ec2c0d67863c11db","tarball":"https://registry.npmjs.org/@chax-at/log-sink/-/log-sink-1.0.0.tgz","fileCount":20,"integrity":"sha512-/zH9lVxzedvzWRZ0/2gNLKF/s5n+xLISs7RbFAdQx4C8DoxHSOSwwjvi3QI3CZ/AYCYhRlR7WteZuCZbR5EL4g==","signatures":[{"sig":"MEQCIEFTQuGefIef+YXbOTDDzy22eF04w+/MM83/zIwRExkaAiAR9njHS2UMV2Xl3gIUeRO46IJFq4leNUOoYkRj7UiNTw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28642},"main":"lib/index.js","gitHead":"bad4892bf22e43144953b952544aaeb57dccfcdb","scripts":{"build":"tsc","prepare":"npm run build"},"typings":"lib/index.d.ts","_npmUser":{"name":"valerionn","email":"mattis@chax.at"},"_npmVersion":"9.8.1","description":"A Log Service","directories":{},"_nodeVersion":"18.18.0","dependencies":{"chalk":"^4.1.0","@chax-at/gelf-client":"^0.2.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.1.2","@types/node":"^14.14.20"},"_npmOperationalInternal":{"tmp":"tmp/log-sink_1.0.0_1698072450311_0.6421383210632545","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@chax-at/log-sink","version":"1.1.0","author":{"url":"chax.at","name":"chax.at - Challenge Accepted","email":"office@chax.at"},"_id":"@chax-at/log-sink@1.1.0","maintainers":[{"name":"jan-chax","email":"jan.muratha@chax.at"},{"name":"chartinger","email":"c.k.hartinger@gmail.com"},{"name":"simonjimenez","email":"simon@chax.at"},{"name":"ian.luca","email":"email@ianluca.com"},{"name":"valerionn","email":"mattis@chax.at"}],"dist":{"shasum":"4382342521e7f4ebd00677e67830db688263170d","tarball":"https://registry.npmjs.org/@chax-at/log-sink/-/log-sink-1.1.0.tgz","fileCount":23,"integrity":"sha512-YdJmOQ6QyRy67M8K4+1oPuqX2obgCNSpFvN1/uozXTLVcrzdYLMyEy1E191jYIM+UFByS3rSUVmhZQR+yHnRGg==","signatures":[{"sig":"MEUCIBwFrbqvGWguBth2asSseyTRLWfX2gu/lR1FwaQ0YN9CAiEAo/t7EPxRlq/LPPOxg5U29GPSbyIQfReZrT/7YNSnoNQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":38065},"main":"lib/index.js","gitHead":"84b5ad4be979ba6d224083d0b1704a04c5250b09","scripts":{"build":"tsc","prepare":"npm run build"},"typings":"lib/index.d.ts","_npmUser":{"name":"valerionn","email":"mattis@chax.at"},"_npmVersion":"8.19.2","description":"A Log Service","directories":{},"_nodeVersion":"18.20.2","dependencies":{"chalk":"^4.1.0","@chax-at/gelf-client":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.1.2","@types/node":"^14.14.20"},"_npmOperationalInternal":{"tmp":"tmp/log-sink_1.1.0_1715944017683_0.05389642301740705","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"@chax-at/log-sink","version":"2.0.0","author":{"url":"chax.at","name":"chax.at - Challenge Accepted","email":"office@chax.at"},"_id":"@chax-at/log-sink@2.0.0","maintainers":[{"name":"jan-chax","email":"jan.muratha@chax.at"},{"name":"chartinger","email":"c.k.hartinger@gmail.com"},{"name":"simonjimenez","email":"simon@chax.at"},{"name":"ian.luca","email":"email@ianluca.com"},{"name":"valerionn","email":"mattis@chax.at"}],"dist":{"shasum":"21bbea0f733259d3f507488486e68860690ce28f","tarball":"https://registry.npmjs.org/@chax-at/log-sink/-/log-sink-2.0.0.tgz","fileCount":26,"integrity":"sha512-k06H8uZhXnNDf3ggOFUAAxtewiJMo59MmkEP37GAsupmJEoPLJ7twL5A37tgnW0T+l3mI73XGXiSBaUWtbJQkw==","signatures":[{"sig":"MEQCIHvYhBq6ZLjV+1QiDKw4eX2Fue6NhOjeHQiXCKeCEIjaAiAVxL4IsNcMXTEE/ZMGWpUFLCn1IHVNFI4SJw3DzdN92A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":42291},"main":"lib/index.js","gitHead":"41b187606c16b567f2baaea68b4e99460dc57f2e","scripts":{"build":"tsc","prepare":"npm run build"},"typings":"lib/index.d.ts","_npmUser":{"name":"valerionn","email":"mattis@chax.at"},"_npmVersion":"9.8.1","description":"A Log Service","directories":{},"_nodeVersion":"18.18.0","dependencies":{"chalk":"^4.1.0","@chax-at/gelf-client":"^1.0.0","@opentelemetry/api-logs":"^0.51.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.1.2","@types/node":"^14.14.20"},"_npmOperationalInternal":{"tmp":"tmp/log-sink_2.0.0_1718101757975_0.6585106228277129","host":"s3://npm-registry-packages"}},"2.0.0-alpha.1":{"name":"@chax-at/log-sink","version":"2.0.0-alpha.1","author":{"url":"chax.at","name":"chax.at - Challenge Accepted","email":"office@chax.at"},"_id":"@chax-at/log-sink@2.0.0-alpha.1","maintainers":[{"name":"jan-chax","email":"jan.muratha@chax.at"},{"name":"chartinger","email":"c.k.hartinger@gmail.com"},{"name":"simonjimenez","email":"simon@chax.at"},{"name":"valerionn","email":"mattis@chax.at"}],"dist":{"shasum":"ad21eefdeb64815e893440d9a9573d3a0ce71310","tarball":"https://registry.npmjs.org/@chax-at/log-sink/-/log-sink-2.0.0-alpha.1.tgz","fileCount":29,"integrity":"sha512-wyJ8i/838dFHeADOkwk2t2krb4cy+WdjRuPZ4N5gu2xahYMOwzMmmdY6+34Qfnr2N+DvSbLDYdIbNwGyA8o86w==","signatures":[{"sig":"MEYCIQDgIhgLXg7esI4rUosCkpTKVuz1xMwHFkuIiK1cFgQ7/gIhAPSmmWrQEDM15c8QMrJ67gjmfqNmgvNtHcnyXQlSf4Bn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43966},"main":"lib/index.js","gitHead":"41b187606c16b567f2baaea68b4e99460dc57f2e","scripts":{"build":"tsc","prepare":"npm run build"},"typings":"lib/index.d.ts","_npmUser":{"name":"valerionn","email":"mattis@chax.at"},"_npmVersion":"10.8.2","description":"A Log Service","directories":{},"_nodeVersion":"22.11.0","dependencies":{"chalk":"^4.1.0","@chax-at/gelf-client":"^1.0.0","@opentelemetry/api-logs":"^0.51.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^4.1.2","@types/node":"^14.14.20"},"_npmOperationalInternal":{"tmp":"tmp/log-sink_2.0.0-alpha.1_1746707101314_0.24042229175489882","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@chax-at/log-sink","version":"2.0.1","author":{"url":"chax.at","name":"chax.at - Challenge Accepted","email":"office@chax.at"},"_id":"@chax-at/log-sink@2.0.1","maintainers":[{"name":"jan-chax","email":"jan.muratha@chax.at"},{"name":"chartinger","email":"c.k.hartinger@gmail.com"},{"name":"simonjimenez","email":"simon@chax.at"},{"name":"valerionn","email":"mattis@chax.at"}],"dist":{"shasum":"46b3d6b2b92d2637e72637d180be8e75e0b2739c","tarball":"https://registry.npmjs.org/@chax-at/log-sink/-/log-sink-2.0.1.tgz","fileCount":29,"integrity":"sha512-mDShVyjvaYyuCjuhq/5sfer2JhniiIjcycvsilXIWc2lRoKiSruvHajrsVDUO5/ft2QT8LouNLktnO5NUFAS9A==","signatures":[{"sig":"MEQCIDx8t4alWdeYi6CLtHE9Xuv3qdCnOKbw1eodhsnGH7DEAiAjLX1FxVJCJAKmB8OlQhDA3k7pdHgnYTDGGPdFywxmYA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43958},"main":"lib/index.js","gitHead":"41b187606c16b567f2baaea68b4e99460dc57f2e","scripts":{"build":"tsc","prepare":"npm run build"},"typings":"lib/index.d.ts","_npmUser":{"name":"valerionn","email":"mattis@chax.at"},"_npmVersion":"10.8.2","description":"A Log Service","directories":{},"_nodeVersion":"22.11.0","dependencies":{"chalk":"^4.1.0","@chax-at/gelf-client":"^1.0.0","@opentelemetry/api-logs":"^0.51.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.1.2","@types/node":"^14.14.20"},"_npmOperationalInternal":{"tmp":"tmp/log-sink_2.0.1_1746707617551_0.630349578293699","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@chax-at/log-sink","version":"2.0.2","author":{"url":"chax.at","name":"chax.at - Challenge Accepted","email":"office@chax.at"},"_id":"@chax-at/log-sink@2.0.2","maintainers":[{"name":"jan-chax","email":"jan.muratha@chax.at"},{"name":"chartinger","email":"c.k.hartinger@gmail.com"},{"name":"simonjimenez","email":"simon@chax.at"},{"name":"valerionn","email":"mattis@chax.at"}],"dist":{"shasum":"cbb888053728e332cc0940cf991f897ec0e3b698","tarball":"https://registry.npmjs.org/@chax-at/log-sink/-/log-sink-2.0.2.tgz","fileCount":29,"integrity":"sha512-Z4hkeDMd0+T7yMroANXKjaqlrZf9KQYuM7Lvjq4CE1SdnknqLNZI7BnZgJUtVTeoIqVBBhQ/l+W5BckCJufKUg==","signatures":[{"sig":"MEUCIQCNmn5CuEFYhKgfmT2biEjtl6rkPDprqfDniifnpXvPTQIgWxYMiKGd+afkMhxG0xq2Nwp2D7R7k6pTgk6L2qdLgLs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44063},"main":"lib/index.js","gitHead":"e64ca709908c27ec6d7ca92ce0ed40154023b1d1","scripts":{"build":"tsc","prepare":"npm run build"},"typings":"lib/index.d.ts","_npmUser":{"name":"valerionn","email":"mattis@chax.at"},"_npmVersion":"11.4.2","description":"A Log Service","directories":{},"_nodeVersion":"22.15.0","dependencies":{"chalk":"^4.1.0","@chax-at/gelf-client":"^1.0.0","@opentelemetry/api-logs":"^0.51.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.2","@types/node":"^20.19.11"},"_npmOperationalInternal":{"tmp":"tmp/log-sink_2.0.2_1756473025899_0.04039571733164449","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2022-02-10T10:54:24.733Z","modified":"2025-09-24T11:13:26.508Z","0.1.5":"2022-02-10T10:54:24.964Z","0.1.6":"2022-03-30T10:07:52.054Z","0.2.0":"2022-05-20T13:14:51.595Z","1.0.0-rc.1":"2023-10-22T20:36:06.190Z","1.0.0":"2023-10-23T14:47:30.579Z","1.1.0":"2024-05-17T11:06:57.831Z","2.0.0":"2024-06-11T10:29:18.172Z","2.0.0-alpha.1":"2025-05-08T12:25:01.606Z","2.0.1":"2025-05-08T12:33:37.732Z","2.0.2":"2025-08-29T13:10:26.133Z"},"author":{"url":"chax.at","name":"chax.at - Challenge Accepted","email":"office@chax.at"},"description":"A Log Service","maintainers":[{"email":"c.k.hartinger@gmail.com","name":"chartinger"},{"email":"simon@chax.at","name":"simonjimenez"},{"email":"mattis@chax.at","name":"valerionn"}],"readme":"# LogSink\r\n\r\nLogSink is a simple logging package that allows logs to be sent to multiple destinations.\r\nThese destinations are called \"drains\".\r\n\r\n## Usage\r\n\r\nThe package provides a singleton instance of LogSink as a default export:\r\n\r\n```typescript\r\nimport LogSink from '@chax-at/log-sink';\r\n```\r\n\r\nBefore use the LogSink instance must be configured with at least one drain:\r\n\r\n```typescript\r\nLogSink.registerDrain(new ConsoleLogDrain(), {\r\n    enabled: true,\r\n    minLevel: LOGGING_CONSOLE_MINLEVEL,\r\n    maxLevel: LOGGING_CONSOLE_MAXLEVEL,\r\n});\r\n```\r\n\r\nThe singleton instance can then be imported in any file and used for logging:\r\n\r\n```typescript\r\nimport LogSink from '@chax-at/log-sink';\r\n\r\nLogSink.info('This is an info message');\r\n```\r\n\r\n### Log Levels\r\n\r\nLogSink only differentiates between four log levels.\r\nThis is less than other logging solution, but is intended to make it clearer when to use each level.\r\nThe numeric value of each level adheres to the syslog standard.\r\n\r\n| Level | Numeric | Description                                                                |\r\n|-------|---------|----------------------------------------------------------------------------|\r\n| Error | 3       | An error occurred. Will trigger an alert. (depending on the drain)         |\r\n| Warn  | 4       | A warning message. Will not trigger an alert but is visible on dashboards. |\r\n| Info  | 6       | An informational message, visible in production logs.                      |\r\n| Debug | 7       | A debug message, typically filtered out in production environments.        |         \r\n\r\nIn projects where exceptions are also used for non-serve errors, such as for token-expired exceptions,\r\neach exception should be associated with the appropriate error level. That is,\r\n\r\n- `token expired` would be a debug message\r\n- `validation failed` would be a warning message\r\n- `PDF generation failed` would be an error message\r\n\r\n```typescript\r\nLogSink.error('This is an error message');\r\nLogSink.warning('This is a warning message');\r\nLogSink.info('This is an info message');\r\nLogSink.debug('This is a debug message');           // Level 7\r\n```\r\n\r\n### Tags, Attributes and Timestamps\r\nIn addition to a message, each of these methods takes an optional tag, attribute object and timestamp:\r\n\r\n```typescript\r\nenum LogTags {\r\n    Database = 'database',\r\n}\r\n\r\nLogSink.info('This is an info message', LogTags.Database, {attr1: 'value1', attr2: 'value2'}, new Date());\r\n```\r\n\r\nIf the log level is not known at compile time, the `log` method can be used:\r\n\r\n```typescript\r\nLogSink.log(LogLevel.Info, 'This is an info message');\r\n```\r\n\r\nIf needed, you can create additional LogSink instances:\r\n\r\n```typescript\r\nimport {LogSink} from '@chax-at/log-sink';\r\n\r\nconst logSink = new LogSink();\r\n```\r\n\r\n## Drains\r\n\r\nThe package provides two built-in drains: `ConsoleLogDrain` and `GelfLogDrain`.\r\nNew drains can be added by implementing the `ILogDrain` interface.\r\n\r\nDrains are registered using the `registerDrain` method.\r\nUsing `minLevel` and `maxLevel`, the severity levels can be filtered on each drain.\r\nAdditionally, logs can be filtered using the `filter` method and transformed using the `transform` method.\r\n\r\n```typescript\r\nLogSink.registerDrain(new ConsoleLogDrain(), {\r\n    enabled: true,\r\n    minLevel: LOGGING_CONSOLE_MINLEVEL,\r\n    maxLevel: LOGGING_CONSOLE_MAXLEVEL,\r\n    filter: (options: LogOptions) => {\r\n        return options.tag === LogTags.Database;\r\n    },\r\n    transform: (options: LogOptions) => {\r\n        return {\r\n            ...options,\r\n            message: options.message.toUpperCase(),\r\n        };\r\n    },\r\n});\r\n```\r\n\r\n### ConsoleLogDrain\r\n\r\nThe `ConsoleLogDrain` logs messages to the console. It can be configured to log attributes and use color.\r\n\r\n```typescript\r\nnew ConsoleLogDrain({logAttributes: true, useColor: true});\r\n```\r\n\r\n### GelfLogDrain\r\n\r\nThe `GelfLogDrain` logs messages to any GELF-capable server, such as Graylog.\r\nIt uses [@chax-at/gelf-client](https://www.npmjs.com/package/@chax-at/gelf-client) under the hood.\r\n\r\n```typescript\r\nnew GelfLogDrain(new SecureTCPTransport({\r\n    host: GELF_HOST,\r\n    port: GELF_PORT,\r\n    ca: GELF_SERVER_CA_CERT, // CA certificate string or buffer\r\n    cert: GELF_CLIENT_CERT,  // Client certificate string or buffer\r\n    key: GELF_CLIENT_KEY,    // CLient key string or buffer\r\n}));\r\n\r\nnew GelfLogDrain(new TCPTransport({\r\n    host: GELF_HOST,\r\n    port: GELF_PORT,\r\n}));\r\n\r\nnew GelfLogDrain(new UDPTransport({\r\n    host: GELF_HOST,\r\n    port: GELF_PORT,\r\n    timeout: GELF_TIMEOUT,   // optional timeout (default 1000ms)\r\n    protocol: GELF_PROTOCOL, // udp4 (default) or udp6\r\n}));\r\n```\r\n\r\n### FilesystemLogDrain\r\n\r\nThe `FilesystemLogDrain` logs messages to a file on the filesystem.\r\n\r\n```typescript\r\nnew FilesystemLogDrain({\r\n    fileName? : string; // optional filename (default log.txt)\r\n    formatFunction? : LogFormatFunction; // optional formatting function for the logged message\r\n    indentation? : number; // optional indentation for nested newlines (default 4)\r\n    logAttributes? : boolean; // whether to log embedded attributes (default true)\r\n    outDir: string; // the path of the directory the log file will be created\r\n    separateWithEmptyLine? : boolean; // whether to add an additional newline after each log message to improve readability (default false)\r\n});\r\n```\r\n\r\n### OpenTelemetryLogDrain\r\n\r\nThe `OpenTelemetryLogDrain` logs messages via OpenTelemetry.\r\n\r\nFirst, install the necessary packages in your project:\r\n\r\n```bash\r\nnpm i \"@opentelemetry/sdk-node\" \"@opentelemetry/api\" \"@opentelemetry/sdk-logs\" \"@opentelemetry/exporter-logs-otlp-proto\"\r\n```\r\n\r\nthen use it the following way\r\n\r\n```typescript\r\nimport {NodeSDK} from \"@opentelemetry/sdk-node\";\r\nimport {SimpleLogRecordProcessor} from \"@opentelemetry/sdk-logs\";\r\nimport {logs} from '@opentelemetry/api-logs';\r\nimport {OTLPLogExporter} from \"@opentelemetry/exporter-logs-otlp-proto\";\r\n\r\nimport LogSink, {LogLevel, OpenTelemetryLogDrain} from '@chax-at/log-sink';\r\n\r\nconst exporter = new OTLPLogExporter({\r\n    //url: defaults to 'http://localhost:4318/v1/logs',\r\n});\r\n\r\nconst sdk = new NodeSDK({\r\n    logRecordProcessor: new SimpleLogRecordProcessor(exporter),\r\n});\r\nsdk.start();\r\n\r\nconst logger = logs.getLoggerProvider().getLogger(\"default\");\r\nLogSink.registerDrain(new OpenTelemetryLogDrain(logger), {\r\n    enabled: true,\r\n    minLevel: LogLevel.Error,\r\n    maxLevel: LogLevel.Debug\r\n});\r\n\r\nLogSink.info(\"This is a log\");\r\n```\r\n\r\nMore info can be found in the [OpenTelemetry info](./docs/otel.md) or the official open-telemetry documentation.","readmeFilename":"README.md"}