#pragma once #include #include namespace Scripting { // Локальное хранилище JS-скриптов. Источник истины — cacheDir() из ScriptingConfig. // Если в кэше скрипта нет — fallback на bundledDir() (рядом с бинарником). class ScriptCache { public: // Резолвит абсолютный путь к файлу для /. // 1. //.js // 2. //.js // Возвращает true только если файл существует. static bool resolve(const QString &bank, const QString &scriptName, QString *outPath, QString *outError); // Сохраняет скрипт в кэш атомарно (через .tmp + rename). // body — содержимое .js-файла. version — для диагностики, пишется в *.version. static bool installFromBytes(const QString &bank, const QString &scriptName, const QString &version, const QByteArray &body, QString *outError); // Текущая установленная версия (содержимое sidecar *.version). Пусто если не установлено. static QString installedVersion(const QString &bank, const QString &scriptName); }; } // namespace Scripting