unminify
Version 2.0.0
Un pequeño proyecto para deshacer varias de las cosas horribles que JavaScript Build Tools le hará a JavaScript. Además de deshacer la mayoría de las minificaciones, revierte algunas de las técnicas de "ofuscación" más estuperon pero sorprendentemente comunes utilizadas en la naturaleza.
Puede divertirle probarlo, por ejemplo, este bit de JavaScript al azar que encontré.
npm install -g unminify
o úselo sin instalar a través de npx (disponible desde npm 5.2.0)
npx unminify [...args]
unminify /path/to/file.js
--safety puede dar seguridad para habilitar/deshabilitar las transformaciones basadas en las garantías de seguridad requeridas del usuario. Consulte la documentación de los niveles de seguridad para obtener más detalles. El valor de --safety puede ser uno deuselesssafe (predeterminado)mostly-safeunsafewildly-unsafe--additional-transform se puede dar cero o más veces, cada una seguida de una ruta a un módulo que proporciona una transformación AST; La función señala que la transformación no se aplicó devolviendo su entrada let { unminifySource } = require ( 'unminify' ) ;
let sourceText = '/* a minified/"obfuscated" JavaScript program */' ;
console . log ( unminify ( sourceText ) ) ;
// or, with options
console . log ( unminifySource ( sourceText , {
safety : unminify . safetyLevels . UNSAFE ,
additionalTransforms : [ function ( ast ) { /* ... */ } ] ,
} ) ) ; Si ya tiene un árbol de turno, puede usar unminifyTree para evitar el costo de Codegen y reparto.
let { parseScript } = require ( 'shift-parser' ) ;
let { unminifyTree } = require ( 'unminify' ) ;
let sourceText = '/* a minified/"obfuscated" JavaScript program */' ;
let tree = parseScript ( sourceText ) ;
let unminifiedTree = unminifyTree ( tree ) ; Copyright 2017 Shape Security, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.