@visulima/pail 1.0.0 → 1.1.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.
Files changed (105) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +3 -3
  3. package/dist/{abstract-pretty-reporter-doXJ0wsq.d.ts → abstract-pretty-reporter-L82dKD7X.d.ts} +1 -2
  4. package/dist/{abstract-pretty-reporter-dDQbeuZX.d.cts → abstract-pretty-reporter-SBWxNXW5.d.cts} +1 -2
  5. package/dist/chunk-2SZMC2SJ.cjs +13 -0
  6. package/dist/chunk-2SZMC2SJ.cjs.map +1 -0
  7. package/dist/chunk-576JQ6DN.js +9 -0
  8. package/dist/chunk-576JQ6DN.js.map +1 -0
  9. package/dist/chunk-5MNFJRLM.cjs +10 -0
  10. package/dist/chunk-5MNFJRLM.cjs.map +1 -0
  11. package/dist/{chunk-4RK45K5E.cjs → chunk-AFMDCM5W.js} +2 -4
  12. package/dist/chunk-AFMDCM5W.js.map +1 -0
  13. package/dist/chunk-ETY4VGL2.js +21 -0
  14. package/dist/chunk-ETY4VGL2.js.map +1 -0
  15. package/dist/chunk-F4FJCQ4L.cjs +9 -0
  16. package/dist/chunk-F4FJCQ4L.cjs.map +1 -0
  17. package/dist/chunk-KERJDMYV.js +8 -0
  18. package/dist/chunk-KERJDMYV.js.map +1 -0
  19. package/dist/{chunk-PVAYQO5O.js → chunk-N2UPJYJR.cjs} +4 -2
  20. package/dist/chunk-N2UPJYJR.cjs.map +1 -0
  21. package/dist/{chunk-EBP7SMYV.js → chunk-NF47XQ47.js} +3 -3
  22. package/dist/{chunk-EBP7SMYV.js.map → chunk-NF47XQ47.js.map} +1 -1
  23. package/dist/chunk-O34IIMWQ.cjs +31 -0
  24. package/dist/chunk-O34IIMWQ.cjs.map +1 -0
  25. package/dist/{chunk-MU2CRXVO.cjs → chunk-QINSQ6TU.cjs} +1 -1
  26. package/dist/{chunk-MU2CRXVO.cjs.map → chunk-QINSQ6TU.cjs.map} +1 -1
  27. package/dist/chunk-SR3Q3EUO.js +7 -0
  28. package/dist/chunk-SR3Q3EUO.js.map +1 -0
  29. package/dist/chunk-TAH23BHM.js +5 -0
  30. package/dist/chunk-TAH23BHM.js.map +1 -0
  31. package/dist/chunk-YP3U3DTV.cjs +10 -0
  32. package/dist/chunk-YP3U3DTV.cjs.map +1 -0
  33. package/dist/chunk-ZB7IIFHO.js +7 -0
  34. package/dist/chunk-ZB7IIFHO.js.map +1 -0
  35. package/dist/chunk-ZJMTPHZR.cjs +7 -0
  36. package/dist/chunk-ZJMTPHZR.cjs.map +1 -0
  37. package/dist/index.browser.cjs +7 -8
  38. package/dist/index.browser.cjs.map +1 -1
  39. package/dist/index.browser.d.cts +4 -5
  40. package/dist/index.browser.d.ts +4 -5
  41. package/dist/index.browser.js +6 -7
  42. package/dist/index.browser.js.map +1 -1
  43. package/dist/index.server.cjs +16 -17
  44. package/dist/index.server.cjs.map +1 -1
  45. package/dist/index.server.d.cts +4 -5
  46. package/dist/index.server.d.ts +4 -5
  47. package/dist/index.server.js +14 -15
  48. package/dist/index.server.js.map +1 -1
  49. package/dist/{pail.browser-DH-2bBhK.d.ts → pail.browser-0Ej0KEkV.d.ts} +1 -2
  50. package/dist/{pail.browser-eQgV1vak.d.cts → pail.browser-qG_FNUeK.d.cts} +1 -2
  51. package/dist/processor.browser.cjs +2 -3
  52. package/dist/processor.browser.d.cts +1 -2
  53. package/dist/processor.browser.d.ts +1 -2
  54. package/dist/processor.browser.js +1 -2
  55. package/dist/processor.server.cjs +2 -3
  56. package/dist/processor.server.cjs.map +1 -1
  57. package/dist/processor.server.d.cts +1 -2
  58. package/dist/processor.server.d.ts +1 -2
  59. package/dist/processor.server.js +1 -2
  60. package/dist/processor.server.js.map +1 -1
  61. package/dist/reporter.browser.cjs +7 -8
  62. package/dist/reporter.browser.cjs.map +1 -1
  63. package/dist/reporter.browser.d.cts +2 -3
  64. package/dist/reporter.browser.d.ts +2 -3
  65. package/dist/reporter.browser.js +5 -6
  66. package/dist/reporter.browser.js.map +1 -1
  67. package/dist/reporter.server.cjs +13 -14
  68. package/dist/reporter.server.cjs.map +1 -1
  69. package/dist/reporter.server.d.cts +2 -3
  70. package/dist/reporter.server.d.ts +2 -3
  71. package/dist/reporter.server.js +10 -11
  72. package/dist/reporter.server.js.map +1 -1
  73. package/dist/{types.d-RNxsa9NR.d.cts → types--_CcxoUw.d.cts} +19 -51
  74. package/dist/{types.d-RNxsa9NR.d.ts → types--_CcxoUw.d.ts} +19 -51
  75. package/package.json +6 -9
  76. package/dist/chunk-32FAOPTJ.cjs +0 -10
  77. package/dist/chunk-32FAOPTJ.cjs.map +0 -1
  78. package/dist/chunk-46NTLZF7.cjs +0 -10
  79. package/dist/chunk-46NTLZF7.cjs.map +0 -1
  80. package/dist/chunk-4RK45K5E.cjs.map +0 -1
  81. package/dist/chunk-57OYT2NC.js +0 -7
  82. package/dist/chunk-57OYT2NC.js.map +0 -1
  83. package/dist/chunk-6ATEEAVC.cjs +0 -9
  84. package/dist/chunk-6ATEEAVC.cjs.map +0 -1
  85. package/dist/chunk-7OFJLC7L.cjs +0 -7
  86. package/dist/chunk-7OFJLC7L.cjs.map +0 -1
  87. package/dist/chunk-FJCEDFRI.js +0 -9
  88. package/dist/chunk-FJCEDFRI.js.map +0 -1
  89. package/dist/chunk-G62M5WJH.js +0 -8
  90. package/dist/chunk-G62M5WJH.js.map +0 -1
  91. package/dist/chunk-GZRIZCRG.cjs +0 -32
  92. package/dist/chunk-GZRIZCRG.cjs.map +0 -1
  93. package/dist/chunk-HKIS52YX.js +0 -22
  94. package/dist/chunk-HKIS52YX.js.map +0 -1
  95. package/dist/chunk-ICPHL4AR.js +0 -8
  96. package/dist/chunk-ICPHL4AR.js.map +0 -1
  97. package/dist/chunk-IQF3SXQR.cjs +0 -10
  98. package/dist/chunk-IQF3SXQR.cjs.map +0 -1
  99. package/dist/chunk-JYHWIRFR.js +0 -5
  100. package/dist/chunk-JYHWIRFR.js.map +0 -1
  101. package/dist/chunk-PVAYQO5O.js.map +0 -1
  102. package/dist/chunk-Y36365SA.cjs +0 -13
  103. package/dist/chunk-Y36365SA.cjs.map +0 -1
  104. package/dist/chunk-YKHMQW6V.js +0 -5
  105. package/dist/chunk-YKHMQW6V.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/constants.ts","../src/util/get-longest-label.ts"],"names":["EXTENDED_RFC_5424_LOG_LEVELS","LOG_TYPES","getLongestLabel","types","labels","x","y"],"mappings":"AAMO,IAAMA,EAA+B,CACxC,MAAO,EACP,SAAU,EACV,MAAO,EACP,UAAW,EACX,MAAO,EACP,cAAe,EACf,OAAQ,EACR,MAAO,EACP,QAAS,CACb,EAEaC,EAAgC,CACzC,MAAO,CACH,MAAO,MACP,MAAO,QACP,SAAU,OACd,EACA,MAAO,CACH,MAAO,OACP,MAAO,WACP,SAAU,eACd,EACA,SAAU,CACN,MAAO,OACP,MAAO,WACP,SAAU,eACd,EACA,SAAU,CACN,MAAO,MACP,MAAO,WACP,SAAU,UACd,EACA,MAAO,CACH,MAAO,OACP,MAAO,QACP,SAAU,OACd,EACA,UAAW,CACP,MAAO,MACP,MAAO,YACP,SAAU,WACd,EACA,MAAO,CACH,MAAO,MACP,MAAO,QACP,SAAU,OACd,EACA,KAAM,CACF,MAAO,OACP,MAAO,OACP,SAAU,eACd,EACA,IAAK,CACD,MAAO,GACP,SAAU,eACd,EACA,OAAQ,CACJ,MAAO,OACP,MAAO,SACP,SAAU,QACd,EACA,QAAS,CACL,MAAO,UACP,MAAO,UACP,SAAU,eACd,EACA,MAAO,CACH,MAAO,QACP,MAAO,QACP,SAAU,eACd,EACA,KAAM,CACF,MAAO,SACP,MAAO,OACP,SAAU,eACd,EACA,QAAS,CACL,MAAO,QACP,MAAO,UACP,SAAU,eACd,EACA,MAAO,CACH,MAAO,UACP,MAAO,QACP,SAAU,OACd,EACA,KAAM,CACF,MAAO,OACP,MAAO,UACP,SAAU,eACd,EACA,KAAM,CACF,MAAO,SACP,MAAO,UACP,SAAU,SACd,EACA,MAAO,CACH,MAAO,SACP,MAAO,WACP,SAAU,eACd,CACJ,ECxGO,IAAMC,EAAuDC,GAA0E,CAE1I,IAAMC,EAAS,OAAO,KAAKD,CAAK,EAAE,IAAKE,GAAMF,EAAME,CAAM,EAAE,OAAS,EAAE,EAEtE,OAAID,EAAO,SAAW,EACX,GAIJA,EAAO,OAAO,CAACC,EAAGC,IAAOD,EAAE,OAASC,EAAE,OAASD,EAAIC,CAAE,CAChE","sourcesContent":["import type { DefaultLoggerTypes } from \"./types\";\n\n/**\n * Log Levels\n * The log levels pail uses are those defined in the syslog protocol @see https://datatracker.ietf.org/doc/html/rfc5424#page-36, which are:\n */\nexport const EXTENDED_RFC_5424_LOG_LEVELS = {\n alert: 7, // Action must be taken immediately. Example: Entire website down, database unavailable, etc. This should trigger the SMS alerts and wake you up.\n critical: 6, // Critical conditions. Example: Application component unavailable, unexpected exception.\n debug: 1, // Detailed debug information.\n emergency: 8, // Emergency: system is unusable.\n error: 5, // Runtime errors that do not require immediate action but should typically be logged and monitored.\n informational: 2, // Interesting events. Examples: User logs in, SQL logs.\n notice: 3, // Normal but significant events.\n trace: 2, // Trace information.\n warning: 4, // Exceptional occurrences that are not errors. Examples: Use of deprecated APIs, poor use of an API, undesirable things that are not necessarily wrong.\n};\n\nexport const LOG_TYPES: DefaultLoggerTypes = {\n alert: {\n color: \"red\",\n label: \"alert\",\n logLevel: \"alert\",\n },\n await: {\n color: \"blue\",\n label: \"awaiting\",\n logLevel: \"informational\",\n },\n complete: {\n color: \"cyan\",\n label: \"complete\",\n logLevel: \"informational\",\n },\n critical: {\n color: \"red\",\n label: \"critical\",\n logLevel: \"critical\",\n },\n debug: {\n color: \"gray\",\n label: \"debug\",\n logLevel: \"debug\",\n },\n emergency: {\n color: \"red\",\n label: \"emergency\",\n logLevel: \"emergency\",\n },\n error: {\n color: \"red\",\n label: \"error\",\n logLevel: \"error\",\n },\n info: {\n color: \"blue\",\n label: \"info\",\n logLevel: \"informational\",\n },\n log: {\n label: \"\",\n logLevel: \"informational\",\n },\n notice: {\n color: \"blue\",\n label: \"notice\",\n logLevel: \"notice\",\n },\n pending: {\n color: \"magenta\",\n label: \"pending\",\n logLevel: \"informational\",\n },\n start: {\n color: \"green\",\n label: \"start\",\n logLevel: \"informational\",\n },\n stop: {\n color: \"yellow\",\n label: \"stop\",\n logLevel: \"informational\",\n },\n success: {\n color: \"green\",\n label: \"success\",\n logLevel: \"informational\",\n },\n trace: {\n color: \"magenta\",\n label: \"trace\",\n logLevel: \"trace\",\n },\n wait: {\n color: \"blue\",\n label: \"waiting\",\n logLevel: \"informational\",\n },\n warn: {\n color: \"yellow\",\n label: \"warning\",\n logLevel: \"warning\",\n },\n watch: {\n color: \"yellow\",\n label: \"watching\",\n logLevel: \"informational\",\n },\n};\n","import type { LiteralUnion } from \"type-fest\";\n\nimport type { DefaultLogTypes, LoggerTypesConfig } from \"../types\";\n\nexport const getLongestLabel = <L extends string, T extends string>(types: LoggerTypesConfig<LiteralUnion<DefaultLogTypes, T>, L>): string => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n const labels = Object.keys(types).map((x) => types[x as T].label ?? \"\");\n\n if (labels.length === 0) {\n return \"\";\n }\n\n // eslint-disable-next-line unicorn/no-array-reduce\n return labels.reduce((x, y) => (x.length > y.length ? x : y));\n};\n"]}
