hud-sdk
Version:
Hud's Node SDK
2 lines • 34.1 kB
JavaScript
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var s=t();for(var r in s)("object"==typeof exports?exports:e)[r]=s[r]}}(global,()=>(()=>{"use strict";var e={504:(e,t,s)=>{const r=s(857),i=s(8545),o=s(2358)("winston:exception"),n=s(5422),a=s(8716),l=s(5238);e.exports=class{constructor(e){if(!e)throw new Error("Logger is required to handle exceptions");this.logger=e,this.handlers=new Map}handle(...e){e.forEach(e=>{if(Array.isArray(e))return e.forEach(e=>this._addHandler(e));this._addHandler(e)}),this.catcher||(this.catcher=this._uncaughtException.bind(this),process.on("uncaughtException",this.catcher))}unhandle(){this.catcher&&(process.removeListener("uncaughtException",this.catcher),this.catcher=!1,Array.from(this.handlers.values()).forEach(e=>this.logger.unpipe(e)))}getAllInfo(e){let t=null;return e&&(t="string"==typeof e?e:e.message),{error:e,level:"error",message:[`uncaughtException: ${t||"(no error message)"}`,e&&e.stack||" No stack trace"].join("\n"),stack:e&&e.stack,exception:!0,date:(new Date).toString(),process:this.getProcessInfo(),os:this.getOsInfo(),trace:this.getTrace(e)}}getProcessInfo(){return{pid:process.pid,uid:process.getuid?process.getuid():null,gid:process.getgid?process.getgid():null,cwd:process.cwd(),execPath:process.execPath,version:process.version,argv:process.argv,memoryUsage:process.memoryUsage()}}getOsInfo(){return{loadavg:r.loadavg(),uptime:r.uptime()}}getTrace(e){return(e?a.parse(e):a.get()).map(e=>({column:e.getColumnNumber(),file:e.getFileName(),function:e.getFunctionName(),line:e.getLineNumber(),method:e.getMethodName(),native:e.isNative()}))}_addHandler(e){if(!this.handlers.has(e)){e.handleExceptions=!0;const t=new l(e);this.handlers.set(e,t),this.logger.pipe(t)}}_uncaughtException(e){const t=this.getAllInfo(e),s=this._getExceptionHandlers();let r,a="function"==typeof this.logger.exitOnError?this.logger.exitOnError(e):this.logger.exitOnError;function l(){o("doExit",a),o("process._exiting",process._exiting),a&&!process._exiting&&(r&&clearTimeout(r),process.exit(1))}if(!s.length&&a&&(console.warn("winston: exitOnError cannot be true with no exception handlers."),console.warn("winston: not exiting process."),a=!1),!s||0===s.length)return process.nextTick(l);i(s,(e,t)=>{const s=n(t),r=e.transport||e;function i(e){return()=>{o(e),s()}}r._ending=!0,r.once("finish",i("finished")),r.once("error",i("error"))},()=>a&&l()),this.logger.log(t),a&&(r=setTimeout(l,3e3))}_getExceptionHandlers(){return this.logger.transports.filter(e=>(e.transport||e).handleExceptions)}}},555:(e,t,s)=>{const r=s(6580),{warn:i}=s(2159);t.version=s(6256).version,t.transports=s(3475),t.config=s(4575),t.addColors=r.levels,t.format=r.format,t.createLogger=s(2751),t.Logger=s(8010),t.ExceptionHandler=s(504),t.RejectionHandler=s(2134),t.Container=s(7083),t.Transport=s(1620),t.loggers=new t.Container;const o=t.createLogger();Object.keys(t.config.npm.levels).concat(["log","query","stream","add","remove","clear","profile","startTimer","handleExceptions","unhandleExceptions","handleRejections","unhandleRejections","configure","child"]).forEach(e=>t[e]=(...t)=>o[e](...t)),Object.defineProperty(t,"level",{get:()=>o.level,set(e){o.level=e}}),Object.defineProperty(t,"exceptions",{get:()=>o.exceptions}),Object.defineProperty(t,"rejections",{get:()=>o.rejections}),["exitOnError"].forEach(e=>{Object.defineProperty(t,e,{get:()=>o[e],set(t){o[e]=t}})}),Object.defineProperty(t,"default",{get:()=>({exceptionHandlers:o.exceptionHandlers,rejectionHandlers:o.rejectionHandlers,transports:o.transports})}),i.deprecated(t,"setLevels"),i.forFunctions(t,"useFormat",["cli"]),i.forProperties(t,"useFormat",["padLevels","stripColors"]),i.forFunctions(t,"deprecated",["addRewriter","addFilter","clone","extend"]),i.forProperties(t,"deprecated",["emitErrs","levelLength"])},735:e=>{e.exports=require("safe-stable-stringify")},857:e=>{e.exports=require("os")},1620:e=>{e.exports=require("winston-transport")},2134:(e,t,s)=>{const r=s(857),i=s(8545),o=s(2358)("winston:rejection"),n=s(5422),a=s(8716),l=s(4048);e.exports=class{constructor(e){if(!e)throw new Error("Logger is required to handle rejections");this.logger=e,this.handlers=new Map}handle(...e){e.forEach(e=>{if(Array.isArray(e))return e.forEach(e=>this._addHandler(e));this._addHandler(e)}),this.catcher||(this.catcher=this._unhandledRejection.bind(this),process.on("unhandledRejection",this.catcher))}unhandle(){this.catcher&&(process.removeListener("unhandledRejection",this.catcher),this.catcher=!1,Array.from(this.handlers.values()).forEach(e=>this.logger.unpipe(e)))}getAllInfo(e){let t=null;return e&&(t="string"==typeof e?e:e.message),{error:e,level:"error",message:[`unhandledRejection: ${t||"(no error message)"}`,e&&e.stack||" No stack trace"].join("\n"),stack:e&&e.stack,rejection:!0,date:(new Date).toString(),process:this.getProcessInfo(),os:this.getOsInfo(),trace:this.getTrace(e)}}getProcessInfo(){return{pid:process.pid,uid:process.getuid?process.getuid():null,gid:process.getgid?process.getgid():null,cwd:process.cwd(),execPath:process.execPath,version:process.version,argv:process.argv,memoryUsage:process.memoryUsage()}}getOsInfo(){return{loadavg:r.loadavg(),uptime:r.uptime()}}getTrace(e){return(e?a.parse(e):a.get()).map(e=>({column:e.getColumnNumber(),file:e.getFileName(),function:e.getFunctionName(),line:e.getLineNumber(),method:e.getMethodName(),native:e.isNative()}))}_addHandler(e){if(!this.handlers.has(e)){e.handleRejections=!0;const t=new l(e);this.handlers.set(e,t),this.logger.pipe(t)}}_unhandledRejection(e){const t=this.getAllInfo(e),s=this._getRejectionHandlers();let r,a="function"==typeof this.logger.exitOnError?this.logger.exitOnError(e):this.logger.exitOnError;function l(){o("doExit",a),o("process._exiting",process._exiting),a&&!process._exiting&&(r&&clearTimeout(r),process.exit(1))}if(!s.length&&a&&(console.warn("winston: exitOnError cannot be true with no rejection handlers."),console.warn("winston: not exiting process."),a=!1),!s||0===s.length)return process.nextTick(l);i(s,(e,t)=>{const s=n(t),r=e.transport||e;function i(e){return()=>{o(e),s()}}r._ending=!0,r.once("finish",i("finished")),r.once("error",i("error"))},()=>a&&l()),this.logger.log(t),a&&(r=setTimeout(l,3e3))}_getRejectionHandlers(){return this.logger.transports.filter(e=>(e.transport||e).handleRejections)}}},2159:(e,t,s)=>{const{format:r}=s(9023);t.warn={deprecated:e=>()=>{throw new Error(r("{ %s } was removed in winston@3.0.0.",e))},useFormat:e=>()=>{throw new Error([r("{ %s } was removed in winston@3.0.0.",e),"Use a custom winston.format = winston.format(function) instead."].join("\n"))},forFunctions(e,s,r){r.forEach(r=>{e[r]=t.warn[s](r)})},forProperties(e,s,r){r.forEach(r=>{const i=t.warn[s](r);Object.defineProperty(e,r,{get:i,set:i})})}}},2211:e=>{e.exports=require("readable-stream")},2358:e=>{e.exports=require("@dabh/diagnostics")},2751:(e,t,s)=>{const{LEVEL:r}=s(5500),i=s(4575),o=s(8010),n=s(2358)("winston:create-logger");e.exports=function(e={}){e.levels=e.levels||i.npm.levels;class t extends o{constructor(e){super(e)}}const s=new t(e);return Object.keys(e.levels).forEach(function(e){n('Define prototype method for "%s"',e),"log"!==e?(t.prototype[e]=function(...t){const i=this||s;if(1===t.length){const[o]=t,n=o&&o.message&&o||{message:o};return n.level=n[r]=e,i._addDefaultMeta(n),i.write(n),this||s}return 0===t.length?(i.log(e,""),i):i.log(e,...t)},t.prototype[function(e){return"is"+e.charAt(0).toUpperCase()+e.slice(1)+"Enabled"}(e)]=function(){return(this||s).isLevelEnabled(e)}):console.warn('Level "log" not defined: conflicts with the method "log". Use a different level name.')}),s}},3106:e=>{e.exports=require("zlib")},3318:e=>{e.exports=require("string_decoder")},3475:(e,t,s)=>{Object.defineProperty(t,"Console",{configurable:!0,enumerable:!0,get:()=>s(7522)}),Object.defineProperty(t,"File",{configurable:!0,enumerable:!0,get:()=>s(4873)}),Object.defineProperty(t,"Http",{configurable:!0,enumerable:!0,get:()=>s(5071)}),Object.defineProperty(t,"Stream",{configurable:!0,enumerable:!0,get:()=>s(5767)})},3583:(e,t,s)=>{e.exports=class{constructor(e){const t=s(8010);if("object"!=typeof e||Array.isArray(e)||!(e instanceof t))throw new Error("Logger is required for profiling");this.logger=e,this.start=Date.now()}done(...e){"function"==typeof e[e.length-1]&&(console.warn("Callback function no longer supported as of winston@3.0.0"),e.pop());const t="object"==typeof e[e.length-1]?e.pop():{};return t.level=t.level||"info",t.durationMs=Date.now()-this.start,this.logger.write(t)}}},3603:e=>{e.exports=require("logform/json")},4048:(e,t,s)=>{const{Writable:r}=s(2211);e.exports=class extends r{constructor(e){if(super({objectMode:!0}),!e)throw new Error("RejectionStream requires a TransportStream instance.");this.handleRejections=!0,this.transport=e}_write(e,t,s){return e.rejection?this.transport.log(e,s):(s(),!0)}}},4075:e=>{e.exports=require("is-stream")},4275:function(e,t,s){var r,i=this&&this.__createBinding||(Object.create?function(e,t,s,r){void 0===r&&(r=s);var i=Object.getOwnPropertyDescriptor(t,s);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[s]}}),Object.defineProperty(e,r,i)}:function(e,t,s,r){void 0===r&&(r=s),e[r]=t[s]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||(r=function(e){return r=Object.getOwnPropertyNames||function(e){var t=[];for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&(t[t.length]=s);return t},r(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s=r(e),n=0;n<s.length;n++)"default"!==s[n]&&i(t,e,s[n]);return o(t,e),t}),a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.cli_logger=t.worker_logger=t.instrument_logger=t.app_logger=t.customer_logger=t.SafeLogger=t.WorkerPortTransport=t.winston=void 0,t.getLogPath=function(){return b??=d.join(function(){if(l.hudConfig.logDirectory)return l.hudConfig.logDirectory;const e=u.homedir();switch(u.platform()){case"darwin":return d.join(e,"Library","Logs","hud");case"win32":return d.join(e,"AppData","hud","Logs");default:return d.join(e,".hud","logs")}}(),`${c.randomUUID()}.log`)},t.getSavedLogs=function(){const e=[];for(const[t,s]of Object.entries(v))for(const t of s.transports)try{if(t instanceof f){const r=t.getMessagesToSend();if(!r)continue;const{logsBuf:i,messageDropCount:o}=r;o&&s.info(`Dropped ${o} messages`),e.push(i)}}catch(e){s.error("Failed to get saved logs",e)}return e},t.formatLogMessage=E;const l=s(5809),h=s(8528),c=n(s(6982)),u=n(s(857)),d=n(s(6928)),p=n(s(555));t.winston=p;const g=a(s(1620)),m={...process.env.HUD_DEBUG?l.hudConfig.logger.debug:l.hudConfig.logger.default,console:!!process.env.HUD_VERBOSE};class f extends g.default{_messeagesToSend=[];messagesLimit=l.hudConfig.loggerWorkerPortSizeLimit;messageDropCount=0;getMessagesToSend(){if(!this._messeagesToSend.length)return!1;const e=this._messeagesToSend;this.clearMessagesToSend();const t=this.messageDropCount;return this.messageDropCount=0,{logsBuf:this.formatMessagesToSend(e),messageDropCount:t}}clearMessagesToSend(){this._messeagesToSend=[]}formatMessagesToSend(e){return e.map(e=>JSON.stringify(e)).join("\n")}log(e,t){this._messeagesToSend.length>=this.messagesLimit?this.messageDropCount++:this._messeagesToSend.push(e),t()}}t.WorkerPortTransport=f;const _=p.format.combine(p.format.timestamp({format:"HH:mm:ss.SSS"}),p.format.printf(({level:e,message:t,timestamp:s,label:r,...i})=>{try{const o=Object.keys(i).length;let n;if(o)if(1===o){const e=Object.keys(i)[0];n=`${t} ${e}: ${JSON.stringify(i[e],null,2)}`}else n=`${t}\n${JSON.stringify(i,null,2)}`;else n=t;const a=p.format.colorize().colorize(e,e.toUpperCase());return`[${s}]${(r?`(${r})`:"").padEnd(8," ")} ${a}: ${n}`}catch{return t}}));function w(e){return"customer"===e?l.hudConfig.customerLoggerLevel:m.levels[e]}let b;const v={},x=()=>!0;class y{name;logger;isLoggingEnabled;constructor(e,t){this.name=e,this.isLoggingEnabled=t??x;try{this.logger=function(e){const t="customer"===e,s=[];(m.console||t)&&s.push(function(e){return new p.transports.Console({format:(t=e,"customer"===t?p.format.printf(({message:e,errCode:t,moreInfo:s})=>{try{return E(e,t,s)}catch{return e}}):p.format.combine(p.format.label({label:t}),_))});var t}(e)),s.push(function(e){const t=(s=e,p.format.combine(p.format.label({label:s}),p.format.timestamp({format:()=>(new Date).toISOString()}),p.format.json()));var s;return new f({format:t})}(e));const r=p.createLogger({level:w(e),levels:p.config.syslog.levels,transports:s});return v[e]=r,r}(e)}catch{this.logger=void 0}}isValid(){return!!this.logger}log(e){if(this.isLoggingEnabled()&&this.logger)try{this.logger.log(e)}catch{}}logLevel(e,t,...s){if(this.isLoggingEnabled()&&this.logger)try{this.logger.log(e,t,...s)}catch{}}critical(e,...t){this.logLevel("crit",e,...t)}error(e,...t){this.logLevel("error",e,...t)}warning(e,...t){this.logLevel("warning",e,...t)}info(e,...t){this.logLevel("info",e,...t)}debug(e,...t){this.logLevel("debug",e,...t)}}function E(e,t,s){let r=`Hud: ${e}`;return s&&(r+=" For more information visit https://docs.hud.io/docs/node-sdk-ie."),void 0!==t&&(r+=` ${t}`),r}t.SafeLogger=y;const j=()=>(globalThis.hudRunningMode??h.HudRunningMode.enabled)===h.HudRunningMode.enabled;t.customer_logger=new y("customer"),t.app_logger=new y("app",j),t.instrument_logger=new y("instrument",j),t.worker_logger=new y("worker"),t.cli_logger=new y("cli")},4575:(e,t,s)=>{const r=s(6580),{configs:i}=s(5500);t.cli=r.levels(i.cli),t.npm=r.levels(i.npm),t.syslog=r.levels(i.syslog),t.addColors=r.levels},4873:(e,t,s)=>{const r=s(9896),i=s(6928),o=s(8712),n=s(3106),{MESSAGE:a}=s(5500),{Stream:l,PassThrough:h}=s(2211),c=s(1620),u=s(2358)("winston:file"),d=s(857),p=s(7959);e.exports=class extends c{constructor(e={}){function t(t,...s){s.slice(1).forEach(s=>{if(e[s])throw new Error(`Cannot set ${s} and ${t} together`)})}if(super(e),this.name=e.name||"file",this._stream=new h,this._stream.setMaxListeners(30),this._onError=this._onError.bind(this),e.filename||e.dirname)t("filename or dirname","stream"),this._basename=this.filename=e.filename?i.basename(e.filename):"winston.log",this.dirname=e.dirname||i.dirname(e.filename),this.options=e.options||{flags:"a"};else{if(!e.stream)throw new Error("Cannot log to file without filename or stream.");console.warn("options.stream will be removed in winston@4. Use winston.transports.Stream"),t("stream","filename","maxsize"),this._dest=this._stream.pipe(this._setupStream(e.stream)),this.dirname=i.dirname(this._dest.path)}this.maxsize=e.maxsize||null,this.rotationFormat=e.rotationFormat||!1,this.zippedArchive=e.zippedArchive||!1,this.maxFiles=e.maxFiles||null,this.eol="string"==typeof e.eol?e.eol:d.EOL,this.tailable=e.tailable||!1,this.lazy=e.lazy||!1,this._size=0,this._pendingSize=0,this._created=0,this._drain=!1,this._opening=!1,this._ending=!1,this._fileExist=!1,this.dirname&&this._createLogDirIfNotExist(this.dirname),this.lazy||this.open()}finishIfEnding(){this._ending&&(this._opening?this.once("open",()=>{this._stream.once("finish",()=>this.emit("finish")),setImmediate(()=>this._stream.end())}):(this._stream.once("finish",()=>this.emit("finish")),setImmediate(()=>this._stream.end())))}log(e,t=()=>{}){if(this.silent)return t(),!0;if(this._drain)return void this._stream.once("drain",()=>{this._drain=!1,this.log(e,t)});if(this._rotate)return void this._stream.once("rotate",()=>{this._rotate=!1,this.log(e,t)});if(this.lazy){if(!this._fileExist)return this._opening||this.open(),void this.once("open",()=>{this._fileExist=!0,this.log(e,t)});if(this._needsNewFile(this._pendingSize))return void this._dest.once("close",()=>{this._opening||this.open(),this.once("open",()=>{this.log(e,t)})})}const s=`${e[a]}${this.eol}`,r=Buffer.byteLength(s);this._pendingSize+=r,this._opening&&!this.rotatedWhileOpening&&this._needsNewFile(this._size+this._pendingSize)&&(this.rotatedWhileOpening=!0);const i=this._stream.write(s,function(){this._size+=r,this._pendingSize-=r,u("logged %s %s",this._size,s),this.emit("logged",e),this._rotate||this._opening||this._needsNewFile()&&(this.lazy?this._endStream(()=>{this.emit("fileclosed")}):(this._rotate=!0,this._endStream(()=>this._rotateFile())))}.bind(this));return i?t():(this._drain=!0,this._stream.once("drain",()=>{this._drain=!1,t()})),u("written",i,this._drain),this.finishIfEnding(),i}query(e,t){"function"==typeof e&&(t=e,e={}),e=function(e){return(e=e||{}).rows=e.rows||e.limit||10,e.start=e.start||0,e.until=e.until||new Date,"object"!=typeof e.until&&(e.until=new Date(e.until)),e.from=e.from||e.until-864e5,"object"!=typeof e.from&&(e.from=new Date(e.from)),e.order=e.order||"desc",e}(e);const s=i.join(this.dirname,this.filename);let o="",n=[],a=0;const l=r.createReadStream(s,{encoding:"utf8"});function h(t,s){try{const s=JSON.parse(t);(function(t){if(!t)return;if("object"!=typeof t)return;const s=new Date(t.timestamp);return!(e.from&&s<e.from||e.until&&s>e.until||e.level&&e.level!==t.level)||void 0})(s)&&function(t){e.rows&&n.length>=e.rows&&"desc"!==e.order?l.readable&&l.destroy():(e.fields&&(t=e.fields.reduce((e,s)=>(e[s]=t[s],e),{})),"desc"===e.order&&n.length>=e.rows&&n.shift(),n.push(t))}(s)}catch(e){s||l.emit("error",e)}}l.on("error",e=>{if(l.readable&&l.destroy(),t)return"ENOENT"!==e.code?t(e):t(null,n)}),l.on("data",t=>{const s=(t=(o+t).split(/\n+/)).length-1;let r=0;for(;r<s;r++)(!e.start||a>=e.start)&&h(t[r]),a++;o=t[s]}),l.on("close",()=>{o&&h(o,!0),"desc"===e.order&&(n=n.reverse()),t&&t(null,n)})}stream(e={}){const t=i.join(this.dirname,this.filename),s=new l,r={file:t,start:e.start};return s.destroy=p(r,(e,t)=>{if(e)return s.emit("error",e);try{s.emit("data",t),t=JSON.parse(t),s.emit("log",t)}catch(e){s.emit("error",e)}}),s}open(){this.filename&&(this._opening||(this._opening=!0,this.stat((e,t)=>{if(e)return this.emit("error",e);u("stat done: %s { size: %s }",this.filename,t),this._size=t,this._dest=this._createStream(this._stream),this._opening=!1,this.once("open",()=>{this._stream.emit("rotate")||(this._rotate=!1)})})))}stat(e){const t=this._getFile(),s=i.join(this.dirname,t);r.stat(s,(r,i)=>r&&"ENOENT"===r.code?(u("ENOENT ok",s),this.filename=t,e(null,0)):r?(u(`err ${r.code} ${s}`),e(r)):!i||this._needsNewFile(i.size)?this._incFile(()=>this.stat(e)):(this.filename=t,void e(null,i.size)))}close(e){this._stream&&this._stream.end(()=>{e&&e(),this.emit("flush"),this.emit("closed")})}_needsNewFile(e){return e=e||this._size,this.maxsize&&e>=this.maxsize}_onError(e){this.emit("error",e)}_setupStream(e){return e.on("error",this._onError),e}_cleanupStream(e){return e.removeListener("error",this._onError),e.destroy(),e}_rotateFile(){this._incFile(()=>this.open())}_endStream(e=()=>{}){this._dest?(this._stream.unpipe(this._dest),this._dest.end(()=>{this._cleanupStream(this._dest),e()})):e()}_createStream(e){const t=i.join(this.dirname,this.filename);u("create stream start",t,this.options);const s=r.createWriteStream(t,this.options).on("error",e=>u(e)).on("close",()=>u("close",s.path,s.bytesWritten)).on("open",()=>{u("file open ok",t),this.emit("open",t),e.pipe(s),this.rotatedWhileOpening&&(this._stream=new h,this._stream.setMaxListeners(30),this._rotateFile(),this.rotatedWhileOpening=!1,this._cleanupStream(s),e.end())});return u("create stream ok",t),s}_incFile(e){u("_incFile",this.filename);const t=i.extname(this._basename),s=i.basename(this._basename,t),r=[];this.zippedArchive&&r.push(function(e){const r=this._created>0&&!this.tailable?this._created:"";this._compressFile(i.join(this.dirname,`${s}${r}${t}`),i.join(this.dirname,`${s}${r}${t}.gz`),e)}.bind(this)),r.push(function(e){this.tailable?this._checkMaxFilesTailable(t,s,e):(this._created+=1,this._checkMaxFilesIncrementing(t,s,e))}.bind(this)),o(r,e)}_getFile(){const e=i.extname(this._basename),t=i.basename(this._basename,e),s=this.rotationFormat?this.rotationFormat():this._created;return!this.tailable&&this._created?`${t}${s}${e}`:`${t}${e}`}_checkMaxFilesIncrementing(e,t,s){if(!this.maxFiles||this._created<this.maxFiles)return setImmediate(s);const o=this._created-this.maxFiles,n=`${t}${0!==o?o:""}${e}${this.zippedArchive?".gz":""}`,a=i.join(this.dirname,n);r.unlink(a,s)}_checkMaxFilesTailable(e,t,s){const n=[];if(!this.maxFiles)return;const a=this.zippedArchive?".gz":"";for(let s=this.maxFiles-1;s>1;s--)n.push(function(s,o){let n=`${t}${s-1}${e}${a}`;const l=i.join(this.dirname,n);r.exists(l,h=>{if(!h)return o(null);n=`${t}${s}${e}${a}`,r.rename(l,i.join(this.dirname,n),o)})}.bind(this,s));o(n,()=>{r.rename(i.join(this.dirname,`${t}${e}${a}`),i.join(this.dirname,`${t}1${e}${a}`),s)})}_compressFile(e,t,s){r.access(e,r.F_OK,i=>{if(i)return s();var o=n.createGzip(),a=r.createReadStream(e),l=r.createWriteStream(t);l.on("finish",()=>{r.unlink(e,s)}),a.pipe(o).pipe(l)})}_createLogDirIfNotExist(e){r.existsSync(e)||r.mkdirSync(e,{recursive:!0})}}},5071:(e,t,s)=>{const r=s(8611),i=s(5692),{Stream:o}=s(2211),n=s(1620),{configure:a}=s(735);e.exports=class extends n{constructor(e={}){super(e),this.options=e,this.name=e.name||"http",this.ssl=!!e.ssl,this.host=e.host||"localhost",this.port=e.port,this.auth=e.auth,this.path=e.path||"",this.maximumDepth=e.maximumDepth,this.agent=e.agent,this.headers=e.headers||{},this.headers["content-type"]="application/json",this.batch=e.batch||!1,this.batchInterval=e.batchInterval||5e3,this.batchCount=e.batchCount||10,this.batchOptions=[],this.batchTimeoutID=-1,this.batchCallback={},this.port||(this.port=this.ssl?443:80)}log(e,t){this._request(e,null,null,(t,s)=>{s&&200!==s.statusCode&&(t=new Error(`Invalid HTTP Status Code: ${s.statusCode}`)),t?this.emit("warn",t):this.emit("logged",e)}),t&&setImmediate(t)}query(e,t){"function"==typeof e&&(t=e,e={});const s=(e={method:"query",params:this.normalizeQuery(e)}).params.auth||null;delete e.params.auth;const r=e.params.path||null;delete e.params.path,this._request(e,s,r,(e,s,r)=>{if(s&&200!==s.statusCode&&(e=new Error(`Invalid HTTP Status Code: ${s.statusCode}`)),e)return t(e);if("string"==typeof r)try{r=JSON.parse(r)}catch(e){return t(e)}t(null,r)})}stream(e={}){const t=new o,s=(e={method:"stream",params:e}).params.path||null;delete e.params.path;const r=e.params.auth||null;delete e.params.auth;let i="";const n=this._request(e,r,s);return t.destroy=()=>n.destroy(),n.on("data",e=>{const s=(e=(i+e).split(/\n+/)).length-1;let r=0;for(;r<s;r++)try{t.emit("log",JSON.parse(e[r]))}catch(e){t.emit("error",e)}i=e[s]}),n.on("error",e=>t.emit("error",e)),t}_request(e,t,s,r){e=e||{},t=t||this.auth,s=s||this.path||"",this.batch?this._doBatch(e,r,t,s):this._doRequest(e,r,t,s)}_doBatch(e,t,s,r){if(this.batchOptions.push(e),1===this.batchOptions.length){const e=this;this.batchCallback=t,this.batchTimeoutID=setTimeout(function(){e.batchTimeoutID=-1,e._doBatchRequest(e.batchCallback,s,r)},this.batchInterval)}this.batchOptions.length===this.batchCount&&this._doBatchRequest(this.batchCallback,s,r)}_doBatchRequest(e,t,s){this.batchTimeoutID>0&&(clearTimeout(this.batchTimeoutID),this.batchTimeoutID=-1);const r=this.batchOptions.slice();this.batchOptions=[],this._doRequest(r,e,t,s)}_doRequest(e,t,s,o){const n=Object.assign({},this.headers);s&&s.bearer&&(n.Authorization=`Bearer ${s.bearer}`);const l=(this.ssl?i:r).request({...this.options,method:"POST",host:this.host,port:this.port,path:`/${o.replace(/^\//,"")}`,headers:n,auth:s&&s.username&&s.password?`${s.username}:${s.password}`:"",agent:this.agent});l.on("error",t),l.on("response",e=>e.on("end",()=>t(null,e)).resume());const h=a({...this.maximumDepth&&{maximumDepth:this.maximumDepth}});l.end(Buffer.from(h(e,this.options.replacer),"utf8"))}}},5238:(e,t,s)=>{const{Writable:r}=s(2211);e.exports=class extends r{constructor(e){if(super({objectMode:!0}),!e)throw new Error("ExceptionStream requires a TransportStream instance.");this.handleExceptions=!0,this.transport=e}_write(e,t,s){return e.exception?this.transport.log(e,s):(s(),!0)}}},5422:e=>{e.exports=require("one-time")},5500:e=>{e.exports=require("triple-beam")},5692:e=>{e.exports=require("https")},5767:(e,t,s)=>{const r=s(4075),{MESSAGE:i}=s(5500),o=s(857),n=s(1620);e.exports=class extends n{constructor(e={}){if(super(e),!e.stream||!r(e.stream))throw new Error("options.stream is required.");this._stream=e.stream,this._stream.setMaxListeners(1/0),this.isObjectMode=e.stream._writableState.objectMode,this.eol="string"==typeof e.eol?e.eol:o.EOL}log(e,t){if(setImmediate(()=>this.emit("logged",e)),this.isObjectMode)return this._stream.write(e),void(t&&t());this._stream.write(`${e[i]}${this.eol}`),t&&t()}}},5809:e=>{e.exports=require("./config")},5838:e=>{e.exports=require("winston-transport/legacy")},6256:e=>{e.exports={version:"3.18.3"}},6580:e=>{e.exports=require("logform")},6928:e=>{e.exports=require("path")},6982:e=>{e.exports=require("crypto")},7083:(e,t,s)=>{const r=s(2751);e.exports=class{constructor(e={}){this.loggers=new Map,this.options=e}add(e,t){if(!this.loggers.has(e)){const s=(t=Object.assign({},t||this.options)).transports||this.options.transports;t.transports=s?Array.isArray(s)?s.slice():[s]:[];const i=r(t);i.on("close",()=>this._delete(e)),this.loggers.set(e,i)}return this.loggers.get(e)}get(e,t){return this.add(e,t)}has(e){return!!this.loggers.has(e)}close(e){if(e)return this._removeLogger(e);this.loggers.forEach((e,t)=>this._removeLogger(t))}_removeLogger(e){this.loggers.has(e)&&(this.loggers.get(e).close(),this._delete(e))}_delete(e){this.loggers.delete(e)}}},7522:(e,t,s)=>{const r=s(857),{LEVEL:i,MESSAGE:o}=s(5500),n=s(1620);e.exports=class extends n{constructor(e={}){super(e),this.name=e.name||"console",this.stderrLevels=this._stringArrayToSet(e.stderrLevels),this.consoleWarnLevels=this._stringArrayToSet(e.consoleWarnLevels),this.eol="string"==typeof e.eol?e.eol:r.EOL,this.forceConsole=e.forceConsole||!1,this._consoleLog=console.log.bind(console),this._consoleWarn=console.warn.bind(console),this._consoleError=console.error.bind(console),this.setMaxListeners(30)}log(e,t){return setImmediate(()=>this.emit("logged",e)),this.stderrLevels[e[i]]?(console._stderr&&!this.forceConsole?console._stderr.write(`${e[o]}${this.eol}`):this._consoleError(e[o]),void(t&&t())):this.consoleWarnLevels[e[i]]?(console._stderr&&!this.forceConsole?console._stderr.write(`${e[o]}${this.eol}`):this._consoleWarn(e[o]),void(t&&t())):(console._stdout&&!this.forceConsole?console._stdout.write(`${e[o]}${this.eol}`):this._consoleLog(e[o]),void(t&&t()))}_stringArrayToSet(e,t){if(!e)return{};if(t=t||"Cannot make set from type other than Array of string elements",!Array.isArray(e))throw new Error(t);return e.reduce((e,s)=>{if("string"!=typeof s)throw new Error(t);return e[s]=!0,e},{})}}},7959:(e,t,s)=>{const r=s(9896),{StringDecoder:i}=s(3318),{Stream:o}=s(2211);function n(){}e.exports=(e,t)=>{const s=Buffer.alloc(65536),a=new i("utf8"),l=new o;let h="",c=0,u=0;return-1===e.start&&delete e.start,l.readable=!0,l.destroy=()=>{l.destroyed=!0,l.emit("end"),l.emit("close")},r.open(e.file,"a+","0644",(i,o)=>{if(i)return t?t(i):l.emit("error",i),void l.destroy();!function i(){if(!l.destroyed)return r.read(o,s,0,s.length,c,(r,o)=>{if(r)return t?t(r):l.emit("error",r),void l.destroy();if(!o)return h&&((null==e.start||u>e.start)&&(t?t(null,h):l.emit("line",h)),u++,h=""),setTimeout(i,1e3);let n=a.write(s.slice(0,o));t||l.emit("data",n),n=(h+n).split(/\n+/);const d=n.length-1;let p=0;for(;p<d;p++)(null==e.start||u>e.start)&&(t?t(null,n[p]):l.emit("line",n[p])),u++;return h=n[d],c+=o,i()});r.close(o,n)}()}),t?l.destroy:l}},8010:(e,t,s)=>{const{Stream:r,Transform:i}=s(2211),o=s(8545),{LEVEL:n,SPLAT:a}=s(5500),l=s(4075),h=s(504),c=s(2134),u=s(5838),d=s(3583),{warn:p}=s(2159),g=s(4575),m=/%[scdjifoO%]/g;class f extends i{constructor(e){super({objectMode:!0}),this.configure(e)}child(e){const t=this;return Object.create(t,{write:{value:function(s){const r=Object.assign({},e,s);s instanceof Error&&(r.stack=s.stack,r.message=s.message),t.write(r)}}})}configure({silent:e,format:t,defaultMeta:r,levels:i,level:o="info",exitOnError:n=!0,transports:a,colors:l,emitErrs:u,formatters:d,padLevels:p,rewriters:m,stripColors:f,exceptionHandlers:_,rejectionHandlers:w}={}){if(this.transports.length&&this.clear(),this.silent=e,this.format=t||this.format||s(3603)(),this.defaultMeta=r||null,this.levels=i||this.levels||g.npm.levels,this.level=o,this.exceptions&&this.exceptions.unhandle(),this.rejections&&this.rejections.unhandle(),this.exceptions=new h(this),this.rejections=new c(this),this.profilers={},this.exitOnError=n,a&&(a=Array.isArray(a)?a:[a]).forEach(e=>this.add(e)),l||u||d||p||m||f)throw new Error(["{ colors, emitErrs, formatters, padLevels, rewriters, stripColors } were removed in winston@3.0.0.","Use a custom winston.format(function) instead.","See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md"].join("\n"));_&&this.exceptions.handle(_),w&&this.rejections.handle(w)}getHighestLogLevel(){const e=_(this.levels,this.level);return this.transports&&0!==this.transports.length?this.transports.reduce((e,t)=>{const s=_(this.levels,t.level);return null!==s&&s>e?s:e},e):e}isLevelEnabled(e){const t=_(this.levels,e);if(null===t)return!1;const s=_(this.levels,this.level);return null!==s&&(this.transports&&0!==this.transports.length?-1!==this.transports.findIndex(e=>{let r=_(this.levels,e.level);return null===r&&(r=s),r>=t}):s>=t)}log(e,t,...s){if(1===arguments.length)return e[n]=e.level,this._addDefaultMeta(e),this.write(e),this;if(2===arguments.length)return t&&"object"==typeof t?(t[n]=t.level=e,this._addDefaultMeta(t),this.write(t),this):(t={[n]:e,level:e,message:t},this._addDefaultMeta(t),this.write(t),this);const[r]=s;if("object"==typeof r&&null!==r&&!(t&&t.match&&t.match(m))){const i=Object.assign({},this.defaultMeta,r,{[n]:e,[a]:s,level:e,message:t});return r.message&&(i.message=`${i.message} ${r.message}`),r.stack&&(i.stack=r.stack),r.cause&&(i.cause=r.cause),this.write(i),this}return this.write(Object.assign({},this.defaultMeta,{[n]:e,[a]:s,level:e,message:t})),this}_transform(e,t,s){if(this.silent)return s();e[n]||(e[n]=e.level),this.levels[e[n]]||0===this.levels[e[n]]||console.error("[winston] Unknown logger level: %s",e[n]),this._readableState.pipes||console.error("[winston] Attempt to write logs with no transports, which can increase memory usage: %j",e);try{this.push(this.format.transform(e,this.format.options))}finally{this._writableState.sync=!1,s()}}_final(e){const t=this.transports.slice();o(t,(e,t)=>{if(!e||e.finished)return setImmediate(t);e.once("finish",t),e.end()},e)}add(e){const t=!l(e)||e.log.length>2?new u({transport:e}):e;if(!t._writableState||!t._writableState.objectMode)throw new Error("Transports must WritableStreams in objectMode. Set { objectMode: true }.");return this._onEvent("error",t),this._onEvent("warn",t),this.pipe(t),e.handleExceptions&&this.exceptions.handle(),e.handleRejections&&this.rejections.handle(),this}remove(e){if(!e)return this;let t=e;return(!l(e)||e.log.length>2)&&(t=this.transports.filter(t=>t.transport===e)[0]),t&&this.unpipe(t),this}clear(){return this.unpipe(),this}close(){return this.exceptions.unhandle(),this.rejections.unhandle(),this.clear(),this.emit("close"),this}setLevels(){p.deprecated("setLevels")}query(e,t){"function"==typeof e&&(t=e,e={}),e=e||{};const s={},r=Object.assign({},e.query||{});o(this.transports.filter(e=>!!e.query),function(t,i){!function(t,s){e.query&&"function"==typeof t.formatQuery&&(e.query=t.formatQuery(r)),t.query(e,(r,i)=>{if(r)return s(r);"function"==typeof t.formatResults&&(i=t.formatResults(i,e.format)),s(null,i)})}(t,(e,r)=>{i&&((r=e||r)&&(s[t.name]=r),i()),i=null})},()=>t(null,s))}stream(e={}){const t=new r,s=[];return t._streams=s,t.destroy=()=>{let e=s.length;for(;e--;)s[e].destroy()},this.transports.filter(e=>!!e.stream).forEach(r=>{const i=r.stream(e);i&&(s.push(i),i.on("log",e=>{e.transport=e.transport||[],e.transport.push(r.name),t.emit("log",e)}),i.on("error",e=>{e.transport=e.transport||[],e.transport.push(r.name),t.emit("error",e)}))}),t}startTimer(){return new d(this)}profile(e,...t){const s=Date.now();if(this.profilers[e]){const r=this.profilers[e];delete this.profilers[e],"function"==typeof t[t.length-2]&&(console.warn("Callback function no longer supported as of winston@3.0.0"),t.pop());const i="object"==typeof t[t.length-1]?t.pop():{};return i.level=i.level||"info",i.durationMs=s-r,i.message=i.message||e,this.write(i)}return this.profilers[e]=s,this}handleExceptions(...e){console.warn("Deprecated: .handleExceptions() will be removed in winston@4. Use .exceptions.handle()"),this.exceptions.handle(...e)}unhandleExceptions(...e){console.warn("Deprecated: .unhandleExceptions() will be removed in winston@4. Use .exceptions.unhandle()"),this.exceptions.unhandle(...e)}cli(){throw new Error(["Logger.cli() was removed in winston@3.0.0","Use a custom winston.formats.cli() instead.","See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md"].join("\n"))}_onEvent(e,t){t["__winston"+e]||(t["__winston"+e]=function(s){"error"!==e||this.transports.includes(t)||this.add(t),this.emit(e,s,t)}.bind(this),t.on(e,t["__winston"+e]))}_addDefaultMeta(e){this.defaultMeta&&Object.assign(e,this.defaultMeta)}}function _(e,t){const s=e[t];return s||0===s?s:null}Object.defineProperty(f.prototype,"transports",{configurable:!1,enumerable:!0,get(){const{pipes:e}=this._readableState;return Array.isArray(e)?e:[e].filter(Boolean)}}),e.exports=f},8528:e=>{e.exports=require("./dto")},8545:e=>{e.exports=require("async/forEach")},8611:e=>{e.exports=require("http")},8712:e=>{e.exports=require("async/series")},8716:e=>{e.exports=require("stack-trace")},9023:e=>{e.exports=require("util")},9896:e=>{e.exports=require("fs")}},t={};return function s(r){var i=t[r];if(void 0!==i)return i.exports;var o=t[r]={exports:{}};return e[r].call(o.exports,o,o.exports,s),o.exports}(4275)})());
//# sourceMappingURL=logger.js.map