feat: Добавлены формы деплоя модулей DLE с полными настройками

- Создана форма деплоя TreasuryModule с детальными настройками казны
- Создана форма деплоя TimelockModule с настройками временных задержек
- Создана форма деплоя DLEReader с простой конфигурацией
- Добавлены маршруты и индексы для всех модулей
- Исправлены пути импорта BaseLayout
- Добавлены авторские права во все файлы
- Улучшена архитектура деплоя модулей отдельно от основного DLE
This commit is contained in:
2025-09-23 02:57:59 +03:00
parent 9f94295d15
commit de0f8aecf2
63 changed files with 11631 additions and 1920 deletions

View File

@@ -12,10 +12,11 @@
import axios from 'axios';
// Создаем экземпляр axios с базовым URL
// Создаем экземпляр axios с базовым URL и таймаутами
const api = axios.create({
baseURL: '/api',
withCredentials: true,
timeout: 10 * 60 * 1000, // 10 минут таймаут для деплоя
headers: {
'Content-Type': 'application/json',
},
@@ -25,15 +26,36 @@ const api = axios.create({
api.interceptors.request.use(
(config) => {
config.withCredentials = true; // Важно для каждого запроса
// DEBUG: логируем все исходящие запросы
console.log('🌐 [AXIOS] Отправляем запрос:', {
method: config.method?.toUpperCase(),
url: config.url,
baseURL: config.baseURL,
fullURL: config.baseURL + config.url,
data: config.data ? '[ДАННЫЕ]' : 'нет данных'
});
return config;
},
(error) => Promise.reject(error)
(error) => {
console.error('🌐 [AXIOS] Ошибка перед отправкой:', error);
return Promise.reject(error);
}
);
// Добавляем перехватчик ответов для обработки ошибок
api.interceptors.response.use(
(response) => {
// DEBUG: логируем успешные ответы
console.log('🌐 [AXIOS] Получен ответ:', {
method: response.config.method?.toUpperCase(),
url: response.config.url,
status: response.status,
statusText: response.statusText,
contentType: response.headers['content-type']
});
// Проверяем, что ответ действительно JSON
if (response.headers['content-type'] &&
!response.headers['content-type'].includes('application/json')) {
@@ -46,6 +68,16 @@ api.interceptors.response.use(
return response;
},
(error) => {
// DEBUG: логируем ошибки
console.error('🌐 [AXIOS] Ошибка ответа:', {
method: error.config?.method?.toUpperCase(),
url: error.config?.url,
message: error.message,
code: error.code,
status: error.response?.status,
statusText: error.response?.statusText
});
// Если ошибка содержит HTML в response
if (error.response && error.response.data &&
typeof error.response.data === 'string' &&