JS Beautifier

Описание JS Beautifier

Данная программа улучшает внешний вид JavaScript кода за счёт переформатирования и проставления отступов. Также умеет распаковывать скрипты упакованные популярным пэкером от Dean Edward. Частично может деобфусцировать скрипты обработанные npm пакетом javascript-obfuscator. Применяется для улучшения читаемости JavaScript кода.

Дополнительно поддерживает улучшение читаемости CSS и HTML кода.

Домашняя страница: https://beautifier.io/

Автор: Einar Lielmanis

Лицензия: MIT

Справка по JS Beautifier

Пакет JS Beautifier включает в себя три инструмента:

  • js-beautify — основной инструмент, улучшает читаемость JavaScript кода, доступен во всех вариантах JS Beautifier.
  • css-beautify — данная программа улучшает читаемость CSS кода, доступна в Node.js JavaScript и Python версиях
  • html-beautify — улучшает читаемость HTML кода, доступна только в Node.js JavaScript версии

Справка по js-beautify

Использование:

jsbeautifier.py [ОПЦИИ] <ВХОДНОЙ ФАЙЛ>

<ВХОДНОЙ ФАЙЛ> может быть "-", что означает стандартный ввод (stdin).

Опции:

Опции командной строки:
  -f, --file       Входной файл или файлы (Укажите '-' для stdin)
  -r, --replace    Заменяет исходный файл полученным результатом
  -o, --outfile    Записывает вывод в файл (по умолчанию в стандартный вывод (stdout))
  --config         Путь до конфигурационного файла
  --type           Код для преобразования [js|css|html] [по умолчанию "js"]
  -q, --quiet      Подавляет журналирование в stdout
  -h, --help       Показать справку
  -v, --version    Показать версию

