@visulima/pail 4.0.0-alpha.2 → 4.0.0-alpha.20

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.
Files changed (131) hide show
  1. package/CHANGELOG.md +355 -0
  2. package/LICENSE.md +148 -879
  3. package/README.md +323 -0
  4. package/dist/error.d.ts +103 -0
  5. package/dist/error.js +5 -0
  6. package/dist/index.browser.d.ts +557 -45
  7. package/dist/index.browser.js +19 -12
  8. package/dist/index.server.d.ts +724 -63
  9. package/dist/index.server.js +27 -529
  10. package/dist/middleware/elysia.d.ts +73 -0
  11. package/dist/middleware/elysia.js +1 -0
  12. package/dist/middleware/express.d.ts +88 -0
  13. package/dist/middleware/express.js +1 -0
  14. package/dist/middleware/fastify.d.ts +83 -0
  15. package/dist/middleware/fastify.js +1 -0
  16. package/dist/middleware/hono.d.ts +87 -0
  17. package/dist/middleware/hono.js +1 -0
  18. package/dist/middleware/next/handler.d.ts +103 -0
  19. package/dist/middleware/next/handler.js +1 -0
  20. package/dist/middleware/sveltekit.d.ts +125 -0
  21. package/dist/middleware/sveltekit.js +1 -0
  22. package/dist/object-tree.d.ts +67 -70
  23. package/dist/object-tree.js +2 -89
  24. package/dist/packem_shared/AbstractJsonReporter-D_Pb6kpB.js +1 -0
  25. package/dist/packem_shared/AbstractJsonReporter-PVC4ONf2.js +1 -0
  26. package/dist/packem_shared/JsonReporter-BEEmb0W4.js +2 -0
  27. package/dist/packem_shared/JsonReporter-CE-lw7R0.js +1 -0
  28. package/dist/packem_shared/PrettyReporter-CDv9n1Fy.js +5 -0
  29. package/dist/packem_shared/PrettyReporter-CuFxJm_o.js +44 -0
  30. package/dist/packem_shared/abstract-json-reporter.d-BAgznjyU.d.ts +61 -0
  31. package/dist/packem_shared/abstract-pretty-reporter-BpyhtAoN.js +33 -0
  32. package/dist/packem_shared/constants-DKfCaSUR.js +1 -0
  33. package/dist/packem_shared/constants-ep2nsfdy.js +1 -0
  34. package/dist/packem_shared/create-middleware-logger.d-CR3o6VDh.d.ts +47 -0
  35. package/dist/packem_shared/createPailError-53jAfQ-T.js +5 -0
  36. package/dist/packem_shared/headers-S8WyX-2m.js +1 -0
  37. package/dist/packem_shared/index-Dwp5v97D.js +1 -0
  38. package/dist/packem_shared/pailMiddleware-CWOJRmJq.js +1 -0
  39. package/dist/packem_shared/storage-DHM1EP2P.js +1 -0
  40. package/dist/packem_shared/types.d-BeLumqgD.d.ts +246 -0
  41. package/dist/packem_shared/types.d-Cz9S7jZh.d.ts +201 -0
  42. package/dist/packem_shared/types.d-xxE3FOD3.d.ts +229 -0
  43. package/dist/packem_shared/useLogger-qyZrjy4D.js +1 -0
  44. package/dist/packem_shared/wide-event.d-gb2-ks5w.d.ts +705 -0
  45. package/dist/packem_shared/write-console-log-based-on-level-DfD64owL.js +1 -0
  46. package/dist/packem_shared/write-stream-Dd4_PTcm.js +1 -0
  47. package/dist/processor/caller/caller-processor.d.ts +49 -47
  48. package/dist/processor/caller/caller-processor.js +1 -59
  49. package/dist/processor/environment-processor.d.ts +124 -0
  50. package/dist/processor/environment-processor.js +1 -0
  51. package/dist/processor/message-formatter-processor.d.ts +51 -50
  52. package/dist/processor/message-formatter-processor.js +1 -66
  53. package/dist/processor/opentelemetry-processor.d.ts +69 -66
  54. package/dist/processor/opentelemetry-processor.js +1 -52
  55. package/dist/processor/redact-processor.d.ts +60 -41
  56. package/dist/processor/redact-processor.js +1 -30
  57. package/dist/processor/sampling-processor.d.ts +112 -0
  58. package/dist/processor/sampling-processor.js +1 -0
  59. package/dist/reporter/file/json-file-reporter.d.ts +91 -42
  60. package/dist/reporter/file/json-file-reporter.js +2 -136
  61. package/dist/reporter/http/abstract-http-reporter.d.ts +213 -211
  62. package/dist/reporter/http/abstract-http-reporter.js +2 -435
  63. package/dist/reporter/http/http-reporter.d.ts +40 -36
  64. package/dist/reporter/http/http-reporter.edge-light.d.ts +430 -38
  65. package/dist/reporter/http/http-reporter.edge-light.js +2 -651
  66. package/dist/reporter/http/http-reporter.js +1 -13
  67. package/dist/reporter/json/index.browser.d.ts +98 -3
  68. package/dist/reporter/json/index.browser.js +1 -2
  69. package/dist/reporter/json/index.d.ts +51 -3
  70. package/dist/reporter/json/index.js +1 -2
  71. package/dist/reporter/pretty/index.browser.d.ts +105 -2
  72. package/dist/reporter/pretty/index.browser.js +1 -1
  73. package/dist/reporter/pretty/index.d.ts +150 -2
  74. package/dist/reporter/pretty/index.js +1 -1
  75. package/dist/reporter/simple/simple-reporter.server.d.ts +133 -18
  76. package/dist/reporter/simple/simple-reporter.server.js +8 -186
  77. package/dist/wide-event.d.ts +5 -0
  78. package/dist/wide-event.js +1 -0
  79. package/package.json +87 -37
  80. package/dist/constants.d.ts +0 -37
  81. package/dist/interactive/index.d.ts +0 -2
  82. package/dist/interactive/index.js +0 -2
  83. package/dist/interactive/interactive-manager.d.ts +0 -108
  84. package/dist/interactive/interactive-stream-hook.d.ts +0 -68
  85. package/dist/packem_shared/AbstractJsonReporter-BaZ33PlE.js +0 -204
  86. package/dist/packem_shared/InteractiveManager-CbE7d1kY.js +0 -172
  87. package/dist/packem_shared/InteractiveStreamHook-DiSubbJ1.js +0 -21
  88. package/dist/packem_shared/JsonReporter-BRw4skd5.js +0 -28
  89. package/dist/packem_shared/JsonReporter-VzgyLEYz.js +0 -58
  90. package/dist/packem_shared/PrettyReporter-C2wVB7yu.js +0 -222
  91. package/dist/packem_shared/PrettyReporter-DySIXBjQ.js +0 -169
  92. package/dist/packem_shared/abstract-pretty-reporter-Di_sdm2r.js +0 -50
  93. package/dist/packem_shared/constants-omsTHUWB.js +0 -119
  94. package/dist/packem_shared/format-label-De49vNPd.js +0 -1193
  95. package/dist/packem_shared/get-longest-label-C9PWeyKq.js +0 -9
  96. package/dist/packem_shared/index-BomQ3E6J.js +0 -650
  97. package/dist/packem_shared/index-EZ_WSQZS.js +0 -1146
  98. package/dist/packem_shared/interactive-stream-hook-DG4BtN12.js +0 -141
  99. package/dist/packem_shared/pail.browser-u2CSR_af.js +0 -1427
  100. package/dist/packem_shared/write-console-log-based-on-level-DBmRYXpj.js +0 -14
  101. package/dist/packem_shared/write-stream-BG8fhcs3.js +0 -6
  102. package/dist/pail.browser.d.ts +0 -412
  103. package/dist/pail.server.d.ts +0 -233
  104. package/dist/processor/caller/get-caller-filename.d.ts +0 -23
  105. package/dist/progress-bar.d.ts +0 -136
  106. package/dist/progress-bar.js +0 -404
  107. package/dist/reporter/file/utils/rotating-file-stream.d.ts +0 -48
  108. package/dist/reporter/http/utils/compression.d.ts +0 -7
  109. package/dist/reporter/http/utils/log-size-error.d.ts +0 -30
  110. package/dist/reporter/http/utils/retry.d.ts +0 -27
  111. package/dist/reporter/json/abstract-json-reporter.d.ts +0 -61
  112. package/dist/reporter/json/json-reporter.browser.d.ts +0 -40
  113. package/dist/reporter/json/json-reporter.server.d.ts +0 -50
  114. package/dist/reporter/pretty/abstract-pretty-reporter.d.ts +0 -83
  115. package/dist/reporter/pretty/pretty-reporter.browser.d.ts +0 -36
  116. package/dist/reporter/pretty/pretty-reporter.server.d.ts +0 -70
  117. package/dist/reporter/raw/raw-reporter.browser.d.ts +0 -5
  118. package/dist/reporter/raw/raw-reporter.server.d.ts +0 -13
  119. package/dist/reporter/utils/default-inspector-config.d.ts +0 -3
  120. package/dist/reporter/utils/format-label.d.ts +0 -3
  121. package/dist/spinner.d.ts +0 -220
  122. package/dist/spinner.js +0 -2150
  123. package/dist/types.d.ts +0 -241
  124. package/dist/utils/ansi-escapes.d.ts +0 -4
  125. package/dist/utils/arrayify.d.ts +0 -2
  126. package/dist/utils/get-longest-badge.d.ts +0 -4
  127. package/dist/utils/get-longest-label.d.ts +0 -4
  128. package/dist/utils/merge-types.d.ts +0 -4
  129. package/dist/utils/stream/safe-stream-handler.d.ts +0 -21
  130. package/dist/utils/write-console-log-based-on-level.d.ts +0 -4
  131. package/dist/utils/write-stream.d.ts +0 -2
