@dx-pkg/logger 1.0.9 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/package.json +31 -1
- package/src/index.d.mts +16 -22
- package/src/index.d.ts +16 -22
- package/src/index.js +1 -1
- package/src/index.mjs +1 -1
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dx-pkg/logger",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"private": false,
|
|
6
6
|
"license": "ISC",
|
|
@@ -30,5 +30,35 @@
|
|
|
30
30
|
"default": "./examples/index.mjs"
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
+
},
|
|
34
|
+
"scripts": {
|
|
35
|
+
"build": "npm run build:tsdown",
|
|
36
|
+
"dev": "npm run dev:tsdown",
|
|
37
|
+
"build:tsdown": "tsdown --config tsdown.config.build.ts --config-loader unrun && node scripts/clean-dts-comments.js",
|
|
38
|
+
"dev:tsdown": "tsdown --config tsdown.config.dev.ts --config-loader unrun && node scripts/clean-dts-comments.js",
|
|
39
|
+
"build:tsup": "tsup --config tsup.config.build.ts",
|
|
40
|
+
"dev:tsup": "tsup --config tsup.config.dev.ts",
|
|
41
|
+
"build:tsc": "tsc -p tsconfig.json",
|
|
42
|
+
"dev:tsc": "tsc -p tsconfig.json --watch",
|
|
43
|
+
"example:build": "npm run build && npm run example",
|
|
44
|
+
"example:dev:tsc": "tsc-watch -b --onSuccess \"npm example\"",
|
|
45
|
+
"example": "node ../../dist/packages/logger/examples/index.js",
|
|
46
|
+
"test": "jest",
|
|
47
|
+
"lint": "eslint .",
|
|
48
|
+
"lint:fix": "eslint . --fix",
|
|
49
|
+
"format": "prettier --check '**/*.{ts,json,md}' --ignore-unknown",
|
|
50
|
+
"format:fix": "prettier --write '**/*.{ts,json,md}' --ignore-unknown",
|
|
51
|
+
"prettier": "prettier",
|
|
52
|
+
"bin": "node ../../dist/packages/logger/src/commands/index.js"
|
|
53
|
+
},
|
|
54
|
+
"devDependencies": {
|
|
55
|
+
"@types/jest": "^30.0.0",
|
|
56
|
+
"@types/node": "^24.10.1",
|
|
57
|
+
"eslint": "^10.0.3",
|
|
58
|
+
"prettier": "^3.8.1",
|
|
59
|
+
"ts-jest": "^29.4.5",
|
|
60
|
+
"tsc-watch": "^7.2.0",
|
|
61
|
+
"tsdown": "^0.21.2",
|
|
62
|
+
"tsup": "^8.5.1"
|
|
33
63
|
}
|
|
34
64
|
}
|
package/src/index.d.mts
CHANGED
|
@@ -1,36 +1,30 @@
|
|
|
1
1
|
|
|
2
2
|
interface Logger {
|
|
3
|
-
info(message: string): void;
|
|
4
|
-
|
|
5
|
-
error(message: string): void;
|
|
6
|
-
|
|
3
|
+
info(message: string, ...args: unknown[]): void;
|
|
4
|
+
warn(message: string, ...args: unknown[]): void;
|
|
5
|
+
error(message: string, ...args: unknown[]): void;
|
|
6
|
+
debug(message: string, ...args: unknown[]): void;
|
|
7
|
+
}
|
|
8
|
+
interface CliLogger extends Logger {
|
|
9
|
+
success(message: string, ...args: unknown[]): void;
|
|
7
10
|
header(message: string): void;
|
|
8
|
-
reset(message: string): void;
|
|
9
|
-
red(message: string): void;
|
|
10
|
-
green(message: string): void;
|
|
11
|
-
blue(message: string): void;
|
|
12
|
-
yellow(message: string): void;
|
|
13
|
-
magenta(message: string): void;
|
|
14
11
|
gray(message: string): void;
|
|
12
|
+
yellow(message: string): void;
|
|
15
13
|
logEmptyLine(): void;
|
|
16
14
|
logSeparator(): void;
|
|
17
15
|
logSummary(successCount: number, failCount: number, totalCount: number): void;
|
|
18
16
|
}
|
|
19
|
-
declare class ConsoleLogger implements
|
|
20
|
-
info(message: string): void;
|
|
21
|
-
|
|
22
|
-
error(message: string): void;
|
|
23
|
-
|
|
17
|
+
declare class ConsoleLogger implements CliLogger {
|
|
18
|
+
info(message: string, ...args: unknown[]): void;
|
|
19
|
+
warn(message: string, ...args: unknown[]): void;
|
|
20
|
+
error(message: string, ...args: unknown[]): void;
|
|
21
|
+
debug(message: string, ...args: unknown[]): void;
|
|
22
|
+
success(message: string, ...args: unknown[]): void;
|
|
24
23
|
header(message: string): void;
|
|
25
|
-
reset(message: string): void;
|
|
26
|
-
red(message: string): void;
|
|
27
|
-
green(message: string): void;
|
|
28
|
-
blue(message: string): void;
|
|
29
|
-
yellow(message: string): void;
|
|
30
|
-
magenta(message: string): void;
|
|
31
24
|
gray(message: string): void;
|
|
25
|
+
yellow(message: string): void;
|
|
32
26
|
logEmptyLine(): void;
|
|
33
27
|
logSeparator(): void;
|
|
34
28
|
logSummary(successCount: number, failCount: number, totalCount: number): void;
|
|
35
29
|
}
|
|
36
|
-
export { ConsoleLogger, Logger };
|
|
30
|
+
export { CliLogger, ConsoleLogger, Logger };
|
package/src/index.d.ts
CHANGED
|
@@ -1,36 +1,30 @@
|
|
|
1
1
|
|
|
2
2
|
interface Logger {
|
|
3
|
-
info(message: string): void;
|
|
4
|
-
|
|
5
|
-
error(message: string): void;
|
|
6
|
-
|
|
3
|
+
info(message: string, ...args: unknown[]): void;
|
|
4
|
+
warn(message: string, ...args: unknown[]): void;
|
|
5
|
+
error(message: string, ...args: unknown[]): void;
|
|
6
|
+
debug(message: string, ...args: unknown[]): void;
|
|
7
|
+
}
|
|
8
|
+
interface CliLogger extends Logger {
|
|
9
|
+
success(message: string, ...args: unknown[]): void;
|
|
7
10
|
header(message: string): void;
|
|
8
|
-
reset(message: string): void;
|
|
9
|
-
red(message: string): void;
|
|
10
|
-
green(message: string): void;
|
|
11
|
-
blue(message: string): void;
|
|
12
|
-
yellow(message: string): void;
|
|
13
|
-
magenta(message: string): void;
|
|
14
11
|
gray(message: string): void;
|
|
12
|
+
yellow(message: string): void;
|
|
15
13
|
logEmptyLine(): void;
|
|
16
14
|
logSeparator(): void;
|
|
17
15
|
logSummary(successCount: number, failCount: number, totalCount: number): void;
|
|
18
16
|
}
|
|
19
|
-
declare class ConsoleLogger implements
|
|
20
|
-
info(message: string): void;
|
|
21
|
-
|
|
22
|
-
error(message: string): void;
|
|
23
|
-
|
|
17
|
+
declare class ConsoleLogger implements CliLogger {
|
|
18
|
+
info(message: string, ...args: unknown[]): void;
|
|
19
|
+
warn(message: string, ...args: unknown[]): void;
|
|
20
|
+
error(message: string, ...args: unknown[]): void;
|
|
21
|
+
debug(message: string, ...args: unknown[]): void;
|
|
22
|
+
success(message: string, ...args: unknown[]): void;
|
|
24
23
|
header(message: string): void;
|
|
25
|
-
reset(message: string): void;
|
|
26
|
-
red(message: string): void;
|
|
27
|
-
green(message: string): void;
|
|
28
|
-
blue(message: string): void;
|
|
29
|
-
yellow(message: string): void;
|
|
30
|
-
magenta(message: string): void;
|
|
31
24
|
gray(message: string): void;
|
|
25
|
+
yellow(message: string): void;
|
|
32
26
|
logEmptyLine(): void;
|
|
33
27
|
logSeparator(): void;
|
|
34
28
|
logSummary(successCount: number, failCount: number, totalCount: number): void;
|
|
35
29
|
}
|
|
36
|
-
export { ConsoleLogger, Logger };
|
|
30
|
+
export { CliLogger, ConsoleLogger, Logger };
|
package/src/index.js
CHANGED
|
@@ -3,4 +3,4 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.
|
|
|
3
3
|
`)+n,i=r+1,r=e.indexOf(`
|
|
4
4
|
`,i)}while(r!==-1);return a+=e.substr(i),a}}})),_=o(((e,t)=>{let n=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,r=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,i=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,a=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,o=new Map([[`n`,`
|
|
5
5
|
`],[`r`,`\r`],[`t`,` `],[`b`,`\b`],[`f`,`\f`],[`v`,`\v`],[`0`,`\0`],[`\\`,`\\`],[`e`,`\x1B`],[`a`,`\x07`]]);function s(e){let t=e[0]===`u`,n=e[1]===`{`;return t&&!n&&e.length===5||e[0]===`x`&&e.length===3?String.fromCharCode(parseInt(e.slice(1),16)):t&&n?String.fromCodePoint(parseInt(e.slice(2,-1),16)):o.get(e)||e}function c(e,t){let n=[],r=t.trim().split(/\s*,\s*/g),o;for(let t of r){let r=Number(t);if(!Number.isNaN(r))n.push(r);else if(o=t.match(i))n.push(o[2].replace(a,(e,t,n)=>t?s(t):n));else throw Error(`Invalid Chalk template style argument: ${t} (in style '${e}')`)}return n}function l(e){r.lastIndex=0;let t=[],n;for(;(n=r.exec(e))!==null;){let e=n[1];if(n[2]){let r=c(e,n[2]);t.push([e].concat(r))}else t.push([e])}return t}function u(e,t){let n={};for(let e of t)for(let t of e.styles)n[t[0]]=e.inverse?null:t.slice(1);let r=e;for(let[e,t]of Object.entries(n))if(Array.isArray(t)){if(!(e in r))throw Error(`Unknown Chalk style: ${e}`);r=t.length>0?r[e](...t):r[e]}return r}t.exports=(e,t)=>{let r=[],i=[],a=[];if(t.replace(n,(t,n,o,c,d,f)=>{if(n)a.push(s(n));else if(c){let t=a.join(``);a=[],i.push(r.length===0?t:u(e,r)(t)),r.push({inverse:o,styles:l(c)})}else if(d){if(r.length===0)throw Error(`Found extraneous } in Chalk template literal`);i.push(u(e,r)(a.join(``))),a=[],r.pop()}else a.push(f)}),i.push(a.join(``)),r.length>0){let e=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?``:`s`} (\`}\`)`;throw Error(e)}return i.join(``)}})),v=c(o(((e,t)=>{let n=p(),{stdout:r,stderr:i}=h(),{stringReplaceAll:a,stringEncaseCRLFWithFirstIndex:o}=g(),{isArray:s}=Array,c=[`ansi`,`ansi`,`ansi256`,`ansi16m`],l=Object.create(null),u=(e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw Error("The `level` option should be an integer from 0 to 3");let n=r?r.level:0;e.level=t.level===void 0?n:t.level};var d=class{constructor(e){return f(e)}};let f=e=>{let t={};return u(t,e),t.template=(...e)=>w(t.template,...e),Object.setPrototypeOf(t,m.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=()=>{throw Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},t.template.Instance=d,t.template};function m(e){return f(e)}for(let[e,t]of Object.entries(n))l[e]={get(){let n=x(this,b(t.open,t.close,this._styler),this._isEmpty);return Object.defineProperty(this,e,{value:n}),n}};l.visible={get(){let e=x(this,this._styler,!0);return Object.defineProperty(this,`visible`,{value:e}),e}};let v=[`rgb`,`hex`,`keyword`,`hsl`,`hsv`,`hwb`,`ansi`,`ansi256`];for(let e of v)l[e]={get(){let{level:t}=this;return function(...r){let i=b(n.color[c[t]][e](...r),n.color.close,this._styler);return x(this,i,this._isEmpty)}}};for(let e of v){let t=`bg`+e[0].toUpperCase()+e.slice(1);l[t]={get(){let{level:t}=this;return function(...r){let i=b(n.bgColor[c[t]][e](...r),n.bgColor.close,this._styler);return x(this,i,this._isEmpty)}}}}let y=Object.defineProperties(()=>{},{...l,level:{enumerable:!0,get(){return this._generator.level},set(e){this._generator.level=e}}}),b=(e,t,n)=>{let r,i;return n===void 0?(r=e,i=t):(r=n.openAll+e,i=t+n.closeAll),{open:e,close:t,openAll:r,closeAll:i,parent:n}},x=(e,t,n)=>{let r=(...e)=>s(e[0])&&s(e[0].raw)?S(r,w(r,...e)):S(r,e.length===1?``+e[0]:e.join(` `));return Object.setPrototypeOf(r,y),r._generator=e,r._styler=t,r._isEmpty=n,r},S=(e,t)=>{if(e.level<=0||!t)return e._isEmpty?``:t;let n=e._styler;if(n===void 0)return t;let{openAll:r,closeAll:i}=n;if(t.indexOf(`\x1B`)!==-1)for(;n!==void 0;)t=a(t,n.close,n.open),n=n.parent;let s=t.indexOf(`
|
|
6
|
-
`);return s!==-1&&(t=o(t,i,r,s)),r+t+i},C,w=(e,...t)=>{let[n]=t;if(!s(n)||!s(n.raw))return t.join(` `);let r=t.slice(1),i=[n.raw[0]];for(let e=1;e<n.length;e++)i.push(String(r[e-1]).replace(/[{}\\]/g,`\\$&`),String(n.raw[e]));return C===void 0&&(C=_()),C(e,i.join(``))};Object.defineProperties(m.prototype,l);let T=m();T.supportsColor=r,T.stderr=m({level:i?i.level:0}),T.stderr.supportsColor=i,t.exports=T}))()),y=class{info(e){console.log(v.default.blue(e))}
|
|
6
|
+
`);return s!==-1&&(t=o(t,i,r,s)),r+t+i},C,w=(e,...t)=>{let[n]=t;if(!s(n)||!s(n.raw))return t.join(` `);let r=t.slice(1),i=[n.raw[0]];for(let e=1;e<n.length;e++)i.push(String(r[e-1]).replace(/[{}\\]/g,`\\$&`),String(n.raw[e]));return C===void 0&&(C=_()),C(e,i.join(``))};Object.defineProperties(m.prototype,l);let T=m();T.supportsColor=r,T.stderr=m({level:i?i.level:0}),T.stderr.supportsColor=i,t.exports=T}))()),y=class{info(e,...t){console.log(v.default.blue(e),...t)}warn(e,...t){console.warn(v.default.yellow(e),...t)}error(e,...t){console.error(v.default.red(e),...t)}debug(e,...t){console.debug(v.default.gray(e),...t)}success(e,...t){console.log(v.default.green(e),...t)}header(e){this.logSeparator(),console.log(v.default.bold.magenta(`● ${e}`)),this.logSeparator()}gray(e){console.log(v.default.gray(e))}yellow(e){console.log(v.default.yellow(e))}logEmptyLine(){console.log(``)}logSeparator(){console.log(v.default.blue(`═`.repeat(50)))}logSummary(e,t,n){this.logSeparator(),console.log(v.default.blue(`\n📊 Summary: ${e} succeeded, ${t} failed out of ${n} total\n`))}};exports.ConsoleLogger=y;
|
package/src/index.mjs
CHANGED
|
@@ -3,4 +3,4 @@ import{createRequire as e}from"node:module";var t=Object.create,n=Object.defineP
|
|
|
3
3
|
`)+n,i=r+1,r=e.indexOf(`
|
|
4
4
|
`,i)}while(r!==-1);return a+=e.substr(i),a}}})),y=s(((e,t)=>{let n=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,r=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,i=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,a=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,o=new Map([[`n`,`
|
|
5
5
|
`],[`r`,`\r`],[`t`,` `],[`b`,`\b`],[`f`,`\f`],[`v`,`\v`],[`0`,`\0`],[`\\`,`\\`],[`e`,`\x1B`],[`a`,`\x07`]]);function s(e){let t=e[0]===`u`,n=e[1]===`{`;return t&&!n&&e.length===5||e[0]===`x`&&e.length===3?String.fromCharCode(parseInt(e.slice(1),16)):t&&n?String.fromCodePoint(parseInt(e.slice(2,-1),16)):o.get(e)||e}function c(e,t){let n=[],r=t.trim().split(/\s*,\s*/g),o;for(let t of r){let r=Number(t);if(!Number.isNaN(r))n.push(r);else if(o=t.match(i))n.push(o[2].replace(a,(e,t,n)=>t?s(t):n));else throw Error(`Invalid Chalk template style argument: ${t} (in style '${e}')`)}return n}function l(e){r.lastIndex=0;let t=[],n;for(;(n=r.exec(e))!==null;){let e=n[1];if(n[2]){let r=c(e,n[2]);t.push([e].concat(r))}else t.push([e])}return t}function u(e,t){let n={};for(let e of t)for(let t of e.styles)n[t[0]]=e.inverse?null:t.slice(1);let r=e;for(let[e,t]of Object.entries(n))if(Array.isArray(t)){if(!(e in r))throw Error(`Unknown Chalk style: ${e}`);r=t.length>0?r[e](...t):r[e]}return r}t.exports=(e,t)=>{let r=[],i=[],a=[];if(t.replace(n,(t,n,o,c,d,f)=>{if(n)a.push(s(n));else if(c){let t=a.join(``);a=[],i.push(r.length===0?t:u(e,r)(t)),r.push({inverse:o,styles:l(c)})}else if(d){if(r.length===0)throw Error(`Found extraneous } in Chalk template literal`);i.push(u(e,r)(a.join(``))),a=[],r.pop()}else a.push(f)}),i.push(a.join(``)),r.length>0){let e=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?``:`s`} (\`}\`)`;throw Error(e)}return i.join(``)}})),b=l(s(((e,t)=>{let n=h(),{stdout:r,stderr:i}=_(),{stringReplaceAll:a,stringEncaseCRLFWithFirstIndex:o}=v(),{isArray:s}=Array,c=[`ansi`,`ansi`,`ansi256`,`ansi16m`],l=Object.create(null),u=(e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw Error("The `level` option should be an integer from 0 to 3");let n=r?r.level:0;e.level=t.level===void 0?n:t.level};var d=class{constructor(e){return f(e)}};let f=e=>{let t={};return u(t,e),t.template=(...e)=>w(t.template,...e),Object.setPrototypeOf(t,p.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=()=>{throw Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},t.template.Instance=d,t.template};function p(e){return f(e)}for(let[e,t]of Object.entries(n))l[e]={get(){let n=x(this,b(t.open,t.close,this._styler),this._isEmpty);return Object.defineProperty(this,e,{value:n}),n}};l.visible={get(){let e=x(this,this._styler,!0);return Object.defineProperty(this,`visible`,{value:e}),e}};let m=[`rgb`,`hex`,`keyword`,`hsl`,`hsv`,`hwb`,`ansi`,`ansi256`];for(let e of m)l[e]={get(){let{level:t}=this;return function(...r){let i=b(n.color[c[t]][e](...r),n.color.close,this._styler);return x(this,i,this._isEmpty)}}};for(let e of m){let t=`bg`+e[0].toUpperCase()+e.slice(1);l[t]={get(){let{level:t}=this;return function(...r){let i=b(n.bgColor[c[t]][e](...r),n.bgColor.close,this._styler);return x(this,i,this._isEmpty)}}}}let g=Object.defineProperties(()=>{},{...l,level:{enumerable:!0,get(){return this._generator.level},set(e){this._generator.level=e}}}),b=(e,t,n)=>{let r,i;return n===void 0?(r=e,i=t):(r=n.openAll+e,i=t+n.closeAll),{open:e,close:t,openAll:r,closeAll:i,parent:n}},x=(e,t,n)=>{let r=(...e)=>s(e[0])&&s(e[0].raw)?S(r,w(r,...e)):S(r,e.length===1?``+e[0]:e.join(` `));return Object.setPrototypeOf(r,g),r._generator=e,r._styler=t,r._isEmpty=n,r},S=(e,t)=>{if(e.level<=0||!t)return e._isEmpty?``:t;let n=e._styler;if(n===void 0)return t;let{openAll:r,closeAll:i}=n;if(t.indexOf(`\x1B`)!==-1)for(;n!==void 0;)t=a(t,n.close,n.open),n=n.parent;let s=t.indexOf(`
|
|
6
|
-
`);return s!==-1&&(t=o(t,i,r,s)),r+t+i},C,w=(e,...t)=>{let[n]=t;if(!s(n)||!s(n.raw))return t.join(` `);let r=t.slice(1),i=[n.raw[0]];for(let e=1;e<n.length;e++)i.push(String(r[e-1]).replace(/[{}\\]/g,`\\$&`),String(n.raw[e]));return C===void 0&&(C=y()),C(e,i.join(``))};Object.defineProperties(p.prototype,l);let T=p();T.supportsColor=r,T.stderr=p({level:i?i.level:0}),T.stderr.supportsColor=i,t.exports=T}))()),x=class{info(e){console.log(b.default.blue(e))}
|
|
6
|
+
`);return s!==-1&&(t=o(t,i,r,s)),r+t+i},C,w=(e,...t)=>{let[n]=t;if(!s(n)||!s(n.raw))return t.join(` `);let r=t.slice(1),i=[n.raw[0]];for(let e=1;e<n.length;e++)i.push(String(r[e-1]).replace(/[{}\\]/g,`\\$&`),String(n.raw[e]));return C===void 0&&(C=y()),C(e,i.join(``))};Object.defineProperties(p.prototype,l);let T=p();T.supportsColor=r,T.stderr=p({level:i?i.level:0}),T.stderr.supportsColor=i,t.exports=T}))()),x=class{info(e,...t){console.log(b.default.blue(e),...t)}warn(e,...t){console.warn(b.default.yellow(e),...t)}error(e,...t){console.error(b.default.red(e),...t)}debug(e,...t){console.debug(b.default.gray(e),...t)}success(e,...t){console.log(b.default.green(e),...t)}header(e){this.logSeparator(),console.log(b.default.bold.magenta(`● ${e}`)),this.logSeparator()}gray(e){console.log(b.default.gray(e))}yellow(e){console.log(b.default.yellow(e))}logEmptyLine(){console.log(``)}logSeparator(){console.log(b.default.blue(`═`.repeat(50)))}logSummary(e,t,n){this.logSeparator(),console.log(b.default.blue(`\n📊 Summary: ${e} succeeded, ${t} failed out of ${n} total\n`))}};export{x as ConsoleLogger};
|