likec4 1.59.3 → 1.59.4
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/__app__/src/chunks/AIChat.mjs +108 -108
- package/__app__/src/chunks/LikeC4Styles.mjs +752 -604
- package/__app__/src/chunks/ProjectsOverview.mjs +72 -72
- package/__app__/src/chunks/es.mjs +1 -1
- package/__app__/src/chunks/hooks.mjs +94 -91
- package/__app__/src/chunks/libs/@floating-ui.mjs +3 -3
- package/__app__/src/chunks/libs/@mantine.mjs +1609 -892
- package/__app__/src/chunks/libs/@tanstack-ai.mjs +2 -2
- package/__app__/src/chunks/libs/@tanstack.mjs +4 -10
- package/__app__/src/chunks/libs/@xyflow/react.mjs +4 -4
- package/__app__/src/chunks/libs/d3.mjs +4 -9
- package/__app__/src/chunks/libs/fast-equals.mjs +61 -49
- package/__app__/src/chunks/libs/framer.mjs +6 -6
- package/__app__/src/chunks/styled-system.mjs +2578 -124
- package/__app__/src/main.mjs +21537 -20155
- package/__app__/src/style.css +1 -1
- package/config/schema.json +14 -0
- package/dist/app/render-view-client.css +1 -1
- package/dist/app/render-view-client.js +99 -105
- package/dist/chunks/filenames.mjs +6 -6
- package/dist/chunks/index.d.mts +7 -1
- package/dist/chunks/index2.d.mts +38 -21
- package/dist/chunks/libs/@chevrotain/gast.mjs +1 -1
- package/dist/chunks/libs/@chevrotain/types.d.mts +108 -0
- package/dist/chunks/libs/@logtape/logtape.mjs +4 -4
- package/dist/chunks/libs/langium.d.mts +1777 -16
- package/dist/chunks/libs/langium.mjs +4 -4
- package/dist/chunks/libs/p-queue.mjs +1 -1
- package/dist/chunks/libs/package-manager-detector.mjs +1 -1
- package/dist/chunks/libs/pako.mjs +2 -2
- package/dist/chunks/libs/picomatch.mjs +1 -1
- package/dist/chunks/libs/pretty-ms.mjs +1 -1
- package/dist/chunks/libs/remeda.mjs +1 -1
- package/dist/chunks/libs/ufo.mjs +1 -1
- package/dist/chunks/libs/unstorage.mjs +1 -1
- package/dist/chunks/libs/zod.d.mts +1717 -17
- package/dist/chunks/node.mjs +58 -59
- package/dist/chunks/vite-plugin.mjs +15 -12
- package/dist/cli/index.d.mts +1 -1
- package/dist/cli/index.mjs +104 -88
- package/dist/index.d.mts +3 -3
- package/dist/model/index.d.mts +4 -4
- package/dist/vite-plugin/index.d.mts +2 -2
- package/dist/vite-plugin/internal/index.d.mts +15 -15
- package/dist/vite-plugin/internal/index.mjs +72 -27
- package/package.json +28 -28
- package/react/index.d.mts +22720 -1460
- package/react/index.mjs +30391 -25072
- package/vite-plugin-modules.d.ts +4 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{i as e,r as t}from"../../rolldown-runtime.mjs";import n from"node:util";function toFilter(e){return typeof e==`function`?e:getLevelFilter(e)}function getLevelFilter(e){if(e==null)return()=>!1;if(e===`fatal`)return e=>e.level===`fatal`;if(e===`error`)return e=>e.level===`fatal`||e.level===`error`;if(e===`warning`)return e=>e.level===`fatal`||e.level===`error`||e.level===`warning`;if(e===`info`)return e=>e.level===`fatal`||e.level===`error`||e.level===`warning`||e.level===`info`;if(e===`debug`)return e=>e.level===`fatal`||e.level===`error`||e.level===`warning`||e.level===`info`||e.level===`debug`;if(e===`trace`)return()=>!0;throw TypeError(`Invalid log level: ${e}.`)}const r=[`trace`,`debug`,`info`,`warning`,`error`,`fatal`];function compareLogLevel(e,t){let n=r.indexOf(e);if(n<0)throw TypeError(`Invalid log level: ${JSON.stringify(e)}.`);let i=r.indexOf(t);if(i<0)throw TypeError(`Invalid log level: ${JSON.stringify(t)}.`);return n-i}const i=Symbol.for(`logtape.lazy`),a=Symbol.for(`LogTape.throttlingSummaryRecord`);function isLazy(e){return typeof e==`object`&&!!e&&i in e&&e[i]===!0}function resolveProperties(e){let t={};for(let n in e){let r=e[n];t[n]=isLazy(r)?r.getter():r}let n=e,r=t;if(Object.prototype.propertyIsEnumerable.call(e,a)){let e=n[a];r[a]=isLazy(e)?e.getter():e}return t}function isPromiseObject(e){return e instanceof Promise||Object.prototype.toString.call(e)===`[object Promise]`&&typeof e.then==`function`}function logStringMessage(e,t,n,r){if(typeof r!=`function`){let i=r??{};e.log(t,n,i);return}if(!e.isEnabledFor(t))return Promise.resolve();let i=r();if(isPromiseObject(i))return Promise.resolve(i).then(r=>{e.log(t,n,r)});e.log(t,n,i)}function snapshotLogRecordProperties(e){let t=resolveProperties(e.properties),n=Object.getOwnPropertyDescriptors(e);return n.properties={value:t,enumerable:!0,configurable:!0},Object.defineProperties({},n)}function getLogger(e=[]){return s.getLogger(e)}const o=Symbol.for(`logtape.rootLogger`);function isMetaLoggerCategory(e){return e.length===2&&e[0]===`logtape`&&e[1]===`meta`}var s=class LoggerImpl{parent;children;category;sinks;parentSinks=`inherit`;filters;lowestLevel=`trace`;contextLocalStorage;static getLogger(e=[]){let t=o in globalThis?globalThis[o]??null:null;return t??(t=new LoggerImpl(null,[]),globalThis[o]=t),typeof e==`string`?t.getChild(e):e.length===0?t:t.getChild(e)}static getNearestExistingLogger(e){let t=LoggerImpl.getLogger();for(let n of e){let e=t.children[n],r=e instanceof LoggerImpl?e:e?.deref();if(r==null)break;t=r}return t}constructor(e,t){this.parent=e,this.children={},this.category=t,this.sinks=[],this.filters=[]}getChild(e){let t=typeof e==`string`?e:e[0],n=this.children[t],r=n instanceof LoggerImpl?n:n?.deref();return r??(r=new LoggerImpl(this,[...this.category,t]),this.children[t]=`WeakRef`in globalThis?new WeakRef(r):r),typeof e==`string`||e.length===1?r:r.getChild(e.slice(1))}reset(){for(;this.sinks.length>0;)this.sinks.shift();for(this.parentSinks=`inherit`;this.filters.length>0;)this.filters.shift();this.lowestLevel=`trace`}resetDescendants(){for(let e of Object.values(this.children))(e instanceof LoggerImpl?e:e.deref())?.resetDescendants();this.reset()}with(e){return new c(this,{...e})}filter(e){for(let t of this.filters)if(!t(e))return!1;return this.filters.length<1?this.parent?.filter(e)??!0:!0}*getSinks(e){if(!(this.lowestLevel===null||compareLogLevel(e,this.lowestLevel)<0)){if(this.parent!=null&&this.parentSinks===`inherit`)for(let t of this.parent.getSinks(e))yield t;for(let e of this.sinks)yield e}}isEnabledFor(e){let t=isMetaLoggerCategory(this.category)?[]:getCategoryPrefix();return(t.length>0?LoggerImpl.getNearestExistingLogger([...t,...this.category]):this).isEnabledForResolved(e)}isEnabledForResolved(e){if(this.lowestLevel===null||compareLogLevel(e,this.lowestLevel)<0)return!1;for(let t of this.getSinks(e))return!0;return!1}emit(e,t){let n=`category`in e?e.category:this.category,r=isMetaLoggerCategory(n)?[]:getCategoryPrefix(),i=r.length>0?[...r,...n]:n,a=Object.getOwnPropertyDescriptors(e);a.category={value:i,enumerable:!0,configurable:!0};let o=Object.defineProperties({},a);(r.length>0?LoggerImpl.getNearestExistingLogger(i):this).emitResolved(o,t)}emitResolved(e,t){if(this.lowestLevel===null||compareLogLevel(e.level,this.lowestLevel)<0||!this.filter(e))return;let n=[...this.getSinks(e.level)];if(n.length<1)return;let r,i=!1;for(let a of n)if(!t?.has(a))try{if(r==null&&!i)try{r=snapshotLogRecordProperties(e)}catch{i=!0,r=e}a(r??e)}catch(n){let r=new Set(t);r.add(a),l.log(`fatal`,`Failed to emit a log record to sink {sink}: {error}`,{sink:a,error:n,record:e},r)}}log(e,t,n,r){let i=getImplicitContext(),a,o,s=typeof n==`function`?{category:this.category,level:e,timestamp:Date.now(),get message(){return o??=parseMessageTemplate(t,this.properties),o},rawMessage:t,get properties(){return a??=resolveProperties({...i,...n()}),a}}:{category:this.category,level:e,timestamp:Date.now(),get message(){return o??=parseMessageTemplate(t,this.properties),o},rawMessage:t,get properties(){return a??=resolveProperties({...i,...n}),a}};this.emit(s,r)}logLazily(e,t,n={}){let r=getImplicitContext(),i,a;function realizeMessage(){if((a==null||i==null)&&(a=t((e,...t)=>(i=e,renderMessage(e,t))),i==null))throw TypeError(`No log record was made.`);return[a,i]}this.emit({category:this.category,level:e,get message(){return realizeMessage()[0]},get rawMessage(){return realizeMessage()[1]},timestamp:Date.now(),properties:{...r,...n}})}logTemplate(e,t,n,r={}){let i=getImplicitContext();this.emit({category:this.category,level:e,message:renderMessage(t,n),rawMessage:t,timestamp:Date.now(),properties:{...i,...r}})}trace(e,...t){if(typeof e==`string`)return logStringMessage(this,`trace`,e,t[0]);typeof e==`function`?this.logLazily(`trace`,e):Array.isArray(e)?this.logTemplate(`trace`,e,t):this.log(`trace`,`{*}`,e)}debug(e,...t){if(typeof e==`string`)return logStringMessage(this,`debug`,e,t[0]);typeof e==`function`?this.logLazily(`debug`,e):Array.isArray(e)?this.logTemplate(`debug`,e,t):this.log(`debug`,`{*}`,e)}info(e,...t){if(typeof e==`string`)return logStringMessage(this,`info`,e,t[0]);typeof e==`function`?this.logLazily(`info`,e):Array.isArray(e)?this.logTemplate(`info`,e,t):this.log(`info`,`{*}`,e)}logError(e,t,n){if(typeof n!=`function`){this.log(e,`{error.message}`,{...n,error:t});return}if(!this.isEnabledFor(e))return Promise.resolve();let r=n();if(r instanceof Promise)return r.then(n=>{this.log(e,`{error.message}`,{...n,error:t})});this.log(e,`{error.message}`,{...r,error:t})}warn(e,...t){if(e instanceof Error)return this.logError(`warning`,e,t[0]);if(typeof e==`string`&&t[0]instanceof Error)this.log(`warning`,e,{error:t[0]});else if(typeof e==`string`)return logStringMessage(this,`warning`,e,t[0]);else typeof e==`function`?this.logLazily(`warning`,e):Array.isArray(e)?this.logTemplate(`warning`,e,t):this.log(`warning`,`{*}`,e)}warning(e,...t){if(e instanceof Error)return this.logError(`warning`,e,t[0]);if(typeof e==`string`&&t[0]instanceof Error)this.log(`warning`,e,{error:t[0]});else if(typeof e==`string`)return logStringMessage(this,`warning`,e,t[0]);else typeof e==`function`?this.logLazily(`warning`,e):Array.isArray(e)?this.logTemplate(`warning`,e,t):this.log(`warning`,`{*}`,e)}error(e,...t){if(e instanceof Error)return this.logError(`error`,e,t[0]);if(typeof e==`string`&&t[0]instanceof Error)this.log(`error`,e,{error:t[0]});else if(typeof e==`string`)return logStringMessage(this,`error`,e,t[0]);else typeof e==`function`?this.logLazily(`error`,e):Array.isArray(e)?this.logTemplate(`error`,e,t):this.log(`error`,`{*}`,e)}fatal(e,...t){if(e instanceof Error)return this.logError(`fatal`,e,t[0]);if(typeof e==`string`&&t[0]instanceof Error)this.log(`fatal`,e,{error:t[0]});else if(typeof e==`string`)return logStringMessage(this,`fatal`,e,t[0]);else typeof e==`function`?this.logLazily(`fatal`,e):Array.isArray(e)?this.logTemplate(`fatal`,e,t):this.log(`fatal`,`{*}`,e)}},c=class LoggerCtx{logger;properties;constructor(e,t){this.logger=e,this.properties=t}get category(){return this.logger.category}get parent(){return this.logger.parent}getChild(e){return this.logger.getChild(e).with(this.properties)}with(e){return new LoggerCtx(this.logger,{...this.properties,...e})}log(e,t,n,r){let i=this.properties;this.logger.log(e,t,typeof n==`function`?()=>resolveProperties({...i,...n()}):()=>resolveProperties({...i,...n}),r)}logLazily(e,t){this.logger.logLazily(e,t,resolveProperties(this.properties))}logTemplate(e,t,n){this.logger.logTemplate(e,t,n,resolveProperties(this.properties))}emit(e){let t={...e,properties:resolveProperties({...this.properties,...e.properties})};this.logger.emit(t)}isEnabledFor(e){return this.logger.isEnabledFor(e)}trace(e,...t){if(typeof e==`string`)return logStringMessage(this,`trace`,e,t[0]);typeof e==`function`?this.logLazily(`trace`,e):Array.isArray(e)?this.logTemplate(`trace`,e,t):this.log(`trace`,`{*}`,e)}debug(e,...t){if(typeof e==`string`)return logStringMessage(this,`debug`,e,t[0]);typeof e==`function`?this.logLazily(`debug`,e):Array.isArray(e)?this.logTemplate(`debug`,e,t):this.log(`debug`,`{*}`,e)}info(e,...t){if(typeof e==`string`)return logStringMessage(this,`info`,e,t[0]);typeof e==`function`?this.logLazily(`info`,e):Array.isArray(e)?this.logTemplate(`info`,e,t):this.log(`info`,`{*}`,e)}logError(e,t,n){if(typeof n!=`function`){this.log(e,`{error.message}`,{...n,error:t});return}if(!this.isEnabledFor(e))return Promise.resolve();let r=n();if(r instanceof Promise)return r.then(n=>{this.log(e,`{error.message}`,{...n,error:t})});this.log(e,`{error.message}`,{...r,error:t})}warn(e,...t){if(e instanceof Error)return this.logError(`warning`,e,t[0]);if(typeof e==`string`&&t[0]instanceof Error)this.log(`warning`,e,{error:t[0]});else if(typeof e==`string`)return logStringMessage(this,`warning`,e,t[0]);else typeof e==`function`?this.logLazily(`warning`,e):Array.isArray(e)?this.logTemplate(`warning`,e,t):this.log(`warning`,`{*}`,e)}warning(e,...t){if(e instanceof Error)return this.logError(`warning`,e,t[0]);if(typeof e==`string`&&t[0]instanceof Error)this.log(`warning`,e,{error:t[0]});else if(typeof e==`string`)return logStringMessage(this,`warning`,e,t[0]);else typeof e==`function`?this.logLazily(`warning`,e):Array.isArray(e)?this.logTemplate(`warning`,e,t):this.log(`warning`,`{*}`,e)}error(e,...t){if(e instanceof Error)return this.logError(`error`,e,t[0]);if(typeof e==`string`&&t[0]instanceof Error)this.log(`error`,e,{error:t[0]});else if(typeof e==`string`)return logStringMessage(this,`error`,e,t[0]);else typeof e==`function`?this.logLazily(`error`,e):Array.isArray(e)?this.logTemplate(`error`,e,t):this.log(`error`,`{*}`,e)}fatal(e,...t){if(e instanceof Error)return this.logError(`fatal`,e,t[0]);if(typeof e==`string`&&t[0]instanceof Error)this.log(`fatal`,e,{error:t[0]});else if(typeof e==`string`)return logStringMessage(this,`fatal`,e,t[0]);else typeof e==`function`?this.logLazily(`fatal`,e):Array.isArray(e)?this.logTemplate(`fatal`,e,t):this.log(`fatal`,`{*}`,e)}};const l=s.getLogger([`logtape`,`meta`]);function isNestedAccess(e){return e.includes(`.`)||e.includes(`[`)||e.includes(`?.`)}function getOwnProperty(e,t){if(t!==`__proto__`&&t!==`prototype`&&t!==`constructor`&&(typeof e==`object`||typeof e==`function`)&&e!==null)return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0}function parseNextSegment(e,t){let n=e.length,r=t;if(r>=n)return null;let i;if(e[r]===`[`){if(r++,r>=n)return null;if(e[r]===`"`||e[r]===`'`){let t=e[r];r++;let a=``;for(;r<n&&e[r]!==t;)if(e[r]===`\\`){if(r++,r<n){let t=e[r];switch(t){case`n`:a+=`
|
|
2
|
-
`;break;case`t`:a+=` `;break;case`r`:a+=`\r`;break;case`b`:a+=`\b`;break;case`f`:a+=`\f`;break;case`v`:a+=`\v`;break;case`0`:a+=`\0`;break;case`\\`:a+=`\\`;break;case`"`:a+=`"`;break;case`'`:a+=`'`;break;case`u`:if(r+4<n){let n=e.slice(r+1,r+5),i=Number.parseInt(n,16);Number.isNaN(i)?a+=t:(a+=String.fromCharCode(i),r+=4)}else a+=t;break;default:a+=t}r++}}else a+=e[r],r++;if(r>=n)return null;i=a,r++}else{let t=r;for(;r<n&&e[r]!==`]`&&e[r]!==`'`&&e[r]!==`"`;)r++;if(r>=n)return null;let a=e.slice(t,r);if(a.length===0)return null;let o=Number(a);i=Number.isNaN(o)?a:o}for(;r<n&&e[r]!==`]`;)r++;r<n&&r++}else{let t=r;for(;r<n&&e[r]!==`.`&&e[r]!==`[`&&e[r]!==`?`&&e[r]!==`]`;)r++;if(i=e.slice(t,r),i.length===0)return null}return r<n&&e[r]===`.`&&r++,{segment:i,nextIndex:r}}function accessProperty(e,t){if(typeof t==`string`)return getOwnProperty(e,t);if(Array.isArray(e)&&t>=0&&t<e.length)return e[t]}function resolvePropertyPath(e,t){if(e==null||t.length===0||t.endsWith(`.`))return;let n=e,r=0,i=t.length;for(;r<i;){if(t.slice(r,r+2)===`?.`){if(r+=2,n==null)return}else if(n==null)return;let e=parseNextSegment(t,r);if(e===null)return;let{segment:i,nextIndex:a}=e;if(r=a,n=accessProperty(n,i),n===void 0)return}return n}function parseMessageTemplate(e,t){let n=e.length;if(n===0)return[``];if(!e.includes(`{`))return[e];let r=[],i=0;for(let a=0;a<n;a++){let o=e[a];if(o===`{`){if((a+1<n?e[a+1]:``)===`{`){a++;continue}let o=e.indexOf(`}`,a+1);if(o===-1)continue;let s=e.slice(i,a);r.push(s.replace(/{{/g,`{`).replace(/}}/g,`}`));let c=e.slice(a+1,o),l,u=c.trim();u===`*`?l=c in t?t[c]:`*`in t?t[`*`]:t:(l=c===u||c in t?t[c]:t[u],l===void 0&&isNestedAccess(u)&&(l=resolvePropertyPath(t,u))),r.push(l),a=o,i=a+1}else o===`}`&&a+1<n&&e[a+1]===`}`&&a++}let a=e.slice(i);return r.push(a.replace(/{{/g,`{`).replace(/}}/g,`}`)),r}function renderMessage(e,t){let n=[];for(let r=0;r<e.length;r++)n.push(e[r]),r<t.length&&n.push(t[r]);return n}const
|
|
1
|
+
import{i as e,r as t}from"../../rolldown-runtime.mjs";import n from"node:util";function toFilter(e){return typeof e==`function`?e:getLevelFilter(e)}function getLevelFilter(e){if(e==null)return()=>!1;if(e===`fatal`)return e=>e.level===`fatal`;if(e===`error`)return e=>e.level===`fatal`||e.level===`error`;if(e===`warning`)return e=>e.level===`fatal`||e.level===`error`||e.level===`warning`;if(e===`info`)return e=>e.level===`fatal`||e.level===`error`||e.level===`warning`||e.level===`info`;if(e===`debug`)return e=>e.level===`fatal`||e.level===`error`||e.level===`warning`||e.level===`info`||e.level===`debug`;if(e===`trace`)return()=>!0;throw TypeError(`Invalid log level: ${e}.`)}const r=[`trace`,`debug`,`info`,`warning`,`error`,`fatal`];function compareLogLevel(e,t){let n=r.indexOf(e);if(n<0)throw TypeError(`Invalid log level: ${JSON.stringify(e)}.`);let i=r.indexOf(t);if(i<0)throw TypeError(`Invalid log level: ${JSON.stringify(t)}.`);return n-i}const i=Symbol.for(`logtape.scopedConfig`),a={filters:[],lowestLevel:`trace`,parentSinks:`inherit`,sinks:[]},o=[];function getCurrentScopedConfig(e){let t=e?.getStore()?.[i];return isCompiledScopedConfig(t)?getActiveScopedConfig(t):void 0}function scopedConfigHasSink(e,t,n){return getScopedSinkDispatchPlan(e,t,n).kind!==`none`}function emitWithScopedConfig(e,t,n,r){let i=getScopedSinkDispatchPlan(e,t.category,t.level);if(i.kind!==`none`&&filterScopedRecord(e,t.category,t)){if(i.kind===`one`){n?.has(i.sink)||r(i.sink,n);return}for(let e of i.sinks)n?.has(e)||r(e,n)}}function isCompiledScopedConfig(e){return typeof e==`object`&&!!e&&`nodes`in e}function getActiveScopedConfig(e){let t=e;for(;t?.disposed;)t=t.parent;return t}function categoryKey(e){return JSON.stringify(e)}function getScopedSinkDispatchPlan(e,t,n){let r=`${categoryKey(t)}:${n}`,i=e.dispatchCache.get(r);return i??(i=getScopedSinkDispatchPlanForPrefix(e,t,t.length,n),e.dispatchCache.set(r,i)),i}function getScopedSinkDispatchPlanForPrefix(e,t,n,r){let i=t.slice(0,n),o=e.nodes.get(categoryKey(i))??a;if(o.lowestLevel===null||compareLogLevel(r,o.lowestLevel)<0)return{kind:`none`};let s=n>0&&o.parentSinks===`inherit`?getScopedSinkDispatchPlanForPrefix(e,t,n-1,r):{kind:`none`},c,l,appendSink=e=>{l==null?c==null?c=e:l=[c,e]:l.push(e)};if(s.kind===`one`)appendSink(s.sink);else if(s.kind===`many`)for(let e of s.sinks)appendSink(e);for(let e of o.sinks)appendSink(e);return l==null?c==null?{kind:`none`}:{kind:`one`,sink:c}:{kind:`many`,sinks:l}}function filterScopedRecord(e,t,n){let r=categoryKey(t),i=e.filterCache.get(r);return i??(i=getScopedFilters(e,t),e.filterCache.set(r,i)),i.every(e=>e(n))}function getScopedFilters(e,t){for(let n=t.length;n>=0;n--){let r=e.nodes.get(categoryKey(t.slice(0,n)));if(!(r==null||r.filters.length<1))return r.filters}return o}const s=Symbol.for(`logtape.lazy`),c=Symbol.for(`LogTape.throttlingSummaryRecord`),l=Symbol.for(`LogTape.sinkSnapshotPolicy.immediate`),u=new WeakSet,d=new WeakSet;function isLazy(e){return typeof e==`object`&&!!e&&s in e&&e[s]===!0}function resolveProperties(e){let t={};for(let n in e){let r=e[n];t[n]=isLazy(r)?r.getter():r}let n=e,r=t;if(Object.prototype.propertyIsEnumerable.call(e,c)){let e=n[c];r[c]=isLazy(e)?e.getter():e}return t}function isPromiseObject(e){return e instanceof Promise||Object.prototype.toString.call(e)===`[object Promise]`&&typeof e.then==`function`}function logStringMessage(e,t,n,r){if(typeof r!=`function`){let i=r??{};e.log(t,n,i);return}if(!e.isEnabledFor(t))return Promise.resolve();let i=r();if(isPromiseObject(i))return Promise.resolve(i).then(r=>{e.log(t,n,r)});e.log(t,n,i)}function snapshotLogRecordProperties(e){if(d.has(e))return e;let t=resolveProperties(e.properties);if(u.has(e))return{category:e.category,level:e.level,get message(){return e.message},rawMessage:e.rawMessage,timestamp:e.timestamp,properties:t};let n=Object.getOwnPropertyDescriptors(e);return n.properties={value:t,enumerable:!0,configurable:!0},Object.defineProperties({},n)}function hasEnumerableProperties(e){return typeof e!=`object`||!e?!1:Object.keys(e).length>0||Object.prototype.propertyIsEnumerable.call(e,c)}function shouldSnapshotForSink(e){return e[l]!==!0}function getLogger(e=[]){return p.getLogger(e)}const f=Symbol.for(`logtape.rootLogger`);function isMetaLoggerCategory(e){return e.length>=2&&e[0]===`logtape`&&e[1]===`meta`}var p=class LoggerImpl{parent;children;category;sinks;filters;contextLocalStorage;#e=`inherit`;#t=`trace`;#n={};static getLogger(e=[]){let t=f in globalThis?globalThis[f]??null:null;return t??(t=new LoggerImpl(null,[]),globalThis[f]=t),typeof e==`string`?t.getChild(e):e.length===0?t:t.getChild(e)}static getNearestExistingLogger(e){let t=LoggerImpl.getLogger();for(let n of e){let e=t.children[n],r=e instanceof LoggerImpl?e:e?.deref();if(r==null)break;t=r}return t}constructor(e,t){this.parent=e,this.children={},this.category=t,this.sinks=[],this.filters=[]}get parentSinks(){return this.#e}set parentSinks(e){this.#e!==e&&(this.#e=e)}get lowestLevel(){return this.#t}set lowestLevel(e){this.#t!==e&&(this.#t=e)}getChild(e){let t=typeof e==`string`?e:e[0],n=this.children[t],r=n instanceof LoggerImpl?n:n?.deref();return r??(r=new LoggerImpl(this,[...this.category,t]),this.children[t]=`WeakRef`in globalThis?new WeakRef(r):r),typeof e==`string`||e.length===1?r:r.getChild(e.slice(1))}reset(){for(;this.sinks.length>0;)this.sinks.shift();for(this.parentSinks=`inherit`;this.filters.length>0;)this.filters.shift();this.lowestLevel=`trace`}resetDescendants(){for(let e of Object.values(this.children))(e instanceof LoggerImpl?e:e.deref())?.resetDescendants();this.reset()}with(e){return new m(this,{...e})}filter(e){for(let t of this.filters)if(!t(e))return!1;return this.filters.length<1?this.parent?.filter(e)??!0:!0}*getSinks(e){let t=this.getSinkDispatchPlan(e);switch(t.kind){case`none`:return;case`one`:yield t.sink;return;case`many`:yield*t.sinks;return}}getSinkDispatchPlan(e){let t=this.#n[e];if(t!=null&&this.isSinkDispatchPlanFresh(e,t))return t;let n=this.parent!=null&&this.parentSinks===`inherit`?this.parent.getSinkDispatchPlan(e):void 0,r=this.createSinkDispatchPlan(e,n);return this.#n[e]=r,r}isSinkDispatchPlanFresh(e,t){if(t.lowestLevel!==this.lowestLevel||t.parentSinks!==this.parentSinks||t.localSinks.length!==this.sinks.length)return!1;for(let e=0;e<t.localSinks.length;e++)if(t.localSinks[e]!==this.sinks[e])return!1;let n=this.parent!=null&&this.parentSinks===`inherit`?this.parent.getSinkDispatchPlan(e):void 0;return t.parentPlan===n}createSinkDispatchPlan(e,t){let n={localSinks:[...this.sinks],parentSinks:this.parentSinks,lowestLevel:this.lowestLevel,parentPlan:t};if(n.lowestLevel===null||compareLogLevel(e,n.lowestLevel)<0)return{...n,kind:`none`};let r,i,appendSink=e=>{i==null?r==null?r=e:i=[r,e]:i.push(e)};t!=null&&(t.kind===`one`?r=t.sink:t.kind===`many`&&(i=[...t.sinks]));for(let e of n.localSinks)appendSink(e);return i==null?r==null?{...n,kind:`none`}:{...n,kind:`one`,sink:r}:{...n,kind:`many`,sinks:i}}isEnabledFor(e){let t=isMetaLoggerCategory(this.category)?[]:getCategoryPrefix(),n=t.length>0?LoggerImpl.getNearestExistingLogger([...t,...this.category]):this,r=getCurrentScopedConfig(LoggerImpl.getLogger().contextLocalStorage);return r==null?n.isEnabledForResolved(e):scopedConfigHasSink(r,t.length>0?[...t,...this.category]:this.category,e)}isEnabledForResolved(e){return this.getSinkDispatchPlan(e).kind!==`none`}emit(e,t){let n=`category`in e?e.category:this.category,r=isMetaLoggerCategory(n)?[]:getCategoryPrefix(),i=r.length>0?[...r,...n]:n;if(r.length<1&&Object.prototype.hasOwnProperty.call(e,`category`)){this.emitResolved(e,t);return}let a=Object.getOwnPropertyDescriptors(e);a.category={value:i,enumerable:!0,configurable:!0};let o=Object.defineProperties({},a);(r.length>0?LoggerImpl.getNearestExistingLogger(i):this).emitResolved(o,t)}emitResolved(e,t){let n=getCurrentScopedConfig(LoggerImpl.getLogger().contextLocalStorage);if(n!=null){let r,i=!1;emitWithScopedConfig(n,e,t,(t,n)=>{try{if(shouldSnapshotForSink(t))try{r??=snapshotLogRecordProperties(e)}catch{i=!0,r=e}t(r??e)}catch(r){let i=new Set(n);i.add(t),h.log(`fatal`,`Failed to emit a log record to sink {sink}: {error}`,{sink:t,error:r,record:e},i)}i&&(r=e)});return}if(this.lowestLevel===null||compareLogLevel(e.level,this.lowestLevel)<0||!this.filter(e))return;let r=this.getSinkDispatchPlan(e.level);if(r.kind===`none`)return;let i,a=!1;if(r.kind===`one`){let n=r.sink;if(t?.has(n))return;try{if(shouldSnapshotForSink(n))try{i=snapshotLogRecordProperties(e)}catch{a=!0,i=e}n(i??e)}catch(r){let i=new Set(t);i.add(n),h.log(`fatal`,`Failed to emit a log record to sink {sink}: {error}`,{sink:n,error:r,record:e},i)}return}for(let n of r.sinks)if(!t?.has(n))try{if(i==null&&!a&&shouldSnapshotForSink(n))try{i=snapshotLogRecordProperties(e)}catch{a=!0,i=e}n(i??e)}catch(r){let i=new Set(t);i.add(n),h.log(`fatal`,`Failed to emit a log record to sink {sink}: {error}`,{sink:n,error:r,record:e},i)}}log(e,t,n,r){let i=getImplicitContextIfAny();if(typeof n!=`function`&&i==null&&!t.includes(`{`)&&!hasEnumerableProperties(n)){let n={category:this.category,level:e,message:[t],rawMessage:t,timestamp:Date.now(),properties:{}};d.add(n),this.emit(n,r);return}let a,o,s=typeof n==`function`?{category:this.category,level:e,timestamp:Date.now(),get message(){return o??=parseMessageTemplate(t,this.properties),o},rawMessage:t,get properties(){return a??=resolveProperties({...i??{},...n()}),a}}:{category:this.category,level:e,timestamp:Date.now(),get message(){return o??=parseMessageTemplate(t,this.properties),o},rawMessage:t,get properties(){return a??=resolveProperties({...i??{},...n}),a}};u.add(s),this.emit(s,r)}logLazily(e,t,n={}){let r=getImplicitContextIfAny(),i,a;function realizeMessage(){if((a==null||i==null)&&(a=t((e,...t)=>(i=e,renderMessage(e,t))),i==null))throw TypeError(`No log record was made.`);return[a,i]}this.emit({category:this.category,level:e,get message(){return realizeMessage()[0]},get rawMessage(){return realizeMessage()[1]},timestamp:Date.now(),properties:{...r??{},...n}})}logTemplate(e,t,n,r={}){let i=getImplicitContextIfAny();this.emit({category:this.category,level:e,message:renderMessage(t,n),rawMessage:t,timestamp:Date.now(),properties:{...i??{},...r}})}trace(e,...t){if(typeof e==`string`)return logStringMessage(this,`trace`,e,t[0]);typeof e==`function`?this.logLazily(`trace`,e):Array.isArray(e)?this.logTemplate(`trace`,e,t):this.log(`trace`,`{*}`,e)}debug(e,...t){if(typeof e==`string`)return logStringMessage(this,`debug`,e,t[0]);typeof e==`function`?this.logLazily(`debug`,e):Array.isArray(e)?this.logTemplate(`debug`,e,t):this.log(`debug`,`{*}`,e)}info(e,...t){if(typeof e==`string`)return logStringMessage(this,`info`,e,t[0]);typeof e==`function`?this.logLazily(`info`,e):Array.isArray(e)?this.logTemplate(`info`,e,t):this.log(`info`,`{*}`,e)}logError(e,t,n){if(typeof n!=`function`){this.log(e,`{error.message}`,{...n,error:t});return}if(!this.isEnabledFor(e))return Promise.resolve();let r=n();if(r instanceof Promise)return r.then(n=>{this.log(e,`{error.message}`,{...n,error:t})});this.log(e,`{error.message}`,{...r,error:t})}warn(e,...t){if(e instanceof Error)return this.logError(`warning`,e,t[0]);if(typeof e==`string`&&t[0]instanceof Error)this.log(`warning`,e,{error:t[0]});else if(typeof e==`string`)return logStringMessage(this,`warning`,e,t[0]);else typeof e==`function`?this.logLazily(`warning`,e):Array.isArray(e)?this.logTemplate(`warning`,e,t):this.log(`warning`,`{*}`,e)}warning(e,...t){if(e instanceof Error)return this.logError(`warning`,e,t[0]);if(typeof e==`string`&&t[0]instanceof Error)this.log(`warning`,e,{error:t[0]});else if(typeof e==`string`)return logStringMessage(this,`warning`,e,t[0]);else typeof e==`function`?this.logLazily(`warning`,e):Array.isArray(e)?this.logTemplate(`warning`,e,t):this.log(`warning`,`{*}`,e)}error(e,...t){if(e instanceof Error)return this.logError(`error`,e,t[0]);if(typeof e==`string`&&t[0]instanceof Error)this.log(`error`,e,{error:t[0]});else if(typeof e==`string`)return logStringMessage(this,`error`,e,t[0]);else typeof e==`function`?this.logLazily(`error`,e):Array.isArray(e)?this.logTemplate(`error`,e,t):this.log(`error`,`{*}`,e)}fatal(e,...t){if(e instanceof Error)return this.logError(`fatal`,e,t[0]);if(typeof e==`string`&&t[0]instanceof Error)this.log(`fatal`,e,{error:t[0]});else if(typeof e==`string`)return logStringMessage(this,`fatal`,e,t[0]);else typeof e==`function`?this.logLazily(`fatal`,e):Array.isArray(e)?this.logTemplate(`fatal`,e,t):this.log(`fatal`,`{*}`,e)}},m=class LoggerCtx{logger;properties;constructor(e,t){this.logger=e,this.properties=t}get category(){return this.logger.category}get parent(){return this.logger.parent}getChild(e){return this.logger.getChild(e).with(this.properties)}with(e){return new LoggerCtx(this.logger,{...this.properties,...e})}log(e,t,n,r){let i=this.properties;this.logger.log(e,t,typeof n==`function`?()=>resolveProperties({...i,...n()}):()=>resolveProperties({...i,...n}),r)}logLazily(e,t){this.logger.logLazily(e,t,resolveProperties(this.properties))}logTemplate(e,t,n){this.logger.logTemplate(e,t,n,resolveProperties(this.properties))}emit(e){let t={...e,properties:resolveProperties({...this.properties,...e.properties})};this.logger.emit(t)}isEnabledFor(e){return this.logger.isEnabledFor(e)}trace(e,...t){if(typeof e==`string`)return logStringMessage(this,`trace`,e,t[0]);typeof e==`function`?this.logLazily(`trace`,e):Array.isArray(e)?this.logTemplate(`trace`,e,t):this.log(`trace`,`{*}`,e)}debug(e,...t){if(typeof e==`string`)return logStringMessage(this,`debug`,e,t[0]);typeof e==`function`?this.logLazily(`debug`,e):Array.isArray(e)?this.logTemplate(`debug`,e,t):this.log(`debug`,`{*}`,e)}info(e,...t){if(typeof e==`string`)return logStringMessage(this,`info`,e,t[0]);typeof e==`function`?this.logLazily(`info`,e):Array.isArray(e)?this.logTemplate(`info`,e,t):this.log(`info`,`{*}`,e)}logError(e,t,n){if(typeof n!=`function`){this.log(e,`{error.message}`,{...n,error:t});return}if(!this.isEnabledFor(e))return Promise.resolve();let r=n();if(r instanceof Promise)return r.then(n=>{this.log(e,`{error.message}`,{...n,error:t})});this.log(e,`{error.message}`,{...r,error:t})}warn(e,...t){if(e instanceof Error)return this.logError(`warning`,e,t[0]);if(typeof e==`string`&&t[0]instanceof Error)this.log(`warning`,e,{error:t[0]});else if(typeof e==`string`)return logStringMessage(this,`warning`,e,t[0]);else typeof e==`function`?this.logLazily(`warning`,e):Array.isArray(e)?this.logTemplate(`warning`,e,t):this.log(`warning`,`{*}`,e)}warning(e,...t){if(e instanceof Error)return this.logError(`warning`,e,t[0]);if(typeof e==`string`&&t[0]instanceof Error)this.log(`warning`,e,{error:t[0]});else if(typeof e==`string`)return logStringMessage(this,`warning`,e,t[0]);else typeof e==`function`?this.logLazily(`warning`,e):Array.isArray(e)?this.logTemplate(`warning`,e,t):this.log(`warning`,`{*}`,e)}error(e,...t){if(e instanceof Error)return this.logError(`error`,e,t[0]);if(typeof e==`string`&&t[0]instanceof Error)this.log(`error`,e,{error:t[0]});else if(typeof e==`string`)return logStringMessage(this,`error`,e,t[0]);else typeof e==`function`?this.logLazily(`error`,e):Array.isArray(e)?this.logTemplate(`error`,e,t):this.log(`error`,`{*}`,e)}fatal(e,...t){if(e instanceof Error)return this.logError(`fatal`,e,t[0]);if(typeof e==`string`&&t[0]instanceof Error)this.log(`fatal`,e,{error:t[0]});else if(typeof e==`string`)return logStringMessage(this,`fatal`,e,t[0]);else typeof e==`function`?this.logLazily(`fatal`,e):Array.isArray(e)?this.logTemplate(`fatal`,e,t):this.log(`fatal`,`{*}`,e)}};const h=p.getLogger([`logtape`,`meta`]);function isNestedAccess(e){return e.includes(`.`)||e.includes(`[`)||e.includes(`?.`)}function getOwnProperty(e,t){if(t!==`__proto__`&&t!==`prototype`&&t!==`constructor`&&(typeof e==`object`||typeof e==`function`)&&e!==null)return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0}function parseNextSegment(e,t){let n=e.length,r=t;if(r>=n)return null;let i;if(e[r]===`[`){if(r++,r>=n)return null;if(e[r]===`"`||e[r]===`'`){let t=e[r];r++;let a=``;for(;r<n&&e[r]!==t;)if(e[r]===`\\`){if(r++,r<n){let t=e[r];switch(t){case`n`:a+=`
|
|
2
|
+
`;break;case`t`:a+=` `;break;case`r`:a+=`\r`;break;case`b`:a+=`\b`;break;case`f`:a+=`\f`;break;case`v`:a+=`\v`;break;case`0`:a+=`\0`;break;case`\\`:a+=`\\`;break;case`"`:a+=`"`;break;case`'`:a+=`'`;break;case`u`:if(r+4<n){let n=e.slice(r+1,r+5),i=Number.parseInt(n,16);Number.isNaN(i)?a+=t:(a+=String.fromCharCode(i),r+=4)}else a+=t;break;default:a+=t}r++}}else a+=e[r],r++;if(r>=n)return null;i=a,r++}else{let t=r;for(;r<n&&e[r]!==`]`&&e[r]!==`'`&&e[r]!==`"`;)r++;if(r>=n)return null;let a=e.slice(t,r);if(a.length===0)return null;let o=Number(a);i=Number.isNaN(o)?a:o}for(;r<n&&e[r]!==`]`;)r++;r<n&&r++}else{let t=r;for(;r<n&&e[r]!==`.`&&e[r]!==`[`&&e[r]!==`?`&&e[r]!==`]`;)r++;if(i=e.slice(t,r),i.length===0)return null}return r<n&&e[r]===`.`&&r++,{segment:i,nextIndex:r}}function accessProperty(e,t){if(typeof t==`string`)return getOwnProperty(e,t);if(Array.isArray(e)&&t>=0&&t<e.length)return e[t]}function resolvePropertyPath(e,t){if(e==null||t.length===0||t.endsWith(`.`))return;let n=e,r=0,i=t.length;for(;r<i;){if(t.slice(r,r+2)===`?.`){if(r+=2,n==null)return}else if(n==null)return;let e=parseNextSegment(t,r);if(e===null)return;let{segment:i,nextIndex:a}=e;if(r=a,n=accessProperty(n,i),n===void 0)return}return n}function parseMessageTemplate(e,t){let n=e.length;if(n===0)return[``];if(!e.includes(`{`))return[e];let r=[],i=0;for(let a=0;a<n;a++){let o=e[a];if(o===`{`){if((a+1<n?e[a+1]:``)===`{`){a++;continue}let o=e.indexOf(`}`,a+1);if(o===-1)continue;let s=e.slice(i,a);r.push(s.replace(/{{/g,`{`).replace(/}}/g,`}`));let c=e.slice(a+1,o),l,u=c.trim();u===`*`?l=c in t?t[c]:`*`in t?t[`*`]:t:(l=c===u||c in t?t[c]:t[u],l===void 0&&isNestedAccess(u)&&(l=resolvePropertyPath(t,u))),r.push(l),a=o,i=a+1}else o===`}`&&a+1<n&&e[a+1]===`}`&&a++}let a=e.slice(i);return r.push(a.replace(/{{/g,`{`).replace(/}}/g,`}`)),r}function renderMessage(e,t){let n=[];for(let r=0;r<e.length;r++)n.push(e[r]),r<t.length&&n.push(t[r]);return n}const g=Symbol.for(`logtape.categoryPrefix`);function getCategoryPrefix(){let e=p.getLogger().contextLocalStorage?.getStore();if(e==null)return[];let t=e[g];return Array.isArray(t)?t:[]}function getImplicitContextIfAny(){let e=p.getLogger().contextLocalStorage?.getStore();if(e==null)return;let t=Object.keys(e);if(t.length<1)return;let n={};for(let r of t)n[r]=e[r];return n}var _=t({inspect:()=>inspect$1});function inspect$1(e,t){return n.inspect(e,t)}e(inspect$1,`inspect`);const v={trace:`TRC`,debug:`DBG`,info:`INF`,warning:`WRN`,error:`ERR`,fatal:`FTL`},y=typeof document<`u`||typeof navigator<`u`&&navigator.product===`ReactNative`?e=>JSON.stringify(e):`Deno`in globalThis&&`inspect`in globalThis.Deno&&typeof globalThis.Deno.inspect==`function`?(e,t)=>globalThis.Deno.inspect(e,{strAbbreviateSize:1/0,iterableLimit:1/0,...t}):_!=null&&`inspect`in _&&typeof inspect$1==`function`?(e,t)=>inspect$1(e,{maxArrayLength:1/0,maxStringLength:1/0,...t}):e=>JSON.stringify(e),inspect=(e,t)=>String(y(e,t)),b=new TextEncoder;function renderMessageParts(e,t){let n=e.length;if(n===1)return e[0];if(n<=6){let r=``;for(let i=0;i<n;i++)r+=i%2==0?e[i]:t(e[i]);return r}let r=Array(n);for(let i=0;i<n;i++)r[i]=i%2==0?e[i]:t(e[i]);return r.join(``)}function padZero(e){return e<10?`0${e}`:`${e}`}function padThree(e){return e<10?`00${e}`:e<100?`0${e}`:`${e}`}const x=/^([+-])(0\d|1\d|2[0-3]):([0-5]\d)$/;function formatOffset(e,t){let n=e<0?`-`:`+`,r=Math.abs(e),i=padZero(Math.floor(r/60)),a=padZero(r%60);return!t&&a===`00`?`${n}${i}`:`${n}${i}:${a}`}function readPartsFromFormatter(e,t){let n=e.formatToParts(new Date(t)),r=``,i=``,a=``,o=``,s=``,c=``;for(let e of n)e.type===`year`?r=e.value:e.type===`month`?i=e.value:e.type===`day`?a=e.value:e.type===`hour`?o=e.value:e.type===`minute`?s=e.value:e.type===`second`&&(c=e.value);return{year:r,month:i,day:a,hour:o,minute:s,second:c}}function getDateParts(e,t){let n=new Date(e),r=padThree(n.getUTCMilliseconds());if(t.kind===`utc`)return{year:`${n.getUTCFullYear()}`,month:padZero(n.getUTCMonth()+1),day:padZero(n.getUTCDate()),hour:padZero(n.getUTCHours()),minute:padZero(n.getUTCMinutes()),second:padZero(n.getUTCSeconds()),ms:r,offsetMinutes:0};if(t.kind===`local`)return{year:`${n.getFullYear()}`,month:padZero(n.getMonth()+1),day:padZero(n.getDate()),hour:padZero(n.getHours()),minute:padZero(n.getMinutes()),second:padZero(n.getSeconds()),ms:r,offsetMinutes:-n.getTimezoneOffset()};if(t.kind===`offset`){let n=new Date(e+t.minutes*6e4);return{year:`${n.getUTCFullYear()}`,month:padZero(n.getUTCMonth()+1),day:padZero(n.getUTCDate()),hour:padZero(n.getUTCHours()),minute:padZero(n.getUTCMinutes()),second:padZero(n.getUTCSeconds()),ms:r,offsetMinutes:t.minutes}}let i=readPartsFromFormatter(t.formatter,e),a=Date.UTC(Number(i.year),Number(i.month)-1,Number(i.day),Number(i.hour),Number(i.minute),Number(i.second),n.getUTCMilliseconds()),o=Math.round((a-e)/6e4);return{...i,ms:r,offsetMinutes:o}}function resolveTimeZone(e){if(e===void 0)return{kind:`utc`};if(e===null)return{kind:`local`};let t=x.exec(e);if(t!=null){let e=t[1]===`-`?-1:1,n=Number(t[2]),r=Number(t[3]);return{kind:`offset`,minutes:e*(n*60+r)}}if(typeof Intl>`u`||typeof Intl.DateTimeFormat!=`function`)throw TypeError(`Invalid timeZone option: ${JSON.stringify(e)}. This environment does not support IANA time zones.`);try{return{kind:`iana`,formatter:new Intl.DateTimeFormat(`en-CA`,{timeZone:e,hour12:!1,hourCycle:`h23`,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}}catch{throw TypeError(`Invalid timeZone option: ${JSON.stringify(e)}. Expected an IANA time zone name (e.g., "Asia/Seoul") or a fixed UTC offset string (e.g., "+09:00").`)}}function createTimestampFormatter(e,t){return e===`none`?()=>null:e===`rfc3339`&&t.kind===`utc`?e=>new Date(e).toISOString():n=>{let r=getDateParts(n,t),i=`${r.year}-${r.month}-${r.day}`,a=`${r.hour}:${r.minute}:${r.second}.${r.ms}`,o=formatOffset(r.offsetMinutes,!0),s=formatOffset(r.offsetMinutes,!1);return e===`date-time-timezone`?`${i} ${a} ${o}`:e===`date-time-tz`?`${i} ${a} ${s}`:e===`date-time`?`${i} ${a}`:e===`time-timezone`?`${a} ${o}`:e===`time-tz`?`${a} ${s}`:e===`time`?a:e===`date`?i:`${i}T${a}${o}`}}const S={ABBR:v,abbr:{trace:`trc`,debug:`dbg`,info:`inf`,warning:`wrn`,error:`err`,fatal:`ftl`},FULL:{trace:`TRACE`,debug:`DEBUG`,info:`INFO`,warning:`WARNING`,error:`ERROR`,fatal:`FATAL`},full:{trace:`trace`,debug:`debug`,info:`info`,warning:`warning`,error:`error`,fatal:`fatal`},L:{trace:`T`,debug:`D`,info:`I`,warning:`W`,error:`E`,fatal:`F`},l:{trace:`t`,debug:`d`,info:`i`,warning:`w`,error:`e`,fatal:`f`}};function getLineEndingValue(e){return e===`crlf`?`\r
|
|
3
3
|
`:`
|
|
4
|
-
`}function jsonReplacer(e,t){if(!(t instanceof Error))return t;let n={name:t.name,message:t.message};typeof t.stack==`string`&&(n.stack=t.stack);let r=t.cause;r!==void 0&&(n.cause=r),typeof AggregateError<`u`&&t instanceof AggregateError&&(n.errors=t.errors);for(let e of Object.keys(t))e in n||(n[e]=t[e]);return n}function getTextFormatter(e={}){let t=(()=>{let t=e.timestamp,n=resolveTimeZone(e.timeZone);return t==null?createTimestampFormatter(`date-time-timezone`,n):t===`disabled`?createTimestampFormatter(`none`,n):typeof t==`string`&&(t===`date-time-timezone`||t===`date-time-tz`||t===`date-time`||t===`time-timezone`||t===`time-tz`||t===`time`||t===`date`||t===`rfc3339`||t===`none`)?createTimestampFormatter(t,n):t})(),n=e.category??`·`,r=e.value?t=>e.value(t,inspect):inspect,i=(()=>{let t=e.level;return t==null||t===`ABBR`?e=>
|
|
5
|
-
`:return`\\n`;case`\r`:return`\\r`;case`"`:return`\\"`;case`\\`:return`\\\\`;default:return t<=31||t===127?`\\u${t.toString(16).padStart(4,`0`)}`:e}}function formatLogfmtValue(e){return quoteLogfmtValue(stringifyLogfmtValue(e),typeof e==`string`)}function pushLogfmtPair(e,t,n){let r=filterLogfmtKey(t);r!=null&&e.push(`${r}=${formatLogfmtValue(n)}`)}function getLogfmtFormatter(e={}){let t=getLineEndingValue(e.lineEnding),n=createTimestampFormatter(`rfc3339`,resolveTimeZone(e.timeZone)),r=e.message===`template`,i=e.properties??`flatten`,joinCategory;if(typeof e.categorySeparator==`function`)joinCategory=e.categorySeparator;else{let t=e.categorySeparator??`.`;joinCategory=e=>e.join(t)}let a=``;if(i===`flatten`)a=``;else if(i.startsWith(`prepend:`)){if(a=i.substring(8),a===``)throw TypeError(`Invalid properties option: `+JSON.stringify(i)+`. It must be of the form "prepend:<prefix>" where <prefix> is a non-empty string.`)}else throw TypeError(`Invalid properties option: ${JSON.stringify(i)}. It must be "flatten" or "prepend:<prefix>".`);return e=>{let i=[];pushLogfmtPair(i,`time`,n(e.timestamp)),pushLogfmtPair(i,`level`,e.level),pushLogfmtPair(i,`logger`,joinCategory(e.category)),pushLogfmtPair(i,`msg`,renderStructuredMessage(e,r));for(let t in e.properties)Object.prototype.hasOwnProperty.call(e.properties,t)&&pushLogfmtPair(i,`${a}${t}`,e.properties[t]);return`${i.join(` `)}${t}`}}getLogfmtFormatter();const
|
|
4
|
+
`}function jsonReplacer(e,t){if(!(t instanceof Error))return t;let n={name:t.name,message:t.message};typeof t.stack==`string`&&(n.stack=t.stack);let r=t.cause;r!==void 0&&(n.cause=r),typeof AggregateError<`u`&&t instanceof AggregateError&&(n.errors=t.errors);for(let e of Object.keys(t))e in n||(n[e]=t[e]);return n}function renderDefaultJsonLinesMessage(e){let t=e.length;if(t===1)return e[0];if(t===3)return e[0]+JSON.stringify(e[1])+e[2];let n=e[0];for(let r=1;r<t;r++)n+=r&1?JSON.stringify(e[r]):e[r];return n}function stringifyJsonLinesField(e,t){if(t!=null&&(typeof t==`object`||typeof t==`function`||typeof t==`bigint`)){let n=t.toJSON;typeof n==`function`&&(t=n.call(t,e))}return JSON.stringify(jsonReplacer(e,t),jsonReplacer)}function formatDefaultJsonLinesRecord(e,t){let n=e.level===`warning`?`WARN`:e.level.toUpperCase(),r=stringifyJsonLinesField(`message`,renderDefaultJsonLinesMessage(e.message)),i=stringifyJsonLinesField(`properties`,e.properties),a=`{"@timestamp":${JSON.stringify(new Date(e.timestamp).toISOString())},"level":${JSON.stringify(n)}`;return r!==void 0&&(a+=`,"message":${r}`),a+=`,"logger":${JSON.stringify(e.category.join(`.`))}`,i!==void 0&&(a+=`,"properties":${i}`),`${a}}${t}`}function getTextFormatter(e={}){let t=(()=>{let t=e.timestamp,n=resolveTimeZone(e.timeZone);return t==null?createTimestampFormatter(`date-time-timezone`,n):t===`disabled`?createTimestampFormatter(`none`,n):typeof t==`string`&&(t===`date-time-timezone`||t===`date-time-tz`||t===`date-time`||t===`time-timezone`||t===`time-tz`||t===`time`||t===`date`||t===`rfc3339`||t===`none`)?createTimestampFormatter(t,n):t})(),n=e.category??`·`,r=e.value?t=>e.value(t,inspect):inspect,i=(()=>{let t=e.level;return t==null||t===`ABBR`?e=>S.ABBR[e]:t===`abbr`?e=>S.abbr[e]:t===`FULL`?e=>S.FULL[e]:t===`full`?e=>S.full[e]:t===`L`?e=>S.L[e]:t===`l`?e=>S.l[e]:t})(),a=getLineEndingValue(e.lineEnding),o=e.format??(({timestamp:e,level:t,category:n,message:r})=>`${e?`${e} `:``}[${t}] ${n}: ${r}`);return e=>{let s=renderMessageParts(e.message,r),c={timestamp:t(e.timestamp),level:i(e.level),category:typeof n==`function`?n(e.category):e.category.join(n),message:s,record:e};return`${o(c)}${a}`}}getTextFormatter();const C=`\x1B[0m`,w={black:`\x1B[30m`,red:`\x1B[31m`,green:`\x1B[32m`,yellow:`\x1B[33m`,blue:`\x1B[34m`,magenta:`\x1B[35m`,cyan:`\x1B[36m`,white:`\x1B[37m`},T={bold:`\x1B[1m`,dim:`\x1B[2m`,italic:`\x1B[3m`,underline:`\x1B[4m`,strikethrough:`\x1B[9m`},E={trace:null,debug:`blue`,info:`green`,warning:`yellow`,error:`red`,fatal:`magenta`};function getAnsiColorFormatter(e={}){let t=e.format,n=e.timestampStyle===void 0?`dim`:e.timestampStyle,r=e.timestampColor??null,i=`${n==null?``:T[n]}${r==null?``:w[r]}`,a=n==null&&r==null?``:C,o=e.levelStyle===void 0?`bold`:e.levelStyle,s=e.levelColors??E,c=e.categoryStyle===void 0?`dim`:e.categoryStyle,l=e.categoryColor??null,u=`${c==null?``:T[c]}${l==null?``:w[l]}`,d=c==null&&l==null?``:C;return getTextFormatter({timestamp:`date-time-tz`,value(e,t){return t(e,{colors:!0})},...e,format({timestamp:e,level:n,category:r,message:c,record:l}){let f=s[l.level];return e=e==null?null:`${i}${e}${a}`,n=`${o==null?``:T[o]}${f==null?``:w[f]}${n}${o==null&&f==null?``:C}`,t==null?`${e==null?``:`${e} `}${n} ${u}${r}:${d} ${c}`:t({timestamp:e,level:n,category:`${u}${r}${d}`,message:c,record:l})}})}getAnsiColorFormatter();function getJsonLinesFormatter(e={}){let t=getLineEndingValue(e.lineEnding);if(!e.categorySeparator&&!e.message&&!e.properties)return e=>formatDefaultJsonLinesRecord(e,t);let n=e.message===`template`,r=e.properties??`nest:properties`,joinCategory;if(typeof e.categorySeparator==`function`)joinCategory=e.categorySeparator;else{let t=e.categorySeparator??`.`;joinCategory=e=>e.join(t)}let getProperties;if(r===`flatten`)getProperties=e=>e;else if(r.startsWith(`prepend:`)){let e=r.substring(8);if(e===``)throw TypeError(`Invalid properties option: ${JSON.stringify(r)}. It must be of the form "prepend:<prefix>" where <prefix> is a non-empty string.`);getProperties=t=>{let n={};for(let r in t)n[`${e}${r}`]=t[r];return n}}else if(r.startsWith(`nest:`)){let e=r.substring(5);getProperties=t=>({[e]:t})}else throw TypeError(`Invalid properties option: ${JSON.stringify(r)}. It must be "flatten", "prepend:<prefix>", or "nest:<key>".`);let i;return i=n?e=>{if(typeof e.rawMessage==`string`)return e.rawMessage;let t=``;for(let n=0;n<e.rawMessage.length;n++)n>0&&(t+=`{}`),t+=e.rawMessage[n];return t}:e=>{let t=e.message.length;if(t===1)return e.message[0];let n=``;for(let r=0;r<t;r++)n+=r%2<1?e.message[r]:JSON.stringify(e.message[r]);return n},e=>JSON.stringify({"@timestamp":new Date(e.timestamp).toISOString(),level:e.level===`warning`?`WARN`:e.level.toUpperCase(),message:i(e),logger:joinCategory(e.category),...getProperties(e.properties)},jsonReplacer)+t}getJsonLinesFormatter();function renderStructuredMessage(e,t){return t?typeof e.rawMessage==`string`?e.rawMessage:e.rawMessage.join(`{}`):renderMessageParts(e.message,stringifyLogfmtValue)}function filterLogfmtKey(e){if(e===``)return null;let t=!1;for(let n of e)if(shouldEscapeLogfmtKeyChar(n,n.codePointAt(0))){t=!0;break}if(!t)return e;let n=``;for(let t of e)shouldEscapeLogfmtKeyChar(t,t.codePointAt(0))?n+=encodeLogfmtKeyChar(t):n+=t;return n}function shouldEscapeLogfmtKeyChar(e,t){return t<=32||t===127||t===65533||e===`=`||e===`"`||e===`%`}function encodeLogfmtKeyChar(e){let t=``;for(let n of b.encode(e))t+=`%${n.toString(16).toUpperCase().padStart(2,`0`)}`;return t}function stringifyLogfmtValue(e){if(typeof e==`string`)return e;if(e===null)return`null`;if(typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`||e===void 0||typeof e==`symbol`||typeof e==`function`)return String(e);try{let t=JSON.stringify(e,jsonReplacer);if(typeof t==`string`)return unwrapJsonStringLiteral(t)}catch{}return inspect(e,{colors:!1})}function unwrapJsonStringLiteral(e){return e.startsWith(`"`)&&e.endsWith(`"`)?JSON.parse(e):e}function quoteLogfmtValue(e,t){let n=e===``||t&&shouldQuoteStringLiteral(e);for(let t of e)if(shouldQuoteLogfmtValueChar(t,t.codePointAt(0))){n=!0;break}if(!n)return e;let r=``;for(let t of e){let e=t.codePointAt(0);r+=escapeLogfmtValueChar(t,e)}return`"${r}"`}function shouldQuoteStringLiteral(e){return e===`null`||e===`undefined`||e===`true`||e===`false`}function shouldQuoteLogfmtValueChar(e,t){return t<=32||t===127||t===65533||e===`=`||e===`"`||e===`\\`}function escapeLogfmtValueChar(e,t){switch(e){case` `:return`\\t`;case`
|
|
5
|
+
`:return`\\n`;case`\r`:return`\\r`;case`"`:return`\\"`;case`\\`:return`\\\\`;default:return t<=31||t===127?`\\u${t.toString(16).padStart(4,`0`)}`:e}}function formatLogfmtValue(e){return quoteLogfmtValue(stringifyLogfmtValue(e),typeof e==`string`)}function pushLogfmtPair(e,t,n){let r=filterLogfmtKey(t);r!=null&&e.push(`${r}=${formatLogfmtValue(n)}`)}function getLogfmtFormatter(e={}){let t=getLineEndingValue(e.lineEnding),n=createTimestampFormatter(`rfc3339`,resolveTimeZone(e.timeZone)),r=e.message===`template`,i=e.properties??`flatten`,joinCategory;if(typeof e.categorySeparator==`function`)joinCategory=e.categorySeparator;else{let t=e.categorySeparator??`.`;joinCategory=e=>e.join(t)}let a=``;if(i===`flatten`)a=``;else if(i.startsWith(`prepend:`)){if(a=i.substring(8),a===``)throw TypeError(`Invalid properties option: `+JSON.stringify(i)+`. It must be of the form "prepend:<prefix>" where <prefix> is a non-empty string.`)}else throw TypeError(`Invalid properties option: ${JSON.stringify(i)}. It must be "flatten" or "prepend:<prefix>".`);return e=>{let i=[];pushLogfmtPair(i,`time`,n(e.timestamp)),pushLogfmtPair(i,`level`,e.level),pushLogfmtPair(i,`logger`,joinCategory(e.category)),pushLogfmtPair(i,`msg`,renderStructuredMessage(e,r));for(let t in e.properties)Object.prototype.hasOwnProperty.call(e.properties,t)&&pushLogfmtPair(i,`${a}${t}`,e.properties[t]);return`${i.join(` `)}${t}`}}getLogfmtFormatter();const D={trace:`background-color: gray; color: white;`,debug:`background-color: gray; color: white;`,info:`background-color: white; color: black;`,warning:`background-color: orange; color: black;`,error:`background-color: red; color: white;`,fatal:`background-color: maroon; color: white;`};function defaultConsoleFormatter(e){let t=``,n=[];for(let r=0;r<e.message.length;r++)r%2==0?t+=e.message[r]:(t+=`%o`,n.push(e.message[r]));let r=new Date(e.timestamp);return[`%c${`${r.getUTCHours().toString().padStart(2,`0`)}:${r.getUTCMinutes().toString().padStart(2,`0`)}:${r.getUTCSeconds().toString().padStart(2,`0`)}.${r.getUTCMilliseconds().toString().padStart(3,`0`)}`} %c${v[e.level]}%c %c${e.category.join(`·`)} %c${t}`,`color: gray;`,D[e.level],`background-color: default;`,`color: gray;`,`color: default;`,...n]}function getConsoleSink(e={}){let t=e.formatter??defaultConsoleFormatter,n={trace:`debug`,debug:`debug`,info:`info`,warning:`warn`,error:`error`,fatal:`error`,...e.levelMap??{}},r=e.console??globalThis.console,baseSink=e=>{let i=t(e),a=n[e.level];if(a===void 0)throw TypeError(`Invalid log level: ${e.level}.`);if(typeof i==`string`){let e=i.replace(/\r?\n$/,``);r[a](e)}else r[a](...i)};if(!e.nonBlocking)return baseSink;let i=e.nonBlocking===!0?{}:e.nonBlocking,a=i.bufferSize??100,o=i.flushInterval??100,s=[],c=null,l=null,u=!1,d=!1,f=a*2;function flush(){if(s.length===0)return;let e=s.splice(0);for(let t of e)try{baseSink(t)}catch{}}function scheduleFlush(){d||(d=!0,l=setTimeout(()=>{l=null,d=!1,flush()},0))}function startFlushTimer(){c!==null||u||(c=setInterval(()=>{flush()},o))}let nonBlockingSink=e=>{u||(s.length>=f&&s.shift(),s.push(e),s.length>=a?scheduleFlush():c===null&&startFlushTimer())};return nonBlockingSink[Symbol.dispose]=()=>{u=!0,c!==null&&(clearInterval(c),c=null),l!==null&&(clearTimeout(l),l=null,d=!1),flush()},nonBlockingSink}let O=null,k=!1;const A=new Set,j=new Set,M=new Set,N=new Set,P=new Set;let unregisterDisposeHook;function isLoggerConfigMeta(e){let t=Array.isArray(e.category)?e.category:[e.category];return t.length===0||t.length===1&&t[0]===`logtape`||t.length===2&&t[0]===`logtape`&&t[1]===`meta`}function registerDisposeHook(e){unregisterDisposeHook?.(),unregisterDisposeHook=void 0;let t=e?disposeInternal:disposeSyncInternal;if(typeof globalThis.EdgeRuntime!=`string`&&`process`in globalThis&&!(`Deno`in globalThis)){let e=globalThis.process,n=e?.on;if(typeof n==`function`){n.call(e,`exit`,t),unregisterDisposeHook=()=>{let n=e?.off??e?.removeListener;typeof n==`function`&&n.call(e,`exit`,t)};return}}let n=globalThis.addEventListener;if(typeof n!=`function`)return;let r=globalThis.removeEventListener;`Deno`in globalThis?(n.call(globalThis,`unload`,t),typeof r==`function`&&(unregisterDisposeHook=()=>{r.call(globalThis,`unload`,t)})):(n.call(globalThis,`pagehide`,t),typeof r==`function`&&(unregisterDisposeHook=()=>{r.call(globalThis,`pagehide`,t)}))}function configureSync(e){runGlobalConfigMutationSync(`configureSync()`,()=>{if(O!=null&&!e.reset)throw new ConfigError(`Already configured; if you want to reset, turn on the reset flag.`);if(N.size>0||P.size>0)throw new ConfigError(`Previously configured async disposables are still active. Use configure() instead or explicitly dispose them using dispose().`);disposeSyncInternal(),resetInternal();try{configureInternal(e,!1)}catch(e){throw e instanceof ConfigError&&(disposeSyncInternal(),resetInternal()),e}})}function configureInternal(e,t){O=e;let n=!1,r=new Set;for(let t of e.loggers){isLoggerConfigMeta(t)&&(n=!0);let i=Array.isArray(t.category)?JSON.stringify(t.category):JSON.stringify([t.category]);if(r.has(i))throw new ConfigError(`Duplicate logger configuration for category: ${i}. Each category can only be configured once.`);r.add(i);let a=p.getLogger(t.category);for(let n of t.sinks??[]){let t=e.sinks[n];if(!t)throw new ConfigError(`Sink not found: ${n}.`);a.sinks.push(t)}a.parentSinks=t.parentSinks??`inherit`,t.lowestLevel!==void 0&&(a.lowestLevel=t.lowestLevel);for(let n of t.filters??[]){let t=e.filters?.[n];if(t===void 0)throw new ConfigError(`Filter not found: ${n}.`);a.filters.push(toFilter(t))}A.add(a)}p.getLogger().contextLocalStorage=e.contextLocalStorage;for(let n of Object.values(e.sinks)){if(Symbol.asyncDispose in n){if(t)P.add(n);else throw new ConfigError(`Async disposables cannot be used with configureSync().`)}Symbol.dispose in n&&M.add(n)}for(let n of Object.values(e.filters??{}))if(n!=null&&typeof n!=`string`){if(Symbol.asyncDispose in n){if(t)N.add(n);else throw new ConfigError(`Async disposables cannot be used with configureSync().`);P.delete(n)}Symbol.dispose in n&&(j.add(n),M.delete(n))}registerDisposeHook(t);let i=p.getLogger([`logtape`,`meta`]);n||i.sinks.push(getConsoleSink()),i.info(`LogTape loggers are configured. Note that LogTape itself uses the meta logger, which has category {metaLoggerCategory}. The meta logger is used to log internal diagnostics such as sink exceptions. It's recommended to configure the meta logger with a separate sink so that you can easily notice if logging itself fails or is misconfigured. To turn off this message, configure the meta logger with higher log levels than {dismissLevel}. See also <https://logtape.org/manual/categories#meta-logger>.`,{metaLoggerCategory:[`logtape`,`meta`],dismissLevel:`info`})}function resetInternal(){unregisterDisposeHook?.(),unregisterDisposeHook=void 0;let e=p.getLogger([]);e.resetDescendants(),delete e.contextLocalStorage,A.clear(),O=null}async function disposeInternal(){let e=[];try{disposeSyncFilters()}catch(t){e.push(t)}try{await disposeAsyncFilters()}catch(t){e.push(t)}try{disposeSyncSinks()}catch(t){e.push(t)}try{await disposeAsyncSinks()}catch(t){e.push(t)}throwDisposeErrors(e)}function disposeSyncInternal(){let e=[];try{disposeSyncFilters()}catch(t){e.push(t)}try{disposeSyncSinks()}catch(t){e.push(t)}throwDisposeErrors(e)}function runGlobalConfigMutationSync(e,t){assertCanMutateGlobalConfig(e),k=!0;try{return t()}finally{k=!1}}function assertCanMutateGlobalConfig(e){if(k)throw new ConfigError(`${e} cannot be called while LogTape is being reconfigured.`)}function disposeSyncFilters(){disposeSyncDisposables(j)}function disposeSyncSinks(){disposeSyncDisposables(M)}function disposeSyncDisposables(e){let t=[];try{for(let n of e)try{n[Symbol.dispose]()}catch(e){t.push(e)}finally{e.delete(n)}}finally{e.clear()}throwDisposeErrors(t)}async function disposeAsyncFilters(){await disposeAsyncDisposables(N)}async function disposeAsyncSinks(){await disposeAsyncDisposables(P)}async function disposeAsyncDisposables(e){let t=[];try{for(let n of e)try{t.push(Promise.resolve(n[Symbol.asyncDispose]()))}catch(e){t.push(Promise.reject(e))}finally{e.delete(n)}}finally{e.clear()}await settleDisposePromises(t)}async function settleDisposePromises(e){throwDisposeErrors((await Promise.allSettled(e)).filter(e=>e.status===`rejected`).map(e=>e.reason))}function throwDisposeErrors(e){if(!(e.length<1))throw e.length===1?e[0]:AggregateError(e,`Multiple errors occurred while disposing LogTape resources.`)}var ConfigError=class extends Error{constructor(e){super(e),this.name=`ConfigError`}};export{getTextFormatter as a,getAnsiColorFormatter as i,getConsoleSink as n,getLogger as o,defaultConsoleFormatter as r,configureSync as t};
|