Опции улучшения читаемости:
  -s, --indent-size                 Размер отступа [4]
  -c, --indent-char                 Символ отступа [" "]
  -t, --indent-with-tabs            Отступ табами, переписывает -s и -c
  -e, --eol                        Символ(ы) для использования для завершения строк.
                                    [первая newline в файле, иначе "\n]
  -n, --end-with-newline            Завершить вывод с добавлением newline
  --indent-empty-lines              Применять отступы на пустых строках
  --templating                      Список шаблонных языков (auto,none,django,erb,handlebars,php) [по умолчанию "auto"] auto = none в JavaScript, all в html
  --editorconfig                    Использовать EditorConfig для установки опций
  -l, --indent-level                Начальный уровень выравнивания [0]
  -p, --preserve-newlines           Сохранять line-breaks (разрывы строк) (--no-preserve-newlines отключает)
  -m, --max-preserve-newlines       Количество line-breaks для сохранения в одном фрагменте [10]
  -P, --space-in-paren              Добавить отступы в круглых скобках, напр. f( a, b )
  -E, --space-in-empty-paren        Добавить единичный пробел внутри пустых скобок, напр. f( )
  -j, --jslint-happy                Включить режим jslint-stricter
  -a, --space-after-anon-function   Добавить пробел перед скобками анонимной функции, т.е. function ()
  --space_after_named_function      Добавить пробел перед скобками именной функции, например, example ()
  -b, --brace-style                 [collapse|expand|end-expand|none][,preserve-inline] [collapse,preserve-inline]
  -u, --unindent-chained-methods    Не делать отступы при вызове метода
  -B, --break-chained-methods       Разбивать цепочечные вызовы методов через последующие строки
  -k, --keep-array-indentation      Сохранять отступы массивов
  -x, --unescape-strings            Расшифровывать печатные символы закодированные в xNN нотацию
  -w, --wrap-line-length            Переносить строки, которые превышают N символов [0]
  -X, --e4x                         Пропускать E4X xml литералы нетронутыми
  --good-stuff                      Warm the cockles of Crockford's heart
  -C, --comma-first                 Ставить запятые в начало новой строки вместо конца
  -O, --operator-position           Установить позицию оператора (before-newline|after-newline|preserve-newline) [before-newline]

Справка по css-beautify

Использование:

css-beautify.py [ОПЦИИ] <ВХОДНОЙ ФАЙЛ>

Опции:

Опции командной строки:
  -f, --file       Входной файл или файлы (Укажите '-' для stdin)
  -r, --replace    Заменяет исходный файл полученным результатом
  -o, --outfile    Записывает вывод в файл (по умолчанию в стандартный вывод (stdout))
  --config         Путь до конфигурационного файла
  --type           Код для преобразования [js|css|html] [по умолчанию "js"]
  -q, --quiet      Подавляет журналирование в stdout
  -h, --help       Показать справку
  -v, --version    Показать версию

Опции улучшения читаемости:
  -s, --indent-size                 Размер отступа [4]
  -c, --indent-char                 Символ отступа [" "]
  -t, --indent-with-tabs            Отступ табами, переписывает -s и -c
  -e, --eol                        Символ(ы) для использования для завершения строк.
                                    [первая newline в файле, иначе "\n]
  -n, --end-with-newline            Завершить вывод с добавлением newline
  --indent-empty-lines              Применять отступы на пустых строках
  --templating                      Список шаблонных языков (auto,none,django,erb,handlebars,php) [по умолчанию "auto"] auto = none в JavaScript, all в html
  --editorconfig                    Использовать EditorConfig для установки опций
  -L, --selector-separator-newline        Добавить newline между множественными селекторами.
  -N, --newline-between-rules             Добавить символ newline между правилами CSS.

Справка по html-beautify

Использование:

html-beautify [ОПЦИИ] <ВХОДНОЙ ФАЙЛ>

Опции:

Опции командной строки:
  -f, --file       Входной файл или файлы (Укажите '-' для stdin)
  -r, --replace    Заменяет исходный файл полученным результатом
  -o, --outfile    Записывает вывод в файл (по умолчанию в стандартный вывод (stdout))
  --config         Путь до конфигурационного файла
  --type           Код для преобразования [js|css|html] [по умолчанию "js"]
  -q, --quiet      Подавляет журналирование в stdout
  -h, --help       Показать справку
  -v, --version    Показать версию

Опции улучшения читаемости:
  -s, --indent-size                 Размер отступа [4]
  -c, --indent-char                 Символ отступа [" "]
  -t, --indent-with-tabs            Отступ табами, переписывает -s и -c
  -e, --eol                        Символ(ы) для использования для завершения строк.
                                    [первая newline в файле, иначе "\n]
  -n, --end-with-newline            Завершить вывод с добавлением newline
  --indent-empty-lines              Применять отступы на пустых строках
  --templating                      Список шаблонных языков (auto,none,django,erb,handlebars,php) [по умолчанию "auto"] auto = none в JavaScript, all в html
  --editorconfig                    Использовать EditorConfig для установки опций
  -b, --brace-style                 [collapse|expand|end-expand] ["collapse"]
  -I, --indent-inner-html           Отступы разделов body и head. По умолчанию false.
  -H, --indent-handlebars           Отступы handlebars. По умолчанию false.
  -S, --indent-scripts              [keep|separate|normal] ["normal"]
  -w, --wrap-line-length            Переносить строки, которые превышают N символов [0]
  -A, --wrap-attributes             Переносить атрибуты html тегов на новые строки [auto|force|force-aligned|force-expand-multiline|aligned-multiple|preserve|preserve-aligned] ["auto"]
  -i, --wrap-attributes-indent-size Отступы перенесённых тегов после N символов [indent-level]
  -p, --preserve-newlines           Сохранять разрывы строк (line-breaks) (--no-preserve-newlines отключает)
  -m, --max-preserve-newlines       Количество сохраняемых разрывов строк в одном фрагменте [10]
  -U, --unformatted                 Список тегов (по умолчанию inline) которые не должны форматироваться
  -T, --content_unformatted         Список тегов (по умолчанию pre) чьё содержимое не должно форматироваться
  -E, --extra_liners                Список тегов (по умолчанию [head,body,/html] которые не должны иметь лишние переносы строк (newline)
  --unformatted_content_delimiter    Сохранять текстовое содержимое вместе между этих строк [""]

Руководство по JS Beautifier

Страница man отсутствует.

Примеры запуска JS Beautifier

Просмотр содержимого файла:

cat /var/www/html/dvwa/vulnerabilities/javascript/source/medium.js

Вывод:

function do_something(e){for(var t="",n=e.length-1;n>=0;n--)t+=e[n];return t}setTimeout(function(){do_elsesomething("XX")},300);function do_elsesomething(e){document.getElementById("token").value=do_something(e+document.getElementById("phrase").value+"XX")}

Улучшим читаемость JavaScript кода:

js-beautify -f /var/www/html/dvwa/vulnerabilities/javascript/source/medium.js

Вывод:

function do_something(e) {
    for (var t = "", n = e.length - 1; n >= 0; n--) t += e[n];
    return t
}
setTimeout(function() {
    do_elsesomething("XX")
}, 300);

function do_elsesomething(e) {
    document.getElementById("token").value = do_something(e + document.getElementById("phrase").value + "XX")

Установка JS Beautifier

Установка в Kali Linux

sudo apt install npm
sudo npm -g install js-beautify
js-beautify -h

Установка в BlackArch

Программа предустановлена в BlackArch.

sudo pacman -S python-jsbeautifier

В репозиториях BlackArch доступна Python версия, её особенности в том, то html-beautify отсутствует вовсе, а css-beautify не устанавливается из-за ошибки. Также есть некоторые другие отличия. Если вы хотите установить Node.js JavaScript версию, то выполните следующие команды:

sudo pacman -R python-jsbeautifier
sudo pacman -S npm
sudo npm -g install js-beautify
js-beautify -h

Установка в Windows

Начните с установки Python по статье «Как установить Python и PIP на Windows 10».

После установки Python и PIP выполните команды:

sudo pip3 install jsbeautifier
sudo pip3 install cssbeautifier
js-beautify -h

Онлайн версия JS Beautifier

Вместо установки на свой компьютер вы можете использовать онлайн версию: https://beautifier.io/

Информация об установке в другие операционные системы будет добавлена позже.

Скриншоты JS Beautifier

Инструкции по JS Beautifier

Близкие программы:

  • JStillery (100%)
  • UglifyJS (100%)
  • YARA (58.5%)
  • Reverse (56.9%)
  • JSFuck (6.9%)
  • regrippy (RANDOM - 1.6%)
  • Рекомендуется Вам:

    Comments are Closed