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 отдельно.