1
+ {"version":3,"sources":["../src/constants.ts","../src/util/get-longest-label.ts"],"names":["EXTENDED_RFC_5424_LOG_LEVELS","LOG_TYPES","getLongestLabel","types","labels","x","y"],"mappings":"AAMO,IAAMA,EAA+B,CACxC,MAAO,EACP,SAAU,EACV,MAAO,EACP,UAAW,EACX,MAAO,EACP,cAAe,EACf,OAAQ,EACR,MAAO,EACP,QAAS,CACb,EAEaC,EAAgC,CACzC,MAAO,CACH,MAAO,MACP,MAAO,QACP,SAAU,OACd,EACA,MAAO,CACH,MAAO,OACP,MAAO,WACP,SAAU,eACd,EACA,SAAU,CACN,MAAO,OACP,MAAO,WACP,SAAU,eACd,EACA,SAAU,CACN,MAAO,MACP,MAAO,WACP,SAAU,UACd,EACA,MAAO,CACH,MAAO,OACP,MAAO,QACP,SAAU,OACd,EACA,UAAW,CACP,MAAO,MACP,MAAO,YACP,SAAU,WACd,EACA,MAAO,CACH,MAAO,MACP,MAAO,QACP,SAAU,OACd,EACA,KAAM,CACF,MAAO,OACP,MAAO,OACP,SAAU,eACd,EACA,IAAK,CACD,MAAO,GACP,SAAU,eACd,EACA,OAAQ,CACJ,MAAO,OACP,MAAO,SACP,SAAU,QACd,EACA,QAAS,CACL,MAAO,UACP,MAAO,UACP,SAAU,eACd,EACA,MAAO,CACH,MAAO,QACP,MAAO,QACP,SAAU,eACd,EACA,KAAM,CACF,MAAO,SACP,MAAO,OACP,SAAU,eACd,EACA,QAAS,CACL,MAAO,QACP,MAAO,UACP,SAAU,eACd,EACA,MAAO,CACH,MAAO,UACP,MAAO,QACP,SAAU,OACd,EACA,KAAM,CACF,MAAO,OACP,MAAO,UACP,SAAU,eACd,EACA,KAAM,CACF,MAAO,SACP,MAAO,UACP,SAAU,SACd,EACA,MAAO,CACH,MAAO,SACP,MAAO,WACP,SAAU,eACd,CACJ,EC1GO,IAAMC,EAAuDC,GAA0E,CAC1I,IAAMC,EAAS,OAAO,KAAKD,CAAK,EAAE,IAAKE,GAAMF,EAAME,CAAM,EAAE,OAAS,EAAE,EAEtE,OAAID,EAAO,SAAW,EACX,GAIJA,EAAO,OAAO,CAACC,EAAGC,IAAOD,EAAE,OAASC,EAAE,OAASD,EAAIC,CAAE,CAChE","sourcesContent":["import type { DefaultLoggerTypes } from \"./types\";\n\n/**\n * Log Levels\n * The log levels pail uses are those defined in the syslog protocol @see https://datatracker.ietf.org/doc/html/rfc5424#page-36, which are:\n */\nexport const EXTENDED_RFC_5424_LOG_LEVELS = {\n alert: 7, // Action must be taken immediately. Example: Entire website down, database unavailable, etc. This should trigger the SMS alerts and wake you up.\n critical: 6, // Critical conditions. Example: Application component unavailable, unexpected exception.\n debug: 1, // Detailed debug information.\n emergency: 8, // Emergency: system is unusable.\n error: 5, // Runtime errors that do not require immediate action but should typically be logged and monitored.\n informational: 2, // Interesting events. Examples: User logs in, SQL logs.\n notice: 3, // Normal but significant events.\n trace: 2, // Trace information.\n warning: 4, // Exceptional occurrences that are not errors. Examples: Use of deprecated APIs, poor use of an API, undesirable things that are not necessarily wrong.\n};\n\nexport const LOG_TYPES: DefaultLoggerTypes = {\n alert: {\n color: \"red\",\n label: \"alert\",\n logLevel: \"alert\",\n },\n await: {\n color: \"blue\",\n label: \"awaiting\",\n logLevel: \"informational\",\n },\n complete: {\n color: \"cyan\",\n label: \"complete\",\n logLevel: \"informational\",\n },\n critical: {\n color: \"red\",\n label: \"critical\",\n logLevel: \"critical\",\n },\n debug: {\n color: \"gray\",\n label: \"debug\",\n logLevel: \"debug\",\n },\n emergency: {\n color: \"red\",\n label: \"emergency\",\n logLevel: \"emergency\",\n },\n error: {\n color: \"red\",\n label: \"error\",\n logLevel: \"error\",\n },\n info: {\n color: \"blue\",\n label: \"info\",\n logLevel: \"informational\",\n },\n log: {\n label: \"\",\n logLevel: \"informational\",\n },\n notice: {\n color: \"blue\",\n label: \"notice\",\n logLevel: \"notice\",\n },\n pending: {\n color: \"magenta\",\n label: \"pending\",\n logLevel: \"informational\",\n },\n start: {\n color: \"green\",\n label: \"start\",\n logLevel: \"informational\",\n },\n stop: {\n color: \"yellow\",\n label: \"stop\",\n logLevel: \"informational\",\n },\n success: {\n color: \"green\",\n label: \"success\",\n logLevel: \"informational\",\n },\n trace: {\n color: \"magenta\",\n label: \"trace\",\n logLevel: \"trace\",\n },\n wait: {\n color: \"blue\",\n label: \"waiting\",\n logLevel: \"informational\",\n },\n warn: {\n color: \"yellow\",\n label: \"warning\",\n logLevel: \"warning\",\n },\n watch: {\n color: \"yellow\",\n label: \"watching\",\n logLevel: \"informational\",\n },\n};\n","import type { DefaultLogTypes, LiteralUnion, LoggerTypesConfig } from \"../types\";\n\nexport const getLongestLabel = <L extends string, T extends string>(types: LoggerTypesConfig<LiteralUnion<DefaultLogTypes, T>, L>): string => {\n const labels = Object.keys(types).map((x) => types[x as T].label ?? \"\");\n\n if (labels.length === 0) {\n return \"\";\n }\n\n // eslint-disable-next-line unicorn/no-array-reduce\n return labels.reduce((x, y) => (x.length > y.length ? x : y));\n};\n"]}
@@ -0,0 +1,7 @@
1
+ import { build } from '@visulima/fmt';
2
+
3
+ var o=class{#t;#n;constructor(t={}){this.#n=t.formatters;}setStringify(t){this.#t=t;}process(t){let n=build({formatters:this.#n,stringify:r=>{let i=this.#t(r);return i===void 0?(console.warn("Unable to stringify value of type "+typeof r,r),"undefined"):i}});return t.message!==void 0&&(t.message=this._format(n,t.message,t.context??[])),t}_format(t,n,r=[]){if(typeof n=="string")return t(n,r);if(typeof n=="object"&&n!==null)for(let i in n){let e=n[i];(typeof e=="string"||Array.isArray(e)||typeof e=="object")&&(n[i]=this._format(t,e,r));}return n}};
4
+
5
+ export { o as a };
6
+ //# sourceMappingURL=out.js.map
7
+ //# sourceMappingURL=chunk-SR3Q3EUO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/processor/message-formatter-processor.ts"],"names":["build","MessageFormatterProcessor","#stringify","#formatters","options","function_","meta","formatter","value","stringified","data","arguments_","index"],"mappings":"AACA,OAAS,SAAAA,MAAa,gBAKf,IAAMC,EAAN,KAAiG,CAEpGC,GAESC,GAEF,YAAYC,EAA8D,CAAC,EAAG,CACjF,KAAKD,GAAcC,EAAQ,UAC/B,CAGO,aAAaC,EAAsB,CACtC,KAAKH,GAAaG,CACtB,CAEO,QAAQC,EAAwB,CACnC,IAAMC,EAAYP,EAAM,CACpB,WAAY,KAAKG,GACjB,UAAYK,GAAmB,CAC3B,IAAMC,EAAe,KAAKP,GAAgCM,CAAK,EAE/D,OAAIC,IAAgB,QAEhB,QAAQ,KAAK,qCAAuC,OAAOD,EAAOA,CAAK,EAEhE,aAGJC,CACX,CACJ,CAAY,EAEZ,OAAIH,EAAK,UAAY,SAEjBA,EAAK,QAAU,KAAK,QAAQC,EAAWD,EAAK,QAASA,EAAK,SAAW,CAAC,CAAC,GAGpEA,CACX,CAGQ,QAAQC,EAA0BG,EAAWC,EAAwB,CAAC,EAAQ,CAClF,GAAI,OAAOD,GAAS,SAChB,OAAOH,EAAUG,EAAgBC,CAAU,EAG/C,GAAI,OAAOD,GAAS,UAAYA,IAAS,KAErC,QAAWE,KAASF,EAAuD,CAEvE,IAAMF,EAASE,EAAaE,CAAK,GAE7B,OAAOJ,GAAU,UAAY,MAAM,QAAQA,CAAK,GAAK,OAAOA,GAAU,YAEtEE,EAAKE,CAAK,EAAI,KAAK,QAAQL,EAAWC,EAAOG,CAAU,EAE/D,CAGJ,OAAOD,CACX,CACJ","sourcesContent":["import type { format, FormatterFunction, Options } from \"@visulima/fmt\";\nimport { build } from \"@visulima/fmt\";\nimport type { stringify } from \"safe-stable-stringify\";\n\nimport type { Meta, StringifyAwareProcessor } from \"../types\";\n\nexport class MessageFormatterProcessor<L extends string = string> implements StringifyAwareProcessor<L> {\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n #stringify: typeof stringify | undefined;\n\n readonly #formatters: Record<string, FormatterFunction> | undefined;\n\n public constructor(options: { formatters?: Record<string, FormatterFunction> } = {}) {\n this.#formatters = options.formatters;\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n public setStringify(function_: any): void {\n this.#stringify = function_;\n }\n\n public process(meta: Meta<L>): Meta<L> {\n const formatter = build({\n formatters: this.#formatters,\n stringify: (value: unknown) => {\n const stringified = (this.#stringify as typeof stringify)(value);\n\n if (stringified === undefined) {\n // eslint-disable-next-line no-console\n console.warn(\"Unable to stringify value of type \" + typeof value, value);\n\n return \"undefined\";\n }\n\n return stringified;\n },\n } as Options);\n\n if (meta.message !== undefined) {\n // eslint-disable-next-line no-param-reassign\n meta.message = this._format(formatter, meta.message, meta.context ?? []);\n }\n\n return meta;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _format(formatter: typeof format, data: any, arguments_: unknown[] = []): any {\n if (typeof data === \"string\") {\n return formatter(data as string, arguments_);\n }\n\n if (typeof data === \"object\" && data !== null) {\n // eslint-disable-next-line guard-for-in,no-loops/no-loops,no-restricted-syntax\n for (const index in data as Record<string, unknown> | [string, unknown[]]) {\n // eslint-disable-next-line security/detect-object-injection,@typescript-eslint/no-explicit-any\n const value = (data as any)[index];\n\n if (typeof value === \"string\" || Array.isArray(value) || typeof value === \"object\") {\n // eslint-disable-next-line no-param-reassign,security/detect-object-injection\n data[index] = this._format(formatter, value, arguments_);\n }\n }\n }\n\n return data;\n }\n}\n"]}
@@ -0,0 +1,5 @@
1
+ var n=class{_stringify;setStringify(t){this._stringify=t;}log(t){let{file:e,type:l,...i}=t;i.label&&(i.label=i.label.trim()),e&&(i.file=e.name+":"+e.line+(e.column?":"+e.column:"")),this._log(this._stringify(i),l.level);}};
2
+
3
+ export { n as a };
4
+ //# sourceMappingURL=out.js.map
5
+ //# sourceMappingURL=chunk-TAH23BHM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/reporter/json/abstract-json-reporter.ts"],"names":["AbstractJsonReporter","function_","meta","file","type","rest"],"mappings":"AAIO,IAAeA,EAAf,KAAmG,CAE5F,WAGH,aAAaC,EAAsB,CACtC,KAAK,WAAaA,CACtB,CAEO,IAAIC,EAA6B,CAGpC,GAAM,CAAE,KAAAC,EAAM,KAAAC,EAAM,GAAGC,CAAK,EAAIH,EAE5BG,EAAK,QACLA,EAAK,MAAQA,EAAK,MAAM,KAAK,GAG7BF,IAECE,EAAqE,KAAOF,EAAK,KAAO,IAAMA,EAAK,MAAQA,EAAK,OAAS,IAAMA,EAAK,OAAS,KAGlJ,KAAK,KAAM,KAAK,WAAgCE,CAAI,EAAaD,EAAK,KAAK,CAC/E,CAGJ","sourcesContent":["import type { stringify } from \"safe-stable-stringify\";\n\nimport type { ExtendedRfc5424LogLevels, LiteralUnion, ReadonlyMeta, StringifyAwareReporter } from \"../../types\";\n\nexport abstract class AbstractJsonReporter<L extends string = never> implements StringifyAwareReporter<L> {\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n protected _stringify: typeof stringify | undefined;\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n public setStringify(function_: any): void {\n this._stringify = function_;\n }\n\n public log(meta: ReadonlyMeta<L>): void {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment,@typescript-eslint/prefer-ts-expect-error\n // @ts-ignore -- tsup can find the type\n const { file, type, ...rest } = meta;\n\n if (rest.label) {\n rest.label = rest.label.trim();\n }\n\n if (file) {\n // This is a hack to make the file property a string\n (rest as unknown as Omit<ReadonlyMeta<L>, \"file\"> & { file: string }).file = file.name + \":\" + file.line + (file.column ? \":\" + file.column : \"\");\n }\n\n this._log((this._stringify as typeof stringify)(rest) as string, type.level);\n }\n\n protected abstract _log(message: string, logLevel: LiteralUnion<ExtendedRfc5424LogLevels, L>): void;\n}\n"]}
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ var chunkQINSQ6TU_cjs = require('./chunk-QINSQ6TU.cjs');
4
+
5
+ var a=o=>{let e=Object.keys(o).map(t=>o[t].badge??"");return e.length===0?"":e.reduce((t,r)=>t.length>r.length?t:r)};var n=class{_styles;_loggerTypes;_stringify;constructor(e){this._styles={bold:{label:!1},dateFormatter:t=>[t.getHours(),t.getMinutes(),t.getSeconds()].map(r=>String(r).padStart(2,"0")).join(":"),underline:{label:!1,message:!1,prefix:!1,suffix:!1},uppercase:{label:!1},...e},this._loggerTypes=chunkQINSQ6TU_cjs.b;}setStringify(e){this._stringify=e;}setLoggerTypes(e){this._loggerTypes=e;}};
6
+
7
+ exports.a = a;
8
+ exports.b = n;
9
+ //# sourceMappingURL=out.js.map
10
+ //# sourceMappingURL=chunk-YP3U3DTV.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/util/get-longest-badge.ts","../src/reporter/pretty/abstract-pretty-reporter.ts"],"names":["getLongestBadge","types","badges","x","y","AbstractPrettyReporter","options","date","n","LOG_TYPES","function_"],"mappings":"yCAEO,IAAMA,EAAuDC,GAA0E,CAC1I,IAAMC,EAAS,OAAO,KAAKD,CAAK,EAAE,IAAKE,GAAMF,EAAME,CAAM,EAAE,OAAS,EAAE,EAEtE,OAAID,EAAO,SAAW,EACX,GAIJA,EAAO,OAAO,CAACC,EAAGC,IAAOD,EAAE,OAASC,EAAE,OAASD,EAAIC,CAAE,CAChE,ECNO,IAAeC,EAAf,KAEP,CACuB,QAET,aAGA,WAEA,YAAYC,EAAsC,CACxD,KAAK,QAAU,CACX,KAAM,CACF,MAAO,EACX,EACA,cAAgBC,GAAe,CAACA,EAAK,SAAS,EAAGA,EAAK,WAAW,EAAGA,EAAK,WAAW,CAAC,EAAE,IAAKC,GAAM,OAAOA,CAAC,EAAE,SAAS,EAAG,GAAG,CAAC,EAAE,KAAK,GAAG,EACtI,UAAW,CACP,MAAO,GACP,QAAS,GACT,OAAQ,GACR,OAAQ,EACZ,EACA,UAAW,CACP,MAAO,EACX,EACA,GAAGF,CACP,EAEA,KAAK,aAAeG,CACxB,CAGO,aAAaC,EAAsB,CACtC,KAAK,WAAaA,CACtB,CAEO,eAAeT,EAAqE,CACvF,KAAK,aAAeA,CACxB,CAGJ","sourcesContent":["import type { DefaultLogTypes, LiteralUnion, LoggerTypesConfig } from \"../types\";\n\nexport const getLongestBadge = <L extends string, T extends string>(types: LoggerTypesConfig<LiteralUnion<DefaultLogTypes, T>, L>): string => {\n const badges = Object.keys(types).map((x) => types[x as T].badge ?? \"\");\n\n if (badges.length === 0) {\n return \"\";\n }\n\n // eslint-disable-next-line unicorn/no-array-reduce\n return badges.reduce((x, y) => (x.length > y.length ? x : y));\n};\n","import type { stringify } from \"safe-stable-stringify\";\n\nimport { LOG_TYPES } from \"../../constants\";\nimport type { DefaultLogTypes, LiteralUnion, LoggerTypesAwareReporter, LoggerTypesConfig, ReadonlyMeta, StringifyAwareReporter } from \"../../types\";\n\nexport abstract class AbstractPrettyReporter<T extends string = never, L extends string = never>\n implements LoggerTypesAwareReporter<T, L>, StringifyAwareReporter<L>\n{\n protected readonly _styles: PrettyStyleOptions;\n\n protected _loggerTypes: LoggerTypesConfig<LiteralUnion<DefaultLogTypes, T>, L>;\n\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n protected _stringify: typeof stringify | undefined;\n\n protected constructor(options: Partial<PrettyStyleOptions>) {\n this._styles = {\n bold: {\n label: false,\n },\n dateFormatter: (date: Date) => [date.getHours(), date.getMinutes(), date.getSeconds()].map((n) => String(n).padStart(2, \"0\")).join(\":\"),\n underline: {\n label: false,\n message: false,\n prefix: false,\n suffix: false,\n },\n uppercase: {\n label: false,\n },\n ...options,\n } as PrettyStyleOptions;\n\n this._loggerTypes = LOG_TYPES as LoggerTypesConfig<LiteralUnion<DefaultLogTypes, T>, L>;\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n public setStringify(function_: any): void {\n this._stringify = function_;\n }\n\n public setLoggerTypes(types: LoggerTypesConfig<LiteralUnion<DefaultLogTypes, T>, L>): void {\n this._loggerTypes = types;\n }\n\n public abstract log(meta: ReadonlyMeta<L>): void;\n}\n\nexport type PrettyStyleOptions = {\n bold: {\n label: boolean;\n };\n dateFormatter: (date: Date) => string;\n // Length of the message before a line break is inserted\n messageLength: number | undefined;\n underline: {\n label: boolean;\n prefix: boolean;\n suffix: boolean;\n };\n uppercase: {\n label: boolean;\n };\n};\n"]}
@@ -0,0 +1,7 @@
1
+ import { b } from './chunk-NF47XQ47.js';
2
+
3
+ var g=o=>{let e=Object.keys(o).map(t=>o[t].badge??"");return e.length===0?"":e.reduce((t,r)=>t.length>r.length?t:r)};var n=class{_styles;_loggerTypes;_stringify;constructor(e){this._styles={bold:{label:!1},dateFormatter:t=>[t.getHours(),t.getMinutes(),t.getSeconds()].map(r=>String(r).padStart(2,"0")).join(":"),underline:{label:!1,message:!1,prefix:!1,suffix:!1},uppercase:{label:!1},...e},this._loggerTypes=b;}setStringify(e){this._stringify=e;}setLoggerTypes(e){this._loggerTypes=e;}};
4
+
5
+ export { g as a, n as b };
6
+ //# sourceMappingURL=out.js.map
7
+ //# sourceMappingURL=chunk-ZB7IIFHO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/util/get-longest-badge.ts","../src/reporter/pretty/abstract-pretty-reporter.ts"],"names":["getLongestBadge","types","badges","x","y","AbstractPrettyReporter","options","date","n","LOG_TYPES","function_"],"mappings":"wCAEO,IAAMA,EAAuDC,GAA0E,CAC1I,IAAMC,EAAS,OAAO,KAAKD,CAAK,EAAE,IAAKE,GAAMF,EAAME,CAAM,EAAE,OAAS,EAAE,EAEtE,OAAID,EAAO,SAAW,EACX,GAIJA,EAAO,OAAO,CAACC,EAAGC,IAAOD,EAAE,OAASC,EAAE,OAASD,EAAIC,CAAE,CAChE,ECNO,IAAeC,EAAf,KAEP,CACuB,QAET,aAGA,WAEA,YAAYC,EAAsC,CACxD,KAAK,QAAU,CACX,KAAM,CACF,MAAO,EACX,EACA,cAAgBC,GAAe,CAACA,EAAK,SAAS,EAAGA,EAAK,WAAW,EAAGA,EAAK,WAAW,CAAC,EAAE,IAAKC,GAAM,OAAOA,CAAC,EAAE,SAAS,EAAG,GAAG,CAAC,EAAE,KAAK,GAAG,EACtI,UAAW,CACP,MAAO,GACP,QAAS,GACT,OAAQ,GACR,OAAQ,EACZ,EACA,UAAW,CACP,MAAO,EACX,EACA,GAAGF,CACP,EAEA,KAAK,aAAeG,CACxB,CAGO,aAAaC,EAAsB,CACtC,KAAK,WAAaA,CACtB,CAEO,eAAeT,EAAqE,CACvF,KAAK,aAAeA,CACxB,CAGJ","sourcesContent":["import type { DefaultLogTypes, LiteralUnion, LoggerTypesConfig } from \"../types\";\n\nexport const getLongestBadge = <L extends string, T extends string>(types: LoggerTypesConfig<LiteralUnion<DefaultLogTypes, T>, L>): string => {\n const badges = Object.keys(types).map((x) => types[x as T].badge ?? \"\");\n\n if (badges.length === 0) {\n return \"\";\n }\n\n // eslint-disable-next-line unicorn/no-array-reduce\n return badges.reduce((x, y) => (x.length > y.length ? x : y));\n};\n","import type { stringify } from \"safe-stable-stringify\";\n\nimport { LOG_TYPES } from \"../../constants\";\nimport type { DefaultLogTypes, LiteralUnion, LoggerTypesAwareReporter, LoggerTypesConfig, ReadonlyMeta, StringifyAwareReporter } from \"../../types\";\n\nexport abstract class AbstractPrettyReporter<T extends string = never, L extends string = never>\n implements LoggerTypesAwareReporter<T, L>, StringifyAwareReporter<L>\n{\n protected readonly _styles: PrettyStyleOptions;\n\n protected _loggerTypes: LoggerTypesConfig<LiteralUnion<DefaultLogTypes, T>, L>;\n\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n protected _stringify: typeof stringify | undefined;\n\n protected constructor(options: Partial<PrettyStyleOptions>) {\n this._styles = {\n bold: {\n label: false,\n },\n dateFormatter: (date: Date) => [date.getHours(), date.getMinutes(), date.getSeconds()].map((n) => String(n).padStart(2, \"0\")).join(\":\"),\n underline: {\n label: false,\n message: false,\n prefix: false,\n suffix: false,\n },\n uppercase: {\n label: false,\n },\n ...options,\n } as PrettyStyleOptions;\n\n this._loggerTypes = LOG_TYPES as LoggerTypesConfig<LiteralUnion<DefaultLogTypes, T>, L>;\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n public setStringify(function_: any): void {\n this._stringify = function_;\n }\n\n public setLoggerTypes(types: LoggerTypesConfig<LiteralUnion<DefaultLogTypes, T>, L>): void {\n this._loggerTypes = types;\n }\n\n public abstract log(meta: ReadonlyMeta<L>): void;\n}\n\nexport type PrettyStyleOptions = {\n bold: {\n label: boolean;\n };\n dateFormatter: (date: Date) => string;\n // Length of the message before a line break is inserted\n messageLength: number | undefined;\n underline: {\n label: boolean;\n prefix: boolean;\n suffix: boolean;\n };\n uppercase: {\n label: boolean;\n };\n};\n"]}
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ var n=class{_stringify;setStringify(t){this._stringify=t;}log(t){let{file:e,type:l,...i}=t;i.label&&(i.label=i.label.trim()),e&&(i.file=e.name+":"+e.line+(e.column?":"+e.column:"")),this._log(this._stringify(i),l.level);}};
4
+
5
+ exports.a = n;
6
+ //# sourceMappingURL=out.js.map
7
+ //# sourceMappingURL=chunk-ZJMTPHZR.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/reporter/json/abstract-json-reporter.ts"],"names":["AbstractJsonReporter","function_","meta","file","type","rest"],"mappings":"AAIO,IAAeA,EAAf,KAAmG,CAE5F,WAGH,aAAaC,EAAsB,CACtC,KAAK,WAAaA,CACtB,CAEO,IAAIC,EAA6B,CAGpC,GAAM,CAAE,KAAAC,EAAM,KAAAC,EAAM,GAAGC,CAAK,EAAIH,EAE5BG,EAAK,QACLA,EAAK,MAAQA,EAAK,MAAM,KAAK,GAG7BF,IAECE,EAAqE,KAAOF,EAAK,KAAO,IAAMA,EAAK,MAAQA,EAAK,OAAS,IAAMA,EAAK,OAAS,KAGlJ,KAAK,KAAM,KAAK,WAAgCE,CAAI,EAAaD,EAAK,KAAK,CAC/E,CAGJ","sourcesContent":["import type { stringify } from \"safe-stable-stringify\";\n\nimport type { ExtendedRfc5424LogLevels, LiteralUnion, ReadonlyMeta, StringifyAwareReporter } from \"../../types\";\n\nexport abstract class AbstractJsonReporter<L extends string = never> implements StringifyAwareReporter<L> {\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n protected _stringify: typeof stringify | undefined;\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n public setStringify(function_: any): void {\n this._stringify = function_;\n }\n\n public log(meta: ReadonlyMeta<L>): void {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment,@typescript-eslint/prefer-ts-expect-error\n // @ts-ignore -- tsup can find the type\n const { file, type, ...rest } = meta;\n\n if (rest.label) {\n rest.label = rest.label.trim();\n }\n\n if (file) {\n // This is a hack to make the file property a string\n (rest as unknown as Omit<ReadonlyMeta<L>, \"file\"> & { file: string }).file = file.name + \":\" + file.line + (file.column ? \":\" + file.column : \"\");\n }\n\n this._log((this._stringify as typeof stringify)(rest) as string, type.level);\n }\n\n protected abstract _log(message: string, logLevel: LiteralUnion<ExtendedRfc5424LogLevels, L>): void;\n}\n"]}
@@ -1,14 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunkY36365SA_cjs = require('./chunk-Y36365SA.cjs');
4
- var chunkIQF3SXQR_cjs = require('./chunk-IQF3SXQR.cjs');
5
- var chunk32FAOPTJ_cjs = require('./chunk-32FAOPTJ.cjs');
6
- require('./chunk-4RK45K5E.cjs');
7
- require('./chunk-7OFJLC7L.cjs');
8
- require('./chunk-MU2CRXVO.cjs');
9
- require('./chunk-6ATEEAVC.cjs');
3
+ var chunk2SZMC2SJ_cjs = require('./chunk-2SZMC2SJ.cjs');
4
+ var chunkF4FJCQ4L_cjs = require('./chunk-F4FJCQ4L.cjs');
5
+ var chunk5MNFJRLM_cjs = require('./chunk-5MNFJRLM.cjs');
6
+ require('./chunk-N2UPJYJR.cjs');
7
+ require('./chunk-ZJMTPHZR.cjs');
8
+ require('./chunk-QINSQ6TU.cjs');
10
9
 
11
- var p=s=>new chunkY36365SA_cjs.b({processors:[new chunkIQF3SXQR_cjs.a,...typeof window<"u"?[new chunkY36365SA_cjs.c]:[]],reporters:[new chunk32FAOPTJ_cjs.a],...s}),f=p();
10
+ var p=s=>new chunk2SZMC2SJ_cjs.b({processors:[new chunkF4FJCQ4L_cjs.a,...typeof window<"u"?[new chunk2SZMC2SJ_cjs.c]:[]],reporters:[new chunk5MNFJRLM_cjs.a],...s}),f=p();
12
11
 
13
12
  exports.createPail = p;
14
13
  exports.pail = f;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.browser.ts"],"names":["createPail","options","PailBrowser","MessageFormatterProcessor","ErrorProcessor","JsonReporter","pail"],"mappings":"sPAOO,IAAMA,EAAkEC,GAC3E,IAAIC,EAAkB,CAClB,WAAY,CACR,IAAIC,EAEJ,GAAI,OAAO,OAAW,IAAe,CAAC,IAAIC,CAAgB,EAAuB,CAAC,CACtF,EACA,UAAW,CAAC,IAAIC,CAAiB,EACjC,GAAGJ,CACP,CAAC,EAEQK,EAAON,EAAW","sourcesContent":["import type { PailBrowserType } from \"./pail.browser\";\nimport { PailBrowser } from \"./pail.browser\";\nimport { ErrorProcessor } from \"./processor/error/error-processor\";\nimport { MessageFormatterProcessor } from \"./processor/message-formatter-processor\";\nimport { JsonReporter } from \"./reporter/json/json.browser\";\nimport type { ConstructorOptions, Processor } from \"./types\";\n\nexport const createPail = <T extends string = never, L extends string = never>(options?: ConstructorOptions<T, L>): PailBrowserType<T, L> =>\n new PailBrowser<T, L>({\n processors: [\n new MessageFormatterProcessor<L>(),\n // eslint-disable-next-line unicorn/no-negated-condition\n ...(typeof window !== 'undefined' ? ([new ErrorProcessor()] as Processor<L>[]) : []),\n ],\n reporters: [new JsonReporter<L>()],\n ...options,\n });\n\nexport const pail = createPail();\n\nexport type { PailBrowserType as Pail } from \"./pail.browser\";\nexport type {\n ConstructorOptions,\n DefaultLoggerTypes,\n DefaultLogTypes,\n ExtendedRfc5424LogLevels,\n LoggerConfiguration,\n LoggerFunction,\n LoggerTypesAwareReporter,\n LoggerTypesConfig,\n Processor,\n Reporter,\n StreamAwareReporter,\n} from \"./shared\";\n"]}
