Source map и PHP

Написал библиотечку для работы с source map из нашего любимого похапе.

Если кто не знает что такое source map

Вот, допустим, у нас есть сайт, а у него много JavaScript-файликов. Ну и при деплое, мы их все, как порядочные люди, сливаем вместе и сжимаем каким-нибудь минификатором. И наши пользователи не грузят теперь себе много мелких файликов со всеми комментариями и отступами, а загружают парочку сжатых.

Единственная проблема, что в сжатом файле теперь у нас какая-то херь, которую совершенно невозможно дебажить. И сообщения об ошибках ведут теперь совершенно непонятно куда.

Однако, все современные минификаторы могут при сжатии ещё создавать файл source map.
В нём хитрым образом закодировано соответствие позиций в сгенерированном файле и в исходных.
В конце сжатого файла можно дописать ссылку на карту:

//# sourceMappingURL=script.min.js.map

И происходит волшебство. Грузится сжатый файл, а в отладчике браузера показываются исходные. Более того, так как в map-файле содержится только соответствие строк и столбцов между файлами, то можно спокойно дебажить TypeScript или какой-нибудь там Coffee прямо в браузере:

Ну, то есть вообще, что угодно:

Остальной текст под катом