@decaf-ts/logging 0.24.1 → 0.26.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/README.md +1 -1
- package/dist/logging.cjs +1 -1
- package/dist/logging.cjs.map +1 -1
- package/dist/logging.js +1 -1
- package/dist/logging.js.map +1 -1
- package/lib/cjs/constants.cjs +4 -0
- package/lib/cjs/constants.cjs.map +1 -1
- package/lib/cjs/index.cjs +3 -3
- package/lib/cjs/logParameters.cjs +54 -0
- package/lib/cjs/logParameters.cjs.map +1 -1
- package/lib/cjs/logging.cjs +29 -2
- package/lib/cjs/logging.cjs.map +1 -1
- package/lib/esm/constants.js +4 -0
- package/lib/esm/constants.js.map +1 -1
- package/lib/esm/index.js +3 -3
- package/lib/esm/logParameters.js +54 -0
- package/lib/esm/logParameters.js.map +1 -1
- package/lib/esm/logging.js +29 -2
- package/lib/esm/logging.js.map +1 -1
- package/lib/types/index.d.cts +2 -2
- package/lib/types/index.d.mts +2 -2
- package/lib/types/logParameters.d.cts +4 -0
- package/lib/types/logParameters.d.mts +4 -0
- package/lib/types/logging.d.cts +4 -2
- package/lib/types/logging.d.mts +4 -2
- package/lib/types/types.d.cts +2 -0
- package/lib/types/types.d.mts +2 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -47,7 +47,7 @@ Decaf’s logging toolkit keeps one fast MiniLogger at the core while exposing a
|
|
|
47
47
|
|
|
48
48
|
Documentation available [here](https://decaf-ts.github.io/logging/)
|
|
49
49
|
|
|
50
|
-
Minimal size: 8.
|
|
50
|
+
Minimal size: 8.3 KB kb gzipped
|
|
51
51
|
|
|
52
52
|
|
|
53
53
|
# Logging Library — Detailed Description
|
package/dist/logging.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var t,e;t=this,e=function(t,e,r,n){"use strict";const o="ENV",s="__",i=["${","}"];var a;t.LogLevel=void 0,(a=t.LogLevel||(t.LogLevel={})).benchmark="benchmark",a.fatal="fatal",a.critical="critical",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,fatal:1,critical:2,error:3,warn:6,info:9,verbose:12,debug:15,trace:18,silly:21};var l;t.LoggingMode=void 0,(l=t.LoggingMode||(t.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"]},fatal:{fg:31,style:["bold"]},critical:{fg:31,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:t.LogLevel.info,logLevel:!0,style:!1,filters:[],contextSeparator:".",separator:"-",timestamp:!0,timestampFormat:"HH:mm:ss.SSS",context:!0,meta:!0,format:t.LoggingMode.RAW,pattern:"{level} [{timestamp}] {app} {context} {separator} {message} {stack}",theme:u};class f{constructor(){this.descriptors=new Map}register(t){return this.descriptors.set(t.key,t),this}unregister(t){return this.descriptors.delete(t),this}get(t){return this.descriptors.get(t)}render(t,e){const r={},n=new Set;return e.forEach(e=>{if(n.has(e))return;n.add(e);const o=this.descriptors.get(e);if(!o)return;if(o.shouldInclude&&!o.shouldInclude(t))return;const s=o.render(t);if(void 0===s)return;const i=o.style?o.style(s,t):s;r[e]=i}),r}keys(){return Array.from(this.descriptors.keys())}}const p=new Map;function h(t){if(p.has(t))return p.get(t);const e=d(t||""),r=new Set,n=[];m(e,r,n);const o={pattern:t,segments:e,keys:n,includesMeta:r.has("meta")};return p.set(t,o),o}function y(t,e){return v(t.segments,e).text}function d(t){const e=[];let r=0;for(;r<t.length;){const n=t[r];if("["===n){const n=b(t,r,"[","]");if(-1===n){e.push({type:"literal",value:"["}),r++;continue}const o=t.slice(r+1,n);e.push({type:"optional",prefix:"[",suffix:"]",children:d(o)}),r=n+1;continue}if("{"===n){const n=t.indexOf("}",r+1);if(-1===n){e.push({type:"literal",value:"{"}),r++;continue}const o=t.slice(r+1,n).trim();e.push({type:"parameter",key:o}),r=n+1;continue}let o=r;for(;o<t.length&&"["!==t[o]&&"{"!==t[o];)o++;const s=t.slice(r,o);s.length&&e.push({type:"literal",value:s}),r=o}return e}function b(t,e,r,n){let o=0;for(let s=e;s<t.length;s++){const e=t[s];if(e===r)o++;else if(e===n&&(o--,0===o))return s}return-1}function m(t,e,r){for(const n of t)"parameter"===n.type&&(e.has(n.key)||(e.add(n.key),r.push(n.key))),"optional"===n.type&&m(n.children,e,r)}function v(t,e){const r=[];let n=!1;for(const o of t){const t=x(o,e);t.text.length&&r.push(t.text),n=n||t.hasValue}return{text:r.join(""),hasValue:n}}function x(t,e){if("literal"===t.type)return{text:t.value,hasValue:!1};if("parameter"===t.type){const r=e[t.key]??"";return{text:r,hasValue:r.length>0}}const r=v(t.children,e);return r.hasValue?{text:`${t.prefix}${r.text}${t.suffix}`,hasValue:!0}:{text:"",hasValue:!1}}const L=new f;L.register({key:"level",render(t){if(!1!==t.config.logLevel)return t.level.toUpperCase()},style:(t,e)=>e.applyTheme(t,"logLevel")}).register({key:"timestamp",shouldInclude:t=>!(!t.config.timestamp||!t.timestamp),render:t=>t.timestamp,style:(t,e)=>e.applyTheme(t,"timestamp")}).register({key:"app",shouldInclude:t=>!!t.app,render:t=>t.app,style:(t,e)=>e.applyTheme(t,"app")}).register({key:"context",shouldInclude:t=>!1!==t.config.context&&t.context.length>0,render(t){const e=t.config.contextSeparator||".";return t.context.join(e)},style:(t,e)=>e.applyTheme(t,"class")}).register({key:"separator",shouldInclude:t=>!!t.separator,render:t=>t.separator,style:(t,e)=>e.applyTheme(t,"separator")}).register({key:"message",render:t=>t.filteredMessage,style:(t,e)=>e.applyTheme(t,"message")}).register({key:"stack",shouldInclude:t=>!!t.stack,render:t=>t.stack,style:(t,e)=>e.applyTheme(t,"stack")}).register({key:"meta",shouldInclude:t=>!!t.metaString,render:t=>t.metaString}).register({key:"correlationId",shouldInclude:t=>!!t.correlationId,render:t=>t.correlationId,style:(t,e)=>e.applyTheme(t,"id")});const w=L;function E(t,e,r="g"){return Object.entries(e).forEach(([e,n])=>{const o=RegExp(k(e),r);t=t.replace(o,n)}),t}function O(t){return _(t).toUpperCase()}function _(t){return t.replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/[\s-]+/g,"_").toLowerCase()}function k(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function j(t,...e){if(e.length>1&&!e.every(t=>"string"==typeof t||"number"==typeof t))throw Error("Only string and number arguments are supported for multiple replacements.");if(1===e.length&&"object"==typeof e[0]){const r=e[0];return Object.entries(r).reduce((t,[e,r])=>t.replace(RegExp(`\\{${e}\\}`,"g"),()=>r),t)}return t.replace(/{(\d+)}/g,(t,r)=>void 0!==e[r]?e[r].toString():"undefined")}const P=j;function A(){return Object.getPrototypeOf(Object.getPrototypeOf(globalThis))!==Object.prototype}const R=Symbol("EnvironmentEmpty"),M=Symbol("EnvironmentModel"),S=/^[a-z][a-zA-Z0-9]*$/;class C extends r.ObjectAccumulator{static{this.factory=()=>new C}constructor(){super(),Object.defineProperty(this,M,{value:{},writable:!0,enumerable:!1,configurable:!1})}static isProxyableObject(t){if(!t||"object"!=typeof t)return!1;if(Array.isArray(t))return!0;const e=Object.getPrototypeOf(t);return e===Object.prototype||null===e}fromEnv(t){let e;return A()?e=globalThis[o]||{}:(e=globalThis.process.env,t=O(t)),this.parseEnvValue(e[t])}parseEnvValue(t){return C.parseRuntimeValue(t)}static parseRuntimeValue(t){if("string"!=typeof t)return t;if("true"===t)return!0;if("false"===t)return!1;const e=t.trim();return/^-?\d+(\.\d+)?$/.test(e)?Number(e):t}expand(t){Object.entries(t).forEach(([t,e])=>{C.mergeModel(this[M],t,e),Object.defineProperty(this,t,{get:()=>{const r=this.fromEnv(t);return void 0!==r?r:e&&"object"==typeof e?C.buildEnvProxy(e,[t]):""===e?R:e},set:t=>{e=t},configurable:!0,enumerable:!0})})}orThrow(){const t=this[M],e=t=>void 0!==t?this.parseEnvValue(t):void 0,r=(t,e=!1)=>C.missingEnvError(t,e),n=(t,o)=>{const s={get(s,i){if(i===Symbol.toPrimitive)return()=>C.buildEnvKey(o);if("toString"===i)return()=>C.buildEnvKey(o);if("valueOf"===i)return()=>C.buildEnvKey(o);if("symbol"==typeof i)return;if("toJSON"===i)return;if("then"===i)return;if("constructor"===i)return Object;if(Array.isArray(t)&&"length"===i)return t.length;if(Array.isArray(t)&&i in Array.prototype){const e=Reflect.get(t,i,t);return"function"==typeof e?e.bind(t):e}const a=[...o,i],{key:c,value:l}=C.readRuntimeForPath(a);if("string"==typeof l&&0===l.length)throw r(c,!0);const u=e(l);if(void 0!==u){if("string"==typeof u&&0===u.length)throw r(c,!0);return u}if(!t||!Object.prototype.hasOwnProperty.call(t,i))throw r(c);const g=t[i];if(void 0!==g){if(""===g)throw r(c);return C.isProxyableObject(g)?n(g,a):g}},ownKeys:()=>t?Reflect.ownKeys(t):[],getOwnPropertyDescriptor(e,r){if(t)return Object.prototype.hasOwnProperty.call(t,r)?{enumerable:!0,configurable:!0}:void 0}};return new Proxy(Array.isArray(t)?[]:{},s)};return new Proxy(this,{get(o,s,i){if("string"!=typeof s)return Reflect.get(o,s,i);if(!Object.prototype.hasOwnProperty.call(t,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=e(c);if(void 0!==l){if("string"==typeof l&&0===l.length)throw r(a,!0);return l}const u=t[s];if(C.isProxyableObject(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(...t){if(!C._instance){const e=C.factory(...t),r=new Proxy(e,{get(t,e,r){const n=Reflect.get(t,e,r);if(n!==R&&("string"!=typeof e||!Object.prototype.hasOwnProperty.call(t,e)||void 0!==n)){if(void 0!==n)return n;if("string"==typeof e){if("app"===e)return;return C.buildEnvProxy(void 0,[e])}return n}}});C._instance=r}return C._instance}accumulate(t){return super.accumulate(t),this}static accumulate(t){const e=C.instance();return Object.keys(e).forEach(t=>{const r=Object.getOwnPropertyDescriptor(e,t);r&&r.configurable&&r.enumerable&&Object.defineProperty(e,t,{...r,enumerable:!1})}),e.accumulate(t),e}static get(t){return C._instance.get(t)}static formatEnvSegment(t){return S.test(t)?O(t):t.toUpperCase()}static buildEnvKey(t){return t.map(t=>C.formatEnvSegment(t)).join(s)}static buildRawKey(t){return t.join(s)}static readRuntimeForPath(t){const e=C.buildEnvKey(t),r=C.buildRawKey(t),n=C.readRuntimeEnv(e);if(void 0!==n)return{key:e,value:n};if(r!==e){const t=C.readRuntimeEnv(r);if(void 0!==t)return{key:r,value:t}}return{key:e,value:void 0}}static runtimeEnv(){return A()?globalThis[o]:globalThis?.process?.env}static getRuntimeChildKeys(t){const e=C.runtimeEnv();if(!e)return[];const r=[C.buildEnvKey(t),C.buildRawKey(t)],n=new Set;return Object.keys(e).forEach(t=>{r.forEach(e=>{if(!e)return;const r=`${e}${s}`;if(t.startsWith(r)){const e=t.slice(r.length).split(s)[0];e&&n.add(e)}})}),[...n]}static hasRuntimePath(t){const{value:e}=C.readRuntimeForPath(t);return void 0!==e||C.getRuntimeChildKeys(t).length>0}static buildEnvProxy(t,e){const r=t=>C.readRuntimeEnv(t),n=/^[0-9]+$/,o={get(o,s){if(s===Symbol.toPrimitive)return()=>C.buildEnvKey(e);if("toString"===s)return()=>C.buildEnvKey(e);if("valueOf"===s)return()=>C.buildEnvKey(e);if("symbol"==typeof s)return;if(Array.isArray(t)&&s in Array.prototype){const e=Reflect.get(t,s,t);return"function"==typeof e?e.bind(t):e}if(Array.isArray(t)&&"length"===s)return t.length;const i=[...e,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=!!t&&Object.prototype.hasOwnProperty.call(t,s),g=u?t[s]:void 0,f=C.hasRuntimePath(i);return Array.isArray(t)&&(t=>"string"==typeof t&&n.test(t))(s)?u?C.isProxyableObject(g)?C.buildEnvProxy(g,i):C.parseRuntimeValue(g):f?C.buildEnvProxy(void 0,i):void 0:g&&"object"==typeof g&&C.isProxyableObject(g)?C.buildEnvProxy(g,i):u&&""===g||u&&void 0===g?void 0:u?C.parseRuntimeValue(g):C.buildEnvProxy(void 0,i)},ownKeys(){const r=new Set;return t&&Reflect.ownKeys(t).forEach(t=>r.add(t)),C.getRuntimeChildKeys(e).forEach(t=>r.add(t)),[...r]},getOwnPropertyDescriptor:(r,n)=>t&&Object.prototype.hasOwnProperty.call(t,n)?Reflect.getOwnPropertyDescriptor(t,n):"string"==typeof n&&C.hasRuntimePath([...e,n])?{enumerable:!0,configurable:!0}:void 0};return new Proxy(Array.isArray(t)?[]:{},o)}static keys(t=!0){return C.instance().keys().map(e=>t?O(e):e)}static mergeModel(t,e,r){if(t){if(r&&"object"==typeof r&&!Array.isArray(r)){const n=t[e],o=n&&"object"==typeof n&&!Array.isArray(n)?n:{};return t[e]=o,void Object.entries(r).forEach(([t,e])=>{C.mergeModel(o,t,e)})}t[e]=r}}static readRuntimeEnv(t){if(A()){const e=globalThis[o];return e?e[t]:void 0}return globalThis?.process?.env?.[t]}static missingEnvError(t,e){return Error(`Environment variable ${t} is required but was ${e?"an empty string":"undefined"}.`)}}const $=C.accumulate(Object.assign({app:void 0},g,{env:(A()&&globalThis[o]?globalThis[o].NODE_ENV:globalThis.process.env.NODE_ENV)||"development"}));function T(t){if("function"!=typeof t)return!1;try{const e=Function.prototype.toString.call(t);if(/^\s*class[\s{]/.test(e))return!0}catch{}const e=Object.getOwnPropertyDescriptor(t,"prototype");if(!e||!e.value)return!1;if(!1===e.writable)return!0;const r=t.prototype;return!!Object.prototype.hasOwnProperty.call(r,"constructor")&&Object.getOwnPropertyNames(r).filter(t=>"constructor"!==t).length>0}function I(t){return"function"==typeof t&&!T(t)}function K(t){if(!I(t))return!1;const e=Object.getOwnPropertyDescriptor(t,"prototype");return!e||void 0===e.value}function N(t){if(null===t||"object"!=typeof t)return!1;const e=t.constructor;return!(!e||e===Object)&&T(e)}function V(t){if(null===t)return"null";if(void 0===t)return"undefined";if("string"==typeof t)return t;if(T(t))return t.name||"AnonymousClass";if(N(t)){const e=t.toString;if("function"==typeof e&&e!==Object.prototype.toString)try{const r=e.call(t);if("string"==typeof r&&r.length)return r}catch{}const r=t.constructor;return r&&r.name?r.name:"AnonymousInstance"}if(K(t)||I(t)){const e=t;return e.name?e.name:"anonymous"}if("object"==typeof t){const e=Object.prototype.toString.call(t),r=/^\[object ([^\]]+)\]$/.exec(e);return r?.[1]?r[1]:"Object"}return typeof t}const F=Symbol("MiniLoggerRootContext");class D{constructor(t,e,r=[]){this.conf=e,this.baseContext=Array.isArray(r)?[...r]:[],t&&this.baseContext.push(t),this.context=[...this.baseContext],this[F]=[...this.baseContext]}config(t){return this.conf&&t in this.conf?this.conf[t]:U.getConfig()[t]}for(t,e,...r){let n,o=e;const s=Array.isArray(this.context)?[...this.context]:"string"==typeof this.context&&this.context?[this.context]:[],i=this[F],a=Array.isArray(i)?[...i]:Array.isArray(this.baseContext)?[...this.baseContext]:[];"string"==typeof t?n=t:void 0!==t&&(T(t)||N(t)||I(t)?n=V(t):!o&&t&&"object"==typeof t&&(o=t));let c=n?[...s,n]:[...s];return new Proxy(this,{get:(t,e,r)=>{const n=Reflect.get(t,e,r);return"config"===e?new Proxy(this.config,{apply:(t,e,n)=>{const[s]=n;return o&&void 0!==s&&s in o?o[s]:Reflect.apply(t,r,n)},get:(t,e)=>o&&e in o?o[e]:Reflect.get(t,e,r)}):"clear"===e?()=>(c=[...a],r):"context"===e?c:"root"===e?[...a]:e===F?a:"for"===e?(...e)=>{if(o){const t=e[0];"string"==typeof t||T(t)||N(t)||I(t)?e[1]={...o,...e[1]||{}}:t&&"object"==typeof t&&(e[0]={...o,...t})}const r=Array.isArray(t.context)?[...t.context]:"string"==typeof t.context&&t.context?[t.context]:[];t.context=[...c];try{return t.for.apply(t,e)}finally{t.context=r}}:"getConfigSnapshot"===e?()=>{const e=t.getConfigSnapshot();return o&&Object.assign(e,o),e}:n}})}getConfigSnapshot(){return{...U.getConfig(),...this.conf||{}}}getContextSegments(){return Array.isArray(this.context)?[...this.context]:"string"==typeof this.context&&this.context?[this.context]:[]}resolveFilters(t){const e=t.filters||[];return Array.isArray(e)?e.filter(t=>"object"==typeof t&&null!==t&&"function"==typeof t.filter):[]}applyFilters(t,e,r){const n=this.resolveFilters(r);return n.length?n.reduce((t,n)=>{try{const o=n.filter(r,t,[...e]);return"string"==typeof o?o:t}catch{return t}},t):t}createLog(t,e,r,n){const o=!!this.config("style"),s=this.config("separator"),i=U.getConfig().app,a=this.config("timestamp")?(new Date).toISOString():void 0,c=this.getConfigSnapshot(),l=this.getContextSegments(),u="string"==typeof e?e:e instanceof Error?e.message:e+"",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||e instanceof Error){const n=r||e;n.stack&&(x="string"==typeof e?g:n.message,v=` | ${x} - Stack trace:\n${o?U.theme(n.stack,"stack",t):n.stack}`)}const L={config:c,level:t,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:(e,r)=>o?U.theme(e,r,t):e},E=this.config("pattern"),O=c.pattern||"",_=h(E.length?E:O),k=w.render(L,_.keys);switch(this.config("format")){case"json":{const t=w.render(L,w.keys()),e={};return Object.entries(t).forEach(([t,r])=>{"meta"!==t&&(e[t]=r)}),L.meta&&(e.meta=L.meta),JSON.stringify(e)}case"raw":{let t=this.normalizePatternSpacing(y(_,k));return!_.includesMeta&&d&&(t=t?`${t} ${d}`:d),t}default:throw Error("Unsupported logging format: "+this.config("format"))}}formatMeta(t){try{return JSON.stringify(t)}catch(e){return t+""}}normalizePatternSpacing(t){return t.replace(/[ \t]{2,}/g," ").replace(/^[ \t]+|[ \t]+$/g,"")}log(e,r,n,o){const s=this.config("level");if(c[e]>c[s])return;let i;switch(e){case t.LogLevel.benchmark:i=console.log;break;case t.LogLevel.fatal:case t.LogLevel.critical:case t.LogLevel.error:i=console.error;break;case t.LogLevel.info:case t.LogLevel.verbose:i=console.log;break;case t.LogLevel.debug:i=console.debug;break;case t.LogLevel.trace:i=console.trace;break;case t.LogLevel.warn:i=console.warn;break;case t.LogLevel.silly:i=console.debug;break;default:throw Error("Invalid log level")}i(this.createLog(e,r,n,o))}benchmark(e,r){this.log(t.LogLevel.benchmark,e,void 0,r)}fatal(e,r,n){let o,s;r instanceof Error?(o=r,s=n):s=r,this.log(t.LogLevel.fatal,e,o,s)}critical(e,r,n){let o,s;r instanceof Error?(o=r,s=n):s=r,this.log(t.LogLevel.critical,e,o,s)}silly(e,r=0,n){const o="number"==typeof r?r:0,s="number"==typeof r?n:r;this.config("verbose")<o||this.log(t.LogLevel.silly,e,void 0,s)}verbose(e,r=0,n){const o="number"==typeof r?r:0,s="number"==typeof r?n:r;this.config("verbose")<o||this.log(t.LogLevel.verbose,e,void 0,s)}info(e,r){this.log(t.LogLevel.info,e,void 0,r)}debug(e,r){this.log(t.LogLevel.debug,e,void 0,r)}error(e,r,n){let o,s;r instanceof Error?(o=r,s=n):s=r,this.log(t.LogLevel.error,e,o,s)}warn(e,r){this.log(t.LogLevel.warn,e,void 0,r)}trace(e,r){this.log(t.LogLevel.trace,e,void 0,r)}setConfig(t){this.conf={...this.conf||{},...t}}get root(){return[...this.baseContext]}clear(){return this.context=[...this.baseContext],this}}class U{static{this._factory=(t,e)=>{const r="string"==typeof $.app?[$.app]:[];return new D(t,e,r)}}static{this._config=$}constructor(){}static setFactory(t){U._factory=t,this.global=void 0}static setConfig(t){Object.entries(t).forEach(([t,e])=>{this._config[t]=e})}static getConfig(){return this._config}static get(){return this.ensureRoot()}static verbose(t,e=0,r){return this.get().verbose(t,e,r)}static info(t,e){return this.get().info(t,e)}static trace(t,e){return this.get().trace(t,e)}static debug(t,e){return this.get().debug(t,e)}static benchmark(t,e){return this.get().benchmark(t,e)}static fatal(t,e,r){return this.get().fatal(t,e,r)}static critical(t,e,r){return this.get().critical(t,e,r)}static silly(t,e=0,r){return this.get().silly(t,e,r)}static warn(t,e){return this.get().warn(t,e)}static error(t,e,r){return this.get().error(t,e,r)}static for(t,e,...r){const n=void 0!==e?[t,e]:[t];return(this.global?this.global:this.ensureRoot(r)).for(...n)}static because(t,e){let r=this.ensureRoot().for(t,this._config);return e&&(r=r.for(e)),r}static baseContext(){const t=this._config.app;return"string"==typeof t&&t.length?[t]:[]}static attachRootContext(t){const e=t.root&&Array.isArray(t.root)?[...t.root]:this.baseContext();return(!t.context||Array.isArray(t.context)&&0===t.context.length)&&(t.context=[...e]),t[F]=[...e],t}static ensureRoot(t=[]){if(!this.global){const e=this._factory(void 0,void 0,...t);this.global=this.attachRootContext(e)}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({},t.LogLevel);return Object.keys(i)[0]in c&&(a=i[o]||{}),Object.keys(a).reduce((t,r)=>{const n=a[r];return n?((t,r,n)=>{try{const o=t;let s=e.style(o);function i(t,r=!1){let i=r?s.background:s.foreground;if(!Array.isArray(t))return i.call(s,n);switch(t.length){case 1:return i=r?s.bgColor256:s.color256,i(t[0]);case 3:return i=r?s.bgRgb:s.rgb,s.rgb(t[0],t[1],t[2]);default:return e.style(o)}}function a(t){s="number"==typeof t?s.style(t):s[t]}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 t}})(t,r,n):t},r)}static register(t){return w.register(t)}static unregister(t){return w.unregister(t)}}class z{get log(){return this._log||(this._log=U.for(this)),this._log}constructor(){}}class J extends z{get log(){return super.log.for(this,{filters:[]})}}const B="undefined"!=typeof globalThis&&"function"==typeof globalThis.performance?.now?()=>globalThis.performance.now():"undefined"!=typeof process&&"function"==typeof process.hrtime?.bigint?()=>{const t=process.hrtime.bigint();return Number(t)/1e6}:()=>Date.now();function W(t){const e=0>t?"-":"",r=Math.abs(t),n=Math.floor(r/36e5),o=Math.floor(r%36e5/6e4),s=Math.floor(r%6e4/1e3),i=Math.floor(r%1e3),a=(t,e)=>t.toString().padStart(e,"0");return`${e}${a(n,2)}:${a(o,2)}:${a(s,2)}.${a(i,3)}`}function Z(e=t.LogLevel.info,r=0,n=(...t)=>"called with "+t,o){return(t,s,i)=>{if(!i||"number"==typeof i)throw Error("Logging decoration only applies to methods");const a=t instanceof z?t.log.for(t[s]):U.for(t).for(t[s]),c=a[e].bind(a),l=i.value;return i.value=new Proxy(l,{apply(t,e,s){c(n(...s),r);try{const r=Reflect.apply(t,e,s);return r instanceof Promise?r.then(t=>(o&&c(o(void 0,t)),t)).catch(t=>{throw o&&a.error(o(t)),t}):(o&&c(o(void 0,r)),r)}catch(t){throw o&&a.error(o(t)),t}}}),i}}function q(){return(t,e,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(t,e){super(),this.regexp=t,this.replacement=e}match(t){const e=this.regexp.exec(t);return this.regexp.lastIndex=0,e}filter(t,e,r){const n=this.log.for(this.filter);if(!this.match(e))return e;try{return e.replace(this.regexp,this.replacement)}catch(t){n.error("PatternFilter replacement error: "+t)}return""}}n.__decorate([q(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[String]),n.__metadata("design:returntype",void 0)],H.prototype,"match",null);class G extends Error{constructor(t,e,r){if(e instanceof G)return e;super(`[${t}][${r}] ${e instanceof Error?e.message:e}`),this.code=r,e instanceof Error&&(this.stack=e.stack)}get message(){return`[${this.name}] ${this.code} | ${super.message.replaceAll(/\[.*?Error\]\[\d+\]\s/g,"")}`}toString(){return this.message}}t.BaseError=G,t.BrowserEnvKey=o,t.COMMIT="96cf6c5",t.DefaultLoggingConfig=g,t.DefaultPlaceholderWrappers=i,t.DefaultTheme=u,t.ENV_PATH_DELIMITER=s,t.Environment=C,t.FULL_VERSION="0.24.1-96cf6c5",t.LogFilter=J,t.LogParameterRegistry=f,t.LoggedClass=z,t.LoggedEnvironment=$,t.Logging=U,t.MiniLogger=D,t.NumericLogLevels=c,t.PACKAGE_NAME="@decaf-ts/logging",t.PatternFilter=H,t.ROOT_CONTEXT_SYMBOL=F,t.StopWatch=class{constructor(t=!1){this._startMs=null,this._elapsedMs=0,this._running=!1,this._laps=[],this._lastLapTotalMs=0,t&&this.start()}get running(){return this._running}get elapsedMs(){return this._running&&null!=this._startMs?this._elapsedMs+(B()-this._startMs):this._elapsedMs}start(){return this._running||(this._running=!0,this._startMs=B()),this}pause(){return this._running&&null!=this._startMs&&(this._elapsedMs+=B()-this._startMs,this._startMs=null,this._running=!1),this}resume(){return this._running||(this._running=!0,this._startMs=B()),this}stop(){return this.pause(),this._elapsedMs}reset(){const t=this._running;return this._startMs=t?B():null,this._elapsedMs=0,this._laps=[],this._lastLapTotalMs=0,this}lap(t){const e=this.elapsedMs,r=e-this._lastLapTotalMs,n={index:this._laps.length,label:t,ms:r,totalMs:e};return this._laps.push(n),this._lastLapTotalMs=e,n}get laps(){return this._laps}toString(){return W(this.elapsedMs)}toJSON(){return{running:this._running,elapsedMs:this.elapsedMs,laps:this._laps.slice()}}},t.VERSION="0.24.1",t.benchmark=()=>(t,e,r)=>{if(!r||"number"==typeof r)throw Error("benchmark decoration only applies to methods");const n=t instanceof z?t.log.for(t[e]):U.for(t).for(t[e]),o=r.value;return r.value=new Proxy(o,{apply(t,e,r){const o=B();try{const s=Reflect.apply(t,e,r);return s instanceof Promise?s.then(t=>(n.benchmark(`completed in ${B()-o}ms`),t)).catch(t=>{throw n.benchmark(`failed in ${B()-o}ms`),t}):(n.benchmark(`completed in ${B()-o}ms`),s)}catch(t){throw n.benchmark(`failed in ${B()-o}ms`),t}}}),r},t.compileLogPattern=h,t.debug=()=>Z(t.LogLevel.debug,0,(...t)=>"called with "+t,(t,e)=>t?"Failed with: "+t:e?"Completed with "+JSON.stringify(e):"completed"),t.escapeRegExp=k,t.final=q,t.formatMs=W,t.getObjectName=V,t.info=()=>Z(t.LogLevel.info),t.isBrowser=A,t.isClass=T,t.isFunction=I,t.isInstance=N,t.isMethod=K,t.log=Z,t.logParameterRegistry=w,t.now=B,t.padEnd=(t,e,r=" ")=>{if(1!==r.length)throw Error("Invalid character length for padding. must be one!");return t.padEnd(e,r)},t.patchPlaceholders=(t,e,r=i[0],n=i[1],o="g")=>E(t,Object.entries(e).reduce((t,[e,o])=>(t[`${r}${e}${n}`]=o,t),{}),o),t.patchString=E,t.renderPattern=y,t.sf=j,t.silly=()=>Z(t.LogLevel.silly),t.stringFormat=P,t.toCamelCase=t=>t.replace(/(?:^\w|[A-Z]|\b\w)/g,(t,e)=>0===e?t.toLowerCase():t.toUpperCase()).replace(/\s+/g,""),t.toENVFormat=O,t.toKebabCase=t=>t.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[\s_]+/g,"-").toLowerCase(),t.toPascalCase=t=>t.replace(/(?:^\w|[A-Z]|\b\w)/g,t=>t.toUpperCase()).replace(/\s+/g,""),t.toSnakeCase=_,t.trace=()=>Z(t.LogLevel.trace),t.verbose=(e=0)=>(e||(e=0),Z(t.LogLevel.verbose,e)),Object.keys(e).forEach(r=>{"default"===r||Object.prototype.hasOwnProperty.call(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:()=>e[r]})})},"object"==typeof exports&&"undefined"!=typeof module?e(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"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).logging={},t.styledStringBuilder,t.typedObjectAccumulator,t.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.fatal="fatal",a.critical="critical",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,fatal:1,critical:2,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:{},action:{fg:[18],style:[1,3]},logLevel:{benchmark:{fg:32,style:["bold"]},fatal:{fg:31,style:["bold"]},critical:{fg:31,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 h=new Map;function p(e){if(h.has(e))return h.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 h.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 L=new f;L.register({key:"level",render:e=>void 0!==e.action?void 0!==e.actionCode?`${e.action} - ${e.actionCode}`:e.action:!1!==e.config.logLevel?e.level.toUpperCase():void 0,style:(e,t)=>void 0!==t.action?t.applyTheme(e,"action"):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")}).register({key:"action",shouldInclude:e=>void 0!==e.action,render:e=>e.action,style:(e,t)=>t.applyTheme(e,"action")}).register({key:"actionCode",shouldInclude:e=>void 0!==e.actionCode,render:e=>void 0===e.actionCode?void 0:e.actionCode+"",style:(e,t)=>t.applyTheme(e,"action")}).register({key:"errorCode",shouldInclude:e=>void 0!==e.errorCode,render:e=>void 0===e.errorCode?void 0:e.errorCode+""}).register({key:"errorName",shouldInclude:e=>void 0!==e.errorName,render:e=>e.errorName});const w=L;function E(e,t,r="g"){return Object.entries(t).forEach(([t,n])=>{const o=RegExp(_(t),r);e=e.replace(o,n)}),e}function O(e){return k(e).toUpperCase()}function k(e){return e.replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/[\s-]+/g,"_").toLowerCase()}function _(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 P=j;function A(){return Object.getPrototypeOf(Object.getPrototypeOf(globalThis))!==Object.prototype}const C=Symbol("EnvironmentEmpty"),R=Symbol("EnvironmentModel"),M=/^[a-z][a-zA-Z0-9]*$/;class S extends r.ObjectAccumulator{static{this.factory=()=>new S}constructor(){super(),Object.defineProperty(this,R,{value:{},writable:!0,enumerable:!1,configurable:!1})}static isProxyableObject(e){if(!e||"object"!=typeof e)return!1;if(Array.isArray(e))return!0;const t=Object.getPrototypeOf(e);return t===Object.prototype||null===t}fromEnv(e){let t;return A()?t=globalThis[o]||{}:(t=globalThis.process.env,e=O(e)),this.parseEnvValue(t[e])}parseEnvValue(e){return S.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])=>{S.mergeModel(this[R],e,t),Object.defineProperty(this,e,{get:()=>{const r=this.fromEnv(e);return void 0!==r?r:t&&"object"==typeof t?S.buildEnvProxy(t,[e]):""===t?C:t},set:e=>{t=e},configurable:!0,enumerable:!0})})}orThrow(){const e=this[R],t=e=>void 0!==e?this.parseEnvValue(e):void 0,r=(e,t=!1)=>S.missingEnvError(e,t),n=(e,o)=>{const s={get(s,i){if(i===Symbol.toPrimitive)return()=>S.buildEnvKey(o);if("toString"===i)return()=>S.buildEnvKey(o);if("valueOf"===i)return()=>S.buildEnvKey(o);if("symbol"==typeof i)return;if("toJSON"===i)return;if("then"===i)return;if("constructor"===i)return Object;if(Array.isArray(e)&&"length"===i)return e.length;if(Array.isArray(e)&&i in Array.prototype){const t=Reflect.get(e,i,e);return"function"==typeof t?t.bind(e):t}const a=[...o,i],{key:c,value:l}=S.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 S.isProxyableObject(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}=S.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(S.isProxyableObject(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(!S._instance){const t=S.factory(...e),r=new Proxy(t,{get(e,t,r){const n=Reflect.get(e,t,r);if(n!==C&&("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 S.buildEnvProxy(void 0,[t])}return n}}});S._instance=r}return S._instance}accumulate(e){return super.accumulate(e),this}static accumulate(e){const t=S.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 S._instance.get(e)}static formatEnvSegment(e){return M.test(e)?O(e):e.toUpperCase()}static buildEnvKey(e){return e.map(e=>S.formatEnvSegment(e)).join(s)}static buildRawKey(e){return e.join(s)}static readRuntimeForPath(e){const t=S.buildEnvKey(e),r=S.buildRawKey(e),n=S.readRuntimeEnv(t);if(void 0!==n)return{key:t,value:n};if(r!==t){const e=S.readRuntimeEnv(r);if(void 0!==e)return{key:r,value:e}}return{key:t,value:void 0}}static runtimeEnv(){return A()?globalThis[o]:globalThis?.process?.env}static getRuntimeChildKeys(e){const t=S.runtimeEnv();if(!t)return[];const r=[S.buildEnvKey(e),S.buildRawKey(e)],n=new Set;return Object.keys(t).forEach(e=>{r.forEach(t=>{if(!t)return;const r=`${t}${s}`;if(e.startsWith(r)){const t=e.slice(r.length).split(s)[0];t&&n.add(t)}})}),[...n]}static hasRuntimePath(e){const{value:t}=S.readRuntimeForPath(e);return void 0!==t||S.getRuntimeChildKeys(e).length>0}static buildEnvProxy(e,t){const r=e=>S.readRuntimeEnv(e),n=/^[0-9]+$/,o={get(o,s){if(s===Symbol.toPrimitive)return()=>S.buildEnvKey(t);if("toString"===s)return()=>S.buildEnvKey(t);if("valueOf"===s)return()=>S.buildEnvKey(t);if("symbol"==typeof s)return;if(Array.isArray(e)&&s in Array.prototype){const t=Reflect.get(e,s,e);return"function"==typeof t?t.bind(e):t}if(Array.isArray(e)&&"length"===s)return e.length;const i=[...t,s],a=S.buildEnvKey(i),c=S.buildRawKey(i);let l=r(a);if(void 0===l&&c!==a&&(l=r(c)),void 0!==l)return S.parseRuntimeValue(l);const u=!!e&&Object.prototype.hasOwnProperty.call(e,s),g=u?e[s]:void 0,f=S.hasRuntimePath(i);return Array.isArray(e)&&(e=>"string"==typeof e&&n.test(e))(s)?u?S.isProxyableObject(g)?S.buildEnvProxy(g,i):S.parseRuntimeValue(g):f?S.buildEnvProxy(void 0,i):void 0:g&&"object"==typeof g&&S.isProxyableObject(g)?S.buildEnvProxy(g,i):u&&""===g||u&&void 0===g?void 0:u?S.parseRuntimeValue(g):S.buildEnvProxy(void 0,i)},ownKeys(){const r=new Set;return e&&Reflect.ownKeys(e).forEach(e=>r.add(e)),S.getRuntimeChildKeys(t).forEach(e=>r.add(e)),[...r]},getOwnPropertyDescriptor:(r,n)=>e&&Object.prototype.hasOwnProperty.call(e,n)?Reflect.getOwnPropertyDescriptor(e,n):"string"==typeof n&&S.hasRuntimePath([...t,n])?{enumerable:!0,configurable:!0}:void 0};return new Proxy(Array.isArray(e)?[]:{},o)}static keys(e=!0){return S.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])=>{S.mergeModel(o,e,t)})}e[t]=r}}static readRuntimeEnv(e){if(A()){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 $=S.accumulate(Object.assign({app:void 0},g,{env:(A()&&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 N(e){if(!I(e))return!1;const t=Object.getOwnPropertyDescriptor(e,"prototype");return!t||void 0===t.value}function K(e){if(null===e||"object"!=typeof e)return!1;const t=e.constructor;return!(!t||t===Object)&&T(t)}function V(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(K(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(N(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 F=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[F]=[...this.baseContext]}config(e){return this.conf&&e in this.conf?this.conf[e]:U.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[F],a=Array.isArray(i)?[...i]:Array.isArray(this.baseContext)?[...this.baseContext]:[];"string"==typeof e?n=e:void 0!==e&&(T(e)||K(e)||I(e)?n=V(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],r):"context"===t?c:"root"===t?[...a]:t===F?a:"for"===t?(...t)=>{if(o){const e=t[0];"string"==typeof e||T(e)||K(e)||I(e)?t[1]={...o,...t[1]||{}}:e&&"object"==typeof e&&(t[0]={...o,...e})}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}}:"getConfigSnapshot"===t?()=>{const t=e.getConfigSnapshot();return o&&Object.assign(t,o),t}:n}})}getConfigSnapshot(){return{...U.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,o,s){const i=!!this.config("style"),a=this.config("separator"),c=U.getConfig().app,l=this.config("timestamp")?(new Date).toISOString():void 0,u=this.getConfigSnapshot(),g=this.getContextSegments(),f="string"==typeof t?t:t instanceof Error?t.message:t+"",h=this.applyFilters(f,g,u),d=this.config("meta")&&n?n:void 0,b=d?this.formatMeta(d):void 0,m=b?this.applyFilters(b,g,u):void 0,v=this.config("correlationId"),x=null!=v?v+"":void 0;let L,E,O,k;if(r||t instanceof Error){const n=r||t,o=n.code;"number"==typeof o&&(O=o);const s=n.name;"string"==typeof s&&s.length&&(k=s),n.stack&&(E="string"==typeof t?h:n.message,L=` | ${E} - Stack trace:\n${i?U.theme(n.stack,"stack",e):n.stack}`)}const _={config:u,level:e,context:g,timestamp:l,app:"string"==typeof c&&c.length?c:void 0,separator:a,correlationId:x,rawMessage:f,filteredMessage:h,meta:d,metaString:m,stack:L,stackLabel:E,action:o,actionCode:s,errorCode:O,errorName:k,applyTheme:(t,r)=>i?U.theme(t,r,e):t},j=this.config("pattern"),P=u.pattern||"",A=p(j.length?j:P),C=w.render(_,A.keys);switch(this.config("format")){case"json":{const e=w.render(_,w.keys()),t={};return Object.entries(e).forEach(([e,r])=>{"meta"!==e&&(t[e]=r)}),_.meta&&(t.meta=_.meta),JSON.stringify(t)}case"raw":{let e=this.normalizePatternSpacing(y(A,C));return!A.includesMeta&&m&&(e=e?`${e} ${m}`:m),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:i=console.log;break;case e.LogLevel.fatal:case e.LogLevel.critical:case e.LogLevel.error:i=console.error;break;case e.LogLevel.info:case e.LogLevel.verbose:i=console.log;break;case e.LogLevel.debug:i=console.debug;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)}action(e,t,r,...n){let o;n.length&&n[0]&&"object"==typeof n[0]&&(o=n[0]),this.logAction(e,t,r,o)}logAction(e,t,r,n){}fatal(t,r,n){let o,s;r instanceof Error?(o=r,s=n):s=r,this.log(e.LogLevel.fatal,t,o,s)}critical(t,r,n){let o,s;r instanceof Error?(o=r,s=n):s=r,this.log(e.LogLevel.critical,t,o,s)}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 U{static{this._factory=(e,t)=>{const r="string"==typeof $.app?[$.app]:[];return new D(e,t,r)}}static{this._config=$}constructor(){}static setFactory(e){U._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 action(e,t,r,...n){return this.get().action(e,t,r,...n)}static fatal(e,t,r){return this.get().fatal(e,t,r)}static critical(e,t,r){return this.get().critical(e,t,r)}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[F]=[...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 w.register(e)}static unregister(e){return w.unregister(e)}}class z{get log(){return this._log||(this._log=U.for(this)),this._log}constructor(){}}class J extends z{get log(){return super.log.for(this,{filters:[]})}}const B="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 W(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 Z(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 z?e.log.for(e[s]):U.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 q(){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([q(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[String]),n.__metadata("design:returntype",void 0)],H.prototype,"match",null);class G extends Error{constructor(e,t,r){if(t instanceof G)return t;super(`[${e}][${r}] ${t instanceof Error?t.message:t}`),this.code=r,t instanceof Error&&(this.stack=t.stack)}get message(){return`[${this.name}] ${this.code} | ${super.message.replaceAll(/\[.*?Error\]\[\d+\]\s/g,"")}`}toString(){return this.message}}e.BaseError=G,e.BrowserEnvKey=o,e.COMMIT="8b0c1dc",e.DefaultLoggingConfig=g,e.DefaultPlaceholderWrappers=i,e.DefaultTheme=u,e.ENV_PATH_DELIMITER=s,e.Environment=S,e.FULL_VERSION="0.25.0-8b0c1dc",e.LogFilter=J,e.LogParameterRegistry=f,e.LoggedClass=z,e.LoggedEnvironment=$,e.Logging=U,e.MiniLogger=D,e.NumericLogLevels=c,e.PACKAGE_NAME="@decaf-ts/logging",e.PatternFilter=H,e.ROOT_CONTEXT_SYMBOL=F,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+(B()-this._startMs):this._elapsedMs}start(){return this._running||(this._running=!0,this._startMs=B()),this}pause(){return this._running&&null!=this._startMs&&(this._elapsedMs+=B()-this._startMs,this._startMs=null,this._running=!1),this}resume(){return this._running||(this._running=!0,this._startMs=B()),this}stop(){return this.pause(),this._elapsedMs}reset(){const e=this._running;return this._startMs=e?B():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 W(this.elapsedMs)}toJSON(){return{running:this._running,elapsedMs:this.elapsedMs,laps:this._laps.slice()}}},e.VERSION="0.25.0",e.benchmark=()=>(e,t,r)=>{if(!r||"number"==typeof r)throw Error("benchmark decoration only applies to methods");const n=e instanceof z?e.log.for(e[t]):U.for(e).for(e[t]),o=r.value;return r.value=new Proxy(o,{apply(e,t,r){const o=B();try{const s=Reflect.apply(e,t,r);return s instanceof Promise?s.then(e=>(n.benchmark(`completed in ${B()-o}ms`),e)).catch(e=>{throw n.benchmark(`failed in ${B()-o}ms`),e}):(n.benchmark(`completed in ${B()-o}ms`),s)}catch(e){throw n.benchmark(`failed in ${B()-o}ms`),e}}}),r},e.compileLogPattern=p,e.debug=()=>Z(e.LogLevel.debug,0,(...e)=>"called with "+e,(e,t)=>e?"Failed with: "+e:t?"Completed with "+JSON.stringify(t):"completed"),e.escapeRegExp=_,e.final=q,e.formatMs=W,e.getObjectName=V,e.info=()=>Z(e.LogLevel.info),e.isBrowser=A,e.isClass=T,e.isFunction=I,e.isInstance=K,e.isMethod=N,e.log=Z,e.logParameterRegistry=w,e.now=B,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=()=>Z(e.LogLevel.silly),e.stringFormat=P,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=k,e.trace=()=>Z(e.LogLevel.trace),e.verbose=(t=0)=>(t||(t=0),Z(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/dist/logging.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging.cjs","sources":["../src/constants.ts","../src/logParameters.ts","../src/text.ts","../src/web.ts","../src/environment.ts","../src/utils.ts","../src/logging.ts","../src/LoggedClass.ts","../src/filters/LogFilter.ts","../src/time.ts","../src/decorators.ts","../src/filters/PatternFilter.ts","../src/errors.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["BrowserEnvKey","ENV_PATH_DELIMITER","DefaultPlaceholderWrappers","LogLevel","NumericLogLevels","benchmark","fatal","critical","error","warn","info","verbose","debug","trace","silly","LoggingMode","DefaultTheme","app","separator","class","fg","id","stack","timestamp","message","method","logLevel","style","DefaultLoggingConfig","env","level","filters","contextSeparator","timestampFormat","context","meta","format","RAW","pattern","theme","LogParameterRegistry","constructor","this","descriptors","Map","register","descriptor","set","key","unregister","delete","get","render","payload","keys","rendered","seen","Set","forEach","has","add","shouldInclude","raw","undefined","styled","Array","from","patternCache","compileLogPattern","segments","parsePatternSegments","orderedKeys","collectPatternKeys","definition","includesMeta","renderPattern","renderPatternSegments","text","index","length","char","closingIndex","findClosingBracket","push","type","value","inner","slice","prefix","suffix","children","indexOf","trim","literalEnd","literal","input","startIndex","open","close","depth","idx","segment","buffer","hasValue","result","renderSegment","join","childResult","registry","config","toUpperCase","applyTheme","filteredMessage","metaString","correlationId","logParameterRegistry","patchString","values","flags","Object","entries","val","regexp","RegExp","escapeRegExp","replace","toENVFormat","toSnakeCase","toLowerCase","string","sf","args","every","arg","Error","obj","reduce","acc","match","number","toString","stringFormat","isBrowser","getPrototypeOf","globalThis","prototype","EmptyValue","Symbol","ModelSymbol","camelCasePattern","Environment","ObjectAccumulator","factory","super","defineProperty","writable","enumerable","configurable","isProxyableObject","isArray","fromEnv","k","process","parseEnvValue","parseRuntimeValue","trimmed","test","Number","expand","v","mergeModel","buildEnvProxy","orThrow","modelRoot","parseRuntime","missing","empty","missingEnvError","createNestedProxy","model","path","handler","_target","prop","toPrimitive","buildEnvKey","Reflect","bind","nextPath","envKey","runtimeRaw","readRuntimeForPath","runtimeValue","hasOwnProperty","call","modelValue","ownKeys","getOwnPropertyDescriptor","Proxy","target","receiver","actual","instance","_instance","base","proxied","accumulate","desc","formatEnvSegment","map","buildRawKey","formattedKey","rawKey","runtimeFormatted","readRuntimeEnv","runtimeEnv","getRuntimeChildKeys","prefixes","childKeys","fullPrefix","startsWith","childKey","split","hasRuntimePath","current","readEnv","arrayIndexPattern","composedKey","envValue","hasProp","nextModel","hasRuntimeDescendant","isArrayIndex","_t","p","toEnv","existing","childValue","LoggedEnvironment","assign","isClass","src","Function","protoDesc","proto","getOwnPropertyNames","filter","n","isFunction","isMethod","isInstance","ctor","getObjectName","name","toStringFn","fn","tag","exec","ROOT_CONTEXT_SYMBOL","MiniLogger","conf","baseContext","Logging","getConfig","contextName","childConfig","parentContext","rootCandidate","contextSegments","apply","_thisArg","argArray","innerArgs","first","originalContext","for","snapshot","getConfigSnapshot","getContextSegments","resolveFilters","candidate","entry","applyFilters","next","createLog","styleEnabled","Date","toISOString","configSnapshot","rawMessage","String","metaPayload","formatMeta","filteredMetaString","correlationIdValue","stackLabel","configuredPattern","defaultPattern","jsonValues","logEntry","JSON","stringify","generated","normalizePatternSpacing","err","log","msg","confLvl","console","e","errorCandidate","payloadMeta","verbosityOrMeta","verbosity","setConfig","root","clear","_factory","object","_config","setFactory","global","ensureRoot","callArgs","because","reason","logger","attachRootContext","extras","loggerLevel","template","individualTheme","actualTheme","logLevels","txt","option","t","c","applyColor","isBg","f","background","foreground","bgColor256","color256","bgRgb","rgb","applyStyle","LoggedClass","_log","LogFilter","now","performance","hrtime","bigint","ns","formatMs","ms","sign","abs","Math","hours","floor","minutes","seconds","millis","pad","w","padStart","entryMessage","exitMessage","propertyKey","originalMethod","thisArg","Promise","then","r","catch","final","PatternFilter","replacement","lastIndex","__decorate","BaseError","code","replaceAll","autoStart","_startMs","_elapsedMs","_running","_laps","_lastLapTotalMs","start","running","elapsedMs","pause","resume","stop","reset","wasRunning","lap","label","total","totalMs","laps","toJSON","str","padEnd","word"],"mappings":"gDAQO,MAAMA,EAAgB,MAQhBC,EAAqB,KAQrBC,EAA6B,CAAC,KAAM,KASjD,IAAYC,EAAAA,EAAAA,cAAAA,GAAAA,EAAAA,EAAAA,WAAAA,WAAQ,CAAA,IAElB,UAAA,YAEAA,EAAA,MAAA,QAEAA,EAAA,SAAA,WAEAA,EAAA,MAAA,QAEAA,EAAA,KAAA,OAEAA,EAAA,KAAA,OAEAA,EAAA,QAAA,UAEAA,EAAA,MAAA,QAEAA,EAAA,MAAA,QAEAA,EAAA,MAAA,QA0BK,MAAMC,EAAmB,CAC9BC,UAAW,EACXC,MAAO,EACPC,SAAU,EACVC,MAAO,EACPC,KAAM,EACNC,KAAM,EACNC,QAAS,GACTC,MAAO,GACPC,MAAO,GACPC,MAAO,IAUT,IAAYC,EAAAA,EAAAA,iBAAAA,GAAAA,EAAAA,EAAAA,cAAAA,cAAW,CAAA,IAErB,IAAA,MAEAA,EAAA,KAAA,OASK,MAAMC,EAAsB,CACjCC,IAAK,CAAA,EACLC,UAAW,CAAA,EACXC,MAAO,CACLC,GAAI,IAENC,GAAI,CACFD,GAAI,IAENE,MAAO,CAAA,EACPC,UAAW,CAAA,EACXC,QAAS,CACPhB,MAAO,CACLY,GAAI,KAGRK,OAAQ,CAAA,EACRC,SAAU,CACRrB,UAAW,CACTe,GAAI,GACJO,MAAO,CAAC,SAEVrB,MAAO,CACLc,GAAI,GACJO,MAAO,CAAC,SAEVpB,SAAU,CACRa,GAAI,GACJO,MAAO,CAAC,SAEVnB,MAAO,CACLY,GAAI,GACJO,MAAO,CAAC,SAEVjB,KAAM,CACJU,GAAI,GACJO,MAAO,CAAC,SAEVhB,QAAS,CACPS,GAAI,GACJO,MAAO,CAAC,SAEVf,MAAO,CACLQ,GAAI,GACJO,MAAO,CAAC,SAEVd,MAAO,CACLO,GAAI,GACJO,MAAO,CAAC,SAEVb,MAAO,CACLM,GAAI,GACJO,MAAO,CAAC,WAWDC,EAAsC,CACjDC,IAAK,cACLlB,QAAS,EACTmB,MAAO3B,EAAAA,SAASO,KAChBgB,UAAU,EACVC,OAAO,EACPI,QAAS,GACTC,iBAAkB,IAClBd,UAAW,IACXK,WAAW,EACXU,gBAAiB,eACjBC,SAAS,EACTC,MAAM,EACNC,OAAQrB,EAAAA,YAAYsB,IACpBC,QACE,sEACFC,MAAOvB,SCvIIwB,EAAb,WAAAC,GACmBC,KAAAC,YAAc,IAAIC,GAsCrC,CApCE,QAAAC,CAASC,GAEP,OADAJ,KAAKC,YAAYI,IAAID,EAAWE,IAAKF,GAC9BJ,IACT,CAEA,UAAAO,CAAWD,GAET,OADAN,KAAKC,YAAYO,OAAOF,GACjBN,IACT,CAEA,GAAAS,CAAIH,GACF,OAAON,KAAKC,YAAYQ,IAAIH,EAC9B,CAEA,MAAAI,CAAOC,EAA8BC,GACnC,MAAMC,EAAmC,CAAA,EACnCC,EAAO,IAAIC,IAcjB,OAbAH,EAAKI,QAASV,IACZ,GAAIQ,EAAKG,IAAIX,GAAM,OACnBQ,EAAKI,IAAIZ,GACT,MAAMF,EAAaJ,KAAKC,YAAYQ,IAAIH,GACxC,IAAKF,EAAY,OACjB,GAAIA,EAAWe,gBAAkBf,EAAWe,cAAcR,GACxD,OAEF,MAAMS,EAAMhB,EAAWM,OAAOC,GAC9B,QAAYU,IAARD,EAAmB,OACvB,MAAME,EAASlB,EAAWnB,MAAQmB,EAAWnB,MAAMmC,EAAKT,GAAWS,EACnEP,EAASP,GAAOgB,IAEXT,CACT,CAEA,IAAAD,GACE,OAAOW,MAAMC,KAAKxB,KAAKC,YAAYW,OACrC,EAGF,MAAMa,EAAe,IAAIvB,IAEnB,SAAUwB,EAAkB9B,GAChC,GAAI6B,EAAaR,IAAIrB,GACnB,OAAO6B,EAAahB,IAAIb,GAE1B,MAAM+B,EAAWC,EAAqBhC,GAAW,IAC3CkB,EAAO,IAAIC,IACXc,EAAwB,GAC9BC,EAAmBH,EAAUb,EAAMe,GACnC,MAAME,EAAmC,CACvCnC,UACA+B,WACAf,KAAMiB,EACNG,aAAclB,EAAKG,IAAI,SAGzB,OADAQ,EAAapB,IAAIT,EAASmC,GACnBA,CACT,CAEM,SAAUE,EACdF,EACAlB,GAEA,OAAOqB,EAAsBH,EAAWJ,SAAUd,GAAUsB,IAC9D,CAEA,SAASP,EAAqBhC,GAC5B,MAAM+B,EAAgC,GACtC,IAAIS,EAAQ,EACZ,KAAOA,EAAQxC,EAAQyC,QAAQ,CAC7B,MAAMC,EAAO1C,EAAQwC,GACrB,GAAa,MAATE,EAAc,CAChB,MAAMC,EAAeC,EAAmB5C,EAASwC,EAAO,IAAK,KAC7D,IAAqB,IAAjBG,EAAqB,CACvBZ,EAASc,KAAK,CAAEC,KAAM,UAAWC,MAAO,MACxCP,IACA,QACF,CACA,MAAMQ,EAAQhD,EAAQiD,MAAMT,EAAQ,EAAGG,GACvCZ,EAASc,KAAK,CACZC,KAAM,WACNI,OAAQ,IACRC,OAAQ,IACRC,SAAUpB,EAAqBgB,KAEjCR,EAAQG,EAAe,EACvB,QACF,CACA,GAAa,MAATD,EAAc,CAChB,MAAMC,EAAe3C,EAAQqD,QAAQ,IAAKb,EAAQ,GAClD,IAAqB,IAAjBG,EAAqB,CACvBZ,EAASc,KAAK,CAAEC,KAAM,UAAWC,MAAO,MACxCP,IACA,QACF,CACA,MAAM9B,EAAMV,EAAQiD,MAAMT,EAAQ,EAAGG,GAAcW,OACnDvB,EAASc,KAAK,CAAEC,KAAM,YAAapC,QACnC8B,EAAQG,EAAe,EACvB,QACF,CACA,IAAIY,EAAaf,EACjB,KACEe,EAAavD,EAAQyC,QACG,MAAxBzC,EAAQuD,IACgB,MAAxBvD,EAAQuD,IAERA,IAEF,MAAMC,EAAUxD,EAAQiD,MAAMT,EAAOe,GACjCC,EAAQf,QACVV,EAASc,KAAK,CAAEC,KAAM,UAAWC,MAAOS,IAE1ChB,EAAQe,CACV,CACA,OAAOxB,CACT,CAEA,SAASa,EACPa,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAQ,EACZ,IAAK,IAAIC,EAAMJ,EAAYI,EAAML,EAAMhB,OAAQqB,IAAO,CACpD,MAAMpB,EAAOe,EAAMK,GACnB,GAAIpB,IAASiB,EACXE,SACK,GAAInB,IAASkB,IAClBC,IACc,IAAVA,GAAa,OAAOC,CAE5B,CACA,OAAO,CACT,CAEA,SAAS5B,EACPH,EACAb,EACAe,GAEA,IAAK,MAAM8B,KAAWhC,EACC,cAAjBgC,EAAQjB,OACL5B,EAAKG,IAAI0C,EAAQrD,OACpBQ,EAAKI,IAAIyC,EAAQrD,KACjBuB,EAAYY,KAAKkB,EAAQrD,OAGR,aAAjBqD,EAAQjB,MACVZ,EAAmB6B,EAAQX,SAAUlC,EAAMe,EAGjD,CAOA,SAASK,EACPP,EACAd,GAEA,MAAM+C,EAAmB,GACzB,IAAIC,GAAW,EACf,IAAK,MAAMF,KAAWhC,EAAU,CAC9B,MAAMmC,EAASC,EAAcJ,EAAS9C,GAClCiD,EAAO3B,KAAKE,QACduB,EAAOnB,KAAKqB,EAAO3B,MAErB0B,EAAWA,GAAYC,EAAOD,QAChC,CACA,MAAO,CAAE1B,KAAMyB,EAAOI,KAAK,IAAKH,WAClC,CAEA,SAASE,EACPJ,EACA9C,GAEA,GAAqB,YAAjB8C,EAAQjB,KACV,MAAO,CAAEP,KAAMwB,EAAQhB,MAAOkB,UAAU,GAE1C,GAAqB,cAAjBF,EAAQjB,KAAsB,CAChC,MAAMC,EAAQ9B,EAAS8C,EAAQrD,MAAQ,GACvC,MAAO,CAAE6B,KAAMQ,EAAOkB,SAAUlB,EAAMN,OAAS,EACjD,CACA,MAAM4B,EAAc/B,EAAsByB,EAAQX,SAAUnC,GAC5D,OAAKoD,EAAYJ,SAGV,CACL1B,KAAM,GAAGwB,EAAQb,SAASmB,EAAY9B,OAAOwB,EAAQZ,SACrDc,UAAU,GAJH,CAAE1B,KAAM,GAAI0B,UAAU,EAMjC,CAEA,MAAMK,EAAW,IAAIpE,EAGnBoE,EACG/D,SAAS,CACRG,IAAK,QACL,MAAAI,CAAOC,GACL,IAAgC,IAA5BA,EAAQwD,OAAOnF,SACnB,OAAO2B,EAAQvB,MAAMgF,aACvB,EACAnF,MAAK,CAAC4B,EAAUF,IACPA,EAAQ0D,WAAWxD,EAAU,cAGvCV,SAAS,CACRG,IAAK,YACLa,cAAcR,MACGA,EAAQwD,OAAOtF,YAAa8B,EAAQ9B,WAErD6B,OAAOC,GACEA,EAAQ9B,UAEjBI,MAAK,CAAC4B,EAAUF,IACPA,EAAQ0D,WAAWxD,EAAU,eAGvCV,SAAS,CACRG,IAAK,MACLa,cAAcR,KACGA,EAAQpC,IAEzBmC,OAAOC,GACEA,EAAQpC,IAEjBU,MAAK,CAAC4B,EAAUF,IACPA,EAAQ0D,WAAWxD,EAAU,SAGvCV,SAAS,CACRG,IAAK,UACLa,cAAcR,IACsB,IAA3BA,EAAQwD,OAAO3E,SAAqBmB,EAAQnB,QAAQ6C,OAAS,EAEtE,MAAA3B,CAAOC,GACL,MAAMnC,EAAYmC,EAAQwD,OAAO7E,kBAAoB,IACrD,OAAOqB,EAAQnB,QAAQwE,KAAKxF,EAC9B,EACAS,MAAK,CAAC4B,EAAUF,IACPA,EAAQ0D,WAAWxD,EAAU,WAGvCV,SAAS,CACRG,IAAK,YACLa,cAAcR,KACGA,EAAQnC,UAEzBkC,OAAOC,GACEA,EAAQnC,UAEjBS,MAAK,CAAC4B,EAAUF,IACPA,EAAQ0D,WAAWxD,EAAU,eAGvCV,SAAS,CACRG,IAAK,UACLI,OAAOC,GACEA,EAAQ2D,gBAEjBrF,MAAK,CAAC4B,EAAUF,IACPA,EAAQ0D,WAAWxD,EAAU,aAGvCV,SAAS,CACRG,IAAK,QACLa,cAAcR,KACGA,EAAQ/B,MAEzB8B,OAAOC,GACEA,EAAQ/B,MAEjBK,MAAK,CAAC4B,EAAUF,IACPA,EAAQ0D,WAAWxD,EAAU,WAGvCV,SAAS,CACRG,IAAK,OACLa,cAAcR,KACGA,EAAQ4D,WAEzB7D,OAAOC,GACEA,EAAQ4D,aAGlBpE,SAAS,CACRG,IAAK,gBACLa,cAAcR,KACGA,EAAQ6D,cAEzB9D,OAAOC,GACEA,EAAQ6D,cAEjBvF,MAAK,CAAC4B,EAAUF,IACPA,EAAQ0D,WAAWxD,EAAU,QAOrC,MAAM4D,EAAuBP,ECpS9B,SAAUQ,EACdrB,EACAsB,EACAC,EAAgB,KAMhB,OAJAC,OAAOC,QAAQH,GAAQ3D,QAAQ,EAAEV,EAAKyE,MACpC,MAAMC,EAAaC,OAAOC,EAAa5E,GAAMsE,GAC7CvB,EAAQA,EAAM8B,QAAQH,EAAQD,KAEzB1B,CACT,CA0BM,SAAU+B,EAAYjD,GAC1B,OAAOkD,EAAYlD,GAAMiC,aAC3B,CAUM,SAAUiB,EAAYlD,GAC1B,OAAOA,EACJgD,QAAQ,oBAAqB,SAC7BA,QAAQ,UAAW,KACnBG,aACL,CAuCM,SAAUJ,EAAaK,GAC3B,OAAOA,EAAOJ,QAAQ,sBAAuB,OAC/C,UAWgBK,EACdD,KACGE,GAEH,GAAIA,EAAKpD,OAAS,IAEboD,EAAKC,MAAOC,GAAuB,iBAARA,GAAmC,iBAARA,GAEvD,MAAUC,MACR,6EAIN,GAAoB,IAAhBH,EAAKpD,QAAmC,iBAAZoD,EAAK,GAAiB,CACpD,MAAMI,EAAMJ,EAAK,GACjB,OAAOZ,OAAOC,QAAQe,GAAKC,OAAO,CAACC,GAAMzF,EAAKyE,KACrCgB,EAAIZ,QAAYF,OAAO,MAAM3E,OAAU,KAAM,IAC3CyE,GAERQ,EACL,CAEA,OAAOA,EAAOJ,QAAQ,WAAY,CAAUa,EAAOC,SAClB,IAAjBR,EAAKQ,GACfR,EAAKQ,GAAQC,WACb,YAER,CAUO,MAAMC,EAAeX,WC9MZY,IACd,OACEvB,OAAOwB,eAAexB,OAAOwB,eAAeC,eAC5CzB,OAAO0B,SAEX,CCoDA,MAAMC,EAAaC,OAAO,oBACpBC,EAAcD,OAAO,oBAErBE,EAAmB,sBAEnB,MAAOC,UAAsCC,EAAAA,yBAQhC7G,KAAA8G,QACf,IAAwB,IAAIF,CAAc,CAU5C,WAAA7G,GACEgH,QACAlC,OAAOmC,eAAehH,KAAM0G,EAAa,CACvC/D,MAAO,CAAA,EACPsE,UAAU,EACVC,YAAY,EACZC,cAAc,GAElB,CAEQ,wBAAOC,CAAkBzE,GAC/B,IAAKA,GAA0B,iBAAVA,EAAoB,OAAO,EAChD,GAAIpB,MAAM8F,QAAQ1E,GAAQ,OAAO,EACjC,MAAM4D,EAAY1B,OAAOwB,eAAe1D,GACxC,OAAO4D,IAAc1B,OAAO0B,WAA2B,OAAdA,CAC3C,CAQU,OAAAe,CAAQC,GAChB,IAAIpI,EAYJ,OAXIiH,IACFjH,EAEImH,WAGAhJ,IAAkB,CAAA,GAEtB6B,EAAMmH,WAAWkB,QAAQrI,IACzBoI,EAAInC,EAAYmC,IAEXvH,KAAKyH,cAActI,EAAIoI,GAChC,CAQU,aAAAE,CAAc1C,GACtB,OAAO6B,EAAYc,kBAAkB3C,EACvC,CAEQ,wBAAO2C,CAAkB3C,GAC/B,GAAmB,iBAARA,EAAkB,OAAOA,EACpC,GAAY,SAARA,EAAgB,OAAO,EAC3B,GAAY,UAARA,EAAiB,OAAO,EAC5B,MAAM4C,EAAU5C,EAAI7B,OACpB,MAAI,kBAAkB0E,KAAKD,GAClBE,OAAOF,GAET5C,CACT,CASmB,MAAA+C,CAAyBnF,GAC1CkC,OAAOC,QAAQnC,GAAO3B,QAAQ,EAAEuG,EAAGQ,MACjCnB,EAAYoB,WAAYhI,KAAa0G,GAAca,EAAGQ,GACtDlD,OAAOmC,eAAehH,KAAMuH,EAAG,CAC7B9G,IAAK,KACH,MAAM6G,EAAUtH,KAAKsH,QAAQC,GAC7B,YAAuB,IAAZD,EAAgCA,EACvCS,GAAkB,iBAANA,EACenB,EAAYqB,cAAcF,EAAU,CAACR,IAI1D,KAANQ,EACKvB,EAEFuB,GAET1H,IAAM0E,IACJgD,EAAIhD,GAENoC,cAAc,EACdD,YAAY,KAGlB,CAOA,OAAAgB,GAEE,MACMC,EADOnI,KACmB0G,GAC1B0B,EAAgBhH,QACL,IAARA,EAAsBpB,KAAKyH,cAAcrG,QAAOC,EAEnDgH,EAAU,CAAC/H,EAAagI,GAAiB,IAC7C1B,EAAY2B,gBAAgBjI,EAAKgI,GAE7BE,EAAoB,CAACC,EAAYC,KACrC,MAAMC,EAA6B,CACjC,GAAAlI,CAAImI,EAASC,GAGX,GAAIA,IAASpC,OAAOqC,YAClB,MAAO,IAAMlC,EAAYmC,YAAYL,GACvC,GAAa,aAATG,EACF,MAAO,IAAMjC,EAAYmC,YAAYL,GACvC,GAAa,YAATG,EACF,MAAO,IAAMjC,EAAYmC,YAAYL,GACvC,GAAoB,iBAATG,EAAmB,OAK9B,GAAa,WAATA,EAAmB,OACvB,GAAa,SAATA,EAAiB,OACrB,GAAa,gBAATA,EAAwB,OAAOhE,OACnC,GAAItD,MAAM8F,QAAQoB,IAAmB,WAATI,EAAmB,OAAOJ,EAAMpG,OAC5D,GAAId,MAAM8F,QAAQoB,IAAUI,KAAQtH,MAAMgF,UAAW,CACnD,MAAM5D,EAAQqG,QAAQvI,IAAIgI,EAAOI,EAAMJ,GACvC,MAAwB,mBAAV9F,EAAuBA,EAAMsG,KAAKR,GAAS9F,CAC3D,CACA,MAAMuG,EAAW,IAAIR,EAAMG,IACnBvI,IAAK6I,EAAQxG,MAAOyG,GAC1BxC,EAAYyC,mBAAmBH,GACjC,GAA0B,iBAAfE,GAAiD,IAAtBA,EAAW/G,OAC/C,MAAMgG,EAAQc,GAAQ,GACxB,MAAMG,EAAelB,EAAagB,GAClC,QAA4B,IAAjBE,EAA8B,CACvC,GAA4B,iBAAjBA,GAAqD,IAAxBA,EAAajH,OACnD,MAAMgG,EAAQc,GAAQ,GACxB,OAAOG,CACT,CAIA,IADEb,IAAS5D,OAAO0B,UAAUgD,eAAeC,KAAKf,EAAOI,GACzC,MAAMR,EAAQc,GAE5B,MAAMM,EAAahB,EAAMI,GACzB,QAA0B,IAAfY,EAAX,CACA,GAAmB,KAAfA,EAAmB,MAAMpB,EAAQc,GAErC,OAAIvC,EAAYQ,kBAAkBqC,GACzBjB,EAAkBiB,EAAYP,GAGhCO,CAPgD,CAQzD,EACAC,QAAO,IACEjB,EAAQO,QAAQU,QAAQjB,GAAS,GAE1C,wBAAAkB,CAAyBf,EAASC,GAChC,GAAKJ,EACL,OAAI5D,OAAO0B,UAAUgD,eAAeC,KAAKf,EAAOI,GACvC,CACL3B,YAAY,EACZC,cAAc,QAHlB,CAOF,GAGF,OAAO,IAAIyC,MADIrI,MAAM8F,QAAQoB,GAAS,GAAK,CAAA,EAClBE,IAwC3B,OAAO,IAAIiB,MAjHE5J,KA4EsB,CACjC,GAAAS,CAAIoJ,EAAQhB,EAAMiB,GAChB,GAAoB,iBAATjB,EACT,OAAOG,QAAQvI,IAAIoJ,EAAQhB,EAAMiB,GAKnC,IAJqBjF,OAAO0B,UAAUgD,eAAeC,KACnDrB,EACAU,GAEiB,OAAOG,QAAQvI,IAAIoJ,EAAQhB,EAAMiB,GAEpD,MAAQxJ,IAAK6I,EAAQxG,MAAOyG,GAC1BxC,EAAYyC,mBAAmB,CAACR,IAClC,GAA0B,iBAAfO,GAAiD,IAAtBA,EAAW/G,OAC/C,MAAMgG,EAAQc,GAAQ,GACxB,MAAMG,EAAelB,EAAagB,GAClC,QAA4B,IAAjBE,EAA8B,CACvC,GAA4B,iBAAjBA,GAAqD,IAAxBA,EAAajH,OACnD,MAAMgG,EAAQc,GAAQ,GACxB,OAAOG,CACT,CAEA,MAAMG,EAAatB,EAAUU,GAC7B,GAAIjC,EAAYQ,kBAAkBqC,GAChC,OAAOjB,EAAkBiB,EAAY,CAACZ,IAGxC,QAA0B,IAAfY,EACT,OAAOT,QAAQvI,IAAIoJ,EAAQhB,EAAMiB,GAEnC,MAAMC,EAASf,QAAQvI,IAAIoJ,EAAQhB,GACnC,QAAsB,IAAXkB,GAAqC,KAAXA,EACnC,MAAM1B,EAAQc,EAAmB,KAAXY,GAExB,OAAOA,CACT,GAIJ,CAWU,eAAOC,IAAwCvE,GACvD,IAAKmB,EAAYqD,UAAW,CAC1B,MAAMC,EAAOtD,EAAYE,WAAWrB,GAC9B0E,EAAU,IAAIP,MAAMM,EAAa,CACrC,GAAAzJ,CAAIoJ,EAAQhB,EAAMiB,GAChB,MAAMnH,EAAQqG,QAAQvI,IAAIoJ,EAAQhB,EAAMiB,GACxC,GAAInH,IAAU6D,IAGI,iBAATqC,IACPhE,OAAO0B,UAAUgD,eAAeC,KAAKK,EAAQhB,SAExB,IAAVlG,GAJb,CAMA,QAAqB,IAAVA,EAAuB,OAAOA,EACzC,GAAoB,iBAATkG,EAAmB,CAE5B,GAAa,QAATA,EAAgB,OACpB,OAAOjC,EAAYqB,mBAAc5G,EAAW,CAACwH,GAC/C,CACA,OAAOlG,CAPP,CAQF,IAEFiE,EAAYqD,UAAYE,CAC1B,CACA,OAAOvD,EAAYqD,SACrB,CAKgB,UAAAG,CACdzH,GAIA,OADAoE,MAAMqD,WAAWzH,GACV3C,IAIT,CAUA,iBAAOoK,CAA6BzH,GAClC,MAAMqH,EAAWpD,EAAYoD,WAgB7B,OAfAnF,OAAOjE,KAAKoJ,GAAiBhJ,QAASV,IACpC,MAAM+J,EAAOxF,OAAO8E,yBAAyBK,EAAiB1J,GAC1D+J,GAAQA,EAAKlD,cAAgBkD,EAAKnD,YACpCrC,OAAOmC,eAAegD,EAAiB1J,EAAK,IACvC+J,EACHnD,YAAY,MAOlB8C,EAASI,WAAWzH,GAGbqH,CACT,CAQA,UAAOvJ,CAAIH,GACT,OAAOsG,EAAYqD,UAAUxJ,IAAIH,EACnC,CAEQ,uBAAOgK,CAAiB3G,GAC9B,OAAOgD,EAAiBiB,KAAKjE,GACzByB,EAAYzB,GACZA,EAAQS,aACd,CAEQ,kBAAO2E,CAAYL,GACzB,OAAOA,EACJ6B,IAAK5G,GAAYiD,EAAY0D,iBAAiB3G,IAC9CK,KAAKzG,EACV,CAEQ,kBAAOiN,CAAY9B,GACzB,OAAOA,EAAK1E,KAAKzG,EACnB,CAEQ,yBAAO8L,CAAmBX,GAChC,MAAM+B,EAAe7D,EAAYmC,YAAYL,GACvCgC,EAAS9D,EAAY4D,YAAY9B,GACjCiC,EAAmB/D,EAAYgE,eAAeH,GACpD,QAAgC,IAArBE,EACT,MAAO,CAAErK,IAAKmK,EAAc9H,MAAOgI,GAErC,GAAID,IAAWD,EAAc,CAC3B,MAAMrB,EAAaxC,EAAYgE,eAAeF,GAC9C,QAA0B,IAAftB,EACT,MAAO,CAAE9I,IAAKoK,EAAQ/H,MAAOyG,EAEjC,CACA,MAAO,CAAE9I,IAAKmK,EAAc9H,WAAOtB,EACrC,CAEQ,iBAAOwJ,GACb,OAAIzE,IAEAE,WAGAhJ,GAGIgJ,YAAoBkB,SAASrI,GACvC,CAEQ,0BAAO2L,CAAoBpC,GACjC,MAAMvJ,EAAMyH,EAAYiE,aACxB,IAAK1L,EAAK,MAAO,GAEjB,MAAM4L,EAAW,CACfnE,EAAYmC,YAAYL,GACxB9B,EAAY4D,YAAY9B,IAEpBsC,EAAY,IAAIjK,IActB,OAZA8D,OAAOjE,KAAKzB,GAAK6B,QAASV,IACxByK,EAAS/J,QAAS8B,IAChB,IAAKA,EAAQ,OACb,MAAMmI,EAAa,GAAGnI,IAASvF,IAC/B,GAAI+C,EAAI4K,WAAWD,GAAa,CAC9B,MACME,EADY7K,EAAIuC,MAAMoI,EAAW5I,QACZ+I,MAAM7N,GAAoB,GACjD4N,GAAUH,EAAU9J,IAAIiK,EAC9B,MAIG,IAAIH,EACb,CAEQ,qBAAOK,CAAe3C,GAC5B,MAAM/F,MAAEA,GAAUiE,EAAYyC,mBAAmBX,GACjD,YAAwB,IAAV/F,GAAyBiE,EAAYkE,oBAAoBpC,GAAMrG,OAAS,CACxF,CASQ,oBAAO4F,CAAcqD,EAAc5C,GACzC,MAAM6C,EAAWjL,GACRsG,EAAYgE,eAAetK,GAG9BkL,EAAoB,WAIpB7C,EAA6B,CACjC,GAAAlI,CAAImI,EAASC,GACX,GAAIA,IAASpC,OAAOqC,YAClB,MAAO,IAAMlC,EAAYmC,YAAYL,GAEvC,GAAa,aAATG,EACF,MAAO,IAAMjC,EAAYmC,YAAYL,GAEvC,GAAa,YAATG,EACF,MAAO,IAAMjC,EAAYmC,YAAYL,GAEvC,GAAoB,iBAATG,EAAmB,OAE9B,GAAItH,MAAM8F,QAAQiE,IAAYzC,KAAQtH,MAAMgF,UAAW,CACrD,MAAM5D,EAAQqG,QAAQvI,IAAI6K,EAASzC,EAAMyC,GACzC,MAAwB,mBAAV3I,EAAuBA,EAAMsG,KAAKqC,GAAW3I,CAC7D,CACA,GAAIpB,MAAM8F,QAAQiE,IAAqB,WAATzC,EAAmB,OAAOyC,EAAQjJ,OAChE,MAAM6G,EAAW,IAAIR,EAAMG,GACrB4C,EAAc7E,EAAYmC,YAAYG,GACtCwB,EAAS9D,EAAY4D,YAAYtB,GAGvC,IAAIwC,EAAWH,EAAQE,GAIvB,QAHwB,IAAbC,GAA4BhB,IAAWe,IAChDC,EAAWH,EAAQb,SAEG,IAAbgB,EACT,OAAO9E,EAAYc,kBAAkBgE,GAEvC,MAAMC,IACFL,GAAWzG,OAAO0B,UAAUgD,eAAeC,KAAK8B,EAASzC,GACvD+C,EAAYD,EAAWL,EAAgBzC,QAAQxH,EAC/CwK,EAAuBjF,EAAYyE,eAAenC,GAExD,OAAI3H,MAAM8F,QAAQiE,IAtCD,CAACzC,GACJ,iBAATA,GAAqB2C,EAAkB5D,KAAKiB,GAqCnBiD,CAAajD,GACpC8C,EAKD/E,EAAYQ,kBAAkBwE,GACzBhF,EAAYqB,cAAc2D,EAAW1C,GACvCtC,EAAYc,kBAAkBkE,GAN5BC,EACHjF,EAAYqB,mBAAc5G,EAAW6H,QACrC7H,EAOauK,GAAkC,iBAAdA,GACrBhF,EAAYQ,kBAAkBwE,GACzChF,EAAYqB,cAAc2D,EAAW1C,GAE1CyC,GAAyB,KAAdC,GACXD,QAAgC,IAAdC,OADtB,EAGID,EACK/E,EAAYc,kBAAkBkE,GAI9BhF,EAAYqB,mBAAc5G,EAAW6H,EAMhD,EACA,OAAAQ,GACE,MAAM9I,EAAO,IAAIG,IAKjB,OAJIuK,GACFtC,QAAQU,QAAQ4B,GAAStK,QAASV,GAAQM,EAAKM,IAAIZ,IAErDsG,EAAYkE,oBAAoBpC,GAAM1H,QAASV,GAAQM,EAAKM,IAAIZ,IACzD,IAAIM,EACb,EACA+I,yBAAwB,CAACoC,EAAIC,IACvBV,GAAWzG,OAAO0B,UAAUgD,eAAeC,KAAK8B,EAASU,GACpDhD,QAAQW,yBAAyB2B,EAASU,GAElC,iBAANA,GAAkBpF,EAAYyE,eAAe,IAAI3C,EAAMsD,IACzD,CAAE9E,YAAY,EAAMC,cAAc,QAD3C,GAQJ,OAAO,IAAIyC,MADIrI,MAAM8F,QAAQiE,GAAW,GAAM,CAAA,EACrB3C,EAC3B,CASA,WAAO/H,CAAKqL,GAAiB,GAC3B,OAAOrF,EAAYoD,WAChBpJ,OACA2J,IAAKhD,GAAO0E,EAAQ7G,EAAYmC,GAAKA,EAC1C,CAEQ,iBAAOS,CACbS,EACAnI,EACAqC,GAEA,GAAK8F,EAAL,CACA,GAAI9F,GAA0B,iBAAVA,IAAuBpB,MAAM8F,QAAQ1E,GAAQ,CAC/D,MAAMuJ,EAAWzD,EAAMnI,GACjBuJ,EACJqC,GAAgC,iBAAbA,IAA0B3K,MAAM8F,QAAQ6E,GACvDA,EACA,CAAA,EAKN,OAJAzD,EAAMnI,GAAOuJ,OACbhF,OAAOC,QAAQnC,GAAO3B,QAAQ,EAAEmK,EAAUgB,MACxCvF,EAAYoB,WAAW6B,EAAQsB,EAAUgB,IAG7C,CACA1D,EAAMnI,GAAOqC,CAbD,CAcd,CAEQ,qBAAOiI,CAAetK,GAC5B,GAAI8F,IAAa,CACf,MAAMjH,EACJmH,WAGAhJ,GACF,OAAO6B,EAAMA,EAAImB,QAAOe,CAC1B,CACA,OAAQiF,YAAoBkB,SAASrI,MAAMmB,EAC7C,CAEQ,sBAAOiI,CAAgBjI,EAAagI,GAE1C,OAAW1C,MACT,wBAAwBtF,yBAFXgI,EAAQ,kBAAoB,eAI7C,EASK,MAAM8D,EAAoBxF,EAAYwD,WAC3CvF,OAAOwH,OACL,CACE9N,SAAK8C,GAEPnC,EACA,CACEC,KACGiH,KAAgBE,WAAmBhJ,GAC/BgJ,WAAmBhJ,GAAyB,SAC5CgJ,WAAmBkB,QAAQrI,IAAc,WAAM,iBCznBtD,SAAUmN,EACd3J,GAEA,GAAqB,mBAAVA,EAAsB,OAAO,EAIxC,IACE,MAAM4J,EAAMC,SAASjG,UAAUL,SAASsD,KAAK7G,GAC7C,GAAI,iBAAiBiF,KAAK2E,GAAM,OAAO,CACzC,CAAE,MAEF,CAGA,MAAME,EAAY5H,OAAO8E,yBAAyBhH,EAAO,aACzD,IAAK8J,IAAcA,EAAU9J,MAAO,OAAO,EAI3C,IAA2B,IAAvB8J,EAAUxF,SAAoB,OAAO,EAIzC,MAAMyF,EAAS/J,EAAc4D,UAC7B,QAAK1B,OAAO0B,UAAUgD,eAAeC,KAAKkD,EAAO,gBAEnC7H,OAAO8H,oBAAoBD,GAAOE,OAC7CC,GAAY,gBAANA,GAEIxK,OAAS,CACxB,CAWM,SAAUyK,EACdnK,GAEA,MAAwB,mBAAVA,IAAyB2J,EAAQ3J,EACjD,CAWM,SAAUoK,EACdpK,GAEA,IAAKmK,EAAcnK,GAAQ,OAAO,EAElC,MAAMvC,EAAayE,OAAO8E,yBAAyBhH,EAAO,aAC1D,OAAQvC,QAAmCiB,IAArBjB,EAAWuC,KACnC,CAWM,SAAUqK,EAA6BrK,GAC3C,GAAc,OAAVA,GAAmC,iBAAVA,EAAoB,OAAO,EAGxD,MAAMsK,EAAQtK,EAAqC5C,YACnD,SAAKkN,GAAQA,IAASpI,SAEfyH,EAAQW,EACjB,CAUM,SAAUC,EAAcvK,GAC5B,GAAc,OAAVA,EAAgB,MAAO,OAC3B,QAActB,IAAVsB,EAAqB,MAAO,YAChC,GAAqB,iBAAVA,EAAoB,OAAOA,EAEtC,GAAI2J,EAAQ3J,GACV,OAAOA,EAAMwK,MAAQ,iBAGvB,GAAIH,EAAWrK,GAAQ,CACrB,MAAMyK,EAAczK,EAAsCuD,SAC1D,GACwB,mBAAfkH,GACPA,IAAevI,OAAO0B,UAAUL,SAEhC,IACE,MAAMrF,EAAWuM,EAAW5D,KAAK7G,GACjC,GAAwB,iBAAb9B,GAAyBA,EAASwB,OAAQ,OAAOxB,CAC9D,CAAE,MAEF,CAGF,MAAMoM,EAAQtK,EAAqC5C,YACnD,OAAOkN,GAAQA,EAAKE,KAAOF,EAAKE,KAAO,mBACzC,CAEA,GAAIJ,EAASpK,IAAUmK,EAAWnK,GAAQ,CAExC,MAAM0K,EAAK1K,EACX,OAAI0K,EAAGF,KAAaE,EAAGF,KAChB,WACT,CAEA,GAAqB,iBAAVxK,EAAoB,CAC7B,MAAM2K,EAAMzI,OAAO0B,UAAUL,SAASsD,KAAK7G,GACrCqD,EAAQ,wBAAwBuH,KAAKD,GAC3C,OAAItH,IAAQ,GAAWA,EAAM,GACtB,QACT,CAEA,cAAcrD,CAChB,OCvHa6K,EAAsB/G,OAAO,+BAyB7BgH,EAIX,WAAA1N,CACEP,EACUkO,EACVC,EAAwB,IADd3N,KAAA0N,KAAAA,EAGV1N,KAAK2N,YAAcpM,MAAM8F,QAAQsG,GAAe,IAAIA,GAAe,GAC/DnO,GAASQ,KAAK2N,YAAYlL,KAAKjD,GACnCQ,KAAKR,QAAU,IAAIQ,KAAK2N,aACvB3N,KAAawN,GAAuB,IAAIxN,KAAK2N,YAChD,CAEU,MAAAxJ,CAAsC7D,GAC9C,OAAIN,KAAK0N,MAAQpN,KAAON,KAAK0N,KACpB1N,KAAK0N,KAAKpN,GACZsN,EAAQC,YAAYvN,EAC7B,CA4BA,IACEvB,EAMAoF,KACGsB,GAEH,IAAIqI,EACAC,EAAc5J,EAClB,MAAM6J,EAAgBzM,MAAM8F,QAAQrH,KAAKR,SACrC,IAAIQ,KAAKR,SACe,iBAAjBQ,KAAKR,SAAwBQ,KAAKR,QACvC,CAACQ,KAAKR,SACN,GACAyO,EAAiBjO,KAAawN,GAC9BG,EAAcpM,MAAM8F,QAAQ4G,GAC9B,IAAIA,GACJ1M,MAAM8F,QAAQrH,KAAK2N,aACjB,IAAI3N,KAAK2N,aACT,GAEgB,iBAAX5O,EACT+O,EAAc/O,OACMsC,IAAXtC,IACLuN,EAAQvN,IAAWiO,EAAWjO,IAAW+N,EAAW/N,GACtD+O,EAAcZ,EAAcnO,IAClBgP,GAAehP,GAA4B,iBAAXA,IAC1CgP,EAAchP,IAIlB,IAAImP,EAAkBJ,EAClB,IAAIE,EAAeF,GACnB,IAAIE,GAER,OAAO,IAAIpE,MAAM5J,KAAM,CACrBS,IAAK,CAACoJ,EAAqBmC,EAAoBlC,KAC7C,MAAMhG,EAASkF,QAAQvI,IAAIoJ,EAAQmC,EAAGlC,GACtC,MAAU,WAANkC,EACK,IAAIpC,MAAM5J,KAAKmE,OAAQ,CAC5BgK,MAAO,CACLtE,EACAuE,EACAC,KAEA,MAAO/N,GAAO+N,EACd,OAAIN,QAAuB1M,IAARf,GAAqBA,KAAOyN,EACtCA,EAAYzN,GAEd0I,QAAQmF,MAAMtE,EAAQC,EAAUuE,IAEzC5N,IAAK,CAACoJ,EAA4BvJ,IAC5ByN,GAAezN,KAAOyN,EACjBA,EAAYzN,GACd0I,QAAQvI,IAAIoJ,EAAQvJ,EAAKwJ,KAI5B,UAANkC,EACK,KACLkC,EAAkB,IAAIP,GACf7D,GAGD,YAANkC,EACKkC,EAEC,SAANlC,EACK,IAAI2B,GAET3B,IAAMwB,EACDG,EAEC,QAAN3B,EACK,IAAIsC,KACT,GAAIP,EAAa,CACf,MAAMQ,EAAQD,EAAU,GAEL,iBAAVC,GACPjC,EAAQiC,IACRvB,EAAWuB,IACXzB,EAAWyB,GAEXD,EAAU,GAAK,IACVP,KACCO,EAAU,IAAM,IAEbC,GAA0B,iBAAVA,IACzBD,EAAU,GAAK,IACVP,KACCQ,GAGV,CACA,MAAMC,EAAkBjN,MAAM8F,QAAQwC,EAAOrK,SACzC,IAAIqK,EAAOrK,SACe,iBAAnBqK,EAAOrK,SAAwBqK,EAAOrK,QAC3C,CAACqK,EAAOrK,SACR,GACNqK,EAAOrK,QAAU,IAAI0O,GACrB,IAEE,OAAOrE,EAAO4E,IAAIN,MAAMtE,EAAQyE,EAClC,SACEzE,EAAOrK,QAAUgP,CACnB,GAGM,sBAANxC,EACK,KACL,MAAM0C,EAAW7E,EAAO8E,oBAIxB,OAHIZ,GACFlJ,OAAOwH,OAAOqC,EAAUX,GAEnBW,GAGJ5K,IAGb,CAEU,iBAAA6K,GACR,MAAO,IACFf,EAAQC,eACP7N,KAAK0N,MAAQ,GAErB,CAEU,kBAAAkB,GACR,OAAIrN,MAAM8F,QAAQrH,KAAKR,SAAiB,IAAIQ,KAAKR,SACrB,iBAAjBQ,KAAKR,SAAwBQ,KAAKR,QAAgB,CAACQ,KAAKR,SAC5D,EACT,CAEU,cAAAqP,CAAe1K,GACvB,MAAM2K,EAAY3K,EAAO9E,SAAW,GACpC,OAAKkC,MAAM8F,QAAQyH,GACZA,EAAUlC,OACdmC,GACkB,iBAAVA,GACG,OAAVA,GAC2C,mBAAnCA,EAAwBnC,QALE,EAOxC,CAEU,YAAAoC,CACRlQ,EACAU,EACA2E,GAEA,MAAM9E,EAAUW,KAAK6O,eAAe1K,GACpC,OAAK9E,EAAQgD,OACNhD,EAAQyG,OAAO,CAACwF,EAASsB,KAC9B,IACE,MAAMqC,EAAOrC,EAAOA,OAAOzI,EAAQmH,EAAS,IAAI9L,IAChD,MAAuB,iBAATyP,EAAoBA,EAAO3D,CAC3C,CAAE,MACA,OAAOA,CACT,GACCxM,GARyBA,CAS9B,CAUU,SAAAoQ,CACR9P,EACAN,EACAhB,EACA2B,GAEA,MAAM0P,IAAuBnP,KAAKmE,OAAO,SACnC3F,EAAYwB,KAAKmE,OAAO,aACxB5F,EAAMqP,EAAQC,YAAYtP,IAC1BM,EAAYmB,KAAKmE,OAAO,cAC1B,IAAIiL,MAAOC,mBACXhO,EACEiO,EAAiBtP,KAAK2O,oBACtBT,EAAkBlO,KAAK4O,qBACvBW,EACe,iBAAZzQ,EACHA,EACAA,aAAmB8G,MACjB9G,EAAQA,QACDA,EAAP0Q,GACFlL,EAAkBtE,KAAKgP,aAC3BO,EACArB,EACAoB,GAGIG,EADmBzP,KAAKmE,OAAO,SACL1E,EAAOA,OAAO4B,EACxCkD,EAAakL,EAAczP,KAAK0P,WAAWD,QAAepO,EAC1DsO,EAAqBpL,EACvBvE,KAAKgP,aAAazK,EAAY2J,EAAiBoB,QAC/CjO,EACEuO,EAAqB5P,KAAKmE,OAAO,iBACjCK,EACJoL,QACWA,EAAPJ,QACAnO,EAEN,IAAIzC,EACAiR,EACJ,GAAI/R,GAASgB,aAAmB8G,MAAO,CACrC,MAAMkJ,EAAYhR,GAAUgB,EACxBgQ,EAAUlQ,QACZiR,EACqB,iBAAZ/Q,EAAuBwF,EAAkBwK,EAAUhQ,QAI5DF,EAAQ,MAAMiR,qBAHMV,EAChBvB,EAAQ/N,MAAMiP,EAAUlQ,MAAO,QAASQ,GACxC0P,EAAUlQ,QAGlB,CAEA,MAGM+B,EAA+B,CACnCwD,OAAQmL,EACRlQ,QACAI,QAAS0O,EACTrP,YACAN,IAAoB,iBAARA,GAAoBA,EAAI8D,OAAS9D,OAAM8C,EACnD7C,YACAgG,gBACA+K,aACAjL,kBACA7E,KAAMgQ,EACNlL,WAAYoL,EACZ/Q,QACAiR,aACAxL,WAjBiB,CAAC1B,EAAeD,IACjCyM,EAAevB,EAAQ/N,MAAM8C,EAAOD,EAAatD,GAASuD,GAmBtDmN,EAAoB9P,KAAKmE,OAAO,WAChC4L,EAAiBT,EAAe1P,SAAW,GAI3CmC,EAAaL,EAHHoO,EAAkBzN,OAC9ByN,EACAC,GAEElP,EAAW4D,EAAqB/D,OAAOC,EAASoB,EAAWnB,MAEjE,OAAQZ,KAAKmE,OAAO,WAClB,IAAK,OAAQ,CACX,MAAM6L,EAAavL,EAAqB/D,OACtCC,EACA8D,EAAqB7D,QAEjBqP,EAA6C,CAAA,EAQnD,OAPApL,OAAOC,QAAQkL,GAAYhP,QAAQ,EAAEV,EAAKqC,MAC5B,SAARrC,IACJ2P,EAAS3P,GAAOqC,KAEdhC,EAAQlB,OACVwQ,EAASxQ,KAAOkB,EAAQlB,MAEnByQ,KAAKC,UAAUF,EACxB,CACA,IAAK,MAAO,CACV,IAAIG,EAAYpQ,KAAKqQ,wBACnBpO,EAAcF,EAAYlB,IAO5B,OALKkB,EAAWC,cAAgB2N,IAC9BS,EAAYA,EACR,GAAGA,KAAaT,IAChBA,GAECS,CACT,CACA,QACE,MAAUxK,MAAM,+BAA+B5F,KAAKmE,OAAO,WAEjE,CAEQ,UAAAuL,CAAWjQ,GACjB,IACE,OAAOyQ,KAAKC,UAAU1Q,EAExB,CAAE,MAAO6Q,GACP,OAAc7Q,EAAP+P,EACT,CACF,CAEU,uBAAAa,CAAwB1N,GAChC,OAAOA,EAAMwC,QAAQ,aAAc,KAAKA,QAAQ,mBAAoB,GACtE,CAUU,GAAAoL,CACRnR,EACAoR,EACA1S,EACA2B,GAEA,MAAMgR,EAAUzQ,KAAKmE,OAAO,SAC5B,GAAgCzG,EAAiB0B,GAA7C1B,EAAiB+S,GAAoC,OACzD,IAAI1R,EACJ,OAAQK,GACN,KAAK3B,EAAAA,SAASE,UACZoB,EAAS2R,QAAQH,IACjB,MACF,KAAK9S,EAAAA,SAASG,MACd,KAAKH,EAAAA,SAASI,SACd,KAAKJ,EAAAA,SAASK,MACZiB,EAAS2R,QAAQ5S,MACjB,MACF,KAAKL,EAAAA,SAASO,KACd,KAAKP,EAAAA,SAASQ,QACZc,EAAS2R,QAAQH,IACjB,MACF,KAAK9S,EAAAA,SAASS,MACZa,EAAS2R,QAAQxS,MACjB,MACF,KAAKT,EAAAA,SAASU,MACZY,EAAS2R,QAAQvS,MACjB,MACF,KAAKV,EAAAA,SAASM,KACZgB,EAAS2R,QAAQ3S,KACjB,MACF,KAAKN,EAAAA,SAASW,MACZW,EAAS2R,QAAQxS,MACjB,MACF,QACE,MAAU0H,MAAM,qBAEpB7G,EAAOiB,KAAKkP,UAAU9P,EAAOoR,EAAK1S,EAAO2B,GAC3C,CASA,SAAA9B,CAAU6S,EAAiB/Q,GACzBO,KAAKuQ,IAAI9S,EAAAA,SAASE,UAAW6S,OAAKnP,EAAW5B,EAC/C,CAUA,KAAA7B,CAAM4S,EAAyBG,EAAqBlR,GAClD,IAAImR,EACAC,EACAF,aAAa/K,OACfgL,EAAiBD,EACjBE,EAAcpR,GAEdoR,EAAcF,EAEhB3Q,KAAKuQ,IAAI9S,EAAAA,SAASG,MAAO4S,EAAKI,EAAgBC,EAChD,CAUA,QAAAhT,CAAS2S,EAAyBG,EAAqBlR,GACrD,IAAImR,EACAC,EACAF,aAAa/K,OACfgL,EAAiBD,EACjBE,EAAcpR,GAEdoR,EAAcF,EAEhB3Q,KAAKuQ,IAAI9S,EAAAA,SAASI,SAAU2S,EAAKI,EAAgBC,EACnD,CAUA,KAAAzS,CACEoS,EACAM,EAAoC,EACpCrR,GAEA,MAAMsR,EAAuC,iBAApBD,EAA+BA,EAAkB,EACpED,EACuB,iBAApBC,EAA+BrR,EAAOqR,EAC1C9Q,KAAKmE,OAAO,WAAyB4M,GACxC/Q,KAAKuQ,IAAI9S,EAAAA,SAASW,MAAOoS,OAAKnP,EAAWwP,EAC7C,CAUA,OAAA5S,CACEuS,EACAM,EAAoC,EACpCrR,GAEA,MAAMsR,EAAuC,iBAApBD,EAA+BA,EAAkB,EACpED,EACuB,iBAApBC,EAA+BrR,EAAOqR,EAC1C9Q,KAAKmE,OAAO,WAAyB4M,GACxC/Q,KAAKuQ,IAAI9S,EAAAA,SAASQ,QAASuS,OAAKnP,EAAWwP,EAC/C,CASA,IAAA7S,CAAKwS,EAAiB/Q,GACpBO,KAAKuQ,IAAI9S,EAAAA,SAASO,KAAMwS,OAAKnP,EAAW5B,EAC1C,CASA,KAAAvB,CAAMsS,EAAiB/Q,GACrBO,KAAKuQ,IAAI9S,EAAAA,SAASS,MAAOsS,OAAKnP,EAAW5B,EAC3C,CAUA,KAAA3B,CAAM0S,EAAyBG,EAAqBlR,GAClD,IAAImR,EACAC,EACAF,aAAa/K,OACfgL,EAAiBD,EACjBE,EAAcpR,GAEdoR,EAAcF,EAEhB3Q,KAAKuQ,IAAI9S,EAAAA,SAASK,MAAO0S,EAAKI,EAAgBC,EAChD,CASA,IAAA9S,CAAKyS,EAAiB/Q,GACpBO,KAAKuQ,IAAI9S,EAAAA,SAASM,KAAMyS,OAAKnP,EAAW5B,EAC1C,CASA,KAAAtB,CAAMqS,EAAiB/Q,GACrBO,KAAKuQ,IAAI9S,EAAAA,SAASU,MAAOqS,OAAKnP,EAAW5B,EAC3C,CAQA,SAAAuR,CAAU7M,GACRnE,KAAK0N,KAAO,IAAM1N,KAAK0N,MAAQ,CAAA,KAAQvJ,EACzC,CAEA,QAAI8M,GACF,MAAO,IAAIjR,KAAK2N,YAClB,CAOA,KAAAuD,GAEE,OADAlR,KAAKR,QAAU,IAAIQ,KAAK2N,aACjB3N,IACT,QAkEW4N,SAWI5N,KAAAmR,SAA0B,CACvCC,EACAjN,KAEA,MAAM+F,EAC6B,iBAA1BkC,EAAkB7N,IACrB,CAAC6N,EAAkB7N,KACnB,GACN,OAAO,IAAIkP,EAAW2D,EAAQjN,EAAQ+F,GACtC,QAEalK,KAAAqR,QAAoCjF,CAAkB,CAErE,WAAArM,GAAuB,CAQvB,iBAAOuR,CAAWxK,GAChB8G,EAAQuD,SAAWrK,EACnB9G,KAAKuR,YAASlQ,CAChB,CAQA,gBAAO2P,CAAU7M,GACfU,OAAOC,QAAQX,GAAQnD,QAAQ,EAAEuG,EAAGQ,MACjC/H,KAAKqR,QAAgB9J,GAAKQ,GAE/B,CAOA,gBAAO8F,GACL,OAAO7N,KAAKqR,OACd,CAOA,UAAO5Q,GACL,OAAOT,KAAKwR,YACd,CAUA,cAAOvT,CACLuS,EACAM,EAAoC,EACpCrR,GAEA,OAAOO,KAAKS,MAAMxC,QAAQuS,EAAKM,EAAiBrR,EAClD,CASA,WAAOzB,CAAKwS,EAAiB/Q,GAC3B,OAAOO,KAAKS,MAAMzC,KAAKwS,EAAK/Q,EAC9B,CASA,YAAOtB,CAAMqS,EAAiB/Q,GAC5B,OAAOO,KAAKS,MAAMtC,MAAMqS,EAAK/Q,EAC/B,CASA,YAAOvB,CAAMsS,EAAiB/Q,GAC5B,OAAOO,KAAKS,MAAMvC,MAAMsS,EAAK/Q,EAC/B,CASA,gBAAO9B,CAAU6S,EAAiB/Q,GAChC,OAAOO,KAAKS,MAAM9C,UAAU6S,EAAK/Q,EACnC,CAUA,YAAO7B,CACL4S,EACAG,EACAlR,GAEA,OAAOO,KAAKS,MAAM7C,MAAM4S,EAAKG,EAAGlR,EAClC,CAUA,eAAO5B,CACL2S,EACAG,EACAlR,GAEA,OAAOO,KAAKS,MAAM5C,SAAS2S,EAAKG,EAAGlR,EACrC,CAUA,YAAOrB,CACLoS,EACAM,EAAoC,EACpCrR,GAEA,OAAOO,KAAKS,MAAMrC,MAAMoS,EAAKM,EAAiBrR,EAChD,CASA,WAAO1B,CAAKyS,EAAiB/Q,GAC3B,OAAOO,KAAKS,MAAM1C,KAAKyS,EAAK/Q,EAC9B,CAUA,YAAO3B,CACL0S,EACAG,EACAlR,GAEA,OAAOO,KAAKS,MAAM3C,MAAM0S,EAAKG,EAAGlR,EAClC,CAUA,UAAO,CACL2R,EACAjN,KACGsB,GAEH,MACMgM,OAAsBpQ,IAAX8C,EAAuB,CAACiN,EAAQjN,GAAU,CAACiN,GAC5D,OAFapR,KAAKuR,OAASvR,KAAKuR,OAASvR,KAAKwR,WAAW/L,IAE5CgJ,OAAegD,EAC9B,CASA,cAAOC,CAAQC,EAAgBhT,GAE7B,IAAIiT,EADS5R,KAAKwR,aACC/C,IAAYkD,EAAQ3R,KAAKqR,SAE5C,OADI1S,IAAIiT,EAAUA,EAAOnD,IAAY9P,IAC9BiT,CACT,CAEQ,kBAAOjE,GACb,MAAMpP,EAAMyB,KAAKqR,QAAQ9S,IACzB,MAAsB,iBAARA,GAAoBA,EAAI8D,OAAS,CAAC9D,GAAO,EACzD,CAEQ,wBAAOsT,CAAkBD,GAC/B,MAAM1H,EACH0H,EAAeX,MAAQ1P,MAAM8F,QAASuK,EAAeX,MAClD,IAAKW,EAAeX,MACpBjR,KAAK2N,cASX,QAPIiE,EAAepS,SAChB+B,MAAM8F,QAASuK,EAAepS,UACM,IAAlCoS,EAAepS,QAAQ6C,UAEzBuP,EAAepS,QAAU,IAAI0K,IAE/B0H,EAAepE,GAAuB,IAAItD,GACpC0H,CACT,CAEQ,iBAAOJ,CAAWM,EAAgB,IACxC,IAAK9R,KAAKuR,OAAQ,CAChB,MAAMvH,EAAWhK,KAAKmR,cAAS9P,OAAWA,KAAcyQ,GACxD9R,KAAKuR,OAASvR,KAAK6R,kBAAkB7H,EACvC,CACA,OAAOhK,KAAKuR,MACd,CAmCA,YAAO1R,CACLsC,EACAO,EACAqP,EACAC,EAAkB1T,GAElB,IAAK0B,KAAKqR,QAAQpS,MAAO,OAAOkD,EAoEhC,MAAM8P,EAAkBD,EAAStP,GACjC,IAAKuP,IAAoBpN,OAAOjE,KAAKqR,GAAiB5P,OACpD,OAAOF,EAGT,IAAI+P,EAA2BD,EAE/B,MAAME,EAAYtN,OAAOwH,OAAO,CAAA,EAAI5O,EAAAA,UAKpC,OAJIoH,OAAOjE,KAAKqR,GAAiB,KAAME,IACrCD,EACGD,EAA0CF,IAAgB,CAAA,GAExDlN,OAAOjE,KAAKsR,GAAapM,OAAO,CAACC,EAAazF,KACnD,MAAMyE,EAAOmN,EAA4B5R,GACzC,OAAIyE,EAjFN,EACEqN,EACAC,EACA1P,KAEA,IACE,MAAM2P,EAA2BF,EACjC,IAAIG,EAAItT,EAAAA,MAAMqT,GAEd,SAASE,EACPzN,EACA0N,GAAO,GAEP,IAAIC,EAIoBD,EAAOF,EAAEI,WAAaJ,EAAEK,WAChD,IAAKrR,MAAM8F,QAAQtC,GACjB,OAAQ2N,EAAgDlJ,KACtD+I,EACA5P,GAGJ,OAAQoC,EAAI1C,QACV,KAAK,EAEH,OADAqQ,EAAID,EAAOF,EAAEM,WAAaN,EAAEO,SACpBJ,EAA8C3N,EAAI,IAC5D,KAAK,EAEH,OADA2N,EAAID,EAAOF,EAAEQ,MAAQR,EAAES,IAChBT,EAAES,IAAIjO,EAAI,GAAIA,EAAI,GAAIA,EAAI,IACnC,QAEE,OAAO9F,EAAAA,MAAMqT,GAEnB,CAEA,SAASW,EAAWlL,GAEhBwK,EADe,iBAANxK,EACLwK,EAAEtT,MAAM8I,GAERwK,EAAExK,EAEV,CAEA,OAAQsK,GACN,IAAK,KACL,IAAK,KACH,OAAOG,EAAW7P,GAAiBR,KACrC,IAAK,QAMH,OALIZ,MAAM8F,QAAQ1E,GAChBA,EAAM3B,QAAQiS,GAEdA,EAAWtQ,GAEN4P,EAAEpQ,KACX,QAEE,OAAOmQ,EAGb,CAAE,MAAO3B,GAEP,OAAOyB,CACT,CACF,EAiBWjE,CACLpI,EACAzF,EACAyE,GAOGgB,GACN5D,EACL,CAEA,eAAOhC,CAASC,GACd,OAAOqE,EAAqBtE,SAASC,EACvC,CACA,iBAAOG,CAAWD,GAChB,OAAOmE,EAAqBlE,WAAWD,EACzC,QCliCoB4S,EAQpB,OAAc3C,GAEZ,OADKvQ,KAAKmT,OAAMnT,KAAKmT,KAAOvF,EAAQa,IAAIzO,OACjCA,KAAKmT,IACd,CAEA,WAAApT,GAAyB,ECjBrB,MAAgBqT,UAAkBF,EAMtC,OAAa3C,GACX,OAAOxJ,MAAMwJ,IAAI9B,IAAIzO,KAAa,CAAEX,QAAS,IAC/C,ECeK,MAAMgU,EA1Ba,oBAAf/M,YACgC,mBAAhCA,WAAWgN,aAAaD,IAExB,IAAM/M,WAAWgN,YAAYD,MAIjB,oBAAZ7L,SACoC,mBAAnCA,QAAgB+L,QAAQC,OAEzB,KACL,MAAMC,EAAMjM,QAAgB+L,OAAOC,SACnC,OAAO3L,OAAO4L,GAAM,KAIjB,IAAMrE,KAAKiE,MAuMd,SAAUK,EAASC,GACvB,MAAMC,EAAY,EAALD,EAAS,IAAM,GACtBE,EAAMC,KAAKD,IAAIF,GACfI,EAAQD,KAAKE,MAAMH,EAAM,MACzBI,EAAUH,KAAKE,MAAOH,EAAM,KAAa,KACzCK,EAAUJ,KAAKE,MAAOH,EAAM,IAAU,KACtCM,EAASL,KAAKE,MAAMH,EAAM,KAC1BO,EAAM,CAACvH,EAAWwH,IAAcxH,EAAE3G,WAAWoO,SAASD,EAAG,KAC/D,MAAO,GAAGT,IAAOQ,EAAIL,EAAO,MAAMK,EAAIH,EAAS,MAAMG,EAAIF,EAAS,MAAME,EAAID,EAAQ,IACtF,CC/MM,SAAU5D,EACdnR,EAAkB3B,EAAAA,SAASO,KAC3B+S,EAAY,EACZwD,EAAkC,IAAI9O,IAAgB,eAAeA,EACrE+O,GAEA,MAAO,CAAa3K,EAAa4K,EAAmBrU,KAClD,IAAKA,GAAoC,iBAAfA,EACxB,MAAUwF,MAAM,8CAClB,MAAMgM,EACJ/H,aAAkBqJ,EACdrJ,EAAY,IAAE4E,IAAI5E,EAAO4K,IACzB7G,EAAQa,IAAI5E,GAAQ4E,IAAI5E,EAAO4K,IAC/B1V,EAAS6S,EAAOxS,GAAO6J,KAAK2I,GAC5B8C,EAAiBtU,EAAWuC,MA0BlC,OAxBAvC,EAAWuC,MAAQ,IAAIiH,MAAM8K,EAAgB,CAC3C,KAAAvG,CAAMd,EAAIsH,EAASlP,GACjB1G,EAAOwV,KAAgB9O,GAAOsL,GAC9B,IACE,MAAMjN,EAASkF,QAAQmF,MAAMd,EAAIsH,EAASlP,GAC1C,OAAI3B,aAAkB8Q,QACb9Q,EACJ+Q,KAAMC,IACDN,GAAazV,EAAOyV,OAAYnT,EAAWyT,IACxCA,IAERC,MAAOpE,IAEN,MADI6D,GAAa5C,EAAO9T,MAAM0W,EAAY7D,IACpCA,KAGR6D,GAAazV,EAAOyV,OAAYnT,EAAWyC,IACxCA,EACT,CAAE,MAAOwM,GAEP,MADIkE,GAAa5C,EAAO9T,MAAM0W,EAAYlE,IACpCA,CACR,CACF,IAEKlQ,CACT,CACF,UA4IgB4U,IACd,MAAO,CAACnL,EAAgB4K,EAAmBrU,KACzC,IAAKA,EACH,MAAUwF,MAAM,+CAIlB,OAHIxF,GAAY+G,eACd/G,EAAW+G,cAAe,GAErB/G,EAEX,CClMM,MAAO6U,UAAsB7B,EACjC,WAAArT,CACqBiF,EACAkQ,GAEnBnO,QAHmB/G,KAAAgF,OAAAA,EACAhF,KAAAkV,YAAAA,CAGrB,CASU,KAAAlP,CAAMlH,GACd,MAAMkH,EAAQhG,KAAKgF,OAAOuI,KAAKzO,GAE/B,OADAkB,KAAKgF,OAAOmQ,UAAY,EACjBnP,CACT,CAWA,MAAA4G,CAAOzI,EAAuBrF,EAAiBU,GAC7C,MAAM+Q,EAAMvQ,KAAKuQ,IAAI9B,IAAIzO,KAAK4M,QAE9B,IADc5M,KAAKgG,MAAMlH,GACb,OAAOA,EACnB,IACE,OAAOA,EAAQqG,QAAQnF,KAAKgF,OAAQhF,KAAKkV,YAC3C,CAAE,MAAOvE,GACPJ,EAAIzS,MAAM,oCAAoC6S,EAChD,CACA,MAAO,EACT,EAzBUyE,EAAAA,WAAA,CADTJ,8HAKAC,EAAA1O,UAAA,QAAA,MCrCG,MAAgB8O,UAAkBzP,MAGtC,WAAA7F,CAAsBoN,EAAcqD,EAAqB8E,GACvD,GAAI9E,aAAe6E,EAAW,OAAO7E,EAErCzJ,MADgB,IAAIoG,MAASmI,MAAS9E,aAAe5K,MAAQ4K,EAAI1R,QAAU0R,KAE3ExQ,KAAKsV,KAAOA,EACR9E,aAAe5K,QAAO5F,KAAKpB,MAAQ4R,EAAI5R,MAC7C,CAEA,WAAaE,GACX,MAAO,IAAIkB,KAAKmN,SAASnN,KAAKsV,UAAUvO,MAAMjI,QAAQyW,WAAW,yBAA0B,KAC7F,CAES,QAAArP,GACP,OAAOlG,KAAKlB,OACd,2CCFoB,4IAQM,+JASQ,0EJkClC,WAAAiB,CAAYyV,GAAY,GANhBxV,KAAAyV,SAA0B,KAC1BzV,KAAA0V,WAAa,EACb1V,KAAA2V,UAAW,EACX3V,KAAA4V,MAAe,GACf5V,KAAA6V,gBAAkB,EAGpBL,GAAWxV,KAAK8V,OACtB,CAOA,WAAIC,GACF,OAAO/V,KAAK2V,QACd,CAOA,aAAIK,GACF,OAAKhW,KAAK2V,UAA6B,MAAjB3V,KAAKyV,SACpBzV,KAAK0V,YAAcrC,IAAQrT,KAAKyV,UADazV,KAAK0V,UAE3D,CAOA,KAAAI,GAKE,OAJK9V,KAAK2V,WACR3V,KAAK2V,UAAW,EAChB3V,KAAKyV,SAAWpC,KAEXrT,IACT,CAOA,KAAAiW,GAME,OALIjW,KAAK2V,UAA6B,MAAjB3V,KAAKyV,WACxBzV,KAAK0V,YAAcrC,IAAQrT,KAAKyV,SAChCzV,KAAKyV,SAAW,KAChBzV,KAAK2V,UAAW,GAEX3V,IACT,CAOA,MAAAkW,GAKE,OAJKlW,KAAK2V,WACR3V,KAAK2V,UAAW,EAChB3V,KAAKyV,SAAWpC,KAEXrT,IACT,CAOA,IAAAmW,GAEE,OADAnW,KAAKiW,QACEjW,KAAK0V,UACd,CAOA,KAAAU,GACE,MAAMC,EAAarW,KAAK2V,SAKxB,OAJA3V,KAAKyV,SAAWY,EAAahD,IAAQ,KACrCrT,KAAK0V,WAAa,EAClB1V,KAAK4V,MAAQ,GACb5V,KAAK6V,gBAAkB,EAChB7V,IACT,CAQA,GAAAsW,CAAIC,GACF,MAAMC,EAAQxW,KAAKgW,UACbrC,EAAK6C,EAAQxW,KAAK6V,gBAClBS,EAAW,CACflU,MAAOpC,KAAK4V,MAAMvT,OAClBkU,QACA5C,KACA8C,QAASD,GAIX,OAFAxW,KAAK4V,MAAMnT,KAAK6T,GAChBtW,KAAK6V,gBAAkBW,EAChBF,CACT,CAMA,QAAII,GACF,OAAO1W,KAAK4V,KACd,CAOA,QAAA1P,GACE,OAAOwN,EAAS1T,KAAKgW,UACvB,CAOA,MAAAW,GACE,MAAO,CACLZ,QAAS/V,KAAK2V,SACdK,UAAWhW,KAAKgW,UAChBU,KAAM1W,KAAK4V,MAAM/S,QAErB,aIlM6B,8BHkFtB,CAAmBgH,EAAa4K,EAAmBrU,KACxD,IAAKA,GAAoC,iBAAfA,EACxB,MAAUwF,MAAM,gDAClB,MAAMgM,EACJ/H,aAAkBqJ,EACdrJ,EAAY,IAAE4E,IAAI5E,EAAO4K,IACzB7G,EAAQa,IAAI5E,GAAQ4E,IAAI5E,EAAO4K,IAC/BC,EAAiBtU,EAAWuC,MA2BlC,OAzBAvC,EAAWuC,MAAQ,IAAIiH,MAAM8K,EAAgB,CAC3C,KAAAvG,CAAMd,EAAIsH,EAASlP,GACjB,MAAMqQ,EAAQzC,IACd,IACE,MAAMvP,EAASkF,QAAQmF,MAAMd,EAAIsH,EAASlP,GAC1C,OAAI3B,aAAkB8Q,QACb9Q,EACJ+Q,KAAMC,IACLlD,EAAOjU,UAAU,gBAAgB0V,IAAQyC,OAClChB,IAERC,MAAOpE,IAEN,MADAiB,EAAOjU,UAAU,aAAa0V,IAAQyC,OAChCnF,KAGZiB,EAAOjU,UAAU,gBAAgB0V,IAAQyC,OAClChS,EACT,CAAE,MAAOwM,GAEP,MADAsB,EAAOjU,UAAU,aAAa0V,IAAQyC,OAChCxF,CACR,CACF,IAGKlQ,CACT,oCAWOmQ,EACL9S,EAAAA,SAASS,MACT,EACA,IAAIuH,IAAgB,eAAeA,EACnC,CAACkL,EAAW7M,IACV6M,EACI,gBAAgBA,EAChB7M,EACE,kBAAkBoM,KAAKC,UAAUrM,GACjC,kFAYHyM,EAAI9S,EAAAA,SAASO,6HRnKhB,CACJ4Y,EACAvU,EACAC,EAAe,OAEf,GAAoB,IAAhBA,EAAKD,OACP,MAAUuD,MAAM,sDAClB,OAAOgR,EAAIC,OAAOxU,EAAQC,EAC5B,sBAuBM,CACJe,EACAsB,EACA7B,EAAiBtF,EAA2B,GAC5CuF,EAAiBvF,EAA2B,GAC5CoH,EAAgB,MASTF,EAAYrB,EAPEwB,OAAOC,QAAQH,GAAQmB,OAC1C,CAACC,GAA2BzF,EAAKyE,MAC/BgB,EAAI,GAAGjD,IAASxC,IAAMyC,KAAYgC,EAC3BgB,GAET,CAAA,GAEsCnB,wDQiIjC2L,EAAI9S,EAAAA,SAASW,sCRhGM+D,GACnBA,EACJgD,QAAQ,sBAAuB,CAAC2R,EAAM1U,IAC3B,IAAVA,EAAc0U,EAAKxR,cAAgBwR,EAAK1S,eAEzCe,QAAQ,OAAQ,kCAsCOhD,GACnBA,EACJgD,QAAQ,kBAAmB,SAC3BA,QAAQ,UAAW,KACnBG,6BAWwBnD,GACpBA,EACJgD,QAAQ,sBAAwB2R,GAASA,EAAK1S,eAC9Ce,QAAQ,OAAQ,gCQ8CZoL,EAAI9S,EAAAA,SAASU,iBAWhB,CAAkB4S,EAA8B,KAC/CA,IACHA,EAAY,GAEPR,EAAI9S,EAAAA,SAASQ,QAAS8S"}
|
|
1
|
+
{"version":3,"file":"logging.cjs","sources":["../src/constants.ts","../src/logParameters.ts","../src/text.ts","../src/web.ts","../src/environment.ts","../src/utils.ts","../src/logging.ts","../src/LoggedClass.ts","../src/filters/LogFilter.ts","../src/time.ts","../src/decorators.ts","../src/filters/PatternFilter.ts","../src/errors.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["BrowserEnvKey","ENV_PATH_DELIMITER","DefaultPlaceholderWrappers","LogLevel","NumericLogLevels","benchmark","fatal","critical","error","warn","info","verbose","debug","trace","silly","LoggingMode","DefaultTheme","app","separator","class","fg","id","stack","timestamp","message","method","action","style","logLevel","DefaultLoggingConfig","env","level","filters","contextSeparator","timestampFormat","context","meta","format","RAW","pattern","theme","LogParameterRegistry","constructor","this","descriptors","Map","register","descriptor","set","key","unregister","delete","get","render","payload","keys","rendered","seen","Set","forEach","has","add","shouldInclude","raw","undefined","styled","Array","from","patternCache","compileLogPattern","segments","parsePatternSegments","orderedKeys","collectPatternKeys","definition","includesMeta","renderPattern","renderPatternSegments","text","index","length","char","closingIndex","findClosingBracket","push","type","value","inner","slice","prefix","suffix","children","indexOf","trim","literalEnd","literal","input","startIndex","open","close","depth","idx","segment","buffer","hasValue","result","renderSegment","join","childResult","registry","actionCode","config","toUpperCase","applyTheme","filteredMessage","metaString","correlationId","String","errorCode","errorName","logParameterRegistry","patchString","values","flags","Object","entries","val","regexp","RegExp","escapeRegExp","replace","toENVFormat","toSnakeCase","toLowerCase","string","sf","args","every","arg","Error","obj","reduce","acc","match","number","toString","stringFormat","isBrowser","getPrototypeOf","globalThis","prototype","EmptyValue","Symbol","ModelSymbol","camelCasePattern","Environment","ObjectAccumulator","factory","super","defineProperty","writable","enumerable","configurable","isProxyableObject","isArray","fromEnv","k","process","parseEnvValue","parseRuntimeValue","trimmed","test","Number","expand","v","mergeModel","buildEnvProxy","orThrow","modelRoot","parseRuntime","missing","empty","missingEnvError","createNestedProxy","model","path","handler","_target","prop","toPrimitive","buildEnvKey","Reflect","bind","nextPath","envKey","runtimeRaw","readRuntimeForPath","runtimeValue","hasOwnProperty","call","modelValue","ownKeys","getOwnPropertyDescriptor","Proxy","target","receiver","actual","instance","_instance","base","proxied","accumulate","desc","formatEnvSegment","map","buildRawKey","formattedKey","rawKey","runtimeFormatted","readRuntimeEnv","runtimeEnv","getRuntimeChildKeys","prefixes","childKeys","fullPrefix","startsWith","childKey","split","hasRuntimePath","current","readEnv","arrayIndexPattern","composedKey","envValue","hasProp","nextModel","hasRuntimeDescendant","isArrayIndex","_t","p","toEnv","existing","childValue","LoggedEnvironment","assign","isClass","src","Function","protoDesc","proto","getOwnPropertyNames","filter","n","isFunction","isMethod","isInstance","ctor","getObjectName","name","toStringFn","fn","tag","exec","ROOT_CONTEXT_SYMBOL","MiniLogger","conf","baseContext","Logging","getConfig","contextName","childConfig","parentContext","rootCandidate","contextSegments","apply","_thisArg","argArray","innerArgs","first","originalContext","for","snapshot","getConfigSnapshot","getContextSegments","resolveFilters","candidate","entry","applyFilters","next","createLog","styleEnabled","Date","toISOString","configSnapshot","rawMessage","metaPayload","formatMeta","filteredMetaString","correlationIdValue","stackLabel","candidateCode","code","candidateName","configuredPattern","defaultPattern","jsonValues","logEntry","JSON","stringify","generated","normalizePatternSpacing","err","log","msg","confLvl","console","rest","logAction","e","errorCandidate","payloadMeta","verbosityOrMeta","verbosity","setConfig","root","clear","_factory","object","_config","setFactory","global","ensureRoot","callArgs","because","reason","logger","attachRootContext","extras","loggerLevel","template","individualTheme","actualTheme","logLevels","txt","option","t","c","applyColor","isBg","f","background","foreground","bgColor256","color256","bgRgb","rgb","applyStyle","LoggedClass","_log","LogFilter","now","performance","hrtime","bigint","ns","formatMs","ms","sign","abs","Math","hours","floor","minutes","seconds","millis","pad","w","padStart","entryMessage","exitMessage","propertyKey","originalMethod","thisArg","Promise","then","r","catch","final","PatternFilter","replacement","lastIndex","__decorate","BaseError","replaceAll","autoStart","_startMs","_elapsedMs","_running","_laps","_lastLapTotalMs","start","running","elapsedMs","pause","resume","stop","reset","wasRunning","lap","label","total","totalMs","laps","toJSON","str","padEnd","word"],"mappings":"gDAQO,MAAMA,EAAgB,MAQhBC,EAAqB,KAQrBC,EAA6B,CAAC,KAAM,KASjD,IAAYC,EAAAA,EAAAA,cAAAA,GAAAA,EAAAA,EAAAA,WAAAA,WAAQ,CAAA,IAElB,UAAA,YAEAA,EAAA,MAAA,QAEAA,EAAA,SAAA,WAEAA,EAAA,MAAA,QAEAA,EAAA,KAAA,OAEAA,EAAA,KAAA,OAEAA,EAAA,QAAA,UAEAA,EAAA,MAAA,QAEAA,EAAA,MAAA,QAEAA,EAAA,MAAA,QA0BK,MAAMC,EAAmB,CAC9BC,UAAW,EACXC,MAAO,EACPC,SAAU,EACVC,MAAO,EACPC,KAAM,EACNC,KAAM,EACNC,QAAS,GACTC,MAAO,GACPC,MAAO,GACPC,MAAO,IAUT,IAAYC,EAAAA,EAAAA,iBAAAA,GAAAA,EAAAA,EAAAA,cAAAA,cAAW,CAAA,IAErB,IAAA,MAEAA,EAAA,KAAA,OASK,MAAMC,EAAsB,CACjCC,IAAK,CAAA,EACLC,UAAW,CAAA,EACXC,MAAO,CACLC,GAAI,IAENC,GAAI,CACFD,GAAI,IAENE,MAAO,CAAA,EACPC,UAAW,CAAA,EACXC,QAAS,CACPhB,MAAO,CACLY,GAAI,KAGRK,OAAQ,CAAA,EACRC,OAAQ,CACNN,GAAI,CAAC,IACLO,MAAO,CAAC,EAAG,IAEbC,SAAU,CACRvB,UAAW,CACTe,GAAI,GACJO,MAAO,CAAC,SAEVrB,MAAO,CACLc,GAAI,GACJO,MAAO,CAAC,SAEVpB,SAAU,CACRa,GAAI,GACJO,MAAO,CAAC,SAEVnB,MAAO,CACLY,GAAI,GACJO,MAAO,CAAC,SAEVjB,KAAM,CACJU,GAAI,GACJO,MAAO,CAAC,SAEVhB,QAAS,CACPS,GAAI,GACJO,MAAO,CAAC,SAEVf,MAAO,CACLQ,GAAI,GACJO,MAAO,CAAC,SAEVd,MAAO,CACLO,GAAI,GACJO,MAAO,CAAC,SAEVb,MAAO,CACLM,GAAI,GACJO,MAAO,CAAC,WAWDE,EAAsC,CACjDC,IAAK,cACLnB,QAAS,EACToB,MAAO5B,EAAAA,SAASO,KAChBkB,UAAU,EACVD,OAAO,EACPK,QAAS,GACTC,iBAAkB,IAClBf,UAAW,IACXK,WAAW,EACXW,gBAAiB,eACjBC,SAAS,EACTC,MAAM,EACNC,OAAQtB,EAAAA,YAAYuB,IACpBC,QACE,sEACFC,MAAOxB,SCvIIyB,EAAb,WAAAC,GACmBC,KAAAC,YAAc,IAAIC,GAsCrC,CApCE,QAAAC,CAASC,GAEP,OADAJ,KAAKC,YAAYI,IAAID,EAAWE,IAAKF,GAC9BJ,IACT,CAEA,UAAAO,CAAWD,GAET,OADAN,KAAKC,YAAYO,OAAOF,GACjBN,IACT,CAEA,GAAAS,CAAIH,GACF,OAAON,KAAKC,YAAYQ,IAAIH,EAC9B,CAEA,MAAAI,CAAOC,EAA8BC,GACnC,MAAMC,EAAmC,CAAA,EACnCC,EAAO,IAAIC,IAcjB,OAbAH,EAAKI,QAASV,IACZ,GAAIQ,EAAKG,IAAIX,GAAM,OACnBQ,EAAKI,IAAIZ,GACT,MAAMF,EAAaJ,KAAKC,YAAYQ,IAAIH,GACxC,IAAKF,EAAY,OACjB,GAAIA,EAAWe,gBAAkBf,EAAWe,cAAcR,GACxD,OAEF,MAAMS,EAAMhB,EAAWM,OAAOC,GAC9B,QAAYU,IAARD,EAAmB,OACvB,MAAME,EAASlB,EAAWpB,MAAQoB,EAAWpB,MAAMoC,EAAKT,GAAWS,EACnEP,EAASP,GAAOgB,IAEXT,CACT,CAEA,IAAAD,GACE,OAAOW,MAAMC,KAAKxB,KAAKC,YAAYW,OACrC,EAGF,MAAMa,EAAe,IAAIvB,IAEnB,SAAUwB,EAAkB9B,GAChC,GAAI6B,EAAaR,IAAIrB,GACnB,OAAO6B,EAAahB,IAAIb,GAE1B,MAAM+B,EAAWC,EAAqBhC,GAAW,IAC3CkB,EAAO,IAAIC,IACXc,EAAwB,GAC9BC,EAAmBH,EAAUb,EAAMe,GACnC,MAAME,EAAmC,CACvCnC,UACA+B,WACAf,KAAMiB,EACNG,aAAclB,EAAKG,IAAI,SAGzB,OADAQ,EAAapB,IAAIT,EAASmC,GACnBA,CACT,CAEM,SAAUE,EACdF,EACAlB,GAEA,OAAOqB,EAAsBH,EAAWJ,SAAUd,GAAUsB,IAC9D,CAEA,SAASP,EAAqBhC,GAC5B,MAAM+B,EAAgC,GACtC,IAAIS,EAAQ,EACZ,KAAOA,EAAQxC,EAAQyC,QAAQ,CAC7B,MAAMC,EAAO1C,EAAQwC,GACrB,GAAa,MAATE,EAAc,CAChB,MAAMC,EAAeC,EAAmB5C,EAASwC,EAAO,IAAK,KAC7D,IAAqB,IAAjBG,EAAqB,CACvBZ,EAASc,KAAK,CAAEC,KAAM,UAAWC,MAAO,MACxCP,IACA,QACF,CACA,MAAMQ,EAAQhD,EAAQiD,MAAMT,EAAQ,EAAGG,GACvCZ,EAASc,KAAK,CACZC,KAAM,WACNI,OAAQ,IACRC,OAAQ,IACRC,SAAUpB,EAAqBgB,KAEjCR,EAAQG,EAAe,EACvB,QACF,CACA,GAAa,MAATD,EAAc,CAChB,MAAMC,EAAe3C,EAAQqD,QAAQ,IAAKb,EAAQ,GAClD,IAAqB,IAAjBG,EAAqB,CACvBZ,EAASc,KAAK,CAAEC,KAAM,UAAWC,MAAO,MACxCP,IACA,QACF,CACA,MAAM9B,EAAMV,EAAQiD,MAAMT,EAAQ,EAAGG,GAAcW,OACnDvB,EAASc,KAAK,CAAEC,KAAM,YAAapC,QACnC8B,EAAQG,EAAe,EACvB,QACF,CACA,IAAIY,EAAaf,EACjB,KACEe,EAAavD,EAAQyC,QACG,MAAxBzC,EAAQuD,IACgB,MAAxBvD,EAAQuD,IAERA,IAEF,MAAMC,EAAUxD,EAAQiD,MAAMT,EAAOe,GACjCC,EAAQf,QACVV,EAASc,KAAK,CAAEC,KAAM,UAAWC,MAAOS,IAE1ChB,EAAQe,CACV,CACA,OAAOxB,CACT,CAEA,SAASa,EACPa,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAQ,EACZ,IAAK,IAAIC,EAAMJ,EAAYI,EAAML,EAAMhB,OAAQqB,IAAO,CACpD,MAAMpB,EAAOe,EAAMK,GACnB,GAAIpB,IAASiB,EACXE,SACK,GAAInB,IAASkB,IAClBC,IACc,IAAVA,GAAa,OAAOC,CAE5B,CACA,OAAO,CACT,CAEA,SAAS5B,EACPH,EACAb,EACAe,GAEA,IAAK,MAAM8B,KAAWhC,EACC,cAAjBgC,EAAQjB,OACL5B,EAAKG,IAAI0C,EAAQrD,OACpBQ,EAAKI,IAAIyC,EAAQrD,KACjBuB,EAAYY,KAAKkB,EAAQrD,OAGR,aAAjBqD,EAAQjB,MACVZ,EAAmB6B,EAAQX,SAAUlC,EAAMe,EAGjD,CAOA,SAASK,EACPP,EACAd,GAEA,MAAM+C,EAAmB,GACzB,IAAIC,GAAW,EACf,IAAK,MAAMF,KAAWhC,EAAU,CAC9B,MAAMmC,EAASC,EAAcJ,EAAS9C,GAClCiD,EAAO3B,KAAKE,QACduB,EAAOnB,KAAKqB,EAAO3B,MAErB0B,EAAWA,GAAYC,EAAOD,QAChC,CACA,MAAO,CAAE1B,KAAMyB,EAAOI,KAAK,IAAKH,WAClC,CAEA,SAASE,EACPJ,EACA9C,GAEA,GAAqB,YAAjB8C,EAAQjB,KACV,MAAO,CAAEP,KAAMwB,EAAQhB,MAAOkB,UAAU,GAE1C,GAAqB,cAAjBF,EAAQjB,KAAsB,CAChC,MAAMC,EAAQ9B,EAAS8C,EAAQrD,MAAQ,GACvC,MAAO,CAAE6B,KAAMQ,EAAOkB,SAAUlB,EAAMN,OAAS,EACjD,CACA,MAAM4B,EAAc/B,EAAsByB,EAAQX,SAAUnC,GAC5D,OAAKoD,EAAYJ,SAGV,CACL1B,KAAM,GAAGwB,EAAQb,SAASmB,EAAY9B,OAAOwB,EAAQZ,SACrDc,UAAU,GAJH,CAAE1B,KAAM,GAAI0B,UAAU,EAMjC,CAEA,MAAMK,EAAW,IAAIpE,EAGnBoE,EACG/D,SAAS,CACRG,IAAK,QACLI,OAAOC,QACkBU,IAAnBV,EAAQ5B,YACoBsC,IAAvBV,EAAQwD,WACX,GAAGxD,EAAQ5B,YAAY4B,EAAQwD,aAC/BxD,EAAQ5B,QAEkB,IAA5B4B,EAAQyD,OAAOnF,SACZ0B,EAAQvB,MAAMiF,mBADrB,EAGFrF,MAAK,CAAC6B,EAAUF,SACSU,IAAnBV,EAAQ5B,OACH4B,EAAQ2D,WAAWzD,EAAU,UAE/BF,EAAQ2D,WAAWzD,EAAU,cAGvCV,SAAS,CACRG,IAAK,YACLa,cAAcR,MACGA,EAAQyD,OAAOxF,YAAa+B,EAAQ/B,WAErD8B,OAAOC,GACEA,EAAQ/B,UAEjBI,MAAK,CAAC6B,EAAUF,IACPA,EAAQ2D,WAAWzD,EAAU,eAGvCV,SAAS,CACRG,IAAK,MACLa,cAAcR,KACGA,EAAQrC,IAEzBoC,OAAOC,GACEA,EAAQrC,IAEjBU,MAAK,CAAC6B,EAAUF,IACPA,EAAQ2D,WAAWzD,EAAU,SAGvCV,SAAS,CACRG,IAAK,UACLa,cAAcR,IACsB,IAA3BA,EAAQyD,OAAO5E,SAAqBmB,EAAQnB,QAAQ6C,OAAS,EAEtE,MAAA3B,CAAOC,GACL,MAAMpC,EAAYoC,EAAQyD,OAAO9E,kBAAoB,IACrD,OAAOqB,EAAQnB,QAAQwE,KAAKzF,EAC9B,EACAS,MAAK,CAAC6B,EAAUF,IACPA,EAAQ2D,WAAWzD,EAAU,WAGvCV,SAAS,CACRG,IAAK,YACLa,cAAcR,KACGA,EAAQpC,UAEzBmC,OAAOC,GACEA,EAAQpC,UAEjBS,MAAK,CAAC6B,EAAUF,IACPA,EAAQ2D,WAAWzD,EAAU,eAGvCV,SAAS,CACRG,IAAK,UACLI,OAAOC,GACEA,EAAQ4D,gBAEjBvF,MAAK,CAAC6B,EAAUF,IACPA,EAAQ2D,WAAWzD,EAAU,aAGvCV,SAAS,CACRG,IAAK,QACLa,cAAcR,KACGA,EAAQhC,MAEzB+B,OAAOC,GACEA,EAAQhC,MAEjBK,MAAK,CAAC6B,EAAUF,IACPA,EAAQ2D,WAAWzD,EAAU,WAGvCV,SAAS,CACRG,IAAK,OACLa,cAAcR,KACGA,EAAQ6D,WAEzB9D,OAAOC,GACEA,EAAQ6D,aAGlBrE,SAAS,CACRG,IAAK,gBACLa,cAAcR,KACGA,EAAQ8D,cAEzB/D,OAAOC,GACEA,EAAQ8D,cAEjBzF,MAAK,CAAC6B,EAAUF,IACPA,EAAQ2D,WAAWzD,EAAU,QAGvCV,SAAS,CACRG,IAAK,SACLa,cAAcR,QACcU,IAAnBV,EAAQ5B,OAEjB2B,OAAOC,GACEA,EAAQ5B,OAEjBC,MAAK,CAAC6B,EAAUF,IACPA,EAAQ2D,WAAWzD,EAAU,YAGvCV,SAAS,CACRG,IAAK,aACLa,cAAcR,QACkBU,IAAvBV,EAAQwD,WAEjBzD,OAAOC,QACyBU,IAAvBV,EAAQwD,gBACX9C,EACOV,EAAQwD,WAAfO,GAEN1F,MAAK,CAAC6B,EAAUF,IACPA,EAAQ2D,WAAWzD,EAAU,YAGvCV,SAAS,CACRG,IAAK,YACLa,cAAcR,QACiBU,IAAtBV,EAAQgE,UAEjBjE,OAAOC,QACwBU,IAAtBV,EAAQgE,eACXtD,EACOV,EAAQgE,UAAfD,KAGPvE,SAAS,CACRG,IAAK,YACLa,cAAcR,QACiBU,IAAtBV,EAAQiE,UAEjBlE,OAAOC,GACEA,EAAQiE,YAOhB,MAAMC,EAAuBX,EC9V9B,SAAUY,EACdzB,EACA0B,EACAC,EAAgB,KAMhB,OAJAC,OAAOC,QAAQH,GAAQ/D,QAAQ,EAAEV,EAAK6E,MACpC,MAAMC,EAAaC,OAAOC,EAAahF,GAAM0E,GAC7C3B,EAAQA,EAAMkC,QAAQH,EAAQD,KAEzB9B,CACT,CA0BM,SAAUmC,EAAYrD,GAC1B,OAAOsD,EAAYtD,GAAMkC,aAC3B,CAUM,SAAUoB,EAAYtD,GAC1B,OAAOA,EACJoD,QAAQ,oBAAqB,SAC7BA,QAAQ,UAAW,KACnBG,aACL,CAuCM,SAAUJ,EAAaK,GAC3B,OAAOA,EAAOJ,QAAQ,sBAAuB,OAC/C,UAWgBK,EACdD,KACGE,GAEH,GAAIA,EAAKxD,OAAS,IAEbwD,EAAKC,MAAOC,GAAuB,iBAARA,GAAmC,iBAARA,GAEvD,MAAUC,MACR,6EAIN,GAAoB,IAAhBH,EAAKxD,QAAmC,iBAAZwD,EAAK,GAAiB,CACpD,MAAMI,EAAMJ,EAAK,GACjB,OAAOZ,OAAOC,QAAQe,GAAKC,OAAO,CAACC,GAAM7F,EAAK6E,KACrCgB,EAAIZ,QAAYF,OAAO,MAAM/E,OAAU,KAAM,IAC3C6E,GAERQ,EACL,CAEA,OAAOA,EAAOJ,QAAQ,WAAY,CAAUa,EAAOC,SAClB,IAAjBR,EAAKQ,GACfR,EAAKQ,GAAQC,WACb,YAER,CAUO,MAAMC,EAAeX,WC9MZY,IACd,OACEvB,OAAOwB,eAAexB,OAAOwB,eAAeC,eAC5CzB,OAAO0B,SAEX,CCoDA,MAAMC,EAAaC,OAAO,oBACpBC,EAAcD,OAAO,oBAErBE,EAAmB,sBAEnB,MAAOC,UAAsCC,EAAAA,yBAQhCjH,KAAAkH,QACf,IAAwB,IAAIF,CAAc,CAU5C,WAAAjH,GACEoH,QACAlC,OAAOmC,eAAepH,KAAM8G,EAAa,CACvCnE,MAAO,CAAA,EACP0E,UAAU,EACVC,YAAY,EACZC,cAAc,GAElB,CAEQ,wBAAOC,CAAkB7E,GAC/B,IAAKA,GAA0B,iBAAVA,EAAoB,OAAO,EAChD,GAAIpB,MAAMkG,QAAQ9E,GAAQ,OAAO,EACjC,MAAMgE,EAAY1B,OAAOwB,eAAe9D,GACxC,OAAOgE,IAAc1B,OAAO0B,WAA2B,OAAdA,CAC3C,CAQU,OAAAe,CAAQC,GAChB,IAAIxI,EAYJ,OAXIqH,IACFrH,EAEIuH,WAGArJ,IAAkB,CAAA,GAEtB8B,EAAMuH,WAAWkB,QAAQzI,IACzBwI,EAAInC,EAAYmC,IAEX3H,KAAK6H,cAAc1I,EAAIwI,GAChC,CAQU,aAAAE,CAAc1C,GACtB,OAAO6B,EAAYc,kBAAkB3C,EACvC,CAEQ,wBAAO2C,CAAkB3C,GAC/B,GAAmB,iBAARA,EAAkB,OAAOA,EACpC,GAAY,SAARA,EAAgB,OAAO,EAC3B,GAAY,UAARA,EAAiB,OAAO,EAC5B,MAAM4C,EAAU5C,EAAIjC,OACpB,MAAI,kBAAkB8E,KAAKD,GAClBE,OAAOF,GAET5C,CACT,CASmB,MAAA+C,CAAyBvF,GAC1CsC,OAAOC,QAAQvC,GAAO3B,QAAQ,EAAE2G,EAAGQ,MACjCnB,EAAYoB,WAAYpI,KAAa8G,GAAca,EAAGQ,GACtDlD,OAAOmC,eAAepH,KAAM2H,EAAG,CAC7BlH,IAAK,KACH,MAAMiH,EAAU1H,KAAK0H,QAAQC,GAC7B,YAAuB,IAAZD,EAAgCA,EACvCS,GAAkB,iBAANA,EACenB,EAAYqB,cAAcF,EAAU,CAACR,IAI1D,KAANQ,EACKvB,EAEFuB,GAET9H,IAAM8E,IACJgD,EAAIhD,GAENoC,cAAc,EACdD,YAAY,KAGlB,CAOA,OAAAgB,GAEE,MACMC,EADOvI,KACmB8G,GAC1B0B,EAAgBpH,QACL,IAARA,EAAsBpB,KAAK6H,cAAczG,QAAOC,EAEnDoH,EAAU,CAACnI,EAAaoI,GAAiB,IAC7C1B,EAAY2B,gBAAgBrI,EAAKoI,GAE7BE,EAAoB,CAACC,EAAYC,KACrC,MAAMC,EAA6B,CACjC,GAAAtI,CAAIuI,EAASC,GAGX,GAAIA,IAASpC,OAAOqC,YAClB,MAAO,IAAMlC,EAAYmC,YAAYL,GACvC,GAAa,aAATG,EACF,MAAO,IAAMjC,EAAYmC,YAAYL,GACvC,GAAa,YAATG,EACF,MAAO,IAAMjC,EAAYmC,YAAYL,GACvC,GAAoB,iBAATG,EAAmB,OAK9B,GAAa,WAATA,EAAmB,OACvB,GAAa,SAATA,EAAiB,OACrB,GAAa,gBAATA,EAAwB,OAAOhE,OACnC,GAAI1D,MAAMkG,QAAQoB,IAAmB,WAATI,EAAmB,OAAOJ,EAAMxG,OAC5D,GAAId,MAAMkG,QAAQoB,IAAUI,KAAQ1H,MAAMoF,UAAW,CACnD,MAAMhE,EAAQyG,QAAQ3I,IAAIoI,EAAOI,EAAMJ,GACvC,MAAwB,mBAAVlG,EAAuBA,EAAM0G,KAAKR,GAASlG,CAC3D,CACA,MAAM2G,EAAW,IAAIR,EAAMG,IACnB3I,IAAKiJ,EAAQ5G,MAAO6G,GAC1BxC,EAAYyC,mBAAmBH,GACjC,GAA0B,iBAAfE,GAAiD,IAAtBA,EAAWnH,OAC/C,MAAMoG,EAAQc,GAAQ,GACxB,MAAMG,EAAelB,EAAagB,GAClC,QAA4B,IAAjBE,EAA8B,CACvC,GAA4B,iBAAjBA,GAAqD,IAAxBA,EAAarH,OACnD,MAAMoG,EAAQc,GAAQ,GACxB,OAAOG,CACT,CAIA,IADEb,IAAS5D,OAAO0B,UAAUgD,eAAeC,KAAKf,EAAOI,GACzC,MAAMR,EAAQc,GAE5B,MAAMM,EAAahB,EAAMI,GACzB,QAA0B,IAAfY,EAAX,CACA,GAAmB,KAAfA,EAAmB,MAAMpB,EAAQc,GAErC,OAAIvC,EAAYQ,kBAAkBqC,GACzBjB,EAAkBiB,EAAYP,GAGhCO,CAPgD,CAQzD,EACAC,QAAO,IACEjB,EAAQO,QAAQU,QAAQjB,GAAS,GAE1C,wBAAAkB,CAAyBf,EAASC,GAChC,GAAKJ,EACL,OAAI5D,OAAO0B,UAAUgD,eAAeC,KAAKf,EAAOI,GACvC,CACL3B,YAAY,EACZC,cAAc,QAHlB,CAOF,GAGF,OAAO,IAAIyC,MADIzI,MAAMkG,QAAQoB,GAAS,GAAK,CAAA,EAClBE,IAwC3B,OAAO,IAAIiB,MAjHEhK,KA4EsB,CACjC,GAAAS,CAAIwJ,EAAQhB,EAAMiB,GAChB,GAAoB,iBAATjB,EACT,OAAOG,QAAQ3I,IAAIwJ,EAAQhB,EAAMiB,GAKnC,IAJqBjF,OAAO0B,UAAUgD,eAAeC,KACnDrB,EACAU,GAEiB,OAAOG,QAAQ3I,IAAIwJ,EAAQhB,EAAMiB,GAEpD,MAAQ5J,IAAKiJ,EAAQ5G,MAAO6G,GAC1BxC,EAAYyC,mBAAmB,CAACR,IAClC,GAA0B,iBAAfO,GAAiD,IAAtBA,EAAWnH,OAC/C,MAAMoG,EAAQc,GAAQ,GACxB,MAAMG,EAAelB,EAAagB,GAClC,QAA4B,IAAjBE,EAA8B,CACvC,GAA4B,iBAAjBA,GAAqD,IAAxBA,EAAarH,OACnD,MAAMoG,EAAQc,GAAQ,GACxB,OAAOG,CACT,CAEA,MAAMG,EAAatB,EAAUU,GAC7B,GAAIjC,EAAYQ,kBAAkBqC,GAChC,OAAOjB,EAAkBiB,EAAY,CAACZ,IAGxC,QAA0B,IAAfY,EACT,OAAOT,QAAQ3I,IAAIwJ,EAAQhB,EAAMiB,GAEnC,MAAMC,EAASf,QAAQ3I,IAAIwJ,EAAQhB,GACnC,QAAsB,IAAXkB,GAAqC,KAAXA,EACnC,MAAM1B,EAAQc,EAAmB,KAAXY,GAExB,OAAOA,CACT,GAIJ,CAWU,eAAOC,IAAwCvE,GACvD,IAAKmB,EAAYqD,UAAW,CAC1B,MAAMC,EAAOtD,EAAYE,WAAWrB,GAC9B0E,EAAU,IAAIP,MAAMM,EAAa,CACrC,GAAA7J,CAAIwJ,EAAQhB,EAAMiB,GAChB,MAAMvH,EAAQyG,QAAQ3I,IAAIwJ,EAAQhB,EAAMiB,GACxC,GAAIvH,IAAUiE,IAGI,iBAATqC,IACPhE,OAAO0B,UAAUgD,eAAeC,KAAKK,EAAQhB,SAExB,IAAVtG,GAJb,CAMA,QAAqB,IAAVA,EAAuB,OAAOA,EACzC,GAAoB,iBAATsG,EAAmB,CAE5B,GAAa,QAATA,EAAgB,OACpB,OAAOjC,EAAYqB,mBAAchH,EAAW,CAAC4H,GAC/C,CACA,OAAOtG,CAPP,CAQF,IAEFqE,EAAYqD,UAAYE,CAC1B,CACA,OAAOvD,EAAYqD,SACrB,CAKgB,UAAAG,CACd7H,GAIA,OADAwE,MAAMqD,WAAW7H,GACV3C,IAIT,CAUA,iBAAOwK,CAA6B7H,GAClC,MAAMyH,EAAWpD,EAAYoD,WAgB7B,OAfAnF,OAAOrE,KAAKwJ,GAAiBpJ,QAASV,IACpC,MAAMmK,EAAOxF,OAAO8E,yBAAyBK,EAAiB9J,GAC1DmK,GAAQA,EAAKlD,cAAgBkD,EAAKnD,YACpCrC,OAAOmC,eAAegD,EAAiB9J,EAAK,IACvCmK,EACHnD,YAAY,MAOlB8C,EAASI,WAAW7H,GAGbyH,CACT,CAQA,UAAO3J,CAAIH,GACT,OAAO0G,EAAYqD,UAAU5J,IAAIH,EACnC,CAEQ,uBAAOoK,CAAiB/G,GAC9B,OAAOoD,EAAiBiB,KAAKrE,GACzB6B,EAAY7B,GACZA,EAAQU,aACd,CAEQ,kBAAO8E,CAAYL,GACzB,OAAOA,EACJ6B,IAAKhH,GAAYqD,EAAY0D,iBAAiB/G,IAC9CK,KAAK1G,EACV,CAEQ,kBAAOsN,CAAY9B,GACzB,OAAOA,EAAK9E,KAAK1G,EACnB,CAEQ,yBAAOmM,CAAmBX,GAChC,MAAM+B,EAAe7D,EAAYmC,YAAYL,GACvCgC,EAAS9D,EAAY4D,YAAY9B,GACjCiC,EAAmB/D,EAAYgE,eAAeH,GACpD,QAAgC,IAArBE,EACT,MAAO,CAAEzK,IAAKuK,EAAclI,MAAOoI,GAErC,GAAID,IAAWD,EAAc,CAC3B,MAAMrB,EAAaxC,EAAYgE,eAAeF,GAC9C,QAA0B,IAAftB,EACT,MAAO,CAAElJ,IAAKwK,EAAQnI,MAAO6G,EAEjC,CACA,MAAO,CAAElJ,IAAKuK,EAAclI,WAAOtB,EACrC,CAEQ,iBAAO4J,GACb,OAAIzE,IAEAE,WAGArJ,GAGIqJ,YAAoBkB,SAASzI,GACvC,CAEQ,0BAAO+L,CAAoBpC,GACjC,MAAM3J,EAAM6H,EAAYiE,aACxB,IAAK9L,EAAK,MAAO,GAEjB,MAAMgM,EAAW,CACfnE,EAAYmC,YAAYL,GACxB9B,EAAY4D,YAAY9B,IAEpBsC,EAAY,IAAIrK,IActB,OAZAkE,OAAOrE,KAAKzB,GAAK6B,QAASV,IACxB6K,EAASnK,QAAS8B,IAChB,IAAKA,EAAQ,OACb,MAAMuI,EAAa,GAAGvI,IAASxF,IAC/B,GAAIgD,EAAIgL,WAAWD,GAAa,CAC9B,MACME,EADYjL,EAAIuC,MAAMwI,EAAWhJ,QACZmJ,MAAMlO,GAAoB,GACjDiO,GAAUH,EAAUlK,IAAIqK,EAC9B,MAIG,IAAIH,EACb,CAEQ,qBAAOK,CAAe3C,GAC5B,MAAMnG,MAAEA,GAAUqE,EAAYyC,mBAAmBX,GACjD,YAAwB,IAAVnG,GAAyBqE,EAAYkE,oBAAoBpC,GAAMzG,OAAS,CACxF,CASQ,oBAAOgG,CAAcqD,EAAc5C,GACzC,MAAM6C,EAAWrL,GACR0G,EAAYgE,eAAe1K,GAG9BsL,EAAoB,WAIpB7C,EAA6B,CACjC,GAAAtI,CAAIuI,EAASC,GACX,GAAIA,IAASpC,OAAOqC,YAClB,MAAO,IAAMlC,EAAYmC,YAAYL,GAEvC,GAAa,aAATG,EACF,MAAO,IAAMjC,EAAYmC,YAAYL,GAEvC,GAAa,YAATG,EACF,MAAO,IAAMjC,EAAYmC,YAAYL,GAEvC,GAAoB,iBAATG,EAAmB,OAE9B,GAAI1H,MAAMkG,QAAQiE,IAAYzC,KAAQ1H,MAAMoF,UAAW,CACrD,MAAMhE,EAAQyG,QAAQ3I,IAAIiL,EAASzC,EAAMyC,GACzC,MAAwB,mBAAV/I,EAAuBA,EAAM0G,KAAKqC,GAAW/I,CAC7D,CACA,GAAIpB,MAAMkG,QAAQiE,IAAqB,WAATzC,EAAmB,OAAOyC,EAAQrJ,OAChE,MAAMiH,EAAW,IAAIR,EAAMG,GACrB4C,EAAc7E,EAAYmC,YAAYG,GACtCwB,EAAS9D,EAAY4D,YAAYtB,GAGvC,IAAIwC,EAAWH,EAAQE,GAIvB,QAHwB,IAAbC,GAA4BhB,IAAWe,IAChDC,EAAWH,EAAQb,SAEG,IAAbgB,EACT,OAAO9E,EAAYc,kBAAkBgE,GAEvC,MAAMC,IACFL,GAAWzG,OAAO0B,UAAUgD,eAAeC,KAAK8B,EAASzC,GACvD+C,EAAYD,EAAWL,EAAgBzC,QAAQ5H,EAC/C4K,EAAuBjF,EAAYyE,eAAenC,GAExD,OAAI/H,MAAMkG,QAAQiE,IAtCD,CAACzC,GACJ,iBAATA,GAAqB2C,EAAkB5D,KAAKiB,GAqCnBiD,CAAajD,GACpC8C,EAKD/E,EAAYQ,kBAAkBwE,GACzBhF,EAAYqB,cAAc2D,EAAW1C,GACvCtC,EAAYc,kBAAkBkE,GAN5BC,EACHjF,EAAYqB,mBAAchH,EAAWiI,QACrCjI,EAOa2K,GAAkC,iBAAdA,GACrBhF,EAAYQ,kBAAkBwE,GACzChF,EAAYqB,cAAc2D,EAAW1C,GAE1CyC,GAAyB,KAAdC,GACXD,QAAgC,IAAdC,OADtB,EAGID,EACK/E,EAAYc,kBAAkBkE,GAI9BhF,EAAYqB,mBAAchH,EAAWiI,EAMhD,EACA,OAAAQ,GACE,MAAMlJ,EAAO,IAAIG,IAKjB,OAJI2K,GACFtC,QAAQU,QAAQ4B,GAAS1K,QAASV,GAAQM,EAAKM,IAAIZ,IAErD0G,EAAYkE,oBAAoBpC,GAAM9H,QAASV,GAAQM,EAAKM,IAAIZ,IACzD,IAAIM,EACb,EACAmJ,yBAAwB,CAACoC,EAAIC,IACvBV,GAAWzG,OAAO0B,UAAUgD,eAAeC,KAAK8B,EAASU,GACpDhD,QAAQW,yBAAyB2B,EAASU,GAElC,iBAANA,GAAkBpF,EAAYyE,eAAe,IAAI3C,EAAMsD,IACzD,CAAE9E,YAAY,EAAMC,cAAc,QAD3C,GAQJ,OAAO,IAAIyC,MADIzI,MAAMkG,QAAQiE,GAAW,GAAM,CAAA,EACrB3C,EAC3B,CASA,WAAOnI,CAAKyL,GAAiB,GAC3B,OAAOrF,EAAYoD,WAChBxJ,OACA+J,IAAKhD,GAAO0E,EAAQ7G,EAAYmC,GAAKA,EAC1C,CAEQ,iBAAOS,CACbS,EACAvI,EACAqC,GAEA,GAAKkG,EAAL,CACA,GAAIlG,GAA0B,iBAAVA,IAAuBpB,MAAMkG,QAAQ9E,GAAQ,CAC/D,MAAM2J,EAAWzD,EAAMvI,GACjB2J,EACJqC,GAAgC,iBAAbA,IAA0B/K,MAAMkG,QAAQ6E,GACvDA,EACA,CAAA,EAKN,OAJAzD,EAAMvI,GAAO2J,OACbhF,OAAOC,QAAQvC,GAAO3B,QAAQ,EAAEuK,EAAUgB,MACxCvF,EAAYoB,WAAW6B,EAAQsB,EAAUgB,IAG7C,CACA1D,EAAMvI,GAAOqC,CAbD,CAcd,CAEQ,qBAAOqI,CAAe1K,GAC5B,GAAIkG,IAAa,CACf,MAAMrH,EACJuH,WAGArJ,GACF,OAAO8B,EAAMA,EAAImB,QAAOe,CAC1B,CACA,OAAQqF,YAAoBkB,SAASzI,MAAMmB,EAC7C,CAEQ,sBAAOqI,CAAgBrI,EAAaoI,GAE1C,OAAW1C,MACT,wBAAwB1F,yBAFXoI,EAAQ,kBAAoB,eAI7C,EASK,MAAM8D,EAAoBxF,EAAYwD,WAC3CvF,OAAOwH,OACL,CACEnO,SAAK+C,GAEPnC,EACA,CACEC,KACGqH,KAAgBE,WAAmBrJ,GAC/BqJ,WAAmBrJ,GAAyB,SAC5CqJ,WAAmBkB,QAAQzI,IAAc,WAAM,iBCznBtD,SAAUuN,EACd/J,GAEA,GAAqB,mBAAVA,EAAsB,OAAO,EAIxC,IACE,MAAMgK,EAAMC,SAASjG,UAAUL,SAASsD,KAAKjH,GAC7C,GAAI,iBAAiBqF,KAAK2E,GAAM,OAAO,CACzC,CAAE,MAEF,CAGA,MAAME,EAAY5H,OAAO8E,yBAAyBpH,EAAO,aACzD,IAAKkK,IAAcA,EAAUlK,MAAO,OAAO,EAI3C,IAA2B,IAAvBkK,EAAUxF,SAAoB,OAAO,EAIzC,MAAMyF,EAASnK,EAAcgE,UAC7B,QAAK1B,OAAO0B,UAAUgD,eAAeC,KAAKkD,EAAO,gBAEnC7H,OAAO8H,oBAAoBD,GAAOE,OAC7CC,GAAY,gBAANA,GAEI5K,OAAS,CACxB,CAWM,SAAU6K,EACdvK,GAEA,MAAwB,mBAAVA,IAAyB+J,EAAQ/J,EACjD,CAWM,SAAUwK,EACdxK,GAEA,IAAKuK,EAAcvK,GAAQ,OAAO,EAElC,MAAMvC,EAAa6E,OAAO8E,yBAAyBpH,EAAO,aAC1D,OAAQvC,QAAmCiB,IAArBjB,EAAWuC,KACnC,CAWM,SAAUyK,EAA6BzK,GAC3C,GAAc,OAAVA,GAAmC,iBAAVA,EAAoB,OAAO,EAGxD,MAAM0K,EAAQ1K,EAAqC5C,YACnD,SAAKsN,GAAQA,IAASpI,SAEfyH,EAAQW,EACjB,CAUM,SAAUC,EAAc3K,GAC5B,GAAc,OAAVA,EAAgB,MAAO,OAC3B,QAActB,IAAVsB,EAAqB,MAAO,YAChC,GAAqB,iBAAVA,EAAoB,OAAOA,EAEtC,GAAI+J,EAAQ/J,GACV,OAAOA,EAAM4K,MAAQ,iBAGvB,GAAIH,EAAWzK,GAAQ,CACrB,MAAM6K,EAAc7K,EAAsC2D,SAC1D,GACwB,mBAAfkH,GACPA,IAAevI,OAAO0B,UAAUL,SAEhC,IACE,MAAMzF,EAAW2M,EAAW5D,KAAKjH,GACjC,GAAwB,iBAAb9B,GAAyBA,EAASwB,OAAQ,OAAOxB,CAC9D,CAAE,MAEF,CAGF,MAAMwM,EAAQ1K,EAAqC5C,YACnD,OAAOsN,GAAQA,EAAKE,KAAOF,EAAKE,KAAO,mBACzC,CAEA,GAAIJ,EAASxK,IAAUuK,EAAWvK,GAAQ,CAExC,MAAM8K,EAAK9K,EACX,OAAI8K,EAAGF,KAAaE,EAAGF,KAChB,WACT,CAEA,GAAqB,iBAAV5K,EAAoB,CAC7B,MAAM+K,EAAMzI,OAAO0B,UAAUL,SAASsD,KAAKjH,GACrCyD,EAAQ,wBAAwBuH,KAAKD,GAC3C,OAAItH,IAAQ,GAAWA,EAAM,GACtB,QACT,CAEA,cAAczD,CAChB,OCvHaiL,EAAsB/G,OAAO,+BAyB7BgH,EAIX,WAAA9N,CACEP,EACUsO,EACVC,EAAwB,IADd/N,KAAA8N,KAAAA,EAGV9N,KAAK+N,YAAcxM,MAAMkG,QAAQsG,GAAe,IAAIA,GAAe,GAC/DvO,GAASQ,KAAK+N,YAAYtL,KAAKjD,GACnCQ,KAAKR,QAAU,IAAIQ,KAAK+N,aACvB/N,KAAa4N,GAAuB,IAAI5N,KAAK+N,YAChD,CAEU,MAAA3J,CAAsC9D,GAC9C,OAAIN,KAAK8N,MAAQxN,KAAON,KAAK8N,KACpB9N,KAAK8N,KAAKxN,GACZ0N,EAAQC,YAAY3N,EAC7B,CA4BA,IACExB,EAMAsF,KACGyB,GAEH,IAAIqI,EACAC,EAAc/J,EAClB,MAAMgK,EAAgB7M,MAAMkG,QAAQzH,KAAKR,SACrC,IAAIQ,KAAKR,SACe,iBAAjBQ,KAAKR,SAAwBQ,KAAKR,QACvC,CAACQ,KAAKR,SACN,GACA6O,EAAiBrO,KAAa4N,GAC9BG,EAAcxM,MAAMkG,QAAQ4G,GAC9B,IAAIA,GACJ9M,MAAMkG,QAAQzH,KAAK+N,aACjB,IAAI/N,KAAK+N,aACT,GAEgB,iBAAXjP,EACToP,EAAcpP,OACMuC,IAAXvC,IACL4N,EAAQ5N,IAAWsO,EAAWtO,IAAWoO,EAAWpO,GACtDoP,EAAcZ,EAAcxO,IAClBqP,GAAerP,GAA4B,iBAAXA,IAC1CqP,EAAcrP,IAIlB,IAAIwP,EAAkBJ,EAClB,IAAIE,EAAeF,GACnB,IAAIE,GAER,OAAO,IAAIpE,MAAMhK,KAAM,CACrBS,IAAK,CAACwJ,EAAqBmC,EAAoBlC,KAC7C,MAAMpG,EAASsF,QAAQ3I,IAAIwJ,EAAQmC,EAAGlC,GACtC,MAAU,WAANkC,EACK,IAAIpC,MAAMhK,KAAKoE,OAAQ,CAC5BmK,MAAO,CACLtE,EACAuE,EACAC,KAEA,MAAOnO,GAAOmO,EACd,OAAIN,QAAuB9M,IAARf,GAAqBA,KAAO6N,EACtCA,EAAY7N,GAEd8I,QAAQmF,MAAMtE,EAAQC,EAAUuE,IAEzChO,IAAK,CAACwJ,EAA4B3J,IAC5B6N,GAAe7N,KAAO6N,EACjBA,EAAY7N,GACd8I,QAAQ3I,IAAIwJ,EAAQ3J,EAAK4J,KAI5B,UAANkC,EACK,KACLkC,EAAkB,IAAIP,GACf7D,GAGD,YAANkC,EACKkC,EAEC,SAANlC,EACK,IAAI2B,GAET3B,IAAMwB,EACDG,EAEC,QAAN3B,EACK,IAAIsC,KACT,GAAIP,EAAa,CACf,MAAMQ,EAAQD,EAAU,GAEL,iBAAVC,GACPjC,EAAQiC,IACRvB,EAAWuB,IACXzB,EAAWyB,GAEXD,EAAU,GAAK,IACVP,KACCO,EAAU,IAAM,IAEbC,GAA0B,iBAAVA,IACzBD,EAAU,GAAK,IACVP,KACCQ,GAGV,CACA,MAAMC,EAAkBrN,MAAMkG,QAAQwC,EAAOzK,SACzC,IAAIyK,EAAOzK,SACe,iBAAnByK,EAAOzK,SAAwByK,EAAOzK,QAC3C,CAACyK,EAAOzK,SACR,GACNyK,EAAOzK,QAAU,IAAI8O,GACrB,IAEE,OAAOrE,EAAO4E,IAAIN,MAAMtE,EAAQyE,EAClC,SACEzE,EAAOzK,QAAUoP,CACnB,GAGM,sBAANxC,EACK,KACL,MAAM0C,EAAW7E,EAAO8E,oBAIxB,OAHIZ,GACFlJ,OAAOwH,OAAOqC,EAAUX,GAEnBW,GAGJhL,IAGb,CAEU,iBAAAiL,GACR,MAAO,IACFf,EAAQC,eACPjO,KAAK8N,MAAQ,GAErB,CAEU,kBAAAkB,GACR,OAAIzN,MAAMkG,QAAQzH,KAAKR,SAAiB,IAAIQ,KAAKR,SACrB,iBAAjBQ,KAAKR,SAAwBQ,KAAKR,QAAgB,CAACQ,KAAKR,SAC5D,EACT,CAEU,cAAAyP,CAAe7K,GACvB,MAAM8K,EAAY9K,EAAO/E,SAAW,GACpC,OAAKkC,MAAMkG,QAAQyH,GACZA,EAAUlC,OACdmC,GACkB,iBAAVA,GACG,OAAVA,GAC2C,mBAAnCA,EAAwBnC,QALE,EAOxC,CAEU,YAAAoC,CACRvQ,EACAW,EACA4E,GAEA,MAAM/E,EAAUW,KAAKiP,eAAe7K,GACpC,OAAK/E,EAAQgD,OACNhD,EAAQ6G,OAAO,CAACwF,EAASsB,KAC9B,IACE,MAAMqC,EAAOrC,EAAOA,OAAO5I,EAAQsH,EAAS,IAAIlM,IAChD,MAAuB,iBAAT6P,EAAoBA,EAAO3D,CAC3C,CAAE,MACA,OAAOA,CACT,GACC7M,GARyBA,CAS9B,CAUU,SAAAyQ,CACRlQ,EACAP,EACAhB,EACA4B,EACAV,EACAoF,GAEA,MAAMoL,IAAuBvP,KAAKoE,OAAO,SACnC7F,EAAYyB,KAAKoE,OAAO,aACxB9F,EAAM0P,EAAQC,YAAY3P,IAC1BM,EAAYoB,KAAKoE,OAAO,cAC1B,IAAIoL,MAAOC,mBACXpO,EACEqO,EAAiB1P,KAAK+O,oBACtBT,EAAkBtO,KAAKgP,qBACvBW,EACe,iBAAZ9Q,EACHA,EACAA,aAAmBmH,MACjBnH,EAAQA,QACDA,EAAP6F,GACFH,EAAkBvE,KAAKoP,aAC3BO,EACArB,EACAoB,GAGIE,EADmB5P,KAAKoE,OAAO,SACL3E,EAAOA,OAAO4B,EACxCmD,EAAaoL,EAAc5P,KAAK6P,WAAWD,QAAevO,EAC1DyO,EAAqBtL,EACvBxE,KAAKoP,aAAa5K,EAAY8J,EAAiBoB,QAC/CrO,EACE0O,EAAqB/P,KAAKoE,OAAO,iBACjCK,EACJsL,QACWA,EAAPrL,QACArD,EAEN,IAAI1C,EACAqR,EACArL,EACAC,EACJ,GAAI/G,GAASgB,aAAmBmH,MAAO,CACrC,MAAMkJ,EAAYrR,GAAUgB,EACtBoR,EAAiBf,EAAiCgB,KAC3B,iBAAlBD,IACTtL,EAAYsL,GAEd,MAAME,EAAiBjB,EAAiC3B,KAC3B,iBAAlB4C,GAA8BA,EAAc9N,SACrDuC,EAAYuL,GAEVjB,EAAUvQ,QACZqR,EACqB,iBAAZnR,EAAuB0F,EAAkB2K,EAAUrQ,QAI5DF,EAAQ,MAAMqR,qBAHMT,EAChBvB,EAAQnO,MAAMqP,EAAUvQ,MAAO,QAASS,GACxC8P,EAAUvQ,QAGlB,CAEA,MAGMgC,EAA+B,CACnCyD,OAAQsL,EACRtQ,QACAI,QAAS8O,EACT1P,YACAN,IAAoB,iBAARA,GAAoBA,EAAI+D,OAAS/D,OAAM+C,EACnD9C,YACAkG,gBACAkL,aACApL,kBACA9E,KAAMmQ,EACNpL,WAAYsL,EACZnR,QACAqR,aACAjR,SACAoF,aACAQ,YACAC,YACAN,WArBiB,CAAC3B,EAAeD,IACjC6M,EAAevB,EAAQnO,MAAM8C,EAAOD,EAAatD,GAASuD,GAuBtDyN,EAAoBpQ,KAAKoE,OAAO,WAChCiM,EAAiBX,EAAe9P,SAAW,GAI3CmC,EAAaL,EAHH0O,EAAkB/N,OAC9B+N,EACAC,GAEExP,EAAWgE,EAAqBnE,OAAOC,EAASoB,EAAWnB,MAEjE,OAAQZ,KAAKoE,OAAO,WAClB,IAAK,OAAQ,CACX,MAAMkM,EAAazL,EAAqBnE,OACtCC,EACAkE,EAAqBjE,QAEjB2P,EAA6C,CAAA,EAQnD,OAPAtL,OAAOC,QAAQoL,GAAYtP,QAAQ,EAAEV,EAAKqC,MAC5B,SAARrC,IACJiQ,EAASjQ,GAAOqC,KAEdhC,EAAQlB,OACV8Q,EAAS9Q,KAAOkB,EAAQlB,MAEnB+Q,KAAKC,UAAUF,EACxB,CACA,IAAK,MAAO,CACV,IAAIG,EAAY1Q,KAAK2Q,wBACnB1O,EAAcF,EAAYlB,IAO5B,OALKkB,EAAWC,cAAgB8N,IAC9BY,EAAYA,EACR,GAAGA,KAAaZ,IAChBA,GAECY,CACT,CACA,QACE,MAAU1K,MAAM,+BAA+BhG,KAAKoE,OAAO,WAEjE,CAEQ,UAAAyL,CAAWpQ,GACjB,IACE,OAAO+Q,KAAKC,UAAUhR,EAExB,CAAE,MAAOmR,GACP,OAAcnR,EAAPiF,EACT,CACF,CAEU,uBAAAiM,CAAwBhO,GAChC,OAAOA,EAAM4C,QAAQ,aAAc,KAAKA,QAAQ,mBAAoB,GACtE,CAUU,GAAAsL,CACRzR,EACA0R,EACAjT,EACA4B,GAEA,MAAMsR,EAAU/Q,KAAKoE,OAAO,SAC5B,GAAgC3G,EAAiB2B,GAA7C3B,EAAiBsT,GAAoC,OACzD,IAAIjS,EACJ,OAAQM,GACN,KAAK5B,EAAAA,SAASE,UACZoB,EAASkS,QAAQH,IACjB,MACF,KAAKrT,EAAAA,SAASG,MACd,KAAKH,EAAAA,SAASI,SACd,KAAKJ,EAAAA,SAASK,MACZiB,EAASkS,QAAQnT,MACjB,MACF,KAAKL,EAAAA,SAASO,KACd,KAAKP,EAAAA,SAASQ,QACZc,EAASkS,QAAQH,IACjB,MACF,KAAKrT,EAAAA,SAASS,MACZa,EAASkS,QAAQ/S,MACjB,MACF,KAAKT,EAAAA,SAASU,MACZY,EAASkS,QAAQ9S,MACjB,MACF,KAAKV,EAAAA,SAASM,KACZgB,EAASkS,QAAQlT,KACjB,MACF,KAAKN,EAAAA,SAASW,MACZW,EAASkS,QAAQ/S,MACjB,MACF,QACE,MAAU+H,MAAM,qBAEpBlH,EAAOkB,KAAKsP,UAAUlQ,EAAO0R,EAAKjT,EAAO4B,GAC3C,CASA,SAAA/B,CAAUoT,EAAiBrR,GACzBO,KAAK6Q,IAAIrT,EAAAA,SAASE,UAAWoT,OAAKzP,EAAW5B,EAC/C,CAEA,MAAAV,CACEA,EACAF,EACAqR,KACGe,GAEH,IAAIxR,EACAwR,EAAK5O,QAAU4O,EAAK,IAAyB,iBAAZA,EAAK,KACxCxR,EAAOwR,EAAK,IAEdjR,KAAKkR,UAAUnS,EAAQF,EAASqR,EAAMzQ,EACxC,CAEU,SAAAyR,CACRnS,EACAF,EACAqR,EACAzQ,GAOF,CAQA,KAAA9B,CAAMmT,EAAyBK,EAAqB1R,GAClD,IAAI2R,EACAC,EACAF,aAAanL,OACfoL,EAAiBD,EACjBE,EAAc5R,GAEd4R,EAAcF,EAEhBnR,KAAK6Q,IAAIrT,EAAAA,SAASG,MAAOmT,EAAKM,EAAgBC,EAChD,CAUA,QAAAzT,CAASkT,EAAyBK,EAAqB1R,GACrD,IAAI2R,EACAC,EACAF,aAAanL,OACfoL,EAAiBD,EACjBE,EAAc5R,GAEd4R,EAAcF,EAEhBnR,KAAK6Q,IAAIrT,EAAAA,SAASI,SAAUkT,EAAKM,EAAgBC,EACnD,CAUA,KAAAlT,CACE2S,EACAQ,EAAoC,EACpC7R,GAEA,MAAM8R,EAAuC,iBAApBD,EAA+BA,EAAkB,EACpED,EACuB,iBAApBC,EAA+B7R,EAAO6R,EAC1CtR,KAAKoE,OAAO,WAAyBmN,GACxCvR,KAAK6Q,IAAIrT,EAAAA,SAASW,MAAO2S,OAAKzP,EAAWgQ,EAC7C,CAUA,OAAArT,CACE8S,EACAQ,EAAoC,EACpC7R,GAEA,MAAM8R,EAAuC,iBAApBD,EAA+BA,EAAkB,EACpED,EACuB,iBAApBC,EAA+B7R,EAAO6R,EAC1CtR,KAAKoE,OAAO,WAAyBmN,GACxCvR,KAAK6Q,IAAIrT,EAAAA,SAASQ,QAAS8S,OAAKzP,EAAWgQ,EAC/C,CASA,IAAAtT,CAAK+S,EAAiBrR,GACpBO,KAAK6Q,IAAIrT,EAAAA,SAASO,KAAM+S,OAAKzP,EAAW5B,EAC1C,CASA,KAAAxB,CAAM6S,EAAiBrR,GACrBO,KAAK6Q,IAAIrT,EAAAA,SAASS,MAAO6S,OAAKzP,EAAW5B,EAC3C,CAUA,KAAA5B,CAAMiT,EAAyBK,EAAqB1R,GAClD,IAAI2R,EACAC,EACAF,aAAanL,OACfoL,EAAiBD,EACjBE,EAAc5R,GAEd4R,EAAcF,EAEhBnR,KAAK6Q,IAAIrT,EAAAA,SAASK,MAAOiT,EAAKM,EAAgBC,EAChD,CASA,IAAAvT,CAAKgT,EAAiBrR,GACpBO,KAAK6Q,IAAIrT,EAAAA,SAASM,KAAMgT,OAAKzP,EAAW5B,EAC1C,CASA,KAAAvB,CAAM4S,EAAiBrR,GACrBO,KAAK6Q,IAAIrT,EAAAA,SAASU,MAAO4S,OAAKzP,EAAW5B,EAC3C,CAQA,SAAA+R,CAAUpN,GACRpE,KAAK8N,KAAO,IAAM9N,KAAK8N,MAAQ,CAAA,KAAQ1J,EACzC,CAEA,QAAIqN,GACF,MAAO,IAAIzR,KAAK+N,YAClB,CAOA,KAAA2D,GAEE,OADA1R,KAAKR,QAAU,IAAIQ,KAAK+N,aACjB/N,IACT,QAkEWgO,SAWIhO,KAAA2R,SAA0B,CACvCC,EACAxN,KAEA,MAAMkG,EAC6B,iBAA1BkC,EAAkBlO,IACrB,CAACkO,EAAkBlO,KACnB,GACN,OAAO,IAAIuP,EAAW+D,EAAQxN,EAAQkG,GACtC,QAEatK,KAAA6R,QAAoCrF,CAAkB,CAErE,WAAAzM,GAAuB,CAQvB,iBAAO+R,CAAW5K,GAChB8G,EAAQ2D,SAAWzK,EACnBlH,KAAK+R,YAAS1Q,CAChB,CAQA,gBAAOmQ,CAAUpN,GACfa,OAAOC,QAAQd,GAAQpD,QAAQ,EAAE2G,EAAGQ,MACjCnI,KAAK6R,QAAgBlK,GAAKQ,GAE/B,CAOA,gBAAO8F,GACL,OAAOjO,KAAK6R,OACd,CAOA,UAAOpR,GACL,OAAOT,KAAKgS,YACd,CAUA,cAAOhU,CACL8S,EACAQ,EAAoC,EACpC7R,GAEA,OAAOO,KAAKS,MAAMzC,QAAQ8S,EAAKQ,EAAiB7R,EAClD,CASA,WAAO1B,CAAK+S,EAAiBrR,GAC3B,OAAOO,KAAKS,MAAM1C,KAAK+S,EAAKrR,EAC9B,CASA,YAAOvB,CAAM4S,EAAiBrR,GAC5B,OAAOO,KAAKS,MAAMvC,MAAM4S,EAAKrR,EAC/B,CASA,YAAOxB,CAAM6S,EAAiBrR,GAC5B,OAAOO,KAAKS,MAAMxC,MAAM6S,EAAKrR,EAC/B,CASA,gBAAO/B,CAAUoT,EAAiBrR,GAChC,OAAOO,KAAKS,MAAM/C,UAAUoT,EAAKrR,EACnC,CAEA,aAAOV,CACLA,EACAF,EACAqR,KACGe,GAEH,OAAOjR,KAAKS,MAAM1B,OAAOA,EAAQF,EAASqR,KAASe,EACrD,CAUA,YAAOtT,CACLmT,EACAK,EACA1R,GAEA,OAAOO,KAAKS,MAAM9C,MAAMmT,EAAKK,EAAG1R,EAClC,CAUA,eAAO7B,CACLkT,EACAK,EACA1R,GAEA,OAAOO,KAAKS,MAAM7C,SAASkT,EAAKK,EAAG1R,EACrC,CAUA,YAAOtB,CACL2S,EACAQ,EAAoC,EACpC7R,GAEA,OAAOO,KAAKS,MAAMtC,MAAM2S,EAAKQ,EAAiB7R,EAChD,CASA,WAAO3B,CAAKgT,EAAiBrR,GAC3B,OAAOO,KAAKS,MAAM3C,KAAKgT,EAAKrR,EAC9B,CAUA,YAAO5B,CACLiT,EACAK,EACA1R,GAEA,OAAOO,KAAKS,MAAM5C,MAAMiT,EAAKK,EAAG1R,EAClC,CAUA,UAAO,CACLmS,EACAxN,KACGyB,GAEH,MACMoM,OAAsB5Q,IAAX+C,EAAuB,CAACwN,EAAQxN,GAAU,CAACwN,GAC5D,OAFa5R,KAAK+R,OAAS/R,KAAK+R,OAAS/R,KAAKgS,WAAWnM,IAE5CgJ,OAAeoD,EAC9B,CASA,cAAOC,CAAQC,EAAgBzT,GAE7B,IAAI0T,EADSpS,KAAKgS,aACCnD,IAAYsD,EAAQnS,KAAK6R,SAE5C,OADInT,IAAI0T,EAAUA,EAAOvD,IAAYnQ,IAC9B0T,CACT,CAEQ,kBAAOrE,GACb,MAAMzP,EAAM0B,KAAK6R,QAAQvT,IACzB,MAAsB,iBAARA,GAAoBA,EAAI+D,OAAS,CAAC/D,GAAO,EACzD,CAEQ,wBAAO+T,CAAkBD,GAC/B,MAAM9H,EACH8H,EAAeX,MAAQlQ,MAAMkG,QAAS2K,EAAeX,MAClD,IAAKW,EAAeX,MACpBzR,KAAK+N,cASX,QAPIqE,EAAe5S,SAChB+B,MAAMkG,QAAS2K,EAAe5S,UACM,IAAlC4S,EAAe5S,QAAQ6C,UAEzB+P,EAAe5S,QAAU,IAAI8K,IAE/B8H,EAAexE,GAAuB,IAAItD,GACpC8H,CACT,CAEQ,iBAAOJ,CAAWM,EAAgB,IACxC,IAAKtS,KAAK+R,OAAQ,CAChB,MAAM3H,EAAWpK,KAAK2R,cAAStQ,OAAWA,KAAciR,GACxDtS,KAAK+R,OAAS/R,KAAKqS,kBAAkBjI,EACvC,CACA,OAAOpK,KAAK+R,MACd,CAmCA,YAAOlS,CACLsC,EACAO,EACA6P,EACAC,EAAkBnU,GAElB,IAAK2B,KAAK6R,QAAQ7S,MAAO,OAAOmD,EAoEhC,MAAMsQ,EAAkBD,EAAS9P,GACjC,IAAK+P,IAAoBxN,OAAOrE,KAAK6R,GAAiBpQ,OACpD,OAAOF,EAGT,IAAIuQ,EAA2BD,EAE/B,MAAME,EAAY1N,OAAOwH,OAAO,CAAA,EAAIjP,EAAAA,UAKpC,OAJIyH,OAAOrE,KAAK6R,GAAiB,KAAME,IACrCD,EACGD,EAA0CF,IAAgB,CAAA,GAExDtN,OAAOrE,KAAK8R,GAAaxM,OAAO,CAACC,EAAa7F,KACnD,MAAM6E,EAAOuN,EAA4BpS,GACzC,OAAI6E,EAjFN,EACEyN,EACAC,EACAlQ,KAEA,IACE,MAAMmQ,EAA2BF,EACjC,IAAIG,EAAI/T,EAAAA,MAAM8T,GAEd,SAASE,EACP7N,EACA8N,GAAO,GAEP,IAAIC,EAIoBD,EAAOF,EAAEI,WAAaJ,EAAEK,WAChD,IAAK7R,MAAMkG,QAAQtC,GACjB,OAAQ+N,EAAgDtJ,KACtDmJ,EACApQ,GAGJ,OAAQwC,EAAI9C,QACV,KAAK,EAEH,OADA6Q,EAAID,EAAOF,EAAEM,WAAaN,EAAEO,SACpBJ,EAA8C/N,EAAI,IAC5D,KAAK,EAEH,OADA+N,EAAID,EAAOF,EAAEQ,MAAQR,EAAES,IAChBT,EAAES,IAAIrO,EAAI,GAAIA,EAAI,GAAIA,EAAI,IACnC,QAEE,OAAOnG,EAAAA,MAAM8T,GAEnB,CAEA,SAASW,EAAWtL,GAEhB4K,EADe,iBAAN5K,EACL4K,EAAE/T,MAAMmJ,GAER4K,EAAE5K,EAEV,CAEA,OAAQ0K,GACN,IAAK,KACL,IAAK,KACH,OAAOG,EAAWrQ,GAAiBR,KACrC,IAAK,QAMH,OALIZ,MAAMkG,QAAQ9E,GAChBA,EAAM3B,QAAQyS,GAEdA,EAAW9Q,GAENoQ,EAAE5Q,KACX,QAEE,OAAO2Q,EAGb,CAAE,MAAO3B,GAEP,OAAOyB,CACT,CACF,EAiBWrE,CACLpI,EACA7F,EACA6E,GAOGgB,GACNhE,EACL,CAEA,eAAOhC,CAASC,GACd,OAAOyE,EAAqB1E,SAASC,EACvC,CACA,iBAAOG,CAAWD,GAChB,OAAOuE,EAAqBtE,WAAWD,EACzC,QCnlCoBoT,EAQpB,OAAc7C,GAEZ,OADK7Q,KAAK2T,OAAM3T,KAAK2T,KAAO3F,EAAQa,IAAI7O,OACjCA,KAAK2T,IACd,CAEA,WAAA5T,GAAyB,ECjBrB,MAAgB6T,UAAkBF,EAMtC,OAAa7C,GACX,OAAO1J,MAAM0J,IAAIhC,IAAI7O,KAAa,CAAEX,QAAS,IAC/C,ECeK,MAAMwU,EA1Ba,oBAAfnN,YACgC,mBAAhCA,WAAWoN,aAAaD,IAExB,IAAMnN,WAAWoN,YAAYD,MAIjB,oBAAZjM,SACoC,mBAAnCA,QAAgBmM,QAAQC,OAEzB,KACL,MAAMC,EAAMrM,QAAgBmM,OAAOC,SACnC,OAAO/L,OAAOgM,GAAM,KAIjB,IAAMzE,KAAKqE,MAuMd,SAAUK,EAASC,GACvB,MAAMC,EAAY,EAALD,EAAS,IAAM,GACtBE,EAAMC,KAAKD,IAAIF,GACfI,EAAQD,KAAKE,MAAMH,EAAM,MACzBI,EAAUH,KAAKE,MAAOH,EAAM,KAAa,KACzCK,EAAUJ,KAAKE,MAAOH,EAAM,IAAU,KACtCM,EAASL,KAAKE,MAAMH,EAAM,KAC1BO,EAAM,CAAC3H,EAAW4H,IAAc5H,EAAE3G,WAAWwO,SAASD,EAAG,KAC/D,MAAO,GAAGT,IAAOQ,EAAIL,EAAO,MAAMK,EAAIH,EAAS,MAAMG,EAAIF,EAAS,MAAME,EAAID,EAAQ,IACtF,CC/MM,SAAU9D,EACdzR,EAAkB5B,EAAAA,SAASO,KAC3BwT,EAAY,EACZwD,EAAkC,IAAIlP,IAAgB,eAAeA,EACrEmP,GAEA,MAAO,CAAa/K,EAAagL,EAAmB7U,KAClD,IAAKA,GAAoC,iBAAfA,EACxB,MAAU4F,MAAM,8CAClB,MAAMoM,EACJnI,aAAkByJ,EACdzJ,EAAY,IAAE4E,IAAI5E,EAAOgL,IACzBjH,EAAQa,IAAI5E,GAAQ4E,IAAI5E,EAAOgL,IAC/BnW,EAASsT,EAAOhT,GAAOiK,KAAK+I,GAC5B8C,EAAiB9U,EAAWuC,MA0BlC,OAxBAvC,EAAWuC,MAAQ,IAAIqH,MAAMkL,EAAgB,CAC3C,KAAA3G,CAAMd,EAAI0H,EAAStP,GACjB/G,EAAOiW,KAAgBlP,GAAO0L,GAC9B,IACE,MAAMzN,EAASsF,QAAQmF,MAAMd,EAAI0H,EAAStP,GAC1C,OAAI/B,aAAkBsR,QACbtR,EACJuR,KAAMC,IACDN,GAAalW,EAAOkW,OAAY3T,EAAWiU,IACxCA,IAERC,MAAOpE,IAEN,MADI6D,GAAa5C,EAAOvU,MAAMmX,EAAY7D,IACpCA,KAGR6D,GAAalW,EAAOkW,OAAY3T,EAAWyC,IACxCA,EACT,CAAE,MAAO8M,GAEP,MADIoE,GAAa5C,EAAOvU,MAAMmX,EAAYpE,IACpCA,CACR,CACF,IAEKxQ,CACT,CACF,UA4IgBoV,IACd,MAAO,CAACvL,EAAgBgL,EAAmB7U,KACzC,IAAKA,EACH,MAAU4F,MAAM,+CAIlB,OAHI5F,GAAYmH,eACdnH,EAAWmH,cAAe,GAErBnH,EAEX,CClMM,MAAOqV,UAAsB7B,EACjC,WAAA7T,CACqBqF,EACAsQ,GAEnBvO,QAHmBnH,KAAAoF,OAAAA,EACApF,KAAA0V,YAAAA,CAGrB,CASU,KAAAtP,CAAMvH,GACd,MAAMuH,EAAQpG,KAAKoF,OAAOuI,KAAK9O,GAE/B,OADAmB,KAAKoF,OAAOuQ,UAAY,EACjBvP,CACT,CAWA,MAAA4G,CAAO5I,EAAuBvF,EAAiBW,GAC7C,MAAMqR,EAAM7Q,KAAK6Q,IAAIhC,IAAI7O,KAAKgN,QAE9B,IADchN,KAAKoG,MAAMvH,GACb,OAAOA,EACnB,IACE,OAAOA,EAAQ0G,QAAQvF,KAAKoF,OAAQpF,KAAK0V,YAC3C,CAAE,MAAOvE,GACPN,EAAIhT,MAAM,oCAAoCsT,EAChD,CACA,MAAO,EACT,EAzBUyE,EAAAA,WAAA,CADTJ,8HAKAC,EAAA9O,UAAA,QAAA,MCrCG,MAAgBkP,UAAkB7P,MAGtC,WAAAjG,CAAsBwN,EAAcuD,EAAqBZ,GACvD,GAAIY,aAAe+E,EAAW,OAAO/E,EAErC3J,MADgB,IAAIoG,MAAS2C,MAASY,aAAe9K,MAAQ8K,EAAIjS,QAAUiS,KAE3E9Q,KAAKkQ,KAAOA,EACRY,aAAe9K,QAAOhG,KAAKrB,MAAQmS,EAAInS,MAC7C,CAEA,WAAaE,GACX,MAAO,IAAImB,KAAKuN,SAASvN,KAAKkQ,UAAU/I,MAAMtI,QAAQiX,WAAW,yBAA0B,KAC7F,CAES,QAAAxP,GACP,OAAOtG,KAAKnB,OACd,2CCFoB,4IAQM,+JASQ,0EJkClC,WAAAkB,CAAYgW,GAAY,GANhB/V,KAAAgW,SAA0B,KAC1BhW,KAAAiW,WAAa,EACbjW,KAAAkW,UAAW,EACXlW,KAAAmW,MAAe,GACfnW,KAAAoW,gBAAkB,EAGpBL,GAAW/V,KAAKqW,OACtB,CAOA,WAAIC,GACF,OAAOtW,KAAKkW,QACd,CAOA,aAAIK,GACF,OAAKvW,KAAKkW,UAA6B,MAAjBlW,KAAKgW,SACpBhW,KAAKiW,YAAcpC,IAAQ7T,KAAKgW,UADahW,KAAKiW,UAE3D,CAOA,KAAAI,GAKE,OAJKrW,KAAKkW,WACRlW,KAAKkW,UAAW,EAChBlW,KAAKgW,SAAWnC,KAEX7T,IACT,CAOA,KAAAwW,GAME,OALIxW,KAAKkW,UAA6B,MAAjBlW,KAAKgW,WACxBhW,KAAKiW,YAAcpC,IAAQ7T,KAAKgW,SAChChW,KAAKgW,SAAW,KAChBhW,KAAKkW,UAAW,GAEXlW,IACT,CAOA,MAAAyW,GAKE,OAJKzW,KAAKkW,WACRlW,KAAKkW,UAAW,EAChBlW,KAAKgW,SAAWnC,KAEX7T,IACT,CAOA,IAAA0W,GAEE,OADA1W,KAAKwW,QACExW,KAAKiW,UACd,CAOA,KAAAU,GACE,MAAMC,EAAa5W,KAAKkW,SAKxB,OAJAlW,KAAKgW,SAAWY,EAAa/C,IAAQ,KACrC7T,KAAKiW,WAAa,EAClBjW,KAAKmW,MAAQ,GACbnW,KAAKoW,gBAAkB,EAChBpW,IACT,CAQA,GAAA6W,CAAIC,GACF,MAAMC,EAAQ/W,KAAKuW,UACbpC,EAAK4C,EAAQ/W,KAAKoW,gBAClBS,EAAW,CACfzU,MAAOpC,KAAKmW,MAAM9T,OAClByU,QACA3C,KACA6C,QAASD,GAIX,OAFA/W,KAAKmW,MAAM1T,KAAKoU,GAChB7W,KAAKoW,gBAAkBW,EAChBF,CACT,CAMA,QAAII,GACF,OAAOjX,KAAKmW,KACd,CAOA,QAAA7P,GACE,OAAO4N,EAASlU,KAAKuW,UACvB,CAOA,MAAAW,GACE,MAAO,CACLZ,QAAStW,KAAKkW,SACdK,UAAWvW,KAAKuW,UAChBU,KAAMjX,KAAKmW,MAAMtT,QAErB,aIlM6B,8BHkFtB,CAAmBoH,EAAagL,EAAmB7U,KACxD,IAAKA,GAAoC,iBAAfA,EACxB,MAAU4F,MAAM,gDAClB,MAAMoM,EACJnI,aAAkByJ,EACdzJ,EAAY,IAAE4E,IAAI5E,EAAOgL,IACzBjH,EAAQa,IAAI5E,GAAQ4E,IAAI5E,EAAOgL,IAC/BC,EAAiB9U,EAAWuC,MA2BlC,OAzBAvC,EAAWuC,MAAQ,IAAIqH,MAAMkL,EAAgB,CAC3C,KAAA3G,CAAMd,EAAI0H,EAAStP,GACjB,MAAMwQ,EAAQxC,IACd,IACE,MAAM/P,EAASsF,QAAQmF,MAAMd,EAAI0H,EAAStP,GAC1C,OAAI/B,aAAkBsR,QACbtR,EACJuR,KAAMC,IACLlD,EAAO1U,UAAU,gBAAgBmW,IAAQwC,OAClCf,IAERC,MAAOpE,IAEN,MADAiB,EAAO1U,UAAU,aAAamW,IAAQwC,OAChClF,KAGZiB,EAAO1U,UAAU,gBAAgBmW,IAAQwC,OAClCvS,EACT,CAAE,MAAO8M,GAEP,MADAwB,EAAO1U,UAAU,aAAamW,IAAQwC,OAChCzF,CACR,CACF,IAGKxQ,CACT,oCAWOyQ,EACLrT,EAAAA,SAASS,MACT,EACA,IAAI4H,IAAgB,eAAeA,EACnC,CAACsL,EAAWrN,IACVqN,EACI,gBAAgBA,EAChBrN,EACE,kBAAkB0M,KAAKC,UAAU3M,GACjC,kFAYH+M,EAAIrT,EAAAA,SAASO,6HRnKhB,CACJoZ,EACA9U,EACAC,EAAe,OAEf,GAAoB,IAAhBA,EAAKD,OACP,MAAU2D,MAAM,sDAClB,OAAOmR,EAAIC,OAAO/U,EAAQC,EAC5B,sBAuBM,CACJe,EACA0B,EACAjC,EAAiBvF,EAA2B,GAC5CwF,EAAiBxF,EAA2B,GAC5CyH,EAAgB,MASTF,EAAYzB,EAPE4B,OAAOC,QAAQH,GAAQmB,OAC1C,CAACC,GAA2B7F,EAAK6E,MAC/BgB,EAAI,GAAGrD,IAASxC,IAAMyC,KAAYoC,EAC3BgB,GAET,CAAA,GAEsCnB,wDQiIjC6L,EAAIrT,EAAAA,SAASW,sCRhGMgE,GACnBA,EACJoD,QAAQ,sBAAuB,CAAC8R,EAAMjV,IAC3B,IAAVA,EAAciV,EAAK3R,cAAgB2R,EAAKhT,eAEzCkB,QAAQ,OAAQ,kCAsCOpD,GACnBA,EACJoD,QAAQ,kBAAmB,SAC3BA,QAAQ,UAAW,KACnBG,6BAWwBvD,GACpBA,EACJoD,QAAQ,sBAAwB8R,GAASA,EAAKhT,eAC9CkB,QAAQ,OAAQ,gCQ8CZsL,EAAIrT,EAAAA,SAASU,iBAWhB,CAAkBqT,EAA8B,KAC/CA,IACHA,EAAY,GAEPV,EAAIrT,EAAAA,SAASQ,QAASuT"}
|
package/dist/logging.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{style as t}from"styled-string-builder";export*from"styled-string-builder";import{ObjectAccumulator as e}from"typed-object-accumulator";import{__decorate as r,__metadata as n}from"tslib";const o="ENV",s="__",i=["${","}"];var a;(t=>{t.benchmark="benchmark",t.fatal="fatal",t.critical="critical",t.error="error",t.warn="warn",t.info="info",t.verbose="verbose",t.debug="debug",t.trace="trace",t.silly="silly"})(a||(a={}));const c={benchmark:0,fatal:1,critical:2,error:3,warn:6,info:9,verbose:12,debug:15,trace:18,silly:21};var l;(t=>{t.RAW="raw",t.JSON="json"})(l||(l={}));const u={app:{},separator:{},class:{fg:34},id:{fg:36},stack:{},timestamp:{},message:{error:{fg:31}},method:{},logLevel:{benchmark:{fg:32,style:["bold"]},fatal:{fg:31,style:["bold"]},critical:{fg:31,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"]}}},f={env:"development",verbose:0,level:a.info,logLevel:!0,style:!1,filters:[],contextSeparator:".",separator:"-",timestamp:!0,timestampFormat:"HH:mm:ss.SSS",context:!0,meta:!0,format:l.RAW,pattern:"{level} [{timestamp}] {app} {context} {separator} {message} {stack}",theme:u};class h{constructor(){this.descriptors=new Map}register(t){return this.descriptors.set(t.key,t),this}unregister(t){return this.descriptors.delete(t),this}get(t){return this.descriptors.get(t)}render(t,e){const r={},n=new Set;return e.forEach(e=>{if(n.has(e))return;n.add(e);const o=this.descriptors.get(e);if(!o)return;if(o.shouldInclude&&!o.shouldInclude(t))return;const s=o.render(t);if(void 0===s)return;const i=o.style?o.style(s,t):s;r[e]=i}),r}keys(){return Array.from(this.descriptors.keys())}}const p=new Map;function g(t){if(p.has(t))return p.get(t);const e=d(t||""),r=new Set,n=[];m(e,r,n);const o={pattern:t,segments:e,keys:n,includesMeta:r.has("meta")};return p.set(t,o),o}function y(t,e){return v(t.segments,e).text}function d(t){const e=[];let r=0;for(;r<t.length;){const n=t[r];if("["===n){const n=b(t,r,"[","]");if(-1===n){e.push({type:"literal",value:"["}),r++;continue}const o=t.slice(r+1,n);e.push({type:"optional",prefix:"[",suffix:"]",children:d(o)}),r=n+1;continue}if("{"===n){const n=t.indexOf("}",r+1);if(-1===n){e.push({type:"literal",value:"{"}),r++;continue}const o=t.slice(r+1,n).trim();e.push({type:"parameter",key:o}),r=n+1;continue}let o=r;for(;o<t.length&&"["!==t[o]&&"{"!==t[o];)o++;const s=t.slice(r,o);s.length&&e.push({type:"literal",value:s}),r=o}return e}function b(t,e,r,n){let o=0;for(let s=e;s<t.length;s++){const e=t[s];if(e===r)o++;else if(e===n&&(o--,0===o))return s}return-1}function m(t,e,r){for(const n of t)"parameter"===n.type&&(e.has(n.key)||(e.add(n.key),r.push(n.key))),"optional"===n.type&&m(n.children,e,r)}function v(t,e){const r=[];let n=!1;for(const o of t){const t=x(o,e);t.text.length&&r.push(t.text),n=n||t.hasValue}return{text:r.join(""),hasValue:n}}function x(t,e){if("literal"===t.type)return{text:t.value,hasValue:!1};if("parameter"===t.type){const r=e[t.key]??"";return{text:r,hasValue:r.length>0}}const r=v(t.children,e);return r.hasValue?{text:`${t.prefix}${r.text}${t.suffix}`,hasValue:!0}:{text:"",hasValue:!1}}const w=new h;w.register({key:"level",render(t){if(!1!==t.config.logLevel)return t.level.toUpperCase()},style:(t,e)=>e.applyTheme(t,"logLevel")}).register({key:"timestamp",shouldInclude:t=>!(!t.config.timestamp||!t.timestamp),render:t=>t.timestamp,style:(t,e)=>e.applyTheme(t,"timestamp")}).register({key:"app",shouldInclude:t=>!!t.app,render:t=>t.app,style:(t,e)=>e.applyTheme(t,"app")}).register({key:"context",shouldInclude:t=>!1!==t.config.context&&t.context.length>0,render(t){const e=t.config.contextSeparator||".";return t.context.join(e)},style:(t,e)=>e.applyTheme(t,"class")}).register({key:"separator",shouldInclude:t=>!!t.separator,render:t=>t.separator,style:(t,e)=>e.applyTheme(t,"separator")}).register({key:"message",render:t=>t.filteredMessage,style:(t,e)=>e.applyTheme(t,"message")}).register({key:"stack",shouldInclude:t=>!!t.stack,render:t=>t.stack,style:(t,e)=>e.applyTheme(t,"stack")}).register({key:"meta",shouldInclude:t=>!!t.metaString,render:t=>t.metaString}).register({key:"correlationId",shouldInclude:t=>!!t.correlationId,render:t=>t.correlationId,style:(t,e)=>e.applyTheme(t,"id")});const E=w;function O(t,e,r=" "){if(1!==r.length)throw Error("Invalid character length for padding. must be one!");return t.padEnd(e,r)}function k(t,e,r="${",n="}",o="g"){return j(t,Object.entries(e).reduce((t,[e,o])=>(t[`${r}${e}${n}`]=o,t),{}),o)}function j(t,e,r="g"){return Object.entries(e).forEach(([e,n])=>{const o=RegExp(M(e),r);t=t.replace(o,n)}),t}function _(t){return t.replace(/(?:^\w|[A-Z]|\b\w)/g,(t,e)=>0===e?t.toLowerCase():t.toUpperCase()).replace(/\s+/g,"")}function A(t){return P(t).toUpperCase()}function P(t){return t.replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/[\s-]+/g,"_").toLowerCase()}function R(t){return t.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[\s_]+/g,"-").toLowerCase()}function S(t){return t.replace(/(?:^\w|[A-Z]|\b\w)/g,t=>t.toUpperCase()).replace(/\s+/g,"")}function M(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function $(t,...e){if(e.length>1&&!e.every(t=>"string"==typeof t||"number"==typeof t))throw Error("Only string and number arguments are supported for multiple replacements.");if(1===e.length&&"object"==typeof e[0]){const r=e[0];return Object.entries(r).reduce((t,[e,r])=>t.replace(RegExp(`\\{${e}\\}`,"g"),()=>r),t)}return t.replace(/{(\d+)}/g,(t,r)=>void 0!==e[r]?e[r].toString():"undefined")}const C=$;function T(){return Object.getPrototypeOf(Object.getPrototypeOf(globalThis))!==Object.prototype}const I=Symbol("EnvironmentEmpty"),K=Symbol("EnvironmentModel"),V=/^[a-z][a-zA-Z0-9]*$/;class L extends e{static{this.factory=()=>new L}constructor(){super(),Object.defineProperty(this,K,{value:{},writable:!0,enumerable:!1,configurable:!1})}static isProxyableObject(t){if(!t||"object"!=typeof t)return!1;if(Array.isArray(t))return!0;const e=Object.getPrototypeOf(t);return e===Object.prototype||null===e}fromEnv(t){let e;return T()?e=globalThis[o]||{}:(e=globalThis.process.env,t=A(t)),this.parseEnvValue(e[t])}parseEnvValue(t){return L.parseRuntimeValue(t)}static parseRuntimeValue(t){if("string"!=typeof t)return t;if("true"===t)return!0;if("false"===t)return!1;const e=t.trim();return/^-?\d+(\.\d+)?$/.test(e)?Number(e):t}expand(t){Object.entries(t).forEach(([t,e])=>{L.mergeModel(this[K],t,e),Object.defineProperty(this,t,{get:()=>{const r=this.fromEnv(t);return void 0!==r?r:e&&"object"==typeof e?L.buildEnvProxy(e,[t]):""===e?I:e},set:t=>{e=t},configurable:!0,enumerable:!0})})}orThrow(){const t=this[K],e=t=>void 0!==t?this.parseEnvValue(t):void 0,r=(t,e=!1)=>L.missingEnvError(t,e),n=(t,o)=>{const s={get(s,i){if(i===Symbol.toPrimitive)return()=>L.buildEnvKey(o);if("toString"===i)return()=>L.buildEnvKey(o);if("valueOf"===i)return()=>L.buildEnvKey(o);if("symbol"==typeof i)return;if("toJSON"===i)return;if("then"===i)return;if("constructor"===i)return Object;if(Array.isArray(t)&&"length"===i)return t.length;if(Array.isArray(t)&&i in Array.prototype){const e=Reflect.get(t,i,t);return"function"==typeof e?e.bind(t):e}const a=[...o,i],{key:c,value:l}=L.readRuntimeForPath(a);if("string"==typeof l&&0===l.length)throw r(c,!0);const u=e(l);if(void 0!==u){if("string"==typeof u&&0===u.length)throw r(c,!0);return u}if(!t||!Object.prototype.hasOwnProperty.call(t,i))throw r(c);const f=t[i];if(void 0!==f){if(""===f)throw r(c);return L.isProxyableObject(f)?n(f,a):f}},ownKeys:()=>t?Reflect.ownKeys(t):[],getOwnPropertyDescriptor(e,r){if(t)return Object.prototype.hasOwnProperty.call(t,r)?{enumerable:!0,configurable:!0}:void 0}};return new Proxy(Array.isArray(t)?[]:{},s)};return new Proxy(this,{get(o,s,i){if("string"!=typeof s)return Reflect.get(o,s,i);if(!Object.prototype.hasOwnProperty.call(t,s))return Reflect.get(o,s,i);const{key:a,value:c}=L.readRuntimeForPath([s]);if("string"==typeof c&&0===c.length)throw r(a,!0);const l=e(c);if(void 0!==l){if("string"==typeof l&&0===l.length)throw r(a,!0);return l}const u=t[s];if(L.isProxyableObject(u))return n(u,[s]);if(void 0===u)return Reflect.get(o,s,i);const f=Reflect.get(o,s);if(void 0===f||""===f)throw r(a,""===f);return f}})}static instance(...t){if(!L._instance){const e=L.factory(...t),r=new Proxy(e,{get(t,e,r){const n=Reflect.get(t,e,r);if(n!==I&&("string"!=typeof e||!Object.prototype.hasOwnProperty.call(t,e)||void 0!==n)){if(void 0!==n)return n;if("string"==typeof e){if("app"===e)return;return L.buildEnvProxy(void 0,[e])}return n}}});L._instance=r}return L._instance}accumulate(t){return super.accumulate(t),this}static accumulate(t){const e=L.instance();return Object.keys(e).forEach(t=>{const r=Object.getOwnPropertyDescriptor(e,t);r&&r.configurable&&r.enumerable&&Object.defineProperty(e,t,{...r,enumerable:!1})}),e.accumulate(t),e}static get(t){return L._instance.get(t)}static formatEnvSegment(t){return V.test(t)?A(t):t.toUpperCase()}static buildEnvKey(t){return t.map(t=>L.formatEnvSegment(t)).join(s)}static buildRawKey(t){return t.join(s)}static readRuntimeForPath(t){const e=L.buildEnvKey(t),r=L.buildRawKey(t),n=L.readRuntimeEnv(e);if(void 0!==n)return{key:e,value:n};if(r!==e){const t=L.readRuntimeEnv(r);if(void 0!==t)return{key:r,value:t}}return{key:e,value:void 0}}static runtimeEnv(){return T()?globalThis[o]:globalThis?.process?.env}static getRuntimeChildKeys(t){const e=L.runtimeEnv();if(!e)return[];const r=[L.buildEnvKey(t),L.buildRawKey(t)],n=new Set;return Object.keys(e).forEach(t=>{r.forEach(e=>{if(!e)return;const r=`${e}${s}`;if(t.startsWith(r)){const e=t.slice(r.length).split(s)[0];e&&n.add(e)}})}),[...n]}static hasRuntimePath(t){const{value:e}=L.readRuntimeForPath(t);return void 0!==e||L.getRuntimeChildKeys(t).length>0}static buildEnvProxy(t,e){const r=t=>L.readRuntimeEnv(t),n=/^[0-9]+$/,o={get(o,s){if(s===Symbol.toPrimitive)return()=>L.buildEnvKey(e);if("toString"===s)return()=>L.buildEnvKey(e);if("valueOf"===s)return()=>L.buildEnvKey(e);if("symbol"==typeof s)return;if(Array.isArray(t)&&s in Array.prototype){const e=Reflect.get(t,s,t);return"function"==typeof e?e.bind(t):e}if(Array.isArray(t)&&"length"===s)return t.length;const i=[...e,s],a=L.buildEnvKey(i),c=L.buildRawKey(i);let l=r(a);if(void 0===l&&c!==a&&(l=r(c)),void 0!==l)return L.parseRuntimeValue(l);const u=!!t&&Object.prototype.hasOwnProperty.call(t,s),f=u?t[s]:void 0,h=L.hasRuntimePath(i);return Array.isArray(t)&&(t=>"string"==typeof t&&n.test(t))(s)?u?L.isProxyableObject(f)?L.buildEnvProxy(f,i):L.parseRuntimeValue(f):h?L.buildEnvProxy(void 0,i):void 0:f&&"object"==typeof f&&L.isProxyableObject(f)?L.buildEnvProxy(f,i):u&&""===f||u&&void 0===f?void 0:u?L.parseRuntimeValue(f):L.buildEnvProxy(void 0,i)},ownKeys(){const r=new Set;return t&&Reflect.ownKeys(t).forEach(t=>r.add(t)),L.getRuntimeChildKeys(e).forEach(t=>r.add(t)),[...r]},getOwnPropertyDescriptor:(r,n)=>t&&Object.prototype.hasOwnProperty.call(t,n)?Reflect.getOwnPropertyDescriptor(t,n):"string"==typeof n&&L.hasRuntimePath([...e,n])?{enumerable:!0,configurable:!0}:void 0};return new Proxy(Array.isArray(t)?[]:{},o)}static keys(t=!0){return L.instance().keys().map(e=>t?A(e):e)}static mergeModel(t,e,r){if(t){if(r&&"object"==typeof r&&!Array.isArray(r)){const n=t[e],o=n&&"object"==typeof n&&!Array.isArray(n)?n:{};return t[e]=o,void Object.entries(r).forEach(([t,e])=>{L.mergeModel(o,t,e)})}t[e]=r}}static readRuntimeEnv(t){if(T()){const e=globalThis[o];return e?e[t]:void 0}return globalThis?.process?.env?.[t]}static missingEnvError(t,e){return Error(`Environment variable ${t} is required but was ${e?"an empty string":"undefined"}.`)}}const F=L.accumulate(Object.assign({app:void 0},f,{env:(T()&&globalThis[o]?globalThis[o].NODE_ENV:globalThis.process.env.NODE_ENV)||"development"}));function N(t){if("function"!=typeof t)return!1;try{const e=Function.prototype.toString.call(t);if(/^\s*class[\s{]/.test(e))return!0}catch{}const e=Object.getOwnPropertyDescriptor(t,"prototype");if(!e||!e.value)return!1;if(!1===e.writable)return!0;const r=t.prototype;return!!Object.prototype.hasOwnProperty.call(r,"constructor")&&Object.getOwnPropertyNames(r).filter(t=>"constructor"!==t).length>0}function D(t){return"function"==typeof t&&!N(t)}function U(t){if(!D(t))return!1;const e=Object.getOwnPropertyDescriptor(t,"prototype");return!e||void 0===e.value}function z(t){if(null===t||"object"!=typeof t)return!1;const e=t.constructor;return!(!e||e===Object)&&N(e)}function J(t){if(null===t)return"null";if(void 0===t)return"undefined";if("string"==typeof t)return t;if(N(t))return t.name||"AnonymousClass";if(z(t)){const e=t.toString;if("function"==typeof e&&e!==Object.prototype.toString)try{const r=e.call(t);if("string"==typeof r&&r.length)return r}catch{}const r=t.constructor;return r&&r.name?r.name:"AnonymousInstance"}if(U(t)||D(t)){const e=t;return e.name?e.name:"anonymous"}if("object"==typeof t){const e=Object.prototype.toString.call(t),r=/^\[object ([^\]]+)\]$/.exec(e);return r?.[1]?r[1]:"Object"}return typeof t}const Z=Symbol("MiniLoggerRootContext");class W{constructor(t,e,r=[]){this.conf=e,this.baseContext=Array.isArray(r)?[...r]:[],t&&this.baseContext.push(t),this.context=[...this.baseContext],this[Z]=[...this.baseContext]}config(t){return this.conf&&t in this.conf?this.conf[t]:H.getConfig()[t]}for(t,e,...r){let n,o=e;const s=Array.isArray(this.context)?[...this.context]:"string"==typeof this.context&&this.context?[this.context]:[],i=this[Z],a=Array.isArray(i)?[...i]:Array.isArray(this.baseContext)?[...this.baseContext]:[];"string"==typeof t?n=t:void 0!==t&&(N(t)||z(t)||D(t)?n=J(t):!o&&t&&"object"==typeof t&&(o=t));let c=n?[...s,n]:[...s];return new Proxy(this,{get:(t,e,r)=>{const n=Reflect.get(t,e,r);return"config"===e?new Proxy(this.config,{apply:(t,e,n)=>{const[s]=n;return o&&void 0!==s&&s in o?o[s]:Reflect.apply(t,r,n)},get:(t,e)=>o&&e in o?o[e]:Reflect.get(t,e,r)}):"clear"===e?()=>(c=[...a],r):"context"===e?c:"root"===e?[...a]:e===Z?a:"for"===e?(...e)=>{if(o){const t=e[0];"string"==typeof t||N(t)||z(t)||D(t)?e[1]={...o,...e[1]||{}}:t&&"object"==typeof t&&(e[0]={...o,...t})}const r=Array.isArray(t.context)?[...t.context]:"string"==typeof t.context&&t.context?[t.context]:[];t.context=[...c];try{return t.for.apply(t,e)}finally{t.context=r}}:"getConfigSnapshot"===e?()=>{const e=t.getConfigSnapshot();return o&&Object.assign(e,o),e}:n}})}getConfigSnapshot(){return{...H.getConfig(),...this.conf||{}}}getContextSegments(){return Array.isArray(this.context)?[...this.context]:"string"==typeof this.context&&this.context?[this.context]:[]}resolveFilters(t){const e=t.filters||[];return Array.isArray(e)?e.filter(t=>"object"==typeof t&&null!==t&&"function"==typeof t.filter):[]}applyFilters(t,e,r){const n=this.resolveFilters(r);return n.length?n.reduce((t,n)=>{try{const o=n.filter(r,t,[...e]);return"string"==typeof o?o:t}catch{return t}},t):t}createLog(t,e,r,n){const o=!!this.config("style"),s=this.config("separator"),i=H.getConfig().app,a=this.config("timestamp")?(new Date).toISOString():void 0,c=this.getConfigSnapshot(),l=this.getContextSegments(),u="string"==typeof e?e:e instanceof Error?e.message:e+"",f=this.applyFilters(u,l,c),h=this.config("meta")&&n?n:void 0,p=h?this.formatMeta(h):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||e instanceof Error){const n=r||e;n.stack&&(x="string"==typeof e?f:n.message,v=` | ${x} - Stack trace:\n${o?H.theme(n.stack,"stack",t):n.stack}`)}const w={config:c,level:t,context:l,timestamp:a,app:"string"==typeof i&&i.length?i:void 0,separator:s,correlationId:m,rawMessage:u,filteredMessage:f,meta:h,metaString:d,stack:v,stackLabel:x,applyTheme:(e,r)=>o?H.theme(e,r,t):e},O=this.config("pattern"),k=c.pattern||"",j=g(O.length?O:k),_=E.render(w,j.keys);switch(this.config("format")){case"json":{const t=E.render(w,E.keys()),e={};return Object.entries(t).forEach(([t,r])=>{"meta"!==t&&(e[t]=r)}),w.meta&&(e.meta=w.meta),JSON.stringify(e)}case"raw":{let t=this.normalizePatternSpacing(y(j,_));return!j.includesMeta&&d&&(t=t?`${t} ${d}`:d),t}default:throw Error("Unsupported logging format: "+this.config("format"))}}formatMeta(t){try{return JSON.stringify(t)}catch(e){return t+""}}normalizePatternSpacing(t){return t.replace(/[ \t]{2,}/g," ").replace(/^[ \t]+|[ \t]+$/g,"")}log(t,e,r,n){const o=this.config("level");if(c[t]>c[o])return;let s;switch(t){case a.benchmark:s=console.log;break;case a.fatal:case a.critical:case a.error:s=console.error;break;case a.info:case a.verbose:s=console.log;break;case a.debug:s=console.debug;break;case a.trace:s=console.trace;break;case a.warn:s=console.warn;break;case a.silly:s=console.debug;break;default:throw Error("Invalid log level")}s(this.createLog(t,e,r,n))}benchmark(t,e){this.log(a.benchmark,t,void 0,e)}fatal(t,e,r){let n,o;e instanceof Error?(n=e,o=r):o=e,this.log(a.fatal,t,n,o)}critical(t,e,r){let n,o;e instanceof Error?(n=e,o=r):o=e,this.log(a.critical,t,n,o)}silly(t,e=0,r){const n="number"==typeof e?e:0,o="number"==typeof e?r:e;this.config("verbose")<n||this.log(a.silly,t,void 0,o)}verbose(t,e=0,r){const n="number"==typeof e?e:0,o="number"==typeof e?r:e;this.config("verbose")<n||this.log(a.verbose,t,void 0,o)}info(t,e){this.log(a.info,t,void 0,e)}debug(t,e){this.log(a.debug,t,void 0,e)}error(t,e,r){let n,o;e instanceof Error?(n=e,o=r):o=e,this.log(a.error,t,n,o)}warn(t,e){this.log(a.warn,t,void 0,e)}trace(t,e){this.log(a.trace,t,void 0,e)}setConfig(t){this.conf={...this.conf||{},...t}}get root(){return[...this.baseContext]}clear(){return this.context=[...this.baseContext],this}}class H{static{this._factory=(t,e)=>{const r="string"==typeof F.app?[F.app]:[];return new W(t,e,r)}}static{this._config=F}constructor(){}static setFactory(t){H._factory=t,this.global=void 0}static setConfig(t){Object.entries(t).forEach(([t,e])=>{this._config[t]=e})}static getConfig(){return this._config}static get(){return this.ensureRoot()}static verbose(t,e=0,r){return this.get().verbose(t,e,r)}static info(t,e){return this.get().info(t,e)}static trace(t,e){return this.get().trace(t,e)}static debug(t,e){return this.get().debug(t,e)}static benchmark(t,e){return this.get().benchmark(t,e)}static fatal(t,e,r){return this.get().fatal(t,e,r)}static critical(t,e,r){return this.get().critical(t,e,r)}static silly(t,e=0,r){return this.get().silly(t,e,r)}static warn(t,e){return this.get().warn(t,e)}static error(t,e,r){return this.get().error(t,e,r)}static for(t,e,...r){const n=void 0!==e?[t,e]:[t];return(this.global?this.global:this.ensureRoot(r)).for(...n)}static because(t,e){let r=this.ensureRoot().for(t,this._config);return e&&(r=r.for(e)),r}static baseContext(){const t=this._config.app;return"string"==typeof t&&t.length?[t]:[]}static attachRootContext(t){const e=t.root&&Array.isArray(t.root)?[...t.root]:this.baseContext();return(!t.context||Array.isArray(t.context)&&0===t.context.length)&&(t.context=[...e]),t[Z]=[...e],t}static ensureRoot(t=[]){if(!this.global){const e=this._factory(void 0,void 0,...t);this.global=this.attachRootContext(e)}return this.global}static theme(e,r,n,o=u){if(!this._config.style)return e;const s=o[r];if(!s||!Object.keys(s).length)return e;let i=s;const c=Object.assign({},a);return Object.keys(s)[0]in c&&(i=s[n]||{}),Object.keys(i).reduce((e,r)=>{const n=i[r];return n?((e,r,n)=>{try{const o=e;let s=t(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(o)}}function a(t){s="number"==typeof t?s.style(t):s[t]}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},e)}static register(t){return E.register(t)}static unregister(t){return E.unregister(t)}}class q{get log(){return this._log||(this._log=H.for(this)),this._log}constructor(){}}class G extends q{get log(){return super.log.for(this,{filters:[]})}}const B="undefined"!=typeof globalThis&&"function"==typeof globalThis.performance?.now?()=>globalThis.performance.now():"undefined"!=typeof process&&"function"==typeof process.hrtime?.bigint?()=>{const t=process.hrtime.bigint();return Number(t)/1e6}:()=>Date.now();class Q{constructor(t=!1){this._startMs=null,this._elapsedMs=0,this._running=!1,this._laps=[],this._lastLapTotalMs=0,t&&this.start()}get running(){return this._running}get elapsedMs(){return this._running&&null!=this._startMs?this._elapsedMs+(B()-this._startMs):this._elapsedMs}start(){return this._running||(this._running=!0,this._startMs=B()),this}pause(){return this._running&&null!=this._startMs&&(this._elapsedMs+=B()-this._startMs,this._startMs=null,this._running=!1),this}resume(){return this._running||(this._running=!0,this._startMs=B()),this}stop(){return this.pause(),this._elapsedMs}reset(){const t=this._running;return this._startMs=t?B():null,this._elapsedMs=0,this._laps=[],this._lastLapTotalMs=0,this}lap(t){const e=this.elapsedMs,r=e-this._lastLapTotalMs,n={index:this._laps.length,label:t,ms:r,totalMs:e};return this._laps.push(n),this._lastLapTotalMs=e,n}get laps(){return this._laps}toString(){return X(this.elapsedMs)}toJSON(){return{running:this._running,elapsedMs:this.elapsedMs,laps:this._laps.slice()}}}function X(t){const e=0>t?"-":"",r=Math.abs(t),n=Math.floor(r/36e5),o=Math.floor(r%36e5/6e4),s=Math.floor(r%6e4/1e3),i=Math.floor(r%1e3),a=(t,e)=>t.toString().padStart(e,"0");return`${e}${a(n,2)}:${a(o,2)}:${a(s,2)}.${a(i,3)}`}function Y(t=a.info,e=0,r=(...t)=>"called with "+t,n){return(o,s,i)=>{if(!i||"number"==typeof i)throw Error("Logging decoration only applies to methods");const a=o instanceof q?o.log.for(o[s]):H.for(o).for(o[s]),c=a[t].bind(a),l=i.value;return i.value=new Proxy(l,{apply(t,o,s){c(r(...s),e);try{const e=Reflect.apply(t,o,s);return e instanceof Promise?e.then(t=>(n&&c(n(void 0,t)),t)).catch(t=>{throw n&&a.error(n(t)),t}):(n&&c(n(void 0,e)),e)}catch(t){throw n&&a.error(n(t)),t}}}),i}}function tt(){return(t,e,r)=>{if(!r||"number"==typeof r)throw Error("benchmark decoration only applies to methods");const n=t instanceof q?t.log.for(t[e]):H.for(t).for(t[e]),o=r.value;return r.value=new Proxy(o,{apply(t,e,r){const o=B();try{const s=Reflect.apply(t,e,r);return s instanceof Promise?s.then(t=>(n.benchmark(`completed in ${B()-o}ms`),t)).catch(t=>{throw n.benchmark(`failed in ${B()-o}ms`),t}):(n.benchmark(`completed in ${B()-o}ms`),s)}catch(t){throw n.benchmark(`failed in ${B()-o}ms`),t}}}),r}}function et(){return Y(a.debug,0,(...t)=>"called with "+t,(t,e)=>t?"Failed with: "+t:e?"Completed with "+JSON.stringify(e):"completed")}function rt(){return Y(a.info)}function nt(){return Y(a.silly)}function ot(){return Y(a.trace)}function st(t=0){return t||(t=0),Y(a.verbose,t)}function it(){return(t,e,r)=>{if(!r)throw Error("final decorator can only be used on methods");return r?.configurable&&(r.configurable=!1),r}}class at extends G{constructor(t,e){super(),this.regexp=t,this.replacement=e}match(t){const e=this.regexp.exec(t);return this.regexp.lastIndex=0,e}filter(t,e,r){const n=this.log.for(this.filter);if(!this.match(e))return e;try{return e.replace(this.regexp,this.replacement)}catch(t){n.error("PatternFilter replacement error: "+t)}return""}}r([it(),n("design:type",Function),n("design:paramtypes",[String]),n("design:returntype",void 0)],at.prototype,"match",null);class ct extends Error{constructor(t,e,r){if(e instanceof ct)return e;super(`[${t}][${r}] ${e instanceof Error?e.message:e}`),this.code=r,e instanceof Error&&(this.stack=e.stack)}get message(){return`[${this.name}] ${this.code} | ${super.message.replaceAll(/\[.*?Error\]\[\d+\]\s/g,"")}`}toString(){return this.message}}const lt="##VERSION##",ut="##COMMIT##",ft="##FULL_VERSION##",ht="##PACKAGE##";export{ct as BaseError,o as BrowserEnvKey,ut as COMMIT,f as DefaultLoggingConfig,i as DefaultPlaceholderWrappers,u as DefaultTheme,s as ENV_PATH_DELIMITER,L as Environment,ft as FULL_VERSION,G as LogFilter,a as LogLevel,h as LogParameterRegistry,q as LoggedClass,F as LoggedEnvironment,H as Logging,l as LoggingMode,W as MiniLogger,c as NumericLogLevels,ht as PACKAGE_NAME,at as PatternFilter,Z as ROOT_CONTEXT_SYMBOL,Q as StopWatch,lt as VERSION,tt as benchmark,g as compileLogPattern,et as debug,M as escapeRegExp,it as final,X as formatMs,J as getObjectName,rt as info,T as isBrowser,N as isClass,D as isFunction,z as isInstance,U as isMethod,Y as log,E as logParameterRegistry,B as now,O as padEnd,k as patchPlaceholders,j as patchString,y as renderPattern,$ as sf,nt as silly,C as stringFormat,_ as toCamelCase,A as toENVFormat,R as toKebabCase,S as toPascalCase,P as toSnakeCase,ot as trace,st as verbose};
|
|
1
|
+
import{style as t}from"styled-string-builder";export*from"styled-string-builder";import{ObjectAccumulator as e}from"typed-object-accumulator";import{__decorate as r,__metadata as n}from"tslib";const o="ENV",s="__",i=["${","}"];var a;(t=>{t.benchmark="benchmark",t.fatal="fatal",t.critical="critical",t.error="error",t.warn="warn",t.info="info",t.verbose="verbose",t.debug="debug",t.trace="trace",t.silly="silly"})(a||(a={}));const c={benchmark:0,fatal:1,critical:2,error:3,warn:6,info:9,verbose:12,debug:15,trace:18,silly:21};var l;(t=>{t.RAW="raw",t.JSON="json"})(l||(l={}));const u={app:{},separator:{},class:{fg:34},id:{fg:36},stack:{},timestamp:{},message:{error:{fg:31}},method:{},action:{fg:[18],style:[1,3]},logLevel:{benchmark:{fg:32,style:["bold"]},fatal:{fg:31,style:["bold"]},critical:{fg:31,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"]}}},f={env:"development",verbose:0,level:a.info,logLevel:!0,style:!1,filters:[],contextSeparator:".",separator:"-",timestamp:!0,timestampFormat:"HH:mm:ss.SSS",context:!0,meta:!0,format:l.RAW,pattern:"{level} [{timestamp}] {app} {context} {separator} {message} {stack}",theme:u};class h{constructor(){this.descriptors=new Map}register(t){return this.descriptors.set(t.key,t),this}unregister(t){return this.descriptors.delete(t),this}get(t){return this.descriptors.get(t)}render(t,e){const r={},n=new Set;return e.forEach(e=>{if(n.has(e))return;n.add(e);const o=this.descriptors.get(e);if(!o)return;if(o.shouldInclude&&!o.shouldInclude(t))return;const s=o.render(t);if(void 0===s)return;const i=o.style?o.style(s,t):s;r[e]=i}),r}keys(){return Array.from(this.descriptors.keys())}}const p=new Map;function g(t){if(p.has(t))return p.get(t);const e=d(t||""),r=new Set,n=[];m(e,r,n);const o={pattern:t,segments:e,keys:n,includesMeta:r.has("meta")};return p.set(t,o),o}function y(t,e){return v(t.segments,e).text}function d(t){const e=[];let r=0;for(;r<t.length;){const n=t[r];if("["===n){const n=b(t,r,"[","]");if(-1===n){e.push({type:"literal",value:"["}),r++;continue}const o=t.slice(r+1,n);e.push({type:"optional",prefix:"[",suffix:"]",children:d(o)}),r=n+1;continue}if("{"===n){const n=t.indexOf("}",r+1);if(-1===n){e.push({type:"literal",value:"{"}),r++;continue}const o=t.slice(r+1,n).trim();e.push({type:"parameter",key:o}),r=n+1;continue}let o=r;for(;o<t.length&&"["!==t[o]&&"{"!==t[o];)o++;const s=t.slice(r,o);s.length&&e.push({type:"literal",value:s}),r=o}return e}function b(t,e,r,n){let o=0;for(let s=e;s<t.length;s++){const e=t[s];if(e===r)o++;else if(e===n&&(o--,0===o))return s}return-1}function m(t,e,r){for(const n of t)"parameter"===n.type&&(e.has(n.key)||(e.add(n.key),r.push(n.key))),"optional"===n.type&&m(n.children,e,r)}function v(t,e){const r=[];let n=!1;for(const o of t){const t=x(o,e);t.text.length&&r.push(t.text),n=n||t.hasValue}return{text:r.join(""),hasValue:n}}function x(t,e){if("literal"===t.type)return{text:t.value,hasValue:!1};if("parameter"===t.type){const r=e[t.key]??"";return{text:r,hasValue:r.length>0}}const r=v(t.children,e);return r.hasValue?{text:`${t.prefix}${r.text}${t.suffix}`,hasValue:!0}:{text:"",hasValue:!1}}const w=new h;w.register({key:"level",render:t=>void 0!==t.action?void 0!==t.actionCode?`${t.action} - ${t.actionCode}`:t.action:!1!==t.config.logLevel?t.level.toUpperCase():void 0,style:(t,e)=>void 0!==e.action?e.applyTheme(t,"action"):e.applyTheme(t,"logLevel")}).register({key:"timestamp",shouldInclude:t=>!(!t.config.timestamp||!t.timestamp),render:t=>t.timestamp,style:(t,e)=>e.applyTheme(t,"timestamp")}).register({key:"app",shouldInclude:t=>!!t.app,render:t=>t.app,style:(t,e)=>e.applyTheme(t,"app")}).register({key:"context",shouldInclude:t=>!1!==t.config.context&&t.context.length>0,render(t){const e=t.config.contextSeparator||".";return t.context.join(e)},style:(t,e)=>e.applyTheme(t,"class")}).register({key:"separator",shouldInclude:t=>!!t.separator,render:t=>t.separator,style:(t,e)=>e.applyTheme(t,"separator")}).register({key:"message",render:t=>t.filteredMessage,style:(t,e)=>e.applyTheme(t,"message")}).register({key:"stack",shouldInclude:t=>!!t.stack,render:t=>t.stack,style:(t,e)=>e.applyTheme(t,"stack")}).register({key:"meta",shouldInclude:t=>!!t.metaString,render:t=>t.metaString}).register({key:"correlationId",shouldInclude:t=>!!t.correlationId,render:t=>t.correlationId,style:(t,e)=>e.applyTheme(t,"id")}).register({key:"action",shouldInclude:t=>void 0!==t.action,render:t=>t.action,style:(t,e)=>e.applyTheme(t,"action")}).register({key:"actionCode",shouldInclude:t=>void 0!==t.actionCode,render:t=>void 0===t.actionCode?void 0:t.actionCode+"",style:(t,e)=>e.applyTheme(t,"action")}).register({key:"errorCode",shouldInclude:t=>void 0!==t.errorCode,render:t=>void 0===t.errorCode?void 0:t.errorCode+""}).register({key:"errorName",shouldInclude:t=>void 0!==t.errorName,render:t=>t.errorName});const E=w;function O(t,e,r=" "){if(1!==r.length)throw Error("Invalid character length for padding. must be one!");return t.padEnd(e,r)}function k(t,e,r="${",n="}",o="g"){return j(t,Object.entries(e).reduce((t,[e,o])=>(t[`${r}${e}${n}`]=o,t),{}),o)}function j(t,e,r="g"){return Object.entries(e).forEach(([e,n])=>{const o=RegExp(S(e),r);t=t.replace(o,n)}),t}function _(t){return t.replace(/(?:^\w|[A-Z]|\b\w)/g,(t,e)=>0===e?t.toLowerCase():t.toUpperCase()).replace(/\s+/g,"")}function A(t){return P(t).toUpperCase()}function P(t){return t.replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/[\s-]+/g,"_").toLowerCase()}function C(t){return t.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[\s_]+/g,"-").toLowerCase()}function R(t){return t.replace(/(?:^\w|[A-Z]|\b\w)/g,t=>t.toUpperCase()).replace(/\s+/g,"")}function S(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function M(t,...e){if(e.length>1&&!e.every(t=>"string"==typeof t||"number"==typeof t))throw Error("Only string and number arguments are supported for multiple replacements.");if(1===e.length&&"object"==typeof e[0]){const r=e[0];return Object.entries(r).reduce((t,[e,r])=>t.replace(RegExp(`\\{${e}\\}`,"g"),()=>r),t)}return t.replace(/{(\d+)}/g,(t,r)=>void 0!==e[r]?e[r].toString():"undefined")}const $=M;function T(){return Object.getPrototypeOf(Object.getPrototypeOf(globalThis))!==Object.prototype}const I=Symbol("EnvironmentEmpty"),K=Symbol("EnvironmentModel"),N=/^[a-z][a-zA-Z0-9]*$/;class V extends e{static{this.factory=()=>new V}constructor(){super(),Object.defineProperty(this,K,{value:{},writable:!0,enumerable:!1,configurable:!1})}static isProxyableObject(t){if(!t||"object"!=typeof t)return!1;if(Array.isArray(t))return!0;const e=Object.getPrototypeOf(t);return e===Object.prototype||null===e}fromEnv(t){let e;return T()?e=globalThis[o]||{}:(e=globalThis.process.env,t=A(t)),this.parseEnvValue(e[t])}parseEnvValue(t){return V.parseRuntimeValue(t)}static parseRuntimeValue(t){if("string"!=typeof t)return t;if("true"===t)return!0;if("false"===t)return!1;const e=t.trim();return/^-?\d+(\.\d+)?$/.test(e)?Number(e):t}expand(t){Object.entries(t).forEach(([t,e])=>{V.mergeModel(this[K],t,e),Object.defineProperty(this,t,{get:()=>{const r=this.fromEnv(t);return void 0!==r?r:e&&"object"==typeof e?V.buildEnvProxy(e,[t]):""===e?I:e},set:t=>{e=t},configurable:!0,enumerable:!0})})}orThrow(){const t=this[K],e=t=>void 0!==t?this.parseEnvValue(t):void 0,r=(t,e=!1)=>V.missingEnvError(t,e),n=(t,o)=>{const s={get(s,i){if(i===Symbol.toPrimitive)return()=>V.buildEnvKey(o);if("toString"===i)return()=>V.buildEnvKey(o);if("valueOf"===i)return()=>V.buildEnvKey(o);if("symbol"==typeof i)return;if("toJSON"===i)return;if("then"===i)return;if("constructor"===i)return Object;if(Array.isArray(t)&&"length"===i)return t.length;if(Array.isArray(t)&&i in Array.prototype){const e=Reflect.get(t,i,t);return"function"==typeof e?e.bind(t):e}const a=[...o,i],{key:c,value:l}=V.readRuntimeForPath(a);if("string"==typeof l&&0===l.length)throw r(c,!0);const u=e(l);if(void 0!==u){if("string"==typeof u&&0===u.length)throw r(c,!0);return u}if(!t||!Object.prototype.hasOwnProperty.call(t,i))throw r(c);const f=t[i];if(void 0!==f){if(""===f)throw r(c);return V.isProxyableObject(f)?n(f,a):f}},ownKeys:()=>t?Reflect.ownKeys(t):[],getOwnPropertyDescriptor(e,r){if(t)return Object.prototype.hasOwnProperty.call(t,r)?{enumerable:!0,configurable:!0}:void 0}};return new Proxy(Array.isArray(t)?[]:{},s)};return new Proxy(this,{get(o,s,i){if("string"!=typeof s)return Reflect.get(o,s,i);if(!Object.prototype.hasOwnProperty.call(t,s))return Reflect.get(o,s,i);const{key:a,value:c}=V.readRuntimeForPath([s]);if("string"==typeof c&&0===c.length)throw r(a,!0);const l=e(c);if(void 0!==l){if("string"==typeof l&&0===l.length)throw r(a,!0);return l}const u=t[s];if(V.isProxyableObject(u))return n(u,[s]);if(void 0===u)return Reflect.get(o,s,i);const f=Reflect.get(o,s);if(void 0===f||""===f)throw r(a,""===f);return f}})}static instance(...t){if(!V._instance){const e=V.factory(...t),r=new Proxy(e,{get(t,e,r){const n=Reflect.get(t,e,r);if(n!==I&&("string"!=typeof e||!Object.prototype.hasOwnProperty.call(t,e)||void 0!==n)){if(void 0!==n)return n;if("string"==typeof e){if("app"===e)return;return V.buildEnvProxy(void 0,[e])}return n}}});V._instance=r}return V._instance}accumulate(t){return super.accumulate(t),this}static accumulate(t){const e=V.instance();return Object.keys(e).forEach(t=>{const r=Object.getOwnPropertyDescriptor(e,t);r&&r.configurable&&r.enumerable&&Object.defineProperty(e,t,{...r,enumerable:!1})}),e.accumulate(t),e}static get(t){return V._instance.get(t)}static formatEnvSegment(t){return N.test(t)?A(t):t.toUpperCase()}static buildEnvKey(t){return t.map(t=>V.formatEnvSegment(t)).join(s)}static buildRawKey(t){return t.join(s)}static readRuntimeForPath(t){const e=V.buildEnvKey(t),r=V.buildRawKey(t),n=V.readRuntimeEnv(e);if(void 0!==n)return{key:e,value:n};if(r!==e){const t=V.readRuntimeEnv(r);if(void 0!==t)return{key:r,value:t}}return{key:e,value:void 0}}static runtimeEnv(){return T()?globalThis[o]:globalThis?.process?.env}static getRuntimeChildKeys(t){const e=V.runtimeEnv();if(!e)return[];const r=[V.buildEnvKey(t),V.buildRawKey(t)],n=new Set;return Object.keys(e).forEach(t=>{r.forEach(e=>{if(!e)return;const r=`${e}${s}`;if(t.startsWith(r)){const e=t.slice(r.length).split(s)[0];e&&n.add(e)}})}),[...n]}static hasRuntimePath(t){const{value:e}=V.readRuntimeForPath(t);return void 0!==e||V.getRuntimeChildKeys(t).length>0}static buildEnvProxy(t,e){const r=t=>V.readRuntimeEnv(t),n=/^[0-9]+$/,o={get(o,s){if(s===Symbol.toPrimitive)return()=>V.buildEnvKey(e);if("toString"===s)return()=>V.buildEnvKey(e);if("valueOf"===s)return()=>V.buildEnvKey(e);if("symbol"==typeof s)return;if(Array.isArray(t)&&s in Array.prototype){const e=Reflect.get(t,s,t);return"function"==typeof e?e.bind(t):e}if(Array.isArray(t)&&"length"===s)return t.length;const i=[...e,s],a=V.buildEnvKey(i),c=V.buildRawKey(i);let l=r(a);if(void 0===l&&c!==a&&(l=r(c)),void 0!==l)return V.parseRuntimeValue(l);const u=!!t&&Object.prototype.hasOwnProperty.call(t,s),f=u?t[s]:void 0,h=V.hasRuntimePath(i);return Array.isArray(t)&&(t=>"string"==typeof t&&n.test(t))(s)?u?V.isProxyableObject(f)?V.buildEnvProxy(f,i):V.parseRuntimeValue(f):h?V.buildEnvProxy(void 0,i):void 0:f&&"object"==typeof f&&V.isProxyableObject(f)?V.buildEnvProxy(f,i):u&&""===f||u&&void 0===f?void 0:u?V.parseRuntimeValue(f):V.buildEnvProxy(void 0,i)},ownKeys(){const r=new Set;return t&&Reflect.ownKeys(t).forEach(t=>r.add(t)),V.getRuntimeChildKeys(e).forEach(t=>r.add(t)),[...r]},getOwnPropertyDescriptor:(r,n)=>t&&Object.prototype.hasOwnProperty.call(t,n)?Reflect.getOwnPropertyDescriptor(t,n):"string"==typeof n&&V.hasRuntimePath([...e,n])?{enumerable:!0,configurable:!0}:void 0};return new Proxy(Array.isArray(t)?[]:{},o)}static keys(t=!0){return V.instance().keys().map(e=>t?A(e):e)}static mergeModel(t,e,r){if(t){if(r&&"object"==typeof r&&!Array.isArray(r)){const n=t[e],o=n&&"object"==typeof n&&!Array.isArray(n)?n:{};return t[e]=o,void Object.entries(r).forEach(([t,e])=>{V.mergeModel(o,t,e)})}t[e]=r}}static readRuntimeEnv(t){if(T()){const e=globalThis[o];return e?e[t]:void 0}return globalThis?.process?.env?.[t]}static missingEnvError(t,e){return Error(`Environment variable ${t} is required but was ${e?"an empty string":"undefined"}.`)}}const L=V.accumulate(Object.assign({app:void 0},f,{env:(T()&&globalThis[o]?globalThis[o].NODE_ENV:globalThis.process.env.NODE_ENV)||"development"}));function F(t){if("function"!=typeof t)return!1;try{const e=Function.prototype.toString.call(t);if(/^\s*class[\s{]/.test(e))return!0}catch{}const e=Object.getOwnPropertyDescriptor(t,"prototype");if(!e||!e.value)return!1;if(!1===e.writable)return!0;const r=t.prototype;return!!Object.prototype.hasOwnProperty.call(r,"constructor")&&Object.getOwnPropertyNames(r).filter(t=>"constructor"!==t).length>0}function D(t){return"function"==typeof t&&!F(t)}function U(t){if(!D(t))return!1;const e=Object.getOwnPropertyDescriptor(t,"prototype");return!e||void 0===e.value}function z(t){if(null===t||"object"!=typeof t)return!1;const e=t.constructor;return!(!e||e===Object)&&F(e)}function J(t){if(null===t)return"null";if(void 0===t)return"undefined";if("string"==typeof t)return t;if(F(t))return t.name||"AnonymousClass";if(z(t)){const e=t.toString;if("function"==typeof e&&e!==Object.prototype.toString)try{const r=e.call(t);if("string"==typeof r&&r.length)return r}catch{}const r=t.constructor;return r&&r.name?r.name:"AnonymousInstance"}if(U(t)||D(t)){const e=t;return e.name?e.name:"anonymous"}if("object"==typeof t){const e=Object.prototype.toString.call(t),r=/^\[object ([^\]]+)\]$/.exec(e);return r?.[1]?r[1]:"Object"}return typeof t}const Z=Symbol("MiniLoggerRootContext");class W{constructor(t,e,r=[]){this.conf=e,this.baseContext=Array.isArray(r)?[...r]:[],t&&this.baseContext.push(t),this.context=[...this.baseContext],this[Z]=[...this.baseContext]}config(t){return this.conf&&t in this.conf?this.conf[t]:H.getConfig()[t]}for(t,e,...r){let n,o=e;const s=Array.isArray(this.context)?[...this.context]:"string"==typeof this.context&&this.context?[this.context]:[],i=this[Z],a=Array.isArray(i)?[...i]:Array.isArray(this.baseContext)?[...this.baseContext]:[];"string"==typeof t?n=t:void 0!==t&&(F(t)||z(t)||D(t)?n=J(t):!o&&t&&"object"==typeof t&&(o=t));let c=n?[...s,n]:[...s];return new Proxy(this,{get:(t,e,r)=>{const n=Reflect.get(t,e,r);return"config"===e?new Proxy(this.config,{apply:(t,e,n)=>{const[s]=n;return o&&void 0!==s&&s in o?o[s]:Reflect.apply(t,r,n)},get:(t,e)=>o&&e in o?o[e]:Reflect.get(t,e,r)}):"clear"===e?()=>(c=[...a],r):"context"===e?c:"root"===e?[...a]:e===Z?a:"for"===e?(...e)=>{if(o){const t=e[0];"string"==typeof t||F(t)||z(t)||D(t)?e[1]={...o,...e[1]||{}}:t&&"object"==typeof t&&(e[0]={...o,...t})}const r=Array.isArray(t.context)?[...t.context]:"string"==typeof t.context&&t.context?[t.context]:[];t.context=[...c];try{return t.for.apply(t,e)}finally{t.context=r}}:"getConfigSnapshot"===e?()=>{const e=t.getConfigSnapshot();return o&&Object.assign(e,o),e}:n}})}getConfigSnapshot(){return{...H.getConfig(),...this.conf||{}}}getContextSegments(){return Array.isArray(this.context)?[...this.context]:"string"==typeof this.context&&this.context?[this.context]:[]}resolveFilters(t){const e=t.filters||[];return Array.isArray(e)?e.filter(t=>"object"==typeof t&&null!==t&&"function"==typeof t.filter):[]}applyFilters(t,e,r){const n=this.resolveFilters(r);return n.length?n.reduce((t,n)=>{try{const o=n.filter(r,t,[...e]);return"string"==typeof o?o:t}catch{return t}},t):t}createLog(t,e,r,n,o,s){const i=!!this.config("style"),a=this.config("separator"),c=H.getConfig().app,l=this.config("timestamp")?(new Date).toISOString():void 0,u=this.getConfigSnapshot(),f=this.getContextSegments(),h="string"==typeof e?e:e instanceof Error?e.message:e+"",p=this.applyFilters(h,f,u),d=this.config("meta")&&n?n:void 0,b=d?this.formatMeta(d):void 0,m=b?this.applyFilters(b,f,u):void 0,v=this.config("correlationId"),x=null!=v?v+"":void 0;let w,O,k,j;if(r||e instanceof Error){const n=r||e,o=n.code;"number"==typeof o&&(k=o);const s=n.name;"string"==typeof s&&s.length&&(j=s),n.stack&&(O="string"==typeof e?p:n.message,w=` | ${O} - Stack trace:\n${i?H.theme(n.stack,"stack",t):n.stack}`)}const _={config:u,level:t,context:f,timestamp:l,app:"string"==typeof c&&c.length?c:void 0,separator:a,correlationId:x,rawMessage:h,filteredMessage:p,meta:d,metaString:m,stack:w,stackLabel:O,action:o,actionCode:s,errorCode:k,errorName:j,applyTheme:(e,r)=>i?H.theme(e,r,t):e},A=this.config("pattern"),P=u.pattern||"",C=g(A.length?A:P),R=E.render(_,C.keys);switch(this.config("format")){case"json":{const t=E.render(_,E.keys()),e={};return Object.entries(t).forEach(([t,r])=>{"meta"!==t&&(e[t]=r)}),_.meta&&(e.meta=_.meta),JSON.stringify(e)}case"raw":{let t=this.normalizePatternSpacing(y(C,R));return!C.includesMeta&&m&&(t=t?`${t} ${m}`:m),t}default:throw Error("Unsupported logging format: "+this.config("format"))}}formatMeta(t){try{return JSON.stringify(t)}catch(e){return t+""}}normalizePatternSpacing(t){return t.replace(/[ \t]{2,}/g," ").replace(/^[ \t]+|[ \t]+$/g,"")}log(t,e,r,n){const o=this.config("level");if(c[t]>c[o])return;let s;switch(t){case a.benchmark:s=console.log;break;case a.fatal:case a.critical:case a.error:s=console.error;break;case a.info:case a.verbose:s=console.log;break;case a.debug:s=console.debug;break;case a.trace:s=console.trace;break;case a.warn:s=console.warn;break;case a.silly:s=console.debug;break;default:throw Error("Invalid log level")}s(this.createLog(t,e,r,n))}benchmark(t,e){this.log(a.benchmark,t,void 0,e)}action(t,e,r,...n){let o;n.length&&n[0]&&"object"==typeof n[0]&&(o=n[0]),this.logAction(t,e,r,o)}logAction(t,e,r,n){}fatal(t,e,r){let n,o;e instanceof Error?(n=e,o=r):o=e,this.log(a.fatal,t,n,o)}critical(t,e,r){let n,o;e instanceof Error?(n=e,o=r):o=e,this.log(a.critical,t,n,o)}silly(t,e=0,r){const n="number"==typeof e?e:0,o="number"==typeof e?r:e;this.config("verbose")<n||this.log(a.silly,t,void 0,o)}verbose(t,e=0,r){const n="number"==typeof e?e:0,o="number"==typeof e?r:e;this.config("verbose")<n||this.log(a.verbose,t,void 0,o)}info(t,e){this.log(a.info,t,void 0,e)}debug(t,e){this.log(a.debug,t,void 0,e)}error(t,e,r){let n,o;e instanceof Error?(n=e,o=r):o=e,this.log(a.error,t,n,o)}warn(t,e){this.log(a.warn,t,void 0,e)}trace(t,e){this.log(a.trace,t,void 0,e)}setConfig(t){this.conf={...this.conf||{},...t}}get root(){return[...this.baseContext]}clear(){return this.context=[...this.baseContext],this}}class H{static{this._factory=(t,e)=>{const r="string"==typeof L.app?[L.app]:[];return new W(t,e,r)}}static{this._config=L}constructor(){}static setFactory(t){H._factory=t,this.global=void 0}static setConfig(t){Object.entries(t).forEach(([t,e])=>{this._config[t]=e})}static getConfig(){return this._config}static get(){return this.ensureRoot()}static verbose(t,e=0,r){return this.get().verbose(t,e,r)}static info(t,e){return this.get().info(t,e)}static trace(t,e){return this.get().trace(t,e)}static debug(t,e){return this.get().debug(t,e)}static benchmark(t,e){return this.get().benchmark(t,e)}static action(t,e,r,...n){return this.get().action(t,e,r,...n)}static fatal(t,e,r){return this.get().fatal(t,e,r)}static critical(t,e,r){return this.get().critical(t,e,r)}static silly(t,e=0,r){return this.get().silly(t,e,r)}static warn(t,e){return this.get().warn(t,e)}static error(t,e,r){return this.get().error(t,e,r)}static for(t,e,...r){const n=void 0!==e?[t,e]:[t];return(this.global?this.global:this.ensureRoot(r)).for(...n)}static because(t,e){let r=this.ensureRoot().for(t,this._config);return e&&(r=r.for(e)),r}static baseContext(){const t=this._config.app;return"string"==typeof t&&t.length?[t]:[]}static attachRootContext(t){const e=t.root&&Array.isArray(t.root)?[...t.root]:this.baseContext();return(!t.context||Array.isArray(t.context)&&0===t.context.length)&&(t.context=[...e]),t[Z]=[...e],t}static ensureRoot(t=[]){if(!this.global){const e=this._factory(void 0,void 0,...t);this.global=this.attachRootContext(e)}return this.global}static theme(e,r,n,o=u){if(!this._config.style)return e;const s=o[r];if(!s||!Object.keys(s).length)return e;let i=s;const c=Object.assign({},a);return Object.keys(s)[0]in c&&(i=s[n]||{}),Object.keys(i).reduce((e,r)=>{const n=i[r];return n?((e,r,n)=>{try{const o=e;let s=t(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(o)}}function a(t){s="number"==typeof t?s.style(t):s[t]}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},e)}static register(t){return E.register(t)}static unregister(t){return E.unregister(t)}}class q{get log(){return this._log||(this._log=H.for(this)),this._log}constructor(){}}class G extends q{get log(){return super.log.for(this,{filters:[]})}}const B="undefined"!=typeof globalThis&&"function"==typeof globalThis.performance?.now?()=>globalThis.performance.now():"undefined"!=typeof process&&"function"==typeof process.hrtime?.bigint?()=>{const t=process.hrtime.bigint();return Number(t)/1e6}:()=>Date.now();class Q{constructor(t=!1){this._startMs=null,this._elapsedMs=0,this._running=!1,this._laps=[],this._lastLapTotalMs=0,t&&this.start()}get running(){return this._running}get elapsedMs(){return this._running&&null!=this._startMs?this._elapsedMs+(B()-this._startMs):this._elapsedMs}start(){return this._running||(this._running=!0,this._startMs=B()),this}pause(){return this._running&&null!=this._startMs&&(this._elapsedMs+=B()-this._startMs,this._startMs=null,this._running=!1),this}resume(){return this._running||(this._running=!0,this._startMs=B()),this}stop(){return this.pause(),this._elapsedMs}reset(){const t=this._running;return this._startMs=t?B():null,this._elapsedMs=0,this._laps=[],this._lastLapTotalMs=0,this}lap(t){const e=this.elapsedMs,r=e-this._lastLapTotalMs,n={index:this._laps.length,label:t,ms:r,totalMs:e};return this._laps.push(n),this._lastLapTotalMs=e,n}get laps(){return this._laps}toString(){return X(this.elapsedMs)}toJSON(){return{running:this._running,elapsedMs:this.elapsedMs,laps:this._laps.slice()}}}function X(t){const e=0>t?"-":"",r=Math.abs(t),n=Math.floor(r/36e5),o=Math.floor(r%36e5/6e4),s=Math.floor(r%6e4/1e3),i=Math.floor(r%1e3),a=(t,e)=>t.toString().padStart(e,"0");return`${e}${a(n,2)}:${a(o,2)}:${a(s,2)}.${a(i,3)}`}function Y(t=a.info,e=0,r=(...t)=>"called with "+t,n){return(o,s,i)=>{if(!i||"number"==typeof i)throw Error("Logging decoration only applies to methods");const a=o instanceof q?o.log.for(o[s]):H.for(o).for(o[s]),c=a[t].bind(a),l=i.value;return i.value=new Proxy(l,{apply(t,o,s){c(r(...s),e);try{const e=Reflect.apply(t,o,s);return e instanceof Promise?e.then(t=>(n&&c(n(void 0,t)),t)).catch(t=>{throw n&&a.error(n(t)),t}):(n&&c(n(void 0,e)),e)}catch(t){throw n&&a.error(n(t)),t}}}),i}}function tt(){return(t,e,r)=>{if(!r||"number"==typeof r)throw Error("benchmark decoration only applies to methods");const n=t instanceof q?t.log.for(t[e]):H.for(t).for(t[e]),o=r.value;return r.value=new Proxy(o,{apply(t,e,r){const o=B();try{const s=Reflect.apply(t,e,r);return s instanceof Promise?s.then(t=>(n.benchmark(`completed in ${B()-o}ms`),t)).catch(t=>{throw n.benchmark(`failed in ${B()-o}ms`),t}):(n.benchmark(`completed in ${B()-o}ms`),s)}catch(t){throw n.benchmark(`failed in ${B()-o}ms`),t}}}),r}}function et(){return Y(a.debug,0,(...t)=>"called with "+t,(t,e)=>t?"Failed with: "+t:e?"Completed with "+JSON.stringify(e):"completed")}function rt(){return Y(a.info)}function nt(){return Y(a.silly)}function ot(){return Y(a.trace)}function st(t=0){return t||(t=0),Y(a.verbose,t)}function it(){return(t,e,r)=>{if(!r)throw Error("final decorator can only be used on methods");return r?.configurable&&(r.configurable=!1),r}}class at extends G{constructor(t,e){super(),this.regexp=t,this.replacement=e}match(t){const e=this.regexp.exec(t);return this.regexp.lastIndex=0,e}filter(t,e,r){const n=this.log.for(this.filter);if(!this.match(e))return e;try{return e.replace(this.regexp,this.replacement)}catch(t){n.error("PatternFilter replacement error: "+t)}return""}}r([it(),n("design:type",Function),n("design:paramtypes",[String]),n("design:returntype",void 0)],at.prototype,"match",null);class ct extends Error{constructor(t,e,r){if(e instanceof ct)return e;super(`[${t}][${r}] ${e instanceof Error?e.message:e}`),this.code=r,e instanceof Error&&(this.stack=e.stack)}get message(){return`[${this.name}] ${this.code} | ${super.message.replaceAll(/\[.*?Error\]\[\d+\]\s/g,"")}`}toString(){return this.message}}const lt="##VERSION##",ut="##COMMIT##",ft="##FULL_VERSION##",ht="##PACKAGE##";export{ct as BaseError,o as BrowserEnvKey,ut as COMMIT,f as DefaultLoggingConfig,i as DefaultPlaceholderWrappers,u as DefaultTheme,s as ENV_PATH_DELIMITER,V as Environment,ft as FULL_VERSION,G as LogFilter,a as LogLevel,h as LogParameterRegistry,q as LoggedClass,L as LoggedEnvironment,H as Logging,l as LoggingMode,W as MiniLogger,c as NumericLogLevels,ht as PACKAGE_NAME,at as PatternFilter,Z as ROOT_CONTEXT_SYMBOL,Q as StopWatch,lt as VERSION,tt as benchmark,g as compileLogPattern,et as debug,S as escapeRegExp,it as final,X as formatMs,J as getObjectName,rt as info,T as isBrowser,F as isClass,D as isFunction,z as isInstance,U as isMethod,Y as log,E as logParameterRegistry,B as now,O as padEnd,k as patchPlaceholders,j as patchString,y as renderPattern,M as sf,nt as silly,$ as stringFormat,_ as toCamelCase,A as toENVFormat,C as toKebabCase,R as toPascalCase,P as toSnakeCase,ot as trace,st as verbose};
|
|
2
2
|
//# sourceMappingURL=logging.js.map
|