1
+ {"version":3,"sources":["../src/index.browser.ts"],"names":["createPail","options","PailBrowser","MessageFormatterProcessor","ErrorProcessor","JsonReporter","pail"],"mappings":"yNAOO,IAAMA,EAAkEC,GAC3E,IAAIC,EAAkB,CAClB,WAAY,CACR,IAAIC,EAEJ,GAAI,OAAO,OAAW,IAAe,CAAC,IAAIC,CAAgB,EAAuB,CAAC,CACtF,EACA,UAAW,CAAC,IAAIC,CAAiB,EACjC,GAAGJ,CACP,CAAC,EAEQK,EAAON,EAAW","sourcesContent":["import type { PailBrowserType } from \"./pail.browser\";\nimport { PailBrowser } from \"./pail.browser\";\nimport { ErrorProcessor } from \"./processor/error/error-processor\";\nimport { MessageFormatterProcessor } from \"./processor/message-formatter-processor\";\nimport { JsonReporter } from \"./reporter/json/json.browser\";\nimport type { ConstructorOptions, Processor } from \"./types\";\n\nexport const createPail = <T extends string = never, L extends string = never>(options?: ConstructorOptions<T, L>): PailBrowserType<T, L> =>\n new PailBrowser<T, L>({\n processors: [\n new MessageFormatterProcessor<L>(),\n // eslint-disable-next-line unicorn/no-negated-condition\n ...(typeof window !== \"undefined\" ? ([new ErrorProcessor()] as Processor<L>[]) : []),\n ],\n reporters: [new JsonReporter<L>()],\n ...options,\n });\n\nexport const pail = createPail();\n\nexport type { PailBrowserType as Pail } from \"./pail.browser\";\nexport type {\n ConstructorOptions,\n DefaultLoggerTypes,\n DefaultLogTypes,\n ExtendedRfc5424LogLevels,\n LoggerConfiguration,\n LoggerFunction,\n LoggerTypesAwareReporter,\n LoggerTypesConfig,\n Processor,\n Reporter,\n StreamAwareReporter,\n} from \"./shared\";\n"]}
@@ -1,11 +1,10 @@
1
- import { P as PailBrowserType } from './pail.browser-eQgV1vak.cjs';
2
- import { C as ConstructorOptions } from './types.d-RNxsa9NR.cjs';
3
- export { a as DefaultLogTypes, D as DefaultLoggerTypes, E as ExtendedRfc5424LogLevels, L as LoggerConfiguration, b as LoggerFunction, c as LoggerTypesAwareReporter, d as LoggerTypesConfig, P as Processor, R as Reporter, S as StreamAwareReporter } from './types.d-RNxsa9NR.cjs';
1
+ import { P as PailBrowserType } from './pail.browser-qG_FNUeK.cjs';
2
+ import { C as ConstructorOptions } from './types--_CcxoUw.cjs';
3
+ export { a as DefaultLogTypes, D as DefaultLoggerTypes, E as ExtendedRfc5424LogLevels, L as LoggerConfiguration, b as LoggerFunction, c as LoggerTypesAwareReporter, d as LoggerTypesConfig, P as Processor, R as Reporter, S as StreamAwareReporter } from './types--_CcxoUw.cjs';
4
4
  import 'safe-stable-stringify';
5
- import 'type-fest';
6
5
  import '@visulima/colorize';
7
6
 
8
- declare const createPail: <T extends string = never, L extends string = never>(options?: ConstructorOptions<T, L> | undefined) => PailBrowserType<T, L>;
7
+ declare const createPail: <T extends string = never, L extends string = never>(options?: ConstructorOptions<T, L>) => PailBrowserType<T, L>;
9
8
  declare const pail: PailBrowserType<never, never>;
10
9
 
11
10
  export { ConstructorOptions, PailBrowserType as Pail, createPail, pail };
@@ -1,11 +1,10 @@
1
- import { P as PailBrowserType } from './pail.browser-DH-2bBhK.js';
2
- import { C as ConstructorOptions } from './types.d-RNxsa9NR.js';
3
- export { a as DefaultLogTypes, D as DefaultLoggerTypes, E as ExtendedRfc5424LogLevels, L as LoggerConfiguration, b as LoggerFunction, c as LoggerTypesAwareReporter, d as LoggerTypesConfig, P as Processor, R as Reporter, S as StreamAwareReporter } from './types.d-RNxsa9NR.js';
1
+ import { P as PailBrowserType } from './pail.browser-0Ej0KEkV.js';
2
+ import { C as ConstructorOptions } from './types--_CcxoUw.js';
3
+ export { a as DefaultLogTypes, D as DefaultLoggerTypes, E as ExtendedRfc5424LogLevels, L as LoggerConfiguration, b as LoggerFunction, c as LoggerTypesAwareReporter, d as LoggerTypesConfig, P as Processor, R as Reporter, S as StreamAwareReporter } from './types--_CcxoUw.js';
4
4
  import 'safe-stable-stringify';
5
- import 'type-fest';
6
5
  import '@visulima/colorize';
7
6
 
8
- declare const createPail: <T extends string = never, L extends string = never>(options?: ConstructorOptions<T, L> | undefined) => PailBrowserType<T, L>;
7
+ declare const createPail: <T extends string = never, L extends string = never>(options?: ConstructorOptions<T, L>) => PailBrowserType<T, L>;
9
8
  declare const pail: PailBrowserType<never, never>;
10
9
 
11
10
  export { ConstructorOptions, PailBrowserType as Pail, createPail, pail };
@@ -1,10 +1,9 @@
1
- import { b, c } from './chunk-FJCEDFRI.js';
2
- import { a } from './chunk-ICPHL4AR.js';
3
- import { a as a$1 } from './chunk-G62M5WJH.js';
4
- import './chunk-PVAYQO5O.js';
5
- import './chunk-JYHWIRFR.js';
6
- import './chunk-EBP7SMYV.js';
7
- import './chunk-YKHMQW6V.js';
1
+ import { b, c } from './chunk-576JQ6DN.js';
2
+ import { a } from './chunk-SR3Q3EUO.js';
3
+ import { a as a$1 } from './chunk-KERJDMYV.js';
4
+ import './chunk-AFMDCM5W.js';
5
+ import './chunk-TAH23BHM.js';
6
+ import './chunk-NF47XQ47.js';
8
7
 
9
8
  var p=s=>new b({processors:[new a,...typeof window<"u"?[new c]:[]],reporters:[new a$1],...s}),L=p();
10
9
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.browser.ts"],"names":["createPail","options","PailBrowser","MessageFormatterProcessor","ErrorProcessor","JsonReporter","pail"],"mappings":"+OAOO,IAAMA,EAAkEC,GAC3E,IAAIC,EAAkB,CAClB,WAAY,CACR,IAAIC,EAEJ,GAAI,OAAO,OAAW,IAAe,CAAC,IAAIC,CAAgB,EAAuB,CAAC,CACtF,EACA,UAAW,CAAC,IAAIC,CAAiB,EACjC,GAAGJ,CACP,CAAC,EAEQK,EAAON,EAAW","sourcesContent":["import type { PailBrowserType } from \"./pail.browser\";\nimport { PailBrowser } from \"./pail.browser\";\nimport { ErrorProcessor } from \"./processor/error/error-processor\";\nimport { MessageFormatterProcessor } from \"./processor/message-formatter-processor\";\nimport { JsonReporter } from \"./reporter/json/json.browser\";\nimport type { ConstructorOptions, Processor } from \"./types\";\n\nexport const createPail = <T extends string = never, L extends string = never>(options?: ConstructorOptions<T, L>): PailBrowserType<T, L> =>\n new PailBrowser<T, L>({\n processors: [\n new MessageFormatterProcessor<L>(),\n // eslint-disable-next-line unicorn/no-negated-condition\n ...(typeof window !== 'undefined' ? ([new ErrorProcessor()] as Processor<L>[]) : []),\n ],\n reporters: [new JsonReporter<L>()],\n ...options,\n });\n\nexport const pail = createPail();\n\nexport type { PailBrowserType as Pail } from \"./pail.browser\";\nexport type {\n ConstructorOptions,\n DefaultLoggerTypes,\n DefaultLogTypes,\n ExtendedRfc5424LogLevels,\n LoggerConfiguration,\n LoggerFunction,\n LoggerTypesAwareReporter,\n LoggerTypesConfig,\n Processor,\n Reporter,\n StreamAwareReporter,\n} from \"./shared\";\n"]}
1
+ {"version":3,"sources":["../src/index.browser.ts"],"names":["createPail","options","PailBrowser","MessageFormatterProcessor","ErrorProcessor","JsonReporter","pail"],"mappings":"mNAOO,IAAMA,EAAkEC,GAC3E,IAAIC,EAAkB,CAClB,WAAY,CACR,IAAIC,EAEJ,GAAI,OAAO,OAAW,IAAe,CAAC,IAAIC,CAAgB,EAAuB,CAAC,CACtF,EACA,UAAW,CAAC,IAAIC,CAAiB,EACjC,GAAGJ,CACP,CAAC,EAEQK,EAAON,EAAW","sourcesContent":["import type { PailBrowserType } from \"./pail.browser\";\nimport { PailBrowser } from \"./pail.browser\";\nimport { ErrorProcessor } from \"./processor/error/error-processor\";\nimport { MessageFormatterProcessor } from \"./processor/message-formatter-processor\";\nimport { JsonReporter } from \"./reporter/json/json.browser\";\nimport type { ConstructorOptions, Processor } from \"./types\";\n\nexport const createPail = <T extends string = never, L extends string = never>(options?: ConstructorOptions<T, L>): PailBrowserType<T, L> =>\n new PailBrowser<T, L>({\n processors: [\n new MessageFormatterProcessor<L>(),\n // eslint-disable-next-line unicorn/no-negated-condition\n ...(typeof window !== \"undefined\" ? ([new ErrorProcessor()] as Processor<L>[]) : []),\n ],\n reporters: [new JsonReporter<L>()],\n ...options,\n });\n\nexport const pail = createPail();\n\nexport type { PailBrowserType as Pail } from \"./pail.browser\";\nexport type {\n ConstructorOptions,\n DefaultLoggerTypes,\n DefaultLogTypes,\n ExtendedRfc5424LogLevels,\n LoggerConfiguration,\n LoggerFunction,\n LoggerTypesAwareReporter,\n LoggerTypesConfig,\n Processor,\n Reporter,\n StreamAwareReporter,\n} from \"./shared\";\n"]}
@@ -1,28 +1,27 @@
1
1
  'use strict';
