{"_id":"@aicore/metrics","_rev":"15-85d36f326a38b2de50f65f4dbcafeca9","name":"@aicore/metrics","dist-tags":{"latest":"1.2.9"},"versions":{"1.0.0":{"name":"@aicore/metrics","version":"1.0.0","keywords":["metrics","dashboard","monitoring"],"author":{"name":"Arun, core.ai"},"license":"Proprietary","_id":"@aicore/metrics@1.0.0","maintainers":[{"name":"core.ai","email":"admin@core.ai"},{"name":"ushmajit","email":"ushmajit@core.ai"},{"name":"arunbose","email":"arun@core.ai"}],"homepage":"https://github.com/aicore/metrics#readme","bugs":{"url":"https://github.com/aicore/metrics/issues"},"dist":{"shasum":"eb175d00b510709936420b2f9482822894622863","tarball":"https://registry.npmjs.org/@aicore/metrics/-/metrics-1.0.0.tgz","fileCount":4,"integrity":"sha512-u4781B/oLo82q2ZJXu0gCYvYOv1EwuxVcJvkmMSza0tCusXOdGbHqXDlkaqxTngXV2Hwazms2NRVogqYl8XzWw==","signatures":[{"sig":"MEYCIQCr833cHkTa40UNeULPxnp72bUcyjzIP5Mw0Sz2PMi58wIhAOdxsxvi6PgcMTwH/oKVl3ivS4TO/g7EjnC1fUzKUI1B","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27594},"main":"src/index.js","type":"module","gitHead":"8a194c56923032d633528945c14ba7fb902b4059","scripts":{"lint":"eslint --quiet src test","test":"npm run test:unit && npm run test:integ","build":"npm run cover && npm run createJSDocs && npm run vulnerabilityCheck","cover":"npm run cover:unit","eslint":"npm run lint","prepare":"test -d node_modules/husky && husky install || echo \"husky is not installed\"","release":"npm run bumpPatchVersionWithGitTag","lint:fix":"eslint --quiet --fix src test","test:unit":"mocha test/unit/*.spec.js test/unit/**/*.spec.js --timeout=3000","cover:unit":"c8 -c .nycrc.unit.json npm run test:unit && npm run --silent printReportsLink","eslint:fix":"npm run lint:fix","test:integ":"mocha test/integration/*.spec.js test/integration/**/*.spec.js --timeout=3000","createJSDocs":"node build/jsDocGenerate.js src docs/generatedApiDocs && git add docs","bumpPatchVersion":"npm --no-git-tag-version version patch","printReportsLink":"echo Detailed unit test coverage report: file:///$(pwd)/coverage-unit/index.html && echo Detailed integration test coverage report: file:///$(pwd)/coverage-integration/index.html","vulnerabilityCheck":"echo Scanning for npm vulnarabilities && npm audit --prod","bumpPatchVersionWithGitTag":"npm version patch"},"_npmUser":{"name":"core.ai","email":"admin@core.ai"},"repository":{"url":"git+https://github.com/aicore/metrics.git","type":"git"},"_npmVersion":"10.8.2","description":"Metrics library for all core.ai services","directories":{},"_nodeVersion":"20.19.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"c8":"10.1.2","chai":"5.1.1","glob":"^11.0.0","husky":"9.1.6","mocha":"11.1.0","sinon":"^17.0.1","eslint":"8.57.1","cli-color":"2.0.4","documentation":"14.0.3","@commitlint/cli":"19.5.0","@commitlint/config-conventional":"19.5.0"},"_npmOperationalInternal":{"tmp":"tmp/metrics_1.0.0_1743254922557_0.08171971529989364","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@aicore/metrics","version":"1.1.0","keywords":["metrics","dashboard","monitoring"],"author":{"name":"Arun, core.ai"},"license":"Proprietary","_id":"@aicore/metrics@1.1.0","maintainers":[{"name":"core.ai","email":"admin@core.ai"},{"name":"ushmajit","email":"ushmajit@core.ai"},{"name":"arunbose","email":"arun@core.ai"}],"homepage":"https://github.com/aicore/metrics#readme","bugs":{"url":"https://github.com/aicore/metrics/issues"},"dist":{"shasum":"569745158714022cc696f20458393c6bef968974","tarball":"https://registry.npmjs.org/@aicore/metrics/-/metrics-1.1.0.tgz","fileCount":4,"integrity":"sha512-RhzlT1ecVUCQ60OaZLzIlYa9W2qWmWc9ItBMVOlNsEDOMoScSaq7G9qAb8znDJK/1w1xVZKqpQcsjpTsRCWV1A==","signatures":[{"sig":"MEYCIQCh/eHf72Nf0trLNc2X06MN/43Vuylx6gQB1rzLyNYgbgIhAKWCaPS7c/9JOHHepa4ByU7lzDVt3Ri3a7tp7zClsjiX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28448},"main":"src/index.js","type":"module","gitHead":"0e4ca948fed9b851384b9b41a4629a7e59f230b6","scripts":{"lint":"eslint --quiet src test","test":"npm run test:unit && npm run test:integ","build":"npm run cover && npm run createJSDocs && npm run vulnerabilityCheck","cover":"npm run cover:unit","eslint":"npm run lint","prepare":"test -d node_modules/husky && husky install || echo \"husky is not installed\"","release":"npm run bumpPatchVersionWithGitTag","lint:fix":"eslint --quiet --fix src test","test:unit":"mocha test/unit/*.spec.js test/unit/**/*.spec.js --timeout=3000","cover:unit":"c8 -c .nycrc.unit.json npm run test:unit && npm run --silent printReportsLink","eslint:fix":"npm run lint:fix","test:integ":"mocha test/integration/*.spec.js test/integration/**/*.spec.js --timeout=3000","createJSDocs":"node build/jsDocGenerate.js src docs/generatedApiDocs && git add docs","bumpPatchVersion":"npm --no-git-tag-version version patch","printReportsLink":"echo Detailed unit test coverage report: file:///$(pwd)/coverage-unit/index.html && echo Detailed integration test coverage report: file:///$(pwd)/coverage-integration/index.html","vulnerabilityCheck":"echo Scanning for npm vulnarabilities && npm audit --prod","bumpPatchVersionWithGitTag":"npm version patch"},"_npmUser":{"name":"core.ai","email":"admin@core.ai"},"repository":{"url":"git+https://github.com/aicore/metrics.git","type":"git"},"_npmVersion":"10.8.2","description":"Metrics library for all core.ai services","directories":{},"_nodeVersion":"20.19.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"c8":"10.1.2","chai":"5.1.1","glob":"^11.0.0","husky":"9.1.6","mocha":"11.1.0","sinon":"^17.0.1","eslint":"8.57.1","cli-color":"2.0.4","documentation":"14.0.3","@commitlint/cli":"19.5.0","@commitlint/config-conventional":"19.5.0"},"_npmOperationalInternal":{"tmp":"tmp/metrics_1.1.0_1743308753519_0.24663271200052095","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@aicore/metrics","version":"1.1.1","keywords":["metrics","dashboard","monitoring"],"author":{"name":"Arun, core.ai"},"license":"Proprietary","_id":"@aicore/metrics@1.1.1","maintainers":[{"name":"core.ai","email":"admin@core.ai"},{"name":"ushmajit","email":"ushmajit@core.ai"},{"name":"arunbose","email":"arun@core.ai"}],"homepage":"https://github.com/aicore/metrics#readme","bugs":{"url":"https://github.com/aicore/metrics/issues"},"dist":{"shasum":"61677c69db78cc8d9908a6bcc59b0af2556c2e3f","tarball":"https://registry.npmjs.org/@aicore/metrics/-/metrics-1.1.1.tgz","fileCount":4,"integrity":"sha512-vgzCQx/IHlCigcRQ/3B4GbvbRcmszzO/HlzqSm/wn4DfZXV1vT/KqyArGjGCci3amMdQkRqdhe9gX1hXPlccJQ==","signatures":[{"sig":"MEUCICfZKxafr++EOCwqssMGDwxu6Xic/1b4TzWeKqA/8ywIAiEAkjjLf3pFHBoUuk4G1j17qmUUqHGbNbcXuZwwCO+KBLo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28697},"main":"src/index.js","type":"module","gitHead":"13080f690b8d79b8bcb0ddbf887f4f22be6295f9","scripts":{"lint":"eslint --quiet src test","test":"npm run test:unit && npm run test:integ","build":"npm run cover && npm run createJSDocs && npm run vulnerabilityCheck","cover":"npm run cover:unit","eslint":"npm run lint","prepare":"test -d node_modules/husky && husky install || echo \"husky is not installed\"","release":"npm run bumpPatchVersionWithGitTag","lint:fix":"eslint --quiet --fix src test","test:unit":"mocha test/unit/*.spec.js test/unit/**/*.spec.js --timeout=3000","cover:unit":"c8 -c .nycrc.unit.json npm run test:unit && npm run --silent printReportsLink","eslint:fix":"npm run lint:fix","test:integ":"mocha test/integration/*.spec.js test/integration/**/*.spec.js --timeout=3000","createJSDocs":"node build/jsDocGenerate.js src docs/generatedApiDocs && git add docs","bumpPatchVersion":"npm --no-git-tag-version version patch","printReportsLink":"echo Detailed unit test coverage report: file:///$(pwd)/coverage-unit/index.html && echo Detailed integration test coverage report: file:///$(pwd)/coverage-integration/index.html","vulnerabilityCheck":"echo Scanning for npm vulnarabilities && npm audit --prod","bumpPatchVersionWithGitTag":"npm version patch"},"_npmUser":{"name":"core.ai","email":"admin@core.ai"},"repository":{"url":"git+https://github.com/aicore/metrics.git","type":"git"},"_npmVersion":"10.8.2","description":"Metrics library for all core.ai services","directories":{},"_nodeVersion":"20.19.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"c8":"10.1.2","chai":"5.1.1","glob":"^11.0.0","husky":"9.1.6","mocha":"11.1.0","sinon":"^17.0.1","eslint":"8.57.1","cli-color":"2.0.4","documentation":"14.0.3","@commitlint/cli":"19.5.0","@commitlint/config-conventional":"19.5.0"},"_npmOperationalInternal":{"tmp":"tmp/metrics_1.1.1_1743341728746_0.29894129732716124","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@aicore/metrics","version":"1.1.2","keywords":["metrics","dashboard","monitoring"],"author":{"name":"Arun, core.ai"},"license":"Proprietary","_id":"@aicore/metrics@1.1.2","maintainers":[{"name":"core.ai","email":"admin@core.ai"},{"name":"ushmajit","email":"ushmajit@core.ai"},{"name":"arunbose","email":"arun@core.ai"}],"homepage":"https://github.com/aicore/metrics#readme","bugs":{"url":"https://github.com/aicore/metrics/issues"},"dist":{"shasum":"9e93447a3127c294834a4ddcd2c662f73b754e9d","tarball":"https://registry.npmjs.org/@aicore/metrics/-/metrics-1.1.2.tgz","fileCount":4,"integrity":"sha512-/c12wwdmAEFizOtZfh/dHwmc2LgslyF6gmzsDwG1Gcg/ekoS7chi32lYk/TfjUvLGOBVViwW+aQhG84Jyl+CwA==","signatures":[{"sig":"MEQCIFR2J2Dwqr1+OwVjc/ZRfUW+BFMVggMY4LaTcqLi/CMNAiB80aBZcuov5MQhEHIAZEf2ejI7TxxTZ7HRHXyiRiq+Aw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29734},"main":"src/index.js","type":"module","gitHead":"342c7814e82605210d3e7f48763f842162ec4fae","scripts":{"lint":"eslint --quiet src test","test":"npm run test:unit && npm run test:integ","build":"npm run cover && npm run createJSDocs && npm run vulnerabilityCheck","cover":"npm run cover:unit","eslint":"npm run lint","prepare":"test -d node_modules/husky && husky install || echo \"husky is not installed\"","release":"npm run bumpPatchVersionWithGitTag","lint:fix":"eslint --quiet --fix src test","test:unit":"mocha test/unit/*.spec.js test/unit/**/*.spec.js --timeout=3000","cover:unit":"c8 -c .nycrc.unit.json npm run test:unit && npm run --silent printReportsLink","eslint:fix":"npm run lint:fix","test:integ":"mocha test/integration/*.spec.js test/integration/**/*.spec.js --timeout=3000","createJSDocs":"node build/jsDocGenerate.js src docs/generatedApiDocs && git add docs","bumpPatchVersion":"npm --no-git-tag-version version patch","printReportsLink":"echo Detailed unit test coverage report: file:///$(pwd)/coverage-unit/index.html && echo Detailed integration test coverage report: file:///$(pwd)/coverage-integration/index.html","vulnerabilityCheck":"echo Scanning for npm vulnarabilities && npm audit --prod","bumpPatchVersionWithGitTag":"npm version patch"},"_npmUser":{"name":"core.ai","email":"admin@core.ai"},"repository":{"url":"git+https://github.com/aicore/metrics.git","type":"git"},"_npmVersion":"10.8.2","description":"Metrics library for all core.ai services","directories":{},"_nodeVersion":"20.19.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"c8":"10.1.2","chai":"5.1.1","glob":"^11.0.0","husky":"9.1.6","mocha":"11.1.0","sinon":"^17.0.1","eslint":"8.57.1","cli-color":"2.0.4","documentation":"14.0.3","@commitlint/cli":"19.5.0","@commitlint/config-conventional":"19.5.0"},"_npmOperationalInternal":{"tmp":"tmp/metrics_1.1.2_1743342119951_0.8997046231937771","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@aicore/metrics","version":"1.2.0","keywords":["metrics","dashboard","monitoring"],"author":{"name":"Arun, core.ai"},"license":"Proprietary","_id":"@aicore/metrics@1.2.0","maintainers":[{"name":"core.ai","email":"admin@core.ai"},{"name":"ushmajit","email":"ushmajit@core.ai"},{"name":"arunbose","email":"arun@core.ai"}],"homepage":"https://github.com/aicore/metrics#readme","bugs":{"url":"https://github.com/aicore/metrics/issues"},"dist":{"shasum":"d37bea84d839ab95b4c790a21f3c9df612d83fb8","tarball":"https://registry.npmjs.org/@aicore/metrics/-/metrics-1.2.0.tgz","fileCount":5,"integrity":"sha512-GgX26TEKD+QhHksst69iKnZhPWgmwHSB0j6LTwKNmKxUiPK6hpbNjP7EeDtFKQNoMXm3yQcEDnx8yCjuQd7NlQ==","signatures":[{"sig":"MEQCIGrrf9I3BHW91cFz/EFHi4FVb+lLVPg7o4CDzIyowEQgAiBYz7k/fPbkf442CsDyaiLdL0MYkIONM/vDH2P5kBb6Ug==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43231},"main":"src/index.js","type":"module","gitHead":"0c809b30a11767ce818bb371249c1772d75b62ac","scripts":{"lint":"eslint --quiet src test","test":"npm run test:unit && npm run test:integ","build":"npm run cover && npm run createJSDocs && npm run vulnerabilityCheck","cover":"npm run cover:unit","eslint":"npm run lint","prepare":"test -d node_modules/husky && husky install || echo \"husky is not installed\"","release":"npm run bumpPatchVersionWithGitTag","lint:fix":"eslint --quiet --fix src test","test:unit":"mocha test/unit/*.spec.js test/unit/**/*.spec.js --timeout=3000","cover:unit":"c8 -c .nycrc.unit.json npm run test:unit && npm run --silent printReportsLink","eslint:fix":"npm run lint:fix","test:integ":"mocha test/integration/*.spec.js test/integration/**/*.spec.js --timeout=3000","createJSDocs":"node build/jsDocGenerate.js src docs/generatedApiDocs && git add docs","bumpPatchVersion":"npm --no-git-tag-version version patch","printReportsLink":"echo Detailed unit test coverage report: file:///$(pwd)/coverage-unit/index.html && echo Detailed integration test coverage report: file:///$(pwd)/coverage-integration/index.html","vulnerabilityCheck":"echo Scanning for npm vulnarabilities && npm audit --prod","bumpPatchVersionWithGitTag":"npm version patch"},"_npmUser":{"name":"core.ai","email":"admin@core.ai"},"repository":{"url":"git+https://github.com/aicore/metrics.git","type":"git"},"_npmVersion":"10.8.2","description":"Metrics library for all core.ai services","directories":{},"_nodeVersion":"20.19.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"c8":"10.1.2","chai":"5.1.1","glob":"^11.0.0","husky":"9.1.6","mocha":"11.1.0","sinon":"^17.0.1","eslint":"8.57.1","cli-color":"2.0.4","documentation":"14.0.3","@commitlint/cli":"19.5.0","@commitlint/config-conventional":"19.5.0"},"_npmOperationalInternal":{"tmp":"tmp/metrics_1.2.0_1743356517804_0.6125916093615034","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@aicore/metrics","version":"1.2.1","keywords":["metrics","dashboard","monitoring"],"author":{"name":"Arun, core.ai"},"license":"Proprietary","_id":"@aicore/metrics@1.2.1","maintainers":[{"name":"core.ai","email":"admin@core.ai"},{"name":"ushmajit","email":"ushmajit@core.ai"},{"name":"arunbose","email":"arun@core.ai"}],"homepage":"https://github.com/aicore/metrics#readme","bugs":{"url":"https://github.com/aicore/metrics/issues"},"dist":{"shasum":"52b3f7cb061225673b8f3973c8c96420f18bd563","tarball":"https://registry.npmjs.org/@aicore/metrics/-/metrics-1.2.1.tgz","fileCount":5,"integrity":"sha512-pQ3yPgrWlSkytC9VFKMW2qcrL5l7yrbmCN1bMsR/J8nQXmd9BonWyjo+XCM2S9kU19I66/JbL3PrTY6+f37vAg==","signatures":[{"sig":"MEQCIFgmRMq3xqF3tDG1q+BHXcA3qzfwiCOAr3PZnoqgMJKbAiBGXhM8ojj1tgmCJrJAgipHIMZXq7dEuYU/S/sCPqFSFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44330},"main":"src/index.js","type":"module","gitHead":"aa3300d691c7315e9f364dd0d32c47d0a2de54f5","scripts":{"lint":"eslint --quiet src test","test":"npm run test:unit && npm run test:integ","build":"npm run cover && npm run createJSDocs && npm run vulnerabilityCheck","cover":"npm run cover:unit","eslint":"npm run lint","prepare":"test -d node_modules/husky && husky install || echo \"husky is not installed\"","release":"npm run bumpPatchVersionWithGitTag","lint:fix":"eslint --quiet --fix src test","test:unit":"mocha test/unit/*.spec.js test/unit/**/*.spec.js --timeout=3000","cover:unit":"c8 -c .nycrc.unit.json npm run test:unit && npm run --silent printReportsLink","eslint:fix":"npm run lint:fix","test:integ":"mocha test/integration/*.spec.js test/integration/**/*.spec.js --timeout=3000","createJSDocs":"node build/jsDocGenerate.js src docs/generatedApiDocs && git add docs","bumpPatchVersion":"npm --no-git-tag-version version patch","printReportsLink":"echo Detailed unit test coverage report: file:///$(pwd)/coverage-unit/index.html && echo Detailed integration test coverage report: file:///$(pwd)/coverage-integration/index.html","vulnerabilityCheck":"echo Scanning for npm vulnarabilities && npm audit --prod","bumpPatchVersionWithGitTag":"npm version patch"},"_npmUser":{"name":"core.ai","email":"admin@core.ai"},"repository":{"url":"git+https://github.com/aicore/metrics.git","type":"git"},"_npmVersion":"10.8.2","description":"Metrics library for all core.ai services","directories":{},"_nodeVersion":"20.19.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"c8":"10.1.2","chai":"5.1.1","glob":"^11.0.0","husky":"9.1.6","mocha":"11.1.0","sinon":"^17.0.1","eslint":"8.57.1","cli-color":"2.0.4","documentation":"14.0.3","@commitlint/cli":"19.5.0","@commitlint/config-conventional":"19.5.0"},"_npmOperationalInternal":{"tmp":"tmp/metrics_1.2.1_1743357034869_0.3528735552806417","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@aicore/metrics","version":"1.2.2","keywords":["metrics","dashboard","monitoring"],"author":{"name":"Arun, core.ai"},"license":"Proprietary","_id":"@aicore/metrics@1.2.2","maintainers":[{"name":"core.ai","email":"admin@core.ai"},{"name":"ushmajit","email":"ushmajit@core.ai"},{"name":"arunbose","email":"arun@core.ai"}],"homepage":"https://github.com/aicore/metrics#readme","bugs":{"url":"https://github.com/aicore/metrics/issues"},"dist":{"shasum":"808dfd2e71b38e0b31207e74111cab622a7bbc10","tarball":"https://registry.npmjs.org/@aicore/metrics/-/metrics-1.2.2.tgz","fileCount":5,"integrity":"sha512-lhwuhY9cp67sQ3Tj4RZEmWMD2xsPrvkgJWUVO/tWcUXGDTgRAa/u8kHZbKWepzQXdGdyjKKCs62Xz7YPxBZEpQ==","signatures":[{"sig":"MEYCIQCpLVblYOgd90NPwQgjExK0Aw0eA+3jLM+sumLGnRBPzQIhANdruhkux1UtHX3lZttC8SiHXvtwwHRAmwRaNHTY0ih/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44724},"main":"src/index.js","type":"module","gitHead":"7cc50b7e4417d9d3bb8358ee96aa12ad6bf0b462","scripts":{"lint":"eslint --quiet src test","test":"npm run test:unit && npm run test:integ","build":"npm run cover && npm run createJSDocs && npm run vulnerabilityCheck","cover":"npm run cover:unit","eslint":"npm run lint","prepare":"test -d node_modules/husky && husky install || echo \"husky is not installed\"","release":"npm run bumpPatchVersionWithGitTag","lint:fix":"eslint --quiet --fix src test","test:unit":"mocha test/unit/*.spec.js test/unit/**/*.spec.js --timeout=3000","cover:unit":"c8 -c .nycrc.unit.json npm run test:unit && npm run --silent printReportsLink","eslint:fix":"npm run lint:fix","test:integ":"mocha test/integration/*.spec.js test/integration/**/*.spec.js --timeout=3000","createJSDocs":"node build/jsDocGenerate.js src docs/generatedApiDocs && git add docs","bumpPatchVersion":"npm --no-git-tag-version version patch","printReportsLink":"echo Detailed unit test coverage report: file:///$(pwd)/coverage-unit/index.html && echo Detailed integration test coverage report: file:///$(pwd)/coverage-integration/index.html","vulnerabilityCheck":"echo Scanning for npm vulnarabilities && npm audit --prod","bumpPatchVersionWithGitTag":"npm version patch"},"_npmUser":{"name":"core.ai","email":"admin@core.ai"},"repository":{"url":"git+https://github.com/aicore/metrics.git","type":"git"},"_npmVersion":"10.8.2","description":"Metrics library for all core.ai services","directories":{},"_nodeVersion":"20.19.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"c8":"10.1.2","chai":"5.1.1","glob":"^11.0.0","husky":"9.1.6","mocha":"11.1.0","sinon":"^17.0.1","eslint":"8.57.1","cli-color":"2.0.4","documentation":"14.0.3","@commitlint/cli":"19.5.0","@commitlint/config-conventional":"19.5.0"},"_npmOperationalInternal":{"tmp":"tmp/metrics_1.2.2_1743357730704_0.3828710206757755","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"@aicore/metrics","version":"1.2.3","keywords":["metrics","dashboard","monitoring"],"author":{"name":"Arun, core.ai"},"license":"Proprietary","_id":"@aicore/metrics@1.2.3","maintainers":[{"name":"core.ai","email":"admin@core.ai"},{"name":"ushmajit","email":"ushmajit@core.ai"},{"name":"arunbose","email":"arun@core.ai"}],"homepage":"https://github.com/aicore/metrics#readme","bugs":{"url":"https://github.com/aicore/metrics/issues"},"dist":{"shasum":"95c75563ec527a77abe0caf00098d14c76bdacdb","tarball":"https://registry.npmjs.org/@aicore/metrics/-/metrics-1.2.3.tgz","fileCount":5,"integrity":"sha512-y38U8t03Xgk4jM3jx3YYTPuTfa/dclnYERIIDTAkjiMFl54obB0DvVZE9QlMOdxDngC2Be2381I+ySYqKbr2pg==","signatures":[{"sig":"MEUCIDT3goIMe2Hud2S6OUdNXfux5U4dnVUuxwYo7UUfKp4RAiEAv+m7IT8clnzXZfjZTqKpoX3gKfpPNRfr1UmoB7v1wyI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44577},"main":"src/index.js","type":"module","gitHead":"514e9ca8dd104889cdc4b4152729ced40870299e","scripts":{"lint":"eslint --quiet src test","test":"npm run test:unit && npm run test:integ","build":"npm run cover && npm run createJSDocs && npm run vulnerabilityCheck","cover":"npm run cover:unit","eslint":"npm run lint","prepare":"test -d node_modules/husky && husky install || echo \"husky is not installed\"","release":"npm run bumpPatchVersionWithGitTag","lint:fix":"eslint --quiet --fix src test","test:unit":"mocha test/unit/*.spec.js test/unit/**/*.spec.js --timeout=3000","cover:unit":"c8 -c .nycrc.unit.json npm run test:unit && npm run --silent printReportsLink","eslint:fix":"npm run lint:fix","test:integ":"mocha test/integration/*.spec.js test/integration/**/*.spec.js --timeout=3000","createJSDocs":"node build/jsDocGenerate.js src docs/generatedApiDocs && git add docs","bumpPatchVersion":"npm --no-git-tag-version version patch","printReportsLink":"echo Detailed unit test coverage report: file:///$(pwd)/coverage-unit/index.html && echo Detailed integration test coverage report: file:///$(pwd)/coverage-integration/index.html","vulnerabilityCheck":"echo Scanning for npm vulnarabilities && npm audit --prod","bumpPatchVersionWithGitTag":"npm version patch"},"_npmUser":{"name":"core.ai","email":"admin@core.ai"},"repository":{"url":"git+https://github.com/aicore/metrics.git","type":"git"},"_npmVersion":"10.8.2","description":"Metrics library for all core.ai services","directories":{},"_nodeVersion":"20.19.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"c8":"10.1.2","chai":"5.1.1","glob":"^11.0.0","husky":"9.1.6","mocha":"11.1.0","sinon":"^17.0.1","eslint":"8.57.1","cli-color":"2.0.4","documentation":"14.0.3","@commitlint/cli":"19.5.0","@commitlint/config-conventional":"19.5.0"},"_npmOperationalInternal":{"tmp":"tmp/metrics_1.2.3_1743358410399_0.4270109386714469","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"@aicore/metrics","version":"1.2.4","keywords":["metrics","dashboard","monitoring"],"author":{"name":"Arun, core.ai"},"license":"Proprietary","_id":"@aicore/metrics@1.2.4","maintainers":[{"name":"core.ai","email":"admin@core.ai"},{"name":"ushmajit","email":"ushmajit@core.ai"},{"name":"arunbose","email":"arun@core.ai"}],"homepage":"https://github.com/aicore/metrics#readme","bugs":{"url":"https://github.com/aicore/metrics/issues"},"dist":{"shasum":"985789e21a2d4d200fd28691b9ad27545f500086","tarball":"https://registry.npmjs.org/@aicore/metrics/-/metrics-1.2.4.tgz","fileCount":5,"integrity":"sha512-X8WIorg0My88fye0PnKDcPfow4PxScDC6PaePaAMZyr3HgF8B2HwKhM5PwYH8SA9INzwKOerblnLraejMCsc7Q==","signatures":[{"sig":"MEUCIHPMUoYzbSdz/X6yCZLkV/2WQyRPEEsDOyEnkK+wln18AiEAtkfH5v47lUIlxeI4crpH1ehIKhjukVfCrWogOSSPH4k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44591},"main":"src/index.js","type":"module","gitHead":"709f7a93cd4a63a9e2bd0cddbd5aa423d26caa6b","scripts":{"lint":"eslint --quiet src test","test":"npm run test:unit && npm run test:integ","build":"npm run cover && npm run createJSDocs && npm run vulnerabilityCheck","cover":"npm run cover:unit","eslint":"npm run lint","prepare":"test -d node_modules/husky && husky install || echo \"husky is not installed\"","release":"npm run bumpPatchVersionWithGitTag","lint:fix":"eslint --quiet --fix src test","test:unit":"mocha test/unit/*.spec.js test/unit/**/*.spec.js --timeout=3000","cover:unit":"c8 -c .nycrc.unit.json npm run test:unit && npm run --silent printReportsLink","eslint:fix":"npm run lint:fix","test:integ":"mocha test/integration/*.spec.js test/integration/**/*.spec.js --timeout=3000","createJSDocs":"node build/jsDocGenerate.js src docs/generatedApiDocs && git add docs","bumpPatchVersion":"npm --no-git-tag-version version patch","printReportsLink":"echo Detailed unit test coverage report: file:///$(pwd)/coverage-unit/index.html && echo Detailed integration test coverage report: file:///$(pwd)/coverage-integration/index.html","vulnerabilityCheck":"echo Scanning for npm vulnarabilities && npm audit --prod","bumpPatchVersionWithGitTag":"npm version patch"},"_npmUser":{"name":"core.ai","email":"admin@core.ai"},"repository":{"url":"git+https://github.com/aicore/metrics.git","type":"git"},"_npmVersion":"10.8.2","description":"Metrics library for all core.ai services","directories":{},"_nodeVersion":"20.19.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"c8":"10.1.2","chai":"5.1.1","glob":"^11.0.0","husky":"9.1.6","mocha":"11.1.0","sinon":"^17.0.1","eslint":"8.57.1","cli-color":"2.0.4","documentation":"14.0.3","@commitlint/cli":"19.5.0","@commitlint/config-conventional":"19.5.0"},"_npmOperationalInternal":{"tmp":"tmp/metrics_1.2.4_1743415978894_0.5930026381389188","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"@aicore/metrics","version":"1.2.5","keywords":["metrics","dashboard","monitoring"],"author":{"name":"Arun, core.ai"},"license":"Proprietary","_id":"@aicore/metrics@1.2.5","maintainers":[{"name":"core.ai","email":"admin@core.ai"},{"name":"ushmajit","email":"ushmajit@core.ai"},{"name":"arunbose","email":"arun@core.ai"}],"homepage":"https://github.com/aicore/metrics#readme","bugs":{"url":"https://github.com/aicore/metrics/issues"},"dist":{"shasum":"003423962f076d7372598333a269a523a19d9837","tarball":"https://registry.npmjs.org/@aicore/metrics/-/metrics-1.2.5.tgz","fileCount":5,"integrity":"sha512-+aa3uC4ToDTOTvWlVPua0TB5WgslxvbiFYS9Ql8r+h6DicI1uBswlsWJQbbH2JSchROmt3oV+LNW47cf6eeuDw==","signatures":[{"sig":"MEQCIEOCc8x5tkpwpGP1HZwiiHLpm2SMPDfz7ZNqiMLL5JBnAiAIfoMYxoYhaWVcUaUC5a4PzHahXQ2G8lCkloc2HBBDDg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44633},"main":"src/index.js","type":"module","gitHead":"979b10802fe82a8af3b043e89e5196211730b3e9","scripts":{"lint":"eslint --quiet src test","test":"npm run test:unit && npm run test:integ","build":"npm run cover && npm run createJSDocs && npm run vulnerabilityCheck","cover":"npm run cover:unit","eslint":"npm run lint","prepare":"test -d node_modules/husky && husky install || echo \"husky is not installed\"","release":"npm run bumpPatchVersionWithGitTag","lint:fix":"eslint --quiet --fix src test","test:unit":"mocha test/unit/*.spec.js test/unit/**/*.spec.js --timeout=3000","cover:unit":"c8 -c .nycrc.unit.json npm run test:unit && npm run --silent printReportsLink","eslint:fix":"npm run lint:fix","test:integ":"mocha test/integration/*.spec.js test/integration/**/*.spec.js --timeout=3000","createJSDocs":"node build/jsDocGenerate.js src docs/generatedApiDocs && git add docs","bumpPatchVersion":"npm --no-git-tag-version version patch","printReportsLink":"echo Detailed unit test coverage report: file:///$(pwd)/coverage-unit/index.html && echo Detailed integration test coverage report: file:///$(pwd)/coverage-integration/index.html","vulnerabilityCheck":"echo Scanning for npm vulnarabilities && npm audit --prod","bumpPatchVersionWithGitTag":"npm version patch"},"_npmUser":{"name":"core.ai","email":"admin@core.ai"},"repository":{"url":"git+https://github.com/aicore/metrics.git","type":"git"},"_npmVersion":"10.8.2","description":"Metrics library for all core.ai services","directories":{},"_nodeVersion":"20.19.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"c8":"10.1.2","chai":"5.1.1","glob":"^11.0.0","husky":"9.1.6","mocha":"11.1.0","sinon":"^17.0.1","eslint":"8.57.1","cli-color":"2.0.4","documentation":"14.0.3","@commitlint/cli":"19.5.0","@commitlint/config-conventional":"19.5.0"},"_npmOperationalInternal":{"tmp":"tmp/metrics_1.2.5_1743416356479_0.04393584867620848","host":"s3://npm-registry-packages-npm-production"}},"1.2.6":{"name":"@aicore/metrics","version":"1.2.6","keywords":["metrics","dashboard","monitoring"],"author":{"name":"Arun, core.ai"},"license":"Proprietary","_id":"@aicore/metrics@1.2.6","maintainers":[{"name":"core.ai","email":"admin@core.ai"},{"name":"ushmajit","email":"ushmajit@core.ai"},{"name":"arunbose","email":"arun@core.ai"}],"homepage":"https://github.com/aicore/metrics#readme","bugs":{"url":"https://github.com/aicore/metrics/issues"},"dist":{"shasum":"cc04ac978594861f3ef0450ff5c1a972e87f918a","tarball":"https://registry.npmjs.org/@aicore/metrics/-/metrics-1.2.6.tgz","fileCount":5,"integrity":"sha512-Qmg+OWWmPCvq42MEwQoE4wgWzuvNHPNJMwoVZJuXUxNJst2xeipFUAa40mNfv9mapc1Qb0WOJys+NLhOHPHHww==","signatures":[{"sig":"MEQCIHDVohdjkvxwmYh69lNKTCXyX/GM/81Vl6k2xBtVeyfAAiBOjL20WBXsF5xXgNHEZ+laUvAKvJjWCj5T0kGJaVyjPw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45530},"main":"src/index.js","type":"module","gitHead":"9384aa624e7167351feb9483cc75db5d93d571bf","scripts":{"lint":"eslint --quiet src test","test":"npm run test:unit && npm run test:integ","build":"npm run cover && npm run createJSDocs && npm run vulnerabilityCheck","cover":"npm run cover:unit","eslint":"npm run lint","prepare":"test -d node_modules/husky && husky install || echo \"husky is not installed\"","release":"npm run bumpPatchVersionWithGitTag","lint:fix":"eslint --quiet --fix src test","test:unit":"mocha test/unit/*.spec.js test/unit/**/*.spec.js --timeout=3000","cover:unit":"c8 -c .nycrc.unit.json npm run test:unit && npm run --silent printReportsLink","eslint:fix":"npm run lint:fix","test:integ":"mocha test/integration/*.spec.js test/integration/**/*.spec.js --timeout=3000","createJSDocs":"node build/jsDocGenerate.js src docs/generatedApiDocs && git add docs","bumpPatchVersion":"npm --no-git-tag-version version patch","printReportsLink":"echo Detailed unit test coverage report: file:///$(pwd)/coverage-unit/index.html && echo Detailed integration test coverage report: file:///$(pwd)/coverage-integration/index.html","vulnerabilityCheck":"echo Scanning for npm vulnarabilities && npm audit --prod","bumpPatchVersionWithGitTag":"npm version patch"},"_npmUser":{"name":"core.ai","email":"admin@core.ai"},"repository":{"url":"git+https://github.com/aicore/metrics.git","type":"git"},"_npmVersion":"10.8.2","description":"Metrics library for all core.ai services","directories":{},"_nodeVersion":"20.19.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"c8":"10.1.2","chai":"5.1.1","glob":"^11.0.0","husky":"9.1.6","mocha":"11.1.0","sinon":"^17.0.1","eslint":"8.57.1","cli-color":"2.0.4","documentation":"14.0.3","@commitlint/cli":"19.5.0","@commitlint/config-conventional":"19.5.0"},"_npmOperationalInternal":{"tmp":"tmp/metrics_1.2.6_1743433018587_0.7137883455866738","host":"s3://npm-registry-packages-npm-production"}},"1.2.7":{"name":"@aicore/metrics","version":"1.2.7","keywords":["metrics","dashboard","monitoring"],"author":{"name":"Arun, core.ai"},"license":"Proprietary","_id":"@aicore/metrics@1.2.7","maintainers":[{"name":"core.ai","email":"admin@core.ai"},{"name":"ushmajit","email":"ushmajit@core.ai"},{"name":"arunbose","email":"arun@core.ai"}],"homepage":"https://github.com/aicore/metrics#readme","bugs":{"url":"https://github.com/aicore/metrics/issues"},"dist":{"shasum":"d2c2e71723a8dfac247f764a4a4f8109cf05bae6","tarball":"https://registry.npmjs.org/@aicore/metrics/-/metrics-1.2.7.tgz","fileCount":5,"integrity":"sha512-Z4p4omKZl80IIpf57S6XCM+uL+utKDjAp+/sbWTAcLvpK88EUcx5fR1aeYp+/WfvO7uyUAXCV8bu8jTZivCXpw==","signatures":[{"sig":"MEYCIQD/rzM1P6S393Xw/VIT0dpeUhlYOBKfoo4EXY392rtp8wIhAKP3ce1/bADJMb0ZXJVCZmSrX9t3L5zpyqXGMy/4mr9D","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45378},"main":"src/index.js","type":"module","gitHead":"3a850ea33ccce04c772e8cd95716d9fe456a6cb5","scripts":{"lint":"eslint --quiet src test","test":"npm run test:unit && npm run test:integ","build":"npm run cover && npm run createJSDocs && npm run vulnerabilityCheck","cover":"npm run cover:unit","eslint":"npm run lint","prepare":"test -d node_modules/husky && husky install || echo \"husky is not installed\"","release":"npm run bumpPatchVersionWithGitTag","lint:fix":"eslint --quiet --fix src test","test:unit":"mocha test/unit/*.spec.js test/unit/**/*.spec.js --timeout=3000","cover:unit":"c8 -c .nycrc.unit.json npm run test:unit && npm run --silent printReportsLink","eslint:fix":"npm run lint:fix","test:integ":"mocha test/integration/*.spec.js test/integration/**/*.spec.js --timeout=3000","createJSDocs":"node build/jsDocGenerate.js src docs/generatedApiDocs && git add docs","bumpPatchVersion":"npm --no-git-tag-version version patch","printReportsLink":"echo Detailed unit test coverage report: file:///$(pwd)/coverage-unit/index.html && echo Detailed integration test coverage report: file:///$(pwd)/coverage-integration/index.html","vulnerabilityCheck":"echo Scanning for npm vulnarabilities && npm audit --prod","bumpPatchVersionWithGitTag":"npm version patch"},"_npmUser":{"name":"core.ai","email":"admin@core.ai"},"repository":{"url":"git+https://github.com/aicore/metrics.git","type":"git"},"_npmVersion":"10.8.2","description":"Metrics library for all core.ai services","directories":{},"_nodeVersion":"20.19.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"c8":"10.1.2","chai":"5.1.1","glob":"^11.0.0","husky":"9.1.6","mocha":"11.1.0","sinon":"^17.0.1","eslint":"8.57.1","cli-color":"2.0.4","documentation":"14.0.3","@commitlint/cli":"19.5.0","@commitlint/config-conventional":"19.5.0"},"_npmOperationalInternal":{"tmp":"tmp/metrics_1.2.7_1745922309322_0.9574493829669115","host":"s3://npm-registry-packages-npm-production"}},"1.2.8":{"name":"@aicore/metrics","version":"1.2.8","keywords":["metrics","dashboard","monitoring"],"author":{"name":"Arun, core.ai"},"license":"Proprietary","_id":"@aicore/metrics@1.2.8","maintainers":[{"name":"core.ai","email":"admin@core.ai"},{"name":"ushmajit","email":"ushmajit@core.ai"},{"name":"arunbose","email":"arun@core.ai"}],"homepage":"https://github.com/aicore/metrics#readme","bugs":{"url":"https://github.com/aicore/metrics/issues"},"dist":{"shasum":"90e24ed3a681023c50c46a87d0a5e64fd8d426eb","tarball":"https://registry.npmjs.org/@aicore/metrics/-/metrics-1.2.8.tgz","fileCount":5,"integrity":"sha512-xxnFDhWrkFCKghg22JSLPCGuak7BOZdl+uAZ+35olBPEzLH5FeR+wT+xPAQNoUYBN5pH5Ee9dfu4uAxcmsebmg==","signatures":[{"sig":"MEQCIH7QWagv41V1syKizoln/ugYWHiLXMVw3J/4+YjyPUplAiAWcI/THoG2lH8muGFQ4PUgL3mMX/TPYlLvnA5qYt+7SQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56228},"main":"src/index.js","type":"module","gitHead":"6a19b7ee7f8b73387ffd988d979767fc3863cdee","scripts":{"lint":"eslint --quiet src test","test":"npm run test:unit && npm run test:integ","build":"npm run cover && npm run createJSDocs && npm run vulnerabilityCheck","cover":"npm run cover:unit","eslint":"npm run lint","prepare":"test -d node_modules/husky && husky install || echo \"husky is not installed\"","release":"npm run bumpPatchVersionWithGitTag","lint:fix":"eslint --quiet --fix src test","test:unit":"mocha test/unit/*.spec.js test/unit/**/*.spec.js --timeout=3000","cover:unit":"c8 -c .nycrc.unit.json npm run test:unit && npm run --silent printReportsLink","eslint:fix":"npm run lint:fix","test:integ":"mocha test/integration/*.spec.js test/integration/**/*.spec.js --timeout=3000","createJSDocs":"node build/jsDocGenerate.js src docs/generatedApiDocs && git add docs","bumpPatchVersion":"npm --no-git-tag-version version patch","printReportsLink":"echo Detailed unit test coverage report: file:///$(pwd)/coverage-unit/index.html && echo Detailed integration test coverage report: file:///$(pwd)/coverage-integration/index.html","vulnerabilityCheck":"echo Scanning for npm vulnarabilities && npm audit --prod","bumpPatchVersionWithGitTag":"npm version patch"},"_npmUser":{"name":"core.ai","email":"admin@core.ai"},"repository":{"url":"git+https://github.com/aicore/metrics.git","type":"git"},"_npmVersion":"10.8.2","description":"Metrics library for all core.ai services","directories":{},"_nodeVersion":"20.19.5","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"c8":"10.1.2","chai":"5.1.1","glob":"^11.0.0","husky":"9.1.6","mocha":"11.1.0","sinon":"^17.0.1","eslint":"8.57.1","cli-color":"2.0.4","documentation":"14.0.3","@commitlint/cli":"19.5.0","@commitlint/config-conventional":"19.5.0"},"_npmOperationalInternal":{"tmp":"tmp/metrics_1.2.8_1758359161282_0.4992455212398519","host":"s3://npm-registry-packages-npm-production"}},"1.2.9":{"name":"@aicore/metrics","version":"1.2.9","keywords":["metrics","dashboard","monitoring"],"author":{"name":"Arun, core.ai"},"license":"Proprietary","_id":"@aicore/metrics@1.2.9","maintainers":[{"name":"core.ai","email":"admin@core.ai"},{"name":"ushmajit","email":"ushmajit@core.ai"},{"name":"arunbose","email":"arun@core.ai"}],"homepage":"https://github.com/aicore/metrics#readme","bugs":{"url":"https://github.com/aicore/metrics/issues"},"dist":{"shasum":"da0a42a713566792166c39e7781fb5db84849b45","tarball":"https://registry.npmjs.org/@aicore/metrics/-/metrics-1.2.9.tgz","fileCount":5,"integrity":"sha512-zaWcHsNUgBljfTKaNGOXzvvUt/F+2941jeNqEQrTJAc5TEt165Ba4H/CjyeprN4Lx+/Zn0wRvt8uVNyWMf4UeA==","signatures":[{"sig":"MEUCIQCMl+su5QceicX8o8TGq+V26Tg0EMVPGxmMz2VIwJGxigIgDgKMB9kXDHFaa0BtqU1zCw9wekRYbUAdVYONGsjSf9Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59357},"main":"src/index.js","type":"module","gitHead":"2ddce3e344733296b59ac0d712038c587094da90","scripts":{"lint":"eslint --quiet src test","test":"npm run test:unit && npm run test:integ","build":"npm run cover && npm run createJSDocs && npm run vulnerabilityCheck","cover":"npm run cover:unit","eslint":"npm run lint","prepare":"test -d node_modules/husky && husky install || echo \"husky is not installed\"","release":"npm run bumpPatchVersionWithGitTag","lint:fix":"eslint --quiet --fix src test","test:unit":"mocha test/unit/*.spec.js test/unit/**/*.spec.js --timeout=3000","cover:unit":"c8 -c .nycrc.unit.json npm run test:unit && npm run --silent printReportsLink","eslint:fix":"npm run lint:fix","test:integ":"mocha test/integration/*.spec.js test/integration/**/*.spec.js --timeout=3000","createJSDocs":"node build/jsDocGenerate.js src docs/generatedApiDocs && git add docs","bumpPatchVersion":"npm --no-git-tag-version version patch","printReportsLink":"echo Detailed unit test coverage report: file:///$(pwd)/coverage-unit/index.html && echo Detailed integration test coverage report: file:///$(pwd)/coverage-integration/index.html","vulnerabilityCheck":"echo Scanning for npm vulnarabilities && npm audit --prod","bumpPatchVersionWithGitTag":"npm version patch"},"_npmUser":{"name":"core.ai","email":"admin@core.ai"},"repository":{"url":"git+https://github.com/aicore/metrics.git","type":"git"},"_npmVersion":"10.8.2","description":"Metrics library for all core.ai services","directories":{},"_nodeVersion":"20.19.5","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"c8":"10.1.2","chai":"5.1.1","glob":"^11.0.0","husky":"9.1.6","mocha":"11.1.0","sinon":"^17.0.1","eslint":"8.57.1","cli-color":"2.0.4","documentation":"14.0.3","@commitlint/cli":"19.5.0","@commitlint/config-conventional":"19.5.0"},"_npmOperationalInternal":{"tmp":"tmp/metrics_1.2.9_1761730731674_0.5157534048585006","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-03-29T13:28:42.451Z","modified":"2025-12-27T03:38:59.432Z","1.0.0":"2025-03-29T13:28:42.738Z","1.1.0":"2025-03-30T04:25:53.742Z","1.1.1":"2025-03-30T13:35:28.938Z","1.1.2":"2025-03-30T13:42:00.111Z","1.2.0":"2025-03-30T17:41:57.973Z","1.2.1":"2025-03-30T17:50:35.106Z","1.2.2":"2025-03-30T18:02:10.877Z","1.2.3":"2025-03-30T18:13:30.582Z","1.2.4":"2025-03-31T10:12:59.091Z","1.2.5":"2025-03-31T10:19:16.641Z","1.2.6":"2025-03-31T14:56:58.754Z","1.2.7":"2025-04-29T10:25:09.560Z","1.2.8":"2025-09-20T09:06:01.490Z","1.2.9":"2025-10-29T09:38:51.862Z"},"bugs":{"url":"https://github.com/aicore/metrics/issues"},"author":{"name":"Arun, core.ai"},"license":"Proprietary","homepage":"https://github.com/aicore/metrics#readme","keywords":["metrics","dashboard","monitoring"],"repository":{"url":"git+https://github.com/aicore/metrics.git","type":"git"},"description":"Metrics library for all core.ai services","maintainers":[{"email":"admin@core.ai","name":"core.ai"},{"email":"arun@core.ai","name":"arunbose"}],"readme":"# @aicore/metrics\n\nMetrics library for all core.ai services. A lightweight, efficient metrics reporting library for JavaScript\napplications that provides a simple interface to collect and send various metrics to a monitoring service endpoint.\n\n## Code Guardian\n[![<app> build verification](https://github.com/aicore/metrics/actions/workflows/build_verify.yml/badge.svg)](https://github.com/aicore/metrics/actions/workflows/build_verify.yml)\n\n  [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=aicore_metrics&metric=alert_status&token=4dc085f49a58bf5de69d2f25abc6d2db4c7dd33e)](https://sonarcloud.io/summary/new_code?id=aicore_metrics)\n[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=aicore_metrics&metric=security_rating&token=4dc085f49a58bf5de69d2f25abc6d2db4c7dd33e)](https://sonarcloud.io/summary/new_code?id=aicore_metrics)\n[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=aicore_metrics&metric=vulnerabilities&token=4dc085f49a58bf5de69d2f25abc6d2db4c7dd33e)](https://sonarcloud.io/summary/new_code?id=aicore_metrics)\n[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=aicore_metrics&metric=reliability_rating&token=4dc085f49a58bf5de69d2f25abc6d2db4c7dd33e)](https://sonarcloud.io/summary/new_code?id=aicore_metrics)\n[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=aicore_metrics&metric=sqale_rating&token=4dc085f49a58bf5de69d2f25abc6d2db4c7dd33e)](https://sonarcloud.io/summary/new_code?id=aicore_metrics)\n[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=aicore_metrics&metric=bugs&token=4dc085f49a58bf5de69d2f25abc6d2db4c7dd33e)](https://sonarcloud.io/summary/new_code?id=aicore_metrics)\n[![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=aicore_metrics&metric=duplicated_lines_density&token=4dc085f49a58bf5de69d2f25abc6d2db4c7dd33e)](https://sonarcloud.io/summary/new_code?id=aicore_metrics)\n\n## Features\n\n- Count event metrics for tracking occurrences\n- Value event metrics for tracking specific data points over time\n- Automatic batching and sending of metrics at configurable intervals\n- Throttling to prevent overwhelming the metrics service\n- Automatic retry on failed sends with backoff\n- Small footprint with minimal dependencies\n\n## Installation\n\n```bash\nnpm install @aicore/metrics\n```\n\n## Quick Start\n\n```javascript\nimport { init, countEvent, valueEvent } from '@aicore/metrics';\n\n// Initialize the client (do this once when your app starts)\ninit('my-app', \"dev\", 'http://metrics.example.com/ingest', 'api-key-123');\n\n// Track count metrics (e.g., page views, clicks, errors)\ncountEvent('page_view', 'frontend', 'homepage');\ncountEvent('user', 'action', 'pasteCount', 5);\n\n// Track value metrics (e.g., response times, temperatures, scores)\nvalueEvent('response_time', 'api', 'get_user', 135); // 135ms\n```\n\n## API Reference\n\n## init\n\nInitializes the monitoring client.\nThis function must be called before using any other monitoring functions.\nThe client can only be initialized once per application lifecycle.\n\n### Parameters\n\n*   `serviceName` **[string][1]** Unique name of the service being monitored\n*   `stage` **[string][1]** The stage of the service. Eg: dev, prod, staging, etc..\n*   `metricsEndpointDomain` **[string][1]** Domain where metrics will be sent. Eg. `metrics.your-cloud.io`\n*   `apiKey` **[string][1]** Authentication key for the metrics service\n\n### Examples\n\n```javascript\n// Initialize the monitoring client\ndefault('my-app', \"dev\", 'http://metrics.example.com/ingest', 'api-key-123');\n```\n\n*   Throws **[Error][2]** If the client has already been initialized or if any parameter is invalid\n\n## countEvent\n\nRecords a metric event with the specified parameters.\nThe client must be initialized with init() before calling this function.\nMetrics are batched and sent at regular intervals.\n\n### Parameters\n\n*   `category` **[string][1]** Primary category for the metric\n*   `subCategory` **[string][1]** Secondary category for the metric\n*   `label` **[string][1]** label for additional classification\n*   `count` **[number][3]** Value to increment the metric by, defaults to 1 (optional, default `1`)\n\n### Examples\n\n```javascript\n// Record a single event\ncountEvent('page_view', 'frontend', 'homepage');\n\n// Record multiple events\ncountEvent('downloads', 'content', 'pdf', 5);\n```\n\n*   Throws **[Error][2]** If the client has not been initialized\n\nReturns **[boolean][4]** true if the metric was recorded, false if it was dropped\n\n## valueEvent\n\nRecords a value metric with the specified parameters.\nUnlike countEvent, valueEvent records each value with its own timestamp without aggregation.\nThe client must be initialized with init() before calling this function.\nLimited to MAX\\_VALUES\\_PER\\_INTERVAL values per metric key per interval.\n\n### Parameters\n\n*   `category` **[string][1]** Primary category for the metric\n*   `subCategory` **[string][1]** Secondary category for the metric\n*   `label` **[string][1]** label for additional classification\n*   `value` **([number][3] | [string][1])** The value to record\n\n### Examples\n\n```javascript\n// Record a temperature value\nvalueEvent('temperature', 'sensors', 'outdoor', 22.5);\n```\n\n*   Throws **[Error][2]** If the client has not been initialized\n\nReturns **[boolean][4]** true if the metric was recorded, false if it was dropped\n\n## flush\n\nManually sends all collected metrics immediately without waiting for the interval.\nThis is useful for sending metrics before application shutdown or when immediate reporting is needed.\nThe client must be initialized with init() before calling this function.\n\n### Examples\n\n```javascript\n// Send all collected metrics immediately\nawait flush();\nconsole.log('All metrics have been sent');\n```\n\n*   Throws **[Error][2]** If the client has not been initialized\n\nReturns **[Promise][5]** A promise that resolves when the metrics have been sent, or rejects if sending fails\n\n## System Monitoring\n\nThe metrics library includes built-in system monitoring capabilities that automatically track essential system metrics when initialized.\n\nThe following metrics are automatically collected:\n\n- **CPU**: Core count, load averages, CPU utilization percentages\n- **Memory**: Total/free/used memory, heap usage, memory percentage metrics\n- **Disk**: Storage usage, available space etc.\n- **Process**: Uptime, active handles, file descriptors...\n- **Event Loop**: Performance metrics including mean/max/min delay times\n\n### Using System Metrics in Your Application\n\nYou can use the `SYSTEM_CATEGORY` constant to tag your own metrics related to system resources for a specific host.\nThis ensures metrics are properly attributed to the specific host:\n\n```javascript\nimport { valueEvent, SYSTEM_CATEGORY } from '@aicore/metrics';\n\n// Record custom system-related metrics with proper host attribution\nvalueEvent(SYSTEM_CATEGORY, 'custom', 'my_metric', 42.5);\n```\n\nAll system metrics are automatically tagged with host information for proper identification in your monitoring dashboards.\n\n## Advanced Usage\n\n### Monitoring Client Class\n\nFor advanced use cases, you can directly use the `MonitoringClient` class:\n\n```javascript\nimport { MonitoringClient } from '@core/monitoring-client';\n\nconst client = new MonitoringClient('my-service', 'prod', 'http://metrics.example.com/ingest', 'api-key-123');\n\n// Send custom metrics directly\nconst metrics = [\n  `my-service{metric=\"custom_metric\",category=\"test\",subCategory=\"example\"} 1 ${Date.now()}`\n];\n\nclient.sendMetrics(metrics)\n  .then(result => console.log('Metrics sent successfully', result))\n  .catch(error => console.error('Failed to send metrics', error));\n```\n\n## QuestDB Backend Integration\n\nThis library has been optimized to work with QuestDB as the backend time-series database, providing high-performance metrics storage and querying capabilities.\n\n### Production Deployment Architecture\n\nThe recommended production setup uses NGINX as a reverse proxy for authentication, SSL termination, and rate limiting:\n\n```\nClient → NGINX (SSL + Auth) → QuestDB → Grafana (Visualization)\n```\n\n**Benefits of NGINX Integration**:\n- **Bearer Token Authentication**: Secure API key-based access to metrics ingestion\n- **SSL Termination**: HTTPS support with automatic Let's Encrypt certificates\n- **Rate Limiting**: Protection against API abuse and DDoS attacks\n- **PAM Authentication**: Unix system user authentication for admin access\n- **High Performance**: Optimized proxy configuration with connection pooling\n\n### Metrics Ingestion Endpoint\n\nWhen using the complete monitoring stack, metrics are sent through NGINX:\n\n```javascript\n// Initialize with NGINX proxy endpoint\ndefault('my-service', 'prod', 'https://metrics.yourdomain.com/ingest', 'your-bearer-token');\n```\n\n**Authentication**: Uses Bearer token authentication configured during stack installation. The token is automatically generated and configured in NGINX for the `/ingest` endpoint.\n\n### Complete Documentation\n\nFor detailed configuration and operational guidance, refer to the comprehensive documentation included with the monitoring stack:\n\n- **NGINX Configuration Guide**: Complete NGINX setup, performance optimizations, SSL configuration, and troubleshooting\n- **QuestDB Configuration Guide**: Database optimization, schema design, performance tuning, and operational procedures\n\nThese guides provide production-ready configurations and best practices for enterprise deployments.\n\n### ⚠️ Required Schema Setup\n\n**IMPORTANT**: Before using this library with QuestDB, you must create the optimized `metrics` table schema to prevent performance issues from auto-creation with default settings.\n\n#### Why Schema Setup is Required\n\nQuestDB automatically creates tables when receiving InfluxDB Line Protocol data, but uses default SYMBOL capacities of only 256, which causes performance degradation as your metrics scale. Creating the schema beforehand ensures optimal performance.\n\n#### Quick Setup with QuestDB Monitoring Stack\n\nIf you're using the complete QuestDB monitoring stack, the schema is automatically created during installation:\n\n```bash\n# Complete monitoring stack with optimized schema\ngit clone https://github.com/aicore/quest.git && cd quest/\nsudo ./setup-production.sh --ssl  # For HTTPS with Let's Encrypt\n# OR\nsudo ./setup-production.sh         # For HTTP only\n```\n\n#### Manual Schema Creation\n\nFor existing QuestDB installations, create the schema manually before sending any metrics:\n\n```bash\n# Execute in QuestDB (via web interface at http://questdb:9000 or curl)\ncurl -G \"http://questdb:9000/exec\" --data-urlencode \"query=CREATE TABLE IF NOT EXISTS metrics (\n    timestamp TIMESTAMP,\n    service SYMBOL CAPACITY 50000,\n    stage SYMBOL CAPACITY 1000,\n    metric_type SYMBOL CAPACITY 1000,\n    category SYMBOL CAPACITY 10000,\n    subcategory SYMBOL CAPACITY 10000,\n    label VARCHAR,\n    host SYMBOL CAPACITY 100000,\n    value DOUBLE\n) timestamp(timestamp) PARTITION BY DAY WAL;\"\n```\n\n### Data Format\n\nMetrics are automatically converted to InfluxDB Line Protocol format and stored in QuestDB with the following optimized schema:\n\n```sql\nCREATE TABLE metrics (\n    timestamp TIMESTAMP,\n    service SYMBOL CAPACITY 50000,      -- Service name (fast filtering)\n    stage SYMBOL CAPACITY 1000,         -- Environment: dev/staging/prod\n    metric_type SYMBOL CAPACITY 1000,   -- count/value (fast filtering)\n    category SYMBOL CAPACITY 10000,     -- Metric categories (optimized filtering)\n    subcategory SYMBOL CAPACITY 10000,  -- Metric subcategories (optimized filtering)\n    label VARCHAR,                       -- Labels (unlimited cardinality)\n    host SYMBOL CAPACITY 100000,        -- Hostnames (optimized for containers/hosts)\n    value DOUBLE\n) timestamp(timestamp) PARTITION BY DAY WAL;\n```\n\n### Performance Characteristics\n\n- **Sub-millisecond Queries**: Service, stage, metric_type, category, and subcategory filtering uses SYMBOL optimization (integer comparison)\n- **High-Performance Ingestion**: Supports >1 million metrics per second with optimized batching\n- **Efficient Storage**: 10x compression vs traditional databases with columnar storage\n- **Scalable Filtering**: Host filtering optimized for 100,000+ unique hosts/containers\n- **Time-Series Optimized**: Daily partitioning with automatic query optimization\n- **Memory Efficient**: SYMBOL columns provide significant memory savings for repeated values\n\n## Grafana Integration\n\nThe single-table design enables powerful Grafana dashboards and alerting with simple SQL queries.\n\n### Dashboard Examples\n\n#### Service Performance Monitoring\n```sql\n-- Response time trends by service\nSELECT timestamp, service, avg(value) as response_time\nFROM metrics\nWHERE category = 'response_time'\n  AND metric_type = 'value'\n  AND $__timeFilter(timestamp)\nGROUP BY timestamp, service\nORDER BY timestamp;\n\n-- Request rate by service\nSELECT timestamp, service, sum(value) as requests\nFROM metrics\nWHERE category = 'http_request'\n  AND metric_type = 'count'\n  AND $__timeFilter(timestamp)\nGROUP BY timestamp, service\nORDER BY timestamp;\n```\n\n#### Infrastructure Monitoring\n```sql\n-- CPU usage by host\nSELECT timestamp, host, avg(value) as cpu_percent\nFROM metrics\nWHERE category = 'system'\n  AND subcategory = 'cpu'\n  AND label = 'usage_percent'\n  AND $__timeFilter(timestamp)\nGROUP BY timestamp, host\nORDER BY timestamp;\n\n-- Memory usage trends\nSELECT timestamp, host, avg(value) as memory_percent\nFROM metrics\nWHERE category = 'system'\n  AND subcategory = 'memory'\n  AND label = 'usage_percent'\n  AND $__timeFilter(timestamp)\nGROUP BY timestamp, host\nORDER BY timestamp;\n```\n\n### Dashboard Variables (Dropdowns)\n```sql\n-- Service selector\nSELECT DISTINCT service FROM metrics WHERE $__timeFilter(timestamp);\n\n-- Environment selector\nSELECT DISTINCT stage FROM metrics WHERE $__timeFilter(timestamp);\n\n-- Host selector\nSELECT DISTINCT host FROM metrics WHERE $__timeFilter(timestamp);\n```\n\n### Alerting Rules\n\n#### High Error Rate Alert\n```sql\nSELECT service, avg(value) as error_rate\nFROM metrics\nWHERE category = 'error_rate'\n  AND timestamp > now() - 5m\nGROUP BY service\nHAVING avg(value) > 5;  -- Alert if > 5% error rate\n```\n\n#### High Latency Alert\n```sql\nSELECT service, subcategory, avg(value) as avg_response_time\nFROM metrics\nWHERE category = 'response_time'\n  AND timestamp > now() - 5m\nGROUP BY service, subcategory\nHAVING avg(value) > 1000;  -- Alert if > 1000ms\n```\n\n#### Service Health Check\n```sql\n-- Alert when no metrics received (service down)\nSELECT service, count(*) as metric_count\nFROM metrics\nWHERE timestamp > now() - 5m\nGROUP BY service\nHAVING count(*) = 0;\n```\n\n## Limitations and Best Practices\n\n### ⚠️ Schema Setup Requirement\n\n**CRITICAL**: The optimized QuestDB schema must be created before sending any metrics data. See the [Required Schema Setup](#️-required-schema-setup) section above. Using the library without proper schema setup will result in:\n\n- Poor performance due to default 256 SYMBOL capacities\n- Hash collisions and slower queries\n- Potential data ingestion slowdowns at scale\n\n### SYMBOL Column Limitations\n- Service names: Limited to 50,000 unique values\n- Stages: Limited to 1,000 unique values\n- Metric types: Limited to 1,000 unique values\n- Categories: Limited to 10,000 unique values\n- Subcategories: Limited to 10,000 unique values\n- Host names: Limited to 100,000 unique values\n- Cannot resize SYMBOL capacity after table creation\n\n### Performance Guidelines\n- Normalize high-cardinality labels to avoid unnecessary uniqueness\n- Monitor SYMBOL table utilization in production\n- Use consistent service naming conventions\n- Optimal partition size: 1-100 million records per day\n\n### Data Retention\n- Data deletion only available at partition level (daily)\n- Plan retention policies according to daily partitions\n- Individual record deletion not supported\n\n### Schema Evolution\n- Tables cannot be repartitioned after creation\n- Schema changes require table recreation and data migration\n- Plan column additions carefully\n\n## Development\n\n### Requirements\n\n- Node.js (latest LTS recommended)\n- npm (latest stable version recommended)\n\n### Setup\n\n```bash\n# Clone the repository\ngit clone https://github.com/aicore/metrics.git\ncd metrics\n\n# Install dependencies\nnpm install\n```\n\n### Testing\n\n```bash\n# Run unit tests\nnpm run test:unit\n\n# Run integration tests (requires environment variables)\nexport METRICS_ENDPOINT=http://your-metrics-server/ingest\nexport METRICS_API_KEY=your-api-key\nnpm run test:integ\n\n# Run all tests\nnpm run test\n\n# Run unit tests with coverage\nnpm run cover:unit\n```\n\n### Building and Documentation\n\n```bash\n# Full build process including tests, docs, and vulnerability check\nnpm run build\n\n# Generate JS documentation only\nnpm run createJSDocs\n```\n\n# Commands available\n\n## Building\nSince this is a pure JS template project, build command just runs test with coverage.\n```shell\n> npm install   // do this only once.\n> npm run build\n```\n\n## Linting\nTo lint the files in the project, run the following command:\n```shell\n> npm run lint\n```\nTo Automatically fix lint errors:\n```shell\n> npm run lint:fix\n```\n\n## Testing\nTo run all tests:\n```shell\n> npm run test\n  Hello world Tests\n    ✔ should return Hello World\n    #indexOf()\n      ✔ should return -1 when the value is not present\n```\n\nAdditionally, to run unit/integration tests only, use the commands:\n```shell\n> npm run test:unit\n> npm run test:integ\n```\n\n## Coverage Reports\nTo run all tests with coverage:\n\n```shell\n> npm run cover\n  Hello world Tests\n    ✔ should return Hello World\n    #indexOf()\n      ✔ should return -1 when the value is not present\n\n\n  2 passing (6ms)\n\n----------|---------|----------|---------|---------|-------------------\nFile      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s \n----------|---------|----------|---------|---------|-------------------\nAll files |     100 |      100 |     100 |     100 |                   \n index.js |     100 |      100 |     100 |     100 |                   \n----------|---------|----------|---------|---------|-------------------\n\n=============================== Coverage summary ===============================\nStatements   : 100% ( 5/5 )\nBranches     : 100% ( 2/2 )\nFunctions    : 100% ( 1/1 )\nLines        : 100% ( 5/5 )\n================================================================================\nDetailed unit test coverage report: file:///template-nodejs/coverage-unit/index.html\nDetailed integration test coverage report: file:///template-nodejs/coverage-integration/index.html\n```\nAfter running coverage, detailed reports can be found in the coverage folder listed in the output of coverage command.\nOpen the file in browser to view detailed reports.\n\nTo run unit/integration tests only with coverage\n```shell\n> npm run cover:unit\n> npm run cover:integ\n```\n\nSample coverage report:\n![image](https://user-images.githubusercontent.com/5336369/148687351-6d6c12a2-a232-433d-ab62-2cf5d39c96bd.png)\n\n### Unit and Integration coverage configs\nUnit and integration test coverage settings can be updated by configs `.nycrc.unit.json` and `.nycrc.integration.json`.\n\nSee https://github.com/istanbuljs/nyc for config options.\n\n# Publishing packages to NPM\n\n  ## Preparing for release\n  Please run `npm run release` on the `main` branch and push the changes to main. The release command will bump the npm version.\n  \n  !NB: NPM publish will faill if there is another release with the same version.\n  ## Publishing\nTo publish a package to npm, push contents to `npm` branch in \nthis repository. \n\n## Publishing `@aicore/package*`\nIf you are looking to publish to package owned by core.ai, you will need access to the GitHub Organization secret `NPM_TOKEN`.\n\nFor repos managed by [aicore](https://github.com/aicore) org in GitHub, Please contact your Admin to get access to core.ai's NPM tokens.\n\n\n## Publishing to your own npm account\nAlternatively, if you want to publish the package to your own npm account, please follow these docs:\n1. Create an automation access token by following this [link](https://docs.npmjs.com/creating-and-viewing-access-tokens).\n2. Add NPM_TOKEN to your repository secret by following this [link](https://docs.npmjs.com/using-private-packages-in-a-ci-cd-workflow)\n\nTo edit the publishing workflow, please see file: `.github/workflows/npm-publish.yml`\n\n\n# Dependency updates\n  We use Rennovate for dependency updates: https://blog.logrocket.com/renovate-dependency-updates-on-steroids/\n  * By default, dep updates happen on sunday every week.\n  * The status of dependency updates can be viewed here if you have this repo permissions in github: https://app.renovatebot.com/dashboard#github/aicore/template-nodejs\n  * To edit rennovate options, edit the rennovate.json file in root, see https://docs.renovatebot.com/configuration-options/\n  Refer \n  \n# Code Guardian\nSeveral automated workflows that check code integrity are integrated into this template.\nThese include:\n1. GitHub actions that runs build/test/coverage flows when a contributor raises a pull request\n2. [Sonar cloud](https://sonarcloud.io/) integration using `.sonarcloud.properties`\n   1. In sonar cloud, enable Automatic analysis from `Administration\n      Analysis Method` for the first time ![image](https://user-images.githubusercontent.com/5336369/148695840-65585d04-5e59-450b-8794-54ca3c62b9fe.png)\n\n## IDE setup\nSonarLint is currently available as a free plugin for jetbrains, eclipse, vscode and visual studio IDEs.\nUse sonarLint plugin for webstorm or any of the available\nIDEs from this link before raising a pull request: https://www.sonarlint.org/ .\n\nSonarLint static code analysis checker is not yet available as a Brackets\nextension.\n\n## Internals\n### Testing framework: Mocha , assertion style: chai\n See https://mochajs.org/#getting-started on how to write tests\n Use chai for BDD style assertions (expect, should etc..). See move here: https://www.chaijs.com/guide/styles/#expect\n\n### Mocks and spies:\n\n Since it is not that straight forward to mock es6 module imports, use the follow pull request as reference to mock\nimported libs:\n \n\n* sample pull request: https://github.com/aicore/libcache/pull/6/files\n* [setting up mocks](https://github.com/aicore/libcache/blob/485b1b6244f7022eb0a83d9f72d897fe712badbe/test/unit/setup-mocks.js)\n* [using the mocks](https://github.com/aicore/libcache/pull/6/files#diff-8ea7ccf28b28a0ae7b43e468abd3e9a8bb411bb329ad5cb45eb9a93709ed8dc5R2)\nensure to import `setup-mocks.js` as the first import of all files in tests.\n\n#### using sinon lib if the above method doesn't fit your case\nif you want to mock/spy on fn() for unit tests, use sinon. refer docs: https://sinonjs.org/\n\n### Note on coverage suite used here:\nwe use c8 for coverage https://github.com/bcoe/c8. Its reporting is based on nyc, so detailed docs can be found\n here: https://github.com/istanbuljs/nyc ; We didn't use nyc as it do not yet have ES module support\n see: https://github.com/digitalbazaar/bedrock-test/issues/16 . c8 is drop replacement for nyc coverage reporting tool\n","readmeFilename":"README.md"}