@node-cli/logger
Advanced tools
+3
-2
@@ -79,2 +79,3 @@ import util from "node:util"; | ||
| if (!this.#inMemory) { | ||
| // biome-ignore lint/suspicious/noConsole: logger utility | ||
| console[type.method](this.#printOptions.colors ? `${type.color(message)}` : message); | ||
@@ -162,3 +163,3 @@ } | ||
| } | ||
| /* v8 ignore next 48 */ export class Spinner { | ||
| /* v8 ignore start */ export class Spinner { | ||
| spinner; | ||
@@ -207,4 +208,4 @@ constructor(options){ | ||
| static INFO = "info"; | ||
| } | ||
| } /* v8 ignore stop */ | ||
| //# sourceMappingURL=Logger.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../src/Logger.ts"],"sourcesContent":["import util from \"node:util\";\nimport boxen, { Options as BoxenOptions } from \"boxen\";\nimport kleur from \"kleur\";\nimport ora, { Ora, Options as OraOptions } from \"ora\";\n\nexport type PrintBoxOptions = {\n\tnewLineAfter?: boolean;\n\tnewLineBefore?: boolean;\n} & BoxenOptions;\n\nexport type LoggerOptions = {\n\tboring?: boolean;\n\tsilent?: boolean;\n\tprefix?: string;\n\ttimestamp?: boolean;\n\tinMemory?: boolean;\n};\n\nexport class Logger {\n\t#shouldLog: boolean;\n\t#globalPrefix: string;\n\t#showTimestamp: boolean;\n\t#printOptions: { colors: boolean; compact: boolean; depth: number };\n\t#inMemory: boolean;\n\t#memoryLogs: string[];\n\n\tconstructor({\n\t\tboring = false,\n\t\tsilent = false,\n\t\tprefix = \"\",\n\t\ttimestamp = false,\n\t\tinMemory = false,\n\t} = {}) {\n\t\tthis.#shouldLog = !silent;\n\t\tthis.#globalPrefix = prefix;\n\t\tthis.#showTimestamp = timestamp;\n\t\tthis.#inMemory = inMemory;\n\t\tthis.#memoryLogs = [];\n\n\t\t// When in memory mode, we disable colors.\n\t\tthis.#printOptions = {\n\t\t\tcolors: !boring && !inMemory,\n\t\t\tcompact: false,\n\t\t\tdepth: 5,\n\t\t};\n\t}\n\n\tset silent(flag: boolean) {\n\t\tthis.#shouldLog = !flag;\n\t}\n\n\tset boring(flag: boolean) {\n\t\t// Only set colors if not in memory mode.\n\t\tif (!this.#inMemory) {\n\t\t\tthis.#printOptions.colors = !flag;\n\t\t}\n\t}\n\n\tset prefix(prefix: string) {\n\t\tthis.#globalPrefix = prefix;\n\t}\n\n\tset timestamp(flag: boolean) {\n\t\tthis.#showTimestamp = flag;\n\t}\n\n\tset inMemory(flag: boolean) {\n\t\tthis.#inMemory = flag;\n\t\t// When enabling in-memory mode, disable colors.\n\t\tif (flag) {\n\t\t\tthis.#printOptions.colors = false;\n\t\t}\n\t}\n\n\t/**\n\t * Get the accumulated logs as a string.\n\t * @returns {string} All logs joined by the separator\n\t */\n\tgetMemoryLogs(): string {\n\t\treturn this.#memoryLogs.join(\"\\n\");\n\t}\n\n\t/**\n\t * Clear all accumulated logs from memory.\n\t */\n\tclearMemoryLogs(): void {\n\t\tthis.#memoryLogs = [];\n\t}\n\n\t#_log(\n\t\ttype: { method: string | number; color: (argument0: any) => any },\n\t\t...arguments_: string[]\n\t) {\n\t\tif (this.#shouldLog) {\n\t\t\tlet message: string;\n\t\t\tif (!this.#showTimestamp && !this.#globalPrefix) {\n\t\t\t\tmessage = util.formatWithOptions(this.#printOptions, ...arguments_);\n\t\t\t} else {\n\t\t\t\tconst prefix = this.#globalPrefix ? [this.#globalPrefix] : [];\n\t\t\t\tif (this.#showTimestamp) {\n\t\t\t\t\tconst now = new Date();\n\t\t\t\t\tprefix.push(\n\t\t\t\t\t\tthis.#printOptions.colors\n\t\t\t\t\t\t\t? `${kleur.grey(\n\t\t\t\t\t\t\t\t\t`[ ${now.toDateString()} ${now.toLocaleTimeString()} ]`,\n\t\t\t\t\t\t\t\t)}`\n\t\t\t\t\t\t\t: `[ ${now.toDateString()} ${now.toLocaleTimeString()} ]`,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tmessage = util.formatWithOptions(\n\t\t\t\t\tthis.#printOptions,\n\t\t\t\t\tprefix.join(\" \"),\n\t\t\t\t\t...arguments_,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Store in memory if enabled.\n\t\t\tif (this.#inMemory) {\n\t\t\t\tthis.#memoryLogs.push(message);\n\t\t\t}\n\n\t\t\t// Still output to console if not in memory-only mode.\n\t\t\tif (!this.#inMemory) {\n\t\t\t\tconsole[type.method](\n\t\t\t\t\tthis.#printOptions.colors ? `${type.color(message)}` : message,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tinfo(...arguments_: any) {\n\t\tthis.#_log({ method: \"info\", color: kleur.blue }, ...arguments_);\n\t}\n\n\tlog(...arguments_: any) {\n\t\tthis.#_log({ method: \"log\", color: kleur.white }, ...arguments_);\n\t}\n\n\tdebug(...arguments_: any) {\n\t\tthis.#_log({ method: \"debug\", color: kleur.grey }, ...arguments_);\n\t}\n\n\twarn(...arguments_: any) {\n\t\tthis.#_log({ method: \"warn\", color: kleur.yellow }, ...arguments_);\n\t}\n\n\terror(...arguments_: any) {\n\t\tthis.#_log({ method: \"error\", color: kleur.red }, ...arguments_);\n\t}\n\n\t/**\n\t * Log multiple error messages at the prompt using `console.error` behind the\n\t * scenes.\n\t * @param {string[]} errorMessages array of error message to display line by line\n\t * @param {number} [exitStatus] the process will exit with this value if provided\n\t */\n\tprintErrorsAndExit(errorMessages: string[], exitStatus?: number) {\n\t\tif (errorMessages && errorMessages.length > 0) {\n\t\t\tthis.log();\n\t\t\tfor (const message of errorMessages) {\n\t\t\t\tthis.error(message);\n\t\t\t}\n\t\t\tthis.log();\n\n\t\t\tif (typeof exitStatus === \"number\") {\n\t\t\t\t// eslint-disable-next-line unicorn/no-process-exit\n\t\t\t\tprocess.exit(exitStatus);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Print sets of logs in a box (wrapper to Boxen).\n\t * @param messages Messages to print\n\t * @param options\n\t */\n\tprintBox(messages: string | string[], options: PrintBoxOptions = {}) {\n\t\tconst { newLineAfter, newLineBefore } = {\n\t\t\tnewLineAfter: true,\n\t\t\tnewLineBefore: true,\n\t\t\t...options,\n\t\t};\n\n\t\t/**\n\t\t * Setting some sensible Boxen options if not provided by the user.\n\t\t */\n\t\tconst borderColor = options.borderColor || \"yellow\";\n\t\tconst boxenOptions: BoxenOptions = {\n\t\t\t...options,\n\t\t\tborderColor: this.#printOptions.colors ? borderColor : \"white\",\n\t\t\tpadding: typeof options.padding === \"number\" ? options.padding : 1,\n\t\t\ttextAlignment: options.textAlignment || \"center\",\n\t\t};\n\n\t\tconst oldPrefix = this.#globalPrefix;\n\t\tconst oldTimestamp = this.#showTimestamp;\n\n\t\tthis.#globalPrefix = \"\";\n\t\tthis.#showTimestamp = false;\n\n\t\tnewLineBefore && this.log();\n\t\tthis.log(\n\t\t\tboxen(\n\t\t\t\ttypeof messages === \"string\" ? messages : messages.join(\"\\n\"),\n\t\t\t\tboxenOptions,\n\t\t\t),\n\t\t);\n\t\tnewLineAfter && this.log();\n\n\t\tthis.#showTimestamp = oldTimestamp;\n\t\tthis.#globalPrefix = oldPrefix;\n\t}\n}\n\n/* v8 ignore next 48 */\nexport class Spinner {\n\tspinner: Ora;\n\n\tconstructor(options?: OraOptions) {\n\t\tthis.spinner = ora({\n\t\t\t...options,\n\t\t\tisSilent: process.env.NODE_ENV === \"test\",\n\t\t});\n\t}\n\n\tset text(message: string) {\n\t\tthis.spinner.text = message;\n\t}\n\n\tstart(message?: string) {\n\t\tthis.spinner.start(message);\n\t}\n\n\tstop(message?: string, type?: string) {\n\t\tswitch (type) {\n\t\t\tcase Spinner.ERROR: {\n\t\t\t\tthis.spinner.fail(message);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase Spinner.WARNING: {\n\t\t\t\tthis.spinner.warn(message);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase Spinner.INFO: {\n\t\t\t\tthis.spinner.info(message);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.spinner.succeed(message);\n\t\t\t\t}, 1000);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic SUCCESS = \"success\";\n\tstatic ERROR = \"fail\";\n\tstatic WARNING = \"warn\";\n\tstatic INFO = \"info\";\n}\n"],"names":["util","boxen","kleur","ora","Logger","boring","silent","prefix","timestamp","inMemory","colors","compact","depth","flag","getMemoryLogs","join","clearMemoryLogs","type","arguments_","message","formatWithOptions","now","Date","push","grey","toDateString","toLocaleTimeString","console","method","color","info","blue","log","white","debug","warn","yellow","error","red","printErrorsAndExit","errorMessages","exitStatus","length","process","exit","printBox","messages","options","newLineAfter","newLineBefore","borderColor","boxenOptions","padding","textAlignment","oldPrefix","oldTimestamp","Spinner","spinner","isSilent","env","NODE_ENV","text","start","stop","ERROR","fail","WARNING","INFO","setTimeout","succeed","SUCCESS"],"mappings":"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"} | ||
| {"version":3,"sources":["../src/Logger.ts"],"sourcesContent":["import util from \"node:util\";\nimport boxen, { Options as BoxenOptions } from \"boxen\";\nimport kleur from \"kleur\";\nimport ora, { Ora, Options as OraOptions } from \"ora\";\n\nexport type PrintBoxOptions = {\n\tnewLineAfter?: boolean;\n\tnewLineBefore?: boolean;\n} & BoxenOptions;\n\nexport type LoggerOptions = {\n\tboring?: boolean;\n\tsilent?: boolean;\n\tprefix?: string;\n\ttimestamp?: boolean;\n\tinMemory?: boolean;\n};\n\nexport class Logger {\n\t#shouldLog: boolean;\n\t#globalPrefix: string;\n\t#showTimestamp: boolean;\n\t#printOptions: { colors: boolean; compact: boolean; depth: number };\n\t#inMemory: boolean;\n\t#memoryLogs: string[];\n\n\tconstructor({\n\t\tboring = false,\n\t\tsilent = false,\n\t\tprefix = \"\",\n\t\ttimestamp = false,\n\t\tinMemory = false,\n\t} = {}) {\n\t\tthis.#shouldLog = !silent;\n\t\tthis.#globalPrefix = prefix;\n\t\tthis.#showTimestamp = timestamp;\n\t\tthis.#inMemory = inMemory;\n\t\tthis.#memoryLogs = [];\n\n\t\t// When in memory mode, we disable colors.\n\t\tthis.#printOptions = {\n\t\t\tcolors: !boring && !inMemory,\n\t\t\tcompact: false,\n\t\t\tdepth: 5,\n\t\t};\n\t}\n\n\tset silent(flag: boolean) {\n\t\tthis.#shouldLog = !flag;\n\t}\n\n\tset boring(flag: boolean) {\n\t\t// Only set colors if not in memory mode.\n\t\tif (!this.#inMemory) {\n\t\t\tthis.#printOptions.colors = !flag;\n\t\t}\n\t}\n\n\tset prefix(prefix: string) {\n\t\tthis.#globalPrefix = prefix;\n\t}\n\n\tset timestamp(flag: boolean) {\n\t\tthis.#showTimestamp = flag;\n\t}\n\n\tset inMemory(flag: boolean) {\n\t\tthis.#inMemory = flag;\n\t\t// When enabling in-memory mode, disable colors.\n\t\tif (flag) {\n\t\t\tthis.#printOptions.colors = false;\n\t\t}\n\t}\n\n\t/**\n\t * Get the accumulated logs as a string.\n\t * @returns {string} All logs joined by the separator\n\t */\n\tgetMemoryLogs(): string {\n\t\treturn this.#memoryLogs.join(\"\\n\");\n\t}\n\n\t/**\n\t * Clear all accumulated logs from memory.\n\t */\n\tclearMemoryLogs(): void {\n\t\tthis.#memoryLogs = [];\n\t}\n\n\t#_log(\n\t\ttype: { method: string | number; color: (argument0: any) => any },\n\t\t...arguments_: string[]\n\t) {\n\t\tif (this.#shouldLog) {\n\t\t\tlet message: string;\n\t\t\tif (!this.#showTimestamp && !this.#globalPrefix) {\n\t\t\t\tmessage = util.formatWithOptions(this.#printOptions, ...arguments_);\n\t\t\t} else {\n\t\t\t\tconst prefix = this.#globalPrefix ? [this.#globalPrefix] : [];\n\t\t\t\tif (this.#showTimestamp) {\n\t\t\t\t\tconst now = new Date();\n\t\t\t\t\tprefix.push(\n\t\t\t\t\t\tthis.#printOptions.colors\n\t\t\t\t\t\t\t? `${kleur.grey(\n\t\t\t\t\t\t\t\t\t`[ ${now.toDateString()} ${now.toLocaleTimeString()} ]`,\n\t\t\t\t\t\t\t\t)}`\n\t\t\t\t\t\t\t: `[ ${now.toDateString()} ${now.toLocaleTimeString()} ]`,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tmessage = util.formatWithOptions(\n\t\t\t\t\tthis.#printOptions,\n\t\t\t\t\tprefix.join(\" \"),\n\t\t\t\t\t...arguments_,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Store in memory if enabled.\n\t\t\tif (this.#inMemory) {\n\t\t\t\tthis.#memoryLogs.push(message);\n\t\t\t}\n\n\t\t\t// Still output to console if not in memory-only mode.\n\t\t\tif (!this.#inMemory) {\n\t\t\t\t// biome-ignore lint/suspicious/noConsole: logger utility\n\t\t\t\tconsole[type.method](\n\t\t\t\t\tthis.#printOptions.colors ? `${type.color(message)}` : message,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tinfo(...arguments_: any) {\n\t\tthis.#_log({ method: \"info\", color: kleur.blue }, ...arguments_);\n\t}\n\n\tlog(...arguments_: any) {\n\t\tthis.#_log({ method: \"log\", color: kleur.white }, ...arguments_);\n\t}\n\n\tdebug(...arguments_: any) {\n\t\tthis.#_log({ method: \"debug\", color: kleur.grey }, ...arguments_);\n\t}\n\n\twarn(...arguments_: any) {\n\t\tthis.#_log({ method: \"warn\", color: kleur.yellow }, ...arguments_);\n\t}\n\n\terror(...arguments_: any) {\n\t\tthis.#_log({ method: \"error\", color: kleur.red }, ...arguments_);\n\t}\n\n\t/**\n\t * Log multiple error messages at the prompt using `console.error` behind the\n\t * scenes.\n\t * @param {string[]} errorMessages array of error message to display line by line\n\t * @param {number} [exitStatus] the process will exit with this value if provided\n\t */\n\tprintErrorsAndExit(errorMessages: string[], exitStatus?: number) {\n\t\tif (errorMessages && errorMessages.length > 0) {\n\t\t\tthis.log();\n\t\t\tfor (const message of errorMessages) {\n\t\t\t\tthis.error(message);\n\t\t\t}\n\t\t\tthis.log();\n\n\t\t\tif (typeof exitStatus === \"number\") {\n\t\t\t\t// eslint-disable-next-line unicorn/no-process-exit\n\t\t\t\tprocess.exit(exitStatus);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Print sets of logs in a box (wrapper to Boxen).\n\t * @param messages Messages to print\n\t * @param options\n\t */\n\tprintBox(messages: string | string[], options: PrintBoxOptions = {}) {\n\t\tconst { newLineAfter, newLineBefore } = {\n\t\t\tnewLineAfter: true,\n\t\t\tnewLineBefore: true,\n\t\t\t...options,\n\t\t};\n\n\t\t/**\n\t\t * Setting some sensible Boxen options if not provided by the user.\n\t\t */\n\t\tconst borderColor = options.borderColor || \"yellow\";\n\t\tconst boxenOptions: BoxenOptions = {\n\t\t\t...options,\n\t\t\tborderColor: this.#printOptions.colors ? borderColor : \"white\",\n\t\t\tpadding: typeof options.padding === \"number\" ? options.padding : 1,\n\t\t\ttextAlignment: options.textAlignment || \"center\",\n\t\t};\n\n\t\tconst oldPrefix = this.#globalPrefix;\n\t\tconst oldTimestamp = this.#showTimestamp;\n\n\t\tthis.#globalPrefix = \"\";\n\t\tthis.#showTimestamp = false;\n\n\t\tnewLineBefore && this.log();\n\t\tthis.log(\n\t\t\tboxen(\n\t\t\t\ttypeof messages === \"string\" ? messages : messages.join(\"\\n\"),\n\t\t\t\tboxenOptions,\n\t\t\t),\n\t\t);\n\t\tnewLineAfter && this.log();\n\n\t\tthis.#showTimestamp = oldTimestamp;\n\t\tthis.#globalPrefix = oldPrefix;\n\t}\n}\n\n/* v8 ignore start */\nexport class Spinner {\n\tspinner: Ora;\n\n\tconstructor(options?: OraOptions) {\n\t\tthis.spinner = ora({\n\t\t\t...options,\n\t\t\tisSilent: process.env.NODE_ENV === \"test\",\n\t\t});\n\t}\n\n\tset text(message: string) {\n\t\tthis.spinner.text = message;\n\t}\n\n\tstart(message?: string) {\n\t\tthis.spinner.start(message);\n\t}\n\n\tstop(message?: string, type?: string) {\n\t\tswitch (type) {\n\t\t\tcase Spinner.ERROR: {\n\t\t\t\tthis.spinner.fail(message);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase Spinner.WARNING: {\n\t\t\t\tthis.spinner.warn(message);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase Spinner.INFO: {\n\t\t\t\tthis.spinner.info(message);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.spinner.succeed(message);\n\t\t\t\t}, 1000);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic SUCCESS = \"success\";\n\tstatic ERROR = \"fail\";\n\tstatic WARNING = \"warn\";\n\tstatic INFO = \"info\";\n}\n/* v8 ignore stop */\n"],"names":["util","boxen","kleur","ora","Logger","boring","silent","prefix","timestamp","inMemory","colors","compact","depth","flag","getMemoryLogs","join","clearMemoryLogs","type","arguments_","message","formatWithOptions","now","Date","push","grey","toDateString","toLocaleTimeString","console","method","color","info","blue","log","white","debug","warn","yellow","error","red","printErrorsAndExit","errorMessages","exitStatus","length","process","exit","printBox","messages","options","newLineAfter","newLineBefore","borderColor","boxenOptions","padding","textAlignment","oldPrefix","oldTimestamp","Spinner","spinner","isSilent","env","NODE_ENV","text","start","stop","ERROR","fail","WARNING","INFO","setTimeout","succeed","SUCCESS"],"mappings":"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"} |
+6
-6
| { | ||
| "name": "@node-cli/logger", | ||
| "version": "1.3.2", | ||
| "version": "1.3.3", | ||
| "license": "MIT", | ||
@@ -17,3 +17,3 @@ "author": "Arno Versini", | ||
| "kleur": "4.1.5", | ||
| "ora": "8.2.0" | ||
| "ora": "9.0.0" | ||
| }, | ||
@@ -38,7 +38,7 @@ "scripts": { | ||
| "devDependencies": { | ||
| "@node-cli/comments": "0.2.0", | ||
| "@vitest/coverage-v8": "3.2.4", | ||
| "vitest": "3.2.4" | ||
| "@node-cli/comments": "0.2.7", | ||
| "@vitest/coverage-v8": "4.0.16", | ||
| "vitest": "4.0.16" | ||
| }, | ||
| "gitHead": "d90392dcb766dd605bc3eeabc7c7a7ab0c8e6da6" | ||
| "gitHead": "096003826471508d839f2ec3346bb12b1a73b7fe" | ||
| } |
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
35932
0.59%276
0.36%+ Added
+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
- Removed
Updated