@decaf-ts/logging 0.22.1 → 0.23.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 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: 7.6 KB kb gzipped
50
+ Minimal size: 7.9 KB kb gzipped
51
51
 
52
52
 
53
53
  # Logging Library — Detailed Description
package/dist/logging.cjs CHANGED
@@ -1,2 +1,2 @@
1
- var e,t;e=this,t=function(e,t,r,n){"use strict";const o="ENV",s="__",i=["${","}"];var a;e.LogLevel=void 0,(a=e.LogLevel||(e.LogLevel={})).benchmark="benchmark",a.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:{},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 p=new Map;function h(e){if(p.has(e))return p.get(e);const t=d(e||""),r=new Set,n=[];m(t,r,n);const o={pattern:e,segments:t,keys:n,includesMeta:r.has("meta")};return p.set(e,o),o}function y(e,t){return v(e.segments,t).text}function d(e){const t=[];let r=0;for(;r<e.length;){const n=e[r];if("["===n){const n=b(e,r,"[","]");if(-1===n){t.push({type:"literal",value:"["}),r++;continue}const o=e.slice(r+1,n);t.push({type:"optional",prefix:"[",suffix:"]",children:d(o)}),r=n+1;continue}if("{"===n){const n=e.indexOf("}",r+1);if(-1===n){t.push({type:"literal",value:"{"}),r++;continue}const o=e.slice(r+1,n).trim();t.push({type:"parameter",key:o}),r=n+1;continue}let o=r;for(;o<e.length&&"["!==e[o]&&"{"!==e[o];)o++;const s=e.slice(r,o);s.length&&t.push({type:"literal",value:s}),r=o}return t}function b(e,t,r,n){let o=0;for(let s=t;s<e.length;s++){const t=e[s];if(t===r)o++;else if(t===n&&(o--,0===o))return s}return-1}function m(e,t,r){for(const n of e)"parameter"===n.type&&(t.has(n.key)||(t.add(n.key),r.push(n.key))),"optional"===n.type&&m(n.children,t,r)}function v(e,t){const r=[];let n=!1;for(const o of e){const e=L(o,t);e.text.length&&r.push(e.text),n=n||e.hasValue}return{text:r.join(""),hasValue:n}}function L(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 x=new f;x.register({key:"level",render(e){if(!1!==e.config.logLevel)return e.level.toUpperCase()},style:(e,t)=>t.applyTheme(e,"logLevel")}).register({key:"timestamp",shouldInclude:e=>!(!e.config.timestamp||!e.timestamp),render:e=>e.timestamp,style:(e,t)=>t.applyTheme(e,"timestamp")}).register({key:"app",shouldInclude:e=>!!e.app,render:e=>e.app,style:(e,t)=>t.applyTheme(e,"app")}).register({key:"context",shouldInclude:e=>!1!==e.config.context&&e.context.length>0,render(e){const t=e.config.contextSeparator||".";return e.context.join(t)},style:(e,t)=>t.applyTheme(e,"class")}).register({key:"separator",shouldInclude:e=>!!e.separator,render:e=>e.separator,style:(e,t)=>t.applyTheme(e,"separator")}).register({key:"message",render:e=>e.filteredMessage,style:(e,t)=>t.applyTheme(e,"message")}).register({key:"stack",shouldInclude:e=>!!e.stack,render:e=>e.stack,style:(e,t)=>t.applyTheme(e,"stack")}).register({key:"meta",shouldInclude:e=>!!e.metaString,render:e=>e.metaString}).register({key:"correlationId",shouldInclude:e=>!!e.correlationId,render:e=>e.correlationId,style:(e,t)=>t.applyTheme(e,"id")});const w=x;function E(e,t,r="g"){return Object.entries(t).forEach(([t,n])=>{const o=RegExp(k(t),r);e=e.replace(o,n)}),e}function O(e){return _(e).toUpperCase()}function _(e){return e.replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/[\s-]+/g,"_").toLowerCase()}function k(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function j(e,...t){if(t.length>1&&!t.every(e=>"string"==typeof e||"number"==typeof e))throw Error("Only string and number arguments are supported for multiple replacements.");if(1===t.length&&"object"==typeof t[0]){const r=t[0];return Object.entries(r).reduce((e,[t,r])=>e.replace(RegExp(`\\{${t}\\}`,"g"),()=>r),e)}return e.replace(/{(\d+)}/g,(e,r)=>void 0!==t[r]?t[r].toString():"undefined")}const M=j;function A(){return Object.getPrototypeOf(Object.getPrototypeOf(globalThis))!==Object.prototype}const P=Symbol("EnvironmentEmpty"),S=Symbol("EnvironmentModel"),R=/^[a-z][a-zA-Z0-9]*$/;class C extends r.ObjectAccumulator{static{this.factory=()=>new C}constructor(){super(),Object.defineProperty(this,S,{value:{},writable:!0,enumerable:!1,configurable:!1})}fromEnv(e){let t;return A()?t=globalThis[o]||{}:(t=globalThis.process.env,e=O(e)),this.parseEnvValue(t[e])}parseEnvValue(e){return C.parseRuntimeValue(e)}static parseRuntimeValue(e){if("string"!=typeof e)return e;if("true"===e)return!0;if("false"===e)return!1;const t=e.trim();return/^-?\d+(\.\d+)?$/.test(t)?Number(t):e}expand(e){Object.entries(e).forEach(([e,t])=>{C.mergeModel(this[S],e,t),Object.defineProperty(this,e,{get:()=>{const r=this.fromEnv(e);return void 0!==r?r:t&&"object"==typeof t?Array.isArray(t)?t:C.buildEnvProxy(t,[e]):""===t?P:t},set:e=>{t=e},configurable:!0,enumerable:!0})})}orThrow(){const e=this[S],t=e=>void 0!==e?this.parseEnvValue(e):void 0,r=(e,t=!1)=>C.missingEnvError(e,t),n=(e,o)=>{const s={get(s,i){if("string"!=typeof i)return;if(Array.isArray(e)&&"length"===i)return e.length;const a=[...o,i],{key:c,value:l}=C.readRuntimeForPath(a);if("string"==typeof l&&0===l.length)throw r(c,!0);const u=t(l);if(void 0!==u){if("string"==typeof u&&0===u.length)throw r(c,!0);return u}if(!e||!Object.prototype.hasOwnProperty.call(e,i))throw r(c);const g=e[i];if(void 0!==g){if(""===g)throw r(c);return g&&"object"==typeof g?n(g,a):g}},ownKeys:()=>e?Reflect.ownKeys(e):[],getOwnPropertyDescriptor(t,r){if(e)return Object.prototype.hasOwnProperty.call(e,r)?{enumerable:!0,configurable:!0}:void 0}};return new Proxy(Array.isArray(e)?[]:{},s)};return new Proxy(this,{get(o,s,i){if("string"!=typeof s)return Reflect.get(o,s,i);if(!Object.prototype.hasOwnProperty.call(e,s))return Reflect.get(o,s,i);const{key:a,value:c}=C.readRuntimeForPath([s]);if("string"==typeof c&&0===c.length)throw r(a,!0);const l=t(c);if(void 0!==l){if("string"==typeof l&&0===l.length)throw r(a,!0);return l}const u=e[s];if(u&&"object"==typeof u)return n(u,[s]);if(void 0===u)return Reflect.get(o,s,i);const g=Reflect.get(o,s);if(void 0===g||""===g)throw r(a,""===g);return g}})}static instance(...e){if(!C._instance){const t=C.factory(...e),r=new Proxy(t,{get(e,t,r){const n=Reflect.get(e,t,r);if(n!==P&&("string"!=typeof t||!Object.prototype.hasOwnProperty.call(e,t)||void 0!==n)){if(void 0!==n)return n;if("string"==typeof t){if("app"===t)return;return C.buildEnvProxy(void 0,[t])}return n}}});C._instance=r}return C._instance}accumulate(e){return super.accumulate(e),this}static accumulate(e){const t=C.instance();return Object.keys(t).forEach(e=>{const r=Object.getOwnPropertyDescriptor(t,e);r&&r.configurable&&r.enumerable&&Object.defineProperty(t,e,{...r,enumerable:!1})}),t.accumulate(e),t}static get(e){return C._instance.get(e)}static formatEnvSegment(e){return R.test(e)?O(e):e.toUpperCase()}static buildEnvKey(e){return e.map(e=>C.formatEnvSegment(e)).join(s)}static buildRawKey(e){return e.join(s)}static readRuntimeForPath(e){const t=C.buildEnvKey(e),r=C.buildRawKey(e),n=C.readRuntimeEnv(t);if(void 0!==n)return{key:t,value:n};if(r!==t){const e=C.readRuntimeEnv(r);if(void 0!==e)return{key:r,value:e}}return{key:t,value:void 0}}static buildEnvProxy(e,t){const r=e=>C.readRuntimeEnv(e),n=/^[0-9]+$/,o={get(o,s){if(s===Symbol.toPrimitive)return()=>C.buildEnvKey(t);if("toString"===s)return()=>C.buildEnvKey(t);if("valueOf"===s)return()=>C.buildEnvKey(t);if("symbol"==typeof s)return;if(Array.isArray(e)&&"length"===s)return e.length;const i=[...t,s],a=C.buildEnvKey(i),c=C.buildRawKey(i);let l=r(a);if(void 0===l&&c!==a&&(l=r(c)),void 0!==l)return C.parseRuntimeValue(l);const u=!!e&&Object.prototype.hasOwnProperty.call(e,s),g=u?e[s]:void 0;if(Array.isArray(e)&&(e=>"string"==typeof e&&n.test(e))(s)){if(!u)return;return g&&"object"==typeof g?C.buildEnvProxy(g,i):C.parseRuntimeValue(g)}return g&&"object"==typeof g?C.buildEnvProxy(g,i):u&&""===g||u&&void 0===g?void 0:u?C.parseRuntimeValue(g):C.buildEnvProxy(void 0,i)},ownKeys:()=>e?Reflect.ownKeys(e):[],getOwnPropertyDescriptor(t,r){if(e)return Object.prototype.hasOwnProperty.call(e,r)?{enumerable:!0,configurable:!0}:void 0}};return new Proxy(Array.isArray(e)?[]:{},o)}static keys(e=!0){return C.instance().keys().map(t=>e?O(t):t)}static mergeModel(e,t,r){if(e){if(r&&"object"==typeof r&&!Array.isArray(r)){const n=e[t],o=n&&"object"==typeof n&&!Array.isArray(n)?n:{};return e[t]=o,void Object.entries(r).forEach(([e,t])=>{C.mergeModel(o,e,t)})}e[t]=r}}static readRuntimeEnv(e){if(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 T=C.accumulate(Object.assign({app:void 0},g,{env:(A()&&globalThis[o]?globalThis[o].NODE_ENV:globalThis.process.env.NODE_ENV)||"development"}));function $(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&&!$(e)}function V(e){if(!I(e))return!1;const t=Object.getOwnPropertyDescriptor(e,"prototype");return!t||void 0===t.value}function N(e){if(null===e||"object"!=typeof e)return!1;const t=e.constructor;return!(!t||t===Object)&&$(t)}function F(e){if(null===e)return"null";if(void 0===e)return"undefined";if("string"==typeof e)return e;if($(e))return e.name||"AnonymousClass";if(N(e)){const t=e.toString;if("function"==typeof t&&t!==Object.prototype.toString)try{const r=t.call(e);if("string"==typeof r&&r.length)return r}catch{}const r=e.constructor;return r&&r.name?r.name:"AnonymousInstance"}if(V(e)||I(e)){const t=e;return t.name?t.name:"anonymous"}if("object"==typeof e){const t=Object.prototype.toString.call(e),r=/^\[object ([^\]]+)\]$/.exec(t);return r?.[1]?r[1]:"Object"}return typeof e}const K=Symbol("MiniLoggerRootContext");class D{constructor(e,t,r=[]){this.conf=t,this.baseContext=Array.isArray(r)?[...r]:[],e&&this.baseContext.push(e),this.context=[...this.baseContext],this[K]=[...this.baseContext]}config(e){return this.conf&&e in this.conf?this.conf[e]: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[K],a=Array.isArray(i)?[...i]:Array.isArray(this.baseContext)?[...this.baseContext]:[];"string"==typeof e?n=e:void 0!==e&&($(e)||N(e)||I(e)?n=F(e):!o&&e&&"object"==typeof e&&(o=e));let c=n?[...s,n]:[...s];return new Proxy(this,{get:(e,t,r)=>{const n=Reflect.get(e,t,r);return"config"===t?new Proxy(this.config,{apply:(e,t,n)=>{const[s]=n;return o&&void 0!==s&&s in o?o[s]:Reflect.apply(e,r,n)},get:(e,t)=>o&&t in o?o[t]:Reflect.get(e,t,r)}):"clear"===t?()=>(c=[...a],o=void 0,r):"context"===t?c:"root"===t?[...a]:t===K?a:"for"===t?(...t)=>{const r=Array.isArray(e.context)?[...e.context]:"string"==typeof e.context&&e.context?[e.context]:[];e.context=[...c];try{return e.for.apply(e,t)}finally{e.context=r}}:n}})}getConfigSnapshot(){return{...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){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 t?t:t instanceof Error?t.message:t+"",g=this.applyFilters(u,l,c),f=this.config("meta")&&n?n:void 0,p=f?this.formatMeta(f):void 0,d=p?this.applyFilters(p,l,c):void 0,b=this.config("correlationId"),m=null!=b?b+"":void 0;let v,L;if(r||t instanceof Error){const n=r||t;n.stack&&(L="string"==typeof t?g:n.message,v=` | ${L} - Stack trace:\n${o?U.theme(n.stack,"stack",e):n.stack}`)}const x={config:c,level:e,context:l,timestamp:a,app:"string"==typeof i&&i.length?i:void 0,separator:s,correlationId:m,rawMessage:u,filteredMessage:g,meta:f,metaString:d,stack:v,stackLabel:L,applyTheme:(t,r)=>o?U.theme(t,r,e):t},E=this.config("pattern"),O=c.pattern||"",_=h(E.length?E:O),k=w.render(x,_.keys);switch(this.config("format")){case"json":{const e=w.render(x,w.keys()),t={};return Object.entries(e).forEach(([e,r])=>{"meta"!==e&&(t[e]=r)}),x.meta&&(t.meta=x.meta),JSON.stringify(t)}case"raw":{let e=this.normalizePatternSpacing(y(_,k));return!_.includesMeta&&d&&(e=e?`${e} ${d}`:d),e}default:throw Error("Unsupported logging format: "+this.config("format"))}}formatMeta(e){try{return JSON.stringify(e)}catch(t){return e+""}}normalizePatternSpacing(e){return e.replace(/[ \t]{2,}/g," ").replace(/^[ \t]+|[ \t]+$/g,"")}log(t,r,n,o){const s=this.config("level");if(c[t]>c[s])return;let i;switch(t){case e.LogLevel.benchmark: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)}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 T.app?[T.app]:[];return new D(e,t,r)}}static{this._config=T}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 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[K]=[...t],e}static ensureRoot(e=[]){if(!this.global){const t=this._factory(void 0,void 0,...e);this.global=this.attachRootContext(t)}return this.global}static theme(r,n,o,s=u){if(!this._config.style)return r;const i=s[n];if(!i||!Object.keys(i).length)return r;let a=i;const c=Object.assign({},e.LogLevel);return Object.keys(i)[0]in c&&(a=i[o]||{}),Object.keys(a).reduce((e,r)=>{const n=a[r];return n?((e,r,n)=>{try{const o=e;let s=t.style(o);function i(e,r=!1){let i=r?s.background:s.foreground;if(!Array.isArray(e))return i.call(s,n);switch(e.length){case 1:return i=r?s.bgColor256:s.color256,i(e[0]);case 3:return i=r?s.bgRgb:s.rgb,s.rgb(e[0],e[1],e[2]);default:return t.style(o)}}function a(e){s="number"==typeof e?s.style(e):s[e]}switch(r){case"bg":case"fg":return i(n).text;case"style":return Array.isArray(n)?n.forEach(a):a(n),s.text;default:return o}}catch(c){return e}})(e,r,n):e},r)}static register(e){return 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 Z="undefined"!=typeof globalThis&&"function"==typeof globalThis.performance?.now?()=>globalThis.performance.now():"undefined"!=typeof process&&"function"==typeof process.hrtime?.bigint?()=>{const e=process.hrtime.bigint();return Number(e)/1e6}:()=>Date.now();function q(e){const t=0>e?"-":"",r=Math.abs(e),n=Math.floor(r/36e5),o=Math.floor(r%36e5/6e4),s=Math.floor(r%6e4/1e3),i=Math.floor(r%1e3),a=(e,t)=>e.toString().padStart(t,"0");return`${t}${a(n,2)}:${a(o,2)}:${a(s,2)}.${a(i,3)}`}function B(t=e.LogLevel.info,r=0,n=(...e)=>"called with "+e,o){return(e,s,i)=>{if(!i||"number"==typeof i)throw Error("Logging decoration only applies to methods");const a=e instanceof 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 W(){return(e,t,r)=>{if(!r)throw Error("final decorator can only be used on methods");return r?.configurable&&(r.configurable=!1),r}}class H extends J{constructor(e,t){super(),this.regexp=e,this.replacement=t}match(e){const t=this.regexp.exec(e);return this.regexp.lastIndex=0,t}filter(e,t,r){const n=this.log.for(this.filter);if(!this.match(t))return t;try{return t.replace(this.regexp,this.replacement)}catch(e){n.error("PatternFilter replacement error: "+e)}return""}}n.__decorate([W(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[String]),n.__metadata("design:returntype",void 0)],H.prototype,"match",null),e.BrowserEnvKey=o,e.COMMIT="ec82779",e.DefaultLoggingConfig=g,e.DefaultPlaceholderWrappers=i,e.DefaultTheme=u,e.ENV_PATH_DELIMITER=s,e.Environment=C,e.FULL_VERSION="0.22.0-ec82779",e.LogFilter=J,e.LogParameterRegistry=f,e.LoggedClass=z,e.LoggedEnvironment=T,e.Logging=U,e.MiniLogger=D,e.NumericLogLevels=c,e.PACKAGE_NAME="@decaf-ts/logging",e.PatternFilter=H,e.ROOT_CONTEXT_SYMBOL=K,e.StopWatch=class{constructor(e=!1){this._startMs=null,this._elapsedMs=0,this._running=!1,this._laps=[],this._lastLapTotalMs=0,e&&this.start()}get running(){return this._running}get elapsedMs(){return this._running&&null!=this._startMs?this._elapsedMs+(Z()-this._startMs):this._elapsedMs}start(){return this._running||(this._running=!0,this._startMs=Z()),this}pause(){return this._running&&null!=this._startMs&&(this._elapsedMs+=Z()-this._startMs,this._startMs=null,this._running=!1),this}resume(){return this._running||(this._running=!0,this._startMs=Z()),this}stop(){return this.pause(),this._elapsedMs}reset(){const e=this._running;return this._startMs=e?Z():null,this._elapsedMs=0,this._laps=[],this._lastLapTotalMs=0,this}lap(e){const t=this.elapsedMs,r=t-this._lastLapTotalMs,n={index:this._laps.length,label:e,ms:r,totalMs:t};return this._laps.push(n),this._lastLapTotalMs=t,n}get laps(){return this._laps}toString(){return q(this.elapsedMs)}toJSON(){return{running:this._running,elapsedMs:this.elapsedMs,laps:this._laps.slice()}}},e.VERSION="0.22.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=Z();try{const s=Reflect.apply(e,t,r);return s instanceof Promise?s.then(e=>(n.benchmark(`completed in ${Z()-o}ms`),e)).catch(e=>{throw n.benchmark(`failed in ${Z()-o}ms`),e}):(n.benchmark(`completed in ${Z()-o}ms`),s)}catch(e){throw n.benchmark(`failed in ${Z()-o}ms`),e}}}),r},e.compileLogPattern=h,e.debug=()=>B(e.LogLevel.debug,0,(...e)=>"called with "+e,(e,t)=>e?"Failed with: "+e:t?"Completed with "+JSON.stringify(t):"completed"),e.escapeRegExp=k,e.final=W,e.formatMs=q,e.getObjectName=F,e.info=()=>B(e.LogLevel.info),e.isBrowser=A,e.isClass=$,e.isFunction=I,e.isInstance=N,e.isMethod=V,e.log=B,e.logParameterRegistry=w,e.now=Z,e.padEnd=(e,t,r=" ")=>{if(1!==r.length)throw Error("Invalid character length for padding. must be one!");return e.padEnd(t,r)},e.patchPlaceholders=(e,t,r=i[0],n=i[1],o="g")=>E(e,Object.entries(t).reduce((e,[t,o])=>(e[`${r}${t}${n}`]=o,e),{}),o),e.patchString=E,e.renderPattern=y,e.sf=j,e.silly=()=>B(e.LogLevel.silly),e.stringFormat=M,e.toCamelCase=e=>e.replace(/(?:^\w|[A-Z]|\b\w)/g,(e,t)=>0===t?e.toLowerCase():e.toUpperCase()).replace(/\s+/g,""),e.toENVFormat=O,e.toKebabCase=e=>e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[\s_]+/g,"-").toLowerCase(),e.toPascalCase=e=>e.replace(/(?:^\w|[A-Z]|\b\w)/g,e=>e.toUpperCase()).replace(/\s+/g,""),e.toSnakeCase=_,e.trace=()=>B(e.LogLevel.trace),e.verbose=(t=0)=>(t||(t=0),B(e.LogLevel.verbose,t)),Object.keys(t).forEach(r=>{"default"===r||Object.prototype.hasOwnProperty.call(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:()=>t[r]})})},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("styled-string-builder"),require("typed-object-accumulator"),require("tslib")):"function"==typeof define&&define.amd?define(["exports","styled-string-builder","typed-object-accumulator","tslib"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).logging={},e.styledStringBuilder,e.typedObjectAccumulator,e.tslib);
1
+ var 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 h=new Map;function p(t){if(h.has(t))return h.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 h.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 A=j;function P(){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})}fromEnv(t){let e;return P()?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("string"!=typeof i)return;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 g&&"object"==typeof 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(u&&"object"==typeof u)return n(u,[s]);if(void 0===u)return Reflect.get(o,s,i);const g=Reflect.get(o,s);if(void 0===g||""===g)throw r(a,""===g);return g}})}static instance(...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 P()?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?g&&"object"==typeof g?C.buildEnvProxy(g,i):C.parseRuntimeValue(g):f?C.buildEnvProxy(void 0,i):void 0:g&&"object"==typeof g?C.buildEnvProxy(g,i):u&&""===g||u&&void 0===g?void 0:u?C.parseRuntimeValue(g):C.buildEnvProxy(void 0,i)},ownKeys(){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(P()){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:(P()&&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 V(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 F(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(V(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 K=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[K]=[...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[K],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=F(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],o=void 0,r):"context"===e?c:"root"===e?[...a]:e===K?a:"for"===e?(...e)=>{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}}: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,h=f?this.formatMeta(f):void 0,d=h?this.applyFilters(h,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||"",_=p(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[K]=[...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 B extends z{get log(){return super.log.for(this,{filters:[]})}}const J="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 B{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="6bde940",t.DefaultLoggingConfig=g,t.DefaultPlaceholderWrappers=i,t.DefaultTheme=u,t.ENV_PATH_DELIMITER=s,t.Environment=C,t.FULL_VERSION="0.22.1-6bde940",t.LogFilter=B,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=K,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+(J()-this._startMs):this._elapsedMs}start(){return this._running||(this._running=!0,this._startMs=J()),this}pause(){return this._running&&null!=this._startMs&&(this._elapsedMs+=J()-this._startMs,this._startMs=null,this._running=!1),this}resume(){return this._running||(this._running=!0,this._startMs=J()),this}stop(){return this.pause(),this._elapsedMs}reset(){const t=this._running;return this._startMs=t?J():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.22.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=J();try{const s=Reflect.apply(t,e,r);return s instanceof Promise?s.then(t=>(n.benchmark(`completed in ${J()-o}ms`),t)).catch(t=>{throw n.benchmark(`failed in ${J()-o}ms`),t}):(n.benchmark(`completed in ${J()-o}ms`),s)}catch(t){throw n.benchmark(`failed in ${J()-o}ms`),t}}}),r},t.compileLogPattern=p,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=F,t.info=()=>Z(t.LogLevel.info),t.isBrowser=P,t.isClass=T,t.isFunction=I,t.isInstance=N,t.isMethod=V,t.log=Z,t.logParameterRegistry=w,t.now=J,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=A,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);
2
2
  //# sourceMappingURL=logging.cjs.map
@@ -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/index.ts"],"sourcesContent":[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","fromEnv","k","process","parseEnvValue","parseRuntimeValue","trimmed","test","Number","expand","v","mergeModel","isArray","buildEnvProxy","orThrow","modelRoot","parseRuntime","missing","empty","missingEnvError","createNestedProxy","model","path","handler","_target","prop","nextPath","envKey","runtimeRaw","readRuntimeForPath","runtimeValue","hasOwnProperty","call","modelValue","ownKeys","Reflect","getOwnPropertyDescriptor","Proxy","target","receiver","actual","instance","_instance","base","proxied","accumulate","desc","formatEnvSegment","buildEnvKey","map","buildRawKey","formattedKey","rawKey","runtimeFormatted","readRuntimeEnv","current","readEnv","arrayIndexPattern","toPrimitive","composedKey","envValue","hasProp","nextModel","isArrayIndex","_t","p","toEnv","existing","childKey","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","originalContext","for","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","bind","originalMethod","thisArg","Promise","then","r","catch","final","PatternFilter","replacement","lastIndex","__decorate","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,CC+CA,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,CAQU,OAAAC,CAAQC,GAChB,IAAIlI,EAYJ,OAXIiH,IACFjH,EAEImH,WAGAhJ,IAAkB,CAAA,GAEtB6B,EAAMmH,WAAWgB,QAAQnI,IACzBkI,EAAIjC,EAAYiC,IAEXrH,KAAKuH,cAAcpI,EAAIkI,GAChC,CAQU,aAAAE,CAAcxC,GACtB,OAAO6B,EAAYY,kBAAkBzC,EACvC,CAEQ,wBAAOyC,CAAkBzC,GAC/B,GAAmB,iBAARA,EAAkB,OAAOA,EACpC,GAAY,SAARA,EAAgB,OAAO,EAC3B,GAAY,UAARA,EAAiB,OAAO,EAC5B,MAAM0C,EAAU1C,EAAI7B,OACpB,MAAI,kBAAkBwE,KAAKD,GAClBE,OAAOF,GAET1C,CACT,CASmB,MAAA6C,CAAyBjF,GAC1CkC,OAAOC,QAAQnC,GAAO3B,QAAQ,EAAEqG,EAAGQ,MACjCjB,EAAYkB,WAAY9H,KAAa0G,GAAcW,EAAGQ,GACtDhD,OAAOmC,eAAehH,KAAMqH,EAAG,CAC7B5G,IAAK,KACH,MAAM2G,EAAUpH,KAAKoH,QAAQC,GAC7B,YAAuB,IAAZD,EAAgCA,EACvCS,GAAkB,iBAANA,EACVtG,MAAMwG,QAAQF,GAAWA,EACtBjB,EAAYoB,cAAcH,EAAU,CAACR,IAGpC,KAANQ,EACKrB,EAEFqB,GAETxH,IAAM0E,IACJ8C,EAAI9C,GAENoC,cAAc,EACdD,YAAY,KAGlB,CAOA,OAAAe,GAEE,MACMC,EADOlI,KACmB0G,GAC1ByB,EAAgB/G,QACL,IAARA,EAAsBpB,KAAKuH,cAAcnG,QAAOC,EAEnD+G,EAAU,CAAC9H,EAAa+H,GAAiB,IAC7CzB,EAAY0B,gBAAgBhI,EAAK+H,GAE7BE,EAAoB,CAACC,EAAYC,KACrC,MAAMC,EAA6B,CACjC,GAAAjI,CAAIkI,EAASC,GACX,GAAoB,iBAATA,EAAmB,OAC9B,GAAIrH,MAAMwG,QAAQS,IAAmB,WAATI,EAAmB,OAAOJ,EAAMnG,OAC5D,MAAMwG,EAAW,IAAIJ,EAAMG,IACnBtI,IAAKwI,EAAQnG,MAAOoG,GAC1BnC,EAAYoC,mBAAmBH,GACjC,GAA0B,iBAAfE,GAAiD,IAAtBA,EAAW1G,OAC/C,MAAM+F,EAAQU,GAAQ,GACxB,MAAMG,EAAed,EAAaY,GAClC,QAA4B,IAAjBE,EAA8B,CACvC,GAA4B,iBAAjBA,GAAqD,IAAxBA,EAAa5G,OACnD,MAAM+F,EAAQU,GAAQ,GACxB,OAAOG,CACT,CAIA,IADET,IAAS3D,OAAO0B,UAAU2C,eAAeC,KAAKX,EAAOI,GACzC,MAAMR,EAAQU,GAE5B,MAAMM,EAAaZ,EAAMI,GACzB,QAA0B,IAAfQ,EAAX,CACA,GAAmB,KAAfA,EAAmB,MAAMhB,EAAQU,GAErC,OAAIM,GAAoC,iBAAfA,EAChBb,EAAkBa,EAAYP,GAGhCO,CAPgD,CAQzD,EACAC,QAAO,IACEb,EAAQc,QAAQD,QAAQb,GAAS,GAE1C,wBAAAe,CAAyBZ,EAASC,GAChC,GAAKJ,EACL,OAAI3D,OAAO0B,UAAU2C,eAAeC,KAAKX,EAAOI,GACvC,CACL1B,YAAY,EACZC,cAAc,QAHlB,CAOF,GAGF,OAAO,IAAIqC,MADIjI,MAAMwG,QAAQS,GAAS,GAAK,CAAA,EAClBE,IAwC3B,OAAO,IAAIc,MA9FExJ,KAyDsB,CACjC,GAAAS,CAAIgJ,EAAQb,EAAMc,GAChB,GAAoB,iBAATd,EACT,OAAOU,QAAQ7I,IAAIgJ,EAAQb,EAAMc,GAKnC,IAJqB7E,OAAO0B,UAAU2C,eAAeC,KACnDjB,EACAU,GAEiB,OAAOU,QAAQ7I,IAAIgJ,EAAQb,EAAMc,GAEpD,MAAQpJ,IAAKwI,EAAQnG,MAAOoG,GAC1BnC,EAAYoC,mBAAmB,CAACJ,IAClC,GAA0B,iBAAfG,GAAiD,IAAtBA,EAAW1G,OAC/C,MAAM+F,EAAQU,GAAQ,GACxB,MAAMG,EAAed,EAAaY,GAClC,QAA4B,IAAjBE,EAA8B,CACvC,GAA4B,iBAAjBA,GAAqD,IAAxBA,EAAa5G,OACnD,MAAM+F,EAAQU,GAAQ,GACxB,OAAOG,CACT,CAEA,MAAMG,EAAalB,EAAUU,GAC7B,GAAIQ,GAAoC,iBAAfA,EACvB,OAAOb,EAAkBa,EAAY,CAACR,IAGxC,QAA0B,IAAfQ,EACT,OAAOE,QAAQ7I,IAAIgJ,EAAQb,EAAMc,GAEnC,MAAMC,EAASL,QAAQ7I,IAAIgJ,EAAQb,GACnC,QAAsB,IAAXe,GAAqC,KAAXA,EACnC,MAAMvB,EAAQU,EAAmB,KAAXa,GAExB,OAAOA,CACT,GAIJ,CAWU,eAAOC,IAAwCnE,GACvD,IAAKmB,EAAYiD,UAAW,CAC1B,MAAMC,EAAOlD,EAAYE,WAAWrB,GAC9BsE,EAAU,IAAIP,MAAMM,EAAa,CACrC,GAAArJ,CAAIgJ,EAAQb,EAAMc,GAChB,MAAM/G,EAAQ2G,QAAQ7I,IAAIgJ,EAAQb,EAAMc,GACxC,GAAI/G,IAAU6D,IAGI,iBAAToC,IACP/D,OAAO0B,UAAU2C,eAAeC,KAAKM,EAAQb,SAExB,IAAVjG,GAJb,CAMA,QAAqB,IAAVA,EAAuB,OAAOA,EACzC,GAAoB,iBAATiG,EAAmB,CAE5B,GAAa,QAATA,EAAgB,OACpB,OAAOhC,EAAYoB,mBAAc3G,EAAW,CAACuH,GAC/C,CACA,OAAOjG,CAPP,CAQF,IAEFiE,EAAYiD,UAAYE,CAC1B,CACA,OAAOnD,EAAYiD,SACrB,CAKgB,UAAAG,CACdrH,GAIA,OADAoE,MAAMiD,WAAWrH,GACV3C,IACT,CAUA,iBAAOgK,CAA6BrH,GAClC,MAAMiH,EAAWhD,EAAYgD,WAgB7B,OAfA/E,OAAOjE,KAAKgJ,GAAiB5I,QAASV,IACpC,MAAM2J,EAAOpF,OAAO0E,yBAAyBK,EAAiBtJ,GAC1D2J,GAAQA,EAAK9C,cAAgB8C,EAAK/C,YACpCrC,OAAOmC,eAAe4C,EAAiBtJ,EAAK,IACvC2J,EACH/C,YAAY,MAOlB0C,EAASI,WAAWrH,GAGbiH,CACT,CAQA,UAAOnJ,CAAIH,GACT,OAAOsG,EAAYiD,UAAUpJ,IAAIH,EACnC,CAEQ,uBAAO4J,CAAiBvG,GAC9B,OAAOgD,EAAiBe,KAAK/D,GACzByB,EAAYzB,GACZA,EAAQS,aACd,CAEQ,kBAAO+F,CAAY1B,GACzB,OAAOA,EACJ2B,IAAKzG,GAAYiD,EAAYsD,iBAAiBvG,IAC9CK,KAAKzG,EACV,CAEQ,kBAAO8M,CAAY5B,GACzB,OAAOA,EAAKzE,KAAKzG,EACnB,CAEQ,yBAAOyL,CAAmBP,GAChC,MAAM6B,EAAe1D,EAAYuD,YAAY1B,GACvC8B,EAAS3D,EAAYyD,YAAY5B,GACjC+B,EAAmB5D,EAAY6D,eAAeH,GACpD,QAAgC,IAArBE,EACT,MAAO,CAAElK,IAAKgK,EAAc3H,MAAO6H,GAErC,GAAID,IAAWD,EAAc,CAC3B,MAAMvB,EAAanC,EAAY6D,eAAeF,GAC9C,QAA0B,IAAfxB,EACT,MAAO,CAAEzI,IAAKiK,EAAQ5H,MAAOoG,EAEjC,CACA,MAAO,CAAEzI,IAAKgK,EAAc3H,WAAOtB,EACrC,CASQ,oBAAO2G,CAAc0C,EAAcjC,GACzC,MAAMkC,EAAWrK,GACRsG,EAAY6D,eAAenK,GAG9BsK,EAAoB,WAIpBlC,EAA6B,CACjC,GAAAjI,CAAIkI,EAASC,GACX,GAAIA,IAASnC,OAAOoE,YAClB,MAAO,IAAMjE,EAAYuD,YAAY1B,GAEvC,GAAa,aAATG,EACF,MAAO,IAAMhC,EAAYuD,YAAY1B,GAEvC,GAAa,YAATG,EACF,MAAO,IAAMhC,EAAYuD,YAAY1B,GAEvC,GAAoB,iBAATG,EAAmB,OAE9B,GAAIrH,MAAMwG,QAAQ2C,IAAqB,WAAT9B,EAAmB,OAAO8B,EAAQrI,OAChE,MAAMwG,EAAW,IAAIJ,EAAMG,GACrBkC,EAAclE,EAAYuD,YAAYtB,GACtC0B,EAAS3D,EAAYyD,YAAYxB,GAGvC,IAAIkC,EAAWJ,EAAQG,GAIvB,QAHwB,IAAbC,GAA4BR,IAAWO,IAChDC,EAAWJ,EAAQJ,SAEG,IAAbQ,EACT,OAAOnE,EAAYY,kBAAkBuD,GAEvC,MAAMC,IACFN,GAAW7F,OAAO0B,UAAU2C,eAAeC,KAAKuB,EAAS9B,GACvDqC,EAAYD,EAAWN,EAAgB9B,QAAQvH,EAErD,GAAIE,MAAMwG,QAAQ2C,IAjCD,CAAC9B,GACJ,iBAATA,GAAqBgC,EAAkBlD,KAAKkB,GAgCnBsC,CAAatC,GAAO,CAChD,IAAKoC,EAAS,OACd,OAAIC,GAAkC,iBAAdA,EACfrE,EAAYoB,cAAciD,EAAWpC,GACvCjC,EAAYY,kBAAkByD,EACvC,CAGA,OADqBA,GAAkC,iBAAdA,EAChBrE,EAAYoB,cAAciD,EAAWpC,GAE1DmC,GAAyB,KAAdC,GACXD,QAAgC,IAAdC,OADtB,EAGID,EACKpE,EAAYY,kBAAkByD,GAKhCrE,EAAYoB,mBAAc3G,EAAWwH,EAC9C,EACAQ,QAAO,IACEqB,EAAUpB,QAAQD,QAAQqB,GAAW,GAE9C,wBAAAnB,CAAyB4B,EAAIC,GAC3B,GAAKV,EACL,OAAI7F,OAAO0B,UAAU2C,eAAeC,KAAKuB,EAASU,GACzC,CAAElE,YAAY,EAAMC,cAAc,QAD3C,CAIF,GAIF,OAAO,IAAIqC,MADIjI,MAAMwG,QAAQ2C,GAAW,GAAM,CAAA,EACrBhC,EAC3B,CASA,WAAO9H,CAAKyK,GAAiB,GAC3B,OAAOzE,EAAYgD,WAChBhJ,OACAwJ,IAAK/C,GAAOgE,EAAQjG,EAAYiC,GAAKA,EAC1C,CAEQ,iBAAOS,CACbU,EACAlI,EACAqC,GAEA,GAAK6F,EAAL,CACA,GAAI7F,GAA0B,iBAAVA,IAAuBpB,MAAMwG,QAAQpF,GAAQ,CAC/D,MAAM2I,EAAW9C,EAAMlI,GACjBmJ,EACJ6B,GAAgC,iBAAbA,IAA0B/J,MAAMwG,QAAQuD,GACvDA,EACA,CAAA,EAKN,OAJA9C,EAAMlI,GAAOmJ,OACb5E,OAAOC,QAAQnC,GAAO3B,QAAQ,EAAEuK,EAAUC,MACxC5E,EAAYkB,WAAW2B,EAAQ8B,EAAUC,IAG7C,CACAhD,EAAMlI,GAAOqC,CAbD,CAcd,CAEQ,qBAAO8H,CAAenK,GAC5B,GAAI8F,IAAa,CACf,MAAMjH,EACJmH,WAGAhJ,GACF,OAAO6B,EAAMA,EAAImB,QAAOe,CAC1B,CACA,OAAQiF,YAAoBgB,SAASnI,MAAMmB,EAC7C,CAEQ,sBAAOgI,CAAgBhI,EAAa+H,GAE1C,OAAWzC,MACT,wBAAwBtF,yBAFX+H,EAAQ,kBAAoB,eAI7C,EASK,MAAMoD,EAAoB7E,EAAYoD,WAC3CnF,OAAO6G,OACL,CACEnN,SAAK8C,GAEPnC,EACA,CACEC,KACGiH,KAAgBE,WAAmBhJ,GAC/BgJ,WAAmBhJ,GAAyB,SAC5CgJ,WAAmBgB,QAAQnI,IAAc,WAAM,iBCxhBtD,SAAUwM,EACdhJ,GAEA,GAAqB,mBAAVA,EAAsB,OAAO,EAIxC,IACE,MAAMiJ,EAAMC,SAAStF,UAAUL,SAASiD,KAAKxG,GAC7C,GAAI,iBAAiB+E,KAAKkE,GAAM,OAAO,CACzC,CAAE,MAEF,CAGA,MAAME,EAAYjH,OAAO0E,yBAAyB5G,EAAO,aACzD,IAAKmJ,IAAcA,EAAUnJ,MAAO,OAAO,EAI3C,IAA2B,IAAvBmJ,EAAU7E,SAAoB,OAAO,EAIzC,MAAM8E,EAASpJ,EAAc4D,UAC7B,QAAK1B,OAAO0B,UAAU2C,eAAeC,KAAK4C,EAAO,gBAEnClH,OAAOmH,oBAAoBD,GAAOE,OAC7CC,GAAY,gBAANA,GAEI7J,OAAS,CACxB,CAWM,SAAU8J,EACdxJ,GAEA,MAAwB,mBAAVA,IAAyBgJ,EAAQhJ,EACjD,CAWM,SAAUyJ,EACdzJ,GAEA,IAAKwJ,EAAcxJ,GAAQ,OAAO,EAElC,MAAMvC,EAAayE,OAAO0E,yBAAyB5G,EAAO,aAC1D,OAAQvC,QAAmCiB,IAArBjB,EAAWuC,KACnC,CAWM,SAAU0J,EAA6B1J,GAC3C,GAAc,OAAVA,GAAmC,iBAAVA,EAAoB,OAAO,EAGxD,MAAM2J,EAAQ3J,EAAqC5C,YACnD,SAAKuM,GAAQA,IAASzH,SAEf8G,EAAQW,EACjB,CAUM,SAAUC,EAAc5J,GAC5B,GAAc,OAAVA,EAAgB,MAAO,OAC3B,QAActB,IAAVsB,EAAqB,MAAO,YAChC,GAAqB,iBAAVA,EAAoB,OAAOA,EAEtC,GAAIgJ,EAAQhJ,GACV,OAAOA,EAAM6J,MAAQ,iBAGvB,GAAIH,EAAW1J,GAAQ,CACrB,MAAM8J,EAAc9J,EAAsCuD,SAC1D,GACwB,mBAAfuG,GACPA,IAAe5H,OAAO0B,UAAUL,SAEhC,IACE,MAAMrF,EAAW4L,EAAWtD,KAAKxG,GACjC,GAAwB,iBAAb9B,GAAyBA,EAASwB,OAAQ,OAAOxB,CAC9D,CAAE,MAEF,CAGF,MAAMyL,EAAQ3J,EAAqC5C,YACnD,OAAOuM,GAAQA,EAAKE,KAAOF,EAAKE,KAAO,mBACzC,CAEA,GAAIJ,EAASzJ,IAAUwJ,EAAWxJ,GAAQ,CAExC,MAAM+J,EAAK/J,EACX,OAAI+J,EAAGF,KAAaE,EAAGF,KAChB,WACT,CAEA,GAAqB,iBAAV7J,EAAoB,CAC7B,MAAMgK,EAAM9H,OAAO0B,UAAUL,SAASiD,KAAKxG,GACrCqD,EAAQ,wBAAwB4G,KAAKD,GAC3C,OAAI3G,IAAQ,GAAWA,EAAM,GACtB,QACT,CAEA,cAAcrD,CAChB,OCvHakK,EAAsBpG,OAAO,+BAyB7BqG,EAIX,WAAA/M,CACEP,EACUuN,EACVC,EAAwB,IADdhN,KAAA+M,KAAAA,EAGV/M,KAAKgN,YAAczL,MAAMwG,QAAQiF,GAAe,IAAIA,GAAe,GAC/DxN,GAASQ,KAAKgN,YAAYvK,KAAKjD,GACnCQ,KAAKR,QAAU,IAAIQ,KAAKgN,aACvBhN,KAAa6M,GAAuB,IAAI7M,KAAKgN,YAChD,CAEU,MAAA7I,CAAsC7D,GAC9C,OAAIN,KAAK+M,MAAQzM,KAAON,KAAK+M,KACpB/M,KAAK+M,KAAKzM,GACZ2M,EAAQC,YAAY5M,EAC7B,CA4BA,IACEvB,EAMAoF,KACGsB,GAEH,IAAI0H,EACAC,EAAcjJ,EAClB,MAAMkJ,EAAgB9L,MAAMwG,QAAQ/H,KAAKR,SACrC,IAAIQ,KAAKR,SACe,iBAAjBQ,KAAKR,SAAwBQ,KAAKR,QACvC,CAACQ,KAAKR,SACN,GACA8N,EAAiBtN,KAAa6M,GAC9BG,EAAczL,MAAMwG,QAAQuF,GAC9B,IAAIA,GACJ/L,MAAMwG,QAAQ/H,KAAKgN,aACjB,IAAIhN,KAAKgN,aACT,GAEgB,iBAAXjO,EACToO,EAAcpO,OACMsC,IAAXtC,IACL4M,EAAQ5M,IAAWsN,EAAWtN,IAAWoN,EAAWpN,GACtDoO,EAAcZ,EAAcxN,IAClBqO,GAAerO,GAA4B,iBAAXA,IAC1CqO,EAAcrO,IAIlB,IAAIwO,EAAkBJ,EAClB,IAAIE,EAAeF,GACnB,IAAIE,GAER,OAAO,IAAI7D,MAAMxJ,KAAM,CACrBS,IAAK,CAACgJ,EAAqB2B,EAAoB1B,KAC7C,MAAM5F,EAASwF,QAAQ7I,IAAIgJ,EAAQ2B,EAAG1B,GACtC,MAAU,WAAN0B,EACK,IAAI5B,MAAMxJ,KAAKmE,OAAQ,CAC5BqJ,MAAO,CACL/D,EACAgE,EACAC,KAEA,MAAOpN,GAAOoN,EACd,OAAIN,QAAuB/L,IAARf,GAAqBA,KAAO8M,EACtCA,EAAY9M,GAEdgJ,QAAQkE,MAAM/D,EAAQC,EAAUgE,IAEzCjN,IAAK,CAACgJ,EAA4BnJ,IAC5B8M,GAAe9M,KAAO8M,EACjBA,EAAY9M,GACdgJ,QAAQ7I,IAAIgJ,EAAQnJ,EAAKoJ,KAI5B,UAAN0B,EACK,KACLmC,EAAkB,IAAIP,GACtBI,OAAc/L,EACPqI,GAGD,YAAN0B,EACKmC,EAEC,SAANnC,EACK,IAAI4B,GAET5B,IAAMyB,EACDG,EAEC,QAAN5B,EACK,IAAIuC,KACT,MAAMC,EAAkBrM,MAAMwG,QAAQ0B,EAAOjK,SACzC,IAAIiK,EAAOjK,SACe,iBAAnBiK,EAAOjK,SAAwBiK,EAAOjK,QAC3C,CAACiK,EAAOjK,SACR,GACNiK,EAAOjK,QAAU,IAAI+N,GACrB,IAEE,OAAO9D,EAAOoE,IAAIL,MAAM/D,EAAQkE,EAClC,SACElE,EAAOjK,QAAUoO,CACnB,GAGG9J,IAGb,CAEU,iBAAAgK,GACR,MAAO,IACFb,EAAQC,eACPlN,KAAK+M,MAAQ,GAErB,CAEU,kBAAAgB,GACR,OAAIxM,MAAMwG,QAAQ/H,KAAKR,SAAiB,IAAIQ,KAAKR,SACrB,iBAAjBQ,KAAKR,SAAwBQ,KAAKR,QAAgB,CAACQ,KAAKR,SAC5D,EACT,CAEU,cAAAwO,CAAe7J,GACvB,MAAM8J,EAAY9J,EAAO9E,SAAW,GACpC,OAAKkC,MAAMwG,QAAQkG,GACZA,EAAUhC,OACdiC,GACkB,iBAAVA,GACG,OAAVA,GAC2C,mBAAnCA,EAAwBjC,QALE,EAOxC,CAEU,YAAAkC,CACRrP,EACAU,EACA2E,GAEA,MAAM9E,EAAUW,KAAKgO,eAAe7J,GACpC,OAAK9E,EAAQgD,OACNhD,EAAQyG,OAAO,CAAC4E,EAASuB,KAC9B,IACE,MAAMmC,EAAOnC,EAAOA,OAAO9H,EAAQuG,EAAS,IAAIlL,IAChD,MAAuB,iBAAT4O,EAAoBA,EAAO1D,CAC3C,CAAE,MACA,OAAOA,CACT,GACC5L,GARyBA,CAS9B,CAUU,SAAAuP,CACRjP,EACAN,EACAhB,EACA2B,GAEA,MAAM6O,IAAuBtO,KAAKmE,OAAO,SACnC3F,EAAYwB,KAAKmE,OAAO,aACxB5F,EAAM0O,EAAQC,YAAY3O,IAC1BM,EAAYmB,KAAKmE,OAAO,cAC1B,IAAIoK,MAAOC,mBACXnN,EACEoN,EAAiBzO,KAAK8N,oBACtBP,EAAkBvN,KAAK+N,qBACvBW,EACe,iBAAZ5P,EACHA,EACAA,aAAmB8G,MACjB9G,EAAQA,QACDA,EAAP6P,GACFrK,EAAkBtE,KAAKmO,aAC3BO,EACAnB,EACAkB,GAGIG,EADmB5O,KAAKmE,OAAO,SACL1E,EAAOA,OAAO4B,EACxCkD,EAAaqK,EAAc5O,KAAK6O,WAAWD,QAAevN,EAC1DyN,EAAqBvK,EACvBvE,KAAKmO,aAAa5J,EAAYgJ,EAAiBkB,QAC/CpN,EACE0N,EAAqB/O,KAAKmE,OAAO,iBACjCK,EACJuK,QACWA,EAAPJ,QACAtN,EAEN,IAAIzC,EACAoQ,EACJ,GAAIlR,GAASgB,aAAmB8G,MAAO,CACrC,MAAMqI,EAAYnQ,GAAUgB,EACxBmP,EAAUrP,QACZoQ,EACqB,iBAAZlQ,EAAuBwF,EAAkB2J,EAAUnP,QAI5DF,EAAQ,MAAMoQ,qBAHMV,EAChBrB,EAAQpN,MAAMoO,EAAUrP,MAAO,QAASQ,GACxC6O,EAAUrP,QAGlB,CAEA,MAGM+B,EAA+B,CACnCwD,OAAQsK,EACRrP,QACAI,QAAS+N,EACT1O,YACAN,IAAoB,iBAARA,GAAoBA,EAAI8D,OAAS9D,OAAM8C,EACnD7C,YACAgG,gBACAkK,aACApK,kBACA7E,KAAMmP,EACNrK,WAAYuK,EACZlQ,QACAoQ,aACA3K,WAjBiB,CAAC1B,EAAeD,IACjC4L,EAAerB,EAAQpN,MAAM8C,EAAOD,EAAatD,GAASuD,GAmBtDsM,EAAoBjP,KAAKmE,OAAO,WAChC+K,EAAiBT,EAAe7O,SAAW,GAI3CmC,EAAaL,EAHHuN,EAAkB5M,OAC9B4M,EACAC,GAEErO,EAAW4D,EAAqB/D,OAAOC,EAASoB,EAAWnB,MAEjE,OAAQZ,KAAKmE,OAAO,WAClB,IAAK,OAAQ,CACX,MAAMgL,EAAa1K,EAAqB/D,OACtCC,EACA8D,EAAqB7D,QAEjBwO,EAA6C,CAAA,EAQnD,OAPAvK,OAAOC,QAAQqK,GAAYnO,QAAQ,EAAEV,EAAKqC,MAC5B,SAARrC,IACJ8O,EAAS9O,GAAOqC,KAEdhC,EAAQlB,OACV2P,EAAS3P,KAAOkB,EAAQlB,MAEnB4P,KAAKC,UAAUF,EACxB,CACA,IAAK,MAAO,CACV,IAAIG,EAAYvP,KAAKwP,wBACnBvN,EAAcF,EAAYlB,IAO5B,OALKkB,EAAWC,cAAgB8M,IAC9BS,EAAYA,EACR,GAAGA,KAAaT,IAChBA,GAECS,CACT,CACA,QACE,MAAU3J,MAAM,+BAA+B5F,KAAKmE,OAAO,WAEjE,CAEQ,UAAA0K,CAAWpP,GACjB,IACE,OAAO4P,KAAKC,UAAU7P,EAExB,CAAE,MAAOgQ,GACP,OAAchQ,EAAPkP,EACT,CACF,CAEU,uBAAAa,CAAwB7M,GAChC,OAAOA,EAAMwC,QAAQ,aAAc,KAAKA,QAAQ,mBAAoB,GACtE,CAUU,GAAAuK,CACRtQ,EACAuQ,EACA7R,EACA2B,GAEA,MAAMmQ,EAAU5P,KAAKmE,OAAO,SAC5B,GAAgCzG,EAAiB0B,GAA7C1B,EAAiBkS,GAAoC,OACzD,IAAI7Q,EACJ,OAAQK,GACN,KAAK3B,EAAAA,SAASE,UACZoB,EAAS8Q,QAAQH,IACjB,MACF,KAAKjS,EAAAA,SAASG,MACd,KAAKH,EAAAA,SAASI,SACd,KAAKJ,EAAAA,SAASK,MACZiB,EAAS8Q,QAAQ/R,MACjB,MACF,KAAKL,EAAAA,SAASO,KACd,KAAKP,EAAAA,SAASQ,QACZc,EAAS8Q,QAAQH,IACjB,MACF,KAAKjS,EAAAA,SAASS,MACZa,EAAS8Q,QAAQ3R,MACjB,MACF,KAAKT,EAAAA,SAASU,MACZY,EAAS8Q,QAAQ1R,MACjB,MACF,KAAKV,EAAAA,SAASM,KACZgB,EAAS8Q,QAAQ9R,KACjB,MACF,KAAKN,EAAAA,SAASW,MACZW,EAAS8Q,QAAQ3R,MACjB,MACF,QACE,MAAU0H,MAAM,qBAEpB7G,EAAOiB,KAAKqO,UAAUjP,EAAOuQ,EAAK7R,EAAO2B,GAC3C,CASA,SAAA9B,CAAUgS,EAAiBlQ,GACzBO,KAAK0P,IAAIjS,EAAAA,SAASE,UAAWgS,OAAKtO,EAAW5B,EAC/C,CAUA,KAAA7B,CAAM+R,EAAyBG,EAAqBrQ,GAClD,IAAIsQ,EACAC,EACAF,aAAalK,OACfmK,EAAiBD,EACjBE,EAAcvQ,GAEduQ,EAAcF,EAEhB9P,KAAK0P,IAAIjS,EAAAA,SAASG,MAAO+R,EAAKI,EAAgBC,EAChD,CAUA,QAAAnS,CACE8R,EACAG,EACArQ,GAEA,IAAIsQ,EACAC,EACAF,aAAalK,OACfmK,EAAiBD,EACjBE,EAAcvQ,GAEduQ,EAAcF,EAEhB9P,KAAK0P,IAAIjS,EAAAA,SAASI,SAAU8R,EAAKI,EAAgBC,EACnD,CAUA,KAAA5R,CACEuR,EACAM,EAAoC,EACpCxQ,GAEA,MAAMyQ,EAAuC,iBAApBD,EAA+BA,EAAkB,EACpED,EACuB,iBAApBC,EAA+BxQ,EAAOwQ,EAC1CjQ,KAAKmE,OAAO,WAAyB+L,GACxClQ,KAAK0P,IAAIjS,EAAAA,SAASW,MAAOuR,OAAKtO,EAAW2O,EAC7C,CAUA,OAAA/R,CACE0R,EACAM,EAAoC,EACpCxQ,GAEA,MAAMyQ,EAAuC,iBAApBD,EAA+BA,EAAkB,EACpED,EACuB,iBAApBC,EAA+BxQ,EAAOwQ,EAC1CjQ,KAAKmE,OAAO,WAAyB+L,GACxClQ,KAAK0P,IAAIjS,EAAAA,SAASQ,QAAS0R,OAAKtO,EAAW2O,EAC/C,CASA,IAAAhS,CAAK2R,EAAiBlQ,GACpBO,KAAK0P,IAAIjS,EAAAA,SAASO,KAAM2R,OAAKtO,EAAW5B,EAC1C,CASA,KAAAvB,CAAMyR,EAAiBlQ,GACrBO,KAAK0P,IAAIjS,EAAAA,SAASS,MAAOyR,OAAKtO,EAAW5B,EAC3C,CAUA,KAAA3B,CAAM6R,EAAyBG,EAAqBrQ,GAClD,IAAIsQ,EACAC,EACAF,aAAalK,OACfmK,EAAiBD,EACjBE,EAAcvQ,GAEduQ,EAAcF,EAEhB9P,KAAK0P,IAAIjS,EAAAA,SAASK,MAAO6R,EAAKI,EAAgBC,EAChD,CASA,IAAAjS,CAAK4R,EAAiBlQ,GACpBO,KAAK0P,IAAIjS,EAAAA,SAASM,KAAM4R,OAAKtO,EAAW5B,EAC1C,CASA,KAAAtB,CAAMwR,EAAiBlQ,GACrBO,KAAK0P,IAAIjS,EAAAA,SAASU,MAAOwR,OAAKtO,EAAW5B,EAC3C,CAQA,SAAA0Q,CAAUhM,GACRnE,KAAK+M,KAAO,IAAM/M,KAAK+M,MAAQ,CAAA,KAAQ5I,EACzC,CAEA,QAAIiM,GACF,MAAO,IAAIpQ,KAAKgN,YAClB,CAOA,KAAAqD,GAEE,OADArQ,KAAKR,QAAU,IAAIQ,KAAKgN,aACjBhN,IACT,QAkEWiN,SAWIjN,KAAAsQ,SAA0B,CACvCC,EACApM,KAEA,MAAM2F,EAC6B,iBAA1B2B,EAAkBlN,IACrB,CAACkN,EAAkBlN,KACnB,GACN,OAAO,IAAIuO,EAAWyD,EAAQpM,EAAQ2F,GACtC,QAEa9J,KAAAwQ,QAAoC/E,CAAkB,CAErE,WAAA1L,GAAuB,CAQvB,iBAAO0Q,CAAW3J,GAChBmG,EAAQqD,SAAWxJ,EACnB9G,KAAK0Q,YAASrP,CAChB,CAQA,gBAAO8O,CAAUhM,GACfU,OAAOC,QAAQX,GAAQnD,QAAQ,EAAEqG,EAAGQ,MACjC7H,KAAKwQ,QAAgBnJ,GAAKQ,GAE/B,CAOA,gBAAOqF,GACL,OAAOlN,KAAKwQ,OACd,CAOA,UAAO/P,GACL,OAAOT,KAAK2Q,YACd,CAUA,cAAO1S,CACL0R,EACAM,EAAoC,EACpCxQ,GAEA,OAAOO,KAAKS,MAAMxC,QAAQ0R,EAAKM,EAAiBxQ,EAClD,CASA,WAAOzB,CAAK2R,EAAiBlQ,GAC3B,OAAOO,KAAKS,MAAMzC,KAAK2R,EAAKlQ,EAC9B,CASA,YAAOtB,CAAMwR,EAAiBlQ,GAC5B,OAAOO,KAAKS,MAAMtC,MAAMwR,EAAKlQ,EAC/B,CASA,YAAOvB,CAAMyR,EAAiBlQ,GAC5B,OAAOO,KAAKS,MAAMvC,MAAMyR,EAAKlQ,EAC/B,CASA,gBAAO9B,CAAUgS,EAAiBlQ,GAChC,OAAOO,KAAKS,MAAM9C,UAAUgS,EAAKlQ,EACnC,CAUA,YAAO7B,CACL+R,EACAG,EACArQ,GAEA,OAAOO,KAAKS,MAAM7C,MAAM+R,EAAKG,EAAGrQ,EAClC,CAUA,eAAO5B,CACL8R,EACAG,EACArQ,GAEA,OAAOO,KAAKS,MAAM5C,SAAS8R,EAAKG,EAAGrQ,EACrC,CAUA,YAAOrB,CACLuR,EACAM,EAAoC,EACpCxQ,GAEA,OAAOO,KAAKS,MAAMrC,MAAMuR,EAAKM,EAAiBxQ,EAChD,CASA,WAAO1B,CAAK4R,EAAiBlQ,GAC3B,OAAOO,KAAKS,MAAM1C,KAAK4R,EAAKlQ,EAC9B,CAUA,YAAO3B,CACL6R,EACAG,EACArQ,GAEA,OAAOO,KAAKS,MAAM3C,MAAM6R,EAAKG,EAAGrQ,EAClC,CAUA,UAAO,CACL8Q,EACApM,KACGsB,GAEH,MACMmL,OAAsBvP,IAAX8C,EAAuB,CAACoM,EAAQpM,GAAU,CAACoM,GAC5D,OAFavQ,KAAK0Q,OAAS1Q,KAAK0Q,OAAS1Q,KAAK2Q,WAAWlL,IAE5CoI,OAAe+C,EAC9B,CASA,cAAOC,CAAQC,EAAgBnS,GAE7B,IAAIoS,EADS/Q,KAAK2Q,aACC9C,IAAYiD,EAAQ9Q,KAAKwQ,SAE5C,OADI7R,IAAIoS,EAAUA,EAAOlD,IAAYlP,IAC9BoS,CACT,CAEQ,kBAAO/D,GACb,MAAMzO,EAAMyB,KAAKwQ,QAAQjS,IACzB,MAAsB,iBAARA,GAAoBA,EAAI8D,OAAS,CAAC9D,GAAO,EACzD,CAEQ,wBAAOyS,CAAkBD,GAC/B,MAAMjH,EACHiH,EAAeX,MAAQ7O,MAAMwG,QAASgJ,EAAeX,MAClD,IAAKW,EAAeX,MACpBpQ,KAAKgN,cASX,QAPI+D,EAAevR,SAChB+B,MAAMwG,QAASgJ,EAAevR,UACM,IAAlCuR,EAAevR,QAAQ6C,UAEzB0O,EAAevR,QAAU,IAAIsK,IAE/BiH,EAAelE,GAAuB,IAAI/C,GACpCiH,CACT,CAEQ,iBAAOJ,CAAWM,EAAgB,IACxC,IAAKjR,KAAK0Q,OAAQ,CAChB,MAAM9G,EAAW5J,KAAKsQ,cAASjP,OAAWA,KAAc4P,GACxDjR,KAAK0Q,OAAS1Q,KAAKgR,kBAAkBpH,EACvC,CACA,OAAO5J,KAAK0Q,MACd,CAmCA,YAAO7Q,CACLsC,EACAO,EACAwO,EACAC,EAAkB7S,GAElB,IAAK0B,KAAKwQ,QAAQvR,MAAO,OAAOkD,EAoEhC,MAAMiP,EAAkBD,EAASzO,GACjC,IAAK0O,IAAoBvM,OAAOjE,KAAKwQ,GAAiB/O,OACpD,OAAOF,EAGT,IAAIkP,EAA2BD,EAE/B,MAAME,EAAYzM,OAAO6G,OAAO,CAAA,EAAIjO,EAAAA,UAKpC,OAJIoH,OAAOjE,KAAKwQ,GAAiB,KAAME,IACrCD,EACGD,EAA0CF,IAAgB,CAAA,GAExDrM,OAAOjE,KAAKyQ,GAAavL,OAAO,CAACC,EAAazF,KACnD,MAAMyE,EAAOsM,EAA4B/Q,GACzC,OAAIyE,EAjFN,EACEwM,EACAC,EACA7O,KAEA,IACE,MAAM8O,EAA2BF,EACjC,IAAIG,EAAIzS,EAAAA,MAAMwS,GAEd,SAASE,EACP5M,EACA6M,GAAO,GAEP,IAAIC,EAIoBD,EAAOF,EAAEI,WAAaJ,EAAEK,WAChD,IAAKxQ,MAAMwG,QAAQhD,GACjB,OAAQ8M,EAAgD1I,KACtDuI,EACA/O,GAGJ,OAAQoC,EAAI1C,QACV,KAAK,EAEH,OADAwP,EAAID,EAAOF,EAAEM,WAAaN,EAAEO,SACpBJ,EAA8C9M,EAAI,IAC5D,KAAK,EAEH,OADA8M,EAAID,EAAOF,EAAEQ,MAAQR,EAAES,IAChBT,EAAES,IAAIpN,EAAI,GAAIA,EAAI,GAAIA,EAAI,IACnC,QAEE,OAAO9F,EAAAA,MAAMwS,GAEnB,CAEA,SAASW,EAAWvK,GAEhB6J,EADe,iBAAN7J,EACL6J,EAAEzS,MAAM4I,GAER6J,EAAE7J,EAEV,CAEA,OAAQ2J,GACN,IAAK,KACL,IAAK,KACH,OAAOG,EAAWhP,GAAiBR,KACrC,IAAK,QAMH,OALIZ,MAAMwG,QAAQpF,GAChBA,EAAM3B,QAAQoR,GAEdA,EAAWzP,GAEN+O,EAAEvP,KACX,QAEE,OAAOsP,EAGb,CAAE,MAAO3B,GAEP,OAAOyB,CACT,CACF,EAiBW/D,CACLzH,EACAzF,EACAyE,GAOGgB,GACN5D,EACL,CAEA,eAAOhC,CAASC,GACd,OAAOqE,EAAqBtE,SAASC,EACvC,CACA,iBAAOG,CAAWD,GAChB,OAAOmE,EAAqBlE,WAAWD,EACzC,QC3gCoB+R,EAQpB,OAAc3C,GAEZ,OADK1P,KAAKsS,OAAMtS,KAAKsS,KAAOrF,EAAQY,IAAI7N,OACjCA,KAAKsS,IACd,CAEA,WAAAvS,GAAyB,ECjBrB,MAAgBwS,UAAkBF,EAMtC,OAAa3C,GACX,OAAO3I,MAAM2I,IAAI7B,IAAI7N,KAAa,CAAEX,QAAS,IAC/C,ECeK,MAAMmT,EA1Ba,oBAAflM,YACgC,mBAAhCA,WAAWmM,aAAaD,IAExB,IAAMlM,WAAWmM,YAAYD,MAIjB,oBAAZlL,SACoC,mBAAnCA,QAAgBoL,QAAQC,OAEzB,KACL,MAAMC,EAAMtL,QAAgBoL,OAAOC,SACnC,OAAOhL,OAAOiL,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,CAACrH,EAAWsH,IAActH,EAAEhG,WAAWuN,SAASD,EAAG,KAC/D,MAAO,GAAGT,IAAOQ,EAAIL,EAAO,MAAMK,EAAIH,EAAS,MAAMG,EAAIF,EAAS,MAAME,EAAID,EAAQ,IACtF,CC/MM,SAAU5D,EACdtQ,EAAkB3B,EAAAA,SAASO,KAC3BkS,EAAY,EACZwD,EAAkC,IAAIjO,IAAgB,eAAeA,EACrEkO,GAEA,MAAO,CAAalK,EAAamK,EAAmBxT,KAClD,IAAKA,GAAoC,iBAAfA,EACxB,MAAUwF,MAAM,8CAClB,MAAMmL,EACJtH,aAAkB4I,EACd5I,EAAY,IAAEoE,IAAIpE,EAAOmK,IACzB3G,EAAQY,IAAIpE,GAAQoE,IAAIpE,EAAOmK,IAC/B7U,EAASgS,EAAO3R,GAAOyU,KAAK9C,GAC5B+C,EAAiB1T,EAAWuC,MA0BlC,OAxBAvC,EAAWuC,MAAQ,IAAI6G,MAAMsK,EAAgB,CAC3C,KAAAtG,CAAMd,EAAIqH,EAAStO,GACjB1G,EAAO2U,KAAgBjO,GAAOyK,GAC9B,IACE,MAAMpM,EAASwF,QAAQkE,MAAMd,EAAIqH,EAAStO,GAC1C,OAAI3B,aAAkBkQ,QACblQ,EACJmQ,KAAMC,IACDP,GAAa5U,EAAO4U,OAAYtS,EAAW6S,IACxCA,IAERC,MAAOrE,IAEN,MADI6D,GAAa5C,EAAOjT,MAAM6V,EAAY7D,IACpCA,KAGR6D,GAAa5U,EAAO4U,OAAYtS,EAAWyC,IACxCA,EACT,CAAE,MAAO2L,GAEP,MADIkE,GAAa5C,EAAOjT,MAAM6V,EAAYlE,IACpCA,CACR,CACF,IAEKrP,CACT,CACF,UA4IgBgU,IACd,MAAO,CAAC3K,EAAgBmK,EAAmBxT,KACzC,IAAKA,EACH,MAAUwF,MAAM,+CAIlB,OAHIxF,GAAY+G,eACd/G,EAAW+G,cAAe,GAErB/G,EAEX,CClMM,MAAOiU,UAAsB9B,EACjC,WAAAxS,CACqBiF,EACAsP,GAEnBvN,QAHmB/G,KAAAgF,OAAAA,EACAhF,KAAAsU,YAAAA,CAGrB,CASU,KAAAtO,CAAMlH,GACd,MAAMkH,EAAQhG,KAAKgF,OAAO4H,KAAK9N,GAE/B,OADAkB,KAAKgF,OAAOuP,UAAY,EACjBvO,CACT,CAWA,MAAAiG,CAAO9H,EAAuBrF,EAAiBU,GAC7C,MAAMkQ,EAAM1P,KAAK0P,IAAI7B,IAAI7N,KAAKiM,QAE9B,IADcjM,KAAKgG,MAAMlH,GACb,OAAOA,EACnB,IACE,OAAOA,EAAQqG,QAAQnF,KAAKgF,OAAQhF,KAAKsU,YAC3C,CAAE,MAAOxE,GACPJ,EAAI5R,MAAM,oCAAoCgS,EAChD,CACA,MAAO,EACT,EAzBU0E,EAAAA,WAAA,CADTJ,8HAKAC,EAAA9N,UAAA,QAAA,iCCvBmB,4IAQM,+JAUQ,0EHkClC,WAAAxG,CAAY0U,GAAY,GANhBzU,KAAA0U,SAA0B,KAC1B1U,KAAA2U,WAAa,EACb3U,KAAA4U,UAAW,EACX5U,KAAA6U,MAAe,GACf7U,KAAA8U,gBAAkB,EAGpBL,GAAWzU,KAAK+U,OACtB,CAOA,WAAIC,GACF,OAAOhV,KAAK4U,QACd,CAOA,aAAIK,GACF,OAAKjV,KAAK4U,UAA6B,MAAjB5U,KAAK0U,SACpB1U,KAAK2U,YAAcnC,IAAQxS,KAAK0U,UADa1U,KAAK2U,UAE3D,CAOA,KAAAI,GAKE,OAJK/U,KAAK4U,WACR5U,KAAK4U,UAAW,EAChB5U,KAAK0U,SAAWlC,KAEXxS,IACT,CAOA,KAAAkV,GAME,OALIlV,KAAK4U,UAA6B,MAAjB5U,KAAK0U,WACxB1U,KAAK2U,YAAcnC,IAAQxS,KAAK0U,SAChC1U,KAAK0U,SAAW,KAChB1U,KAAK4U,UAAW,GAEX5U,IACT,CAOA,MAAAmV,GAKE,OAJKnV,KAAK4U,WACR5U,KAAK4U,UAAW,EAChB5U,KAAK0U,SAAWlC,KAEXxS,IACT,CAOA,IAAAoV,GAEE,OADApV,KAAKkV,QACElV,KAAK2U,UACd,CAOA,KAAAU,GACE,MAAMC,EAAatV,KAAK4U,SAKxB,OAJA5U,KAAK0U,SAAWY,EAAa9C,IAAQ,KACrCxS,KAAK2U,WAAa,EAClB3U,KAAK6U,MAAQ,GACb7U,KAAK8U,gBAAkB,EAChB9U,IACT,CAQA,GAAAuV,CAAIC,GACF,MAAMC,EAAQzV,KAAKiV,UACbnC,EAAK2C,EAAQzV,KAAK8U,gBAClBS,EAAW,CACfnT,MAAOpC,KAAK6U,MAAMxS,OAClBmT,QACA1C,KACA4C,QAASD,GAIX,OAFAzV,KAAK6U,MAAMpS,KAAK8S,GAChBvV,KAAK8U,gBAAkBW,EAChBF,CACT,CAMA,QAAII,GACF,OAAO3V,KAAK6U,KACd,CAOA,QAAA3O,GACE,OAAO2M,EAAS7S,KAAKiV,UACvB,CAOA,MAAAW,GACE,MAAO,CACLZ,QAAShV,KAAK4U,SACdK,UAAWjV,KAAKiV,UAChBU,KAAM3V,KAAK6U,MAAMhS,QAErB,aGnM6B,8BFmFtB,CAAmB4G,EAAamK,EAAmBxT,KACxD,IAAKA,GAAoC,iBAAfA,EACxB,MAAUwF,MAAM,gDAClB,MAAMmL,EACJtH,aAAkB4I,EACd5I,EAAY,IAAEoE,IAAIpE,EAAOmK,IACzB3G,EAAQY,IAAIpE,GAAQoE,IAAIpE,EAAOmK,IAC/BE,EAAiB1T,EAAWuC,MA2BlC,OAzBAvC,EAAWuC,MAAQ,IAAI6G,MAAMsK,EAAgB,CAC3C,KAAAtG,CAAMd,EAAIqH,EAAStO,GACjB,MAAMsP,EAAQvC,IACd,IACE,MAAM1O,EAASwF,QAAQkE,MAAMd,EAAIqH,EAAStO,GAC1C,OAAI3B,aAAkBkQ,QACblQ,EACJmQ,KAAMC,IACLnD,EAAOpT,UAAU,gBAAgB6U,IAAQuC,OAClCb,IAERC,MAAOrE,IAEN,MADAiB,EAAOpT,UAAU,aAAa6U,IAAQuC,OAChCjF,KAGZiB,EAAOpT,UAAU,gBAAgB6U,IAAQuC,OAClCjR,EACT,CAAE,MAAO2L,GAEP,MADAsB,EAAOpT,UAAU,aAAa6U,IAAQuC,OAChCtF,CACR,CACF,IAGKrP,CACT,oCAWOsP,EACLjS,EAAAA,SAASS,MACT,EACA,IAAIuH,IAAgB,eAAeA,EACnC,CAACqK,EAAWhM,IACVgM,EACI,gBAAgBA,EAChBhM,EACE,kBAAkBuL,KAAKC,UAAUxL,GACjC,kFAYH4L,EAAIjS,EAAAA,SAASO,6HRnKhB,CACJ6X,EACAxT,EACAC,EAAe,OAEf,GAAoB,IAAhBA,EAAKD,OACP,MAAUuD,MAAM,sDAClB,OAAOiQ,EAAIC,OAAOzT,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,wDQiIjC8K,EAAIjS,EAAAA,SAASW,sCRhGM+D,GACnBA,EACJgD,QAAQ,sBAAuB,CAAC4Q,EAAM3T,IAC3B,IAAVA,EAAc2T,EAAKzQ,cAAgByQ,EAAK3R,eAEzCe,QAAQ,OAAQ,kCAsCOhD,GACnBA,EACJgD,QAAQ,kBAAmB,SAC3BA,QAAQ,UAAW,KACnBG,6BAWwBnD,GACpBA,EACJgD,QAAQ,sBAAwB4Q,GAASA,EAAK3R,eAC9Ce,QAAQ,OAAQ,gCQ8CZuK,EAAIjS,EAAAA,SAASU,iBAWhB,CAAkB+R,EAA8B,KAC/CA,IACHA,EAAY,GAEPR,EAAIjS,EAAAA,SAASQ,QAASiS"}
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","fromEnv","k","process","parseEnvValue","parseRuntimeValue","trimmed","test","Number","expand","v","mergeModel","buildEnvProxy","orThrow","modelRoot","parseRuntime","missing","empty","missingEnvError","createNestedProxy","model","path","handler","_target","prop","isArray","Reflect","bind","nextPath","envKey","runtimeRaw","readRuntimeForPath","runtimeValue","hasOwnProperty","call","modelValue","ownKeys","getOwnPropertyDescriptor","Proxy","target","receiver","actual","instance","_instance","base","proxied","accumulate","desc","formatEnvSegment","buildEnvKey","map","buildRawKey","formattedKey","rawKey","runtimeFormatted","readRuntimeEnv","runtimeEnv","getRuntimeChildKeys","prefixes","childKeys","fullPrefix","startsWith","childKey","split","hasRuntimePath","current","readEnv","arrayIndexPattern","toPrimitive","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","originalContext","for","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,CC+CA,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,CAQU,OAAAC,CAAQC,GAChB,IAAIlI,EAYJ,OAXIiH,IACFjH,EAEImH,WAGAhJ,IAAkB,CAAA,GAEtB6B,EAAMmH,WAAWgB,QAAQnI,IACzBkI,EAAIjC,EAAYiC,IAEXrH,KAAKuH,cAAcpI,EAAIkI,GAChC,CAQU,aAAAE,CAAcxC,GACtB,OAAO6B,EAAYY,kBAAkBzC,EACvC,CAEQ,wBAAOyC,CAAkBzC,GAC/B,GAAmB,iBAARA,EAAkB,OAAOA,EACpC,GAAY,SAARA,EAAgB,OAAO,EAC3B,GAAY,UAARA,EAAiB,OAAO,EAC5B,MAAM0C,EAAU1C,EAAI7B,OACpB,MAAI,kBAAkBwE,KAAKD,GAClBE,OAAOF,GAET1C,CACT,CASmB,MAAA6C,CAAyBjF,GAC1CkC,OAAOC,QAAQnC,GAAO3B,QAAQ,EAAEqG,EAAGQ,MACjCjB,EAAYkB,WAAY9H,KAAa0G,GAAcW,EAAGQ,GACtDhD,OAAOmC,eAAehH,KAAMqH,EAAG,CAC7B5G,IAAK,KACH,MAAM2G,EAAUpH,KAAKoH,QAAQC,GAC7B,YAAuB,IAAZD,EAAgCA,EACvCS,GAAkB,iBAANA,EACejB,EAAYmB,cAAcF,EAAU,CAACR,IAI1D,KAANQ,EACKrB,EAEFqB,GAETxH,IAAM0E,IACJ8C,EAAI9C,GAENoC,cAAc,EACdD,YAAY,KAGlB,CAOA,OAAAc,GAEE,MACMC,EADOjI,KACmB0G,GAC1BwB,EAAgB9G,QACL,IAARA,EAAsBpB,KAAKuH,cAAcnG,QAAOC,EAEnD8G,EAAU,CAAC7H,EAAa8H,GAAiB,IAC7CxB,EAAYyB,gBAAgB/H,EAAK8H,GAE7BE,EAAoB,CAACC,EAAYC,KACrC,MAAMC,EAA6B,CACjC,GAAAhI,CAAIiI,EAASC,GACX,GAAoB,iBAATA,EAAmB,OAC9B,GAAIpH,MAAMqH,QAAQL,IAAmB,WAATI,EAAmB,OAAOJ,EAAMlG,OAC5D,GAAId,MAAMqH,QAAQL,IAAUI,KAAQpH,MAAMgF,UAAW,CACnD,MAAM5D,EAAQkG,QAAQpI,IAAI8H,EAAOI,EAAMJ,GACvC,MAAwB,mBAAV5F,EAAuBA,EAAMmG,KAAKP,GAAS5F,CAC3D,CACA,MAAMoG,EAAW,IAAIP,EAAMG,IACnBrI,IAAK0I,EAAQrG,MAAOsG,GAC1BrC,EAAYsC,mBAAmBH,GACjC,GAA0B,iBAAfE,GAAiD,IAAtBA,EAAW5G,OAC/C,MAAM8F,EAAQa,GAAQ,GACxB,MAAMG,EAAejB,EAAae,GAClC,QAA4B,IAAjBE,EAA8B,CACvC,GAA4B,iBAAjBA,GAAqD,IAAxBA,EAAa9G,OACnD,MAAM8F,EAAQa,GAAQ,GACxB,OAAOG,CACT,CAIA,IADEZ,IAAS1D,OAAO0B,UAAU6C,eAAeC,KAAKd,EAAOI,GACzC,MAAMR,EAAQa,GAE5B,MAAMM,EAAaf,EAAMI,GACzB,QAA0B,IAAfW,EAAX,CACA,GAAmB,KAAfA,EAAmB,MAAMnB,EAAQa,GAErC,OAAIM,GAAoC,iBAAfA,EAChBhB,EAAkBgB,EAAYP,GAGhCO,CAPgD,CAQzD,EACAC,QAAO,IACEhB,EAAQM,QAAQU,QAAQhB,GAAS,GAE1C,wBAAAiB,CAAyBd,EAASC,GAChC,GAAKJ,EACL,OAAI1D,OAAO0B,UAAU6C,eAAeC,KAAKd,EAAOI,GACvC,CACLzB,YAAY,EACZC,cAAc,QAHlB,CAOF,GAGF,OAAO,IAAIsC,MADIlI,MAAMqH,QAAQL,GAAS,GAAK,CAAA,EAClBE,IAwC3B,OAAO,IAAIgB,MAlGEzJ,KA6DsB,CACjC,GAAAS,CAAIiJ,EAAQf,EAAMgB,GAChB,GAAoB,iBAAThB,EACT,OAAOE,QAAQpI,IAAIiJ,EAAQf,EAAMgB,GAKnC,IAJqB9E,OAAO0B,UAAU6C,eAAeC,KACnDpB,EACAU,GAEiB,OAAOE,QAAQpI,IAAIiJ,EAAQf,EAAMgB,GAEpD,MAAQrJ,IAAK0I,EAAQrG,MAAOsG,GAC1BrC,EAAYsC,mBAAmB,CAACP,IAClC,GAA0B,iBAAfM,GAAiD,IAAtBA,EAAW5G,OAC/C,MAAM8F,EAAQa,GAAQ,GACxB,MAAMG,EAAejB,EAAae,GAClC,QAA4B,IAAjBE,EAA8B,CACvC,GAA4B,iBAAjBA,GAAqD,IAAxBA,EAAa9G,OACnD,MAAM8F,EAAQa,GAAQ,GACxB,OAAOG,CACT,CAEA,MAAMG,EAAarB,EAAUU,GAC7B,GAAIW,GAAoC,iBAAfA,EACvB,OAAOhB,EAAkBgB,EAAY,CAACX,IAGxC,QAA0B,IAAfW,EACT,OAAOT,QAAQpI,IAAIiJ,EAAQf,EAAMgB,GAEnC,MAAMC,EAASf,QAAQpI,IAAIiJ,EAAQf,GACnC,QAAsB,IAAXiB,GAAqC,KAAXA,EACnC,MAAMzB,EAAQa,EAAmB,KAAXY,GAExB,OAAOA,CACT,GAIJ,CAWU,eAAOC,IAAwCpE,GACvD,IAAKmB,EAAYkD,UAAW,CAC1B,MAAMC,EAAOnD,EAAYE,WAAWrB,GAC9BuE,EAAU,IAAIP,MAAMM,EAAa,CACrC,GAAAtJ,CAAIiJ,EAAQf,EAAMgB,GAChB,MAAMhH,EAAQkG,QAAQpI,IAAIiJ,EAAQf,EAAMgB,GACxC,GAAIhH,IAAU6D,IAGI,iBAATmC,IACP9D,OAAO0B,UAAU6C,eAAeC,KAAKK,EAAQf,SAExB,IAAVhG,GAJb,CAMA,QAAqB,IAAVA,EAAuB,OAAOA,EACzC,GAAoB,iBAATgG,EAAmB,CAE5B,GAAa,QAATA,EAAgB,OACpB,OAAO/B,EAAYmB,mBAAc1G,EAAW,CAACsH,GAC/C,CACA,OAAOhG,CAPP,CAQF,IAEFiE,EAAYkD,UAAYE,CAC1B,CACA,OAAOpD,EAAYkD,SACrB,CAKgB,UAAAG,CACdtH,GAIA,OADAoE,MAAMkD,WAAWtH,GACV3C,IACT,CAUA,iBAAOiK,CAA6BtH,GAClC,MAAMkH,EAAWjD,EAAYiD,WAgB7B,OAfAhF,OAAOjE,KAAKiJ,GAAiB7I,QAASV,IACpC,MAAM4J,EAAOrF,OAAO2E,yBAAyBK,EAAiBvJ,GAC1D4J,GAAQA,EAAK/C,cAAgB+C,EAAKhD,YACpCrC,OAAOmC,eAAe6C,EAAiBvJ,EAAK,IACvC4J,EACHhD,YAAY,MAOlB2C,EAASI,WAAWtH,GAGbkH,CACT,CAQA,UAAOpJ,CAAIH,GACT,OAAOsG,EAAYkD,UAAUrJ,IAAIH,EACnC,CAEQ,uBAAO6J,CAAiBxG,GAC9B,OAAOgD,EAAiBe,KAAK/D,GACzByB,EAAYzB,GACZA,EAAQS,aACd,CAEQ,kBAAOgG,CAAY5B,GACzB,OAAOA,EACJ6B,IAAK1G,GAAYiD,EAAYuD,iBAAiBxG,IAC9CK,KAAKzG,EACV,CAEQ,kBAAO+M,CAAY9B,GACzB,OAAOA,EAAKxE,KAAKzG,EACnB,CAEQ,yBAAO2L,CAAmBV,GAChC,MAAM+B,EAAe3D,EAAYwD,YAAY5B,GACvCgC,EAAS5D,EAAY0D,YAAY9B,GACjCiC,EAAmB7D,EAAY8D,eAAeH,GACpD,QAAgC,IAArBE,EACT,MAAO,CAAEnK,IAAKiK,EAAc5H,MAAO8H,GAErC,GAAID,IAAWD,EAAc,CAC3B,MAAMtB,EAAarC,EAAY8D,eAAeF,GAC9C,QAA0B,IAAfvB,EACT,MAAO,CAAE3I,IAAKkK,EAAQ7H,MAAOsG,EAEjC,CACA,MAAO,CAAE3I,IAAKiK,EAAc5H,WAAOtB,EACrC,CAEQ,iBAAOsJ,GACb,OAAIvE,IAEAE,WAGAhJ,GAGIgJ,YAAoBgB,SAASnI,GACvC,CAEQ,0BAAOyL,CAAoBpC,GACjC,MAAMrJ,EAAMyH,EAAY+D,aACxB,IAAKxL,EAAK,MAAO,GAEjB,MAAM0L,EAAW,CACfjE,EAAYwD,YAAY5B,GACxB5B,EAAY0D,YAAY9B,IAEpBsC,EAAY,IAAI/J,IActB,OAZA8D,OAAOjE,KAAKzB,GAAK6B,QAASV,IACxBuK,EAAS7J,QAAS8B,IAChB,IAAKA,EAAQ,OACb,MAAMiI,EAAa,GAAGjI,IAASvF,IAC/B,GAAI+C,EAAI0K,WAAWD,GAAa,CAC9B,MACME,EADY3K,EAAIuC,MAAMkI,EAAW1I,QACZ6I,MAAM3N,GAAoB,GACjD0N,GAAUH,EAAU5J,IAAI+J,EAC9B,MAIG,IAAIH,EACb,CAEQ,qBAAOK,CAAe3C,GAC5B,MAAM7F,MAAEA,GAAUiE,EAAYsC,mBAAmBV,GACjD,YAAwB,IAAV7F,GAAyBiE,EAAYgE,oBAAoBpC,GAAMnG,OAAS,CACxF,CASQ,oBAAO0F,CAAcqD,EAAc5C,GACzC,MAAM6C,EAAW/K,GACRsG,EAAY8D,eAAepK,GAG9BgL,EAAoB,WAIpB7C,EAA6B,CACjC,GAAAhI,CAAIiI,EAASC,GACX,GAAIA,IAASlC,OAAO8E,YAClB,MAAO,IAAM3E,EAAYwD,YAAY5B,GAEvC,GAAa,aAATG,EACF,MAAO,IAAM/B,EAAYwD,YAAY5B,GAEvC,GAAa,YAATG,EACF,MAAO,IAAM/B,EAAYwD,YAAY5B,GAEvC,GAAoB,iBAATG,EAAmB,OAE9B,GAAIpH,MAAMqH,QAAQwC,IAAYzC,KAAQpH,MAAMgF,UAAW,CACrD,MAAM5D,EAAQkG,QAAQpI,IAAI2K,EAASzC,EAAMyC,GACzC,MAAwB,mBAAVzI,EAAuBA,EAAMmG,KAAKsC,GAAWzI,CAC7D,CACA,GAAIpB,MAAMqH,QAAQwC,IAAqB,WAATzC,EAAmB,OAAOyC,EAAQ/I,OAChE,MAAM0G,EAAW,IAAIP,EAAMG,GACrB6C,EAAc5E,EAAYwD,YAAYrB,GACtCyB,EAAS5D,EAAY0D,YAAYvB,GAGvC,IAAI0C,EAAWJ,EAAQG,GAIvB,QAHwB,IAAbC,GAA4BjB,IAAWgB,IAChDC,EAAWJ,EAAQb,SAEG,IAAbiB,EACT,OAAO7E,EAAYY,kBAAkBiE,GAEvC,MAAMC,IACFN,GAAWvG,OAAO0B,UAAU6C,eAAeC,KAAK+B,EAASzC,GACvDgD,EAAYD,EAAWN,EAAgBzC,QAAQtH,EAC/CuK,EAAuBhF,EAAYuE,eAAepC,GAExD,OAAIxH,MAAMqH,QAAQwC,IAtCD,CAACzC,GACJ,iBAATA,GAAqB2C,EAAkB5D,KAAKiB,GAqCnBkD,CAAalD,GACpC+C,EAKDC,GAAkC,iBAAdA,EACf/E,EAAYmB,cAAc4D,EAAW5C,GACvCnC,EAAYY,kBAAkBmE,GAN5BC,EACHhF,EAAYmB,mBAAc1G,EAAW0H,QACrC1H,EAOasK,GAAkC,iBAAdA,EAChB/E,EAAYmB,cAAc4D,EAAW5C,GAE1D2C,GAAyB,KAAdC,GACXD,QAAgC,IAAdC,OADtB,EAGID,EACK9E,EAAYY,kBAAkBmE,GAI9B/E,EAAYmB,mBAAc1G,EAAW0H,EAMhD,EACA,OAAAQ,GACE,MAAM3I,EAAO,IAAIG,IAKjB,OAJIqK,GACFvC,QAAQU,QAAQ6B,GAASpK,QAASV,GAAQM,EAAKM,IAAIZ,IAErDsG,EAAYgE,oBAAoBpC,GAAMxH,QAASV,GAAQM,EAAKM,IAAIZ,IACzD,IAAIM,EACb,EACA4I,yBAAwB,CAACsC,EAAIC,IACvBX,GAAWvG,OAAO0B,UAAU6C,eAAeC,KAAK+B,EAASW,GACpDlD,QAAQW,yBAAyB4B,EAASW,GAElC,iBAANA,GAAkBnF,EAAYuE,eAAe,IAAI3C,EAAMuD,IACzD,CAAE7E,YAAY,EAAMC,cAAc,QAD3C,GAQJ,OAAO,IAAIsC,MADIlI,MAAMqH,QAAQwC,GAAW,GAAM,CAAA,EACrB3C,EAC3B,CASA,WAAO7H,CAAKoL,GAAiB,GAC3B,OAAOpF,EAAYiD,WAChBjJ,OACAyJ,IAAKhD,GAAO2E,EAAQ5G,EAAYiC,GAAKA,EAC1C,CAEQ,iBAAOS,CACbS,EACAjI,EACAqC,GAEA,GAAK4F,EAAL,CACA,GAAI5F,GAA0B,iBAAVA,IAAuBpB,MAAMqH,QAAQjG,GAAQ,CAC/D,MAAMsJ,EAAW1D,EAAMjI,GACjBoJ,EACJuC,GAAgC,iBAAbA,IAA0B1K,MAAMqH,QAAQqD,GACvDA,EACA,CAAA,EAKN,OAJA1D,EAAMjI,GAAOoJ,OACb7E,OAAOC,QAAQnC,GAAO3B,QAAQ,EAAEiK,EAAUiB,MACxCtF,EAAYkB,WAAW4B,EAAQuB,EAAUiB,IAG7C,CACA3D,EAAMjI,GAAOqC,CAbD,CAcd,CAEQ,qBAAO+H,CAAepK,GAC5B,GAAI8F,IAAa,CACf,MAAMjH,EACJmH,WAGAhJ,GACF,OAAO6B,EAAMA,EAAImB,QAAOe,CAC1B,CACA,OAAQiF,YAAoBgB,SAASnI,MAAMmB,EAC7C,CAEQ,sBAAO+H,CAAgB/H,EAAa8H,GAE1C,OAAWxC,MACT,wBAAwBtF,yBAFX8H,EAAQ,kBAAoB,eAI7C,EASK,MAAM+D,EAAoBvF,EAAYqD,WAC3CpF,OAAOuH,OACL,CACE7N,SAAK8C,GAEPnC,EACA,CACEC,KACGiH,KAAgBE,WAAmBhJ,GAC/BgJ,WAAmBhJ,GAAyB,SAC5CgJ,WAAmBgB,QAAQnI,IAAc,WAAM,iBC1lBtD,SAAUkN,EACd1J,GAEA,GAAqB,mBAAVA,EAAsB,OAAO,EAIxC,IACE,MAAM2J,EAAMC,SAAShG,UAAUL,SAASmD,KAAK1G,GAC7C,GAAI,iBAAiB+E,KAAK4E,GAAM,OAAO,CACzC,CAAE,MAEF,CAGA,MAAME,EAAY3H,OAAO2E,yBAAyB7G,EAAO,aACzD,IAAK6J,IAAcA,EAAU7J,MAAO,OAAO,EAI3C,IAA2B,IAAvB6J,EAAUvF,SAAoB,OAAO,EAIzC,MAAMwF,EAAS9J,EAAc4D,UAC7B,QAAK1B,OAAO0B,UAAU6C,eAAeC,KAAKoD,EAAO,gBAEnC5H,OAAO6H,oBAAoBD,GAAOE,OAC7CC,GAAY,gBAANA,GAEIvK,OAAS,CACxB,CAWM,SAAUwK,EACdlK,GAEA,MAAwB,mBAAVA,IAAyB0J,EAAQ1J,EACjD,CAWM,SAAUmK,EACdnK,GAEA,IAAKkK,EAAclK,GAAQ,OAAO,EAElC,MAAMvC,EAAayE,OAAO2E,yBAAyB7G,EAAO,aAC1D,OAAQvC,QAAmCiB,IAArBjB,EAAWuC,KACnC,CAWM,SAAUoK,EAA6BpK,GAC3C,GAAc,OAAVA,GAAmC,iBAAVA,EAAoB,OAAO,EAGxD,MAAMqK,EAAQrK,EAAqC5C,YACnD,SAAKiN,GAAQA,IAASnI,SAEfwH,EAAQW,EACjB,CAUM,SAAUC,EAActK,GAC5B,GAAc,OAAVA,EAAgB,MAAO,OAC3B,QAActB,IAAVsB,EAAqB,MAAO,YAChC,GAAqB,iBAAVA,EAAoB,OAAOA,EAEtC,GAAI0J,EAAQ1J,GACV,OAAOA,EAAMuK,MAAQ,iBAGvB,GAAIH,EAAWpK,GAAQ,CACrB,MAAMwK,EAAcxK,EAAsCuD,SAC1D,GACwB,mBAAfiH,GACPA,IAAetI,OAAO0B,UAAUL,SAEhC,IACE,MAAMrF,EAAWsM,EAAW9D,KAAK1G,GACjC,GAAwB,iBAAb9B,GAAyBA,EAASwB,OAAQ,OAAOxB,CAC9D,CAAE,MAEF,CAGF,MAAMmM,EAAQrK,EAAqC5C,YACnD,OAAOiN,GAAQA,EAAKE,KAAOF,EAAKE,KAAO,mBACzC,CAEA,GAAIJ,EAASnK,IAAUkK,EAAWlK,GAAQ,CAExC,MAAMyK,EAAKzK,EACX,OAAIyK,EAAGF,KAAaE,EAAGF,KAChB,WACT,CAEA,GAAqB,iBAAVvK,EAAoB,CAC7B,MAAM0K,EAAMxI,OAAO0B,UAAUL,SAASmD,KAAK1G,GACrCqD,EAAQ,wBAAwBsH,KAAKD,GAC3C,OAAIrH,IAAQ,GAAWA,EAAM,GACtB,QACT,CAEA,cAAcrD,CAChB,OCvHa4K,EAAsB9G,OAAO,+BAyB7B+G,EAIX,WAAAzN,CACEP,EACUiO,EACVC,EAAwB,IADd1N,KAAAyN,KAAAA,EAGVzN,KAAK0N,YAAcnM,MAAMqH,QAAQ8E,GAAe,IAAIA,GAAe,GAC/DlO,GAASQ,KAAK0N,YAAYjL,KAAKjD,GACnCQ,KAAKR,QAAU,IAAIQ,KAAK0N,aACvB1N,KAAauN,GAAuB,IAAIvN,KAAK0N,YAChD,CAEU,MAAAvJ,CAAsC7D,GAC9C,OAAIN,KAAKyN,MAAQnN,KAAON,KAAKyN,KACpBzN,KAAKyN,KAAKnN,GACZqN,EAAQC,YAAYtN,EAC7B,CA4BA,IACEvB,EAMAoF,KACGsB,GAEH,IAAIoI,EACAC,EAAc3J,EAClB,MAAM4J,EAAgBxM,MAAMqH,QAAQ5I,KAAKR,SACrC,IAAIQ,KAAKR,SACe,iBAAjBQ,KAAKR,SAAwBQ,KAAKR,QACvC,CAACQ,KAAKR,SACN,GACAwO,EAAiBhO,KAAauN,GAC9BG,EAAcnM,MAAMqH,QAAQoF,GAC9B,IAAIA,GACJzM,MAAMqH,QAAQ5I,KAAK0N,aACjB,IAAI1N,KAAK0N,aACT,GAEgB,iBAAX3O,EACT8O,EAAc9O,OACMsC,IAAXtC,IACLsN,EAAQtN,IAAWgO,EAAWhO,IAAW8N,EAAW9N,GACtD8O,EAAcZ,EAAclO,IAClB+O,GAAe/O,GAA4B,iBAAXA,IAC1C+O,EAAc/O,IAIlB,IAAIkP,EAAkBJ,EAClB,IAAIE,EAAeF,GACnB,IAAIE,GAER,OAAO,IAAItE,MAAMzJ,KAAM,CACrBS,IAAK,CAACiJ,EAAqBqC,EAAoBpC,KAC7C,MAAM7F,EAAS+E,QAAQpI,IAAIiJ,EAAQqC,EAAGpC,GACtC,MAAU,WAANoC,EACK,IAAItC,MAAMzJ,KAAKmE,OAAQ,CAC5B+J,MAAO,CACLxE,EACAyE,EACAC,KAEA,MAAO9N,GAAO8N,EACd,OAAIN,QAAuBzM,IAARf,GAAqBA,KAAOwN,EACtCA,EAAYxN,GAEduI,QAAQqF,MAAMxE,EAAQC,EAAUyE,IAEzC3N,IAAK,CAACiJ,EAA4BpJ,IAC5BwN,GAAexN,KAAOwN,EACjBA,EAAYxN,GACduI,QAAQpI,IAAIiJ,EAAQpJ,EAAKqJ,KAI5B,UAANoC,EACK,KACLkC,EAAkB,IAAIP,GACtBI,OAAczM,EACPsI,GAGD,YAANoC,EACKkC,EAEC,SAANlC,EACK,IAAI2B,GAET3B,IAAMwB,EACDG,EAEC,QAAN3B,EACK,IAAIsC,KACT,MAAMC,EAAkB/M,MAAMqH,QAAQc,EAAOlK,SACzC,IAAIkK,EAAOlK,SACe,iBAAnBkK,EAAOlK,SAAwBkK,EAAOlK,QAC3C,CAACkK,EAAOlK,SACR,GACNkK,EAAOlK,QAAU,IAAIyO,GACrB,IAEE,OAAOvE,EAAO6E,IAAIL,MAAMxE,EAAQ2E,EAClC,SACE3E,EAAOlK,QAAU8O,CACnB,GAGGxK,IAGb,CAEU,iBAAA0K,GACR,MAAO,IACFb,EAAQC,eACP5N,KAAKyN,MAAQ,GAErB,CAEU,kBAAAgB,GACR,OAAIlN,MAAMqH,QAAQ5I,KAAKR,SAAiB,IAAIQ,KAAKR,SACrB,iBAAjBQ,KAAKR,SAAwBQ,KAAKR,QAAgB,CAACQ,KAAKR,SAC5D,EACT,CAEU,cAAAkP,CAAevK,GACvB,MAAMwK,EAAYxK,EAAO9E,SAAW,GACpC,OAAKkC,MAAMqH,QAAQ+F,GACZA,EAAUhC,OACdiC,GACkB,iBAAVA,GACG,OAAVA,GAC2C,mBAAnCA,EAAwBjC,QALE,EAOxC,CAEU,YAAAkC,CACR/P,EACAU,EACA2E,GAEA,MAAM9E,EAAUW,KAAK0O,eAAevK,GACpC,OAAK9E,EAAQgD,OACNhD,EAAQyG,OAAO,CAACsF,EAASuB,KAC9B,IACE,MAAMmC,EAAOnC,EAAOA,OAAOxI,EAAQiH,EAAS,IAAI5L,IAChD,MAAuB,iBAATsP,EAAoBA,EAAO1D,CAC3C,CAAE,MACA,OAAOA,CACT,GACCtM,GARyBA,CAS9B,CAUU,SAAAiQ,CACR3P,EACAN,EACAhB,EACA2B,GAEA,MAAMuP,IAAuBhP,KAAKmE,OAAO,SACnC3F,EAAYwB,KAAKmE,OAAO,aACxB5F,EAAMoP,EAAQC,YAAYrP,IAC1BM,EAAYmB,KAAKmE,OAAO,cAC1B,IAAI8K,MAAOC,mBACX7N,EACE8N,EAAiBnP,KAAKwO,oBACtBP,EAAkBjO,KAAKyO,qBACvBW,EACe,iBAAZtQ,EACHA,EACAA,aAAmB8G,MACjB9G,EAAQA,QACDA,EAAPuQ,GACF/K,EAAkBtE,KAAK6O,aAC3BO,EACAnB,EACAkB,GAGIG,EADmBtP,KAAKmE,OAAO,SACL1E,EAAOA,OAAO4B,EACxCkD,EAAa+K,EAActP,KAAKuP,WAAWD,QAAejO,EAC1DmO,EAAqBjL,EACvBvE,KAAK6O,aAAatK,EAAY0J,EAAiBkB,QAC/C9N,EACEoO,EAAqBzP,KAAKmE,OAAO,iBACjCK,EACJiL,QACWA,EAAPJ,QACAhO,EAEN,IAAIzC,EACA8Q,EACJ,GAAI5R,GAASgB,aAAmB8G,MAAO,CACrC,MAAM+I,EAAY7Q,GAAUgB,EACxB6P,EAAU/P,QACZ8Q,EACqB,iBAAZ5Q,EAAuBwF,EAAkBqK,EAAU7P,QAI5DF,EAAQ,MAAM8Q,qBAHMV,EAChBrB,EAAQ9N,MAAM8O,EAAU/P,MAAO,QAASQ,GACxCuP,EAAU/P,QAGlB,CAEA,MAGM+B,EAA+B,CACnCwD,OAAQgL,EACR/P,QACAI,QAASyO,EACTpP,YACAN,IAAoB,iBAARA,GAAoBA,EAAI8D,OAAS9D,OAAM8C,EACnD7C,YACAgG,gBACA4K,aACA9K,kBACA7E,KAAM6P,EACN/K,WAAYiL,EACZ5Q,QACA8Q,aACArL,WAjBiB,CAAC1B,EAAeD,IACjCsM,EAAerB,EAAQ9N,MAAM8C,EAAOD,EAAatD,GAASuD,GAmBtDgN,EAAoB3P,KAAKmE,OAAO,WAChCyL,EAAiBT,EAAevP,SAAW,GAI3CmC,EAAaL,EAHHiO,EAAkBtN,OAC9BsN,EACAC,GAEE/O,EAAW4D,EAAqB/D,OAAOC,EAASoB,EAAWnB,MAEjE,OAAQZ,KAAKmE,OAAO,WAClB,IAAK,OAAQ,CACX,MAAM0L,EAAapL,EAAqB/D,OACtCC,EACA8D,EAAqB7D,QAEjBkP,EAA6C,CAAA,EAQnD,OAPAjL,OAAOC,QAAQ+K,GAAY7O,QAAQ,EAAEV,EAAKqC,MAC5B,SAARrC,IACJwP,EAASxP,GAAOqC,KAEdhC,EAAQlB,OACVqQ,EAASrQ,KAAOkB,EAAQlB,MAEnBsQ,KAAKC,UAAUF,EACxB,CACA,IAAK,MAAO,CACV,IAAIG,EAAYjQ,KAAKkQ,wBACnBjO,EAAcF,EAAYlB,IAO5B,OALKkB,EAAWC,cAAgBwN,IAC9BS,EAAYA,EACR,GAAGA,KAAaT,IAChBA,GAECS,CACT,CACA,QACE,MAAUrK,MAAM,+BAA+B5F,KAAKmE,OAAO,WAEjE,CAEQ,UAAAoL,CAAW9P,GACjB,IACE,OAAOsQ,KAAKC,UAAUvQ,EAExB,CAAE,MAAO0Q,GACP,OAAc1Q,EAAP4P,EACT,CACF,CAEU,uBAAAa,CAAwBvN,GAChC,OAAOA,EAAMwC,QAAQ,aAAc,KAAKA,QAAQ,mBAAoB,GACtE,CAUU,GAAAiL,CACRhR,EACAiR,EACAvS,EACA2B,GAEA,MAAM6Q,EAAUtQ,KAAKmE,OAAO,SAC5B,GAAgCzG,EAAiB0B,GAA7C1B,EAAiB4S,GAAoC,OACzD,IAAIvR,EACJ,OAAQK,GACN,KAAK3B,EAAAA,SAASE,UACZoB,EAASwR,QAAQH,IACjB,MACF,KAAK3S,EAAAA,SAASG,MACd,KAAKH,EAAAA,SAASI,SACd,KAAKJ,EAAAA,SAASK,MACZiB,EAASwR,QAAQzS,MACjB,MACF,KAAKL,EAAAA,SAASO,KACd,KAAKP,EAAAA,SAASQ,QACZc,EAASwR,QAAQH,IACjB,MACF,KAAK3S,EAAAA,SAASS,MACZa,EAASwR,QAAQrS,MACjB,MACF,KAAKT,EAAAA,SAASU,MACZY,EAASwR,QAAQpS,MACjB,MACF,KAAKV,EAAAA,SAASM,KACZgB,EAASwR,QAAQxS,KACjB,MACF,KAAKN,EAAAA,SAASW,MACZW,EAASwR,QAAQrS,MACjB,MACF,QACE,MAAU0H,MAAM,qBAEpB7G,EAAOiB,KAAK+O,UAAU3P,EAAOiR,EAAKvS,EAAO2B,GAC3C,CASA,SAAA9B,CAAU0S,EAAiB5Q,GACzBO,KAAKoQ,IAAI3S,EAAAA,SAASE,UAAW0S,OAAKhP,EAAW5B,EAC/C,CAUA,KAAA7B,CAAMyS,EAAyBG,EAAqB/Q,GAClD,IAAIgR,EACAC,EACAF,aAAa5K,OACf6K,EAAiBD,EACjBE,EAAcjR,GAEdiR,EAAcF,EAEhBxQ,KAAKoQ,IAAI3S,EAAAA,SAASG,MAAOyS,EAAKI,EAAgBC,EAChD,CAUA,QAAA7S,CACEwS,EACAG,EACA/Q,GAEA,IAAIgR,EACAC,EACAF,aAAa5K,OACf6K,EAAiBD,EACjBE,EAAcjR,GAEdiR,EAAcF,EAEhBxQ,KAAKoQ,IAAI3S,EAAAA,SAASI,SAAUwS,EAAKI,EAAgBC,EACnD,CAUA,KAAAtS,CACEiS,EACAM,EAAoC,EACpClR,GAEA,MAAMmR,EAAuC,iBAApBD,EAA+BA,EAAkB,EACpED,EACuB,iBAApBC,EAA+BlR,EAAOkR,EAC1C3Q,KAAKmE,OAAO,WAAyByM,GACxC5Q,KAAKoQ,IAAI3S,EAAAA,SAASW,MAAOiS,OAAKhP,EAAWqP,EAC7C,CAUA,OAAAzS,CACEoS,EACAM,EAAoC,EACpClR,GAEA,MAAMmR,EAAuC,iBAApBD,EAA+BA,EAAkB,EACpED,EACuB,iBAApBC,EAA+BlR,EAAOkR,EAC1C3Q,KAAKmE,OAAO,WAAyByM,GACxC5Q,KAAKoQ,IAAI3S,EAAAA,SAASQ,QAASoS,OAAKhP,EAAWqP,EAC/C,CASA,IAAA1S,CAAKqS,EAAiB5Q,GACpBO,KAAKoQ,IAAI3S,EAAAA,SAASO,KAAMqS,OAAKhP,EAAW5B,EAC1C,CASA,KAAAvB,CAAMmS,EAAiB5Q,GACrBO,KAAKoQ,IAAI3S,EAAAA,SAASS,MAAOmS,OAAKhP,EAAW5B,EAC3C,CAUA,KAAA3B,CAAMuS,EAAyBG,EAAqB/Q,GAClD,IAAIgR,EACAC,EACAF,aAAa5K,OACf6K,EAAiBD,EACjBE,EAAcjR,GAEdiR,EAAcF,EAEhBxQ,KAAKoQ,IAAI3S,EAAAA,SAASK,MAAOuS,EAAKI,EAAgBC,EAChD,CASA,IAAA3S,CAAKsS,EAAiB5Q,GACpBO,KAAKoQ,IAAI3S,EAAAA,SAASM,KAAMsS,OAAKhP,EAAW5B,EAC1C,CASA,KAAAtB,CAAMkS,EAAiB5Q,GACrBO,KAAKoQ,IAAI3S,EAAAA,SAASU,MAAOkS,OAAKhP,EAAW5B,EAC3C,CAQA,SAAAoR,CAAU1M,GACRnE,KAAKyN,KAAO,IAAMzN,KAAKyN,MAAQ,CAAA,KAAQtJ,EACzC,CAEA,QAAI2M,GACF,MAAO,IAAI9Q,KAAK0N,YAClB,CAOA,KAAAqD,GAEE,OADA/Q,KAAKR,QAAU,IAAIQ,KAAK0N,aACjB1N,IACT,QAkEW2N,SAWI3N,KAAAgR,SAA0B,CACvCC,EACA9M,KAEA,MAAM4F,EAC6B,iBAA1BoC,EAAkB5N,IACrB,CAAC4N,EAAkB5N,KACnB,GACN,OAAO,IAAIiP,EAAWyD,EAAQ9M,EAAQ4F,GACtC,QAEa/J,KAAAkR,QAAoC/E,CAAkB,CAErE,WAAApM,GAAuB,CAQvB,iBAAOoR,CAAWrK,GAChB6G,EAAQqD,SAAWlK,EACnB9G,KAAKoR,YAAS/P,CAChB,CAQA,gBAAOwP,CAAU1M,GACfU,OAAOC,QAAQX,GAAQnD,QAAQ,EAAEqG,EAAGQ,MACjC7H,KAAKkR,QAAgB7J,GAAKQ,GAE/B,CAOA,gBAAO+F,GACL,OAAO5N,KAAKkR,OACd,CAOA,UAAOzQ,GACL,OAAOT,KAAKqR,YACd,CAUA,cAAOpT,CACLoS,EACAM,EAAoC,EACpClR,GAEA,OAAOO,KAAKS,MAAMxC,QAAQoS,EAAKM,EAAiBlR,EAClD,CASA,WAAOzB,CAAKqS,EAAiB5Q,GAC3B,OAAOO,KAAKS,MAAMzC,KAAKqS,EAAK5Q,EAC9B,CASA,YAAOtB,CAAMkS,EAAiB5Q,GAC5B,OAAOO,KAAKS,MAAMtC,MAAMkS,EAAK5Q,EAC/B,CASA,YAAOvB,CAAMmS,EAAiB5Q,GAC5B,OAAOO,KAAKS,MAAMvC,MAAMmS,EAAK5Q,EAC/B,CASA,gBAAO9B,CAAU0S,EAAiB5Q,GAChC,OAAOO,KAAKS,MAAM9C,UAAU0S,EAAK5Q,EACnC,CAUA,YAAO7B,CACLyS,EACAG,EACA/Q,GAEA,OAAOO,KAAKS,MAAM7C,MAAMyS,EAAKG,EAAG/Q,EAClC,CAUA,eAAO5B,CACLwS,EACAG,EACA/Q,GAEA,OAAOO,KAAKS,MAAM5C,SAASwS,EAAKG,EAAG/Q,EACrC,CAUA,YAAOrB,CACLiS,EACAM,EAAoC,EACpClR,GAEA,OAAOO,KAAKS,MAAMrC,MAAMiS,EAAKM,EAAiBlR,EAChD,CASA,WAAO1B,CAAKsS,EAAiB5Q,GAC3B,OAAOO,KAAKS,MAAM1C,KAAKsS,EAAK5Q,EAC9B,CAUA,YAAO3B,CACLuS,EACAG,EACA/Q,GAEA,OAAOO,KAAKS,MAAM3C,MAAMuS,EAAKG,EAAG/Q,EAClC,CAUA,UAAO,CACLwR,EACA9M,KACGsB,GAEH,MACM6L,OAAsBjQ,IAAX8C,EAAuB,CAAC8M,EAAQ9M,GAAU,CAAC8M,GAC5D,OAFajR,KAAKoR,OAASpR,KAAKoR,OAASpR,KAAKqR,WAAW5L,IAE5C8I,OAAe+C,EAC9B,CASA,cAAOC,CAAQC,EAAgB7S,GAE7B,IAAI8S,EADSzR,KAAKqR,aACC9C,IAAYiD,EAAQxR,KAAKkR,SAE5C,OADIvS,IAAI8S,EAAUA,EAAOlD,IAAY5P,IAC9B8S,CACT,CAEQ,kBAAO/D,GACb,MAAMnP,EAAMyB,KAAKkR,QAAQ3S,IACzB,MAAsB,iBAARA,GAAoBA,EAAI8D,OAAS,CAAC9D,GAAO,EACzD,CAEQ,wBAAOmT,CAAkBD,GAC/B,MAAM1H,EACH0H,EAAeX,MAAQvP,MAAMqH,QAAS6I,EAAeX,MAClD,IAAKW,EAAeX,MACpB9Q,KAAK0N,cASX,QAPI+D,EAAejS,SAChB+B,MAAMqH,QAAS6I,EAAejS,UACM,IAAlCiS,EAAejS,QAAQ6C,UAEzBoP,EAAejS,QAAU,IAAIuK,IAE/B0H,EAAelE,GAAuB,IAAIxD,GACpC0H,CACT,CAEQ,iBAAOJ,CAAWM,EAAgB,IACxC,IAAK3R,KAAKoR,OAAQ,CAChB,MAAMvH,EAAW7J,KAAKgR,cAAS3P,OAAWA,KAAcsQ,GACxD3R,KAAKoR,OAASpR,KAAK0R,kBAAkB7H,EACvC,CACA,OAAO7J,KAAKoR,MACd,CAmCA,YAAOvR,CACLsC,EACAO,EACAkP,EACAC,EAAkBvT,GAElB,IAAK0B,KAAKkR,QAAQjS,MAAO,OAAOkD,EAoEhC,MAAM2P,EAAkBD,EAASnP,GACjC,IAAKoP,IAAoBjN,OAAOjE,KAAKkR,GAAiBzP,OACpD,OAAOF,EAGT,IAAI4P,EAA2BD,EAE/B,MAAME,EAAYnN,OAAOuH,OAAO,CAAA,EAAI3O,EAAAA,UAKpC,OAJIoH,OAAOjE,KAAKkR,GAAiB,KAAME,IACrCD,EACGD,EAA0CF,IAAgB,CAAA,GAExD/M,OAAOjE,KAAKmR,GAAajM,OAAO,CAACC,EAAazF,KACnD,MAAMyE,EAAOgN,EAA4BzR,GACzC,OAAIyE,EAjFN,EACEkN,EACAC,EACAvP,KAEA,IACE,MAAMwP,EAA2BF,EACjC,IAAIG,EAAInT,EAAAA,MAAMkT,GAEd,SAASE,EACPtN,EACAuN,GAAO,GAEP,IAAIC,EAIoBD,EAAOF,EAAEI,WAAaJ,EAAEK,WAChD,IAAKlR,MAAMqH,QAAQ7D,GACjB,OAAQwN,EAAgDlJ,KACtD+I,EACAzP,GAGJ,OAAQoC,EAAI1C,QACV,KAAK,EAEH,OADAkQ,EAAID,EAAOF,EAAEM,WAAaN,EAAEO,SACpBJ,EAA8CxN,EAAI,IAC5D,KAAK,EAEH,OADAwN,EAAID,EAAOF,EAAEQ,MAAQR,EAAES,IAChBT,EAAES,IAAI9N,EAAI,GAAIA,EAAI,GAAIA,EAAI,IACnC,QAEE,OAAO9F,EAAAA,MAAMkT,GAEnB,CAEA,SAASW,EAAWjL,GAEhBuK,EADe,iBAANvK,EACLuK,EAAEnT,MAAM4I,GAERuK,EAAEvK,EAEV,CAEA,OAAQqK,GACN,IAAK,KACL,IAAK,KACH,OAAOG,EAAW1P,GAAiBR,KACrC,IAAK,QAMH,OALIZ,MAAMqH,QAAQjG,GAChBA,EAAM3B,QAAQ8R,GAEdA,EAAWnQ,GAENyP,EAAEjQ,KACX,QAEE,OAAOgQ,EAGb,CAAE,MAAO3B,GAEP,OAAOyB,CACT,CACF,EAiBW/D,CACLnI,EACAzF,EACAyE,GAOGgB,GACN5D,EACL,CAEA,eAAOhC,CAASC,GACd,OAAOqE,EAAqBtE,SAASC,EACvC,CACA,iBAAOG,CAAWD,GAChB,OAAOmE,EAAqBlE,WAAWD,EACzC,QC3gCoByS,EAQpB,OAAc3C,GAEZ,OADKpQ,KAAKgT,OAAMhT,KAAKgT,KAAOrF,EAAQY,IAAIvO,OACjCA,KAAKgT,IACd,CAEA,WAAAjT,GAAyB,ECjBrB,MAAgBkT,UAAkBF,EAMtC,OAAa3C,GACX,OAAOrJ,MAAMqJ,IAAI7B,IAAIvO,KAAa,CAAEX,QAAS,IAC/C,ECeK,MAAM6T,EA1Ba,oBAAf5M,YACgC,mBAAhCA,WAAW6M,aAAaD,IAExB,IAAM5M,WAAW6M,YAAYD,MAIjB,oBAAZ5L,SACoC,mBAAnCA,QAAgB8L,QAAQC,OAEzB,KACL,MAAMC,EAAMhM,QAAgB8L,OAAOC,SACnC,OAAO1L,OAAO2L,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,CAACrH,EAAWsH,IAActH,EAAE1G,WAAWiO,SAASD,EAAG,KAC/D,MAAO,GAAGT,IAAOQ,EAAIL,EAAO,MAAMK,EAAIH,EAAS,MAAMG,EAAIF,EAAS,MAAME,EAAID,EAAQ,IACtF,CC/MM,SAAU5D,EACdhR,EAAkB3B,EAAAA,SAASO,KAC3B4S,EAAY,EACZwD,EAAkC,IAAI3O,IAAgB,eAAeA,EACrE4O,GAEA,MAAO,CAAa3K,EAAa4K,EAAmBlU,KAClD,IAAKA,GAAoC,iBAAfA,EACxB,MAAUwF,MAAM,8CAClB,MAAM6L,EACJ/H,aAAkBqJ,EACdrJ,EAAY,IAAE6E,IAAI7E,EAAO4K,IACzB3G,EAAQY,IAAI7E,GAAQ6E,IAAI7E,EAAO4K,IAC/BvV,EAAS0S,EAAOrS,GAAO0J,KAAK2I,GAC5B8C,EAAiBnU,EAAWuC,MA0BlC,OAxBAvC,EAAWuC,MAAQ,IAAI8G,MAAM8K,EAAgB,CAC3C,KAAArG,CAAMd,EAAIoH,EAAS/O,GACjB1G,EAAOqV,KAAgB3O,GAAOmL,GAC9B,IACE,MAAM9M,EAAS+E,QAAQqF,MAAMd,EAAIoH,EAAS/O,GAC1C,OAAI3B,aAAkB2Q,QACb3Q,EACJ4Q,KAAMC,IACDN,GAAatV,EAAOsV,OAAYhT,EAAWsT,IACxCA,IAERC,MAAOpE,IAEN,MADI6D,GAAa5C,EAAO3T,MAAMuW,EAAY7D,IACpCA,KAGR6D,GAAatV,EAAOsV,OAAYhT,EAAWyC,IACxCA,EACT,CAAE,MAAOqM,GAEP,MADIkE,GAAa5C,EAAO3T,MAAMuW,EAAYlE,IACpCA,CACR,CACF,IAEK/P,CACT,CACF,UA4IgByU,IACd,MAAO,CAACnL,EAAgB4K,EAAmBlU,KACzC,IAAKA,EACH,MAAUwF,MAAM,+CAIlB,OAHIxF,GAAY+G,eACd/G,EAAW+G,cAAe,GAErB/G,EAEX,CClMM,MAAO0U,UAAsB7B,EACjC,WAAAlT,CACqBiF,EACA+P,GAEnBhO,QAHmB/G,KAAAgF,OAAAA,EACAhF,KAAA+U,YAAAA,CAGrB,CASU,KAAA/O,CAAMlH,GACd,MAAMkH,EAAQhG,KAAKgF,OAAOsI,KAAKxO,GAE/B,OADAkB,KAAKgF,OAAOgQ,UAAY,EACjBhP,CACT,CAWA,MAAA2G,CAAOxI,EAAuBrF,EAAiBU,GAC7C,MAAM4Q,EAAMpQ,KAAKoQ,IAAI7B,IAAIvO,KAAK2M,QAE9B,IADc3M,KAAKgG,MAAMlH,GACb,OAAOA,EACnB,IACE,OAAOA,EAAQqG,QAAQnF,KAAKgF,OAAQhF,KAAK+U,YAC3C,CAAE,MAAOvE,GACPJ,EAAItS,MAAM,oCAAoC0S,EAChD,CACA,MAAO,EACT,EAzBUyE,EAAAA,WAAA,CADTJ,8HAKAC,EAAAvO,UAAA,QAAA,MCrCG,MAAgB2O,UAAkBtP,MAGtC,WAAA7F,CAAsBmN,EAAcmD,EAAqB8E,GACvD,GAAI9E,aAAe6E,EAAW,OAAO7E,EAErCtJ,MADgB,IAAImG,MAASiI,MAAS9E,aAAezK,MAAQyK,EAAIvR,QAAUuR,KAE3ErQ,KAAKmV,KAAOA,EACR9E,aAAezK,QAAO5F,KAAKpB,MAAQyR,EAAIzR,MAC7C,CAEA,WAAaE,GACX,MAAO,IAAIkB,KAAKkN,SAASlN,KAAKmV,UAAUpO,MAAMjI,QAAQsW,WAAW,yBAA0B,KAC7F,CAES,QAAAlP,GACP,OAAOlG,KAAKlB,OACd,2CCFoB,4IAQM,+JASQ,0EJkClC,WAAAiB,CAAYsV,GAAY,GANhBrV,KAAAsV,SAA0B,KAC1BtV,KAAAuV,WAAa,EACbvV,KAAAwV,UAAW,EACXxV,KAAAyV,MAAe,GACfzV,KAAA0V,gBAAkB,EAGpBL,GAAWrV,KAAK2V,OACtB,CAOA,WAAIC,GACF,OAAO5V,KAAKwV,QACd,CAOA,aAAIK,GACF,OAAK7V,KAAKwV,UAA6B,MAAjBxV,KAAKsV,SACpBtV,KAAKuV,YAAcrC,IAAQlT,KAAKsV,UADatV,KAAKuV,UAE3D,CAOA,KAAAI,GAKE,OAJK3V,KAAKwV,WACRxV,KAAKwV,UAAW,EAChBxV,KAAKsV,SAAWpC,KAEXlT,IACT,CAOA,KAAA8V,GAME,OALI9V,KAAKwV,UAA6B,MAAjBxV,KAAKsV,WACxBtV,KAAKuV,YAAcrC,IAAQlT,KAAKsV,SAChCtV,KAAKsV,SAAW,KAChBtV,KAAKwV,UAAW,GAEXxV,IACT,CAOA,MAAA+V,GAKE,OAJK/V,KAAKwV,WACRxV,KAAKwV,UAAW,EAChBxV,KAAKsV,SAAWpC,KAEXlT,IACT,CAOA,IAAAgW,GAEE,OADAhW,KAAK8V,QACE9V,KAAKuV,UACd,CAOA,KAAAU,GACE,MAAMC,EAAalW,KAAKwV,SAKxB,OAJAxV,KAAKsV,SAAWY,EAAahD,IAAQ,KACrClT,KAAKuV,WAAa,EAClBvV,KAAKyV,MAAQ,GACbzV,KAAK0V,gBAAkB,EAChB1V,IACT,CAQA,GAAAmW,CAAIC,GACF,MAAMC,EAAQrW,KAAK6V,UACbrC,EAAK6C,EAAQrW,KAAK0V,gBAClBS,EAAW,CACf/T,MAAOpC,KAAKyV,MAAMpT,OAClB+T,QACA5C,KACA8C,QAASD,GAIX,OAFArW,KAAKyV,MAAMhT,KAAK0T,GAChBnW,KAAK0V,gBAAkBW,EAChBF,CACT,CAMA,QAAII,GACF,OAAOvW,KAAKyV,KACd,CAOA,QAAAvP,GACE,OAAOqN,EAASvT,KAAK6V,UACvB,CAOA,MAAAW,GACE,MAAO,CACLZ,QAAS5V,KAAKwV,SACdK,UAAW7V,KAAK6V,UAChBU,KAAMvW,KAAKyV,MAAM5S,QAErB,aIlM6B,8BHkFtB,CAAmB6G,EAAa4K,EAAmBlU,KACxD,IAAKA,GAAoC,iBAAfA,EACxB,MAAUwF,MAAM,gDAClB,MAAM6L,EACJ/H,aAAkBqJ,EACdrJ,EAAY,IAAE6E,IAAI7E,EAAO4K,IACzB3G,EAAQY,IAAI7E,GAAQ6E,IAAI7E,EAAO4K,IAC/BC,EAAiBnU,EAAWuC,MA2BlC,OAzBAvC,EAAWuC,MAAQ,IAAI8G,MAAM8K,EAAgB,CAC3C,KAAArG,CAAMd,EAAIoH,EAAS/O,GACjB,MAAMkQ,EAAQzC,IACd,IACE,MAAMpP,EAAS+E,QAAQqF,MAAMd,EAAIoH,EAAS/O,GAC1C,OAAI3B,aAAkB2Q,QACb3Q,EACJ4Q,KAAMC,IACLlD,EAAO9T,UAAU,gBAAgBuV,IAAQyC,OAClChB,IAERC,MAAOpE,IAEN,MADAiB,EAAO9T,UAAU,aAAauV,IAAQyC,OAChCnF,KAGZiB,EAAO9T,UAAU,gBAAgBuV,IAAQyC,OAClC7R,EACT,CAAE,MAAOqM,GAEP,MADAsB,EAAO9T,UAAU,aAAauV,IAAQyC,OAChCxF,CACR,CACF,IAGK/P,CACT,oCAWOgQ,EACL3S,EAAAA,SAASS,MACT,EACA,IAAIuH,IAAgB,eAAeA,EACnC,CAAC+K,EAAW1M,IACV0M,EACI,gBAAgBA,EAChB1M,EACE,kBAAkBiM,KAAKC,UAAUlM,GACjC,kFAYHsM,EAAI3S,EAAAA,SAASO,6HRnKhB,CACJyY,EACApU,EACAC,EAAe,OAEf,GAAoB,IAAhBA,EAAKD,OACP,MAAUuD,MAAM,sDAClB,OAAO6Q,EAAIC,OAAOrU,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,wDQiIjCwL,EAAI3S,EAAAA,SAASW,sCRhGM+D,GACnBA,EACJgD,QAAQ,sBAAuB,CAACwR,EAAMvU,IAC3B,IAAVA,EAAcuU,EAAKrR,cAAgBqR,EAAKvS,eAEzCe,QAAQ,OAAQ,kCAsCOhD,GACnBA,EACJgD,QAAQ,kBAAmB,SAC3BA,QAAQ,UAAW,KACnBG,6BAWwBnD,GACpBA,EACJgD,QAAQ,sBAAwBwR,GAASA,EAAKvS,eAC9Ce,QAAQ,OAAQ,gCQ8CZiL,EAAI3S,EAAAA,SAASU,iBAWhB,CAAkByS,EAA8B,KAC/CA,IACHA,EAAY,GAEPR,EAAI3S,EAAAA,SAASQ,QAAS2S"}
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 p{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 h=new Map;function g(t){if(h.has(t))return h.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 h.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 p;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 k=w;function E(t,e,r=" "){if(1!==r.length)throw Error("Invalid character length for padding. must be one!");return t.padEnd(e,r)}function O(t,e,r="${",n="}",o="g"){return _(t,Object.entries(e).reduce((t,[e,o])=>(t[`${r}${e}${n}`]=o,t),{}),o)}function _(t,e,r="g"){return Object.entries(e).forEach(([e,n])=>{const o=RegExp(R(e),r);t=t.replace(o,n)}),t}function j(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 M(t).toUpperCase()}function M(t){return t.replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/[\s-]+/g,"_").toLowerCase()}function P(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 R(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function C(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"),V=Symbol("EnvironmentModel"),L=/^[a-z][a-zA-Z0-9]*$/;class F extends e{static{this.factory=()=>new F}constructor(){super(),Object.defineProperty(this,V,{value:{},writable:!0,enumerable:!1,configurable:!1})}fromEnv(t){let e;return T()?e=globalThis[o]||{}:(e=globalThis.process.env,t=A(t)),this.parseEnvValue(e[t])}parseEnvValue(t){return F.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])=>{F.mergeModel(this[V],t,e),Object.defineProperty(this,t,{get:()=>{const r=this.fromEnv(t);return void 0!==r?r:e&&"object"==typeof e?Array.isArray(e)?e:F.buildEnvProxy(e,[t]):""===e?I:e},set:t=>{e=t},configurable:!0,enumerable:!0})})}orThrow(){const t=this[V],e=t=>void 0!==t?this.parseEnvValue(t):void 0,r=(t,e=!1)=>F.missingEnvError(t,e),n=(t,o)=>{const s={get(s,i){if("string"!=typeof i)return;if(Array.isArray(t)&&"length"===i)return t.length;const a=[...o,i],{key:c,value:l}=F.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 f&&"object"==typeof 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}=F.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(u&&"object"==typeof 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(!F._instance){const e=F.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 F.buildEnvProxy(void 0,[e])}return n}}});F._instance=r}return F._instance}accumulate(t){return super.accumulate(t),this}static accumulate(t){const e=F.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 F._instance.get(t)}static formatEnvSegment(t){return L.test(t)?A(t):t.toUpperCase()}static buildEnvKey(t){return t.map(t=>F.formatEnvSegment(t)).join(s)}static buildRawKey(t){return t.join(s)}static readRuntimeForPath(t){const e=F.buildEnvKey(t),r=F.buildRawKey(t),n=F.readRuntimeEnv(e);if(void 0!==n)return{key:e,value:n};if(r!==e){const t=F.readRuntimeEnv(r);if(void 0!==t)return{key:r,value:t}}return{key:e,value:void 0}}static buildEnvProxy(t,e){const r=t=>F.readRuntimeEnv(t),n=/^[0-9]+$/,o={get(o,s){if(s===Symbol.toPrimitive)return()=>F.buildEnvKey(e);if("toString"===s)return()=>F.buildEnvKey(e);if("valueOf"===s)return()=>F.buildEnvKey(e);if("symbol"==typeof s)return;if(Array.isArray(t)&&"length"===s)return t.length;const i=[...e,s],a=F.buildEnvKey(i),c=F.buildRawKey(i);let l=r(a);if(void 0===l&&c!==a&&(l=r(c)),void 0!==l)return F.parseRuntimeValue(l);const u=!!t&&Object.prototype.hasOwnProperty.call(t,s),f=u?t[s]:void 0;if(Array.isArray(t)&&(t=>"string"==typeof t&&n.test(t))(s)){if(!u)return;return f&&"object"==typeof f?F.buildEnvProxy(f,i):F.parseRuntimeValue(f)}return f&&"object"==typeof f?F.buildEnvProxy(f,i):u&&""===f||u&&void 0===f?void 0:u?F.parseRuntimeValue(f):F.buildEnvProxy(void 0,i)},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)?[]:{},o)}static keys(t=!0){return F.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])=>{F.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 N=F.accumulate(Object.assign({app:void 0},f,{env:(T()&&globalThis[o]?globalThis[o].NODE_ENV:globalThis.process.env.NODE_ENV)||"development"}));function K(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&&!K(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)&&K(e)}function J(t){if(null===t)return"null";if(void 0===t)return"undefined";if("string"==typeof t)return t;if(K(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 H{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]:W.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&&(K(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],o=void 0,r):"context"===e?c:"root"===e?[...a]:e===Z?a:"for"===e?(...e)=>{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}}:n}})}getConfigSnapshot(){return{...W.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=W.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),p=this.config("meta")&&n?n:void 0,h=p?this.formatMeta(p):void 0,d=h?this.applyFilters(h,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?W.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:p,metaString:d,stack:v,stackLabel:x,applyTheme:(e,r)=>o?W.theme(e,r,t):e},E=this.config("pattern"),O=c.pattern||"",_=g(E.length?E:O),j=k.render(w,_.keys);switch(this.config("format")){case"json":{const t=k.render(w,k.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!_.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 W{static{this._factory=(t,e)=>{const r="string"==typeof N.app?[N.app]:[];return new H(t,e,r)}}static{this._config=N}constructor(){}static setFactory(t){W._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 k.register(t)}static unregister(t){return k.unregister(t)}}class q{get log(){return this._log||(this._log=W.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]):W.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]):W.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);const ct="##VERSION##",lt="##COMMIT##",ut="##FULL_VERSION##",ft="##PACKAGE##";export{o as BrowserEnvKey,lt as COMMIT,f as DefaultLoggingConfig,i as DefaultPlaceholderWrappers,u as DefaultTheme,s as ENV_PATH_DELIMITER,F as Environment,ut as FULL_VERSION,G as LogFilter,a as LogLevel,p as LogParameterRegistry,q as LoggedClass,N as LoggedEnvironment,W as Logging,l as LoggingMode,H as MiniLogger,c as NumericLogLevels,ft as PACKAGE_NAME,at as PatternFilter,Z as ROOT_CONTEXT_SYMBOL,Q as StopWatch,ct as VERSION,tt as benchmark,g as compileLogPattern,et as debug,R as escapeRegExp,it as final,X as formatMs,J as getObjectName,rt as info,T as isBrowser,K as isClass,D as isFunction,z as isInstance,U as isMethod,Y as log,k as logParameterRegistry,B as now,E as padEnd,O as patchPlaceholders,_ as patchString,y as renderPattern,C as sf,nt as silly,$ as stringFormat,j as toCamelCase,A as toENVFormat,P as toKebabCase,S as toPascalCase,M 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:{},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=[];b(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=m(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 m(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 b(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&&b(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 k(t,e,r=" "){if(1!==r.length)throw Error("Invalid character length for padding. must be one!");return t.padEnd(e,r)}function O(t,e,r="${",n="}",o="g"){return _(t,Object.entries(e).reduce((t,[e,o])=>(t[`${r}${e}${n}`]=o,t),{}),o)}function _(t,e,r="g"){return Object.entries(e).forEach(([e,n])=>{const o=RegExp(S(e),r);t=t.replace(o,n)}),t}function j(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 R(t).toUpperCase()}function R(t){return t.replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/[\s-]+/g,"_").toLowerCase()}function P(t){return t.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[\s_]+/g,"-").toLowerCase()}function M(t){return t.replace(/(?:^\w|[A-Z]|\b\w)/g,t=>t.toUpperCase()).replace(/\s+/g,"")}function S(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"),V=Symbol("EnvironmentModel"),K=/^[a-z][a-zA-Z0-9]*$/;class L extends e{static{this.factory=()=>new L}constructor(){super(),Object.defineProperty(this,V,{value:{},writable:!0,enumerable:!1,configurable:!1})}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[V],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[V],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("string"!=typeof i)return;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 f&&"object"==typeof 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(u&&"object"==typeof 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 K.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?f&&"object"==typeof f?L.buildEnvProxy(f,i):L.parseRuntimeValue(f):h?L.buildEnvProxy(void 0,i):void 0:f&&"object"==typeof 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],o=void 0,r):"context"===e?c:"root"===e?[...a]:e===Z?a:"for"===e?(...e)=>{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}}: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,m=this.config("correlationId"),b=null!=m?m+"":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:b,rawMessage:u,filteredMessage:f,meta:h,metaString:d,stack:v,stackLabel:x,applyTheme:(e,r)=>o?H.theme(e,r,t):e},k=this.config("pattern"),O=c.pattern||"",_=g(k.length?k:O),j=E.render(w,_.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!_.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,S 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,k as padEnd,O as patchPlaceholders,_ as patchString,y as renderPattern,$ as sf,nt as silly,C as stringFormat,j as toCamelCase,A as toENVFormat,P as toKebabCase,M as toPascalCase,R as toSnakeCase,ot as trace,st as verbose};
2
2
  //# sourceMappingURL=logging.js.map