2
2
 
3
- var chunkY36365SA_cjs = require('./chunk-Y36365SA.cjs');
4
- var chunkIQF3SXQR_cjs = require('./chunk-IQF3SXQR.cjs');
5
- require('./chunk-4RK45K5E.cjs');
6
- var chunkGZRIZCRG_cjs = require('./chunk-GZRIZCRG.cjs');
7
- require('./chunk-46NTLZF7.cjs');
8
- require('./chunk-MU2CRXVO.cjs');
9
- var chunk6ATEEAVC_cjs = require('./chunk-6ATEEAVC.cjs');
10
- var K = require('terminal-size');
11
- var Y = require('wrap-ansi');
3
+ var chunk2SZMC2SJ_cjs = require('./chunk-2SZMC2SJ.cjs');
4
+ var chunkF4FJCQ4L_cjs = require('./chunk-F4FJCQ4L.cjs');
5
+ require('./chunk-N2UPJYJR.cjs');
6
+ var chunkO34IIMWQ_cjs = require('./chunk-O34IIMWQ.cjs');
7
+ require('./chunk-YP3U3DTV.cjs');
8
+ require('./chunk-QINSQ6TU.cjs');
9
+ var E = require('terminal-size');
10
+ var C = require('wrap-ansi');
12
11
  var string_decoder = require('string_decoder');
13
12
 
14
13
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
15
14
 
16
- var K__default = /*#__PURE__*/_interopDefault(K);
17
- var Y__default = /*#__PURE__*/_interopDefault(Y);
15
+ var E__default = /*#__PURE__*/_interopDefault(E);
16
+ var C__default = /*#__PURE__*/_interopDefault(C);
18
17
 
