Использование NPM-пакета
Смотреть
Using the Obfuscator.io API: API Keys, npm Package, CLI and Custom Presets
Пакет отправляет сборку в API obfuscator.io, поэтому ему нужен API-ключ (Pro, Team или Business), передаваемый как apiToken или как --pro-api-token в CLI. Создание ключей и сервисных ключей команды, а также то, как не допустить их попадания в браузерный код, описаны в справочнике API.
npm
production.json
Node.js (.mjs)
CLI
Квота
javascript-obfuscator 5.9.0 и новее с помощью getProQuota узнаёт, сколько ещё можно использовать на вашем тарифе, чтобы сборка могла заранее проверить, уложатся ли её файлы в остаток, а не прерваться на полпути. За сборку засчитывается размер её исходного кода в байтах (UTF-8), но не меньше minBytesPerBuild; размер результата не учитывается. Если сборка отклонена из-за исчерпанного лимита, у выброшенного ApiError поле code равно dailyLimit или monthlyLimit, а resetsAt соответствующего окна показывает, когда оно начнётся заново. Все поля описаны в справочнике API.
Node.js (.mjs) с проверкой квоты
Пользовательские пресеты
Держите конфигурацию в панели управления, а не в файле настроек: сохраните текущие опции как пользовательский пресет, задайте ему псевдоним для API в диалоге сохранения и укажите этот псевдоним в optionsPreset. javascript-obfuscator 5.8.0 и новее получает пресет перед обфускацией, поэтому изменение пресета в панели управления меняет следующую сборку без единого коммита в репозитории. Опции пресета служат основой; всё остальное в вашей конфигурации переопределяет их, так же как при слиянии со встроенными пресетами. Сервисный ключ команды разрешает пресеты владельца команды; API-ключ участника разрешает его собственные пресеты плюс те, которыми поделились с командой.
Node.js (.mjs) с пресетом
CLI с пресетом
"optionsPreset": "production" в production.json делает то же самое для сборки с --config. Встроенные имена вроде vm-default никогда не ищутся как псевдонимы. Псевдоним, которого у вас нет, завершается ошибкой HTTP 404 ещё до отправки исходников, а пользовательский пресет без включённых Pro-функций обфусцируется локально с его опциями.
Пресет через REST
Прямая REST-интеграция может указать тот же псевдоним в optionsPreset запроса обфускации, и сервер разрешит его точно так же. Чтобы прочитать опции пресета без обфускации, используйте эндпоинт пресетов. Оба описаны в справочнике API. Пакет javascript-obfuscator получает пресет один раз за запуск, и этот запрос учитывается в том же лимите частоты запросов на пользователя, что и запросы обфускации.
Лимиты частоты запросов и поведение при загрузке больших файлов описаны в справочнике API, а лимиты вашего тарифа показаны в панели управления; на тарифах Team и Business пакет автоматически переходит на временную загрузку для больших исходников.
