@powerlines/core 0.48.11 → 0.48.12

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.
@@ -20,7 +20,7 @@ declare const LogCategories: {
20
20
  readonly BABEL: "babel";
21
21
  readonly COMMUNICATION: "communication";
22
22
  };
23
- declare const LOG_CATEGORIES_ARRAY: ("plugins" | "general" | "fs" | "performance" | "config" | "hooks" | "env" | "rpc" | "babel" | "communication")[];
23
+ declare const LOG_CATEGORIES_ARRAY: ("config" | "plugins" | "general" | "fs" | "performance" | "hooks" | "env" | "rpc" | "babel" | "communication")[];
24
24
  declare const LOG_CATEGORIES: readonly ["general", "fs", "performance", "config", "plugins", "hooks", "env", "rpc", "communication", "babel"];
25
25
  declare const DEFAULT_DEVELOPMENT_LOG_LEVEL: {
26
26
  readonly general: "debug";
@@ -20,7 +20,7 @@ declare const LogCategories: {
20
20
  readonly BABEL: "babel";
21
21
  readonly COMMUNICATION: "communication";
22
22
  };
23
- declare const LOG_CATEGORIES_ARRAY: ("plugins" | "general" | "fs" | "performance" | "config" | "hooks" | "env" | "rpc" | "babel" | "communication")[];
23
+ declare const LOG_CATEGORIES_ARRAY: ("config" | "plugins" | "general" | "fs" | "performance" | "hooks" | "env" | "rpc" | "babel" | "communication")[];
24
24
  declare const LOG_CATEGORIES: readonly ["general", "fs", "performance", "config", "plugins", "hooks", "env", "rpc", "communication", "babel"];
25
25
  declare const DEFAULT_DEVELOPMENT_LOG_LEVEL: {
26
26
  readonly general: "debug";
@@ -177,8 +177,8 @@ const validateLogger = (type, name, options, callback) => {
177
177
  } : message instanceof Error || message.error ? {
178
178
  name,
179
179
  plugin: options.plugin,
180
- message: `${(message instanceof Error ? message : message.error)?.message ? (message instanceof Error ? message : message.error)?.name ? `[${message.name}]: ${message.message}` : message.message : JSON.stringify(message)}${(message instanceof Error ? message : message.error)?.stack ? `
181
- Stack Trace: ${message.stack}` : ""}`,
180
+ message: `${(message instanceof Error ? message : message.error)?.message ? (message instanceof Error ? message : message.error)?.name ? `[${(message instanceof Error ? message : message.error)?.name}]: ${message.message || (message instanceof Error ? message : message.error)?.message}` : message.message || (message instanceof Error ? message : message.error)?.message : message.message ? message.message : JSON.stringify(message)}${(message instanceof Error ? message : message.error)?.stack ? `
181
+ Stack Trace: ${(message instanceof Error ? message : message.error)?.stack}` : ""}`,
182
182
  meta: {
183
183
  type,
184
184
  name,
@@ -1 +1 @@
1
- {"version":3,"file":"logging.d.cts","names":[],"sources":["../../src/plugin-utils/logging.ts"],"mappings":";;;;;;;;AA+DA;;;;iBAAgB,SAAA,CAAU,QAAgB;AAQ1C;;;;AAAoD;AAyBpD;AAzBA,iBAAgB,SAAA,CAAU,OAA0B,EAAjB,iBAAiB;;;;;;;;iBAyBpC,eAAA,CACd,QAAA,GAAW,kBAAA,EACX,IAAA,GAAO,IAAA,GACN,sBAAA;;;;;AAAsB;AAsFzB;cAAa,YAAA,GAAgB,IAAA,aAAe,aAO3C;;;AAAA;AAQD;;;cAAa,SAAA,GAAa,IAAY;AAAA;AAYtC;;;;AAA4C;AAZN,cAYzB,eAAA,GAAmB,IAAY;AAAA,cAM/B,UAAA,GAAc,IAAA,EAAM,OAAO,KAAK,IAAA;AAAA,iBAwC7B,eAAA,CAAgB,QAAA,EAAU,QAAA,EAAU,IAAA,EAAM,QAAQ;AAAA,iBAQlD,qBAAA,CACd,IAAA,EAAM,QAAA,EACN,QAAA,EAAU,sBAAA,EACV,QAAA,GAAU,WAAA;;;;;AAnDiC;AAwC7C;;cAuBa,WAAA,GAAe,IAAA,UAAc,OAAA,EAAS,YAAA,KAAe,KAiCjE;;;;;;;AAxDiE;cA4LrD,UAAA,GAAc,MAAA,EAAQ,MAAA,EAAQ,eAAA,EAAiB,MAAA,KAAS,MAAA;;;;;;;;cAuFxD,SAAA,GAAa,MAAA,EAAQ,MAAA,EAAQ,KAAA,EAAO,KAAA,KAAQ,MAAA;;;;;;;AAxQV;cA+YlC,gBAAA,GACX,MAAA,EAAQ,MAAA,EACR,YAAA,EAAc,YAAA,KACb,MAAA;AAAA,cAoEU,aAAA,EAAe,KAUzB;;;;;;;;cASU,YAAA,GACX,IAAA,sBACA,OAAA,EAAS,aAAA,EACT,QAAA,GAAU,KAAA,KACT,MAAA;AA5TH;;;;;;;AAAA,cAmXa,WAAA,GAAe,KAAA,EAAO,KAAA,EAAO,OAAA,EAAS,YAAA,KAAe,KAAA;;;;;;;AArSjE;cA2TY,YAAA,GACX,MAAA,EAAQ,MAAA,EACR,OAAA,EAAS,aAAA,KACR,MAAA"}
1
+ {"version":3,"file":"logging.d.cts","names":[],"sources":["../../src/plugin-utils/logging.ts"],"mappings":";;;;;;;;AA+DA;;;;iBAAgB,SAAA,CAAU,QAAgB;AAQ1C;;;;AAAoD;AAyBpD;AAzBA,iBAAgB,SAAA,CAAU,OAA0B,EAAjB,iBAAiB;;;;;;;;iBAyBpC,eAAA,CACd,QAAA,GAAW,kBAAA,EACX,IAAA,GAAO,IAAA,GACN,sBAAA;;;;;AAAsB;AAsFzB;cAAa,YAAA,GAAgB,IAAA,aAAe,aAO3C;;;AAAA;AAQD;;;cAAa,SAAA,GAAa,IAAY;AAAA;AAYtC;;;;AAA4C;AAZN,cAYzB,eAAA,GAAmB,IAAY;AAAA,cAM/B,UAAA,GAAc,IAAA,EAAM,OAAO,KAAK,IAAA;AAAA,iBAwC7B,eAAA,CAAgB,QAAA,EAAU,QAAA,EAAU,IAAA,EAAM,QAAQ;AAAA,iBAQlD,qBAAA,CACd,IAAA,EAAM,QAAA,EACN,QAAA,EAAU,sBAAA,EACV,QAAA,GAAU,WAAA;;;;;AAnDiC;AAwC7C;;cAuBa,WAAA,GAAe,IAAA,UAAc,OAAA,EAAS,YAAA,KAAe,KAiCjE;;;;;;;AAxDiE;cAkMrD,UAAA,GAAc,MAAA,EAAQ,MAAA,EAAQ,eAAA,EAAiB,MAAA,KAAS,MAAA;;;;;;;;cAuFxD,SAAA,GAAa,MAAA,EAAQ,MAAA,EAAQ,KAAA,EAAO,KAAA,KAAQ,MAAA;;;;;;;AA9QV;cAqZlC,gBAAA,GACX,MAAA,EAAQ,MAAA,EACR,YAAA,EAAc,YAAA,KACb,MAAA;AAAA,cAoEU,aAAA,EAAe,KAUzB;;;;;;;;cASU,YAAA,GACX,IAAA,sBACA,OAAA,EAAS,aAAA,EACT,QAAA,GAAU,KAAA,KACT,MAAA;AA5TH;;;;;;;AAAA,cAmXa,WAAA,GAAe,KAAA,EAAO,KAAA,EAAO,OAAA,EAAS,YAAA,KAAe,KAAA;;;;;;;AArSjE;cA2TY,YAAA,GACX,MAAA,EAAQ,MAAA,EACR,OAAA,EAAS,aAAA,KACR,MAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"logging.d.mts","names":[],"sources":["../../src/plugin-utils/logging.ts"],"mappings":";;;;;;;;AA+DA;;;;iBAAgB,SAAA,CAAU,QAAgB;AAQ1C;;;;AAAoD;AAyBpD;AAzBA,iBAAgB,SAAA,CAAU,OAA0B,EAAjB,iBAAiB;;;;;;;;iBAyBpC,eAAA,CACd,QAAA,GAAW,kBAAA,EACX,IAAA,GAAO,IAAA,GACN,sBAAA;;;;;AAAsB;AAsFzB;cAAa,YAAA,GAAgB,IAAA,aAAe,aAO3C;;;AAAA;AAQD;;;cAAa,SAAA,GAAa,IAAY;AAAA;AAYtC;;;;AAA4C;AAZN,cAYzB,eAAA,GAAmB,IAAY;AAAA,cAM/B,UAAA,GAAc,IAAA,EAAM,OAAO,KAAK,IAAA;AAAA,iBAwC7B,eAAA,CAAgB,QAAA,EAAU,QAAA,EAAU,IAAA,EAAM,QAAQ;AAAA,iBAQlD,qBAAA,CACd,IAAA,EAAM,QAAA,EACN,QAAA,EAAU,sBAAA,EACV,QAAA,GAAU,WAAA;;;;;AAnDiC;AAwC7C;;cAuBa,WAAA,GAAe,IAAA,UAAc,OAAA,EAAS,YAAA,KAAe,KAiCjE;;;;;;;AAxDiE;cA4LrD,UAAA,GAAc,MAAA,EAAQ,MAAA,EAAQ,eAAA,EAAiB,MAAA,KAAS,MAAA;;;;;;;;cAuFxD,SAAA,GAAa,MAAA,EAAQ,MAAA,EAAQ,KAAA,EAAO,KAAA,KAAQ,MAAA;;;;;;;AAxQV;cA+YlC,gBAAA,GACX,MAAA,EAAQ,MAAA,EACR,YAAA,EAAc,YAAA,KACb,MAAA;AAAA,cAoEU,aAAA,EAAe,KAUzB;;;;;;;;cASU,YAAA,GACX,IAAA,sBACA,OAAA,EAAS,aAAA,EACT,QAAA,GAAU,KAAA,KACT,MAAA;AA5TH;;;;;;;AAAA,cAmXa,WAAA,GAAe,KAAA,EAAO,KAAA,EAAO,OAAA,EAAS,YAAA,KAAe,KAAA;;;;;;;AArSjE;cA2TY,YAAA,GACX,MAAA,EAAQ,MAAA,EACR,OAAA,EAAS,aAAA,KACR,MAAA"}
1
+ {"version":3,"file":"logging.d.mts","names":[],"sources":["../../src/plugin-utils/logging.ts"],"mappings":";;;;;;;;AA+DA;;;;iBAAgB,SAAA,CAAU,QAAgB;AAQ1C;;;;AAAoD;AAyBpD;AAzBA,iBAAgB,SAAA,CAAU,OAA0B,EAAjB,iBAAiB;;;;;;;;iBAyBpC,eAAA,CACd,QAAA,GAAW,kBAAA,EACX,IAAA,GAAO,IAAA,GACN,sBAAA;;;;;AAAsB;AAsFzB;cAAa,YAAA,GAAgB,IAAA,aAAe,aAO3C;;;AAAA;AAQD;;;cAAa,SAAA,GAAa,IAAY;AAAA;AAYtC;;;;AAA4C;AAZN,cAYzB,eAAA,GAAmB,IAAY;AAAA,cAM/B,UAAA,GAAc,IAAA,EAAM,OAAO,KAAK,IAAA;AAAA,iBAwC7B,eAAA,CAAgB,QAAA,EAAU,QAAA,EAAU,IAAA,EAAM,QAAQ;AAAA,iBAQlD,qBAAA,CACd,IAAA,EAAM,QAAA,EACN,QAAA,EAAU,sBAAA,EACV,QAAA,GAAU,WAAA;;;;;AAnDiC;AAwC7C;;cAuBa,WAAA,GAAe,IAAA,UAAc,OAAA,EAAS,YAAA,KAAe,KAiCjE;;;;;;;AAxDiE;cAkMrD,UAAA,GAAc,MAAA,EAAQ,MAAA,EAAQ,eAAA,EAAiB,MAAA,KAAS,MAAA;;;;;;;;cAuFxD,SAAA,GAAa,MAAA,EAAQ,MAAA,EAAQ,KAAA,EAAO,KAAA,KAAQ,MAAA;;;;;;;AA9QV;cAqZlC,gBAAA,GACX,MAAA,EAAQ,MAAA,EACR,YAAA,EAAc,YAAA,KACb,MAAA;AAAA,cAoEU,aAAA,EAAe,KAUzB;;;;;;;;cASU,YAAA,GACX,IAAA,sBACA,OAAA,EAAS,aAAA,EACT,QAAA,GAAU,KAAA,KACT,MAAA;AA5TH;;;;;;;AAAA,cAmXa,WAAA,GAAe,KAAA,EAAO,KAAA,EAAO,OAAA,EAAS,YAAA,KAAe,KAAA;;;;;;;AArSjE;cA2TY,YAAA,GACX,MAAA,EAAQ,MAAA,EACR,OAAA,EAAS,aAAA,KACR,MAAA"}
@@ -174,8 +174,8 @@ const validateLogger = (type, name, options, callback) => {
174
174
  } : message instanceof Error || message.error ? {
175
175
  name,
176
176
  plugin: options.plugin,
177
- message: `${(message instanceof Error ? message : message.error)?.message ? (message instanceof Error ? message : message.error)?.name ? `[${message.name}]: ${message.message}` : message.message : JSON.stringify(message)}${(message instanceof Error ? message : message.error)?.stack ? `
178
- Stack Trace: ${message.stack}` : ""}`,
177
+ message: `${(message instanceof Error ? message : message.error)?.message ? (message instanceof Error ? message : message.error)?.name ? `[${(message instanceof Error ? message : message.error)?.name}]: ${message.message || (message instanceof Error ? message : message.error)?.message}` : message.message || (message instanceof Error ? message : message.error)?.message : message.message ? message.message : JSON.stringify(message)}${(message instanceof Error ? message : message.error)?.stack ? `
178
+ Stack Trace: ${(message instanceof Error ? message : message.error)?.stack}` : ""}`,
179
179
  meta: {
180
180
  type,
181
181
  name,
@@ -1 +1 @@
1
- {"version":3,"file":"logging.mjs","names":["defu"],"sources":["../../src/plugin-utils/logging.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { getLogFn, getLogLevel } from \"@storm-software/config-tools/logger\";\nimport { getColor } from \"@storm-software/config-tools/utilities/colors\";\nimport { kebabCase } from \"@stryke/string-format/kebab-case\";\nimport { titleCase } from \"@stryke/string-format/title-case\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport { RequiredKeys } from \"@stryke/types/base\";\nimport { uuid } from \"@stryke/unique-id/uuid\";\nimport chalk, { ChalkInstance } from \"chalk\";\nimport { defu } from \"defu\";\nimport { DEFAULT_ENVIRONMENT } from \"../constants/environments\";\nimport {\n DEFAULT_DEVELOPMENT_LOG_LEVEL,\n DEFAULT_PRODUCTION_LOG_LEVEL,\n DEFAULT_TEST_LOG_LEVEL,\n LOG_CATEGORIES_ARRAY,\n LOG_LEVELS,\n LogCategories,\n LogLevels\n} from \"../constants/log-level\";\nimport { Mode } from \"../types/config\";\nimport { UnresolvedContext } from \"../types/context\";\nimport type {\n CustomLogger,\n CustomLoggerMessage,\n LogCategory,\n LogFn,\n LogFnMeta,\n LogFnOptions,\n Logger,\n LoggerMessage,\n LoggerOptions,\n LogLevel,\n LogLevelResolvedConfig,\n LogLevelUserConfig,\n LogMeta\n} from \"../types/logging\";\n\n/**\n * Determines if the provided log level is considered verbose (debug or trace).\n *\n * @param logLevel - The log level to check, which can be a string or an UnresolvedContext containing the log level in its config.\n * @returns True if the log level is \"debug\" or \"trace\", false otherwise.\n */\nexport function isVerbose(logLevel: string): boolean;\n\n/**\n * Determines if the provided context is considered verbose (debug or trace).\n *\n * @param context - The context to check, which contains the log level in its config.\n * @returns True if the log level is \"debug\" or \"trace\", false otherwise.\n */\nexport function isVerbose(context: UnresolvedContext): boolean;\n\n/**\n * Determines if the provided log level is considered verbose (debug or trace).\n *\n * @param logLevelOrContext - The log level to check, which can be a string or an UnresolvedContext containing the log level in its config.\n * @returns True if the log level is \"debug\" or \"trace\", false otherwise.\n */\nexport function isVerbose(\n logLevelOrContext: string | UnresolvedContext\n): boolean {\n const level = isString(logLevelOrContext)\n ? logLevelOrContext\n : logLevelOrContext.config.logLevel;\n\n return level === \"debug\" || level === \"trace\";\n}\n\n/**\n * Resolves the log level configuration based on the provided log level and mode, returning a complete LogLevelResolvedConfig object that specifies the log level for each log category.\n *\n * @param logLevel - The user-provided log level configuration, which can be a string or an object specifying log levels for each category.\n * @param mode - The current mode of the application (e.g., \"development\", \"test\", \"production\"), which determines the default log levels.\n * @returns A LogLevelResolvedConfig object specifying the log level for each log category.\n */\nexport function resolveLogLevel(\n logLevel?: LogLevelUserConfig,\n mode?: Mode\n): LogLevelResolvedConfig {\n if (logLevel === \"trace\") {\n return {\n general: \"trace\",\n fs: \"trace\",\n performance: \"trace\",\n communication: \"trace\",\n plugins: \"trace\",\n hooks: \"trace\",\n env: \"trace\",\n rpc: \"trace\",\n config: \"trace\",\n babel: \"trace\"\n };\n } else if (logLevel === \"silent\") {\n return {\n general: \"silent\",\n fs: \"silent\",\n performance: \"silent\",\n communication: \"silent\",\n plugins: \"silent\",\n hooks: \"silent\",\n env: \"silent\",\n rpc: \"silent\",\n config: \"silent\",\n babel: \"silent\"\n };\n }\n\n let defaultLogLevel: LogLevelResolvedConfig;\n if (mode === \"development\") {\n defaultLogLevel = DEFAULT_DEVELOPMENT_LOG_LEVEL;\n } else if (mode === \"test\") {\n defaultLogLevel = DEFAULT_TEST_LOG_LEVEL;\n } else {\n defaultLogLevel = DEFAULT_PRODUCTION_LOG_LEVEL;\n }\n\n if (isSetString(logLevel)) {\n return {\n general: logLevel,\n fs: defaultLogLevel.fs,\n performance: logLevel,\n communication: defaultLogLevel.communication,\n plugins: logLevel,\n hooks: logLevel,\n env: defaultLogLevel.env,\n rpc: defaultLogLevel.rpc,\n config: defaultLogLevel.config,\n babel: logLevel\n };\n } else if (isSetObject(logLevel)) {\n if (\n Object.values(logLevel).filter(level => isSetString(level)).length ===\n LOG_CATEGORIES_ARRAY.length\n ) {\n return logLevel as LogLevelResolvedConfig;\n }\n\n return defu(logLevel, defaultLogLevel) as LogLevelResolvedConfig;\n }\n\n return defaultLogLevel;\n}\n\nconst colors = [\n chalk.green,\n chalk.greenBright,\n chalk.red,\n chalk.redBright,\n chalk.cyan,\n chalk.cyanBright,\n chalk.yellow,\n chalk.yellowBright,\n chalk.magenta,\n chalk.magentaBright\n] as const;\n\nconst BRAND_COLOR = getColor(\"brand\");\n\n/**\n * Generate a consistent color based on the input text.\n *\n * @param text - The input text to generate the color from.\n * @return A hexadecimal color string.\n */\nexport const getTextColor = (text: string): ChalkInstance => {\n let code = 0;\n for (let i = 0; i < text.length; ++i) {\n code += text.charCodeAt(i);\n }\n\n return colors[code % colors.length] ?? chalk.cyanBright;\n};\n\n/**\n * Generate a consistent color based on the input text.\n *\n * @param text - The input text to generate the color from.\n * @return A hexadecimal color string.\n */\nexport const colorText = (text: string): string => {\n const title = titleCase(text);\n\n return getTextColor(title)(title);\n};\n\n/**\n * Generate a consistent color based on the input text.\n *\n * @param text - The input text to generate the color from.\n * @return A hexadecimal color string.\n */\nexport const colorBackground = (text: string): string => {\n const title = titleCase(text);\n\n return chalk.inverse(getTextColor(title)(` ${title} `));\n};\n\nexport const consoleLog = (meta: LogMeta, ...args: string[]) =>\n getLogFn(\n getLogLevel(\n meta.category === LogCategories.PERFORMANCE ? \"performance\" : meta.type\n ),\n {\n logLevel: \"all\"\n }\n )(\n `${meta.name ? chalk.bold.hex(BRAND_COLOR)(kebabCase(meta.name)) : \"\"}${meta.name ? chalk.grey(\" > \") : \"\"}${\n meta.command\n ? `${chalk.bold.hex(BRAND_COLOR)(\n kebabCase(meta.command)\n )}${chalk.grey(\" > \")}`\n : \"\"\n }${\n meta.environment && kebabCase(meta.environment) !== DEFAULT_ENVIRONMENT\n ? `${chalk.bold.hex(BRAND_COLOR)(\n kebabCase(meta.environment)\n )}${chalk.grey(\" > \")}`\n : \"\"\n }${\n meta.plugin\n ? `${chalk.bold.hex(BRAND_COLOR)(meta.plugin)}${chalk.grey(\" > \")}`\n : \"\"\n }${\n meta.source\n ? `${chalk.bold.hex(BRAND_COLOR)(\n kebabCase(meta.source)\n )}${chalk.grey(\" > \")}`\n : \"\"\n }${\n meta.category &&\n meta.category !== LogCategories.GENERAL &&\n meta.category !== LogCategories.PERFORMANCE\n ? `${colorBackground(kebabCase(meta.category))} `\n : \"\"\n }${args.join(\" \")} `.trim()\n );\n\nexport function isValidLogLevel(logLevel: LogLevel, type: LogLevel): boolean {\n if (logLevel === LogLevels.SILENT) {\n return false;\n }\n\n return LOG_LEVELS.indexOf(logLevel) >= LOG_LEVELS.indexOf(type);\n}\n\nexport function isValidLogLevelConfig(\n type: LogLevel,\n logLevel: LogLevelResolvedConfig,\n category: LogCategory = LogCategories.GENERAL\n): boolean {\n return isValidLogLevel(logLevel[category], type);\n}\n\n/**\n * Create a logging function with a specific name and options.\n *\n * @param name - The name of the logging function.\n * @param options - The options to configure the logging function, including the source, command, environment, plugin, log level, custom logger, and colors. These options can be used to customize the appearance and behavior of the log messages generated by the logging function.\n * @returns A logging function.\n */\nexport const createLogFn = (name: string, options: LogFnOptions): LogFn => {\n const logLevel = resolveLogLevel(options.logLevel, options.mode);\n\n return (meta: LogFnMeta | LogLevel, ...args: string[]) => {\n const logMeta = isSetObject(meta)\n ? {\n logId: uuid(),\n timestamp: Date.now(),\n category: LogCategories.GENERAL,\n ...options,\n ...meta,\n name\n }\n : {\n logId: uuid(),\n timestamp: Date.now(),\n category: LogCategories.GENERAL,\n ...options,\n type: meta,\n name\n };\n\n if (\n logMeta.$$ipc ||\n isValidLogLevelConfig(\n logMeta.type,\n logLevel,\n logMeta.category ? logMeta.category : LogCategories.GENERAL\n )\n ) {\n consoleLog(logMeta, ...args);\n }\n };\n};\n\nconst validateLogger = (\n type: LogLevel,\n name: string | undefined,\n options: LoggerOptions,\n callback: (message: LoggerMessage) => void\n) => {\n const logLevel = resolveLogLevel(options.logLevel, options.mode);\n\n return (message: string | LoggerMessage | Error) => {\n const params = isSetString(message)\n ? {\n name,\n plugin: options.plugin,\n meta: {\n type,\n name,\n category: LogCategories.GENERAL,\n logId: uuid(),\n timestamp: Date.now(),\n ...options\n },\n message\n }\n : message instanceof Error || message.error\n ? {\n name,\n plugin: options.plugin,\n message: `${\n (message instanceof Error ? message : message.error)?.message\n ? (message instanceof Error ? message : message.error)?.name\n ? `[${message.name}]: ${message.message}`\n : message.message\n : JSON.stringify(message)\n }${\n (message instanceof Error ? message : message.error)?.stack\n ? `\nStack Trace: ${message.stack}`\n : \"\"\n }`,\n meta: {\n type,\n name,\n category: LogCategories.GENERAL,\n logId: uuid(),\n timestamp: Date.now(),\n ...options\n }\n }\n : {\n name,\n plugin: options.plugin,\n ...message,\n meta: {\n type,\n name,\n category: LogCategories.GENERAL,\n logId: uuid(),\n timestamp: Date.now(),\n plugin: message.plugin,\n ...options,\n ...message.meta\n }\n };\n\n if (\n params.meta.$$ipc ||\n isValidLogLevelConfig(type, logLevel, params.meta.category)\n ) {\n callback(params);\n }\n };\n};\n\nconst validateCustomLogger = (\n type: LogLevel,\n name: string | undefined,\n options: LoggerOptions,\n callback?: (message: string | LoggerMessage) => void,\n customCallback?: (message: CustomLoggerMessage) => void\n) => {\n const logLevel = resolveLogLevel(options.logLevel, options.mode);\n\n return (message: string | LoggerMessage) => {\n const params = isSetString(message)\n ? {\n name,\n plugin: options.plugin,\n meta: {\n category: LogCategories.GENERAL,\n ...options,\n type,\n name,\n logId: uuid(),\n timestamp: Date.now()\n },\n message\n }\n : {\n name,\n plugin: options.plugin,\n ...message,\n meta: {\n category: LogCategories.GENERAL,\n ...options,\n type,\n name,\n logId: uuid(),\n timestamp: Date.now(),\n plugin: message.plugin,\n ...message.meta\n }\n };\n\n if (\n params.meta.$$ipc ||\n isValidLogLevelConfig(type, logLevel, params.meta.category)\n ) {\n callback?.(params);\n customCallback?.(params);\n }\n };\n};\n\n/**\n * Create a logging function with a specific name and options.\n *\n * @param logger - The original logger to wrap with the custom logger.\n * @param secondaryLogger - The custom logger to use for logging messages, which can be used to override the default logging behavior of the original logger.\n * @returns A new logger that combines the original logger's options with the custom logger's methods, allowing for customized logging behavior while still maintaining the original logger's configuration.\n */\nexport const withLogger = (logger: Logger, secondaryLogger: Logger): Logger => {\n const options = { ...secondaryLogger.options, ...logger.options };\n\n const result = {\n options,\n error: validateLogger(\n \"error\",\n options.name,\n options,\n (message: LoggerMessage) => {\n logger.error?.(message);\n secondaryLogger.error?.(message);\n }\n ),\n warn: validateLogger(\n \"warn\",\n options.name,\n options,\n (message: LoggerMessage) => {\n logger.warn?.(message);\n secondaryLogger.warn?.(message);\n }\n ),\n info: validateLogger(\n \"info\",\n options.name,\n options,\n (message: LoggerMessage) => {\n logger.info?.(message);\n secondaryLogger.info?.(message);\n }\n ),\n debug: validateLogger(\n \"debug\",\n options.name,\n options,\n (message: LoggerMessage) => {\n logger.debug?.(message);\n secondaryLogger.debug?.(message);\n }\n ),\n trace: validateLogger(\n \"trace\",\n options.name,\n options,\n (message: LoggerMessage) => {\n logger.trace?.(message);\n secondaryLogger.trace?.(message);\n }\n )\n } as Logger;\n\n result.log = (type: LogLevel, message: string | LoggerMessage) => {\n switch (type) {\n case \"error\":\n result.error(message);\n break;\n case \"warn\":\n result.warn(message);\n break;\n case \"info\":\n result.info(message);\n break;\n case \"debug\":\n result.debug(message);\n break;\n case \"trace\":\n result.trace(message);\n break;\n case \"silent\":\n break;\n default:\n result.info(message);\n break;\n }\n };\n\n return result;\n};\n\n/**\n * Create a logging function with a specific name and options.\n *\n * @param logger - The original logger to wrap with the custom logger.\n * @param logFn - The custom logging function to use for logging messages, which can be used to override the default logging behavior of the original logger.\n * @returns A new logger that combines the original logger's options with the custom logging function, allowing for customized logging behavior while still maintaining the original logger's configuration.\n */\nexport const withLogFn = (logger: Logger, logFn: LogFn): Logger => {\n const result = {\n options: logger.options,\n error: validateLogger(\n \"error\",\n logger.options.name,\n logger.options,\n (msg: LoggerMessage) => {\n logger.error?.(msg);\n logFn(\n {\n category: LogCategories.GENERAL,\n ...logger.options,\n type: \"error\",\n logId: uuid(),\n timestamp: Date.now(),\n ...msg.meta\n },\n msg.message\n );\n }\n ),\n warn: validateLogger(\n \"warn\",\n logger.options.name,\n logger.options,\n (msg: LoggerMessage) => {\n logger.warn?.(msg);\n logFn(\n {\n category: LogCategories.GENERAL,\n ...logger.options,\n type: \"warn\",\n logId: uuid(),\n timestamp: Date.now(),\n ...msg.meta\n },\n msg.message\n );\n }\n ),\n info: validateLogger(\n \"info\",\n logger.options.name,\n logger.options,\n (msg: LoggerMessage) => {\n logger.info?.(msg);\n logFn(\n {\n category: LogCategories.GENERAL,\n ...logger.options,\n type: \"info\",\n logId: uuid(),\n timestamp: Date.now(),\n ...msg.meta\n },\n msg.message\n );\n }\n ),\n debug: validateLogger(\n \"debug\",\n logger.options.name,\n logger.options,\n (msg: LoggerMessage) => {\n logger.debug?.(msg);\n logFn(\n {\n category: LogCategories.GENERAL,\n ...logger.options,\n type: \"debug\",\n logId: uuid(),\n timestamp: Date.now(),\n ...msg.meta\n },\n msg.message\n );\n }\n ),\n trace: validateLogger(\n \"trace\",\n logger.options.name,\n logger.options,\n (msg: LoggerMessage) => {\n logger.trace?.(msg);\n logFn(\n {\n category: LogCategories.GENERAL,\n ...logger.options,\n type: \"trace\",\n logId: uuid(),\n timestamp: Date.now(),\n ...msg.meta\n },\n msg.message\n );\n }\n )\n } as Logger;\n\n result.log = (type: LogLevel, message: string | LoggerMessage) => {\n switch (type) {\n case \"error\":\n result.error(message);\n break;\n case \"warn\":\n result.warn(message);\n break;\n case \"info\":\n result.info(message);\n break;\n case \"debug\":\n result.debug(message);\n break;\n case \"trace\":\n result.trace(message);\n break;\n case \"silent\":\n break;\n default:\n result.info(message);\n break;\n }\n };\n\n return result;\n};\n\n/**\n * Create a logging function with a specific name and options.\n *\n * @param logger - The original logger to wrap with the custom logger.\n * @param customLogger - The custom logger to use for logging messages, which can be used to override the default logging behavior of the original logger.\n * @returns A new logger that combines the original logger's options with the custom logger's methods, allowing for customized logging behavior while still maintaining the original logger's configuration.\n */\nexport const withCustomLogger = (\n logger: Logger,\n customLogger: CustomLogger\n): Logger => {\n const result = {\n options: logger.options,\n error: validateCustomLogger(\n \"error\",\n logger.options.name,\n logger.options,\n logger.error.bind(logger),\n customLogger.error?.bind(customLogger)\n ),\n warn: validateCustomLogger(\n \"warn\",\n logger.options.name,\n logger.options,\n logger.warn.bind(logger),\n customLogger.warn?.bind(customLogger)\n ),\n info: validateCustomLogger(\n \"info\",\n logger.options.name,\n logger.options,\n logger.info.bind(logger),\n customLogger.info?.bind(customLogger)\n ),\n debug: validateCustomLogger(\n \"debug\",\n logger.options.name,\n logger.options,\n logger.debug.bind(logger),\n customLogger.debug?.bind(customLogger)\n ),\n trace: validateCustomLogger(\n \"trace\",\n logger.options.name,\n logger.options,\n logger.trace.bind(logger),\n customLogger.trace?.bind(customLogger)\n )\n } as Logger;\n\n result.log = (type: LogLevel, message: string | LoggerMessage) => {\n switch (type) {\n case \"error\":\n result.error(message);\n break;\n case \"warn\":\n result.warn(message);\n break;\n case \"info\":\n result.info(message);\n break;\n case \"debug\":\n result.debug(message);\n break;\n case \"trace\":\n result.trace(message);\n break;\n case \"silent\":\n break;\n default:\n result.info(message);\n break;\n }\n };\n\n return result;\n};\n\nexport const consoleLogger: LogFn = (meta: LogFnMeta, message: string) =>\n consoleLog(\n {\n type: isSetString(meta) ? meta : meta.type,\n category: LogCategories.GENERAL,\n logId: uuid(),\n timestamp: Date.now(),\n ...(isSetObject(meta) ? meta : {})\n },\n message\n );\n\n/**\n * Create a logging function with a specific name and options.\n *\n * @param name - The name of the logging function.\n * @param options - The options to configure the logging function, including the source, command, environment, plugin, log level, custom logger, and colors. These options can be used to customize the appearance and behavior of the log messages generated by the logging function.\n * @returns A logging function.\n */\nexport const createLogger = (\n name: string | undefined,\n options: LoggerOptions,\n callback: LogFn = consoleLogger\n): Logger => {\n const result = {\n options: { name, ...options },\n error: validateLogger(\"error\", name, { name, ...options }, data =>\n callback({ ...data.meta, type: \"error\" }, data.message)\n ),\n warn: validateLogger(\"warn\", name, { name, ...options }, data =>\n callback({ ...data.meta, type: \"warn\" }, data.message)\n ),\n info: validateLogger(\"info\", name, { name, ...options }, data =>\n callback({ ...data.meta, type: \"info\" }, data.message)\n ),\n debug: validateLogger(\"debug\", name, { name, ...options }, data =>\n callback({ ...data.meta, type: \"debug\" }, data.message)\n ),\n trace: validateLogger(\"trace\", name, { name, ...options }, data =>\n callback({ ...data.meta, type: \"trace\" }, data.message)\n )\n } as Logger;\n\n result.log = (type: LogLevel, message: string | LoggerMessage) => {\n switch (type) {\n case \"error\":\n result.error(message);\n break;\n case \"warn\":\n result.warn(message);\n break;\n case \"info\":\n result.info(message);\n break;\n case \"debug\":\n result.debug(message);\n break;\n case \"trace\":\n result.trace(message);\n break;\n case \"silent\":\n break;\n default:\n result.info(message);\n break;\n }\n };\n\n return result;\n};\n\n/**\n * Extend a logging function with a specific name, adding a colored badge to the log output.\n *\n * @param logFn - The original logging function to extend.\n * @param options - The overlay metadata to use for the badge in the log output.\n * @returns A new logging function that includes the badge in its output.\n */\nexport const extendLogFn = (logFn: LogFn, options: LogFnOptions): LogFn => {\n return (meta, ...args) =>\n options.source || options.category\n ? logFn(\n isSetObject(meta)\n ? { ...options, ...meta }\n : { ...options, type: meta },\n `${colorBackground(String(options.source || options.category))} ${args\n .filter(Boolean)\n .map(arg => String(arg).trim())\n .join(\" \")} `\n )\n : logFn(meta, ...args);\n};\n\n/**\n * Extend a logger with a specific name and options, adding a colored badge to the log output for each log message generated by the logger.\n *\n * @param logger - The original logger to extend.\n * @param options - The options to configure the logging function, including the source, command, environment, plugin, log level, custom logger, and colors. These options can be used to customize the appearance and behavior of the log messages generated by the extended logger.\n * @returns A new logger that includes the badge in its output for each log message.\n */\nexport const extendLogger = (\n logger: Logger,\n options: LoggerOptions\n): Logger => {\n const opts = { ...logger.options, ...options } as RequiredKeys<\n LoggerOptions,\n \"name\"\n >;\n\n const result = {\n options: opts,\n error: validateLogger(\"error\", opts.name, opts, logger.error.bind(logger)),\n warn: validateLogger(\"warn\", opts.name, opts, logger.warn.bind(logger)),\n info: validateLogger(\"info\", opts.name, opts, logger.info.bind(logger)),\n debug: validateLogger(\"debug\", opts.name, opts, logger.debug.bind(logger)),\n trace: validateLogger(\"trace\", opts.name, opts, logger.trace.bind(logger))\n } as Logger;\n\n result.log = (type: LogLevel, message: string | LoggerMessage) => {\n switch (type) {\n case \"error\":\n result.error(message);\n break;\n case \"warn\":\n result.warn(message);\n break;\n case \"info\":\n result.info(message);\n break;\n case \"debug\":\n result.debug(message);\n break;\n case \"trace\":\n result.trace(message);\n break;\n case \"silent\":\n break;\n default:\n result.info(message);\n break;\n }\n };\n\n return result;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"logging.mjs","names":["defu"],"sources":["../../src/plugin-utils/logging.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { getLogFn, getLogLevel } from \"@storm-software/config-tools/logger\";\nimport { getColor } from \"@storm-software/config-tools/utilities/colors\";\nimport { kebabCase } from \"@stryke/string-format/kebab-case\";\nimport { titleCase } from \"@stryke/string-format/title-case\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport { RequiredKeys } from \"@stryke/types/base\";\nimport { uuid } from \"@stryke/unique-id/uuid\";\nimport chalk, { ChalkInstance } from \"chalk\";\nimport { defu } from \"defu\";\nimport { DEFAULT_ENVIRONMENT } from \"../constants/environments\";\nimport {\n DEFAULT_DEVELOPMENT_LOG_LEVEL,\n DEFAULT_PRODUCTION_LOG_LEVEL,\n DEFAULT_TEST_LOG_LEVEL,\n LOG_CATEGORIES_ARRAY,\n LOG_LEVELS,\n LogCategories,\n LogLevels\n} from \"../constants/log-level\";\nimport { Mode } from \"../types/config\";\nimport { UnresolvedContext } from \"../types/context\";\nimport type {\n CustomLogger,\n CustomLoggerMessage,\n LogCategory,\n LogFn,\n LogFnMeta,\n LogFnOptions,\n Logger,\n LoggerMessage,\n LoggerOptions,\n LogLevel,\n LogLevelResolvedConfig,\n LogLevelUserConfig,\n LogMeta\n} from \"../types/logging\";\n\n/**\n * Determines if the provided log level is considered verbose (debug or trace).\n *\n * @param logLevel - The log level to check, which can be a string or an UnresolvedContext containing the log level in its config.\n * @returns True if the log level is \"debug\" or \"trace\", false otherwise.\n */\nexport function isVerbose(logLevel: string): boolean;\n\n/**\n * Determines if the provided context is considered verbose (debug or trace).\n *\n * @param context - The context to check, which contains the log level in its config.\n * @returns True if the log level is \"debug\" or \"trace\", false otherwise.\n */\nexport function isVerbose(context: UnresolvedContext): boolean;\n\n/**\n * Determines if the provided log level is considered verbose (debug or trace).\n *\n * @param logLevelOrContext - The log level to check, which can be a string or an UnresolvedContext containing the log level in its config.\n * @returns True if the log level is \"debug\" or \"trace\", false otherwise.\n */\nexport function isVerbose(\n logLevelOrContext: string | UnresolvedContext\n): boolean {\n const level = isString(logLevelOrContext)\n ? logLevelOrContext\n : logLevelOrContext.config.logLevel;\n\n return level === \"debug\" || level === \"trace\";\n}\n\n/**\n * Resolves the log level configuration based on the provided log level and mode, returning a complete LogLevelResolvedConfig object that specifies the log level for each log category.\n *\n * @param logLevel - The user-provided log level configuration, which can be a string or an object specifying log levels for each category.\n * @param mode - The current mode of the application (e.g., \"development\", \"test\", \"production\"), which determines the default log levels.\n * @returns A LogLevelResolvedConfig object specifying the log level for each log category.\n */\nexport function resolveLogLevel(\n logLevel?: LogLevelUserConfig,\n mode?: Mode\n): LogLevelResolvedConfig {\n if (logLevel === \"trace\") {\n return {\n general: \"trace\",\n fs: \"trace\",\n performance: \"trace\",\n communication: \"trace\",\n plugins: \"trace\",\n hooks: \"trace\",\n env: \"trace\",\n rpc: \"trace\",\n config: \"trace\",\n babel: \"trace\"\n };\n } else if (logLevel === \"silent\") {\n return {\n general: \"silent\",\n fs: \"silent\",\n performance: \"silent\",\n communication: \"silent\",\n plugins: \"silent\",\n hooks: \"silent\",\n env: \"silent\",\n rpc: \"silent\",\n config: \"silent\",\n babel: \"silent\"\n };\n }\n\n let defaultLogLevel: LogLevelResolvedConfig;\n if (mode === \"development\") {\n defaultLogLevel = DEFAULT_DEVELOPMENT_LOG_LEVEL;\n } else if (mode === \"test\") {\n defaultLogLevel = DEFAULT_TEST_LOG_LEVEL;\n } else {\n defaultLogLevel = DEFAULT_PRODUCTION_LOG_LEVEL;\n }\n\n if (isSetString(logLevel)) {\n return {\n general: logLevel,\n fs: defaultLogLevel.fs,\n performance: logLevel,\n communication: defaultLogLevel.communication,\n plugins: logLevel,\n hooks: logLevel,\n env: defaultLogLevel.env,\n rpc: defaultLogLevel.rpc,\n config: defaultLogLevel.config,\n babel: logLevel\n };\n } else if (isSetObject(logLevel)) {\n if (\n Object.values(logLevel).filter(level => isSetString(level)).length ===\n LOG_CATEGORIES_ARRAY.length\n ) {\n return logLevel as LogLevelResolvedConfig;\n }\n\n return defu(logLevel, defaultLogLevel) as LogLevelResolvedConfig;\n }\n\n return defaultLogLevel;\n}\n\nconst colors = [\n chalk.green,\n chalk.greenBright,\n chalk.red,\n chalk.redBright,\n chalk.cyan,\n chalk.cyanBright,\n chalk.yellow,\n chalk.yellowBright,\n chalk.magenta,\n chalk.magentaBright\n] as const;\n\nconst BRAND_COLOR = getColor(\"brand\");\n\n/**\n * Generate a consistent color based on the input text.\n *\n * @param text - The input text to generate the color from.\n * @return A hexadecimal color string.\n */\nexport const getTextColor = (text: string): ChalkInstance => {\n let code = 0;\n for (let i = 0; i < text.length; ++i) {\n code += text.charCodeAt(i);\n }\n\n return colors[code % colors.length] ?? chalk.cyanBright;\n};\n\n/**\n * Generate a consistent color based on the input text.\n *\n * @param text - The input text to generate the color from.\n * @return A hexadecimal color string.\n */\nexport const colorText = (text: string): string => {\n const title = titleCase(text);\n\n return getTextColor(title)(title);\n};\n\n/**\n * Generate a consistent color based on the input text.\n *\n * @param text - The input text to generate the color from.\n * @return A hexadecimal color string.\n */\nexport const colorBackground = (text: string): string => {\n const title = titleCase(text);\n\n return chalk.inverse(getTextColor(title)(` ${title} `));\n};\n\nexport const consoleLog = (meta: LogMeta, ...args: string[]) =>\n getLogFn(\n getLogLevel(\n meta.category === LogCategories.PERFORMANCE ? \"performance\" : meta.type\n ),\n {\n logLevel: \"all\"\n }\n )(\n `${meta.name ? chalk.bold.hex(BRAND_COLOR)(kebabCase(meta.name)) : \"\"}${meta.name ? chalk.grey(\" > \") : \"\"}${\n meta.command\n ? `${chalk.bold.hex(BRAND_COLOR)(\n kebabCase(meta.command)\n )}${chalk.grey(\" > \")}`\n : \"\"\n }${\n meta.environment && kebabCase(meta.environment) !== DEFAULT_ENVIRONMENT\n ? `${chalk.bold.hex(BRAND_COLOR)(\n kebabCase(meta.environment)\n )}${chalk.grey(\" > \")}`\n : \"\"\n }${\n meta.plugin\n ? `${chalk.bold.hex(BRAND_COLOR)(meta.plugin)}${chalk.grey(\" > \")}`\n : \"\"\n }${\n meta.source\n ? `${chalk.bold.hex(BRAND_COLOR)(\n kebabCase(meta.source)\n )}${chalk.grey(\" > \")}`\n : \"\"\n }${\n meta.category &&\n meta.category !== LogCategories.GENERAL &&\n meta.category !== LogCategories.PERFORMANCE\n ? `${colorBackground(kebabCase(meta.category))} `\n : \"\"\n }${args.join(\" \")} `.trim()\n );\n\nexport function isValidLogLevel(logLevel: LogLevel, type: LogLevel): boolean {\n if (logLevel === LogLevels.SILENT) {\n return false;\n }\n\n return LOG_LEVELS.indexOf(logLevel) >= LOG_LEVELS.indexOf(type);\n}\n\nexport function isValidLogLevelConfig(\n type: LogLevel,\n logLevel: LogLevelResolvedConfig,\n category: LogCategory = LogCategories.GENERAL\n): boolean {\n return isValidLogLevel(logLevel[category], type);\n}\n\n/**\n * Create a logging function with a specific name and options.\n *\n * @param name - The name of the logging function.\n * @param options - The options to configure the logging function, including the source, command, environment, plugin, log level, custom logger, and colors. These options can be used to customize the appearance and behavior of the log messages generated by the logging function.\n * @returns A logging function.\n */\nexport const createLogFn = (name: string, options: LogFnOptions): LogFn => {\n const logLevel = resolveLogLevel(options.logLevel, options.mode);\n\n return (meta: LogFnMeta | LogLevel, ...args: string[]) => {\n const logMeta = isSetObject(meta)\n ? {\n logId: uuid(),\n timestamp: Date.now(),\n category: LogCategories.GENERAL,\n ...options,\n ...meta,\n name\n }\n : {\n logId: uuid(),\n timestamp: Date.now(),\n category: LogCategories.GENERAL,\n ...options,\n type: meta,\n name\n };\n\n if (\n logMeta.$$ipc ||\n isValidLogLevelConfig(\n logMeta.type,\n logLevel,\n logMeta.category ? logMeta.category : LogCategories.GENERAL\n )\n ) {\n consoleLog(logMeta, ...args);\n }\n };\n};\n\nconst validateLogger = (\n type: LogLevel,\n name: string | undefined,\n options: LoggerOptions,\n callback: (message: LoggerMessage) => void\n) => {\n const logLevel = resolveLogLevel(options.logLevel, options.mode);\n\n return (message: string | LoggerMessage | Error) => {\n const params = isSetString(message)\n ? {\n name,\n plugin: options.plugin,\n meta: {\n type,\n name,\n category: LogCategories.GENERAL,\n logId: uuid(),\n timestamp: Date.now(),\n ...options\n },\n message\n }\n : message instanceof Error || message.error\n ? {\n name,\n plugin: options.plugin,\n message: `${\n (message instanceof Error ? message : message.error)?.message\n ? (message instanceof Error ? message : message.error)?.name\n ? `[${\n (message instanceof Error ? message : message.error)?.name\n }]: ${message.message || (message instanceof Error ? message : message.error)?.message}`\n : message.message ||\n (message instanceof Error ? message : message.error)\n ?.message\n : message.message\n ? message.message\n : JSON.stringify(message)\n }${\n (message instanceof Error ? message : message.error)?.stack\n ? `\nStack Trace: ${(message instanceof Error ? message : message.error)?.stack}`\n : \"\"\n }`,\n meta: {\n type,\n name,\n category: LogCategories.GENERAL,\n logId: uuid(),\n timestamp: Date.now(),\n ...options\n }\n }\n : {\n name,\n plugin: options.plugin,\n ...message,\n meta: {\n type,\n name,\n category: LogCategories.GENERAL,\n logId: uuid(),\n timestamp: Date.now(),\n plugin: message.plugin,\n ...options,\n ...message.meta\n }\n };\n\n if (\n params.meta.$$ipc ||\n isValidLogLevelConfig(type, logLevel, params.meta.category)\n ) {\n callback(params);\n }\n };\n};\n\nconst validateCustomLogger = (\n type: LogLevel,\n name: string | undefined,\n options: LoggerOptions,\n callback?: (message: string | LoggerMessage) => void,\n customCallback?: (message: CustomLoggerMessage) => void\n) => {\n const logLevel = resolveLogLevel(options.logLevel, options.mode);\n\n return (message: string | LoggerMessage) => {\n const params = isSetString(message)\n ? {\n name,\n plugin: options.plugin,\n meta: {\n category: LogCategories.GENERAL,\n ...options,\n type,\n name,\n logId: uuid(),\n timestamp: Date.now()\n },\n message\n }\n : {\n name,\n plugin: options.plugin,\n ...message,\n meta: {\n category: LogCategories.GENERAL,\n ...options,\n type,\n name,\n logId: uuid(),\n timestamp: Date.now(),\n plugin: message.plugin,\n ...message.meta\n }\n };\n\n if (\n params.meta.$$ipc ||\n isValidLogLevelConfig(type, logLevel, params.meta.category)\n ) {\n callback?.(params);\n customCallback?.(params);\n }\n };\n};\n\n/**\n * Create a logging function with a specific name and options.\n *\n * @param logger - The original logger to wrap with the custom logger.\n * @param secondaryLogger - The custom logger to use for logging messages, which can be used to override the default logging behavior of the original logger.\n * @returns A new logger that combines the original logger's options with the custom logger's methods, allowing for customized logging behavior while still maintaining the original logger's configuration.\n */\nexport const withLogger = (logger: Logger, secondaryLogger: Logger): Logger => {\n const options = { ...secondaryLogger.options, ...logger.options };\n\n const result = {\n options,\n error: validateLogger(\n \"error\",\n options.name,\n options,\n (message: LoggerMessage) => {\n logger.error?.(message);\n secondaryLogger.error?.(message);\n }\n ),\n warn: validateLogger(\n \"warn\",\n options.name,\n options,\n (message: LoggerMessage) => {\n logger.warn?.(message);\n secondaryLogger.warn?.(message);\n }\n ),\n info: validateLogger(\n \"info\",\n options.name,\n options,\n (message: LoggerMessage) => {\n logger.info?.(message);\n secondaryLogger.info?.(message);\n }\n ),\n debug: validateLogger(\n \"debug\",\n options.name,\n options,\n (message: LoggerMessage) => {\n logger.debug?.(message);\n secondaryLogger.debug?.(message);\n }\n ),\n trace: validateLogger(\n \"trace\",\n options.name,\n options,\n (message: LoggerMessage) => {\n logger.trace?.(message);\n secondaryLogger.trace?.(message);\n }\n )\n } as Logger;\n\n result.log = (type: LogLevel, message: string | LoggerMessage) => {\n switch (type) {\n case \"error\":\n result.error(message);\n break;\n case \"warn\":\n result.warn(message);\n break;\n case \"info\":\n result.info(message);\n break;\n case \"debug\":\n result.debug(message);\n break;\n case \"trace\":\n result.trace(message);\n break;\n case \"silent\":\n break;\n default:\n result.info(message);\n break;\n }\n };\n\n return result;\n};\n\n/**\n * Create a logging function with a specific name and options.\n *\n * @param logger - The original logger to wrap with the custom logger.\n * @param logFn - The custom logging function to use for logging messages, which can be used to override the default logging behavior of the original logger.\n * @returns A new logger that combines the original logger's options with the custom logging function, allowing for customized logging behavior while still maintaining the original logger's configuration.\n */\nexport const withLogFn = (logger: Logger, logFn: LogFn): Logger => {\n const result = {\n options: logger.options,\n error: validateLogger(\n \"error\",\n logger.options.name,\n logger.options,\n (msg: LoggerMessage) => {\n logger.error?.(msg);\n logFn(\n {\n category: LogCategories.GENERAL,\n ...logger.options,\n type: \"error\",\n logId: uuid(),\n timestamp: Date.now(),\n ...msg.meta\n },\n msg.message\n );\n }\n ),\n warn: validateLogger(\n \"warn\",\n logger.options.name,\n logger.options,\n (msg: LoggerMessage) => {\n logger.warn?.(msg);\n logFn(\n {\n category: LogCategories.GENERAL,\n ...logger.options,\n type: \"warn\",\n logId: uuid(),\n timestamp: Date.now(),\n ...msg.meta\n },\n msg.message\n );\n }\n ),\n info: validateLogger(\n \"info\",\n logger.options.name,\n logger.options,\n (msg: LoggerMessage) => {\n logger.info?.(msg);\n logFn(\n {\n category: LogCategories.GENERAL,\n ...logger.options,\n type: \"info\",\n logId: uuid(),\n timestamp: Date.now(),\n ...msg.meta\n },\n msg.message\n );\n }\n ),\n debug: validateLogger(\n \"debug\",\n logger.options.name,\n logger.options,\n (msg: LoggerMessage) => {\n logger.debug?.(msg);\n logFn(\n {\n category: LogCategories.GENERAL,\n ...logger.options,\n type: \"debug\",\n logId: uuid(),\n timestamp: Date.now(),\n ...msg.meta\n },\n msg.message\n );\n }\n ),\n trace: validateLogger(\n \"trace\",\n logger.options.name,\n logger.options,\n (msg: LoggerMessage) => {\n logger.trace?.(msg);\n logFn(\n {\n category: LogCategories.GENERAL,\n ...logger.options,\n type: \"trace\",\n logId: uuid(),\n timestamp: Date.now(),\n ...msg.meta\n },\n msg.message\n );\n }\n )\n } as Logger;\n\n result.log = (type: LogLevel, message: string | LoggerMessage) => {\n switch (type) {\n case \"error\":\n result.error(message);\n break;\n case \"warn\":\n result.warn(message);\n break;\n case \"info\":\n result.info(message);\n break;\n case \"debug\":\n result.debug(message);\n break;\n case \"trace\":\n result.trace(message);\n break;\n case \"silent\":\n break;\n default:\n result.info(message);\n break;\n }\n };\n\n return result;\n};\n\n/**\n * Create a logging function with a specific name and options.\n *\n * @param logger - The original logger to wrap with the custom logger.\n * @param customLogger - The custom logger to use for logging messages, which can be used to override the default logging behavior of the original logger.\n * @returns A new logger that combines the original logger's options with the custom logger's methods, allowing for customized logging behavior while still maintaining the original logger's configuration.\n */\nexport const withCustomLogger = (\n logger: Logger,\n customLogger: CustomLogger\n): Logger => {\n const result = {\n options: logger.options,\n error: validateCustomLogger(\n \"error\",\n logger.options.name,\n logger.options,\n logger.error.bind(logger),\n customLogger.error?.bind(customLogger)\n ),\n warn: validateCustomLogger(\n \"warn\",\n logger.options.name,\n logger.options,\n logger.warn.bind(logger),\n customLogger.warn?.bind(customLogger)\n ),\n info: validateCustomLogger(\n \"info\",\n logger.options.name,\n logger.options,\n logger.info.bind(logger),\n customLogger.info?.bind(customLogger)\n ),\n debug: validateCustomLogger(\n \"debug\",\n logger.options.name,\n logger.options,\n logger.debug.bind(logger),\n customLogger.debug?.bind(customLogger)\n ),\n trace: validateCustomLogger(\n \"trace\",\n logger.options.name,\n logger.options,\n logger.trace.bind(logger),\n customLogger.trace?.bind(customLogger)\n )\n } as Logger;\n\n result.log = (type: LogLevel, message: string | LoggerMessage) => {\n switch (type) {\n case \"error\":\n result.error(message);\n break;\n case \"warn\":\n result.warn(message);\n break;\n case \"info\":\n result.info(message);\n break;\n case \"debug\":\n result.debug(message);\n break;\n case \"trace\":\n result.trace(message);\n break;\n case \"silent\":\n break;\n default:\n result.info(message);\n break;\n }\n };\n\n return result;\n};\n\nexport const consoleLogger: LogFn = (meta: LogFnMeta, message: string) =>\n consoleLog(\n {\n type: isSetString(meta) ? meta : meta.type,\n category: LogCategories.GENERAL,\n logId: uuid(),\n timestamp: Date.now(),\n ...(isSetObject(meta) ? meta : {})\n },\n message\n );\n\n/**\n * Create a logging function with a specific name and options.\n *\n * @param name - The name of the logging function.\n * @param options - The options to configure the logging function, including the source, command, environment, plugin, log level, custom logger, and colors. These options can be used to customize the appearance and behavior of the log messages generated by the logging function.\n * @returns A logging function.\n */\nexport const createLogger = (\n name: string | undefined,\n options: LoggerOptions,\n callback: LogFn = consoleLogger\n): Logger => {\n const result = {\n options: { name, ...options },\n error: validateLogger(\"error\", name, { name, ...options }, data =>\n callback({ ...data.meta, type: \"error\" }, data.message)\n ),\n warn: validateLogger(\"warn\", name, { name, ...options }, data =>\n callback({ ...data.meta, type: \"warn\" }, data.message)\n ),\n info: validateLogger(\"info\", name, { name, ...options }, data =>\n callback({ ...data.meta, type: \"info\" }, data.message)\n ),\n debug: validateLogger(\"debug\", name, { name, ...options }, data =>\n callback({ ...data.meta, type: \"debug\" }, data.message)\n ),\n trace: validateLogger(\"trace\", name, { name, ...options }, data =>\n callback({ ...data.meta, type: \"trace\" }, data.message)\n )\n } as Logger;\n\n result.log = (type: LogLevel, message: string | LoggerMessage) => {\n switch (type) {\n case \"error\":\n result.error(message);\n break;\n case \"warn\":\n result.warn(message);\n break;\n case \"info\":\n result.info(message);\n break;\n case \"debug\":\n result.debug(message);\n break;\n case \"trace\":\n result.trace(message);\n break;\n case \"silent\":\n break;\n default:\n result.info(message);\n break;\n }\n };\n\n return result;\n};\n\n/**\n * Extend a logging function with a specific name, adding a colored badge to the log output.\n *\n * @param logFn - The original logging function to extend.\n * @param options - The overlay metadata to use for the badge in the log output.\n * @returns A new logging function that includes the badge in its output.\n */\nexport const extendLogFn = (logFn: LogFn, options: LogFnOptions): LogFn => {\n return (meta, ...args) =>\n options.source || options.category\n ? logFn(\n isSetObject(meta)\n ? { ...options, ...meta }\n : { ...options, type: meta },\n `${colorBackground(String(options.source || options.category))} ${args\n .filter(Boolean)\n .map(arg => String(arg).trim())\n .join(\" \")} `\n )\n : logFn(meta, ...args);\n};\n\n/**\n * Extend a logger with a specific name and options, adding a colored badge to the log output for each log message generated by the logger.\n *\n * @param logger - The original logger to extend.\n * @param options - The options to configure the logging function, including the source, command, environment, plugin, log level, custom logger, and colors. These options can be used to customize the appearance and behavior of the log messages generated by the extended logger.\n * @returns A new logger that includes the badge in its output for each log message.\n */\nexport const extendLogger = (\n logger: Logger,\n options: LoggerOptions\n): Logger => {\n const opts = { ...logger.options, ...options } as RequiredKeys<\n LoggerOptions,\n \"name\"\n >;\n\n const result = {\n options: opts,\n error: validateLogger(\"error\", opts.name, opts, logger.error.bind(logger)),\n warn: validateLogger(\"warn\", opts.name, opts, logger.warn.bind(logger)),\n info: validateLogger(\"info\", opts.name, opts, logger.info.bind(logger)),\n debug: validateLogger(\"debug\", opts.name, opts, logger.debug.bind(logger)),\n trace: validateLogger(\"trace\", opts.name, opts, logger.trace.bind(logger))\n } as Logger;\n\n result.log = (type: LogLevel, message: string | LoggerMessage) => {\n switch (type) {\n case \"error\":\n result.error(message);\n break;\n case \"warn\":\n result.warn(message);\n break;\n case \"info\":\n result.info(message);\n break;\n case \"debug\":\n result.debug(message);\n break;\n case \"trace\":\n result.trace(message);\n break;\n case \"silent\":\n break;\n default:\n result.info(message);\n break;\n }\n };\n\n return result;\n};\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@powerlines/core",
3
- "version": "0.48.11",
3
+ "version": "0.48.12",
4
4
  "private": false,
5
5
  "description": "An internal core package for Powerlines - please use the `powerlines` package for public usage.",
6
6
  "homepage": "https://stormsoftware.com",
@@ -375,5 +375,5 @@
375
375
  "undici-types": "^7.25.0"
376
376
  },
377
377
  "publishConfig": { "access": "public" },
378
- "gitHead": "756c9a682ebbff3ce96dc15d097ca21f5b3b85fe"
378
+ "gitHead": "50107ef1a62407559a697891a13b7b3b9324f122"
379
379
  }