@better-logger/core 0.5.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,3 +1,3 @@
1
- "use strict";var E=Object.defineProperty;var ee=Object.getOwnPropertyDescriptor;var te=Object.getOwnPropertyNames;var re=Object.prototype.hasOwnProperty;var ne=(e,t)=>{for(var r in t)E(e,r,{get:t[r],enumerable:!0})},oe=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of te(t))!re.call(e,i)&&i!==r&&E(e,i,{get:()=>t[i],enumerable:!(n=ee(t,i))||n.enumerable});return e};var ie=e=>oe(E({},"__esModule",{value:!0}),e);var Oe={};ne(Oe,{NOOP_FLOW:()=>l,NOOP_STEP:()=>m,better:()=>d,createFlow:()=>C,getRenderer:()=>P,isEnabled:()=>Q,normalizeError:()=>f,safeSerialize:()=>u,setClock:()=>X,setEnabled:()=>K,setIdGenerator:()=>V,setRenderer:()=>H,subscribe:()=>b,toJSON:()=>M});module.exports=ie(Oe);function f(e){return e===void 0?{name:"Error",message:"Unknown error"}:e instanceof Error?{name:e.name,message:e.message,stack:e.stack}:typeof e=="string"?{name:"Error",message:e}:{name:"Error",message:String(e)}}var S=class{constructor(t,r){this._trace=t;this._clock=r;this._completed=!1}get isCompleted(){return this._completed}get trace(){return this._trace}success(){this._completed||(this._completed=!0,this._trace.end=this._clock.now(),this._trace.state="completed",this._trace.status="success")}fail(t){this._completed||(this._completed=!0,this._trace.end=this._clock.now(),this._trace.state="completed",this._trace.status="error",this._trace.error=f(t))}};var g=()=>{},m={success:g,fail:g},l={step:()=>m,child:()=>l,tag:g,tags:()=>[],setContext:g,getContext:()=>({}),success:g,fail:g,run:(e,t)=>{try{let r=t();return r instanceof Promise?r:Promise.resolve(r)}catch(r){return Promise.reject(r)}}};function W(e){let t=new WeakMap;function r(n){if(n===null||typeof n!="object")return n;if(n instanceof Date)return new Date(n.getTime());if(n instanceof RegExp)return new RegExp(n.source,n.flags);if(t.has(n))return t.get(n);if(Array.isArray(n)){let s=[];t.set(n,s);for(let o=0;o<n.length;o++)s.push(r(n[o]));return s}let i={};t.set(n,i);for(let s of Object.keys(n))i[s]=r(n[s]);return i}return r(e)}function k(e){if(e===null||typeof e!="object")return e;if(Object.freeze(e),Array.isArray(e))for(let t of e)k(t);else for(let t of Object.keys(e)){let r=e[t];r&&typeof r=="object"&&!Object.isFrozen(r)&&k(r)}return e}function N(e){let t=W(e);return k(t)}var T=new Set;function b(e){return T.add(e),()=>{T.delete(e)}}function se(e){if(T.size!==0)for(let t of T)try{t(e)}catch{}}var y=class e{constructor(t,r,n,i,s){this._trace=t;this._clock=r;this._idGen=n;this._renderer=i;this._options=s;this._completed=!1;this._sequence=0}get isCompleted(){return this._completed}get trace(){return this._trace}step(t,r){if(this._completed)return m;let n=this._options.maxSteps;if(n!==void 0&&this._trace.steps.length>=n)return this._trace.meta===void 0?this._trace.meta={maxStepsExceeded:!0}:this._trace.meta.maxStepsExceeded=!0,m;let i={id:this._idGen.generate(),name:t,sequence:this._sequence++,state:"running",status:"pending",start:this._clock.now(),data:r,children:[]};return this._trace.steps.push(i),new S(i,this._clock)}child(t){if(this._completed)return l;if(this._options.enabled===!1)return l;let r={id:this._idGen.generate(),name:t,parentId:this._trace.id,state:"running",status:void 0,tags:[],start:this._clock.now(),context:{...this._trace.context},steps:[]};return new e(r,this._clock,this._idGen,this._renderer,{...this._options})}tag(t){this._completed||this._trace.tags.includes(t)||this._trace.tags.push(t)}tags(){return[...this._trace.tags]}setContext(t){this._completed||Object.assign(this._trace.context,t)}getContext(){return{...this._trace.context}}success(){this._finalize("success")}fail(t){this._trace.error=f(t),this._finalize("error")}run(t,r){if(this._completed)return Promise.resolve(r());let n=this.step(t);return Promise.resolve(r()).then(i=>(n.success(),i),i=>{throw n.fail(i),i})}_finalize(t){if(this._completed)return;this._completed=!0,this._trace.end=this._clock.now(),this._trace.state="completed",this._trace.status=t;let r=N(this._trace);se(r),this._renderer.render(r)}};var x=class{generate(){return Math.random().toString(36).slice(2,10)}};var h=class{now(){return Date.now()}};function u(e,t){let r=t?.maxDepth??2,n=t?.maxLength??80,i=new WeakSet;function s(o,c){if(typeof o=="function")return`[Fn:${o.name||"?"}]`;if(typeof o=="symbol")return o.toString();if(c>r)return o&&typeof o=="object"?"[...]":o;if(o===null||typeof o!="object")return o;if(o instanceof Map)return`{Map(${o.size})}`;if(o instanceof Set)return`{Set(${o.size})}`;if(o instanceof Date)return o.toISOString();if(o instanceof RegExp)return o.toString();if(i.has(o))return"[Circular]";if(i.add(o),Array.isArray(o))return o.map(p=>s(p,c+1));let _={};for(let p of Object.keys(o)){let $=o[p];_[p]=s($,c+1)}return _}try{let o=JSON.stringify(s(e,0));return o&&o.length>n?o.slice(0,n)+"\u2026":o}catch{return"[Unserializable]"}}var ae=()=>typeof process<"u"&&process.versions!==void 0&&process.versions.node!==void 0,le=()=>typeof EdgeRuntime<"u",ce=()=>typeof caches<"u"&&"default"in caches,de=()=>typeof window<"u"||typeof self<"u";function q(){return ae()?"node":le()||ce()?"edge":de()?"browser":"node"}var fe="\x1B[0m",ue="\x1B[32m",pe="\x1B[31m";var me="\x1B[36m";var ge="\x1B[2m";function we(){return!(q()==="browser"||typeof process<"u"&&process.env?.NO_COLOR)}var xe=we();function R(e,t){return xe?`${t}${e}${fe}`:e}function L(e){return R(e,ue)}function O(e){return R(e,pe)}function J(e){return R(e,me)}function I(e){return R(e,ge)}function U(e,t){if(t===void 0)return"\u2014";let r=Math.round(t-e);return r>=1e3?`${(r/1e3).toFixed(1)}s`:`${r}ms`}function B(e,t,r){let n=" ".repeat(t);r.push(`${n}${J("\u2192")} ${e.name}`),e.data!==void 0&&r.push(`${n} ${I("data:")} ${u(e.data,{maxLength:80})}`);let i=U(e.start,e.end);e.status==="success"?r.push(`${n}${L("\u2713")} ${e.name} (${i})`):e.status==="error"?r.push(`${n}${O("\u2717")} ${e.name} (error: ${e.error?.message??"Unknown error"})`):r.push(`${n} ${e.name} (${i})`);for(let s of e.children)B(s,t+1,r)}var F=class{constructor(){this.name="console"}render(t){let r=[],n=t.tags.length>0?` [${t.tags.join(", ")}]`:"",i=t.status==="error"?"\u{1F525}":"\u{1F680}";r.push(`${i} [flow:${t.name}]${n} (${I("tid:")} ${t.id})`);for(let c of t.steps)B(c,1,r);let s=U(t.start,t.end),o=t.meta?.maxStepsExceeded?` ${O("\u26A0\uFE0F maxSteps exceeded")}`:"";t.status==="error"?(r.push(`\u{1F3C1} [flow:${t.name}] ${O("failed")} (${s}, error: ${t.error?.message??"Unknown error"})${o}`),console.error(r.join(`
2
- `))):(r.push(`\u{1F3C1} [flow:${t.name}] ${L("success")} (${s})${o}`),console.log(r.join(`
3
- `)))}};var z=null;function H(e){z=e}function P(){return z}function Y(e){return z??e}var D=new x,G=new h,_e=new F,A=!0;function K(e){A=e}function Q(){return A}function V(e){D=e}function X(e){G=e}function C(e,t){if(!A)return l;let r=t?.sample??1;if(r<1&&Math.random()>r)return l;if(t?.enabled===!1)return l;let n=Y(_e),i={id:D.generate(),name:e,state:"running",tags:t?.tags??[],start:G.now(),context:t?.initialContext?{...t.initialContext}:{},steps:[]};return new y(i,G,D,n,t??{})}var w={idleTimeout:100,flowName:"default",defaultTags:[]},a=null;function Se(e){if(a&&e===void 0&&!a.completed)return a.flow;let t=e??w.flowName,r=C(t,{tags:[...w.defaultTags]});return a={flow:r,timer:null,lastError:null,completed:!1},r}function ke(){a&&(a.timer&&clearTimeout(a.timer),a.timer=setTimeout(()=>{Z()},w.idleTimeout))}function Z(){!a||a.completed||(a.timer&&(clearTimeout(a.timer),a.timer=null),a.completed=!0,a.lastError?a.flow.fail(a.lastError):a.flow.success(),a=null)}function Te(e){return e!==null&&typeof e=="object"&&("flow"in e||"tags"in e)}function v(e,t,r,n){let i,s;t===void 0?(i=void 0,s=void 0):Te(t)?r===void 0?(i=void 0,s=t):(i=void 0,s={...t,...r}):(i=t,s=r);let o=s?.flow,c=Se(o);if(s?.tags)for(let $ of s.tags)c.tag($);let _=n&&n!=="info"?`${e} [${n}]`:e,p=c.step(_,i);n==="error"?(p.fail(i),a.lastError=i,c.tag("error")):(p.success(),n&&n!=="info"&&c.tag(n)),ke()}var ye=(e,t,r)=>v(e,t,r),d=ye;d.info=(e,t,r)=>v(e,t,r,"info");d.warn=(e,t,r)=>v(e,t,r,"warn");d.error=(e,t,r)=>v(e,t,r,"error");d.setIdleTimeout=e=>{w.idleTimeout=e};d.setFlowName=e=>{w.flowName=e};d.setDefaultTags=e=>{w.defaultTags=e};d.activeFlow=()=>a?.flow??null;d.flush=()=>{Z()};function Re(e){return typeof e=="object"&&e!==null&&"trace"in e&&typeof e.trace=="object"&&e.trace!==null}function M(e){let t=Re(e)?e.trace:e;return JSON.stringify({version:1,flow:{id:t.id,name:t.name,...t.parentId!==void 0&&{parentId:t.parentId},state:t.state,...t.status!==void 0&&{status:t.status},tags:t.tags,start:t.start,...t.end!==void 0&&{end:t.end},...t.error!==void 0&&{error:t.error},context:t.context,steps:t.steps.map(j),...t.meta!==void 0&&{meta:t.meta}}},null,2)}function j(e){let t={id:e.id,name:e.name,sequence:e.sequence,state:e.state,status:e.status,start:e.start};return e.end!==void 0&&(t.end=e.end),e.data!==void 0&&(t.data=u(e.data)),e.error!==void 0&&(t.error=e.error),e.children.length>0&&(t.children=e.children.map(j)),t}0&&(module.exports={NOOP_FLOW,NOOP_STEP,better,createFlow,getRenderer,isEnabled,normalizeError,safeSerialize,setClock,setEnabled,setIdGenerator,setRenderer,subscribe,toJSON});
1
+ "use strict";var N=Object.defineProperty;var ee=Object.getOwnPropertyDescriptor;var te=Object.getOwnPropertyNames;var re=Object.prototype.hasOwnProperty;var ne=(e,t)=>{for(var r in t)N(e,r,{get:t[r],enumerable:!0})},oe=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of te(t))!re.call(e,i)&&i!==r&&N(e,i,{get:()=>t[i],enumerable:!(n=ee(t,i))||n.enumerable});return e};var ie=e=>oe(N({},"__esModule",{value:!0}),e);var Oe={};ne(Oe,{NOOP_FLOW:()=>l,NOOP_STEP:()=>m,better:()=>d,createFlow:()=>v,getRenderer:()=>D,isEnabled:()=>C,normalizeError:()=>f,safeSerialize:()=>u,setClock:()=>X,setEnabled:()=>Q,setIdGenerator:()=>V,setRenderer:()=>P,subscribe:()=>L,toJSON:()=>W});module.exports=ie(Oe);function f(e){return e===void 0?{name:"Error",message:"Unknown error"}:e instanceof Error?{name:e.name,message:e.message,stack:e.stack}:typeof e=="string"?{name:"Error",message:e}:{name:"Error",message:String(e)}}var S=class{constructor(t,r){this._trace=t;this._clock=r;this._completed=!1}get isCompleted(){return this._completed}get trace(){return this._trace}success(){this._completed||(this._completed=!0,this._trace.end=this._clock.now(),this._trace.state="completed",this._trace.status="success")}fail(t){this._completed||(this._completed=!0,this._trace.end=this._clock.now(),this._trace.state="completed",this._trace.status="error",this._trace.error=f(t))}};var g=()=>{},m={success:g,fail:g},l={step:()=>m,child:()=>l,tag:g,tags:()=>[],setContext:g,getContext:()=>({}),success:g,fail:g,run:(e,t)=>{try{let r=t();return r instanceof Promise?r:Promise.resolve(r)}catch(r){return Promise.reject(r)}}};function J(e){let t=new WeakMap;function r(n){if(n===null||typeof n!="object")return n;if(n instanceof Date)return new Date(n.getTime());if(n instanceof RegExp)return new RegExp(n.source,n.flags);if(t.has(n))return t.get(n);if(Array.isArray(n)){let s=[];t.set(n,s);for(let o=0;o<n.length;o++)s.push(r(n[o]));return s}let i={};t.set(n,i);for(let s of Object.keys(n))i[s]=r(n[s]);return i}return r(e)}function k(e){if(e===null||typeof e!="object")return e;if(Object.freeze(e),Array.isArray(e))for(let t of e)k(t);else for(let t of Object.keys(e)){let r=e[t];r&&typeof r=="object"&&!Object.isFrozen(r)&&k(r)}return e}function b(e){let t=J(e);return k(t)}var T=new Set;function L(e){return T.add(e),()=>{T.delete(e)}}function se(e){if(T.size!==0)for(let t of T)try{t(e)}catch{}}var y=class e{constructor(t,r,n,i,s){this._trace=t;this._clock=r;this._idGen=n;this._renderer=i;this._options=s;this._completed=!1;this._sequence=0}get isCompleted(){return this._completed}get trace(){return this._trace}step(t,r){if(this._completed)return m;let n=this._options.maxSteps;if(n!==void 0&&this._trace.steps.length>=n)return this._trace.meta===void 0?this._trace.meta={maxStepsExceeded:!0}:this._trace.meta.maxStepsExceeded=!0,m;let i={id:this._idGen.generate(),name:t,sequence:this._sequence++,state:"running",status:"pending",start:this._clock.now(),data:r,children:[]};return this._trace.steps.push(i),new S(i,this._clock)}child(t){if(this._completed)return l;if(this._options.enabled===!1)return l;let r={id:this._idGen.generate(),name:t,parentId:this._trace.id,state:"running",status:void 0,tags:[],start:this._clock.now(),context:{...this._trace.context},steps:[]};return new e(r,this._clock,this._idGen,this._renderer,{...this._options})}tag(t){this._completed||this._trace.tags.includes(t)||this._trace.tags.push(t)}tags(){return[...this._trace.tags]}setContext(t){this._completed||Object.assign(this._trace.context,t)}getContext(){return{...this._trace.context}}success(){this._finalize("success")}fail(t){this._trace.error=f(t),this._finalize("error")}run(t,r){if(this._completed)return Promise.resolve(r());let n=this.step(t);return Promise.resolve(r()).then(i=>(n.success(),i),i=>{throw n.fail(i),i})}_finalize(t){if(this._completed)return;this._completed=!0,this._trace.end=this._clock.now(),this._trace.state="completed",this._trace.status=t;let r=b(this._trace);se(r),this._renderer.render(r)}};var x=class{generate(){return Math.random().toString(36).slice(2,10)}};var h=class{now(){return Date.now()}};function u(e,t){let r=t?.maxDepth??2,n=t?.maxLength??80,i=new WeakSet;function s(o,c){if(typeof o=="function")return`[Fn:${o.name||"?"}]`;if(typeof o=="symbol")return o.toString();if(c>r)return o&&typeof o=="object"?"[...]":o;if(o===null||typeof o!="object")return o;if(o instanceof Map)return`{Map(${o.size})}`;if(o instanceof Set)return`{Set(${o.size})}`;if(o instanceof Date)return o.toISOString();if(o instanceof RegExp)return o.toString();if(i.has(o))return"[Circular]";if(i.add(o),Array.isArray(o))return o.map(p=>s(p,c+1));let _={};for(let p of Object.keys(o)){let E=o[p];_[p]=s(E,c+1)}return _}try{let o=JSON.stringify(s(e,0));return o&&o.length>n?o.slice(0,n)+"\u2026":o}catch{return"[Unserializable]"}}var ae=()=>typeof process<"u"&&process.versions!==void 0&&process.versions.node!==void 0,le=()=>typeof EdgeRuntime<"u",ce=()=>typeof caches<"u"&&"default"in caches,de=()=>typeof window<"u"||typeof self<"u";function q(){return ae()?"node":le()||ce()?"edge":de()?"browser":"node"}var fe="\x1B[0m",ue="\x1B[32m",pe="\x1B[31m";var me="\x1B[36m";var ge="\x1B[2m";function we(){return!(q()==="browser"||typeof process<"u"&&process.env?.NO_COLOR)}var xe=we();function R(e,t){return xe?`${t}${e}${fe}`:e}function z(e){return R(e,ue)}function O(e){return R(e,pe)}function U(e){return R(e,me)}function I(e){return R(e,ge)}function B(e,t){if(t===void 0)return"\u2014";let r=Math.round(t-e);return r>=1e3?`${(r/1e3).toFixed(1)}s`:`${r}ms`}function Y(e,t,r){let n=" ".repeat(t);r.push(`${n}${U("\u2192")} ${e.name}`),e.data!==void 0&&r.push(`${n} ${I("data:")} ${u(e.data,{maxLength:80})}`);let i=B(e.start,e.end);e.status==="success"?r.push(`${n}${z("\u2713")} ${e.name} (${i})`):e.status==="error"?r.push(`${n}${O("\u2717")} ${e.name} (error: ${e.error?.message??"Unknown error"})`):r.push(`${n} ${e.name} (${i})`);for(let s of e.children)Y(s,t+1,r)}var F=class{constructor(){this.name="console"}render(t){let r=[],n=t.tags.length>0?` [${t.tags.join(", ")}]`:"",i=t.status==="error"?"\u{1F525}":"\u{1F680}";r.push(`${i} [flow:${t.name}]${n} (${I("tid:")} ${t.id})`);for(let c of t.steps)Y(c,1,r);let s=B(t.start,t.end),o=t.meta?.maxStepsExceeded?` ${O("\u26A0\uFE0F maxSteps exceeded")}`:"";t.status==="error"?(r.push(`\u{1F3C1} [flow:${t.name}] ${O("failed")} (${s}, error: ${t.error?.message??"Unknown error"})${o}`),console.error(r.join(`
2
+ `))):(r.push(`\u{1F3C1} [flow:${t.name}] ${z("success")} (${s})${o}`),console.log(r.join(`
3
+ `)))}};var H=null;function P(e){H=e}function D(){return H}function K(e){return H??e}var G=new x,A=new h,_e=new F,M=!0;function Q(e){M=e}function C(){return M}function V(e){G=e}function X(e){A=e}function v(e,t){if(!M)return l;let r=t?.sample??1;if(r<1&&Math.random()>r)return l;if(t?.enabled===!1)return l;let n=K(_e),i={id:G.generate(),name:e,state:"running",tags:t?.tags??[],start:A.now(),context:t?.initialContext?{...t.initialContext}:{},steps:[]};return new y(i,A,G,n,t??{})}var w={idleTimeout:100,flowName:"default",defaultTags:[]},a=null;function Se(e){if(a&&e===void 0&&!a.completed)return a.flow;let t=e??w.flowName,r=v(t,{tags:[...w.defaultTags]});return a={flow:r,timer:null,lastError:null,completed:!1},r}function ke(){a&&(a.timer&&clearTimeout(a.timer),a.timer=setTimeout(()=>{Z()},w.idleTimeout))}function Z(){!a||a.completed||(a.timer&&(clearTimeout(a.timer),a.timer=null),a.completed=!0,a.lastError?a.flow.fail(a.lastError):a.flow.success(),a=null)}function Te(e){return e!==null&&typeof e=="object"&&("flow"in e||"tags"in e)}function $(e,t,r,n){if(!C())return;let i,s;t===void 0?(i=void 0,s=void 0):Te(t)?r===void 0?(i=void 0,s=t):(i=void 0,s={...t,...r}):(i=t,s=r);let o=s?.flow,c=Se(o);if(s?.tags)for(let E of s.tags)c.tag(E);let _=n&&n!=="info"?`${e} [${n}]`:e,p=c.step(_,i);n==="error"?(p.fail(i),a.lastError=i,c.tag("error")):(p.success(),n&&n!=="info"&&c.tag(n)),ke()}var ye=(e,t,r)=>$(e,t,r),d=ye;d.info=(e,t,r)=>$(e,t,r,"info");d.warn=(e,t,r)=>$(e,t,r,"warn");d.error=(e,t,r)=>$(e,t,r,"error");d.setIdleTimeout=e=>{w.idleTimeout=e};d.setFlowName=e=>{w.flowName=e};d.setDefaultTags=e=>{w.defaultTags=e};d.activeFlow=()=>a?.flow??null;d.flush=()=>{Z()};function Re(e){return typeof e=="object"&&e!==null&&"trace"in e&&typeof e.trace=="object"&&e.trace!==null}function W(e){let t=Re(e)?e.trace:e;return JSON.stringify({version:1,flow:{id:t.id,name:t.name,...t.parentId!==void 0&&{parentId:t.parentId},state:t.state,...t.status!==void 0&&{status:t.status},tags:t.tags,start:t.start,...t.end!==void 0&&{end:t.end},...t.error!==void 0&&{error:t.error},context:t.context,steps:t.steps.map(j),...t.meta!==void 0&&{meta:t.meta}}},null,2)}function j(e){let t={id:e.id,name:e.name,sequence:e.sequence,state:e.state,status:e.status,start:e.start};if(e.end!==void 0&&(t.end=e.end),e.data!==void 0)try{t.data=JSON.parse(u(e.data))}catch{t.data="[Circular or unserializable]"}return e.error!==void 0&&(t.error=e.error),e.children.length>0&&(t.children=e.children.map(j)),t}0&&(module.exports={NOOP_FLOW,NOOP_STEP,better,createFlow,getRenderer,isEnabled,normalizeError,safeSerialize,setClock,setEnabled,setIdGenerator,setRenderer,subscribe,toJSON});
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- function u(e){return e===void 0?{name:"Error",message:"Unknown error"}:e instanceof Error?{name:e.name,message:e.message,stack:e.stack}:typeof e=="string"?{name:"Error",message:e}:{name:"Error",message:String(e)}}var S=class{constructor(t,r){this._trace=t;this._clock=r;this._completed=!1}get isCompleted(){return this._completed}get trace(){return this._trace}success(){this._completed||(this._completed=!0,this._trace.end=this._clock.now(),this._trace.state="completed",this._trace.status="success")}fail(t){this._completed||(this._completed=!0,this._trace.end=this._clock.now(),this._trace.state="completed",this._trace.status="error",this._trace.error=u(t))}};var m=()=>{},g={success:m,fail:m},c={step:()=>g,child:()=>c,tag:m,tags:()=>[],setContext:m,getContext:()=>({}),success:m,fail:m,run:(e,t)=>{try{let r=t();return r instanceof Promise?r:Promise.resolve(r)}catch(r){return Promise.reject(r)}}};function P(e){let t=new WeakMap;function r(n){if(n===null||typeof n!="object")return n;if(n instanceof Date)return new Date(n.getTime());if(n instanceof RegExp)return new RegExp(n.source,n.flags);if(t.has(n))return t.get(n);if(Array.isArray(n)){let s=[];t.set(n,s);for(let o=0;o<n.length;o++)s.push(r(n[o]));return s}let i={};t.set(n,i);for(let s of Object.keys(n))i[s]=r(n[s]);return i}return r(e)}function k(e){if(e===null||typeof e!="object")return e;if(Object.freeze(e),Array.isArray(e))for(let t of e)k(t);else for(let t of Object.keys(e)){let r=e[t];r&&typeof r=="object"&&!Object.isFrozen(r)&&k(r)}return e}function $(e){let t=P(e);return k(t)}var T=new Set;function D(e){return T.add(e),()=>{T.delete(e)}}function Q(e){if(T.size!==0)for(let t of T)try{t(e)}catch{}}var y=class e{constructor(t,r,n,i,s){this._trace=t;this._clock=r;this._idGen=n;this._renderer=i;this._options=s;this._completed=!1;this._sequence=0}get isCompleted(){return this._completed}get trace(){return this._trace}step(t,r){if(this._completed)return g;let n=this._options.maxSteps;if(n!==void 0&&this._trace.steps.length>=n)return this._trace.meta===void 0?this._trace.meta={maxStepsExceeded:!0}:this._trace.meta.maxStepsExceeded=!0,g;let i={id:this._idGen.generate(),name:t,sequence:this._sequence++,state:"running",status:"pending",start:this._clock.now(),data:r,children:[]};return this._trace.steps.push(i),new S(i,this._clock)}child(t){if(this._completed)return c;if(this._options.enabled===!1)return c;let r={id:this._idGen.generate(),name:t,parentId:this._trace.id,state:"running",status:void 0,tags:[],start:this._clock.now(),context:{...this._trace.context},steps:[]};return new e(r,this._clock,this._idGen,this._renderer,{...this._options})}tag(t){this._completed||this._trace.tags.includes(t)||this._trace.tags.push(t)}tags(){return[...this._trace.tags]}setContext(t){this._completed||Object.assign(this._trace.context,t)}getContext(){return{...this._trace.context}}success(){this._finalize("success")}fail(t){this._trace.error=u(t),this._finalize("error")}run(t,r){if(this._completed)return Promise.resolve(r());let n=this.step(t);return Promise.resolve(r()).then(i=>(n.success(),i),i=>{throw n.fail(i),i})}_finalize(t){if(this._completed)return;this._completed=!0,this._trace.end=this._clock.now(),this._trace.state="completed",this._trace.status=t;let r=$(this._trace);Q(r),this._renderer.render(r)}};var x=class{generate(){return Math.random().toString(36).slice(2,10)}};var h=class{now(){return Date.now()}};function p(e,t){let r=t?.maxDepth??2,n=t?.maxLength??80,i=new WeakSet;function s(o,l){if(typeof o=="function")return`[Fn:${o.name||"?"}]`;if(typeof o=="symbol")return o.toString();if(l>r)return o&&typeof o=="object"?"[...]":o;if(o===null||typeof o!="object")return o;if(o instanceof Map)return`{Map(${o.size})}`;if(o instanceof Set)return`{Set(${o.size})}`;if(o instanceof Date)return o.toISOString();if(o instanceof RegExp)return o.toString();if(i.has(o))return"[Circular]";if(i.add(o),Array.isArray(o))return o.map(f=>s(f,l+1));let _={};for(let f of Object.keys(o)){let v=o[f];_[f]=s(v,l+1)}return _}try{let o=JSON.stringify(s(e,0));return o&&o.length>n?o.slice(0,n)+"\u2026":o}catch{return"[Unserializable]"}}var V=()=>typeof process<"u"&&process.versions!==void 0&&process.versions.node!==void 0,X=()=>typeof EdgeRuntime<"u",Z=()=>typeof caches<"u"&&"default"in caches,j=()=>typeof window<"u"||typeof self<"u";function G(){return V()?"node":X()||Z()?"edge":j()?"browser":"node"}var ee="\x1B[0m",te="\x1B[32m",re="\x1B[31m";var ne="\x1B[36m";var oe="\x1B[2m";function ie(){return!(G()==="browser"||typeof process<"u"&&process.env?.NO_COLOR)}var se=ie();function R(e,t){return se?`${t}${e}${ee}`:e}function E(e){return R(e,te)}function O(e){return R(e,re)}function A(e){return R(e,ne)}function N(e){return R(e,oe)}function M(e,t){if(t===void 0)return"\u2014";let r=Math.round(t-e);return r>=1e3?`${(r/1e3).toFixed(1)}s`:`${r}ms`}function W(e,t,r){let n=" ".repeat(t);r.push(`${n}${A("\u2192")} ${e.name}`),e.data!==void 0&&r.push(`${n} ${N("data:")} ${p(e.data,{maxLength:80})}`);let i=M(e.start,e.end);e.status==="success"?r.push(`${n}${E("\u2713")} ${e.name} (${i})`):e.status==="error"?r.push(`${n}${O("\u2717")} ${e.name} (error: ${e.error?.message??"Unknown error"})`):r.push(`${n} ${e.name} (${i})`);for(let s of e.children)W(s,t+1,r)}var F=class{constructor(){this.name="console"}render(t){let r=[],n=t.tags.length>0?` [${t.tags.join(", ")}]`:"",i=t.status==="error"?"\u{1F525}":"\u{1F680}";r.push(`${i} [flow:${t.name}]${n} (${N("tid:")} ${t.id})`);for(let l of t.steps)W(l,1,r);let s=M(t.start,t.end),o=t.meta?.maxStepsExceeded?` ${O("\u26A0\uFE0F maxSteps exceeded")}`:"";t.status==="error"?(r.push(`\u{1F3C1} [flow:${t.name}] ${O("failed")} (${s}, error: ${t.error?.message??"Unknown error"})${o}`),console.error(r.join(`
1
+ function u(e){return e===void 0?{name:"Error",message:"Unknown error"}:e instanceof Error?{name:e.name,message:e.message,stack:e.stack}:typeof e=="string"?{name:"Error",message:e}:{name:"Error",message:String(e)}}var S=class{constructor(t,r){this._trace=t;this._clock=r;this._completed=!1}get isCompleted(){return this._completed}get trace(){return this._trace}success(){this._completed||(this._completed=!0,this._trace.end=this._clock.now(),this._trace.state="completed",this._trace.status="success")}fail(t){this._completed||(this._completed=!0,this._trace.end=this._clock.now(),this._trace.state="completed",this._trace.status="error",this._trace.error=u(t))}};var m=()=>{},g={success:m,fail:m},c={step:()=>g,child:()=>c,tag:m,tags:()=>[],setContext:m,getContext:()=>({}),success:m,fail:m,run:(e,t)=>{try{let r=t();return r instanceof Promise?r:Promise.resolve(r)}catch(r){return Promise.reject(r)}}};function D(e){let t=new WeakMap;function r(n){if(n===null||typeof n!="object")return n;if(n instanceof Date)return new Date(n.getTime());if(n instanceof RegExp)return new RegExp(n.source,n.flags);if(t.has(n))return t.get(n);if(Array.isArray(n)){let s=[];t.set(n,s);for(let o=0;o<n.length;o++)s.push(r(n[o]));return s}let i={};t.set(n,i);for(let s of Object.keys(n))i[s]=r(n[s]);return i}return r(e)}function k(e){if(e===null||typeof e!="object")return e;if(Object.freeze(e),Array.isArray(e))for(let t of e)k(t);else for(let t of Object.keys(e)){let r=e[t];r&&typeof r=="object"&&!Object.isFrozen(r)&&k(r)}return e}function $(e){let t=D(e);return k(t)}var T=new Set;function G(e){return T.add(e),()=>{T.delete(e)}}function V(e){if(T.size!==0)for(let t of T)try{t(e)}catch{}}var y=class e{constructor(t,r,n,i,s){this._trace=t;this._clock=r;this._idGen=n;this._renderer=i;this._options=s;this._completed=!1;this._sequence=0}get isCompleted(){return this._completed}get trace(){return this._trace}step(t,r){if(this._completed)return g;let n=this._options.maxSteps;if(n!==void 0&&this._trace.steps.length>=n)return this._trace.meta===void 0?this._trace.meta={maxStepsExceeded:!0}:this._trace.meta.maxStepsExceeded=!0,g;let i={id:this._idGen.generate(),name:t,sequence:this._sequence++,state:"running",status:"pending",start:this._clock.now(),data:r,children:[]};return this._trace.steps.push(i),new S(i,this._clock)}child(t){if(this._completed)return c;if(this._options.enabled===!1)return c;let r={id:this._idGen.generate(),name:t,parentId:this._trace.id,state:"running",status:void 0,tags:[],start:this._clock.now(),context:{...this._trace.context},steps:[]};return new e(r,this._clock,this._idGen,this._renderer,{...this._options})}tag(t){this._completed||this._trace.tags.includes(t)||this._trace.tags.push(t)}tags(){return[...this._trace.tags]}setContext(t){this._completed||Object.assign(this._trace.context,t)}getContext(){return{...this._trace.context}}success(){this._finalize("success")}fail(t){this._trace.error=u(t),this._finalize("error")}run(t,r){if(this._completed)return Promise.resolve(r());let n=this.step(t);return Promise.resolve(r()).then(i=>(n.success(),i),i=>{throw n.fail(i),i})}_finalize(t){if(this._completed)return;this._completed=!0,this._trace.end=this._clock.now(),this._trace.state="completed",this._trace.status=t;let r=$(this._trace);V(r),this._renderer.render(r)}};var x=class{generate(){return Math.random().toString(36).slice(2,10)}};var h=class{now(){return Date.now()}};function p(e,t){let r=t?.maxDepth??2,n=t?.maxLength??80,i=new WeakSet;function s(o,l){if(typeof o=="function")return`[Fn:${o.name||"?"}]`;if(typeof o=="symbol")return o.toString();if(l>r)return o&&typeof o=="object"?"[...]":o;if(o===null||typeof o!="object")return o;if(o instanceof Map)return`{Map(${o.size})}`;if(o instanceof Set)return`{Set(${o.size})}`;if(o instanceof Date)return o.toISOString();if(o instanceof RegExp)return o.toString();if(i.has(o))return"[Circular]";if(i.add(o),Array.isArray(o))return o.map(f=>s(f,l+1));let _={};for(let f of Object.keys(o)){let v=o[f];_[f]=s(v,l+1)}return _}try{let o=JSON.stringify(s(e,0));return o&&o.length>n?o.slice(0,n)+"\u2026":o}catch{return"[Unserializable]"}}var X=()=>typeof process<"u"&&process.versions!==void 0&&process.versions.node!==void 0,Z=()=>typeof EdgeRuntime<"u",j=()=>typeof caches<"u"&&"default"in caches,ee=()=>typeof window<"u"||typeof self<"u";function A(){return X()?"node":Z()||j()?"edge":ee()?"browser":"node"}var te="\x1B[0m",re="\x1B[32m",ne="\x1B[31m";var oe="\x1B[36m";var ie="\x1B[2m";function se(){return!(A()==="browser"||typeof process<"u"&&process.env?.NO_COLOR)}var ae=se();function R(e,t){return ae?`${t}${e}${te}`:e}function E(e){return R(e,re)}function O(e){return R(e,ne)}function M(e){return R(e,oe)}function N(e){return R(e,ie)}function W(e,t){if(t===void 0)return"\u2014";let r=Math.round(t-e);return r>=1e3?`${(r/1e3).toFixed(1)}s`:`${r}ms`}function J(e,t,r){let n=" ".repeat(t);r.push(`${n}${M("\u2192")} ${e.name}`),e.data!==void 0&&r.push(`${n} ${N("data:")} ${p(e.data,{maxLength:80})}`);let i=W(e.start,e.end);e.status==="success"?r.push(`${n}${E("\u2713")} ${e.name} (${i})`):e.status==="error"?r.push(`${n}${O("\u2717")} ${e.name} (error: ${e.error?.message??"Unknown error"})`):r.push(`${n} ${e.name} (${i})`);for(let s of e.children)J(s,t+1,r)}var F=class{constructor(){this.name="console"}render(t){let r=[],n=t.tags.length>0?` [${t.tags.join(", ")}]`:"",i=t.status==="error"?"\u{1F525}":"\u{1F680}";r.push(`${i} [flow:${t.name}]${n} (${N("tid:")} ${t.id})`);for(let l of t.steps)J(l,1,r);let s=W(t.start,t.end),o=t.meta?.maxStepsExceeded?` ${O("\u26A0\uFE0F maxSteps exceeded")}`:"";t.status==="error"?(r.push(`\u{1F3C1} [flow:${t.name}] ${O("failed")} (${s}, error: ${t.error?.message??"Unknown error"})${o}`),console.error(r.join(`
2
2
  `))):(r.push(`\u{1F3C1} [flow:${t.name}] ${E("success")} (${s})${o}`),console.log(r.join(`
3
- `)))}};var b=null;function q(e){b=e}function J(){return b}function U(e){return b??e}var L=new x,I=new h,ce=new F,z=!0;function de(e){z=e}function fe(){return z}function ue(e){L=e}function pe(e){I=e}function H(e,t){if(!z)return c;let r=t?.sample??1;if(r<1&&Math.random()>r)return c;if(t?.enabled===!1)return c;let n=U(ce),i={id:L.generate(),name:e,state:"running",tags:t?.tags??[],start:I.now(),context:t?.initialContext?{...t.initialContext}:{},steps:[]};return new y(i,I,L,n,t??{})}var w={idleTimeout:100,flowName:"default",defaultTags:[]},a=null;function me(e){if(a&&e===void 0&&!a.completed)return a.flow;let t=e??w.flowName,r=H(t,{tags:[...w.defaultTags]});return a={flow:r,timer:null,lastError:null,completed:!1},r}function ge(){a&&(a.timer&&clearTimeout(a.timer),a.timer=setTimeout(()=>{B()},w.idleTimeout))}function B(){!a||a.completed||(a.timer&&(clearTimeout(a.timer),a.timer=null),a.completed=!0,a.lastError?a.flow.fail(a.lastError):a.flow.success(),a=null)}function we(e){return e!==null&&typeof e=="object"&&("flow"in e||"tags"in e)}function C(e,t,r,n){let i,s;t===void 0?(i=void 0,s=void 0):we(t)?r===void 0?(i=void 0,s=t):(i=void 0,s={...t,...r}):(i=t,s=r);let o=s?.flow,l=me(o);if(s?.tags)for(let v of s.tags)l.tag(v);let _=n&&n!=="info"?`${e} [${n}]`:e,f=l.step(_,i);n==="error"?(f.fail(i),a.lastError=i,l.tag("error")):(f.success(),n&&n!=="info"&&l.tag(n)),ge()}var xe=(e,t,r)=>C(e,t,r),d=xe;d.info=(e,t,r)=>C(e,t,r,"info");d.warn=(e,t,r)=>C(e,t,r,"warn");d.error=(e,t,r)=>C(e,t,r,"error");d.setIdleTimeout=e=>{w.idleTimeout=e};d.setFlowName=e=>{w.flowName=e};d.setDefaultTags=e=>{w.defaultTags=e};d.activeFlow=()=>a?.flow??null;d.flush=()=>{B()};function he(e){return typeof e=="object"&&e!==null&&"trace"in e&&typeof e.trace=="object"&&e.trace!==null}function Y(e){let t=he(e)?e.trace:e;return JSON.stringify({version:1,flow:{id:t.id,name:t.name,...t.parentId!==void 0&&{parentId:t.parentId},state:t.state,...t.status!==void 0&&{status:t.status},tags:t.tags,start:t.start,...t.end!==void 0&&{end:t.end},...t.error!==void 0&&{error:t.error},context:t.context,steps:t.steps.map(K),...t.meta!==void 0&&{meta:t.meta}}},null,2)}function K(e){let t={id:e.id,name:e.name,sequence:e.sequence,state:e.state,status:e.status,start:e.start};return e.end!==void 0&&(t.end=e.end),e.data!==void 0&&(t.data=p(e.data)),e.error!==void 0&&(t.error=e.error),e.children.length>0&&(t.children=e.children.map(K)),t}export{c as NOOP_FLOW,g as NOOP_STEP,d as better,H as createFlow,J as getRenderer,fe as isEnabled,u as normalizeError,p as safeSerialize,pe as setClock,de as setEnabled,ue as setIdGenerator,q as setRenderer,D as subscribe,Y as toJSON};
3
+ `)))}};var b=null;function q(e){b=e}function U(){return b}function B(e){return b??e}var L=new x,z=new h,de=new F,I=!0;function fe(e){I=e}function H(){return I}function ue(e){L=e}function pe(e){z=e}function P(e,t){if(!I)return c;let r=t?.sample??1;if(r<1&&Math.random()>r)return c;if(t?.enabled===!1)return c;let n=B(de),i={id:L.generate(),name:e,state:"running",tags:t?.tags??[],start:z.now(),context:t?.initialContext?{...t.initialContext}:{},steps:[]};return new y(i,z,L,n,t??{})}var w={idleTimeout:100,flowName:"default",defaultTags:[]},a=null;function me(e){if(a&&e===void 0&&!a.completed)return a.flow;let t=e??w.flowName,r=P(t,{tags:[...w.defaultTags]});return a={flow:r,timer:null,lastError:null,completed:!1},r}function ge(){a&&(a.timer&&clearTimeout(a.timer),a.timer=setTimeout(()=>{Y()},w.idleTimeout))}function Y(){!a||a.completed||(a.timer&&(clearTimeout(a.timer),a.timer=null),a.completed=!0,a.lastError?a.flow.fail(a.lastError):a.flow.success(),a=null)}function we(e){return e!==null&&typeof e=="object"&&("flow"in e||"tags"in e)}function C(e,t,r,n){if(!H())return;let i,s;t===void 0?(i=void 0,s=void 0):we(t)?r===void 0?(i=void 0,s=t):(i=void 0,s={...t,...r}):(i=t,s=r);let o=s?.flow,l=me(o);if(s?.tags)for(let v of s.tags)l.tag(v);let _=n&&n!=="info"?`${e} [${n}]`:e,f=l.step(_,i);n==="error"?(f.fail(i),a.lastError=i,l.tag("error")):(f.success(),n&&n!=="info"&&l.tag(n)),ge()}var xe=(e,t,r)=>C(e,t,r),d=xe;d.info=(e,t,r)=>C(e,t,r,"info");d.warn=(e,t,r)=>C(e,t,r,"warn");d.error=(e,t,r)=>C(e,t,r,"error");d.setIdleTimeout=e=>{w.idleTimeout=e};d.setFlowName=e=>{w.flowName=e};d.setDefaultTags=e=>{w.defaultTags=e};d.activeFlow=()=>a?.flow??null;d.flush=()=>{Y()};function he(e){return typeof e=="object"&&e!==null&&"trace"in e&&typeof e.trace=="object"&&e.trace!==null}function K(e){let t=he(e)?e.trace:e;return JSON.stringify({version:1,flow:{id:t.id,name:t.name,...t.parentId!==void 0&&{parentId:t.parentId},state:t.state,...t.status!==void 0&&{status:t.status},tags:t.tags,start:t.start,...t.end!==void 0&&{end:t.end},...t.error!==void 0&&{error:t.error},context:t.context,steps:t.steps.map(Q),...t.meta!==void 0&&{meta:t.meta}}},null,2)}function Q(e){let t={id:e.id,name:e.name,sequence:e.sequence,state:e.state,status:e.status,start:e.start};if(e.end!==void 0&&(t.end=e.end),e.data!==void 0)try{t.data=JSON.parse(p(e.data))}catch{t.data="[Circular or unserializable]"}return e.error!==void 0&&(t.error=e.error),e.children.length>0&&(t.children=e.children.map(Q)),t}export{c as NOOP_FLOW,g as NOOP_STEP,d as better,P as createFlow,U as getRenderer,H as isEnabled,u as normalizeError,p as safeSerialize,pe as setClock,fe as setEnabled,ue as setIdGenerator,q as setRenderer,G as subscribe,K as toJSON};
package/package.json CHANGED
@@ -52,5 +52,5 @@
52
52
  "@typescript-eslint/eslint-plugin": "8.58.0",
53
53
  "@types/node": "20.11.0"
54
54
  },
55
- "version": "0.5.0"
55
+ "version": "0.5.1"
56
56
  }