{"_id":"@northscaler/bunyaner","_rev":"65-afe94af6c96c8c629e956c5ab85bec36","name":"@northscaler/bunyaner","description":"Monkey-patches bunyan to have pretty neat log level methods","dist-tags":{"stable-0.1":"0.1.9","latest":"1.0.1","stable-1.0":"1.0.1"},"versions":{"0.1.0-pre.0":{"name":"@northscaler/bunyaner","version":"0.1.0-pre.0","keywords":["bunyan","logging","log"],"license":"MIT","_id":"@northscaler/bunyaner@0.1.0-pre.0","maintainers":[{"name":"npm_scispike","email":"npm@scispike.com"},{"name":"npm_northscaler","email":"npm@northscaler.com"}],"homepage":"https://gitlab.com/northscaler-public/bunyaner#README","bugs":{"url":"https://gitlab.com/northscaler-public/bunyaner/issues"},"dist":{"shasum":"2e48af5caf8b2ea6d5eb5a813fec73bc45de62b8","tarball":"https://registry.npmjs.org/@northscaler/bunyaner/-/bunyaner-0.1.0-pre.0.tgz","fileCount":17,"integrity":"sha512-0QabQ6qjQacMRZz9+gghg4rze1hRm9BdJ80i+u9nDCBFYnVV7J7cImTOp69jVOFPv87NpTm2ektMadAITxmRMg==","signatures":[{"sig":"MEYCIQDNjEOWUukfgL5UNPBaLhBpErCtkoX5MkEepr4Pg1TZnAIhAO20FespugFp5u06IhfymFoGGILdcu/+ARXQKwhfIaBy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26998,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeqwh+CRA9TVsSAnZWagAADEEP/j67GNEcIEWQvQf76ghz\nQDP44zN5+baonbFtldhz4CdQVIk4FyMxMGHVEY5a3vgYJiR8qVfC1Aj6lAIV\neDU+3JNEQRj+Uk/xmEma9Bxck2cnskqpuNscQi7dMxk9NOFsDXFF9D8nyvmm\nF5UH9qMQ77pgyPPhOFOGwVN6Tgah5Tsuo6tDbVhU1zSZN8fMN3LYlOx17JYF\nwmoXfpZsBT00de+ULVnHCcIWFF6SbNwhoIvrXrPCcFH8OQUVKoG7A2PvrMTz\nUsnV0N0ORZuBNqyNWs3WPCaWUP/tIyJ5Bnp+608a4xg0SJqSi6y2VbdwQ6J1\nMwFp/YR0HilqaUnyJrbb6bxOtyOjQHMnwgNyEXcXLZcDp74eSsF2d008CZcA\ngK6gAquo3Dj4yDi+InEU5M5/E8MAV4Ub4uSmWkioDO6VRjN18cIt3HovT8iN\nvG5W+4BIwQMs/BSJlodZgAPG9vn7iAnzUOpku8SPHrdo0seNak2pHXnaAX78\nUVpZQz4s7w28OOmXf8BKcCMXF/UhLZ9zyl+BauLmwHoqGA+pUpcwgyj81SZY\nsl/wQLv/Q0UsibqbauKmb+PsU/p1JQnC2JntjJTEvNoxX6+Ng3je3LvxYfoy\n8lGwWFOHd+P9ehjz3M9Tw1KN7Zvm1Cz2c/mpJJAD2/SvYKaE+IEgPtSjDLq6\nvr7n\r\n=dQ1u\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.0.0"},"gitHead":"5b9824fd06bc0e402212932264d1ccbdfa6ba254","scripts":{"i":"mocha 'src/test/integration/**/*.spec.js' | npx bunyan","u":"mocha 'src/test/unit/**/*.spec.js' | npx bunyan","cov":"open coverage/index.html","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"standard --verbose 'src/**/*.js'","test":"run-s unit-integration lint","unit":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js'","build":"npm install && npm test","format":"standard --fix 'src/**/*.js'","report":"nyc report --reporter=html","postunit":"run-s report","integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/integration/**/*.spec.js'","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js' 'src/test/integration/**/*.spec.js'","make-distribution":"run-p doc lic","postunit-integration":"run-s report"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"repository":{"url":"git+https://gitlab.com/northscaler-public/bunyaner.git","type":"git"},"_npmVersion":"5.3.0","description":"Monkey-patches bunyan to have pretty neat log level methods","directories":{},"_nodeVersion":"8.6.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.0.1","chai":"4.2.0","acorn":"7.1.1","jsdoc":"3.6.4","mocha":"7.1.2","bunyan":"1.8.12","standard":"14.3.3","copyfiles":"2.2.0","dirty-chai":"2.0.1","npm-run-all":"4.1.5","npm-cli-login":"0.1.1","lodash.template":"4.5.0","intercept-stdout":"0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/bunyaner_0.1.0-pre.0_1588267133429_0.4104011270329966","host":"s3://npm-registry-packages"}},"0.1.0-pre.1":{"name":"@northscaler/bunyaner","version":"0.1.0-pre.1","keywords":["bunyan","logging","log"],"license":"MIT","_id":"@northscaler/bunyaner@0.1.0-pre.1","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/bunyaner#README","bugs":{"url":"https://gitlab.com/northscaler-public/bunyaner/issues"},"dist":{"shasum":"009f1d150dadd5476e85e81d6e414da069a8be5c","tarball":"https://registry.npmjs.org/@northscaler/bunyaner/-/bunyaner-0.1.0-pre.1.tgz","fileCount":17,"integrity":"sha512-CpyPxmoZAuEnR6PWQXCYBDIt8bETnqJV+A7ilESFrxTXq05A/YF5okLD7YmUfBWY8NNRAanYXcPkPRwqUUTllQ==","signatures":[{"sig":"MEUCIFIel8J72KvNIxI/a0Iky4pfZZQnDZKNNRA7dHZG/awtAiEA1HRIMLFDJ1DCYSBKVrD5pTa+XWSidF2OYxE59KIifds=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29067,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeqyGBCRA9TVsSAnZWagAA+nAP/RMOiVTFinCggpCU/FQ4\nZPRSFrciRlE2+PdHJ1H8/kYs95OzAZB9fzYzUt7VDyv/h6S27qLWXbP9GnCp\nIiIb6WqtuCfrP11cbt5ewU828kcCQywxVSPXQhGP+milQwVphcTo1WXWU1az\nCyxpRUHiHyFWTNZBTFRtPKkEDhySMBSp/YVOAEClThsXWNfDo6dP1MKPi/Xu\nn7nzYBM2tCFGaXIMB7phZ955Khb3QfwWpqpy7hzQ8//XWCFUag6fbWWLDcwK\nflQyS3cgRyGyryewFsWRFp0DbZsDFrH4zGp5thYfaHfk7h2DMwPQWnq/UYw1\nhIVCmUVksikPV7E1BKEGddjpu/ZBtEssbImuJ/m1SFeKeRQetMeVjf88nZTA\nfRHejDQ4gGTSeVB4G7p5UCrb/pPZtVIrNLgWaFVgeYwpL243bubIwKTe+04S\n6/VfP7/VYtJho8L+lK8leo3lEtyPmE8GaFOW/+OeDOlt1c1VFq//EfOtysTP\nVZR7G6tGH5SJKdiGq9ZjSQejPqkxbJd9/mcr/XNDZ4gxbV/JtDWrs6qN9DEi\nvzIJvtoaYhXNUcbwn4qppUu7LCrePAoV3xtPn+Ynva2WtmWVGtFb9/C937oa\nth2MqerNSbC4dzp6uH8k4e0XI7A+iYbWqLl3YuMSbJjqDtWpMIOYnpyZaE9K\nO/M+\r\n=BXWl\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@northscaler/bunyaner`\nMake [bunyan](https://www.npmjs.com/package/bunyan)'s log level methods much mo' betta'!\n\n## Overview\n* Have bunyan's log level methods return values, usually the first argument given so that you can inline your logging statements.\n* No worries about having your logged objects conflict with [bunyan's core fields](https://www.npmjs.com/package/bunyan#core-fields).\n* Allow log level methods to support functions in order to defer expensive log statements if the log method's level is below the currently configured log level.\n\n>NB: Git repo of truth is https://gitlab.com/northscaler-public/bunyaner; all others are mirrors.\n\n## TL;DR\nInstall `bunyan` & `@northscaler/bunyaner`:\n```bash\n$ npm i --save bunyan\n$ npm i --save @northscaler/bunyaner\n```\nCreate a file that your module will use to get a logger:\n```javascript\n// log.js\nconst bunyan = require('bunyan')\nconst bunyaner = require('bunyaner')\n\nmodule.exports = bunyaner({ bunyanLogger: bunyan.createLogger({ name: 'my-logger' }) })\n```\n\nNow use it:\n```javascript\nconst log = require('./log')\n\nlet gameState = log.info({\n  game: 'zork',\n  player: 'querky123'\n}) // logs state object & returns it\n\n// ...querky123 plays game to level 5...\n\ngameState = log.info({\n  game: 'zork',\n  player: 'querky123',\n  level: 5 // <- conflicts with bunyan core logging field, but no matter!\n}) // logs gameState as { object: gameState } & returns gameState\n\nif (gameState.badness) {\n  // log method logs given error, then returns it so it can be thrown\n  throw log.error(new Error('boom'))\n}\n\n// don't do calculations if your logging level is higher than your method's level\n// because they'll be ignored anyway\nlog.debug(() => `foo: ${somethingExpensive()}, bar: ${somethingAlsoExpensive()}`)\n```\n## Tips\n\n### Don't use return value feature with deferred logging\nIf you use deferred logging, like `log.debug(() => somethingExpensive())`, remember that you'll only get the value if the current log level is at or below the method's level.\n\n### Use aspects for tracing\nCombine AOP from [@northscaler/aspectify](https://www.npmjs.com/package/@northscaler/aspectify) with this library's deferred logging to do automated, efficient and unobstrusive tracing.\nHere's an exmaple that logs inputs as well as happy & saddy path outputs:\n```javascript\n// in file tracer.js\nconst { AsyncAround } = require('@northscaler/aspectify')\nconst log = require('./.../log.js') // as above\n \nconst tracer = async ({ thisJoinPoint }) => {\n  let start = Date.now()\n\n  let retval\n  try {\n    const returned = await thisJoinPoint.proceed()\n\n    // the function given here only gets evaluated if log.level <= debug\n    // so there's almost no performance penalty when logging above debug\n    log.debug(() => {\n      clazz: thisJoinPoint.clazz.name,\n      method: thisJoinPoint.fullName,\n      args: thisJoinPoint.args,\n      returned,\n      elapsed: Date.now() - start\n    })\n\n    return returned\n  } catch (e) {\n    log.error(() => {\n      clazz: thisJoinPoint.clazz.name,\n      method: thisJoinPoint.fullName,\n      args: thisJoinPoint.args,\n      threw: e,\n      elapsed: Date.now() - start\n    })\n\n    throw e\n  }\n}\n \nmodule.exports = AsyncAround(logError)\n```\n\nNow use it:\n```javascript\nconst trace = require('./tracer')\n\nclass CustomerRepository {\n  constructor(mongoose) {\n    // ...  \n  }\n\n  // will log happy path & saddy path args & retval/error\n  // no need for log statements everywhere\n  @trace\n  async findByLastName(lastName) {\n    // use mongoose to query...\n  }\n\n  // ...\n}\n```\n","engines":{"node":">=8.0.0"},"gitHead":"3367a97197c8d66f88e1f925bab7cb0731c72d93","scripts":{"i":"mocha 'src/test/integration/**/*.spec.js' | npx bunyan","u":"mocha 'src/test/unit/**/*.spec.js' | npx bunyan","cov":"open coverage/index.html","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"standard --verbose 'src/**/*.js'","test":"run-s unit-integration lint","unit":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js'","build":"npm install && npm test","format":"standard --fix 'src/**/*.js'","report":"nyc report --reporter=html","postunit":"run-s report","integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/integration/**/*.spec.js'","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js' 'src/test/integration/**/*.spec.js'","make-distribution":"run-p doc lic","postunit-integration":"run-s report"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"repository":{"url":"git+https://gitlab.com/northscaler-public/bunyaner.git","type":"git"},"_npmVersion":"5.3.0","description":"Monkey-patches bunyan to have pretty neat log level methods","directories":{},"_nodeVersion":"8.6.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.0.1","chai":"4.2.0","acorn":"7.1.1","jsdoc":"3.6.4","mocha":"7.1.2","bunyan":"1.8.12","standard":"14.3.3","copyfiles":"2.2.0","dirty-chai":"2.0.1","npm-run-all":"4.1.5","npm-cli-login":"0.1.1","lodash.template":"4.5.0","intercept-stdout":"0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/bunyaner_0.1.0-pre.1_1588273536827_0.5418155131599329","host":"s3://npm-registry-packages"}},"0.1.0-rc.0":{"name":"@northscaler/bunyaner","version":"0.1.0-rc.0","keywords":["bunyan","logging","log"],"license":"MIT","_id":"@northscaler/bunyaner@0.1.0-rc.0","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/bunyaner#README","bugs":{"url":"https://gitlab.com/northscaler-public/bunyaner/issues"},"dist":{"shasum":"cba4a0a1b613c033692bb67cd23d2182c38cf61d","tarball":"https://registry.npmjs.org/@northscaler/bunyaner/-/bunyaner-0.1.0-rc.0.tgz","fileCount":17,"integrity":"sha512-m7bRClv6GWDHsMwQzvY3mhiF/hqKLG2Gza7AloceO96I8RkiwbpiKhEgRsBiD9FF7DJOfY3TnKSnxLhGyB30bQ==","signatures":[{"sig":"MEUCIQCBWCPas7G/ZAEfKaR7qvFG7g6x6YLxiECvhMH2TMNQvQIgE5ZtnEwq0bbKKDuIl4cbKaPRLbgAnvz6Sdf9WlL5usg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29066,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeqyWCCRA9TVsSAnZWagAA8pQP/2V4bzP534ntFrL7HBC0\n9NJJ5IOYoylbzOXsEkjf8jpNVTfd0qvQVeFME+yBU9u28RwIpRp8npnqhlUb\nLflix6zHhBeTl0GWxLXW4thXaLpgEjlPvHaVKeClcas8lvycPxx+sf1gBoSI\nsp1jnc13WB59PlX+5B3ZX/RqLAaKH//FnlrWUAldg4j6bdg/rJRlJLRdGBcP\ntQbPWRFEMyDsVgxDLYdQC9jHdDo9FxF7ll7rAHPZetBdPBpRUr3TnJlbGrLE\nM7JiTvehj9jc592/NOfrMePYN1kHBxzM33Jp+yA86en3fpnY7edF64bTGIMg\nGJWIJdKZUXj/R8iRsBkxNVjbVq1bmZWczPYU074AsYpdqQFAyU2l17ECOMPD\nXq5PlSHURI8AZUtRND6kKex4AeviCkGqfHebMKQu0BQz/YMXNI+klkRCL4qZ\nwziCmizGV4geLxULfg+wzBiJehimh4T3jMOqtETMMWpvc6FyxsSsd0/QQoWd\n5qW1I1hKnj7/elCRx70pwkwQEuMb/QY8VN5v8JMmOzEdHigRajmATU5JGjU0\nqlv2MZqthXdX+H0Wo/kQb8hZ6WCViNZNVAnU+MVQAkOwLc2s+7jsHHMgEZyz\nkr+jIh+oiDRdSs92G1pfDBXw2q53Jqh/x8N5V1kxbKfJ1Yqpx8YmQPxNyLHn\ncLAc\r\n=9OXX\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@northscaler/bunyaner`\nMake [bunyan](https://www.npmjs.com/package/bunyan)'s log level methods much mo' betta'!\n\n## Overview\n* Have bunyan's log level methods return values, usually the first argument given so that you can inline your logging statements.\n* No worries about having your logged objects conflict with [bunyan's core fields](https://www.npmjs.com/package/bunyan#core-fields).\n* Allow log level methods to support functions in order to defer expensive log statements if the log method's level is below the currently configured log level.\n\n>NB: Git repo of truth is https://gitlab.com/northscaler-public/bunyaner; all others are mirrors.\n\n## TL;DR\nInstall `bunyan` & `@northscaler/bunyaner`:\n```bash\n$ npm i --save bunyan\n$ npm i --save @northscaler/bunyaner\n```\nCreate a file that your module will use to get a logger:\n```javascript\n// log.js\nconst bunyan = require('bunyan')\nconst bunyaner = require('bunyaner')\n\nmodule.exports = bunyaner({ bunyanLogger: bunyan.createLogger({ name: 'my-logger' }) })\n```\n\nNow use it:\n```javascript\nconst log = require('./log')\n\nlet gameState = log.info({\n  game: 'zork',\n  player: 'querky123'\n}) // logs state object & returns it\n\n// ...querky123 plays game to level 5...\n\ngameState = log.info({\n  game: 'zork',\n  player: 'querky123',\n  level: 5 // <- conflicts with bunyan core logging field, but no matter!\n}) // logs gameState as { object: gameState } & returns gameState\n\nif (gameState.badness) {\n  // log method logs given error, then returns it so it can be thrown\n  throw log.error(new Error('boom'))\n}\n\n// don't do calculations if your logging level is higher than your method's level\n// because they'll be ignored anyway\nlog.debug(() => `foo: ${somethingExpensive()}, bar: ${somethingAlsoExpensive()}`)\n```\n## Tips\n\n### Don't use return value feature with deferred logging\nIf you use deferred logging, like `log.debug(() => somethingExpensive())`, remember that you'll only get the value if the current log level is at or below the method's level.\n\n### Use aspects for tracing\nCombine AOP from [@northscaler/aspectify](https://www.npmjs.com/package/@northscaler/aspectify) with this library's deferred logging to do automated, efficient and unobstrusive tracing.\nHere's an exmaple that logs inputs as well as happy & saddy path outputs:\n```javascript\n// in file tracer.js\nconst { AsyncAround } = require('@northscaler/aspectify')\nconst log = require('./.../log.js') // as above\n \nconst tracer = async ({ thisJoinPoint }) => {\n  let start = Date.now()\n\n  let retval\n  try {\n    const returned = await thisJoinPoint.proceed()\n\n    // the function given here only gets evaluated if log.level <= debug\n    // so there's almost no performance penalty when logging above debug\n    log.debug(() => {\n      clazz: thisJoinPoint.clazz.name,\n      method: thisJoinPoint.fullName,\n      args: thisJoinPoint.args,\n      returned,\n      elapsed: Date.now() - start\n    })\n\n    return returned\n  } catch (e) {\n    log.error(() => {\n      clazz: thisJoinPoint.clazz.name,\n      method: thisJoinPoint.fullName,\n      args: thisJoinPoint.args,\n      threw: e,\n      elapsed: Date.now() - start\n    })\n\n    throw e\n  }\n}\n \nmodule.exports = AsyncAround(logError)\n```\n\nNow use it:\n```javascript\nconst trace = require('./tracer')\n\nclass CustomerRepository {\n  constructor(mongoose) {\n    // ...  \n  }\n\n  // will log happy path & saddy path args & retval/error\n  // no need for log statements everywhere\n  @trace\n  async findByLastName(lastName) {\n    // use mongoose to query...\n  }\n\n  // ...\n}\n```\n","engines":{"node":">=8.0.0"},"gitHead":"fc03a28589829e98e422917b418da08eb85ca40d","scripts":{"i":"mocha 'src/test/integration/**/*.spec.js' | npx bunyan","u":"mocha 'src/test/unit/**/*.spec.js' | npx bunyan","cov":"open coverage/index.html","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"standard --verbose 'src/**/*.js'","test":"run-s unit-integration lint","unit":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js'","build":"npm install && npm test","format":"standard --fix 'src/**/*.js'","report":"nyc report --reporter=html","postunit":"run-s report","integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/integration/**/*.spec.js'","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js' 'src/test/integration/**/*.spec.js'","make-distribution":"run-p doc lic","postunit-integration":"run-s report"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"repository":{"url":"git+https://gitlab.com/northscaler-public/bunyaner.git","type":"git"},"_npmVersion":"5.3.0","description":"Monkey-patches bunyan to have pretty neat log level methods","directories":{},"_nodeVersion":"8.6.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.0.1","chai":"4.2.0","acorn":"7.1.1","jsdoc":"3.6.4","mocha":"7.1.2","bunyan":"1.8.12","standard":"14.3.3","copyfiles":"2.2.0","dirty-chai":"2.0.1","npm-run-all":"4.1.5","npm-cli-login":"0.1.1","lodash.template":"4.5.0","intercept-stdout":"0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/bunyaner_0.1.0-rc.0_1588274561535_0.07408481322182348","host":"s3://npm-registry-packages"}},"0.1.0":{"name":"@northscaler/bunyaner","version":"0.1.0","keywords":["bunyan","logging","log"],"license":"MIT","_id":"@northscaler/bunyaner@0.1.0","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/bunyaner#README","bugs":{"url":"https://gitlab.com/northscaler-public/bunyaner/issues"},"dist":{"shasum":"fd5ee710e1f44865139abd2ca1ec63e5982e6495","tarball":"https://registry.npmjs.org/@northscaler/bunyaner/-/bunyaner-0.1.0.tgz","fileCount":17,"integrity":"sha512-HxzZ7SkL0xlLx1f9L9Fg/2mWjcI7kcwd6mL2Qvx7KvHhx/jFww2D9xuwwx+J4+KVx9ulrA/c/RsChktALgwWPQ==","signatures":[{"sig":"MEUCIBFMkqqenyma5pVZADMQiJiWEPeXRadcPVP+gQYZH9i2AiEAukGYOYCBq8ar3Y5iWiGUOElssCyDuXvLpIk/+hqm0rs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29061,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeqycZCRA9TVsSAnZWagAAnVsP/A/WGsD1e3kkud1fBgsN\n1tLct9BWKFCoWJZloGTe7oRXN+cD3y/N6Pxs0RyTvVl9tmRYR49LlVHDD2cs\nshp5pMPTgUijrvv8WoqPOzMc0Y3NKYgvswK7xIcbHbWzVJzXzCzQnh4+WtIc\nTy0aolfiiZH2brLIcpAnS1utc08khKfWYMkc8u5I+MD+iCQU63hnDxw4i6uI\n4v9NfYNJUg7hesOJxsmfWsZYg538IraGCdQfYMSWqCi7/ns7otbeY6fV6/JJ\nWxRsOliJ6RaatYRGSMe7vlFNUMdl9nAFYo8IU9ux5E7YeRDCEfX3538+qc8t\nxEhnuONgBgIg17jwv4UozoXlmhHLRwTvidn8RhPBepJ/p05hMDEUiwdlTxpz\nmTQqJ5o3otforji1ZTV6H2SHJEKB+Mu74829RI6/zN8H/r67trvLAw0qz6qY\nkAAps5VnRPVca+ptPVp1eXa3baLtBbVmCMXk5K3zwM/HIJxQVSJ7hGJAA5Tf\nB76FkgTe6iZxR2mrZxRqKhiDUh3Ady1kRXi0QBtwBmEhW7OfN4cDED8UkqIT\ntT9MMCPvl+U6opzc+2HxKe7GhSUukt4RRy034P/jqLNd47yn2o1ZciyuHHpT\n7VSxRwC8e8UnjLsIbhbVN1gm56ZwatRLflhDEUBMOy5BJpUzoNSeXmrS3kfi\n2r4J\r\n=IsJN\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.0.0"},"gitHead":"fa4dfa5c752658fe38d6553ebfa159e15341da7b","scripts":{"i":"mocha 'src/test/integration/**/*.spec.js' | npx bunyan","u":"mocha 'src/test/unit/**/*.spec.js' | npx bunyan","cov":"open coverage/index.html","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"standard --verbose 'src/**/*.js'","test":"run-s unit-integration lint","unit":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js'","build":"npm install && npm test","format":"standard --fix 'src/**/*.js'","report":"nyc report --reporter=html","postunit":"run-s report","integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/integration/**/*.spec.js'","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js' 'src/test/integration/**/*.spec.js'","make-distribution":"run-p doc lic","postunit-integration":"run-s report"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"repository":{"url":"git+https://gitlab.com/northscaler-public/bunyaner.git","type":"git"},"_npmVersion":"5.3.0","description":"Monkey-patches bunyan to have pretty neat log level methods","directories":{},"_nodeVersion":"8.6.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.0.1","chai":"4.2.0","acorn":"7.1.1","jsdoc":"3.6.4","mocha":"7.1.2","bunyan":"1.8.12","standard":"14.3.3","copyfiles":"2.2.0","dirty-chai":"2.0.1","npm-run-all":"4.1.5","npm-cli-login":"0.1.1","lodash.template":"4.5.0","intercept-stdout":"0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/bunyaner_0.1.0_1588274968730_0.5555373322907864","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"@northscaler/bunyaner","version":"0.1.1","keywords":["bunyan","logging","log"],"license":"MIT","_id":"@northscaler/bunyaner@0.1.1","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/bunyaner#README","bugs":{"url":"https://gitlab.com/northscaler-public/bunyaner/issues"},"dist":{"shasum":"2a907df076fc1bd89b7fca651516a2a9c65748d5","tarball":"https://registry.npmjs.org/@northscaler/bunyaner/-/bunyaner-0.1.1.tgz","fileCount":17,"integrity":"sha512-UCmYjMc+rM4mQBTK2urmL0Har/o6vNHWQm1XRe+XklO0aTYt8IBFIJXcZEWYzjiR3uddyQfOFw2s/ywlqmz6fQ==","signatures":[{"sig":"MEUCIBn3FjBJAF5zWcMoEIHNvggBc0WJeKQ8b0VtgvqIFJjrAiEA7sdh14M1/BvRuXjZwp7DntAjzt1+fSVH2HfobN1KMao=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29347,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeqz66CRA9TVsSAnZWagAAImAP/0yuUWC8tQia/KYwGYkN\n3pnW9YspDvabojhRxRFiRSg5jg0KFcF4mI/mW8/p6JWQvXERXzS+0dbQ9EAV\nl5IjX3uNp465lT8GBmiE8ThI7RgahjWhihVvT070VtpOIJW2NAOkRl4Yp9mC\nkaJqsvWIvXKmPgWJ8tVJ5EYdEJDPGr6gtD8/D/WfOrvm0x3rOYIx91lHNHPx\nxWJFgxFiy20FMQR9ZnbITatVW8l/Muyh0nAJ/FLThjkzMA2KBp4yNH3xHaTN\nKxPXcgQ2xwo/HQt+6CE3W707Q9rICF1yid3mNPKmPC4/ITThFWfaMJnLO3NP\n9zZqaU37JHmK3BygLos8MlU8pqi9H1d+JStM0+NMPr8bqqk/2z4l5tdmf/r1\n/UmSTDvXBIoB8qjG9NWMff2aRf4hM+fj1nq+41ZvKW0nh+nXLWwQt8QtraGS\nosKUasnnIWL/DFkwGG6Fb3pZFRU9rvpYYX+pw4qgTc/aP9EeEVHeFhzEuiqW\nwS1XjNxvQ10bPAz8rpZpJwewZwvnL1SPQbqIiuINwdlMjc5YwTZHW/Nb73DV\nyI0+IwY3hhe9LCB8nLGTMaOnZbdh5YDYHTh6VyufP3DzMXrJQ8M1IfTBrkng\nI3O5NJvGQZgMo8R//scbogC3CxwOadZ8MmsSzG6SfJf7q2acHBqx4w/FPkca\nZbwB\r\n=4WI/\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.0.0"},"gitHead":"7c9329a13c481d8167565efc09e695467baf70de","scripts":{"i":"mocha 'src/test/integration/**/*.spec.js' | npx bunyan","u":"mocha 'src/test/unit/**/*.spec.js' | npx bunyan","cov":"open coverage/index.html","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"standard --verbose 'src/**/*.js'","test":"run-s unit-integration lint","unit":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js'","build":"npm install && npm test","format":"standard --fix 'src/**/*.js'","report":"nyc report --reporter=html","postunit":"run-s report","integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/integration/**/*.spec.js'","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js' 'src/test/integration/**/*.spec.js'","make-distribution":"run-p doc lic","postunit-integration":"run-s report"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"repository":{"url":"git+https://gitlab.com/northscaler-public/bunyaner.git","type":"git"},"_npmVersion":"5.3.0","description":"Monkey-patches bunyan to have pretty neat log level methods","directories":{},"_nodeVersion":"8.6.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.0.1","chai":"4.2.0","acorn":"7.1.1","jsdoc":"3.6.4","mocha":"7.1.2","bunyan":"1.8.12","standard":"14.3.3","copyfiles":"2.2.0","dirty-chai":"2.0.1","npm-run-all":"4.1.5","npm-cli-login":"0.1.1","lodash.template":"4.5.0","intercept-stdout":"0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/bunyaner_0.1.1_1588281017926_0.15443778888467308","host":"s3://npm-registry-packages"}},"0.1.2":{"name":"@northscaler/bunyaner","version":"0.1.2","keywords":["bunyan","logging","log"],"license":"MIT","_id":"@northscaler/bunyaner@0.1.2","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/bunyaner#README","bugs":{"url":"https://gitlab.com/northscaler-public/bunyaner/issues"},"dist":{"shasum":"637bd56de5fd0602ca47055dc80084970f677998","tarball":"https://registry.npmjs.org/@northscaler/bunyaner/-/bunyaner-0.1.2.tgz","fileCount":17,"integrity":"sha512-vXENluCUk8mv2DpRTAj41jHJEZbz8M0XK3Tn7NlK8ot/nDKzEvWp108x/U7f2Xw9VyK0tiAaXGXh0tUXbBM2Hw==","signatures":[{"sig":"MEUCIHNFYExVGTUzFmOcURfTPq2dRBE9NkbmCqtLnacv+v2/AiEAp66JzGrbbdhZpowsaXgrFlnsoCAyp01qTC+08A9bs7g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29345,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeq0DmCRA9TVsSAnZWagAAsIoP/3v15yVhmPSaUpnxtyNt\nCzu/mC4pFqzEq6nU8BddhCTsZxJZxkN4oY9HvEMuUehjv2FLY5aJ8lUbkvz+\ndd17qE5gokoMy6zeltUIGYUc8DFzxhTpBBAX/zANebgCtjo//Bxb773lwkvS\nNZCrxfRtNozgjQun+FrrKiluYNjdNeLXXJnb7SwCAwbs8ba2fnc1MK1+sAgv\nQReoX2SvRfnRo4MV2BuNl69vPcQW0/x3Oi356pNpavXM+erSbQoA2+AYl4MY\noyrj7+LdyDZ2KD7sRoLr07W1OP+zsOg2Aptu/WpIFyc3FXaRvko3J5e+46O3\n0TnTL22tOrDIKSfCIv5hWrPb+dL9U+MQYIZ71Ber17zioduUhrSevLk8RPlJ\n90rpXAmNjzA7C0A1OBzQgaDYUdUq4EBJeueheeUGc69GxWT2eL8SkFpLFpsS\nLilCFEknB/Ft3VkIwAzXifhk6Yge1uqdkiHW5HyUNUYLwMqv0kE9XtUNaIGv\n1u/cw9rpT+DCO3tqqmUsHGy/BC+z8BQtO65rLrPA4m52tr/c8bm7GjVJHUq1\nnSyFcn6Kchh8o+ImKpOlI4NW6xYDBGfaJHS8gWCNunwwBozQ8357+6iz7gpH\ncgqcu3kcev7DmqijilFZscJPLOFFGcu/tZzzBdJkaOJlTlYsLe/n32ymFlR6\n2wrP\r\n=erjR\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.0.0"},"gitHead":"3c0efa5446c806f65b5eee6978d44614b2aed6ea","scripts":{"i":"mocha 'src/test/integration/**/*.spec.js' | npx bunyan","u":"mocha 'src/test/unit/**/*.spec.js' | npx bunyan","cov":"open coverage/index.html","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"standard --verbose 'src/**/*.js'","test":"run-s unit-integration lint","unit":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js'","build":"npm install && npm test","format":"standard --fix 'src/**/*.js'","report":"nyc report --reporter=html","postunit":"run-s report","integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/integration/**/*.spec.js'","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js' 'src/test/integration/**/*.spec.js'","make-distribution":"run-p doc lic","postunit-integration":"run-s report"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"repository":{"url":"git+https://gitlab.com/northscaler-public/bunyaner.git","type":"git"},"_npmVersion":"5.3.0","description":"Monkey-patches bunyan to have pretty neat log level methods","directories":{},"_nodeVersion":"8.6.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.0.1","chai":"4.2.0","acorn":"7.1.1","jsdoc":"3.6.4","mocha":"7.1.2","bunyan":"1.8.12","standard":"14.3.3","copyfiles":"2.2.0","dirty-chai":"2.0.1","npm-run-all":"4.1.5","npm-cli-login":"0.1.1","lodash.template":"4.5.0","intercept-stdout":"0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/bunyaner_0.1.2_1588281574019_0.4828856692165753","host":"s3://npm-registry-packages"}},"0.1.3":{"name":"@northscaler/bunyaner","version":"0.1.3","keywords":["bunyan","logging","log"],"license":"MIT","_id":"@northscaler/bunyaner@0.1.3","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/bunyaner#README","bugs":{"url":"https://gitlab.com/northscaler-public/bunyaner/issues"},"dist":{"shasum":"b70ef178229cc5bb12700874835dc583d9e21257","tarball":"https://registry.npmjs.org/@northscaler/bunyaner/-/bunyaner-0.1.3.tgz","fileCount":17,"integrity":"sha512-kPAIW3F30yswYA40XRvxviOpSwnzGTL18pjzP9qGkG65NrOehrY73U8vR7boCk2y6SyFS0OPKcQHVWml71HUbQ==","signatures":[{"sig":"MEYCIQCMYMy/koJJCYZKwDEbxuLNVWFC83uZP/Cs6AqEOR/nHwIhAJE3/eJSVyEzngPV7jl3f5ckpxMbBqVXeViX2PjVtnQx","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29191,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJerXoaCRA9TVsSAnZWagAALjgP/2j60yBCQt2HtdO0HpRD\n00uOj7VFv/GLxNPSp5HMt5LK+ATio/JvG1oZhGf/xxI1CODD3gg/0123obPv\nkEscQDK+WYNJ6qkZlsD+EQraOY7IbaC6iQsvw9MxXsdal6pK0BKiczSfh9rP\nRbsQRnXNGo5nhpeIZH1QFyzxYTpPale6E2q7I95g+ShhXgbFgiUJhG6Ld5Vs\nDZVXc0Ggs//8N5kgq+fwXc6o0/9pLEaJZC3xkg+tCRSyfDUgRyvVJoul2MEM\nksPjfAh3OgN0yYPZAq5qlsLtqmybS+J5pOHICHA5FoAlYgnkXWDmNWrCeSwg\nG+5BSl0E80QzqZz50QSlkSswwQFYCgDXOdwXKoUsEd08Uu2Qr7+mXsX1/H0R\nqEnSojQwTmkmpvGu8TktPNmFbqi9Xl+44PS58mwIOf7ljIk/IHY9cDWrexZs\ncowqVRLZZduA5T8xCIt+J4HCFptmCmBpXL6LGncF3gH9oX/By7NsqSOXGpOJ\niZ91bHpu6ft4ihDIDSsX5+iTQFQh/Buqi5/mGf2Fv5+JToM0zzsCOu9Pm7mi\niX4alE29NFmcEag0AZiTnTOgbuFrmRO+4MaJFKf0LkTDeg9SE8tuGxL9+e/J\nk6gW8Pb+uX13Wj0FrRZOVVB5yz3ozguIFGmXK3hKz6jj+15h/zXqwCf5JSbH\nXGeu\r\n=qeSx\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.0.0"},"gitHead":"5763c3770386e5db8b3d3672dca1feb7dd7d3133","scripts":{"i":"mocha 'src/test/integration/**/*.spec.js' | npx bunyan","u":"mocha 'src/test/unit/**/*.spec.js' | npx bunyan","cov":"open coverage/index.html","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"standard --verbose 'src/**/*.js'","test":"run-s unit-integration lint","unit":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js'","build":"npm install && npm test","format":"standard --fix 'src/**/*.js'","report":"nyc report --reporter=html","postunit":"run-s report","integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/integration/**/*.spec.js'","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js' 'src/test/integration/**/*.spec.js'","make-distribution":"run-p doc lic","postunit-integration":"run-s report"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"repository":{"url":"git+https://gitlab.com/northscaler-public/bunyaner.git","type":"git"},"_npmVersion":"5.3.0","description":"Monkey-patches bunyan to have pretty neat log level methods","directories":{},"_nodeVersion":"8.6.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.0.1","chai":"4.2.0","acorn":"7.1.1","jsdoc":"3.6.4","mocha":"7.1.2","bunyan":"1.8.12","standard":"14.3.3","copyfiles":"2.2.0","dirty-chai":"2.0.1","npm-run-all":"4.1.5","npm-cli-login":"0.1.1","lodash.template":"4.5.0","intercept-stdout":"0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/bunyaner_0.1.3_1588427289604_0.19809217222868414","host":"s3://npm-registry-packages"}},"0.1.4":{"name":"@northscaler/bunyaner","version":"0.1.4","keywords":["bunyan","logging","log"],"license":"MIT","_id":"@northscaler/bunyaner@0.1.4","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/bunyaner#README","bugs":{"url":"https://gitlab.com/northscaler-public/bunyaner/issues"},"dist":{"shasum":"7229d2e14874ac742806343d692d3c268bca6191","tarball":"https://registry.npmjs.org/@northscaler/bunyaner/-/bunyaner-0.1.4.tgz","fileCount":17,"integrity":"sha512-iYdwhixoN+/vUfhVIA1sP2FEQV4D+DVCDjk36jgyS/x4LbtI4saGSzSCTajjr9k/+MhC+7395y7bwo5x59ASww==","signatures":[{"sig":"MEQCIGr57hdf/PUWbD5MKGfERCPj4cSjAIlxB66ZV3sPFcrHAiAbZHXEZfzyyavh16Z+S5yXlYzysxUVjp9daH33/jlnUg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29241,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJerXwwCRA9TVsSAnZWagAAtSsP/jVy52K+o5bSgBHo7D+e\nUCwS37GxMVy9ycguooW2/sJ9clporHp1MxN86MAG4m9oTUtA8kt6of5OaE2E\ngTXXqdlBz+L4HY5hSBac0xB18e0MpZOtFOO2cQUP0QA+URD3++x+l5inKNcH\nW1NwemnlZlXVfyCXL0bGaucBsoJzWHBkdHEAOOxQVYe/1npmGXABirTv6w0X\nh5urNs3ZlcPXICPO+XXcFyFeJjwI1/RZtRAnuM7UNuIlb8/fse2yTBSg/rg9\nLPRkZ6OVBqBOEsSgyb2ECgSbfa2T/5Nnj4DIk/3cURPoz6KsirE/FYRRoQ2/\nluCfd5/MoTbKdTzhVJgdOZM16pXvKZcOCOfpV+Y+99f2+C7GagxaK787ojhh\nTRR316U6yRIfIek+ItQfPoG04Gi8jrzeDVsZaCmt7rZkb5dPKb2+D1dgI+kd\nJBllVoktLHMctWSSpoNccoPoHbgROTnXqJZ6F5ZoRWIGgauIym2DtHYszQ44\nG1HjxnHIYkAIo8/xROt1WKZTfqaLdrYucksDcJmsl6oJNLYOKyoez6xxtef3\nSX1tSQDBhVIe1javqoeC9qvxoHvxof6biC/0kWHX5snVYoUa97gj/qW/M47e\ne8+wKs+9j8J3Axw7AaNz85NAD+AxTC7lp+R6QgeKT7cCMPfytlSDMJxRZvDs\nCSk4\r\n=jk4I\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.0.0"},"gitHead":"29f19f34d1e35d6e1f9b4cc752645cb18c8af0ab","scripts":{"i":"mocha 'src/test/integration/**/*.spec.js' | npx bunyan","u":"mocha 'src/test/unit/**/*.spec.js' | npx bunyan","cov":"open coverage/index.html","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"standard --verbose 'src/**/*.js'","test":"run-s unit-integration lint","unit":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js'","build":"npm install && npm test","format":"standard --fix 'src/**/*.js'","report":"nyc report --reporter=html","postunit":"run-s report","integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/integration/**/*.spec.js'","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js' 'src/test/integration/**/*.spec.js'","make-distribution":"run-p doc lic","postunit-integration":"run-s report"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"repository":{"url":"git+https://gitlab.com/northscaler-public/bunyaner.git","type":"git"},"_npmVersion":"5.3.0","description":"Monkey-patches bunyan to have pretty neat log level methods","directories":{},"_nodeVersion":"8.6.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.0.1","chai":"4.2.0","acorn":"7.1.1","jsdoc":"3.6.4","mocha":"7.1.2","bunyan":"1.8.12","standard":"14.3.3","copyfiles":"2.2.0","dirty-chai":"2.0.1","npm-run-all":"4.1.5","npm-cli-login":"0.1.1","lodash.template":"4.5.0","intercept-stdout":"0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/bunyaner_0.1.4_1588427823755_0.34971765311243486","host":"s3://npm-registry-packages"}},"0.1.6":{"name":"@northscaler/bunyaner","version":"0.1.6","keywords":["bunyan","logging","log"],"license":"MIT","_id":"@northscaler/bunyaner@0.1.6","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/bunyaner#readme","bugs":{"url":"https://gitlab.com/northscaler-public/bunyaner/issues"},"dist":{"shasum":"fd987104d6617c55ab1869853474d802b0884b26","tarball":"https://registry.npmjs.org/@northscaler/bunyaner/-/bunyaner-0.1.6.tgz","fileCount":17,"integrity":"sha512-4F1FQKoFdyR38AfnxCTcS0a4Grw/n9LLoaWkJiWRViqVzlEImdCxIb29cyZWY5IVB9SmN7yzj5phpn0pLpVEqw==","signatures":[{"sig":"MEUCIFJ+r1tsK/wr0xfVLYsSP6kTwjtfJmX5/KRTwTUbAxXyAiEAt1nM9cqmhSvb4OJjxbSPPPjzgAyiXicL6SKOmnijKPo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24309,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJesdtZCRA9TVsSAnZWagAA6XwP/jUegHJFSvDbWMxb5Ahy\nx3D1uGgwNkChIuDLMtxI2oGSvUJqzihZcMy2xkOvDkxmjnpzvzJPiyq9Gqin\nd/u7Cwe/RtobWqew7DfPXppm6NE5KcVCrL6Jon8axT8ftzOC789jx2uyELn9\nXAIOPxTzpS+5mElulnPoShOMww85Agd4w6XkjTi+txHb5HO3NcBL5JTuUlqc\n49AbwhfBJv8mdqM0vgJo4+sPhuMC/Dqo+6cdGq3kTFOKP+WjoCYtYoRWzvNL\nQEABrFEiXtW1CuRVgt34fWPLda/KrEGjgQKcbgbZ8DuiOe8rLQkgPt9skTcb\nTOtrIrk1TZ47Pu7ljmCQgzCk6M4c78k0RaTOQMBkSVXeM6R5Sam9V4o0sgxI\nlibqPAgy8402TythXo5w9+PTDNqrVyeeqkXaj6F5B9ftOe5KkQIn3sMYRatU\nqqv/bpTzjnrX9axKMZj8wxsIVPgt/d3+N7ssjk5ubymINqGGW87kA1MsmOAP\nlijT+Y8cuwzkIuWuDLEC5upFm9N1DEKD3LIrw/J4MpPZMtkd58JS9dL8wUg/\nw0fh3dj5RXVNKsF53459/M+P148fLTbkbQE5YmJmW+lkmLCAtyAW5vQMbhtM\nclMXDgeNzRbunbzV0AHDJNdVBMjGIdJlI0Fx1qjpTDWGB94AkzukmcDps9Q1\nZfjn\r\n=z4G9\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.0.0"},"gitHead":"5cb7d15b0c5af4035e3c9e4e0e549c3b32cac131","scripts":{"i":"mocha 'src/test/integration/**/*.spec.js'","u":"mocha 'src/test/unit/**/*.spec.js'","cov":"open coverage/index.html","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"standard --verbose 'src/**/*.js'","test":"run-s unit-integration","unit":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js'","build":"npm install && ./test-all-bunyan-versions.sh","format":"standard --fix 'src/**/*.js'","report":"nyc report --reporter=html","posttest":"run-s lint","integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/integration/**/*.spec.js'","unit-integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js' 'src/test/integration/**/*.spec.js'","make-distribution":"run-p doc lic","test-all-bunyan-versions":"./test-all-bunyan-versions.sh"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"repository":{"url":"git+https://gitlab.com/northscaler-public/bunyaner.git","type":"git"},"_npmVersion":"6.14.4","description":"Monkey-patches bunyan to have pretty neat log level methods","directories":{},"_nodeVersion":"14.1.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"fx":"18.0.1","nyc":"15.0.1","chai":"4.2.0","acorn":"7.1.1","jsdoc":"3.6.4","mocha":"7.1.2","bunyan":"2.0.2","standard":"14.3.3","copyfiles":"2.2.0","dirty-chai":"2.0.1","npm-run-all":"4.1.5","semver-sort":"0.0.4","npm-cli-login":"0.1.1","lodash.template":"4.5.0","intercept-stdout":"0.1.2"},"peerDependencies":{"bunyan":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/bunyaner_0.1.6_1588714329289_0.8742108380926958","host":"s3://npm-registry-packages"}},"0.1.7":{"name":"@northscaler/bunyaner","version":"0.1.7","keywords":["bunyan","logging","log"],"license":"MIT","_id":"@northscaler/bunyaner@0.1.7","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/bunyaner#readme","bugs":{"url":"https://gitlab.com/northscaler-public/bunyaner/issues"},"dist":{"shasum":"2b42f4126dd42d91e513e4bc657e19cff97c2a21","tarball":"https://registry.npmjs.org/@northscaler/bunyaner/-/bunyaner-0.1.7.tgz","fileCount":17,"integrity":"sha512-2PakWXbsTxG/59wQgIOC/ph7I5RKjQ+OuocM6Bcy5e/psOPau+hGV8AB2KNqI06qPlRsBkYJrGM2DcO9Ah7xxQ==","signatures":[{"sig":"MEQCIG8/MjqLIHnys4n0blVjxynVQuabOnn5RkXoXhtmyJFnAiBr8jNSxwSmD6yjvoL4KUbr0+BDc2JsgHflaRI8GkufbA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24324,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeseIqCRA9TVsSAnZWagAACZUQAJiy9D+Sbit88murnOxl\nYsIe9wrkRupNYa7op54cfYc+dlLu7Gx/2Y6mGjc0/F3/Zmb2TYmBHB0gn2bw\nxgFO62eywAasWlaSfAo8Qbpj9CYzNQfNF4Bevm53YOpA4M7FahAWv7EVqgBv\nvBaxAUYNv2B686POdfeVkchjcLTGB5tzIqGHc29oo01qip7pHwdP944e728+\na2sXjUa720Du1y0GikvBBxDK1naC1MRZ1AnIMeDfb/9Vrf4uR8f5/kwEhbb1\n5YO8mqbNtSwiGAyA0ZiwKadgdlZ8+uuL0Ok/YRGQqq6ihm7z697f1WViVuRs\no8/rLSl37KekC6YMwlzpKjsefqjoGTLWdgLAWMZJNCRHsJ8C9TruXZ7iPfRz\nqR4ki/ULlGubkCgsOhNbrT4qyI9svMG5Q3eSpF0zYLH008BBlD+PkqOKa/Pg\nrj6KM2Gf5tr0Vo6NET2gzGKyesRaBw2lUMa3NLmPv6WpgYKmGBjt7REFd1xs\nIvI2pRcocGHKVEyyOdOMjG3FaXsoo4ISf+rW06Iyew9hLmerpya2DNISxGkX\n/taahoWNwHY6jY5oWbaA/f/keNsmdul5ATiwyhGP8vnmQHAxu8sSthFfTcKD\nhyz12I5NMU4oZGNP5f7Oic2h2p7DNkTUpe8MKZYZ/m+IOLEIQg/2e66Mm1YT\nas+P\r\n=MVe9\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.0.0"},"gitHead":"ae6d7f26395532bf2dcebd507bea70a6c92fe628","scripts":{"i":"mocha 'src/test/integration/**/*.spec.js'","u":"mocha 'src/test/unit/**/*.spec.js'","cov":"open coverage/index.html","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"standard --verbose 'src/**/*.js'","test":"run-s unit-integration","unit":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js'","build":"npm install && ./test-all-bunyan-versions.sh","format":"standard --fix 'src/**/*.js'","report":"nyc report --reporter=html","posttest":"run-s lint","integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/integration/**/*.spec.js'","unit-integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js' 'src/test/integration/**/*.spec.js'","make-distribution":"run-p doc lic","test-all-bunyan-versions":"./test-all-bunyan-versions.sh"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"repository":{"url":"git+https://gitlab.com/northscaler-public/bunyaner.git","type":"git"},"_npmVersion":"6.14.4","description":"Monkey-patches bunyan to have pretty neat log level methods","directories":{},"_nodeVersion":"14.1.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"fx":"18.0.1","nyc":"15.0.1","chai":"4.2.0","acorn":"7.1.1","jsdoc":"3.6.4","mocha":"7.1.2","bunyan":"2.0.2","standard":"14.3.3","copyfiles":"2.2.0","dirty-chai":"2.0.1","npm-run-all":"4.1.5","semver-sort":"0.0.4","npm-cli-login":"0.1.1","lodash.template":"4.5.0","intercept-stdout":"0.1.2"},"peerDependencies":{"bunyan":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/bunyaner_0.1.7_1588716074186_0.7077208097123906","host":"s3://npm-registry-packages"}},"0.1.8":{"name":"@northscaler/bunyaner","version":"0.1.8","keywords":["bunyan","logging","log"],"license":"MIT","_id":"@northscaler/bunyaner@0.1.8","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/bunyaner#readme","bugs":{"url":"https://gitlab.com/northscaler-public/bunyaner/issues"},"dist":{"shasum":"d2b69bde9536cad0c0f4b65fcbc8b71f979bd5ec","tarball":"https://registry.npmjs.org/@northscaler/bunyaner/-/bunyaner-0.1.8.tgz","fileCount":18,"integrity":"sha512-BFIRfxMEfgcQGGWRkz/svfcy474AOkHrY2b/vjsIBh8Jc9tnny5occsrg40CcKzeovA2K0aRB7BnX+GuLtzb9g==","signatures":[{"sig":"MEQCIG71MJIMws2+mRu+OmQfGCMzPPQ0Cfm3uiwMbYjLksI3AiBWd7yHG9BQGVsOMSQgT+RV7CLR5H+4NbpxNmqTj2Nijw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":309684,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfMt8/CRA9TVsSAnZWagAA764P+QAsOaMo2EOM3lQ5CEO8\nRrDguzAAougIYqdUsRIG1pP6sxAtQWyXisyFiFmrN8IOf1ZmD0Xu8z7LC8nP\n5etRb2F4LpKik786vfmB+PB/LHT8DLHmcLHjQwY7wnXqejJknFdNl6SRjqYK\nB3RaUdfPDyFfIDbjmxugfIc8lNp1+fVDMvTX0Xv865zG86ujmWloCCCToVuB\nX1htrfOTz275pVlB13jtNDMRho0j1S2OdqrT4Kkdk5KgffAe0uCT6In9fqkY\nEQZC4pfKzPfB2x3eEDwPCb9xUDWTef5GBybgDlkdxdHbc3GOPkATnQp05+S2\n8DDhV/NC8lD48Hdy4ihedKfKvWuO+dWHRFOAiiAVjCVU+d/s4XlkaoVpGuU2\nUd6xg6YU54tZhthu/lKnm7fosHWSFosk+RyXCNUncvBraJTwweyebUszPgvm\nz7NSZALV1nvA6ImHrSiZ9J/C1ID7BuSfdHIv5axKZ6YE30HM6z5NLT1mLr5Y\n+BsbW4NDokXUqCtzcBnRXPJB5oNyz8ENRt4IiNYtEzzH1Wb4WeY+4HN0Nxut\n3JSlwwVbaXqImlTHFP+z2/TAYQr2xQRBP2jnOAL4WDN+rsSe6nGQKuR2fl4N\naPB9bnv0hdzrLBzBfKU/B8fVqotZfbqnb8aUdjOY+oY4AjLdt/4r9vZsyU8M\nG55B\r\n=30CJ\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.0.0"},"gitHead":"d607a172e3e1091249e7ab59cff53d2466e71c38","scripts":{"i":"mocha 'src/test/integration/**/*.spec.js'","u":"mocha 'src/test/unit/**/*.spec.js'","cov":"open coverage/index.html","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"standard --verbose 'src/**/*.js'","test":"run-s unit-integration","unit":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js'","build":"npm install && ./test-all-bunyan-versions.sh","format":"standard --fix 'src/**/*.js'","report":"nyc report --reporter=html","posttest":"run-s lint","integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/integration/**/*.spec.js'","unit-integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js' 'src/test/integration/**/*.spec.js'","make-distribution":"run-p doc lic","test-all-bunyan-versions":"./test-all-bunyan-versions.sh"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"repository":{"url":"git+https://gitlab.com/northscaler-public/bunyaner.git","type":"git"},"_npmVersion":"6.14.4","description":"Monkey-patches bunyan to have pretty neat log level methods","directories":{},"_nodeVersion":"14.1.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":true,"devDependencies":{"fx":"18.0.1","nyc":"15.0.1","chai":"4.2.0","acorn":"7.1.1","jsdoc":"3.6.4","mocha":"7.1.2","bunyan":"2.0.2","standard":"14.3.3","copyfiles":"2.2.0","dirty-chai":"2.0.1","npm-run-all":"4.1.5","semver-sort":"0.0.4","npm-cli-login":"0.1.1","lodash.template":"4.5.0","intercept-stdout":"0.1.2"},"peerDependencies":{"bunyan":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/bunyaner_0.1.8_1597169470654_0.2635516052335305","host":"s3://npm-registry-packages"}},"0.1.9":{"name":"@northscaler/bunyaner","version":"0.1.9","keywords":["bunyan","logging","log"],"license":"MIT","_id":"@northscaler/bunyaner@0.1.9","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/bunyaner#readme","bugs":{"url":"https://gitlab.com/northscaler-public/bunyaner/issues"},"dist":{"shasum":"6de3e47d581e1703bb2352c19e15be4edf079c91","tarball":"https://registry.npmjs.org/@northscaler/bunyaner/-/bunyaner-0.1.9.tgz","fileCount":17,"integrity":"sha512-EZPA8HpJq+pWfUl+9xBhOQD+30ClMt7dZ+ZlWPoh6pEecXVn4T/YBVIUupxdhewjeCBqpiRTsCT+SZlhyECwKQ==","signatures":[{"sig":"MEUCIQD3hlSBb3ajw4jSGYnp8jDv88ZFPgU1vsUfwAmnM6DiSgIgdnXlOJ15e5762LlQD1AOZF9TUnD30BZHpbufuqDdCx4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24371,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfNv9iCRA9TVsSAnZWagAAe1MQAICikArXql7nG6mFIzz5\ng1HM1lFl3oiyddE8scrkD6YvMdiBZjHHSjAFP8e97fEkvCkdBkyD05Pb/uOQ\nWtZbVSoRKyZrkpbhTh8QshYUjIntb4Z0vS+mT81wQ53ngi7sl750vepCkF0O\nsEsU9mMtVuhOpipdV6NDwwgoTk/36VZUWMhLa5FOTqm9+GkqyPvoFIDs0UuA\nEre9ofDgt7IIhac71jE4fQ6+X4Ao8a4hWWV5mSAAHV62j80Ax4v2lu919f3a\nml+8L/zUNc/mk7tLbvusbKSTSvNgaAgqFtIbonwhzvfOq/srqT5sHFnf1WV1\nO86TfGM+gBflBix3mdt5URxCK2NoNpQstU7NIeCv/gTwVUy2W194t6rY9f0N\nusKHBSbOV+MRdBqjn0r2Xv1yUOMJtF9hdC52tS6a7MJh7xCZ4hRGWd9V5UF6\ndX5GA636BltjBYU7phhrPfJPjt4VNIx5Bdej3pKr+eyI88IK5somwbglyw9f\nuKCE20yOQDG6oe144327EDYBRunDdOEipS7MXOdeZI7qUpa2wuVgi35rQftr\nJGcCJhtu/ixlVPhaamVFTBpqE+bY8H0CKp6yMeaw28yKzlbL1JeJep3AVUzt\nnfXiwWBDlErBR9we/leJWndIjQ4vHqa3ts+vH82zCvCIZyI40PtC5vVKGCFV\n6dFG\r\n=Pdqj\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.0.0"},"gitHead":"0e13331461dc47878c4659e6e12b0cdf2607b6c9","scripts":{"i":"mocha 'src/test/integration/**/*.spec.js'","u":"mocha 'src/test/unit/**/*.spec.js'","cov":"open coverage/index.html","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"standard --verbose 'src/**/*.js'","test":"run-s unit-integration","unit":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js'","build":"npm install && ./test-all-bunyan-versions.sh","format":"standard --fix 'src/**/*.js'","report":"nyc report --reporter=html","posttest":"run-s lint","integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/integration/**/*.spec.js'","unit-integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js' 'src/test/integration/**/*.spec.js'","make-distribution":"run-p doc lic","test-all-bunyan-versions":"./test-all-bunyan-versions.sh"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"repository":{"url":"git+https://gitlab.com/northscaler-public/bunyaner.git","type":"git"},"_npmVersion":"6.14.4","description":"Monkey-patches bunyan to have pretty neat log level methods","directories":{},"_nodeVersion":"14.1.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"fx":"18.0.1","nyc":"15.0.1","chai":"4.2.0","acorn":"7.1.1","jsdoc":"3.6.4","mocha":"7.1.2","bunyan":"2.0.2","standard":"14.3.3","copyfiles":"2.2.0","dirty-chai":"2.0.1","npm-run-all":"4.1.5","semver-sort":"0.0.4","npm-cli-login":"0.1.1","lodash.template":"4.5.0","intercept-stdout":"0.1.2"},"peerDependencies":{"bunyan":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/bunyaner_0.1.9_1597439841807_0.32531916635628133","host":"s3://npm-registry-packages"}},"1.0.0-rc.0":{"name":"@northscaler/bunyaner","version":"1.0.0-rc.0","keywords":["bunyan","logging","log"],"license":"MIT","_id":"@northscaler/bunyaner@1.0.0-rc.0","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/bunyaner#readme","bugs":{"url":"https://gitlab.com/northscaler-public/bunyaner/issues"},"dist":{"shasum":"885ed1af6f78fdd76337dcd5e7d73dd01400938e","tarball":"https://registry.npmjs.org/@northscaler/bunyaner/-/bunyaner-1.0.0-rc.0.tgz","fileCount":17,"integrity":"sha512-zDJxOnlniN6CLp2OeSm8qdFKftf1CHM+iMv2qB/OysZlJmcNGsFGc9kyGv0GYUbNTud1s1f41Rd2TWBCSRWucA==","signatures":[{"sig":"MEUCIQD/m5xYF773W+lfp7JWehpJ567RIq3easSr0w31SjhEswIgAyuophIQo/PFdwE6vRwocHDDiKC8foq+V1sTrUlx3Rw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34410,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfPDM7CRA9TVsSAnZWagAAHa0QAIRQqj+k1GJDXSV051ia\nr6L4HGLFutWxG3IzKTDZvB1Bzad8RxE4+wmMRxDFepvbDgs0myDqwslkaddX\n2RqS0d47J7s2Pzz97oqUOBTNRhadnDeRzCUdTye+0T4NSlzsCwO7kqSMSbmJ\nJ1qxqkFSAOZpLuTUi+VlgOVVjeVkU8rUGUHwgd1SKhFQuV3rs65Yl2ESghQB\nx7wP0TCoS4E502bk7AFpCSA+MzoZDIpRabxvNI0aHeMP0VD7NJJLpgO1+slD\nnVjtg5JJ5VHe5ulzogzX0PMh7bVGfmSAB/GBSxU6kiJ+FtrH/lN1Pv6hrr05\ncPj26stTDEIBL8jmFulrE8DjkQdzfO/1KWfAffxDu0lD8xT7mVe0j1nGyTpI\nnAiQ+DWvgaZpTLTh8WZMFjFEoNFhoi5hkVacwACd/ugrplS7g6CmR++jaVdM\n2QtWZ6bngZA3HI8mvabf/rREmRvfDOqtlDmbl4onHCGBhHmMtYNjZ9yKbvg7\nMQhSe6g1iRxUnzJ7edy3h2W7ChgNvKGSExqa3R7QZlhFFoh5P/QY+DNu++9n\nzDxwAW475diPaT5cewW98IZiE1X4fwXP7bBhoHBGGgrLmfgdHLXT2zAeJi52\nVRbZAAxY/zups/ppz+t1aB0mXKlM0PL8vyMV3uCGGkAqdVCc+Oicr/BpLuDa\n8T8H\r\n=lbAV\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@northscaler/bunyaner`\nMake [bunyan](https://www.npmjs.com/package/bunyan)'s log level methods much mo' betta'!\n\n## Overview\n* Have bunyan's log level methods return values, usually the first argument given so that you can inline your logging statements.\n* No worries about having your logged objects conflict with [bunyan's core fields](https://www.npmjs.com/package/bunyan#core-fields).\n* Allow log level methods to support functions in order to defer expensive log statements if the log method's level is below the currently configured log level.\n\n## TL;DR\nInstall `bunyan` & `@northscaler/bunyaner`:\n```bash\n$ npm i --save bunyan\n$ npm i --save @northscaler/bunyaner\n```\nCreate a file that your module will use to get a logger:\n```javascript\n// log.js\nconst bunyan = require('bunyan')\nconst bunyaner = require('@northscaler/bunyaner')\n\nmodule.exports = bunyaner({ bunyanLogger: bunyan.createLogger({ name: 'my-logger' }) })\n```\n\nNow use it:\n```javascript\nconst log = require('./log')\n\nlet gameState = log.info({\n  game: 'zork',\n  player: 'querky123'\n}) // logs { ..., \"payload\": { \"game\": \"zork\", \"player\": \"querky123\" }, ... } & returns object\n\n// ...querky123 plays game to level 5...\n\ngameState = log.info({\n  game: 'zork',\n  player: 'querky123',\n  level: 5 // <- conflicts with bunyan core logging field, but no matter!\n}) // logs { ..., \"payload\": { \"game\": \"zork\", ..., \"level\": 5 }, ... } & returns object\n\nif (gameState.badness) {\n  // log method logs given error, then returns it so it can be thrown\n  throw log.error(new Error('boom'), 'we blew up')\n} // logs { ..., \"isError\": true, \"payload\": { \"message\": \"boom\", \"stack\": ... }, \"msg\": \"we blew up\", ... } & returns the error object\n\n// avoid calculations if your logging level is higher than\n// your method's level by putting whatever's logged inside a function:\nlog.debug(() => `foo: ${somethingExpensive()}`) // if log.level() is > debug, somethingExpensive() is never called!\n```\n\n## Details\nThis library monkey patches a bunyan logger to give it log level methods that\n* return a value,\n* allow the caller to defer expensive evaluation when the current log level is below the level of the log method invoked.\n* prevent conflicts with [bunyan's core fields](https://www.npmjs.com/package/bunyan#core-fields), and\n* indicate that the logged object was an `Error`.\n\n### Returning values\nWith this monkey patch, the log methods return values so that you can inline your logging code.\nThe returned value is usually the first argument that you give the log function, but there are some exceptions noted below.\nGenerally, inline logging looks like this:\n```\nconst foo = log.debug({bar: true}, 'I just set my foo')\n```\nand it will log something like this (without indentation):\n```\n{\n  \"name\": \"test\",\n  \"hostname\": \"...\",\n  \"pid\": 32708,\n  \"level\": 30,\n  \"payload\": {\n    \"bar\": true\n  },\n  \"msg\": \"I just set my foo\",\n  \"time\": \"2020-08-18T17:13:42.766Z\",\n  \"v\": 0\n}\n```\nThe value is returned whether or not the log level method would generate log output.\nOtherwise, inline logging wouldn't be very valuable!\n\nThe only times the value returned from the log method is _not_ the first value are the following.\n \n* If the first argument is a function, you are performing deferred execution and shouldn't be using inline logging, so `undefined` is returned.\n* If the first argument is a [`util.format`](https://nodejs.org/api/util.html#util_util_format_format_args) string, then the _second_ argument to the log level method is returned and there is no `payload` property in the logged record.\n\n### Lazy log calculations\nPassing a function to the log method will cause evaluation of the function to be executed only if the current log method would produce output.\nAfter all, if you're not going to log anything, then don't calculate anything to log!\n\nWhen the first argument is a function, the function will be invoked with the remainder of the arguments given and the function's return value will be passed along to bunyan's log method.\nIf the function returns an array, then the elements become the multiple arguments to the log method.\n\n### No conflicts with core logging properties\nFor any object that you want to log, this monkey patch puts it in a property called `payload` (by default), so that you don't ever conflict with [bunyan's core fields](https://www.npmjs.com/package/bunyan#core-fields).\n\n### Logging `Error`s\nIf the payload is an `Error`, the `isError` property is included in the log record with the value `true`.\nYou can also force the `isError` property to _always_ be present, too, and its value will be `true` or `false` based on whether the `payload` is an `Error`.\n```\nthrow log.error(new Error('boom'), 'Done blowed up')\n```\nlogs (without indentation):\n```\n{\n  \"name\": \"test\",\n  \"hostname\": \"...\",\n  \"pid\": 32908,\n  \"level\": 50,\n  \"payload\": {\n    \"message\": \"boom\",\n    \"name\": \"Error\"\n  },\n  \"isError\": true,\n  \"msg\": \"Done blowed up\",\n  \"time\": \"2020-08-18T17:49:30.797Z\",\n  \"v\": 0\n}\n```\nNotice the `payload` & `isError` properties in the log record.\n\nIf the first argument is an `Error`, bunyan's configured `err` serializer is used to log it, otherwise it is converted into a plain, old JavaScript object and that value is logged.\nIn either case, there is a log record field added called `isError` (by default) and its value will be truthy.\nIf you don't want to include the `Error` `stack`, use your own `err` serializer with bunyan.\n\n## Configuration\nThe function returned by `require('@northscaler/bunyaner')` takes a configuration object as follows.\n```\n{\n  bunyanLogger: logger,             // required: your configured bunyan logger instance\n  bunyanerOpts: {                   // optional\n    payloadKey: 'payload',          // or whatever you want, just don't conflict with bunyan\n    errorIndicatorKey: 'isError',   // or whatever you want, just don't conflict with bunyan\n    alwaysShowErrorIndicator: false // or true\n  }\n}\n```\nCreate a file in your app that configures the log, then have your app just `require`:\n```javascript\nconst bunyan = require('bunyan')\nconst bunyaner = require('@northscaler/bunyaner')\n\n// ...configure bunyan however you want to here...\nconst logger = bunyan.createLogger({ name: 'my-logger' })\n\nmodule.exports = bunyaner({ bunyanLogger: logger })\n``` \n\n## Tips\n\n### Don't use return value feature with deferred logging\nIf you use deferred logging, like `log.debug(() => somethingExpensive())`, remember that you will _not_ get a return value from the log method, because you are intentionally skipping logging based on the current log level.\n\n### Use aspects for tracing\nCombine AOP from [@northscaler/aspectify](https://www.npmjs.com/package/@northscaler/aspectify) with this library's deferred logging to do automated, efficient and unobtrusive tracing.\nHere's an example that logs inputs as well as happy & saddy path outputs:\n```javascript\n// in file trace.js\nconst { AsyncAround } = require('@northscaler/aspectify')\nconst log = require('./.../log.js') // as above\n \nconst trace = async ({ thisJoinPoint }) => {\n  const start = Date.now()\n\n  try {\n    const returned = await thisJoinPoint.proceed()\n    log.trace(() => ({\n      clazz: thisJoinPoint.clazz.name,\n      method: thisJoinPoint.fullName,\n      args: thisJoinPoint.args,\n      returned,\n      elapsed: Date.now() - start\n    }))\n\n    return returned\n  } catch (e) {\n    log.error(() => ({\n      clazz: thisJoinPoint.clazz.name,\n      method: thisJoinPoint.fullName,\n      args: thisJoinPoint.args,\n      threw: e,\n      elapsed: Date.now() - start\n    }))\n\n    throw e\n  }\n}\n \nmodule.exports = AsyncAround(trace)\n```\n\nNow use it:\n```javascript\nconst trace = require('./trace')\n\nclass CustomerRepository {\n  constructor(mongoose) {\n    // ...  \n  }\n\n  @trace // will log happy & saddy paths -- no need for log statements everywhere\n  async findByLastName(lastName) {\n    // use mongoose to query...\n  }\n}\n```\n\n### Use @northscaler/error-support\n_NB: shameless plug._\n\nIf you use [@northscaler/error-support](https://www.npmjs.com/package/@northscaler/error-support), the `Error`s you log will be [converted very nicely to a loggable object](https://www.npmjs.com/package/@northscaler/error-support#toobject), include entire cause chains.\n\n","engines":{"node":">=8.0.0"},"gitHead":"0a63d4b689ecde5acb1c0c109d23df8ff72324b9","scripts":{"i":"mocha 'src/test/integration/**/*.spec.js'","u":"mocha 'src/test/unit/**/*.spec.js'","cov":"open coverage/index.html","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"standard --verbose 'src/**/*.js'","test":"run-s unit-integration","unit":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js'","build":"npm install && ./test-all-bunyan-versions.sh","format":"standard --fix 'src/**/*.js'","report":"nyc report --reporter=html","posttest":"run-s lint","integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/integration/**/*.spec.js'","unit-integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js' 'src/test/integration/**/*.spec.js'","make-distribution":"run-p doc lic","test-all-bunyan-versions":"./test-all-bunyan-versions.sh"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"repository":{"url":"git+https://gitlab.com/northscaler-public/bunyaner.git","type":"git"},"_npmVersion":"6.14.4","description":"Monkey-patches bunyan to have pretty neat log level methods","directories":{},"_nodeVersion":"14.1.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"fx":"18.0.1","nyc":"15.0.1","chai":"4.2.0","acorn":"7.1.1","jsdoc":"3.6.4","mocha":"7.1.2","bunyan":"2.0.2","standard":"14.3.3","copyfiles":"2.2.0","dirty-chai":"2.0.1","npm-run-all":"4.1.5","semver-sort":"0.0.4","npm-cli-login":"0.1.1","lodash.template":"4.5.0","intercept-stdout":"0.1.2"},"peerDependencies":{"bunyan":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/bunyaner_1.0.0-rc.0_1597780795074_0.7862103739524802","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"@northscaler/bunyaner","version":"1.0.0","keywords":["bunyan","logging","log"],"license":"MIT","_id":"@northscaler/bunyaner@1.0.0","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/bunyaner#readme","bugs":{"url":"https://gitlab.com/northscaler-public/bunyaner/issues"},"dist":{"shasum":"7c277c15ef28e9edd0e0034ae17be8eda7df480a","tarball":"https://registry.npmjs.org/@northscaler/bunyaner/-/bunyaner-1.0.0.tgz","fileCount":17,"integrity":"sha512-6ww/UB1Tx9DiK2MsBiFTL2RVjy5gNou3TLJ1UtdW9tMWQGsiNJ0+0UOaAc6zBJ030XD/n3N7i1TTZg3jstkC+A==","signatures":[{"sig":"MEYCIQDQ5ZFZbPbkQkvgskPhmgKA80kT3ZKHJNuHwegkFfoWBAIhAM6xnqss4fWb3qXH40zdnUyyMDdm1tBn/junqY1SIC5u","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34405,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfPD4DCRA9TVsSAnZWagAAnl0P/jT1lhPpNCfT/X87PFrY\nLx6z1RrcOJ4INgmBqBFXEtbafn85GaNLvnBHrtm5m1c2zPpaVtumArjyIRkk\nhoi5wKqwyxeYD2ctjXvp2ss769BSDnrXxp4K3bBIPbe8+4PvfguAiz08jkI+\n7jw6UL0EkL7rcV0MibvhmXjoZ2MrkPHTqsU17O2Rpik+dRKaXjGMZBarsHgs\nOUPIShBCQ9Hw4vu2riarLWahWCE6GheVeY4qtd6Fn7uqp4Dv7Y52mBu7dMf4\n3T2gMztzv12e5QNzuFUFcOuhJpVrIVzGY3irel7FzkCRt43/g1RiF83S22Rz\nuIHA+iif9b0VYkW0RlQzLiVwDKofjN62uRJpb/QCDyxyM1Hwip+oB/8XXSK8\nx8uzGghuYejkpjiDLyfBwnnMJFQhIFoLnRr8XPQe6JTIFwrsyMuvNt+f6Fsj\n5Kn0O2KtBEHsp4fYhbbfXyhBFOZ9GQI8qUzsOlrfSZEvA2x5ThwswBGB2eu9\nUMej0MJYSlM+FTOKb2iHtLUXrHlmkatGzwLJP4DlM7sTM+R6B1isGPiStIX8\nQVQrwBh6vXtruzDgNUdmhKUNU6xurvci+4Y7A9Lp5+ye1As4mID4AhtinAvL\nxd0SIw+EEnqQs4IWzJnd6xm13tYKrnH+QC52KRhkBixGTVUbcXkJgbr+yBgI\nmdDv\r\n=pKLa\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8.0.0"},"gitHead":"5414c3c3ebb39010f9abaeb1431afcfa59474ad2","scripts":{"i":"mocha 'src/test/integration/**/*.spec.js'","u":"mocha 'src/test/unit/**/*.spec.js'","cov":"open coverage/index.html","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"standard --verbose 'src/**/*.js'","test":"run-s unit-integration","unit":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js'","build":"npm install && ./test-all-bunyan-versions.sh","format":"standard --fix 'src/**/*.js'","report":"nyc report --reporter=html","posttest":"run-s lint","integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/integration/**/*.spec.js'","unit-integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js' 'src/test/integration/**/*.spec.js'","make-distribution":"run-p doc lic","test-all-bunyan-versions":"./test-all-bunyan-versions.sh"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"repository":{"url":"git+https://gitlab.com/northscaler-public/bunyaner.git","type":"git"},"_npmVersion":"6.14.4","description":"Monkey-patches bunyan to have pretty neat log level methods","directories":{},"_nodeVersion":"14.1.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"fx":"18.0.1","nyc":"15.0.1","chai":"4.2.0","acorn":"7.1.1","jsdoc":"3.6.4","mocha":"7.1.2","bunyan":"2.0.2","standard":"14.3.3","copyfiles":"2.2.0","dirty-chai":"2.0.1","npm-run-all":"4.1.5","semver-sort":"0.0.4","npm-cli-login":"0.1.1","lodash.template":"4.5.0","intercept-stdout":"0.1.2"},"peerDependencies":{"bunyan":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/bunyaner_1.0.0_1597783553528_0.7085715732609859","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@northscaler/bunyaner","version":"1.0.1","keywords":["bunyan","logging","log"],"license":"MIT","_id":"@northscaler/bunyaner@1.0.1","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/bunyaner#readme","bugs":{"url":"https://gitlab.com/northscaler-public/bunyaner/issues"},"dist":{"shasum":"6c3baaac18aa78914fca5c3faadd7a63d125713f","tarball":"https://registry.npmjs.org/@northscaler/bunyaner/-/bunyaner-1.0.1.tgz","fileCount":36,"integrity":"sha512-uOp/1Hb39L8NbcuJVJYcTiQPh3Le2eO440SXvHu4xxwIen4Zu7+Tx4E721awVrVy1m/r2N7bRmMAp04SidyQsA==","signatures":[{"sig":"MEQCIFu3mRDNK6ZOY0rj+kP5iCRTW/oa/Ub7USzBzfL9LyQHAiBwnyNlwK8n4ecbJ8chlk9zCH4DpsFGqK5LY6JplncOWA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1067293,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfP/P1CRA9TVsSAnZWagAAtmcQAIPuW+ieyLcsNp4t8Nme\nnYEAKG5Ja24pUpi306pPx6mzSDhSmVfwwAU1T09XY6mTHMcWlrjMvyT7eHD3\naeFMueRnzcsMCXPNhMsa7oA2on363hMvfqO95hoEgsaFWcxK9p0foUvadgAL\n2F9/Pw3HsNd8zrBUQ/ponmQXS8uJd3HO4xVCkuatx4WfPeNKLFZZzitBFAgR\nV9jkd19PVDyJDLePQC7lmfXJaJ/F+IUFyYWbh7X/5WSLjagZezjP81CpHS/t\niAeTmMGT+oUbdDa2JvkN+kxAPy/WQaa0EqPyc0f4j1QPplyex+zRJvVXtwHV\nxiDNKqDYVqlaXCtPFzvZOcG4/p+Bi9vBJ2OYRKtnM6PWfkkV3eUUgOgSRpNV\nnVwXu94EXXP3WfYST00J2CnZwT11VRO772ZBRwaX29srNNtq+DtrYVD8n3jF\n/F5s2gL9MdA+vQSSruQsMxY1YYFH4GOcBb9JatGlytb/OIc1qGCfI9u8nBmP\ndN9Ah2SjAVJylBBlFshuZpTaDOLPe7F3cG4OljhbbhH4Ia5rgBsasuF9cU9V\n0jgraHQ9Ri7NfPiostzqIK21L/hnR6nX1eQNbyz7e+qonBOJJI127hnsrmTJ\nat7g3lvnbyYfoQyDCBiQx6SXe1D3zKDWH9zJzTxWH3lhln8MU3Yw9MgXc0xf\nXzQo\r\n=/ee3\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# `@northscaler/bunyaner`\nMake [bunyan](https://www.npmjs.com/package/bunyan)'s log level methods much mo' betta'!\n\n## Overview\n* Have bunyan's log level methods return values, usually the first argument given so that you can inline your logging statements.\n* No worries about having your logged objects conflict with [bunyan's core fields](https://www.npmjs.com/package/bunyan#core-fields).\n* Allow log level methods to support functions in order to defer expensive log statements if the log method's level is below the currently configured log level.\n\n## TL;DR\nInstall `bunyan` & `@northscaler/bunyaner`:\n```bash\n$ npm i --save bunyan\n$ npm i --save @northscaler/bunyaner\n```\nCreate a file that your module will use to get a logger:\n```javascript\n// log.js\nconst bunyan = require('bunyan')\nconst bunyaner = require('@northscaler/bunyaner')\n\nmodule.exports = bunyaner({ bunyanLogger: bunyan.createLogger({ name: 'my-logger' }) })\n```\n\nNow use it:\n```javascript\nconst log = require('./log')\n\nlet gameState = log.info({\n  game: 'zork',\n  player: 'querky123'\n}) // logs { ..., \"payload\": { \"game\": \"zork\", \"player\": \"querky123\" }, ... } & returns object\n\n// ...querky123 plays game to level 5...\n\ngameState = log.info({\n  game: 'zork',\n  player: 'querky123',\n  level: 5 // <- conflicts with bunyan core logging field, but no matter!\n}) // logs { ..., \"payload\": { \"game\": \"zork\", ..., \"level\": 5 }, ... } & returns object\n\nif (gameState.badness) {\n  // log method logs given error, then returns it so it can be thrown\n  throw log.error(new Error('boom'), 'we blew up')\n} // logs { ..., \"isError\": true, \"payload\": { \"message\": \"boom\", \"stack\": ... }, \"msg\": \"we blew up\", ... } & returns the error object\n\n// avoid calculations if your logging level is higher than\n// your method's level by putting whatever's logged inside a function:\nlog.debug(() => `foo: ${somethingExpensive()}`) // if log.level() is > debug, somethingExpensive() is never called!\n```\n\n## Details\nThis library monkey patches a bunyan logger to give it log level methods that\n* return a value,\n* allow the caller to defer expensive evaluation when the current log level is below the level of the log method invoked.\n* prevent conflicts with [bunyan's core fields](https://www.npmjs.com/package/bunyan#core-fields), and\n* indicate that the logged object was an `Error`.\n\n### Returning values\nWith this monkey patch, the log methods return values so that you can inline your logging code.\nThe returned value is usually the first argument that you give the log function, but there are some exceptions noted below.\nGenerally, inline logging looks like this:\n```\nconst foo = log.debug({bar: true}, 'I just set my foo')\n```\nand it will log something like this (without indentation):\n```\n{\n  \"name\": \"test\",\n  \"hostname\": \"...\",\n  \"pid\": 32708,\n  \"level\": 30,\n  \"payload\": {\n    \"bar\": true\n  },\n  \"msg\": \"I just set my foo\",\n  \"time\": \"2020-08-18T17:13:42.766Z\",\n  \"v\": 0\n}\n```\nThe value is returned whether or not the log level method would generate log output.\nOtherwise, inline logging wouldn't be very valuable!\n\nThe only times the value returned from the log method is _not_ the first value are the following.\n \n* If the first argument is a function, you are performing deferred execution and shouldn't be using inline logging, so `undefined` is returned.\n* If the first argument is a [`util.format`](https://nodejs.org/api/util.html#util_util_format_format_args) string, then the _second_ argument to the log level method is returned and there is no `payload` property in the logged record.\n\n### Lazy log calculations\nPassing a function to the log method will cause evaluation of the function to be executed only if the current log method would produce output.\nAfter all, if you're not going to log anything, then don't calculate anything to log!\n\nWhen the first argument is a function, the function will be invoked with the remainder of the arguments given and the function's return value will be passed along to bunyan's log method.\nIf the function returns an array, then the elements become the multiple arguments to the log method.\n\n### No conflicts with core logging properties\nFor any object that you want to log, this monkey patch puts it in a property called `payload` (by default), so that you don't ever conflict with [bunyan's core fields](https://www.npmjs.com/package/bunyan#core-fields).\n\n### Logging `Error`s\nIf the payload is an `Error`, the `isError` property is included in the log record with the value `true`.\nYou can also force the `isError` property to _always_ be present, too, and its value will be `true` or `false` based on whether the `payload` is an `Error`.\n```\nthrow log.error(new Error('boom'), 'Done blowed up')\n```\nlogs (without indentation):\n```\n{\n  \"name\": \"test\",\n  \"hostname\": \"...\",\n  \"pid\": 32908,\n  \"level\": 50,\n  \"payload\": {\n    \"message\": \"boom\",\n    \"name\": \"Error\"\n  },\n  \"isError\": true,\n  \"msg\": \"Done blowed up\",\n  \"time\": \"2020-08-18T17:49:30.797Z\",\n  \"v\": 0\n}\n```\nNotice the `payload` & `isError` properties in the log record.\n\nIf the first argument is an `Error`, bunyan's configured `err` serializer is used to log it, otherwise it is converted into a plain, old JavaScript object and that value is logged.\nIn either case, there is a log record field added called `isError` (by default) and its value will be truthy.\nIf you don't want to include the `Error` `stack`, use your own `err` serializer with bunyan.\n\n## Configuration\nThe function returned by `require('@northscaler/bunyaner')` takes a configuration object as follows.\n```\n{\n  bunyanLogger: logger,             // required: your configured bunyan logger instance\n  bunyanerOpts: {                   // optional\n    payloadKey: 'payload',          // or whatever you want, just don't conflict with bunyan\n    errorIndicatorKey: 'isError',   // or whatever you want, just don't conflict with bunyan\n    alwaysShowErrorIndicator: false // or true\n  }\n}\n```\nCreate a file in your app that configures the log, then have your app just `require`:\n```javascript\nconst bunyan = require('bunyan')\nconst bunyaner = require('@northscaler/bunyaner')\n\n// ...configure bunyan however you want to here...\nconst logger = bunyan.createLogger({ name: 'my-logger' })\n\nmodule.exports = bunyaner({ bunyanLogger: logger })\n``` \n\n## Tips\n\n### Don't use return value feature with deferred logging\nIf you use deferred logging, like `log.debug(() => somethingExpensive())`, remember that you will _not_ get a return value from the log method, because you are intentionally skipping logging based on the current log level.\n\n### Use aspects for tracing\nCombine AOP from [@northscaler/aspectify](https://www.npmjs.com/package/@northscaler/aspectify) with this library's deferred logging to do automated, efficient and unobtrusive tracing.\nHere's an example that logs inputs as well as happy & saddy path outputs:\n```javascript\n// in file trace.js\nconst { AsyncAround } = require('@northscaler/aspectify')\nconst log = require('./.../log.js') // as above\n \nconst trace = async ({ thisJoinPoint }) => {\n  const start = Date.now()\n\n  try {\n    const returned = await thisJoinPoint.proceed()\n    log.trace(() => ({\n      clazz: thisJoinPoint.clazz.name,\n      method: thisJoinPoint.fullName,\n      args: thisJoinPoint.args,\n      returned,\n      elapsed: Date.now() - start\n    }))\n\n    return returned\n  } catch (e) {\n    log.error(() => ({\n      clazz: thisJoinPoint.clazz.name,\n      method: thisJoinPoint.fullName,\n      args: thisJoinPoint.args,\n      threw: e,\n      elapsed: Date.now() - start\n    }))\n\n    throw e\n  }\n}\n \nmodule.exports = AsyncAround(trace)\n```\n\nNow use it:\n```javascript\nconst trace = require('./trace')\n\nclass CustomerRepository {\n  constructor(mongoose) {\n    // ...  \n  }\n\n  @trace // will log happy & saddy paths -- no need for log statements everywhere\n  async findByLastName(lastName) {\n    // use mongoose to query...\n  }\n}\n```\n\n### Use @northscaler/error-support\n_NB: shameless plug._\n\nIf you use [@northscaler/error-support](https://www.npmjs.com/package/@northscaler/error-support), the `Error`s you log will be [converted very nicely to a loggable object](https://www.npmjs.com/package/@northscaler/error-support#toobject), include entire cause chains.\n\n","engines":{"node":">=8.0.0"},"gitHead":"1a7ba5e80f7d802968d96d62fdac226811a06214","scripts":{"i":"mocha 'src/test/integration/**/*.spec.js'","u":"mocha 'src/test/unit/**/*.spec.js'","cov":"open coverage/index.html","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"standard --verbose 'src/**/*.js'","test":"run-s unit-integration","unit":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js'","build":"./test-all-bunyan-versions.sh","format":"standard --fix 'src/**/*.js'","report":"nyc report --reporter=html","posttest":"run-s lint","prebuild":"npm ci || npm i","integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/integration/**/*.spec.js'","unit-integration":"nyc --check-coverage -x 'src/test' --exclude-after-remap false mocha 'src/test/unit/**/*.spec.js' 'src/test/integration/**/*.spec.js'","make-distribution":"run-p doc lic"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"repository":{"url":"git+https://gitlab.com/northscaler-public/bunyaner.git","type":"git"},"_npmVersion":"6.14.4","description":"Monkey-patches bunyan to have pretty neat log level methods","directories":{},"_nodeVersion":"14.1.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"fx":"18.0.1","nyc":"15.0.1","chai":"4.2.0","acorn":"7.1.1","jsdoc":"3.6.4","mocha":"7.1.2","bunyan":"1.8.14","standard":"14.3.3","copyfiles":"2.2.0","dirty-chai":"2.0.1","npm-run-all":"4.1.5","semver-sort":"0.0.4","npm-cli-login":"0.1.1","lodash.template":"4.5.0","intercept-stdout":"0.1.2"},"peerDependencies":{"bunyan":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/bunyaner_1.0.1_1598026740255_0.0677269950217021","host":"s3://npm-registry-packages"}}},"time":{"created":"2020-04-30T17:18:53.200Z","modified":"2024-05-29T18:07:36.335Z","0.1.0-pre.0":"2020-04-30T17:18:53.580Z","0.1.0-pre.1":"2020-04-30T19:05:36.914Z","0.1.0-rc.0":"2020-04-30T19:22:41.668Z","0.1.0":"2020-04-30T19:29:28.832Z","0.1.1":"2020-04-30T21:10:18.049Z","0.1.2":"2020-04-30T21:19:34.133Z","0.1.3":"2020-05-02T13:48:09.696Z","0.1.4":"2020-05-02T13:57:03.885Z","0.1.6":"2020-05-05T21:32:09.384Z","0.1.7":"2020-05-05T22:01:14.370Z","0.1.8":"2020-08-11T18:11:10.866Z","0.1.9":"2020-08-14T21:17:21.956Z","1.0.0-rc.0":"2020-08-18T19:59:55.236Z","1.0.0":"2020-08-18T20:45:53.636Z","1.0.1":"2020-08-21T16:19:00.659Z"},"maintainers":[{"email":"npm@northscaler.com","name":"npm_northscaler"},{"email":"npm@scispike.com","name":"npm_scispike"},{"email":"djannotta@gmail.com","name":"victorynap"}],"repository":{"url":"git+https://gitlab.com/northscaler-public/bunyaner.git","type":"git"},"keywords":["bunyan","logging","log"],"license":"MIT","homepage":"https://gitlab.com/northscaler-public/bunyaner#readme","bugs":{"url":"https://gitlab.com/northscaler-public/bunyaner/issues"},"readme":"# `@northscaler/bunyaner`\nMake [bunyan](https://www.npmjs.com/package/bunyan)'s log level methods much mo' betta'!\n\n## Overview\n* Have bunyan's log level methods return values, usually the first argument given so that you can inline your logging statements.\n* No worries about having your logged objects conflict with [bunyan's core fields](https://www.npmjs.com/package/bunyan#core-fields).\n* Allow log level methods to support functions in order to defer expensive log statements if the log method's level is below the currently configured log level.\n\n## TL;DR\nInstall `bunyan` & `@northscaler/bunyaner`:\n```bash\n$ npm i --save bunyan\n$ npm i --save @northscaler/bunyaner\n```\nCreate a file that your module will use to get a logger:\n```javascript\n// log.js\nconst bunyan = require('bunyan')\nconst bunyaner = require('@northscaler/bunyaner')\n\nmodule.exports = bunyaner({ bunyanLogger: bunyan.createLogger({ name: 'my-logger' }) })\n```\n\nNow use it:\n```javascript\nconst log = require('./log')\n\nlet gameState = log.info({\n  game: 'zork',\n  player: 'querky123'\n}) // logs { ..., \"payload\": { \"game\": \"zork\", \"player\": \"querky123\" }, ... } & returns object\n\n// ...querky123 plays game to level 5...\n\ngameState = log.info({\n  game: 'zork',\n  player: 'querky123',\n  level: 5 // <- conflicts with bunyan core logging field, but no matter!\n}) // logs { ..., \"payload\": { \"game\": \"zork\", ..., \"level\": 5 }, ... } & returns object\n\nif (gameState.badness) {\n  // log method logs given error, then returns it so it can be thrown\n  throw log.error(new Error('boom'), 'we blew up')\n} // logs { ..., \"isError\": true, \"payload\": { \"message\": \"boom\", \"stack\": ... }, \"msg\": \"we blew up\", ... } & returns the error object\n\n// avoid calculations if your logging level is higher than\n// your method's level by putting whatever's logged inside a function:\nlog.debug(() => `foo: ${somethingExpensive()}`) // if log.level() is > debug, somethingExpensive() is never called!\n```\n\n## Details\nThis library monkey patches a bunyan logger to give it log level methods that\n* return a value,\n* allow the caller to defer expensive evaluation when the current log level is below the level of the log method invoked.\n* prevent conflicts with [bunyan's core fields](https://www.npmjs.com/package/bunyan#core-fields), and\n* indicate that the logged object was an `Error`.\n\n### Returning values\nWith this monkey patch, the log methods return values so that you can inline your logging code.\nThe returned value is usually the first argument that you give the log function, but there are some exceptions noted below.\nGenerally, inline logging looks like this:\n```\nconst foo = log.debug({bar: true}, 'I just set my foo')\n```\nand it will log something like this (without indentation):\n```\n{\n  \"name\": \"test\",\n  \"hostname\": \"...\",\n  \"pid\": 32708,\n  \"level\": 30,\n  \"payload\": {\n    \"bar\": true\n  },\n  \"msg\": \"I just set my foo\",\n  \"time\": \"2020-08-18T17:13:42.766Z\",\n  \"v\": 0\n}\n```\nThe value is returned whether or not the log level method would generate log output.\nOtherwise, inline logging wouldn't be very valuable!\n\nThe only times the value returned from the log method is _not_ the first value are the following.\n \n* If the first argument is a function, you are performing deferred execution and shouldn't be using inline logging, so `undefined` is returned.\n* If the first argument is a [`util.format`](https://nodejs.org/api/util.html#util_util_format_format_args) string, then the _second_ argument to the log level method is returned and there is no `payload` property in the logged record.\n\n### Lazy log calculations\nPassing a function to the log method will cause evaluation of the function to be executed only if the current log method would produce output.\nAfter all, if you're not going to log anything, then don't calculate anything to log!\n\nWhen the first argument is a function, the function will be invoked with the remainder of the arguments given and the function's return value will be passed along to bunyan's log method.\nIf the function returns an array, then the elements become the multiple arguments to the log method.\n\n### No conflicts with core logging properties\nFor any object that you want to log, this monkey patch puts it in a property called `payload` (by default), so that you don't ever conflict with [bunyan's core fields](https://www.npmjs.com/package/bunyan#core-fields).\n\n### Logging `Error`s\nIf the payload is an `Error`, the `isError` property is included in the log record with the value `true`.\nYou can also force the `isError` property to _always_ be present, too, and its value will be `true` or `false` based on whether the `payload` is an `Error`.\n```\nthrow log.error(new Error('boom'), 'Done blowed up')\n```\nlogs (without indentation):\n```\n{\n  \"name\": \"test\",\n  \"hostname\": \"...\",\n  \"pid\": 32908,\n  \"level\": 50,\n  \"payload\": {\n    \"message\": \"boom\",\n    \"name\": \"Error\"\n  },\n  \"isError\": true,\n  \"msg\": \"Done blowed up\",\n  \"time\": \"2020-08-18T17:49:30.797Z\",\n  \"v\": 0\n}\n```\nNotice the `payload` & `isError` properties in the log record.\n\nIf the first argument is an `Error`, bunyan's configured `err` serializer is used to log it, otherwise it is converted into a plain, old JavaScript object and that value is logged.\nIn either case, there is a log record field added called `isError` (by default) and its value will be truthy.\nIf you don't want to include the `Error` `stack`, use your own `err` serializer with bunyan.\n\n## Configuration\nThe function returned by `require('@northscaler/bunyaner')` takes a configuration object as follows.\n```\n{\n  bunyanLogger: logger,             // required: your configured bunyan logger instance\n  bunyanerOpts: {                   // optional\n    payloadKey: 'payload',          // or whatever you want, just don't conflict with bunyan\n    errorIndicatorKey: 'isError',   // or whatever you want, just don't conflict with bunyan\n    alwaysShowErrorIndicator: false // or true\n  }\n}\n```\nCreate a file in your app that configures the log, then have your app just `require`:\n```javascript\nconst bunyan = require('bunyan')\nconst bunyaner = require('@northscaler/bunyaner')\n\n// ...configure bunyan however you want to here...\nconst logger = bunyan.createLogger({ name: 'my-logger' })\n\nmodule.exports = bunyaner({ bunyanLogger: logger })\n``` \n\n## Tips\n\n### Don't use return value feature with deferred logging\nIf you use deferred logging, like `log.debug(() => somethingExpensive())`, remember that you will _not_ get a return value from the log method, because you are intentionally skipping logging based on the current log level.\n\n### Use aspects for tracing\nCombine AOP from [@northscaler/aspectify](https://www.npmjs.com/package/@northscaler/aspectify) with this library's deferred logging to do automated, efficient and unobtrusive tracing.\nHere's an example that logs inputs as well as happy & saddy path outputs:\n```javascript\n// in file trace.js\nconst { AsyncAround } = require('@northscaler/aspectify')\nconst log = require('./.../log.js') // as above\n \nconst trace = async ({ thisJoinPoint }) => {\n  const start = Date.now()\n\n  try {\n    const returned = await thisJoinPoint.proceed()\n    log.trace(() => ({\n      clazz: thisJoinPoint.clazz.name,\n      method: thisJoinPoint.fullName,\n      args: thisJoinPoint.args,\n      returned,\n      elapsed: Date.now() - start\n    }))\n\n    return returned\n  } catch (e) {\n    log.error(() => ({\n      clazz: thisJoinPoint.clazz.name,\n      method: thisJoinPoint.fullName,\n      args: thisJoinPoint.args,\n      threw: e,\n      elapsed: Date.now() - start\n    }))\n\n    throw e\n  }\n}\n \nmodule.exports = AsyncAround(trace)\n```\n\nNow use it:\n```javascript\nconst trace = require('./trace')\n\nclass CustomerRepository {\n  constructor(mongoose) {\n    // ...  \n  }\n\n  @trace // will log happy & saddy paths -- no need for log statements everywhere\n  async findByLastName(lastName) {\n    // use mongoose to query...\n  }\n}\n```\n\n### Use @northscaler/error-support\n_NB: shameless plug._\n\nIf you use [@northscaler/error-support](https://www.npmjs.com/package/@northscaler/error-support), the `Error`s you log will be [converted very nicely to a loggable object](https://www.npmjs.com/package/@northscaler/error-support#toobject), include entire cause chains.\n\n","readmeFilename":"README.md"}