{"_id":"@splincode/client-logger","_rev":"54-2f22a201751a5c231a1b687eb2ade003","name":"@splincode/client-logger","description":"Lightweight and configurable JavaScript logger (written on TypeScript)","dist-tags":{"latest":"0.5.1","next":"1.0.0-10"},"versions":{"0.0.1":{"name":"@splincode/client-logger","version":"0.0.1","description":"Simple logger for browser","main":"./dist/logger.js","types":"./logger.d.ts","scripts":{"compile":"ts-node logger.ts","prepublishOnly":"tsc -p ./ --outDir dist/"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","_id":"@splincode/client-logger@0.0.1","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-BVGOk2w1UIwhMRJkNdaLKAEx8XVItRlbDIxSmCPr4uEX2Kijg9CjYGigZZXNdrQLBeEMPL2IZqwWPkIc/Xl2sg==","shasum":"1f89bccc209a1a17b105c769d4aba43ef27c49fb","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDG4KHxTLFokD7ZTIhwprfVxopFb+zVxyhQ+cP5JDjEEAiALXrih1BIVVGeGvexGZ7O9nMh+m/uIBOHwtSGJci+SBw=="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.1.tgz_1512586190405_0.28815697645768523"},"directories":{}},"0.0.2":{"name":"@splincode/client-logger","version":"0.0.2","description":"Simple logger for browser","main":"./dist/logger.js","typings":"./logger.d.ts","scripts":{"compile":"ts-node logger.ts","prepublishOnly":"tsc -p ./ --outDir dist/"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","_id":"@splincode/client-logger@0.0.2","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-VJCoLtKaC7mkWo6EZ8aWmqxZcAifgIRzHoL7WpaQc13gXsc8IiP7r5/nOeRUj3J21nZsZ+U2cIovYtJ9+1wN9g==","shasum":"88ad99eebff79a3469859926f078ddcf8e6df08e","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFyueok2yZgyEWtKpOCUOeZmvzPzEl4hyGzCXR9xolyEAiBKGofHUjHm1SHhVJ1uRP8zhyEzDG6bIHMVlRFY8gQ54Q=="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.2.tgz_1512587272016_0.14446212444454432"},"directories":{}},"0.0.3":{"name":"@splincode/client-logger","version":"0.0.3","description":"Simple logger for browser","main":"./dist/src/logger.js","typings":"logger.d.ts","scripts":{"compile":"ts-node logger.ts","prepublishOnly":"tsc -p ./ --outDir dist/src/"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","_id":"@splincode/client-logger@0.0.3","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-0CZM7Z1+CgawgOR+bv8mXPNrz7MCxZ3FYrNd1RQr42Llny/8utn0ilOR+FYrus1a751n8EB7zU9VXIqG+JOGNQ==","shasum":"da1120b43b2bcd97889b2672a85f1060a6da1d9d","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCcPUN6h0JT0ern+NSMtE+hvCfkSzz9xglJQ9yCCX5p3wIgdgxYanHAcw8y4R5L0zPh35Tvtee7bNOT1Z5UxXrqnRQ="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.3.tgz_1512592683365_0.4485905838664621"},"directories":{}},"0.0.4":{"name":"@splincode/client-logger","version":"0.0.4","description":"Simple logger for browser","main":"./dist/src/logger.js","typings":"logger.d.ts","scripts":{"compile":"ts-node logger.ts","prepublishOnly":"tsc -p ./ --outDir dist/src/"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","_id":"@splincode/client-logger@0.0.4","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-ReAHkd54an7ri57urhSiEf99LMeXnoKLfrSbFXQI8UH0mHmAOs497wAMaqVId8vCa+zT+WvWre6nsiIVH4fAlw==","shasum":"c5bddbd57e9bfa91103e3e387772dc5760c30771","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDkGegqJIahiHsKgWTXg2uQWs/oD9Ux+inU8ltVdRR5XQIgf2M27wV847w0M4JWKajjVMZ0qOx8/AJQAk4sxQRdVUM="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.4.tgz_1512593872069_0.5109423692338169"},"directories":{}},"0.0.5":{"name":"@splincode/client-logger","version":"0.0.5","description":"Simple logger for browser","main":"./dist/src/logger.js","typings":"logger.d.ts","scripts":{"compile":"ts-node logger.ts","prepublishOnly":"tsc -p ./ --outDir dist/src/"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","gitHead":"5cc6e051169788a5d318bfd28fb192b1e33d9f3f","_id":"@splincode/client-logger@0.0.5","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-7Yhdb3dRJLGOXH5nKY4FC7Nn2RpThSaeNU4TYs2cHRDExM6au66v/mWunERW+uTw7Vr8DE0vE4rwBr4fEZX0Jw==","shasum":"42e9f5cdc7fbb7ae942ac91489cd0e38747b3bed","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCHAjQkiUE+4hLZVKgJoI6/64o3F7Cv9Khq+UZp1u68qgIhAP4pu74gv5SAlXkQXyArE7KZnRUAF2WMeGhAtqziIebs"}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.5.tgz_1512594038681_0.33561795158311725"},"directories":{}},"0.0.6":{"name":"@splincode/client-logger","version":"0.0.6","description":"Simple logger for browser","main":"./dist/src/logger.js","typings":"./dist/src/logger.d.ts","scripts":{"compile":"ts-node logger.ts","prepublishOnly":"tsc -p ./ --outDir dist/src/"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","gitHead":"5cc6e051169788a5d318bfd28fb192b1e33d9f3f","_id":"@splincode/client-logger@0.0.6","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-arsWtxIkG5Gl8YeorMdgXZmCc4VEalUMNVINWrVLeInd+Gyrs64ikK2X9GgW8+/PypIBygYAUOcc3rL1lu2TXg==","shasum":"38ba6987af9ebf79b879eb2304b10a88024310fa","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDnlV9LhfjyE3yksBTbFk1MzKpoiHxfUHAYgJQ06lpsXwIgX0iQISpXSEnDpYGTkGugQ9frFSwmNrtNDO3P5hRo9lk="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.6.tgz_1512594269428_0.13759605633094907"},"directories":{}},"0.0.7":{"name":"@splincode/client-logger","version":"0.0.7","description":"Simple logger for browser","main":"./dist/src/index.js","typings":"./dist/src/index.d.ts","scripts":{"compile":"ts-node index.ts","prepublishOnly":"tsc -p ./ --outDir dist/src/"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","gitHead":"5cc6e051169788a5d318bfd28fb192b1e33d9f3f","_id":"@splincode/client-logger@0.0.7","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-OpWO4GjMdcNHD5oGFsQQr7V5NlFRyg1UP0IhqIqdMFqFUZODGyg59oDWFCvpSd6q4dfQt2bUh9CWIuYBzN67zQ==","shasum":"ba3c0a27be827413c55fab89aa910ace229b94eb","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCDq7BTF6LHYK0kC7ZNvjZZj8MiqBXMpgTMxvc2Pd4R8AIgO/1NrE3CWvRThfnws7Cd8G3G5/fMI/kze1jddx00t6A="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.7.tgz_1512594728223_0.020987127674743533"},"directories":{}},"0.0.8":{"name":"@splincode/client-logger","version":"0.0.8","description":"Simple logger for browser","main":"./bundles/index.js","typings":"./bundles/index.d.ts","types":"./bundles/index.d.ts","scripts":{"compile":"ts-node index.ts","prepublishOnly":"tsc -p ./ --outDir dist/src/"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","gitHead":"5cc6e051169788a5d318bfd28fb192b1e33d9f3f","_id":"@splincode/client-logger@0.0.8","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-RTt9pX+jBW6XNIbqCn6KvEhHEOSqzm2Qwbz4tQhNXhDwuj/JCdcNDFmjLsQ/AzU6G2go0nC5zqQFBLM5Jiw7Yg==","shasum":"9d2e30163090fe3d6d8565d7e252e22eb7c39e82","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBEZayLoddw8NIy7JE99wkJNcOqHgzwNpzk76khbFXd7AiAFt38330855ZrNFdgdAQE/A5i9T02CjUJ6OAgQ9bnmeA=="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.8.tgz_1512595003245_0.49558125203475356"},"directories":{}},"0.0.9":{"name":"@splincode/client-logger","version":"0.0.9","description":"Simple logger for browser","main":"./bundles/logger.js","types":"./bundles/logger.d.ts","scripts":{"compile":"ts-node index.ts","prepublishOnly":"tsc -p ./"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","gitHead":"5cc6e051169788a5d318bfd28fb192b1e33d9f3f","_id":"@splincode/client-logger@0.0.9","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-J+U177PZREyVo86Q/voHU9r6rjdTqAAm1Pb/Xdgj3zJz8jmEzn4hg58d8a3dUFAJ3eCuxNuR2N8/Gr+Bqn8Qaw==","shasum":"af7ef7a50e9f29b69eb041a65a8e1570800bceaf","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.9.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDiEvYep3AEviJUmJjCkFfNdiYiiNwt551g2Lg52cMDAQIhAMRuzOah5u6BQzDPk2JhRgoz6Bt+pj1en5/CAR/GfqMg"}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.9.tgz_1512595119100_0.8476719332393259"},"directories":{}},"0.0.10":{"name":"@splincode/client-logger","version":"0.0.10","description":"Simple logger for browser","main":"./bundles/logger.js","types":"./bundles/logger.d.ts","scripts":{"compile":"ts-node index.ts","prepublishOnly":"tsc -p ./"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","gitHead":"5cc6e051169788a5d318bfd28fb192b1e33d9f3f","_id":"@splincode/client-logger@0.0.10","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-hio0h5A8q8hWyglA0v6Yvk4JtEp4CyeghrDvPKyGGIpeSOzKBl4ZYU01g39YFza3RzQU2HGrfl9fnOQ6ZegbLA==","shasum":"25cda75daa3c2af867e80a914ed0d6bab11a9566","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.10.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFeXG/9yDyMKaLyixNsdR8SUnuYnkpfs+eIBjLDQNhLRAiAbLd7BLYC1OCR0NaBqJQjQBlauTzsOWBQ3TocM8cfpAQ=="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.10.tgz_1512595241212_0.5340291666798294"},"directories":{}},"0.0.11":{"name":"@splincode/client-logger","version":"0.0.11","description":"Simple logger for browser","main":"./bundles/logger.js","types":"./logger.d.ts","scripts":{"compile":"ts-node index.ts","prepublishOnly":"tsc -p ./"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","gitHead":"5cc6e051169788a5d318bfd28fb192b1e33d9f3f","_id":"@splincode/client-logger@0.0.11","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-z4G9YoTLMtlYYpm5ibCmJ1H4kk25/nagc5vgrx5EQiv/DEzvGC8dpv4zf3DlhunWyXv75CrcADiK85hvs3aPcA==","shasum":"341015b9e697cc3ca7f99e6325160a09326b155e","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.11.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJjmmJfrpLfi8K2Ht0+R/FhmyvYUTpWqwyd8wdbPpLFAIhAMECIAW+35fia22mXNCeBFaxFlgu913F0hQ8qbdt3Qhz"}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.11.tgz_1512595578295_0.47756779147312045"},"directories":{}},"0.0.12":{"name":"@splincode/client-logger","version":"0.0.12","description":"Simple logger for browser","main":"./bundles/index.js","types":"./logger.d.ts","scripts":{"compile":"ts-node index.ts","prepublishOnly":"tsc -p ./"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","gitHead":"5cc6e051169788a5d318bfd28fb192b1e33d9f3f","_id":"@splincode/client-logger@0.0.12","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-sca9Va7rAqbMKBQLzicW/KtWqCm7lPDSf9FEMA3ffZvbZQlhW9KjqYwjVGVtTMnItdoAdxswtGvsm7hBWxIlgA==","shasum":"698197b0eb21c06b06c724deba8d8b2b04aa2eef","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.12.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD6TW7zPeNgWfuEXiwFLXz4t1qKgeOrV+16OuPLOs4diwIhAKVeEI4XptGcRBVONlNXWZHucjCGYdXOkNdXkWpDFHVo"}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.12.tgz_1512596025625_0.518607113044709"},"directories":{}},"0.0.13":{"name":"@splincode/client-logger","version":"0.0.13","description":"Simple logger for browser","main":"./bundles/main.js","types":"./main.d.ts","scripts":{"compile":"ts-node index.ts","prepublishOnly":"tsc -p ./"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","gitHead":"5cc6e051169788a5d318bfd28fb192b1e33d9f3f","_id":"@splincode/client-logger@0.0.13","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-84mFoJcV4hGFGXb8nVIH1FTVf0H/YZBYtYFlaEVzlHE7reiT+RXm8L8ovXHuBMKS3ACRs5vHGh1LPj84EfLLCA==","shasum":"7c34045fca2c86f1fe2802f17f08ba622ebfe2c3","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.13.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEUYvT/12Je4OyYECP1F7TifNLOvu6HIxD1FgMR5+ratAiBcx2uQ2HxAMjgretLjgTxl94VgcoUJWrHjJrJnrH7VtQ=="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.13.tgz_1512596096533_0.026968123856931925"},"directories":{}},"0.0.14":{"name":"@splincode/client-logger","version":"0.0.14","description":"Simple logger for browser","main":"./bundles/logger.js","types":"./logger.d.ts","scripts":{"compile":"ts-node index.ts","prepublishOnly":"tsc -p ./"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","gitHead":"5cc6e051169788a5d318bfd28fb192b1e33d9f3f","_id":"@splincode/client-logger@0.0.14","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-q/i3Si9ZH/vcrdM64mfvm0V+u+dgbZ4BvrG/W4Ex5txm+/ghNVAfBK5inm8D/t7YJgHqWRqsB4Ruj8xE/JEGUw==","shasum":"7cfe997bd9d7f8ce064a416d7dadfd3729f5ce37","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.14.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC8C+HqAZuzH/TmDVlKJT+PEdqLmPqQb2SQoc6eALivnQIgY/iw4PxW64ziQ7UocWFc/aZkf1pGt0H19N0Yy3iAlIY="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.14.tgz_1512596235812_0.35260000149719417"},"directories":{}},"0.0.15":{"name":"@splincode/client-logger","version":"0.0.15","description":"Simple logger for browser","main":"./logger.js","types":"./logger.d.ts","scripts":{"compile":"ts-node logger.ts","prepublishOnly":"tsc -p ./"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","gitHead":"5cc6e051169788a5d318bfd28fb192b1e33d9f3f","_id":"@splincode/client-logger@0.0.15","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-UT/QTiUZm9F1sdmC52e7K/WbjZ/pQrQ+Lt5MDMkLflco7kK5fdxbJ/JVQ21nh/ybhyxiFHi/xgWudcCpMibHGA==","shasum":"8d6901293109e6bf0ce83905d1393e7b7481d60e","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.15.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVQBH6dT0yA/JKNrIuzQYB+Or9Yh7UqyA1X6jBQux6cgIhAJzwCzCsfImsXVbkOWaHWcnRnnA3TQzDhC2oeSNzbukh"}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.15.tgz_1512597530505_0.2720327842980623"},"directories":{}},"0.0.16":{"name":"@splincode/client-logger","version":"0.0.16","description":"Simple logger for browser","main":"./logger.js","scripts":{"compile":"ts-node logger.ts","prepublishOnly":"tsc"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","gitHead":"5cc6e051169788a5d318bfd28fb192b1e33d9f3f","_id":"@splincode/client-logger@0.0.16","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-B/9qvwjYR8cm2ZVbXmI3k8pczzBXo/Qd03TFEW5H46LmM1q9vGzNzckTRAnr42QiM/gII64N2v8XjFBqn6ywIA==","shasum":"646a23fd36478a6378bd2e1c08ca6570418c0a8a","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.16.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCk+9YMQDPjQQ6pcSDmS/ccl5obkhYXaEUTRKSJAUCYhAIgRxHHHUPpxFf904Kd/YdQWwmrxwsziMGj/wVUT3Zdy40="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.16.tgz_1512598300197_0.22381192934699357"},"directories":{}},"0.0.17":{"name":"@splincode/client-logger","version":"0.0.17","description":"Simple logger for browser","main":"js/logger.js","typings":"js/logger","scripts":{"compile":"ts-node logger.ts","prepublishOnly":"tsc"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","gitHead":"5cc6e051169788a5d318bfd28fb192b1e33d9f3f","_id":"@splincode/client-logger@0.0.17","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-9ICxw+eOxMZjRcaE3sOusdecCa4ZUfxgU0xvmdV+rvVBJsAC3G+e2wid1z2U10srrfd5T87jWVZ2s+dVZRRh8w==","shasum":"933c3155a2f4aa1f64a22d2dab519929d40114cf","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.17.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAitkDphPyfLTVCSRs8RrmvEhlMfP1X1TQPpvQSKx0fmAiEAyOtieOy4hda3oGh0QnZ12jSWQigGNDf04KA79PmKQVA="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.17.tgz_1512819663514_0.7558796517550945"},"directories":{}},"0.0.20":{"name":"@splincode/client-logger","version":"0.0.20","description":"Simple logger for browser","main":"dist/logger.js","typings":"dist/logger","scripts":{"test":"mocha -r ts-node/register test/logger.spec.ts","compile":"ts-node src/logger.ts","prepublishOnly":"tsc"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","gitHead":"d7aba4196450591c254a36f74d4e7e4ba5f6c2bf","_id":"@splincode/client-logger@0.0.20","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-ID+HcXYvyczB3TqRB4Qi96rEsyldZTAwC/8wyxsAuwRBFafDz+60IacO8ikVSrKDVF9LH0tLAzwN6UO0MhQ32w==","shasum":"3eb0a064f6d5307a83ff5cb5cb1ce8966306e824","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.20.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAQmriPdNdWwr8dQ/BdXg8CeA1TInV2bYctRHoc8u+96AiEAkuqBOW6C6JpJGL6X8gQAAuA+dTahUjZMkrSjp/bQaYw="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.20.tgz_1512908227038_0.1846098939422518"},"directories":{}},"0.0.21":{"name":"@splincode/client-logger","version":"0.0.21","description":"Simple logger for browser","main":"dist/logger.js","typings":"dist/logger","scripts":{"test":"mocha -r ts-node/register test/logger.spec.ts","compile":"ts-node src/logger.ts","prepublishOnly":"tsc"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","gitHead":"00e8b9ade13605994f3065bbaee54c85b4e39f9a","_id":"@splincode/client-logger@0.0.21","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-ZSi36GOq9nkaRcBCu9kpE0oKUkEISeY3Wx4pOcEtlgccdW6UxoBz6RLjUPBPxjBNle5aSTJF5O6XHzNdp3mjog==","shasum":"956d7bb6acc022099617ba2210350c99ad12984a","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.21.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDQoMEIXVezGxnbyJ8//JdT4erPSONsV3HirwFRb8KzCQIgXthArGtuisLJl0jKoPQ8EkKt7p66tg/iKPBWziCZ1o4="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.21.tgz_1512912321255_0.5903518826235086"},"directories":{}},"0.0.22":{"name":"@splincode/client-logger","version":"0.0.22","description":"Simple logger for browser","main":"dist/logger.js","typings":"dist/logger","scripts":{"test":"mocha -r ts-node/register test/logger.spec.ts","compile":"ts-node src/logger.ts","prepublishOnly":"tsc"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","gitHead":"00e8b9ade13605994f3065bbaee54c85b4e39f9a","_id":"@splincode/client-logger@0.0.22","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-EkUXgt3VQqA7xpBsu+0VvQe9d0KFGPev9af1EZyLMptQincxz1pWa1Wsj25LrX02aKE9sXOypFyWF22cC+4L0w==","shasum":"ee04d5ad3889a017f4a0ee48737ae187e52b3883","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.22.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID7Q60L/onLB3cWF7eb/UIeGZBIuO/ORSV4ZJlDZkZ8eAiEA9CXcplJ7OW3weQDMHXVrTBxVmvG2zzwQ3m6AZ3d0+Mk="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.22.tgz_1512914642539_0.8686703147832304"},"directories":{}},"0.0.23":{"name":"@splincode/client-logger","version":"0.0.23","description":"Simple logger for browser","main":"dist/logger.js","typings":"dist/logger","scripts":{"test":"mocha -r ts-node/register test/logger.spec.ts","compile":"ts-node src/logger.ts","prepublishOnly":"tsc"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","gitHead":"00e8b9ade13605994f3065bbaee54c85b4e39f9a","_id":"@splincode/client-logger@0.0.23","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-4jRqP7arDMOd14ofCg2Wsco37nox11nCjrtrsBR1yzBLGlE9PdDROha8iopxtLCtnLupItWVugRiidyR7jy3LQ==","shasum":"a74fa95c022a2fce6ca41e574000830d613a3874","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.23.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCk/GeyYonkF0lFcRlxtgiTn+mdPyXdOVlsann8IVXjMQIhANMTf7D/6zQtTMzBmgKf35sVudeg4hiZn3y+EQQzSXyv"}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.23.tgz_1512914751388_0.39101335662417114"},"directories":{}},"0.0.24":{"name":"@splincode/client-logger","version":"0.0.24","description":"Simple logger for browser","main":"dist/logger.js","typings":"dist/logger","scripts":{"test":"mocha -r ts-node/register test/logger.spec.ts","compile":"ts-node src/logger.ts","prepublishOnly":"tsc"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","gitHead":"00e8b9ade13605994f3065bbaee54c85b4e39f9a","_id":"@splincode/client-logger@0.0.24","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-w55I6AFwb50tEH9ivzmjanACjd8WVOPz24tbeT4YSJ1hFxwybvpZUKoBAQmaFWCuVEMmYXMWFWWaDQ7VuCJW4Q==","shasum":"68ca1a199dd7cc3b7d39d1b853cf58364e433954","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.24.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEYuHEZ3qeUgSNviM0gY8IJRD/WXifV8XZq4K4ZYb7kkAiEAzhGWWkg8dHfm4uBmIH+VzVqiXxdYKU/MuUiId9NRZBc="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.24.tgz_1512915446406_0.012868263758718967"},"directories":{}},"0.0.25":{"name":"@splincode/client-logger","version":"0.0.25","description":"Simple logger for browser","main":"dist/logger.js","typings":"dist/logger","scripts":{"test":"mocha -r ts-node/register test/logger.spec.ts","compile":"ts-node src/logger.ts","prepublishOnly":"tsc"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","gitHead":"00e8b9ade13605994f3065bbaee54c85b4e39f9a","_id":"@splincode/client-logger@0.0.25","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-kfCUNt9j5063sbe4dQnIz4zzTZ3MOraoaqVCf81e2Kted9B3t500l//2LjNHc2dDxYiN1dwaCH4LiODrgWUH8g==","shasum":"bd1336ba91fbfe8a83ff76468f0c34963e6f06c1","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.25.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDadvvAZQS5YMqwq3W39Lv1n4qpm2SQA0cPxmDtiqyl9AIgQ7JYh3WUnorWf7stMiPuFjNHH3xE8IXH2sx5kCvt+Y0="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.25.tgz_1512915644766_0.36494964570738375"},"directories":{}},"0.0.26":{"name":"@splincode/client-logger","version":"0.0.26","description":"Simple logger for browser","main":"dist/logger.js","typings":"dist/logger","scripts":{"test":"mocha -r ts-node/register test/logger.spec.ts","compile":"ts-node src/logger.ts","prepublishOnly":"tsc"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","gitHead":"00e8b9ade13605994f3065bbaee54c85b4e39f9a","_id":"@splincode/client-logger@0.0.26","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-4B6MuD7ZyS1JhQaanRsQFB0G4KVhMORgu5mUDhwwdAhtl/f2+m4eVYsoAoUtr2NuRjxPcVVCjucLyWVN8V0rWA==","shasum":"45e24dcf7a2f018f72d994d0ab2b9268c9255dc4","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.26.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEdDQnWnU6qvTrHdGVPjQW3oU3HCYyVlEqPmFxI3ViqqAiAlMidr4aUnasbUt+um7pMEPUI4PpqP3BGMAXNeF1poQw=="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.26.tgz_1512917662897_0.8032807968556881"},"directories":{}},"0.0.27":{"name":"@splincode/client-logger","version":"0.0.27","description":"Simple logger for browser","main":"dist/logger.js","typings":"dist/logger","scripts":{"test":"mocha -r ts-node/register test/logger.spec.ts","compile":"ts-node src/logger.ts","prepublishOnly":"tsc"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","gitHead":"00e8b9ade13605994f3065bbaee54c85b4e39f9a","_id":"@splincode/client-logger@0.0.27","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-EkDuWd3JUCEhTjBx+IDnAG7xhKxN7tki/f71zA65YTXrmeWKY1CrXG7U4ZtdBxMQWHLNb7xfZR5kBzua2iXk/A==","shasum":"60c0e79bff20296e81b30f4c33f5422e6218cfcb","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.27.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCdgoBon7P69AHDSaPYejub8WZUNy43x6QYHrTlhFyYMgIhAKnP+b7yiCMRhFgRkE2BQBWHUbV05HVYhbY4ztNRuIwW"}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.27.tgz_1512919889018_0.49143715808168054"},"directories":{}},"0.0.28":{"name":"@splincode/client-logger","version":"0.0.28","description":"Simple logger for browser","main":"dist/logger.js","typings":"dist/logger","scripts":{"test":"mocha -r ts-node/register test/logger.spec.ts","compile":"ts-node src/logger.ts","prepublishOnly":"tsc"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","gitHead":"b2a97a4c0c13f3005e8625ffb993dae19ce3396f","_id":"@splincode/client-logger@0.0.28","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-9eVR67Cs551QApcIC9z8WbxhPLmQYHXHR6NThM9BLc/yKXbXIesZUcluD2OQp/UBDEyl51eFCalWPc7h6lW98g==","shasum":"7b2ae612246674efcad5b9cb10aa8656615451ec","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.28.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDMBCcewiir1O7vc85r1WTeeT/UZ6VIjP5ra8SWIRr6RQIgbugWgNkzK0VivYCCuNvRLH9hCRV3k11S/HnPRQ5OamI="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.28.tgz_1512920484150_0.4648638211656362"},"directories":{}},"0.0.29":{"name":"@splincode/client-logger","version":"0.0.29","description":"Simple logger for browser","main":"dist/logger.js","typings":"dist/logger","scripts":{"test":"mocha -r ts-node/register test/logger.spec.ts","compile":"ts-node src/logger.ts","prepublishOnly":"tsc"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","devDependencies":{"mocha":"^4.0.1","ts-node":"^4.0.1","typescript":"^2.6.2"},"gitHead":"03b1676f66eff07c60bf20c943d592e2f5924d49","_id":"@splincode/client-logger@0.0.29","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-Dj0bRfDbD23OFObl+sTjem4oDvekZLhbD4pzEvYyGq3aoG4HGlKCTkCi9cwazfcwi8oUsREEqxggBpfs1jJcQA==","shasum":"61f3e301ca986104ba02710e8d4ac96a4f6158f8","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.29.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDOsnRUmKubur8WqNlJgbQN09/Smui595lr5IYViT6iTAiBTiIGbSxBQOqhyiKhIhPT2D2H2a0+kHVmLRKVHiKHMFQ=="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.29.tgz_1513197189318_0.6166075041983277"},"directories":{}},"0.0.30":{"name":"@splincode/client-logger","version":"0.0.30","description":"Simple logger for browser","main":"dist/logger.js","typings":"dist/logger","scripts":{"test":"mocha -r ts-node/register test/logger.spec.ts","compile":"ts-node src/logger.ts","prepublishOnly":"tsc"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","devDependencies":{"mocha":"^4.0.1","ts-node":"^4.0.1","typescript":"^2.6.2"},"gitHead":"03b1676f66eff07c60bf20c943d592e2f5924d49","_id":"@splincode/client-logger@0.0.30","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-+yc+xsmbg8cyPd5+dvkGe4BQ2El2XYoWCQEc6hA5lHUWWbXlwhV6KCCJeNkmLFbWMwnpo+bdaIZzyIdrQymZdA==","shasum":"fac2f4ec33b0c1400eb045a4a57548f536edb391","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.30.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQClSeBe0hgycYoL4hqi/uhGS/eUGK1EeY0NHLD5kJ9crAIgcLOwnPhJe1aU/IgVe6NT3AJF//H1QGqbqcX6j3JH25Q="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.30.tgz_1513197317904_0.18696149392053485"},"directories":{}},"0.0.31":{"name":"@splincode/client-logger","version":"0.0.31","description":"Simple logger for browser","main":"dist/logger.js","typings":"dist/logger","scripts":{"test":"mocha -r ts-node/register test/logger.spec.ts","compile":"ts-node src/logger.ts","prepublishOnly":"tsc"},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","devDependencies":{"chai":"^4.1.2","mocha":"^4.0.1","ts-node":"^4.0.1","typescript":"^2.6.2"},"gitHead":"abae350f038a4be72df7b2821555595a6c1ec0a2","_id":"@splincode/client-logger@0.0.31","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-flBnY5RwHCETRVuYzAT6V0hhktoOLzmHQUuG9i+GX29UWb6RxVQ/Tmq/BWOu7jI1kqz+STLYF9abpZviVJahlg==","shasum":"71ef10de739b55a5a864285b885c01db54eedecf","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.31.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCfH0d2i1C3KfEZ6S/WD/KmdGE/mRBzC0LFF2LQvWG0UAIgdpLZzKa271XCAaZxFMH+PFYfVCYgVFSEYxTEgbfJiz8="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.31.tgz_1513452746443_0.6138252280652523"},"directories":{}},"0.0.32":{"name":"@splincode/client-logger","version":"0.0.32","description":"Simple logger for browser","main":"lib/index.js","typings":"lib/src/logger","scripts":{"lint":"tslint -c tslint.json 'src/**/*.ts'","test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls","mocha":"mocha -r ts-node/register test/*.test.ts","compile":"ts-node src/logger.ts","prepublishOnly":"tsc"},"nyc":{"include":["src/*.ts","src/**/*.ts"],"extension":[".ts"],"require":["ts-node/register"],"reporter":["text-summary","html"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","devDependencies":{"@types/chai":"^4.0.8","@types/mocha":"^2.2.44","chai":"^4.1.2","coveralls":"^3.0.0","mocha":"^4.0.1","nyc":"^11.3.0","ts-node":"^4.0.1","tslint":"^5.8.0","tslint-config-standard":"^7.0.0","typescript":"^2.6.2","typings":"^2.1.1"},"gitHead":"f10a37cf3c2a7b780eead58d2d150146801c2204","_id":"@splincode/client-logger@0.0.32","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-bphz38CTNfcqH0Q389RQyAF8fsjUBUp87Nqs2ztgbZkT8ddVNcDdihgOqqB1bm3p6tp37lwnggjdZXEPWhiB0g==","shasum":"32323256147caea9ecac1c7f193f36d8aa1cae59","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.32.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD0ToBtwHzjnoJ1ijfqAYMWQDX8H3i05H+7oMheTDop8gIhANZmISK0Bfz1YLoFWkPKpFad6mIH5kJeTvu63iByg5iU"}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.32.tgz_1515531729181_0.4315893549937755"},"directories":{}},"0.0.33":{"name":"@splincode/client-logger","version":"0.0.33","description":"Simple logger for browser","main":"lib/index.js","typings":"lib/index","scripts":{"lint":"tslint -c tslint.json 'src/**/*.ts'","test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls","mocha":"mocha -r ts-node/register test/*.test.ts","compile":"ts-node src/logger.ts","prepublishOnly":"tsc"},"nyc":{"include":["src/*.ts","src/**/*.ts"],"extension":[".ts"],"require":["ts-node/register"],"reporter":["text-summary","html"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","devDependencies":{"@types/chai":"^4.0.8","@types/mocha":"^2.2.44","chai":"^4.1.2","coveralls":"^3.0.0","mocha":"^4.0.1","nyc":"^11.3.0","ts-node":"^4.0.1","tslint":"^5.8.0","tslint-config-standard":"^7.0.0","typescript":"^2.6.2","typings":"^2.1.1"},"gitHead":"f10a37cf3c2a7b780eead58d2d150146801c2204","_id":"@splincode/client-logger@0.0.33","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-GsJ/AG7mt6J/1VxsR8H3hIzLt/jeFf0vF7/lUeuDpyr+GRtoNjmpErHGFNg0B8geM5aVG8f/Zup0VujLbBoRhg==","shasum":"75ad04d1db84c2cbb6c7144e33aa6f799e2ebd72","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.33.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICEcFQpC5p1glNvVvkhwsj29D/8UbA7Fog1UOiT9e1BYAiEAhG/SGLw7tH0mIPK4QM5ejvtA7qPRb8LXFvlEYTZ3W9M="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.33.tgz_1515531884357_0.5176454954780638"},"directories":{}},"0.0.34":{"name":"@splincode/client-logger","version":"0.0.34","description":"Simple logger for browser","main":"lib/index.js","typings":"lib/index","scripts":{"lint":"tslint -c tslint.json 'src/**/*.ts'","test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls","mocha":"mocha -r ts-node/register test/*.test.ts","examples:build":"cd examples && npm install && npm run build:prod","compile":"ts-node src/logger.ts","prepublishOnly":"tsc","release:major":"changelog -M && git add . && git commit -m \"updated CHANGELOG.md\" && npm version major && npm publish && git push origin && git push origin --tags","release:minor":"changelog -m && git add . && git commit -m \"updated CHANGELOG.md\" && npm version minor && npm publish && git push origin && git push origin --tags","release:patch":"changelog -p && git add . && git commit -m \"updated CHANGELOG.md\" && npm version patch && npm publish && git push origin && git push origin --tags"},"nyc":{"include":["src/*.ts","src/**/*.ts"],"extension":[".ts"],"require":["ts-node/register"],"reporter":["text-summary","html"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","devDependencies":{"@types/chai":"^4.0.8","@types/mocha":"^2.2.44","chai":"^4.1.2","coveralls":"^3.0.0","mocha":"^4.0.1","nyc":"^11.3.0","ts-node":"^4.0.1","tslint":"^5.8.0","tslint-config-standard":"^7.0.0","typescript":"^2.6.2","typings":"^2.1.1"},"gitHead":"1d81c23b0235f3bdb88cf62f211429f14c897fdf","_id":"@splincode/client-logger@0.0.34","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-ITbi5vhHM1hfKhZA3nxnTlskFqJ/xYzMWKmZHsf6HyfYlk/3WYBfyl/dSrqH1SJDTjTEMgOhdMGWeD4VYYwpiQ==","shasum":"824e607012989baddde4b410f66179adccebb402","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.34.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQn4oTI+7MdJCE+z49egY1Z6/iF1mzCr/uf99PBh6w7gIhAKlx5VZs8Y8HIkbLbLVjYYf5NfJJxseDJW5Le1aREj9z"}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.34.tgz_1515616608044_0.41357929282821715"},"directories":{}},"0.0.35":{"name":"@splincode/client-logger","version":"0.0.35","description":"Simple logger for browser","main":"lib/index.js","typings":"lib/index","scripts":{"lint":"tslint -c tslint.json 'src/**/*.ts'","test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls","mocha":"mocha -r ts-node/register test/*.test.ts","examples:build":"cd examples && npm install && npm run build:prod","compile":"ts-node src/logger.ts","prepublishOnly":"tsc","release:major":"changelog -M && git add . && git commit -m \"updated CHANGELOG.md\" && npm version major && npm publish && git push origin && git push origin --tags","release:minor":"changelog -m && git add . && git commit -m \"updated CHANGELOG.md\" && npm version minor && npm publish && git push origin && git push origin --tags","release:patch":"changelog -p && git add . && git commit -m \"updated CHANGELOG.md\" && npm version patch && npm publish && git push origin && git push origin --tags"},"nyc":{"include":["src/*.ts","src/**/*.ts"],"extension":[".ts"],"require":["ts-node/register"],"reporter":["text-summary","html"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","devDependencies":{"@types/chai":"^4.0.8","@types/mocha":"^2.2.44","chai":"^4.1.2","coveralls":"^3.0.0","mocha":"^4.0.1","nyc":"^11.3.0","ts-node":"^4.0.1","tslint":"^5.8.0","tslint-config-standard":"^7.0.0","typescript":"^2.6.2","typings":"^2.1.1"},"gitHead":"21ad895cf9212347a765a8a905ec5dc42dfea84b","_id":"@splincode/client-logger@0.0.35","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-9q4CsGafMddv6mP+rguUrAs8hy/FXi8TtZA0N8dSOhS3u4y0m1x13YqspbmqoypwTgjjrgDsLvtKoUZiEjBkJQ==","shasum":"177a3079e319625b00a444cdbd416fa53788560e","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.0.35.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEhhyJXI/+v0nXm9kSjNR1eSK0NRIN/r0WFm5owwBsd9AiEA/fEHxClMNsjjnGEwi7S+vdavlz89chCTIpIGcf1qeLc="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger-0.0.35.tgz_1515655761767_0.266328283585608"},"directories":{}},"0.1.0":{"name":"@splincode/client-logger","version":"0.1.0","description":"Simple logger for browser","main":"lib/index.js","typings":"lib/index","scripts":{"lint":"tslint -c tslint.json 'src/**/*.ts'","test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls","mocha":"mocha -r ts-node/register test/*.test.ts","examples:build":"cd examples && npm install && npm run build:prod","compile":"ts-node src/logger.ts","prepublishOnly":"tsc","release:major":"changelog -M && git add . && git commit -m \"updated CHANGELOG.md\" && npm version major && npm publish && git push origin && git push origin --tags","release:minor":"changelog -m && git add . && git commit -m \"updated CHANGELOG.md\" && npm version minor && npm publish && git push origin && git push origin --tags","release:patch":"changelog -p && git add . && git commit -m \"updated CHANGELOG.md\" && npm version patch && npm publish && git push origin && git push origin --tags"},"nyc":{"include":["src/*.ts","src/**/*.ts"],"extension":[".ts"],"require":["ts-node/register"],"reporter":["text-summary","html"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","devDependencies":{"@types/chai":"^4.0.8","@types/mocha":"^2.2.44","chai":"^4.1.2","coveralls":"^3.0.0","generate-changelog":"^1.7.0","mocha":"^4.0.1","nyc":"^11.3.0","ts-node":"^4.0.1","tslint":"^5.8.0","tslint-config-standard":"^7.0.0","typescript":"^2.6.2","typings":"^2.1.1"},"gitHead":"ead364f6230ccefc2c139576ae830a599134eabb","_id":"@splincode/client-logger@0.1.0","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-TG32X6Rb5AbzNnFaUS6zbzgEDhWZVuWRv0I9Zrn/cVo3HUTkr4RfRkFYhiCCURnDVWN38Ok/W7tkf110RPdmvA==","shasum":"11db3a15e6a99e8a36485d9adae0f55b62e66f7b","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.1.0.tgz","fileCount":21,"unpackedSize":102756,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCye8wlJs0yzK3Lx49JEN+Q1UedK562Dj3kBxDQixevpAIgF3pn/7Ld9yl9851wixKsfKomqzsRq/6qyDXkfnf2wF0="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger_0.1.0_1518646175541_0.8148266667060184"},"_hasShrinkwrap":false},"0.2.0":{"name":"@splincode/client-logger","version":"0.2.0","description":"Simple logger for browser","main":"lib/index.js","typings":"lib/index","scripts":{"start":"cd examples && npm install && npm run start","lint":"tslint -c tslint.json 'src/**/*.ts'","test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls","mocha":"mocha -r ts-node/register test/*/*.test.ts","examples:build":"cd examples && npm install && npm run build:prod","compile":"ts-node src/logger.ts","prepublishOnly":"tsc","release:major":"changelog -M && git add . && git commit -m \"updated CHANGELOG.md\" && npm version major && npm publish && git push origin && git push origin --tags","release:minor":"changelog -m && git add . && git commit -m \"updated CHANGELOG.md\" && npm version minor && npm publish && git push origin && git push origin --tags","release:patch":"changelog -p && git add . && git commit -m \"updated CHANGELOG.md\" && npm version patch && npm publish && git push origin && git push origin --tags"},"nyc":{"include":["src/*.ts","src/**/*.ts"],"extension":[".ts"],"require":["ts-node/register"],"reporter":["text-summary","html"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","devDependencies":{"@types/chai":"^4.0.8","@types/mocha":"^2.2.44","chai":"^4.1.2","coveralls":"^3.0.0","generate-changelog":"^1.7.0","mocha":"^4.0.1","nyc":"^11.3.0","ts-node":"^4.0.1","tslint":"^5.8.0","tslint-config-standard":"^7.0.0","typescript":"^2.6.2","typings":"^2.1.1"},"gitHead":"f0e167ad597b58178f7e4ed92a027e0b5a54a685","_id":"@splincode/client-logger@0.2.0","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-NWibZAqJskJMgGOIITpzAVq1K+VOxXVRO4U8IBzDyfDTsCwD8Y6QjPQwHnEzscDOLsqHMYsSGpD/IbUO5yrKog==","shasum":"4197ee07f1fc4b15d6600160359dd8dc1d363a94","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.2.0.tgz","fileCount":30,"unpackedSize":141818,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCzH01M06/D508/oNwAgoqFZNLavZovKpeybe3NfYyCwAIhAJapu1uRPH3JBklFsBFZv9eWug8Wc0j5K3werdrs50el"}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger_0.2.0_1518971878865_0.6987511253146796"},"_hasShrinkwrap":false},"0.3.0":{"name":"@splincode/client-logger","version":"0.3.0","description":"Simple logger for browser","main":"lib/index.js","typings":"lib/index","scripts":{"start":"cd examples && npm install && npm run start","lint":"tslint -c tslint.json 'src/**/*.ts'","test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls","mocha":"mocha -r ts-node/register test/*/*.test.ts","examples:build":"cd examples && npm install && npm run build:prod","compile":"ts-node src/logger.ts","prepublishOnly":"tsc","release:major":"changelog -M && git add . && git commit -m \"updated CHANGELOG.md\" && npm version major && npm publish && git push origin && git push origin --tags","release:minor":"changelog -m && git add . && git commit -m \"updated CHANGELOG.md\" && npm version minor && npm publish && git push origin && git push origin --tags","release:patch":"changelog -p && git add . && git commit -m \"updated CHANGELOG.md\" && npm version patch && npm publish && git push origin && git push origin --tags"},"nyc":{"include":["src/*.ts","src/**/*.ts"],"extension":[".ts"],"require":["ts-node/register"],"reporter":["text-summary","html"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","devDependencies":{"@types/chai":"^4.0.8","@types/mocha":"^2.2.44","chai":"^4.1.2","coveralls":"^3.0.0","generate-changelog":"^1.7.0","mocha":"^4.0.1","nyc":"^11.3.0","ts-node":"^4.0.1","tslint":"^5.8.0","tslint-config-standard":"^7.0.0","typescript":"^2.6.2","typings":"^2.1.1"},"gitHead":"074a156dd3a07e921c07b1f1678446e7aab72331","_id":"@splincode/client-logger@0.3.0","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-Mn4gubLdFGcnUnFFP7ijDX98AQRXNr6trjJ+R1JymzH6fG4nmCHuMFH/bdCrvjyYtAAAeEN/EPwB6yQclB6zXg==","shasum":"6d8730a721476303f9b8e4efdacfae5a7fc41e30","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.3.0.tgz","fileCount":16,"unpackedSize":39819,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGsBUeIFNTSH193MfPGAUNz0Xy4osLK8Ybe+3q3rwTk8AiAvUPzTh1gw9OMVsILYJMmkJ2rSemKwNrv6qmBMdYdIHA=="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger_0.3.0_1518986988669_0.5500744831681843"},"_hasShrinkwrap":false},"0.4.0":{"name":"@splincode/client-logger","version":"0.4.0","description":"Simple logger for browser","main":"lib/index.js","typings":"lib/index","scripts":{"start":"cd examples && npm install && npm run start","lint":"tslint -c tslint.json 'src/**/*.ts'","test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls","mocha":"mocha -r ts-node/register test/*/*.test.ts","examples:build":"cd examples && npm install && npm run build:prod","compile":"ts-node src/logger.ts","prepublishOnly":"tsc","release:major":"changelog -M && git add . && git commit -m \"updated CHANGELOG.md\" && npm version major && npm publish && git push origin && git push origin --tags","release:minor":"changelog -m && git add . && git commit -m \"updated CHANGELOG.md\" && npm version minor && npm publish && git push origin && git push origin --tags","release:patch":"changelog -p && git add . && git commit -m \"updated CHANGELOG.md\" && npm version patch && npm publish && git push origin && git push origin --tags"},"nyc":{"include":["src/*.ts","src/**/*.ts"],"extension":[".ts"],"require":["ts-node/register"],"reporter":["text-summary","html"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","devDependencies":{"@types/chai":"^4.0.8","@types/mocha":"^2.2.44","chai":"^4.1.2","coveralls":"^3.0.0","generate-changelog":"^1.7.0","mocha":"^4.0.1","nyc":"^11.3.0","ts-node":"^4.0.1","tslint":"^5.8.0","tslint-config-standard":"^7.0.0","typescript":"^2.6.2","typings":"^2.1.1"},"gitHead":"d66444e7937cdcc8eec9d54abd4de9ecb755a7dd","_id":"@splincode/client-logger@0.4.0","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-HtZzXy/3S72Cc7096kBZge9NmadO99ppQpnfr2Wh5ZAC7QvB0ft4A5JwkkGZNXjxfI7luaHMscmVLPfPc4cAcQ==","shasum":"e4f00c0f16550030203f7eece1f5fc22fb44dc31","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.4.0.tgz","fileCount":18,"unpackedSize":42443,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBQGALIa8uTfXUaDUYIx80GzKBb6+4Naz6P5ey2u7URYAiEAoqlu8Z6NvZwRMPILJWaRIcH8EUFJPDDuCKO/eZy2+gI="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger_0.4.0_1519082491075_0.11693502920236121"},"_hasShrinkwrap":false},"0.4.1":{"name":"@splincode/client-logger","version":"0.4.1","description":"Simple logger for browser","main":"lib/index.js","typings":"lib/index","scripts":{"start":"cd examples && npm install && npm run start","lint":"tslint -c tslint.json 'src/**/*.ts'","test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls","mocha":"mocha -r ts-node/register test/*/*.test.ts","examples:build":"cd examples && npm install && npm run build:prod","compile":"ts-node src/logger.ts","prepublishOnly":"tsc","release:major":"changelog -M && git add . && git commit -m \"updated CHANGELOG.md\" && npm version major && npm publish && git push origin && git push origin --tags","release:minor":"changelog -m && git add . && git commit -m \"updated CHANGELOG.md\" && npm version minor && npm publish && git push origin && git push origin --tags","release:patch":"changelog -p && git add . && git commit -m \"updated CHANGELOG.md\" && npm version patch && npm publish && git push origin && git push origin --tags"},"nyc":{"include":["src/*.ts","src/**/*.ts"],"extension":[".ts"],"require":["ts-node/register"],"reporter":["text-summary","html"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","devDependencies":{"@types/chai":"^4.0.8","@types/mocha":"^2.2.44","chai":"^4.1.2","coveralls":"^3.0.0","generate-changelog":"^1.7.0","mocha":"^4.0.1","nyc":"^11.3.0","ts-node":"^4.0.1","tslint":"^5.8.0","tslint-config-standard":"^7.0.0","typescript":"^2.6.2","typings":"^2.1.1"},"gitHead":"156a8a3535cdec8c1d3b1e2cb18c6aa950ac4e8b","_id":"@splincode/client-logger@0.4.1","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-Bge6ky1s0q3Q39C0I1J5syXbd3VYbs83FuFB3vDIfCB9iqz0DGv5qlkWP4QRflOagAoATMFBH/32U+ljuO62eQ==","shasum":"a472694d700da3f52cc8b711f5cb1f166e6be2dd","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.4.1.tgz","fileCount":18,"unpackedSize":42668,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCP3JQgx1OXJUwg6mBEnZITxYWLP6ljptRLHCqFZNXG5QIhAJyIBUeQ8FPxCBOfB9bDwT6jhNNaO/BGShHMKl4aQoaU"}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger_0.4.1_1519082760973_0.8476385804861186"},"_hasShrinkwrap":false},"0.4.2":{"name":"@splincode/client-logger","version":"0.4.2","description":"Simple logger for browser","main":"lib/index.js","typings":"lib/index","scripts":{"start":"cd examples && npm install && npm run start","lint":"tslint -c tslint.json 'src/**/*.ts'","test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls","mocha":"mocha -r ts-node/register test/*/*.test.ts","examples:build":"cd examples && npm install && npm run build:prod","compile":"ts-node src/logger.ts","prepublishOnly":"tsc","ts:doc":"typedoc --out doc/ src/logger.class.ts","npm:release":"npm run ts:doc && changelog -M && git add . && git commit -m \"updated CHANGELOG.md\"","release:major":"npm run npm:release && npm version major && npm publish && npm run git:release","release:minor":"npm run npm:release && npm version minor && npm publish && npm run git:release","release:patch":"npm run npm:release && npm version patch && npm publish && npm run git:release","git:release":"git push origin && git push origin --tags"},"nyc":{"include":["src/*.ts","src/**/*.ts"],"extension":[".ts"],"require":["ts-node/register"],"reporter":["text-summary","html"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","devDependencies":{"@types/chai":"^4.0.8","@types/mocha":"^2.2.44","chai":"^4.1.2","coveralls":"^3.0.0","generate-changelog":"^1.7.0","mocha":"^4.0.1","nyc":"^11.3.0","ts-node":"^4.0.1","tslint":"^5.8.0","tslint-config-standard":"^7.0.0","typescript":"^2.6.2","typings":"^2.1.1"},"gitHead":"b0fcdc3dd15b7e609b7d2ed3dc5c7f79d562dd94","_id":"@splincode/client-logger@0.4.2","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-JWmw4HNEbgqtucHIfg6VVTUREoNjqt8wPblYlSG0020Kx58L91rOcFpOP48wYP3KZvBolkON0eA4YPCBH0Vv5g==","shasum":"6fd91e93abb076855527578bef6b954b0f4db491","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.4.2.tgz","fileCount":18,"unpackedSize":42878,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC1lSEvQPgXJ7QM56wDz4ABAHIPEAMF6cSq8BtX/U5CHAiEAyn9NJgj/AEvY7nqoOl4O0xSIQSBBEqxQ5YlVTLvv9/k="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger_0.4.2_1519423762692_0.7133313649638839"},"_hasShrinkwrap":false},"0.4.3":{"name":"@splincode/client-logger","version":"0.4.3","description":"Simple logger for browser","main":"lib/index.js","typings":"lib/index","scripts":{"start":"cd examples && npm install && npm run start","lint":"tslint -c tslint.json 'src/**/*.ts'","test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls","mocha":"mocha -r ts-node/register test/*/*.test.ts","examples:build":"cd examples && npm install && npm run build:prod","compile":"ts-node src/logger.ts","prepublishOnly":"tsc","ts:doc":"typedoc --out doc/ src/logger.class.ts","npm:release":"npm run ts:doc && git add . && git commit -m \"updated CHANGELOG.md\"","release:major":"changelog -M && npm run npm:release && npm version major && npm publish && npm run git:release","release:minor":"changelog -m && npm run npm:release && npm version minor && npm publish && npm run git:release","release:patch":"changelog -p && npm run npm:release && npm version patch && npm publish && npm run git:release","git:release":"git push origin && git push origin --tags"},"nyc":{"include":["src/*.ts","src/**/*.ts"],"extension":[".ts"],"require":["ts-node/register"],"reporter":["text-summary","html"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","devDependencies":{"@types/chai":"^4.0.8","@types/mocha":"^2.2.44","chai":"^4.1.2","coveralls":"^3.0.0","generate-changelog":"^1.7.0","mocha":"^4.0.1","nyc":"^11.3.0","ts-node":"^4.0.1","tslint":"^5.8.0","tslint-config-standard":"^7.0.0","typescript":"^2.6.2","typings":"^2.1.1"},"gitHead":"25acaa283b4714eab3b7ed334108349c56968825","_id":"@splincode/client-logger@0.4.3","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-9GaSFSrVlcWCQj68iodQQeBeTlVCHIeK636PDvhwHQM/gZEQFsMQnuuAzUEXbV5JHJ3w338tfwByDUBC7jQrnw==","shasum":"aaf5309516973f0da04019795958d6d862aa5265","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.4.3.tgz","fileCount":18,"unpackedSize":37408,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDDcYdwCJ6V4xC41rke4H99z6wJ3FOip8XYBDxMxbDMtwIhAKjxbWWKkTg3PIjpovbMHvTH3nij9fU5KTY+k/vfkNgv"}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger_0.4.3_1519424159111_0.5960625671715973"},"_hasShrinkwrap":false},"0.5.0":{"name":"@splincode/client-logger","version":"0.5.0","description":"Simple logger for browser","main":"lib/index.js","typings":"lib/index","scripts":{"start":"cd examples && npm install && npm run start","lint":"tslint -c tslint.json 'src/**/*.ts'","test":"nyc --reporter=html --reporter=text mocha","coverage":"nyc report --reporter=text-lcov | coveralls","mocha":"mocha -r ts-node/register test/*/*.test.ts","examples:build":"cd examples && npm install && npm run build:prod","compile":"ts-node src/logger.ts","prepublishOnly":"tsc","ts:doc":"typedoc --out doc/ src/logger.class.ts","npm:release":"npm run examples:build && npm run ts:doc && git add . && git commit -m \"updated CHANGELOG.md\"","release:major":"changelog -M && npm run npm:release && npm version major && npm publish && npm run git:release","release:minor":"changelog -m && npm run npm:release && npm version minor && npm publish && npm run git:release","release:patch":"changelog -p && npm run npm:release && npm version patch && npm publish && npm run git:release","git:release":"git push origin && git push origin --tags"},"nyc":{"include":["src/*.ts","src/**/*.ts"],"extension":[".ts"],"require":["ts-node/register"],"reporter":["text-summary","html"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","devDependencies":{"@types/chai":"^4.0.8","@types/mocha":"^2.2.44","chai":"^4.1.2","coveralls":"^3.0.0","generate-changelog":"^1.7.0","mocha":"^4.0.1","nyc":"^11.3.0","ts-node":"^4.0.1","tslint":"^5.8.0","tslint-config-standard":"^7.0.0","typescript":"^2.6.2","typings":"^2.1.1"},"gitHead":"f326315a31be1a41665c4a6f1e28d1913b97d71c","_id":"@splincode/client-logger@0.5.0","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-jIdFD28u3v5+mDnNqYNV0O+JyY83NiSFV7qdlBXHRNOL4eUD10A8Cij2kzcEM+fZzodeeyvGN8f6GKM7UGI26A==","shasum":"3df020284cba178522de74593f402d87aeb79a62","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.5.0.tgz","fileCount":20,"unpackedSize":45355,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE1b9vaPfuu02lRR6YM3TivTX+TZNhuCVp6AIKdo0NJsAiEAohtE3i2N8V228wRU5h23bPuVgTq7yWQ0fZBeGU4/JyU="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger_0.5.0_1519492040407_0.5398098698721385"},"_hasShrinkwrap":false},"0.5.1":{"name":"@splincode/client-logger","version":"0.5.1","description":"Lightweight and configurable JavaScript logger (written on TypeScript)","main":"./lib/index.js","typings":"./lib/index.d.ts","scripts":{"prepublishOnly":"tsc","compile":"ts-node src/logger.ts","lint":"tslint -c tslint.json 'src/**/*.ts'","start":"cd aio && npm install && npm run start","test":"nyc --reporter=html --reporter=text mocha","mocha":"mocha -r ts-node/register test/*/*.test.ts","coverage":"nyc report --reporter=text-lcov | coveralls","git:release":"git push origin && git push origin --tags","aio:build":"cd aio && npm install && npm run build:prod","npm:release":"git add . && git commit -m \"chore(repo): updated CHANGELOG.md\"","release:major":"changelog -M && npm run npm:release && npm version major && npm publish && npm run git:release","release:minor":"changelog -m && npm run npm:release && npm version minor && npm publish && npm run git:release","release:patch":"changelog -p && npm run npm:release && npm version patch && npm publish && npm run git:release"},"nyc":{"include":["src/*.ts","src/**/*.ts"],"extension":[".ts"],"require":["ts-node/register"],"reporter":["text-summary","html"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","devDependencies":{"@types/chai":"^4.0.8","@types/mocha":"^2.2.44","chai":"^4.1.2","coveralls":"^3.0.0","generate-changelog":"^1.7.0","mocha":"^4.0.1","nyc":"^11.3.0","ts-node":"^4.0.1","tslint":"^5.8.0","tslint-config-standard":"^7.0.0","typescript":"^2.6.2","typings":"^2.1.1"},"gitHead":"b208d84e3a23ff2fdb298ee423425c4b6839c18b","_id":"@splincode/client-logger@0.5.1","_npmVersion":"5.5.1","_nodeVersion":"9.0.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-mpbPDHrLz8gErqcflJCveIeV22K1Fjheejp0y4P+EU/ZocDr9TgxttzOLHfY4TULoETgqGRmJlm06Bnh7OraXw==","shasum":"9b0908e4ab907b95872994c886f3f37c6ba932ec","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-0.5.1.tgz","fileCount":29,"unpackedSize":74828,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEOGtFsaWbDc4IU22aFxSMKYsBiVibC0aVa/yXEgqNQ0AiB9YZ4D9c3A08Wl0Bomg40lMnt39j3HKFKJANTJoCbz+w=="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger_0.5.1_1523186034919_0.28825836076598255"},"_hasShrinkwrap":false},"1.0.0-2":{"name":"@splincode/client-logger","version":"1.0.0-2","description":"Lightweight and configurable JavaScript logger (written on TypeScript)","main":"./lib/index.js","typings":"./lib/index.d.ts","scripts":{"prepublishOnly":"tsc","compile":"ts-node src/logger.ts","lint":"tslint -c tslint.json 'src/**/*.ts'","start":"cd demo && npm install && npm run start","test":"nyc --reporter=html --reporter=text mocha","mocha":"mocha -r ts-node/register test/*/*.test.ts","coverage":"nyc report --reporter=text-lcov | coveralls","git:release":"git push origin && git push origin --tags","release:major":"changelog -M && npm run npm:release && npm version major && npm publish && npm run git:release","release:minor":"changelog -m && npm run npm:release && npm version minor && npm publish && npm run git:release","release:patch":"changelog -p && npm run npm:release && npm version patch && npm publish && npm run git:release","release:next":"npm version prerelease && npm run npm:next","npm:release":"git add . && git commit -m \"chore(repo): updated CHANGELOG.md\"","npm:next":"npm publish --tag next"},"nyc":{"include":["src/*.ts","src/**/*.ts"],"extension":[".ts"],"require":["ts-node/register"],"reporter":["text-summary","html"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","devDependencies":{"@types/chai":"^4.1.3","@types/mocha":"^2.2.48","chai":"^4.1.2","coveralls":"^3.0.1","generate-changelog":"^1.7.1","mocha":"^4.1.0","nyc":"^11.8.0","ts-node":"^4.1.0","tslint":"^5.10.0","tslint-config-standard":"^7.0.0","typescript":"^2.8.3","typings":"^2.1.1"},"dependencies":{},"readme":"# ClientLogger\n\n> Lightweight and configurable JavaScript logger (written on TypeScript)\n\n [![Build Status](https://travis-ci.org/splincodewd/client-logger.svg?branch=master)](https://travis-ci.org/splincodewd/client-logger)  [![npm version](https://badge.fury.io/js/%40splincode%2Fclient-logger.svg)](https://badge.fury.io/js/%40splincode%2Fclient-logger) [![npm version next](https://img.shields.io/npm/v/@splincode/client-logger/next.svg)](https://github.com/splincodewd/client-logger)  [![dependencies Status](https://david-dm.org/splincodewd/client-logger/status.svg)](https://david-dm.org/splincodewd/client-logger) [![Coverage Status](https://coveralls.io/repos/github/splincodewd/client-logger/badge.svg?branch=master)](https://coveralls.io/github/splincodewd/client-logger?branch=master) [![npm-stat](https://img.shields.io/npm/dt/@splincode/client-logger.svg)](https://npm-stat.com/charts.html?package=%40splincode%2Fclient-logger&from=2017-01-12)\n\n## Installation\n\n```bash\nnpm i @splincode/client-logger --save-dev\n```\n\n## Motivation\n\nThis logger is a handy tool that can be useful \nin the design and development of the enterprise application level.\nEasy setting of logging levels and convenient work with groups.\nAmong other things, you can use meta programming (decorators).\n\n## Usage\n\nYou could easily use this Logger in the browser. \nYou only need to install the package and import it in your scripts before assembly.\nTo see how to use the Logger please \n[follow the link](https://stackblitz.com/edit/typescript-m8n8tj?file=index.ts) \nor follow that's [link](https://splincodewd.github.io/client-logger).\n\nYou can also run the examples on webpack:\n\n```ts\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n```\n\n## Table of contents\n\n* [Logging](#)\n  * [Basic usage API `trace`, `debug`, `info`, `warn`. `error`](#example-basic-methods)\n  * [Groups, `groupCollapsed`, `collapsible`](#example-groups)\n  * [Nested groups (usage pipe method)](#example-nested-groups)\n  * [Set logging level (worked in single or groups)](#example-set-minimal-logging-level)\n  * [Customization style line](#example-set-style-line)\n  * [Customization global style line](#example-set-global-style-line)\n  * [Add css classes](#example-css-classes)\n  * [Output pretty json `stringify`](#example-pretty-json)\n  * [Copy `json, object, text` to clipboard](#example-clipboard)\n  * [Configuration `ClientLogger`](#example-full-configurations)\n* [Development](#development)\n* [Contributing](#contributing)\n* [Run Tests](#run-tests)\n* [Todo](#todo)\n\n## Logging\n\n![](https://habrastorage.org/webt/xi/ku/d9/xikud9fkxwng2ndu66f_c8yolag.gif)\n\n### Example: basic methods\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger.trace('trace is worked', 1, { a: 1 });\nlogger.debug('debug is worked', 2, console);\nlogger.info('info is worked', 3, Object);\nlogger.warn('warn is worked', 4, String);\nlogger.error('error is worked', 5, (2.55).toFixed());\n```\n\n* **Default level: All**\n\n![](https://habrastorage.org/webt/x-/bc/3b/x-bc3bztgftwzvamekuffrxcilq.png)\n\n* **Show time**\n\n![](https://habrastorage.org/webt/1i/lj/rh/1iljrhzeiw_3mvbaji5gcx2adnm.gif)\n\n* **Disable trace on console (filter):**\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nfor (let i = 0; i < 20; i++) {\n    logger.trace('trace is worked', i);\n}\n```\n\n![](https://habrastorage.org/webt/un/fl/81/unfl81h_wjnltr184of-vx1skio.gif)\n\n### Example: groups\n\n* **Logger groups with auto closed (usage callback):**\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger.groupCollapsed('EXAMPLE 2: show stack', () => {\n    logger.trace('trace is worked', 1, { a: 1 });\n    logger.debug('debug is worked', 2, console);\n    logger.info('info is worked', 3, Object);\n    logger.warn('warn is worked', 4, String);\n    logger.error('error is worked', 5, (2.55).toFixed());\n});\n\nlogger.group('Show trace in opened group', ({ trace }) => {\n    for (let i = 0; i < 20; i++) {\n        trace('trace is worked', i);\n    }\n});\n\nlogger.groupCollapsed('Show trace in collapsed group', ({ trace }) => {\n    for (let i = 0; i < 20; i++) {\n        trace('trace is worked', i);\n    }\n});\n```\n\n![](https://habrastorage.org/webt/zs/hv/fz/zshvfzrcslnsqo3dvyeiskrkwik.png)\n\n### Example: nested groups\n\n* **Logger nested groups (with pipe):**\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger\n    .groupCollapsed('GROUP TEST')\n    .pipe(({ trace, debug, info, warn, error }) => {\n        trace('trace is worked');\n        debug('debug is worked');\n        info('info is worked');\n        warn('warn is worked');\n        error('error is worked');\n    })\n    .close();\n\nlogger\n    .group('A')\n    .pipe(\n        ({ trace }) => trace('trace is worked'),\n        ({ debug }) => debug('debug is worked'),\n        ({ info }) => info('info is worked'),\n        ({ warn }) => warn('warn is worked'),\n        ({ error }) => error('error is worked')\n    )\n    .groupCollapsed('B')\n    .pipe(\n        ({ trace }) => trace('trace is worked'),\n        ({ debug }) => debug('debug is worked'),\n        ({ info }) => info('info is worked'),\n        ({ warn }) => warn('warn is worked'),\n        ({ error }) => error('error is worked')\n    )\n    .group('C')\n    .pipe(\n        ({ trace }) => trace('trace is worked'),\n        ({ debug }) => debug('debug is worked'),\n        ({ info }) => info('info is worked'),\n        ({ warn }) => warn('warn is worked'),\n        ({ error }) => error('error is worked')\n    )\n    .closeAll(); // closed all opened group\n```\n\n![](https://habrastorage.org/webt/77/vi/gm/77vigmltfbdmxhiruv8xgxwjdrg.gif)\n\n### Example: set minimal logging level\n\nBasic parameterization\n\n```typescript\nimport { ClientLogger, LoggerLevel } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger.trace.group('A opened', ({ trace }) => trace('trace group is worked'));\nlogger.debug.group('B opened', ({ debug }) => debug('debug group is worked'));\nlogger.info.group('C opened', ({ info }) => info('info group is worked'));\nlogger.warn.group('D opened', ({ warn }) =>  warn('warn group is worked'));\nlogger.error.group('E opened', ({ error }) => error('error group is worked'));\n\nconst level = LoggerLevel.INFO;\nlogger.log('Set new logger level', LoggerLevel[level]);\nlogger.level = level;\n\nlogger.trace.groupCollapsed('A collapsed', ({ trace }) => trace('trace group is worked'));\nlogger.debug.groupCollapsed('B collapsed', ({ debug }) => debug('debug group is worked'));\nlogger.info.groupCollapsed('C collapsed', ({ info }) => info('info group is worked'));\nlogger.warn.groupCollapsed('D collapsed', ({ warn }) => warn('warn group is worked'));\nlogger.error.groupCollapsed('E collapsed', ({ error }) => error('error group is worked'));\n\n```\n\n![](https://habrastorage.org/webt/bc/zc/dc/bczcdc_vicubrqr30jq3prg7no4.png)\n\n* **Logger level groups (pretty usage API):**\n\n```typescript\nimport { ClientLogger, LoggerLevel } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nconst level = LoggerLevel.INFO;\nlogger.log('Set new logger level', LoggerLevel[level]);\nlogger.level = level;\n\nlogger.trace.group('A')\n    .pipe(({ trace }) => trace('trace is worked from A'))\n    .pipe(({ debug }) => debug('debug is worked from A'))\n    .pipe(({ info }) => info('info is worked from A'))\n    .pipe(({ warn }) => warn('warn is worked from A'))\n    .pipe(({ error }) => error('error is worked from A'))\n    .close()\n\n    .debug.group('B')\n    .pipe(({ trace }) => trace('trace is worked from B'))\n    .pipe(({ debug }) => debug('debug is worked from B'))\n    .pipe(({ info }) => info('info is worked from B'))\n    .pipe(({ warn }) => warn('warn is worked from B'))\n    .pipe(({ error }) => error('error is worked from B'))\n    .close()\n\n    .info.group('C')\n    .pipe(({ trace }) => trace('trace is worked from C'))\n    .pipe(({ debug }) => debug('debug is worked from C'))\n    .pipe(({ info }) => info('info is worked from C'))\n    .pipe(({ warn }) => warn('warn is worked from C'))\n    .pipe(({ error }) => error('error is worked from C'))\n    .close()\n\n    .warn.group('D')\n    .pipe(({ trace }) => trace('trace is worked from D'))\n    .pipe(({ debug }) => debug('debug is worked from D'))\n    .pipe(({ info }) => info('info is worked from D'))\n    .pipe(({ warn }) => warn('warn is worked from D'))\n    .pipe(({ error }) => error('error is worked from D'))\n    .close()\n\n    .error.group('E')\n    .pipe(({ trace }) => trace('trace is worked from E'))\n    .pipe(({ debug }) => debug('debug is worked from E'))\n    .pipe(({ info }) => info('info is worked from E'))\n    .pipe(({ warn }) => warn('warn is worked from E'))\n    .pipe(({ error }) => error('error is worked from E'))\n    .close();\n\n```\n\n![](https://habrastorage.org/webt/ca/rb/ub/carbube17g4h42ye2fjcvstcw_c.png)\n\n### Example: set style line\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger\n    .css({ textTransform: 'uppercase', fontWeight: 'bold' })\n    .debug('window current ', window);\n\nlogger\n    .css('color: red; text-decoration: underline; font-weight: bold')\n    .info('It is awesome logger');\n\nlogger.warn('logger.css(...) does not define a global format!');\nlogger.info('For global configuration, use the constructor parameters');\n````\n\n![](https://habrastorage.org/webt/4s/co/wh/4scowhxaxdl8ikcmxpyjtko269m.png)\n\n### Example: set global style line\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger({\n    lineStyle: {\n        style: 'color: red; text-decoration: underline; font-weight: bold; font-size: 15px',\n        format: FormatLine.STRING\n    }\n});\n\nlogger\n    .css('font-weight: normal; text-decoration: none;', FormatLine.INT)\n    .info(3.14); // 3\n\nlogger\n    .css('font-weight: normal;', FormatLine.FLOAT)\n    .info(3.14); // 3.14\n\nlogger.warn('global format with style!');\n\n````\n\n![](https://habrastorage.org/webt/tt/mo/ki/ttmokit6fznu6-bce48wqsgmcys.png)\n\n### Example: CSS classes\n\n```ts\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger({\n    cssClassMap: {\n        'bold': 'font-weight: bold',\n        'line-through': 'text-decoration: line-through',\n        'code-sandbox': `\n            color: #666;\n            background: #f4f4f4;\n            border-left: 3px solid #f36d33;\n            font-family: monospace;\n            font-size: 15px;\n        `\n    }\n});\n\nlogger.cssClass('bold line-through')\n    .log('JavaScript sucks', 'JavaScript is the best');\n\nlogger.cssClass('code-sandbox').log(\n    '\\n   @Component({ .. })' +\n    '\\n   export class AppComponent { .. }    \\n\\n'\n);\n\nlogger.cssClass('bold line-through')\n    .debug('JavaScript sucks', 'JavaScript is the best');\n        \n```\n\n![](https://habrastorage.org/webt/wf/yr/jf/wfyrjfp5uv5ucbhhdmimlrcvazg.png)\n\n### Example: pretty json\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\nconst logger = new ClientLogger();\n\nfetch(\"http://data.io\").then((greatBigJSON) => {\n\n    // default browser print json\n    logger.debug(\"Classic output json\", greatBigJSON);\n    \n    // for pretty json usage logger.log method\n    logger.log(...logger.stringify(greatBigJSON));\n\n});\n```\n\n![](https://habrastorage.org/webt/zq/f9/wk/zqf9wkjej7gcpwmu-wa-nvpoosw.png)\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\nconst logger = new ClientLogger();\n\nfetch(\"http://data.io\").then((greatBigJSON) => {\n    \n    logger\n        .group('Classic output json:')\n        .pipe(({ debug }) => debug('Classic output json: ', greatBigJSON))\n        .close()\n        .group('Pretty output json:')\n        .pipe(({ log, stringify }) => log(...stringify(greatBigJSON)))\n        .close();\n    \n});\n```\n\n![](https://habrastorage.org/webt/cp/yo/no/cpyonombmaemgbpdsqjallxjhuq.png)\n\n### Example: clipboard\n\n```typescript\n\nimport { ClientLogger, LoggerLevel } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\nconst JsonValue = { a: 1, b: [1, 2, 3] };\n\nlogger.group('copy JSON', ({ log, stringify, clipboard }) => {\n    log(...stringify(clipboard.copy(JsonValue)));\n    log('The object you have on the clipboard ...');\n});\n\n````\n\n![](https://habrastorage.org/webt/nq/uo/0z/nquo0zs2_tbvpxkaut4eavh-qeq.gif)\n\n### Example: full configurations\n\n```typescript\nimport { ClientLogger, LoggerLevel } from '@splincode/client-logger';\nimport { MyConsole } from 'node_modules/custom-logger';\n// ..\n\nconst logger = new ClientLogger({\n\n    // Drop-in replacement for console, if needed\n    consoleInstance: <Console> new MyConsole(),\n    \n    // Minimal execute signature\n    minLevel: LoggerLevel.INFO,\n\n    // Custom color\n    configColor: {\n        [LoggerLevel.TRACE]: 'Grey',\n        [LoggerLevel.DEBUG]: 'Blue',\n        [LoggerLevel.INFO]: 'Green',\n        [LoggerLevel.WARN]: 'Orange',\n        [LoggerLevel.ERROR]: 'Red',\n    },\n\n    // Custom label\n    configLabel: {\n        [LoggerLevel.TRACE]: 'trace: ',\n        [LoggerLevel.DEBUG]: 'debug: ',\n        [LoggerLevel.INFO]: 'info: ',\n        [LoggerLevel.WARN]: 'warn: ',\n        [LoggerLevel.ERROR]: 'error: ',\n    }\n\n});\n\nlogger.trace('trace is worked', 1, { a: 1 }); // not execute\nlogger.debug('debug is worked', 2, console); // not execute\nlogger.info('info is worked', 3, Object);\nlogger.warn('warn is worked', 4, String);\nlogger.error('error is worked', 5, (2.55).toFixed());\n```\n\n## Development\nInstall the dependencies:\n\n```bash\nnpm install\n```\n\nRun the dev server\n\n```bash\nnpm start\n```\n\n## Contributing \nYour commit messages have to be in this format:\n\n```bash\ntype(category): description [flags]\n```\n\nWhere type is one of the following:\n* breaking\n* build\n* ci\n* chore\n* docs\n* feat\n* fix\n* other\n* perf\n* refactor\n* revert\n* style\n* test\n\n## Run Tests\nAll logger tests are written with mocha, chai.\n\n```bash\nnpm test\n```\n\n## Todo\n\n- [x] Override console\n- [x] Logger method (trace, debug, info, warning, error)\n- [x] Logger group + groupCollapsible (pipes)\n- [x] Logger pretty write object\n- [x] Set style by css\n- [x] Logger level groups (trace, debug, info, warn, error)\n- [x] Clipboard data\n- [x] Plugin system architecture (mixins)\n- [x] Set global style\n- [x] Added css classes\n- [ ] Format output console\n- [ ] Dependency Injection for Angular\n- [ ] Switch enable/disable default console output\n- [ ] Profiling (memory usage, sizeof, time execute)\n- [ ] Timers (decorator)\n- [ ] Pre process output\n- [ ] Cross-browser fixing\n\n## About\n\nAuthor: [Maxim Ivanov](https://github.com/splincode) <br>\n","readmeFilename":"README.md","gitHead":"31bfdb734a9bbc05557a96a9af1a115c6a496997","_id":"@splincode/client-logger@1.0.0-2","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-l3jqQYt4ehZBG5Yd2Y3Q6igC0FmTE4KBh6eWwADPyOxrcYBVZZUrX5Eanb8j41pTddzCJWumYWwiRce2mbrsoQ==","shasum":"11e3f64ccb10fcab3868447aeeefba1dd537ef70","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-1.0.0-2.tgz","fileCount":29,"unpackedSize":59720,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbBtYACRA9TVsSAnZWagAACCIP/idJU+vvYercuLnzRyif\nQ8gCD5FXYPJd4eCjoUGKosQ90tak311c5KpbY695oUj8PmwrjPiAujKknpRI\nSEEAQkdC+gvWzd9b7kFE5JtqksifWe1uIKJv0NbX+IWB8TH3qq8BeNC8WOtD\nsFbV/Y/u1eyAfo71WbZrFQBsmqyM8dIQqDqb8Yniqzm6xrO56ki67a7EPflv\n6XeMG6jNWkxd6MHKHjmN6OAy6EyzZIPsYgGwQv+rbqtRKe6HHMyGmG4n1lNg\nv70XmvDcg7j9lR1YRIrB7AY3gYJPpo8sP3mGgAOvdRTeNgIrVJ037krQ5Dvn\nXXvzNI7W3udpiWt7eZA+8eFjg3wBWJ/AT/gVeQc/PflBaYkNJAtpNGEczMOD\nkeCFQZNKf710tY5lLCluyg5S8t5KioDn9aW/4PXpn1TTHzFaNKsMSrZyNXlM\n3BXyOlFu4lzbVkwyLQLhzKMs/R2WhSh1pNkRndQ/1csIrLqH/GVC4qxA3g2/\nPzJ/alrpwEOqzkxknw9p9j1Kkifj5rpYUNNj4TV5fVEraD/QT6MomjQUjMU4\nPJ6WY1r0DA9aWsBUIuTAxhm5OTavEjSp1KiTz2Usp0ZRDQbh3oYOM4FWblHQ\ninFGDE8maAdsyeqHNkSWlSasWn3D2oK1mi8gMWvS2ITNFeB/zu8oKnLchoAQ\neZrK\r\n=OvOQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCgTwMFwch1fu4Ts5aQMFTmYAsacuPICX6dYT4GsBpZQAIhAODaOkfPdobXw9pf9qUj1B8ellNCiMyWb5xMm1RXLLNW"}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger_1.0.0-2_1527174656446_0.671129373340811"},"_hasShrinkwrap":false},"1.0.0-3":{"name":"@splincode/client-logger","version":"1.0.0-3","description":"Lightweight and configurable JavaScript logger (written on TypeScript)","main":"./lib/index.js","typings":"./lib/index.d.ts","scripts":{"prepublishOnly":"tsc","compile":"ts-node src/logger.ts","lint":"tslint -c tslint.json 'src/**/*.ts'","start":"cd demo && npm install && npm run start","test":"nyc --reporter=html --reporter=text mocha","mocha":"mocha -r ts-node/register test/*/*.test.ts","coverage":"nyc report --reporter=text-lcov | coveralls","git:release":"git push origin && git push origin --tags","release:major":"changelog -M && npm run npm:release && npm version major && npm publish && npm run git:release","release:minor":"changelog -m && npm run npm:release && npm version minor && npm publish && npm run git:release","release:patch":"changelog -p && npm run npm:release && npm version patch && npm publish && npm run git:release","release:next:major":"npm run npm:release && npm version premajor && npm run npm:next && npm run git:release","release:next":"npm run npm:release && npm version prerelease && npm run npm:next && npm run git:release","npm:release":"git add . && git commit -m \"chore(repo): updated CHANGELOG.md\"","npm:next":"npm publish --tag next"},"nyc":{"include":["src/*.ts","src/**/*.ts"],"extension":[".ts"],"require":["ts-node/register"],"reporter":["text-summary","html"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","devDependencies":{"@types/chai":"^4.1.3","@types/mocha":"^2.2.48","chai":"^4.1.2","coveralls":"^3.0.1","generate-changelog":"^1.7.1","mocha":"^4.1.0","nyc":"^11.8.0","ts-node":"^4.1.0","tslint":"^5.10.0","tslint-config-standard":"^7.0.0","typescript":"^2.8.3","typings":"^2.1.1"},"dependencies":{},"readme":"# ClientLogger\n\n> Lightweight and configurable JavaScript logger (written on TypeScript)\n\n [![Build Status](https://travis-ci.org/splincodewd/client-logger.svg?branch=master)](https://travis-ci.org/splincodewd/client-logger)  [![npm version](https://badge.fury.io/js/%40splincode%2Fclient-logger.svg)](https://badge.fury.io/js/%40splincode%2Fclient-logger) [![npm version next](https://img.shields.io/npm/v/@splincode/client-logger/next.svg)](https://github.com/splincodewd/client-logger)  [![dependencies Status](https://david-dm.org/splincodewd/client-logger/status.svg)](https://david-dm.org/splincodewd/client-logger) [![Coverage Status](https://coveralls.io/repos/github/splincodewd/client-logger/badge.svg?branch=master)](https://coveralls.io/github/splincodewd/client-logger?branch=master) [![npm-stat](https://img.shields.io/npm/dt/@splincode/client-logger.svg)](https://npm-stat.com/charts.html?package=%40splincode%2Fclient-logger&from=2017-01-12)\n\n## Installation\n\n```bash\nnpm i @splincode/client-logger --save-dev\n```\n\n## Motivation\n\nThis logger is a handy tool that can be useful \nin the design and development of the enterprise application level.\nEasy setting of logging levels and convenient work with groups.\nAmong other things, you can use meta programming (decorators).\n\n## Usage\n\nYou could easily use this Logger in the browser. \nYou only need to install the package and import it in your scripts before assembly.\nTo see how to use the Logger please \n[follow the link](https://stackblitz.com/edit/typescript-m8n8tj?file=index.ts) \nor follow that's [link](https://splincodewd.github.io/client-logger).\n\nYou can also run the examples on webpack:\n\n```ts\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n```\n\n## Table of contents\n\n* [Logging](#)\n  * [Basic usage API `trace`, `debug`, `info`, `warn`. `error`](#example-basic-methods)\n  * [Groups, `groupCollapsed`, `collapsible`](#example-groups)\n  * [Nested groups (usage pipe method)](#example-nested-groups)\n  * [Set logging level (worked in single or groups)](#example-set-minimal-logging-level)\n  * [Customization style line](#example-set-style-line)\n  * [Customization global style line](#example-set-global-style-line)\n  * [Add css classes](#example-css-classes)\n  * [Output pretty json `stringify`](#example-pretty-json)\n  * [Copy `json, object, text` to clipboard](#example-clipboard)\n  * [Configuration `ClientLogger`](#example-full-configurations)\n* [Development](#development)\n* [Contributing](#contributing)\n* [Run Tests](#run-tests)\n* [Todo](#todo)\n\n## Logging\n\n![](https://habrastorage.org/webt/xi/ku/d9/xikud9fkxwng2ndu66f_c8yolag.gif)\n\n### Example: basic methods\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger.trace('trace is worked', 1, { a: 1 });\nlogger.debug('debug is worked', 2, console);\nlogger.info('info is worked', 3, Object);\nlogger.warn('warn is worked', 4, String);\nlogger.error('error is worked', 5, (2.55).toFixed());\n```\n\n* **Default level: All**\n\n![](https://habrastorage.org/webt/x-/bc/3b/x-bc3bztgftwzvamekuffrxcilq.png)\n\n* **Show time**\n\n![](https://habrastorage.org/webt/1i/lj/rh/1iljrhzeiw_3mvbaji5gcx2adnm.gif)\n\n* **Disable trace on console (filter):**\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nfor (let i = 0; i < 20; i++) {\n    logger.trace('trace is worked', i);\n}\n```\n\n![](https://habrastorage.org/webt/un/fl/81/unfl81h_wjnltr184of-vx1skio.gif)\n\n### Example: groups\n\n* **Logger groups with auto closed (usage callback):**\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger.groupCollapsed('EXAMPLE 2: show stack', () => {\n    logger.trace('trace is worked', 1, { a: 1 });\n    logger.debug('debug is worked', 2, console);\n    logger.info('info is worked', 3, Object);\n    logger.warn('warn is worked', 4, String);\n    logger.error('error is worked', 5, (2.55).toFixed());\n});\n\nlogger.group('Show trace in opened group', ({ trace }) => {\n    for (let i = 0; i < 20; i++) {\n        trace('trace is worked', i);\n    }\n});\n\nlogger.groupCollapsed('Show trace in collapsed group', ({ trace }) => {\n    for (let i = 0; i < 20; i++) {\n        trace('trace is worked', i);\n    }\n});\n```\n\n![](https://habrastorage.org/webt/zs/hv/fz/zshvfzrcslnsqo3dvyeiskrkwik.png)\n\n### Example: nested groups\n\n* **Logger nested groups (with pipe):**\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger\n    .groupCollapsed('GROUP TEST')\n    .pipe(({ trace, debug, info, warn, error }) => {\n        trace('trace is worked');\n        debug('debug is worked');\n        info('info is worked');\n        warn('warn is worked');\n        error('error is worked');\n    })\n    .close();\n\nlogger\n    .group('A')\n    .pipe(\n        ({ trace }) => trace('trace is worked'),\n        ({ debug }) => debug('debug is worked'),\n        ({ info }) => info('info is worked'),\n        ({ warn }) => warn('warn is worked'),\n        ({ error }) => error('error is worked')\n    )\n    .groupCollapsed('B')\n    .pipe(\n        ({ trace }) => trace('trace is worked'),\n        ({ debug }) => debug('debug is worked'),\n        ({ info }) => info('info is worked'),\n        ({ warn }) => warn('warn is worked'),\n        ({ error }) => error('error is worked')\n    )\n    .group('C')\n    .pipe(\n        ({ trace }) => trace('trace is worked'),\n        ({ debug }) => debug('debug is worked'),\n        ({ info }) => info('info is worked'),\n        ({ warn }) => warn('warn is worked'),\n        ({ error }) => error('error is worked')\n    )\n    .closeAll(); // closed all opened group\n```\n\n![](https://habrastorage.org/webt/77/vi/gm/77vigmltfbdmxhiruv8xgxwjdrg.gif)\n\n### Example: set minimal logging level\n\nBasic parameterization\n\n```typescript\nimport { ClientLogger, LoggerLevel } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger.trace.group('A opened', ({ trace }) => trace('trace group is worked'));\nlogger.debug.group('B opened', ({ debug }) => debug('debug group is worked'));\nlogger.info.group('C opened', ({ info }) => info('info group is worked'));\nlogger.warn.group('D opened', ({ warn }) =>  warn('warn group is worked'));\nlogger.error.group('E opened', ({ error }) => error('error group is worked'));\n\nconst level = LoggerLevel.INFO;\nlogger.log('Set new logger level', LoggerLevel[level]);\nlogger.level = level;\n\nlogger.trace.groupCollapsed('A collapsed', ({ trace }) => trace('trace group is worked'));\nlogger.debug.groupCollapsed('B collapsed', ({ debug }) => debug('debug group is worked'));\nlogger.info.groupCollapsed('C collapsed', ({ info }) => info('info group is worked'));\nlogger.warn.groupCollapsed('D collapsed', ({ warn }) => warn('warn group is worked'));\nlogger.error.groupCollapsed('E collapsed', ({ error }) => error('error group is worked'));\n\n```\n\n![](https://habrastorage.org/webt/bc/zc/dc/bczcdc_vicubrqr30jq3prg7no4.png)\n\n* **Logger level groups (pretty usage API):**\n\n```typescript\nimport { ClientLogger, LoggerLevel } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nconst level = LoggerLevel.INFO;\nlogger.log('Set new logger level', LoggerLevel[level]);\nlogger.level = level;\n\nlogger.trace.group('A')\n    .pipe(({ trace }) => trace('trace is worked from A'))\n    .pipe(({ debug }) => debug('debug is worked from A'))\n    .pipe(({ info }) => info('info is worked from A'))\n    .pipe(({ warn }) => warn('warn is worked from A'))\n    .pipe(({ error }) => error('error is worked from A'))\n    .close()\n\n    .debug.group('B')\n    .pipe(({ trace }) => trace('trace is worked from B'))\n    .pipe(({ debug }) => debug('debug is worked from B'))\n    .pipe(({ info }) => info('info is worked from B'))\n    .pipe(({ warn }) => warn('warn is worked from B'))\n    .pipe(({ error }) => error('error is worked from B'))\n    .close()\n\n    .info.group('C')\n    .pipe(({ trace }) => trace('trace is worked from C'))\n    .pipe(({ debug }) => debug('debug is worked from C'))\n    .pipe(({ info }) => info('info is worked from C'))\n    .pipe(({ warn }) => warn('warn is worked from C'))\n    .pipe(({ error }) => error('error is worked from C'))\n    .close()\n\n    .warn.group('D')\n    .pipe(({ trace }) => trace('trace is worked from D'))\n    .pipe(({ debug }) => debug('debug is worked from D'))\n    .pipe(({ info }) => info('info is worked from D'))\n    .pipe(({ warn }) => warn('warn is worked from D'))\n    .pipe(({ error }) => error('error is worked from D'))\n    .close()\n\n    .error.group('E')\n    .pipe(({ trace }) => trace('trace is worked from E'))\n    .pipe(({ debug }) => debug('debug is worked from E'))\n    .pipe(({ info }) => info('info is worked from E'))\n    .pipe(({ warn }) => warn('warn is worked from E'))\n    .pipe(({ error }) => error('error is worked from E'))\n    .close();\n\n```\n\n![](https://habrastorage.org/webt/ca/rb/ub/carbube17g4h42ye2fjcvstcw_c.png)\n\n### Example: set style line\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger\n    .css({ textTransform: 'uppercase', fontWeight: 'bold' })\n    .debug('window current ', window);\n\nlogger\n    .css('color: red; text-decoration: underline; font-weight: bold')\n    .info('It is awesome logger');\n\nlogger.warn('logger.css(...) does not define a global format!');\nlogger.info('For global configuration, use the constructor parameters');\n````\n\n![](https://habrastorage.org/webt/4s/co/wh/4scowhxaxdl8ikcmxpyjtko269m.png)\n\n### Example: set global style line\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger({\n    lineStyle: {\n        style: 'color: red; text-decoration: underline; font-weight: bold; font-size: 15px',\n        format: FormatLine.STRING\n    }\n});\n\nlogger\n    .css('font-weight: normal; text-decoration: none;', FormatLine.INT)\n    .info(3.14); // 3\n\nlogger\n    .css('font-weight: normal;', FormatLine.FLOAT)\n    .info(3.14); // 3.14\n\nlogger.warn('global format with style!');\n\n````\n\n![](https://habrastorage.org/webt/tt/mo/ki/ttmokit6fznu6-bce48wqsgmcys.png)\n\n### Example: CSS classes\n\n```ts\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger({\n    cssClassMap: {\n        'bold': 'font-weight: bold',\n        'line-through': 'text-decoration: line-through',\n        'code-sandbox': `\n            color: #666;\n            background: #f4f4f4;\n            border-left: 3px solid #f36d33;\n            font-family: monospace;\n            font-size: 15px;\n        `\n    }\n});\n\nlogger.cssClass('bold line-through')\n    .log('JavaScript sucks', 'JavaScript is the best');\n\nlogger.cssClass('code-sandbox').log(\n    '\\n   @Component({ .. })' +\n    '\\n   export class AppComponent { .. }    \\n\\n'\n);\n\nlogger.cssClass('bold line-through')\n    .debug('JavaScript sucks', 'JavaScript is the best');\n        \n```\n\n![](https://habrastorage.org/webt/wf/yr/jf/wfyrjfp5uv5ucbhhdmimlrcvazg.png)\n\n### Example: pretty json\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\nconst logger = new ClientLogger();\n\nfetch(\"http://data.io\").then((greatBigJSON) => {\n\n    // default browser print json\n    logger.debug(\"Classic output json\", greatBigJSON);\n    \n    // for pretty json usage logger.log method\n    logger.log(...logger.stringify(greatBigJSON));\n\n});\n```\n\n![](https://habrastorage.org/webt/zq/f9/wk/zqf9wkjej7gcpwmu-wa-nvpoosw.png)\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\nconst logger = new ClientLogger();\n\nfetch(\"http://data.io\").then((greatBigJSON) => {\n    \n    logger\n        .group('Classic output json:')\n        .pipe(({ debug }) => debug('Classic output json: ', greatBigJSON))\n        .close()\n        .group('Pretty output json:')\n        .pipe(({ log, stringify }) => log(...stringify(greatBigJSON)))\n        .close();\n    \n});\n```\n\n![](https://habrastorage.org/webt/cp/yo/no/cpyonombmaemgbpdsqjallxjhuq.png)\n\n### Example: clipboard\n\n```typescript\n\nimport { ClientLogger, LoggerLevel } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\nconst JsonValue = { a: 1, b: [1, 2, 3] };\n\nlogger.group('copy JSON', ({ log, stringify, clipboard }) => {\n    log(...stringify(clipboard.copy(JsonValue)));\n    log('The object you have on the clipboard ...');\n});\n\n````\n\n![](https://habrastorage.org/webt/nq/uo/0z/nquo0zs2_tbvpxkaut4eavh-qeq.gif)\n\n### Example: full configurations\n\n```typescript\nimport { ClientLogger, LoggerLevel } from '@splincode/client-logger';\nimport { MyConsole } from 'node_modules/custom-logger';\n// ..\n\nconst logger = new ClientLogger({\n\n    // Drop-in replacement for console, if needed\n    consoleInstance: <Console> new MyConsole(),\n    \n    // Minimal execute signature\n    minLevel: LoggerLevel.INFO,\n\n    // Custom color\n    configColor: {\n        [LoggerLevel.TRACE]: 'Grey',\n        [LoggerLevel.DEBUG]: 'Blue',\n        [LoggerLevel.INFO]: 'Green',\n        [LoggerLevel.WARN]: 'Orange',\n        [LoggerLevel.ERROR]: 'Red',\n    },\n\n    // Custom label\n    configLabel: {\n        [LoggerLevel.TRACE]: 'trace: ',\n        [LoggerLevel.DEBUG]: 'debug: ',\n        [LoggerLevel.INFO]: 'info: ',\n        [LoggerLevel.WARN]: 'warn: ',\n        [LoggerLevel.ERROR]: 'error: ',\n    }\n\n});\n\nlogger.trace('trace is worked', 1, { a: 1 }); // not execute\nlogger.debug('debug is worked', 2, console); // not execute\nlogger.info('info is worked', 3, Object);\nlogger.warn('warn is worked', 4, String);\nlogger.error('error is worked', 5, (2.55).toFixed());\n```\n\n## Development\nInstall the dependencies:\n\n```bash\nnpm install\n```\n\nRun the dev server\n\n```bash\nnpm start\n```\n\n## Contributing \nYour commit messages have to be in this format:\n\n```bash\ntype(category): description [flags]\n```\n\nWhere type is one of the following:\n* breaking\n* build\n* ci\n* chore\n* docs\n* feat\n* fix\n* other\n* perf\n* refactor\n* revert\n* style\n* test\n\n## Run Tests\nAll logger tests are written with mocha, chai.\n\n```bash\nnpm test\n```\n\n## Todo\n\n- [x] Override console\n- [x] Logger method (trace, debug, info, warning, error)\n- [x] Logger group + groupCollapsible (pipes)\n- [x] Logger pretty write object\n- [x] Set style by css\n- [x] Logger level groups (trace, debug, info, warn, error)\n- [x] Clipboard data\n- [x] Plugin system architecture (mixins)\n- [x] Set global style\n- [x] Added css classes\n- [ ] Format output console\n- [ ] Dependency Injection for Angular\n- [ ] Switch enable/disable default console output\n- [ ] Profiling (memory usage, sizeof, time execute)\n- [ ] Timers (decorator)\n- [ ] Pre process output\n- [ ] Cross-browser fixing\n\n## About\n\nAuthor: [Maxim Ivanov](https://github.com/splincode) <br>\n","readmeFilename":"README.md","gitHead":"dbe128cc953fc56f00124ba269ec692ccabe9c1f","_id":"@splincode/client-logger@1.0.0-3","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-z8YQEBWUIIU8N1K1evSCKdoXf54GwDt6wGh+YpbQEl9Vo/0fchVxBj3dROO8TmOMOQexV+lYfJGDE/Srr93Y3w==","shasum":"4ae5e0026b2c4e221e39c61fbd5e8884db9b391c","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-1.0.0-3.tgz","fileCount":29,"unpackedSize":59886,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbBtgSCRA9TVsSAnZWagAA3P4QAI4bSJY8JuNv1vuhVCBU\nDX0XVdudZLQdxldhuQxssl1v4TNeAf1dngf7OwMIX0Xp1xCnze0XsY7l5PR9\nWXtIlubtKP5+Ffzs1MKIGrZ9qDf4Ph6M7wO24WllGMSOdKGgoq8hmykIKzbK\nfXZTSUMkFxZH//zvWuJAkrtbF+hkF0gNlATANP7PYVMlDP03RgyHHZzf0HeY\n87kWkc7u339Rzp+ln6DTdC/VfSjir9nkO/YjtSgJlcCIRirfwnzvj6q17Tkt\nvNuVJZcbMjtYmEfisT12GDf3g4P0wk33SHiNr5QU3D9ly0VuLhhcFLlAnypW\no8WIitbe69gCDnnZWMBtzCT6+BKn6jEF06WByoHZw6NNafS8iAZj7joX2YFP\nz/heGzTYaYcLKf9wnzW5I8D822kzXO9UaCovKGKSk+kCOcR8taBIjjM6EO1s\nIztiEU6miovmqc7gdhJ7QTkvq2gYYFfnLzx8Ae2HeH5uQgFoSGN6PrZjjQO9\n/bwsIsyWrhhZl8Tezg3/7fbornj7Qt4XtV/Fm7oZHTwDscxaXSEGKaF8MKL/\nfYx1/BH4JRfAJPDKP+R3QonVoOigz7S7fHig/QYaZ4n4LqAoLj+Kz/YvwHkm\nPBXfrU9XKXWszyKSjngQEKHKU4ipCSAffJQqJJO1t+DkRo/Fiihr4alILnCa\ncCXp\r\n=EKZb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID9oxVHtyrJKY5mIH+bDfffBp+57MGQU7vAsX7cRVj23AiEAxou5+98fss1InE5Nv86941B0pdMfnnoi8LfJmxHKHCM="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger_1.0.0-3_1527175185711_0.8918333215128227"},"_hasShrinkwrap":false},"1.0.0-4":{"name":"@splincode/client-logger","version":"1.0.0-4","description":"Lightweight and configurable JavaScript logger (written on TypeScript)","main":"./lib/index.js","typings":"./lib/index.d.ts","scripts":{"prepublishOnly":"tsc","lint":"tslint -c tslint.json 'src/**/*.ts'","start":"tsc && concurrently \"tsc -w\" \"npm run demo:serve\"","demo:serve":"cd demo && npm install && npm run start","test":"nyc --reporter=html --reporter=text mocha --opts ./mocha.opts","coverage":"nyc report --reporter=text-lcov | coveralls","git:release":"git push origin && git push origin --tags","release:major":"changelog -M && npm run npm:release && npm version major && npm publish && npm run git:release","release:minor":"changelog -m && npm run npm:release && npm version minor && npm publish && npm run git:release","release:patch":"changelog -p && npm run npm:release && npm version patch && npm publish && npm run git:release","release:next:major":"npm run npm:release && npm version premajor && npm run npm:next && npm run git:release","release:next":"npm run npm:release && npm version prerelease && npm run npm:next && npm run git:release","npm:release":"git add . && git commit -m \"chore(repo): updated CHANGELOG.md\"","npm:next":"npm publish --tag next"},"nyc":{"include":["src/*.ts","src/**/*.ts"],"extension":[".ts"],"require":["ts-node/register"],"reporter":["text-summary","html"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","devDependencies":{"benchmark":"^2.1.4","chai":"^4.1.2","coveralls":"^3.0.1","generate-changelog":"^1.7.1","mocha":"^4.1.0","nyc":"^11.8.0","ts-node":"^4.1.0","tslint":"^5.10.0","tslint-config-standard":"^7.0.0","typescript":"^2.8.3"},"dependencies":{"concurrently":"^3.6.0"},"readme":"# ClientLogger\n\n> Lightweight and configurable JavaScript logger (written on TypeScript)\n\n [![Build Status](https://travis-ci.org/splincodewd/client-logger.svg?branch=master)](https://travis-ci.org/splincodewd/client-logger)  [![npm version](https://badge.fury.io/js/%40splincode%2Fclient-logger.svg)](https://badge.fury.io/js/%40splincode%2Fclient-logger) [![npm version next](https://img.shields.io/npm/v/@splincode/client-logger/next.svg)](https://www.npmjs.com/package/@splincode/client-logger/v/next)  [![dependencies Status](https://david-dm.org/splincodewd/client-logger/status.svg)](https://david-dm.org/splincodewd/client-logger) [![Coverage Status](https://coveralls.io/repos/github/splincodewd/client-logger/badge.svg?branch=master)](https://coveralls.io/github/splincodewd/client-logger?branch=master) [![npm-stat](https://img.shields.io/npm/dt/@splincode/client-logger.svg)](https://npm-stat.com/charts.html?package=%40splincode%2Fclient-logger&from=2017-01-12)\n\n## Installation\n\n```bash\nnpm i @splincode/client-logger --save-dev\n```\n\n## Motivation\n\nThis logger is a handy tool that can be useful \nin the design and development of the enterprise application level.\nEasy setting of logging levels and convenient work with groups.\nAmong other things, you can use meta programming (decorators).\n\n## Usage\n\nYou could easily use this Logger in the browser. \nYou only need to install the package and import it in your scripts before assembly.\nTo see how to use the Logger please \n[follow the link](https://stackblitz.com/edit/typescript-m8n8tj?file=index.ts) \nor follow that's [link](https://splincodewd.github.io/client-logger).\n\nYou can also run the examples on webpack:\n\n```ts\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n```\n\n## Table of contents\n\n* [Logging](#)\n  * [Basic usage API `trace`, `debug`, `info`, `warn`. `error`](#example-basic-methods)\n  * [Groups, `groupCollapsed`, `collapsible`](#example-groups)\n  * [Nested groups (usage pipe method)](#example-nested-groups)\n  * [Set logging level (worked in single or groups)](#example-set-minimal-logging-level)\n  * [Customization style line](#example-set-style-line)\n  * [Customization global style line](#example-set-global-style-line)\n  * [Add css classes](#example-css-classes)\n  * [Output pretty json `stringify`](#example-pretty-json)\n  * [Copy `json, object, text` to clipboard](#example-clipboard)\n  * [Configuration `ClientLogger`](#example-full-configurations)\n* [Development](#development)\n* [Contributing](#contributing)\n* [Run Tests](#run-tests)\n* [Todo](#todo)\n\n## Logging\n\n![](https://habrastorage.org/webt/xi/ku/d9/xikud9fkxwng2ndu66f_c8yolag.gif)\n\n### Example: basic methods\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger.trace('trace is worked', 1, { a: 1 });\nlogger.debug('debug is worked', 2, console);\nlogger.info('info is worked', 3, Object);\nlogger.warn('warn is worked', 4, String);\nlogger.error('error is worked', 5, (2.55).toFixed());\n```\n\n* **Default level: All**\n\n![](https://habrastorage.org/webt/x-/bc/3b/x-bc3bztgftwzvamekuffrxcilq.png)\n\n* **Show time**\n\n![](https://habrastorage.org/webt/1i/lj/rh/1iljrhzeiw_3mvbaji5gcx2adnm.gif)\n\n* **Disable trace on console (filter):**\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nfor (let i = 0; i < 20; i++) {\n    logger.trace('trace is worked', i);\n}\n```\n\n![](https://habrastorage.org/webt/un/fl/81/unfl81h_wjnltr184of-vx1skio.gif)\n\n### Example: groups\n\n* **Logger groups with auto closed (usage callback):**\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger.groupCollapsed('EXAMPLE 2: show stack', () => {\n    logger.trace('trace is worked', 1, { a: 1 });\n    logger.debug('debug is worked', 2, console);\n    logger.info('info is worked', 3, Object);\n    logger.warn('warn is worked', 4, String);\n    logger.error('error is worked', 5, (2.55).toFixed());\n});\n\nlogger.group('Show trace in opened group', ({ trace }) => {\n    for (let i = 0; i < 20; i++) {\n        trace('trace is worked', i);\n    }\n});\n\nlogger.groupCollapsed('Show trace in collapsed group', ({ trace }) => {\n    for (let i = 0; i < 20; i++) {\n        trace('trace is worked', i);\n    }\n});\n```\n\n![](https://habrastorage.org/webt/zs/hv/fz/zshvfzrcslnsqo3dvyeiskrkwik.png)\n\n### Example: nested groups\n\n* **Logger nested groups (with pipe):**\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger\n    .groupCollapsed('GROUP TEST')\n    .pipe(({ trace, debug, info, warn, error }) => {\n        trace('trace is worked');\n        debug('debug is worked');\n        info('info is worked');\n        warn('warn is worked');\n        error('error is worked');\n    })\n    .close();\n\nlogger\n    .group('A')\n    .pipe(\n        ({ trace }) => trace('trace is worked'),\n        ({ debug }) => debug('debug is worked'),\n        ({ info }) => info('info is worked'),\n        ({ warn }) => warn('warn is worked'),\n        ({ error }) => error('error is worked')\n    )\n    .groupCollapsed('B')\n    .pipe(\n        ({ trace }) => trace('trace is worked'),\n        ({ debug }) => debug('debug is worked'),\n        ({ info }) => info('info is worked'),\n        ({ warn }) => warn('warn is worked'),\n        ({ error }) => error('error is worked')\n    )\n    .group('C')\n    .pipe(\n        ({ trace }) => trace('trace is worked'),\n        ({ debug }) => debug('debug is worked'),\n        ({ info }) => info('info is worked'),\n        ({ warn }) => warn('warn is worked'),\n        ({ error }) => error('error is worked')\n    )\n    .closeAll(); // closed all opened group\n```\n\n![](https://habrastorage.org/webt/77/vi/gm/77vigmltfbdmxhiruv8xgxwjdrg.gif)\n\n### Example: set minimal logging level\n\nBasic parameterization\n\n```typescript\nimport { ClientLogger, LoggerLevel } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger.trace.group('A opened', ({ trace }) => trace('trace group is worked'));\nlogger.debug.group('B opened', ({ debug }) => debug('debug group is worked'));\nlogger.info.group('C opened', ({ info }) => info('info group is worked'));\nlogger.warn.group('D opened', ({ warn }) =>  warn('warn group is worked'));\nlogger.error.group('E opened', ({ error }) => error('error group is worked'));\n\nconst level = LoggerLevel.INFO;\nlogger.log('Set new logger level', LoggerLevel[level]);\nlogger.level = level;\n\nlogger.trace.groupCollapsed('A collapsed', ({ trace }) => trace('trace group is worked'));\nlogger.debug.groupCollapsed('B collapsed', ({ debug }) => debug('debug group is worked'));\nlogger.info.groupCollapsed('C collapsed', ({ info }) => info('info group is worked'));\nlogger.warn.groupCollapsed('D collapsed', ({ warn }) => warn('warn group is worked'));\nlogger.error.groupCollapsed('E collapsed', ({ error }) => error('error group is worked'));\n\n```\n\n![](https://habrastorage.org/webt/bc/zc/dc/bczcdc_vicubrqr30jq3prg7no4.png)\n\n* **Logger level groups (pretty usage API):**\n\n```typescript\nimport { ClientLogger, LoggerLevel } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nconst level = LoggerLevel.INFO;\nlogger.log('Set new logger level', LoggerLevel[level]);\nlogger.level = level;\n\nlogger.trace.group('A')\n    .pipe(({ trace }) => trace('trace is worked from A'))\n    .pipe(({ debug }) => debug('debug is worked from A'))\n    .pipe(({ info }) => info('info is worked from A'))\n    .pipe(({ warn }) => warn('warn is worked from A'))\n    .pipe(({ error }) => error('error is worked from A'))\n    .close()\n\n    .debug.group('B')\n    .pipe(({ trace }) => trace('trace is worked from B'))\n    .pipe(({ debug }) => debug('debug is worked from B'))\n    .pipe(({ info }) => info('info is worked from B'))\n    .pipe(({ warn }) => warn('warn is worked from B'))\n    .pipe(({ error }) => error('error is worked from B'))\n    .close()\n\n    .info.group('C')\n    .pipe(({ trace }) => trace('trace is worked from C'))\n    .pipe(({ debug }) => debug('debug is worked from C'))\n    .pipe(({ info }) => info('info is worked from C'))\n    .pipe(({ warn }) => warn('warn is worked from C'))\n    .pipe(({ error }) => error('error is worked from C'))\n    .close()\n\n    .warn.group('D')\n    .pipe(({ trace }) => trace('trace is worked from D'))\n    .pipe(({ debug }) => debug('debug is worked from D'))\n    .pipe(({ info }) => info('info is worked from D'))\n    .pipe(({ warn }) => warn('warn is worked from D'))\n    .pipe(({ error }) => error('error is worked from D'))\n    .close()\n\n    .error.group('E')\n    .pipe(({ trace }) => trace('trace is worked from E'))\n    .pipe(({ debug }) => debug('debug is worked from E'))\n    .pipe(({ info }) => info('info is worked from E'))\n    .pipe(({ warn }) => warn('warn is worked from E'))\n    .pipe(({ error }) => error('error is worked from E'))\n    .close();\n\n```\n\n![](https://habrastorage.org/webt/ca/rb/ub/carbube17g4h42ye2fjcvstcw_c.png)\n\n### Example: set style line\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger\n    .css({ textTransform: 'uppercase', fontWeight: 'bold' })\n    .debug('window current ', window);\n\nlogger\n    .css('color: red; text-decoration: underline; font-weight: bold')\n    .info('It is awesome logger');\n\nlogger.warn('logger.css(...) does not define a global format!');\nlogger.info('For global configuration, use the constructor parameters');\n````\n\n![](https://habrastorage.org/webt/4s/co/wh/4scowhxaxdl8ikcmxpyjtko269m.png)\n\n### Example: set global style line\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger({\n    lineStyle: {\n        style: 'color: red; text-decoration: underline; font-weight: bold; font-size: 15px',\n        format: FormatLine.STRING\n    }\n});\n\nlogger\n    .css('font-weight: normal; text-decoration: none;', FormatLine.INT)\n    .info(3.14); // 3\n\nlogger\n    .css('font-weight: normal;', FormatLine.FLOAT)\n    .info(3.14); // 3.14\n\nlogger.warn('global format with style!');\n\n````\n\n![](https://habrastorage.org/webt/tt/mo/ki/ttmokit6fznu6-bce48wqsgmcys.png)\n\n### Example: CSS classes\n\n```ts\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger({\n    cssClassMap: {\n        'bold': 'font-weight: bold',\n        'line-through': 'text-decoration: line-through',\n        'code-sandbox': `\n            color: #666;\n            background: #f4f4f4;\n            border-left: 3px solid #f36d33;\n            font-family: monospace;\n            font-size: 15px;\n        `\n    }\n});\n\nlogger.cssClass('bold line-through')\n    .log('JavaScript sucks', 'JavaScript is the best');\n\nlogger.cssClass('code-sandbox').log(\n    '\\n   @Component({ .. })' +\n    '\\n   export class AppComponent { .. }    \\n\\n'\n);\n\nlogger.cssClass('bold line-through')\n    .debug('JavaScript sucks', 'JavaScript is the best');\n        \n```\n\n![](https://habrastorage.org/webt/wf/yr/jf/wfyrjfp5uv5ucbhhdmimlrcvazg.png)\n\n### Example: pretty json\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\nconst logger = new ClientLogger();\n\nfetch(\"http://data.io\").then((greatBigJSON) => {\n\n    // default browser print json\n    logger.debug(\"Classic output json\", greatBigJSON);\n    \n    // for pretty json usage logger.log method\n    logger.log(...logger.stringify(greatBigJSON));\n\n});\n```\n\n![](https://habrastorage.org/webt/zq/f9/wk/zqf9wkjej7gcpwmu-wa-nvpoosw.png)\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\nconst logger = new ClientLogger();\n\nfetch(\"http://data.io\").then((greatBigJSON) => {\n    \n    logger\n        .group('Classic output json:')\n        .pipe(({ debug }) => debug('Classic output json: ', greatBigJSON))\n        .close()\n        .group('Pretty output json:')\n        .pipe(({ log, stringify }) => log(...stringify(greatBigJSON)))\n        .close();\n    \n});\n```\n\n![](https://habrastorage.org/webt/cp/yo/no/cpyonombmaemgbpdsqjallxjhuq.png)\n\n### Example: clipboard\n\n```typescript\n\nimport { ClientLogger, LoggerLevel } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\nconst JsonValue = { a: 1, b: [1, 2, 3] };\n\nlogger.group('copy JSON', ({ log, stringify, clipboard }) => {\n    log(...stringify(clipboard.copy(JsonValue)));\n    log('The object you have on the clipboard ...');\n});\n\n````\n\n![](https://habrastorage.org/webt/nq/uo/0z/nquo0zs2_tbvpxkaut4eavh-qeq.gif)\n\n### Example: full configurations\n\n```typescript\nimport { ClientLogger, LoggerLevel } from '@splincode/client-logger';\nimport { MyConsole } from 'node_modules/custom-logger';\n// ..\n\nconst logger = new ClientLogger({\n\n    // Drop-in replacement for console, if needed\n    consoleInstance: <Console> new MyConsole(),\n    \n    // Minimal execute signature\n    minLevel: LoggerLevel.INFO,\n\n    // Custom color\n    configColor: {\n        [LoggerLevel.TRACE]: 'Grey',\n        [LoggerLevel.DEBUG]: 'Blue',\n        [LoggerLevel.INFO]: 'Green',\n        [LoggerLevel.WARN]: 'Orange',\n        [LoggerLevel.ERROR]: 'Red',\n    },\n\n    // Custom label\n    configLabel: {\n        [LoggerLevel.TRACE]: 'trace: ',\n        [LoggerLevel.DEBUG]: 'debug: ',\n        [LoggerLevel.INFO]: 'info: ',\n        [LoggerLevel.WARN]: 'warn: ',\n        [LoggerLevel.ERROR]: 'error: ',\n    }\n\n});\n\nlogger.trace('trace is worked', 1, { a: 1 }); // not execute\nlogger.debug('debug is worked', 2, console); // not execute\nlogger.info('info is worked', 3, Object);\nlogger.warn('warn is worked', 4, String);\nlogger.error('error is worked', 5, (2.55).toFixed());\n```\n\n## Development\nInstall the dependencies:\n\n```bash\nnpm install\n```\n\nRun the dev server\n\n```bash\nnpm start\n```\n\n## Contributing \nYour commit messages have to be in this format:\n\n```bash\ntype(category): description [flags]\n```\n\nWhere type is one of the following:\n* breaking\n* build\n* ci\n* chore\n* docs\n* feat\n* fix\n* other\n* perf\n* refactor\n* revert\n* style\n* test\n\n## Run Tests\nAll logger tests are written with mocha, chai.\n\n```bash\nnpm test\n```\n\n## Todo\n\n- [x] Override console\n- [x] Logger method (trace, debug, info, warning, error)\n- [x] Logger group + groupCollapsible (pipes)\n- [x] Logger pretty write object\n- [x] Set style by css\n- [x] Logger level groups (trace, debug, info, warn, error)\n- [x] Clipboard data\n- [x] Plugin system architecture (mixins)\n- [x] Set global style\n- [x] Added css classes\n- [ ] Format output console\n- [ ] Dependency Injection for Angular\n- [ ] Switch enable/disable default console output\n- [ ] Profiling (memory usage, sizeof, time execute)\n- [ ] Timers (decorator)\n- [ ] Pre process output\n- [ ] Cross-browser fixing\n\n## About\n\nAuthor: [Maxim Ivanov](https://github.com/splincode) <br>\n","readmeFilename":"README.md","gitHead":"27a7ce21cb9734e257604f7731adb87633d3e1c6","_id":"@splincode/client-logger@1.0.0-4","_npmVersion":"6.1.0","_nodeVersion":"10.4.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-m7N8VEJs+Ll90byjBO8ZmQ/WTWdCtYWn5xuNvNtWE9m/jNZTLVnKR44XCeftsXmpwTCKNSMG88a0VFq4xdbSGw==","shasum":"504204b3ce7e519998da683a681ea880d23952b1","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-1.0.0-4.tgz","fileCount":36,"unpackedSize":61491,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbPqciCRA9TVsSAnZWagAAkU4P/2dS3AzbqY6hWp7R3hwo\nfD4QjrIwRqA5wsqEgv3Ch7U/RCUuT5Ttr+ZGKU6lhaEZkYwd5/qjHUqkFuQc\n0hdCK2j113KeNnEOss5MOuZmziGhilfDR7i5zs/+SWFX868YrgqUsKD9H4S3\nSBibChdtokDAB6KgjRweeDFnsQgLc/XwQ3IzmCN8DwImNjFLAKNyBUS5f7WX\nI0Y72WN16YviA6t6dgKPH6YHIc0xGLmA2u7ipnICK514ddtbdTL8ot9Nr9up\nJ4VIQc7YvwWwE/umnMXzm0JOQ1s76/Dkm6zRZV0ypHzvu3AqgfajN2TXzogo\n4N2qj+EdUSz4lW923ebnLLVXoMKmJouItvZ3I0rDDYMNUyQlAL5rb0BM8saH\nCG/RBWQBiFfv3gJnk6ov6Q7hoLDx0lEupWlu45byVgH9dbBm9zn+6C85iFm8\nUUdM95W7P5yShL5vEbQavaWzA4XkL6B59HUXBJXsNvej2Ph1Dsc5KZyWdzXD\nOxN/YP9EW5Li2JJc7UNx+u4fjsuQKNSGoxUM6xST/BnIjr7FLVJTY1Yihtvo\nIDuGTssvMc+3sfR5aariYA/eZ7faET1zD00sPX8jx/EBEAb/trdNOB6ZjgEH\nTV8zlq/7LXJ2xfhlei+JynbrPPnG0A2qm0pPX0sBUG3dUSuZAh7J/1duqMNg\n88q/\r\n=4Jns\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDuEQi6pvSVvO3UAb1CspSylmU/e6PorSTDdoRmTvO+2wIhAPbwtuTwKwBpWaGfQuA7YbVJGul9g5gB8pMZFgIoCQsC"}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger_1.0.0-4_1530832674623_0.18943686875699273"},"_hasShrinkwrap":false},"1.0.0-5":{"name":"@splincode/client-logger","version":"1.0.0-5","description":"Lightweight and configurable JavaScript logger (written on TypeScript)","main":"./lib/index.js","typings":"./lib/index.d.ts","scripts":{"prepublishOnly":"tsc","lint":"tslint -c tslint.json '**/src/**/*.ts'","start":"tsc && concurrently \"tsc -w\" \"npm run demo:serve\"","demo:serve":"cd demo && npm install && npm run start","test":"nyc --reporter=html --reporter=text mocha --opts ./mocha.opts","coverage":"nyc report --reporter=text-lcov | coveralls","git:release":"git push origin && git push origin --tags","release:major":"changelog -M && npm run npm:release && npm version major && npm publish && npm run git:release","release:minor":"changelog -m && npm run npm:release && npm version minor && npm publish && npm run git:release","release:patch":"changelog -p && npm run npm:release && npm version patch && npm publish && npm run git:release","npm:release":"git add . && git commit -m \"chore(repo): updated CHANGELOG.md\"","npm:next":"npm publish --tag next"},"nyc":{"include":["src/*.ts","src/**/*.ts"],"extension":[".ts"],"require":["ts-node/register"],"reporter":["text-summary","html"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","devDependencies":{"benchmark":"^2.1.4","chai":"^4.1.2","coveralls":"^3.0.1","generate-changelog":"^1.7.1","mocha":"^4.1.0","nyc":"^11.8.0","ts-node":"^4.1.0","tslint":"^5.10.0","tslint-config-standard":"^7.0.0","typescript":"^2.8.3","window":"^4.2.5"},"dependencies":{"concurrently":"^3.6.0"},"readme":"# ClientLogger\n\n> Lightweight and configurable JavaScript logger (written on TypeScript)\n\n [![Build Status](https://travis-ci.org/splincodewd/client-logger.svg?branch=master)](https://travis-ci.org/splincodewd/client-logger)  [![npm version](https://badge.fury.io/js/%40splincode%2Fclient-logger.svg)](https://badge.fury.io/js/%40splincode%2Fclient-logger) [![npm version next](https://img.shields.io/npm/v/@splincode/client-logger/next.svg)](https://www.npmjs.com/package/@splincode/client-logger/v/next)  [![dependencies Status](https://david-dm.org/splincodewd/client-logger/status.svg)](https://david-dm.org/splincodewd/client-logger) [![Coverage Status](https://coveralls.io/repos/github/splincodewd/client-logger/badge.svg?branch=master)](https://coveralls.io/github/splincodewd/client-logger?branch=master) [![npm-stat](https://img.shields.io/npm/dt/@splincode/client-logger.svg)](https://npm-stat.com/charts.html?package=%40splincode%2Fclient-logger&from=2017-01-12)\n\n## Installation\n\n```bash\nnpm i @splincode/client-logger --save-dev\n```\n\n## Motivation\n\nThis logger is a handy tool that can be useful \nin the design and development of the enterprise application level.\nEasy setting of logging levels and convenient work with groups.\nAmong other things, you can use meta programming (decorators).\n\n## Usage\n\nYou could easily use this Logger in the browser. \nYou only need to install the package and import it in your scripts before assembly.\nTo see how to use the Logger please \n[follow the link](https://stackblitz.com/edit/typescript-m8n8tj?file=index.ts) \nor follow that's [link](https://splincodewd.github.io/client-logger).\n\nYou can also run the examples on webpack:\n\n```ts\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n```\n\n## Table of contents\n\n* [Logging](#)\n  * [Basic usage API `trace`, `debug`, `info`, `warn`. `error`](#example-basic-methods)\n  * [Groups, `groupCollapsed`, `collapsible`](#example-groups)\n  * [Nested groups (usage pipe method)](#example-nested-groups)\n  * [Set logging level (worked in single or groups)](#example-set-minimal-logging-level)\n  * [Customization style line](#example-set-style-line)\n  * [Customization global style line](#example-set-global-style-line)\n  * [Add css classes](#example-css-classes)\n  * [Output pretty json `stringify`](#example-pretty-json)\n  * [Copy `json, object, text` to clipboard](#example-clipboard)\n  * [Configuration `ClientLogger`](#example-full-configurations)\n* [Development](#development)\n* [Contributing](#contributing)\n* [Run Tests](#run-tests)\n* [Todo](#todo)\n\n## Logging\n\n![](https://habrastorage.org/webt/xi/ku/d9/xikud9fkxwng2ndu66f_c8yolag.gif)\n\n### Example: basic methods\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger.trace('trace is worked', 1, { a: 1 });\nlogger.debug('debug is worked', 2, console);\nlogger.info('info is worked', 3, Object);\nlogger.warn('warn is worked', 4, String);\nlogger.error('error is worked', 5, (2.55).toFixed());\n```\n\n* **Default level: All**\n\n![](https://habrastorage.org/webt/x-/bc/3b/x-bc3bztgftwzvamekuffrxcilq.png)\n\n* **Show time**\n\n![](https://habrastorage.org/webt/1i/lj/rh/1iljrhzeiw_3mvbaji5gcx2adnm.gif)\n\n* **Disable trace on console (filter):**\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nfor (let i = 0; i < 20; i++) {\n    logger.trace('trace is worked', i);\n}\n```\n\n![](https://habrastorage.org/webt/un/fl/81/unfl81h_wjnltr184of-vx1skio.gif)\n\n### Example: groups\n\n* **Logger groups with auto closed (usage callback):**\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger.groupCollapsed('EXAMPLE 2: show stack', () => {\n    logger.trace('trace is worked', 1, { a: 1 });\n    logger.debug('debug is worked', 2, console);\n    logger.info('info is worked', 3, Object);\n    logger.warn('warn is worked', 4, String);\n    logger.error('error is worked', 5, (2.55).toFixed());\n});\n\nlogger.group('Show trace in opened group', ({ trace }) => {\n    for (let i = 0; i < 20; i++) {\n        trace('trace is worked', i);\n    }\n});\n\nlogger.groupCollapsed('Show trace in collapsed group', ({ trace }) => {\n    for (let i = 0; i < 20; i++) {\n        trace('trace is worked', i);\n    }\n});\n```\n\n![](https://habrastorage.org/webt/zs/hv/fz/zshvfzrcslnsqo3dvyeiskrkwik.png)\n\n### Example: nested groups\n\n* **Logger nested groups (with pipe):**\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger\n    .groupCollapsed('GROUP TEST')\n    .pipe(({ trace, debug, info, warn, error }) => {\n        trace('trace is worked');\n        debug('debug is worked');\n        info('info is worked');\n        warn('warn is worked');\n        error('error is worked');\n    })\n    .close();\n\nlogger\n    .group('A')\n    .pipe(\n        ({ trace }) => trace('trace is worked'),\n        ({ debug }) => debug('debug is worked'),\n        ({ info }) => info('info is worked'),\n        ({ warn }) => warn('warn is worked'),\n        ({ error }) => error('error is worked')\n    )\n    .groupCollapsed('B')\n    .pipe(\n        ({ trace }) => trace('trace is worked'),\n        ({ debug }) => debug('debug is worked'),\n        ({ info }) => info('info is worked'),\n        ({ warn }) => warn('warn is worked'),\n        ({ error }) => error('error is worked')\n    )\n    .group('C')\n    .pipe(\n        ({ trace }) => trace('trace is worked'),\n        ({ debug }) => debug('debug is worked'),\n        ({ info }) => info('info is worked'),\n        ({ warn }) => warn('warn is worked'),\n        ({ error }) => error('error is worked')\n    )\n    .closeAll(); // closed all opened group\n```\n\n![](https://habrastorage.org/webt/77/vi/gm/77vigmltfbdmxhiruv8xgxwjdrg.gif)\n\n### Example: set minimal logging level\n\nBasic parameterization\n\n```typescript\nimport { ClientLogger, LoggerLevel } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger.trace.group('A opened', ({ trace }) => trace('trace group is worked'));\nlogger.debug.group('B opened', ({ debug }) => debug('debug group is worked'));\nlogger.info.group('C opened', ({ info }) => info('info group is worked'));\nlogger.warn.group('D opened', ({ warn }) =>  warn('warn group is worked'));\nlogger.error.group('E opened', ({ error }) => error('error group is worked'));\n\nconst level = LoggerLevel.INFO;\nlogger.log('Set new logger level', LoggerLevel[level]);\nlogger.level = level;\n\nlogger.trace.groupCollapsed('A collapsed', ({ trace }) => trace('trace group is worked'));\nlogger.debug.groupCollapsed('B collapsed', ({ debug }) => debug('debug group is worked'));\nlogger.info.groupCollapsed('C collapsed', ({ info }) => info('info group is worked'));\nlogger.warn.groupCollapsed('D collapsed', ({ warn }) => warn('warn group is worked'));\nlogger.error.groupCollapsed('E collapsed', ({ error }) => error('error group is worked'));\n\n```\n\n![](https://habrastorage.org/webt/bc/zc/dc/bczcdc_vicubrqr30jq3prg7no4.png)\n\n* **Logger level groups (pretty usage API):**\n\n```typescript\nimport { ClientLogger, LoggerLevel } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nconst level = LoggerLevel.INFO;\nlogger.log('Set new logger level', LoggerLevel[level]);\nlogger.level = level;\n\nlogger.trace.group('A')\n    .pipe(({ trace }) => trace('trace is worked from A'))\n    .pipe(({ debug }) => debug('debug is worked from A'))\n    .pipe(({ info }) => info('info is worked from A'))\n    .pipe(({ warn }) => warn('warn is worked from A'))\n    .pipe(({ error }) => error('error is worked from A'))\n    .close()\n\n    .debug.group('B')\n    .pipe(({ trace }) => trace('trace is worked from B'))\n    .pipe(({ debug }) => debug('debug is worked from B'))\n    .pipe(({ info }) => info('info is worked from B'))\n    .pipe(({ warn }) => warn('warn is worked from B'))\n    .pipe(({ error }) => error('error is worked from B'))\n    .close()\n\n    .info.group('C')\n    .pipe(({ trace }) => trace('trace is worked from C'))\n    .pipe(({ debug }) => debug('debug is worked from C'))\n    .pipe(({ info }) => info('info is worked from C'))\n    .pipe(({ warn }) => warn('warn is worked from C'))\n    .pipe(({ error }) => error('error is worked from C'))\n    .close()\n\n    .warn.group('D')\n    .pipe(({ trace }) => trace('trace is worked from D'))\n    .pipe(({ debug }) => debug('debug is worked from D'))\n    .pipe(({ info }) => info('info is worked from D'))\n    .pipe(({ warn }) => warn('warn is worked from D'))\n    .pipe(({ error }) => error('error is worked from D'))\n    .close()\n\n    .error.group('E')\n    .pipe(({ trace }) => trace('trace is worked from E'))\n    .pipe(({ debug }) => debug('debug is worked from E'))\n    .pipe(({ info }) => info('info is worked from E'))\n    .pipe(({ warn }) => warn('warn is worked from E'))\n    .pipe(({ error }) => error('error is worked from E'))\n    .close();\n\n```\n\n![](https://habrastorage.org/webt/ca/rb/ub/carbube17g4h42ye2fjcvstcw_c.png)\n\n### Example: set style line\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger\n    .css({ textTransform: 'uppercase', fontWeight: 'bold' })\n    .debug('window current ', window);\n\nlogger\n    .css('color: red; text-decoration: underline; font-weight: bold')\n    .info('It is awesome logger');\n\nlogger.warn('logger.css(...) does not define a global format!');\nlogger.info('For global configuration, use the constructor parameters');\n````\n\n![](https://habrastorage.org/webt/4s/co/wh/4scowhxaxdl8ikcmxpyjtko269m.png)\n\n### Example: set global style line\n\n```typescript\nimport { ClientLogger, FormatLine } from '@splincode/client-logger';\n\nconst logger = new ClientLogger({\n    lineStyle: {\n        style: 'color: red; text-decoration: underline; font-weight: bold; font-size: 15px',\n        format: FormatLine.STRING\n    }\n});\n\nlogger\n    .css('font-weight: normal; text-decoration: none;', FormatLine.INT)\n    .info(3.14); // 3\n\nlogger\n    .css('font-weight: normal;', FormatLine.FLOAT)\n    .info(3.14); // 3.14\n\nlogger.warn('global format with style!');\n\n````\n\n![](https://habrastorage.org/webt/tt/mo/ki/ttmokit6fznu6-bce48wqsgmcys.png)\n\n### Example: CSS classes\n\n```ts\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger({\n    cssClassMap: {\n        'bold': 'font-weight: bold',\n        'line-through': 'text-decoration: line-through',\n        'code-sandbox': `\n            color: #666;\n            background: #f4f4f4;\n            border-left: 3px solid #f36d33;\n            font-family: monospace;\n            font-size: 15px;\n        `\n    }\n});\n\nlogger.cssClass('bold line-through')\n    .log('JavaScript sucks', 'JavaScript is the best');\n\nlogger.cssClass('code-sandbox').log(\n    '\\n   @Component({ .. })' +\n    '\\n   export class AppComponent { .. }    \\n\\n'\n);\n\nlogger.cssClass('bold line-through')\n    .debug('JavaScript sucks', 'JavaScript is the best');\n        \n```\n\n![](https://habrastorage.org/webt/wf/yr/jf/wfyrjfp5uv5ucbhhdmimlrcvazg.png)\n\n### Example: pretty json\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\nconst logger = new ClientLogger();\n\nfetch(\"http://data.io\").then((greatBigJSON) => {\n\n    // default browser print json\n    logger.debug(\"Classic output json\", greatBigJSON);\n    \n    // for pretty json usage logger.log method\n    logger.log(...logger.stringify(greatBigJSON));\n\n});\n```\n\n![](https://habrastorage.org/webt/zq/f9/wk/zqf9wkjej7gcpwmu-wa-nvpoosw.png)\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\nconst logger = new ClientLogger();\n\nfetch(\"http://data.io\").then((greatBigJSON) => {\n    \n    logger\n        .group('Classic output json:')\n        .pipe(({ debug }) => debug('Classic output json: ', greatBigJSON))\n        .close()\n        .group('Pretty output json:')\n        .pipe(({ log, stringify }) => log(...stringify(greatBigJSON)))\n        .close();\n    \n});\n```\n\n![](https://habrastorage.org/webt/cp/yo/no/cpyonombmaemgbpdsqjallxjhuq.png)\n\n### Example: clipboard\n\n```typescript\n\nimport { ClientLogger, LoggerLevel } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\nconst JsonValue = { a: 1, b: [1, 2, 3] };\n\nlogger.group('copy JSON', ({ log, stringify, clipboard }) => {\n    log(...stringify(clipboard.copy(JsonValue)));\n    log('The object you have on the clipboard ...');\n});\n\n````\n\n![](https://habrastorage.org/webt/nq/uo/0z/nquo0zs2_tbvpxkaut4eavh-qeq.gif)\n\n### Example: full configurations\n\n```typescript\nimport { ClientLogger, LoggerLevel } from '@splincode/client-logger';\nimport { MyConsole } from 'node_modules/custom-logger';\n// ..\n\nconst logger = new ClientLogger({\n\n    // Drop-in replacement for console, if needed\n    consoleInstance: <Console> new MyConsole(),\n    \n    // Minimal execute signature\n    minLevel: LoggerLevel.INFO,\n\n    // Custom color\n    configColor: {\n        [LoggerLevel.TRACE]: 'Grey',\n        [LoggerLevel.DEBUG]: 'Blue',\n        [LoggerLevel.INFO]: 'Green',\n        [LoggerLevel.WARN]: 'Orange',\n        [LoggerLevel.ERROR]: 'Red',\n    },\n\n    // Custom label\n    configLabel: {\n        [LoggerLevel.TRACE]: 'trace: ',\n        [LoggerLevel.DEBUG]: 'debug: ',\n        [LoggerLevel.INFO]: 'info: ',\n        [LoggerLevel.WARN]: 'warn: ',\n        [LoggerLevel.ERROR]: 'error: ',\n    }\n\n});\n\nlogger.trace('trace is worked', 1, { a: 1 }); // not execute\nlogger.debug('debug is worked', 2, console); // not execute\nlogger.info('info is worked', 3, Object);\nlogger.warn('warn is worked', 4, String);\nlogger.error('error is worked', 5, (2.55).toFixed());\n```\n\n## Development\nInstall the dependencies:\n\n```bash\nnpm install\n```\n\nRun the dev server\n\n```bash\nnpm start\n```\n\n## Contributing \nYour commit messages have to be in this format:\n\n```bash\ntype(category): description [flags]\n```\n\nWhere type is one of the following:\n* breaking\n* build\n* ci\n* chore\n* docs\n* feat\n* fix\n* other\n* perf\n* refactor\n* revert\n* style\n* test\n\n## Run Tests\nAll logger tests are written with mocha, chai.\n\n```bash\nnpm test\n```\n\n## Todo\n\n- [x] Override console\n- [x] Logger method (trace, debug, info, warning, error)\n- [x] Logger group + groupCollapsible (pipes)\n- [x] Logger pretty write object\n- [x] Set style by css\n- [x] Logger level groups (trace, debug, info, warn, error)\n- [x] Clipboard data\n- [x] Plugin system architecture (mixins)\n- [x] Set global style\n- [x] Added css classes\n- [ ] Format output console\n- [ ] Dependency Injection for Angular\n- [ ] Switch enable/disable default console output\n- [ ] Profiling (memory usage, sizeof, time execute)\n- [ ] Timers (decorator)\n- [ ] Pre process output\n- [ ] Cross-browser fixing\n\n## About\n\nAuthor: [Maxim Ivanov](https://github.com/splincode) <br>\n","readmeFilename":"README.md","gitHead":"604ca5ffb24d1e3846c4d455232b1ba1620ab273","_id":"@splincode/client-logger@1.0.0-5","_npmVersion":"6.1.0","_nodeVersion":"10.4.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-yplivfX+Saom3urzTRakPtOHyx272Jbc876UiWM3IDLWuXVf/nrMZYTrjHo+B3+gp2jFLBDAxEUuCgKazQGuDQ==","shasum":"a4b171fff35ccde0e5b4977928b31e0f212d2f78","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-1.0.0-5.tgz","fileCount":36,"unpackedSize":61630,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbQ8ZNCRA9TVsSAnZWagAAO+0P/jEoCrvvDVCe+tw8feYe\n/CEGoYnhzZTBXXBW60Rih/c86LrYMPR7MW5tyYSFkZim+cf1vBxDdWqvyPuU\nZLSoHU3LQbS3+Me7LcaSHwBeG0GYriwtO33jEKHzHjYzeA6CkPCW/X7719xQ\nuajcdOYjp8CASEKZO4UfMEiWUTLXhjb0eFb6//D8bds3LppmlCiaal9iGQO1\nLY0hxg5SCRGQdfItBSo+XPw7bmT6Jm7YA5HxmBmP3+8Tteza+VELRtg9fFAd\nqPaMFf9ZlhW7pZfgn8jqTkib+5kE3PuZFMsfjK8yTZUYODi9l+HMfmPMYgxV\nIYGwURZmviybuneX7qPyH6swOQTppsyCy/COW6B6g3xhgtUsfAXTaIZlyWgo\nXtxVK2gUq1mnAYN/NTG6gVgQtMQRvUfp4tWGZ2UlcN96NI4VhUi1dLyWwV9H\nt8HGFPEDeOhO7vOhl3PuCS5Cjh+IODZrynYwM3YjkxEyPk95Un+nOZwQTEJZ\nVO77i+SSkFh74ArN/S2tb7GU9TpOYolsuQXBBiEvkD/CTndjcAXeZRfiDCBQ\nWTq4g9PbRFeXg1eOx0/WURC+uIyB341FZybHJxYAYg+SsGdz7qNW7ljAz+/D\nOk1GLfhQxHGYYPOiGcaNUbUBBoh9WzDDl6riZjf93dDGNR4dWLRoWNU2AwiI\nFkX+\r\n=JzZJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAXfFaJ46d4qKseVM3eBC8bjONFfsTSy0dj/MUkly6y5AiEApEUNc6R1mjetcoi58/o2aiCMa5enSThOyv47pgBGm5U="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger_1.0.0-5_1531168333155_0.6283529847240743"},"_hasShrinkwrap":false},"1.0.0-8":{"name":"@splincode/client-logger","version":"1.0.0-8","description":"Lightweight and configurable JavaScript logger (written on TypeScript)","main":"./lib/index.js","typings":"./lib/index.d.ts","scripts":{"prepublishOnly":"npm run build","start":"npm run build && concurrently 'npm:lib:*'","lib:demo":"cd demo && npm install && npm run start","lib:rebuild":"onchange 'src/**/*.ts' -- npm run build","build":"rimraf lib && rollup --config rollup.config.js","lint":"tslint -c tslint.json '**/src/**/*.ts' --project .","test":"nyc --reporter=html --reporter=text mocha --opts ./mocha.opts src/**/*.spec.ts","coverage":"nyc report --reporter=text-lcov | coveralls","git:release":"git push origin && git push origin --tags","update:changelog":"git add . && git commit -m \"chore(repo): updated CHANGELOG.md\"","release:major":"changelog -M && npm run update:changelog && npm version major && npm publish && npm run git:release","release:minor":"changelog -m && npm run update:changelog && npm version minor && npm publish && npm run git:release","release:patch":"changelog -p && npm run update:changelog && npm version patch && npm publish && npm run git:release","prerelease":"npm version prerelease && npm publish --tag next && npm run git:release"},"nyc":{"include":["src/*.ts","src/**/*.ts"],"extension":[".ts"],"require":["tsconfig-paths/register","ts-node/register"],"reporter":["text-summary","html"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","devDependencies":{"benchmark":"^2.1.4","chai":"^4.1.2","concurrently":"^3.6.0","coveralls":"^3.0.1","generate-changelog":"^1.7.1","mocha":"^4.1.0","nyc":"^11.8.0","onchange":"^4.0.0","rimraf":"^2.6.2","rollup":"^0.62.0","rollup-plugin-typescript2":"^0.15.1","ts-node":"^4.1.0","tsconfig-paths":"^3.4.2","tslint":"^5.10.0","tslint-config-standard":"^7.0.0","typescript":"^2.8.3","window":"^4.2.5"},"gitHead":"a5966723cc889a9c5a5b05614cc7b6a30f469aa1","readme":"# ClientLogger\n\n> Lightweight and configurable JavaScript logger (written on TypeScript)\n\n [![Build Status](https://travis-ci.org/splincodewd/client-logger.svg?branch=master)](https://travis-ci.org/splincodewd/client-logger)  [![npm version](https://badge.fury.io/js/%40splincode%2Fclient-logger.svg)](https://badge.fury.io/js/%40splincode%2Fclient-logger) [![npm version next](https://img.shields.io/npm/v/@splincode/client-logger/next.svg)](https://www.npmjs.com/package/@splincode/client-logger/v/next)  [![dependencies Status](https://david-dm.org/splincodewd/client-logger/status.svg)](https://david-dm.org/splincodewd/client-logger) [![Coverage Status](https://coveralls.io/repos/github/splincodewd/client-logger/badge.svg?branch=master)](https://coveralls.io/github/splincodewd/client-logger?branch=master) [![npm-stat](https://img.shields.io/npm/dt/@splincode/client-logger.svg)](https://npm-stat.com/charts.html?package=%40splincode%2Fclient-logger&from=2017-01-12)\n\n## Installation\n\n```bash\nnpm i @splincode/client-logger --save-dev\n```\n\n## Motivation\n\nThis logger is a handy tool that can be useful \nin the design and development of the enterprise application level.\nEasy setting of logging levels and convenient work with groups.\nAmong other things, you can use meta programming (decorators).\n\n## Usage\n\nYou could easily use this Logger in the browser. \nYou only need to install the package and import it in your scripts before assembly.\nTo see how to use the Logger please \n[follow the link](https://stackblitz.com/edit/typescript-m8n8tj?file=index.ts) \nor follow that's [link](https://splincodewd.github.io/client-logger).\n\nYou can also run the examples on webpack:\n\n```ts\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n```\n\n## Table of contents\n\n* [Logging](#)\n  * [Basic usage API `trace`, `debug`, `info`, `warn`. `error`](#example-basic-methods)\n  * [Groups, `groupCollapsed`, `collapsible`](#example-groups)\n  * [Nested groups (usage pipe method)](#example-nested-groups)\n  * [Set logging level (worked in single or groups)](#example-set-minimal-logging-level)\n  * [Customization style line](#example-set-style-line)\n  * [Customization global style line](#example-set-global-style-line)\n  * [Add css classes](#example-css-classes)\n  * [Output pretty json `stringify`](#example-pretty-json)\n  * [Copy `json, object, text` to clipboard](#example-clipboard)\n  * [Configuration `ClientLogger`](#example-full-configurations)\n* [Development](#development)\n* [Contributing](#contributing)\n* [Run Tests](#run-tests)\n* [Todo](#todo)\n\n## Logging\n\n![](https://habrastorage.org/webt/xi/ku/d9/xikud9fkxwng2ndu66f_c8yolag.gif)\n\n### Example: basic methods\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger.trace('trace is worked', 1, { a: 1 });\nlogger.debug('debug is worked', 2, console);\nlogger.info('info is worked', 3, Object);\nlogger.warn('warn is worked', 4, String);\nlogger.error('error is worked', 5, (2.55).toFixed());\n```\n\n* **Default level: All**\n\n![](https://habrastorage.org/webt/x-/bc/3b/x-bc3bztgftwzvamekuffrxcilq.png)\n\n* **Show time**\n\n![](https://habrastorage.org/webt/1i/lj/rh/1iljrhzeiw_3mvbaji5gcx2adnm.gif)\n\n* **Disable trace on console (filter):**\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nfor (let i = 0; i < 20; i++) {\n    logger.trace('trace is worked', i);\n}\n```\n\n![](https://habrastorage.org/webt/un/fl/81/unfl81h_wjnltr184of-vx1skio.gif)\n\n### Example: groups\n\n* **Logger groups with auto closed (usage callback):**\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger.groupCollapsed('EXAMPLE 2: show stack', () => {\n    logger.trace('trace is worked', 1, { a: 1 });\n    logger.debug('debug is worked', 2, console);\n    logger.info('info is worked', 3, Object);\n    logger.warn('warn is worked', 4, String);\n    logger.error('error is worked', 5, (2.55).toFixed());\n});\n\nlogger.group('Show trace in opened group', ({ trace }) => {\n    for (let i = 0; i < 20; i++) {\n        trace('trace is worked', i);\n    }\n});\n\nlogger.groupCollapsed('Show trace in collapsed group', ({ trace }) => {\n    for (let i = 0; i < 20; i++) {\n        trace('trace is worked', i);\n    }\n});\n```\n\n![](https://habrastorage.org/webt/zs/hv/fz/zshvfzrcslnsqo3dvyeiskrkwik.png)\n\n### Example: nested groups\n\n* **Logger nested groups (with pipe):**\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger\n    .groupCollapsed('GROUP TEST')\n    .pipe(({ trace, debug, info, warn, error }) => {\n        trace('trace is worked');\n        debug('debug is worked');\n        info('info is worked');\n        warn('warn is worked');\n        error('error is worked');\n    })\n    .close();\n\nlogger\n    .group('A')\n    .pipe(\n        ({ trace }) => trace('trace is worked'),\n        ({ debug }) => debug('debug is worked'),\n        ({ info }) => info('info is worked'),\n        ({ warn }) => warn('warn is worked'),\n        ({ error }) => error('error is worked')\n    )\n    .groupCollapsed('B')\n    .pipe(\n        ({ trace }) => trace('trace is worked'),\n        ({ debug }) => debug('debug is worked'),\n        ({ info }) => info('info is worked'),\n        ({ warn }) => warn('warn is worked'),\n        ({ error }) => error('error is worked')\n    )\n    .group('C')\n    .pipe(\n        ({ trace }) => trace('trace is worked'),\n        ({ debug }) => debug('debug is worked'),\n        ({ info }) => info('info is worked'),\n        ({ warn }) => warn('warn is worked'),\n        ({ error }) => error('error is worked')\n    )\n    .closeAll(); // closed all opened group\n```\n\n![](https://habrastorage.org/webt/77/vi/gm/77vigmltfbdmxhiruv8xgxwjdrg.gif)\n\n### Example: set minimal logging level\n\nBasic parameterization\n\n```typescript\nimport { ClientLogger, LoggerLevel } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger.trace.group('A opened', ({ trace }) => trace('trace group is worked'));\nlogger.debug.group('B opened', ({ debug }) => debug('debug group is worked'));\nlogger.info.group('C opened', ({ info }) => info('info group is worked'));\nlogger.warn.group('D opened', ({ warn }) =>  warn('warn group is worked'));\nlogger.error.group('E opened', ({ error }) => error('error group is worked'));\n\nconst level = LoggerLevel.INFO;\nlogger.log('Set new logger level', LoggerLevel[level]);\nlogger.level = level;\n\nlogger.trace.groupCollapsed('A collapsed', ({ trace }) => trace('trace group is worked'));\nlogger.debug.groupCollapsed('B collapsed', ({ debug }) => debug('debug group is worked'));\nlogger.info.groupCollapsed('C collapsed', ({ info }) => info('info group is worked'));\nlogger.warn.groupCollapsed('D collapsed', ({ warn }) => warn('warn group is worked'));\nlogger.error.groupCollapsed('E collapsed', ({ error }) => error('error group is worked'));\n\n```\n\n![](https://habrastorage.org/webt/bc/zc/dc/bczcdc_vicubrqr30jq3prg7no4.png)\n\n* **Logger level groups (pretty usage API):**\n\n```typescript\nimport { ClientLogger, LoggerLevel } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nconst level = LoggerLevel.INFO;\nlogger.log('Set new logger level', LoggerLevel[level]);\nlogger.level = level;\n\nlogger.trace.group('A')\n    .pipe(({ trace }) => trace('trace is worked from A'))\n    .pipe(({ debug }) => debug('debug is worked from A'))\n    .pipe(({ info }) => info('info is worked from A'))\n    .pipe(({ warn }) => warn('warn is worked from A'))\n    .pipe(({ error }) => error('error is worked from A'))\n    .close()\n\n    .debug.group('B')\n    .pipe(({ trace }) => trace('trace is worked from B'))\n    .pipe(({ debug }) => debug('debug is worked from B'))\n    .pipe(({ info }) => info('info is worked from B'))\n    .pipe(({ warn }) => warn('warn is worked from B'))\n    .pipe(({ error }) => error('error is worked from B'))\n    .close()\n\n    .info.group('C')\n    .pipe(({ trace }) => trace('trace is worked from C'))\n    .pipe(({ debug }) => debug('debug is worked from C'))\n    .pipe(({ info }) => info('info is worked from C'))\n    .pipe(({ warn }) => warn('warn is worked from C'))\n    .pipe(({ error }) => error('error is worked from C'))\n    .close()\n\n    .warn.group('D')\n    .pipe(({ trace }) => trace('trace is worked from D'))\n    .pipe(({ debug }) => debug('debug is worked from D'))\n    .pipe(({ info }) => info('info is worked from D'))\n    .pipe(({ warn }) => warn('warn is worked from D'))\n    .pipe(({ error }) => error('error is worked from D'))\n    .close()\n\n    .error.group('E')\n    .pipe(({ trace }) => trace('trace is worked from E'))\n    .pipe(({ debug }) => debug('debug is worked from E'))\n    .pipe(({ info }) => info('info is worked from E'))\n    .pipe(({ warn }) => warn('warn is worked from E'))\n    .pipe(({ error }) => error('error is worked from E'))\n    .close();\n\n```\n\n![](https://habrastorage.org/webt/ca/rb/ub/carbube17g4h42ye2fjcvstcw_c.png)\n\n### Example: set style line\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger\n    .css({ textTransform: 'uppercase', fontWeight: 'bold' })\n    .debug('window current ', window);\n\nlogger\n    .css('color: red; text-decoration: underline; font-weight: bold')\n    .info('It is awesome logger');\n\nlogger.warn('logger.css(...) does not define a global format!');\nlogger.info('For global configuration, use the constructor parameters');\n````\n\n![](https://habrastorage.org/webt/4s/co/wh/4scowhxaxdl8ikcmxpyjtko269m.png)\n\n### Example: set global style line\n\n```typescript\nimport { ClientLogger, FormatLine } from '@splincode/client-logger';\n\nconst logger = new ClientLogger({\n    lineStyle: {\n        style: 'color: red; text-decoration: underline; font-weight: bold; font-size: 15px',\n        format: FormatLine.STRING\n    }\n});\n\nlogger\n    .css('font-weight: normal; text-decoration: none;', FormatLine.INT)\n    .info(3.14); // 3\n\nlogger\n    .css('font-weight: normal;', FormatLine.FLOAT)\n    .info(3.14); // 3.14\n\nlogger.warn('global format with style!');\n\n````\n\n![](https://habrastorage.org/webt/tt/mo/ki/ttmokit6fznu6-bce48wqsgmcys.png)\n\n### Example: CSS classes\n\n```ts\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger({\n    cssClassMap: {\n        'bold': 'font-weight: bold',\n        'line-through': 'text-decoration: line-through',\n        'code-sandbox': `\n            color: #666;\n            background: #f4f4f4;\n            border-left: 3px solid #f36d33;\n            font-family: monospace;\n            font-size: 15px;\n        `\n    }\n});\n\nlogger.cssClass('bold line-through')\n    .log('JavaScript sucks', 'JavaScript is the best');\n\nlogger.cssClass('code-sandbox').log(\n    '\\n   @Component({ .. })' +\n    '\\n   export class AppComponent { .. }    \\n\\n'\n);\n\nlogger.cssClass('bold line-through')\n    .debug('JavaScript sucks', 'JavaScript is the best');\n        \n```\n\n![](https://habrastorage.org/webt/wf/yr/jf/wfyrjfp5uv5ucbhhdmimlrcvazg.png)\n\n### Example: pretty json\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\nconst logger = new ClientLogger();\n\nfetch(\"http://data.io\").then((greatBigJSON) => {\n\n    // default browser print json\n    logger.debug(\"Classic output json\", greatBigJSON);\n    \n    // for pretty json usage logger.log method\n    logger.log(...logger.stringify(greatBigJSON));\n\n});\n```\n\n![](https://habrastorage.org/webt/zq/f9/wk/zqf9wkjej7gcpwmu-wa-nvpoosw.png)\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\nconst logger = new ClientLogger();\n\nfetch(\"http://data.io\").then((greatBigJSON) => {\n    \n    logger\n        .group('Classic output json:')\n        .pipe(({ debug }) => debug('Classic output json: ', greatBigJSON))\n        .close()\n        .group('Pretty output json:')\n        .pipe(({ log, stringify }) => log(...stringify(greatBigJSON)))\n        .close();\n    \n});\n```\n\n![](https://habrastorage.org/webt/cp/yo/no/cpyonombmaemgbpdsqjallxjhuq.png)\n\n### Example: clipboard\n\n```typescript\n\nimport { ClientLogger, LoggerLevel } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\nconst JsonValue = { a: 1, b: [1, 2, 3] };\n\nlogger.group('copy JSON', ({ log, stringify, clipboard }) => {\n    log(...stringify(clipboard.copy(JsonValue)));\n    log('The object you have on the clipboard ...');\n});\n\n````\n\n![](https://habrastorage.org/webt/nq/uo/0z/nquo0zs2_tbvpxkaut4eavh-qeq.gif)\n\n### Example: full configurations\n\n```typescript\nimport { ClientLogger, LoggerLevel } from '@splincode/client-logger';\nimport { MyConsole } from 'node_modules/custom-logger';\n// ..\n\nconst logger = new ClientLogger({\n\n    // Drop-in replacement for console, if needed\n    consoleInstance: <Console> new MyConsole(),\n    \n    // Minimal execute signature\n    minLevel: LoggerLevel.INFO,\n\n    // Custom color\n    configColor: {\n        [LoggerLevel.TRACE]: 'Grey',\n        [LoggerLevel.DEBUG]: 'Blue',\n        [LoggerLevel.INFO]: 'Green',\n        [LoggerLevel.WARN]: 'Orange',\n        [LoggerLevel.ERROR]: 'Red',\n    },\n\n    // Custom label\n    configLabel: {\n        [LoggerLevel.TRACE]: 'trace: ',\n        [LoggerLevel.DEBUG]: 'debug: ',\n        [LoggerLevel.INFO]: 'info: ',\n        [LoggerLevel.WARN]: 'warn: ',\n        [LoggerLevel.ERROR]: 'error: ',\n    }\n\n});\n\nlogger.trace('trace is worked', 1, { a: 1 }); // not execute\nlogger.debug('debug is worked', 2, console); // not execute\nlogger.info('info is worked', 3, Object);\nlogger.warn('warn is worked', 4, String);\nlogger.error('error is worked', 5, (2.55).toFixed());\n```\n\n## Development\nInstall the dependencies:\n\n```bash\nnpm install\n```\n\nRun the dev server\n\n```bash\nnpm start\n```\n\n## Contributing \nYour commit messages have to be in this format:\n\n```bash\ntype(category): description [flags]\n```\n\nWhere type is one of the following:\n* breaking\n* build\n* ci\n* chore\n* docs\n* feat\n* fix\n* other\n* perf\n* refactor\n* revert\n* style\n* test\n\n## Run Tests\nAll logger tests are written with mocha, chai.\n\n```bash\nnpm test\n```\n\n## Todo\n\n- [x] Override console\n- [x] Logger method (trace, debug, info, warning, error)\n- [x] Logger group + groupCollapsible (pipes)\n- [x] Logger pretty write object\n- [x] Set style by css\n- [x] Logger level groups (trace, debug, info, warn, error)\n- [x] Clipboard data\n- [x] Plugin system architecture (mixins)\n- [x] Set global style\n- [x] Added css classes\n- [ ] Format output console\n- [ ] Dependency Injection for Angular\n- [ ] Switch enable/disable default console output\n- [ ] Profiling (memory usage, sizeof, time execute)\n- [ ] Timers (decorator)\n- [ ] Pre process output\n- [ ] Cross-browser fixing\n\n## About\n\nAuthor: [Maxim Ivanov](https://github.com/splincode) <br>\n","readmeFilename":"README.md","_id":"@splincode/client-logger@1.0.0-8","_npmVersion":"6.1.0","_nodeVersion":"10.4.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-Wmv6ENbFK0moI46lerrVOhyqadNGLbFkYdqCaD+vZQdVoGKvFdKxnasgc0nsxWw7ncc0nklX7x3ApvRX0bvefg==","shasum":"5706c2b21686ca501a9e657fe5fb5f1709c10d1f","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-1.0.0-8.tgz","fileCount":28,"unpackedSize":104856,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbSpBHCRA9TVsSAnZWagAAG2AP/2dF0QNlA8/YArBfw8mD\nzBCd8BaUGwuzosrRmxdFgnadrkDWDHLzMvsgYc3vyWKWjKWkiZOW9o41y26/\nYaBWHtxeiCFf0ycBckcstYbOWLsOWM8mLWkJrOhhykr8tiShLSQVz/+q42Om\noyTMc2OWvvcH1liiPbhVQt3qdgOVjtF1RXfApd6coCxFX1XBmCBsC5Vc0qOO\n4RQgvJBR7UUdxY6aoG4wNXuf14EOK+DS8j48qMvPhBJqJHHCHwIQTHhLkb+7\nASUm3pF4s/dTobnFnNz82I7rwtWuvTccIDEM6zCR+mIw04sTU+3SwChuzxlX\nsxb4K2nGg9QdkLuF4WPrp7a3W7TukBlsrRJ6eJ9aHmNExvuh/PHm/Sia/oEk\n8aJTDlVDZK4n3vR8MQ6NwuRxYgBdX8QH73onEjeTOWDRTnuhxv1UZ8yNwxl1\nxFV71NzYhakO1OVD45vIMaQEsorFp32qR3ce+W0OFR42Fe66G/M3aN/Z+g0P\npVdZ/sDO+mCAMflOCOcvOw1DI0uqD5bpRgPNU/J2BrcqOnRtCxWgz7D0NMaN\nxcNxUcYS54ReHjuVI8YMq5ax6yG94docYHOlmoWLtMp4GZKqz6rqGwdafrye\nOCCs8/En64qUFB0tD82eDpEXj8AYO8Brs3GRunZ6r/bX+rhMdHDbV38iuJEX\n7suT\r\n=cMge\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICDLK1B5SuW/XmCDtaQm8ih8vd0SRjJg9XDjLIFTKj48AiEAnnCjycA2jVbRCMXKb8yYbzkfcEVYqxbinhE3hRX+Vf4="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger_1.0.0-8_1531613255631_0.9695612505349547"},"_hasShrinkwrap":false},"1.0.0-9":{"name":"@splincode/client-logger","version":"1.0.0-9","description":"Lightweight and configurable JavaScript logger (written on TypeScript)","main":"./lib/index.js","typings":"./lib/index.d.ts","scripts":{"tsc":"tsc","prepublishOnly":"npm run build","start":"npm run build && concurrently 'npm:lib:*'","lib:demo":"cd demo && npm install && npm run start","lib:rebuild":"onchange 'src/**/*.ts' -- npm run build","build":"rimraf lib && rollup --config rollup.config.js","lint":"tslint -c tslint.json '**/src/**/*.ts' --project .","test":"nyc --reporter=html --reporter=text mocha --opts ./mocha.opts src/**/*.spec.ts","coverage":"nyc report --reporter=text-lcov | coveralls","git:release":"git push origin && git push origin --tags","update:changelog":"git add . && git commit -m \"chore(repo): updated CHANGELOG.md\"","release:major":"changelog -M && npm run update:changelog && npm version major && npm publish && npm run git:release","release:minor":"changelog -m && npm run update:changelog && npm version minor && npm publish && npm run git:release","release:patch":"changelog -p && npm run update:changelog && npm version patch && npm publish && npm run git:release","prerelease":"npm version prerelease && npm publish --tag next && npm run git:release"},"nyc":{"include":["src/*.ts","src/**/*.ts"],"extension":[".ts"],"require":["tsconfig-paths/register","ts-node/register"],"reporter":["text-summary","html"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","devDependencies":{"benchmark":"^2.1.4","chai":"^4.1.2","concurrently":"^3.6.0","coveralls":"^3.0.1","generate-changelog":"^1.7.1","mocha":"^4.1.0","nyc":"^11.8.0","onchange":"^4.0.0","rimraf":"^2.6.2","rollup":"^0.62.0","rollup-plugin-typescript2":"^0.15.1","ts-node":"^4.1.0","tsconfig-paths":"^3.4.2","tslint":"^5.10.0","tslint-config-standard":"^7.0.0","typescript":"^2.8.3","window":"^4.2.5"},"readme":"# ClientLogger\n\n> Lightweight and configurable JavaScript logger (written on TypeScript)\n\n [![Build Status](https://travis-ci.org/splincodewd/client-logger.svg?branch=master)](https://travis-ci.org/splincodewd/client-logger)  [![npm version](https://badge.fury.io/js/%40splincode%2Fclient-logger.svg)](https://badge.fury.io/js/%40splincode%2Fclient-logger) [![npm version next](https://img.shields.io/npm/v/@splincode/client-logger/next.svg)](https://www.npmjs.com/package/@splincode/client-logger/v/next)  [![dependencies Status](https://david-dm.org/splincodewd/client-logger/status.svg)](https://david-dm.org/splincodewd/client-logger) [![Coverage Status](https://coveralls.io/repos/github/splincodewd/client-logger/badge.svg?branch=master)](https://coveralls.io/github/splincodewd/client-logger?branch=master) [![npm-stat](https://img.shields.io/npm/dt/@splincode/client-logger.svg)](https://npm-stat.com/charts.html?package=%40splincode%2Fclient-logger&from=2017-01-12)\n\n## Installation\n\n```bash\nnpm i @splincode/client-logger --save-dev\n```\n\n## Motivation\n\nThis logger is a handy tool that can be useful \nin the design and development of the enterprise application level.\nEasy setting of logging levels and convenient work with groups.\nAmong other things, you can use meta programming (decorators).\n\n## Usage\n\nYou could easily use this Logger in the browser. \nYou only need to install the package and import it in your scripts before assembly.\nTo see how to use the Logger please \n[follow the link](https://stackblitz.com/edit/typescript-m8n8tj?file=index.ts) \nor follow that's [link](https://splincodewd.github.io/client-logger).\n\nYou can also run the examples on webpack:\n\n```ts\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n```\n\n## Table of contents\n\n* [Logging](#)\n  * [Basic usage API `trace`, `debug`, `info`, `warn`. `error`](#example-basic-methods)\n  * [Groups, `groupCollapsed`, `collapsible`](#example-groups)\n  * [Nested groups (usage pipe method)](#example-nested-groups)\n  * [Set logging level (worked in single or groups)](#example-set-minimal-logging-level)\n  * [Customization style line](#example-set-style-line)\n  * [Customization global style line](#example-set-global-style-line)\n  * [Add css classes](#example-css-classes)\n  * [Output pretty json `stringify`](#example-pretty-json)\n  * [Copy `json, object, text` to clipboard](#example-clipboard)\n  * [Configuration `ClientLogger`](#example-full-configurations)\n* [Development](#development)\n* [Contributing](#contributing)\n* [Run Tests](#run-tests)\n* [Todo](#todo)\n\n## Logging\n\n![](https://habrastorage.org/webt/xi/ku/d9/xikud9fkxwng2ndu66f_c8yolag.gif)\n\n### Example: basic methods\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger.trace('trace is worked', 1, { a: 1 });\nlogger.debug('debug is worked', 2, console);\nlogger.info('info is worked', 3, Object);\nlogger.warn('warn is worked', 4, String);\nlogger.error('error is worked', 5, (2.55).toFixed());\n```\n\n* **Default level: All**\n\n![](https://habrastorage.org/webt/x-/bc/3b/x-bc3bztgftwzvamekuffrxcilq.png)\n\n* **Show time**\n\n![](https://habrastorage.org/webt/1i/lj/rh/1iljrhzeiw_3mvbaji5gcx2adnm.gif)\n\n* **Disable trace on console (filter):**\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nfor (let i = 0; i < 20; i++) {\n    logger.trace('trace is worked', i);\n}\n```\n\n![](https://habrastorage.org/webt/un/fl/81/unfl81h_wjnltr184of-vx1skio.gif)\n\n### Example: groups\n\n* **Logger groups with auto closed (usage callback):**\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger.groupCollapsed('EXAMPLE 2: show stack', () => {\n    logger.trace('trace is worked', 1, { a: 1 });\n    logger.debug('debug is worked', 2, console);\n    logger.info('info is worked', 3, Object);\n    logger.warn('warn is worked', 4, String);\n    logger.error('error is worked', 5, (2.55).toFixed());\n});\n\nlogger.group('Show trace in opened group', ({ trace }) => {\n    for (let i = 0; i < 20; i++) {\n        trace('trace is worked', i);\n    }\n});\n\nlogger.groupCollapsed('Show trace in collapsed group', ({ trace }) => {\n    for (let i = 0; i < 20; i++) {\n        trace('trace is worked', i);\n    }\n});\n```\n\n![](https://habrastorage.org/webt/zs/hv/fz/zshvfzrcslnsqo3dvyeiskrkwik.png)\n\n### Example: nested groups\n\n* **Logger nested groups (with pipe):**\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger\n    .groupCollapsed('GROUP TEST')\n    .pipe(({ trace, debug, info, warn, error }) => {\n        trace('trace is worked');\n        debug('debug is worked');\n        info('info is worked');\n        warn('warn is worked');\n        error('error is worked');\n    })\n    .close();\n\nlogger\n    .group('A')\n    .pipe(\n        ({ trace }) => trace('trace is worked'),\n        ({ debug }) => debug('debug is worked'),\n        ({ info }) => info('info is worked'),\n        ({ warn }) => warn('warn is worked'),\n        ({ error }) => error('error is worked')\n    )\n    .groupCollapsed('B')\n    .pipe(\n        ({ trace }) => trace('trace is worked'),\n        ({ debug }) => debug('debug is worked'),\n        ({ info }) => info('info is worked'),\n        ({ warn }) => warn('warn is worked'),\n        ({ error }) => error('error is worked')\n    )\n    .group('C')\n    .pipe(\n        ({ trace }) => trace('trace is worked'),\n        ({ debug }) => debug('debug is worked'),\n        ({ info }) => info('info is worked'),\n        ({ warn }) => warn('warn is worked'),\n        ({ error }) => error('error is worked')\n    )\n    .closeAll(); // closed all opened group\n```\n\n![](https://habrastorage.org/webt/77/vi/gm/77vigmltfbdmxhiruv8xgxwjdrg.gif)\n\n### Example: set minimal logging level\n\nBasic parameterization\n\n```typescript\nimport { ClientLogger, LoggerLevel } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger.trace.group('A opened', ({ trace }) => trace('trace group is worked'));\nlogger.debug.group('B opened', ({ debug }) => debug('debug group is worked'));\nlogger.info.group('C opened', ({ info }) => info('info group is worked'));\nlogger.warn.group('D opened', ({ warn }) =>  warn('warn group is worked'));\nlogger.error.group('E opened', ({ error }) => error('error group is worked'));\n\nconst level = LoggerLevel.INFO;\nlogger.log('Set new logger level', LoggerLevel[level]);\nlogger.level = level;\n\nlogger.trace.groupCollapsed('A collapsed', ({ trace }) => trace('trace group is worked'));\nlogger.debug.groupCollapsed('B collapsed', ({ debug }) => debug('debug group is worked'));\nlogger.info.groupCollapsed('C collapsed', ({ info }) => info('info group is worked'));\nlogger.warn.groupCollapsed('D collapsed', ({ warn }) => warn('warn group is worked'));\nlogger.error.groupCollapsed('E collapsed', ({ error }) => error('error group is worked'));\n\n```\n\n![](https://habrastorage.org/webt/bc/zc/dc/bczcdc_vicubrqr30jq3prg7no4.png)\n\n* **Logger level groups (pretty usage API):**\n\n```typescript\nimport { ClientLogger, LoggerLevel } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nconst level = LoggerLevel.INFO;\nlogger.log('Set new logger level', LoggerLevel[level]);\nlogger.level = level;\n\nlogger.trace.group('A')\n    .pipe(({ trace }) => trace('trace is worked from A'))\n    .pipe(({ debug }) => debug('debug is worked from A'))\n    .pipe(({ info }) => info('info is worked from A'))\n    .pipe(({ warn }) => warn('warn is worked from A'))\n    .pipe(({ error }) => error('error is worked from A'))\n    .close()\n\n    .debug.group('B')\n    .pipe(({ trace }) => trace('trace is worked from B'))\n    .pipe(({ debug }) => debug('debug is worked from B'))\n    .pipe(({ info }) => info('info is worked from B'))\n    .pipe(({ warn }) => warn('warn is worked from B'))\n    .pipe(({ error }) => error('error is worked from B'))\n    .close()\n\n    .info.group('C')\n    .pipe(({ trace }) => trace('trace is worked from C'))\n    .pipe(({ debug }) => debug('debug is worked from C'))\n    .pipe(({ info }) => info('info is worked from C'))\n    .pipe(({ warn }) => warn('warn is worked from C'))\n    .pipe(({ error }) => error('error is worked from C'))\n    .close()\n\n    .warn.group('D')\n    .pipe(({ trace }) => trace('trace is worked from D'))\n    .pipe(({ debug }) => debug('debug is worked from D'))\n    .pipe(({ info }) => info('info is worked from D'))\n    .pipe(({ warn }) => warn('warn is worked from D'))\n    .pipe(({ error }) => error('error is worked from D'))\n    .close()\n\n    .error.group('E')\n    .pipe(({ trace }) => trace('trace is worked from E'))\n    .pipe(({ debug }) => debug('debug is worked from E'))\n    .pipe(({ info }) => info('info is worked from E'))\n    .pipe(({ warn }) => warn('warn is worked from E'))\n    .pipe(({ error }) => error('error is worked from E'))\n    .close();\n\n```\n\n![](https://habrastorage.org/webt/ca/rb/ub/carbube17g4h42ye2fjcvstcw_c.png)\n\n### Example: set style line\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger\n    .css({ textTransform: 'uppercase', fontWeight: 'bold' })\n    .debug('window current ', window);\n\nlogger\n    .css('color: red; text-decoration: underline; font-weight: bold')\n    .info('It is awesome logger');\n\nlogger.warn('logger.css(...) does not define a global format!');\nlogger.info('For global configuration, use the constructor parameters');\n````\n\n![](https://habrastorage.org/webt/4s/co/wh/4scowhxaxdl8ikcmxpyjtko269m.png)\n\n### Example: set global style line\n\n```typescript\nimport { ClientLogger, FormatLine } from '@splincode/client-logger';\n\nconst logger = new ClientLogger({\n    lineStyle: {\n        style: 'color: red; text-decoration: underline; font-weight: bold; font-size: 15px',\n        format: FormatLine.STRING\n    }\n});\n\nlogger\n    .css('font-weight: normal; text-decoration: none;', FormatLine.INT)\n    .info(3.14); // 3\n\nlogger\n    .css('font-weight: normal;', FormatLine.FLOAT)\n    .info(3.14); // 3.14\n\nlogger.warn('global format with style!');\n\n````\n\n![](https://habrastorage.org/webt/tt/mo/ki/ttmokit6fznu6-bce48wqsgmcys.png)\n\n### Example: CSS classes\n\n```ts\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger({\n    cssClassMap: {\n        'bold': 'font-weight: bold',\n        'line-through': 'text-decoration: line-through',\n        'code-sandbox': `\n            color: #666;\n            background: #f4f4f4;\n            border-left: 3px solid #f36d33;\n            font-family: monospace;\n            font-size: 15px;\n        `\n    }\n});\n\nlogger.cssClass('bold line-through')\n    .log('JavaScript sucks', 'JavaScript is the best');\n\nlogger.cssClass('code-sandbox').log(\n    '\\n   @Component({ .. })' +\n    '\\n   export class AppComponent { .. }    \\n\\n'\n);\n\nlogger.cssClass('bold line-through')\n    .debug('JavaScript sucks', 'JavaScript is the best');\n        \n```\n\n![](https://habrastorage.org/webt/wf/yr/jf/wfyrjfp5uv5ucbhhdmimlrcvazg.png)\n\n### Example: pretty json\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\nconst logger = new ClientLogger();\n\nfetch(\"http://data.io\").then((greatBigJSON) => {\n\n    // default browser print json\n    logger.debug(\"Classic output json\", greatBigJSON);\n    \n    // for pretty json usage logger.log method\n    logger.log(...logger.stringify(greatBigJSON));\n\n});\n```\n\n![](https://habrastorage.org/webt/zq/f9/wk/zqf9wkjej7gcpwmu-wa-nvpoosw.png)\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\nconst logger = new ClientLogger();\n\nfetch(\"http://data.io\").then((greatBigJSON) => {\n    \n    logger\n        .group('Classic output json:')\n        .pipe(({ debug }) => debug('Classic output json: ', greatBigJSON))\n        .close()\n        .group('Pretty output json:')\n        .pipe(({ log, stringify }) => log(...stringify(greatBigJSON)))\n        .close();\n    \n});\n```\n\n![](https://habrastorage.org/webt/cp/yo/no/cpyonombmaemgbpdsqjallxjhuq.png)\n\n### Example: clipboard\n\n```typescript\n\nimport { ClientLogger, LoggerLevel } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\nconst JsonValue = { a: 1, b: [1, 2, 3] };\n\nlogger.group('copy JSON', ({ log, stringify, clipboard }) => {\n    log(...stringify(clipboard.copy(JsonValue)));\n    log('The object you have on the clipboard ...');\n});\n\n````\n\n![](https://habrastorage.org/webt/nq/uo/0z/nquo0zs2_tbvpxkaut4eavh-qeq.gif)\n\n### Example: full configurations\n\n```typescript\nimport { ClientLogger, LoggerLevel } from '@splincode/client-logger';\nimport { MyConsole } from 'node_modules/custom-logger';\n// ..\n\nconst logger = new ClientLogger({\n\n    // Drop-in replacement for console, if needed\n    consoleInstance: <Console> new MyConsole(),\n    \n    // Minimal execute signature\n    minLevel: LoggerLevel.INFO,\n\n    // Custom color\n    configColor: {\n        [LoggerLevel.TRACE]: 'Grey',\n        [LoggerLevel.DEBUG]: 'Blue',\n        [LoggerLevel.INFO]: 'Green',\n        [LoggerLevel.WARN]: 'Orange',\n        [LoggerLevel.ERROR]: 'Red',\n    },\n\n    // Custom label\n    configLabel: {\n        [LoggerLevel.TRACE]: 'trace: ',\n        [LoggerLevel.DEBUG]: 'debug: ',\n        [LoggerLevel.INFO]: 'info: ',\n        [LoggerLevel.WARN]: 'warn: ',\n        [LoggerLevel.ERROR]: 'error: ',\n    }\n\n});\n\nlogger.trace('trace is worked', 1, { a: 1 }); // not execute\nlogger.debug('debug is worked', 2, console); // not execute\nlogger.info('info is worked', 3, Object);\nlogger.warn('warn is worked', 4, String);\nlogger.error('error is worked', 5, (2.55).toFixed());\n```\n\n## Development\nInstall the dependencies:\n\n```bash\nnpm install\n```\n\nRun the dev server\n\n```bash\nnpm start\n```\n\n## Contributing \nYour commit messages have to be in this format:\n\n```bash\ntype(category): description [flags]\n```\n\nWhere type is one of the following:\n* breaking\n* build\n* ci\n* chore\n* docs\n* feat\n* fix\n* other\n* perf\n* refactor\n* revert\n* style\n* test\n\n## Run Tests\nAll logger tests are written with mocha, chai.\n\n```bash\nnpm test\n```\n\n## Todo\n\n- [x] Override console\n- [x] Logger method (trace, debug, info, warning, error)\n- [x] Logger group + groupCollapsible (pipes)\n- [x] Logger pretty write object\n- [x] Set style by css\n- [x] Logger level groups (trace, debug, info, warn, error)\n- [x] Clipboard data\n- [x] Plugin system architecture (mixins)\n- [x] Set global style\n- [x] Added css classes\n- [ ] Format output console\n- [ ] Dependency Injection for Angular\n- [ ] Switch enable/disable default console output\n- [ ] Profiling (memory usage, sizeof, time execute)\n- [ ] Timers (decorator)\n- [ ] Pre process output\n- [ ] Cross-browser fixing\n\n## About\n\nAuthor: [Maxim Ivanov](https://github.com/splincode) <br>\n","readmeFilename":"README.md","gitHead":"ad8f963bc95f9eaaa5226a9fbaefeb7a403b11d1","_id":"@splincode/client-logger@1.0.0-9","_npmVersion":"6.1.0","_nodeVersion":"10.4.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-0CeEvQ+UrboCxnkJtcrD6u4Cb259hZNlt7lgPzmuH736Yj+6G+tM4S+QamhTXCzNxE5cjvJpbDUW8dWwMEwQCA==","shasum":"fd3aff610a750ad9c80fd3e9ab7bbd1d25c7f7cc","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-1.0.0-9.tgz","fileCount":21,"unpackedSize":61602,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbSpmDCRA9TVsSAnZWagAA5ycP+gLeE8297nKNPgpDZvul\nXCznZ/spRfsMKD5xUH3BcBo+H0aDNZ3HpcHCtSMSTJhOH97l29AfP4CHhd7Y\nnk5uC1b9UxYiLE+DWXOq3mzQCcp0AWaKSztG9F7IMQ4VgF+dq2osNI1/XJw2\njZzErjOuSVLwE2A+7NN1JgWjaS82LbR8NlhKO/Now/JrpXusHkm84dN6vWUk\nEQoWZpTSTmoTxel4lPUKKG0UeRZ26vcZMweTeu67vgEVcMA3YONriwW734Zk\nFC8gU9DrrFg74qvMdL3vx9EoqsJ1j7StTA+TkescBX6jh/W+9hfx2quA5+v3\ngydCx20NEKuzUmSjeqLEaYOUnVRzhpcX4vzDoePX/RnVo827sk6F/wSrEipn\nAZrEHw60PDuGO6neepQFHGbK300LlVvm6fZ34+Z7/mfMRQOk9N1NXiThztFX\nOq9zegVqD/8uNwbWUBkZXl+/KTMUDGXNlKp6roAhhRKucjzsYrVTLNtynbby\nDFo6buutkd6/4MC01tXajlAcKHdqPd9ANKLMKvtotrYIwWTxvfDma+znnJmT\n7OMbmqRaSbm1vcs6i3P+9US5iCi4g1VndVzYnA2UnELw0KRuOUXkWtFwroVO\n/DB6CTeJ3q7Y/1FylFFJdZVxFzNRNaqPrqUmRjcWB3dx8kziSLtdGmG1KE/Y\n7NLd\r\n=9ERy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF2AZsadP9yvHDCeX/JcrSGXlrp1YYxVCpgGdIUvbdsKAiBJ7v9TkT45yK9Yh3Ppo5xWuKcHgTDUBF/DZui9MmW+4A=="}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger_1.0.0-9_1531615619732_0.67720374408587"},"_hasShrinkwrap":false},"1.0.0-10":{"name":"@splincode/client-logger","version":"1.0.0-10","description":"Lightweight and configurable JavaScript logger (written on TypeScript)","main":"./lib/index.js","typings":"./lib/index.d.ts","scripts":{"tsc":"tsc","start":"npm run build && concurrently 'npm:lib:*'","lib:demo":"cd demo && npm install && npm run start","lib:rebuild":"onchange 'src/**/*.ts' -- npm run build","build":"rimraf lib && rollup --config rollup.config.js","lint":"tslint -c tslint.json '**/src/**/*.ts' --project .","test":"nyc --reporter=html --reporter=text mocha --opts ./mocha.opts src/**/*.spec.ts","coverage":"nyc report --reporter=text-lcov | coveralls","git:release":"git push origin && git push origin --tags","update:changelog":"git add . && git commit -m \"chore(repo): updated CHANGELOG.md\"","release:major":"changelog -M && npm run update:changelog && npm version major && npm publish && npm run git:release","release:minor":"changelog -m && npm run update:changelog && npm version minor && npm publish && npm run git:release","release:patch":"changelog -p && npm run update:changelog && npm version patch && npm publish && npm run git:release","prerelease":"npm version prerelease && npm publish --tag next && npm run git:release"},"nyc":{"include":["src/*.ts","src/**/*.ts"],"extension":[".ts"],"require":["tsconfig-paths/register","ts-node/register"],"reporter":["text-summary","html"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"keywords":["console","logger","javascript","browser","typescript"],"author":{"name":"splincodewd"},"license":"MIT","bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"homepage":"https://github.com/splincodewd/client-logger#readme","devDependencies":{"benchmark":"^2.1.4","chai":"^4.1.2","concurrently":"^3.6.0","coveralls":"^3.0.1","generate-changelog":"^1.7.1","mocha":"^4.1.0","nyc":"^11.8.0","onchange":"^4.0.0","rimraf":"^2.6.2","rollup":"^0.62.0","rollup-plugin-typescript2":"^0.15.1","ts-node":"^4.1.0","tsconfig-paths":"^3.4.2","tslint":"^5.10.0","tslint-config-standard":"^7.0.0","typescript":"^2.8.3","window":"^4.2.5"},"readme":"# ClientLogger\n\n> Lightweight and configurable JavaScript logger (written on TypeScript)\n\n [![Build Status](https://travis-ci.org/splincodewd/client-logger.svg?branch=master)](https://travis-ci.org/splincodewd/client-logger)  [![npm version](https://badge.fury.io/js/%40splincode%2Fclient-logger.svg)](https://badge.fury.io/js/%40splincode%2Fclient-logger) [![npm version next](https://img.shields.io/npm/v/@splincode/client-logger/next.svg)](https://www.npmjs.com/package/@splincode/client-logger/v/next)  [![dependencies Status](https://david-dm.org/splincodewd/client-logger/status.svg)](https://david-dm.org/splincodewd/client-logger) [![Coverage Status](https://coveralls.io/repos/github/splincodewd/client-logger/badge.svg?branch=master)](https://coveralls.io/github/splincodewd/client-logger?branch=master) [![npm-stat](https://img.shields.io/npm/dt/@splincode/client-logger.svg)](https://npm-stat.com/charts.html?package=%40splincode%2Fclient-logger&from=2017-01-12)\n\n## Installation\n\n```bash\nnpm i @splincode/client-logger --save-dev\n```\n\n## Motivation\n\nThis logger is a handy tool that can be useful \nin the design and development of the enterprise application level.\nEasy setting of logging levels and convenient work with groups.\nAmong other things, you can use meta programming (decorators).\n\n## Usage\n\nYou could easily use this Logger in the browser. \nYou only need to install the package and import it in your scripts before assembly.\nTo see how to use the Logger please \n[follow the link](https://stackblitz.com/edit/typescript-m8n8tj?file=index.ts) \nor follow that's [link](https://splincodewd.github.io/client-logger).\n\nYou can also run the examples on webpack:\n\n```ts\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n```\n\n## Table of contents\n\n* [Logging](#)\n  * [Basic usage API `trace`, `debug`, `info`, `warn`. `error`](#example-basic-methods)\n  * [Groups, `groupCollapsed`, `collapsible`](#example-groups)\n  * [Nested groups (usage pipe method)](#example-nested-groups)\n  * [Set logging level (worked in single or groups)](#example-set-minimal-logging-level)\n  * [Customization style line](#example-set-style-line)\n  * [Customization global style line](#example-set-global-style-line)\n  * [Add css classes](#example-css-classes)\n  * [Output pretty json `stringify`](#example-pretty-json)\n  * [Copy `json, object, text` to clipboard](#example-clipboard)\n  * [Configuration `ClientLogger`](#example-full-configurations)\n* [Development](#development)\n* [Contributing](#contributing)\n* [Run Tests](#run-tests)\n* [Todo](#todo)\n\n## Logging\n\n![](https://habrastorage.org/webt/xi/ku/d9/xikud9fkxwng2ndu66f_c8yolag.gif)\n\n### Example: basic methods\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger.trace('trace is worked', 1, { a: 1 });\nlogger.debug('debug is worked', 2, console);\nlogger.info('info is worked', 3, Object);\nlogger.warn('warn is worked', 4, String);\nlogger.error('error is worked', 5, (2.55).toFixed());\n```\n\n* **Default level: All**\n\n![](https://habrastorage.org/webt/x-/bc/3b/x-bc3bztgftwzvamekuffrxcilq.png)\n\n* **Show time**\n\n![](https://habrastorage.org/webt/1i/lj/rh/1iljrhzeiw_3mvbaji5gcx2adnm.gif)\n\n* **Disable trace on console (filter):**\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nfor (let i = 0; i < 20; i++) {\n    logger.trace('trace is worked', i);\n}\n```\n\n![](https://habrastorage.org/webt/un/fl/81/unfl81h_wjnltr184of-vx1skio.gif)\n\n### Example: groups\n\n* **Logger groups with auto closed (usage callback):**\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger.groupCollapsed('EXAMPLE 2: show stack', () => {\n    logger.trace('trace is worked', 1, { a: 1 });\n    logger.debug('debug is worked', 2, console);\n    logger.info('info is worked', 3, Object);\n    logger.warn('warn is worked', 4, String);\n    logger.error('error is worked', 5, (2.55).toFixed());\n});\n\nlogger.group('Show trace in opened group', ({ trace }) => {\n    for (let i = 0; i < 20; i++) {\n        trace('trace is worked', i);\n    }\n});\n\nlogger.groupCollapsed('Show trace in collapsed group', ({ trace }) => {\n    for (let i = 0; i < 20; i++) {\n        trace('trace is worked', i);\n    }\n});\n```\n\n![](https://habrastorage.org/webt/zs/hv/fz/zshvfzrcslnsqo3dvyeiskrkwik.png)\n\n### Example: nested groups\n\n* **Logger nested groups (with pipe):**\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger\n    .groupCollapsed('GROUP TEST')\n    .pipe(({ trace, debug, info, warn, error }) => {\n        trace('trace is worked');\n        debug('debug is worked');\n        info('info is worked');\n        warn('warn is worked');\n        error('error is worked');\n    })\n    .close();\n\nlogger\n    .group('A')\n    .pipe(\n        ({ trace }) => trace('trace is worked'),\n        ({ debug }) => debug('debug is worked'),\n        ({ info }) => info('info is worked'),\n        ({ warn }) => warn('warn is worked'),\n        ({ error }) => error('error is worked')\n    )\n    .groupCollapsed('B')\n    .pipe(\n        ({ trace }) => trace('trace is worked'),\n        ({ debug }) => debug('debug is worked'),\n        ({ info }) => info('info is worked'),\n        ({ warn }) => warn('warn is worked'),\n        ({ error }) => error('error is worked')\n    )\n    .group('C')\n    .pipe(\n        ({ trace }) => trace('trace is worked'),\n        ({ debug }) => debug('debug is worked'),\n        ({ info }) => info('info is worked'),\n        ({ warn }) => warn('warn is worked'),\n        ({ error }) => error('error is worked')\n    )\n    .closeAll(); // closed all opened group\n```\n\n![](https://habrastorage.org/webt/77/vi/gm/77vigmltfbdmxhiruv8xgxwjdrg.gif)\n\n### Example: set minimal logging level\n\nBasic parameterization\n\n```typescript\nimport { ClientLogger, LoggerLevel } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger.trace.group('A opened', ({ trace }) => trace('trace group is worked'));\nlogger.debug.group('B opened', ({ debug }) => debug('debug group is worked'));\nlogger.info.group('C opened', ({ info }) => info('info group is worked'));\nlogger.warn.group('D opened', ({ warn }) =>  warn('warn group is worked'));\nlogger.error.group('E opened', ({ error }) => error('error group is worked'));\n\nconst level = LoggerLevel.INFO;\nlogger.log('Set new logger level', LoggerLevel[level]);\nlogger.level = level;\n\nlogger.trace.groupCollapsed('A collapsed', ({ trace }) => trace('trace group is worked'));\nlogger.debug.groupCollapsed('B collapsed', ({ debug }) => debug('debug group is worked'));\nlogger.info.groupCollapsed('C collapsed', ({ info }) => info('info group is worked'));\nlogger.warn.groupCollapsed('D collapsed', ({ warn }) => warn('warn group is worked'));\nlogger.error.groupCollapsed('E collapsed', ({ error }) => error('error group is worked'));\n\n```\n\n![](https://habrastorage.org/webt/bc/zc/dc/bczcdc_vicubrqr30jq3prg7no4.png)\n\n* **Logger level groups (pretty usage API):**\n\n```typescript\nimport { ClientLogger, LoggerLevel } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nconst level = LoggerLevel.INFO;\nlogger.log('Set new logger level', LoggerLevel[level]);\nlogger.level = level;\n\nlogger.trace.group('A')\n    .pipe(({ trace }) => trace('trace is worked from A'))\n    .pipe(({ debug }) => debug('debug is worked from A'))\n    .pipe(({ info }) => info('info is worked from A'))\n    .pipe(({ warn }) => warn('warn is worked from A'))\n    .pipe(({ error }) => error('error is worked from A'))\n    .close()\n\n    .debug.group('B')\n    .pipe(({ trace }) => trace('trace is worked from B'))\n    .pipe(({ debug }) => debug('debug is worked from B'))\n    .pipe(({ info }) => info('info is worked from B'))\n    .pipe(({ warn }) => warn('warn is worked from B'))\n    .pipe(({ error }) => error('error is worked from B'))\n    .close()\n\n    .info.group('C')\n    .pipe(({ trace }) => trace('trace is worked from C'))\n    .pipe(({ debug }) => debug('debug is worked from C'))\n    .pipe(({ info }) => info('info is worked from C'))\n    .pipe(({ warn }) => warn('warn is worked from C'))\n    .pipe(({ error }) => error('error is worked from C'))\n    .close()\n\n    .warn.group('D')\n    .pipe(({ trace }) => trace('trace is worked from D'))\n    .pipe(({ debug }) => debug('debug is worked from D'))\n    .pipe(({ info }) => info('info is worked from D'))\n    .pipe(({ warn }) => warn('warn is worked from D'))\n    .pipe(({ error }) => error('error is worked from D'))\n    .close()\n\n    .error.group('E')\n    .pipe(({ trace }) => trace('trace is worked from E'))\n    .pipe(({ debug }) => debug('debug is worked from E'))\n    .pipe(({ info }) => info('info is worked from E'))\n    .pipe(({ warn }) => warn('warn is worked from E'))\n    .pipe(({ error }) => error('error is worked from E'))\n    .close();\n\n```\n\n![](https://habrastorage.org/webt/ca/rb/ub/carbube17g4h42ye2fjcvstcw_c.png)\n\n### Example: set style line\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\n\nlogger\n    .css({ textTransform: 'uppercase', fontWeight: 'bold' })\n    .debug('window current ', window);\n\nlogger\n    .css('color: red; text-decoration: underline; font-weight: bold')\n    .info('It is awesome logger');\n\nlogger.warn('logger.css(...) does not define a global format!');\nlogger.info('For global configuration, use the constructor parameters');\n````\n\n![](https://habrastorage.org/webt/4s/co/wh/4scowhxaxdl8ikcmxpyjtko269m.png)\n\n### Example: set global style line\n\n```typescript\nimport { ClientLogger, FormatLine } from '@splincode/client-logger';\n\nconst logger = new ClientLogger({\n    lineStyle: {\n        style: 'color: red; text-decoration: underline; font-weight: bold; font-size: 15px',\n        format: FormatLine.STRING\n    }\n});\n\nlogger\n    .css('font-weight: normal; text-decoration: none;', FormatLine.INT)\n    .info(3.14); // 3\n\nlogger\n    .css('font-weight: normal;', FormatLine.FLOAT)\n    .info(3.14); // 3.14\n\nlogger.warn('global format with style!');\n\n````\n\n![](https://habrastorage.org/webt/tt/mo/ki/ttmokit6fznu6-bce48wqsgmcys.png)\n\n### Example: CSS classes\n\n```ts\nimport { ClientLogger } from '@splincode/client-logger';\n\nconst logger = new ClientLogger({\n    cssClassMap: {\n        'bold': 'font-weight: bold',\n        'line-through': 'text-decoration: line-through',\n        'code-sandbox': `\n            color: #666;\n            background: #f4f4f4;\n            border-left: 3px solid #f36d33;\n            font-family: monospace;\n            font-size: 15px;\n        `\n    }\n});\n\nlogger.cssClass('bold line-through')\n    .log('JavaScript sucks', 'JavaScript is the best');\n\nlogger.cssClass('code-sandbox').log(\n    '\\n   @Component({ .. })' +\n    '\\n   export class AppComponent { .. }    \\n\\n'\n);\n\nlogger.cssClass('bold line-through')\n    .debug('JavaScript sucks', 'JavaScript is the best');\n        \n```\n\n![](https://habrastorage.org/webt/wf/yr/jf/wfyrjfp5uv5ucbhhdmimlrcvazg.png)\n\n### Example: pretty json\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\nconst logger = new ClientLogger();\n\nfetch(\"http://data.io\").then((greatBigJSON) => {\n\n    // default browser print json\n    logger.debug(\"Classic output json\", greatBigJSON);\n    \n    // for pretty json usage logger.log method\n    logger.log(...logger.stringify(greatBigJSON));\n\n});\n```\n\n![](https://habrastorage.org/webt/zq/f9/wk/zqf9wkjej7gcpwmu-wa-nvpoosw.png)\n\n```typescript\nimport { ClientLogger } from '@splincode/client-logger';\nconst logger = new ClientLogger();\n\nfetch(\"http://data.io\").then((greatBigJSON) => {\n    \n    logger\n        .group('Classic output json:')\n        .pipe(({ debug }) => debug('Classic output json: ', greatBigJSON))\n        .close()\n        .group('Pretty output json:')\n        .pipe(({ log, stringify }) => log(...stringify(greatBigJSON)))\n        .close();\n    \n});\n```\n\n![](https://habrastorage.org/webt/cp/yo/no/cpyonombmaemgbpdsqjallxjhuq.png)\n\n### Example: clipboard\n\n```typescript\n\nimport { ClientLogger, LoggerLevel } from '@splincode/client-logger';\n\nconst logger = new ClientLogger();\nconst JsonValue = { a: 1, b: [1, 2, 3] };\n\nlogger.group('copy JSON', ({ log, stringify, clipboard }) => {\n    log(...stringify(clipboard.copy(JsonValue)));\n    log('The object you have on the clipboard ...');\n});\n\n````\n\n![](https://habrastorage.org/webt/nq/uo/0z/nquo0zs2_tbvpxkaut4eavh-qeq.gif)\n\n### Example: full configurations\n\n```typescript\nimport { ClientLogger, LoggerLevel } from '@splincode/client-logger';\nimport { MyConsole } from 'node_modules/custom-logger';\n// ..\n\nconst logger = new ClientLogger({\n\n    // Drop-in replacement for console, if needed\n    consoleInstance: <Console> new MyConsole(),\n    \n    // Minimal execute signature\n    minLevel: LoggerLevel.INFO,\n\n    // Custom color\n    configColor: {\n        [LoggerLevel.TRACE]: 'Grey',\n        [LoggerLevel.DEBUG]: 'Blue',\n        [LoggerLevel.INFO]: 'Green',\n        [LoggerLevel.WARN]: 'Orange',\n        [LoggerLevel.ERROR]: 'Red',\n    },\n\n    // Custom label\n    configLabel: {\n        [LoggerLevel.TRACE]: 'trace: ',\n        [LoggerLevel.DEBUG]: 'debug: ',\n        [LoggerLevel.INFO]: 'info: ',\n        [LoggerLevel.WARN]: 'warn: ',\n        [LoggerLevel.ERROR]: 'error: ',\n    }\n\n});\n\nlogger.trace('trace is worked', 1, { a: 1 }); // not execute\nlogger.debug('debug is worked', 2, console); // not execute\nlogger.info('info is worked', 3, Object);\nlogger.warn('warn is worked', 4, String);\nlogger.error('error is worked', 5, (2.55).toFixed());\n```\n\n## Development\nInstall the dependencies:\n\n```bash\nnpm install\n```\n\nRun the dev server\n\n```bash\nnpm start\n```\n\n## Contributing \nYour commit messages have to be in this format:\n\n```bash\ntype(category): description [flags]\n```\n\nWhere type is one of the following:\n* breaking\n* build\n* ci\n* chore\n* docs\n* feat\n* fix\n* other\n* perf\n* refactor\n* revert\n* style\n* test\n\n## Run Tests\nAll logger tests are written with mocha, chai.\n\n```bash\nnpm test\n```\n\n## Todo\n\n- [x] Override console\n- [x] Logger method (trace, debug, info, warning, error)\n- [x] Logger group + groupCollapsible (pipes)\n- [x] Logger pretty write object\n- [x] Set style by css\n- [x] Logger level groups (trace, debug, info, warn, error)\n- [x] Clipboard data\n- [x] Plugin system architecture (mixins)\n- [x] Set global style\n- [x] Added css classes\n- [ ] Format output console\n- [ ] Dependency Injection for Angular\n- [ ] Switch enable/disable default console output\n- [ ] Profiling (memory usage, sizeof, time execute)\n- [ ] Timers (decorator)\n- [ ] Pre process output\n- [ ] Cross-browser fixing\n\n## About\n\nAuthor: [Maxim Ivanov](https://github.com/splincode) <br>\n","readmeFilename":"README.md","gitHead":"348a0096f430446620dda583abd4d59e875169ee","_id":"@splincode/client-logger@1.0.0-10","_npmVersion":"6.1.0","_nodeVersion":"10.4.0","_npmUser":{"name":"splincode","email":"omaxphp@yandex.ru"},"dist":{"integrity":"sha512-A+SaOrpSvm235I03k9ioHHPzaUfQ19aG1MhL6/pzRsi8/Zdp7UAlFSSKH4p/UCWj1sv1PstqmGi6ZvaUZ6z3Lg==","shasum":"94a3ce662283fa6913a1282b9ab5c2588aee8642","tarball":"https://registry.npmjs.org/@splincode/client-logger/-/client-logger-1.0.0-10.tgz","fileCount":40,"unpackedSize":60393,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbSpnDCRA9TVsSAnZWagAAN0UP+wcNCUnhC53PR+YlMpiz\nLVfkV0QRz/RsZSyi75KkMdxT/C3kkvCvjA75OSXur8msCBw+YJd/+YnM32WD\naQ4ULFKA+AIi2IobUrNx7ETy4Q5O/zuZlUUhtKFuUTvAALc2i0htD3lQFZkh\nP/riGzunOj0LM5JjAEEHA7YetKjey3/BwE4V4D62S673VD3ZSZeZkS6ybn6x\n638KKQoeaR99EvrYhqjEvXSf9zJ5CEj9/Z7s/tSrOqmMdGholD89wP3dFUKm\nbJCO4LryqeakhzgwmYltjnL9/MJ2AHrQHl2n3feMoLZsFSArmzVCjGx7+a6Z\nLi0p6yv0MlMBLE9Q5mxt/h0EdbPmGDzW7LbKgW3E8LUtr68dAa+TbVh0r50B\n+niwkrvXETX4HVMXjH9FKrFYvFx8ZEiMeXMTtAPHnJjG0kHznvuVivYi93Pi\nut7Wj7ihmzArt31p2T5sSHZvEdTsvnFoxsSojvdf7LtZbBGH8gpohXEJ5QwB\nFwu1JHf0vTwmbPPHCMUvHEj3SI80J8QLlJwF2n+a+NU0hnkjzJRgG6W9rbSD\nTfmLjcv2y3ws5EcDJKUKXiG2/rQBgUO2bv4RNp/+oa6NuNeGJ86H/6dRdIqK\nv4GKU4q0QslHjfn76x3QPxYUh0pBBjO5PESJUhFDJ5MYyIc3IH7EP4IeBXwi\nqVO6\r\n=7ZGZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDF10gS3dM7chEhfqa/YGYnEBvIcKchoenmApvTi46nUgIhAP4sz7sPHqu4EDSGl4DNTwYrnC3yL0B7vTgoE7vm1imE"}]},"maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/client-logger_1.0.0-10_1531615683489_0.5466831520996049"},"_hasShrinkwrap":false}},"readme":"","maintainers":[{"name":"splincode","email":"omaxphp@yandex.ru"}],"time":{"modified":"2022-04-07T01:36:17.660Z","created":"2017-12-06T18:49:51.529Z","0.0.1":"2017-12-06T18:49:51.529Z","0.0.2":"2017-12-06T19:07:53.381Z","0.0.3":"2017-12-06T20:38:04.394Z","0.0.4":"2017-12-06T20:57:53.080Z","0.0.5":"2017-12-06T21:00:39.588Z","0.0.6":"2017-12-06T21:04:29.545Z","0.0.7":"2017-12-06T21:12:09.106Z","0.0.8":"2017-12-06T21:16:43.342Z","0.0.9":"2017-12-06T21:18:39.290Z","0.0.10":"2017-12-06T21:20:42.218Z","0.0.11":"2017-12-06T21:26:18.391Z","0.0.12":"2017-12-06T21:33:46.567Z","0.0.13":"2017-12-06T21:34:57.453Z","0.0.14":"2017-12-06T21:37:16.687Z","0.0.15":"2017-12-06T21:58:51.425Z","0.0.16":"2017-12-06T22:11:41.108Z","0.0.17":"2017-12-09T11:41:03.582Z","0.0.20":"2017-12-10T12:17:07.120Z","0.0.21":"2017-12-10T13:25:22.200Z","0.0.22":"2017-12-10T14:04:03.459Z","0.0.23":"2017-12-10T14:05:52.347Z","0.0.24":"2017-12-10T14:17:26.516Z","0.0.25":"2017-12-10T14:20:45.664Z","0.0.26":"2017-12-10T14:54:23.841Z","0.0.27":"2017-12-10T15:31:30.014Z","0.0.28":"2017-12-10T15:41:25.062Z","0.0.29":"2017-12-13T20:33:10.259Z","0.0.30":"2017-12-13T20:35:18.854Z","0.0.31":"2017-12-16T19:32:27.399Z","0.0.32":"2018-01-09T21:02:10.376Z","0.0.33":"2018-01-09T21:04:44.461Z","0.0.34":"2018-01-10T20:36:48.132Z","0.0.35":"2018-01-11T07:29:23.027Z","0.1.0":"2018-02-14T22:09:36.326Z","0.2.0":"2018-02-18T16:37:58.943Z","0.3.0":"2018-02-18T20:49:48.746Z","0.4.0":"2018-02-19T23:21:31.235Z","0.4.1":"2018-02-19T23:26:01.078Z","0.4.2":"2018-02-23T22:09:22.764Z","0.4.3":"2018-02-23T22:15:59.176Z","0.5.0":"2018-02-24T17:07:20.470Z","0.5.1":"2018-04-08T11:13:55.003Z","0.5.2":"2018-05-24T14:31:18.123Z","1.0.0-2":"2018-05-24T15:10:56.511Z","1.0.0-3":"2018-05-24T15:19:45.777Z","1.0.0-4":"2018-07-05T23:17:54.731Z","1.0.0":"2018-07-09T20:27:20.352Z","1.0.0-5":"2018-07-09T20:32:13.253Z","1.0.0-8":"2018-07-15T00:07:35.716Z","1.0.0-9":"2018-07-15T00:46:59.818Z","1.0.0-10":"2018-07-15T00:48:03.576Z"},"homepage":"https://github.com/splincodewd/client-logger#readme","keywords":["console","logger","javascript","browser","typescript"],"repository":{"type":"git","url":"git+https://github.com/splincodewd/client-logger.git"},"author":{"name":"splincodewd"},"bugs":{"url":"https://github.com/splincodewd/client-logger/issues"},"license":"MIT","readmeFilename":""}