{"_id":"@0xcryptomag/winston-plus","_rev":"6-46efe4ff55eecce38d9216008ed0efe1","name":"@0xcryptomag/winston-plus","dist-tags":{"latest":"1.0.5"},"versions":{"1.0.0":{"name":"@0xcryptomag/winston-plus","version":"1.0.0","keywords":["winston","console","format","formatter","inspect","debug","debugging","table","cli-table3","dev","plus"],"author":{"url":"https://github.com/0xCryptoMag/","name":"Josiah Magnusson","email":"github.mq0mx@slmail.me"},"license":"MIT","_id":"@0xcryptomag/winston-plus@1.0.0","maintainers":[{"name":"0xcryptomag","email":"npmjs.rgpin@slmail.me"}],"dist":{"shasum":"0c7e069c9c49cf1b07b845f22eb0689e1df594ac","tarball":"https://registry.npmjs.org/@0xcryptomag/winston-plus/-/winston-plus-1.0.0.tgz","fileCount":40,"integrity":"sha512-IT59nZArHZp21Z6JPDMU0e9xsMjFmKFaXEO26vvtnpuXhl8nu6XygeEgy0U388cTn74TWjmSTqIBGE8IgRYwoQ==","signatures":[{"sig":"MEQCIAqK1Slpy9+fDLQYXAQSuHwVJwaDHBddAM5AUEZGRcYZAiB7NjIXeDTXK4UXSbUJMunV84KqLMQV2LnomTXLuEeoNQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1739596},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"a7df5eabb23db0cd2ab645f79b1537f3bb145f80","scripts":{"lint":"eslint ./src --ext ts --ext js","test":"echo noop","build":"tsc --build","example":"node ./example/index.js","build:watch":"tsc --build --watch"},"_npmUser":{"name":"0xcryptomag","email":"npmjs.rgpin@slmail.me"},"_npmVersion":"10.8.1","description":"Winston@3 console format aimed to improve development UX","directories":{},"_nodeVersion":"20.16.0","dependencies":{"colors":"^1.4.0","dotenv":"^16.4.5","logform":"^2.3.0","cli-table3":"0.6.5","triple-beam":"^1.3.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^7.22.0","prettier":"2.2.1","typescript":"^4.2.3","@types/node":"^14.14.37","@types/logform":"^1.10.1","@types/triple-beam":"^1.3.2","eslint-plugin-import":"^2.22.1","eslint-plugin-lodash":"^7.2.0","eslint-config-prettier":"8.1.0","eslint-plugin-prettier":"^3.3.1","@typescript-eslint/parser":"4.19.0","@typescript-eslint/eslint-plugin":"4.19.0"},"peerDependencies":{"winston":"^3.x"},"_npmOperationalInternal":{"tmp":"tmp/winston-plus_1.0.0_1724540506077_0.7363524215124684","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@0xcryptomag/winston-plus","version":"1.0.1","keywords":["winston","console","format","formatter","inspect","debug","debugging","table","cli-table3","dev","plus"],"author":{"url":"https://github.com/0xCryptoMag/","name":"Josiah Magnusson","email":"github.mq0mx@slmail.me"},"license":"MIT","_id":"@0xcryptomag/winston-plus@1.0.1","maintainers":[{"name":"0xcryptomag","email":"npmjs.rgpin@slmail.me"}],"dist":{"shasum":"0bf112fdc9150b7b3e51dab86b27d41cb46b0335","tarball":"https://registry.npmjs.org/@0xcryptomag/winston-plus/-/winston-plus-1.0.1.tgz","fileCount":40,"integrity":"sha512-JdCcfAVcbf2EaKqUU1LMIGvLytBwWwRX2EkVeO8YalodDGzhvuvj0HV8fIoSHS9PgnMAFNxHaVcCAu/oAstvdw==","signatures":[{"sig":"MEYCIQDU5gfeePcjFgl0ZgT+ayXdeNbDufNgqg/UQW1Rew06MwIhAKmZpjbLLTpDjSh/4pR+CpNBQyTgXEipqZBBa1R4RESl","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1739677},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"9f9ca9165515b2224842b4b00eba9041b74b7964","scripts":{"lint":"eslint ./src --ext ts --ext js","test":"echo noop","build":"tsc --build","example":"node ./example/index.js","build:watch":"tsc --build --watch"},"_npmUser":{"name":"0xcryptomag","email":"npmjs.rgpin@slmail.me"},"_npmVersion":"10.8.1","description":"Winston@3 console format aimed to improve development UX","directories":{},"_nodeVersion":"20.16.0","dependencies":{"colors":"^1.4.0","dotenv":"^16.4.5","logform":"^2.3.0","cli-table3":"0.6.5","triple-beam":"^1.3.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^7.22.0","prettier":"2.2.1","typescript":"^4.2.3","@types/node":"^14.14.37","@types/logform":"^1.10.1","@types/triple-beam":"^1.3.2","eslint-plugin-import":"^2.22.1","eslint-plugin-lodash":"^7.2.0","eslint-config-prettier":"8.1.0","eslint-plugin-prettier":"^3.3.1","@typescript-eslint/parser":"4.19.0","@typescript-eslint/eslint-plugin":"4.19.0"},"peerDependencies":{"winston":"^3.x"},"_npmOperationalInternal":{"tmp":"tmp/winston-plus_1.0.1_1724677689497_0.92518304588259","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@0xcryptomag/winston-plus","version":"1.0.2","keywords":["winston","console","format","formatter","inspect","debug","debugging","table","cli-table3","dev","plus"],"author":{"url":"https://github.com/0xCryptoMag/","name":"Josiah Magnusson","email":"github.mq0mx@slmail.me"},"license":"MIT","_id":"@0xcryptomag/winston-plus@1.0.2","maintainers":[{"name":"0xcryptomag","email":"npmjs.rgpin@slmail.me"}],"dist":{"shasum":"52ff39d1b4086e3593dd0f9a6ca30f6a9497ceec","tarball":"https://registry.npmjs.org/@0xcryptomag/winston-plus/-/winston-plus-1.0.2.tgz","fileCount":41,"integrity":"sha512-8O0XPAeB1d0Kqv6T7vwdsSFYn/63SGxxAcAIeTTCAsGpCUe/YLpupLHLLzvOl2fAJ7JYhG2Dnuz0/yV6cf2MOQ==","signatures":[{"sig":"MEUCIHSSjp5AjJ7DKcbQBVGCjhMiCe8DGNq8XiGLcB9svwCFAiEApkag3Nfh0p9IWLz6Wmx+1MQQrZ2mBibj+9umBI9MmRg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1746947},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"2f98b4c703b384a627dd83ed31fd22ba83170cbf","scripts":{"lint":"eslint ./src --ext ts --ext js","test":"echo noop","build":"tsc --build","example":"node ./example/index.js","build:watch":"tsc --build --watch"},"_npmUser":{"name":"0xcryptomag","email":"npmjs.rgpin@slmail.me"},"_npmVersion":"10.9.0","description":"Winston@3 console format aimed to improve development UX","directories":{},"_nodeVersion":"22.11.0","dependencies":{"colors":"^1.4.0","dotenv":"^16.4.5","logform":"^2.3.0","cli-table3":"0.6.5","triple-beam":"^1.3.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^7.22.0","prettier":"2.2.1","typescript":"^4.2.3","@types/node":"^14.14.37","@types/logform":"^1.10.1","@types/triple-beam":"^1.3.2","eslint-plugin-import":"^2.22.1","eslint-plugin-lodash":"^7.2.0","eslint-config-prettier":"8.1.0","eslint-plugin-prettier":"^3.3.1","@typescript-eslint/parser":"4.19.0","@typescript-eslint/eslint-plugin":"4.19.0"},"peerDependencies":{"winston":"^3.x"},"_npmOperationalInternal":{"tmp":"tmp/winston-plus_1.0.2_1759087773205_0.8018461198303315","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@0xcryptomag/winston-plus","version":"1.0.3","keywords":["winston","console","format","formatter","inspect","debug","debugging","table","cli-table3","dev","plus"],"author":{"url":"https://github.com/0xCryptoMag/","name":"Josiah Magnusson","email":"github.mq0mx@slmail.me"},"license":"MIT","_id":"@0xcryptomag/winston-plus@1.0.3","maintainers":[{"name":"0xcryptomag","email":"npmjs.rgpin@slmail.me"}],"dist":{"shasum":"cd37dcc1947dc99362023f03d3eb8ce349c28a05","tarball":"https://registry.npmjs.org/@0xcryptomag/winston-plus/-/winston-plus-1.0.3.tgz","fileCount":42,"integrity":"sha512-QSIYtpRi9d0cfqjiJ7kYX3KPnbQhHkmbBs8DrsgbwhxFAPjrqTCemOSe5QRvMmPKOtt+JB+nehRS4yuUcORM+w==","signatures":[{"sig":"MEUCICOy7YOZwNGUvDizYvSollSpX3Ncs2tlP+3HDZeSw1tWAiEAslJgebSGP8XSro2CzDBFD3hrAmnJBtSMZYsWrfZXC/U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1740905},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"843cee5ccdb5c3376d082ff8aa757908d0f2f453","scripts":{"lint":"eslint ./src --ext ts --ext js","test":"echo noop","build":"tsc --build","example":"node ./example/index.js","build:watch":"tsc --build --watch"},"_npmUser":{"name":"0xcryptomag","email":"npmjs.rgpin@slmail.me"},"_npmVersion":"11.6.2","description":"Winston@3 console format aimed to improve development UX","directories":{},"_nodeVersion":"24.11.0","dependencies":{"colors":"^1.4.0","dotenv":"^16.4.5","logform":"^2.3.0","cli-table3":"0.6.5","triple-beam":"^1.3.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^7.22.0","prettier":"2.2.1","typescript":"^4.2.3","@types/node":"^14.14.37","@types/logform":"^1.10.1","@types/triple-beam":"^1.3.2","eslint-plugin-import":"^2.22.1","eslint-plugin-lodash":"^7.2.0","eslint-config-prettier":"8.1.0","eslint-plugin-prettier":"^3.3.1","@typescript-eslint/parser":"4.19.0","@typescript-eslint/eslint-plugin":"4.19.0"},"peerDependencies":{"winston":"^3.x"},"_npmOperationalInternal":{"tmp":"tmp/winston-plus_1.0.3_1764877751189_0.10756089592826701","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@0xcryptomag/winston-plus","version":"1.0.4","keywords":["winston","console","format","formatter","inspect","debug","debugging","table","cli-table3","dev","plus"],"author":{"url":"https://github.com/0xCryptoMag/","name":"Josiah Magnusson","email":"github.mq0mx@slmail.me"},"license":"MIT","_id":"@0xcryptomag/winston-plus@1.0.4","maintainers":[{"name":"0xcryptomag","email":"npmjs.rgpin@slmail.me"}],"dist":{"shasum":"8a2066ebf8637325b7076f599ebdf971e334c20b","tarball":"https://registry.npmjs.org/@0xcryptomag/winston-plus/-/winston-plus-1.0.4.tgz","fileCount":41,"integrity":"sha512-bgWPPYEGuKT+NJfIV8Yv/u7si8JxLRRTCv18Oov7u2SUAjlaf+bdjGGuxvs9MmhAY4WAHI/I3aSX/I2yeSgmYg==","signatures":[{"sig":"MEUCIDKcguD6vrikNbZYSKJTyHuzoUBysnsyrAV1h2Rt491rAiEAnrpX2kJATwLdhTuywVTEXWpC+ozWCqqZCW6FblnIyHY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1740127},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"ecfe132440f6d5277773ffc3d102b2c76e508561","scripts":{"lint":"eslint ./src --ext ts --ext js","test":"echo noop","build":"tsc --build","example":"node ./example/index.js","build:watch":"tsc --build --watch"},"_npmUser":{"name":"0xcryptomag","email":"npmjs.rgpin@slmail.me"},"_npmVersion":"11.6.2","description":"Winston@3 console format aimed to improve development UX","directories":{},"_nodeVersion":"24.11.0","dependencies":{"colors":"^1.4.0","dotenv":"^16.4.5","logform":"^2.3.0","cli-table3":"0.6.5","triple-beam":"^1.3.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^7.22.0","prettier":"2.2.1","typescript":"^4.2.3","@types/node":"^14.14.37","@types/logform":"^1.10.1","@types/triple-beam":"^1.3.2","eslint-plugin-import":"^2.22.1","eslint-plugin-lodash":"^7.2.0","eslint-config-prettier":"8.1.0","eslint-plugin-prettier":"^3.3.1","@typescript-eslint/parser":"4.19.0","@typescript-eslint/eslint-plugin":"4.19.0"},"peerDependencies":{"winston":"^3.x"},"_npmOperationalInternal":{"tmp":"tmp/winston-plus_1.0.4_1765330474684_0.32643735761651693","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@0xcryptomag/winston-plus","description":"Winston@3 console format aimed to improve development UX","version":"1.0.5","license":"MIT","author":{"name":"Josiah Magnusson","email":"github.mq0mx@slmail.me","url":"https://github.com/0xCryptoMag/"},"keywords":["winston","console","format","formatter","inspect","debug","debugging","table","cli-table3","dev","plus"],"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"echo noop","build":"tsc --build","build:watch":"tsc --build --watch","lint":"eslint ./src --ext ts --ext js","example":"node ./example/index.js"},"dependencies":{"cli-table3":"0.6.5","colors":"^1.4.0","dotenv":"^16.4.5","logform":"^2.3.0","triple-beam":"^1.3.0"},"peerDependencies":{"winston":"^3.x"},"devDependencies":{"@types/logform":"^1.10.1","@types/node":"^14.14.37","@types/triple-beam":"^1.3.2","@typescript-eslint/eslint-plugin":"4.19.0","@typescript-eslint/parser":"4.19.0","eslint":"^7.22.0","eslint-config-prettier":"8.1.0","eslint-plugin-import":"^2.22.1","eslint-plugin-lodash":"^7.2.0","eslint-plugin-prettier":"^3.3.1","prettier":"2.2.1","typescript":"^4.2.3"},"gitHead":"394eb02ad475ea81e9c6a9afe972b33305f08b36","_id":"@0xcryptomag/winston-plus@1.0.5","_nodeVersion":"24.11.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-1iMkzZeUUlt2Iz6DMC7TmOQHEtZnKHaL1feJZP5kBeyjA9Co7oQkwp+vZQYwsnNFbgb6LU0PL41jZg13SfPUIQ==","shasum":"ca30ed0f4b88e636b345c7282bbb73cc61a0971b","tarball":"https://registry.npmjs.org/@0xcryptomag/winston-plus/-/winston-plus-1.0.5.tgz","fileCount":41,"unpackedSize":1740837,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD9WPFRoEKVwAr3kemby1Qy2jPpRa9kM7MFC31xKkZQCgIgcSgQIoxFpsDaoVgdO/0fv+eI2yajBFLZQFhU6pWBs1U="}]},"_npmUser":{"name":"0xcryptomag","email":"npmjs.rgpin@slmail.me"},"directories":{},"maintainers":[{"name":"0xcryptomag","email":"npmjs.rgpin@slmail.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/winston-plus_1.0.5_1765341504837_0.802242342384702"},"_hasShrinkwrap":false}},"time":{"created":"2024-08-24T23:01:45.941Z","modified":"2025-12-10T04:38:25.248Z","1.0.0":"2024-08-24T23:01:46.306Z","1.0.1":"2024-08-26T13:08:09.730Z","1.0.2":"2025-09-28T19:29:33.427Z","1.0.3":"2025-12-04T19:49:11.415Z","1.0.4":"2025-12-10T01:34:34.967Z","1.0.5":"2025-12-10T04:38:25.055Z"},"author":{"name":"Josiah Magnusson","email":"github.mq0mx@slmail.me","url":"https://github.com/0xCryptoMag/"},"license":"MIT","keywords":["winston","console","format","formatter","inspect","debug","debugging","table","cli-table3","dev","plus"],"description":"Winston@3 console format aimed to improve development UX","maintainers":[{"name":"0xcryptomag","email":"npmjs.rgpin@slmail.me"}],"readme":"# winston-dev-console\n\nMy personal additions to @epegzz's [winston-dev-console](https://github.com/epegzz/winston-dev-console.git)<br>\n(based on [winston-console-format](https://github.com/duccio/winston-console-format))\n* adding the source of the logging statement to the log output\n* optimizing readability of each log statement through log statement separation, output colorization and arg pretty printing\n* log outputs in util.inspection format, or as tables\n   \n\n## Demo\n\n![](demo.png)\n![](demo3.png)\n\n### Real world screenshot:\n\n![](demo2.png)\n\n## Install\n\n```bash\nnpm install winston @0xcryptomag/winston-plus\n```\n\nor\n\n```bash\nyarn add winston @0xcryptomag/winston-plus\n```\n<br>\n\n## Usage TypeScript\n\n```typescript\nimport { createLogger, format, transports, config } from \"winston\";\nimport winstonDevConsole from \"@epegzz/winston-dev-console\";\nimport util from \"util\";\n\nlet log = createLogger({\n  levels: config.syslog.levels,\n  level: \"debug\", // or use process.env.LOG_LEVEL\n});\n\n// Note: You probably only want to use winstonDevConsole during development\nlog = winstonDevConsole.init(log);\nlog.add(\n  winstonDevConsole.transport({\n    showTimestamps: false,\n    addLineSeparation: true,\n    logLevels: config.syslog.levels\n  })\n);\n\nlog.info(\"Logging initialized\");\nlog.debug(\"Debug an object\", { make: \"Ford\", model: \"Mustang\", year: 1969 });\nlog.notice(\"Returned value\", { value: util.format });\nlog.alert(\"Information\", {\n  options: [\"Lorem ipsum\", \"dolor sit amet\"],\n  values: [\"Donec augue eros, ultrices.\"],\n});\nlog.warn(\"Warning\");\nlog.emerg(new Error(\"Unexpected error\"));\n```\n\n## Usage JavaScript\n\n```js\nconst { createLogger, format, transports, config } = require(\"winston\");\nconst winstonDevConsole = require(\"@epegzz/winston-dev-console\").default;\nconst util = require(\"util\");\n\nlet log = createLogger({\n  levels: config.syslog.levels,\n  level: \"debug\", // or use process.env.LOG_LEVEL\n});\n\n// Note: You probably only want to use winstonDevConsole during development\nlog = winstonDevConsole.init(log);\nlog.add(\n  winstonDevConsole.transport({\n    showTimestamps: false,\n    addLineSeparation: true,\n    logLevels: config.cli.levels,\n  })\n);\n\nlog.silly(\"Logging initialized\");\nlog.prompt(\"Debug an object\", { make: \"Ford\", model: \"Mustang\", year: 1969 });\nlog.verbose(\"Returned value\", { value: util.format });\nlog.info(\"Information\", {\n  options: [\"Lorem ipsum\", \"dolor sit amet\"],\n  values: [\"Donec augue eros, ultrices.\"],\n});\nlog.warn(\"Warning\");\nlog.emerg(new Error(\"Unexpected error\"));\n```\n\n# Usage Tables\n\n```js\nlet tableLog = createLogger({\n  level: \"debug\", // or use process.env.LOG_LEVEL\n  levels: config.syslog.levels\n});\n\n// Note: You probably only want to use winstonDevConsole during development\ntableLog = winstonDevConsole.init(tableLog);\ntableLog.add(\n  winstonDevConsole.transport({\n    showTimestamps: true,\n    addLineSeparation: true,\n    logLevels: config.syslog.levels,\n    table: true\n  })\n);\n\n// The first item of the array is reserved for the Table constructor argument which takes in an options object\n// {}, [], '', or null can be used to forego a header/formatting\ntableLog.info(\"Horizontal Table\", [\n    {head: ['TH 1 label', 'TH 2 label'], colWidths: [25, 25]},\n    ['First value', 'Second value'],\n    ['First value', 'Second value']\n]);\ntableLog.notice(\"Vertical Table\", [\n    {},\n    { 'Some key': 'Some value' },\n    { 'Another key': 'Another value' }\n]);\ntableLog.debug(\"Cross Table\", [\n    { head: [ '', 'Top Header 1', 'Top Header 2' ] },\n    { 'Left Header 1': [ 'Value Row 1 Col 1', 'Value Row 1 Col 2' ] },\n    { 'Left Header 2': [ 'Value Row 2 Col 1', 'Value Row 2 Col 2' ] }\n]);\n```\n\n#\n\n## API\n\n## winstonDevConsole.format(options)\n\n### options\n\nConfiguration object.<br><br>Type: `DevConsoleFormatOptions`\n\n### options.inspectOptions\n\n`util.inspect()` [configuration object](https://nodejs.org/api/util.html#util_util_inspect_object_options).<br><br> Type: `Object`<br> \n\n### options.basePath\n\nUsed to remove the base path of the project when showing the file path of the log statement.\nBy default anything in the path before (and including) the `src` folder will be removed.\n<br><br>\nType: `String`<br>\n\n### options.addLineSeparation\n\nWheather or not to separate each log statement with a blank line.\n<br><br>\nType: `Boolean`<br>\nDefault: `true`<br>\n\n### options.showTimestamps\n\nWheather or not to show timestamps<br>\nDuring development the timestamps are usually more noise then helpful, therefore disabled by default.\n<br><br>\nType: `Boolean`<br>\nDefault: `false`<br>\n\n### options.logLevels\n\nUsed to select the log level severity schema from the three options provided by triple-beam: npm, syslog, and cli<br>\nBy default this is set to npm log levels\n<br><br>\nType: `{[k: string]: number}`<br>\nDefault: `winston.config.npm.levels`<br>\n\n## options.showMeta\n\nWheather or not to show meta after the message, callee path, and optional timestamp\n<br><br>\nType: `boolean`<br>\nDefault: `true`<br>\n\n## options.table\n\nWheather or not the meta lines after the message is outputted as a table rather than a string literal of an object<br>\nUse only when the output is expected to always be tablature. A second logger may be required for tables and non tables\n<br><br>\nType: `boolean`\nDefault: `false`\n\n## Acknowledgements\n\nThis is a fork of @epegzz's [winston-dev-console](https://github.com/epegzz/winston-dev-console.git)\n\nHis project based off of @duccio's [winston-console-format](https://github.com/duccio/winston-console-format)","readmeFilename":"README.md"}