unminify
Version 2.0.0
Un petit projet pour annuler plusieurs des horribles choses que les outils de construction JavaScript feront à JavaScript. En plus d'annuler la plupart des minifications, il inverse une partie des techniques de «obscurcissement» plus stupides mais étonnamment courantes utilisées dans la nature.
Cela peut vous amuser de l'essayer, disons, ce morceau aléatoire de javascript que j'ai trouvé.
npm install -g unminify
ou utilisez-le sans installer via npx (disponible depuis npm 5.2.0)
npx unminify [...args]
unminify /path/to/file.js
--safety peut être accordée pour activer / désactiver les transformations en fonction des garanties de sécurité requises par l'utilisateur. Reportez-vous à la documentation des niveaux de sécurité pour plus de détails. La valeur de --safety peut être l'un desuselesssafe (par défaut)mostly-safeunsafewildly-unsafe--additional-transform peut être donnée zéro ou plus de fois, chacune suivie d'un chemin vers un module fournissant une transformation AST; La fonction signale que la transformation n'a pas été appliquée en renvoyant son entrée 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 vous avez déjà une arborescence Shift, vous pouvez utiliser unminifyTree pour éviter le coût Codegen et le coût de répartition.
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.