{"_id":"@northscaler/continuation-local-storage","_rev":"56-056aef7e3c687a94d1828437d0b2a5a8","name":"@northscaler/continuation-local-storage","description":"Local storage for asynchronous Node.js call stacks, similar to thread-local storage in multithreaded platforms","dist-tags":{"stable-3.0":"3.0.2","stable-3.1":"3.1.1","latest":"3.2.4","stable-3.2":"3.2.4"},"versions":{"3.0.0-pre.10":{"name":"@northscaler/continuation-local-storage","version":"3.0.0-pre.10","keywords":["continuation-local-storage","thread-local-storage","context"],"license":"MIT","_id":"@northscaler/continuation-local-storage@3.0.0-pre.10","maintainers":[{"name":"npm_scispike","email":"npm@scispike.com"},{"name":"npm_northscaler","email":"npm@northscaler.com"}],"homepage":"https://gitlab.com/northscaler-public/continuation-local-storage#readme","bugs":{"url":"https://gitlab.com/northscaler-public/continuation-local-storage/issues"},"dist":{"shasum":"47f91c302cdf1949034a8e71dd4efeb157ee86eb","tarball":"https://registry.npmjs.org/@northscaler/continuation-local-storage/-/continuation-local-storage-3.0.0-pre.10.tgz","fileCount":7,"integrity":"sha512-Ou5lU7CSV7k0o59qkSghUJIzm8cmMw8q5LsDuH2fRTggCbLyRe2YGhy2ROILPH33p+Ajx5nNLLJ6yRb8xg9Cjw==","signatures":[{"sig":"MEUCIQCvnCkt+pF5rU5Wm69EYYcwMbBCkZf4gQE8wKQ4KUDzwwIgctYZ+8/kOtZqVxmlgYr8N5cY8suDz+H8VebtpdoX1AY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15613,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd3DpgCRA9TVsSAnZWagAAvu4P/RRvW71911K5Nga13yLX\n+kgCPvasepbRYVEAk/rIpR5ALJTEuKy3NPmxInCDGY3Ps9ZrF9LOOyOfibI+\nQtQ8fxfS4HIhoc12p8tuVBWkrtlGG97KPDSzd0P5bRF/uyma6ldOwxfo/z1x\ngxVMXqFdWccRxEOxe5srxjWROFuOzPRdftK2Zvx3KbG1WiKH9FfCSbRnINRd\nxVAnX3d17mM10nnUlm/M/Iphopg7WHc7VSWhJLEiromuXPOiM0AVxJkwm2vz\nFLG/xBYiiyxSLOhQZjjrsz7hvPLLR3rfNgZTE0itSo5BnSyWJVoZvn41Q6is\nK+0kzxzz9qDa/VY/66CkkjJp9rVA7qTAYjAQRZSz9D59j4TFfpCfUJHifMlO\nsLP7I6ZSuTQgy/A9Cpj0wvhGkjnmOg38YR+RCwKjJBjbLtlSymTt/s1KMPLy\nXlGHfMdZXeOENy5DQWwnTwNEBrBe+1mkwhMk9yZyCW4VPDPvDshOh5DzPxD2\n8twQY+4kwTRXdYvPxUNXqUE85POQtAteb9ek6MOPOxkA1Cq340ysq9VEAvBU\ntq6w8SNJYZUIlI0ctWnSNsCmcl8FidchyytFo2alZlzPIkejQUvA822Nu18B\nVkxpENMR1Ab83CaywX+48j1NARr0Z7ezCPN84JxYoPUfZjECe+jPx6T3fXHb\nxdvq\r\n=rmWM\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"inline"},"mocha":{"colors":true,"require":"@babel/register"},"engines":{"node":">=8.0.0"},"scripts":{"i":"mocha 'src/test/integration/**/*.spec.js' | npx bunyan","u":"mocha 'src/test/unit/**/*.spec.js' | npx bunyan","cov":"open coverage/index.html","link":"mkdir -p lib/main && cd lib/main && npm link; cd ../..","lint":"standard --verbose 'src/**/*.js'","test":"run-s transpile unit-integration lint","unit":"nyc --check-coverage -x 'lib/test' --exclude-after-remap false mocha 'lib/test/unit/**/*.spec.js'","build":"npm install && npm test","format":"standard --fix 'src/**/*.js'","report":"nyc report --reporter=html","unlink":"mkdir -p lib/main && cd lib/main && npm unlink; cd ../..","prelink":"run-s make-distribution","postunit":"run-s report","transpile":"run-s transpile-main transpile-test","integration":"nyc --check-coverage -x 'lib/test' --exclude-after-remap false mocha 'lib/test/integration/**/*.spec.js'","transpile-main":"babel --delete-dir-on-start --verbose --out-dir lib/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir lib/test --copy-files src/test","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'lib/test' --exclude-after-remap false mocha 'lib/test/unit/**/*.spec.js' 'lib/test/integration/**/*.spec.js'","make-distribution":"run-s transpile finalize-distribution","postunit-integration":"run-s report","finalize-distribution":"copyfiles --verbose package.json package-lock.json README.md LICENSE lib/main"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"standard":{"parser":"babel-eslint"},"repository":{"url":"git+https://gitlab.com/northscaler-public/continuation-local-storage.git","type":"git"},"_npmVersion":"6.12.0","description":"Local storage for asynchronous Node.js call stacks, similar to thread-local storage in multithreaded platforms","directories":{},"_nodeVersion":"8.16.2","dependencies":{"@babel/polyfill":"7.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"14.1.1","chai":"4.2.0","acorn":"7.1.0","mocha":"6.2.2","zone.js":"0.10.2","standard":"12.0.1","copyfiles":"2.1.1","@babel/cli":"7.7.0","cls-hooked":"4.2.2","dirty-chai":"2.0.1","@babel/core":"7.7.0","npm-run-all":"4.1.5","@babel/types":"7.7.2","babel-eslint":"10.0.3","npm-cli-login":"0.1.1","@babel/register":"7.7.0","@babel/traverse":"7.7.2","@babel/preset-env":"7.7.1"},"_npmOperationalInternal":{"tmp":"tmp/continuation-local-storage_3.0.0-pre.10_1574713952499_0.3456431548390033","host":"s3://npm-registry-packages"}},"3.0.0-pre.13":{"name":"@northscaler/continuation-local-storage","version":"3.0.0-pre.13","keywords":["continuation-local-storage","thread-local-storage","context"],"license":"MIT","_id":"@northscaler/continuation-local-storage@3.0.0-pre.13","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/continuation-local-storage#readme","bugs":{"url":"https://gitlab.com/northscaler-public/continuation-local-storage/issues"},"dist":{"shasum":"d3b817b53e2eeb5935767b65492fe3eed372ad69","tarball":"https://registry.npmjs.org/@northscaler/continuation-local-storage/-/continuation-local-storage-3.0.0-pre.13.tgz","fileCount":7,"integrity":"sha512-ik3ktdfyiDLFsHgjSilyYuRJhq3KOLWZlG8DmDkpkShmuiSN2hc/hACFgCsivsMJxcOgHfQNYX3qaDL/9VNj3A==","signatures":[{"sig":"MEUCIQD/KY10TGNz+WglEVMfWZwud8GE4QNcK3NvMzn5Z95iugIgILmgGOslNJl9njtbNDkQIkchrpgvASQTYJoPLFCRGDA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15613,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd3D6rCRA9TVsSAnZWagAAJZAQAJ1ibregy+m0o1bs8/oY\nBVn49gLfzQoYXTZE4tq72q+kTGKmvAil+eInIRj76zu4uZpBhnsgTZ861v/u\ngNiYpNZGmU4r/so6d8cOlv0cDLRLZIOlYJiVROJl2wIu2xmmJIj7W0ETkbxc\nHy21QiKzKw+Ug0Xhlpv/TjHaWdQkC7N+mr4cQbNm4wr9tNxCnjDxq4bXGzrn\nY7QfG755Mgdh5SSvst5UFBkfzLEdROhj7hDnhz2XdGjKBjwg8nPXbju27I+n\nNoPSH7DhjBTUEo7+EK7jnYmjj0WcwhpurVpL83E8uk3LelM2AepBTOCL45qZ\n58JiRS5Jnz9MiKyh/cuzgjsql+IEl1IE2uPzwGaICt7Fs52ngQkeFQaDiimP\nTcQ4TEQptY1IBqnU9Er3I+7ksT8x4mfu3jKnnW/LjjCP9COps9RcG9OIo8fK\npGj08XEjbf07uquBq5oN4B2/J8dxfC1RtACZNhte+BdFo+IAauSL9AJnLD7+\nUI9hg4R5SHxRRIVFAOcUCqlDLPJ8YDeL9pzMTdB2ss5hBSueGc+QndlRWFOf\nLNEHVmB395XDSQ8sTu73P7QimuCJ5nIsB9NavZ/66cBeTEKPrqfC3pCiaOG8\npcmcvXsZme6uZSjExwcict1T9VmdJDp8KuGp/ZUjsZ1PlXR3D8YJwz9Z3bZT\nqNV1\r\n=wCqO\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"inline"},"mocha":{"colors":true,"require":"@babel/register"},"engines":{"node":">=8.0.0"},"scripts":{"i":"mocha 'src/test/integration/**/*.spec.js' | npx bunyan","u":"mocha 'src/test/unit/**/*.spec.js' | npx bunyan","cov":"open coverage/index.html","link":"mkdir -p lib/main && cd lib/main && npm link; cd ../..","lint":"standard --verbose 'src/**/*.js'","test":"run-s transpile unit-integration lint","unit":"nyc --check-coverage -x 'lib/test' --exclude-after-remap false mocha 'lib/test/unit/**/*.spec.js'","build":"npm install && npm test","format":"standard --fix 'src/**/*.js'","report":"nyc report --reporter=html","unlink":"mkdir -p lib/main && cd lib/main && npm unlink; cd ../..","prelink":"run-s make-distribution","postunit":"run-s report","transpile":"run-s transpile-main transpile-test","integration":"nyc --check-coverage -x 'lib/test' --exclude-after-remap false mocha 'lib/test/integration/**/*.spec.js'","transpile-main":"babel --delete-dir-on-start --verbose --out-dir lib/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir lib/test --copy-files src/test","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'lib/test' --exclude-after-remap false mocha 'lib/test/unit/**/*.spec.js' 'lib/test/integration/**/*.spec.js'","make-distribution":"run-s transpile finalize-distribution","postunit-integration":"run-s report","finalize-distribution":"copyfiles --verbose package.json package-lock.json README.md LICENSE lib/main"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"standard":{"parser":"babel-eslint"},"repository":{"url":"git+https://gitlab.com/northscaler-public/continuation-local-storage.git","type":"git"},"_npmVersion":"6.12.0","description":"Local storage for asynchronous Node.js call stacks, similar to thread-local storage in multithreaded platforms","directories":{},"_nodeVersion":"8.16.2","dependencies":{"@babel/polyfill":"7.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"14.1.1","chai":"4.2.0","acorn":"7.1.0","mocha":"6.2.2","zone.js":"0.10.2","standard":"12.0.1","copyfiles":"2.1.1","@babel/cli":"7.7.0","cls-hooked":"4.2.2","dirty-chai":"2.0.1","@babel/core":"7.7.0","npm-run-all":"4.1.5","@babel/types":"7.7.2","babel-eslint":"10.0.3","npm-cli-login":"0.1.1","@babel/register":"7.7.0","@babel/traverse":"7.7.2","@babel/preset-env":"7.7.1"},"_npmOperationalInternal":{"tmp":"tmp/continuation-local-storage_3.0.0-pre.13_1574715051336_0.18659797726187488","host":"s3://npm-registry-packages"}},"3.0.0-pre.14":{"name":"@northscaler/continuation-local-storage","version":"3.0.0-pre.14","keywords":["continuation-local-storage","thread-local-storage","context"],"license":"MIT","_id":"@northscaler/continuation-local-storage@3.0.0-pre.14","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/continuation-local-storage#readme","bugs":{"url":"https://gitlab.com/northscaler-public/continuation-local-storage/issues"},"dist":{"shasum":"030cff5535712619b6d75d50754b8be8eaa5c3e1","tarball":"https://registry.npmjs.org/@northscaler/continuation-local-storage/-/continuation-local-storage-3.0.0-pre.14.tgz","fileCount":7,"integrity":"sha512-0LTSDWAFqUqZPeYfwNjWrWYgdLpCJv6up0P/nCrVNMR1KyN4P3Bi0RoIe/JJvTAFU3928bGBd8RYdoeT9uPqLw==","signatures":[{"sig":"MEUCIDhw1sPuTofbHSNWx8jaDxq6YSQfO5QuOOYH9RFP0CrbAiEAmLWQStWKjtbYNODsGuhrFK/eGbSjkxYV07pHJxI2b/0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15613,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd3D/0CRA9TVsSAnZWagAAxIsP/iy8gvia3wzy30eRHTAZ\n3C8ZU/EceS3e+qpJQN2AVs2wCJYgRLwuOK4sX2MUpoJjerk8m0T0fvF8+Vum\nIGZRGmxq7V2RlfU9we3xDAXdisZgM1CQ24b/PiFhk8KvD/pbkn8iKuScIhEV\nqD+qpfn3EB4Yn2N39YkTZ8KNMn2cBx8JHTwdoU82m8+vzlTjJreP//RLne2s\nX+g5yPT5AoztRZ3u8oG+1+062S3jIIKUq99BAuy7KsMCPzZiAo1aichJ7cb7\nHUDLgzOfuMzw0VVgOBWqwZGhVIh6rpVh7VwPRUFxRZ1nBOnvIYlT+Zjyxd9V\nJwyCVkwIe97Hq7v8FTRdcxAFqdPiGl1O4oE71WYRlxJq37HSTdHCBg3eZjWk\nupBf4pdv7NonFUGmyjsgrGpD5IiRt46xyx3nfKj97Rq4GgC29WhgG9FyY7E1\ncGExmTnWOFjo6X/LSYuJJyIdLYo50PE0p1ji7kGWU4Bxq50gA2Q58PLaErEp\nNkhbOK97hJarklwfS6+74eCcv0kLYG18n2wsvYYRRlhy1txId/uHdLTlDx/O\ns051DhEjUAIHkKT1bzcWigmoJH8xCg82xuiwTwsD42srcbY2buXcK/IqV6xE\nb1lWCRWoYMtcSZ+e1VqUiAOggQ3dwpqHooS31l6878W1LBYvnB+lU9RU53PM\nBRLJ\r\n=QrLb\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"inline"},"mocha":{"colors":true,"require":"@babel/register"},"engines":{"node":">=8.0.0"},"scripts":{"i":"mocha 'src/test/integration/**/*.spec.js' | npx bunyan","u":"mocha 'src/test/unit/**/*.spec.js' | npx bunyan","cov":"open coverage/index.html","link":"mkdir -p lib/main && cd lib/main && npm link; cd ../..","lint":"standard --verbose 'src/**/*.js'","test":"run-s transpile unit-integration lint","unit":"nyc --check-coverage -x 'lib/test' --exclude-after-remap false mocha 'lib/test/unit/**/*.spec.js'","build":"npm install && npm test","format":"standard --fix 'src/**/*.js'","report":"nyc report --reporter=html","unlink":"mkdir -p lib/main && cd lib/main && npm unlink; cd ../..","prelink":"run-s make-distribution","postunit":"run-s report","transpile":"run-s transpile-main transpile-test","integration":"nyc --check-coverage -x 'lib/test' --exclude-after-remap false mocha 'lib/test/integration/**/*.spec.js'","transpile-main":"babel --delete-dir-on-start --verbose --out-dir lib/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir lib/test --copy-files src/test","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'lib/test' --exclude-after-remap false mocha 'lib/test/unit/**/*.spec.js' 'lib/test/integration/**/*.spec.js'","make-distribution":"run-s transpile finalize-distribution","postunit-integration":"run-s report","finalize-distribution":"copyfiles --verbose package.json package-lock.json README.md LICENSE lib/main"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"standard":{"parser":"babel-eslint"},"repository":{"url":"git+https://gitlab.com/northscaler-public/continuation-local-storage.git","type":"git"},"_npmVersion":"6.12.0","description":"Local storage for asynchronous Node.js call stacks, similar to thread-local storage in multithreaded platforms","directories":{},"_nodeVersion":"8.16.2","dependencies":{"@babel/polyfill":"7.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"14.1.1","chai":"4.2.0","acorn":"7.1.0","mocha":"6.2.2","zone.js":"0.10.2","standard":"12.0.1","copyfiles":"2.1.1","@babel/cli":"7.7.0","cls-hooked":"4.2.2","dirty-chai":"2.0.1","@babel/core":"7.7.0","npm-run-all":"4.1.5","@babel/types":"7.7.2","babel-eslint":"10.0.3","npm-cli-login":"0.1.1","@babel/register":"7.7.0","@babel/traverse":"7.7.2","@babel/preset-env":"7.7.1"},"_npmOperationalInternal":{"tmp":"tmp/continuation-local-storage_3.0.0-pre.14_1574715379477_0.8494630851131859","host":"s3://npm-registry-packages"}},"3.0.0-rc.0":{"name":"@northscaler/continuation-local-storage","version":"3.0.0-rc.0","keywords":["continuation-local-storage","thread-local-storage","context"],"license":"MIT","_id":"@northscaler/continuation-local-storage@3.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/continuation-local-storage#readme","bugs":{"url":"https://gitlab.com/northscaler-public/continuation-local-storage/issues"},"dist":{"shasum":"20718c740c3824590edd910ad677345434a2d807","tarball":"https://registry.npmjs.org/@northscaler/continuation-local-storage/-/continuation-local-storage-3.0.0-rc.0.tgz","fileCount":7,"integrity":"sha512-ofkqkaF+DBA3Ovd7j8ZBHrC08KmvITHSTzE1hTBSFT6OVByjzmyEvExFWHM6w4V8PoosRRWumVjjWOVC7RunmQ==","signatures":[{"sig":"MEYCIQDaFn+FjkPthzvUfHlS6d41dc9t/DKBNxKWq3DbyQMTvAIhAMKESmtdaPTHzDF22vMuQk4uDGmgKIhejxFA940HOxI7","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15611,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd3EGICRA9TVsSAnZWagAAWboP/RcbTrNMuxD3eYUKw8QZ\nunR7gu1oJElUYGtUttZ5DdnTQnNFc8TMRheNc1lNsjGVIzuAN0UrdbUVSU34\n3u1KOpkODza/3DrS5AiqYa23+mhlhctPs+Z4t0AQZVwiXuud1dNegzmcvPpv\nQ9DArfJ1KyLPPxPUFNCmknig6CkGSOeCMxGmF7pIGIHvOYEfAiFlyHPWNmm5\nKao/SGwvFmNZ2IJAyjXH4p1ykvE+DHKhGfdk0dt1zzpEBbWw+a3j2Tygkfx2\nZBUIJgLeRnBCuXjWbXr7Vshzc14rF17rAludUN7KN47gKCRlODpNZpbWL9VN\n3p3MMk3h3Foj9HHRbbqMrtukKbA65STxojO96Zq8dtxi3gq+88vftJpKxGug\nyqqZfaQq5xlS2ppHBKtt9t73VlW+UtWPb6aGKn4xW/FzMoBSq2QRfxzRRYSS\nA5km8zUe1SqCf4M/buqGNmkSYv7nC8s68hT5yC6DzhoS5KzdyNTbvhpcp5U/\nVw9pKjzGwxCR93UdMMOEmew4AtXZTwrq6jI/WFnSwwQVcBE4jSNf/ywJS5ET\njSS3wNuPJj0Eex9kg6I9VLE33hxYF3eCX7Xub9a5ouUuAfMerpySOiuZPSV5\naukQ111+xyUoNuuMsNFyFN/Uq24poyJk4uWfGT1PKktwPsQm7//osbgkWxhK\n3ML+\r\n=dD3J\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"inline"},"mocha":{"colors":true,"require":"@babel/register"},"engines":{"node":">=8.0.0"},"scripts":{"i":"mocha 'src/test/integration/**/*.spec.js' | npx bunyan","u":"mocha 'src/test/unit/**/*.spec.js' | npx bunyan","cov":"open coverage/index.html","link":"mkdir -p lib/main && cd lib/main && npm link; cd ../..","lint":"standard --verbose 'src/**/*.js'","test":"run-s transpile unit-integration lint","unit":"nyc --check-coverage -x 'lib/test' --exclude-after-remap false mocha 'lib/test/unit/**/*.spec.js'","build":"npm install && npm test","format":"standard --fix 'src/**/*.js'","report":"nyc report --reporter=html","unlink":"mkdir -p lib/main && cd lib/main && npm unlink; cd ../..","prelink":"run-s make-distribution","postunit":"run-s report","transpile":"run-s transpile-main transpile-test","integration":"nyc --check-coverage -x 'lib/test' --exclude-after-remap false mocha 'lib/test/integration/**/*.spec.js'","transpile-main":"babel --delete-dir-on-start --verbose --out-dir lib/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir lib/test --copy-files src/test","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'lib/test' --exclude-after-remap false mocha 'lib/test/unit/**/*.spec.js' 'lib/test/integration/**/*.spec.js'","make-distribution":"run-s transpile finalize-distribution","postunit-integration":"run-s report","finalize-distribution":"copyfiles --verbose package.json package-lock.json README.md LICENSE lib/main"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"standard":{"parser":"babel-eslint"},"repository":{"url":"git+https://gitlab.com/northscaler-public/continuation-local-storage.git","type":"git"},"_npmVersion":"6.12.0","description":"Local storage for asynchronous Node.js call stacks, similar to thread-local storage in multithreaded platforms","directories":{},"_nodeVersion":"8.16.2","dependencies":{"@babel/polyfill":"7.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"14.1.1","chai":"4.2.0","acorn":"7.1.0","mocha":"6.2.2","zone.js":"0.10.2","standard":"12.0.1","copyfiles":"2.1.1","@babel/cli":"7.7.0","cls-hooked":"4.2.2","dirty-chai":"2.0.1","@babel/core":"7.7.0","npm-run-all":"4.1.5","@babel/types":"7.7.2","babel-eslint":"10.0.3","npm-cli-login":"0.1.1","@babel/register":"7.7.0","@babel/traverse":"7.7.2","@babel/preset-env":"7.7.1"},"_npmOperationalInternal":{"tmp":"tmp/continuation-local-storage_3.0.0-rc.0_1574715784522_0.5789560427116951","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"@northscaler/continuation-local-storage","version":"3.0.0","keywords":["continuation-local-storage","thread-local-storage","context"],"license":"MIT","_id":"@northscaler/continuation-local-storage@3.0.0","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/continuation-local-storage#readme","bugs":{"url":"https://gitlab.com/northscaler-public/continuation-local-storage/issues"},"dist":{"shasum":"8a4b8149624f2b3eb45a4d6afeb119d0328d6242","tarball":"https://registry.npmjs.org/@northscaler/continuation-local-storage/-/continuation-local-storage-3.0.0.tgz","fileCount":7,"integrity":"sha512-1TbUMVURtcfid5yJ7reu0iNKS08SDP0vE8CgyCv07TgdKLayz0y5uQy5EaVOaPy/ibTZS4ntcAEbOWiLV2VWKg==","signatures":[{"sig":"MEUCIE+yh5EqbtO+nuvF4N3DLb19K8KDvhWbinklOcJXJm+1AiEApeFeiE8NWw9ui96uKUJE3L48hr8fr8TxjDCR1kS+XPA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15606,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd3EJ8CRA9TVsSAnZWagAA0bUP/0ZCoWLeVfuPAGVMmZW7\n3AO6zZkgodxMQy3MKWXyAYvBifGSikR101n5PS5aTabW2bR90iurtParaRVU\nruKK2PzMOY50VTVG+G4EZ05wBknkNt820fm3Zq2B24STMmoLuC7Qmb/aMGIR\n8wBW7wczvtEdaTXAWMfbTyBMahwtr+WWYS+PnHQGoFLgiVg1jWneOiI1nOca\nFpoNq3qVEausGgsiM6tcC2fhfGoI4HlrjKxlIH6L4hGrKE20sWU5WVB2YzoB\nUCSaRyBry0HARQ1DbUfCwda6KoxymtUIa9GxpSGn3OQbjWhIutrBc22JGp0t\nYfYTajxAHE9gET+JjIx65wteYYy47WERHdInLRFLitXH4ST/6jJuC2wy0sFk\nUJtl4YNNQ2GQ/HSMm6LUaefRPrrDf4AKtmDrVLp9HIHU1WmvkDuP8J2BJX/H\nfwqcreXYBtAkY2JmtihiUHnTDcdCqBqs4iWmsdnoXSh8Rg1dLIKUj2+61x+B\n5s9d1I9T6i88SFEhqfl2jtI2QIyORVBNJ4zbWRVHlANsONa3Gnd/nSK82UJ7\n7rlr/wlnmZsYzV3qTY5t7opSJNcEFITA/MOMyh3tLWt/lK2LBnS40hcWeoVp\nI5uREDw/CpBnpZ26FIJfgYcXK3OEgq27wBiaox3ynlw261XeIp4TDkO5T3uk\nW0Dt\r\n=I1PY\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"inline"},"mocha":{"colors":true,"require":"@babel/register"},"engines":{"node":">=8.0.0"},"scripts":{"i":"mocha 'src/test/integration/**/*.spec.js' | npx bunyan","u":"mocha 'src/test/unit/**/*.spec.js' | npx bunyan","cov":"open coverage/index.html","link":"mkdir -p lib/main && cd lib/main && npm link; cd ../..","lint":"standard --verbose 'src/**/*.js'","test":"run-s transpile unit-integration lint","unit":"nyc --check-coverage -x 'lib/test' --exclude-after-remap false mocha 'lib/test/unit/**/*.spec.js'","build":"npm install && npm test","format":"standard --fix 'src/**/*.js'","report":"nyc report --reporter=html","unlink":"mkdir -p lib/main && cd lib/main && npm unlink; cd ../..","prelink":"run-s make-distribution","postunit":"run-s report","transpile":"run-s transpile-main transpile-test","integration":"nyc --check-coverage -x 'lib/test' --exclude-after-remap false mocha 'lib/test/integration/**/*.spec.js'","transpile-main":"babel --delete-dir-on-start --verbose --out-dir lib/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir lib/test --copy-files src/test","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'lib/test' --exclude-after-remap false mocha 'lib/test/unit/**/*.spec.js' 'lib/test/integration/**/*.spec.js'","make-distribution":"run-s transpile finalize-distribution","postunit-integration":"run-s report","finalize-distribution":"copyfiles --verbose package.json package-lock.json README.md LICENSE lib/main"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"standard":{"parser":"babel-eslint"},"repository":{"url":"git+https://gitlab.com/northscaler-public/continuation-local-storage.git","type":"git"},"_npmVersion":"6.12.0","description":"Local storage for asynchronous Node.js call stacks, similar to thread-local storage in multithreaded platforms","directories":{},"_nodeVersion":"8.16.2","dependencies":{"@babel/polyfill":"7.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"14.1.1","chai":"4.2.0","acorn":"7.1.0","mocha":"6.2.2","zone.js":"0.10.2","standard":"12.0.1","copyfiles":"2.1.1","@babel/cli":"7.7.0","cls-hooked":"4.2.2","dirty-chai":"2.0.1","@babel/core":"7.7.0","npm-run-all":"4.1.5","@babel/types":"7.7.2","babel-eslint":"10.0.3","npm-cli-login":"0.1.1","@babel/register":"7.7.0","@babel/traverse":"7.7.2","@babel/preset-env":"7.7.1"},"_npmOperationalInternal":{"tmp":"tmp/continuation-local-storage_3.0.0_1574716027887_0.8199778069081491","host":"s3://npm-registry-packages"}},"3.0.1":{"name":"@northscaler/continuation-local-storage","version":"3.0.1","keywords":["continuation-local-storage","thread-local-storage","context"],"license":"MIT","_id":"@northscaler/continuation-local-storage@3.0.1","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/continuation-local-storage#readme","bugs":{"url":"https://gitlab.com/northscaler-public/continuation-local-storage/issues"},"dist":{"shasum":"f71ad996aead8c099e8b05cda00202e723ee3d47","tarball":"https://registry.npmjs.org/@northscaler/continuation-local-storage/-/continuation-local-storage-3.0.1.tgz","fileCount":7,"integrity":"sha512-XQWDlI5h26rA6Snwh0bkzmSbh5/F9NtCuuC/HmCti1cn92EYWQPCpx+DWCelZmO51k+qgb5K0wXiirfWRzOtuQ==","signatures":[{"sig":"MEYCIQDRo664CTXWSlJ8EPjmzaasfpFhIzyMnWyjqgqwrK7HRQIhALOgy1qNmdZ62k8Is5J1oX4PCuchi+egEvf3/CZv1aty","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15722,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd3FfhCRA9TVsSAnZWagAAryoQAKMb/YjoaV7/19g6Ny2j\nKu960Ak9CJfHeGfaQmOFyOzjD8piSJ6Tmw/VWtvui1X6dQdGKddBixqcsB8Q\nGOj/yfbfcc+ncp4F0pP8zYb92h+ORoPft6dCuGGzZ9bJvN+VJrxFOXkZTbRi\n0vIpMqwdiy3edCw1v9AddzHPiqME4n0Ydi2H9DdPSJwDv3sKMqnoBVt1JIRR\nTCA5ffEfIWGiR4+CTiFqBdiIXR8Q3v6XEftiEIlLcbj/HWyqahBXi1o43aP9\n/FSYyU4zAN31huY2RS90E5lAXms7VfOR438PP3B28QZnsiJsXipLpF5b6nSo\nLlA4c0u+EKdhbypp1AIyqD5jcaPZ67tWV0Of3V7P6QI3DC1z7rVaNECsf2Uz\nPkMRBvStlcNDRNMIXrNSnTFGMYTND2VGJ4wNCrgIN/FNa1ixRMzY+h7z8sWj\nyB7GW2TkTAvFS0cJIKJrTwk24nyJxGxThVtmZGtLyEr93dzhWnof/gg25boI\n8wormVMsbxk2M/wjNJVfc2FhNhgy66SozbCvpAVXdE8ClmFkSl5nZwEmq5XA\nxXLneMz9FyEBMZHmk/Xi8OxW7UQLGyIfkXrPS57zhBLb9dRUwoRmzNO5YcYU\nJ5Ml6TDItjhE7pVKIcKUFfgTTafGDJGa2vAXx0GU3fnP+wSVSguutSLyDApL\nMV4t\r\n=wUGO\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"inline"},"mocha":{"colors":true,"require":"@babel/register"},"engines":{"node":">=8.0.0"},"scripts":{"i":"mocha 'src/test/integration/**/*.spec.js' | npx bunyan","u":"mocha 'src/test/unit/**/*.spec.js' | npx bunyan","cov":"open coverage/index.html","link":"mkdir -p lib/main && cd lib/main && npm link; cd ../..","lint":"standard --verbose 'src/**/*.js'","test":"run-s transpile unit-integration lint","unit":"nyc --check-coverage -x 'lib/test' --exclude-after-remap false mocha 'lib/test/unit/**/*.spec.js'","build":"npm install && npm test","format":"standard --fix 'src/**/*.js'","report":"nyc report --reporter=html","unlink":"mkdir -p lib/main && cd lib/main && npm unlink; cd ../..","prelink":"run-s make-distribution","postunit":"run-s report","transpile":"run-s transpile-main transpile-test","integration":"nyc --check-coverage -x 'lib/test' --exclude-after-remap false mocha 'lib/test/integration/**/*.spec.js'","transpile-main":"babel --delete-dir-on-start --verbose --out-dir lib/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir lib/test --copy-files src/test","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'lib/test' --exclude-after-remap false mocha 'lib/test/unit/**/*.spec.js' 'lib/test/integration/**/*.spec.js'","make-distribution":"run-s transpile finalize-distribution","postunit-integration":"run-s report","finalize-distribution":"copyfiles --verbose package.json package-lock.json README.md LICENSE lib/main"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"standard":{"parser":"babel-eslint"},"repository":{"url":"git+https://gitlab.com/northscaler-public/continuation-local-storage.git","type":"git"},"_npmVersion":"6.12.0","description":"Local storage for asynchronous Node.js call stacks, similar to thread-local storage in multithreaded platforms","directories":{},"_nodeVersion":"8.16.2","dependencies":{"@babel/polyfill":"7.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"14.1.1","chai":"4.2.0","acorn":"7.1.0","mocha":"6.2.2","zone.js":"0.10.2","standard":"12.0.1","copyfiles":"2.1.1","@babel/cli":"7.7.0","cls-hooked":"4.2.2","dirty-chai":"2.0.1","@babel/core":"7.7.0","npm-run-all":"4.1.5","@babel/types":"7.7.2","babel-eslint":"10.0.3","npm-cli-login":"0.1.1","@babel/register":"7.7.0","@babel/traverse":"7.7.2","@babel/preset-env":"7.7.1"},"_npmOperationalInternal":{"tmp":"tmp/continuation-local-storage_3.0.1_1574721505149_0.5744040120125782","host":"s3://npm-registry-packages"}},"3.0.2":{"name":"@northscaler/continuation-local-storage","version":"3.0.2","keywords":["continuation-local-storage","thread-local-storage","context"],"license":"MIT","_id":"@northscaler/continuation-local-storage@3.0.2","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/continuation-local-storage#README","bugs":{"url":"https://gitlab.com/northscaler-public/continuation-local-storage/issues"},"dist":{"shasum":"e80834da511eb83667b87517ccc6b3d9d77b683b","tarball":"https://registry.npmjs.org/@northscaler/continuation-local-storage/-/continuation-local-storage-3.0.2.tgz","fileCount":38,"integrity":"sha512-00blQV72ICPuHDjRskGTCIW/8F/Y+hiSZ5qOd2WSnUh2wiERHJpgZ9Lv4GwgW27e0lx5JJhnnnGHpgEg5jgKKg==","signatures":[{"sig":"MEYCIQDc7J+Pg2enwNwhzZ6Ss8sP5CZdmff7kJCX6nMPuWgb3gIhAIRsrgQn9fz/vPSynRfEzdydxLCeqqTfIW/zNqJH2wWg","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1370726,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeSwfLCRA9TVsSAnZWagAAc+4QAIhJTOmiHci2JGzjSkoa\n8phAQYZbdR0ld7yuKW6BaMvW5It+6S3qzOeI3W2E+7xiWg8hs7t78V59i3V8\nK5ywNCvz9EFpoFn9zzZgitFdt36bCNxG3Ak/46TxrHq8KF3ZKw/KDVeVhTFX\nWxPM3z6SF6o/GIguTvKaNxjKU9eEruhdha8clo12pCWlr1GVvvTOxjy/pzde\nSu7scLWbx2knLC61+KggI2i8dQDVgu/Xvd2D5yXeaUGoLnO00R7e54qtyvey\ndY6z/1yx3r6i4Cb0pWXqwQYcMq0eC1gpX0NAWukMbS9+KR7hG97boPYdq76n\nujkVTpozrONZq3wNzzKMUCvj5IyFaQrBGR8Y/mFTuvIYpHBXVW1FOZRi3khG\nviQaCIUMKeDSdnF009+Pr7pqOo+NLdx9PDMTsah6P+xZ+b42mD3U2vt0eLPR\nUmAzKAIcdl6kD/cQ9yEwh2UkNToRrhR2br9kXvzbvXz3gNeWUhY2uZjw2sV5\nb+T1w48Rbqo2RHZ+u6x5dEoLGPCTLny/bXCDOizVncM8DD1tbkf84fKTEIY9\nARIInvV+uXyTeFB9ErLXIVkJ83rtDqTpBp+9loV9a8bvgxXQcduvMqx8jUwX\nS7zBgk1ZuJeAzm9w4tiMX5AfOrfidp0IxWXFPNdr6ORfi/SLGYAvUy5qYlg0\nuHQs\r\n=H5nD\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"inline"},"mocha":{"colors":true,"require":"@babel/register"},"engines":{"node":">=8.6.0"},"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 lib/main/doc -r -c jsdoc.json -R lib/main/README.md lib/main","link":"mkdirp lib/main && cd lib/main && npm link; cd ../..","lint":"standard --verbose 'src/**/*.js'","test":"run-s transpile unit-integration lint","unit":"nyc --check-coverage -x 'lib/test' --exclude-after-remap false mocha 'lib/test/unit/**/*.spec.js'","build":"npm install && npm test","clean":"rimraf lib/main","format":"standard --fix 'src/**/*.js'","report":"nyc report --reporter=html","unlink":"mkdirp lib/main && cd lib/main && npm unlink; cd ../..","prelink":"run-s make-distribution","copy-src":"mkdirp lib/main/src && cp -r src/main/* lib/main/src","postunit":"run-s report","transpile":"run-s transpile-main transpile-test","integration":"nyc --check-coverage -x 'lib/test' --exclude-after-remap false mocha 'lib/test/integration/**/*.spec.js'","transpile-main":"babel --verbose --out-dir lib/main --copy-files lib/main/src","transpile-test":"babel --delete-dir-on-start --verbose --out-dir lib/test --copy-files src/test","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'lib/test' --exclude-after-remap false mocha 'lib/test/unit/**/*.spec.js' 'lib/test/integration/**/*.spec.js'","make-distribution":"run-s transpile finalize-distribution doc","pretranspile-main":"run-s clean copy-src","postunit-integration":"run-s report","finalize-distribution":"cp package.json package-lock.json README.md LICENSE lib/main"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"standard":{"parser":"babel-eslint"},"repository":{"url":"git+https://gitlab.com/northscaler-public/continuation-local-storage.git","type":"git"},"_npmVersion":"5.3.0","description":"Local storage for asynchronous Node.js call stacks, similar to thread-local storage in multithreaded platforms","directories":{},"_nodeVersion":"8.6.0","dependencies":{"@babel/polyfill":"7.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":true,"devDependencies":{"nyc":"14.1.1","chai":"4.2.0","acorn":"7.1.0","jsdoc":"3.6.3","mocha":"6.2.2","zone.js":"0.10.2","standard":"12.0.1","copyfiles":"2.1.1","@babel/cli":"7.7.0","cls-hooked":"4.2.2","dirty-chai":"2.0.1","@babel/core":"7.7.0","npm-run-all":"4.1.5","@babel/types":"7.7.2","babel-eslint":"10.0.3","npm-cli-login":"0.1.1","@babel/register":"7.7.0","@babel/traverse":"7.7.2","@babel/preset-env":"7.7.1"},"_npmOperationalInternal":{"tmp":"tmp/continuation-local-storage_3.0.2_1581975498653_0.9220153093693353","host":"s3://npm-registry-packages"}},"3.1.0-rc.0":{"name":"@northscaler/continuation-local-storage","version":"3.1.0-rc.0","keywords":["continuation-local-storage","thread-local-storage","context"],"license":"MIT","_id":"@northscaler/continuation-local-storage@3.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/continuation-local-storage#readme","bugs":{"url":"https://gitlab.com/northscaler-public/continuation-local-storage/issues"},"dist":{"shasum":"66c5e098ccfc6e6160e49e14eb0fef6a34d65321","tarball":"https://registry.npmjs.org/@northscaler/continuation-local-storage/-/continuation-local-storage-3.1.0-rc.0.tgz","fileCount":21,"integrity":"sha512-3zZ5XGQ0e+wtbDuGH9K5KzopKjTVKhwhu86dVWP5D2+Is3PM/kGznrTubdixu/3eUu/2NlkeqdeJzbTZKgbGbg==","signatures":[{"sig":"MEQCIAgY0+odnC50HXQgJ5FwmcgrVQ1E47yWnI0IojjNiB9bAiB1rCkNf01lvNRcmcL29s3OVAlaxxa3hXcNlrOcqbP1yg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":416723,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuVZcCRA9TVsSAnZWagAAmrYQAJ9asSIHE+e3mzGNCgWv\nx0wpfkVGTtq44KnN7RjZaFujLvODRvzxyeJ65DmfBakSES8CgR24tnUW1JPI\nszaWDuy67Or1TqBU6hgXkgEqhXtPPQT4r6bW2eZFs4ECxtGeJkdRGx7O8Ckp\nHY5gyj7sWMn8ecmr3bps8DwKG4dlnsQLVfYOTs4ENNzF6S0D7QoF1Tnjted2\nL8l3tukQ6ClyLQzaR/YofSrgQit33DCCxWzJday99zjSzyMTiOf4195cTbSq\norGRpnjHp7Ob6WpBxISTxvzdZf60SiwEDUPuiw3QkHX9tTa+csp/PbzQUAmB\nH8beVh7K3Lis1PWI6/IAyG7Zl4d0Y1C+ZezEn0XSveX1UMQO3gxKo7y+Y+ph\n+EIejIEM9dxnZYLA4IvPOV/xIoLIIxZeHAySpphdlAilxf/O0m5Ap+yzx1ks\nvbwnjFzsdsiXaRx2ui0OjvOpmq3rPC04LEWUpDZ9NentbsJzTJZQArRVGm59\nTAoEuGumtvQBdwuYHoLleR06AkChD+j7webMVj7Tpfoyj8D18TgjYI3mwMVB\nXkXdHEFGp9TTCZ5os1I1jvrI+4o5cRyY2awoofbNsg9C9fC0FbL3IIxBhcLM\nJ6aVa4gTtlFupt1+A4cD1sMTHUICMJo7xqCR4ZF6M7vwEsTuAJ1fE4/y9vmS\ngC4N\r\n=ZdF3\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"inline"},"mocha":{"colors":true,"require":"@babel/register"},"readme":"# `continuation-local-storage`\n>NB: Git repo of truth is https://gitlab.com/northscaler-public/continuation-local-storage; all others are mirrors.\n\n## Overview\nThis module provides a means to store information along the entirety of a single Node.js asynchronous call chain, or \"continuation\".\nIt is equivalent to a Vert.x [Context](https://vertx.io/docs/apidocs/index.html?io/vertx/core/Context.html), and similar to `ThreadLocal` from [Java](https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/ThreadLocal.html), [.NET](https://docs.microsoft.com/en-us/dotnet/api/system.threading.threadlocal-1), and other, similar platforms.\n\nContexts allow you to place information in a continuation-local storage space so that it's available all the way up & down an asynchronous call stack so that you can set & get that information as necessary.\n\n## Use\nThere two flavors to choose from: one based on [`cls-hooked`](https://www.npmjs.com/package/cls-hooked), and one based on [`zone.js`](https://www.npmjs.com/package/zone.js).\nUse whichever one you want to; the `Context` API is the same:\n* Run code in a context: `Context().run(() => { /* your code here */ }, { your: 'context', values: 'here' })`\n* Set a value in a context: `Context().set('name', 'value')`\n* Get a value from a context: `Context().get('name')`\n\n>IMPORTANT:\n> In order to minimize transitive dependencies in your application, this module does _not_ require `cls-hooked` or `zone.js` itself.\n> The consuming codebase must install the library (or libraries) that it needs.\n\nIf you are using `ZoneJsContext`, you must `npm install zone.js` yourself, then `require('zone.js/dist/zone-node')` at the right time for your application.\nSee `zone.js`'s documentation for more information.\n\nIf you are using `ClsHookedContext`, you must `npm install cls-hooked` yourself.\n\nSee this project's `package.json` `devDependencies` section for the versions of `cls-hooked` and `zone.js` was built against and try to install compatible ones.\n\n## Example\n```javascript\n// prerequisite:  npm install --save cls-hooked\n\nconst Context = require('@northscaler/continuation-local-storage').ClsHookedContext // or ZoneJsContext\n\nContext().run(() => { // uses the default context; pass a string name for a custom context\n  // Do whatever you want here.\n  // Context values are accessible anywhere in the sync or async call stack:\n  const foo = Context().get('foo') // returns 'bar'\n  \n  // You can set & get values with:\n  Context().set('baz', 'snafu')\n  const baz = Context().get('baz') // returns 'snafu'\n}, {\n  foo: 'bar' // puts the value 'bar' into the context at key 'foo'\n})\n```\n","engines":{"node":">=8.17.0"},"gitHead":"cdf2b8aa081f5ae7c227ff74cb4b9c341ae30784","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'","nuke":"rimraf node_modules","test":"run-s transpile unit-integration lint","unit":"nyc -x 'dist/test' --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js'","build":"npm install && npm test","clean":"rimraf dist docs coverage .nyc_output","format":"standard --fix 'src/**/*.js'","report":"nyc report --reporter=html","prenuke":"npm run clean","postunit":"run-s report","transpile":"run-s transpile-main transpile-test","integration":"nyc -x 'dist/test' --exclude-after-remap false mocha 'dist/test/integration/**/*.spec.js'","transpile-main":"babel --delete-dir-on-start --verbose --out-dir dist/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir dist/test --copy-files src/test","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'dist/test' --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js' 'dist/test/integration/**/*.spec.js'","make-distribution":"run-s transpile doc lic","postunit-integration":"run-s report"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"standard":{"parser":"babel-eslint"},"repository":{"url":"git+https://gitlab.com/northscaler-public/continuation-local-storage.git","type":"git"},"_npmVersion":"6.14.4","description":"Local storage for asynchronous Node.js call stacks, similar to thread-local storage in multithreaded platforms","directories":{},"_nodeVersion":"14.1.0","dependencies":{"@babel/polyfill":"7.8.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"15.0.1","chai":"4.2.0","acorn":"7.2.0","jsdoc":"3.6.4","mocha":"7.1.2","zone.js":"0.10.3","standard":"14.3.3","copyfiles":"2.2.0","@babel/cli":"7.8.4","cls-hooked":"4.2.2","dirty-chai":"2.0.1","@babel/core":"7.9.6","npm-run-all":"4.1.5","@babel/types":"7.9.6","babel-eslint":"10.1.0","npm-cli-login":"0.1.1","@babel/register":"7.9.0","@babel/traverse":"7.9.6","lodash.template":"4.5.0","@babel/preset-env":"7.9.6"},"peerDependencies":{"zone.js":"0.10.3","cls-hooked":"4.2.2"},"_npmOperationalInternal":{"tmp":"tmp/continuation-local-storage_3.1.0-rc.0_1589204571536_0.014840709825850062","host":"s3://npm-registry-packages"}},"3.1.0-rc.1":{"name":"@northscaler/continuation-local-storage","version":"3.1.0-rc.1","keywords":["continuation-local-storage","thread-local-storage","context"],"license":"MIT","_id":"@northscaler/continuation-local-storage@3.1.0-rc.1","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/continuation-local-storage#readme","bugs":{"url":"https://gitlab.com/northscaler-public/continuation-local-storage/issues"},"dist":{"shasum":"a4b8e4e0dbbb0a7d8b6c0c26b8340386edf37c9c","tarball":"https://registry.npmjs.org/@northscaler/continuation-local-storage/-/continuation-local-storage-3.1.0-rc.1.tgz","fileCount":46,"integrity":"sha512-lLuFzxKwMxglbuRLk3EAIeCgS8/6RLvLYSzq840fkJ/pSDGfuDIYPT+k139km3Usov2KxfqR7lZGSkC6G4DfBw==","signatures":[{"sig":"MEQCIHs9MA+SNlo2hCt2UbHsWYbJFiSSzWpLrEk7oamSoSLkAiANrrvOvyXKQYDnbg51sR0PSSKpKhHy2iYlEuW2RvHk/g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1460837,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuWfwCRA9TVsSAnZWagAAvwUP/jFHvTPq5pzk7HtLys/X\nV40JL4kn7H2zKPnz1CcNWRUyprrOMqmv2QXHJpBgKjfGA7ZQuUS4iDzHadHV\n0Bap9SRXiVcRULHzYWAxLq8nd+Nl90cv4j8B9xlIaT+wBqtDhRYRideSReR0\ni5CvLIV6PmDkoKjyv1clfOUN8MScCUJ6ijGT1wZbDEQFSO+o3845aigyvlWa\nReq+E7LKhWuDb6Bl9KSjV6SqJNnd1TNyCVAtd3v+eUQKipeKJsunSLLzQk8l\npOcAiGIkALyNxntEAhHLv7Eu7prsaw3csBaiqrw+qHH/ogD446EjMAIzC5oL\nMC9tDGDnmmPwL6LOITcXu+qW6FH0WEhtG19BuezBEe/H1yAb9f1LnxEbgePB\nhO8RD1Q7hhFrKompUDmj12hh3FzGTgvr3X4wxVit1IOEDx+2HfB0196DSh7m\nCi3Sgkub1nsVYICfZJRVnPa7/k9y31sc5IE5BVKTuVyVXFEAW/yEWc10Bb2I\n/a8DZsv3N9b9z4GQL0zUCtEyPdmfPzcmOTG9huSO1hRQakGRE36UVYJvlFj0\nPSP6OiCMWQ7iEFZF1AkJkIYVyBcB9KtSxP5aySxzQJqnZSMELKNMZeYI6bEO\nAB8quEsRwE/0zW5B5ierIbe1BA4iBWtSFNKuUbZZr9h/j0oxc69xQdQWSV34\nJeqX\r\n=2O8N\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"inline"},"mocha":{"colors":true,"require":"@babel/register"},"readme":"# `continuation-local-storage`\n>NB: Git repo of truth is https://gitlab.com/northscaler-public/continuation-local-storage; all others are mirrors.\n\n## Overview\nThis module provides a means to store information along the entirety of a single Node.js asynchronous call chain, or \"continuation\".\nIt is equivalent to a Vert.x [Context](https://vertx.io/docs/apidocs/index.html?io/vertx/core/Context.html), and similar to `ThreadLocal` from [Java](https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/ThreadLocal.html), [.NET](https://docs.microsoft.com/en-us/dotnet/api/system.threading.threadlocal-1), and other, similar platforms.\n\nContexts allow you to place information in a continuation-local storage space so that it's available all the way up & down an asynchronous call stack so that you can set & get that information as necessary.\n\n## Use\nThere two flavors to choose from: one based on [`cls-hooked`](https://www.npmjs.com/package/cls-hooked), and one based on [`zone.js`](https://www.npmjs.com/package/zone.js).\nUse whichever one you want to; the `Context` API is the same:\n* Run code in a context: `Context().run(() => { /* your code here */ }, { your: 'context', values: 'here' })`\n* Set a value in a context: `Context().set('name', 'value')`\n* Get a value from a context: `Context().get('name')`\n\n>IMPORTANT:\n> In order to minimize transitive dependencies in your application, this module does _not_ require `cls-hooked` or `zone.js` itself.\n> The consuming codebase must install the library (or libraries) that it needs.\n\nIf you are using `ZoneJsContext`, you must `npm install zone.js` yourself, then `require('zone.js/dist/zone-node')` at the right time for your application.\nSee `zone.js`'s documentation for more information.\n\nIf you are using `ClsHookedContext`, you must `npm install cls-hooked` yourself.\n\nSee this project's `package.json` `devDependencies` section for the versions of `cls-hooked` and `zone.js` was built against and try to install compatible ones.\n\n## Example\n```javascript\n// prerequisite:  npm install --save cls-hooked\n\nconst Context = require('@northscaler/continuation-local-storage').ClsHookedContext // or ZoneJsContext\n\nContext().run(() => { // uses the default context; pass a string name for a custom context\n  // Do whatever you want here.\n  // Context values are accessible anywhere in the sync or async call stack:\n  const foo = Context().get('foo') // returns 'bar'\n  \n  // You can set & get values with:\n  Context().set('baz', 'snafu')\n  const baz = Context().get('baz') // returns 'snafu'\n}, {\n  foo: 'bar' // puts the value 'bar' into the context at key 'foo'\n})\n```\n","engines":{"node":">=8.17.0"},"gitHead":"44158e473c913baf293d8f1347c9f83a62c55a1a","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'","nuke":"rimraf node_modules","test":"run-s transpile unit-integration lint","unit":"nyc -x 'dist/test' --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js'","build":"npm install && npm test","clean":"rimraf dist docs coverage .nyc_output","format":"standard --fix 'src/**/*.js'","report":"nyc report --reporter=html","prenuke":"npm run clean","postunit":"run-s report","transpile":"run-s transpile-main transpile-test","integration":"nyc -x 'dist/test' --exclude-after-remap false mocha 'dist/test/integration/**/*.spec.js'","transpile-main":"babel --delete-dir-on-start --verbose --out-dir dist/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir dist/test --copy-files src/test","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'dist/test' --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js' 'dist/test/integration/**/*.spec.js'","make-distribution":"run-s transpile doc lic","postunit-integration":"run-s report"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"standard":{"parser":"babel-eslint"},"repository":{"url":"git+https://gitlab.com/northscaler-public/continuation-local-storage.git","type":"git"},"_npmVersion":"6.14.4","description":"Local storage for asynchronous Node.js call stacks, similar to thread-local storage in multithreaded platforms","directories":{},"_nodeVersion":"14.1.0","dependencies":{"@babel/polyfill":"7.8.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"15.0.1","chai":"4.2.0","acorn":"7.2.0","jsdoc":"3.6.4","mocha":"7.1.2","zone.js":"0.10.3","standard":"14.3.3","copyfiles":"2.2.0","@babel/cli":"7.8.4","cls-hooked":"4.2.2","dirty-chai":"2.0.1","@babel/core":"7.9.6","npm-run-all":"4.1.5","@babel/types":"7.9.6","babel-eslint":"10.1.0","npm-cli-login":"0.1.1","@babel/register":"7.9.0","@babel/traverse":"7.9.6","lodash.template":"4.5.0","@babel/preset-env":"7.9.6"},"peerDependencies":{"zone.js":"0.10.3","cls-hooked":"4.2.2"},"_npmOperationalInternal":{"tmp":"tmp/continuation-local-storage_3.1.0-rc.1_1589209072328_0.38252276032277677","host":"s3://npm-registry-packages"}},"3.1.0":{"name":"@northscaler/continuation-local-storage","version":"3.1.0","keywords":["continuation-local-storage","thread-local-storage","context"],"license":"MIT","_id":"@northscaler/continuation-local-storage@3.1.0","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/continuation-local-storage#readme","bugs":{"url":"https://gitlab.com/northscaler-public/continuation-local-storage/issues"},"dist":{"shasum":"0ea73e7c6096571beeca8007b941be68a0f8fc05","tarball":"https://registry.npmjs.org/@northscaler/continuation-local-storage/-/continuation-local-storage-3.1.0.tgz","fileCount":46,"integrity":"sha512-NuZgurLaF80Ygt9kpbSg2k+sAjiHzXTh2x86/ERq5wUH9s6nB5PEANGTvqMo5qSYqLj0t3ayiLC9IvmynsG8Ow==","signatures":[{"sig":"MEUCIHmIbues5IaBkdRMSPBtBzEcDWFv7HdSiqyvXo4sd/LJAiEAt77G1LRUZUM+MX2Gw1ejvEt1VygEf/P2AImrDo2mxN0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1460827,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuWhdCRA9TVsSAnZWagAAmwAP/0a0ycZSTFP5edCGGaqL\nE4srQgeeB1vewzotGsbrnXQ2wrnQ2wIgiR1d10u3OCWLA87qRN7IhGBplrZa\n91J3ZaoZLuUQ9LyUgbOc38LtCFFU6bo/isUx5BmUij4TJP12wfQorbFjvJk5\nWAwLfZ+JGpVNq13RwO+g7OMz1ZYFRYvauLP1FTyvbdipvAC44yHJs3bL+8zI\nO7WBZ9SONiI9WoPV7R4hM5iDw/S1+EYlcuClrwG2LQm1e1mzisrBIU65cZ7Y\n8Xn8l9UgNPYnm0YvY1Z+3o6dIsOIElidY6MMjuaPGUQe6tN3tIUlrSMdnY69\niKRc4GShlthfP7FtK2cULiIh5BZnU4ZD/ptgh8oNeBzIulItgoeYI7e/NZt+\nG5eoL+xEsKOFKvHL6AwPZB9DBP9cEzaf/ZgY76kLTM+FFobH9yqxUjQ13uAA\n+iRqPVXPZR0kKDRC5Y97+2q2i2KkK13RIxcL/wehbZBnM/3dXHsVdRFklUD8\nwGG5vO+Xayyu+Ya/TAqVVC4uwVsc+7qGhuWt/1xjaog/B6wBvRhSqCJIBvIA\n28hrT2mI9SfPpl7d8kI9KWuGNyZsd75/WbuFPXcR7wYpThGr4ImTx/SkevCV\n/MM1ltoJIXz5k6Tn36d3Z8e0bxCrUBkEFyqX13fZ9KOouOL8tri6t5/pNMJr\nLZJ1\r\n=u82G\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"inline"},"mocha":{"colors":true,"require":"@babel/register"},"engines":{"node":">=8.17.0"},"gitHead":"737fdaaffe83492e1922c895f3da7e2dfa16db08","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'","nuke":"rimraf node_modules","test":"run-s transpile unit-integration lint","unit":"nyc -x 'dist/test' --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js'","build":"npm install && npm test","clean":"rimraf dist docs coverage .nyc_output","format":"standard --fix 'src/**/*.js'","report":"nyc report --reporter=html","prenuke":"npm run clean","postunit":"run-s report","transpile":"run-s transpile-main transpile-test","integration":"nyc -x 'dist/test' --exclude-after-remap false mocha 'dist/test/integration/**/*.spec.js'","transpile-main":"babel --delete-dir-on-start --verbose --out-dir dist/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir dist/test --copy-files src/test","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'dist/test' --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js' 'dist/test/integration/**/*.spec.js'","make-distribution":"run-s transpile doc lic","postunit-integration":"run-s report"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"standard":{"parser":"babel-eslint"},"repository":{"url":"git+https://gitlab.com/northscaler-public/continuation-local-storage.git","type":"git"},"_npmVersion":"6.14.4","description":"Local storage for asynchronous Node.js call stacks, similar to thread-local storage in multithreaded platforms","directories":{},"_nodeVersion":"14.1.0","dependencies":{"@babel/polyfill":"7.8.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":true,"devDependencies":{"nyc":"15.0.1","chai":"4.2.0","acorn":"7.2.0","jsdoc":"3.6.4","mocha":"7.1.2","zone.js":"0.10.3","standard":"14.3.3","copyfiles":"2.2.0","@babel/cli":"7.8.4","cls-hooked":"4.2.2","dirty-chai":"2.0.1","@babel/core":"7.9.6","npm-run-all":"4.1.5","@babel/types":"7.9.6","babel-eslint":"10.1.0","npm-cli-login":"0.1.1","@babel/register":"7.9.0","@babel/traverse":"7.9.6","lodash.template":"4.5.0","@babel/preset-env":"7.9.6"},"peerDependencies":{"zone.js":"0.10.3","cls-hooked":"4.2.2"},"_npmOperationalInternal":{"tmp":"tmp/continuation-local-storage_3.1.0_1589209181165_0.4402013496634707","host":"s3://npm-registry-packages"}},"3.1.1":{"name":"@northscaler/continuation-local-storage","version":"3.1.1","keywords":["continuation-local-storage","thread-local-storage","context"],"license":"MIT","_id":"@northscaler/continuation-local-storage@3.1.1","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/continuation-local-storage#readme","bugs":{"url":"https://gitlab.com/northscaler-public/continuation-local-storage/issues"},"dist":{"shasum":"e440e4d46c56ed44c6d55c7d0c0535e80c7a6c24","tarball":"https://registry.npmjs.org/@northscaler/continuation-local-storage/-/continuation-local-storage-3.1.1.tgz","fileCount":45,"integrity":"sha512-NFLfok3mEzWAMlFPGCOz8Lb9oq0dK53WVM7ytytEyJo+Q+aGnVrUW/p8tPYF/P+7vRKFpaswLGte9TG6UqMgww==","signatures":[{"sig":"MEUCIA9e5scts2VkjY8npPg0mFAFh/SEU/+uuPFBAKy0eIDbAiEA8d70NrNhtyf3SONS77CMnchmYDFr6JmyF3uqDJXYL6E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1065088,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfNyMzCRA9TVsSAnZWagAA1SgP/0ihwqR9IMeVb9oVCL6U\ngDkRvUBfagAgZ0IqyJnR+LnoVL84TG/qp1eQfaZQtXU5IjnP6E29BNscuzCn\nYsLL2AwotyN4moQJtkPPKvtP9tZfq0SsUhdaQHa59QvrifqtOfmSlAi1MLHY\npauRP6CfczNupkA4B9L3xlESCNXpPMMNhTxHjxzQTE81DCloxrTvyahISdGT\nJ7w7DrxdFMlYwq0BpPKk330RtLe1Y3eUvoOjEMJ19mLJ0F6xeienA8biYP9t\naH8Jp2+7wshzjHwjsuPkT1l0n9TJJwrqAaBl3wj+fFFXRMA7EM4DMRdbFOU/\nG4ts4sEse34l1VlAdZI7AVMnF6cfo5rS9G+Cy4q1UeH1BpWB0hGNxU+b2Shz\nki5E15F/pIavr/13KuF4vhI2qpEDMeyv8fFTCWXG/cA/lCHYk5kaWqDfxUuj\n6dZdW9YDzSecnBeh+0a0Q9mRFUgMGkpR/QXYGPdTVElLxtMUlnUYYRsH0evC\n5jk+Zcj1JUNWAoz6xCZV3sTV2M/70qNYUS3mJerD12LMgxa8gLQ4aEmup3BW\nXUbUPaxNOt8uyIDVTKLztbsqf//3hYDO9SuaioBlxO6TQmGnjHvweknRQ2dn\naYuU7KGwlaCG71msrmhf+TttekylSyN7sPr6huaaCcRoRoCHl0ngAZFb8OtA\n52JI\r\n=rnDs\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"inline"},"mocha":{"colors":true,"require":"@babel/register"},"engines":{"node":">=8.17.0"},"gitHead":"2d67e5bb945e0233b139715634dd19dad5c4dd71","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'","nuke":"rimraf node_modules","test":"run-s transpile unit-integration lint","unit":"nyc -x 'dist/test' --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js'","build":"npm install && npm test","clean":"rimraf dist docs coverage .nyc_output","format":"standard --fix 'src/**/*.js'","report":"nyc report --reporter=html","prenuke":"npm run clean","postunit":"run-s report","transpile":"run-s transpile-main transpile-test","integration":"nyc -x 'dist/test' --exclude-after-remap false mocha 'dist/test/integration/**/*.spec.js'","transpile-main":"babel --delete-dir-on-start --verbose --out-dir dist/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir dist/test --copy-files src/test","postintegration":"run-s report","unit-integration":"nyc --check-coverage -x 'dist/test' --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js' 'dist/test/integration/**/*.spec.js'","make-distribution":"run-s transpile doc lic","postunit-integration":"run-s report"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"standard":{"parser":"babel-eslint"},"repository":{"url":"git+https://gitlab.com/northscaler-public/continuation-local-storage.git","type":"git"},"_npmVersion":"6.14.4","description":"Local storage for asynchronous Node.js call stacks, similar to thread-local storage in multithreaded platforms","directories":{},"_nodeVersion":"14.1.0","dependencies":{"@babel/polyfill":"7.8.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.0.1","chai":"4.2.0","acorn":"7.2.0","jsdoc":"3.6.4","mocha":"7.1.2","zone.js":"0.10.3","standard":"14.3.3","copyfiles":"2.2.0","@babel/cli":"7.8.4","cls-hooked":"4.2.2","dirty-chai":"2.0.1","@babel/core":"7.9.6","npm-run-all":"4.1.5","@babel/types":"7.9.6","babel-eslint":"10.1.0","npm-cli-login":"0.1.1","@babel/register":"7.9.0","@babel/traverse":"7.9.6","lodash.template":"4.5.0","@babel/preset-env":"7.9.6"},"peerDependencies":{"zone.js":"0.10.3","cls-hooked":"4.2.2"},"_npmOperationalInternal":{"tmp":"tmp/continuation-local-storage_3.1.1_1597449010555_0.5042809305719862","host":"s3://npm-registry-packages"}},"3.2.0-rc.0":{"name":"@northscaler/continuation-local-storage","version":"3.2.0-rc.0","keywords":["continuation-local-storage","thread-local-storage","context"],"license":"MIT","_id":"@northscaler/continuation-local-storage@3.2.0-rc.0","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/continuation-local-storage#readme","bugs":{"url":"https://gitlab.com/northscaler-public/continuation-local-storage/issues"},"dist":{"shasum":"06258cae29c279bf38a3d45940241469d84e439c","tarball":"https://registry.npmjs.org/@northscaler/continuation-local-storage/-/continuation-local-storage-3.2.0-rc.0.tgz","fileCount":23,"integrity":"sha512-M3OKvsIWsVErNbDXYplZuP4WBGa6LpF+2XkJlRn3b0nd7PYDAlKijIurHcQMOvTaYfZKAgXKqix2rwUQ01qK4A==","signatures":[{"sig":"MEUCIQDmEypYFt6Jpqq1OyzxK2L61VWVxSQnDSnBbQ2TkbeYiwIgGoov3h6UUSMZD1rdLxOPwwbhbjlv9rluMEdlzj/fJhY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30586,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOU2bCRA9TVsSAnZWagAAnBUP/RCptDAQAoswX/M1J3sj\nRKe+ya2V5vsVAqwCWaDoGi0pEv8PWxrIY85dy2p8nyyqHWr/SOYlTFWwr5iX\n1wbPvgQPQ7AbLcAF0W0ONOkFGWk8zFa8EmJ38dPdvYDK8nZ3lNziV2JusJ+Z\nHkshxdJBMiiNoTYPr0S5WjgqlOLOtnQ7rOemRTwp4AW566kyJ2GuqTPLBZFp\n0xyMVDyNdP+MwN09MmBC678odyYUgpJwBBOwqbpUdRIhD1V6Lq+JdBQvdK9n\nqW0wzQebMngrq51wRfPGwHQCdK8bwNKQkFWqX0S+R/Xjh7Qv04CyptZ0YByf\nCI97hF2kdf6cteYhfe4Sf9yxkWzTsuV1I2bqsx5Sqq3yY6VhroWwTmRW/cdI\nSkk/lbW6mIRXkHw+UWxE5Wj7/a2/CVCqW0gpubRpQ1QQkjjkZmHrgz/uz74n\nnizKox7q8JsJ1Ehza78yqkViJzHhEj0m6NmbhPOTY7MwR/9FwKjBTSzFXLF0\n/Y6QTNH8AepFtOXrqUu1OmsPUqM5mrPtJjrMCQk4k0IsJPpnTjrgVh5jyq1Q\nMzTQ/7K5scBzYFmWfchSD8+l8bf2YVAE+Bg1ZSK7UcX7c+bPq/TsIK4r/wa2\nd+G3o8HrPLmawHplgAAQYNdgETnDwzLVPD59wgQOXSjZnnE+9dHIXc73WrUt\ngNoz\r\n=j1Fn\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"plugins":[["@babel/plugin-proposal-optional-chaining",{"loose":false}]],"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"inline"},"mocha":{"colors":true,"require":"@babel/register"},"readme":"# `continuation-local-storage`\n>NB: Git repo of truth is https://gitlab.com/northscaler-public/continuation-local-storage; all others are mirrors.\n\n## Overview\nThis module provides a means to store information along the entirety of a single Node.js asynchronous call chain, or \"continuation\".\nIt is equivalent to a Vert.x [Context](https://vertx.io/docs/apidocs/index.html?io/vertx/core/Context.html), and similar to `ThreadLocal` from [Java](https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/ThreadLocal.html), [.NET](https://docs.microsoft.com/en-us/dotnet/api/system.threading.threadlocal-1), and other, similar platforms.\n\nContexts allow you to place information in a continuation-local storage space so that it's available all the way up & down an asynchronous call stack so that you can set & get that information as necessary.\n\n## Use\nThere three flavors to choose from, based on either\n* [`cls-hooked`](https://www.npmjs.com/package/cls-hooked),\n* [`zone.js`](https://www.npmjs.com/package/zone.js), or\n* [`AsyncLocalStorage`](https://nodejs.org/docs/latest-v12.x/api/async_hooks.html#async_hooks_class_asynclocalstorage) (requires Node.js >= 12.17.0).\n\nUse whichever one you want to; the `Context` API is the same:\n* Run code in a context: `Context().run(() => { /* your code here */ }, { your: 'context', values: 'here' })`\n* Set a value in a context: `Context().set('name', 'value')`\n* Get a value from a context: `Context().get('name')`\n\nUsing more than one implementation should work, but is not officially supported.\nTry to stick with just one provider in your app.\n\n>IMPORTANT:\n> In order to minimize transitive dependencies in your application, this module does _not_ require `cls-hooked` or `zone.js` itself.\n> The consuming codebase must install the library (or libraries) that it needs.\n\n### zone.js\nIf you are using `ZoneJsContext`:\n * You must `npm install zone.js` yourself.\n * You must `require('zone.js/dist/zone-node')` at the right time for your application.\n\nSee `zone.js`'s documentation for more information.\n\n### cls-hooked\nIf you are using `ClsHookedContext`:\n* You must `npm install cls-hooked` yourself.\n\n### AsyncLocalStorage\nIf you are using `AsyncLocalStorage`:\n* Your Node.js version must be `>=12.17.0`.\n* If you're using `setTimeout`, `Promise.resolve` or `Promise.reject` within your `run` call, you must ensure that the `autodispose` option is set to `false` (the default) in order to make the values available in those places.\n\nSee this project's `package.json` `devDependencies` section for the versions of `cls-hooked` and `zone.js` was built against and try to install compatible ones.\n\n## API\nThe basic API of these `Context`s is straightforward.\nOnce you get the `Context` (via `require` or `import`), these are the methods you'll use:\n\n### Factory method\n`Context(key)`:\n\nRetrieves a context with the given key as a string (`Symbol`ic names are a [todo](https://gitlab.com/northscaler-public/continuation-local-storage/-/issues/3)).\n\n### Instance methods\n\n`run(fn, values, opts)`:\n\nRuns a given function within the `Context`, making any `values`, an `Object`, available.  `opts` currently includes only `autodispose` and is `true` by default.\n\n`set(key, value)`\n\nSets the given `value` at the given `key`.\n\n`get(key)`\n\nGets the `value` at the given `key`.\n\n`dispose()`\n\nIt's not a bad idea to dispose of the `Context` when you know you're done with it, but it's not strictly required.\nThe `run` method defaults to manual disposal, but if you observe memory leaks, this would be the first thing to check.\n\n## Example\n```javascript\nconst { ClsHookedContext: Context } = require('@northscaler/continuation-local-storage') // prerequisite:  npm install --save cls-hooked\n// or: const { ZoneJsContext: Context } = require('@northscaler/continuation-local-storage') // prerequisite:  npm install --save zone.js\n// or: const { AsyncLocalStorageContext: Context } = require('@northscaler/continuation-local-storage') // prerequisite:  Node.js >= 12.17.0\n\nContext().run(\n// this is the function that will be run in inside the Context\n() => { // uses the default context; pass a string name for a custom context\n  // Do whatever you want here.\n  // Context values are accessible anywhere in the sync or async call stack:\n  const foo = Context().get('foo') // returns 'bar'\n  \n  // You can set & get values with:\n  Context().set('baz', 'snafu')\n  const baz = Context().get('baz') // returns 'snafu'\n},\n// these are your contextual values available in the async call stack\n{\n  foo: 'bar' // puts the value 'bar' into the context at key 'foo'\n})\n```\n","engines":{"node":">=8.17.0"},"gitHead":"b6e95838c562f619773dfbf63efa594b2848a9ae","scripts":{"i":"mocha 'src/test/integration/**/*.spec.js'","u":"mocha 'src/test/unit/**/*.spec.js'","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"standard --verbose 'src/**/*.js'","nuke":"rimraf node_modules","test":"run-s transpile unit-integration lint","unit":"nyc -x 'dist/test' --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js'","build":"npm install && npm test","clean":"rimraf dist docs coverage .nyc_output","format":"standard --fix 'src/**/*.js'","report":"run-s report-cls-hooked report-zonejs report-als","cov-als":"open coverage/als/index.html","prenuke":"npm run clean","postunit":"run-s report","transpile":"run-s transpile-main transpile-test","cov-zonejs":"open coverage/zonejs/index.html","report-als":"nyc report --reporter=html --report-dir coverage/als -t .nyc_output/als","integration":"nyc -x 'dist/test' --exclude-after-remap false mocha 'dist/test/integration/**/*.spec.js'","report-zonejs":"nyc report --reporter=html --report-dir coverage/zonejs -t .nyc_output/zonejs","cov-cls-hooked":"open coverage/cls-hooked/index.html","transpile-main":"babel --delete-dir-on-start --verbose --out-dir dist/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir dist/test --copy-files src/test","postintegration":"run-s report","unit-integration":"run-s unit-integration-cls-hooked unit-integration-zonejs unit-integration-als","make-distribution":"run-s transpile doc lic","report-cls-hooked":"nyc report --reporter=html --report-dir coverage/cls-hooked -t .nyc_output/cls-hooked","postunit-integration":"run-s report","unit-integration-als":"nyc -x 'dist/test' -t .nyc_output/als --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js' 'dist/test/integration/context/als/**/*.spec.js'","unit-integration-zonejs":"nyc -x 'dist/test' -t .nyc_output/zonejs --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js' 'dist/test/integration/context/zonejs/**/*.spec.js'","unit-integration-cls-hooked":"nyc -x 'dist/test' -t .nyc_output/cls-hooked --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js' 'dist/test/integration/context/cls-hooked/**/*.spec.js'"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"standard":{"parser":"babel-eslint"},"repository":{"url":"git+https://gitlab.com/northscaler-public/continuation-local-storage.git","type":"git"},"_npmVersion":"6.14.4","description":"Local storage for asynchronous Node.js call stacks, similar to thread-local storage in multithreaded platforms","directories":{},"_nodeVersion":"14.1.0","dependencies":{"@babel/polyfill":"7.10.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","chai":"4.2.0","acorn":"8.0.1","jsdoc":"3.6.5","mocha":"7.2.0","zone.js":"0.10.3","standard":"14.3.4","copyfiles":"2.3.0","@babel/cli":"7.10.5","cls-hooked":"4.2.2","dirty-chai":"2.0.1","@babel/core":"7.11.1","npm-run-all":"4.1.5","@babel/types":"7.11.0","babel-eslint":"10.1.0","npm-cli-login":"0.1.1","@babel/register":"7.10.5","@babel/traverse":"7.11.0","lodash.template":"4.5.0","@babel/preset-env":"7.11.0","@babel/plugin-proposal-optional-chaining":"7.11.0"},"peerDependencies":{"zone.js":">=0.10.3","cls-hooked":">=4.2.2"},"_npmOperationalInternal":{"tmp":"tmp/continuation-local-storage_3.2.0-rc.0_1597590938405_0.7732033420762687","host":"s3://npm-registry-packages"}},"3.2.0":{"name":"@northscaler/continuation-local-storage","version":"3.2.0","keywords":["continuation-local-storage","thread-local-storage","context"],"license":"MIT","_id":"@northscaler/continuation-local-storage@3.2.0","maintainers":[{"name":"npm_northscaler","email":"npm@northscaler.com"},{"name":"npm_scispike","email":"npm@scispike.com"}],"homepage":"https://gitlab.com/northscaler-public/continuation-local-storage#readme","bugs":{"url":"https://gitlab.com/northscaler-public/continuation-local-storage/issues"},"dist":{"shasum":"3d5328bb76ae1f98e4889c8371b03631f3060a35","tarball":"https://registry.npmjs.org/@northscaler/continuation-local-storage/-/continuation-local-storage-3.2.0.tgz","fileCount":23,"integrity":"sha512-bduZPuTx3uIxVeACenNEpuljooopzbbClKYSN7KrgusSCqjZ5/oR0TNtR/C+ndUOU41C1J56/ODb47xHI8tCLg==","signatures":[{"sig":"MEUCIAl4c1WugDh75OXnpPilxTXl6nA8tGzCcrPt9Ch1lXCmAiEAmnoZPqGTJKwEj55nRamghK87WNrJ25XqfYKN2+CEVBw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30581,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOU56CRA9TVsSAnZWagAACKoP/3Q5lVcuepn4uNOGkaU0\nlRmQeIkIYaNCmZEhNq0FGRMYk/C2gwzhkXC+y9ADWbWPQOi3ew7FIT71E9/4\n4jc8f4JuHGbPDnjUm9IKsOzaB/UUEG+z7RxNPQDs9EY2cEYiDlvOw3Im9YTK\n0S5h5ZCWSZufinApw0iHFS9yEYWYdSHsZv5jSf5e9AhUjxctQO0a2eRxD1vo\ncPknQy+SFduWtHUsdv9yEqS3OYu6vEsm85XxsNVIby3LEZnrNAUGV8WRCqoo\nHPrLwY/XRCghD8fCJltwoH5ZhiyiizDCZ68O8sZzVn4LTUUxXvQeIhph2ZsR\nxUd5kg8v+ImaxxgKxxA6KieM1F8MSlxKm95tNMiqnXIum1vxpwFgZXg574ZC\nvURM+EDacSAnD1VgwtHK+wp3LDO+k6u5BjKNXcKAuyGvxMfAGgSigp+vEQC8\neDzUcV4GikVSTFtzd4CoBFoMQ+5xYVROomqsvik7i+W+YDYb0MTfgNGoWDeZ\nO1PB36qILsfJJq7MEc8TU2JuNp/7L4AV7tw/69+DhbQ/JQMwcDi/3AZdi+cJ\nvh7sqCWRl5RrncTB8M3U1yVYfysATVLMut9w4Uyqho20nNWa1MZOfo7PhCSR\n75QSuRhvBGZC7yHJcIlQiK3pM3eOoLv0jTY4+/utzg8+5ED2fwzfsmOM1Ja7\nV2Sn\r\n=Na5W\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"plugins":[["@babel/plugin-proposal-optional-chaining",{"loose":false}]],"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"inline"},"mocha":{"colors":true,"require":"@babel/register"},"engines":{"node":">=8.17.0"},"gitHead":"3d3e995404b40f796c1cab75038386fc5db18f38","scripts":{"i":"mocha 'src/test/integration/**/*.spec.js'","u":"mocha 'src/test/unit/**/*.spec.js'","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"standard --verbose 'src/**/*.js'","nuke":"rimraf node_modules","test":"run-s transpile unit-integration lint","unit":"nyc -x 'dist/test' --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js'","build":"npm install && npm test","clean":"rimraf dist docs coverage .nyc_output","format":"standard --fix 'src/**/*.js'","report":"run-s report-cls-hooked report-zonejs report-als","cov-als":"open coverage/als/index.html","prenuke":"npm run clean","postunit":"run-s report","transpile":"run-s transpile-main transpile-test","cov-zonejs":"open coverage/zonejs/index.html","report-als":"nyc report --reporter=html --report-dir coverage/als -t .nyc_output/als","integration":"nyc -x 'dist/test' --exclude-after-remap false mocha 'dist/test/integration/**/*.spec.js'","report-zonejs":"nyc report --reporter=html --report-dir coverage/zonejs -t .nyc_output/zonejs","cov-cls-hooked":"open coverage/cls-hooked/index.html","transpile-main":"babel --delete-dir-on-start --verbose --out-dir dist/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir dist/test --copy-files src/test","postintegration":"run-s report","unit-integration":"run-s unit-integration-cls-hooked unit-integration-zonejs unit-integration-als","make-distribution":"run-s transpile doc lic","report-cls-hooked":"nyc report --reporter=html --report-dir coverage/cls-hooked -t .nyc_output/cls-hooked","postunit-integration":"run-s report","unit-integration-als":"nyc -x 'dist/test' -t .nyc_output/als --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js' 'dist/test/integration/context/als/**/*.spec.js'","unit-integration-zonejs":"nyc -x 'dist/test' -t .nyc_output/zonejs --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js' 'dist/test/integration/context/zonejs/**/*.spec.js'","unit-integration-cls-hooked":"nyc -x 'dist/test' -t .nyc_output/cls-hooked --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js' 'dist/test/integration/context/cls-hooked/**/*.spec.js'"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"standard":{"parser":"babel-eslint"},"repository":{"url":"git+https://gitlab.com/northscaler-public/continuation-local-storage.git","type":"git"},"_npmVersion":"6.14.4","description":"Local storage for asynchronous Node.js call stacks, similar to thread-local storage in multithreaded platforms","directories":{},"_nodeVersion":"14.1.0","dependencies":{"@babel/polyfill":"7.10.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","chai":"4.2.0","acorn":"8.0.1","jsdoc":"3.6.5","mocha":"7.2.0","zone.js":"0.10.3","standard":"14.3.4","copyfiles":"2.3.0","@babel/cli":"7.10.5","cls-hooked":"4.2.2","dirty-chai":"2.0.1","@babel/core":"7.11.1","npm-run-all":"4.1.5","@babel/types":"7.11.0","babel-eslint":"10.1.0","npm-cli-login":"0.1.1","@babel/register":"7.10.5","@babel/traverse":"7.11.0","lodash.template":"4.5.0","@babel/preset-env":"7.11.0","@babel/plugin-proposal-optional-chaining":"7.11.0"},"peerDependencies":{"zone.js":">=0.10.3","cls-hooked":">=4.2.2"},"_npmOperationalInternal":{"tmp":"tmp/continuation-local-storage_3.2.0_1597591162070_0.36067652212736867","host":"s3://npm-registry-packages"}},"3.2.1-rc.0":{"name":"@northscaler/continuation-local-storage","version":"3.2.1-rc.0","keywords":["continuation-local-storage","thread-local-storage","context"],"license":"MIT","_id":"@northscaler/continuation-local-storage@3.2.1-rc.0","maintainers":[{"name":"npm_scispike","email":"npm@scispike.com"},{"name":"npm_northscaler","email":"npm@northscaler.com"}],"homepage":"https://gitlab.com/northscaler-public/continuation-local-storage#readme","bugs":{"url":"https://gitlab.com/northscaler-public/continuation-local-storage/issues"},"dist":{"shasum":"33c15dbd7363f47cc207ceaecd03ea48665779f6","tarball":"https://registry.npmjs.org/@northscaler/continuation-local-storage/-/continuation-local-storage-3.2.1-rc.0.tgz","fileCount":59,"integrity":"sha512-87d29jmLdusvCg9J/71eT0YTBxoC5PFlcR783OtbmuPde4koL5zMCcflFYAlhQ0OdFonSjwIAQ64bLXYBy+DTg==","signatures":[{"sig":"MEYCIQDgYXdr1DOoCAzni7ioxuKtcOxkb6FICy4FindlGNKGzwIhANiKhdZz68s2W0SafnHKjovpzsQ8EkiLAeVBhVZJ8xz6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1137821,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfW65PCRA9TVsSAnZWagAAdzoP/R+6kooNvrw6j429sw8+\nz20A8dvMoaEqyqhZQD0Y0pNXZyV2DY4rFEloGBw7sv2nCY6/ZfkyO/5CT1uy\nw0HD3FPOuOTgvHdkE5skDZp+6/38I8T5WTYIS0P+5BveoFhmuuR6GcvTKWCc\nKY8aDqNNA8dvd1A/4jv2PHWqetePXfzYVh8Ivqnu2EO1uA3UCGEERc1k+7fq\ndgFhtJXSaxrhjqje4LRjIYTFE4j2pL8SuT6BiSiW2V/Et8osT8uG29+LC7Yk\nYWIGgQACk5xjM2BHQwEx59ek0Jj56Yo7OjpbWkEa4wS8mZUkIgrsNgq1FVaD\nBrRdO2vGq8cebyPCVvmeq3cBCTfbxxfXqQu9K0IoIWAkZxG87ntC8paON1eJ\nIF4PxskBfzaC4jMi1Kr1I6Isyqs7ZB5Hwa3w65YPnClVTRQiee2OnbStif6Q\nynHv1mji05ZPbDN9L0orFpka8OFUnMsptaZ9cl2gvcLE1xkKMKn35NxPkbmk\nUseRZoQqRURgg3bFqWevbDBl0Dd/UerS0E04r1qbO9mYwZ+0kL6oo/Aj2+NV\nPMVxjA4Ls5Wek8kTq49xszLo2YLKs0W2Tq1SH6nJ8JA3HcmMBnVYixy4tguk\nWJVft3zzpwPN0qvHakqYqIBLEcs8GqsGJCobRJtJx5VxA3hJXMS4NDIZbVwF\nuPdb\r\n=Xqzh\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"plugins":[["@babel/plugin-proposal-optional-chaining",{"loose":false}]],"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"inline"},"mocha":{"colors":true,"require":"@babel/register"},"readme":"# `continuation-local-storage`\n>NB: Git repo of truth is https://gitlab.com/northscaler-public/continuation-local-storage; all others are mirrors.\n\n## Overview\nThis module provides a means to store information along the entirety of a single Node.js asynchronous call chain, or \"continuation\".\nIt is equivalent to a Vert.x [Context](https://vertx.io/docs/apidocs/index.html?io/vertx/core/Context.html), and similar to `ThreadLocal` from [Java](https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/ThreadLocal.html), [.NET](https://docs.microsoft.com/en-us/dotnet/api/system.threading.threadlocal-1), and other, similar platforms.\n\nContexts allow you to place information in a continuation-local storage space so that it's available all the way up & down an asynchronous call stack so that you can set & get that information as necessary.\n\n## Use\nThere three flavors to choose from, based on either\n* [`cls-hooked`](https://www.npmjs.com/package/cls-hooked),\n* [`zone.js`](https://www.npmjs.com/package/zone.js), or\n* [`AsyncLocalStorage`](https://nodejs.org/docs/latest-v12.x/api/async_hooks.html#async_hooks_class_asynclocalstorage) (requires Node.js >= 12.17.0).\n\nUse whichever one you want to; the `Context` API is the same:\n* Run code in a context: `Context().run(() => { /* your code here */ }, { your: 'context', values: 'here' })`\n* Set a value in a context: `Context().set('name', 'value')`\n* Get a value from a context: `Context().get('name')`\n\nUsing more than one implementation should work, but is not officially supported.\nTry to stick with just one provider in your app.\n\n>IMPORTANT:\n> In order to minimize transitive dependencies in your application, this module does _not_ require `cls-hooked` or `zone.js` itself.\n> The consuming codebase must install the library (or libraries) that it needs.\n\n### zone.js\nIf you are using `ZoneJsContext`:\n * You must `npm install zone.js` yourself.\n * You must `require('zone.js/dist/zone-node')` at the right time for your application.\n\nSee `zone.js`'s documentation for more information.\n\n### cls-hooked\nIf you are using `ClsHookedContext`:\n* You must `npm install cls-hooked` yourself.\n\n### AsyncLocalStorage\nIf you are using `AsyncLocalStorage`:\n* Your Node.js version must be `>=12.17.0`.\n* If you're using `setTimeout`, `Promise.resolve` or `Promise.reject` within your `run` call, you must ensure that the `autodispose` option is set to `false` (the default) in order to make the values available in those places.\n\nSee this project's `package.json` `devDependencies` section for the versions of `cls-hooked` and `zone.js` was built against and try to install compatible ones.\n\n## API\nThe basic API of these `Context`s is straightforward.\nOnce you get the `Context` (via `require` or `import`), these are the methods you'll use:\n\n### Factory method\n`Context(key)`:\n\nRetrieves a context with the given key as a string (`Symbol`ic names are a [todo](https://gitlab.com/northscaler-public/continuation-local-storage/-/issues/3)).\n\n### Instance methods\n\n`run(fn, values, opts)`:\n\nRuns a given function within the `Context`, making any `values`, an `Object`, available.  `opts` currently includes only `autodispose` and is `true` by default.\n\n`set(key, value)`\n\nSets the given `value` at the given `key`.\n\n`get(key)`\n\nGets the `value` at the given `key`.\n\n`dispose()`\n\nIt's not a bad idea to dispose of the `Context` when you know you're done with it, but it's not strictly required.\nThe `run` method defaults to manual disposal, but if you observe memory leaks, this would be the first thing to check.\n\n## Example\n```javascript\nconst { ClsHookedContext: Context } = require('@northscaler/continuation-local-storage') // prerequisite:  npm install --save cls-hooked\n// or: const { ZoneJsContext: Context } = require('@northscaler/continuation-local-storage') // prerequisite:  npm install --save zone.js\n// or: const { AsyncLocalStorageContext: Context } = require('@northscaler/continuation-local-storage') // prerequisite:  Node.js >= 12.17.0\n\nContext().run(\n// this is the function that will be run in inside the Context\n() => { // uses the default context; pass a string name for a custom context\n  // Do whatever you want here.\n  // Context values are accessible anywhere in the sync or async call stack:\n  const foo = Context().get('foo') // returns 'bar'\n  \n  // You can set & get values with:\n  Context().set('baz', 'snafu')\n  const baz = Context().get('baz') // returns 'snafu'\n},\n// these are your contextual values available in the async call stack\n{\n  foo: 'bar' // puts the value 'bar' into the context at key 'foo'\n})\n```\n","engines":{"node":">=8.17.0"},"gitHead":"ab0936e4a79b9bf8b18062d663f9fd57c5ae4934","scripts":{"i":"mocha 'src/test/integration/**/*.spec.js'","u":"mocha 'src/test/unit/**/*.spec.js'","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"standard --verbose 'src/**/*.js'","nuke":"rimraf node_modules","test":"run-s transpile unit-integration lint","unit":"nyc -x 'dist/test' --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js'","build":"npm install && npm test","clean":"rimraf dist docs coverage .nyc_output","format":"standard --fix 'src/**/*.js'","report":"run-s report-cls-hooked report-zonejs report-als","cov-als":"open coverage/als/index.html","prenuke":"npm run clean","postunit":"run-s report","transpile":"run-s transpile-main transpile-test","cov-zonejs":"open coverage/zonejs/index.html","report-als":"nyc report --reporter=html --report-dir coverage/als -t .nyc_output/als","integration":"nyc -x 'dist/test' --exclude-after-remap false mocha 'dist/test/integration/**/*.spec.js'","report-zonejs":"nyc report --reporter=html --report-dir coverage/zonejs -t .nyc_output/zonejs","cov-cls-hooked":"open coverage/cls-hooked/index.html","transpile-main":"babel --delete-dir-on-start --verbose --out-dir dist/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir dist/test --copy-files src/test","postintegration":"run-s report","unit-integration":"run-s unit-integration-cls-hooked unit-integration-zonejs unit-integration-als","make-distribution":"run-s transpile doc lic","report-cls-hooked":"nyc report --reporter=html --report-dir coverage/cls-hooked -t .nyc_output/cls-hooked","postunit-integration":"run-s report","unit-integration-als":"nyc -x 'dist/test' -t .nyc_output/als --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js' 'dist/test/integration/context/als/**/*.spec.js'","unit-integration-zonejs":"nyc -x 'dist/test' -t .nyc_output/zonejs --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js' 'dist/test/integration/context/zonejs/**/*.spec.js'","unit-integration-cls-hooked":"nyc -x 'dist/test' -t .nyc_output/cls-hooked --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js' 'dist/test/integration/context/cls-hooked/**/*.spec.js'"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"standard":{"parser":"babel-eslint"},"repository":{"url":"git+https://gitlab.com/northscaler-public/continuation-local-storage.git","type":"git"},"_npmVersion":"6.14.4","description":"Local storage for asynchronous Node.js call stacks, similar to thread-local storage in multithreaded platforms","directories":{},"_nodeVersion":"14.1.0","dependencies":{"@babel/polyfill":"7.10.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","chai":"4.2.0","acorn":"8.0.1","jsdoc":"3.6.5","mocha":"7.2.0","zone.js":"0.10.3","standard":"14.3.4","copyfiles":"2.3.0","@babel/cli":"7.10.5","cls-hooked":"4.2.2","dirty-chai":"2.0.1","@babel/core":"7.11.1","npm-run-all":"4.1.5","@babel/types":"7.11.0","babel-eslint":"10.1.0","npm-cli-login":"0.1.1","@babel/register":"7.10.5","@babel/traverse":"7.11.0","lodash.template":"4.5.0","@babel/preset-env":"7.11.0","@babel/plugin-proposal-optional-chaining":"7.11.0"},"peerDependencies":{"zone.js":">=0.10.3","cls-hooked":">=4.2.2"},"_npmOperationalInternal":{"tmp":"tmp/continuation-local-storage_3.2.1-rc.0_1599843918843_0.9804950338922096","host":"s3://npm-registry-packages"}},"3.2.1":{"name":"@northscaler/continuation-local-storage","version":"3.2.1","keywords":["continuation-local-storage","thread-local-storage","context"],"license":"MIT","_id":"@northscaler/continuation-local-storage@3.2.1","maintainers":[{"name":"npm_scispike","email":"npm@scispike.com"},{"name":"npm_northscaler","email":"npm@northscaler.com"}],"homepage":"https://gitlab.com/northscaler-public/continuation-local-storage#readme","bugs":{"url":"https://gitlab.com/northscaler-public/continuation-local-storage/issues"},"dist":{"shasum":"999c6f92e46d0c9a44b683deb5358b2e917e6d30","tarball":"https://registry.npmjs.org/@northscaler/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz","fileCount":59,"integrity":"sha512-1dzTp5EMYhCTJOG9FTgYyh5VTOpXQQYwTOrPUOGF762UiV4j1SjeB1Jv6NJ0mayGj0tOmxr71sZOPdNHrunOeQ==","signatures":[{"sig":"MEUCIQCdyPheyhDGPaKsKXhuXr7jhx1FnzgIWJwvofgjMdHmwAIgRe66A4br9AM6ndV8kWHQNgpWfvgf9j3yg5gePXYJb2I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1137816,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfW68bCRA9TVsSAnZWagAAktkQAIoqHqENFZPaQCC0wsaU\noUKjyCZPh56nUHDmG6xP651VVjvgqGLjTJaQPBKb2fg2dcTjo1XV1oOefCBu\n8EtGYNdyLYAToqqGP0LaoowZFmuqGl4OSa5dMkDVWuZESfMsR8L/7SZ8ZXrF\nNfFeMDDQERWEYXAfMoX1YRMYyknBLAvzhQ/u02hO59STXdNOtJadro5aFOJc\n8fTN87dCpuNMvsbdypuIz3yX5Tansu2+nniEFDaW4B0mUOcA/thZIbe53J29\n1j2VgerA+rpeI0HC+24eTBqFuMocrJNLp6S67NFtJxBl3c+g2oTUcfHwgMNF\nfo8bz5zzNYTU9CDgFF/ftiF16sSnObwuK71pKLFeZLyMpjuZZpPk9th0AYPR\np1knyUayTpaViFUOr/fb62fqbibYDlrNRo8auWcrgec4YCyWgs5a++4Rd5ew\nqkx09EoBLYtDe+OBO//mIsO+BMDmv/a75XLJmgzOHQgTyNpl6oNoD5Vbudbu\nrIlEQJCjiEbVWpS0YJuh3i+fIIhvjtsaSL9qWF2g4iYcAM+BW3RKtBP56Ynh\nzLPqsFx0IOxIgmhnJNQg74ypWJQgf2e33x+lWlJ6BNFJGuLJPzcVz8dgS18Z\nxYmeWi5ylE8PFNdjQuIrfgSc0Wt70boi/vi0t5+ZrXEveazvgZSCNUcaU4h/\nLH+7\r\n=8oGv\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"plugins":[["@babel/plugin-proposal-optional-chaining",{"loose":false}]],"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"inline"},"mocha":{"colors":true,"require":"@babel/register"},"engines":{"node":">=8.17.0"},"gitHead":"6d10272f50cf9a41ead9ac9db4ec3e6fdb779137","scripts":{"i":"mocha 'src/test/integration/**/*.spec.js'","u":"mocha 'src/test/unit/**/*.spec.js'","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"standard --verbose 'src/**/*.js'","nuke":"rimraf node_modules","test":"run-s transpile unit-integration lint","unit":"nyc -x 'dist/test' --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js'","build":"npm install && npm test","clean":"rimraf dist docs coverage .nyc_output","format":"standard --fix 'src/**/*.js'","report":"run-s report-cls-hooked report-zonejs report-als","cov-als":"open coverage/als/index.html","prenuke":"npm run clean","postunit":"run-s report","transpile":"run-s transpile-main transpile-test","cov-zonejs":"open coverage/zonejs/index.html","report-als":"nyc report --reporter=html --report-dir coverage/als -t .nyc_output/als","integration":"nyc -x 'dist/test' --exclude-after-remap false mocha 'dist/test/integration/**/*.spec.js'","report-zonejs":"nyc report --reporter=html --report-dir coverage/zonejs -t .nyc_output/zonejs","cov-cls-hooked":"open coverage/cls-hooked/index.html","transpile-main":"babel --delete-dir-on-start --verbose --out-dir dist/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir dist/test --copy-files src/test","postintegration":"run-s report","unit-integration":"run-s unit-integration-cls-hooked unit-integration-zonejs unit-integration-als","make-distribution":"run-s transpile doc lic","report-cls-hooked":"nyc report --reporter=html --report-dir coverage/cls-hooked -t .nyc_output/cls-hooked","postunit-integration":"run-s report","unit-integration-als":"nyc -x 'dist/test' -t .nyc_output/als --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js' 'dist/test/integration/context/als/**/*.spec.js'","unit-integration-zonejs":"nyc -x 'dist/test' -t .nyc_output/zonejs --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js' 'dist/test/integration/context/zonejs/**/*.spec.js'","unit-integration-cls-hooked":"nyc -x 'dist/test' -t .nyc_output/cls-hooked --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js' 'dist/test/integration/context/cls-hooked/**/*.spec.js'"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"standard":{"parser":"babel-eslint"},"repository":{"url":"git+https://gitlab.com/northscaler-public/continuation-local-storage.git","type":"git"},"_npmVersion":"6.14.4","description":"Local storage for asynchronous Node.js call stacks, similar to thread-local storage in multithreaded platforms","directories":{},"_nodeVersion":"14.1.0","dependencies":{"@babel/polyfill":"7.10.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","chai":"4.2.0","acorn":"8.0.1","jsdoc":"3.6.5","mocha":"7.2.0","zone.js":"0.10.3","standard":"14.3.4","copyfiles":"2.3.0","@babel/cli":"7.10.5","cls-hooked":"4.2.2","dirty-chai":"2.0.1","@babel/core":"7.11.1","npm-run-all":"4.1.5","@babel/types":"7.11.0","babel-eslint":"10.1.0","npm-cli-login":"0.1.1","@babel/register":"7.10.5","@babel/traverse":"7.11.0","lodash.template":"4.5.0","@babel/preset-env":"7.11.0","@babel/plugin-proposal-optional-chaining":"7.11.0"},"peerDependencies":{"zone.js":">=0.10.3","cls-hooked":">=4.2.2"},"_npmOperationalInternal":{"tmp":"tmp/continuation-local-storage_3.2.1_1599844122760_0.6260839177074164","host":"s3://npm-registry-packages"}},"3.2.2":{"name":"@northscaler/continuation-local-storage","version":"3.2.2","keywords":["continuation-local-storage","thread-local-storage","context"],"license":"MIT","_id":"@northscaler/continuation-local-storage@3.2.2","maintainers":[{"name":"npm_scispike","email":"npm@scispike.com"},{"name":"npm_northscaler","email":"npm@northscaler.com"}],"homepage":"https://gitlab.com/northscaler-public/continuation-local-storage#readme","bugs":{"url":"https://gitlab.com/northscaler-public/continuation-local-storage/issues"},"dist":{"shasum":"1b78ee96b6271e973df561891c3801c3a5d127dd","tarball":"https://registry.npmjs.org/@northscaler/continuation-local-storage/-/continuation-local-storage-3.2.2.tgz","fileCount":59,"integrity":"sha512-qbFCv/0VYC7OHmgl+d11X64GQzADwPV/c0Wi9Y0rF7y9OtLuGIlp1k9iGaNnuEvt8kJUHCvHOjEPYkEfW623dg==","signatures":[{"sig":"MEUCIFV26bHDh6IL895xL2UNLCdE8FogxSFntvB5lT7IBmD6AiEA7AhtjWdYyMxSirnwx7BXV4c2Zt04OxtB3sna6fXCh5Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1138548,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfX+PLCRA9TVsSAnZWagAAiGMQAJ17UMHRf7IoGIaR22Gk\nQO6t5eBCbDeTbRKmCY0ilfUF7jLaXj/CCEHlyvFWUs7/iUDY5fbLIr79FPk8\nMtaoiba1jN8MM9n+qoiQsayU6dliHHnRnZ/7xblozq6/EBzRnz1SMevq7y+x\nDK/vUahtQWDSsWp6e/uF2j6FC7DX3iMbKBkVf6KQCHzxjeWwC3MnH5M26k31\nNjqe+N0532RfY4UgDEuHiO5enTL3PSbjN6rOPwCzSq/s5BNtsKmeYM1Bihvu\nf+vcpH/4yJuQNIzXW+OSSxD17YBqlulFtGUoOx+/8NHE166vzOIPFKS3DvuS\nVnN+tCrVkYwcgbWxxdAYJqnF7acw22UwMuWQxaukcvdrZKaCP3iCQyiVjS5s\n21kNkCsHY6A1GTxA9wNbAeVcua7YFZiYZz+h2lVOv5+MLcXpIORowKU32xOO\n8gAt5ZcpK2WfZiX5ksN2i8eP3mt8tsY94azb6lVoXcJYahEr/vhQYtGcGck8\nG3hPOoCU8Gu3+ynKjCtDpCu9jr/DkFl1I4NnshITVPZBaGRtNntlD6Z9lTuj\nrPjEobsiaFNUbTXBO0Ul+LWMIdfe0uNtBm5sY0ih2eSUxI/hguFWXWPEAHEJ\nDyUwgFAK0jYt14/LflZr09DAXpjoNancqgIbTKaiE8qGPOYVRE4bULvKjS3L\n6xMK\r\n=ISFy\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"plugins":[["@babel/plugin-proposal-optional-chaining",{"loose":false}]],"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"inline"},"mocha":{"colors":true,"require":"@babel/register"},"engines":{"node":">=8.17.0"},"gitHead":"fc161aad6578d17e7fb58d6998182b26d8eba618","scripts":{"i":"mocha 'src/test/integration/**/*.spec.js'","u":"mocha 'src/test/unit/**/*.spec.js'","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"standard --verbose 'src/**/*.js'","nuke":"rimraf node_modules","test":"run-s transpile unit-integration lint","unit":"nyc -x 'dist/test' --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js'","build":"npm install && npm test","clean":"rimraf dist docs coverage .nyc_output","format":"standard --fix 'src/**/*.js'","report":"run-s report-cls-hooked report-zonejs report-als","cov-als":"open coverage/als/index.html","prenuke":"npm run clean","postunit":"run-s report","transpile":"run-s transpile-main transpile-test","cov-zonejs":"open coverage/zonejs/index.html","report-als":"nyc report --reporter=html --report-dir coverage/als -t .nyc_output/als","integration":"nyc -x 'dist/test' --exclude-after-remap false mocha 'dist/test/integration/**/*.spec.js'","report-zonejs":"nyc report --reporter=html --report-dir coverage/zonejs -t .nyc_output/zonejs","cov-cls-hooked":"open coverage/cls-hooked/index.html","transpile-main":"babel --delete-dir-on-start --verbose --out-dir dist/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir dist/test --copy-files src/test","postintegration":"run-s report","unit-integration":"run-s unit-integration-cls-hooked unit-integration-zonejs unit-integration-als","make-distribution":"run-s transpile doc lic","report-cls-hooked":"nyc report --reporter=html --report-dir coverage/cls-hooked -t .nyc_output/cls-hooked","postunit-integration":"run-s report","unit-integration-als":"nyc -x 'dist/test' -t .nyc_output/als --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js' 'dist/test/integration/context/als/**/*.spec.js'","unit-integration-zonejs":"nyc -x 'dist/test' -t .nyc_output/zonejs --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js' 'dist/test/integration/context/zonejs/**/*.spec.js'","unit-integration-cls-hooked":"nyc -x 'dist/test' -t .nyc_output/cls-hooked --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js' 'dist/test/integration/context/cls-hooked/**/*.spec.js'"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"standard":{"parser":"babel-eslint"},"repository":{"url":"git+https://gitlab.com/northscaler-public/continuation-local-storage.git","type":"git"},"_npmVersion":"6.14.4","description":"Local storage for asynchronous Node.js call stacks, similar to thread-local storage in multithreaded platforms","directories":{},"_nodeVersion":"14.1.0","dependencies":{"@babel/polyfill":"7.10.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"15.1.0","chai":"4.2.0","acorn":"8.0.1","jsdoc":"3.6.5","mocha":"7.2.0","zone.js":"0.10.3","standard":"14.3.4","copyfiles":"2.3.0","@babel/cli":"7.10.5","cls-hooked":"4.2.2","dirty-chai":"2.0.1","@babel/core":"7.11.1","npm-run-all":"4.1.5","@babel/types":"7.11.0","babel-eslint":"10.1.0","npm-cli-login":"0.1.1","@babel/register":"7.10.5","@babel/traverse":"7.11.0","lodash.template":"4.5.0","@babel/preset-env":"7.11.0","@babel/plugin-proposal-optional-chaining":"7.11.0"},"peerDependencies":{"zone.js":">=0.10.3","cls-hooked":">=4.2.2"},"_npmOperationalInternal":{"tmp":"tmp/continuation-local-storage_3.2.2_1600119754403_0.8227901168428144","host":"s3://npm-registry-packages"}},"3.2.4":{"name":"@northscaler/continuation-local-storage","version":"3.2.4","keywords":["continuation-local-storage","thread-local-storage","context"],"license":"MIT","_id":"@northscaler/continuation-local-storage@3.2.4","maintainers":[{"name":"matthewadams","email":"matthew@matthewadams.me"},{"name":"victorynap","email":"djannotta@gmail.com"},{"name":"npm_scispike","email":"npm@scispike.com"},{"name":"npm_northscaler","email":"npm@northscaler.com"}],"homepage":"https://gitlab.com/northscaler-public/continuation-local-storage#readme","bugs":{"url":"https://gitlab.com/northscaler-public/continuation-local-storage/issues"},"dist":{"shasum":"839ddeab61e9f79b9e63f01ccf1c3c3d23533da8","tarball":"https://registry.npmjs.org/@northscaler/continuation-local-storage/-/continuation-local-storage-3.2.4.tgz","fileCount":59,"integrity":"sha512-VGxk9pwLc+qI9eeR/+UkefY6ALy/Uzrp17EEhBB+27GUCVwQ0zdAl7GyCryjPs+S3i0t2QhKOlqlAVpTalo+Ug==","signatures":[{"sig":"MEUCIFg9qffxXjwJiHfjq8iy1Y25IpC0U27s+6dBulnpDOfVAiEArTwQ2OFB/FLlAl8jcxJj7itmhIMSfhLg9b7CqZjdjh8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1138916,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfrYxbCRA9TVsSAnZWagAAZGMP/jCHMAUIUDWoFp4umR5z\n1Fa2x76MZVf37Xuh/QKG7/de+m8wUlAuw0m1icHHe8kvG5fpykexl7etdXM3\nIYmjYeYGC/VkKG2SH7w8diRrampHLRuhbz43wJZfpDysjadhThEAMuVVpqwW\nLLp3aMRD2ft83lpL08Zp5BDLrlrey95Hx1vb1+NfZbh4IKBwpRBnr0haABRk\ntSwy1uVSC3GtyEwp6zJIhHLWtZq1x4gmO7IoWFvUAV1YEFjxksjibUXYJSKq\nvUuLZAE3xK/6g5emb39ocidEQ4wwsMXPdcl1vBZuO4VPHR4Drgi5WUa3oIh1\ndQlVPFvXaOvs9s8FFmcrUfNWKW71K+wVkitpoH5+FkV1OcvKVHU4K3aNiJpl\nSbZHoP1sNPJJvjwaF6q8KFx9aTHw9rX5JeC1jH8dwvbCjHeWgqv/0vumsEwK\nTC0QlC1ptDdCYC7p/gsk0g4SC/m88mBh4T/KCssyQgmm520KCcG31bRWqGKr\nrkmsWPDrK+tEtZtzx/23FpcSHAsm+AqeAUYvHnZrMkRcX6hey9rQ+ZXyeT1q\nFAOOIKq+9U0rdiYGGLY+6zPot634nDLc+owt8UrP7HYd/EhV7eCuSYvpEBYn\n+FrOfzIC0/WBZgAPhuW2FvMfCxS3J7mX2d0N7+A2+Zhoaq5tkIMyzZ6v0k4j\nee01\r\n=aXl6\r\n-----END PGP SIGNATURE-----\r\n"},"babel":{"plugins":[["@babel/plugin-proposal-optional-chaining",{"loose":false}]],"presets":[["@babel/preset-env",{"targets":{"node":true}}]],"sourceMaps":"both"},"mocha":{"colors":true,"require":"@babel/register"},"readme":"# `continuation-local-storage`\n>NB: Git repo of truth is https://gitlab.com/northscaler-public/continuation-local-storage; all others are mirrors.\n\n## Overview\nThis module provides a means to store information along the entirety of a single Node.js asynchronous call chain, or \"continuation\".\nIt is equivalent to a Vert.x [Context](https://vertx.io/docs/apidocs/index.html?io/vertx/core/Context.html), and similar to `ThreadLocal` from [Java](https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/ThreadLocal.html), [.NET](https://docs.microsoft.com/en-us/dotnet/api/system.threading.threadlocal-1), and other, similar platforms.\n\nContexts allow you to place information in a continuation-local storage space so that it's available all the way up & down an asynchronous call stack so that you can set & get that information as necessary.\n\n## Use\nThere three flavors to choose from, based on either\n* [`cls-hooked`](https://www.npmjs.com/package/cls-hooked),\n* [`zone.js`](https://www.npmjs.com/package/zone.js), or\n* [`AsyncLocalStorage`](https://nodejs.org/docs/latest-v12.x/api/async_hooks.html#async_hooks_class_asynclocalstorage) (requires Node.js >= 12.17.0).\n\nUse whichever one you want to; the `Context` API is the same:\n* Run code in a context: `Context().run(() => { /* your code here */ }, { your: 'context', values: 'here' })`\n* Set a value in a context: `Context().set('name', 'value')`\n* Get a value from a context: `Context().get('name')`\n\nUsing more than one implementation should work, but is not officially supported.\nTry to stick with just one provider in your app.\n\n>IMPORTANT:\n> In order to minimize transitive dependencies in your application, this module does _not_ require `cls-hooked` or `zone.js` itself.\n> The consuming codebase must install the library (or libraries) that it needs.\n\n### zone.js\nIf you are using `ZoneJsContext`:\n * You must `npm install zone.js` yourself.\n * You must `require('zone.js/dist/zone-node')` at the right time for your application.\n\nSee `zone.js`'s documentation for more information.\n\n### cls-hooked\nIf you are using `ClsHookedContext`:\n* You must `npm install cls-hooked` yourself.\n\n### AsyncLocalStorage\nIf you are using `AsyncLocalStorage`:\n* Your Node.js version must be `>=12.17.0`.\n* If you're using `setTimeout`, `Promise.resolve` or `Promise.reject` within your `run` call, you must ensure that the `autodispose` option is set to `false` (the default) in order to make the values available in those places.\n\nSee this project's `package.json` `devDependencies` section for the versions of `cls-hooked` and `zone.js` was built against and try to install compatible ones.\n\n## API\nThe basic API of these `Context`s is straightforward.\nOnce you get the `Context` (via `require` or `import`), these are the methods you'll use:\n\n### Factory method\n`Context(key)`:\n\nRetrieves a context with the given key as a string (`Symbol`ic names are a [todo](https://gitlab.com/northscaler-public/continuation-local-storage/-/issues/3)).\n\n### Instance methods\n\n`run(fn, values, opts)`:\n\nRuns a given function within the `Context`, making any `values`, an `Object`, available.  `opts` currently includes only `autodispose` and is `true` by default.\n\n`set(key, value)`\n\nSets the given `value` at the given `key`.\n\n`get(key)`\n\nGets the `value` at the given `key`.\n\n`dispose()`\n\nIt's not a bad idea to dispose of the `Context` when you know you're done with it, but it's not strictly required.\nThe `run` method defaults to manual disposal, but if you observe memory leaks, this would be the first thing to check.\n\n## Example\n```javascript\nconst { ClsHookedContext: Context } = require('@northscaler/continuation-local-storage') // prerequisite:  npm install --save cls-hooked\n// or: const { ZoneJsContext: Context } = require('@northscaler/continuation-local-storage') // prerequisite:  npm install --save zone.js\n// or: const { AsyncLocalStorageContext: Context } = require('@northscaler/continuation-local-storage') // prerequisite:  Node.js >= 12.17.0\n\nContext().run(\n// this is the function that will be run in inside the Context\n() => { // uses the default context; pass a string name for a custom context\n  // Do whatever you want here.\n  // Context values are accessible anywhere in the sync or async call stack:\n  const foo = Context().get('foo') // returns 'bar'\n  \n  // You can set & get values with:\n  Context().set('baz', 'snafu')\n  const baz = Context().get('baz') // returns 'snafu'\n},\n// these are your contextual values available in the async call stack\n{\n  foo: 'bar' // puts the value 'bar' into the context at key 'foo'\n})\n```\n","engines":{"node":">=8.17.0"},"gitHead":"0e8ce850890059fe58423b603ed86928daa84790","scripts":{"i":"mocha 'src/test/integration/**/*.spec.js'","u":"mocha 'src/test/unit/**/*.spec.js'","doc":"jsdoc --verbose -d docs -r -c jsdoc.json -R README.md src/main","lic":"node lic.js > LICENSE","lint":"standard --verbose 'src/**/*.js'","nuke":"rimraf node_modules","test":"run-s transpile unit-integration lint","unit":"nyc -x 'dist/test' --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js'","build":"npm install && npm test","clean":"rimraf dist docs coverage .nyc_output","format":"standard --fix 'src/**/*.js'","report":"run-s report-cls-hooked report-zonejs report-als","cov-als":"open coverage/als/index.html","prenuke":"npm run clean","postunit":"run-s report","transpile":"run-s transpile-main transpile-test","cov-zonejs":"open coverage/zonejs/index.html","report-als":"nyc report --reporter=html --report-dir coverage/als -t .nyc_output/als","integration":"nyc -x 'dist/test' --exclude-after-remap false mocha 'dist/test/integration/**/*.spec.js'","report-zonejs":"nyc report --reporter=html --report-dir coverage/zonejs -t .nyc_output/zonejs","cov-cls-hooked":"open coverage/cls-hooked/index.html","transpile-main":"babel --delete-dir-on-start --verbose --out-dir dist/main --copy-files src/main","transpile-test":"babel --delete-dir-on-start --verbose --out-dir dist/test --copy-files src/test","postintegration":"run-s report","unit-integration":"run-s unit-integration-cls-hooked unit-integration-zonejs unit-integration-als","make-distribution":"run-s transpile doc lic","report-cls-hooked":"nyc report --reporter=html --report-dir coverage/cls-hooked -t .nyc_output/cls-hooked","postunit-integration":"run-s report","unit-integration-als":"nyc -x 'dist/test' -t .nyc_output/als --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js' 'dist/test/integration/context/als/**/*.spec.js'","unit-integration-zonejs":"nyc -x 'dist/test' -t .nyc_output/zonejs --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js' 'dist/test/integration/context/zonejs/**/*.spec.js'","unit-integration-cls-hooked":"nyc -x 'dist/test' -t .nyc_output/cls-hooked --exclude-after-remap false mocha 'dist/test/unit/**/*.spec.js' 'dist/test/integration/context/cls-hooked/**/*.spec.js'"},"_npmUser":{"name":"npm_northscaler","email":"npm@northscaler.com"},"standard":{"parser":"babel-eslint"},"repository":{"url":"git+https://gitlab.com/northscaler-public/continuation-local-storage.git","type":"git"},"_npmVersion":"6.14.4","description":"Local storage for asynchronous Node.js call stacks, similar to thread-local storage in multithreaded platforms","directories":{},"_nodeVersion":"14.1.0","dependencies":{"@babel/polyfill":"7.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"15.1.0","chai":"4.2.0","acorn":"8.0.4","jsdoc":"3.6.6","mocha":"8.2.1","zone.js":"0.11.3","standard":"16.0.2","copyfiles":"2.4.0","@babel/cli":"7.12.1","cls-hooked":"4.2.2","dirty-chai":"2.0.1","@babel/core":"7.12.3","npm-run-all":"4.1.5","@babel/types":"7.12.6","babel-eslint":"10.1.0","npm-cli-login":"0.1.1","@babel/register":"7.12.1","@babel/traverse":"7.12.5","lodash.template":"4.5.0","@babel/preset-env":"7.12.1","@babel/plugin-proposal-optional-chaining":"7.12.1"},"peerDependencies":{"zone.js":">=0.10.3","cls-hooked":">=4.2.2"},"_npmOperationalInternal":{"tmp":"tmp/continuation-local-storage_3.2.4_1605209178562_0.05038191918038115","host":"s3://npm-registry-packages"}}},"time":{"created":"2019-11-25T20:32:32.260Z","modified":"2024-05-29T18:07:38.565Z","3.0.0-pre.10":"2019-11-25T20:32:32.606Z","3.0.0-pre.13":"2019-11-25T20:50:51.454Z","3.0.0-pre.14":"2019-11-25T20:56:19.599Z","3.0.0-rc.0":"2019-11-25T21:03:04.682Z","3.0.0":"2019-11-25T21:07:08.001Z","3.0.1":"2019-11-25T22:38:25.425Z","3.0.2":"2020-02-17T21:38:18.894Z","3.1.0-rc.0":"2020-05-11T13:42:51.637Z","3.1.0-rc.1":"2020-05-11T14:57:52.539Z","3.1.0":"2020-05-11T14:59:41.358Z","3.1.1":"2020-08-14T23:50:10.734Z","3.2.0-rc.0":"2020-08-16T15:15:38.581Z","3.2.0":"2020-08-16T15:19:22.186Z","3.2.1-rc.0":"2020-09-11T17:05:19.109Z","3.2.1":"2020-09-11T17:08:42.961Z","3.2.2":"2020-09-14T21:42:34.557Z","3.2.4":"2020-11-12T19:26:18.755Z"},"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/continuation-local-storage.git","type":"git"},"keywords":["continuation-local-storage","thread-local-storage","context"],"license":"MIT","homepage":"https://gitlab.com/northscaler-public/continuation-local-storage#readme","bugs":{"url":"https://gitlab.com/northscaler-public/continuation-local-storage/issues"},"readme":"# `continuation-local-storage`\n>NB: Git repo of truth is https://gitlab.com/northscaler-public/continuation-local-storage; all others are mirrors.\n\n## Overview\nThis module provides a means to store information along the entirety of a single Node.js asynchronous call chain, or \"continuation\".\nIt is equivalent to a Vert.x [Context](https://vertx.io/docs/apidocs/index.html?io/vertx/core/Context.html), and similar to `ThreadLocal` from [Java](https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/ThreadLocal.html), [.NET](https://docs.microsoft.com/en-us/dotnet/api/system.threading.threadlocal-1), and other, similar platforms.\n\nContexts allow you to place information in a continuation-local storage space so that it's available all the way up & down an asynchronous call stack so that you can set & get that information as necessary.\n\n## Use\nThere three flavors to choose from, based on either\n* [`cls-hooked`](https://www.npmjs.com/package/cls-hooked),\n* [`zone.js`](https://www.npmjs.com/package/zone.js), or\n* [`AsyncLocalStorage`](https://nodejs.org/docs/latest-v12.x/api/async_hooks.html#async_hooks_class_asynclocalstorage) (requires Node.js >= 12.17.0).\n\nUse whichever one you want to; the `Context` API is the same:\n* Run code in a context: `Context().run(() => { /* your code here */ }, { your: 'context', values: 'here' })`\n* Set a value in a context: `Context().set('name', 'value')`\n* Get a value from a context: `Context().get('name')`\n\nUsing more than one implementation should work, but is not officially supported.\nTry to stick with just one provider in your app.\n\n>IMPORTANT:\n> In order to minimize transitive dependencies in your application, this module does _not_ require `cls-hooked` or `zone.js` itself.\n> The consuming codebase must install the library (or libraries) that it needs.\n\n### zone.js\nIf you are using `ZoneJsContext`:\n * You must `npm install zone.js` yourself.\n * You must `require('zone.js/dist/zone-node')` at the right time for your application.\n\nSee `zone.js`'s documentation for more information.\n\n### cls-hooked\nIf you are using `ClsHookedContext`:\n* You must `npm install cls-hooked` yourself.\n\n### AsyncLocalStorage\nIf you are using `AsyncLocalStorage`:\n* Your Node.js version must be `>=12.17.0`.\n* If you're using `setTimeout`, `Promise.resolve` or `Promise.reject` within your `run` call, you must ensure that the `autodispose` option is set to `false` (the default) in order to make the values available in those places.\n\nSee this project's `package.json` `devDependencies` section for the versions of `cls-hooked` and `zone.js` was built against and try to install compatible ones.\n\n## API\nThe basic API of these `Context`s is straightforward.\nOnce you get the `Context` (via `require` or `import`), these are the methods you'll use:\n\n### Factory method\n`Context(key)`:\n\nRetrieves a context with the given key as a string (`Symbol`ic names are a [todo](https://gitlab.com/northscaler-public/continuation-local-storage/-/issues/3)).\n\n### Instance methods\n\n`run(fn, values, opts)`:\n\nRuns a given function within the `Context`, making any `values`, an `Object`, available.  `opts` currently includes only `autodispose` and is `true` by default.\n\n`set(key, value)`\n\nSets the given `value` at the given `key`.\n\n`get(key)`\n\nGets the `value` at the given `key`.\n\n`dispose()`\n\nIt's not a bad idea to dispose of the `Context` when you know you're done with it, but it's not strictly required.\nThe `run` method defaults to manual disposal, but if you observe memory leaks, this would be the first thing to check.\n\n## Example\n```javascript\nconst { ClsHookedContext: Context } = require('@northscaler/continuation-local-storage') // prerequisite:  npm install --save cls-hooked\n// or: const { ZoneJsContext: Context } = require('@northscaler/continuation-local-storage') // prerequisite:  npm install --save zone.js\n// or: const { AsyncLocalStorageContext: Context } = require('@northscaler/continuation-local-storage') // prerequisite:  Node.js >= 12.17.0\n\nContext().run(\n// this is the function that will be run in inside the Context\n() => { // uses the default context; pass a string name for a custom context\n  // Do whatever you want here.\n  // Context values are accessible anywhere in the sync or async call stack:\n  const foo = Context().get('foo') // returns 'bar'\n  \n  // You can set & get values with:\n  Context().set('baz', 'snafu')\n  const baz = Context().get('baz') // returns 'snafu'\n},\n// these are your contextual values available in the async call stack\n{\n  foo: 'bar' // puts the value 'bar' into the context at key 'foo'\n})\n```\n","readmeFilename":"README.md"}