!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/usr/local/lib/node_modules/strapi/node_modules/pino/   drwxr-xr-x
Free 13.15 GB of 57.97 GB (22.69%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     pretty.js (8.42 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
'use strict'

var split = require('split2')
var Parse = require('fast-json-parse')
var chalk = require('chalk')

var levels = {
  default: 'USERLVL',
  60: 'FATAL',
  50: 'ERROR',
  40: 'WARN',
  30: 'INFO',
  20: 'DEBUG',
  10: 'TRACE'
}

var standardKeys = [
  'pid',
  'hostname',
  'name',
  'level',
  'time',
  'v'
]

var defaultErrorLikeObjectKeys = [
  'err',
  'error'
]

var defaultMessageKey = 'msg'

function toTimezoneOffset (aMinTimeoffset) {
  // +/- minute timeoffset
  var tz = aMinTimeoffset || new Date().getTimezoneOffset()
  var tmp = Math.abs(tz)

  var offset = _lpadzero(String(Math.floor(tmp / 60)), 2) + ':' + _lpadzero(String(tmp % 60), 2)
  return tz > 0 ? '-' + offset : '+' + offset
}

function _lpadzero (aTarget, aLength, aPadChar) {
  var char = aPadChar || '0'
  var targetStr = aTarget.toString()
  var times = aLength - targetStr.length
  var padding = ''
  while ((times--) > 0) {
    padding += char
  }
  return padding + targetStr
}

function withSpaces (value, eol) {
  var lines = value.split(/\r?\n/)
  for (var i = 1; i < lines.length; i++) {
    lines[i] = '    ' + lines[i]
  }
  return lines.join(eol)
}

function filter (value, messageKey, eol, errorLikeObjectKeys, excludeStandardKeys) {
  errorLikeObjectKeys = errorLikeObjectKeys || []

  var keys = Object.keys(value)
  var filteredKeys = [messageKey]

  if (excludeStandardKeys !== false) {
    filteredKeys = filteredKeys.concat(standardKeys)
  }

  var result = ''

  for (var i = 0; i < keys.length; i++) {
    if (errorLikeObjectKeys.indexOf(keys[i]) !== -1) {
      var arrayOfLines = ('    ' + keys[i] + ': ' + withSpaces(JSON.stringify(value[keys[i]], null, 2), eol) + eol).split('\n')

      for (var j = 0; j < arrayOfLines.length; j++) {
        if (j !== 0) {
          result += '\n'
        }

        var line = arrayOfLines[j]

        if (/^\s*"stack"/.test(line)) {
          var matches = /^(\s*"stack":)\s*"(.*)",?$/.exec(line)

          if (matches) {
            if (matches.length === 3) {
              var indentSize = /^\s*/.exec(line)[0].length + 4
              var indentation = Array(indentSize + 1).join(' ')

              result += matches[1] + '\n' + indentation +
                matches[2].replace(/\\n/g, '\n' + indentation)
            }
          } else {
            result += line
          }
        } else {
          result += line
        }
      }
    } else if (filteredKeys.indexOf(keys[i]) < 0) {
      result += '    ' + keys[i] + ': ' + withSpaces(JSON.stringify(value[keys[i]], null, 2), eol) + eol
    }
  }

  return result
}

function isPinoLine (line) {
  return line && (line.hasOwnProperty('v') && line.v === 1)
}

function pretty (opts) {
  var timeTransOnly = opts && opts.timeTransOnly
  var formatter = opts && opts.formatter
  var dateFormat = opts && opts.dateFormat
  var errorProps = opts && opts.errorProps
  var errorLikeObjectKeys = opts && opts.errorLikeObjectKeys
  var localTime = opts && opts.localTime
  var levelFirst = opts && opts.levelFirst
  var messageKey = opts && opts.messageKey
  var forceColor = opts && opts.forceColor
  var eol = opts && opts.crlf ? '\r\n' : '\n'

  messageKey = messageKey || defaultMessageKey
  errorLikeObjectKeys = errorLikeObjectKeys || defaultErrorLikeObjectKeys

  var stream = split(mapLine)
  var ctx
  var levelColors

  var pipe = stream.pipe

  stream.pipe = function (dest, opts) {
    ctx = new chalk.constructor({
      enabled: !!((chalk.supportsColor && dest.isTTY) || forceColor)
    })

    if (forceColor && ctx.level === 0) {
      ctx.level = 1
    }

    levelColors = {
      default: ctx.white,
      60: ctx.bgRed,
      50: ctx.red,
      40: ctx.yellow,
      30: ctx.green,
      20: ctx.blue,
      10: ctx.grey
    }

    return pipe.call(stream, dest, opts)
  }

  return stream

  function mapLine (line) {
    var parsed = new Parse(line)
    var value = parsed.value

    if (parsed.err || !isPinoLine(value)) {
      // pass through
      return line + eol
    }

    if (timeTransOnly) {
      value.time = (localTime)
        ? asLocalISODate(value.time, dateFormat)
        : asISODate(value.time, dateFormat)
      return JSON.stringify(value) + eol
    }

    line = (levelFirst)
      ? asColoredLevel(value) + ' ' + formatTime(value)
      : formatTime(value, ' ') + asColoredLevel(value)

    if (formatter) {
      return opts.formatter(value, {
        prefix: line,
        chalk: ctx,
        withSpaces: withSpaces,
        filter: filter,
        formatTime: formatTime,
        asColoredText: asColoredText,
        asColoredLevel: asColoredLevel
      }) + eol
    }

    if (value.name || value.pid || value.hostname) {
      line += ' ('

      if (value.name) {
        line += value.name
      }

      if (value.name && value.pid) {
        line += '/' + value.pid
      } else if (value.pid) {
        line += value.pid
      }

      if (value.hostname) {
        line += ' on ' + value.hostname
      }

      line += ')'
    }

    line += ': '

    if (value[messageKey]) {
      line += ctx.cyan(value[messageKey])
    }

    line += eol

    if (value.type === 'Error') {
      line += value.stack
        ? '    ' + withSpaces(value.stack, eol) + eol
        : ''

      var propsForPrint
      if (errorProps && errorProps.length > 0) {
        // don't need print these props for 'Error' object
        var excludedProps = standardKeys.concat([messageKey, 'type', 'stack'])

        if (errorProps[0] === '*') {
          // print all value props excluding 'excludedProps'
          propsForPrint = Object.keys(value).filter(function (prop) {
            return excludedProps.indexOf(prop) < 0
          })
        } else {
          // print props from 'errorProps' only
          // but exclude 'excludedProps'
          propsForPrint = errorProps.filter(function (prop) {
            return excludedProps.indexOf(prop) < 0
          })
        }

        for (var i = 0; i < propsForPrint.length; i++) {
          var key = propsForPrint[i]

          if (value.hasOwnProperty(key)) {
            if (value[key] instanceof Object) {
              // call 'filter' with 'excludeStandardKeys' = false
              // because nested property might contain property from 'standardKeys'
              line += key + ': {' + eol + filter(value[key], '', eol, errorLikeObjectKeys, false) + '}' + eol
            } else {
              line += key + ': ' + value[key] + eol
            }
          }
        }
      }
    } else {
      line += filter(value, messageKey, eol, errorLikeObjectKeys)
    }

    return line
  }

  function asISODate (time, dateFormat) {
    if (dateFormat) {
      return asLocalISODate(time, dateFormat, 0)
    } else {
      return new Date(time).toISOString()
    }
  }

  function asLocalISODate (aTime, aFormat, aMinuteTZ) {
    var time = aTime
    var format = aFormat || 'YYYY-MM-DDThh:mm:ss.SSSTZ'
    var date = new Date(time)
    // make independent of the system timezone
    var tzOffset = (aMinuteTZ === undefined)
      ? date.getTimezoneOffset()
      : aMinuteTZ
    date.setUTCMinutes(date.getUTCMinutes() - tzOffset)
    var year = format.indexOf('YYYY') > -1
      ? date.getUTCFullYear()
      : date.getUTCFullYear().toString().slice(2, 4)
    var month = _lpadzero(date.getUTCMonth() + 1, 2)
    var day = _lpadzero(date.getUTCDate(), 2)
    var hour = _lpadzero(date.getUTCHours(), 2)
    var minute = _lpadzero(date.getUTCMinutes(), 2)
    var second = _lpadzero(date.getUTCSeconds(), 2)
    var milli = _lpadzero(date.getUTCMilliseconds(), 3)
    date.setUTCMinutes(date.getUTCMinutes() + tzOffset)

    return format
      .replace(/Y{1,4}/g, year)
      .replace(/MM/g, month)
      .replace(/DD/g, day)
      .replace(/hh/g, hour)
      .replace(/mm/g, minute)
      .replace(/ss/g, second)
      .replace(/SSS/g, milli)
      .replace(/TZ/g, toTimezoneOffset(tzOffset))
  }

  function formatTime (value, after) {
    after = after || ''
    try {
      if (!value || !value.time) {
        return ''
      } else {
        return '[' + ((localTime)
          ? asLocalISODate(value.time, dateFormat)
          : asISODate(value.time, dateFormat)) + ']' + after
      }
    } catch (_) {
      return ''
    }
  }

  function asColoredLevel (value) {
    return asColoredText(value, levelColors.hasOwnProperty(value.level) ? levels[value.level] : levels.default)
  }

  function asColoredText (value, text) {
    if (levelColors.hasOwnProperty(value.level)) {
      return levelColors[value.level](text)
    } else {
      return levelColors.default(text)
    }
  }
}

module.exports = pretty

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0285 ]--