{"_id":"@asymmetrik/ngx-instrumentation","_rev":"24-8c959abd89df5872d29ff5c0ee85cd6d","name":"@asymmetrik/ngx-instrumentation","dist-tags":{"latest":"13.0.0"},"versions":{"0.0.0":{"name":"@asymmetrik/ngx-instrumentation","version":"0.0.0","author":{"name":"Asymmetrik, Ltd."},"license":"MIT","_id":"@asymmetrik/ngx-instrumentation@0.0.0","maintainers":[{"name":"rblace","email":"ryan@asymmetrik.com"}],"homepage":"https://github.com/Asymmetrik/ngx-instrumentation#readme","bugs":{"url":"https://github.com/Asymmetrik/ngx-instrumentation/issues"},"dist":{"shasum":"d6fb4aec78ecc658c03d0020e6903a61aace18db","tarball":"https://registry.npmjs.org/@asymmetrik/ngx-instrumentation/-/ngx-instrumentation-0.0.0.tgz","integrity":"sha512-+zBfm+ny9aDI/w/KmOdkQ8vpT+Tgmo7PNcqzbq54ahX3j8hD6TnSox5qMslE9SuauXCUF0DpwaZJhlT244n0ng==","signatures":[{"sig":"MEUCIAPTD5v97SdtO1x0KjIQfLqIV6O9ZsDT51oNjCMsr/N9AiEAkSSi2RHD5b7Sd4ERWhjXXQ5Brhi7gC/8WyiiPJkhR9s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/bundles/ngx-instrumentation.js","module":"dist/index.js","gitHead":"d8b5a0e3e7b89bca739c2e42c5b2f50da731b84e","scripts":{},"typings":"dist/index.d.ts","_npmUser":{"name":"rblace","email":"ryan@asymmetrik.com"},"copyright":"Copyright Asymmetrik, Ltd. 2007-2017 - All Rights Reserved.","moduleName":"ngxInstrumentation","repository":{"url":"git+https://github.com/Asymmetrik/ngx-instrumentation.git","type":"git"},"_npmVersion":"5.5.1","description":"Angular.io components and services for instrumenting errors, performance, and user actions","directories":{},"jsnext:main":"dist/index.js","_nodeVersion":"8.9.3","artifactName":"ngx-instrumentation","devDependencies":{"gulp":"3.9","rxjs":"5.5","merge2":"1.2","rollup":"0.53","tslint":"5.8","core-js":"2.5","webpack":"3.10","zone.js":"0.8","through2":"2.0","gulp-util":"3.0","node-sass":"4.7","css-loader":"0.28","typescript":"2.6","url-loader":"0.6","@types/node":"8","file-loader":"1.1","gulp-filter":"5.0","gulp-insert":"0.5","gulp-rename":"1.2","gulp-tslint":"8.1","gulp-uglify":"3.0","html-loader":"0.5","sass-loader":"6.0","run-sequence":"2.2","style-loader":"0.19","@angular/core":"5","tslint-stylish":"2.1","@angular/common":"5","@angular/router":"5","gulp-sourcemaps":"2.6","gulp-typescript":"3.2","@angular/compiler":"5","gulp-load-plugins":"1.5","source-map-loader":"0.2","resolve-url-loader":"2.2","webpack-dev-server":"2.9","@angular/compiler-cli":"5","angular2-template-loader":"0.6","@angular/platform-browser":"5","awesome-typescript-loader":"3.4","@angular/platform-browser-dynamic":"5"},"peerDependencies":{"@angular/core":">=2","@angular/common":">=2"},"_npmOperationalInternal":{"tmp":"tmp/ngx-instrumentation-0.0.0.tgz_1514392983802_0.6741493856534362","host":"s3://npm-registry-packages"}},"0.0.1":{"name":"@asymmetrik/ngx-instrumentation","version":"0.0.1","author":{"name":"Asymmetrik, Ltd."},"license":"MIT","_id":"@asymmetrik/ngx-instrumentation@0.0.1","maintainers":[{"name":"mcurtis22","email":"mcurtis@asymmetrik.com"},{"name":"jyoung-asymmetrik","email":"jyoung@asymmetrik.com"},{"name":"amarcus","email":"amarcus@asymmetrik.com"},{"name":"robert-w","email":"RWinter85@gmail.com"},{"name":"reblace","email":"rblace@asymmetrik.com"},{"name":"rblace","email":"ryan@asymmetrik.com"}],"homepage":"https://github.com/Asymmetrik/ngx-instrumentation#readme","bugs":{"url":"https://github.com/Asymmetrik/ngx-instrumentation/issues"},"dist":{"shasum":"5e716fc31f386b729b941bb4e60db9ac521c8cca","tarball":"https://registry.npmjs.org/@asymmetrik/ngx-instrumentation/-/ngx-instrumentation-0.0.1.tgz","integrity":"sha512-q2uJlCvNnfKCWN4L4sDQ+US7nWBkkpNEPivxNUTdbIvh9wmhM/r1OIx+PFyegX512dP9JGki3n4phbyJtU3EeA==","signatures":[{"sig":"MEQCICZm3pwngraVMKUUfsHXNbC2o5iPyicanQICvbVXawH4AiBwe8eVY9kHluT3ahFsuqI0ISPuH3e/5BfHYnJsJCH+jg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/bundles/ngx-instrumentation.js","module":"dist/index.js","gitHead":"56998a3648271b745e9737df72be3a8c2f8f630b","scripts":{},"typings":"dist/index.d.ts","_npmUser":{"name":"rblace","email":"ryan@asymmetrik.com"},"copyright":"Copyright Asymmetrik, Ltd. 2007-2017 - All Rights Reserved.","moduleName":"ngxInstrumentation","repository":{"url":"git+https://github.com/Asymmetrik/ngx-instrumentation.git","type":"git"},"_npmVersion":"5.5.1","description":"Angular.io components and services for instrumenting errors, performance, and user actions","directories":{},"jsnext:main":"dist/index.js","_nodeVersion":"8.9.3","artifactName":"ngx-instrumentation","devDependencies":{"gulp":"3.9","rxjs":"5.5","merge2":"1.2","rollup":"0.53","tslint":"5.8","core-js":"2.5","webpack":"3.10","zone.js":"0.8","through2":"2.0","gulp-util":"3.0","node-sass":"4.7","css-loader":"0.28","typescript":"2.6","url-loader":"0.6","@types/node":"8","file-loader":"1.1","gulp-filter":"5.0","gulp-insert":"0.5","gulp-rename":"1.2","gulp-tslint":"8.1","gulp-uglify":"3.0","html-loader":"0.5","sass-loader":"6.0","run-sequence":"2.2","style-loader":"0.19","@angular/core":"5","tslint-stylish":"2.1","@angular/common":"5","@angular/router":"5","gulp-sourcemaps":"2.6","gulp-typescript":"3.2","@angular/compiler":"5","gulp-load-plugins":"1.5","source-map-loader":"0.2","resolve-url-loader":"2.2","webpack-dev-server":"2.9","@angular/compiler-cli":"5","angular2-template-loader":"0.6","@angular/platform-browser":"5","awesome-typescript-loader":"3.4","@angular/platform-browser-dynamic":"5"},"peerDependencies":{"@angular/core":">=2","@angular/common":">=2"},"_npmOperationalInternal":{"tmp":"tmp/ngx-instrumentation-0.0.1.tgz_1514408195762_0.14339846814982593","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"@asymmetrik/ngx-instrumentation","version":"0.0.2","author":{"name":"Asymmetrik, Ltd."},"license":"MIT","_id":"@asymmetrik/ngx-instrumentation@0.0.2","maintainers":[{"name":"mcurtis22","email":"mcurtis@asymmetrik.com"},{"name":"jyoung-asymmetrik","email":"jyoung@asymmetrik.com"},{"name":"amarcus","email":"amarcus@asymmetrik.com"},{"name":"robert-w","email":"RWinter85@gmail.com"},{"name":"reblace","email":"rblace@asymmetrik.com"},{"name":"rblace","email":"ryan@asymmetrik.com"}],"homepage":"https://github.com/Asymmetrik/ngx-instrumentation#readme","bugs":{"url":"https://github.com/Asymmetrik/ngx-instrumentation/issues"},"dist":{"shasum":"67ca8236c478e8271e724eeda3495a36c401b74c","tarball":"https://registry.npmjs.org/@asymmetrik/ngx-instrumentation/-/ngx-instrumentation-0.0.2.tgz","integrity":"sha512-/VYOZQhSSPqCM3WyCs5n6ArL/lgjJyZWLb7TfJAIh8T3vztpA7hWyHK3D6ZNwR3mal8ua8NVSd6wkQ8RYw0WbA==","signatures":[{"sig":"MEQCIGcNywRXmdwBbh0vXhb4vmxL5G7okGSd09lP2ch7BqIsAiBY2JBtoy4EWUQubUyegMkavFEBJjCK6panNxy+JlqCEA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/bundles/ngx-instrumentation.js","module":"dist/index.js","gitHead":"372d2bfa09363788912f0b5456774bd16227835b","scripts":{},"typings":"dist/index.d.ts","_npmUser":{"name":"rblace","email":"ryan@asymmetrik.com"},"copyright":"Copyright Asymmetrik, Ltd. 2007-2017 - All Rights Reserved.","moduleName":"ngxInstrumentation","repository":{"url":"git+https://github.com/Asymmetrik/ngx-instrumentation.git","type":"git"},"_npmVersion":"5.5.1","description":"Angular.io components and services for instrumenting errors, performance, and user actions","directories":{},"jsnext:main":"dist/index.js","_nodeVersion":"8.9.3","artifactName":"ngx-instrumentation","devDependencies":{"gulp":"3.9","rxjs":"5.5","merge2":"1.2","rollup":"0.53","tslint":"5.8","core-js":"2.5","webpack":"3.10","zone.js":"0.8","through2":"2.0","gulp-util":"3.0","node-sass":"4.7","css-loader":"0.28","typescript":"2.6","url-loader":"0.6","@types/node":"8","file-loader":"1.1","gulp-filter":"5.0","gulp-insert":"0.5","gulp-rename":"1.2","gulp-tslint":"8.1","gulp-uglify":"3.0","html-loader":"0.5","sass-loader":"6.0","run-sequence":"2.2","style-loader":"0.19","@angular/core":"5","tslint-stylish":"2.1","@angular/common":"5","@angular/router":"5","gulp-sourcemaps":"2.6","gulp-typescript":"3.2","@angular/compiler":"5","gulp-load-plugins":"1.5","source-map-loader":"0.2","resolve-url-loader":"2.2","webpack-dev-server":"2.9","@angular/compiler-cli":"5","angular2-template-loader":"0.6","@angular/platform-browser":"5","awesome-typescript-loader":"3.4","@angular/platform-browser-dynamic":"5"},"peerDependencies":{"@angular/core":">=2","@angular/common":">=2"},"_npmOperationalInternal":{"tmp":"tmp/ngx-instrumentation-0.0.2.tgz_1514411292200_0.16347321378998458","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"@asymmetrik/ngx-instrumentation","version":"0.0.3","author":{"name":"Asymmetrik, Ltd."},"license":"MIT","_id":"@asymmetrik/ngx-instrumentation@0.0.3","maintainers":[{"name":"mcurtis22","email":"mcurtis@asymmetrik.com"},{"name":"jyoung-asymmetrik","email":"jyoung@asymmetrik.com"},{"name":"amarcus","email":"amarcus@asymmetrik.com"},{"name":"robert-w","email":"RWinter85@gmail.com"},{"name":"reblace","email":"rblace@asymmetrik.com"},{"name":"rblace","email":"ryan@asymmetrik.com"}],"homepage":"https://github.com/Asymmetrik/ngx-instrumentation#readme","bugs":{"url":"https://github.com/Asymmetrik/ngx-instrumentation/issues"},"dist":{"shasum":"4c783f69f60dd0b0d6f4f9f529fb2c86b660e097","tarball":"https://registry.npmjs.org/@asymmetrik/ngx-instrumentation/-/ngx-instrumentation-0.0.3.tgz","integrity":"sha512-TaiC7+wqBOetaYG8vULP27D5ndNHnnb9nPJJ0TMW6XniKtrkrRbmhGS3NmiKom72vGWVycflvOpMuqee1sTcnw==","signatures":[{"sig":"MEYCIQCvgy2+X02pIDr1i2Grc7rKKZJNztqxUjnXO7O6ceUKfwIhAJREpCcwmtxGsVGuZhrAEouPm8oDOSbR8CncGxFjDLmu","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/bundles/ngx-instrumentation.js","module":"dist/index.js","gitHead":"70499e41f78057f9822d8e0c7569637d7af7c751","scripts":{},"typings":"dist/index.d.ts","_npmUser":{"name":"rblace","email":"ryan@asymmetrik.com"},"copyright":"Copyright Asymmetrik, Ltd. 2007-2017 - All Rights Reserved.","moduleName":"ngxInstrumentation","repository":{"url":"git+https://github.com/Asymmetrik/ngx-instrumentation.git","type":"git"},"_npmVersion":"5.5.1","description":"Angular.io components and services for instrumenting errors, performance, and user actions","directories":{},"jsnext:main":"dist/index.js","_nodeVersion":"8.9.3","artifactName":"ngx-instrumentation","devDependencies":{"gulp":"3.9","rxjs":"5.5","merge2":"1.2","rollup":"0.53","tslint":"5.8","core-js":"2.5","webpack":"3.10","zone.js":"0.8","through2":"2.0","gulp-util":"3.0","node-sass":"4.7","css-loader":"0.28","typescript":"2.6","url-loader":"0.6","@types/node":"8","file-loader":"1.1","gulp-filter":"5.0","gulp-insert":"0.5","gulp-rename":"1.2","gulp-tslint":"8.1","gulp-uglify":"3.0","html-loader":"0.5","sass-loader":"6.0","run-sequence":"2.2","style-loader":"0.19","@angular/core":"5","tslint-stylish":"2.1","@angular/common":"5","@angular/router":"5","gulp-sourcemaps":"2.6","gulp-typescript":"3.2","@angular/compiler":"5","gulp-load-plugins":"1.5","source-map-loader":"0.2","resolve-url-loader":"2.2","webpack-dev-server":"2.9","@angular/compiler-cli":"5","angular2-template-loader":"0.6","@angular/platform-browser":"5","awesome-typescript-loader":"3.4","@angular/platform-browser-dynamic":"5"},"peerDependencies":{"@angular/core":">=2","@angular/common":">=2"},"_npmOperationalInternal":{"tmp":"tmp/ngx-instrumentation-0.0.3.tgz_1516041530410_0.32527570123784244","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"@asymmetrik/ngx-instrumentation","version":"1.0.0","author":{"name":"Asymmetrik, Ltd."},"license":"MIT","_id":"@asymmetrik/ngx-instrumentation@1.0.0","maintainers":[{"name":"amarcus","email":"amarcus@asymmetrik.com"},{"name":"brianghig","email":"brianghig@gmail.com"},{"name":"jyoung-asymmetrik","email":"jyoung@asymmetrik.com"},{"name":"mcurtis22","email":"mcurtis@asymmetrik.com"},{"name":"rblace","email":"ryan@asymmetrik.com"},{"name":"reblace","email":"rblace@asymmetrik.com"},{"name":"robert-w","email":"RWinter85@gmail.com"}],"homepage":"https://github.com/Asymmetrik/ngx-instrumentation#readme","bugs":{"url":"https://github.com/Asymmetrik/ngx-instrumentation/issues"},"dist":{"shasum":"37117739816d0f0de3b697b9bc25d47c90090d74","tarball":"https://registry.npmjs.org/@asymmetrik/ngx-instrumentation/-/ngx-instrumentation-1.0.0.tgz","fileCount":66,"integrity":"sha512-4eeTumM6FR4ehZ8hkXuuTcTjqG0rtz5CMOsR5Jy9IeHRxbWevPN1i9wrTJnkPmiR6wiECy3UstCHV+Bo2/egWA==","signatures":[{"sig":"MEYCIQD2sB1dNltPhwaZJw0LQ9usuRidddmcKtSc1VhRPt1KHgIhAP/LK0gZjc0yw0qgpfadZ43zo/Yk1Zg9fQVlEUdFH/FX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":123389,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcEcA5CRA9TVsSAnZWagAApJUP/RQAant/zEXlWKWD+4ja\nGYroM9C8kj4DwQR949PmB2hTKdam+CJxFBLwm9kKKz8SAbn865Xsu6xSCKEy\nWdX+8/jK1Uw2Fg67/aPTn8Bn/TYLsd6o5Ck5fWNEqvHOyhtZkLlGqfXjcpbF\nZeeBjO/9XItF/tqnSSzGdBNzOiZkbDT+LCSEBMnvjKaHXUhVYvnNyjEn07ap\nJm/6tRogUCgPbLhSMBpaQ11lZUebHiKMPfstpr0SM+2c0oSGhQcAmFK7BgQa\nW7FKU4930os2fxaYmvd5eDiWcoHjF5uULlIuvYj5zNsnBTnSs6jMEXt0nf9U\nun7Tj1wJNKgP4qvDpQTyiD2kZjGZuLNt+Q9fVdNOmGoe4jKJCp6aNJ1vt+s9\nxESwUqHyh2zmYli0QRQRC1/ohESNmbKm7w/GtRicggjKrcGg9ib2HD4PvgPq\nOfntUpzA+/rh/WEb7PFUuKDEByJHXK1Gh782ff5LWppXn3g91Ncruexysb/5\nguc7kUYkxUcFsYZguHTOLlfj8ZrcBXRCdMgWwcAOHo1gM1simaK8id2wX6zk\nrOdDv4RaBRGaVniMYoJza9RTwKYSpbf29lIu3h4O4lHoOeh4G/5Pkzjj9+pF\n7DM35fjBBAteBsW3WSDJvirfNn3n2cjKZZFQ7XpuiCBK1nUFmjO49KPBqDwW\n62GP\r\n=Vx1A\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/bundles/ngx-instrumentation.js","module":"dist/index.js","gitHead":"47d0d0eaac616e0ab1dffe41bbe79855711a650a","scripts":{"demo":"(node ./src/demo/demo-server.js & webpack-dev-server & npm run watch)","lint":"tslint -c tslint.json -t stylish 'src/**/*.ts'","build":"npm run compile && npm run bundle","watch":" watch 'npm run lint' ./src","bundle":"npm run rollup && npm run uglify","rollup":"rollup -c rollup.config.js","uglify":"uglifyjs --comments 'license' -o ./dist/bundles/ngx-instrumentation.min.js -- ./dist/bundles/ngx-instrumentation.js","compile":"ngc -p tsconfig-aot.json","predemo":"npm run lint","prebuild":"npm run lint"},"typings":"dist/index.d.ts","_npmUser":{"name":"rblace","email":"ryan@asymmetrik.com"},"copyright":"Copyright Asymmetrik, Ltd. 2007-2019 - All Rights Reserved.","moduleName":"ngxInstrumentation","repository":{"url":"git+https://github.com/Asymmetrik/ngx-instrumentation.git","type":"git"},"_npmVersion":"6.1.0","description":"Angular.io components and services for instrumenting errors, performance, and user actions","directories":{},"jsnext:main":"dist/index.js","_nodeVersion":"10.5.0","artifactName":"ngx-instrumentation","_hasShrinkwrap":false,"devDependencies":{"rxjs":"6","watch":"1","rollup":"0.67","tslint":"5","core-js":"2.6","webpack":"4","zone.js":"0.8","node-sass":"4","uglify-js":"3","css-loader":"2","typescript":"3.1","url-loader":"1","@types/node":"10","file-loader":"2","html-loader":"0.5","sass-loader":"7","webpack-cli":"3","style-loader":"0.23","@angular/core":"7","@angular/common":"7","@angular/router":"7","to-string-loader":"1.1","@angular/compiler":"7","source-map-loader":"0.2","resolve-url-loader":"3","webpack-dev-server":"3","html-webpack-plugin":"3","webpack-stats-plugin":"0.2","@angular/compiler-cli":"7","angular2-template-loader":"0.6","@angular/platform-browser":"7","awesome-typescript-loader":"5","@angular/platform-browser-dynamic":"7"},"peerDependencies":{"@angular/core":">=7","@angular/common":">=7"},"_npmOperationalInternal":{"tmp":"tmp/ngx-instrumentation_1.0.0_1544667192372_0.7240038467181238","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@asymmetrik/ngx-instrumentation","version":"1.0.1","author":{"name":"Asymmetrik, Ltd."},"license":"MIT","_id":"@asymmetrik/ngx-instrumentation@1.0.1","maintainers":[{"name":"amarcus","email":"amarcus@asymmetrik.com"},{"name":"brianghig","email":"brianghig@gmail.com"},{"name":"jlee-asymmetrik","email":"jlee@asymmetrik.com"},{"name":"mcurtis22","email":"mcurtis@asymmetrik.com"},{"name":"rblace","email":"ryan@asymmetrik.com"},{"name":"reblace","email":"rblace@asymmetrik.com"},{"name":"robert-w","email":"RWinter85@gmail.com"},{"name":"ymao","email":"ying.gu@gmail.com"}],"homepage":"https://github.com/Asymmetrik/ngx-instrumentation#readme","bugs":{"url":"https://github.com/Asymmetrik/ngx-instrumentation/issues"},"dist":{"shasum":"ea8d8e808836fe3c86645f3b124c512cc52e721f","tarball":"https://registry.npmjs.org/@asymmetrik/ngx-instrumentation/-/ngx-instrumentation-1.0.1.tgz","fileCount":66,"integrity":"sha512-E8zkwXOR9Y8URkr4Eut2qv9fzb4PFRLQ3FOMLvxHiRzrF0lLXw4ay/wQj4mUjtrFV0ik7JcqaKeU9hnLKy/RBQ==","signatures":[{"sig":"MEQCICwXA7Mq2d+/BblrMKd09EVYI5w4BZBngqp39hdF8lF8AiAUXL0ZA2YNMpfBuivQ+eTgoh0Y2PasACxwX735UoyR1w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":123373,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcGbs4CRA9TVsSAnZWagAAOF4P/iu6y31If9aHM6HlDAoB\nJPPKen+VZymTBv3bsCyGNh8Xu2FUTYZ7pHi9X4pmbH1GYhiYwznP3geN5KIB\nflCbWHUXXlDLZaV0kf8ZtIAuCVbICcwceOHshx2em/OS3bMcxkndgq0S1WLF\nGK2tKhoHTxmpF/YaGYH8vRqMCUdkK7dRjFyGe+mOUH65Qxj+dBGkS/WVIffp\ny8JAS0gUK4+aD1T1xRA1Dj/gpARqVxh/KOarrT/vbgLpMXD/b3MbrQtV0VaI\nrSxphqCMimi/gCOcYGFzU9LzdNf77oQvZWAjqdoI0/JKbjVQ79CwUGUw2mGM\ndEC7JQagHu9BCaDPDtOLJPFwEpHu6AeUWVKzsNR+hlEOLy0vRFjh8rXLfQC3\nrJ9jrZAKXqVcrYQZYL/OKwfIontAAhCC+1CQV3Cs1QRrS9myCiI2KdnXeR/z\nU/Djn432N/8WOT5B8IHZyMmhdYTYmbK7cgwlasb/qR4segrK4nd9n0ssYEXy\nzoF9NXrWqZvBRYF2awXAd9I/u90ig2hDXRcEr67q1ShOHigrEw9ZkZRRauRb\nOalZOJb+6CHuoUuN/u4zwPYCU5celOQHcwtFfVQ0nBwd6SuGxHeP6JmjVqsL\ngkhDp8EUODdipm/MwSkePWJamU8KVK5HlS1gm/lDy5XIdEsOMIpAlEWepvOb\nq009\r\n=NrW0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/bundles/ngx-instrumentation.js","module":"dist/index.js","gitHead":"46e4bf639adb2fd2773e95009095c79f5eced094","scripts":{"demo":"(node ./src/demo/demo-server.js & webpack-dev-server & npm run watch)","lint":"tslint -c tslint.json -t stylish 'src/**/*.ts'","build":"npm run compile && npm run bundle","watch":" watch 'npm run lint' ./src","bundle":"npm run rollup && npm run uglify","rollup":"rollup -c rollup.config.js","uglify":"uglifyjs --comments 'license' -o ./dist/bundles/ngx-instrumentation.min.js -- ./dist/bundles/ngx-instrumentation.js","compile":"ngc -p tsconfig-aot.json","predemo":"npm run lint","prebuild":"npm run lint"},"typings":"dist/index.d.ts","_npmUser":{"name":"rblace","email":"ryan@asymmetrik.com"},"copyright":"Copyright Asymmetrik, Ltd. 2007-2019 - All Rights Reserved.","moduleName":"ngxInstrumentation","repository":{"url":"git+https://github.com/Asymmetrik/ngx-instrumentation.git","type":"git"},"_npmVersion":"6.1.0","description":"Angular.io components and services for instrumenting errors, performance, and user actions","directories":{},"jsnext:main":"dist/index.js","_nodeVersion":"10.5.0","artifactName":"ngx-instrumentation","_hasShrinkwrap":false,"devDependencies":{"rxjs":"6","watch":"1","rollup":"0.67","tslint":"5","core-js":"2.6","webpack":"4","zone.js":"0.8","node-sass":"4","uglify-js":"3","css-loader":"2","typescript":"3.1","url-loader":"1","@types/node":"10","file-loader":"2","html-loader":"0.5","sass-loader":"7","webpack-cli":"3","style-loader":"0.23","@angular/core":"7","@angular/common":"7","@angular/router":"7","to-string-loader":"1.1","@angular/compiler":"7","source-map-loader":"0.2","resolve-url-loader":"3","webpack-dev-server":"3","html-webpack-plugin":"3","webpack-stats-plugin":"0.2","@angular/compiler-cli":"7","angular2-template-loader":"0.6","@angular/platform-browser":"7","awesome-typescript-loader":"5","@angular/platform-browser-dynamic":"7"},"peerDependencies":{"@angular/core":">=7","@angular/common":">=7"},"_npmOperationalInternal":{"tmp":"tmp/ngx-instrumentation_1.0.1_1545190200196_0.3515191260256023","host":"s3://npm-registry-packages"}},"13.0.0":{"name":"@asymmetrik/ngx-instrumentation","version":"13.0.0","author":{"name":"Asymmetrik, Ltd."},"license":"MIT","_id":"@asymmetrik/ngx-instrumentation@13.0.0","maintainers":[{"name":"brianghig","email":"brianghig@gmail.com"},{"name":"rblace","email":"ryan@asymmetrik.com"},{"name":"reblace","email":"rblace@asymmetrik.com"},{"name":"iisluan","email":"ltran@asymmetrik.com"},{"name":"ekoon121","email":"ekoon@asymmetrik.com"},{"name":"robert-w","email":"RWinter85@gmail.com"},{"name":"amarcus","email":"amarcus@asymmetrik.com"},{"name":"jlee-asymmetrik","email":"jlee@asymmetrik.com"},{"name":"soneill","email":"soneill@asymmetrik.com"},{"name":"astadler4asymmetrik","email":"astadler@asymmetrik.com"}],"homepage":"https://github.com/Asymmetrik/ngx-instrumentation#readme","bugs":{"url":"https://github.com/Asymmetrik/ngx-instrumentation/issues"},"dist":{"shasum":"39e683a9444826adf9c658b08229f337077ee279","tarball":"https://registry.npmjs.org/@asymmetrik/ngx-instrumentation/-/ngx-instrumentation-13.0.0.tgz","fileCount":25,"integrity":"sha512-EOfuTk8m7LnCbY5CdYqyIOfKTgDVT8vh2g3Ocg+zmn4x0CsBMpskvcxjp7xVd5Y5BqoU0kJr4N2wChqlrMQaCA==","signatures":[{"sig":"MEUCIQDBTOKDUHn5Gb0SjOz4y2BVsIBcoTKPXlZWQBhYZSEGuQIgbUk+ItbifnxQGAkgTbF0k7vl0gsn1G4ysBOBsjT7o2g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":115586,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiE/8IACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoc2g/6AgWTX6VknRFgZCHA5FjrFQA+wVqrswWAYkjjG8sGYr+NKw0R\r\naNKwjaUFyzOxjh77zZkwbq1FmeaC+ojjBJtKEl9aHSsZu912VCyJVqOW7cr2\r\ns3AnRIYefs0gHvldevAZrgQanJI1pRgAChsGnjCqhaVlAcgQ/aFR6PyNzAL6\r\nvZ7H+h/h3sZ5b4CslznpPqPbjHaSZx1wKRNufWwp1MzoZb51XAntpDAmQfas\r\nJn+pFetKfXJBjGAY8Hjd2hy5IHHvhvVQPTGrSvz7DA3O3cr32FZnO5q2BoyM\r\nbX0gKR7zkO83p+NxP87SJ1jVy2Js6VIS2b7fI+rq+tlja1CQLjo8nhgFVbGl\r\n9ukz4BH49RHFxYQcSXJsbiRciITqfj4EPyx+KpVP8Ul1oD5q3tXAC1Q4LD8P\r\nUOb4JqRW6U1kB+OwshnnNGWlJS33LAaXuFIA0DN5DmM5XUzQOZiYjPONq0NK\r\n6VQPqhwgMNtveIMrdJ7jMIQJfLbXZ/IjC+guhbEl40cRNESjv0MsXayUnXNR\r\nE+0u+XzBXU3o/RjKjsOXBn4E+Su4+XvF8CDBj1tgxjJ0i2jR6PR1WMgn6p22\r\nDaXSE0omwxjbrhGuxCGbPofj0c6JTXHkOaflmrBq7X2+oY9Nu4QuZIg+NgW3\r\nWBcWqU57M9gsHtzfweRGh0l5C8I5w8Wj98Q=\r\n=W3MP\r\n-----END PGP SIGNATURE-----\r\n"},"es2020":"fesm2020/asymmetrik-ngx-instrumentation.mjs","module":"fesm2015/asymmetrik-ngx-instrumentation.mjs","esm2020":"esm2020/asymmetrik-ngx-instrumentation.mjs","exports":{".":{"node":"./fesm2015/asymmetrik-ngx-instrumentation.mjs","types":"./asymmetrik-ngx-instrumentation.d.ts","es2015":"./fesm2015/asymmetrik-ngx-instrumentation.mjs","es2020":"./fesm2020/asymmetrik-ngx-instrumentation.mjs","default":"./fesm2020/asymmetrik-ngx-instrumentation.mjs","esm2020":"./esm2020/asymmetrik-ngx-instrumentation.mjs"},"./package.json":{"default":"./package.json"}},"typings":"asymmetrik-ngx-instrumentation.d.ts","_npmUser":{"name":"rblace","email":"ryan@asymmetrik.com"},"fesm2015":"fesm2015/asymmetrik-ngx-instrumentation.mjs","fesm2020":"fesm2020/asymmetrik-ngx-instrumentation.mjs","copyright":"Copyright Asymmetrik, A BlueHalo Company 2007-2022 - All Rights Reserved.","repository":{"url":"git+https://github.com/Asymmetrik/ngx-instrumentation.git","type":"git"},"_npmVersion":"6.14.16","description":"Angular.io Instrumentation Components and Services","directories":{},"sideEffects":false,"_nodeVersion":"14.19.0","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"13","@angular/common":"13"},"_npmOperationalInternal":{"tmp":"tmp/ngx-instrumentation_13.0.0_1645477640300_0.41621497063488944","host":"s3://npm-registry-packages"}}},"time":{"created":"2017-12-27T16:43:04.872Z","modified":"2026-03-13T16:28:43.100Z","0.0.0":"2017-12-27T16:43:04.872Z","0.0.1":"2017-12-27T20:56:36.793Z","0.0.2":"2017-12-27T21:48:13.257Z","0.0.3":"2018-01-15T18:38:51.777Z","1.0.0":"2018-12-13T02:13:12.521Z","1.0.1":"2018-12-19T03:30:00.334Z","13.0.0":"2022-02-21T21:07:20.491Z"},"bugs":{"url":"https://github.com/Asymmetrik/ngx-instrumentation/issues"},"author":{"name":"Asymmetrik, Ltd."},"license":"MIT","homepage":"https://github.com/Asymmetrik/ngx-instrumentation#readme","repository":{"url":"git+https://github.com/Asymmetrik/ngx-instrumentation.git","type":"git"},"description":"Angular.io Instrumentation Components and Services","maintainers":[{"email":"ryan.blace@bluehalo.com","name":"rblace"},{"email":"reblace@gmail.com","name":"reblace"},{"email":"ekoon@asymmetrik.com","name":"ekoon121"},{"email":"amarcus@asymmetrik.com","name":"amarcus"},{"email":"soneill@asymmetrik.com","name":"soneill"}],"readme":"# @asymmetrik/ngx-instrumentation\n\n[![Build Status][travis-image]][travis-url]\n\n[travis-url]: https://travis-ci.org/Asymmetrik/ngx-instrumentation/\n[travis-image]: https://travis-ci.org/Asymmetrik/ngx-instrumentation.svg\n\n> Components, services, and classes to help instrument Angular.io applications \n\n## Table of Contents\n- [Install](#install)\n- [Usage](#usage)\n- [Structure](#structure)\n- [Changelog](#changelog)\n- [Contribute](#contribute)\n- [License](#license)\n\n\n## Install\n \nInstall the package and its peer dependencies via npm (or yarn):\n\n```\nnpm install ngx-instrumentation\n```\n\nIf you want to run the demo, clone the repository, perform an ```npm install```, ```npm run demo``` and then go to http://localhost:4200\n\n\n## Usage\nThis library consists of an instrumentation service as well as several integrations.\nThe instrumentation service handles \"events\" that are generated by the integrations.\n\n### Include the Instrumentation Module\nThe first step is to include the ngx-instrumentation module in your application.\n\n```js\nimport { InstrumentationModule } from '@asymmetrik/ngx-instrumentation';\n\n...\nimports: [\n    ...\n    InstrumentationModule.forRoot()\n]\n...\n```\n\n### Configure An Instrumentation Service\nStep two is to provide your desired instrumentation service to the application.\nYou should do this in your application module to ensure the service is available to the entire application.\n\nThere are two instrumentation services included in this package: ```InstrumentationService``` and ```ServerInstrumentationService```.\n```InstrumentationService``` logs all events to the console, which is likely only useful in development and testing.\n```ServerInstrumentationService``` submits all events to a configurable REST endpoint, which is useful if you want to log events to your server.\nIf you would like to send events to a custom external service (e.g., Piwik, Google Analytics, etc.), you can provide your own service.\n\n\n#### Instrumentation Service (Browser Console Logging only)\nThe default instrumentation service (InstrumentationService) logs events to the browser console and is only really useful for development and testing purposes.\nTo use it, provide InstrumentationService as follows:  \n\n```js\nimport { InstrumentationModule, InstrumentationService } from '@asymmetrik/ngx-instrumnetation';\n...\nproviders: [\n    ...\n    InstrumentationService\n]\n...\n```\n\n#### Server Instrumentation Service (Server Logging)\nFor server-side logging of events, use the ```ServerInstrumentationService```.\n\nTo configure this service, you must pass a factory method to the provider and use ```useFactory```.\nThis avoids a cyclical dependency and allows you to customize the REST endpoint for collecting the metrics.\nIn the following example, the REST call will be a POST to ```api/metrics```.\n\n```js\nimport { HttpBackend, HttpClientModule } from '@angular/common/http';\nimport { InstrumentationModule, InstrumentationService, ServerInstrumentationService } from '@asymmetrik/ngx-instrumentation';\n\n@NgModule({\n  ...\n  imports: [\n  \t...\n    HttpClientModule,\n    InstrumentationModule,\n    ...\n  ],\n  providers: [\n  \t...\n    { provide: InstrumentationService, useFactory: serverInstrumentationServiceFactory, deps: [ HttpBackend ] },\n    ...\n  ],\n  ...\n})\nexport class AppModule { }\n\nexport function serverInstrumentationServiceFactory(httpBackend: HttpBackend) {\n\tconst svc = new ServerInstrumentationService(httpBackend);\n\tsvc.url = '/api/metrics';\n\n\treturn svc;\n}\n\n```\n\n#### Custom Service\nTo use your own custom service, configuration would be similar to that of ```ServerInstrumentationService```.\nThe actual service should extend the ```InstrumentationService``` class.\n\n\n### Configure Integrations\nOnce the instrumentation service is configured, you need to set up the integrations that will generate metrics.\nCurrently, the plugin contains the following integrations:\n\n* Router Event Handler\n* Global Error Handler\n* HTTP Interceptor \n \n#### Router Event Handler\nThis integration listens to Router events and passes them to the instrumentation service, including the previous and current route information.\nIt is implemented as a component that needs to be placed in the application template.\nSee the following example:\n\n```html\n<section class=\"container\">\n  ...\n  <!-- Insert the following component into your application template -->\n  <routerInstrumentation></routerInstrumentation>\n  ...\n</section>\n``` \n\n### Global Error Handler\nThis integration captures handles errors generated by the application and passes them to the instrumentation service.\nTo configure it, you have to provide the ```InstrumentErrorHandler``` to the application as follows:\n\n```js\nimport { ErrorHandler, NgModule } from '@angular/core';\nimport { InstrumentationModule, InstrumentErrorHandler } from '@asymmetrik/ngx-instrumentation';\n\n@NgModule({\n  ...\n  providers: [\n    { provide: ErrorHandler, useClass: InstrumentErrorHandler }\n    ...\n  ],\n  ...\n})\nexport class AppModule { }\n```\n\n*Note:* The global error handler will handle all Angular zone errors.\nTo help with development (and to ensure that errors aren't ignored), the plugin still logs errors to the client error console.\nTo disable this and hide all Angular errors from the client, you can configure the ```InstrumentErrorHandler``` using ```useFactory``` as follows:\n\n```js\nimport { ErrorHandler, NgModule } from '@angular/core';\nimport { InstrumentationModule, InstrumentErrorHandler, InstrumentationService } from '@asymmetrik/ngx-instrumentation';\n\n@NgModule({\n  ...\n  providers: [\n  \t...\n    { provide: ErrorHandler, useFactory: errorHandlerFactory, deps: [ InstrumentationService ] },\n    ...\n  ],\n  ...\n})\nexport class AppModule { }\n\nexport function errorHandlerFactory(instrumentationService: InstrumentationService) {\n\tconst handler = new InstrumentErrorHandler(instrumentationService);\n\thandler.logErrorsToConsole = true;\n\n\treturn handler;\n}\n\n```\n\n### HTTP Interceptor\nThis integration captures all HTTP calls made in the application.\nExcludes parameters and body info by default (so it doesn't log sensitive information like passwords).\nYou can override the config by using useFactory like how you do for the ServerInstrumentationService.\nTo configure it, you have to provide the Instrument HTTP interceptor.\n\n```js\nimport { HTTP_INTERCEPTORS, HttpClient, HttpClientModule } from '@angular/common/http';\nimport { InstrumentationModule, InstrumentHttpInterceptor } from '@asymmetrik/ngx-instrumentation';\n\n@NgModule({\n  ...\n  imports: [\n  \t...\n    HttpClientModule,\n    InstrumentationModule,\n    ...\n  ],\n  providers: [\n    HttpClient,\n    { provide: HTTP_INTERCEPTORS, useClass: InstrumentHttpInterceptor, multi: true },\n    ...\n  ],\n  ...\n})\nexport class AppModule { }\n```\n\n\n\n## Changelog\n\n### 1.0.0\n- Angular 7\n- Started using the HtmlWebpackPlugin to generate the index.html file in the dist dir, so you don't need to add `/src/demo` to the end of the URL to hit the demo.\n\n## Contribute\nPRs accepted. If you are part of Asymmetrik, please make contributions on feature branches off of the ```develop``` branch. If you are outside of Asymmetrik, please fork our repo to make contributions.\n\n## License\nSee LICENSE in repository for details.\n","readmeFilename":"README.md"}