Linux vmi2545633.contaboserver.net 6.1.0-32-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.129-1 (2025-03-06) x86_64
Apache/2.4.62 (Debian)
Server IP : 127.0.0.1 & Your IP : 127.0.0.1
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
lib /
node_modules /
npm /
lib /
utils /
Delete
Unzip
Name
Size
Permission
Date
Action
completion
[ DIR ]
drwxr-xr-x
2025-04-07 20:36
audit-error.js
1.02
KB
-rw-r--r--
2024-04-10 09:40
auth.js
2.8
KB
-rw-r--r--
2023-02-19 06:00
cmd-list.js
2.89
KB
-rw-r--r--
2023-10-24 06:00
completion.fish
1.56
KB
-rw-r--r--
2023-06-20 17:20
completion.sh
1.85
KB
-rwxr-xr-x
2022-10-11 10:59
did-you-mean.js
1.45
KB
-rw-r--r--
2023-08-09 13:29
display.js
6.48
KB
-rw-r--r--
2024-02-19 06:00
error-message.js
13.53
KB
-rw-r--r--
2024-04-10 09:40
exit-handler.js
6.78
KB
-rw-r--r--
2024-04-10 09:40
explain-dep.js
3.5
KB
-rw-r--r--
2023-06-20 17:20
explain-eresolve.js
2.56
KB
-rw-r--r--
2023-08-09 13:29
format-bytes.js
629
B
-rw-r--r--
2022-10-11 10:59
format-search-stream.js
3.82
KB
-rw-r--r--
2024-03-03 10:00
get-identity.js
802
B
-rw-r--r--
2022-12-07 06:00
is-windows.js
233
B
-rw-r--r--
2022-10-11 10:59
log-file.js
7.1
KB
-rw-r--r--
2024-02-19 06:00
log-shim.js
1.68
KB
-rw-r--r--
2022-10-11 10:59
npm-usage.js
2.02
KB
-rw-r--r--
2023-08-09 13:29
open-url-prompt.js
1.4
KB
-rw-r--r--
2024-02-19 06:00
open-url.js
1.08
KB
-rw-r--r--
2023-11-30 06:00
otplease.js
1.23
KB
-rw-r--r--
2022-12-07 06:00
ping.js
252
B
-rw-r--r--
2022-10-11 10:59
pulse-till-done.js
412
B
-rw-r--r--
2022-10-11 10:59
queryable.js
9.43
KB
-rw-r--r--
2023-11-05 06:00
read-user-info.js
2
KB
-rw-r--r--
2024-04-10 09:40
reify-finish.js
876
B
-rw-r--r--
2022-10-11 10:59
reify-output.js
6.02
KB
-rw-r--r--
2024-03-03 10:00
replace-info.js
807
B
-rw-r--r--
2024-04-10 09:40
sbom-cyclonedx.js
5.2
KB
-rw-r--r--
2023-11-30 06:00
sbom-spdx.js
4.58
KB
-rw-r--r--
2024-02-19 06:00
tar.js
3.9
KB
-rw-r--r--
2022-12-07 06:00
timers.js
2.73
KB
-rw-r--r--
2022-12-07 06:00
update-notifier.js
4.08
KB
-rw-r--r--
2024-03-03 10:00
validate-lockfile.js
1023
B
-rw-r--r--
2022-10-11 10:59
web-auth.js
558
B
-rw-r--r--
2022-10-11 10:59
Save
Rename
const { stripVTControlCharacters } = require('node:util') const { Minipass } = require('minipass') const columnify = require('columnify') // This module consumes package data in the following format: // // { // name: String, // description: String, // maintainers: [{ username: String, email: String }], // keywords: String | [String], // version: String, // date: Date // can be null, // } // // The returned stream will format this package data // into a byte stream of formatted, displayable output. module.exports = async (opts) => { return opts.json ? new JSONOutputStream() : new TextOutputStream(opts) } class JSONOutputStream extends Minipass { #didFirst = false write (obj) { if (!this.#didFirst) { super.write('[\n') this.#didFirst = true } else { super.write('\n,\n') } return super.write(JSON.stringify(obj)) } end () { super.write(this.#didFirst ? ']\n' : '\n[]\n') super.end() } } class TextOutputStream extends Minipass { #opts #line = 0 constructor (opts) { super() this.#opts = opts } write (pkg) { return super.write(this.#prettify(pkg)) } #prettify (data) { const pkg = { author: data.maintainers.map((m) => `=${stripVTControlCharacters(m.username)}`).join(' '), date: 'prehistoric', description: stripVTControlCharacters(data.description ?? ''), keywords: '', name: stripVTControlCharacters(data.name), version: data.version, } if (Array.isArray(data.keywords)) { pkg.keywords = data.keywords.map((k) => stripVTControlCharacters(k)).join(' ') } else if (typeof data.keywords === 'string') { pkg.keywords = stripVTControlCharacters(data.keywords.replace(/[,\s]+/, ' ')) } if (data.date) { pkg.date = data.date.toISOString().split('T')[0] // remove time } const columns = ['name', 'description', 'author', 'date', 'version', 'keywords'] if (this.#opts.parseable) { return columns.map((col) => pkg[col] && ('' + pkg[col]).replace(/\t/g, ' ')).join('\t') } // stdout in tap is never a tty /* istanbul ignore next */ const maxWidth = process.stdout.isTTY ? process.stdout.getWindowSize()[0] : Infinity let output = columnify( [pkg], { include: columns, showHeaders: ++this.#line <= 1, columnSplitter: ' | ', truncate: !this.#opts.long, config: { name: { minWidth: 25, maxWidth: 25, truncate: false, truncateMarker: '' }, description: { minWidth: 20, maxWidth: 20 }, author: { minWidth: 15, maxWidth: 15 }, date: { maxWidth: 11 }, version: { minWidth: 8, maxWidth: 8 }, keywords: { maxWidth: Infinity }, }, } ).split('\n').map(line => line.slice(0, maxWidth)).join('\n') if (!this.#opts.color) { return output } const colors = ['31m', '33m', '32m', '36m', '34m', '35m'] this.#opts.args.forEach((arg, i) => { const markStart = String.fromCharCode(i % colors.length + 1) const markEnd = String.fromCharCode(0) if (arg.charAt(0) === '/') { output = output.replace( new RegExp(arg.slice(1, -1), 'gi'), bit => `${markStart}${bit}${markEnd}` ) } else { // just a normal string, do the split/map thing let p = 0 output = output.toLowerCase().split(arg.toLowerCase()).map(piece => { piece = output.slice(p, p + piece.length) p += piece.length const mark = `${markStart}${output.slice(p, p + arg.length)}${markEnd}` p += arg.length return `${piece}${mark}` }).join('') } }) for (let i = 1; i <= colors.length; i++) { output = output.split(String.fromCharCode(i)).join(`\u001B[${colors[i - 1]}`) } return output.split('\u0000').join('\u001B[0m').trim() } }