JSON

allowScripts Diff Tracker

Показать разницу между двумя версиями allowScripts — что добавили и убрали между релизами.

Как это работает

allowScripts — это по сути список доверенных зависимостей с install-скриптами, а любой список доверия стоит периодически пересматривать: новая зависимость появилась в allowlist на прошлой неделе — кто и почему её туда добавил, старая версия esbuild пропала — заменили на новую или просто забыли актуализировать. allowScripts Diff Tracker online сравнивает две версии allowScripts и явно показывает добавленные, удалённые и изменившиеся записи.

В отличие от обычного текстового diff в git, здесь сравнение идёт по смыслу пар пакет-версия, а не по строкам JSON-файла — переформатирование объекта или изменение порядка ключей не создаёт ложных срабатываний, в отличие от построчного git diff, который может показать весь блок изменённым только из-за форматирования.

Полезно применять при код ревью Pull Request, меняющего allowScripts, при периодическом аудите доверенных зависимостей проекта, или просто чтобы быстро понять, что реально изменилось в allowlist между двумя релизами, не читая построчно оба JSON-файла целиком в поисках расхождений.

Частые вопросы

Как инструмент определяет, что запись изменилась, а не просто переставлена в файле?

Сравнение идёт по значениям пар ключ пакет-версия и их булевому значению true/false, а не по позиции в тексте JSON, поэтому переформатирование или изменение порядка полей не создаёт ложных срабатываний в результате.

Что если версия пакета изменилась, а не просто добавилась или удалилась?

Поскольку approval в allowScripts версионно-пиннингован, смена версии технически выглядит как удаление старой записи и добавление новой — именно так инструмент это и покажет, отдельно старую и отдельно новую версию.

Можно ли использовать это для аудита security review перед мержем Pull Request?

Да, это одно из основных практических применений — быстро увидеть, какие именно доверенные зависимости добавляет или убирает конкретный Pull Request, вместо ручного сравнения двух версий JSON-файла построчно.

Работает ли сравнение, если один из файлов содержит allowScripts внутри более крупного package.json?

Да, инструмент ищет и извлекает именно поле allowScripts из вставленного текста, вне зависимости от того, передан ли целиком package.json или только сам объект allowScripts отдельно.