19
- var p,l,f,g,L,E=class{constructor(t,e){chunk6ATEEAVC_cjs.b(this,p,void 0);chunk6ATEEAVC_cjs.b(this,l,!1);chunk6ATEEAVC_cjs.b(this,f,!1);chunk6ATEEAVC_cjs.b(this,g,0);chunk6ATEEAVC_cjs.b(this,L,0);chunk6ATEEAVC_cjs.c(this,p,{stderr:e,stdout:t});}get lastLength(){return chunk6ATEEAVC_cjs.a(this,g)}get outside(){return chunk6ATEEAVC_cjs.a(this,L)}get isHooked(){return chunk6ATEEAVC_cjs.a(this,l)}get isSuspended(){return chunk6ATEEAVC_cjs.a(this,f)}erase(t,e=chunk6ATEEAVC_cjs.a(this,g)){if(!chunk6ATEEAVC_cjs.a(this,p)[t])throw new Error(`Stream "${t}" is not available`);chunk6ATEEAVC_cjs.a(this,p)[t].erase(e);}hook(){return chunk6ATEEAVC_cjs.a(this,l)||(Object.values(chunk6ATEEAVC_cjs.a(this,p)).forEach(t=>t.active()),this._clear(!0)),chunk6ATEEAVC_cjs.a(this,l)}resume(t,e){chunk6ATEEAVC_cjs.a(this,f)&&(chunk6ATEEAVC_cjs.c(this,f,!1),e&&this.erase(t,e),chunk6ATEEAVC_cjs.c(this,g,0),Object.values(chunk6ATEEAVC_cjs.a(this,p)).forEach(o=>o.active()));}suspend(t,e=!0){chunk6ATEEAVC_cjs.a(this,f)||(chunk6ATEEAVC_cjs.c(this,f,!0),e&&this.erase(t),Object.values(chunk6ATEEAVC_cjs.a(this,p)).forEach(o=>o.renew()));}unhook(t=!0){return chunk6ATEEAVC_cjs.a(this,l)&&(Object.values(chunk6ATEEAVC_cjs.a(this,p)).forEach(e=>e.inactive(t)),this._clear()),!chunk6ATEEAVC_cjs.a(this,l)}update(t,e,o=0){if(e.length>0){let a=chunk6ATEEAVC_cjs.a(this,p)[t];if(a){let{columns:w,rows:n}=K__default.default(),m=o>n?n-1:Math.max(0,Math.min(n-1,o)),d=this.lastLength-m,v=Math.max(d-n,this.outside),h=e.reduce((A,z)=>[...A,Y__default.default(z,w,{hard:!0,trim:!1,wordWrap:!0})],[]);n<=d?(a.erase(n),m<v&&(h=h.slice(v-m+1))):d&&a.erase(d),a.write(h.join(`
18
+ var g=class{#e;#t=!1;#i=!1;#r=0;#s=0;constructor(t,e){this.#e={stderr:e,stdout:t};}get lastLength(){return this.#r}get outside(){return this.#s}get isHooked(){return this.#t}get isSuspended(){return this.#i}erase(t,e=this.#r){if(this.#e[t]===void 0)throw new TypeError(`Stream "${t}" is not available`);this.#e[t].erase(e);}hook(){return this.#t||(Object.values(this.#e).forEach(t=>t.active()),this._clear(!0)),this.#t}resume(t,e){this.#i&&(this.#i=!1,e&&this.erase(t,e),this.#r=0,Object.values(this.#e).forEach(r=>r.active()));}suspend(t,e=!0){this.#i||(this.#i=!0,e&&this.erase(t),Object.values(this.#e).forEach(r=>r.renew()));}unhook(t=!0){return this.#t&&(Object.values(this.#e).forEach(e=>e.inactive(t)),this._clear()),!this.#t}update(t,e,r=0){if(e.length>0){if(this.#e[t]===void 0)throw new TypeError(`Stream "${t}" is not available`);let o=this.#e[t],{columns:u,rows:i}=E__default.default(),c=r>i?i-1:Math.max(0,Math.min(i-1,r)),n=this.lastLength-c,d=Math.max(n-i,this.outside),p=e.reduce((l,M)=>[...l,C__default.default(M,u,{hard:!0,trim:!1,wordWrap:!0})],[]);i<=n?(o.erase(i),c<d&&(p=p.slice(d-c+1))):n&&o.erase(n),o.write(p.join(`
20
19
  `)+`
21
- `),chunk6ATEEAVC_cjs.c(this,g,v?v+h.length+1:h.length),chunk6ATEEAVC_cjs.c(this,L,Math.max(this.lastLength-n,this.outside));}}}_clear(t=!1){chunk6ATEEAVC_cjs.c(this,l,t),chunk6ATEEAVC_cjs.c(this,g,0),chunk6ATEEAVC_cjs.c(this,L,0);}};p=new WeakMap,l=new WeakMap,f=new WeakMap,g=new WeakMap,L=new WeakMap;var u="\x1B[",$=u+"2J",q=u+"2K",Q=u+"G",X=(c=1)=>u+c+"A",O=process?.platform==="win32"?`${$}${u}0f`:`${$}${u}3J${u}H`,F=u+"?25l",U=u+"?25h",G=c=>{let t="";for(let e=0;e<c;e++)t+=q+(e<c-1?X():"");return c&&(t+=Q),t};var P,S,b,y,_=class _{constructor(t){chunk6ATEEAVC_cjs.b(this,P,new string_decoder.StringDecoder);chunk6ATEEAVC_cjs.b(this,S,[]);chunk6ATEEAVC_cjs.b(this,b,void 0);chunk6ATEEAVC_cjs.b(this,y,void 0);chunk6ATEEAVC_cjs.c(this,b,t.write),chunk6ATEEAVC_cjs.c(this,y,t);}active(){this.write(F),chunk6ATEEAVC_cjs.a(this,y).write=(t,...e)=>{let o=e.at(-1);return chunk6ATEEAVC_cjs.a(this,S).push(chunk6ATEEAVC_cjs.a(this,P).write(typeof t=="string"?Buffer.from(t,typeof e[0]=="string"?e[0]:void 0):Buffer.from(t))),typeof o=="function"&&o(),_.DRAIN};}erase(t){t>0&&this.write(G(t+1));}inactive(t=!1){chunk6ATEEAVC_cjs.a(this,S).length>0&&(t&&this.write(`
22
- `),chunk6ATEEAVC_cjs.a(this,S).forEach(e=>{this.write(e);}),chunk6ATEEAVC_cjs.c(this,S,[])),this.renew();}renew(){chunk6ATEEAVC_cjs.a(this,y).write=chunk6ATEEAVC_cjs.a(this,b),this.write(U);}write(t){chunk6ATEEAVC_cjs.a(this,b).apply(chunk6ATEEAVC_cjs.a(this,y),[t]);}};P=new WeakMap,S=new WeakMap,b=new WeakMap,y=new WeakMap,_.DRAIN=!0;var M=_;var T,R,x,I,C,J=class{constructor(){chunk6ATEEAVC_cjs.b(this,T,void 0);chunk6ATEEAVC_cjs.b(this,R,void 0);chunk6ATEEAVC_cjs.b(this,x,void 0);chunk6ATEEAVC_cjs.b(this,I,void 0);chunk6ATEEAVC_cjs.b(this,C,!1);chunk6ATEEAVC_cjs.c(this,R,process.stdout),chunk6ATEEAVC_cjs.c(this,x,process.stderr);}setStdout(t){chunk6ATEEAVC_cjs.c(this,R,t);}setStderr(t){chunk6ATEEAVC_cjs.c(this,x,t);}setStringify(t){chunk6ATEEAVC_cjs.c(this,T,t);}setInteractiveManager(t){chunk6ATEEAVC_cjs.c(this,I,t);}setIsInteractive(t){chunk6ATEEAVC_cjs.c(this,C,t);}log(t){let{context:e,groups:o,message:a,type:w}=t,n=[],m=typeof a=="string"?a:chunk6ATEEAVC_cjs.a(this,T).call(this,a);n.push(m+""),e&&n.push(...e.map(A=>typeof A=="object"?" "+chunk6ATEEAVC_cjs.a(this,T).call(this,A):" "+A));let d=["error","trace","warn"].includes(w.level)?"stderr":"stdout",v=d==="stderr"?chunk6ATEEAVC_cjs.a(this,x):chunk6ATEEAVC_cjs.a(this,R),h=o?o.map(()=>" ").join(""):"";chunk6ATEEAVC_cjs.a(this,C)&&chunk6ATEEAVC_cjs.a(this,I)!==void 0&&v.isTTY?chunk6ATEEAVC_cjs.a(this,I).update(d,(h+n.join("")).split(`
23
- `),0):chunkGZRIZCRG_cjs.a(h+n.join(""),v);}};T=new WeakMap,R=new WeakMap,x=new WeakMap,I=new WeakMap,C=new WeakMap;var W=class extends chunkY36365SA_cjs.a{constructor(e={}){let{interactive:o,rawReporter:a,reporters:w,stderr:n,stdout:m,...d}=e;super(d);this.options=e;this.interactive=o??!1,this.stdout=m,this.stderr=n,this.interactive&&(this.interactiveManager=new E(new M(this.stdout),new M(this.stderr))),Array.isArray(w)&&this.registerReporters(w),this.rawReporter=this.extendReporter(e.rawReporter??new J);}scope(...e){if(e.length===0)throw new Error("No scope name was defined.");return this.scopeName=e.flat(),this}getInteractiveManager(){return this.interactiveManager}wrapStd(){this._wrapStream(this.stdout,"log"),this._wrapStream(this.stderr,"log");}restoreStd(){this._restoreStream(this.stdout),this._restoreStream(this.stderr);}wrapAll(){this.wrapConsole(),this.wrapStd();}restoreAll(){this.restoreConsole(),this.restoreStd();}clear(){this.stdout.write(O),this.stderr.write(O);}extendReporter(e){return e.setStdout&&e.setStdout(this.stdout),e.setStderr&&e.setStderr(this.stderr),e.setLoggerTypes&&e.setLoggerTypes(this.types),e.setStringify&&e.setStringify(this.stringify),e.setIsInteractive&&e.setIsInteractive(this.interactive),this.interactive&&e.setInteractiveManager&&e.setInteractiveManager(this.interactiveManager),e}_wrapStream(e,o){e&&(e.__write||(e.__write=e.write),e.write=a=>{this[o].log(String(a).trim());});}_restoreStream(e){e&&e.__write&&(e.write=e.__write,delete e.__write);}},V=W;var ee=()=>process.env.DEBUG!==void 0?"debug":"informational",te=c=>new V({logLevel:ee(),processors:[new chunkIQF3SXQR_cjs.a,new chunkY36365SA_cjs.c],reporters:[new chunkGZRIZCRG_cjs.b],stderr:process.stderr,stdout:process.stdout,...c}),Me=te();
20
+ `),this.#r=d?d+p.length+1:p.length,this.#s=Math.max(this.lastLength-i,this.outside);}}_clear(t=!1){this.#t=t,this.#r=0,this.#s=0;}};var a="\x1B[",R=a+"2J",P=a+"2K",_=a+"G",J=(s=1)=>a+s+"A",m=process.platform==="win32"?`${R}${a}0f`:`${R}${a}3J${a}H`,x=a+"?25l",I=a+"?25h",A=s=>{let t="";for(let e=0;e<s;e++)t+=P+(e<s-1?J():"");return s&&(t+=_),t};var h=class s{static DRAIN=!0;#e=new string_decoder.StringDecoder;#t=[];#i;#r;constructor(t){this.#i=t.write,this.#r=t;}active(){this.write(x),this.#r.write=(t,...e)=>{let r=e.at(-1);return this.#t.push(this.#e.write(typeof t=="string"?Buffer.from(t,typeof e[0]=="string"?e[0]:void 0):Buffer.from(t))),typeof r=="function"&&r(),s.DRAIN};}erase(t){t>0&&this.write(A(t+1));}inactive(t=!1){this.#t.length>0&&(t&&this.write(`
21
+ `),this.#t.forEach(e=>{this.write(e);}),this.#t=[]),this.renew();}renew(){this.#r.write=this.#i,this.write(I);}write(t){this.#i.apply(this.#r,[t]);}};var v=class{#e;#t;#i;#r;#s=!1;constructor(){this.#t=process.stdout,this.#i=process.stderr;}setStdout(t){this.#t=t;}setStderr(t){this.#i=t;}setStringify(t){this.#e=t;}setInteractiveManager(t){this.#r=t;}setIsInteractive(t){this.#s=t;}log(t){let{context:e,groups:r,message:o,type:u}=t,i=[],c=typeof o=="string"?o:this.#e(o);i.push(c+""),e&&i.push(...e.map(l=>typeof l=="object"?" "+this.#e(l):" "+l));let n=["error","trace","warn"].includes(u.level)?"stderr":"stdout",d=n==="stderr"?this.#i:this.#t,p=r.map(()=>" ").join("");this.#s&&this.#r!==void 0&&d.isTTY?this.#r.update(n,(p+i.join("")).split(`
22
+ `),0):chunkO34IIMWQ_cjs.a(p+i.join(""),d);}};var S=class extends chunk2SZMC2SJ_cjs.a{constructor(e={}){let{interactive:r,rawReporter:o,reporters:u,stderr:i,stdout:c,...n}=e;super(n);this.options=e;this.interactive=r??!1,this.stdout=c,this.stderr=i,this.interactive&&(this.interactiveManager=new g(new h(this.stdout),new h(this.stderr))),Array.isArray(u)&&this.registerReporters(u),this.rawReporter=this.extendReporter(e.rawReporter??new v);}stdout;stderr;interactiveManager;interactive;scope(...e){if(e.length===0)throw new Error("No scope name was defined.");return this.scopeName=e.flat(),this}getInteractiveManager(){return this.interactiveManager}wrapStd(){this._wrapStream(this.stdout,"log"),this._wrapStream(this.stderr,"log");}restoreStd(){this._restoreStream(this.stdout),this._restoreStream(this.stderr);}wrapAll(){this.wrapConsole(),this.wrapStd();}restoreAll(){this.restoreConsole(),this.restoreStd();}clear(){this.stdout.write(m),this.stderr.write(m);}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}_wrapStream(e,r){e&&(e.__write||(e.__write=e.write),e.write=o=>{this[r].log(String(o).trim());});}_restoreStream(e){e&&e.__write&&(e.write=e.__write,delete e.__write);}},N=S;var k=()=>process.env.DEBUG!==void 0?"debug":"informational",W=s=>new N({logLevel:k(),processors:[new chunkF4FJCQ4L_cjs.a,new chunk2SZMC2SJ_cjs.c],reporters:[new chunkO34IIMWQ_cjs.b],stderr:process.stderr,stdout:process.stdout,...s}),pe=W();
24
23
 
25
- exports.createPail = te;
26
- exports.pail = Me;
24
+ exports.createPail = W;
25
+ exports.pail = pe;
27
26
  //# sourceMappingURL=out.js.map
28
27
  //# sourceMappingURL=index.server.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/interactive/interactive-manager.ts","../src/interactive/interactive-stream-hook.ts","../src/util/ansi-escapes.ts","../src/reporter/raw/raw.server.ts","../src/pail.server.ts","../src/index.server.ts"],"names":["terminalSize","wrapAnsi","_stream","_isActive","_isSuspended","_lastLength","_outside","InteractiveManager","stdout","stderr","__privateAdd","__privateSet","__privateGet","stream","count","hook","eraseRowCount","erase","separateHistory","rows","from","width","height","position","actualLength","outside","output","accumulator","row","status","StringDecoder","ESC","eraseScreen","eraseLine","cursorLeft","cursorUp","clearTerminal","cursorHide","cursorShow","eraseLines","clear","index","_decoder","_history","_method","_InteractiveStreamHook","data","arguments_","callback","element","message","InteractiveStreamHook","_stringify","_stdout","_stderr","_interactiveManager","_interactive","RawReporter","function_","manager","interactive","meta","context","groups","type","items","formattedMessage","value","streamType","groupSpaces","writeStream","PailServerImpl","PailBrowserImpl","options","rawReporter","reporters","rest","name","reporter","PailServer","_getDefaultLogLevel","createPail","MessageFormatterProcessor","ErrorProcessor","PrettyReporter","pail"],"mappings":"uRAAA,OAAOA,MAAkB,gBACzB,OAAOC,MAAc,YADrB,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAOaC,EAAN,KAAyB,CAcrB,YAAYC,EAA+BC,EAA+B,CAbjFC,EAAA,KAASR,EAAT,QAKAQ,EAAA,KAAAP,EAAY,IAEZO,EAAA,KAAAN,EAAe,IAEfM,EAAA,KAAAL,EAAc,GAEdK,EAAA,KAAAJ,EAAW,GAGPK,EAAA,KAAKT,EAAU,CACX,OAAAO,EACA,OAAAD,CACJ,EACJ,CAKA,IAAW,YAAqB,CAC5B,OAAOI,EAAA,KAAKP,EAChB,CAKA,IAAW,SAAkB,CACzB,OAAOO,EAAA,KAAKN,EAChB,CAKA,IAAW,UAAoB,CAC3B,OAAOM,EAAA,KAAKT,EAChB,CAKA,IAAW,aAAuB,CAC9B,OAAOS,EAAA,KAAKR,EAChB,CAQO,MAAMS,EAAoBC,EAAQF,EAAA,KAAKP,GAAmB,CAE7D,GAAI,CAACO,EAAA,KAAKV,GAAQW,CAAM,EACpB,MAAM,IAAI,MAAM,WAAWA,CAAM,oBAAoB,EAIzDD,EAAA,KAAKV,GAAQW,CAAM,EAAE,MAAMC,CAAK,CACpC,CAMO,MAAgB,CACnB,OAAKF,EAAA,KAAKT,KACN,OAAO,OAAOS,EAAA,KAAKV,EAAO,EAAE,QAASa,GAASA,EAAK,OAAO,CAAC,EAE3D,KAAK,OAAO,EAAI,GAGbH,EAAA,KAAKT,EAChB,CAQO,OAAOU,EAAoBG,EAA8B,CACxDJ,EAAA,KAAKR,KACLO,EAAA,KAAKP,EAAe,IAEhBY,GACA,KAAK,MAAMH,EAAQG,CAAa,EAGpCL,EAAA,KAAKN,EAAc,GAEnB,OAAO,OAAOO,EAAA,KAAKV,EAAO,EAAE,QAASa,GAASA,EAAK,OAAO,CAAC,EAEnE,CAQO,QAAQF,EAAoBI,EAAQ,GAAY,CAC9CL,EAAA,KAAKR,KACNO,EAAA,KAAKP,EAAe,IAEhBa,GACA,KAAK,MAAMJ,CAAM,EAGrB,OAAO,OAAOD,EAAA,KAAKV,EAAO,EAAE,QAASa,GAASA,EAAK,MAAM,CAAC,EAElE,CASO,OAAOG,EAAkB,GAAe,CAC3C,OAAIN,EAAA,KAAKT,KACL,OAAO,OAAOS,EAAA,KAAKV,EAAO,EAAE,QAASa,GAASA,EAAK,SAASG,CAAe,CAAC,EAE5E,KAAK,OAAO,GAGT,CAACN,EAAA,KAAKT,EACjB,CAUO,OAAOU,EAAoBM,EAAgBC,EAAO,EAAS,CAC9D,GAAID,EAAK,OAAS,EAAG,CAEjB,IAAMJ,EAAOH,EAAA,KAAKV,GAAQW,CAAM,EAEhC,GAAIE,EAAM,CACN,GAAM,CAAE,QAASM,EAAO,KAAMC,CAAO,EAAItB,EAAa,EAEhDuB,EAAWH,EAAOE,EAASA,EAAS,EAAI,KAAK,IAAI,EAAG,KAAK,IAAIA,EAAS,EAAGF,CAAI,CAAC,EAC9EI,EAAe,KAAK,WAAaD,EACjCE,EAAU,KAAK,IAAID,EAAeF,EAAQ,KAAK,OAAO,EAGxDI,EAASP,EAAK,OACd,CAACQ,EAAaC,IAAQ,CAClB,GAAGD,EACH1B,EAAS2B,EAAKP,EAAO,CACjB,KAAM,GACN,KAAM,GACN,SAAU,EACd,CAAC,CACL,EACA,CAAC,CACL,EAEIC,GAAUE,GACVT,EAAK,MAAMO,CAAM,EAEbC,EAAWE,IACXC,EAASA,EAAO,MAAMD,EAAUF,EAAW,CAAC,IAEzCC,GACPT,EAAK,MAAMS,CAAY,EAG3BT,EAAK,MAAMW,EAAO,KAAK;AAAA,CAAI,EAAI;AAAA,CAAI,EAEnCf,EAAA,KAAKN,EAAcoB,EAAUA,EAAUC,EAAO,OAAS,EAAIA,EAAO,QAClEf,EAAA,KAAKL,EAAW,KAAK,IAAI,KAAK,WAAagB,EAAQ,KAAK,OAAO,EACnE,CACJ,CACJ,CAEQ,OAAOO,EAAS,GAAa,CACjClB,EAAA,KAAKR,EAAY0B,GACjBlB,EAAA,KAAKN,EAAc,GACnBM,EAAA,KAAKL,EAAW,EACpB,CACJ,EA7LaJ,EAAA,YAKTC,EAAA,YAEAC,EAAA,YAEAC,EAAA,YAEAC,EAAA,YCnBJ,OAAS,iBAAAwB,MAAqB,iBCA9B,IAAMC,EAAM,QAENC,EAAcD,EAAM,KACpBE,EAAYF,EAAM,KAElBG,EAAaH,EAAM,IACnBI,EAAW,CAACrB,EAAQ,IAAMiB,EAAMjB,EAAQ,IAEjCsB,EAET,SAAS,WAAa,QAChB,GAAGJ,CAAW,GAAGD,CAAG,KAKpB,GAAGC,CAAW,GAAGD,CAAG,KAAKA,CAAG,IAEzBM,EAAqBN,EAAM,OAC3BO,EAAqBP,EAAM,OAE3BQ,EAAczB,GAA0B,CACjD,IAAI0B,EAAQ,GAGZ,QAASC,EAAQ,EAAGA,EAAQ3B,EAAO2B,IAC/BD,GAASP,GAAaQ,EAAQ3B,EAAQ,EAAIqB,EAAS,EAAI,IAG3D,OAAIrB,IACA0B,GAASN,GAGNM,CACX,EDlCA,IAAAE,EAAAC,EAAAC,EAAA1C,EAIa2C,EAAN,MAAMA,CAAsB,CAWxB,YAAYhC,EAA4B,CAR/CH,EAAA,KAASgC,EAAW,IAAIZ,GAExBpB,EAAA,KAAAiC,EAAqB,CAAC,GAEtBjC,EAAA,KAASkC,EAAT,QAEAlC,EAAA,KAASR,EAAT,QAIIS,EAAA,KAAKiC,EAAU/B,EAAO,OACtBF,EAAA,KAAKT,EAAUW,EACnB,CAEO,QAAe,CAClB,KAAK,MAAMwB,CAAoB,EAE/BzB,EAAA,KAAKV,GAAQ,MAAQ,CAAC4C,KAA8BC,IAAmG,CACnJ,IAAMC,EAAWD,EAAW,GAAG,EAAE,EAEjC,OAAAnC,EAAA,KAAK+B,GAAS,KACV/B,EAAA,KAAK8B,GAAS,MACV,OAAOI,GAAS,SACV,OAAO,KAAKA,EAAM,OAAOC,EAAW,CAAC,GAAM,SAAYA,EAAW,CAAC,EAAuB,MAAS,EACnG,OAAO,KAAKD,CAAI,CAC1B,CACJ,EAEI,OAAOE,GAAa,YACpBA,EAAS,EAGNH,EAAsB,KACjC,CACJ,CAEO,MAAM/B,EAAqB,CAC1BA,EAAQ,GACR,KAAK,MAAMyB,EAAWzB,EAAQ,CAAC,CAAW,CAElD,CAEO,SAASI,EAAkB,GAAa,CACvCN,EAAA,KAAK+B,GAAS,OAAS,IACnBzB,GACA,KAAK,MAAM;AAAA,CAAI,EAGnBN,EAAA,KAAK+B,GAAS,QAASM,GAAY,CAC/B,KAAK,MAAMA,CAAO,CACtB,CAAC,EACDtC,EAAA,KAAKgC,EAAW,CAAC,IAGrB,KAAK,MAAM,CACf,CAEO,OAAc,CACjB/B,EAAA,KAAKV,GAAQ,MAAQU,EAAA,KAAKgC,GAC1B,KAAK,MAAMN,CAAoB,CACnC,CAEO,MAAMY,EAAuB,CAChCtC,EAAA,KAAKgC,GAAQ,MAAMhC,EAAA,KAAKV,GAAS,CAACgD,CAAO,CAAC,CAC9C,CACJ,EAjEaR,EAAA,YAETC,EAAA,YAESC,EAAA,YAEA1C,EAAA,YATA2C,EACc,MAAQ,GAD5B,IAAMM,EAANN,EEJP,IAAAO,EAAAC,EAAAC,EAAAC,EAAAC,EAMaC,EAAN,KAAyG,CAYrG,aAAc,CAXrB/C,EAAA,KAAA0C,EAAA,QAEA1C,EAAA,KAAA2C,EAAA,QAEA3C,EAAA,KAAA4C,EAAA,QAGA5C,EAAA,KAAA6C,EAAA,QAEA7C,EAAA,KAAA8C,EAAe,IAGX7C,EAAA,KAAK0C,EAAU,QAAQ,QACvB1C,EAAA,KAAK2C,EAAU,QAAQ,OAC3B,CAGO,UAAU9C,EAA4B,CACzCG,EAAA,KAAK0C,EAAU7C,EACnB,CAGO,UAAUC,EAA4B,CACzCE,EAAA,KAAK2C,EAAU7C,EACnB,CAGO,aAAaiD,EAAsB,CACtC/C,EAAA,KAAKyC,EAAaM,EACtB,CAEO,sBAAsBC,EAAoC,CAC7DhD,EAAA,KAAK4C,EAAsBI,EAC/B,CAEO,iBAAiBC,EAA4B,CAChDjD,EAAA,KAAK6C,EAAeI,EACxB,CAEO,IAAIC,EAA6B,CACpC,GAAM,CAAE,QAAAC,EAAS,OAAAC,EAAQ,QAAAb,EAAS,KAAAc,CAAK,EAAIH,EAErCI,EAAkB,CAAC,EAEnBC,EAAuC,OAAOhB,GAAY,SAAWA,EAAWtC,EAAA,KAAKwC,GAAL,UAAqCF,GAE3He,EAAM,KAAKC,EAAmB,EAAE,EAE5BJ,GACAG,EAAM,KAEF,GAAGH,EAAQ,IAAKK,GACR,OAAOA,GAAU,SACV,IAAOvD,EAAA,KAAKwC,GAAL,UAAqCe,GAGhD,IAAMA,CAChB,CACL,EAGJ,IAAMC,EAAa,CAAC,QAAS,QAAS,MAAM,EAAE,SAASJ,EAAK,KAAe,EAAI,SAAW,SACpFnD,EAASuD,IAAe,SAAWxD,EAAA,KAAK0C,GAAU1C,EAAA,KAAKyC,GACvDgB,EAAsBN,EAASA,EAAO,IAAI,IAAM,MAAM,EAAE,KAAK,EAAE,EAAI,GAErEnD,EAAA,KAAK4C,IAAgB5C,EAAA,KAAK2C,KAAwB,QAAa1C,EAAO,MACtED,EAAA,KAAK2C,GAAoB,OAAOa,GAAaC,EAAcJ,EAAM,KAAK,EAAE,GAAG,MAAM;AAAA,CAAI,EAAG,CAAC,EAEzFK,EAAYD,EAAcJ,EAAM,KAAK,EAAE,EAAGpD,CAAM,CAExD,CACJ,EAvEIuC,EAAA,YAEAC,EAAA,YAEAC,EAAA,YAGAC,EAAA,YAEAC,EAAA,YCGJ,IAAMe,EAAN,cAAiFC,CAAsB,CAU5F,YAA4BC,EAA0C,CAAC,EAAG,CAC7E,GAAM,CAAE,YAAAb,EAAa,YAAAc,EAAa,UAAAC,EAAW,OAAAlE,EAAQ,OAAAD,EAAQ,GAAGoE,CAAK,EAAIH,EAEzE,MAAMG,CAAgC,EAHP,aAAAH,EAK/B,KAAK,YAAcb,GAAe,GAElC,KAAK,OAASpD,EACd,KAAK,OAASC,EAEV,KAAK,cACL,KAAK,mBAAqB,IAAIF,EAAmB,IAAI4C,EAAsB,KAAK,MAAM,EAAG,IAAIA,EAAsB,KAAK,MAAM,CAAC,GAG/H,MAAM,QAAQwB,CAAS,GACvB,KAAK,kBAAkBA,CAAS,EAGpC,KAAK,YAAc,KAAK,eAAeF,EAAQ,aAAe,IAAIhB,CAAgB,CACtF,CAEgB,SAA+BoB,EAAsC,CACjF,GAAIA,EAAK,SAAW,EAChB,MAAM,IAAI,MAAM,4BAA4B,EAGhD,YAAK,UAAYA,EAAK,KAAK,EAEpB,IACX,CAGO,uBAAwD,CAC3D,OAAO,KAAK,kBAChB,CAEO,SAAU,CACb,KAAK,YAAY,KAAK,OAAQ,KAAK,EACnC,KAAK,YAAY,KAAK,OAAQ,KAAK,CACvC,CAEO,YAAa,CAChB,KAAK,eAAe,KAAK,MAAM,EAC/B,KAAK,eAAe,KAAK,MAAM,CACnC,CAEO,SAAgB,CACnB,KAAK,YAAY,EACjB,KAAK,QAAQ,CACjB,CAEO,YAAmB,CACtB,KAAK,eAAe,EACpB,KAAK,WAAW,CACpB,CAEgB,OAAc,CAC1B,KAAK,OAAO,MAAMzC,CAAuB,EACzC,KAAK,OAAO,MAAMA,CAAuB,CAC7C,CAEmB,eAAe0C,EAAoC,CAClE,OAAKA,EAAoC,WACpCA,EAAoC,UAAU,KAAK,MAAM,EAGzDA,EAAoC,WACpCA,EAAoC,UAAU,KAAK,MAAM,EAGzDA,EAA4C,gBAC5CA,EAA4C,eAAe,KAAK,KAAK,EAGrEA,EAAuC,cACvCA,EAAuC,aAAa,KAAK,SAAS,EAGlEA,EAA0C,kBAC1CA,EAA0C,iBAAiB,KAAK,WAAW,EAG5E,KAAK,aAAgBA,EAA0C,uBAC9DA,EAA0C,sBAAsB,KAAK,kBAAkB,EAGrFA,CACX,CAEQ,YAAYjE,EAAwCmD,EAAwC,CAC3FnD,IAMCA,EAAe,UAEhBA,EAAe,QAAUA,EAAO,OAKpCA,EAAe,MAASiC,GAAoB,CAIxC,KAAmCkB,CAAI,EAAE,IAAI,OAAOlB,CAAI,EAAE,KAAK,CAAC,CACrE,EACJ,CAGQ,eAAejC,EAAmC,CACjDA,GAKAA,EAAe,UAEhBA,EAAO,MAASA,EAAe,QAG/B,OAAQA,EAAe,QAE/B,CACJ,EASakE,EAAaR,EC5J1B,IAAMS,GAAsB,IACmB,QAAQ,IAAI,QAAa,OACzD,QAOJ,gBAGEC,GAAkER,GAC3E,IAAIM,EAAiB,CACjB,SAAUC,GAAoB,EAC9B,WAAY,CAAC,IAAIE,EAAgC,IAAIC,CAAmB,EACxE,UAAW,CAAC,IAAIC,CAAgB,EAChC,OAAQ,QAAQ,OAChB,OAAQ,QAAQ,OAChB,GAAGX,CACP,CAAC,EAEQY,GAAOJ,GAAW","sourcesContent":["import terminalSize from \"terminal-size\";\nimport wrapAnsi from \"wrap-ansi\";\n\nimport type { InteractiveStreamHook } from \"./interactive-stream-hook\";\n\ntype StreamType = \"stderr\" | \"stdout\";\n\nexport class InteractiveManager {\n readonly #stream: {\n stderr: InteractiveStreamHook;\n stdout: InteractiveStreamHook;\n };\n\n #isActive = false;\n\n #isSuspended = false;\n\n #lastLength = 0;\n\n #outside = 0;\n\n public constructor(stdout: InteractiveStreamHook, stderr: InteractiveStreamHook) {\n this.#stream = {\n stderr,\n stdout,\n };\n }\n\n /**\n * Last printed rows count\n */\n public get lastLength(): number {\n return this.#lastLength;\n }\n\n /**\n * Rows count outside editable area\n */\n public get outside(): number {\n return this.#outside;\n }\n\n /**\n * Hook activity status\n */\n public get isHooked(): boolean {\n return this.#isActive;\n }\n\n /**\n * Suspend status for active hooks\n */\n public get isSuspended(): boolean {\n return this.#isSuspended;\n }\n\n /**\n * Removes from the bottom of output up the specified count of lines\n *\n * @param stream - Stream to remove lines from\n * @param count - lines count to remove\n */\n public erase(stream: StreamType, count = this.#lastLength): void {\n // eslint-disable-next-line security/detect-object-injection\n if (!this.#stream[stream]) {\n throw new Error(`Stream \"${stream}\" is not available`);\n }\n\n // eslint-disable-next-line security/detect-object-injection\n this.#stream[stream].erase(count);\n }\n\n /**\n * Hook stdout and stderr streams\n * @returns Success status\n */\n public hook(): boolean {\n if (!this.#isActive) {\n Object.values(this.#stream).forEach((hook) => hook.active());\n\n this._clear(true);\n }\n\n return this.#isActive;\n }\n\n /**\n * Resume suspend hooks\n *\n * @param stream - Stream to resume\n * @param eraseRowCount - erase output rows count\n */\n public resume(stream: StreamType, eraseRowCount?: number): void {\n if (this.#isSuspended) {\n this.#isSuspended = false;\n\n if (eraseRowCount) {\n this.erase(stream, eraseRowCount);\n }\n\n this.#lastLength = 0;\n\n Object.values(this.#stream).forEach((hook) => hook.active());\n }\n }\n\n /**\n * Suspend active hooks for external output\n *\n * @param stream - Stream to suspend\n * @param erase - erase output\n */\n public suspend(stream: StreamType, erase = true): void {\n if (!this.#isSuspended) {\n this.#isSuspended = true;\n\n if (erase) {\n this.erase(stream);\n }\n\n Object.values(this.#stream).forEach((hook) => hook.renew());\n }\n }\n\n /**\n * Unhooks both stdout and stderr streams and print their story of logs\n *\n * @param separateHistory - If `true`, will add an empty line to the history output for individual recorded lines and console logs\n *\n * @returns Success status\n */\n public unhook(separateHistory = true): boolean {\n if (this.#isActive) {\n Object.values(this.#stream).forEach((hook) => hook.inactive(separateHistory));\n\n this._clear();\n }\n\n return !this.#isActive;\n }\n\n /**\n * Update output\n *\n * @param stream - Stream to write to\n * @param rows - Text lines to write to standard output\n * @param from - Index of the line starting from which the contents of the terminal are being overwritten\n */\n // eslint-disable-next-line sonarjs/cognitive-complexity\n public update(stream: StreamType, rows: string[], from = 0): void {\n if (rows.length > 0) {\n // eslint-disable-next-line security/detect-object-injection\n const hook = this.#stream[stream];\n\n if (hook) {\n const { columns: width, rows: height } = terminalSize();\n\n const position = from > height ? height - 1 : Math.max(0, Math.min(height - 1, from));\n const actualLength = this.lastLength - position;\n const outside = Math.max(actualLength - height, this.outside);\n\n // eslint-disable-next-line unicorn/no-array-reduce\n let output = rows.reduce<string[]>(\n (accumulator, row) => [\n ...accumulator,\n wrapAnsi(row, width, {\n hard: true,\n trim: false,\n wordWrap: true,\n }),\n ],\n [],\n );\n\n if (height <= actualLength) {\n hook.erase(height);\n\n if (position < outside) {\n output = output.slice(outside - position + 1);\n }\n } else if (actualLength) {\n hook.erase(actualLength);\n }\n\n hook.write(output.join(\"\\n\") + \"\\n\");\n\n this.#lastLength = outside ? outside + output.length + 1 : output.length;\n this.#outside = Math.max(this.lastLength - height, this.outside);\n }\n }\n }\n\n private _clear(status = false): void {\n this.#isActive = status;\n this.#lastLength = 0;\n this.#outside = 0;\n }\n}\n","import { StringDecoder } from \"node:string_decoder\";\n\nimport { cursorHide, cursorShow, eraseLines } from \"../util/ansi-escapes\";\n\nexport class InteractiveStreamHook {\n public static readonly DRAIN = true;\n\n readonly #decoder = new StringDecoder();\n\n #history: string[] = [];\n\n readonly #method: NodeJS.WriteStream[\"write\"];\n\n readonly #stream: NodeJS.WriteStream;\n\n public constructor(stream: NodeJS.WriteStream) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.#method = stream.write;\n this.#stream = stream;\n }\n\n public active(): void {\n this.write(cursorHide as string);\n\n this.#stream.write = (data: Uint8Array | string, ...arguments_: [((error?: Error) => void)?] | [(string | undefined)?, ((error?: Error) => void)?]) => {\n const callback = arguments_.at(-1);\n\n this.#history.push(\n this.#decoder.write(\n typeof data === \"string\"\n ? Buffer.from(data, typeof arguments_[0] === \"string\" ? (arguments_[0] as BufferEncoding) : undefined)\n : Buffer.from(data),\n ),\n );\n\n if (typeof callback === \"function\") {\n callback();\n }\n\n return InteractiveStreamHook.DRAIN;\n };\n }\n\n public erase(count: number): void {\n if (count > 0) {\n this.write(eraseLines(count + 1) as string);\n }\n }\n\n public inactive(separateHistory = false): void {\n if (this.#history.length > 0) {\n if (separateHistory) {\n this.write(\"\\n\");\n }\n\n this.#history.forEach((element) => {\n this.write(element);\n });\n this.#history = [];\n }\n\n this.renew();\n }\n\n public renew(): void {\n this.#stream.write = this.#method;\n this.write(cursorShow as string);\n }\n\n public write(message: string): void {\n this.#method.apply(this.#stream, [message]);\n }\n}\n","const ESC = \"\\u001B[\";\n\nconst eraseScreen = ESC + \"2J\";\nconst eraseLine = ESC + \"2K\";\n\nconst cursorLeft = ESC + \"G\";\nconst cursorUp = (count = 1) => ESC + count + \"A\";\n\nexport const clearTerminal: string =\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n process?.platform === \"win32\"\n ? `${eraseScreen}${ESC}0f`\n : // 1. Erases the screen (Only done in case `2` is not supported)\n // 2. Erases the whole screen including scrollback buffer\n // 3. Moves cursor to the top-left position\n // More info: https://www.real-world-systems.com/docs/ANSIcode.html\n `${eraseScreen}${ESC}3J${ESC}H`;\n\nexport const cursorHide: string = ESC + \"?25l\";\nexport const cursorShow: string = ESC + \"?25h\";\n\nexport const eraseLines = (count: number): string => {\n let clear = \"\";\n\n // eslint-disable-next-line no-loops/no-loops,no-plusplus\n for (let index = 0; index < count; index++) {\n clear += eraseLine + (index < count - 1 ? cursorUp() : \"\");\n }\n\n if (count) {\n clear += cursorLeft;\n }\n\n return clear;\n};\n","import type { stringify } from \"safe-stable-stringify\";\n\nimport type { InteractiveManager } from \"../../interactive/interactive-manager\";\nimport type { ReadonlyMeta, StreamAwareReporter, StringifyAwareReporter } from \"../../types\";\nimport { writeStream } from \"../../util/write-stream\";\n\nexport class RawReporter<L extends string = never> implements StreamAwareReporter<L>, StringifyAwareReporter<L> {\n #stringify: typeof stringify | undefined;\n\n #stdout: NodeJS.WriteStream;\n\n #stderr: NodeJS.WriteStream;\n\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n #interactiveManager: InteractiveManager | undefined;\n\n #interactive = false;\n\n public constructor() {\n this.#stdout = process.stdout;\n this.#stderr = process.stderr;\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public setStdout(stdout: NodeJS.WriteStream) {\n this.#stdout = stdout;\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public setStderr(stderr: NodeJS.WriteStream) {\n this.#stderr = stderr;\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n public setStringify(function_: any): void {\n this.#stringify = function_;\n }\n\n public setInteractiveManager(manager?: InteractiveManager): void {\n this.#interactiveManager = manager;\n }\n\n public setIsInteractive(interactive: boolean): void {\n this.#interactive = interactive;\n }\n\n public log(meta: ReadonlyMeta<L>): void {\n const { context, groups, message, type } = meta;\n\n const items: string[] = [];\n\n const formattedMessage: string | undefined = typeof message === \"string\" ? message : (this.#stringify as typeof stringify)(message);\n\n items.push(formattedMessage + \"\");\n\n if (context) {\n items.push(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n ...context.map((value) => {\n if (typeof value === \"object\") {\n return \" \" + (this.#stringify as typeof stringify)(value);\n }\n\n return \" \" + value;\n }),\n );\n }\n\n const streamType = [\"error\", \"trace\", \"warn\"].includes(type.level as string) ? \"stderr\" : \"stdout\";\n const stream = streamType === \"stderr\" ? this.#stderr : this.#stdout;\n const groupSpaces: string = groups ? groups.map(() => \" \").join(\"\") : \"\";\n\n if (this.#interactive && this.#interactiveManager !== undefined && stream.isTTY) {\n this.#interactiveManager.update(streamType, (groupSpaces + items.join(\"\")).split(\"\\n\"), 0);\n } else {\n writeStream(groupSpaces + items.join(\"\"), stream);\n }\n }\n}\n","import type { LiteralUnion } from \"type-fest\";\n\nimport { InteractiveManager } from \"./interactive/interactive-manager\";\nimport { InteractiveStreamHook } from \"./interactive/interactive-stream-hook\";\nimport { PailBrowserImpl } from \"./pail.browser\";\nimport { RawReporter } from \"./reporter/raw/raw.server\";\nimport type {\n ConstructorOptions,\n DefaultLogTypes,\n InteractiveStreamReporter,\n LoggerFunction,\n LoggerTypesAwareReporter,\n Reporter,\n ServerConstructorOptions,\n StreamAwareReporter,\n StringifyAwareReporter,\n} from \"./types\";\nimport { clearTerminal } from \"./util/ansi-escapes\";\n\nclass PailServerImpl<T extends string = never, L extends string = never> extends PailBrowserImpl<T, L> {\n protected readonly stdout: NodeJS.WriteStream;\n\n protected readonly stderr: NodeJS.WriteStream;\n\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n protected interactiveManager: InteractiveManager | undefined;\n\n protected readonly interactive: boolean;\n\n public constructor(public readonly options: ServerConstructorOptions<T, L> = {}) {\n const { interactive, rawReporter, reporters, stderr, stdout, ...rest } = options;\n\n super(rest as ConstructorOptions<T, L>);\n\n this.interactive = interactive ?? false;\n\n this.stdout = stdout as NodeJS.WriteStream;\n this.stderr = stderr as NodeJS.WriteStream;\n\n if (this.interactive) {\n this.interactiveManager = new InteractiveManager(new InteractiveStreamHook(this.stdout), new InteractiveStreamHook(this.stderr));\n }\n\n if (Array.isArray(reporters)) {\n this.registerReporters(reporters);\n }\n\n this.rawReporter = this.extendReporter(options.rawReporter ?? new RawReporter<L>());\n }\n\n public override scope<N extends string = T>(...name: string[]): PailServerType<N, L> {\n if (name.length === 0) {\n throw new Error(\"No scope name was defined.\");\n }\n\n this.scopeName = name.flat();\n\n return this as unknown as PailServerType<N, L>;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n public getInteractiveManager(): InteractiveManager | undefined {\n return this.interactiveManager;\n }\n\n public wrapStd() {\n this._wrapStream(this.stdout, \"log\");\n this._wrapStream(this.stderr, \"log\");\n }\n\n public restoreStd() {\n this._restoreStream(this.stdout);\n this._restoreStream(this.stderr);\n }\n\n public wrapAll(): void {\n this.wrapConsole();\n this.wrapStd();\n }\n\n public restoreAll(): void {\n this.restoreConsole();\n this.restoreStd();\n }\n\n public override clear(): void {\n this.stdout.write(clearTerminal as string);\n this.stderr.write(clearTerminal as string);\n }\n\n protected override extendReporter(reporter: Reporter<L>): Reporter<L> {\n if ((reporter as StreamAwareReporter<L>).setStdout) {\n (reporter as StreamAwareReporter<L>).setStdout(this.stdout);\n }\n\n if ((reporter as StreamAwareReporter<L>).setStderr) {\n (reporter as StreamAwareReporter<L>).setStderr(this.stderr);\n }\n\n if ((reporter as LoggerTypesAwareReporter<T, L>).setLoggerTypes) {\n (reporter as LoggerTypesAwareReporter<T, L>).setLoggerTypes(this.types);\n }\n\n if ((reporter as StringifyAwareReporter<L>).setStringify) {\n (reporter as StringifyAwareReporter<L>).setStringify(this.stringify);\n }\n\n if ((reporter as InteractiveStreamReporter<L>).setIsInteractive) {\n (reporter as InteractiveStreamReporter<L>).setIsInteractive(this.interactive);\n }\n\n if (this.interactive && (reporter as InteractiveStreamReporter<L>).setInteractiveManager) {\n (reporter as InteractiveStreamReporter<L>).setInteractiveManager(this.interactiveManager);\n }\n\n return reporter;\n }\n\n private _wrapStream(stream: NodeJS.WriteStream | undefined, type: LiteralUnion<DefaultLogTypes, L>) {\n if (!stream) {\n return;\n }\n\n // Backup original value\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (!(stream as any).__write) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any,no-param-reassign,@typescript-eslint/unbound-method\n (stream as any).__write = stream.write;\n }\n\n // Override\n // eslint-disable-next-line @typescript-eslint/no-explicit-any,no-param-reassign\n (stream as any).write = (data: any): void => {\n // @TODO: Fix typings\n // @ts-expect-error - dynamic property\n // eslint-disable-next-line security/detect-object-injection\n (this as unknown as PailServerImpl)[type].log(String(data).trim());\n };\n }\n\n // eslint-disable-next-line class-methods-use-this\n private _restoreStream(stream?: NodeJS.WriteStream): void {\n if (!stream) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if ((stream as any).__write) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any,no-param-reassign\n stream.write = (stream as any).__write;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any,no-param-reassign\n delete (stream as any).__write;\n }\n }\n}\n\nexport type PailServerType<T extends string = never, L extends string = never> = PailServerImpl<T, L> &\n Record<DefaultLogTypes, LoggerFunction> &\n Record<T, LoggerFunction> &\n (new<TC extends string = never, LC extends string = never>(options?: ServerConstructorOptions<TC, LC>) => PailServerType<TC, LC>);\n\nexport type PailConstructor<T extends string = never, L extends string = never> = new (options?: ServerConstructorOptions<T, L>) => PailServerType<T, L>;\n\nexport const PailServer = PailServerImpl as unknown as PailServerType;\n","import type { PailServerType } from \"./pail.server\";\nimport { PailServer } from \"./pail.server\";\nimport { ErrorProcessor } from \"./processor/error/error-processor\";\nimport { MessageFormatterProcessor } from \"./processor/message-formatter-processor\";\nimport { PrettyReporter } from \"./reporter/pretty/pretty.server\";\nimport type { ConstructorOptions, ExtendedRfc5424LogLevels } from \"./types\";\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst _getDefaultLogLevel = (): ExtendedRfc5424LogLevels => {\n if (process.env[\"NODE_ENV\"] === \"debug\" || process.env[\"DEBUG\"] !== undefined) {\n return \"debug\";\n }\n\n if (process.env[\"NODE_ENV\"] === \"test\") {\n return \"warning\";\n }\n\n return \"informational\";\n};\n\nexport const createPail = <T extends string = never, L extends string = never>(options?: ConstructorOptions<T, L>): PailServerType<T, L> =>\n new PailServer<T, L>({\n logLevel: _getDefaultLogLevel(),\n processors: [new MessageFormatterProcessor<L>(), new ErrorProcessor<L>()],\n reporters: [new PrettyReporter()],\n stderr: process.stderr,\n stdout: process.stdout,\n ...options,\n });\n\nexport const pail = createPail();\n\nexport type { PailServerType as Pail } from \"./pail.server\";\nexport type {\n ConstructorOptions,\n DefaultLoggerTypes,\n DefaultLogTypes,\n ExtendedRfc5424LogLevels,\n LoggerConfiguration,\n LoggerFunction,\n LoggerTypesAwareReporter,\n LoggerTypesConfig,\n Processor,\n Reporter,\n StreamAwareReporter,\n} from \"./shared\";\n"]}
1
+ {"version":3,"sources":["../src/interactive/interactive-manager.ts","../src/interactive/interactive-stream-hook.ts","../src/util/ansi-escapes.ts","../src/reporter/raw/raw.server.ts","../src/pail.server.ts","../src/index.server.ts"],"names":["terminalSize","wrapAnsi","InteractiveManager","#stream","#isActive","#isSuspended","#lastLength","#outside","stdout","stderr","stream","count","hook","eraseRowCount","erase","separateHistory","rows","from","width","height","position","actualLength","outside","output","accumulator","row","status","StringDecoder","ESC","eraseScreen","eraseLine","cursorLeft","cursorUp","clearTerminal","cursorHide","cursorShow","eraseLines","clear","index","InteractiveStreamHook","_InteractiveStreamHook","#decoder","#history","#method","data","arguments_","callback","element","message","RawReporter","#stringify","#stdout","#stderr","#interactiveManager","#interactive","function_","manager","interactive","meta","context","groups","type","items","formattedMessage","value","streamType","groupSpaces","writeStream","PailServerImpl","PailBrowserImpl","options","rawReporter","reporters","rest","name","reporter","PailServer","_getDefaultLogLevel","createPail","MessageFormatterProcessor","ErrorProcessor","PrettyReporter","pail"],"mappings":"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","sourcesContent":["import terminalSize from \"terminal-size\";\nimport wrapAnsi from \"wrap-ansi\";\n\nimport type { InteractiveStreamHook } from \"./interactive-stream-hook\";\n\ntype StreamType = \"stderr\" | \"stdout\";\n\nexport class InteractiveManager {\n readonly #stream: {\n stderr: InteractiveStreamHook;\n stdout: InteractiveStreamHook;\n };\n\n #isActive = false;\n\n #isSuspended = false;\n\n #lastLength = 0;\n\n #outside = 0;\n\n public constructor(stdout: InteractiveStreamHook, stderr: InteractiveStreamHook) {\n this.#stream = {\n stderr,\n stdout,\n };\n }\n\n /**\n * Last printed rows count\n */\n public get lastLength(): number {\n return this.#lastLength;\n }\n\n /**\n * Rows count outside editable area\n */\n public get outside(): number {\n return this.#outside;\n }\n\n /**\n * Hook activity status\n */\n public get isHooked(): boolean {\n return this.#isActive;\n }\n\n /**\n * Suspend status for active hooks\n */\n public get isSuspended(): boolean {\n return this.#isSuspended;\n }\n\n /**\n * Removes from the bottom of output up the specified count of lines\n *\n * @param stream - Stream to remove lines from\n * @param count - lines count to remove\n */\n public erase(stream: StreamType, count = this.#lastLength): void {\n // eslint-disable-next-line security/detect-object-injection,@typescript-eslint/no-unnecessary-condition\n if (this.#stream[stream] === undefined) {\n throw new TypeError(`Stream \"${stream}\" is not available`);\n }\n\n // eslint-disable-next-line security/detect-object-injection\n this.#stream[stream].erase(count);\n }\n\n /**\n * Hook stdout and stderr streams\n * @returns Success status\n */\n public hook(): boolean {\n if (!this.#isActive) {\n Object.values(this.#stream).forEach((hook) => hook.active());\n\n this._clear(true);\n }\n\n return this.#isActive;\n }\n\n /**\n * Resume suspend hooks\n *\n * @param stream - Stream to resume\n * @param eraseRowCount - erase output rows count\n */\n public resume(stream: StreamType, eraseRowCount?: number): void {\n if (this.#isSuspended) {\n this.#isSuspended = false;\n\n if (eraseRowCount) {\n this.erase(stream, eraseRowCount);\n }\n\n this.#lastLength = 0;\n\n Object.values(this.#stream).forEach((hook) => hook.active());\n }\n }\n\n /**\n * Suspend active hooks for external output\n *\n * @param stream - Stream to suspend\n * @param erase - erase output\n */\n public suspend(stream: StreamType, erase = true): void {\n if (!this.#isSuspended) {\n this.#isSuspended = true;\n\n if (erase) {\n this.erase(stream);\n }\n\n Object.values(this.#stream).forEach((hook) => hook.renew());\n }\n }\n\n /**\n * Unhooks both stdout and stderr streams and print their story of logs\n *\n * @param separateHistory - If `true`, will add an empty line to the history output for individual recorded lines and console logs\n *\n * @returns Success status\n */\n public unhook(separateHistory = true): boolean {\n if (this.#isActive) {\n Object.values(this.#stream).forEach((hook) => hook.inactive(separateHistory));\n\n this._clear();\n }\n\n return !this.#isActive;\n }\n\n /**\n * Update output\n *\n * @param stream - Stream to write to\n * @param rows - Text lines to write to standard output\n * @param from - Index of the line starting from which the contents of the terminal are being overwritten\n */\n public update(stream: StreamType, rows: string[], from = 0): void {\n if (rows.length > 0) {\n // eslint-disable-next-line security/detect-object-injection,@typescript-eslint/no-unnecessary-condition\n if (this.#stream[stream] === undefined) {\n throw new TypeError(`Stream \"${stream}\" is not available`);\n }\n\n // eslint-disable-next-line security/detect-object-injection\n const hook = this.#stream[stream];\n\n const { columns: width, rows: height } = terminalSize();\n\n const position = from > height ? height - 1 : Math.max(0, Math.min(height - 1, from));\n const actualLength = this.lastLength - position;\n const outside = Math.max(actualLength - height, this.outside);\n\n // eslint-disable-next-line unicorn/no-array-reduce\n let output = rows.reduce<string[]>(\n (accumulator, row) => [\n ...accumulator,\n wrapAnsi(row, width, {\n hard: true,\n trim: false,\n wordWrap: true,\n }),\n ],\n [],\n );\n\n if (height <= actualLength) {\n hook.erase(height);\n\n if (position < outside) {\n output = output.slice(outside - position + 1);\n }\n } else if (actualLength) {\n hook.erase(actualLength);\n }\n\n hook.write(output.join(\"\\n\") + \"\\n\");\n\n this.#lastLength = outside ? outside + output.length + 1 : output.length;\n this.#outside = Math.max(this.lastLength - height, this.outside);\n }\n }\n\n private _clear(status = false): void {\n this.#isActive = status;\n this.#lastLength = 0;\n this.#outside = 0;\n }\n}\n","import { StringDecoder } from \"node:string_decoder\";\n\nimport { cursorHide, cursorShow, eraseLines } from \"../util/ansi-escapes\";\n\nexport class InteractiveStreamHook {\n public static readonly DRAIN = true;\n\n readonly #decoder = new StringDecoder();\n\n #history: string[] = [];\n\n readonly #method: NodeJS.WriteStream[\"write\"];\n\n readonly #stream: NodeJS.WriteStream;\n\n public constructor(stream: NodeJS.WriteStream) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.#method = stream.write;\n this.#stream = stream;\n }\n\n public active(): void {\n this.write(cursorHide as string);\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment,@typescript-eslint/prefer-ts-expect-error\n // @ts-ignore - We are modifying the write method\n this.#stream.write = (data: Uint8Array | string, ...arguments_: [((error?: Error) => void)?] | [(string | undefined)?, ((error?: Error) => void)?]) => {\n const callback = arguments_.at(-1);\n\n this.#history.push(\n this.#decoder.write(\n typeof data === \"string\"\n ? Buffer.from(data, typeof arguments_[0] === \"string\" ? (arguments_[0] as BufferEncoding) : undefined)\n : Buffer.from(data),\n ),\n );\n\n if (typeof callback === \"function\") {\n callback();\n }\n\n return InteractiveStreamHook.DRAIN;\n };\n }\n\n public erase(count: number): void {\n if (count > 0) {\n this.write(eraseLines(count + 1) as string);\n }\n }\n\n public inactive(separateHistory = false): void {\n if (this.#history.length > 0) {\n if (separateHistory) {\n this.write(\"\\n\");\n }\n\n this.#history.forEach((element) => {\n this.write(element);\n });\n this.#history = [];\n }\n\n this.renew();\n }\n\n public renew(): void {\n this.#stream.write = this.#method;\n this.write(cursorShow as string);\n }\n\n public write(message: string): void {\n this.#method.apply(this.#stream, [message]);\n }\n}\n","const ESC = \"\\u001B[\";\n\nconst eraseScreen = ESC + \"2J\";\nconst eraseLine = ESC + \"2K\";\n\nconst cursorLeft = ESC + \"G\";\nconst cursorUp = (count = 1) => ESC + count + \"A\";\n\nexport const clearTerminal: string =\n process.platform === \"win32\"\n ? `${eraseScreen}${ESC}0f`\n : // 1. Erases the screen (Only done in case `2` is not supported)\n // 2. Erases the whole screen including scrollback buffer\n // 3. Moves cursor to the top-left position\n // More info: https://www.real-world-systems.com/docs/ANSIcode.html\n `${eraseScreen}${ESC}3J${ESC}H`;\n\nexport const cursorHide: string = ESC + \"?25l\";\nexport const cursorShow: string = ESC + \"?25h\";\n\nexport const eraseLines = (count: number): string => {\n let clear = \"\";\n\n // eslint-disable-next-line no-loops/no-loops,no-plusplus\n for (let index = 0; index < count; index++) {\n clear += eraseLine + (index < count - 1 ? cursorUp() : \"\");\n }\n\n if (count) {\n clear += cursorLeft;\n }\n\n return clear;\n};\n","import type { stringify } from \"safe-stable-stringify\";\n\nimport type { InteractiveManager } from \"../../interactive/interactive-manager\";\nimport type { ReadonlyMeta, StreamAwareReporter, StringifyAwareReporter } from \"../../types\";\nimport { writeStream } from \"../../util/write-stream\";\n\nexport class RawReporter<L extends string = never> implements StreamAwareReporter<L>, StringifyAwareReporter<L> {\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n #stringify: typeof stringify | undefined;\n\n #stdout: NodeJS.WriteStream;\n\n #stderr: NodeJS.WriteStream;\n\n #interactiveManager: InteractiveManager | undefined;\n\n #interactive = false;\n\n public constructor() {\n this.#stdout = process.stdout;\n this.#stderr = process.stderr;\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public setStdout(stdout: NodeJS.WriteStream) {\n this.#stdout = stdout;\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public setStderr(stderr: NodeJS.WriteStream) {\n this.#stderr = stderr;\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n public setStringify(function_: any): void {\n this.#stringify = function_;\n }\n\n public setInteractiveManager(manager?: InteractiveManager): void {\n this.#interactiveManager = manager;\n }\n\n public setIsInteractive(interactive: boolean): void {\n this.#interactive = interactive;\n }\n\n public log(meta: ReadonlyMeta<L>): void {\n const { context, groups, message, type } = meta;\n\n const items: string[] = [];\n\n const formattedMessage: string | undefined = typeof message === \"string\" ? message : (this.#stringify as typeof stringify)(message);\n\n items.push(formattedMessage + \"\");\n\n if (context) {\n items.push(\n ...context.map((value) => {\n if (typeof value === \"object\") {\n return \" \" + (this.#stringify as typeof stringify)(value);\n }\n\n return \" \" + value;\n }),\n );\n }\n\n const streamType = [\"error\", \"trace\", \"warn\"].includes(type.level as string) ? \"stderr\" : \"stdout\";\n const stream = streamType === \"stderr\" ? this.#stderr : this.#stdout;\n const groupSpaces: string = groups.map(() => \" \").join(\"\");\n\n if (this.#interactive && this.#interactiveManager !== undefined && stream.isTTY) {\n this.#interactiveManager.update(streamType, (groupSpaces + items.join(\"\")).split(\"\\n\"), 0);\n } else {\n writeStream(groupSpaces + items.join(\"\"), stream);\n }\n }\n}\n","import { InteractiveManager } from \"./interactive/interactive-manager\";\nimport { InteractiveStreamHook } from \"./interactive/interactive-stream-hook\";\nimport { PailBrowserImpl } from \"./pail.browser\";\nimport { RawReporter } from \"./reporter/raw/raw.server\";\nimport type {\n ConstructorOptions,\n DefaultLogTypes,\n InteractiveStreamReporter,\n LiteralUnion,\n LoggerFunction,\n LoggerTypesAwareReporter,\n Reporter,\n ServerConstructorOptions,\n StreamAwareReporter,\n StringifyAwareReporter,\n} from \"./types\";\nimport { clearTerminal } from \"./util/ansi-escapes\";\n\nclass PailServerImpl<T extends string = never, L extends string = never> extends PailBrowserImpl<T, L> {\n protected readonly stdout: NodeJS.WriteStream;\n\n protected readonly stderr: NodeJS.WriteStream;\n\n protected interactiveManager: InteractiveManager | undefined;\n\n protected readonly interactive: boolean;\n\n public constructor(public readonly options: ServerConstructorOptions<T, L> = {}) {\n const { interactive, rawReporter, reporters, stderr, stdout, ...rest } = options;\n\n super(rest as ConstructorOptions<T, L>);\n\n this.interactive = interactive ?? false;\n\n this.stdout = stdout as NodeJS.WriteStream;\n this.stderr = stderr as NodeJS.WriteStream;\n\n if (this.interactive) {\n this.interactiveManager = new InteractiveManager(new InteractiveStreamHook(this.stdout), new InteractiveStreamHook(this.stderr));\n }\n\n if (Array.isArray(reporters)) {\n this.registerReporters(reporters);\n }\n\n this.rawReporter = this.extendReporter(options.rawReporter ?? new RawReporter<L>());\n }\n\n public override scope<N extends string = T>(...name: string[]): PailServerType<N, L> {\n if (name.length === 0) {\n throw new Error(\"No scope name was defined.\");\n }\n\n this.scopeName = name.flat();\n\n return this as unknown as PailServerType<N, L>;\n }\n\n public getInteractiveManager(): InteractiveManager | undefined {\n return this.interactiveManager;\n }\n\n public wrapStd() {\n this._wrapStream(this.stdout, \"log\");\n this._wrapStream(this.stderr, \"log\");\n }\n\n public restoreStd() {\n this._restoreStream(this.stdout);\n this._restoreStream(this.stderr);\n }\n\n public wrapAll(): void {\n this.wrapConsole();\n this.wrapStd();\n }\n\n public restoreAll(): void {\n this.restoreConsole();\n this.restoreStd();\n }\n\n public override clear(): void {\n this.stdout.write(clearTerminal as string);\n this.stderr.write(clearTerminal as string);\n }\n\n protected override extendReporter(reporter: Reporter<L>): Reporter<L> {\n if (typeof (reporter as StreamAwareReporter<L>).setStdout === \"function\") {\n (reporter as StreamAwareReporter<L>).setStdout(this.stdout);\n }\n\n if (typeof (reporter as StreamAwareReporter<L>).setStderr === \"function\") {\n (reporter as StreamAwareReporter<L>).setStderr(this.stderr);\n }\n\n if (typeof (reporter as LoggerTypesAwareReporter<T, L>).setLoggerTypes === \"function\") {\n (reporter as LoggerTypesAwareReporter<T, L>).setLoggerTypes(this.types);\n }\n\n if (typeof (reporter as StringifyAwareReporter<L>).setStringify === \"function\") {\n (reporter as StringifyAwareReporter<L>).setStringify(this.stringify);\n }\n\n if (typeof (reporter as InteractiveStreamReporter<L>).setIsInteractive === \"function\") {\n (reporter as InteractiveStreamReporter<L>).setIsInteractive(this.interactive);\n }\n\n if (this.interactive && typeof (reporter as InteractiveStreamReporter<L>).setInteractiveManager === \"function\") {\n (reporter as InteractiveStreamReporter<L>).setInteractiveManager(this.interactiveManager);\n }\n\n return reporter;\n }\n\n private _wrapStream(stream: NodeJS.WriteStream | undefined, type: LiteralUnion<DefaultLogTypes, L>) {\n if (!stream) {\n return;\n }\n\n // Backup original value\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (!(stream as any).__write) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any,no-param-reassign,@typescript-eslint/unbound-method\n (stream as any).__write = stream.write;\n }\n\n // Override\n // eslint-disable-next-line @typescript-eslint/no-explicit-any,no-param-reassign\n (stream as any).write = (data: any): void => {\n // @TODO: Fix typings\n // @ts-expect-error - dynamic property\n // eslint-disable-next-line security/detect-object-injection\n (this as unknown as PailServerImpl)[type].log(String(data).trim());\n };\n }\n\n // eslint-disable-next-line class-methods-use-this\n private _restoreStream(stream?: NodeJS.WriteStream): void {\n if (!stream) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if ((stream as any).__write) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any,no-param-reassign\n stream.write = (stream as any).__write;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any,no-param-reassign\n delete (stream as any).__write;\n }\n }\n}\n\nexport type PailServerType<T extends string = never, L extends string = never> = PailServerImpl<T, L> &\n Record<DefaultLogTypes, LoggerFunction> &\n Record<T, LoggerFunction> &\n (new<TC extends string = never, LC extends string = never>(options?: ServerConstructorOptions<TC, LC>) => PailServerType<TC, LC>);\n\nexport type PailConstructor<T extends string = never, L extends string = never> = new (options?: ServerConstructorOptions<T, L>) => PailServerType<T, L>;\n\nexport const PailServer = PailServerImpl as unknown as PailServerType;\n","import type { PailServerType } from \"./pail.server\";\nimport { PailServer } from \"./pail.server\";\nimport { ErrorProcessor } from \"./processor/error/error-processor\";\nimport { MessageFormatterProcessor } from \"./processor/message-formatter-processor\";\nimport { PrettyReporter } from \"./reporter/pretty/pretty.server\";\nimport type { ConstructorOptions, ExtendedRfc5424LogLevels } from \"./types\";\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst _getDefaultLogLevel = (): ExtendedRfc5424LogLevels => {\n if (process.env[\"NODE_ENV\"] === \"debug\" || process.env[\"DEBUG\"] !== undefined) {\n return \"debug\";\n }\n\n if (process.env[\"NODE_ENV\"] === \"test\") {\n return \"warning\";\n }\n\n return \"informational\";\n};\n\nexport const createPail = <T extends string = never, L extends string = never>(options?: ConstructorOptions<T, L>): PailServerType<T, L> =>\n new PailServer<T, L>({\n logLevel: _getDefaultLogLevel(),\n processors: [new MessageFormatterProcessor<L>(), new ErrorProcessor<L>()],\n reporters: [new PrettyReporter()],\n stderr: process.stderr,\n stdout: process.stdout,\n ...options,\n });\n\nexport const pail = createPail();\n\nexport type { PailServerType as Pail } from \"./pail.server\";\nexport type {\n ConstructorOptions,\n DefaultLoggerTypes,\n DefaultLogTypes,\n ExtendedRfc5424LogLevels,\n LoggerConfiguration,\n LoggerFunction,\n LoggerTypesAwareReporter,\n LoggerTypesConfig,\n Processor,\n Reporter,\n StreamAwareReporter,\n} from \"./shared\";\n"]}
@@ -1,8 +1,7 @@
1
- import { a as DefaultLogTypes, b as LoggerFunction, e as ServerConstructorOptions, I as InteractiveManager, R as Reporter, C as ConstructorOptions } from './types.d-RNxsa9NR.cjs';
2
- export { D as DefaultLoggerTypes, E as ExtendedRfc5424LogLevels, L as LoggerConfiguration, c as LoggerTypesAwareReporter, d as LoggerTypesConfig, P as Processor, S as StreamAwareReporter } from './types.d-RNxsa9NR.cjs';
3
- import { a as PailBrowserImpl } from './pail.browser-eQgV1vak.cjs';
1
+ import { a as DefaultLogTypes, b as LoggerFunction, f as ServerConstructorOptions, I as InteractiveManager, R as Reporter, C as ConstructorOptions } from './types--_CcxoUw.cjs';
2
+ export { D as DefaultLoggerTypes, E as ExtendedRfc5424LogLevels, L as LoggerConfiguration, c as LoggerTypesAwareReporter, d as LoggerTypesConfig, P as Processor, S as StreamAwareReporter } from './types--_CcxoUw.cjs';
3
+ import { a as PailBrowserImpl } from './pail.browser-qG_FNUeK.cjs';
4
4
  import '@visulima/colorize';
5
- import 'type-fest';
6
5
  import 'safe-stable-stringify';
7
6
 
8
7
  declare class PailServerImpl<T extends string = never, L extends string = never> extends PailBrowserImpl<T, L> {
@@ -25,7 +24,7 @@ declare class PailServerImpl<T extends string = never, L extends string = never>
25
24
  }
26
25
  type PailServerType<T extends string = never, L extends string = never> = PailServerImpl<T, L> & Record<DefaultLogTypes, LoggerFunction> & Record<T, LoggerFunction> & (new <TC extends string = never, LC extends string = never>(options?: ServerConstructorOptions<TC, LC>) => PailServerType<TC, LC>);
27
26
 
28
- declare const createPail: <T extends string = never, L extends string = never>(options?: ConstructorOptions<T, L> | undefined) => PailServerType<T, L>;
27
+ declare const createPail: <T extends string = never, L extends string = never>(options?: ConstructorOptions<T, L>) => PailServerType<T, L>;
29
28
  declare const pail: PailServerType<never, never>;
30
29
 
31
30
  export { ConstructorOptions, DefaultLogTypes, LoggerFunction, type PailServerType as Pail, Reporter, createPail, pail };
@@ -1,8 +1,7 @@
1
- import { a as DefaultLogTypes, b as LoggerFunction, e as ServerConstructorOptions, I as InteractiveManager, R as Reporter, C as ConstructorOptions } from './types.d-RNxsa9NR.js';
2
- export { D as DefaultLoggerTypes, E as ExtendedRfc5424LogLevels, L as LoggerConfiguration, c as LoggerTypesAwareReporter, d as LoggerTypesConfig, P as Processor, S as StreamAwareReporter } from './types.d-RNxsa9NR.js';
3
- import { a as PailBrowserImpl } from './pail.browser-DH-2bBhK.js';
1
+ import { a as DefaultLogTypes, b as LoggerFunction, f as ServerConstructorOptions, I as InteractiveManager, R as Reporter, C as ConstructorOptions } from './types--_CcxoUw.js';
2
+ export { D as DefaultLoggerTypes, E as ExtendedRfc5424LogLevels, L as LoggerConfiguration, c as LoggerTypesAwareReporter, d as LoggerTypesConfig, P as Processor, S as StreamAwareReporter } from './types--_CcxoUw.js';
3
+ import { a as PailBrowserImpl } from './pail.browser-0Ej0KEkV.js';
4
4
  import '@visulima/colorize';
5
- import 'type-fest';
6
5
  import 'safe-stable-stringify';
7
6
 
8
7
  declare class PailServerImpl<T extends string = never, L extends string = never> extends PailBrowserImpl<T, L> {
@@ -25,7 +24,7 @@ declare class PailServerImpl<T extends string = never, L extends string = never>
25
24
  }
26
25
  type PailServerType<T extends string = never, L extends string = never> = PailServerImpl<T, L> & Record<DefaultLogTypes, LoggerFunction> & Record<T, LoggerFunction> & (new <TC extends string = never, LC extends string = never>(options?: ServerConstructorOptions<TC, LC>) => PailServerType<TC, LC>);
27
26
 
28
- declare const createPail: <T extends string = never, L extends string = never>(options?: ConstructorOptions<T, L> | undefined) => PailServerType<T, L>;
27
+ declare const createPail: <T extends string = never, L extends string = never>(options?: ConstructorOptions<T, L>) => PailServerType<T, L>;
29
28
  declare const pail: PailServerType<never, never>;
30
29
 
31
30
  export { ConstructorOptions, DefaultLogTypes, LoggerFunction, type PailServerType as Pail, Reporter, createPail, pail };
@@ -1,20 +1,19 @@
1
- import { c, a as a$1 } from './chunk-FJCEDFRI.js';
2
- import { a } from './chunk-ICPHL4AR.js';
3
- import './chunk-PVAYQO5O.js';
4
- import { b as b$1, a as a$3 } from './chunk-HKIS52YX.js';
5
- import './chunk-57OYT2NC.js';
6
- import './chunk-EBP7SMYV.js';
7
- import { b as b$2, c as c$1, a as a$2 } from './chunk-YKHMQW6V.js';
8
- import Y from 'terminal-size';
9
- import q from 'wrap-ansi';
10
- import { StringDecoder } from 'string_decoder';
1
+ import { c, a as a$2 } from './chunk-576JQ6DN.js';
2
+ import { a as a$1 } from './chunk-SR3Q3EUO.js';
3
+ import './chunk-AFMDCM5W.js';
4
+ import { b, a as a$3 } from './chunk-ETY4VGL2.js';
5
+ import './chunk-ZB7IIFHO.js';
6
+ import './chunk-NF47XQ47.js';
7
+ import C from 'terminal-size';
8
+ import P from 'wrap-ansi';
9
+ import { StringDecoder } from 'node:string_decoder';
11
10
 
12
- var p,l,f,g,L,P=class{constructor(t,e){b$2(this,p,void 0);b$2(this,l,!1);b$2(this,f,!1);b$2(this,g,0);b$2(this,L,0);c$1(this,p,{stderr:e,stdout:t});}get lastLength(){return a$2(this,g)}get outside(){return a$2(this,L)}get isHooked(){return a$2(this,l)}get isSuspended(){return a$2(this,f)}erase(t,e=a$2(this,g)){if(!a$2(this,p)[t])throw new Error(`Stream "${t}" is not available`);a$2(this,p)[t].erase(e);}hook(){return a$2(this,l)||(Object.values(a$2(this,p)).forEach(t=>t.active()),this._clear(!0)),a$2(this,l)}resume(t,e){a$2(this,f)&&(c$1(this,f,!1),e&&this.erase(t,e),c$1(this,g,0),Object.values(a$2(this,p)).forEach(o=>o.active()));}suspend(t,e=!0){a$2(this,f)||(c$1(this,f,!0),e&&this.erase(t),Object.values(a$2(this,p)).forEach(o=>o.renew()));}unhook(t=!0){return a$2(this,l)&&(Object.values(a$2(this,p)).forEach(e=>e.inactive(t)),this._clear()),!a$2(this,l)}update(t,e,o=0){if(e.length>0){let a=a$2(this,p)[t];if(a){let{columns:w,rows:n}=Y(),m=o>n?n-1:Math.max(0,Math.min(n-1,o)),d=this.lastLength-m,v=Math.max(d-n,this.outside),h=e.reduce((A,K)=>[...A,q(K,w,{hard:!0,trim:!1,wordWrap:!0})],[]);n<=d?(a.erase(n),m<v&&(h=h.slice(v-m+1))):d&&a.erase(d),a.write(h.join(`
11
+ var v=class{#e;#t=!1;#i=!1;#r=0;#s=0;constructor(t,e){this.#e={stderr:e,stdout:t};}get lastLength(){return this.#r}get outside(){return this.#s}get isHooked(){return this.#t}get isSuspended(){return this.#i}erase(t,e=this.#r){if(this.#e[t]===void 0)throw new TypeError(`Stream "${t}" is not available`);this.#e[t].erase(e);}hook(){return this.#t||(Object.values(this.#e).forEach(t=>t.active()),this._clear(!0)),this.#t}resume(t,e){this.#i&&(this.#i=!1,e&&this.erase(t,e),this.#r=0,Object.values(this.#e).forEach(r=>r.active()));}suspend(t,e=!0){this.#i||(this.#i=!0,e&&this.erase(t),Object.values(this.#e).forEach(r=>r.renew()));}unhook(t=!0){return this.#t&&(Object.values(this.#e).forEach(e=>e.inactive(t)),this._clear()),!this.#t}update(t,e,r=0){if(e.length>0){if(this.#e[t]===void 0)throw new TypeError(`Stream "${t}" is not available`);let o=this.#e[t],{columns:u,rows:i}=C(),c=r>i?i-1:Math.max(0,Math.min(i-1,r)),n=this.lastLength-c,d=Math.max(n-i,this.outside),p=e.reduce((l,E)=>[...l,P(E,u,{hard:!0,trim:!1,wordWrap:!0})],[]);i<=n?(o.erase(i),c<d&&(p=p.slice(d-c+1))):n&&o.erase(n),o.write(p.join(`
13
12
  `)+`
14
- `),c$1(this,g,v?v+h.length+1:h.length),c$1(this,L,Math.max(this.lastLength-n,this.outside));}}}_clear(t=!1){c$1(this,l,t),c$1(this,g,0),c$1(this,L,0);}};p=new WeakMap,l=new WeakMap,f=new WeakMap,g=new WeakMap,L=new WeakMap;var u="\x1B[",F=u+"2J",Q=u+"2K",X=u+"G",Z=(c=1)=>u+c+"A",W=process?.platform==="win32"?`${F}${u}0f`:`${F}${u}3J${u}H`,U=u+"?25l",G=u+"?25h",V=c=>{let t="";for(let e=0;e<c;e++)t+=Q+(e<c-1?Z():"");return c&&(t+=X),t};var _,S,b,y,J=class J{constructor(t){b$2(this,_,new StringDecoder);b$2(this,S,[]);b$2(this,b,void 0);b$2(this,y,void 0);c$1(this,b,t.write),c$1(this,y,t);}active(){this.write(U),a$2(this,y).write=(t,...e)=>{let o=e.at(-1);return a$2(this,S).push(a$2(this,_).write(typeof t=="string"?Buffer.from(t,typeof e[0]=="string"?e[0]:void 0):Buffer.from(t))),typeof o=="function"&&o(),J.DRAIN};}erase(t){t>0&&this.write(V(t+1));}inactive(t=!1){a$2(this,S).length>0&&(t&&this.write(`
15
- `),a$2(this,S).forEach(e=>{this.write(e);}),c$1(this,S,[])),this.renew();}renew(){a$2(this,y).write=a$2(this,b),this.write(G);}write(t){a$2(this,b).apply(a$2(this,y),[t]);}};_=new WeakMap,S=new WeakMap,b=new WeakMap,y=new WeakMap,J.DRAIN=!0;var C=J;var T,R,x,I,E,O=class{constructor(){b$2(this,T,void 0);b$2(this,R,void 0);b$2(this,x,void 0);b$2(this,I,void 0);b$2(this,E,!1);c$1(this,R,process.stdout),c$1(this,x,process.stderr);}setStdout(t){c$1(this,R,t);}setStderr(t){c$1(this,x,t);}setStringify(t){c$1(this,T,t);}setInteractiveManager(t){c$1(this,I,t);}setIsInteractive(t){c$1(this,E,t);}log(t){let{context:e,groups:o,message:a,type:w}=t,n=[],m=typeof a=="string"?a:a$2(this,T).call(this,a);n.push(m+""),e&&n.push(...e.map(A=>typeof A=="object"?" "+a$2(this,T).call(this,A):" "+A));let d=["error","trace","warn"].includes(w.level)?"stderr":"stdout",v=d==="stderr"?a$2(this,x):a$2(this,R),h=o?o.map(()=>" ").join(""):"";a$2(this,E)&&a$2(this,I)!==void 0&&v.isTTY?a$2(this,I).update(d,(h+n.join("")).split(`
16
- `),0):a$3(h+n.join(""),v);}};T=new WeakMap,R=new WeakMap,x=new WeakMap,I=new WeakMap,E=new WeakMap;var k=class extends a$1{constructor(e={}){let{interactive:o,rawReporter:a,reporters:w,stderr:n,stdout:m,...d}=e;super(d);this.options=e;this.interactive=o??!1,this.stdout=m,this.stderr=n,this.interactive&&(this.interactiveManager=new P(new C(this.stdout),new C(this.stderr))),Array.isArray(w)&&this.registerReporters(w),this.rawReporter=this.extendReporter(e.rawReporter??new O);}scope(...e){if(e.length===0)throw new Error("No scope name was defined.");return this.scopeName=e.flat(),this}getInteractiveManager(){return this.interactiveManager}wrapStd(){this._wrapStream(this.stdout,"log"),this._wrapStream(this.stderr,"log");}restoreStd(){this._restoreStream(this.stdout),this._restoreStream(this.stderr);}wrapAll(){this.wrapConsole(),this.wrapStd();}restoreAll(){this.restoreConsole(),this.restoreStd();}clear(){this.stdout.write(W),this.stderr.write(W);}extendReporter(e){return e.setStdout&&e.setStdout(this.stdout),e.setStderr&&e.setStderr(this.stderr),e.setLoggerTypes&&e.setLoggerTypes(this.types),e.setStringify&&e.setStringify(this.stringify),e.setIsInteractive&&e.setIsInteractive(this.interactive),this.interactive&&e.setInteractiveManager&&e.setInteractiveManager(this.interactiveManager),e}_wrapStream(e,o){e&&(e.__write||(e.__write=e.write),e.write=a=>{this[o].log(String(a).trim());});}_restoreStream(e){e&&e.__write&&(e.write=e.__write,delete e.__write);}},z=k;var te=()=>process.env.DEBUG!==void 0?"debug":"informational",re=c$1=>new z({logLevel:te(),processors:[new a,new c],reporters:[new b$1],stderr:process.stderr,stdout:process.stdout,...c$1}),Ce=re();
13
+ `),this.#r=d?d+p.length+1:p.length,this.#s=Math.max(this.lastLength-i,this.outside);}}_clear(t=!1){this.#t=t,this.#r=0,this.#s=0;}};var a="\x1B[",x=a+"2J",_=a+"2K",J=a+"G",O=(s=1)=>a+s+"A",S=process.platform==="win32"?`${x}${a}0f`:`${x}${a}3J${a}H`,I=a+"?25l",A=a+"?25h",N=s=>{let t="";for(let e=0;e<s;e++)t+=_+(e<s-1?O():"");return s&&(t+=J),t};var g=class s{static DRAIN=!0;#e=new StringDecoder;#t=[];#i;#r;constructor(t){this.#i=t.write,this.#r=t;}active(){this.write(I),this.#r.write=(t,...e)=>{let r=e.at(-1);return this.#t.push(this.#e.write(typeof t=="string"?Buffer.from(t,typeof e[0]=="string"?e[0]:void 0):Buffer.from(t))),typeof r=="function"&&r(),s.DRAIN};}erase(t){t>0&&this.write(N(t+1));}inactive(t=!1){this.#t.length>0&&(t&&this.write(`
14
+ `),this.#t.forEach(e=>{this.write(e);}),this.#t=[]),this.renew();}renew(){this.#r.write=this.#i,this.write(A);}write(t){this.#i.apply(this.#r,[t]);}};var m=class{#e;#t;#i;#r;#s=!1;constructor(){this.#t=process.stdout,this.#i=process.stderr;}setStdout(t){this.#t=t;}setStderr(t){this.#i=t;}setStringify(t){this.#e=t;}setInteractiveManager(t){this.#r=t;}setIsInteractive(t){this.#s=t;}log(t){let{context:e,groups:r,message:o,type:u}=t,i=[],c=typeof o=="string"?o:this.#e(o);i.push(c+""),e&&i.push(...e.map(l=>typeof l=="object"?" "+this.#e(l):" "+l));let n=["error","trace","warn"].includes(u.level)?"stderr":"stdout",d=n==="stderr"?this.#i:this.#t,p=r.map(()=>" ").join("");this.#s&&this.#r!==void 0&&d.isTTY?this.#r.update(n,(p+i.join("")).split(`
15
+ `),0):a$3(p+i.join(""),d);}};var y=class extends a$2{constructor(e={}){let{interactive:r,rawReporter:o,reporters:u,stderr:i,stdout:c,...n}=e;super(n);this.options=e;this.interactive=r??!1,this.stdout=c,this.stderr=i,this.interactive&&(this.interactiveManager=new v(new g(this.stdout),new g(this.stderr))),Array.isArray(u)&&this.registerReporters(u),this.rawReporter=this.extendReporter(e.rawReporter??new m);}stdout;stderr;interactiveManager;interactive;scope(...e){if(e.length===0)throw new Error("No scope name was defined.");return this.scopeName=e.flat(),this}getInteractiveManager(){return this.interactiveManager}wrapStd(){this._wrapStream(this.stdout,"log"),this._wrapStream(this.stderr,"log");}restoreStd(){this._restoreStream(this.stdout),this._restoreStream(this.stderr);}wrapAll(){this.wrapConsole(),this.wrapStd();}restoreAll(){this.restoreConsole(),this.restoreStd();}clear(){this.stdout.write(S),this.stderr.write(S);}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}_wrapStream(e,r){e&&(e.__write||(e.__write=e.write),e.write=o=>{this[r].log(String(o).trim());});}_restoreStream(e){e&&e.__write&&(e.write=e.__write,delete e.__write);}},M=y;var W=()=>process.env.DEBUG!==void 0?"debug":"informational",D=s=>new M({logLevel:W(),processors:[new a$1,new c],reporters:[new b],stderr:process.stderr,stdout:process.stdout,...s}),ce=D();
17
16
 
18
- export { re as createPail, Ce as pail };
17
+ export { D as createPail, ce as pail };
19
18
  //# sourceMappingURL=out.js.map
20
19
  //# sourceMappingURL=index.server.js.map