@@ -1,533 +1,31 @@
1
- import { createRequire as __cjs_createRequire } from "node:module";
1
+ var Ge=Object.defineProperty;var m=(t,e)=>Ge(t,"name",{value:e,configurable:!0});import{createRequire as ze}from"node:module";import{InteractiveManager as We,InteractiveStreamHook as Oe}from"@visulima/interactive-manager";import{L as Ue,s as le,E as Ye,a as we,p as ce,i as De,A as Qe,u as Ke,O as Xe,b as Ze,o as ne,c as et,d as tt,B as rt,G as ge}from"./packem_shared/abstract-pretty-reporter-BpyhtAoN.js";import Ce from"@visulima/colorize";import{PailError as Jr,createPailError as Vr}from"./packem_shared/createPailError-53jAfQ-T.js";const Br=ze(import.meta.url),He=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,{stdout:ve,stderr:Se,env:se}=He,st="\x1B",M="\x1B[",Re=";";var it=Object.defineProperty,ot=m((t,e)=>it(t,"name",{value:e,configurable:!0}),"t$3"),nt=Object.defineProperty,at=ot((t,e)=>nt(t,"name",{value:e,configurable:!0}),"t");const lt=typeof globalThis<"u"&&typeof globalThis.window=="object"&&globalThis.window.document!==void 0,ct=/^(?:msys|cygwin)$/,ft=!lt&&(process.platform==="win32"||ct.test(process.env.OSTYPE));var ut=Object.defineProperty,D=at((t,e)=>ut(t,"name",{value:e,configurable:!0}),"n");const gt=D((t=1)=>`${M}${String(t)}D`,"cursorBackward");D((t=1)=>`${M}${String(t)}B`,"cursorDown");D((t=1)=>`${M}${String(t)}C`,"cursorForward");const ht=`${M}G`;D((t=1)=>gt(t),"cursorLeft");const dt=D((t=1)=>`${M}${String(t)}G`,"cursorHorizontalAbsolute");D((t,e)=>{let r="";return t<0?r+=`${M}${String(-t)}D`:t>0&&(r+=`${M}${String(t)}C`),e<0?r+=`${M}${String(-e)}A`:e>0&&(r+=`${M}${String(e)}B`),r},"cursorMove");D((t=1)=>`${M}${String(t)}E`,"cursorNextLine");D((t=1)=>`${M}${String(t)}F`,"cursorPreviousLine");const pt=D((t,e)=>e===void 0?dt(t+1):`${M}${String(e+1)}${Re}${String(t+1)}H`,"cursorTo");D((t,e)=>e===void 0?`${M}${String(t)}H`:`${M}${String(t)}${Re}${String(e)}H`,"cursorPosition");D((t=1)=>`${M}${String(t)}I`,"cursorHorizontalForwardTab");D((t=1)=>`${M}${String(t)}Z`,"cursorBackwardTab");D((t=1)=>`${M}${String(t)}X`,"eraseCharacter");D((t=1)=>`${M}${String(t)}d`,"cursorVerticalAbsolute");const mt=D((t=1)=>`${M}${String(t)}A`,"cursorUp");var bt=(t=>(t[t.Default=0]="Default",t[t.BlinkingBlock=1]="BlinkingBlock",t[t.SteadyBlock=2]="SteadyBlock",t[t.BlinkingUnderline=3]="BlinkingUnderline",t[t.SteadyUnderline=4]="SteadyUnderline",t[t.BlinkingBar=5]="BlinkingBar",t[t.SteadyBar=6]="SteadyBar",t))(bt||{});D(t=>`${M}${String(t)} q`,"setCursorStyle");var yt=Object.defineProperty,$t=m((t,e)=>yt(t,"name",{value:e,configurable:!0}),"o$3"),vt=Object.defineProperty,St=$t((t,e)=>vt(t,"name",{value:e,configurable:!0}),"s"),wt=Object.defineProperty,xe=St((t,e)=>wt(t,"name",{value:e,configurable:!0}),"o"),Z=(t=>(t[t.ToEnd=0]="ToEnd",t[t.ToBeginning=1]="ToBeginning",t[t.EntireScreen=2]="EntireScreen",t[t.EntireScreenAndScrollback=3]="EntireScreenAndScrollback",t))(Z||{});const U=xe(t=>{const e=t>=0&&t<=3?t:0;return`${M}${e===0?"":String(e)}J`},"eraseDisplay");var Ie=(t=>(t[t.ToEnd=0]="ToEnd",t[t.ToBeginning=1]="ToBeginning",t[t.EntireLine=2]="EntireLine",t))(Ie||{});const ue=xe(t=>{const e=t>=0&&t<=2?t:0;return`${M}${e===0?"":String(e)}K`},"eraseInLine");U(0);const xt=ue(2);ue(0);ue(1);xe(t=>{if(t<=0)return"";let e="";for(let r=0;r<t;r+=1)e+=xt,r<t-1&&(e+=mt());return e+=ht,e},"eraseLines");U(2);U(1);U(3);pt(0,0)+U(Z.ToEnd);`${ue(Ie.EntireLine)}${M}`;`${M}${U(Z.EntireScreen)}`;const Ee=ft?`${U(Z.EntireScreen)}${M}0f`:`${U(Z.EntireScreen)}${U(Z.EntireScreenAndScrollback)}${M}H${st}c`;var Lt=Object.defineProperty,ee=m((t,e)=>Lt(t,"name",{value:e,configurable:!0}),"t$2");function Fe(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}m(Fe,"getDefaultExportFromCjs");ee(Fe,"getDefaultExportFromCjs");function Tt(t){return t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}m(Tt,"getDefaultExportFromNamespaceIfPresent");ee(Tt,"getDefaultExportFromNamespaceIfPresent");function kt(t){return t&&Object.prototype.hasOwnProperty.call(t,"default")&&Object.keys(t).length===1?t.default:t}m(kt,"getDefaultExportFromNamespaceIfNotNamed");ee(kt,"getDefaultExportFromNamespaceIfNotNamed");function Mt(t){if(Object.prototype.hasOwnProperty.call(t,"__esModule"))return t;var e=t.default;if(typeof e=="function"){var r=ee(m(function s(){var i=!1;try{i=this instanceof s}catch{}return i?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)},"a"),"a");r.prototype=e.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(t).forEach(function(s){var i=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(r,s,i.get?i:{enumerable:!0,get:ee(function(){return t[s]},"get")})}),r}m(Mt,"getAugmentedNamespace");ee(Mt,"getAugmentedNamespace");var ae={exports:{}},je;function Ot(){return je||(je=1,(function(t,e){var r=Object.defineProperty,s=m((f,c)=>r(f,"name",{value:c,configurable:!0}),"$");const{hasOwnProperty:i}=Object.prototype,a=Q();a.configure=Q,a.stringify=a,a.default=a,e.stringify=a,e.configure=Q,t.exports=a;const u=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;function n(f){return f.length<5e3&&!u.test(f)?`"${f}"`:JSON.stringify(f)}m(n,"strEscape"),s(n,"strEscape");function g(f,c){if(f.length>200||c)return f.sort(c);for(let $=1;$<f.length;$++){const N=f[$];let T=$;for(;T!==0&&f[T-1]>N;)f[T]=f[T-1],T--;f[T]=N}return f}m(g,"sort"),s(g,"sort");const y=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function l(f){return y.call(f)!==void 0&&f.length!==0}m(l,"isTypedArrayWithEntries"),s(l,"isTypedArrayWithEntries");function p(f,c,$){f.length<$&&($=f.length);const N=c===","?"":" ";let T=`"0":${N}${f[0]}`;for(let P=1;P<$;P++)T+=`${c}"${P}":${N}${f[P]}`;return T}m(p,"stringifyTypedArray"),s(p,"stringifyTypedArray");function d(f){if(i.call(f,"circularValue")){const c=f.circularValue;if(typeof c=="string")return`"${c}"`;if(c==null)return c;if(c===Error||c===TypeError)return{toString(){throw new TypeError("Converting circular structure to JSON")}};throw new TypeError('The "circularValue" argument must be of type string or the value null or undefined')}return'"[Circular]"'}m(d,"getCircularValueOption"),s(d,"getCircularValueOption");function E(f){let c;if(i.call(f,"deterministic")&&(c=f.deterministic,typeof c!="boolean"&&typeof c!="function"))throw new TypeError('The "deterministic" argument must be of type boolean or comparator function');return c===void 0?!0:c}m(E,"getDeterministicOption"),s(E,"getDeterministicOption");function q(f,c){let $;if(i.call(f,c)&&($=f[c],typeof $!="boolean"))throw new TypeError(`The "${c}" argument must be of type boolean`);return $===void 0?!0:$}m(q,"getBooleanOption"),s(q,"getBooleanOption");function z(f,c){let $;if(i.call(f,c)){if($=f[c],typeof $!="number")throw new TypeError(`The "${c}" argument must be of type number`);if(!Number.isInteger($))throw new TypeError(`The "${c}" argument must be an integer`);if($<1)throw new RangeError(`The "${c}" argument must be >= 1`)}return $===void 0?1/0:$}m(z,"getPositiveIntegerOption"),s(z,"getPositiveIntegerOption");function R(f){return f===1?"1 item":`${f} items`}m(R,"getItemCount"),s(R,"getItemCount");function F(f){const c=new Set;for(const $ of f)(typeof $=="string"||typeof $=="number")&&c.add(String($));return c}m(F,"getUniqueReplacerSet"),s(F,"getUniqueReplacerSet");function Y(f){if(i.call(f,"strict")){const c=f.strict;if(typeof c!="boolean")throw new TypeError('The "strict" argument must be of type boolean');if(c)return $=>{let N=`Object can not safely be stringified. Received type ${typeof $}`;throw typeof $!="function"&&(N+=` (${$.toString()})`),new Error(N)}}}m(Y,"getStrictOption"),s(Y,"getStrictOption");function Q(f){f={...f};const c=Y(f);c&&(f.bigint===void 0&&(f.bigint=!1),"circularValue"in f||(f.circularValue=Error));const $=d(f),N=q(f,"bigint"),T=E(f),P=typeof T=="function"?T:void 0,J=z(f,"maximumDepth"),O=z(f,"maximumBreadth");function te(_,o,h,w,v,x){let b=o[_];switch(typeof b=="object"&&b!==null&&typeof b.toJSON=="function"&&(b=b.toJSON(_)),b=w.call(o,_,b),typeof b){case"string":return n(b);case"object":{if(b===null)return"null";if(h.indexOf(b)!==-1)return $;let S="",j=",";const A=x;if(Array.isArray(b)){if(b.length===0)return"[]";if(J<h.length+1)return'"[Array]"';h.push(b),v!==""&&(x+=v,S+=`
2
+ ${x}`,j=`,
3
+ ${x}`);const I=Math.min(b.length,O);let H=0;for(;H<I-1;H++){const oe=te(String(H),b,h,w,v,x);S+=oe!==void 0?oe:"null",S+=j}const W=te(String(H),b,h,w,v,x);if(S+=W!==void 0?W:"null",b.length-1>O){const oe=b.length-O-1;S+=`${j}"... ${R(oe)} not stringified"`}return v!==""&&(S+=`
4
+ ${A}`),h.pop(),`[${S}]`}let k=Object.keys(b);const B=k.length;if(B===0)return"{}";if(J<h.length+1)return'"[Object]"';let L="",C="";v!==""&&(x+=v,j=`,
5
+ ${x}`,L=" ");const V=Math.min(B,O);T&&!l(b)&&(k=g(k,P)),h.push(b);for(let I=0;I<V;I++){const H=k[I],W=te(H,b,h,w,v,x);W!==void 0&&(S+=`${C}${n(H)}:${L}${W}`,C=j)}if(B>O){const I=B-O;S+=`${C}"...":${L}"${R(I)} not stringified"`,C=j}return v!==""&&C.length>1&&(S=`
6
+ ${x}${S}
7
+ ${A}`),h.pop(),`{${S}}`}case"number":return isFinite(b)?String(b):c?c(b):"null";case"boolean":return b===!0?"true":"false";case"undefined":return;case"bigint":if(N)return String(b);default:return c?c(b):void 0}}m(te,"J"),s(te,"stringifyFnReplacer");function re(_,o,h,w,v,x){switch(typeof o=="object"&&o!==null&&typeof o.toJSON=="function"&&(o=o.toJSON(_)),typeof o){case"string":return n(o);case"object":{if(o===null)return"null";if(h.indexOf(o)!==-1)return $;const b=x;let S="",j=",";if(Array.isArray(o)){if(o.length===0)return"[]";if(J<h.length+1)return'"[Array]"';h.push(o),v!==""&&(x+=v,S+=`
8
+ ${x}`,j=`,
9
+ ${x}`);const B=Math.min(o.length,O);let L=0;for(;L<B-1;L++){const V=re(String(L),o[L],h,w,v,x);S+=V!==void 0?V:"null",S+=j}const C=re(String(L),o[L],h,w,v,x);if(S+=C!==void 0?C:"null",o.length-1>O){const V=o.length-O-1;S+=`${j}"... ${R(V)} not stringified"`}return v!==""&&(S+=`
10
+ ${b}`),h.pop(),`[${S}]`}h.push(o);let A="";v!==""&&(x+=v,j=`,
11
+ ${x}`,A=" ");let k="";for(const B of w){const L=re(B,o[B],h,w,v,x);L!==void 0&&(S+=`${k}${n(B)}:${A}${L}`,k=j)}return v!==""&&k.length>1&&(S=`
12
+ ${x}${S}
13
+ ${b}`),h.pop(),`{${S}}`}case"number":return isFinite(o)?String(o):c?c(o):"null";case"boolean":return o===!0?"true":"false";case"undefined":return;case"bigint":if(N)return String(o);default:return c?c(o):void 0}}m(re,"I"),s(re,"stringifyArrayReplacer");function K(_,o,h,w,v){switch(typeof o){case"string":return n(o);case"object":{if(o===null)return"null";if(typeof o.toJSON=="function"){if(o=o.toJSON(_),typeof o!="object")return K(_,o,h,w,v);if(o===null)return"null"}if(h.indexOf(o)!==-1)return $;const x=v;if(Array.isArray(o)){if(o.length===0)return"[]";if(J<h.length+1)return'"[Array]"';h.push(o),v+=w;let L=`
14
+ ${v}`;const C=`,
15
+ ${v}`,V=Math.min(o.length,O);let I=0;for(;I<V-1;I++){const W=K(String(I),o[I],h,w,v);L+=W!==void 0?W:"null",L+=C}const H=K(String(I),o[I],h,w,v);if(L+=H!==void 0?H:"null",o.length-1>O){const W=o.length-O-1;L+=`${C}"... ${R(W)} not stringified"`}return L+=`
16
+ ${x}`,h.pop(),`[${L}]`}let b=Object.keys(o);const S=b.length;if(S===0)return"{}";if(J<h.length+1)return'"[Object]"';v+=w;const j=`,
17
+ ${v}`;let A="",k="",B=Math.min(S,O);l(o)&&(A+=p(o,j,O),b=b.slice(o.length),B-=o.length,k=j),T&&(b=g(b,P)),h.push(o);for(let L=0;L<B;L++){const C=b[L],V=K(C,o[C],h,w,v);V!==void 0&&(A+=`${k}${n(C)}: ${V}`,k=j)}if(S>O){const L=S-O;A+=`${k}"...": "${R(L)} not stringified"`,k=j}return k!==""&&(A=`
18
+ ${v}${A}
19
+ ${x}`),h.pop(),`{${A}}`}case"number":return isFinite(o)?String(o):c?c(o):"null";case"boolean":return o===!0?"true":"false";case"undefined":return;case"bigint":if(N)return String(o);default:return c?c(o):void 0}}m(K,"V"),s(K,"stringifyIndent");function X(_,o,h){switch(typeof o){case"string":return n(o);case"object":{if(o===null)return"null";if(typeof o.toJSON=="function"){if(o=o.toJSON(_),typeof o!="object")return X(_,o,h);if(o===null)return"null"}if(h.indexOf(o)!==-1)return $;let w="";const v=o.length!==void 0;if(v&&Array.isArray(o)){if(o.length===0)return"[]";if(J<h.length+1)return'"[Array]"';h.push(o);const A=Math.min(o.length,O);let k=0;for(;k<A-1;k++){const L=X(String(k),o[k],h);w+=L!==void 0?L:"null",w+=","}const B=X(String(k),o[k],h);if(w+=B!==void 0?B:"null",o.length-1>O){const L=o.length-O-1;w+=`,"... ${R(L)} not stringified"`}return h.pop(),`[${w}]`}let x=Object.keys(o);const b=x.length;if(b===0)return"{}";if(J<h.length+1)return'"[Object]"';let S="",j=Math.min(b,O);v&&l(o)&&(w+=p(o,",",O),x=x.slice(o.length),j-=o.length,S=","),T&&(x=g(x,P)),h.push(o);for(let A=0;A<j;A++){const k=x[A],B=X(k,o[k],h);B!==void 0&&(w+=`${S}${n(k)}:${B}`,S=",")}if(b>O){const A=b-O;w+=`${S}"...":"${R(A)} not stringified"`}return h.pop(),`{${w}}`}case"number":return isFinite(o)?String(o):c?c(o):"null";case"boolean":return o===!0?"true":"false";case"undefined":return;case"bigint":if(N)return String(o);default:return c?c(o):void 0}}m(X,"N"),s(X,"stringifySimple");function Me(_,o,h){if(arguments.length>1){let w="";if(typeof h=="number"?w=" ".repeat(Math.min(h,10)):typeof h=="string"&&(w=h.slice(0,10)),o!=null){if(typeof o=="function")return te("",{"":_},[],o,w,"");if(Array.isArray(o))return re("",_,[],F(o),w,"")}if(w.length!==0)return K("",_,[],w,"")}return X("",_,[])}return m(Me,"M"),s(Me,"stringify"),Me}m(Q,"configure"),s(Q,"configure")})(ae,ae.exports)),ae.exports}m(Ot,"requireSafeStableStringify");var Et=Ot();const jt=Fe(Et),At=jt.configure;var Pt=Object.defineProperty,Bt=m((t,e)=>Pt(t,"name",{value:e,configurable:!0}),"o$1");const Nt=Bt(t=>{const e=console;return t==="error"?e.__error??console.error:t==="warn"?e.__warn??console.warn:t==="trace"?e.__trace??console.trace:e.__log??console.log},"writeConsoleLogBasedOnLevel");var _t=Object.defineProperty,Dt=m((t,e)=>_t(t,"name",{value:e,configurable:!0}),"t");let Ct=class{static{m(this,"a")}static{Dt(this,"RawReporter")}log(e){const{context:r=[],message:s,type:i}=e;Nt(i.level)(s,...r)}};var Rt=Object.defineProperty,It=m((t,e)=>Rt(t,"name",{value:e,configurable:!0}),"a");const me=It(t=>t===void 0?[]:Array.isArray(t)?t:[t],"arrayify");var Ft=Object.defineProperty,qt=m((t,e)=>Ft(t,"name",{value:e,configurable:!0}),"g$2");const be=qt((t,e)=>{const r={...t};return Object.keys(e).forEach(s=>{r[s]={...r[s],...e[s]}}),r},"mergeTypes");var Jt=Object.defineProperty,ye=m((t,e)=>Jt(t,"name",{value:e,configurable:!0}),"d");const Vt=ye(t=>{let e=!1;return function(...r){if(!e){e=!0;try{const s=t.apply(this,r);return e=!1,s}catch(s){throw e=!1,s}}}},"preventLoop");class Le{static{m(this,"PailBrowserImpl")}static{ye(this,"PailBrowserImpl")}timersMap;countMap;seqTimers;lastLog;logLevels;disabled;paused;messageQueue;scopeName;types;longestLabel;processors;generalLogLevel;reporters;throttle;throttleMin;stringify;groups;startTimerMessage;endTimerMessage;rawReporter;force={};constructor(e){this.throttle=e.throttle??1e3,this.throttleMin=e.throttleMin??5;const r=e.parentLongestLabel,s=e.parentTypes,i=e.parentStringify,a=e.parentLogLevels;this.stringify=i??At({strict:!0}),this.startTimerMessage=e.messages?.timerStart??"Initialized timer...",this.endTimerMessage=e.messages?.timerEnd??"Timer run for:",s&&r?(this.types=s,this.longestLabel=r):(this.types=be(Ue,e.types??{}),this.longestLabel=le(this.types)),this.logLevels=a&&!e.logLevels?a:{...Ye,...e.logLevels},this.generalLogLevel=this.#e(e.logLevel),this.reporters=new Set,this.processors=new Set,this.disabled=e.disabled??!1,this.paused=!1,this.messageQueue=[],this.scopeName=me(e.scope).filter(Boolean),this.timersMap=new Map,this.countMap=new Map,this.groups=[],this.seqTimers=new Set,this.lastLog={},this.logger=Vt(this.logger.bind(this)),this.#r(),Array.isArray(e.reporters)&&this.registerReporters(e.reporters),this.rawReporter=this.extendReporter(e.rawReporter??new Ct),Array.isArray(e.processors)&&this.registerProcessors(e.processors)}#r(){for(const e in this.types)this[e]=this.logger.bind(this,e,!1,!1);for(const e in this.types)this.force[e]=this.logger.bind(this,e,!1,!0);this.raw=this.raw.bind(this)}wrapConsole(){for(const e in this.types)console[`__${e}`]||(console[`__${e}`]=console[e]),console[e]=this[e]}restoreConsole(){for(const e in this.types)console[`__${e}`]&&(console[e]=console[`__${e}`],delete console[`__${e}`])}wrapException(){process.on("uncaughtException",e=>{this.error(e)}),process.on("unhandledRejection",e=>{this.error(e)})}disable(){this.disabled=!0}enable(){this.disabled=!1}isEnabled(){return!this.disabled}pause(){this.paused=!0}resume(){this.paused=!1;const e=this.messageQueue.splice(0);for(let r=0;r<e.length;r+=1){const{messageObject:s,raw:i,type:a}=e[r];this.logger(a,i,!1,...s)}}scope(...e){if(e.length===0)throw new Error("No scope name was defined.");return this.scopeName=e.flat(),this}unscope(){this.scopeName=[]}child(e){const r=e?.types!==void 0,s=r?be(this.types,e.types):this.types,i=e?.reporters??[],a=i.length>0?[...this.reporters,...i]:[...this.reporters],u=e?.processors??[],n=u.length>0?[...this.processors,...u]:[...this.processors],g=e?.logLevels?{...this.logLevels,...e.logLevels}:this.logLevels;let y;if(e?.scope){const d=me(e.scope).filter(Boolean);y=this.scopeName.length>0?[...this.scopeName,...d]:d}else y=this.scopeName.length>0?this.scopeName:[];const l=e?.messages?{timerEnd:this.endTimerMessage,timerStart:this.startTimerMessage,...e.messages}:{timerEnd:this.endTimerMessage,timerStart:this.startTimerMessage},p={disabled:e?.disabled??this.disabled,logLevel:e?.logLevel??this.generalLogLevel,logLevels:g,messages:l,processors:n,rawReporter:e?.rawReporter??this.rawReporter,reporters:a,scope:y,throttle:e?.throttle??this.throttle,throttleMin:e?.throttleMin??this.throttleMin};return r?(p.parentTypes=s,p.parentLongestLabel=le(s)):(p.parentTypes=this.types,p.parentLongestLabel=this.longestLabel),e?.logLevels||(p.parentLogLevels=this.logLevels),e?.messages||(p.parentMessages={timerEnd:this.endTimerMessage,timerStart:this.startTimerMessage}),p.parentStringify=this.stringify,new Le(p)}time(e="default"){this.seqTimers.has(e)?this.logger("warn",!1,!1,{message:`Timer '${e}' already exists`,prefix:e}):(this.seqTimers.add(e),this.timersMap.set(e,Date.now()),this.logger("start",!1,!1,{message:this.startTimerMessage,prefix:e}))}timeLog(e,...r){if(!e&&this.seqTimers.size>0&&(e=[...this.seqTimers].pop()),e&&this.timersMap.has(e)){const s=Date.now()-this.timersMap.get(e);this.logger("info",!1,!1,{context:r,message:s<1e3?`${String(s)} ms`:`${(s/1e3).toFixed(2)} s`,prefix:e})}else this.logger("warn",!1,!1,{context:r,message:"Timer not found",prefix:e})}timeEnd(e){if(!e&&this.seqTimers.size>0&&(e=[...this.seqTimers].pop()),e&&this.timersMap.has(e)){const r=Date.now()-this.timersMap.get(e);this.timersMap.delete(e),this.logger("stop",!1,!1,{message:`${this.endTimerMessage} ${r<1e3?`${String(r)} ms`:`${(r/1e3).toFixed(2)} s`}`,prefix:e})}else this.logger("warn",!1,!1,{message:"Timer not found",prefix:e})}group(e="console.group"){globalThis.window===void 0?this.groups.push(e):console.group(e)}groupEnd(){globalThis.window===void 0?this.groups.pop():console.groupEnd()}count(e="default"){const r=this.countMap.get(e)??0;this.countMap.set(e,r+1),this.logger("log",!1,!1,{message:`${e}: ${String(r+1)}`,prefix:e})}countReset(e="default"){this.countMap.has(e)?this.countMap.delete(e):this.logger("warn",!1,!1,{message:`Count for ${e} does not exist`,prefix:e})}clear(){console.clear()}raw(e,...r){this.disabled||this.logger("log",!0,!1,{context:r,message:e})}extendReporter(e){return typeof e.setLoggerTypes=="function"&&e.setLoggerTypes(this.types),typeof e.setStringify=="function"&&e.setStringify(this.stringify),e}registerReporters(e){for(let r=0;r<e.length;r+=1)this.reporters.add(this.extendReporter(e[r]))}registerProcessors(e){for(let r=0;r<e.length;r+=1){const s=e[r];typeof s.setStringify=="function"&&s.setStringify(this.stringify),this.processors.add(s)}}#t(e,r){if(r)this.rawReporter.log(Object.freeze(e));else for(const s of this.reporters)s.log(Object.freeze(e))}#e(e){return e&&this.logLevels[e]?e:"debug"}#s(e,r,...s){const i={badge:void 0,context:void 0,error:void 0,label:void 0,message:we,prefix:void 0,repeated:void 0,scope:void 0,suffix:void 0};if(i.type={level:r.logLevel,name:e},i.groups=this.groups,i.scope=this.scopeName,i.date=new Date,s.length>0&&s[0]instanceof Error)i.error=s[0],s.length>1&&(i.context=s.slice(1));else if(s.length>0&&typeof s[0]=="object"&&s[0]!==null&&"message"in s[0]){const{context:a,message:u,prefix:n,suffix:g}=s[0];if(a&&(i.context=a),n&&(i.prefix=n),g&&(i.suffix=g),i.message=u,s.length>1){const y=s.slice(1);i.context?i.context=Array.isArray(i.context)?[...i.context,...y]:[i.context,...y]:i.context=y}}else s.length>1?(i.message=s[0],i.context=s.slice(1)):s.length===1?i.message=s[0]:i.message=void 0;return r.logLevel==="trace"&&(i.traceError=new Error("Trace")),r.badge&&(i.badge=r.badge),r.label&&(i.label=r.label),i}logger(e,r,s,...i){if(this.disabled)return;if(this.paused){this.messageQueue.push({messageObject:i,raw:r,type:e});return}const a=this.types[e],u=this.#e(a.logLevel);if(s||this.logLevels[u]>=this.logLevels[this.generalLogLevel]){let n=this.#s(e,a,...i);const g=ye((l=!1)=>{const p=(this.lastLog.count??0)-this.throttleMin;if(this.lastLog.object&&p>0){const d={...this.lastLog.object};p>1&&(d.repeated=p),this.#t(d,r),this.lastLog.count=1}if(l){for(const d of this.processors)n={...d.process(n)};if(n.dropped===!0)return;this.lastLog.object=n;try{this.lastLog.signature=JSON.stringify([n.label,n.scope,n.type,n.message,n.prefix,n.suffix,n.context])}catch{this.lastLog.signature=void 0}this.#t(n,r)}},"resolveLog");clearTimeout(this.lastLog.timeout);const y=this.lastLog.time&&n.date?new Date(n.date).getTime()-this.lastLog.time.getTime():0;if(this.lastLog.time=new Date(n.date),y<this.throttle)try{const l=JSON.stringify([n.label,n.scope,n.type,n.message,n.prefix,n.suffix,n.context]);if(this.lastLog.object&&l===this.lastLog.signature&&(this.lastLog.count=(this.lastLog.count??0)+1,this.lastLog.count>this.throttleMin)){this.lastLog.timeout=setTimeout(g,this.throttle);return}}catch{}g(!0)}}}var Gt=Object.defineProperty,zt=m((t,e)=>Gt(t,"name",{value:e,configurable:!0}),"c$1");let Ht=class{static{m(this,"v")}static{zt(this,"RawReporter")}#r;#t;#e;#s=!1;#i;constructor(e={}){this.#r=ve,this.#t=Se,this.#i=e}setStdout(e){this.#r=e}setStderr(e){this.#t=e}setInteractiveManager(e){this.#e=e}setIsInteractive(e){this.#s=e}log(e){const{context:r,groups:s,message:i,type:a}=e,u=[];if(i!==we){const l=typeof i=="string"?i:ce(i,this.#i);u.push(l)}r&&u.push(...r.map(l=>typeof l=="object"?` ${ce(l,this.#i)}`:` ${String(l)}`));const n=["error","trace","warn"].includes(a.level)?"stderr":"stdout",g=n==="stderr"?this.#t:this.#r,y=s.map(()=>" ").join("");this.#s&&this.#e!==void 0&&g.isTTY?this.#e.update(n,(y+u.join("")).split(`
20
+ `),0):De(y+u.join(""),g)}};var Wt=Object.defineProperty,Ut=m((t,e)=>Wt(t,"name",{value:e,configurable:!0}),"m$1");class Te extends Le{static{m(this,"c")}constructor(e){const r=e.parentStderr,s=e.parentStdout,{interactive:i,processors:a,rawReporter:u,reporters:n,stderr:g,stdout:y}=e,l=r??g,p=s??y,d=e.parentLongestLabel,E=e.parentTypes,{parentLogLevels:q,parentMessages:z,parentStringify:R}=e,F={disabled:e.disabled,logLevel:e.logLevel,logLevels:e.logLevels,messages:e.messages,processors:[],rawReporter:e.rawReporter,reporters:[],scope:e.scope,throttle:e.throttle,throttleMin:e.throttleMin},Y="types"in e;E&&d&&!Y?(F.parentTypes=E,F.parentLongestLabel=d):Y&&e.types!==void 0&&(F.types=e.types),R&&(F.parentStringify=R),q&&!e.logLevels&&(F.parentLogLevels=q),z&&!e.messages&&(F.parentMessages=z),super(F),this.options=e,this.interactive=i??!1,this.stdout=p,this.stderr=l,this.interactive&&(this.interactiveManager=new We(new Oe(this.stdout),new Oe(this.stderr))),Array.isArray(n)&&this.registerReporters(n),this.rawReporter=this.extendReporter(u??new Ht),Array.isArray(a)&&this.registerProcessors(a)}options;static{Ut(this,"PailServerImpl")}stdout;stderr;interactiveManager;interactive;scope(...e){if(e.length===0)throw new Error("No scope name was defined.");return this.scopeName=e.flat(),this}child(e){const r=e?.types!==void 0,s=r?be(this.types,e.types):this.types,i=e?.reporters??[],a=i.length>0?[...this.reporters,...i]:[...this.reporters],u=e?.processors??[],n=u.length>0?[...this.processors,...u]:[...this.processors],g=e?.logLevels?{...this.logLevels,...e.logLevels}:this.logLevels;let y;if(e?.scope){const d=me(e.scope).filter(Boolean);y=this.scopeName.length>0?[...this.scopeName,...d]:d}else y=this.scopeName.length>0?this.scopeName:[];const l=e?.messages?{timerEnd:this.endTimerMessage,timerStart:this.startTimerMessage,...e.messages}:{timerEnd:this.endTimerMessage,timerStart:this.startTimerMessage},p={disabled:e?.disabled??this.disabled,interactive:e?.interactive??this.interactive,logLevel:e?.logLevel??this.generalLogLevel,logLevels:g,messages:l,processors:n,rawReporter:e?.rawReporter??this.rawReporter,reporters:a,scope:y,stderr:e?.stderr??this.stderr,stdout:e?.stdout??this.stdout,throttle:e?.throttle??this.throttle,throttleMin:e?.throttleMin??this.throttleMin};return this.#r(p,e,r,s),new Te(p)}#r(e,r,s,i){s?(e.parentTypes=i,e.parentLongestLabel=le(i)):(e.parentTypes=this.types,e.parentLongestLabel=this.longestLabel),r?.logLevels||(e.parentLogLevels=this.logLevels),r?.messages||(e.parentMessages={timerEnd:this.endTimerMessage,timerStart:this.startTimerMessage}),e.parentStringify=this.stringify,r?.stdout||(e.parentStdout=this.stdout),r?.stderr||(e.parentStderr=this.stderr)}getInteractiveManager(){return this.interactiveManager}wrapStd(){this.#t(this.stdout,"log"),this.#t(this.stderr,"error")}restoreStd(){this.#e(this.stdout),this.#e(this.stderr)}wrapAll(){this.wrapConsole(),this.wrapStd()}restoreAll(){this.restoreConsole(),this.restoreStd()}clear(){this.stdout.write(Ee),this.stderr.write(Ee)}extendReporter(e){return typeof e.setStdout=="function"&&e.setStdout(this.stdout),typeof e.setStderr=="function"&&e.setStderr(this.stderr),typeof e.setLoggerTypes=="function"&&e.setLoggerTypes(this.types),typeof e.setStringify=="function"&&e.setStringify(this.stringify),typeof e.setIsInteractive=="function"&&e.setIsInteractive(this.interactive),this.interactive&&typeof e.setInteractiveManager=="function"&&e.setInteractiveManager(this.interactiveManager),e}#t(e,r){e&&(e.__write||(e.__write=e.write),e.write=s=>{this[r](String(s).trim())})}#e(e){e&&e.__write&&(e.write=e.__write,delete e.__write)}}const Yt=Te;var Qt=Object.defineProperty,Kt=m((t,e)=>Qt(t,"name",{value:e,configurable:!0}),"x"),Xt=Object.defineProperty,qe=Kt((t,e)=>Xt(t,"name",{value:e,configurable:!0}),"h"),Zt=Object.defineProperty,ie=qe((t,e)=>Zt(t,"name",{value:e,configurable:!0}),"g$1");const Ae=new Map([["aliceblue","#f0f8ff"],["antiquewhite","#faebd7"],["aqua","#00ffff"],["aquamarine","#7fffd4"],["azure","#f0ffff"],["beige","#f5f5dc"],["bisque","#ffe4c4"],["black","#000000"],["blanchedalmond","#ffebcd"],["blue","#0000ff"],["blueviolet","#8a2be2"],["brown","#a52a2a"],["burlywood","#deb887"],["cadetblue","#5f9ea0"],["chartreuse","#7fff00"],["chocolate","#d2691e"],["coral","#ff7f50"],["cornflowerblue","#6495ed"],["cornsilk","#fff8dc"],["crimson","#dc143c"],["cyan","#00ffff"],["darkblue","#00008b"],["darkcyan","#008b8b"],["darkgoldenrod","#b8860b"],["darkgray","#a9a9a9"],["darkgreen","#006400"],["darkgrey","#a9a9a9"],["darkkhaki","#bdb76b"],["darkmagenta","#8b008b"],["darkolivegreen","#556b2f"],["darkorange","#ff8c00"],["darkorchid","#9932cc"],["darkred","#8b0000"],["darksalmon","#e9967a"],["darkseagreen","#8fbc8f"],["darkslateblue","#483d8b"],["darkslategray","#2f4f4f"],["darkslategrey","#2f4f4f"],["darkturquoise","#00ced1"],["darkviolet","#9400d3"],["deeppink","#ff1493"],["deepskyblue","#00bfff"],["dimgray","#696969"],["dimgrey","#696969"],["dodgerblue","#1e90ff"],["firebrick","#b22222"],["floralwhite","#fffaf0"],["forestgreen","#228b22"],["fuchsia","#ff00ff"],["gainsboro","#dcdcdc"],["ghostwhite","#f8f8ff"],["gold","#ffd700"],["goldenrod","#daa520"],["gray","#808080"],["green","#008000"],["greenyellow","#adff2f"],["grey","#808080"],["honeydew","#f0fff0"],["hotpink","#ff69b4"],["indianred","#cd5c5c"],["indigo","#4b0082"],["ivory","#fffff0"],["khaki","#f0e68c"],["lavender","#e6e6fa"],["lavenderblush","#fff0f5"],["lawngreen","#7cfc00"],["lemonchiffon","#fffacd"],["lightblue","#add8e6"],["lightcoral","#f08080"],["lightcyan","#e0ffff"],["lightgoldenrodyellow","#fafad2"],["lightgray","#d3d3d3"],["lightgreen","#90ee90"],["lightgrey","#d3d3d3"],["lightpink","#ffb6c1"],["lightsalmon","#ffa07a"],["lightseagreen","#20b2aa"],["lightskyblue","#87cefa"],["lightslategray","#778899"],["lightslategrey","#778899"],["lightsteelblue","#b0c4de"],["lightyellow","#ffffe0"],["lime","#00ff00"],["limegreen","#32cd32"],["linen","#faf0e6"],["magenta","#ff00ff"],["maroon","#800000"],["mediumaquamarine","#66cdaa"],["mediumblue","#0000cd"],["mediumorchid","#ba55d3"],["mediumpurple","#9370db"],["mediumseagreen","#3cb371"],["mediumslateblue","#7b68ee"],["mediumspringgreen","#00fa9a"],["mediumturquoise","#48d1cc"],["mediumvioletred","#c71585"],["midnightblue","#191970"],["mintcream","#f5fffa"],["mistyrose","#ffe4e1"],["moccasin","#ffe4b5"],["navajowhite","#ffdead"],["navy","#000080"],["oldlace","#fdf5e6"],["olive","#808000"],["olivedrab","#6b8e23"],["orange","#ffa500"],["orangered","#ff4500"],["orchid","#da70d6"],["palegoldenrod","#eee8aa"],["palegreen","#98fb98"],["paleturquoise","#afeeee"],["palevioletred","#db7093"],["papayawhip","#ffefd5"],["peachpuff","#ffdab9"],["peru","#cd853f"],["pink","#ffc0cb"],["plum","#dda0dd"],["powderblue","#b0e0e6"],["purple","#800080"],["rebeccapurple","#663399"],["red","#ff0000"],["rosybrown","#bc8f8f"],["royalblue","#4169e1"],["saddlebrown","#8b4513"],["salmon","#fa8072"],["sandybrown","#f4a460"],["seagreen","#2e8b57"],["seashell","#fff5ee"],["sienna","#a0522d"],["silver","#c0c0c0"],["skyblue","#87ceeb"],["slateblue","#6a5acd"],["slategray","#708090"],["slategrey","#708090"],["snow","#fffafa"],["springgreen","#00ff7f"],["steelblue","#4682b4"],["tan","#d2b48c"],["teal","#008080"],["thistle","#d8bfd8"],["tomato","#ff6347"],["turquoise","#40e0d0"],["violet","#ee82ee"],["wheat","#f5deb3"],["white","#ffffff"],["whitesmoke","#f5f5f5"],["yellow","#ffff00"],["yellowgreen","#9acd32"]]),er=/^#([\dA-F]{2})([\dA-F]{2})([\dA-F]{2})([\dA-F]{2})?$/i,tr=/^#([\dA-F])([\dA-F])([\dA-F])([\dA-F])?$/i,rr=/^rgba?\(\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*)?\)$/,sr=/^hsla?\(\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))%\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))%\s*(,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*)?\)$/,$e=ie(()=>({__proto__:null,backgroundColor:null,color:null,fontStyle:null,fontWeight:null,textDecorationColor:null,textDecorationLine:[]}),"getDefaultCss"),Pe=/\s+/,fe=ie(t=>{Ae.has(t)&&(t=Ae.get(t));const e=er.exec(t);if(e)return[Number.parseInt(e[1],16),Number.parseInt(e[2],16),Number.parseInt(e[3],16)];const r=tr.exec(t);if(r)return[Number.parseInt(`${r[1]}${r[1]}`,16),Number.parseInt(`${r[2]}${r[2]}`,16),Number.parseInt(`${r[3]}${r[3]}`,16)];const s=rr.exec(t);if(s)return[Math.round(Math.max(0,Math.min(255,Number(s[1])))),Math.round(Math.max(0,Math.min(255,Number(s[2])))),Math.round(Math.max(0,Math.min(255,Number(s[3]))))];const i=sr.exec(t);if(i){let a=Number(i[1])%360;a<0&&(a+=360);const u=Math.max(0,Math.min(100,Number(i[2])))/100,n=Math.max(0,Math.min(100,Number(i[3])))/100,g=(1-Math.abs(2*n-1))*u,y=g*(1-Math.abs(a/60%2-1)),l=n-g/2;let p,d,E;return a<60?{0:p,1:d,2:E}=[g,y,0]:a<120?{0:p,1:d,2:E}=[y,g,0]:a<180?{0:p,1:d,2:E}=[0,g,y]:a<240?{0:p,1:d,2:E}=[0,y,g]:a<300?{0:p,1:d,2:E}=[y,0,g]:{0:p,1:d,2:E}=[g,0,y],[Math.round((p+l)*255),Math.round((d+l)*255),Math.round((E+l)*255)]}return null},"parseCssColor"),he=ie((t,e)=>t?.[0]===e?.[0]&&t?.[1]===e?.[1]&&t?.[2]===e?.[2],"colorEquals"),ir=ie(t=>{if(typeof t!="string")return $e();const e=$e(),r=[];let s=!1,i=null,a=0,u="";for(const n of t){if(n==="(")a+=1;else if(a>0)n===")"&&(a-=1);else if(s){if(n===";"){const g=u.trim();g!==""&&r.push([i,g]),i=null,u="",s=!1;continue}}else if(n===":"){i=u.trim(),u="",s=!0;continue}u+=n}if(s&&a===0){const n=u.trim();n!==""&&r.push([i,n]),i=null,u=""}for(const{0:n,1:g}of r)switch(n){case"background-color":{g!=null&&(e.backgroundColor=g);break}case"color":{g!=null&&(e.color=g);break}case"font-style":{["italic","oblique","oblique 14deg"].includes(g)&&(e.fontStyle="italic");break}case"font-weight":{g==="bold"&&(e.fontWeight=g);break}case"text-decoration":{e.textDecorationColor=null,e.textDecorationLine=[];const y=g.split(Pe);for(const l of y){const p=fe(l);p!=null?e.textDecorationColor=p:["line-through","overline","underline"].includes(l)&&e.textDecorationLine.push(l)}break}case"text-decoration-color":{const y=fe(g);y!=null&&(e.textDecorationColor=y);break}case"text-decoration-line":{e.textDecorationLine=[];const y=g.split(Pe);for(const l of y)["line-through","overline","underline"].includes(l)&&e.textDecorationLine.push(l);break}}return e},"parseCss"),or=ie((t,e)=>{e=e??$e();let r="";if(!he(t.backgroundColor,e.backgroundColor))if(t.backgroundColor==null)r+="\x1B[49m";else switch(t.backgroundColor){case"black":{r+="\x1B[40m";break}case"blue":{r+="\x1B[44m";break}case"cyan":{r+="\x1B[46m";break}case"green":{r+="\x1B[42m";break}case"magenta":{r+="\x1B[45m";break}case"red":{r+="\x1B[41m";break}case"white":{r+="\x1B[47m";break}case"yellow":{r+="\x1B[43m";break}default:if(Array.isArray(t.backgroundColor)){const{0:s,1:i,2:a}=t.backgroundColor;r+=`\x1B[48;2;${String(s)};${String(i)};${String(a)}m`}else{const s=fe(t.backgroundColor);if(s===null)r+="\x1B[49m";else{const{0:i,1:a,2:u}=s;r+=`\x1B[48;2;${String(i)};${String(a)};${String(u)}m`}}}if(!he(t.color,e.color))if(t.color==null)r+="\x1B[39m";else switch(t.color){case"black":{r+="\x1B[30m";break}case"blue":{r+="\x1B[34m";break}case"cyan":{r+="\x1B[36m";break}case"green":{r+="\x1B[32m";break}case"magenta":{r+="\x1B[35m";break}case"red":{r+="\x1B[31m";break}case"white":{r+="\x1B[37m";break}case"yellow":{r+="\x1B[33m";break}default:if(Array.isArray(t.color)){const{0:s,1:i,2:a}=t.color;r+=`\x1B[38;2;${String(s)};${String(i)};${String(a)}m`}else{const s=fe(t.color);if(s===null)r+="\x1B[39m";else{const{0:i,1:a,2:u}=s;r+=`\x1B[38;2;${String(i)};${String(a)};${String(u)}m`}}}if(t.fontWeight!==e.fontWeight&&(r+=t.fontWeight==="bold"?"\x1B[1m":"\x1B[22m"),t.fontStyle!==e.fontStyle&&(r+=t.fontStyle==="italic"?"\x1B[3m":"\x1B[23m"),!he(t.textDecorationColor,e.textDecorationColor))if(t.textDecorationColor==null)r+="\x1B[59m";else{const{0:s,1:i,2:a}=t.textDecorationColor;r+=`\x1B[58;2;${String(s)};${String(i)};${String(a)}m`}return t.textDecorationLine.includes("line-through")!==e.textDecorationLine.includes("line-through")&&(r+=t.textDecorationLine.includes("line-through")?"\x1B[9m":"\x1B[29m"),t.textDecorationLine.includes("overline")!==e.textDecorationLine.includes("overline")&&(r+=t.textDecorationLine.includes("overline")?"\x1B[53m":"\x1B[55m"),t.textDecorationLine.includes("underline")!==e.textDecorationLine.includes("underline")&&(r+=t.textDecorationLine.includes("underline")?"\x1B[4m":"\x1B[24m"),r},"cssToAnsi");var nr=Object.defineProperty,ke=qe((t,e)=>nr(t,"name",{value:e,configurable:!0}),"u");const ar=ke(t=>{try{return JSON.stringify(t)}catch{return'"[Circular]"'}},"tryStringify"),Be="%".codePointAt(0),lr="s".codePointAt(0),cr="d".codePointAt(0),fr="f".codePointAt(0),ur="i".codePointAt(0),gr="O".codePointAt(0),hr="o".codePointAt(0),dr="j".codePointAt(0),pr="c".codePointAt(0),mr=ke((t,e=[],r={})=>{if(typeof t!="string"&&typeof t!="object"||t===null)throw new TypeError(`fmt must be a string or object, got ${t===null?"null":typeof t}`);const s=r.stringify??ar,i=1;if(typeof t=="object"){const l=e.length+i;if(l===1)return"{}";const p=Array.from({length:l});p[0]=s(t);for(let d=1;d<l;d+=1)p[d]=s(e[d-i]);return p.join(" ")}if(e.length===0)return t;let a="",u=1-i,n=-1,g=!1,y;for(let l=0;l<t.length;){if(t.codePointAt(l)===Be&&l+1<t.length){n=n>-1?n:0;const p=t.codePointAt(l+1);if(p===void 0){u+=1;break}switch(p){case pr:{if(globalThis.window===void 0){const d=ir(e[u]);n<l&&(a+=t.slice(n,l));const E=or(d,y);a+=E,E!==""&&(g=!0,y=d)}n=l+2,l+=1;break}case cr:case fr:{if(u>=e.length||e[u]==null)break;n<l&&(a+=t.slice(n,l));const d=e[u];a+=(typeof d=="symbol"?Number.NaN:Number(d)).toString(),n=l+2,l+=1;break}case ur:{if(u>=e.length||e[u]==null)break;n<l&&(a+=t.slice(n,l));const d=e[u];a+=Math.floor(typeof d=="symbol"?Number.NaN:Number(d)).toString(),n=l+2,l+=1;break}case dr:case gr:case hr:{if(u>=e.length||e[u]===void 0)break;n<l&&(a+=t.slice(n,l));const d=e[u],E=typeof d;if(E==="string"){a+=`'${d}'`,n=l+2,l+=1;break}if(E==="function"){a+=d.name?`[Function: ${d.name}]`:"[Function: <anonymous>]",n=l+2,l+=1;break}a+=s(d),n=l+2,l+=1;break}case Be:{n<l&&(a+=t.slice(n,l)),a+="%",n=l+2,l+=1,u-=1;break}case lr:{if(u>=e.length)break;n<l&&(a+=t.slice(n,l)),a+=typeof e[u]=="object"?s(e[u]):String(e[u]),n=l+2,l+=1;break}default:typeof r.formatters?.[p]=="function"&&(n<l&&(a+=t.slice(n,l)),a+=r.formatters[p](e[u]),n=l+2,l+=1)}u+=1}l+=1}return n===-1?t:(n<t.length&&(a+=t.slice(n)),g&&(a+="\x1B[0m"),a)},"format"),br=ke((t={})=>{const e={};return typeof t.formatters=="object"&&Object.entries(t.formatters).forEach(([r,s])=>{if(r.length===0)throw new Error(`Formatter %${r} has no characters`);if(r.length>1)throw new Error(`Formatter %${r} has more than one character`);if(typeof s!="function")throw new TypeError(`Formatter for %${r} is not a function`);const i=r.codePointAt(0);if(i===void 0)throw new Error(`${r}.codePointAt(0) failed to return a value, please report this issue`);e[i]=s}),(r,s=[],i={})=>mr(r,s,{...i,formatters:e})},"build");var yr=Object.defineProperty,Ne=m((t,e)=>yr(t,"name",{value:e,configurable:!0}),"s$1");class $r{static{m(this,"p")}static{Ne(this,"MessageFormatterProcessor")}#r;#t;#e;constructor(e={}){this.#t=e.formatters}setStringify(e){this.#r=e}process(e){this.#e===void 0&&(this.#e=br({formatters:this.#t,stringify:Ne(s=>this.#r?this.#r(s):JSON.stringify(s),"stringify")}));const r=this.#e;return e.message!==void 0&&(e.message=this.#s(r,e.message,e.context??[])),e}#s(e,r,s=[]){if(typeof r=="string")return e(r,s);if(typeof r=="object"&&r!==null){const i=r,a=Object.keys(i);for(let u=0;u<a.length;u+=1){const n=a[u],g=i[n];(typeof g=="string"||Array.isArray(g)||typeof g=="object")&&(i[n]=this.#s(e,g,s))}}return r}}var vr=Object.defineProperty,Je=m((t,e)=>vr(t,"name",{value:e,configurable:!0}),"M");const{bgGrey:Sr,cyan:wr,green:xr,greenBright:Lr,grey:G,red:de,underline:_e,white:Tr}=Ce,kr=/[\\/]pail[\\/]dist/,pe=Je(t=>!kr.test(t),"pailFileFilter");class Mr extends Qe{static{m(this,"PrettyReporter")}static{Je(this,"PrettyReporter")}#r;#t;#e;#s=!1;#i;#o;constructor(e={}){const{error:r,inspect:s,...i}=e;super({uppercase:{label:!0,...i.uppercase},...i}),this.#i={...Ke,...s},this.#o={...r,color:{fileLine:xr,hint:wr,marker:de,message:de,method:Lr,title:de}},this.#r=ve,this.#t=Se}setStdout(e){this.#r=e}setStderr(e){this.#t=e}setInteractiveManager(e){this.#e=e}setIsInteractive(e){this.#s=e}log(e){this._log(this._formatMessage(e),e.type.level)}_formatMessage(e){const{columns:r}=Xe();let s=r;typeof this.styles.messageLength=="number"&&(s=this.styles.messageLength);const{badge:i,context:a,date:u,error:n,file:g,groups:y,label:l,message:p,prefix:d,repeated:E,scope:q,suffix:z,traceError:R,type:F}=e,{color:Y}=this.loggerTypes[F.name],Q=Y?Ce[Y]:Tr,f=y.map(()=>" ").join(""),c=[];if(y.length>0&&c.push(`${f+G(`[${y.at(-1)??""}]`)} `),u&&c.push(`${G(this.styles.dateFormatter(typeof u=="string"?new Date(u):u))} `),i)c.push(Q(i));else{const T=Ze(this.loggerTypes);T.length>0&&c.push(`${G(".".repeat(T.length))} `)}const $=le(this.loggerTypes);if(l){const T=ne($),P=ne(l);c.push(`${Q(et(l,this.styles))} `,G(".".repeat(Math.max(0,T-P))))}else c.push(G(".".repeat($.length+2)));E&&c.push(`${Sr.white(`[${String(E)}x]`)} `),Array.isArray(q)&&q.length>0&&c.push(` ${G(`[${q.join(" > ")}]`)} `),d&&c.push(`${G(`${Array.isArray(q)&&q.length>0?". ":" "}[${this.styles.underline.prefix?_e(d):d}]`)} `);const N=ne(c.join(" "));if(g){const T=(g.name??"")+(g.line?`:${String(g.line)}`:""),P=ne(T);if(P+N+2>s)c.push(G(` ${T}`));else{const J=Math.max(0,s-N-P-2);c.push(G(`${".".repeat(J)} ${T}`))}}else c.push(G(".".repeat(Math.max(0,s-N-1))));if(c.length>0&&c.push(`
2
21
 
3
- const __cjs_require = __cjs_createRequire(import.meta.url);
22
+ `),p!==we){const T=typeof p=="string"?p:ce(p,this.#i);c.push(f+tt(T,{trim:!1,width:s-3,wrapMode:rt.STRICT_WIDTH}))}if(a){let T=!1;c.push(...a.map(P=>{if(P instanceof Error)return T=!0,`
4
23
 
5
- const __cjs_getProcess = typeof globalThis !== "undefined" && typeof globalThis.process !== "undefined" ? globalThis.process : process;
24
+ ${ge(P,{...this.#o,filterStacktrace:pe,prefix:f})}`;if(typeof P=="object")return` ${ce(P,this.#i)}`;const J=(T?`
6
25
 
7
- const {
8
- stdout,
9
- stderr,
10
- env
11
- } = __cjs_getProcess;
12
- import InteractiveManager from './packem_shared/InteractiveManager-CbE7d1kY.js';
13
- import { I as InteractiveStreamHook, c as clearTerminal } from './packem_shared/interactive-stream-hook-DG4BtN12.js';
14
- import { a as PailBrowserImpl, m as mergeTypes, b as arrayify } from './packem_shared/pail.browser-u2CSR_af.js';
15
- import { ProgressBar, applyStyleToOptions, MultiProgressBar } from './progress-bar.js';
16
- export { getBarChar } from './progress-bar.js';
17
- import { i as inspect } from './packem_shared/format-label-De49vNPd.js';
18
- import { E as EMPTY_SYMBOL } from './packem_shared/constants-omsTHUWB.js';
19
- import { w as writeStream } from './packem_shared/write-stream-BG8fhcs3.js';
20
- import { Spinner, MultiSpinner } from './spinner.js';
21
- import { g as getLongestLabel } from './packem_shared/get-longest-label-C9PWeyKq.js';
22
- import MessageFormatterProcessor from './processor/message-formatter-processor.js';
23
- import { PrettyReporter } from './packem_shared/PrettyReporter-C2wVB7yu.js';
26
+ `:" ")+String(P);return T=!1,J}))}return n&&c.push(ge(n,{...this.#o,filterStacktrace:pe,prefix:f})),R&&c.push(`
24
27
 
25
- class RawReporter {
26
- #stdout;
27
- #stderr;
28
- #interactiveManager;
29
- #interactive = false;
30
- #inspectOptions;
31
- constructor(inspectOptions = {}) {
32
- this.#stdout = stdout;
33
- this.#stderr = stderr;
34
- this.#inspectOptions = inspectOptions;
35
- }
36
- setStdout(stdout_) {
37
- this.#stdout = stdout_;
38
- }
39
- setStderr(stderr_) {
40
- this.#stderr = stderr_;
41
- }
42
- setInteractiveManager(manager) {
43
- this.#interactiveManager = manager;
44
- }
45
- setIsInteractive(interactive) {
46
- this.#interactive = interactive;
47
- }
48
- log(meta) {
49
- const { context, groups, message, type } = meta;
50
- const items = [];
51
- if (message !== EMPTY_SYMBOL) {
52
- const formattedMessage = typeof message === "string" ? message : inspect(message, this.#inspectOptions);
53
- items.push(formattedMessage);
54
- }
55
- if (context) {
56
- items.push(
57
- ...context.map((value) => {
58
- if (typeof value === "object") {
59
- return ` ${inspect(value, this.#inspectOptions)}`;
60
- }
61
- return ` ${value}`;
62
- })
63
- );
64
- }
65
- const streamType = ["error", "trace", "warn"].includes(type.level) ? "stderr" : "stdout";
66
- const stream = streamType === "stderr" ? this.#stderr : this.#stdout;
67
- const groupSpaces = groups.map(() => " ").join("");
68
- if (this.#interactive && this.#interactiveManager !== void 0 && stream.isTTY) {
69
- this.#interactiveManager.update(streamType, (groupSpaces + items.join("")).split("\n"), 0);
70
- } else {
71
- writeStream(groupSpaces + items.join(""), stream);
72
- }
73
- }
74
- }
75
-
76
- class PailServerImpl extends PailBrowserImpl {
77
- /**
78
- * Creates a new Pail server logger instance.
79
- *
80
- * Initializes the server-compatible logger with streams, interactive support,
81
- * and server-specific configuration options.
82
- * @param options Server-specific configuration options
83
- */
84
- constructor(options) {
85
- const parentStderr = options.parentStderr;
86
- const parentStdout = options.parentStdout;
87
- const { interactive, processors, rawReporter, reporters, stderr: optionsStderr, stdout: optionsStdout } = options;
88
- const stderr = parentStderr ?? optionsStderr;
89
- const stdout = parentStdout ?? optionsStdout;
90
- const parentLongestLabel = options.parentLongestLabel;
91
- const parentTypes = options.parentTypes;
92
- const { parentLogLevels, parentMessages, parentStringify } = options;
93
- const parentOptions = {
94
- disabled: options.disabled,
95
- logLevel: options.logLevel,
96
- logLevels: options.logLevels,
97
- messages: options.messages,
98
- processors: [],
99
- rawReporter: options.rawReporter,
100
- reporters: [],
101
- scope: options.scope,
102
- throttle: options.throttle,
103
- throttleMin: options.throttleMin
104
- };
105
- const hasTypesProperty = "types" in options;
106
- if (parentTypes && parentLongestLabel && !hasTypesProperty) {
107
- parentOptions.parentTypes = parentTypes;
108
- parentOptions.parentLongestLabel = parentLongestLabel;
109
- } else if (hasTypesProperty && options.types !== void 0) {
110
- parentOptions.types = options.types;
111
- }
112
- if (parentStringify) {
113
- parentOptions.parentStringify = parentStringify;
114
- }
115
- if (parentLogLevels && !options.logLevels) {
116
- parentOptions.parentLogLevels = parentLogLevels;
117
- }
118
- if (parentMessages && !options.messages) {
119
- parentOptions.parentMessages = parentMessages;
120
- }
121
- super(parentOptions);
122
- this.options = options;
123
- this.interactive = interactive ?? false;
124
- this.stdout = stdout;
125
- this.stderr = stderr;
126
- if (this.interactive) {
127
- this.interactiveManager = new InteractiveManager(new InteractiveStreamHook(this.stdout), new InteractiveStreamHook(this.stderr));
128
- }
129
- if (Array.isArray(reporters)) {
130
- this.registerReporters(reporters);
131
- }
132
- this.rawReporter = this.extendReporter(rawReporter ?? new RawReporter());
133
- if (Array.isArray(processors)) {
134
- this.registerProcessors(processors);
135
- }
136
- }
137
- stdout;
138
- stderr;
139
- interactiveManager;
140
- interactive;
141
- // @ts-expect-error - this returns a different type
142
- scope(...name) {
143
- if (name.length === 0) {
144
- throw new Error("No scope name was defined.");
145
- }
146
- this.scopeName = name.flat();
147
- return this;
148
- }
149
- /**
150
- * Creates a child logger that inherits settings from the parent.
151
- *
152
- * Returns a new logger instance that inherits all configuration from the parent
153
- * (reporters, processors, types, log levels, throttle settings, etc.) while allowing
154
- * you to override only what you need. Child loggers are independent instances with
155
- * their own state (timers, counters, etc.).
156
- * @template N - The new custom logger type names
157
- * @template LC - The new log level types
158
- * @param options Configuration options to override or extend parent settings
159
- * @returns A new child logger instance
160
- * @example
161
- * ```typescript
162
- * const parent = createPail({
163
- * logLevel: "info",
164
- * types: { http: { label: "HTTP", logLevel: "info" } },
165
- * reporters: [new PrettyReporter()],
166
- * });
167
- *
168
- * // Child inherits parent settings but overrides log level
169
- * const child = parent.child({ logLevel: "debug" });
170
- * child.info("This will be logged"); // Uses debug level from child
171
- * child.http("GET /api 200"); // Inherits http type from parent
172
- *
173
- * // Child can add new types
174
- * const childWithNewType = parent.child({
175
- * types: { db: { label: "DB", logLevel: "info" } },
176
- * });
177
- * childWithNewType.db("Query executed"); // New type available
178
- * ```
179
- */
180
- // @ts-expect-error - override signature differs due to server-specific options
181
- child(options) {
182
- const typesChanged = options?.types !== void 0 && options.types !== null;
183
- const mergedTypes = typesChanged ? mergeTypes(this.types, options.types) : this.types;
184
- const childReporters = options?.reporters ?? [];
185
- const allReporters = childReporters.length > 0 ? [...this.reporters, ...childReporters] : [...this.reporters];
186
- const childProcessors = options?.processors ?? [];
187
- const allProcessors = childProcessors.length > 0 ? [...this.processors, ...childProcessors] : [...this.processors];
188
- const mergedLogLevels = options?.logLevels ? { ...this.logLevels, ...options.logLevels } : this.logLevels;
189
- let mergedScope;
190
- if (options?.scope) {
191
- const childScope = arrayify(options.scope).filter(Boolean);
192
- mergedScope = this.scopeName.length > 0 ? [...this.scopeName, ...childScope] : childScope;
193
- } else {
194
- mergedScope = this.scopeName.length > 0 ? this.scopeName : [];
195
- }
196
- const mergedMessages = options?.messages ? {
197
- timerEnd: this.endTimerMessage,
198
- timerStart: this.startTimerMessage,
199
- ...options.messages
200
- } : {
201
- timerEnd: this.endTimerMessage,
202
- timerStart: this.startTimerMessage
203
- };
204
- const childOptions = {
205
- disabled: options?.disabled ?? this.disabled,
206
- interactive: options?.interactive ?? this.interactive,
207
- logLevel: options?.logLevel ?? this.generalLogLevel,
208
- logLevels: mergedLogLevels,
209
- messages: mergedMessages,
210
- processors: allProcessors,
211
- rawReporter: options?.rawReporter ?? this.rawReporter,
212
- reporters: allReporters,
213
- scope: mergedScope,
214
- stderr: options?.stderr ?? this.stderr,
215
- stdout: options?.stdout ?? this.stdout,
216
- throttle: options?.throttle ?? this.throttle,
217
- throttleMin: options?.throttleMin ?? this.throttleMin
218
- };
219
- this.#assignParentValues(childOptions, options, typesChanged, mergedTypes);
220
- return new PailServerImpl(childOptions);
221
- }
222
- /**
223
- * Assigns parent values to child options for optimization.
224
- *
225
- * Reuses parent values when they haven't changed to avoid unnecessary recalculations.
226
- */
227
- /* eslint-disable no-param-reassign */
228
- #assignParentValues(childOptions, options, typesChanged, mergedTypes) {
229
- if (typesChanged) {
230
- childOptions.parentTypes = mergedTypes;
231
- childOptions.parentLongestLabel = getLongestLabel(mergedTypes);
232
- } else {
233
- childOptions.parentTypes = this.types;
234
- childOptions.parentLongestLabel = this.longestLabel;
235
- }
236
- if (!options?.logLevels) {
237
- childOptions.parentLogLevels = this.logLevels;
238
- }
239
- if (!options?.messages) {
240
- childOptions.parentMessages = {
241
- timerEnd: this.endTimerMessage,
242
- timerStart: this.startTimerMessage
243
- };
244
- }
245
- childOptions.parentStringify = this.stringify;
246
- if (!options?.stdout) {
247
- childOptions.parentStdout = this.stdout;
248
- }
249
- if (!options?.stderr) {
250
- childOptions.parentStderr = this.stderr;
251
- }
252
- }
253
- /* eslint-enable no-param-reassign */
254
- /**
255
- * Gets the interactive manager instance if interactive mode is enabled.
256
- *
257
- * Returns the InteractiveManager instance that handles interactive terminal
258
- * features like progress bars and dynamic updates. Only available when
259
- * interactive mode is enabled in the constructor options.
260
- * @returns The interactive manager instance, or undefined if not in interactive mode
261
- * @example
262
- * ```typescript
263
- * const logger = createPail({ interactive: true });
264
- * const manager = logger.getInteractiveManager();
265
- * if (manager) {
266
- * manager.hook();
267
- * // Use interactive features
268
- * manager.unhook();
269
- * }
270
- * ```
271
- */
272
- getInteractiveManager() {
273
- return this.interactiveManager;
274
- }
275
- /**
276
- * Wraps stdout and stderr streams to redirect them through the logger.
277
- *
278
- * Intercepts writes to process.stdout and process.stderr, redirecting them
279
- * through the logger instead of writing directly to the streams. This allows
280
- * all output to be processed by the logging pipeline.
281
- * @example
282
- * ```typescript
283
- * const logger = createPail();
284
- * logger.wrapStd();
285
- *
286
- * console.log("This goes through logger");
287
- * process.stdout.write("This too");
288
- *
289
- * logger.restoreStd(); // Restore original streams
290
- * ```
291
- */
292
- wrapStd() {
293
- this.#wrapStream(this.stdout, "log");
294
- this.#wrapStream(this.stderr, "log");
295
- }
296
- /**
297
- * Restores the original stdout and stderr streams.
298
- *
299
- * Removes the stream wrapping that was applied by wrapStd(),
300
- * restoring the original stream write methods.
301
- * @example
302
- * ```typescript
303
- * const logger = createPail();
304
- * logger.wrapStd();
305
- * // Streams are wrapped
306
- * logger.restoreStd();
307
- * // Streams are restored to original behavior
308
- * ```
309
- */
310
- restoreStd() {
311
- this.#restoreStream(this.stdout);
312
- this.#restoreStream(this.stderr);
313
- }
314
- /**
315
- * Wraps all output sources (console and streams).
316
- *
317
- * Convenience method that calls both wrapConsole() and wrapStd()
318
- * to redirect all output through the logger.
319
- * @example
320
- * ```typescript
321
- * const logger = createPail();
322
- * logger.wrapAll(); // Wraps console and streams
323
- *
324
- * // All output now goes through logger
325
- * console.log("Console output");
326
- * process.stdout.write("Stream output");
327
- *
328
- * logger.restoreAll(); // Restore everything
329
- * ```
330
- */
331
- wrapAll() {
332
- this.wrapConsole();
333
- this.wrapStd();
334
- }
335
- /**
336
- * Restores all wrapped output sources.
337
- *
338
- * Convenience method that calls both restoreConsole() and restoreStd()
339
- * to restore all original output behavior.
340
- * @example
341
- * ```typescript
342
- * const logger = createPail();
343
- * logger.wrapAll();
344
- * // All output is wrapped
345
- * logger.restoreAll();
346
- * // All output sources are restored
347
- * ```
348
- */
349
- restoreAll() {
350
- this.restoreConsole();
351
- this.restoreStd();
352
- }
353
- /**
354
- * Creates a single progress bar.
355
- * @param options Configuration options for the progress bar
356
- * @returns A new ProgressBar instance
357
- * @example
358
- * ```typescript
359
- * const logger = createPail({ interactive: true });
360
- * const bar = logger.createProgressBar({
361
- * total: 100,
362
- * format: 'Downloading [{bar}] {percentage}% | ETA: {eta}s | {value}/{total}'
363
- * });
364
- *
365
- * bar.start();
366
- * // ... do work and update progress
367
- * bar.update(50);
368
- * bar.stop();
369
- * ```
370
- */
371
- createProgressBar(options) {
372
- if (!this.interactiveManager) {
373
- throw new Error("Interactive mode is not enabled. Create Pail with { interactive: true } to use progress bars.");
374
- }
375
- const styledOptions = applyStyleToOptions(options);
376
- return new ProgressBar(styledOptions, this.interactiveManager);
377
- }
378
- /**
379
- * Creates a multi-bar progress manager for displaying multiple progress bars.
380
- * @param options Configuration options for the multi-bar manager
381
- * @returns A new MultiProgressBar instance
382
- * @example
383
- * ```typescript
384
- * const logger = createPail({ interactive: true });
385
- * const multiBar = logger.createMultiProgressBar();
386
- *
387
- * const bar1 = multiBar.create(100);
388
- * const bar2 = multiBar.create(200);
389
- *
390
- * bar1.start();
391
- * bar2.start();
392
- * // ... update bars as needed
393
- * multiBar.stop();
394
- * ```
395
- */
396
- createMultiProgressBar(options = {}) {
397
- if (!this.interactiveManager) {
398
- throw new Error("Interactive mode is not enabled. Create Pail with { interactive: true } to use progress bars.");
399
- }
400
- const styledOptions = applyStyleToOptions(options);
401
- return new MultiProgressBar(styledOptions, this.interactiveManager);
402
- }
403
- /**
404
- * Creates a single spinner.
405
- * @param options Configuration options for the spinner
406
- * @returns A new Spinner instance
407
- * @example
408
- * ```typescript
409
- * const logger = createPail({ interactive: true });
410
- * const spinner = logger.createSpinner({ name: 'dots' });
411
- * spinner.start('Loading...');
412
- * // ... do work
413
- * spinner.succeed('Done');
414
- * ```
415
- */
416
- createSpinner(options = {}) {
417
- if (!this.interactiveManager) {
418
- throw new Error("Interactive mode is not enabled. Create Pail with { interactive: true } to use spinners.");
419
- }
420
- return new Spinner(options, this.interactiveManager);
421
- }
422
- /**
423
- * Creates a multi-spinner manager for displaying multiple spinners.
424
- * @param options Configuration options for the multi-spinner manager
425
- * @returns A new MultiSpinner instance
426
- * @example
427
- * ```typescript
428
- * const logger = createPail({ interactive: true });
429
- * const multiSpinner = logger.createMultiSpinner();
430
- *
431
- * const spinner1 = multiSpinner.create('Loading 1');
432
- * const spinner2 = multiSpinner.create('Loading 2');
433
- *
434
- * spinner1.start();
435
- * spinner2.start();
436
- * // ... update spinners as needed
437
- * multiSpinner.stop();
438
- * ```
439
- */
440
- createMultiSpinner(options = {}) {
441
- if (!this.interactiveManager) {
442
- throw new Error("Interactive mode is not enabled. Create Pail with { interactive: true } to use spinners.");
443
- }
444
- return new MultiSpinner(options, this.interactiveManager);
445
- }
446
- /**
447
- * Clears the terminal screen.
448
- *
449
- * Sends ANSI escape sequences to clear the terminal screen and move
450
- * the cursor to the top-left position. This overrides the browser
451
- * implementation to work with terminal streams.
452
- * @example
453
- * ```typescript
454
- * const logger = createPail();
455
- * logger.info("Some output");
456
- * logger.clear(); // Clears the terminal screen
457
- * ```
458
- */
459
- clear() {
460
- this.stdout.write(clearTerminal);
461
- this.stderr.write(clearTerminal);
462
- }
463
- extendReporter(reporter) {
464
- if (typeof reporter.setStdout === "function") {
465
- reporter.setStdout(this.stdout);
466
- }
467
- if (typeof reporter.setStderr === "function") {
468
- reporter.setStderr(this.stderr);
469
- }
470
- if (typeof reporter.setLoggerTypes === "function") {
471
- reporter.setLoggerTypes(this.types);
472
- }
473
- if (typeof reporter.setStringify === "function") {
474
- reporter.setStringify(this.stringify);
475
- }
476
- if (typeof reporter.setIsInteractive === "function") {
477
- reporter.setIsInteractive(this.interactive);
478
- }
479
- if (this.interactive && typeof reporter.setInteractiveManager === "function") {
480
- reporter.setInteractiveManager(this.interactiveManager);
481
- }
482
- return reporter;
483
- }
484
- #wrapStream(stream, type) {
485
- if (!stream) {
486
- return;
487
- }
488
- if (!stream.__write) {
489
- stream.__write = stream.write;
490
- }
491
- stream.write = (data) => {
492
- this[type](String(data).trim());
493
- };
494
- }
495
- // eslint-disable-next-line class-methods-use-this
496
- #restoreStream(stream) {
497
- if (!stream) {
498
- return;
499
- }
500
- if (stream.__write) {
501
- stream.write = stream.__write;
502
- delete stream.__write;
503
- }
504
- }
505
- }
506
- const PailServer = PailServerImpl;
507
-
508
- const getDefaultLogLevel = () => {
509
- if (env.NODE_ENV === "debug" || env.DEBUG !== void 0) {
510
- return "debug";
511
- }
512
- if (env.NODE_ENV === "test") {
513
- return "warning";
514
- }
515
- return "informational";
516
- };
517
- const createPail = (options) => {
518
- let logLevel = getDefaultLogLevel();
519
- if (env.PAIL_LOG_LEVEL !== void 0) {
520
- logLevel = env.PAIL_LOG_LEVEL;
521
- }
522
- return new PailServer({
523
- logLevel,
524
- processors: [new MessageFormatterProcessor()],
525
- reporters: [new PrettyReporter()],
526
- stderr,
527
- stdout,
528
- ...options
529
- });
530
- };
531
- const pail = createPail();
532
-
533
- export { MultiProgressBar, MultiSpinner, ProgressBar, Spinner, createPail, pail };
28
+ ${ge(R,{...this.#o,filterStacktrace:pe,hideErrorCauseCodeView:!0,hideErrorCodeView:!0,hideErrorErrorsCodeView:!0,hideMessage:!0,prefix:f})}`),z&&c.push(`
29
+ `,f+G(this.styles.underline.suffix?_e(z):z)),c.join("")}_log(e,r){const s=["error","trace","warn"].includes(r)?"stderr":"stdout",i=s==="stderr"?this.#t:this.#r;this.#s&&this.#e!==void 0&&i.isTTY?this.#e.update(s,e.split(`
30
+ `),0):De(`${e}
31
+ `,i)}}var Or=Object.defineProperty,Ve=m((t,e)=>Or(t,"name",{value:e,configurable:!0}),"o");const Er=Ve(()=>se.NODE_ENV==="debug"||se.DEBUG!==void 0?"debug":se.NODE_ENV==="test"?"warning":"informational","getDefaultLogLevel"),jr=Ve(t=>{let e=Er();return se.PAIL_LOG_LEVEL!==void 0&&(e=se.PAIL_LOG_LEVEL),new Yt({logLevel:e,processors:[new $r],reporters:[new Mr],stderr:Se,stdout:ve,...t})},"createPail"),Ir=jr();export{Jr as PailError,jr as createPail,Vr as createPailError,Ir as pail};