@decaf-ts/logging 0.15.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/logging.cjs +1 -1
- package/lib/cjs/LoggedClass.cjs +3 -2
- package/lib/cjs/LoggedClass.cjs.map +1 -0
- package/lib/cjs/constants.cjs +5 -20
- package/lib/cjs/constants.cjs.map +1 -0
- package/lib/cjs/decorators.cjs +20 -19
- package/lib/cjs/decorators.cjs.map +1 -0
- package/lib/cjs/environment.cjs +16 -15
- package/lib/cjs/environment.cjs.map +1 -0
- package/lib/cjs/filters/LogFilter.cjs +3 -2
- package/lib/cjs/filters/LogFilter.cjs.map +1 -0
- package/lib/cjs/filters/PatternFilter.cjs +15 -9
- package/lib/cjs/filters/PatternFilter.cjs.map +1 -0
- package/lib/cjs/filters/index.cjs +1 -0
- package/lib/cjs/filters/index.cjs.map +1 -0
- package/lib/cjs/index.cjs +2 -1
- package/lib/cjs/index.cjs.map +1 -0
- package/lib/cjs/logParameters.cjs +1 -0
- package/lib/cjs/logParameters.cjs.map +1 -0
- package/lib/cjs/logging.cjs +41 -38
- package/lib/cjs/logging.cjs.map +1 -0
- package/lib/cjs/pino/index.cjs +1 -0
- package/lib/cjs/pino/index.cjs.map +1 -0
- package/lib/cjs/pino/pino.cjs +21 -20
- package/lib/cjs/pino/pino.cjs.map +1 -0
- package/lib/cjs/text.cjs +3 -2
- package/lib/cjs/text.cjs.map +1 -0
- package/lib/cjs/time.cjs +1 -0
- package/lib/cjs/time.cjs.map +1 -0
- package/lib/cjs/types.cjs +1 -0
- package/lib/cjs/types.cjs.map +1 -0
- package/lib/cjs/utils.cjs +1 -0
- package/lib/cjs/utils.cjs.map +1 -0
- package/lib/cjs/web.cjs +1 -0
- package/lib/cjs/web.cjs.map +1 -0
- package/lib/cjs/winston/index.cjs +1 -0
- package/lib/cjs/winston/index.cjs.map +1 -0
- package/lib/cjs/winston/winston.cjs +4 -3
- package/lib/cjs/winston/winston.cjs.map +1 -0
- package/lib/esm/index.js +1 -1
- package/lib/types/LoggedClass.d.cts +39 -0
- package/lib/types/LoggedClass.d.mts +39 -0
- package/lib/types/constants.d.cts +104 -0
- package/lib/types/constants.d.mts +104 -0
- package/lib/types/decorators.d.cts +109 -0
- package/lib/types/decorators.d.mts +109 -0
- package/lib/types/environment.d.cts +120 -0
- package/lib/types/environment.d.mts +120 -0
- package/lib/types/filters/LogFilter.d.cts +43 -0
- package/lib/types/filters/LogFilter.d.mts +43 -0
- package/lib/types/filters/PatternFilter.d.cts +56 -0
- package/lib/types/filters/PatternFilter.d.mts +56 -0
- package/lib/types/filters/index.d.cts +7 -0
- package/lib/types/filters/index.d.mts +7 -0
- package/lib/types/index.d.cts +34 -0
- package/lib/types/index.d.mts +34 -0
- package/lib/types/logParameters.d.cts +56 -0
- package/lib/types/logParameters.d.mts +56 -0
- package/lib/types/logging.d.cts +373 -0
- package/lib/types/logging.d.mts +373 -0
- package/lib/types/pino/index.d.cts +7 -0
- package/lib/types/pino/index.d.mts +7 -0
- package/lib/types/pino/pino.d.cts +29 -0
- package/lib/types/pino/pino.d.mts +29 -0
- package/lib/types/text.d.cts +118 -0
- package/lib/types/text.d.mts +118 -0
- package/lib/types/time.d.cts +151 -0
- package/lib/types/time.d.mts +151 -0
- package/lib/types/types.d.cts +287 -0
- package/lib/types/types.d.mts +287 -0
- package/lib/types/utils.d.cts +48 -0
- package/lib/types/utils.d.mts +48 -0
- package/lib/types/web.d.cts +8 -0
- package/lib/types/web.d.mts +8 -0
- package/lib/types/winston/index.d.cts +7 -0
- package/lib/types/winston/index.d.mts +7 -0
- package/lib/types/winston/winston.d.cts +47 -0
- package/lib/types/winston/winston.d.mts +47 -0
- package/package.json +1 -1
- package/lib/cjs/LoggedClass.js.map +0 -1
- package/lib/cjs/constants.js.map +0 -1
- package/lib/cjs/decorators.js.map +0 -1
- package/lib/cjs/environment.js.map +0 -1
- package/lib/cjs/filters/LogFilter.js.map +0 -1
- package/lib/cjs/filters/PatternFilter.js.map +0 -1
- package/lib/cjs/filters/index.js.map +0 -1
- package/lib/cjs/index.js.map +0 -1
- package/lib/cjs/logParameters.js.map +0 -1
- package/lib/cjs/logging.js.map +0 -1
- package/lib/cjs/pino/index.js.map +0 -1
- package/lib/cjs/pino/pino.js.map +0 -1
- package/lib/cjs/text.js.map +0 -1
- package/lib/cjs/time.js.map +0 -1
- package/lib/cjs/types.js.map +0 -1
- package/lib/cjs/utils.js.map +0 -1
- package/lib/cjs/web.js.map +0 -1
- package/lib/cjs/winston/index.js.map +0 -1
- package/lib/cjs/winston/winston.js.map +0 -1
package/dist/logging.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e,t;e=this,t=function(e,t,r,n){"use strict";const o="ENV",s="__",i=["${","}"];var a;e.LogLevel=void 0,(a=e.LogLevel||(e.LogLevel={})).benchmark="benchmark",a.error="error",a.warn="warn",a.info="info",a.verbose="verbose",a.debug="debug",a.trace="trace",a.silly="silly";const c={benchmark:0,error:3,warn:6,info:9,verbose:12,debug:15,trace:18,silly:21};var l;e.LoggingMode=void 0,(l=e.LoggingMode||(e.LoggingMode={})).RAW="raw",l.JSON="json";const u={app:{},separator:{},class:{fg:34},id:{fg:36},stack:{},timestamp:{},message:{error:{fg:31}},method:{},logLevel:{benchmark:{fg:32,style:["bold"]},error:{fg:31,style:["bold"]},info:{fg:34,style:["bold"]},verbose:{fg:34,style:["bold"]},debug:{fg:33,style:["bold"]},trace:{fg:33,style:["bold"]},silly:{fg:33,style:["bold"]}}},g={env:"development",verbose:0,level:e.LogLevel.info,logLevel:!0,style:!1,filters:[],contextSeparator:".",separator:"-",timestamp:!0,timestampFormat:"HH:mm:ss.SSS",context:!0,meta:!0,format:e.LoggingMode.RAW,pattern:"{level} [{timestamp}] {app} {context} {separator} {message} {stack}",theme:u};class f{constructor(){this.descriptors=new Map}register(e){return this.descriptors.set(e.key,e),this}unregister(e){return this.descriptors.delete(e),this}get(e){return this.descriptors.get(e)}render(e,t){const r={},n=new Set;return t.forEach(t=>{if(n.has(t))return;n.add(t);const o=this.descriptors.get(t);if(!o)return;if(o.shouldInclude&&!o.shouldInclude(e))return;const s=o.render(e);if(void 0===s)return;const i=o.style?o.style(s,e):s;r[t]=i}),r}keys(){return Array.from(this.descriptors.keys())}}const p=new Map;function h(e){if(p.has(e))return p.get(e);const t=d(e||""),r=new Set,n=[];m(t,r,n);const o={pattern:e,segments:t,keys:n,includesMeta:r.has("meta")};return p.set(e,o),o}function y(e,t){return v(e.segments,t).text}function d(e){const t=[];let r=0;for(;r<e.length;){const n=e[r];if("["===n){const n=b(e,r,"[","]");if(-1===n){t.push({type:"literal",value:"["}),r++;continue}const o=e.slice(r+1,n);t.push({type:"optional",prefix:"[",suffix:"]",children:d(o)}),r=n+1;continue}if("{"===n){const n=e.indexOf("}",r+1);if(-1===n){t.push({type:"literal",value:"{"}),r++;continue}const o=e.slice(r+1,n).trim();t.push({type:"parameter",key:o}),r=n+1;continue}let o=r;for(;o<e.length&&"["!==e[o]&&"{"!==e[o];)o++;const s=e.slice(r,o);s.length&&t.push({type:"literal",value:s}),r=o}return t}function b(e,t,r,n){let o=0;for(let s=t;s<e.length;s++){const t=e[s];if(t===r)o++;else if(t===n&&(o--,0===o))return s}return-1}function m(e,t,r){for(const n of e)"parameter"===n.type&&(t.has(n.key)||(t.add(n.key),r.push(n.key))),"optional"===n.type&&m(n.children,t,r)}function v(e,t){const r=[];let n=!1;for(const o of e){const e=x(o,t);e.text.length&&r.push(e.text),n=n||e.hasValue}return{text:r.join(""),hasValue:n}}function x(e,t){if("literal"===e.type)return{text:e.value,hasValue:!1};if("parameter"===e.type){const r=t[e.key]??"";return{text:r,hasValue:r.length>0}}const r=v(e.children,t);return r.hasValue?{text:`${e.prefix}${r.text}${e.suffix}`,hasValue:!0}:{text:"",hasValue:!1}}const w=new f;w.register({key:"level",render(e){if(!1!==e.config.logLevel)return e.level.toUpperCase()},style:(e,t)=>t.applyTheme(e,"logLevel")}).register({key:"timestamp",shouldInclude:e=>!(!e.config.timestamp||!e.timestamp),render:e=>e.timestamp,style:(e,t)=>t.applyTheme(e,"timestamp")}).register({key:"app",shouldInclude:e=>!!e.app,render:e=>e.app,style:(e,t)=>t.applyTheme(e,"app")}).register({key:"context",shouldInclude:e=>!1!==e.config.context&&e.context.length>0,render(e){const t=e.config.contextSeparator||".";return e.context.join(t)},style:(e,t)=>t.applyTheme(e,"class")}).register({key:"separator",shouldInclude:e=>!!e.separator,render:e=>e.separator,style:(e,t)=>t.applyTheme(e,"separator")}).register({key:"message",render:e=>e.filteredMessage,style:(e,t)=>t.applyTheme(e,"message")}).register({key:"stack",shouldInclude:e=>!!e.stack,render:e=>e.stack,style:(e,t)=>t.applyTheme(e,"stack")}).register({key:"meta",shouldInclude:e=>!!e.metaString,render:e=>e.metaString}).register({key:"correlationId",shouldInclude:e=>!!e.correlationId,render:e=>e.correlationId,style:(e,t)=>t.applyTheme(e,"id")});const L=w;function E(e,t,r="g"){return Object.entries(t).forEach(([t,n])=>{const o=RegExp(k(t),r);e=e.replace(o,n)}),e}function O(e){return _(e).toUpperCase()}function _(e){return e.replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/[\s-]+/g,"_").toLowerCase()}function k(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function j(e,...t){if(t.length>1&&!t.every(e=>"string"==typeof e||"number"==typeof e))throw Error("Only string and number arguments are supported for multiple replacements.");if(1===t.length&&"object"==typeof t[0]){const r=t[0];return Object.entries(r).reduce((e,[t,r])=>e.replace(RegExp(`\\{${t}\\}`,"g"),()=>r),e)}return e.replace(/{(\d+)}/g,(e,r)=>void 0!==t[r]?t[r].toString():"undefined")}const A=j;function M(){return Object.getPrototypeOf(Object.getPrototypeOf(globalThis))!==Object.prototype}const P=Symbol("EnvironmentEmpty"),S=Symbol("EnvironmentModel"),R=/^[a-z][a-zA-Z0-9]*$/;class C extends r.ObjectAccumulator{static{this.factory=()=>new C}constructor(){super(),Object.defineProperty(this,S,{value:{},writable:!0,enumerable:!1,configurable:!1})}fromEnv(e){let t;return M()?t=globalThis[o]||{}:(t=globalThis.process.env,e=O(e)),this.parseEnvValue(t[e])}parseEnvValue(e){return C.parseRuntimeValue(e)}static parseRuntimeValue(e){if("string"!=typeof e)return e;if("true"===e)return!0;if("false"===e)return!1;const t=e.trim();return/^-?\d+(\.\d+)?$/.test(t)?Number(t):e}expand(e){Object.entries(e).forEach(([e,t])=>{C.mergeModel(this[S],e,t),Object.defineProperty(this,e,{get:()=>{const r=this.fromEnv(e);return void 0!==r?r:t&&"object"==typeof t?Array.isArray(t)?t:C.buildEnvProxy(t,[e]):""===t?P:t},set:e=>{t=e},configurable:!0,enumerable:!0})})}orThrow(){const e=this[S],t=e=>void 0!==e?this.parseEnvValue(e):void 0,r=(e,t=!1)=>C.missingEnvError(e,t),n=(e,o)=>{const s={get(s,i){if("string"!=typeof i)return;if(Array.isArray(e)&&"length"===i)return e.length;const a=[...o,i],{key:c,value:l}=C.readRuntimeForPath(a);if("string"==typeof l&&0===l.length)throw r(c,!0);const u=t(l);if(void 0!==u){if("string"==typeof u&&0===u.length)throw r(c,!0);return u}if(!e||!Object.prototype.hasOwnProperty.call(e,i))throw r(c);const g=e[i];if(void 0!==g){if(""===g)throw r(c);return g&&"object"==typeof g?n(g,a):g}},ownKeys:()=>e?Reflect.ownKeys(e):[],getOwnPropertyDescriptor(t,r){if(e)return Object.prototype.hasOwnProperty.call(e,r)?{enumerable:!0,configurable:!0}:void 0}};return new Proxy(Array.isArray(e)?[]:{},s)};return new Proxy(this,{get(o,s,i){if("string"!=typeof s)return Reflect.get(o,s,i);if(!Object.prototype.hasOwnProperty.call(e,s))return Reflect.get(o,s,i);const{key:a,value:c}=C.readRuntimeForPath([s]);if("string"==typeof c&&0===c.length)throw r(a,!0);const l=t(c);if(void 0!==l){if("string"==typeof l&&0===l.length)throw r(a,!0);return l}const u=e[s];if(u&&"object"==typeof u)return n(u,[s]);if(void 0===u)return Reflect.get(o,s,i);const g=Reflect.get(o,s);if(void 0===g||""===g)throw r(a,""===g);return g}})}static instance(...e){if(!C._instance){const t=C.factory(...e),r=new Proxy(t,{get(e,t,r){const n=Reflect.get(e,t,r);if(n!==P&&("string"!=typeof t||!Object.prototype.hasOwnProperty.call(e,t)||void 0!==n)){if(void 0!==n)return n;if("string"==typeof t){if("app"===t)return;return C.buildEnvProxy(void 0,[t])}return n}}});C._instance=r}return C._instance}accumulate(e){return super.accumulate(e),this}static accumulate(e){const t=C.instance();return Object.keys(t).forEach(e=>{const r=Object.getOwnPropertyDescriptor(t,e);r&&r.configurable&&r.enumerable&&Object.defineProperty(t,e,{...r,enumerable:!1})}),t.accumulate(e),t}static get(e){return C._instance.get(e)}static formatEnvSegment(e){return R.test(e)?O(e):e.toUpperCase()}static buildEnvKey(e){return e.map(e=>C.formatEnvSegment(e)).join(s)}static buildRawKey(e){return e.join(s)}static readRuntimeForPath(e){const t=C.buildEnvKey(e),r=C.buildRawKey(e),n=C.readRuntimeEnv(t);if(void 0!==n)return{key:t,value:n};if(r!==t){const e=C.readRuntimeEnv(r);if(void 0!==e)return{key:r,value:e}}return{key:t,value:void 0}}static buildEnvProxy(e,t){const r=e=>C.readRuntimeEnv(e),n=/^[0-9]+$/,o={get(o,s){if(s===Symbol.toPrimitive)return()=>C.buildEnvKey(t);if("toString"===s)return()=>C.buildEnvKey(t);if("valueOf"===s)return()=>C.buildEnvKey(t);if("symbol"==typeof s)return;if(Array.isArray(e)&&"length"===s)return e.length;const i=[...t,s],a=C.buildEnvKey(i),c=C.buildRawKey(i);let l=r(a);if(void 0===l&&c!==a&&(l=r(c)),void 0!==l)return C.parseRuntimeValue(l);const u=!!e&&Object.prototype.hasOwnProperty.call(e,s),g=u?e[s]:void 0;if(Array.isArray(e)&&(e=>"string"==typeof e&&n.test(e))(s)){if(!u)return;return g&&"object"==typeof g?C.buildEnvProxy(g,i):C.parseRuntimeValue(g)}return g&&"object"==typeof g?C.buildEnvProxy(g,i):u&&""===g||u&&void 0===g?void 0:u?C.parseRuntimeValue(g):C.buildEnvProxy(void 0,i)},ownKeys:()=>e?Reflect.ownKeys(e):[],getOwnPropertyDescriptor(t,r){if(e)return Object.prototype.hasOwnProperty.call(e,r)?{enumerable:!0,configurable:!0}:void 0}};return new Proxy(Array.isArray(e)?[]:{},o)}static keys(e=!0){return C.instance().keys().map(t=>e?O(t):t)}static mergeModel(e,t,r){if(e){if(r&&"object"==typeof r&&!Array.isArray(r)){const n=e[t],o=n&&"object"==typeof n&&!Array.isArray(n)?n:{};return e[t]=o,void Object.entries(r).forEach(([e,t])=>{C.mergeModel(o,e,t)})}e[t]=r}}static readRuntimeEnv(e){if(M()){const t=globalThis[o];return t?t[e]:void 0}return globalThis?.process?.env?.[e]}static missingEnvError(e,t){return Error(`Environment variable ${e} is required but was ${t?"an empty string":"undefined"}.`)}}const $=C.accumulate(Object.assign({app:void 0},g,{env:(M()&&globalThis[o]?globalThis[o].NODE_ENV:globalThis.process.env.NODE_ENV)||"development"}));function T(e){if("function"!=typeof e)return!1;try{const t=Function.prototype.toString.call(e);if(/^\s*class[\s{]/.test(t))return!0}catch{}const t=Object.getOwnPropertyDescriptor(e,"prototype");if(!t||!t.value)return!1;if(!1===t.writable)return!0;const r=e.prototype;return!!Object.prototype.hasOwnProperty.call(r,"constructor")&&Object.getOwnPropertyNames(r).filter(e=>"constructor"!==e).length>0}function I(e){return"function"==typeof e&&!T(e)}function V(e){if(!I(e))return!1;const t=Object.getOwnPropertyDescriptor(e,"prototype");return!t||void 0===t.value}function N(e){if(null===e||"object"!=typeof e)return!1;const t=e.constructor;return!(!t||t===Object)&&T(t)}function F(e){if(null===e)return"null";if(void 0===e)return"undefined";if("string"==typeof e)return e;if(T(e))return e.name||"AnonymousClass";if(N(e)){const t=e.toString;if("function"==typeof t&&t!==Object.prototype.toString)try{const r=t.call(e);if("string"==typeof r&&r.length)return r}catch{}const r=e.constructor;return r&&r.name?r.name:"AnonymousInstance"}if(V(e)||I(e)){const t=e;return t.name?t.name:"anonymous"}if("object"==typeof e){const t=Object.prototype.toString.call(e),r=/^\[object ([^\]]+)\]$/.exec(t);return r?.[1]?r[1]:"Object"}return typeof e}const K=Symbol("MiniLoggerRootContext");class D{constructor(e,t,r=[]){this.conf=t,this.baseContext=Array.isArray(r)?[...r]:[],e&&this.baseContext.push(e),this.context=[...this.baseContext],this[K]=[...this.baseContext]}config(e){return this.conf&&e in this.conf?this.conf[e]:z.getConfig()[e]}for(e,t,...r){let n,o=t;const s=Array.isArray(this.context)?[...this.context]:"string"==typeof this.context&&this.context?[this.context]:[],i=this[K],a=Array.isArray(i)?[...i]:Array.isArray(this.baseContext)?[...this.baseContext]:[];"string"==typeof e?n=e:void 0!==e&&(T(e)||N(e)||I(e)?n=F(e):!o&&e&&"object"==typeof e&&(o=e));let c=n?[...s,n]:[...s];return new Proxy(this,{get:(e,t,r)=>{const n=Reflect.get(e,t,r);return"config"===t?new Proxy(this.config,{apply:(e,t,n)=>{const[s]=n;return o&&void 0!==s&&s in o?o[s]:Reflect.apply(e,r,n)},get:(e,t)=>o&&t in o?o[t]:Reflect.get(e,t,r)}):"clear"===t?()=>(c=[...a],o=void 0,r):"context"===t?c:"root"===t?[...a]:t===K?a:"for"===t?(...t)=>{const r=Array.isArray(e.context)?[...e.context]:"string"==typeof e.context&&e.context?[e.context]:[];e.context=[...c];try{return e.for.apply(e,t)}finally{e.context=r}}:n}})}getConfigSnapshot(){return{...z.getConfig(),...this.conf||{}}}getContextSegments(){return Array.isArray(this.context)?[...this.context]:"string"==typeof this.context&&this.context?[this.context]:[]}resolveFilters(e){const t=e.filters||[];return Array.isArray(t)?t.filter(e=>"object"==typeof e&&null!==e&&"function"==typeof e.filter):[]}applyFilters(e,t,r){const n=this.resolveFilters(r);return n.length?n.reduce((e,n)=>{try{const o=n.filter(r,e,[...t]);return"string"==typeof o?o:e}catch{return e}},e):e}createLog(e,t,r,n){const o=!!this.config("style"),s=this.config("separator"),i=z.getConfig().app,a=this.config("timestamp")?(new Date).toISOString():void 0,c=this.getConfigSnapshot(),l=this.getContextSegments(),u="string"==typeof t?t:t instanceof Error?t.message:t+"",g=this.applyFilters(u,l,c),f=this.config("meta")&&n?n:void 0,p=f?this.formatMeta(f):void 0,d=p?this.applyFilters(p,l,c):void 0,b=this.config("correlationId"),m=null!=b?b+"":void 0;let v,x;if(r||t instanceof Error){const n=r||t;n.stack&&(x="string"==typeof t?g:n.message,v=` | ${x} - Stack trace:\n${o?z.theme(n.stack,"stack",e):n.stack}`)}const w={config:c,level:e,context:l,timestamp:a,app:"string"==typeof i&&i.length?i:void 0,separator:s,correlationId:m,rawMessage:u,filteredMessage:g,meta:f,metaString:d,stack:v,stackLabel:x,applyTheme:(t,r)=>o?z.theme(t,r,e):t},E=this.config("pattern"),O=c.pattern||"",_=h(E.length?E:O),k=L.render(w,_.keys);switch(this.config("format")){case"json":{const e=L.render(w,L.keys()),t={};return Object.entries(e).forEach(([e,r])=>{"meta"!==e&&(t[e]=r)}),w.meta&&(t.meta=w.meta),JSON.stringify(t)}case"raw":{let e=this.normalizePatternSpacing(y(_,k));return!_.includesMeta&&d&&(e=e?`${e} ${d}`:d),e}default:throw Error("Unsupported logging format: "+this.config("format"))}}formatMeta(e){try{return JSON.stringify(e)}catch(t){return e+""}}normalizePatternSpacing(e){return e.replace(/[ \t]{2,}/g," ").replace(/^[ \t]+|[ \t]+$/g,"")}log(t,r,n,o){const s=this.config("level");if(c[t]>c[s])return;let i;switch(t){case e.LogLevel.benchmark:case e.LogLevel.info:case e.LogLevel.verbose:i=console.log;break;case e.LogLevel.debug:i=console.debug;break;case e.LogLevel.error:i=console.error;break;case e.LogLevel.trace:i=console.trace;break;case e.LogLevel.warn:i=console.warn;break;case e.LogLevel.silly:i=console.debug;break;default:throw Error("Invalid log level")}i(this.createLog(t,r,n,o))}benchmark(t,r){this.log(e.LogLevel.benchmark,t,void 0,r)}silly(t,r=0,n){const o="number"==typeof r?r:0,s="number"==typeof r?n:r;this.config("verbose")<o||this.log(e.LogLevel.silly,t,void 0,s)}verbose(t,r=0,n){const o="number"==typeof r?r:0,s="number"==typeof r?n:r;this.config("verbose")<o||this.log(e.LogLevel.verbose,t,void 0,s)}info(t,r){this.log(e.LogLevel.info,t,void 0,r)}debug(t,r){this.log(e.LogLevel.debug,t,void 0,r)}error(t,r,n){let o,s;r instanceof Error?(o=r,s=n):s=r,this.log(e.LogLevel.error,t,o,s)}warn(t,r){this.log(e.LogLevel.warn,t,void 0,r)}trace(t,r){this.log(e.LogLevel.trace,t,void 0,r)}setConfig(e){this.conf={...this.conf||{},...e}}get root(){return[...this.baseContext]}clear(){return this.context=[...this.baseContext],this}}class z{static{this._factory=(e,t)=>{const r="string"==typeof $.app?[$.app]:[];return new D(e,t,r)}}static{this._config=$}constructor(){}static setFactory(e){z._factory=e,this.global=void 0}static setConfig(e){Object.entries(e).forEach(([e,t])=>{this._config[e]=t})}static getConfig(){return this._config}static get(){return this.ensureRoot()}static verbose(e,t=0,r){return this.get().verbose(e,t,r)}static info(e,t){return this.get().info(e,t)}static trace(e,t){return this.get().trace(e,t)}static debug(e,t){return this.get().debug(e,t)}static benchmark(e,t){return this.get().benchmark(e,t)}static silly(e,t=0,r){return this.get().silly(e,t,r)}static warn(e,t){return this.get().warn(e,t)}static error(e,t,r){return this.get().error(e,t,r)}static for(e,t,...r){const n=void 0!==t?[e,t]:[e];return(this.global?this.global:this.ensureRoot(r)).for(...n)}static because(e,t){let r=this.ensureRoot().for(e,this._config);return t&&(r=r.for(t)),r}static baseContext(){const e=this._config.app;return"string"==typeof e&&e.length?[e]:[]}static attachRootContext(e){const t=e.root&&Array.isArray(e.root)?[...e.root]:this.baseContext();return(!e.context||Array.isArray(e.context)&&0===e.context.length)&&(e.context=[...t]),e[K]=[...t],e}static ensureRoot(e=[]){if(!this.global){const t=this._factory(void 0,void 0,...e);this.global=this.attachRootContext(t)}return this.global}static theme(r,n,o,s=u){if(!this._config.style)return r;const i=s[n];if(!i||!Object.keys(i).length)return r;let a=i;const c=Object.assign({},e.LogLevel);return Object.keys(i)[0]in c&&(a=i[o]||{}),Object.keys(a).reduce((e,r)=>{const n=a[r];return n?((e,r,n)=>{try{const o=e;let s=t.style(o);function i(e,r=!1){let i=r?s.background:s.foreground;if(!Array.isArray(e))return i.call(s,n);switch(e.length){case 1:return i=r?s.bgColor256:s.color256,i(e[0]);case 3:return i=r?s.bgRgb:s.rgb,s.rgb(e[0],e[1],e[2]);default:return t.style(o)}}function a(e){s="number"==typeof e?s.style(e):s[e]}switch(r){case"bg":case"fg":return i(n).text;case"style":return Array.isArray(n)?n.forEach(a):a(n),s.text;default:return o}}catch(c){return e}})(e,r,n):e},r)}static register(e){return L.register(e)}static unregister(e){return L.unregister(e)}}class U{get log(){return this._log||(this._log=z.for(this)),this._log}constructor(){}}class J extends U{get log(){return super.log.for(this,{filters:[]})}}const Z="undefined"!=typeof globalThis&&"function"==typeof globalThis.performance?.now?()=>globalThis.performance.now():"undefined"!=typeof process&&"function"==typeof process.hrtime?.bigint?()=>{const e=process.hrtime.bigint();return Number(e)/1e6}:()=>Date.now();function q(e){const t=0>e?"-":"",r=Math.abs(e),n=Math.floor(r/36e5),o=Math.floor(r%36e5/6e4),s=Math.floor(r%6e4/1e3),i=Math.floor(r%1e3),a=(e,t)=>e.toString().padStart(t,"0");return`${t}${a(n,2)}:${a(o,2)}:${a(s,2)}.${a(i,3)}`}function B(t=e.LogLevel.info,r=0,n=(...e)=>"called with "+e,o){return(e,s,i)=>{if(!i||"number"==typeof i)throw Error("Logging decoration only applies to methods");const a=e instanceof U?e.log.for(e[s]):z.for(e).for(e[s]),c=a[t].bind(a),l=i.value;return i.value=new Proxy(l,{apply(e,t,s){c(n(...s),r);try{const r=Reflect.apply(e,t,s);return r instanceof Promise?r.then(e=>(o&&c(o(void 0,e)),e)).catch(e=>{throw o&&a.error(o(e)),e}):(o&&c(o(void 0,r)),r)}catch(e){throw o&&a.error(o(e)),e}}}),i}}function W(){return(e,t,r)=>{if(!r)throw Error("final decorator can only be used on methods");return r?.configurable&&(r.configurable=!1),r}}class H extends J{constructor(e,t){super(),this.regexp=e,this.replacement=t}match(e){const t=this.regexp.exec(e);return this.regexp.lastIndex=0,t}filter(e,t,r){const n=this.log.for(this.filter);if(!this.match(t))return t;try{return t.replace(this.regexp,this.replacement)}catch(e){n.error("PatternFilter replacement error: "+e)}return""}}n.__decorate([W(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[String]),n.__metadata("design:returntype",void 0)],H.prototype,"match",null),e.BrowserEnvKey=o,e.DefaultLoggingConfig=g,e.DefaultPlaceholderWrappers=i,e.DefaultTheme=u,e.ENV_PATH_DELIMITER=s,e.Environment=C,e.LogFilter=J,e.LogParameterRegistry=f,e.LoggedClass=U,e.LoggedEnvironment=$,e.Logging=z,e.MiniLogger=D,e.NumericLogLevels=c,e.PACKAGE_NAME="@decaf-ts/logging",e.PatternFilter=H,e.ROOT_CONTEXT_SYMBOL=K,e.StopWatch=class{constructor(e=!1){this._startMs=null,this._elapsedMs=0,this._running=!1,this._laps=[],this._lastLapTotalMs=0,e&&this.start()}get running(){return this._running}get elapsedMs(){return this._running&&null!=this._startMs?this._elapsedMs+(Z()-this._startMs):this._elapsedMs}start(){return this._running||(this._running=!0,this._startMs=Z()),this}pause(){return this._running&&null!=this._startMs&&(this._elapsedMs+=Z()-this._startMs,this._startMs=null,this._running=!1),this}resume(){return this._running||(this._running=!0,this._startMs=Z()),this}stop(){return this.pause(),this._elapsedMs}reset(){const e=this._running;return this._startMs=e?Z():null,this._elapsedMs=0,this._laps=[],this._lastLapTotalMs=0,this}lap(e){const t=this.elapsedMs,r=t-this._lastLapTotalMs,n={index:this._laps.length,label:e,ms:r,totalMs:t};return this._laps.push(n),this._lastLapTotalMs=t,n}get laps(){return this._laps}toString(){return q(this.elapsedMs)}toJSON(){return{running:this._running,elapsedMs:this.elapsedMs,laps:this._laps.slice()}}},e.VERSION="0.14.0",e.benchmark=()=>(e,t,r)=>{if(!r||"number"==typeof r)throw Error("benchmark decoration only applies to methods");const n=e instanceof U?e.log.for(e[t]):z.for(e).for(e[t]),o=r.value;return r.value=new Proxy(o,{apply(e,t,r){const o=Z();try{const s=Reflect.apply(e,t,r);return s instanceof Promise?s.then(e=>(n.benchmark(`completed in ${Z()-o}ms`),e)).catch(e=>{throw n.benchmark(`failed in ${Z()-o}ms`),e}):(n.benchmark(`completed in ${Z()-o}ms`),s)}catch(e){throw n.benchmark(`failed in ${Z()-o}ms`),e}}}),r},e.compileLogPattern=h,e.debug=()=>B(e.LogLevel.debug,0,(...e)=>"called with "+e,(e,t)=>e?"Failed with: "+e:t?"Completed with "+JSON.stringify(t):"completed"),e.escapeRegExp=k,e.final=W,e.formatMs=q,e.getObjectName=F,e.info=()=>B(e.LogLevel.info),e.isBrowser=M,e.isClass=T,e.isFunction=I,e.isInstance=N,e.isMethod=V,e.log=B,e.logParameterRegistry=L,e.now=Z,e.padEnd=(e,t,r=" ")=>{if(1!==r.length)throw Error("Invalid character length for padding. must be one!");return e.padEnd(t,r)},e.patchPlaceholders=(e,t,r=i[0],n=i[1],o="g")=>E(e,Object.entries(t).reduce((e,[t,o])=>(e[`${r}${t}${n}`]=o,e),{}),o),e.patchString=E,e.renderPattern=y,e.sf=j,e.silly=()=>B(e.LogLevel.silly),e.stringFormat=A,e.toCamelCase=e=>e.replace(/(?:^\w|[A-Z]|\b\w)/g,(e,t)=>0===t?e.toLowerCase():e.toUpperCase()).replace(/\s+/g,""),e.toENVFormat=O,e.toKebabCase=e=>e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[\s_]+/g,"-").toLowerCase(),e.toPascalCase=e=>e.replace(/(?:^\w|[A-Z]|\b\w)/g,e=>e.toUpperCase()).replace(/\s+/g,""),e.toSnakeCase=_,e.trace=()=>B(e.LogLevel.trace),e.verbose=(t=0)=>(t||(t=0),B(e.LogLevel.verbose,t)),Object.keys(t).forEach(r=>{"default"===r||Object.prototype.hasOwnProperty.call(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:()=>t[r]})})},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("styled-string-builder"),require("typed-object-accumulator"),require("tslib")):"function"==typeof define&&define.amd?define(["exports","styled-string-builder","typed-object-accumulator","tslib"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).logging={},e.styledStringBuilder,e.typedObjectAccumulator,e.tslib);
|
|
1
|
+
var e,t;e=this,t=function(e,t,r,n){"use strict";const o="ENV",s="__",i=["${","}"];var a;e.LogLevel=void 0,(a=e.LogLevel||(e.LogLevel={})).benchmark="benchmark",a.error="error",a.warn="warn",a.info="info",a.verbose="verbose",a.debug="debug",a.trace="trace",a.silly="silly";const c={benchmark:0,error:3,warn:6,info:9,verbose:12,debug:15,trace:18,silly:21};var l;e.LoggingMode=void 0,(l=e.LoggingMode||(e.LoggingMode={})).RAW="raw",l.JSON="json";const u={app:{},separator:{},class:{fg:34},id:{fg:36},stack:{},timestamp:{},message:{error:{fg:31}},method:{},logLevel:{benchmark:{fg:32,style:["bold"]},error:{fg:31,style:["bold"]},info:{fg:34,style:["bold"]},verbose:{fg:34,style:["bold"]},debug:{fg:33,style:["bold"]},trace:{fg:33,style:["bold"]},silly:{fg:33,style:["bold"]}}},g={env:"development",verbose:0,level:e.LogLevel.info,logLevel:!0,style:!1,filters:[],contextSeparator:".",separator:"-",timestamp:!0,timestampFormat:"HH:mm:ss.SSS",context:!0,meta:!0,format:e.LoggingMode.RAW,pattern:"{level} [{timestamp}] {app} {context} {separator} {message} {stack}",theme:u};class f{constructor(){this.descriptors=new Map}register(e){return this.descriptors.set(e.key,e),this}unregister(e){return this.descriptors.delete(e),this}get(e){return this.descriptors.get(e)}render(e,t){const r={},n=new Set;return t.forEach(t=>{if(n.has(t))return;n.add(t);const o=this.descriptors.get(t);if(!o)return;if(o.shouldInclude&&!o.shouldInclude(e))return;const s=o.render(e);if(void 0===s)return;const i=o.style?o.style(s,e):s;r[t]=i}),r}keys(){return Array.from(this.descriptors.keys())}}const p=new Map;function h(e){if(p.has(e))return p.get(e);const t=d(e||""),r=new Set,n=[];m(t,r,n);const o={pattern:e,segments:t,keys:n,includesMeta:r.has("meta")};return p.set(e,o),o}function y(e,t){return v(e.segments,t).text}function d(e){const t=[];let r=0;for(;r<e.length;){const n=e[r];if("["===n){const n=b(e,r,"[","]");if(-1===n){t.push({type:"literal",value:"["}),r++;continue}const o=e.slice(r+1,n);t.push({type:"optional",prefix:"[",suffix:"]",children:d(o)}),r=n+1;continue}if("{"===n){const n=e.indexOf("}",r+1);if(-1===n){t.push({type:"literal",value:"{"}),r++;continue}const o=e.slice(r+1,n).trim();t.push({type:"parameter",key:o}),r=n+1;continue}let o=r;for(;o<e.length&&"["!==e[o]&&"{"!==e[o];)o++;const s=e.slice(r,o);s.length&&t.push({type:"literal",value:s}),r=o}return t}function b(e,t,r,n){let o=0;for(let s=t;s<e.length;s++){const t=e[s];if(t===r)o++;else if(t===n&&(o--,0===o))return s}return-1}function m(e,t,r){for(const n of e)"parameter"===n.type&&(t.has(n.key)||(t.add(n.key),r.push(n.key))),"optional"===n.type&&m(n.children,t,r)}function v(e,t){const r=[];let n=!1;for(const o of e){const e=x(o,t);e.text.length&&r.push(e.text),n=n||e.hasValue}return{text:r.join(""),hasValue:n}}function x(e,t){if("literal"===e.type)return{text:e.value,hasValue:!1};if("parameter"===e.type){const r=t[e.key]??"";return{text:r,hasValue:r.length>0}}const r=v(e.children,t);return r.hasValue?{text:`${e.prefix}${r.text}${e.suffix}`,hasValue:!0}:{text:"",hasValue:!1}}const w=new f;w.register({key:"level",render(e){if(!1!==e.config.logLevel)return e.level.toUpperCase()},style:(e,t)=>t.applyTheme(e,"logLevel")}).register({key:"timestamp",shouldInclude:e=>!(!e.config.timestamp||!e.timestamp),render:e=>e.timestamp,style:(e,t)=>t.applyTheme(e,"timestamp")}).register({key:"app",shouldInclude:e=>!!e.app,render:e=>e.app,style:(e,t)=>t.applyTheme(e,"app")}).register({key:"context",shouldInclude:e=>!1!==e.config.context&&e.context.length>0,render(e){const t=e.config.contextSeparator||".";return e.context.join(t)},style:(e,t)=>t.applyTheme(e,"class")}).register({key:"separator",shouldInclude:e=>!!e.separator,render:e=>e.separator,style:(e,t)=>t.applyTheme(e,"separator")}).register({key:"message",render:e=>e.filteredMessage,style:(e,t)=>t.applyTheme(e,"message")}).register({key:"stack",shouldInclude:e=>!!e.stack,render:e=>e.stack,style:(e,t)=>t.applyTheme(e,"stack")}).register({key:"meta",shouldInclude:e=>!!e.metaString,render:e=>e.metaString}).register({key:"correlationId",shouldInclude:e=>!!e.correlationId,render:e=>e.correlationId,style:(e,t)=>t.applyTheme(e,"id")});const L=w;function E(e,t,r="g"){return Object.entries(t).forEach(([t,n])=>{const o=RegExp(k(t),r);e=e.replace(o,n)}),e}function O(e){return _(e).toUpperCase()}function _(e){return e.replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/[\s-]+/g,"_").toLowerCase()}function k(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function j(e,...t){if(t.length>1&&!t.every(e=>"string"==typeof e||"number"==typeof e))throw Error("Only string and number arguments are supported for multiple replacements.");if(1===t.length&&"object"==typeof t[0]){const r=t[0];return Object.entries(r).reduce((e,[t,r])=>e.replace(RegExp(`\\{${t}\\}`,"g"),()=>r),e)}return e.replace(/{(\d+)}/g,(e,r)=>void 0!==t[r]?t[r].toString():"undefined")}const A=j;function M(){return Object.getPrototypeOf(Object.getPrototypeOf(globalThis))!==Object.prototype}const P=Symbol("EnvironmentEmpty"),S=Symbol("EnvironmentModel"),R=/^[a-z][a-zA-Z0-9]*$/;class C extends r.ObjectAccumulator{static{this.factory=()=>new C}constructor(){super(),Object.defineProperty(this,S,{value:{},writable:!0,enumerable:!1,configurable:!1})}fromEnv(e){let t;return M()?t=globalThis[o]||{}:(t=globalThis.process.env,e=O(e)),this.parseEnvValue(t[e])}parseEnvValue(e){return C.parseRuntimeValue(e)}static parseRuntimeValue(e){if("string"!=typeof e)return e;if("true"===e)return!0;if("false"===e)return!1;const t=e.trim();return/^-?\d+(\.\d+)?$/.test(t)?Number(t):e}expand(e){Object.entries(e).forEach(([e,t])=>{C.mergeModel(this[S],e,t),Object.defineProperty(this,e,{get:()=>{const r=this.fromEnv(e);return void 0!==r?r:t&&"object"==typeof t?Array.isArray(t)?t:C.buildEnvProxy(t,[e]):""===t?P:t},set:e=>{t=e},configurable:!0,enumerable:!0})})}orThrow(){const e=this[S],t=e=>void 0!==e?this.parseEnvValue(e):void 0,r=(e,t=!1)=>C.missingEnvError(e,t),n=(e,o)=>{const s={get(s,i){if("string"!=typeof i)return;if(Array.isArray(e)&&"length"===i)return e.length;const a=[...o,i],{key:c,value:l}=C.readRuntimeForPath(a);if("string"==typeof l&&0===l.length)throw r(c,!0);const u=t(l);if(void 0!==u){if("string"==typeof u&&0===u.length)throw r(c,!0);return u}if(!e||!Object.prototype.hasOwnProperty.call(e,i))throw r(c);const g=e[i];if(void 0!==g){if(""===g)throw r(c);return g&&"object"==typeof g?n(g,a):g}},ownKeys:()=>e?Reflect.ownKeys(e):[],getOwnPropertyDescriptor(t,r){if(e)return Object.prototype.hasOwnProperty.call(e,r)?{enumerable:!0,configurable:!0}:void 0}};return new Proxy(Array.isArray(e)?[]:{},s)};return new Proxy(this,{get(o,s,i){if("string"!=typeof s)return Reflect.get(o,s,i);if(!Object.prototype.hasOwnProperty.call(e,s))return Reflect.get(o,s,i);const{key:a,value:c}=C.readRuntimeForPath([s]);if("string"==typeof c&&0===c.length)throw r(a,!0);const l=t(c);if(void 0!==l){if("string"==typeof l&&0===l.length)throw r(a,!0);return l}const u=e[s];if(u&&"object"==typeof u)return n(u,[s]);if(void 0===u)return Reflect.get(o,s,i);const g=Reflect.get(o,s);if(void 0===g||""===g)throw r(a,""===g);return g}})}static instance(...e){if(!C._instance){const t=C.factory(...e),r=new Proxy(t,{get(e,t,r){const n=Reflect.get(e,t,r);if(n!==P&&("string"!=typeof t||!Object.prototype.hasOwnProperty.call(e,t)||void 0!==n)){if(void 0!==n)return n;if("string"==typeof t){if("app"===t)return;return C.buildEnvProxy(void 0,[t])}return n}}});C._instance=r}return C._instance}accumulate(e){return super.accumulate(e),this}static accumulate(e){const t=C.instance();return Object.keys(t).forEach(e=>{const r=Object.getOwnPropertyDescriptor(t,e);r&&r.configurable&&r.enumerable&&Object.defineProperty(t,e,{...r,enumerable:!1})}),t.accumulate(e),t}static get(e){return C._instance.get(e)}static formatEnvSegment(e){return R.test(e)?O(e):e.toUpperCase()}static buildEnvKey(e){return e.map(e=>C.formatEnvSegment(e)).join(s)}static buildRawKey(e){return e.join(s)}static readRuntimeForPath(e){const t=C.buildEnvKey(e),r=C.buildRawKey(e),n=C.readRuntimeEnv(t);if(void 0!==n)return{key:t,value:n};if(r!==t){const e=C.readRuntimeEnv(r);if(void 0!==e)return{key:r,value:e}}return{key:t,value:void 0}}static buildEnvProxy(e,t){const r=e=>C.readRuntimeEnv(e),n=/^[0-9]+$/,o={get(o,s){if(s===Symbol.toPrimitive)return()=>C.buildEnvKey(t);if("toString"===s)return()=>C.buildEnvKey(t);if("valueOf"===s)return()=>C.buildEnvKey(t);if("symbol"==typeof s)return;if(Array.isArray(e)&&"length"===s)return e.length;const i=[...t,s],a=C.buildEnvKey(i),c=C.buildRawKey(i);let l=r(a);if(void 0===l&&c!==a&&(l=r(c)),void 0!==l)return C.parseRuntimeValue(l);const u=!!e&&Object.prototype.hasOwnProperty.call(e,s),g=u?e[s]:void 0;if(Array.isArray(e)&&(e=>"string"==typeof e&&n.test(e))(s)){if(!u)return;return g&&"object"==typeof g?C.buildEnvProxy(g,i):C.parseRuntimeValue(g)}return g&&"object"==typeof g?C.buildEnvProxy(g,i):u&&""===g||u&&void 0===g?void 0:u?C.parseRuntimeValue(g):C.buildEnvProxy(void 0,i)},ownKeys:()=>e?Reflect.ownKeys(e):[],getOwnPropertyDescriptor(t,r){if(e)return Object.prototype.hasOwnProperty.call(e,r)?{enumerable:!0,configurable:!0}:void 0}};return new Proxy(Array.isArray(e)?[]:{},o)}static keys(e=!0){return C.instance().keys().map(t=>e?O(t):t)}static mergeModel(e,t,r){if(e){if(r&&"object"==typeof r&&!Array.isArray(r)){const n=e[t],o=n&&"object"==typeof n&&!Array.isArray(n)?n:{};return e[t]=o,void Object.entries(r).forEach(([e,t])=>{C.mergeModel(o,e,t)})}e[t]=r}}static readRuntimeEnv(e){if(M()){const t=globalThis[o];return t?t[e]:void 0}return globalThis?.process?.env?.[e]}static missingEnvError(e,t){return Error(`Environment variable ${e} is required but was ${t?"an empty string":"undefined"}.`)}}const $=C.accumulate(Object.assign({app:void 0},g,{env:(M()&&globalThis[o]?globalThis[o].NODE_ENV:globalThis.process.env.NODE_ENV)||"development"}));function T(e){if("function"!=typeof e)return!1;try{const t=Function.prototype.toString.call(e);if(/^\s*class[\s{]/.test(t))return!0}catch{}const t=Object.getOwnPropertyDescriptor(e,"prototype");if(!t||!t.value)return!1;if(!1===t.writable)return!0;const r=e.prototype;return!!Object.prototype.hasOwnProperty.call(r,"constructor")&&Object.getOwnPropertyNames(r).filter(e=>"constructor"!==e).length>0}function I(e){return"function"==typeof e&&!T(e)}function V(e){if(!I(e))return!1;const t=Object.getOwnPropertyDescriptor(e,"prototype");return!t||void 0===t.value}function N(e){if(null===e||"object"!=typeof e)return!1;const t=e.constructor;return!(!t||t===Object)&&T(t)}function F(e){if(null===e)return"null";if(void 0===e)return"undefined";if("string"==typeof e)return e;if(T(e))return e.name||"AnonymousClass";if(N(e)){const t=e.toString;if("function"==typeof t&&t!==Object.prototype.toString)try{const r=t.call(e);if("string"==typeof r&&r.length)return r}catch{}const r=e.constructor;return r&&r.name?r.name:"AnonymousInstance"}if(V(e)||I(e)){const t=e;return t.name?t.name:"anonymous"}if("object"==typeof e){const t=Object.prototype.toString.call(e),r=/^\[object ([^\]]+)\]$/.exec(t);return r?.[1]?r[1]:"Object"}return typeof e}const K=Symbol("MiniLoggerRootContext");class D{constructor(e,t,r=[]){this.conf=t,this.baseContext=Array.isArray(r)?[...r]:[],e&&this.baseContext.push(e),this.context=[...this.baseContext],this[K]=[...this.baseContext]}config(e){return this.conf&&e in this.conf?this.conf[e]:z.getConfig()[e]}for(e,t,...r){let n,o=t;const s=Array.isArray(this.context)?[...this.context]:"string"==typeof this.context&&this.context?[this.context]:[],i=this[K],a=Array.isArray(i)?[...i]:Array.isArray(this.baseContext)?[...this.baseContext]:[];"string"==typeof e?n=e:void 0!==e&&(T(e)||N(e)||I(e)?n=F(e):!o&&e&&"object"==typeof e&&(o=e));let c=n?[...s,n]:[...s];return new Proxy(this,{get:(e,t,r)=>{const n=Reflect.get(e,t,r);return"config"===t?new Proxy(this.config,{apply:(e,t,n)=>{const[s]=n;return o&&void 0!==s&&s in o?o[s]:Reflect.apply(e,r,n)},get:(e,t)=>o&&t in o?o[t]:Reflect.get(e,t,r)}):"clear"===t?()=>(c=[...a],o=void 0,r):"context"===t?c:"root"===t?[...a]:t===K?a:"for"===t?(...t)=>{const r=Array.isArray(e.context)?[...e.context]:"string"==typeof e.context&&e.context?[e.context]:[];e.context=[...c];try{return e.for.apply(e,t)}finally{e.context=r}}:n}})}getConfigSnapshot(){return{...z.getConfig(),...this.conf||{}}}getContextSegments(){return Array.isArray(this.context)?[...this.context]:"string"==typeof this.context&&this.context?[this.context]:[]}resolveFilters(e){const t=e.filters||[];return Array.isArray(t)?t.filter(e=>"object"==typeof e&&null!==e&&"function"==typeof e.filter):[]}applyFilters(e,t,r){const n=this.resolveFilters(r);return n.length?n.reduce((e,n)=>{try{const o=n.filter(r,e,[...t]);return"string"==typeof o?o:e}catch{return e}},e):e}createLog(e,t,r,n){const o=!!this.config("style"),s=this.config("separator"),i=z.getConfig().app,a=this.config("timestamp")?(new Date).toISOString():void 0,c=this.getConfigSnapshot(),l=this.getContextSegments(),u="string"==typeof t?t:t instanceof Error?t.message:t+"",g=this.applyFilters(u,l,c),f=this.config("meta")&&n?n:void 0,p=f?this.formatMeta(f):void 0,d=p?this.applyFilters(p,l,c):void 0,b=this.config("correlationId"),m=null!=b?b+"":void 0;let v,x;if(r||t instanceof Error){const n=r||t;n.stack&&(x="string"==typeof t?g:n.message,v=` | ${x} - Stack trace:\n${o?z.theme(n.stack,"stack",e):n.stack}`)}const w={config:c,level:e,context:l,timestamp:a,app:"string"==typeof i&&i.length?i:void 0,separator:s,correlationId:m,rawMessage:u,filteredMessage:g,meta:f,metaString:d,stack:v,stackLabel:x,applyTheme:(t,r)=>o?z.theme(t,r,e):t},E=this.config("pattern"),O=c.pattern||"",_=h(E.length?E:O),k=L.render(w,_.keys);switch(this.config("format")){case"json":{const e=L.render(w,L.keys()),t={};return Object.entries(e).forEach(([e,r])=>{"meta"!==e&&(t[e]=r)}),w.meta&&(t.meta=w.meta),JSON.stringify(t)}case"raw":{let e=this.normalizePatternSpacing(y(_,k));return!_.includesMeta&&d&&(e=e?`${e} ${d}`:d),e}default:throw Error("Unsupported logging format: "+this.config("format"))}}formatMeta(e){try{return JSON.stringify(e)}catch(t){return e+""}}normalizePatternSpacing(e){return e.replace(/[ \t]{2,}/g," ").replace(/^[ \t]+|[ \t]+$/g,"")}log(t,r,n,o){const s=this.config("level");if(c[t]>c[s])return;let i;switch(t){case e.LogLevel.benchmark:case e.LogLevel.info:case e.LogLevel.verbose:i=console.log;break;case e.LogLevel.debug:i=console.debug;break;case e.LogLevel.error:i=console.error;break;case e.LogLevel.trace:i=console.trace;break;case e.LogLevel.warn:i=console.warn;break;case e.LogLevel.silly:i=console.debug;break;default:throw Error("Invalid log level")}i(this.createLog(t,r,n,o))}benchmark(t,r){this.log(e.LogLevel.benchmark,t,void 0,r)}silly(t,r=0,n){const o="number"==typeof r?r:0,s="number"==typeof r?n:r;this.config("verbose")<o||this.log(e.LogLevel.silly,t,void 0,s)}verbose(t,r=0,n){const o="number"==typeof r?r:0,s="number"==typeof r?n:r;this.config("verbose")<o||this.log(e.LogLevel.verbose,t,void 0,s)}info(t,r){this.log(e.LogLevel.info,t,void 0,r)}debug(t,r){this.log(e.LogLevel.debug,t,void 0,r)}error(t,r,n){let o,s;r instanceof Error?(o=r,s=n):s=r,this.log(e.LogLevel.error,t,o,s)}warn(t,r){this.log(e.LogLevel.warn,t,void 0,r)}trace(t,r){this.log(e.LogLevel.trace,t,void 0,r)}setConfig(e){this.conf={...this.conf||{},...e}}get root(){return[...this.baseContext]}clear(){return this.context=[...this.baseContext],this}}class z{static{this._factory=(e,t)=>{const r="string"==typeof $.app?[$.app]:[];return new D(e,t,r)}}static{this._config=$}constructor(){}static setFactory(e){z._factory=e,this.global=void 0}static setConfig(e){Object.entries(e).forEach(([e,t])=>{this._config[e]=t})}static getConfig(){return this._config}static get(){return this.ensureRoot()}static verbose(e,t=0,r){return this.get().verbose(e,t,r)}static info(e,t){return this.get().info(e,t)}static trace(e,t){return this.get().trace(e,t)}static debug(e,t){return this.get().debug(e,t)}static benchmark(e,t){return this.get().benchmark(e,t)}static silly(e,t=0,r){return this.get().silly(e,t,r)}static warn(e,t){return this.get().warn(e,t)}static error(e,t,r){return this.get().error(e,t,r)}static for(e,t,...r){const n=void 0!==t?[e,t]:[e];return(this.global?this.global:this.ensureRoot(r)).for(...n)}static because(e,t){let r=this.ensureRoot().for(e,this._config);return t&&(r=r.for(t)),r}static baseContext(){const e=this._config.app;return"string"==typeof e&&e.length?[e]:[]}static attachRootContext(e){const t=e.root&&Array.isArray(e.root)?[...e.root]:this.baseContext();return(!e.context||Array.isArray(e.context)&&0===e.context.length)&&(e.context=[...t]),e[K]=[...t],e}static ensureRoot(e=[]){if(!this.global){const t=this._factory(void 0,void 0,...e);this.global=this.attachRootContext(t)}return this.global}static theme(r,n,o,s=u){if(!this._config.style)return r;const i=s[n];if(!i||!Object.keys(i).length)return r;let a=i;const c=Object.assign({},e.LogLevel);return Object.keys(i)[0]in c&&(a=i[o]||{}),Object.keys(a).reduce((e,r)=>{const n=a[r];return n?((e,r,n)=>{try{const o=e;let s=t.style(o);function i(e,r=!1){let i=r?s.background:s.foreground;if(!Array.isArray(e))return i.call(s,n);switch(e.length){case 1:return i=r?s.bgColor256:s.color256,i(e[0]);case 3:return i=r?s.bgRgb:s.rgb,s.rgb(e[0],e[1],e[2]);default:return t.style(o)}}function a(e){s="number"==typeof e?s.style(e):s[e]}switch(r){case"bg":case"fg":return i(n).text;case"style":return Array.isArray(n)?n.forEach(a):a(n),s.text;default:return o}}catch(c){return e}})(e,r,n):e},r)}static register(e){return L.register(e)}static unregister(e){return L.unregister(e)}}class U{get log(){return this._log||(this._log=z.for(this)),this._log}constructor(){}}class J extends U{get log(){return super.log.for(this,{filters:[]})}}const Z="undefined"!=typeof globalThis&&"function"==typeof globalThis.performance?.now?()=>globalThis.performance.now():"undefined"!=typeof process&&"function"==typeof process.hrtime?.bigint?()=>{const e=process.hrtime.bigint();return Number(e)/1e6}:()=>Date.now();function q(e){const t=0>e?"-":"",r=Math.abs(e),n=Math.floor(r/36e5),o=Math.floor(r%36e5/6e4),s=Math.floor(r%6e4/1e3),i=Math.floor(r%1e3),a=(e,t)=>e.toString().padStart(t,"0");return`${t}${a(n,2)}:${a(o,2)}:${a(s,2)}.${a(i,3)}`}function B(t=e.LogLevel.info,r=0,n=(...e)=>"called with "+e,o){return(e,s,i)=>{if(!i||"number"==typeof i)throw Error("Logging decoration only applies to methods");const a=e instanceof U?e.log.for(e[s]):z.for(e).for(e[s]),c=a[t].bind(a),l=i.value;return i.value=new Proxy(l,{apply(e,t,s){c(n(...s),r);try{const r=Reflect.apply(e,t,s);return r instanceof Promise?r.then(e=>(o&&c(o(void 0,e)),e)).catch(e=>{throw o&&a.error(o(e)),e}):(o&&c(o(void 0,r)),r)}catch(e){throw o&&a.error(o(e)),e}}}),i}}function W(){return(e,t,r)=>{if(!r)throw Error("final decorator can only be used on methods");return r?.configurable&&(r.configurable=!1),r}}class H extends J{constructor(e,t){super(),this.regexp=e,this.replacement=t}match(e){const t=this.regexp.exec(e);return this.regexp.lastIndex=0,t}filter(e,t,r){const n=this.log.for(this.filter);if(!this.match(t))return t;try{return t.replace(this.regexp,this.replacement)}catch(e){n.error("PatternFilter replacement error: "+e)}return""}}n.__decorate([W(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[String]),n.__metadata("design:returntype",void 0)],H.prototype,"match",null),e.BrowserEnvKey=o,e.DefaultLoggingConfig=g,e.DefaultPlaceholderWrappers=i,e.DefaultTheme=u,e.ENV_PATH_DELIMITER=s,e.Environment=C,e.LogFilter=J,e.LogParameterRegistry=f,e.LoggedClass=U,e.LoggedEnvironment=$,e.Logging=z,e.MiniLogger=D,e.NumericLogLevels=c,e.PACKAGE_NAME="@decaf-ts/logging",e.PatternFilter=H,e.ROOT_CONTEXT_SYMBOL=K,e.StopWatch=class{constructor(e=!1){this._startMs=null,this._elapsedMs=0,this._running=!1,this._laps=[],this._lastLapTotalMs=0,e&&this.start()}get running(){return this._running}get elapsedMs(){return this._running&&null!=this._startMs?this._elapsedMs+(Z()-this._startMs):this._elapsedMs}start(){return this._running||(this._running=!0,this._startMs=Z()),this}pause(){return this._running&&null!=this._startMs&&(this._elapsedMs+=Z()-this._startMs,this._startMs=null,this._running=!1),this}resume(){return this._running||(this._running=!0,this._startMs=Z()),this}stop(){return this.pause(),this._elapsedMs}reset(){const e=this._running;return this._startMs=e?Z():null,this._elapsedMs=0,this._laps=[],this._lastLapTotalMs=0,this}lap(e){const t=this.elapsedMs,r=t-this._lastLapTotalMs,n={index:this._laps.length,label:e,ms:r,totalMs:t};return this._laps.push(n),this._lastLapTotalMs=t,n}get laps(){return this._laps}toString(){return q(this.elapsedMs)}toJSON(){return{running:this._running,elapsedMs:this.elapsedMs,laps:this._laps.slice()}}},e.VERSION="0.15.0",e.benchmark=()=>(e,t,r)=>{if(!r||"number"==typeof r)throw Error("benchmark decoration only applies to methods");const n=e instanceof U?e.log.for(e[t]):z.for(e).for(e[t]),o=r.value;return r.value=new Proxy(o,{apply(e,t,r){const o=Z();try{const s=Reflect.apply(e,t,r);return s instanceof Promise?s.then(e=>(n.benchmark(`completed in ${Z()-o}ms`),e)).catch(e=>{throw n.benchmark(`failed in ${Z()-o}ms`),e}):(n.benchmark(`completed in ${Z()-o}ms`),s)}catch(e){throw n.benchmark(`failed in ${Z()-o}ms`),e}}}),r},e.compileLogPattern=h,e.debug=()=>B(e.LogLevel.debug,0,(...e)=>"called with "+e,(e,t)=>e?"Failed with: "+e:t?"Completed with "+JSON.stringify(t):"completed"),e.escapeRegExp=k,e.final=W,e.formatMs=q,e.getObjectName=F,e.info=()=>B(e.LogLevel.info),e.isBrowser=M,e.isClass=T,e.isFunction=I,e.isInstance=N,e.isMethod=V,e.log=B,e.logParameterRegistry=L,e.now=Z,e.padEnd=(e,t,r=" ")=>{if(1!==r.length)throw Error("Invalid character length for padding. must be one!");return e.padEnd(t,r)},e.patchPlaceholders=(e,t,r=i[0],n=i[1],o="g")=>E(e,Object.entries(t).reduce((e,[t,o])=>(e[`${r}${t}${n}`]=o,e),{}),o),e.patchString=E,e.renderPattern=y,e.sf=j,e.silly=()=>B(e.LogLevel.silly),e.stringFormat=A,e.toCamelCase=e=>e.replace(/(?:^\w|[A-Z]|\b\w)/g,(e,t)=>0===t?e.toLowerCase():e.toUpperCase()).replace(/\s+/g,""),e.toENVFormat=O,e.toKebabCase=e=>e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[\s_]+/g,"-").toLowerCase(),e.toPascalCase=e=>e.replace(/(?:^\w|[A-Z]|\b\w)/g,e=>e.toUpperCase()).replace(/\s+/g,""),e.toSnakeCase=_,e.trace=()=>B(e.LogLevel.trace),e.verbose=(t=0)=>(t||(t=0),B(e.LogLevel.verbose,t)),Object.keys(t).forEach(r=>{"default"===r||Object.prototype.hasOwnProperty.call(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:()=>t[r]})})},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("styled-string-builder"),require("typed-object-accumulator"),require("tslib")):"function"==typeof define&&define.amd?define(["exports","styled-string-builder","typed-object-accumulator","tslib"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).logging={},e.styledStringBuilder,e.typedObjectAccumulator,e.tslib);
|
|
2
2
|
//# sourceMappingURL=logging.cjs.map
|
package/lib/cjs/LoggedClass.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.LoggedClass = void 0;
|
|
4
|
-
const
|
|
4
|
+
const logging_js_1 = require("./logging.cjs");
|
|
5
5
|
/**
|
|
6
6
|
* @description A base class that provides a ready-to-use logger instance.
|
|
7
7
|
* @summary This class supplies inheriting classes with a lazily created, context-aware {@link Logger} via the protected `log` getter. This promotes consistent, structured logging without the need for manual wiring.
|
|
@@ -38,10 +38,11 @@ class LoggedClass {
|
|
|
38
38
|
*/
|
|
39
39
|
get log() {
|
|
40
40
|
if (!this._log)
|
|
41
|
-
this._log =
|
|
41
|
+
this._log = logging_js_1.Logging.for(this);
|
|
42
42
|
return this._log;
|
|
43
43
|
}
|
|
44
44
|
constructor() { }
|
|
45
45
|
}
|
|
46
46
|
exports.LoggedClass = LoggedClass;
|
|
47
|
+
//# sourceMappingURL=LoggedClass.js.map
|
|
47
48
|
//# sourceMappingURL=LoggedClass.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoggedClass.js","sourceRoot":"","sources":["LoggedClass.js"],"names":[],"mappings":";;;AAAA,6CAAuC;AACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAa,WAAW;IACpB;;;;OAIG;IACH,IAAI,GAAG;QACH,IAAI,CAAC,IAAI,CAAC,IAAI;YACV,IAAI,CAAC,IAAI,GAAG,oBAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IACD,gBAAgB,CAAC;CACpB;AAZD,kCAYC;AACD,uCAAuC"}
|
package/lib/cjs/constants.cjs
CHANGED
|
@@ -22,14 +22,6 @@ exports.ENV_PATH_DELIMITER = "__";
|
|
|
22
22
|
* @memberOf module:Logging
|
|
23
23
|
*/
|
|
24
24
|
exports.DefaultPlaceholderWrappers = ["${", "}"];
|
|
25
|
-
/**
|
|
26
|
-
* @description An enum for log levels.
|
|
27
|
-
* @summary Defines the different levels of logging for the application.
|
|
28
|
-
* @enum {string}
|
|
29
|
-
* @readonly
|
|
30
|
-
* @memberOf module:Logging
|
|
31
|
-
*/
|
|
32
|
-
var LogLevel;
|
|
33
25
|
(function (LogLevel) {
|
|
34
26
|
/** @description Benchmark events that capture performance metrics. */
|
|
35
27
|
LogLevel["benchmark"] = "benchmark";
|
|
@@ -47,7 +39,7 @@ var LogLevel;
|
|
|
47
39
|
LogLevel["trace"] = "trace";
|
|
48
40
|
/** @description Extremely chatty or playful log entries. */
|
|
49
41
|
LogLevel["silly"] = "silly";
|
|
50
|
-
})(LogLevel || (exports.LogLevel =
|
|
42
|
+
})(exports.LogLevel || (exports.LogLevel = {}));
|
|
51
43
|
/**
|
|
52
44
|
* @description The numeric values that are associated with log levels.
|
|
53
45
|
* @summary This provides a numeric representation of log levels for comparison and filtering.
|
|
@@ -78,20 +70,12 @@ exports.NumericLogLevels = {
|
|
|
78
70
|
trace: 18,
|
|
79
71
|
silly: 21,
|
|
80
72
|
};
|
|
81
|
-
/**
|
|
82
|
-
* @description An enum for logging output modes.
|
|
83
|
-
* @summary Defines the different output formats for log messages.
|
|
84
|
-
* @enum {string}
|
|
85
|
-
* @readonly
|
|
86
|
-
* @memberOf module:Logging
|
|
87
|
-
*/
|
|
88
|
-
var LoggingMode;
|
|
89
73
|
(function (LoggingMode) {
|
|
90
74
|
/** Raw text format for human readability */
|
|
91
75
|
LoggingMode["RAW"] = "raw";
|
|
92
76
|
/** JSON format for machine parsing */
|
|
93
77
|
LoggingMode["JSON"] = "json";
|
|
94
|
-
})(LoggingMode || (exports.LoggingMode =
|
|
78
|
+
})(exports.LoggingMode || (exports.LoggingMode = {}));
|
|
95
79
|
/**
|
|
96
80
|
* @description The default theme for styling log output.
|
|
97
81
|
* @summary Defines the default color and style settings for various components of log messages.
|
|
@@ -155,7 +139,7 @@ exports.DefaultTheme = {
|
|
|
155
139
|
exports.DefaultLoggingConfig = {
|
|
156
140
|
env: "development",
|
|
157
141
|
verbose: 0,
|
|
158
|
-
level: LogLevel.info,
|
|
142
|
+
level: exports.LogLevel.info,
|
|
159
143
|
logLevel: true,
|
|
160
144
|
style: false,
|
|
161
145
|
filters: [],
|
|
@@ -165,8 +149,9 @@ exports.DefaultLoggingConfig = {
|
|
|
165
149
|
timestampFormat: "HH:mm:ss.SSS",
|
|
166
150
|
context: true,
|
|
167
151
|
meta: true,
|
|
168
|
-
format: LoggingMode.RAW,
|
|
152
|
+
format: exports.LoggingMode.RAW,
|
|
169
153
|
pattern: "{level} [{timestamp}] {app} {context} {separator} {message} {stack}",
|
|
170
154
|
theme: exports.DefaultTheme,
|
|
171
155
|
};
|
|
156
|
+
//# sourceMappingURL=constants.js.map
|
|
172
157
|
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["constants.js"],"names":[],"mappings":"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"}
|
package/lib/cjs/decorators.cjs
CHANGED
|
@@ -8,10 +8,10 @@ exports.silly = silly;
|
|
|
8
8
|
exports.trace = trace;
|
|
9
9
|
exports.verbose = verbose;
|
|
10
10
|
exports.final = final;
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
11
|
+
const constants_js_1 = require("./constants.cjs");
|
|
12
|
+
const logging_js_1 = require("./logging.cjs");
|
|
13
|
+
const time_js_1 = require("./time.cjs");
|
|
14
|
+
const LoggedClass_js_1 = require("./LoggedClass.cjs");
|
|
15
15
|
/**
|
|
16
16
|
* @description A method decorator for logging function calls.
|
|
17
17
|
* @summary This decorator wraps a class method to automatically log entry, exit, timing, and optional custom messages at a configurable {@link LogLevel}.
|
|
@@ -44,13 +44,13 @@ const LoggedClass_1 = require("./LoggedClass.cjs");
|
|
|
44
44
|
* end
|
|
45
45
|
* @category Method Decorators
|
|
46
46
|
*/
|
|
47
|
-
function log(level =
|
|
47
|
+
function log(level = constants_js_1.LogLevel.info, verbosity = 0, entryMessage = (...args) => `called with ${args}`, exitMessage) {
|
|
48
48
|
return function log(target, propertyKey, descriptor) {
|
|
49
49
|
if (!descriptor || typeof descriptor === "number")
|
|
50
50
|
throw new Error(`Logging decoration only applies to methods`);
|
|
51
|
-
const logger = target instanceof
|
|
51
|
+
const logger = target instanceof LoggedClass_js_1.LoggedClass
|
|
52
52
|
? target["log"].for(target[propertyKey])
|
|
53
|
-
:
|
|
53
|
+
: logging_js_1.Logging.for(target).for(target[propertyKey]);
|
|
54
54
|
const method = logger[level].bind(logger);
|
|
55
55
|
const originalMethod = descriptor.value;
|
|
56
56
|
descriptor.value = new Proxy(originalMethod, {
|
|
@@ -112,31 +112,31 @@ function benchmark() {
|
|
|
112
112
|
return function benchmark(target, propertyKey, descriptor) {
|
|
113
113
|
if (!descriptor || typeof descriptor === "number")
|
|
114
114
|
throw new Error(`benchmark decoration only applies to methods`);
|
|
115
|
-
const logger = target instanceof
|
|
115
|
+
const logger = target instanceof LoggedClass_js_1.LoggedClass
|
|
116
116
|
? target["log"].for(target[propertyKey])
|
|
117
|
-
:
|
|
117
|
+
: logging_js_1.Logging.for(target).for(target[propertyKey]);
|
|
118
118
|
const originalMethod = descriptor.value;
|
|
119
119
|
descriptor.value = new Proxy(originalMethod, {
|
|
120
120
|
apply(fn, thisArg, args) {
|
|
121
|
-
const start = (0,
|
|
121
|
+
const start = (0, time_js_1.now)();
|
|
122
122
|
try {
|
|
123
123
|
const result = Reflect.apply(fn, thisArg, args);
|
|
124
124
|
if (result instanceof Promise) {
|
|
125
125
|
return result
|
|
126
126
|
.then((r) => {
|
|
127
|
-
logger.benchmark(`completed in ${(0,
|
|
127
|
+
logger.benchmark(`completed in ${(0, time_js_1.now)() - start}ms`);
|
|
128
128
|
return r;
|
|
129
129
|
})
|
|
130
130
|
.catch((e) => {
|
|
131
|
-
logger.benchmark(`failed in ${(0,
|
|
131
|
+
logger.benchmark(`failed in ${(0, time_js_1.now)() - start}ms`);
|
|
132
132
|
throw e;
|
|
133
133
|
});
|
|
134
134
|
}
|
|
135
|
-
logger.benchmark(`completed in ${(0,
|
|
135
|
+
logger.benchmark(`completed in ${(0, time_js_1.now)() - start}ms`);
|
|
136
136
|
return result;
|
|
137
137
|
}
|
|
138
138
|
catch (err) {
|
|
139
|
-
logger.benchmark(`failed in ${(0,
|
|
139
|
+
logger.benchmark(`failed in ${(0, time_js_1.now)() - start}ms`);
|
|
140
140
|
throw err;
|
|
141
141
|
}
|
|
142
142
|
},
|
|
@@ -152,7 +152,7 @@ function benchmark() {
|
|
|
152
152
|
* @category Method Decorators
|
|
153
153
|
*/
|
|
154
154
|
function debug() {
|
|
155
|
-
return log(
|
|
155
|
+
return log(constants_js_1.LogLevel.debug, 0, (...args) => `called with ${args}`, (e, result) => e
|
|
156
156
|
? `Failed with: ${e}`
|
|
157
157
|
: result
|
|
158
158
|
? `Completed with ${JSON.stringify(result)}`
|
|
@@ -166,7 +166,7 @@ function debug() {
|
|
|
166
166
|
* @category Method Decorators
|
|
167
167
|
*/
|
|
168
168
|
function info() {
|
|
169
|
-
return log(
|
|
169
|
+
return log(constants_js_1.LogLevel.info);
|
|
170
170
|
}
|
|
171
171
|
/**
|
|
172
172
|
* @description A method decorator for logging function calls with the silly level.
|
|
@@ -176,7 +176,7 @@ function info() {
|
|
|
176
176
|
* @category Method Decorators
|
|
177
177
|
*/
|
|
178
178
|
function silly() {
|
|
179
|
-
return log(
|
|
179
|
+
return log(constants_js_1.LogLevel.silly);
|
|
180
180
|
}
|
|
181
181
|
/**
|
|
182
182
|
* @description A method decorator for logging function calls with the trace level.
|
|
@@ -186,7 +186,7 @@ function silly() {
|
|
|
186
186
|
* @category Method Decorators
|
|
187
187
|
*/
|
|
188
188
|
function trace() {
|
|
189
|
-
return log(
|
|
189
|
+
return log(constants_js_1.LogLevel.trace);
|
|
190
190
|
}
|
|
191
191
|
/**
|
|
192
192
|
* @description A method decorator for logging function calls with the verbose level.
|
|
@@ -200,7 +200,7 @@ function verbose(verbosity = 0) {
|
|
|
200
200
|
if (!verbosity) {
|
|
201
201
|
verbosity = 0;
|
|
202
202
|
}
|
|
203
|
-
return log(
|
|
203
|
+
return log(constants_js_1.LogLevel.verbose, verbosity);
|
|
204
204
|
}
|
|
205
205
|
/**
|
|
206
206
|
* @description Creates a decorator that makes a method non-configurable.
|
|
@@ -219,4 +219,5 @@ function final() {
|
|
|
219
219
|
return descriptor;
|
|
220
220
|
};
|
|
221
221
|
}
|
|
222
|
+
//# sourceMappingURL=decorators.js.map
|
|
222
223
|
//# sourceMappingURL=decorators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["decorators.js"],"names":[],"mappings":"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"}
|
package/lib/cjs/environment.cjs
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.LoggedEnvironment = exports.Environment = void 0;
|
|
4
4
|
const typed_object_accumulator_1 = require("typed-object-accumulator");
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
5
|
+
const text_js_1 = require("./text.cjs");
|
|
6
|
+
const web_js_1 = require("./web.cjs");
|
|
7
|
+
const constants_js_1 = require("./constants.cjs");
|
|
8
8
|
/**
|
|
9
9
|
* @description An environment accumulator that lazily reads from runtime sources.
|
|
10
10
|
* @summary This class extends {@link ObjectAccumulator} to merge configuration objects while resolving values from Node or browser environment variables on demand.
|
|
@@ -61,13 +61,13 @@ class Environment extends typed_object_accumulator_1.ObjectAccumulator {
|
|
|
61
61
|
*/
|
|
62
62
|
fromEnv(k) {
|
|
63
63
|
let env;
|
|
64
|
-
if ((0,
|
|
64
|
+
if ((0, web_js_1.isBrowser)()) {
|
|
65
65
|
env =
|
|
66
|
-
globalThis[
|
|
66
|
+
globalThis[constants_js_1.BrowserEnvKey] || {};
|
|
67
67
|
}
|
|
68
68
|
else {
|
|
69
69
|
env = globalThis.process.env;
|
|
70
|
-
k = (0,
|
|
70
|
+
k = (0, text_js_1.toENVFormat)(k);
|
|
71
71
|
}
|
|
72
72
|
return this.parseEnvValue(env[k]);
|
|
73
73
|
}
|
|
@@ -300,16 +300,16 @@ class Environment extends typed_object_accumulator_1.ObjectAccumulator {
|
|
|
300
300
|
}
|
|
301
301
|
static formatEnvSegment(segment) {
|
|
302
302
|
return camelCasePattern.test(segment)
|
|
303
|
-
? (0,
|
|
303
|
+
? (0, text_js_1.toENVFormat)(segment)
|
|
304
304
|
: segment.toUpperCase();
|
|
305
305
|
}
|
|
306
306
|
static buildEnvKey(path) {
|
|
307
307
|
return path
|
|
308
308
|
.map((segment) => Environment.formatEnvSegment(segment))
|
|
309
|
-
.join(
|
|
309
|
+
.join(constants_js_1.ENV_PATH_DELIMITER);
|
|
310
310
|
}
|
|
311
311
|
static buildRawKey(path) {
|
|
312
|
-
return path.join(
|
|
312
|
+
return path.join(constants_js_1.ENV_PATH_DELIMITER);
|
|
313
313
|
}
|
|
314
314
|
static readRuntimeForPath(path) {
|
|
315
315
|
const formattedKey = Environment.buildEnvKey(path);
|
|
@@ -412,7 +412,7 @@ class Environment extends typed_object_accumulator_1.ObjectAccumulator {
|
|
|
412
412
|
static keys(toEnv = true) {
|
|
413
413
|
return Environment.instance()
|
|
414
414
|
.keys()
|
|
415
|
-
.map((k) => (toEnv ? (0,
|
|
415
|
+
.map((k) => (toEnv ? (0, text_js_1.toENVFormat)(k) : k));
|
|
416
416
|
}
|
|
417
417
|
static mergeModel(model, key, value) {
|
|
418
418
|
if (!model)
|
|
@@ -431,8 +431,8 @@ class Environment extends typed_object_accumulator_1.ObjectAccumulator {
|
|
|
431
431
|
model[key] = value;
|
|
432
432
|
}
|
|
433
433
|
static readRuntimeEnv(key) {
|
|
434
|
-
if ((0,
|
|
435
|
-
const env = globalThis[
|
|
434
|
+
if ((0, web_js_1.isBrowser)()) {
|
|
435
|
+
const env = globalThis[constants_js_1.BrowserEnvKey];
|
|
436
436
|
return env ? env[key] : undefined;
|
|
437
437
|
}
|
|
438
438
|
return globalThis?.process?.env?.[key];
|
|
@@ -451,9 +451,10 @@ exports.Environment = Environment;
|
|
|
451
451
|
*/
|
|
452
452
|
exports.LoggedEnvironment = Environment.accumulate(Object.assign({
|
|
453
453
|
app: undefined,
|
|
454
|
-
},
|
|
455
|
-
env: ((0,
|
|
456
|
-
? globalThis[
|
|
454
|
+
}, constants_js_1.DefaultLoggingConfig, {
|
|
455
|
+
env: ((0, web_js_1.isBrowser)() && globalThis[constants_js_1.BrowserEnvKey]
|
|
456
|
+
? globalThis[constants_js_1.BrowserEnvKey]["NODE_ENV"]
|
|
457
457
|
: globalThis.process.env["NODE_ENV"]) || "development",
|
|
458
458
|
}));
|
|
459
|
+
//# sourceMappingURL=environment.js.map
|
|
459
460
|
//# sourceMappingURL=environment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["environment.js"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.LogFilter = void 0;
|
|
4
|
-
const
|
|
4
|
+
const LoggedClass_js_1 = require("./../LoggedClass.cjs");
|
|
5
5
|
/**
|
|
6
6
|
* @description A base class for message filters that can be plugged into the logging pipeline.
|
|
7
7
|
* @summary This class extends {@link LoggedClass} to supply a scoped logger, and defines the contract that is required by {@link LoggingFilter} implementers that transform or drop log messages before emission.
|
|
@@ -26,7 +26,7 @@ const LoggedClass_1 = require("./../LoggedClass.cjs");
|
|
|
26
26
|
* Impl-->>Filter: transformed message
|
|
27
27
|
* Filter-->>Output: return filtered message
|
|
28
28
|
*/
|
|
29
|
-
class LogFilter extends
|
|
29
|
+
class LogFilter extends LoggedClass_js_1.LoggedClass {
|
|
30
30
|
/**
|
|
31
31
|
* @description A scoped logger that excludes other filters from the chain.
|
|
32
32
|
* @summary This method returns a child logger that is dedicated to the filter, which prevents recursive filter invocation when emitting diagnostic messages.
|
|
@@ -37,4 +37,5 @@ class LogFilter extends LoggedClass_1.LoggedClass {
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
exports.LogFilter = LogFilter;
|
|
40
|
+
//# sourceMappingURL=LogFilter.js.map
|
|
40
41
|
//# sourceMappingURL=LogFilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogFilter.js","sourceRoot":"","sources":["LogFilter.js"],"names":[],"mappings":";;;AAAA,wDAAkD;AAClD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAa,SAAU,SAAQ,4BAAW;IACtC;;;;OAIG;IACH,IAAI,GAAG;QACH,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC;CACJ;AATD,8BASC;AACD,qCAAqC"}
|
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PatternFilter = void 0;
|
|
2
4
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
5
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
5
|
-
|
|
6
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
7
|
+
r = Reflect.decorate(decorators, target, key, desc);
|
|
8
|
+
else
|
|
9
|
+
for (var i = decorators.length - 1; i >= 0; i--)
|
|
10
|
+
if (d = decorators[i])
|
|
11
|
+
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
12
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
13
|
};
|
|
8
14
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
15
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
16
|
+
return Reflect.metadata(k, v);
|
|
10
17
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const LogFilter_1 = require("./LogFilter.cjs");
|
|
14
|
-
const decorators_1 = require("./../decorators.cjs");
|
|
18
|
+
const LogFilter_js_1 = require("./LogFilter.cjs");
|
|
19
|
+
const decorators_js_1 = require("./../decorators.cjs");
|
|
15
20
|
/**
|
|
16
21
|
* @description A filter that patches log messages using regular expressions.
|
|
17
22
|
* @summary This class applies a configured {@link RegExp} and replacement strategy to redact, mask, or restructure log payloads before they are emitted.
|
|
@@ -38,7 +43,7 @@ const decorators_1 = require("./../decorators.cjs");
|
|
|
38
43
|
* end
|
|
39
44
|
* Filter-->>Logger: sanitized message
|
|
40
45
|
*/
|
|
41
|
-
class PatternFilter extends
|
|
46
|
+
class PatternFilter extends LogFilter_js_1.LogFilter {
|
|
42
47
|
constructor(regexp, replacement) {
|
|
43
48
|
super();
|
|
44
49
|
this.regexp = regexp;
|
|
@@ -80,9 +85,10 @@ class PatternFilter extends LogFilter_1.LogFilter {
|
|
|
80
85
|
}
|
|
81
86
|
exports.PatternFilter = PatternFilter;
|
|
82
87
|
__decorate([
|
|
83
|
-
(0,
|
|
88
|
+
(0, decorators_js_1.final)(),
|
|
84
89
|
__metadata("design:type", Function),
|
|
85
90
|
__metadata("design:paramtypes", [String]),
|
|
86
91
|
__metadata("design:returntype", void 0)
|
|
87
92
|
], PatternFilter.prototype, "match", null);
|
|
93
|
+
//# sourceMappingURL=PatternFilter.js.map
|
|
88
94
|
//# sourceMappingURL=PatternFilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PatternFilter.js","sourceRoot":"","sources":["PatternFilter.js"],"names":[],"mappings":";;;AAAA,IAAI,UAAU,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,UAAU,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI;IACjF,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7H,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;QAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;;QAC1H,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;gBAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAClJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAClE,CAAC,CAAC;AACF,IAAI,UAAU,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC;IACxD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;QAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7G,CAAC,CAAC;AACF,iDAA2C;AAC3C,sDAA2C;AAC3C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAa,aAAc,SAAQ,wBAAS;IACxC,YAAY,MAAM,EAAE,WAAW;QAC3B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IACD;;;;;OAKG;IACH,KAAK,CAAC,OAAO;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;QAC1B,OAAO,KAAK,CAAC;IACjB,CAAC;IACD;;;;;;;OAOG;IACH,6DAA6D;IAC7D,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK;YACN,OAAO,OAAO,CAAC;QACnB,IAAI,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,KAAK,CAAC,oCAAoC,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AAvCD,sCAuCC;AACD,UAAU,CAAC;IACP,IAAA,qBAAK,GAAE;IACP,UAAU,CAAC,aAAa,EAAE,QAAQ,CAAC;IACnC,UAAU,CAAC,mBAAmB,EAAE,CAAC,MAAM,CAAC,CAAC;IACzC,UAAU,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;CAC1C,EAAE,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAC3C,yCAAyC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,iDAA+B;AAC/B,qDAAmC;AACnC,iCAAiC"}
|
package/lib/cjs/index.cjs
CHANGED
|
@@ -40,7 +40,7 @@ __exportStar(require("styled-string-builder"), exports);
|
|
|
40
40
|
* @type {string}
|
|
41
41
|
* @memberOf module:Logging
|
|
42
42
|
*/
|
|
43
|
-
exports.VERSION = "0.
|
|
43
|
+
exports.VERSION = "0.15.0";
|
|
44
44
|
/**
|
|
45
45
|
* @description Current package version string.
|
|
46
46
|
* @summary Stores the package version for diagnostics and compatibility checks.
|
|
@@ -49,4 +49,5 @@ exports.VERSION = "0.14.0";
|
|
|
49
49
|
* @memberOf module:Logging
|
|
50
50
|
*/
|
|
51
51
|
exports.PACKAGE_NAME = "@decaf-ts/logging";
|
|
52
|
+
//# sourceMappingURL=index.js.map
|
|
52
53
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,qDAAmC;AACnC,iDAA+B;AAC/B,kDAAgC;AAChC,mDAAiC;AACjC,mDAAiC;AACjC,+CAA6B;AAC7B,qDAAmC;AACnC,4CAA0B;AAC1B,4CAA0B;AAC1B,6CAA2B;AAC3B,2CAAyB;AACzB,6CAA2B;AAC3B,wDAAsC;AACtC;;;;;;GAMG;AACU,QAAA,OAAO,GAAG,aAAa,CAAC;AACrC;;;;;;GAMG;AACU,QAAA,YAAY,GAAG,aAAa,CAAC;AAC1C,iCAAiC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logParameters.js","sourceRoot":"","sources":["logParameters.js"],"names":[],"mappings":"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"}
|