{"version":3,"file":"ng2-logger-browser-prod.mjs","sources":["../../../tmp-libs-for-dist-prod/ng2-logger/projects/ng2-logger/src/lib/ng2-logger.ts","../../../tmp-libs-for-dist-prod/ng2-logger/projects/ng2-logger/src/lib/index.ts","../../../tmp-libs-for-dist-prod/ng2-logger/projects/ng2-logger/src/ng2-logger-browser-prod.ts"],"sourcesContent":["//#region imports\n/* */                                  \nimport * as stringify from 'json-stringify-safe';\nimport { json5, Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC, UtilsOs__NS__commandExistsAsync, UtilsOs__NS__commandExistsSync, UtilsOs__NS__detectEditor, UtilsOs__NS__drawLine, UtilsOs__NS__Editor, UtilsOs__NS__EDITOR_PROCESSES, UtilsOs__NS__EditorArr, UtilsOs__NS__EditorProcess, UtilsOs__NS__getEditorSettingsJsonPath, UtilsOs__NS__getInotifyWatchCount, UtilsOs__NS__getRealHomeDir, UtilsOs__NS__isBrowser, UtilsOs__NS__isDockerAvailable, UtilsOs__NS__isElectron, UtilsOs__NS__isNode, UtilsOs__NS__isNodeVersionOk, UtilsOs__NS__isPortInUse, UtilsOs__NS__isRunningInBrowser, UtilsOs__NS__isRunningInCliMode, UtilsOs__NS__isRunningInDocker, UtilsOs__NS__isRunningInElectron, UtilsOs__NS__isRunningInLinuxGraphicsCapableEnvironment, UtilsOs__NS__isRunningInMochaTest, UtilsOs__NS__isRunningInNode, UtilsOs__NS__isRunningInOsWithGraphicsCapableEnvironment, UtilsOs__NS__isRunningInSSRMode, UtilsOs__NS__isRunningInVscodeExtension, UtilsOs__NS__isRunningInWebSQL, UtilsOs__NS__isRunningInWindows, UtilsOs__NS__isRunningInWindowsCmd, UtilsOs__NS__isRunningInWindowsPowerShell, UtilsOs__NS__isRunningInWsl, UtilsOs__NS__isRunningNodeDebugger, UtilsOs__NS__isSSRMode, UtilsOs__NS__isVscodeExtension, UtilsOs__NS__isWebSQL, UtilsOs__NS__killAllEditor, UtilsOs__NS__openFolderInFileExplorer, UtilsOs__NS__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists, UtilsOs__NS__sendNotification } from 'tnp-core/browser-prod';\n\n/* */\n/* */\n  \n//#endregion\n\n//#region level\nexport enum Level {\n  DATA,\n  INFO,\n  WARN,\n  ERROR,\n  SUCCESS,\n  TASK_STARTED,\n  TASK_DONE,\n}\n//#endregion\n\n//#region constants\nexport const LevelKey = {\n  [Level.DATA]: 'data',\n  [Level.INFO]: 'info',\n  [Level.WARN]: 'warn',\n  [Level.ERROR]: 'error',\n  [Level.SUCCESS]: 'success',\n  [Level.TASK_STARTED]: 'taskstarted',\n  [Level.TASK_DONE]: 'taskdone',\n};\n\nexport const LevelOrder = [\n  LevelKey[Level.DATA],\n  LevelKey[Level.TASK_STARTED],\n  LevelKey[Level.TASK_DONE],\n  LevelKey[Level.INFO],\n  LevelKey[Level.SUCCESS],\n  LevelKey[Level.WARN],\n  LevelKey[Level.ERROR],\n];\n\nconst levelIcon = {\n  [Level.INFO]: 'ℹ️',\n  [Level.ERROR]: '❌',\n  [Level.WARN]: '⚠️',\n  [Level.SUCCESS]: '✅',\n  [Level.TASK_STARTED]: '🚀',\n  [Level.TASK_DONE]: '🏁',\n  [Level.DATA]: '',\n};\n\n//#endregion\n\n//#region log namespace\n//namespace Log\n\n  //#region internal state\n\n  const instances = new Map<string, Logger>();\n\n  let originalConsole: Partial<typeof console> | null = null;\n  let permanentlyDisabled = false;\n\n  const consoleMethods = ['log', 'info', 'warn', 'error'] as const;\n\n  let globalLevel: Level | null = null;\n\n  //#endregion\n\n  //#region settings\n\n  export const Log__NS__settings = {\n    mutedModules: [] as string[],\n    showTimestamp: false,\n  };\n\n  //#endregion\n\n  //#region helpers\n\n  const isMutedModule = (moduleName: string): boolean => {\n    if (Log__NS__settings.mutedModules.length === 0) return false;\n    return !Helpers__NS__contain(Log__NS__settings.mutedModules, moduleName);\n  };\n\n  //#endregion\n\n  //#region public api\n\n  export const Log__NS__create = (moduleName: string, ...level: Level[]): Logger => {\n    const log = new Logger(\n      moduleName,\n      getRandomColor(),\n      level,\n      isMutedModule(moduleName),\n      undefined,\n    );\n\n    instances.set(moduleName, log);\n    return log;\n  };\n\n  export const Log__NS__setGlobalLevel = (level: Level) => {\n    globalLevel = level;\n  };\n\n  export const Log__NS__onlyLevel = (...levels: Level[]): void => {\n    instances.forEach(instance => {\n      instance.allowed = levels;\n    });\n  };\n\n  export const Log__NS__onlyModules = (...modules: (string | RegExp)[]): void => {\n    instances.forEach(instance => {\n      const moduleName = instance.moduleName;\n\n      const isAllowed = modules.some(m => {\n        if (typeof m === 'string') {\n          return m === moduleName;\n        }\n        if (m instanceof RegExp) {\n          return m.test(moduleName);\n        }\n        return false;\n      });\n\n      // mute if NOT allowed\n      instance.isMuted = !isAllowed;\n    });\n  };\n\n  export const Log__NS__disableAllLogsPermanetly = () => {\n    if (permanentlyDisabled) return;\n\n    if (!originalConsole) {\n      originalConsole = {};\n      consoleMethods.forEach(m => {\n        originalConsole![m] = console[m];\n      });\n    }\n\n    consoleMethods.forEach(m => {\n      console[m] = () => {};\n    });\n\n    permanentlyDisabled = true;\n  };\n\n  export const Log__NS__disableAllLogs = () => {\n    if (permanentlyDisabled) return;\n\n    if (!originalConsole) {\n      originalConsole = {};\n      consoleMethods.forEach(m => {\n        originalConsole![m] = console[m];\n      });\n    }\n\n    consoleMethods.forEach(m => {\n      console[m] = () => {};\n    });\n  };\n\n  export const Log__NS__enableAllLogs = () => {\n    if (permanentlyDisabled) return;\n    if (!originalConsole) return;\n\n    consoleMethods.forEach(m => {\n      if (originalConsole && originalConsole[m]) {\n        console[m] = originalConsole[m] as any;\n      }\n    });\n  };\n\n  //#endregion\n\n  //#region logger class\n\n  class Logger {\n    constructor(\n      public readonly moduleName: string,\n      public color: string,\n      public allowed: Level[],\n      public isMuted: boolean,\n      /**\n       * Set how much characters in terminal/console\n       * your module name should take\n       */\n      public moduleWidth: number | undefined,\n    ) {\n      this.createLevelMethod(Level.DATA);\n      this.createLevelMethod(Level.DATA, 'd');\n      this.createLevelMethod(Level.INFO);\n      this.createLevelMethod(Level.INFO, 'i');\n      this.createLevelMethod(Level.WARN);\n      this.createLevelMethod(Level.WARN, 'w');\n      this.createLevelMethod(Level.ERROR);\n      this.createLevelMethod(Level.ERROR, 'er');\n      this.createLevelMethod(Level.SUCCESS);\n      this.createLevelMethod(Level.TASK_STARTED);\n      this.createLevelMethod(Level.TASK_DONE);\n    }\n\n    declare data: (message: string, ...data: any[]) => void;\n\n    declare d: (message: string, ...data: any[]) => void;\n\n    declare info: (message: string, ...data: any[]) => void;\n\n    declare i: (message: string, ...data: any[]) => void;\n\n    declare warn: (message: string, ...data: any[]) => void;\n\n    declare w: (message: string, ...data: any[]) => void;\n\n    declare error: (message: string, ...data: any[]) => void;\n\n    declare er: (message: string, ...data: any[]) => void;\n\n    public setLevel(l: Level) {\n      this.allowed = [l];\n      return this;\n    }\n\n    public mute() {\n      this.isMuted = true;\n      return this;\n    }\n\n    public logOnlyWhen(expression: (() => boolean) | boolean): void {\n      this.isMuted =\n        typeof expression === 'function' ? !expression() : !expression;\n    }\n\n    private createLevelMethod(level: Level, overrideMethodName?: string) {\n      const methodName = overrideMethodName\n        ? overrideMethodName\n        : LevelKey[level];\n\n      (this as any)[methodName] = (message: string, ...data: any[]) => {\n        if (this.isMuted) return this;\n\n        if (globalLevel !== null && level < globalLevel) {\n          return this;\n        }\n\n        if (this.allowed.length === 0 || Helpers__NS__contain(this.allowed, level)) {\n          displayMsg(\n            message,\n            data.length === 0 ? undefined : data,\n            this.moduleName,\n            this.color,\n            level,\n            this.moduleWidth,\n            permanentlyDisabled,\n          );\n        }\n\n        return this;\n      };\n    }\n  }\n\n  //#endregion\n\n//end of namespace Log\n\n//#endregion\n\n//#region get random color\nconst getRandomColor = (): string => {\n/* */\n/* */\n/* */\n/* */\n  \n\n  const letters = '0123456789ABCDEF';\n  return (\n    '#' +\n    Array.from({ length: 6 })\n      .map(() => letters[Math.floor(Math.random() * 16)])\n      .join('')\n  );\n};\n//#endregion\n\n//#region console log\nconst consoleLog = (data: string, level: Level): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n};\n//#endregion\n\n//#region display message\nconst displayMsg = (\n  message: string,\n  params: any[] | undefined,\n  moduleName: string,\n  moduleColor: string,\n  level: Level,\n  moduleWidth: number | undefined,\n  permanentlyDisabled: boolean,\n): void => {\n  if (permanentlyDisabled) return;\n\n  if (message) {\n    message = `${levelIcon[level]}  ${message?.toString()}`;\n  } else {\n    message = levelIcon[level];\n  }\n\n  const timestamp = Log__NS__settings\n    ? `[${new Date().toISOString()}] `\n    : '';\n\n  if (moduleWidth) {\n    const diff = moduleWidth - moduleName.length;\n    if (diff > 0) {\n      for (let i = 0; i < diff; i++) {\n        moduleName += ' ';\n      }\n    }\n  }\n\n  //#region @browser\n  if (UtilsOs__NS__isBrowser) {\n    let levelColor = 'gray';\n\n    switch (level) {\n      case Level.INFO:\n        levelColor = 'deepskyblue';\n        break;\n      case Level.WARN:\n        levelColor = 'orange';\n        break;\n      case Level.ERROR:\n        levelColor = 'red';\n        break;\n      case Level.SUCCESS:\n        levelColor = 'green';\n        break;\n      case Level.TASK_STARTED:\n        levelColor = 'purple';\n        break;\n      case Level.TASK_DONE:\n        levelColor = 'mediumseagreen';\n        break;\n      case Level.DATA:\n      default:\n        levelColor = 'gray';\n    }\n\n    const moduleStyle = `background:${moduleColor};color:white;padding:2px 4px;border-radius:2px;`;\n\n    const messageStyle = `color:${levelColor};font-weight:${level === Level.ERROR ? 'bold' : 'normal'};`;\n\n    console.log(\n      `%c ${moduleName} %c ${timestamp}${message}`,\n      moduleStyle,\n      messageStyle,\n      ...(params ?? []),\n    );\n  }\n  //#endregion\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n};\n//#endregion","export * from './ng2-logger';\n/* */                                    ","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}