Software: Apache. PHP/8.1.30 uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root) Safe-mode: OFF (not secure) /home/picotech/domains/wa.picotech.app/public_html/node_modules/fast-redact/lib/ drwxr-xr-x |
Viewing file: Select action/file-type: 'use strict' const { groupRestore, nestedRestore } = require('./modifiers') module.exports = restorer function restorer ({ secret, wcLen }) { return function compileRestore () { if (this.restore) return const paths = Object.keys(secret) const resetters = resetTmpl(secret, paths) const hasWildcards = wcLen > 0 const state = hasWildcards ? { secret, groupRestore, nestedRestore } : { secret } /* eslint-disable-next-line */ this.restore = Function( 'o', restoreTmpl(resetters, paths, hasWildcards) ).bind(state) } } /** * Mutates the original object to be censored by restoring its original values * prior to censoring. * * @param {object} secret Compiled object describing which target fields should * be censored and the field states. * @param {string[]} paths The list of paths to censor as provided at * initialization time. * * @returns {string} String of JavaScript to be used by `Function()`. The * string compiles to the function that does the work in the description. */ function resetTmpl (secret, paths) { return paths.map((path) => { const { circle, escPath, leadingBracket } = secret[path] const delim = leadingBracket ? '' : '.' const reset = circle ? `o.${circle} = secret[${escPath}].val` : `o${delim}${path} = secret[${escPath}].val` const clear = `secret[${escPath}].val = undefined` return ` if (secret[${escPath}].val !== undefined) { try { ${reset} } catch (e) {} ${clear} } ` }).join('') } /** * Creates the body of the restore function * * Restoration of the redacted object happens * backwards, in reverse order of redactions, * so that repeated redactions on the same object * property can be eventually rolled back to the * original value. * * This way dynamic redactions are restored first, * starting from the last one working backwards and * followed by the static ones. * * @returns {string} the body of the restore function */ function restoreTmpl (resetters, paths, hasWildcards) { const dynamicReset = hasWildcards === true ? ` const keys = Object.keys(secret) const len = keys.length for (var i = len - 1; i >= ${paths.length}; i--) { const k = keys[i] const o = secret[k] if (o.flat === true) this.groupRestore(o) else this.nestedRestore(o) secret[k] = null } ` : '' return ` const secret = this.secret ${dynamicReset} ${resetters} return o ` } |
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0044 ]-- |