UNPKG

ngx-logger

Version:

[![npm version](https://badge.fury.io/js/ngx-logger.svg)](https://www.npmjs.com/package/ngx-logger)

16 lines (14 loc) 18.5 kB
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("@angular/common/http"),require("@angular/core"),require("rxjs"),require("rxjs/operators"),require("vlq"),require("@angular/common")):"function"==typeof define&&define.amd?define("ngx-logger",["exports","@angular/common/http","@angular/core","rxjs","rxjs/operators","vlq","@angular/common"],r):r((e="undefined"!=typeof globalThis?globalThis:e||self)["ngx-logger"]={},e.ng.common.http,e.ng.core,e.rxjs,e.rxjs.operators,e.vlq,e.ng.common)}(this,(function(e,r,t,o,n,i,a){"use strict";var s="TOKEN_LOGGER_CONFIG",c=function(){function e(e){this.config=this._clone(e)}return Object.defineProperty(e.prototype,"level",{get:function(){return this.config.level},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"serverLogLevel",{get:function(){return this.config.serverLogLevel},enumerable:!1,configurable:!0}),e.prototype.updateConfig=function(e){this.config=this._clone(e)},e.prototype.getConfig=function(){return this._clone(this.config)},e.prototype._clone=function(e){var r={level:null};return Object.keys(e).forEach((function(t){r[t]=e[t]})),r},e}(),u="TOKEN_LOGGER_CONFIG_ENGINE_FACTORY",l=function(){function e(){}return e.prototype.provideConfigEngine=function(e){return new c(e)},e}(),p="TOKEN_LOGGER_MAPPER_SERVICE",g=function(){function e(e){this.httpBackend=e,this.sourceMapCache=new Map,this.logPositionCache=new Map}return e.prototype.getLogPosition=function(e,r){var t=this.getStackLine(e);if(!t)return o.of({fileName:"",lineNumber:0,columnNumber:0});var n=this.getLocalPosition(t);if(!e.enableSourceMaps)return o.of(n);var i=this.getSourceMapLocation(t);return this.getSourceMap(i,n)},e.prototype.getStackLine=function(e){var r=new Error;try{throw r}catch(o){try{var t=4;return r.stack.split("\n")[0].includes(".js:")||(t+=1),r.stack.split("\n")[t+(e.proxiedSteps||0)]}catch(e){return null}}},e.prototype.getLocalPosition=function(e){var r=e.lastIndexOf("/"),t=e.indexOf(")");t<0&&(t=void 0);var o=e.substring(r+1,t).split(":");return 3===o.length?{fileName:o[0],lineNumber:+o[1],columnNumber:+o[2]}:{fileName:"unknown",lineNumber:0,columnNumber:0}},e.prototype.getTranspileLocation=function(e){var r=e.indexOf("(");r<0&&(r=e.lastIndexOf("@"))<0&&(r=e.lastIndexOf(" "));var t=e.indexOf(")");return t<0&&(t=void 0),e.substring(r+1,t)},e.prototype.getSourceMapLocation=function(e){var r=this.getTranspileLocation(e),t=r.substring(0,r.lastIndexOf(":"));return t.substring(0,t.lastIndexOf(":"))+".map"},e.prototype.getMapping=function(e,r){for(var t=0,o=0,n=0,a=e.mappings.split(";"),s=0;s<a.length;s++)for(var c=0,u=a[s].split(","),l=0;l<u.length;l++){var p=i.decode(u[l]);if(p.length>=4&&(c+=p[0],t+=p[1],o+=p[2],n+=p[3]),s===r.lineNumber){if(c===r.columnNumber)return{fileName:e.sources[t],lineNumber:o,columnNumber:n};if(l+1===u.length)return{fileName:e.sources[t],lineNumber:o,columnNumber:0}}}return{fileName:"unknown",lineNumber:0,columnNumber:0}},e.prototype.getSourceMap=function(e,t){var i=this,a=new r.HttpRequest("GET",e),s=t.fileName+":"+t.lineNumber+":"+t.columnNumber;if(this.logPositionCache.has(s))return this.logPositionCache.get(s);this.sourceMapCache.has(e)||(this.httpBackend?this.sourceMapCache.set(e,this.httpBackend.handle(a).pipe(n.filter((function(e){return e instanceof r.HttpResponse})),n.map((function(e){return e.body})),n.retry(3),n.shareReplay(1))):(console.error("NGXLogger : Can't get sourcemap because HttpBackend is not provided. You need to import HttpClientModule"),this.sourceMapCache.set(e,o.of(null))));var c=this.sourceMapCache.get(e).pipe(n.map((function(e){return e?i.getMapping(e,t):t})),n.catchError((function(){return o.of(t)})),n.shareReplay(1));return this.logPositionCache.set(s,c),c},e}();g.ɵfac=function(e){return new(e||g)(t.ɵɵinject(r.HttpBackend,8))},g.ɵprov=t.ɵɵdefineInjectable({token:g,factory:g.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(g,[{type:t.Injectable}],(function(){return[{type:r.HttpBackend,decorators:[{type:t.Optional}]}]}),null);var d="TOKEN_LOGGER_METADATA_SERVICE",f=function(){function e(e){this.datePipe=e}return e.prototype.computeTimestamp=function(e){var r=function(){return(new Date).toISOString()};return e.timestampFormat?this.datePipe?this.datePipe.transform(new Date,e.timestampFormat):(console.error("NGXLogger : Can't use timeStampFormat because DatePipe is not provided. You need to provide DatePipe"),r()):r()},e.prototype.getMetadata=function(e,r,t,o){var n={level:e,additional:o};return n.message=t&&"function"==typeof t?t():t,n.timestamp=this.computeTimestamp(r),n},e}();f.ɵfac=function(e){return new(e||f)(t.ɵɵinject(a.DatePipe,8))},f.ɵprov=t.ɵɵdefineInjectable({token:f,factory:f.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(f,[{type:t.Injectable}],(function(){return[{type:a.DatePipe,decorators:[{type:t.Optional}]}]}),null);var v=function(){},h="TOKEN_LOGGER_RULES_SERVICE",y=function(){function e(){}return e.prototype.shouldCallWriter=function(e,r,t,o){return!r.disableConsoleLogging&&e>=r.level},e.prototype.shouldCallServer=function(e,r,t,o){return!!r.serverLoggingUrl&&e>=r.serverLogLevel},e.prototype.shouldCallMonitor=function(e,r,t,o){return this.shouldCallWriter(e,r,t,o)||this.shouldCallServer(e,r,t,o)},e}();y.ɵfac=function(e){return new(e||y)},y.ɵprov=t.ɵɵdefineInjectable({token:y,factory:y.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(y,[{type:t.Injectable}],null,null);var m="TOKEN_LOGGER_SERVER_SERVICE",E=function(){function e(e){this.httpBackend=e}return e.prototype.secureErrorObject=function(e){return null==e?void 0:e.stack},e.prototype.secureAdditionalParameters=function(e){var r=this;return null==e?null:e.map((function(e,t){try{return e instanceof Error?r.secureErrorObject(e):("object"==typeof e&&JSON.stringify(e),e)}catch(e){return"The additional["+t+"] value could not be parsed using JSON.stringify()."}}))},e.prototype.secureMessage=function(e){try{if(e instanceof Error)return this.secureErrorObject(e);"string"!=typeof e&&(e=JSON.stringify(e,null,2))}catch(r){e='The provided "message" value could not be parsed with JSON.stringify().'}return e},e.prototype.logOnServer=function(e,t,i){var a=new r.HttpRequest("POST",e,t,i||{});return this.httpBackend?this.httpBackend.handle(a).pipe(n.filter((function(e){return e instanceof r.HttpResponse})),n.map((function(e){return e.body}))):(console.error("NGXLogger : Can't log on server because HttpBackend is not provided. You need to import HttpClientModule"),o.of(null))},e.prototype.customiseRequestBody=function(e){return e},e.prototype.sendToServer=function(e,t){var i=Object.assign({},e);i.additional=this.secureAdditionalParameters(i.additional),i.message=this.secureMessage(i.message);var a=this.customiseRequestBody(i),s=t.customHttpHeaders||new r.HttpHeaders;s.has("Content-Type")||s.set("Content-Type","application/json"),this.logOnServer(t.serverLoggingUrl,a,{headers:s,params:t.customHttpParams||new r.HttpParams,responseType:t.httpResponseType||"json",withCredentials:t.withCredentials||!1}).pipe(n.catchError((function(e){return console.error("NGXLogger: Failed to log on server",e),o.throwError(e)}))).subscribe()},e}();E.ɵfac=function(e){return new(e||E)(t.ɵɵinject(r.HttpBackend,8))},E.ɵprov=t.ɵɵdefineInjectable({token:E,factory:E.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(E,[{type:t.Injectable}],(function(){return[{type:r.HttpBackend,decorators:[{type:t.Optional}]}]}),null);var N="TOKEN_LOGGER_WRITER_SERVICE"; /*! ***************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */Object.create;function L(e,r){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var o,n,i=t.call(e),a=[];try{for(;(void 0===r||r-- >0)&&!(o=i.next()).done;)a.push(o.value)}catch(e){n={error:e}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(n)throw n.error}}return a}function O(){for(var e=[],r=0;r<arguments.length;r++)e=e.concat(L(arguments[r]));return e}var b;Object.create;(b=e.NgxLoggerLevel||(e.NgxLoggerLevel={}))[b.TRACE=0]="TRACE",b[b.DEBUG=1]="DEBUG",b[b.INFO=2]="INFO",b[b.LOG=3]="LOG",b[b.WARN=4]="WARN",b[b.ERROR=5]="ERROR",b[b.FATAL=6]="FATAL",b[b.OFF=7]="OFF";var C=["purple","teal","gray","gray","red","red","red"],R=function(){function r(e){this.platformId=e,this.isIE=a.isPlatformBrowser(e)&&navigator&&navigator.userAgent&&!(-1===navigator.userAgent.indexOf("MSIE")&&!navigator.userAgent.match(/Trident\//)&&!navigator.userAgent.match(/Edge\//)),this.logFunc=this.isIE?this.logIE.bind(this):this.logModern.bind(this)}return r.prototype.prepareMetaString=function(r,t){var o=!0===t.disableFileDetails?"":"["+r.fileName+":"+r.lineNumber+":"+r.columnNumber+"]";return r.timestamp+" "+e.NgxLoggerLevel[r.level]+" "+o},r.prototype.getColor=function(r,t){var o,n=null!==(o=t.colorScheme)&&void 0!==o?o:C;if(r.level!==e.NgxLoggerLevel.OFF)return n[r.level]},r.prototype.logIE=function(r,t,o){var n=r.additional||[];switch(r.level){case e.NgxLoggerLevel.WARN:console.warn.apply(console,O([o+" ",r.message],n));break;case e.NgxLoggerLevel.ERROR:case e.NgxLoggerLevel.FATAL:console.error.apply(console,O([o+" ",r.message],n));break;case e.NgxLoggerLevel.INFO:console.info.apply(console,O([o+" ",r.message],n));break;default:console.log.apply(console,O([o+" ",r.message],n))}},r.prototype.logModern=function(r,t,o){var n=this.getColor(r,t),i=r.additional||[];switch(r.level){case e.NgxLoggerLevel.WARN:console.warn.apply(console,O(["%c"+o,"color:"+n,r.message],i));break;case e.NgxLoggerLevel.ERROR:case e.NgxLoggerLevel.FATAL:console.error.apply(console,O(["%c"+o,"color:"+n,r.message],i));break;case e.NgxLoggerLevel.INFO:console.info.apply(console,O(["%c"+o,"color:"+n,r.message],i));break;case e.NgxLoggerLevel.DEBUG:console.debug.apply(console,O(["%c"+o,"color:"+n,r.message],i));break;default:console.log.apply(console,O(["%c"+o,"color:"+n,r.message],i))}},r.prototype.writeMessage=function(e,r){var t=this.prepareMetaString(e,r);this.logFunc(e,r,t)},r}();R.ɵfac=function(e){return new(e||R)(t.ɵɵinject(t.PLATFORM_ID))},R.ɵprov=t.ɵɵdefineInjectable({token:R,factory:R.ɵfac}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(R,[{type:t.Injectable}],(function(){return[{type:void 0,decorators:[{type:t.Inject,args:[t.PLATFORM_ID]}]}]}),null);var S=function(){function r(e,r,t,o,n,i,a){this.metadataService=t,this.ruleService=o,this.mapperService=n,this.writerService=i,this.serverService=a,this.configEngine=r.provideConfigEngine(e)}return Object.defineProperty(r.prototype,"level",{get:function(){return this.configEngine.level},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"serverLogLevel",{get:function(){return this.configEngine.serverLogLevel},enumerable:!1,configurable:!0}),r.prototype.trace=function(r){for(var t=[],o=1;o<arguments.length;o++)t[o-1]=arguments[o];this._log(e.NgxLoggerLevel.TRACE,r,t)},r.prototype.debug=function(r){for(var t=[],o=1;o<arguments.length;o++)t[o-1]=arguments[o];this._log(e.NgxLoggerLevel.DEBUG,r,t)},r.prototype.info=function(r){for(var t=[],o=1;o<arguments.length;o++)t[o-1]=arguments[o];this._log(e.NgxLoggerLevel.INFO,r,t)},r.prototype.log=function(r){for(var t=[],o=1;o<arguments.length;o++)t[o-1]=arguments[o];this._log(e.NgxLoggerLevel.LOG,r,t)},r.prototype.warn=function(r){for(var t=[],o=1;o<arguments.length;o++)t[o-1]=arguments[o];this._log(e.NgxLoggerLevel.WARN,r,t)},r.prototype.error=function(r){for(var t=[],o=1;o<arguments.length;o++)t[o-1]=arguments[o];this._log(e.NgxLoggerLevel.ERROR,r,t)},r.prototype.fatal=function(r){for(var t=[],o=1;o<arguments.length;o++)t[o-1]=arguments[o];this._log(e.NgxLoggerLevel.FATAL,r,t)},r.prototype.setCustomHttpHeaders=function(e){var r=this.getConfigSnapshot();r.customHttpHeaders=e,this.updateConfig(r)},r.prototype.setCustomParams=function(e){var r=this.getConfigSnapshot();r.customHttpParams=e,this.updateConfig(r)},r.prototype.setWithCredentialsOptionValue=function(e){var r=this.getConfigSnapshot();r.withCredentials=e,this.updateConfig(r)},r.prototype.registerMonitor=function(e){this._loggerMonitor=e},r.prototype.updateConfig=function(e){this.configEngine.updateConfig(e)},r.prototype.getConfigSnapshot=function(){return this.configEngine.getConfig()},r.prototype._log=function(e,r,t){var o=this;void 0===t&&(t=[]);var i=this.configEngine.getConfig(),a=this.ruleService.shouldCallWriter(e,i,r,t),s=this.ruleService.shouldCallServer(e,i,r,t),c=this.ruleService.shouldCallMonitor(e,i,r,t);if(a||s||c){var u=this.metadataService.getMetadata(e,i,r,t);this.mapperService.getLogPosition(i,u).pipe(n.take(1)).subscribe((function(e){e&&(u.fileName=e.fileName,u.lineNumber=e.lineNumber,u.columnNumber=e.columnNumber),c&&o._loggerMonitor&&o._loggerMonitor.onLog(u,i),a&&o.writerService.writeMessage(u,i),s&&o.serverService.sendToServer(u,i)}))}},r}();S.ɵfac=function(e){return new(e||S)(t.ɵɵinject(s),t.ɵɵinject(u),t.ɵɵinject(d),t.ɵɵinject(h),t.ɵɵinject(p),t.ɵɵinject(N),t.ɵɵinject(m))},S.ɵprov=t.ɵɵdefineInjectable({token:S,factory:S.ɵfac,providedIn:"root"}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(S,[{type:t.Injectable,args:[{providedIn:"root"}]}],(function(){return[{type:void 0,decorators:[{type:t.Inject,args:[s]}]},{type:void 0,decorators:[{type:t.Inject,args:[u]}]},{type:void 0,decorators:[{type:t.Inject,args:[d]}]},{type:void 0,decorators:[{type:t.Inject,args:[h]}]},{type:void 0,decorators:[{type:t.Inject,args:[p]}]},{type:void 0,decorators:[{type:t.Inject,args:[N]}]},{type:void 0,decorators:[{type:t.Inject,args:[m]}]}]}),null);var _=function(){function e(e,r,t,o,n,i){this.configEngineFactory=e,this.metadataService=r,this.ruleService=t,this.mapperService=o,this.writerService=n,this.serverService=i}return e.prototype.create=function(e,r,t,o){var n=new S(e,this.configEngineFactory,this.metadataService,this.ruleService,o||this.mapperService,this.writerService,r||this.serverService);return t&&n.registerMonitor(t),n},e}();_.ɵfac=function(e){return new(e||_)(t.ɵɵinject(u),t.ɵɵinject(d),t.ɵɵinject(h),t.ɵɵinject(p),t.ɵɵinject(N),t.ɵɵinject(m))},_.ɵprov=t.ɵɵdefineInjectable({token:_,factory:_.ɵfac,providedIn:"root"}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(_,[{type:t.Injectable,args:[{providedIn:"root"}]}],(function(){return[{type:void 0,decorators:[{type:t.Inject,args:[u]}]},{type:void 0,decorators:[{type:t.Inject,args:[d]}]},{type:void 0,decorators:[{type:t.Inject,args:[h]}]},{type:void 0,decorators:[{type:t.Inject,args:[p]}]},{type:void 0,decorators:[{type:t.Inject,args:[N]}]},{type:void 0,decorators:[{type:t.Inject,args:[m]}]}]}),null);var M=function(){function e(){}return e.forRoot=function(r,t){if(t||(t={}),t.configProvider){if(t.configProvider.provide!==s)throw new Error("Wrong injection token for configProvider, it should be TOKEN_LOGGER_CONFIG and you used "+t.configProvider.provide)}else t.configProvider={provide:s,useValue:r||{}};if(t.configEngineFactoryProvider){if(t.configEngineFactoryProvider.provide!==u)throw new Error("Wrong injection token for configEngineFactoryProvider, it should be 'TOKEN_LOGGER_CONFIG_ENGINE_FACTORY' and you used '"+t.configEngineFactoryProvider.provide+"'")}else t.configEngineFactoryProvider={provide:u,useClass:l};if(t.metadataProvider){if(t.metadataProvider.provide!==d)throw new Error("Wrong injection token for metadataProvider, it should be 'TOKEN_LOGGER_METADATA_SERVICE' and you used '"+t.metadataProvider.provide+"'")}else t.metadataProvider={provide:d,useClass:f};if(t.ruleProvider){if(t.ruleProvider.provide!==h)throw new Error("Wrong injection token for ruleProvider, it should be 'TOKEN_LOGGER_RULES_SERVICE' and you used '"+t.ruleProvider.provide+"'")}else t.ruleProvider={provide:h,useClass:y};if(t.mapperProvider){if(t.mapperProvider.provide!==p)throw new Error("Wrong injection token for mapperProvider, it should be 'TOKEN_LOGGER_MAPPER_SERVICE' and you used '"+t.mapperProvider.provide+"'")}else t.mapperProvider={provide:p,useClass:g};if(t.writerProvider){if(t.writerProvider.provide!==N)throw new Error("Wrong injection token for writerProvider, it should be 'TOKEN_LOGGER_WRITER_SERVICE' and you used '"+t.writerProvider.provide+"'")}else t.writerProvider={provide:N,useClass:R};if(t.serverProvider){if(t.serverProvider.provide!==m)throw new Error("Wrong injection token for serverProvider, it should be 'TOKEN_LOGGER_SERVER_SERVICE' and you used '"+t.writerProvider.provide+"'")}else t.serverProvider={provide:m,useClass:E};return{ngModule:e,providers:[S,t.configProvider,t.configEngineFactoryProvider,t.metadataProvider,t.ruleProvider,t.mapperProvider,t.writerProvider,t.serverProvider,_]}},e.forChild=function(){return{ngModule:e}},e}();M.ɵfac=function(e){return new(e||M)},M.ɵmod=t.ɵɵdefineNgModule({type:M}),M.ɵinj=t.ɵɵdefineInjector({imports:[[a.CommonModule]]}),("undefined"==typeof ngJitMode||ngJitMode)&&t.ɵɵsetNgModuleScope(M,{imports:[a.CommonModule]}),("undefined"==typeof ngDevMode||ngDevMode)&&t.ɵsetClassMetadata(M,[{type:t.NgModule,args:[{imports:[a.CommonModule]}]}],null,null),e.CustomNGXLoggerService=_,e.DEFAULT_COLOR_SCHEME=C,e.LoggerModule=M,e.NGXLogger=S,e.NGXLoggerConfigEngine=c,e.NGXLoggerConfigEngineFactory=l,e.NGXLoggerMapperService=g,e.NGXLoggerMetadataService=f,e.NGXLoggerMonitor=v,e.NGXLoggerRulesService=y,e.NGXLoggerServerService=E,e.NGXLoggerWriterService=R,e.TOKEN_LOGGER_CONFIG=s,e.TOKEN_LOGGER_CONFIG_ENGINE_FACTORY=u,e.TOKEN_LOGGER_MAPPER_SERVICE=p,e.TOKEN_LOGGER_METADATA_SERVICE=d,e.TOKEN_LOGGER_RULES_SERVICE=h,e.TOKEN_LOGGER_SERVER_SERVICE=m,e.TOKEN_LOGGER_WRITER_SERVICE=N,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=ngx-logger.umd.min.js.map