!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)

/var/www/html/queuepro/node_modules/webpack-rtl-plugin/src/   drwxrwxr-x
Free 13.24 GB of 57.97 GB (22.85%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     index.js (3.84 KB)      -rwxrwxr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
const path = require('path')
const { createHash } = require('crypto')
const rtlcss = require('rtlcss')
const { ConcatSource } = require('webpack-sources')
const cssDiff = require('@romainberger/css-diff')
const { forEachOfLimit } = require('async')
const cssnano = require('cssnano')

const pluginName = "WebpackRTLPlugin"

class WebpackRTLPlugin {
  constructor(options) {
    this.options = {
      filename: false,
      options: {},
      plugins: [],
      ...options
    }
  }

  apply(compiler) {
    compiler.hooks.emit.tapAsync(pluginName, (compilation, callback) => {
      forEachOfLimit(compilation.chunks, 5, (chunk, key, cb) => {
        const rtlFiles = []
        let cssnanoPromise = Promise.resolve()

        chunk.files.forEach(asset => {
          const match = this.options.test ? new RegExp(this.options.test).test(asset) : true

          if (path.extname(asset) !== '.css') {
            return
          }

          const baseSource = compilation.assets[asset].source()
          let filename
          let rtlSource

          if (match) {
            rtlSource = rtlcss.process(baseSource, this.options.options, this.options.plugins)

            if (this.options.filename instanceof Array && this.options.filename.length === 2) {
              filename = asset.replace(this.options.filename[0], this.options.filename[1])
            }
            else if (this.options.filename) {
              filename = this.options.filename

              if (/\[contenthash]/.test(this.options.filename)) {
                const hash = createHash('md5').update(rtlSource).digest('hex').substr(0, 10)
                filename = filename.replace('[contenthash]', hash)
              }
              if (/\[id]/.test(this.options.filename)) {
                filename = filename.replace('[id]', chunk.id)
              }
              if (/\[name]/.test(this.options.filename)) {
                filename = filename.replace('[name]', chunk.name)
              }
              if (/\[file]/.test(this.options.filename)) {
                filename = filename.replace('[file]', asset)
              }
              if (/\[filebase]/.test(this.options.filename)) {
                filename = filename.replace('[filebase]', path.basename(asset))
              }
              if (/\[ext]/.test(this.options.filename)) {
                filename = filename.replace('.[ext]', path.extname(asset))
              }
            }
            else {
              const newFilename = `${path.basename(asset, '.css')}.rtl`
              filename = asset.replace(path.basename(asset, '.css'), newFilename)
            }

            if (this.options.diffOnly) {
              rtlSource = cssDiff(baseSource, rtlSource)
            }
          }

          if (this.options.minify !== false) {
            let nanoOptions = { from: undefined }
            if (typeof this.options.minify === 'object') {
              nanoOptions = this.options.minify
            }

            cssnanoPromise = cssnanoPromise.then(() => {
              let minify = cssnano.process( baseSource, nanoOptions).then(output => {
                compilation.assets[asset] = new ConcatSource(output.css)
              });

              if (match) {
                const rtlMinify = cssnano.process(rtlSource, nanoOptions).then(output => {
                  compilation.assets[filename] = new ConcatSource(output.css)
                  rtlFiles.push(filename)
                });

                minify = Promise.all([minify, rtlMinify]);
              }

              return minify;
            })
          }
          else if (match) {
            compilation.assets[filename] = new ConcatSource(rtlSource)
            rtlFiles.push(filename)
          }
        })

        cssnanoPromise.then(() => {
          chunk.files.push.apply(chunk.files, rtlFiles)
          cb()
        })
      }, callback)
    })
  }
}

module.exports = WebpackRTLPlugin

:: 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.0042 ]--