Merge dev into main: версия 0.6.0 с компонентом IpSecurity, флагами и улучшениями #3

Merged
austnv merged 8 commits from dev into main 2026-06-14 21:31:47 +03:00
Owner

Описание

Этот PR реализует требуемый функционал по issue #1 и включает в себя ряд критических улучшений и исправлений для фронтенда.

🔗 Связанные задачи

  • Closes #1: Добавлен функционал отображения текущего IP-адреса и индикатора защищенности.

Основные изменения

1. Новая функциональность (Issue #1)

  • Добавлен компонент IpSecurity, который отображается под шапкой сайта и показывает текущий IP-адрес пользователя и статус защищенности (VPN/Proxy/Tor/Hosting).
  • Статус защищенности определяется на основе данных, получаемых с серверного API (/api/v1/ip) через бэкенд-парсер ipinfo.io.
  • Отображается название провайдера/компании, город и страна.

2. Улучшения компонентов

  • Добавлена поддержка флагов стран: Страны теперь отображаются с национальными флагами (через flagcdn.com) и emoji.
  • Обновлен компонент: Улучшена логика определения местоположения и отображения данных.
  • Удален устаревший компонент: Проведен рефакторинг и удаление неиспользуемых частей кода.

3. Исправления ошибок и обновления

  • Исправлен баг: Устранена проблема с отображением изображений и div-элементов.
  • Обновлены зависимости: Версия пакетов и сам проект обновлены до 0.6.0.
  • Исправлена политика конфиденциальности: Уточнен пункт о сборе технической информации (IP-адрес, данные о браузере).

📂 Затронутые файлы

Всего изменено 4 файла: +215 строк добавлено, -532 строк удалено.

  1. package.json: Обновлена версия проекта до 0.6.0.
  2. package-lock.json: Автоматическое обновление блокировки зависимостей.
  3. src/components/IpSecurity.vue: Новый компонент для отображения IP и статуса защиты. Получает данные из API, отображает флаги, город, страну и название компании, а также статус "Защищено"/"Не защищено".
  4. src/App.vue: Обновлен основной шаблон приложения для корректного отображения нового компонента.

Примечание: В рамках данного PR также были затронуты README.md и index.html, но эти изменения носят вспомогательный или документальный характер.

🧪 Как тестировать

  1. Переключиться на ветку dev.
  2. Выполнить npm install для установки обновленных зависимостей.
  3. Запустить проект командой npm run dev.
  4. Убедиться, что под шапкой сайта отображается блок с IP-адресом, флагом страны, геолокацией и названием компании.
  5. Проверить, что индикатор "Защищено" появляется при использовании VPN/прокси (данные поступают через API парсера ipinfo.io).

🚀 Деплой

После слияния PR выполнится автоматическая сборка и деплой на сервер uvpn.shop благодаря скрипту postbuild.

📸 Скриншоты

Скриншот ожидаемого результата (из issue #1) прилагается к задаче.

Без VPN:
image.png

С включенным VPN:
image.png


Чеклист для ревью

  • Код соответствует архитектуре Vue 3 (Composition API).
  • Нет регрессий в существующих компонентах.
  • API-запросы обрабатываются корректно.
  • Интерфейс адаптивен (используется Tailwind CSS).
  • Политика конфиденциальности обновлена корректно.

💡 Этот PR является прямым результатом реализации требования из issue #1 и включает все необходимые для этого изменения.

## Описание Этот PR реализует требуемый функционал по issue #1 и включает в себя ряд критических улучшений и исправлений для фронтенда. ### 🔗 Связанные задачи - **Closes #1**: Добавлен функционал отображения текущего IP-адреса и индикатора защищенности. ### ✨ Основные изменения #### 1. Новая функциональность (Issue #1) - Добавлен компонент **IpSecurity**, который отображается под шапкой сайта и показывает текущий IP-адрес пользователя и статус защищенности (VPN/Proxy/Tor/Hosting). - Статус защищенности определяется на основе данных, получаемых с серверного API (`/api/v1/ip`) через бэкенд-парсер **ipinfo.io**. - Отображается название провайдера/компании, город и страна. #### 2. Улучшения компонентов - **Добавлена поддержка флагов стран**: Страны теперь отображаются с национальными флагами (через `flagcdn.com`) и emoji. - **Обновлен компонент**: Улучшена логика определения местоположения и отображения данных. - **Удален устаревший компонент**: Проведен рефакторинг и удаление неиспользуемых частей кода. #### 3. Исправления ошибок и обновления - **Исправлен баг**: Устранена проблема с отображением изображений и div-элементов. - **Обновлены зависимости**: Версия пакетов и сам проект обновлены до `0.6.0`. - **Исправлена политика конфиденциальности**: Уточнен пункт о сборе технической информации (IP-адрес, данные о браузере). ### 📂 Затронутые файлы Всего изменено **4 файла**: `+215` строк добавлено, `-532` строк удалено. 1. **`package.json`**: Обновлена версия проекта до `0.6.0`. 2. **`package-lock.json`**: Автоматическое обновление блокировки зависимостей. 3. **`src/components/IpSecurity.vue`**: Новый компонент для отображения IP и статуса защиты. Получает данные из API, отображает флаги, город, страну и название компании, а также статус "Защищено"/"Не защищено". 4. **`src/App.vue`**: Обновлен основной шаблон приложения для корректного отображения нового компонента. > **Примечание**: В рамках данного PR также были затронуты `README.md` и `index.html`, но эти изменения носят вспомогательный или документальный характер. ### 🧪 Как тестировать 1. Переключиться на ветку `dev`. 2. Выполнить `npm install` для установки обновленных зависимостей. 3. Запустить проект командой `npm run dev`. 4. Убедиться, что под шапкой сайта отображается блок с IP-адресом, флагом страны, геолокацией и названием компании. 5. Проверить, что индикатор "Защищено" появляется при использовании VPN/прокси (данные поступают через API парсера `ipinfo.io`). ### 🚀 Деплой После слияния PR выполнится автоматическая сборка и деплой на сервер `uvpn.shop` благодаря скрипту `postbuild`. ### 📸 Скриншоты Скриншот ожидаемого результата (из issue #1) прилагается к задаче. Без VPN: <img width="1429" alt="image.png" src="attachments/a229a0e6-549b-455c-b4bf-840f0d496391"> С включенным VPN: <img width="1426" alt="image.png" src="attachments/5037af9c-f9be-471d-91aa-a0414471c06e"> --- ### ✅ Чеклист для ревью - [x] Код соответствует архитектуре Vue 3 (Composition API). - [x] Нет регрессий в существующих компонентах. - [x] API-запросы обрабатываются корректно. - [x] Интерфейс адаптивен (используется Tailwind CSS). - [x] Политика конфиденциальности обновлена корректно. 💡 *Этот PR является прямым результатом реализации требования из issue #1 и включает все необходимые для этого изменения.*
austnv added 8 commits 2026-06-14 21:25:49 +03:00
austnv added the enhancement label 2026-06-14 21:27:09 +03:00
austnv added a new dependency 2026-06-14 21:30:26 +03:00
austnv merged commit fa88b2ff84 into main 2026-06-14 21:31:47 +03:00
Sign in to join this conversation.