Compare commits
18 Commits
2024.3.1
...
feat/node-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5226c74d0c | ||
|
|
7dbdabb5b8 | ||
|
|
be353d9f72 | ||
|
|
38bc2c12c3 | ||
|
|
97644fa508 | ||
|
|
eb3446ae23 | ||
|
|
6c29961d09 | ||
|
|
ef1117d8cc | ||
|
|
5c4b651aee | ||
|
|
391e5a20f5 | ||
|
|
4b8f3bd8da | ||
|
|
94248076e6 | ||
|
|
eecc3db4e9 | ||
|
|
426e7594f4 | ||
|
|
934dc473f0 | ||
|
|
be57255bf7 | ||
|
|
f89561da54 | ||
|
|
c2c4e620c2 |
@@ -38,7 +38,7 @@
|
|||||||
},
|
},
|
||||||
"packageExtensions": {
|
"packageExtensions": {
|
||||||
"httpsnippet@3.0.1": {
|
"httpsnippet@3.0.1": {
|
||||||
"peerDependencies": {
|
"dependencies": {
|
||||||
"ajv": "6.12.3"
|
"ajv": "6.12.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM node:18.8.0 AS builder
|
FROM node:20.12.2 AS builder
|
||||||
|
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
|
|
||||||
|
|||||||
@@ -3,9 +3,7 @@
|
|||||||
"collection": "@nestjs/schematics",
|
"collection": "@nestjs/schematics",
|
||||||
"sourceRoot": "src",
|
"sourceRoot": "src",
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"assets": [
|
"assets": [{ "include": "mailer/templates/**/*", "outDir": "dist" }],
|
||||||
"**/*.hbs"
|
|
||||||
],
|
|
||||||
"watchAssets": true
|
"watchAssets": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "hoppscotch-backend",
|
"name": "hoppscotch-backend",
|
||||||
"version": "2024.3.1",
|
"version": "2024.3.3",
|
||||||
"description": "",
|
"description": "",
|
||||||
"author": "",
|
"author": "",
|
||||||
"private": true,
|
"private": true,
|
||||||
@@ -35,6 +35,7 @@
|
|||||||
"@nestjs/passport": "10.0.2",
|
"@nestjs/passport": "10.0.2",
|
||||||
"@nestjs/platform-express": "10.2.7",
|
"@nestjs/platform-express": "10.2.7",
|
||||||
"@nestjs/schedule": "4.0.1",
|
"@nestjs/schedule": "4.0.1",
|
||||||
|
"@nestjs/terminus": "10.2.3",
|
||||||
"@nestjs/throttler": "5.0.1",
|
"@nestjs/throttler": "5.0.1",
|
||||||
"@prisma/client": "5.8.1",
|
"@prisma/client": "5.8.1",
|
||||||
"argon2": "0.30.3",
|
"argon2": "0.30.3",
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import { loadInfraConfiguration } from './infra-config/helper';
|
|||||||
import { MailerModule } from './mailer/mailer.module';
|
import { MailerModule } from './mailer/mailer.module';
|
||||||
import { PosthogModule } from './posthog/posthog.module';
|
import { PosthogModule } from './posthog/posthog.module';
|
||||||
import { ScheduleModule } from '@nestjs/schedule';
|
import { ScheduleModule } from '@nestjs/schedule';
|
||||||
|
import { HealthModule } from './health/health.module';
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -100,6 +101,7 @@ import { ScheduleModule } from '@nestjs/schedule';
|
|||||||
InfraConfigModule,
|
InfraConfigModule,
|
||||||
PosthogModule,
|
PosthogModule,
|
||||||
ScheduleModule.forRoot(),
|
ScheduleModule.forRoot(),
|
||||||
|
HealthModule,
|
||||||
],
|
],
|
||||||
providers: [GQLComplexityPlugin],
|
providers: [GQLComplexityPlugin],
|
||||||
controllers: [AppController],
|
controllers: [AppController],
|
||||||
|
|||||||
24
packages/hoppscotch-backend/src/health/health.controller.ts
Normal file
24
packages/hoppscotch-backend/src/health/health.controller.ts
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
import { Controller, Get } from '@nestjs/common';
|
||||||
|
import {
|
||||||
|
HealthCheck,
|
||||||
|
HealthCheckService,
|
||||||
|
PrismaHealthIndicator,
|
||||||
|
} from '@nestjs/terminus';
|
||||||
|
import { PrismaService } from 'src/prisma/prisma.service';
|
||||||
|
|
||||||
|
@Controller('health')
|
||||||
|
export class HealthController {
|
||||||
|
constructor(
|
||||||
|
private health: HealthCheckService,
|
||||||
|
private prismaHealth: PrismaHealthIndicator,
|
||||||
|
private prisma: PrismaService,
|
||||||
|
) {}
|
||||||
|
|
||||||
|
@Get()
|
||||||
|
@HealthCheck()
|
||||||
|
check() {
|
||||||
|
return this.health.check([
|
||||||
|
async () => this.prismaHealth.pingCheck('database', this.prisma),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
10
packages/hoppscotch-backend/src/health/health.module.ts
Normal file
10
packages/hoppscotch-backend/src/health/health.module.ts
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
import { Module } from '@nestjs/common';
|
||||||
|
import { HealthController } from './health.controller';
|
||||||
|
import { PrismaModule } from 'src/prisma/prisma.module';
|
||||||
|
import { TerminusModule } from '@nestjs/terminus';
|
||||||
|
|
||||||
|
@Module({
|
||||||
|
imports: [PrismaModule, TerminusModule],
|
||||||
|
controllers: [HealthController],
|
||||||
|
})
|
||||||
|
export class HealthModule {}
|
||||||
@@ -374,7 +374,8 @@
|
|||||||
"mutations": "Mutations",
|
"mutations": "Mutations",
|
||||||
"schema": "Schema",
|
"schema": "Schema",
|
||||||
"subscriptions": "Subscriptions",
|
"subscriptions": "Subscriptions",
|
||||||
"switch_connection": "Switch connection"
|
"switch_connection": "Switch connection",
|
||||||
|
"url_placeholder": "Enter a GraphQL endpoint URL"
|
||||||
},
|
},
|
||||||
"graphql_collections": {
|
"graphql_collections": {
|
||||||
"title": "GraphQL Collections"
|
"title": "GraphQL Collections"
|
||||||
@@ -598,6 +599,7 @@
|
|||||||
"title": "Request",
|
"title": "Request",
|
||||||
"type": "Request type",
|
"type": "Request type",
|
||||||
"url": "URL",
|
"url": "URL",
|
||||||
|
"url_placeholder": "Enter a URL or paste a cURL command",
|
||||||
"variables": "Variables",
|
"variables": "Variables",
|
||||||
"view_my_links": "View my links"
|
"view_my_links": "View my links"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -58,24 +58,6 @@
|
|||||||
"new": "Ajouter un nouveau",
|
"new": "Ajouter un nouveau",
|
||||||
"star": "Ajouter une étoile"
|
"star": "Ajouter une étoile"
|
||||||
},
|
},
|
||||||
"cookies": {
|
|
||||||
"modal": {
|
|
||||||
"new_domain_name": "Nouveau nom de domaine",
|
|
||||||
"set": "Définir un cookie",
|
|
||||||
"cookie_string": "Chaîne de caractères de cookie",
|
|
||||||
"enter_cookie_string": "Saisir la chaîne de caractères du cookie",
|
|
||||||
"cookie_name": "Nom",
|
|
||||||
"cookie_value": "Valeur",
|
|
||||||
"cookie_path": "Chemin d'accès",
|
|
||||||
"cookie_expires": "Expiration",
|
|
||||||
"managed_tab": "Gestion",
|
|
||||||
"raw_tab": "Brut",
|
|
||||||
"interceptor_no_support": "L'intercepteur que vous avez sélectionné ne prend pas en charge les cookies. Sélectionnez un autre intercepteur et réessayez.",
|
|
||||||
"empty_domains": "La liste des domaines est vide",
|
|
||||||
"empty_domain": "Le domaine est vide",
|
|
||||||
"no_cookies_in_domain": "Aucun cookie n'est défini pour ce domaine"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"app": {
|
"app": {
|
||||||
"chat_with_us": "Discuter avec nous",
|
"chat_with_us": "Discuter avec nous",
|
||||||
"contact_us": "Nous contacter",
|
"contact_us": "Nous contacter",
|
||||||
@@ -187,7 +169,7 @@
|
|||||||
},
|
},
|
||||||
"confirm": {
|
"confirm": {
|
||||||
"close_unsaved_tab": "Êtes-vous sûr de vouloir fermer cet onglet ?",
|
"close_unsaved_tab": "Êtes-vous sûr de vouloir fermer cet onglet ?",
|
||||||
"close_unsaved_tabs": "Êtes-vous sûr de vouloir fermer tous les onglets ? {Les onglets non enregistrés seront perdus.",
|
"close_unsaved_tabs": "Êtes-vous sûr de vouloir fermer tous les onglets ? {count} onglets non enregistrés seront perdus",
|
||||||
"exit_team": "Êtes-vous sûr de vouloir quitter cette équipe ?",
|
"exit_team": "Êtes-vous sûr de vouloir quitter cette équipe ?",
|
||||||
"logout": "Êtes-vous sûr de vouloir vous déconnecter?",
|
"logout": "Êtes-vous sûr de vouloir vous déconnecter?",
|
||||||
"remove_collection": "Voulez-vous vraiment supprimer définitivement cette collection ?",
|
"remove_collection": "Voulez-vous vraiment supprimer définitivement cette collection ?",
|
||||||
@@ -207,6 +189,24 @@
|
|||||||
"open_request_in_new_tab": "Ouvrir la demande dans un nouvel onglet",
|
"open_request_in_new_tab": "Ouvrir la demande dans un nouvel onglet",
|
||||||
"set_environment_variable": "Définir comme variable"
|
"set_environment_variable": "Définir comme variable"
|
||||||
},
|
},
|
||||||
|
"cookies": {
|
||||||
|
"modal": {
|
||||||
|
"new_domain_name": "Nouveau nom de domaine",
|
||||||
|
"set": "Définir un cookie",
|
||||||
|
"cookie_string": "Chaîne de caractères de cookie",
|
||||||
|
"enter_cookie_string": "Saisir la chaîne de caractères du cookie",
|
||||||
|
"cookie_name": "Nom",
|
||||||
|
"cookie_value": "Valeur",
|
||||||
|
"cookie_path": "Chemin d'accès",
|
||||||
|
"cookie_expires": "Expiration",
|
||||||
|
"managed_tab": "Gestion",
|
||||||
|
"raw_tab": "Brut",
|
||||||
|
"interceptor_no_support": "L'intercepteur que vous avez sélectionné ne prend pas en charge les cookies. Sélectionnez un autre intercepteur et réessayez.",
|
||||||
|
"empty_domains": "La liste des domaines est vide",
|
||||||
|
"empty_domain": "Le domaine est vide",
|
||||||
|
"no_cookies_in_domain": "Aucun cookie n'est défini pour ce domaine"
|
||||||
|
}
|
||||||
|
},
|
||||||
"count": {
|
"count": {
|
||||||
"header": "En-tête {count}",
|
"header": "En-tête {count}",
|
||||||
"message": "Message {compte}",
|
"message": "Message {compte}",
|
||||||
@@ -410,7 +410,7 @@
|
|||||||
"description": "Inspecter les erreurs possibles",
|
"description": "Inspecter les erreurs possibles",
|
||||||
"environment": {
|
"environment": {
|
||||||
"add_environment": "Ajouter à l'environnement",
|
"add_environment": "Ajouter à l'environnement",
|
||||||
"not_found": "La variable d'environnement “{environnement}“ n'a pas été trouvée."
|
"not_found": "La variable d'environnement “{environment}“ n'a pas été trouvée."
|
||||||
},
|
},
|
||||||
"header": {
|
"header": {
|
||||||
"cookie": "Le navigateur ne permet pas à Hoppscotch de définir l'en-tête Cookie. Pendant que nous travaillons sur l'application de bureau Hoppscotch (bientôt disponible), veuillez utiliser l'en-tête d'autorisation à la place."
|
"cookie": "Le navigateur ne permet pas à Hoppscotch de définir l'en-tête Cookie. Pendant que nous travaillons sur l'application de bureau Hoppscotch (bientôt disponible), veuillez utiliser l'en-tête d'autorisation à la place."
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -11,12 +11,13 @@
|
|||||||
"connect": "Подключиться",
|
"connect": "Подключиться",
|
||||||
"connecting": "Соединение...",
|
"connecting": "Соединение...",
|
||||||
"copy": "Скопировать",
|
"copy": "Скопировать",
|
||||||
"create": "Create",
|
"create": "Создать",
|
||||||
"delete": "Удалить",
|
"delete": "Удалить",
|
||||||
"disconnect": "Отключиться",
|
"disconnect": "Отключиться",
|
||||||
"dismiss": "Скрыть",
|
"dismiss": "Скрыть",
|
||||||
"dont_save": "Не сохранять",
|
"dont_save": "Не сохранять",
|
||||||
"download_file": "Скачать файл",
|
"download_file": "Скачать файл",
|
||||||
|
"download_here": "Download here",
|
||||||
"drag_to_reorder": "Перетягивайте для сортировки",
|
"drag_to_reorder": "Перетягивайте для сортировки",
|
||||||
"duplicate": "Дублировать",
|
"duplicate": "Дублировать",
|
||||||
"edit": "Редактировать",
|
"edit": "Редактировать",
|
||||||
@@ -24,6 +25,7 @@
|
|||||||
"go_back": "Вернуться",
|
"go_back": "Вернуться",
|
||||||
"go_forward": "Вперёд",
|
"go_forward": "Вперёд",
|
||||||
"group_by": "Сгруппировать по",
|
"group_by": "Сгруппировать по",
|
||||||
|
"hide_secret": "Hide secret",
|
||||||
"label": "Название",
|
"label": "Название",
|
||||||
"learn_more": "Узнать больше",
|
"learn_more": "Узнать больше",
|
||||||
"less": "Меньше",
|
"less": "Меньше",
|
||||||
@@ -33,7 +35,7 @@
|
|||||||
"open_workspace": "Открыть пространство",
|
"open_workspace": "Открыть пространство",
|
||||||
"paste": "Вставить",
|
"paste": "Вставить",
|
||||||
"prettify": "Форматировать",
|
"prettify": "Форматировать",
|
||||||
"properties": "Properties",
|
"properties": "Параметры",
|
||||||
"remove": "Удалить",
|
"remove": "Удалить",
|
||||||
"rename": "Переименовать",
|
"rename": "Переименовать",
|
||||||
"restore": "Восстановить",
|
"restore": "Восстановить",
|
||||||
@@ -42,13 +44,14 @@
|
|||||||
"scroll_to_top": "Вверх",
|
"scroll_to_top": "Вверх",
|
||||||
"search": "Поиск",
|
"search": "Поиск",
|
||||||
"send": "Отправить",
|
"send": "Отправить",
|
||||||
"share": "Share",
|
"share": "Поделиться",
|
||||||
|
"show_secret": "Show secret",
|
||||||
"start": "Начать",
|
"start": "Начать",
|
||||||
"starting": "Запускаю",
|
"starting": "Запускаю",
|
||||||
"stop": "Стоп",
|
"stop": "Стоп",
|
||||||
"to_close": "что бы закрыть",
|
"to_close": "закрыть",
|
||||||
"to_navigate": "для навигации",
|
"to_navigate": "для навигации",
|
||||||
"to_select": "выборать",
|
"to_select": "выбрать",
|
||||||
"turn_off": "Выключить",
|
"turn_off": "Выключить",
|
||||||
"turn_on": "Включить",
|
"turn_on": "Включить",
|
||||||
"undo": "Отменить",
|
"undo": "Отменить",
|
||||||
@@ -66,12 +69,12 @@
|
|||||||
"copy_interface_type": "Copy interface type",
|
"copy_interface_type": "Copy interface type",
|
||||||
"copy_user_id": "Копировать токен пользователя",
|
"copy_user_id": "Копировать токен пользователя",
|
||||||
"developer_option": "Настройки разработчика",
|
"developer_option": "Настройки разработчика",
|
||||||
"developer_option_description": "Инструмент разработчика помогает обслуживить и развивить Hoppscotch",
|
"developer_option_description": "Инструмент разработчика помогает обслуживать и развивать Hoppscotch",
|
||||||
"discord": "Discord",
|
"discord": "Discord",
|
||||||
"documentation": "Документация",
|
"documentation": "Документация",
|
||||||
"github": "GitHub",
|
"github": "GitHub",
|
||||||
"help": "Справка, отзывы и документация",
|
"help": "Справка, отзывы и документация",
|
||||||
"home": "Дом",
|
"home": "На главную",
|
||||||
"invite": "Пригласить",
|
"invite": "Пригласить",
|
||||||
"invite_description": "В Hoppscotch мы разработали простой и интуитивно понятный интерфейс для создания и управления вашими API. Hoppscotch - это инструмент, который помогает создавать, тестировать, документировать и делиться своими API.",
|
"invite_description": "В Hoppscotch мы разработали простой и интуитивно понятный интерфейс для создания и управления вашими API. Hoppscotch - это инструмент, который помогает создавать, тестировать, документировать и делиться своими API.",
|
||||||
"invite_your_friends": "Пригласить своих друзей",
|
"invite_your_friends": "Пригласить своих друзей",
|
||||||
@@ -85,7 +88,7 @@
|
|||||||
"reload": "Перезагрузить",
|
"reload": "Перезагрузить",
|
||||||
"search": "Поиск",
|
"search": "Поиск",
|
||||||
"share": "Поделиться",
|
"share": "Поделиться",
|
||||||
"shortcuts": "Ярлыки",
|
"shortcuts": "Горячие клавиши",
|
||||||
"social_description": "Подписывайся на наши соц. сети и оставайся всегда в курсе последних новостей, обновлений и релизов.",
|
"social_description": "Подписывайся на наши соц. сети и оставайся всегда в курсе последних новостей, обновлений и релизов.",
|
||||||
"social_links": "Социальные сети",
|
"social_links": "Социальные сети",
|
||||||
"spotlight": "Прожектор",
|
"spotlight": "Прожектор",
|
||||||
@@ -96,17 +99,19 @@
|
|||||||
"type_a_command_search": "Введите команду или выполните поиск…",
|
"type_a_command_search": "Введите команду или выполните поиск…",
|
||||||
"we_use_cookies": "Мы используем куки",
|
"we_use_cookies": "Мы используем куки",
|
||||||
"whats_new": "Что нового?",
|
"whats_new": "Что нового?",
|
||||||
"wiki": "Вики"
|
"wiki": "Узнать больше"
|
||||||
},
|
},
|
||||||
"auth": {
|
"auth": {
|
||||||
"account_exists": "Учетная запись существует с разными учетными данными - войдите, чтобы связать обе учетные записи",
|
"account_exists": "Учетная запись существует с разными учетными данными - войдите, чтобы связать обе учетные записи",
|
||||||
"all_sign_in_options": "Все варианты входа",
|
"all_sign_in_options": "Все варианты входа",
|
||||||
|
"continue_with_auth_provider": "Continue with {provider}",
|
||||||
"continue_with_email": "Продолжить с электронной почтой",
|
"continue_with_email": "Продолжить с электронной почтой",
|
||||||
"continue_with_github": "Продолжить с GitHub",
|
"continue_with_github": "Продолжить с GitHub",
|
||||||
|
"continue_with_github_enterprise": "Continue with GitHub Enterprise",
|
||||||
"continue_with_google": "Продолжить с Google",
|
"continue_with_google": "Продолжить с Google",
|
||||||
"continue_with_microsoft": "Продолжить с Microsoft",
|
"continue_with_microsoft": "Продолжить с Microsoft",
|
||||||
"email": "Электронное письмо",
|
"email": "Электронное письмо",
|
||||||
"logged_out": "Вышли из",
|
"logged_out": "Успешно вышли. Будем скучать!",
|
||||||
"login": "Авторизоваться",
|
"login": "Авторизоваться",
|
||||||
"login_success": "Успешный вход в систему",
|
"login_success": "Успешный вход в систему",
|
||||||
"login_to_hoppscotch": "Войти в Hoppscotch",
|
"login_to_hoppscotch": "Войти в Hoppscotch",
|
||||||
@@ -121,7 +126,7 @@
|
|||||||
"generate_token": "Сгенерировать токен",
|
"generate_token": "Сгенерировать токен",
|
||||||
"graphql_headers": "Authorization Headers are sent as part of the payload to connection_init",
|
"graphql_headers": "Authorization Headers are sent as part of the payload to connection_init",
|
||||||
"include_in_url": "Добавить в URL",
|
"include_in_url": "Добавить в URL",
|
||||||
"inherited_from": "Inherited {auth} from parent collection {collection} ",
|
"inherited_from": "Унаследован тип аутентификации {auth} из родительской коллекции {collection}",
|
||||||
"learn": "Узнать больше",
|
"learn": "Узнать больше",
|
||||||
"oauth": {
|
"oauth": {
|
||||||
"redirect_auth_server_returned_error": "Auth Server returned an error state",
|
"redirect_auth_server_returned_error": "Auth Server returned an error state",
|
||||||
@@ -135,11 +140,32 @@
|
|||||||
"redirect_no_token_endpoint": "No Token Endpoint Defined",
|
"redirect_no_token_endpoint": "No Token Endpoint Defined",
|
||||||
"something_went_wrong_on_oauth_redirect": "Something went wrong during OAuth Redirect",
|
"something_went_wrong_on_oauth_redirect": "Something went wrong during OAuth Redirect",
|
||||||
"something_went_wrong_on_token_generation": "Something went wrong on token generation",
|
"something_went_wrong_on_token_generation": "Something went wrong on token generation",
|
||||||
"token_generation_oidc_discovery_failed": "Failure on token generation: OpenID Connect Discovery Failed"
|
"token_generation_oidc_discovery_failed": "Failure on token generation: OpenID Connect Discovery Failed",
|
||||||
|
"grant_type": "Grant Type",
|
||||||
|
"grant_type_auth_code": "Authorization Code",
|
||||||
|
"token_fetched_successfully": "Token fetched successfully",
|
||||||
|
"token_fetch_failed": "Failed to fetch token",
|
||||||
|
"validation_failed": "Validation Failed, please check the form fields",
|
||||||
|
"label_authorization_endpoint": "Authorization Endpoint",
|
||||||
|
"label_client_id": "Client ID",
|
||||||
|
"label_client_secret": "Client Secret",
|
||||||
|
"label_code_challenge": "Code Challenge",
|
||||||
|
"label_code_challenge_method": "Code Challenge Method",
|
||||||
|
"label_code_verifier": "Code Verifier",
|
||||||
|
"label_scopes": "Scopes",
|
||||||
|
"label_token_endpoint": "Token Endpoint",
|
||||||
|
"label_use_pkce": "Use PKCE",
|
||||||
|
"label_implicit": "Implicit",
|
||||||
|
"label_password": "Password",
|
||||||
|
"label_username": "Username",
|
||||||
|
"label_auth_code": "Authorization Code",
|
||||||
|
"label_client_credentials": "Client Credentials"
|
||||||
},
|
},
|
||||||
|
"pass_by_headers_label": "Headers",
|
||||||
|
"pass_by_query_params_label": "Query Parameters",
|
||||||
"pass_key_by": "Pass by",
|
"pass_key_by": "Pass by",
|
||||||
"password": "Пароль",
|
"password": "Пароль",
|
||||||
"save_to_inherit": "Please save this request in any collection to inherit the authorization",
|
"save_to_inherit": "Чтобы унаследовать аутентификации, нужно сохранить запрос в коллекции",
|
||||||
"token": "Токен",
|
"token": "Токен",
|
||||||
"type": "Метод авторизации",
|
"type": "Метод авторизации",
|
||||||
"username": "Имя пользователя"
|
"username": "Имя пользователя"
|
||||||
@@ -149,6 +175,7 @@
|
|||||||
"different_parent": "Нельзя сортировать коллекцию с разной родительской коллекцией",
|
"different_parent": "Нельзя сортировать коллекцию с разной родительской коллекцией",
|
||||||
"edit": "Редактировать коллекцию",
|
"edit": "Редактировать коллекцию",
|
||||||
"import_or_create": "Вы можете импортировать существующую или создать новую коллекцию",
|
"import_or_create": "Вы можете импортировать существующую или создать новую коллекцию",
|
||||||
|
"import_collection": "Импортировать коллекцию",
|
||||||
"invalid_name": "Укажите допустимое название коллекции",
|
"invalid_name": "Укажите допустимое название коллекции",
|
||||||
"invalid_root_move": "Коллекция уже в корне",
|
"invalid_root_move": "Коллекция уже в корне",
|
||||||
"moved": "Перемещено успешно",
|
"moved": "Перемещено успешно",
|
||||||
@@ -157,38 +184,36 @@
|
|||||||
"name_length_insufficient": "Имя коллекции должно иметь 3 или более символов",
|
"name_length_insufficient": "Имя коллекции должно иметь 3 или более символов",
|
||||||
"new": "Создать коллекцию",
|
"new": "Создать коллекцию",
|
||||||
"order_changed": "Порядок коллекции обновлён",
|
"order_changed": "Порядок коллекции обновлён",
|
||||||
"properties": "Collection Properties",
|
"properties": "Параметры коллекции",
|
||||||
"properties_updated": "Collection Properties Updated",
|
"properties_updated": "Параметры коллекции обновлены",
|
||||||
"renamed": "Коллекция переименована",
|
"renamed": "Коллекция переименована",
|
||||||
"request_in_use": "Запрос обрабатывается",
|
"request_in_use": "Запрос обрабатывается",
|
||||||
"save_as": "Сохранить как",
|
"save_as": "Сохранить как",
|
||||||
"save_to_collection": "Сохранить в коллекцию",
|
"save_to_collection": "Сохранить в коллекцию",
|
||||||
"select": "Выбрать коллекцию",
|
"select": "Выбрать коллекцию",
|
||||||
"select_location": "Выберите местоположение",
|
"select_location": "Выберите местоположение"
|
||||||
"select_team": "Выберите команду",
|
|
||||||
"team_collections": "Коллекции команд"
|
|
||||||
},
|
},
|
||||||
"confirm": {
|
"confirm": {
|
||||||
"close_unsaved_tab": "Вы уверены что хотите закрыть эту вкладку?",
|
"close_unsaved_tab": "Вы уверены, что хотите закрыть эту вкладку?",
|
||||||
"close_unsaved_tabs": "Вы уверены что хотите закрыть все эти вкладки? Несохранённые данные {count} вкладок будут утеряны.",
|
"close_unsaved_tabs": "Вы уверены, что хотите закрыть все эти вкладки? Несохранённые данные {count} вкладок будут утеряны.",
|
||||||
"exit_team": "Вы точно хотите покинуть эту команду?",
|
"exit_team": "Вы точно хотите покинуть эту команду?",
|
||||||
"logout": "Вы действительно хотите выйти?",
|
"logout": "Вы действительно хотите выйти?",
|
||||||
"remove_collection": "Вы уверены, что хотите навсегда удалить эту коллекцию?",
|
"remove_collection": "Вы уверены, что хотите навсегда удалить эту коллекцию?",
|
||||||
"remove_environment": "Вы действительно хотите удалить эту среду без возможности восстановления?",
|
"remove_environment": "Вы действительно хотите удалить это окружение без возможности восстановления?",
|
||||||
"remove_folder": "Вы уверены, что хотите навсегда удалить эту папку?",
|
"remove_folder": "Вы уверены, что хотите навсегда удалить эту папку?",
|
||||||
"remove_history": "Вы уверены, что хотите навсегда удалить всю историю?",
|
"remove_history": "Вы уверены, что хотите навсегда удалить всю историю?",
|
||||||
"remove_request": "Вы уверены, что хотите навсегда удалить этот запрос?",
|
"remove_request": "Вы уверены, что хотите навсегда удалить этот запрос?",
|
||||||
"remove_shared_request": "Are you sure you want to permanently delete this shared request?",
|
"remove_shared_request": "Вы уверены, что хотите навсегда удалить этот запрос?",
|
||||||
"remove_team": "Вы уверены, что хотите удалить эту команду?",
|
"remove_team": "Вы уверены, что хотите удалить эту команду?",
|
||||||
"remove_telemetry": "Вы действительно хотите отказаться от телеметрии?",
|
"remove_telemetry": "Вы действительно хотите отказаться от телеметрии?",
|
||||||
"request_change": "Вы уверены что хотите сбросить текущий запрос, все не сохранённые данные будт утеряны?",
|
"request_change": "Вы уверены, что хотите сбросить текущий запрос, все не сохранённые данные будт утеряны?",
|
||||||
"save_unsaved_tab": "Вы хотите сохранить изменения в этой вкладке?",
|
"save_unsaved_tab": "Вы хотите сохранить изменения в этой вкладке?",
|
||||||
"sync": "Вы уверены, что хотите синхронизировать это рабочее пространство?"
|
"sync": "Вы уверены, что хотите синхронизировать это рабочее пространство?"
|
||||||
},
|
},
|
||||||
"context_menu": {
|
"context_menu": {
|
||||||
"add_parameters": "Add to parameters",
|
"add_parameters": "Добавить в список параметров",
|
||||||
"open_request_in_new_tab": "Open request in new tab",
|
"open_request_in_new_tab": "Открыть запрос в новом окне",
|
||||||
"set_environment_variable": "Set as variable"
|
"set_environment_variable": "Добавить значение в переменную"
|
||||||
},
|
},
|
||||||
"cookies": {
|
"cookies": {
|
||||||
"modal": {
|
"modal": {
|
||||||
@@ -227,24 +252,25 @@
|
|||||||
"collections": "Коллекции пустые",
|
"collections": "Коллекции пустые",
|
||||||
"documentation": "Подключите GraphQL endpoint, чтобы увидеть документацию.",
|
"documentation": "Подключите GraphQL endpoint, чтобы увидеть документацию.",
|
||||||
"endpoint": "Endpoint не может быть пустым",
|
"endpoint": "Endpoint не может быть пустым",
|
||||||
"environments": "Окружения пусты",
|
"environments": "Переменных окружения нет",
|
||||||
"folder": "Папка пуста",
|
"folder": "Папка пуста",
|
||||||
"headers": "У этого запроса нет заголовков",
|
"headers": "У этого запроса нет заголовков",
|
||||||
"history": "История пуста",
|
"history": "История пуста",
|
||||||
"invites": "Вы еще никого не приглашали",
|
"invites": "Вы еще никого не приглашали",
|
||||||
"members": "В этой команде еще нет участников",
|
"members": "В этой команде еще нет участников",
|
||||||
"parameters": "Этот запрос не имеет параметров",
|
"parameters": "Этот запрос не содержит параметров",
|
||||||
"pending_invites": "Пока что нет ожидающих заявок на вступление в команду",
|
"pending_invites": "Пока что нет ожидающих заявок на вступление в команду",
|
||||||
"profile": "Войдите, чтобы просмотреть свой профиль",
|
"profile": "Войдите, чтобы просмотреть свой профиль",
|
||||||
"protocols": "Протоколы пустые",
|
"protocols": "Протоколы пустые",
|
||||||
|
"request_variables": "Этот запрос не содержит никаких переменных",
|
||||||
|
"secret_environments": "Секреты хранятся только на этом устройстве и не синхронизируются с сервером",
|
||||||
"schema": "Подключиться к конечной точке GraphQL",
|
"schema": "Подключиться к конечной точке GraphQL",
|
||||||
"shared_requests": "Shared requests are empty",
|
"shared_requests": "Вы еще не делились запросами с другими",
|
||||||
"shared_requests_logout": "Login to view your shared requests or create a new one",
|
"shared_requests_logout": "Нужно войти, чтобы делиться запросами и управлять ими",
|
||||||
"subscription": "Нет подписок",
|
"subscription": "Нет подписок",
|
||||||
"team_name": "Название команды пусто",
|
"team_name": "Название команды пусто",
|
||||||
"teams": "Команды пустые",
|
"teams": "Команды пустые",
|
||||||
"tests": "Для этого запроса нет тестов",
|
"tests": "Для этого запроса нет тестов"
|
||||||
"shortcodes": "Нет коротких ссылок"
|
|
||||||
},
|
},
|
||||||
"environment": {
|
"environment": {
|
||||||
"add_to_global": "Добавить в глобальное окружение",
|
"add_to_global": "Добавить в глобальное окружение",
|
||||||
@@ -252,53 +278,57 @@
|
|||||||
"create_new": "Создать новое окружение",
|
"create_new": "Создать новое окружение",
|
||||||
"created": "Окружение создано",
|
"created": "Окружение создано",
|
||||||
"deleted": "Окружение удалено",
|
"deleted": "Окружение удалено",
|
||||||
"duplicated": "Environment duplicated",
|
"duplicated": "Окружение продублировано",
|
||||||
"edit": "Редактировать окружение",
|
"edit": "Редактировать окружение",
|
||||||
"empty_variables": "No variables",
|
"empty_variables": "Переменные еще не добавлены",
|
||||||
"global": "Global",
|
"global": "Global",
|
||||||
"global_variables": "Global variables",
|
"global_variables": "Глобальные переменные",
|
||||||
"import_or_create": "Импортировать или создать новое окружение",
|
"import_or_create": "Импортировать или создать новое окружение",
|
||||||
"invalid_name": "Укажите допустимое имя для окружения",
|
"invalid_name": "Укажите допустимое имя для окружения",
|
||||||
"list": "Переменные окружения",
|
"list": "Переменные окружения",
|
||||||
"my_environments": "Мои окружения",
|
"my_environments": "Мои окружения",
|
||||||
"name": "Name",
|
"name": "Имя",
|
||||||
"nested_overflow": "максимальный уровень вложения переменных окружения - 10",
|
"nested_overflow": "максимальный уровень вложения переменных окружения - 10",
|
||||||
"new": "Новая среда",
|
"new": "Новая среда",
|
||||||
"no_active_environment": "Нет активных окружений",
|
"no_active_environment": "Нет активных окружений",
|
||||||
"no_environment": "Нет окружения",
|
"no_environment": "Нет окружения",
|
||||||
"no_environment_description": "Не выбрано окружение, выберите что делать с переменными.",
|
"no_environment_description": "Не выбрано окружение, выберите что делать с переменными.",
|
||||||
"quick_peek": "Environment Quick Peek",
|
"quick_peek": "Быстрый просмотр переменных",
|
||||||
"replace_with_variable": "Replace with variable",
|
"replace_with_variable": "Replace with variable",
|
||||||
"scope": "Scope",
|
"scope": "Scope",
|
||||||
|
"secrets": "Секретные переменные",
|
||||||
|
"secret_value": "Секретное значение",
|
||||||
"select": "Выберите среду",
|
"select": "Выберите среду",
|
||||||
"set": "Set environment",
|
"set": "Выбрать окружение",
|
||||||
"set_as_environment": "Set as environment",
|
"set_as_environment": "Поместить значение в переменную",
|
||||||
"team_environments": "Окружения команды",
|
"team_environments": "Окружения команды",
|
||||||
"title": "Окружения",
|
"title": "Окружения",
|
||||||
"updated": "Окружение обновлено",
|
"updated": "Окружение обновлено",
|
||||||
"value": "Value",
|
"value": "Значение",
|
||||||
"variable": "Variable",
|
"variable": "Переменная",
|
||||||
|
"variables": "Переменные",
|
||||||
"variable_list": "Список переменных"
|
"variable_list": "Список переменных"
|
||||||
},
|
},
|
||||||
"error": {
|
"error": {
|
||||||
"authproviders_load_error": "Unable to load auth providers",
|
"authproviders_load_error": "Unable to load auth providers",
|
||||||
"browser_support_sse": "Похоже, в этом браузере нет поддержки событий, отправленных сервером.",
|
"browser_support_sse": "Похоже, в этом браузере нет поддержки событий, отправленных сервером.",
|
||||||
"check_console_details": "Подробности смотрите в журнале консоли.",
|
"check_console_details": "Подробности смотрите в журнале консоли.",
|
||||||
"check_how_to_add_origin": "Инструкция как добавить origin в настройки расширения",
|
"check_how_to_add_origin": "Инструкция как это сделать",
|
||||||
"curl_invalid_format": "cURL неправильно отформатирован",
|
"curl_invalid_format": "cURL неправильно отформатирован",
|
||||||
"danger_zone": "Опасная зона",
|
"danger_zone": "Опасная зона",
|
||||||
"delete_account": "Вы являетесь владельцем этой команды:",
|
"delete_account": "Вы являетесь владельцем этой команды:",
|
||||||
"delete_account_description": "Прежде чем удалить аккаунт вам необходимо либо назначить владельцом другого пользователя, либо удалить команды в которых вы являетесь владельцем.",
|
"delete_account_description": "Прежде чем удалить аккаунт вам необходимо либо назначить владельцом другого пользователя, либо удалить команды в которых вы являетесь владельцем.",
|
||||||
|
"empty_profile_name": "Имя пользователя не может быть пустым",
|
||||||
"empty_req_name": "Пустое имя запроса",
|
"empty_req_name": "Пустое имя запроса",
|
||||||
"f12_details": "(F12 для подробностей)",
|
"f12_details": "(F12 для подробностей)",
|
||||||
"gql_prettify_invalid_query": "Не удалось определить недопустимый запрос, устранить синтаксические ошибки запроса и повторить попытку.",
|
"gql_prettify_invalid_query": "Не удалось отформатировать, т.к. в запросе есть синтаксические ошибки. Устраните их и повторите попытку.",
|
||||||
"incomplete_config_urls": "Не заполнены URL конфигурации",
|
"incomplete_config_urls": "Не заполнены URL конфигурации",
|
||||||
"incorrect_email": "Не корректный Email",
|
"incorrect_email": "Не корректный Email",
|
||||||
"invalid_link": "Не корректная ссылка",
|
"invalid_link": "Не корректная ссылка",
|
||||||
"invalid_link_description": "Ссылка, по которой вы перешли, - недействительна, либо срок ее действия истек.",
|
"invalid_link_description": "Ссылка, по которой вы перешли, - недействительна, либо срок ее действия истек.",
|
||||||
"invalid_embed_link": "The embed does not exist or is invalid.",
|
"invalid_embed_link": "The embed does not exist or is invalid.",
|
||||||
"json_parsing_failed": "Не корректный JSON",
|
"json_parsing_failed": "Не корректный JSON",
|
||||||
"json_prettify_invalid_body": "Не удалось определить недопустимое тело, устранить синтаксические ошибки json и повторить попытку.",
|
"json_prettify_invalid_body": "Не удалось определить формат строки, устраните синтаксические ошибки и повторите попытку.",
|
||||||
"network_error": "Похоже, возникла проблема с соединением. Попробуйте еще раз.",
|
"network_error": "Похоже, возникла проблема с соединением. Попробуйте еще раз.",
|
||||||
"network_fail": "Не удалось отправить запрос",
|
"network_fail": "Не удалось отправить запрос",
|
||||||
"no_collections_to_export": "Нечего экспортировать. Для начала нужно создать коллекцию.",
|
"no_collections_to_export": "Нечего экспортировать. Для начала нужно создать коллекцию.",
|
||||||
@@ -306,8 +336,10 @@
|
|||||||
"no_environments_to_export": "Нечего экспортировать. Для начала нужно создать переменные окружения.",
|
"no_environments_to_export": "Нечего экспортировать. Для начала нужно создать переменные окружения.",
|
||||||
"no_results_found": "Совпадения не найдены",
|
"no_results_found": "Совпадения не найдены",
|
||||||
"page_not_found": "Эта страница не найдена",
|
"page_not_found": "Эта страница не найдена",
|
||||||
"please_install_extension": "Нужно установить специальное расширение и добавить этот домен как новый origin в настройках расширения.",
|
"please_install_extension": "Ничего страшного. Просто нужно установить специальное расширение в браузере.",
|
||||||
"proxy_error": "Proxy error",
|
"proxy_error": "Proxy error",
|
||||||
|
"reading_files": "Произошла ошибка при чтении файла или нескольких файлов",
|
||||||
|
"same_profile_name": "Задано имя пользователя такое же как и было",
|
||||||
"script_fail": "Не удалось выполнить сценарий предварительного запроса",
|
"script_fail": "Не удалось выполнить сценарий предварительного запроса",
|
||||||
"something_went_wrong": "Что-то пошло не так",
|
"something_went_wrong": "Что-то пошло не так",
|
||||||
"test_script_fail": "Не удалось выполнить тестирование запроса"
|
"test_script_fail": "Не удалось выполнить тестирование запроса"
|
||||||
@@ -315,13 +347,12 @@
|
|||||||
"export": {
|
"export": {
|
||||||
"as_json": "Экспорт как JSON",
|
"as_json": "Экспорт как JSON",
|
||||||
"create_secret_gist": "Создать секретный Gist",
|
"create_secret_gist": "Создать секретный Gist",
|
||||||
"create_secret_gist_tooltip_text": "Export as secret Gist",
|
"create_secret_gist_tooltip_text": "Экспортировать как секретный Gist",
|
||||||
"failed": "Something went wrong while exporting",
|
"failed": "Произошла ошибка во время экспорта",
|
||||||
"secret_gist_success": "Successfully exported as secret Gist",
|
"secret_gist_success": "Успешно экспортировано как секретный Gist",
|
||||||
"require_github": "Войдите через GitHub, чтобы создать секретную суть",
|
"require_github": "Войдите через GitHub, чтобы создать секретную суть",
|
||||||
"title": "Экспорт",
|
"title": "Экспорт",
|
||||||
"success": "Successfully exported",
|
"success": "Успешно экспортировано"
|
||||||
"gist_created": "Gist создан"
|
|
||||||
},
|
},
|
||||||
"filter": {
|
"filter": {
|
||||||
"all": "Все",
|
"all": "Все",
|
||||||
@@ -346,7 +377,7 @@
|
|||||||
"switch_connection": "Изменить соединение"
|
"switch_connection": "Изменить соединение"
|
||||||
},
|
},
|
||||||
"graphql_collections": {
|
"graphql_collections": {
|
||||||
"title": "GraphQL Collections"
|
"title": "Коллекции GraphQL"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"time": "Время",
|
"time": "Время",
|
||||||
@@ -359,8 +390,8 @@
|
|||||||
},
|
},
|
||||||
"helpers": {
|
"helpers": {
|
||||||
"authorization": "Заголовок авторизации будет автоматически сгенерирован при отправке запроса.",
|
"authorization": "Заголовок авторизации будет автоматически сгенерирован при отправке запроса.",
|
||||||
"collection_properties_authorization": " This authorization will be set for every request in this collection.",
|
"collection_properties_authorization": "Этот заголовок авторизации будет подставляться при каждом запросе в этой коллекции.",
|
||||||
"collection_properties_header": "This header will be set for every request in this collection.",
|
"collection_properties_header": "Этот заголовок будет подставляться при каждом запросе в этой коллекции.",
|
||||||
"generate_documentation_first": "Сначала создайте документацию",
|
"generate_documentation_first": "Сначала создайте документацию",
|
||||||
"network_fail": "Невозможно достичь конечной точки API. Проверьте подключение к сети и попробуйте еще раз.",
|
"network_fail": "Невозможно достичь конечной точки API. Проверьте подключение к сети и попробуйте еще раз.",
|
||||||
"offline": "Кажется, вы не в сети. Данные в этой рабочей области могут быть устаревшими.",
|
"offline": "Кажется, вы не в сети. Данные в этой рабочей области могут быть устаревшими.",
|
||||||
@@ -380,10 +411,12 @@
|
|||||||
"import": {
|
"import": {
|
||||||
"collections": "Импортировать коллекции",
|
"collections": "Импортировать коллекции",
|
||||||
"curl": "Импортировать из cURL",
|
"curl": "Импортировать из cURL",
|
||||||
"environments_from_gist": "Import From Gist",
|
"environments_from_gist": "Импортировать из Gist",
|
||||||
"environments_from_gist_description": "Import Hoppscotch Environments From Gist",
|
"environments_from_gist_description": "Импортировать переменные окружения Hoppscotch из Gist",
|
||||||
"failed": "Ошибка импорта",
|
"failed": "Ошибка импорта",
|
||||||
"from_file": "Import from File",
|
"file_size_limit_exceeded_warning_multiple_files": "Выбранные файлы превышают рекомендованный лимит в 10MB. Были импортированы только первые {files}",
|
||||||
|
"file_size_limit_exceeded_warning_single_file": "Размер выбранного в данный момент файла превышает рекомендуемый лимит в 10 МБ. Пожалуйста, выберите другой файл.",
|
||||||
|
"from_file": "Импортировать из одного или нескольких файлов",
|
||||||
"from_gist": "Импорт из Gist",
|
"from_gist": "Импорт из Gist",
|
||||||
"from_gist_description": "Импортировать через Gist URL",
|
"from_gist_description": "Импортировать через Gist URL",
|
||||||
"from_insomnia": "Импортировать с Insomnia",
|
"from_insomnia": "Импортировать с Insomnia",
|
||||||
@@ -398,9 +431,9 @@
|
|||||||
"from_postman_description": "Импортировать из коллекции Postman",
|
"from_postman_description": "Импортировать из коллекции Postman",
|
||||||
"from_url": "Импортировать из URL",
|
"from_url": "Импортировать из URL",
|
||||||
"gist_url": "Введите URL-адрес Gist",
|
"gist_url": "Введите URL-адрес Gist",
|
||||||
"gql_collections_from_gist_description": "Import GraphQL Collections From Gist",
|
"gql_collections_from_gist_description": "Импортировать GraphQL коллекцию из Gist",
|
||||||
"hoppscotch_environment": "Hoppscotch Environment",
|
"hoppscotch_environment": "Hoppscotch Environment",
|
||||||
"hoppscotch_environment_description": "Import Hoppscotch Environment JSON file",
|
"hoppscotch_environment_description": "Импортировать окружение Hoppscotch из JSON файла",
|
||||||
"import_from_url_invalid_fetch": "Не удалить получить данные по этому URL",
|
"import_from_url_invalid_fetch": "Не удалить получить данные по этому URL",
|
||||||
"import_from_url_invalid_file_format": "Ошибка при импорте коллекций",
|
"import_from_url_invalid_file_format": "Ошибка при импорте коллекций",
|
||||||
"import_from_url_invalid_type": "Неподдерживаемый тип. Поддерживаемые типы: 'hoppscotch', 'openapi', 'postman', 'insomnia'",
|
"import_from_url_invalid_type": "Неподдерживаемый тип. Поддерживаемые типы: 'hoppscotch', 'openapi', 'postman', 'insomnia'",
|
||||||
@@ -409,16 +442,19 @@
|
|||||||
"json_description": "Импортировать из коллекции Hoppscotch",
|
"json_description": "Импортировать из коллекции Hoppscotch",
|
||||||
"postman_environment": "Postman Environment",
|
"postman_environment": "Postman Environment",
|
||||||
"postman_environment_description": "Import Postman Environment from a JSON file",
|
"postman_environment_description": "Import Postman Environment from a JSON file",
|
||||||
|
"success": "Успешно импортировано",
|
||||||
"title": "Импортировать"
|
"title": "Импортировать"
|
||||||
},
|
},
|
||||||
"inspections": {
|
"inspections": {
|
||||||
"description": "Inspect possible errors",
|
"description": "Показать возможные ошибки",
|
||||||
"environment": {
|
"environment": {
|
||||||
"add_environment": "Add to Environment",
|
"add_environment": "Добавить переменную",
|
||||||
"not_found": "Environment variable “{environment}” not found."
|
"add_environment_value": "Заполнить значение",
|
||||||
|
"empty_value": "Значение переменной окружения '{variable}' пустое",
|
||||||
|
"not_found": "Переменная окружения “{environment}” не задана."
|
||||||
},
|
},
|
||||||
"header": {
|
"header": {
|
||||||
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
|
"cookie": "Из-за ограничений безопасности в веб версии нельзя задать Cookie параметры. Пожалуйста, используйте Hoppscotch Desktop приложение или используйте заголовок Authorization вместо этого."
|
||||||
},
|
},
|
||||||
"response": {
|
"response": {
|
||||||
"401_error": "Please check your authentication credentials.",
|
"401_error": "Please check your authentication credentials.",
|
||||||
@@ -427,12 +463,12 @@
|
|||||||
"default_error": "Please check your request.",
|
"default_error": "Please check your request.",
|
||||||
"network_error": "Please check your network connection."
|
"network_error": "Please check your network connection."
|
||||||
},
|
},
|
||||||
"title": "Inspector",
|
"title": "Помощник",
|
||||||
"url": {
|
"url": {
|
||||||
"extension_not_installed": "Extension not installed.",
|
"extension_not_installed": "Расширение не установлено.",
|
||||||
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
|
"extension_unknown_origin": "Убедитесь, что текущий домен добавлен в список доверенных ресурсов в расширении браузера",
|
||||||
"extention_enable_action": "Enable Browser Extension",
|
"extention_enable_action": "Подключить расширение",
|
||||||
"extention_not_enabled": "Extension not enabled."
|
"extention_not_enabled": "Расширение в браузере не подключено."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"layout": {
|
"layout": {
|
||||||
@@ -445,11 +481,11 @@
|
|||||||
"modal": {
|
"modal": {
|
||||||
"close_unsaved_tab": "У вас есть не сохранённые изменения",
|
"close_unsaved_tab": "У вас есть не сохранённые изменения",
|
||||||
"collections": "Коллекции",
|
"collections": "Коллекции",
|
||||||
"confirm": "Подтверждать",
|
"confirm": "Подтвердите действие",
|
||||||
"customize_request": "Customize Request",
|
"customize_request": "Customize Request",
|
||||||
"edit_request": "Изменить запрос",
|
"edit_request": "Изменить запрос",
|
||||||
"import_export": "Импорт Экспорт",
|
"import_export": "Импорт Экспорт",
|
||||||
"share_request": "Share Request"
|
"share_request": "Поделиться запросом"
|
||||||
},
|
},
|
||||||
"mqtt": {
|
"mqtt": {
|
||||||
"already_subscribed": "Вы уже подписаны на этот топик",
|
"already_subscribed": "Вы уже подписаны на этот топик",
|
||||||
@@ -485,7 +521,7 @@
|
|||||||
"doc": "Документы",
|
"doc": "Документы",
|
||||||
"graphql": "GraphQL",
|
"graphql": "GraphQL",
|
||||||
"profile": "Профиль",
|
"profile": "Профиль",
|
||||||
"realtime": "В реальном времени",
|
"realtime": "Realtime",
|
||||||
"rest": "REST",
|
"rest": "REST",
|
||||||
"settings": "Настройки"
|
"settings": "Настройки"
|
||||||
},
|
},
|
||||||
@@ -507,8 +543,8 @@
|
|||||||
"roles": "Роли",
|
"roles": "Роли",
|
||||||
"roles_description": "Роли позволяют настраивать доступ конкретным людям к публичным коллекциям.",
|
"roles_description": "Роли позволяют настраивать доступ конкретным людям к публичным коллекциям.",
|
||||||
"updated": "Профиль обновлен",
|
"updated": "Профиль обновлен",
|
||||||
"viewer": "Зритель",
|
"viewer": "Читатель",
|
||||||
"viewer_description": "Зрительно могут только просматривать и использовать запросы."
|
"viewer_description": "Могут только просматривать и использовать запросы."
|
||||||
},
|
},
|
||||||
"remove": {
|
"remove": {
|
||||||
"star": "Удалить звезду"
|
"star": "Удалить звезду"
|
||||||
@@ -530,11 +566,11 @@
|
|||||||
"enter_curl": "Введите сюда команду cURL",
|
"enter_curl": "Введите сюда команду cURL",
|
||||||
"generate_code": "Сгенерировать код",
|
"generate_code": "Сгенерировать код",
|
||||||
"generated_code": "Сгенерированный код",
|
"generated_code": "Сгенерированный код",
|
||||||
"go_to_authorization_tab": "Go to Authorization",
|
"go_to_authorization_tab": "Перейти на вкладку авторизации",
|
||||||
"go_to_body_tab": "Go to Body tab",
|
"go_to_body_tab": "Перейти на вкладку тела запроса",
|
||||||
"header_list": "Список заголовков",
|
"header_list": "Список заголовков",
|
||||||
"invalid_name": "Укажите имя для запроса",
|
"invalid_name": "Укажите имя для запроса",
|
||||||
"method": "Методика",
|
"method": "Метод",
|
||||||
"moved": "Запрос перемещён",
|
"moved": "Запрос перемещён",
|
||||||
"name": "Имя запроса",
|
"name": "Имя запроса",
|
||||||
"new": "Новый запрос",
|
"new": "Новый запрос",
|
||||||
@@ -548,22 +584,22 @@
|
|||||||
"payload": "Полезная нагрузка",
|
"payload": "Полезная нагрузка",
|
||||||
"query": "Запрос",
|
"query": "Запрос",
|
||||||
"raw_body": "Необработанное тело запроса",
|
"raw_body": "Необработанное тело запроса",
|
||||||
"rename": "Переименость запрос",
|
"rename": "Переименовать запрос",
|
||||||
"renamed": "Запрос переименован",
|
"renamed": "Запрос переименован",
|
||||||
|
"request_variables": "Переменные запроса",
|
||||||
"run": "Запустить",
|
"run": "Запустить",
|
||||||
"save": "Сохранить",
|
"save": "Сохранить",
|
||||||
"save_as": "Сохранить как",
|
"save_as": "Сохранить как",
|
||||||
"saved": "Запрос сохранен",
|
"saved": "Запрос сохранен",
|
||||||
"share": "Делиться",
|
"share": "Поделиться",
|
||||||
"share_description": "Поделиться Hoppscotch с друзьями",
|
"share_description": "Поделиться Hoppscotch с друзьями",
|
||||||
"share_request": "Share Request",
|
"share_request": "Поделиться запросом",
|
||||||
"stop": "Stop",
|
"stop": "Стоп",
|
||||||
"title": "Запрос",
|
"title": "Запрос",
|
||||||
"type": "Тип запроса",
|
"type": "Тип запроса",
|
||||||
"url": "URL",
|
"url": "URL",
|
||||||
"variables": "Переменные",
|
"variables": "Переменные",
|
||||||
"view_my_links": "Посмотреть мои ссылки",
|
"view_my_links": "Посмотреть мои ссылки"
|
||||||
"copy_link": "Копировать ссылку"
|
|
||||||
},
|
},
|
||||||
"response": {
|
"response": {
|
||||||
"audio": "Аудио",
|
"audio": "Аудио",
|
||||||
@@ -586,7 +622,7 @@
|
|||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
"accent_color": "Основной цвет",
|
"accent_color": "Основной цвет",
|
||||||
"account": "Счет",
|
"account": "Аккаунт",
|
||||||
"account_deleted": "Ваш аккаунт был удалён",
|
"account_deleted": "Ваш аккаунт был удалён",
|
||||||
"account_description": "Настройте параметры своей учетной записи.",
|
"account_description": "Настройте параметры своей учетной записи.",
|
||||||
"account_email_description": "Ваш основной адрес электронной почты.",
|
"account_email_description": "Ваш основной адрес электронной почты.",
|
||||||
@@ -639,29 +675,29 @@
|
|||||||
"verify_email": "Подтвердить Email"
|
"verify_email": "Подтвердить Email"
|
||||||
},
|
},
|
||||||
"shared_requests": {
|
"shared_requests": {
|
||||||
"button": "Button",
|
"button": "Кнопка",
|
||||||
"button_info": "Create a 'Run in Hoppscotch' button for your website, blog or a README.",
|
"button_info": "Создать кнопку 'Run in Hoppscotch' на свой сайт, блог или README.",
|
||||||
"copy_html": "Copy HTML",
|
"copy_html": "Копировать HTML код",
|
||||||
"copy_link": "Copy Link",
|
"copy_link": "Копировать ссылку",
|
||||||
"copy_markdown": "Copy Markdown",
|
"copy_markdown": "Копировать Markdown",
|
||||||
"creating_widget": "Creating widget",
|
"creating_widget": "Создание виджет",
|
||||||
"customize": "Customize",
|
"customize": "Настроить",
|
||||||
"deleted": "Shared request deleted",
|
"deleted": "Запрос удален",
|
||||||
"description": "Select a widget, you can change and customize this later",
|
"description": "Выберите вид как вы поделитесь запросом, позже вы сможете дополнительно его настроить",
|
||||||
"embed": "Embed",
|
"embed": "Встраиваемое окно",
|
||||||
"embed_info": "Add a mini 'Hoppscotch API Playground' to your website, blog or documentation.",
|
"embed_info": "Добавьте небольшую площадку 'Hoppscotch API Playground' на свой веб-сайт, блог или документацию.",
|
||||||
"link": "Link",
|
"link": "Ссылка",
|
||||||
"link_info": "Create a shareable link to share with anyone on the internet with view access.",
|
"link_info": "Создайте общедоступную ссылку, которой можно поделиться с любым пользователем, имеющим доступ к просмотру.",
|
||||||
"modified": "Shared request modified",
|
"modified": "Запрос изменен",
|
||||||
"not_found": "Shared request not found",
|
"not_found": "Такой ссылке не нашлось",
|
||||||
"open_new_tab": "Open in new tab",
|
"open_new_tab": "Открыть в новом окне",
|
||||||
"preview": "Preview",
|
"preview": "Preview",
|
||||||
"run_in_hoppscotch": "Run in Hoppscotch",
|
"run_in_hoppscotch": "Run in Hoppscotch",
|
||||||
"theme": {
|
"theme": {
|
||||||
"dark": "Dark",
|
"dark": "Темная",
|
||||||
"light": "Light",
|
"light": "Светлая",
|
||||||
"system": "System",
|
"system": "Системная",
|
||||||
"title": "Theme"
|
"title": "Тема"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"shortcut": {
|
"shortcut": {
|
||||||
@@ -669,7 +705,7 @@
|
|||||||
"close_current_menu": "Закрыть текущее меню",
|
"close_current_menu": "Закрыть текущее меню",
|
||||||
"command_menu": "Меню поиска и команд",
|
"command_menu": "Меню поиска и команд",
|
||||||
"help_menu": "Меню помощи",
|
"help_menu": "Меню помощи",
|
||||||
"show_all": "Горячие клавиши",
|
"show_all": "Список горячих клавиш",
|
||||||
"title": "Общий"
|
"title": "Общий"
|
||||||
},
|
},
|
||||||
"miscellaneous": {
|
"miscellaneous": {
|
||||||
@@ -696,20 +732,19 @@
|
|||||||
"get_method": "Выберите метод GET",
|
"get_method": "Выберите метод GET",
|
||||||
"head_method": "Выберите метод HEAD",
|
"head_method": "Выберите метод HEAD",
|
||||||
"import_curl": "Импортировать из cURL",
|
"import_curl": "Импортировать из cURL",
|
||||||
"method": "Методика",
|
"method": "Метод",
|
||||||
"next_method": "Выберите следующий метод",
|
"next_method": "Выберите следующий метод",
|
||||||
"post_method": "Выберите метод POST",
|
"post_method": "Выберите метод POST",
|
||||||
"previous_method": "Выбрать предыдущий метод",
|
"previous_method": "Выбрать предыдущий метод",
|
||||||
"put_method": "Выберите метод PUT",
|
"put_method": "Выберите метод PUT",
|
||||||
"rename": "Переименовать запрос",
|
"rename": "Переименовать запрос",
|
||||||
"reset_request": "Сбросить запрос",
|
"reset_request": "Сбросить запрос",
|
||||||
"save_request": "Сохарнить запрос",
|
"save_request": "Сохранить запрос",
|
||||||
"save_to_collections": "Сохранить в коллекции",
|
"save_to_collections": "Сохранить в коллекции",
|
||||||
"send_request": "Послать запрос",
|
"send_request": "Послать запрос",
|
||||||
"share_request": "Share Request",
|
"share_request": "Поделиться запросом",
|
||||||
"show_code": "Generate code snippet",
|
"show_code": "Сгенерировать фрагмент кода из запроса",
|
||||||
"title": "Запрос",
|
"title": "Запрос"
|
||||||
"copy_request_link": "Копировать ссылку на запрос"
|
|
||||||
},
|
},
|
||||||
"response": {
|
"response": {
|
||||||
"copy": "Копировать запрос в буфер обмена",
|
"copy": "Копировать запрос в буфер обмена",
|
||||||
@@ -717,11 +752,11 @@
|
|||||||
"title": "Запрос"
|
"title": "Запрос"
|
||||||
},
|
},
|
||||||
"theme": {
|
"theme": {
|
||||||
"black": "Черный режим",
|
"black": "Переключить на черный режим",
|
||||||
"dark": "Тёмный режим",
|
"dark": "Переключить на тёмный режим",
|
||||||
"light": "Светлый режим",
|
"light": "Переключить на светлый режим",
|
||||||
"system": "Определяется системой",
|
"system": "Переключить на тему, исходя из настроек системы",
|
||||||
"title": "Тема"
|
"title": "Внешний вид"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"show": {
|
"show": {
|
||||||
@@ -730,6 +765,11 @@
|
|||||||
"more": "Показать больше",
|
"more": "Показать больше",
|
||||||
"sidebar": "Показать боковую панель"
|
"sidebar": "Показать боковую панель"
|
||||||
},
|
},
|
||||||
|
"site_protection": {
|
||||||
|
"error_fetching_site_protection_status": "Something Went Wrong While Fetching Site Protection Status",
|
||||||
|
"login_to_continue": "Login to continue",
|
||||||
|
"login_to_continue_description": "You need to be logged in to access this Hoppscotch Enterprise Instance."
|
||||||
|
},
|
||||||
"socketio": {
|
"socketio": {
|
||||||
"communication": "Коммуникация",
|
"communication": "Коммуникация",
|
||||||
"connection_not_authorized": "Это SocketIO соединение не использует какую-либо авторизацию.",
|
"connection_not_authorized": "Это SocketIO соединение не использует какую-либо авторизацию.",
|
||||||
@@ -739,82 +779,89 @@
|
|||||||
"url": "URL"
|
"url": "URL"
|
||||||
},
|
},
|
||||||
"spotlight": {
|
"spotlight": {
|
||||||
"change_language": "Change Language",
|
"change_language": "Изменить язык",
|
||||||
"environments": {
|
"environments": {
|
||||||
"delete": "Delete current environment",
|
"delete": "Удалить текущее окружение",
|
||||||
"duplicate": "Duplicate current environment",
|
"duplicate": "Дублировать текущее окружение",
|
||||||
"duplicate_global": "Duplicate global environment",
|
"duplicate_global": "Дублировать глобальное окружение",
|
||||||
"edit": "Edit current environment",
|
"edit": "Редактировать текущее окружение",
|
||||||
"edit_global": "Edit global environment",
|
"edit_global": "Редактировать глобальное окружение",
|
||||||
"new": "Create new environment",
|
"new": "Создать новое окружение",
|
||||||
"new_variable": "Create a new environment variable",
|
"new_variable": "Создать новую переменную окружения",
|
||||||
"title": "Environments"
|
"title": "Окружение"
|
||||||
},
|
},
|
||||||
"general": {
|
"general": {
|
||||||
"chat": "Chat with support",
|
"chat": "Чат с поддержкой",
|
||||||
"help_menu": "Help and support",
|
"help_menu": "Помощь",
|
||||||
"open_docs": "Read Documentation",
|
"open_docs": "Почитать документацию",
|
||||||
"open_github": "Open GitHub repository",
|
"open_github": "Открыть GitHub репозиторий",
|
||||||
"open_keybindings": "Keyboard shortcuts",
|
"open_keybindings": "Горячие клавиши",
|
||||||
"social": "Social",
|
"social": "Соц. сети",
|
||||||
"title": "General"
|
"title": "Общее"
|
||||||
},
|
},
|
||||||
"graphql": {
|
"graphql": {
|
||||||
"connect": "Connect to server",
|
"connect": "Подключиться к серверу",
|
||||||
"disconnect": "Disconnect from server"
|
"disconnect": "Отключиться от сервера"
|
||||||
},
|
},
|
||||||
"miscellaneous": {
|
"miscellaneous": {
|
||||||
"invite": "Invite your friends to Hoppscotch",
|
"invite": "Пригласить друзей в Hoppscotch",
|
||||||
"title": "Miscellaneous"
|
"title": "Другое"
|
||||||
|
},
|
||||||
|
"phrases": {
|
||||||
|
"create_environment": "Создать окружение",
|
||||||
|
"create_workspace": "Создать пространство",
|
||||||
|
"import_collections": "Импортировать коллекцию",
|
||||||
|
"share_request": "Поделиться запросом",
|
||||||
|
"try": "Попробовать"
|
||||||
},
|
},
|
||||||
"request": {
|
"request": {
|
||||||
"save_as_new": "Save as new request",
|
"save_as_new": "Сохранить как новый запрос",
|
||||||
"select_method": "Select method",
|
"select_method": "Выбрать метод",
|
||||||
"switch_to": "Switch to",
|
"switch_to": "Переключиться",
|
||||||
"tab_authorization": "Authorization tab",
|
"tab_authorization": "На вкладку авторизации",
|
||||||
"tab_body": "Body tab",
|
"tab_body": "На вкладку тела запроса",
|
||||||
"tab_headers": "Headers tab",
|
"tab_headers": "На вкладку заголовков",
|
||||||
"tab_parameters": "Parameters tab",
|
"tab_parameters": "На вкладку параметров",
|
||||||
"tab_pre_request_script": "Pre-request script tab",
|
"tab_pre_request_script": "На вкладку пред-скрипта запроса",
|
||||||
"tab_query": "Query tab",
|
"tab_query": "На вкладку запроса",
|
||||||
"tab_tests": "Tests tab",
|
"tab_tests": "На вкладку тестов",
|
||||||
"tab_variables": "Variables tab"
|
"tab_variables": "На вкладку переменных запроса"
|
||||||
},
|
},
|
||||||
"response": {
|
"response": {
|
||||||
"copy": "Copy response",
|
"copy": "Копировать содержимое ответа",
|
||||||
"download": "Download response as file",
|
"download": "Сказать содержимое ответа как файл",
|
||||||
"title": "Response"
|
"title": "Ответ запроса"
|
||||||
},
|
},
|
||||||
"section": {
|
"section": {
|
||||||
"interceptor": "Interceptor",
|
"interceptor": "Перехватчик",
|
||||||
"interface": "Interface",
|
"interface": "Интерфейс",
|
||||||
"theme": "Theme",
|
"theme": "Внешний вид",
|
||||||
"user": "User"
|
"user": "Пользователь"
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
"change_interceptor": "Change Interceptor",
|
"change_interceptor": "Изменить перехватчик",
|
||||||
"change_language": "Change Language",
|
"change_language": "Изменить язык",
|
||||||
"theme": {
|
"theme": {
|
||||||
"black": "Black",
|
"black": "Черная",
|
||||||
"dark": "Dark",
|
"dark": "Темная",
|
||||||
"light": "Light",
|
"light": "Светлая",
|
||||||
"system": "System preference"
|
"system": "Как задано в системе"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tab": {
|
"tab": {
|
||||||
"close_current": "Close current tab",
|
"close_current": "Закрыть текущую вкладку",
|
||||||
"close_others": "Close all other tabs",
|
"close_others": "Закрыть все вкладки",
|
||||||
"duplicate": "Duplicate current tab",
|
"duplicate": "Продублировать текущую вкладку",
|
||||||
"new_tab": "Open a new tab",
|
"new_tab": "Открыть в новой вкладке",
|
||||||
"title": "Tabs"
|
"title": "Вкладки"
|
||||||
},
|
},
|
||||||
"workspace": {
|
"workspace": {
|
||||||
"delete": "Delete current team",
|
"delete": "Удалить текущую команду",
|
||||||
"edit": "Edit current team",
|
"edit": "Редактировать текущую команду",
|
||||||
"invite": "Invite people to team",
|
"invite": "Пригласить людей в команду",
|
||||||
"new": "Create new team",
|
"new": "Создать новую команду",
|
||||||
"switch_to_personal": "Switch to your personal workspace",
|
"switch_to_personal": "Переключить на персональное пространство",
|
||||||
"title": "Teams"
|
"title": "Команды"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sse": {
|
"sse": {
|
||||||
@@ -824,7 +871,7 @@
|
|||||||
},
|
},
|
||||||
"state": {
|
"state": {
|
||||||
"bulk_mode": "Множественное редактирование",
|
"bulk_mode": "Множественное редактирование",
|
||||||
"bulk_mode_placeholder": "Каждый параметр должен начинаться с новой строки\nКлючи и значения разедляются двоеточием\nИспользуйте # для комментария",
|
"bulk_mode_placeholder": "Каждый параметр должен начинаться с новой строки\nКлючи и значения разделяются двоеточием\nИспользуйте # для комментария",
|
||||||
"cleared": "Очищено",
|
"cleared": "Очищено",
|
||||||
"connected": "Связаны",
|
"connected": "Связаны",
|
||||||
"connected_to": "Подключено к {name}",
|
"connected_to": "Подключено к {name}",
|
||||||
@@ -843,20 +890,20 @@
|
|||||||
"download_failed": "Download failed",
|
"download_failed": "Download failed",
|
||||||
"download_started": "Скачивание началось",
|
"download_started": "Скачивание началось",
|
||||||
"enabled": "Включено",
|
"enabled": "Включено",
|
||||||
"file_imported": "Файл импортирован",
|
"file_imported": "Файл успешно импортирован",
|
||||||
"finished_in": "Завершено через {duration} мс",
|
"finished_in": "Завершено через {duration} мс",
|
||||||
"hide": "Hide",
|
"hide": "Скрыть",
|
||||||
"history_deleted": "История удалена",
|
"history_deleted": "История удалена",
|
||||||
"linewrap": "Обернуть линии",
|
"linewrap": "Обернуть линии",
|
||||||
"loading": "Загрузка...",
|
"loading": "Загрузка...",
|
||||||
"message_received": "Сообщение: {message} получено по топику: {topic}",
|
"message_received": "Сообщение: {message} получено по топику: {topic}",
|
||||||
"mqtt_subscription_failed": "Что-то пошло не так, при попытке подписаться на топик: {topic}",
|
"mqtt_subscription_failed": "Что-то пошло не так, при попытке подписаться на топик: {topic}",
|
||||||
"none": "Никто",
|
"none": "Не задан",
|
||||||
"nothing_found": "Ничего не найдено для",
|
"nothing_found": "Ничего не найдено для",
|
||||||
"published_error": "Что-то пошло не так при попытке опубликовать сообщение в топик {topic}: {message}",
|
"published_error": "Что-то пошло не так при попытке опубликовать сообщение в топик {topic}: {message}",
|
||||||
"published_message": "Опубликовано сообщение: {message} в топик: {topic}",
|
"published_message": "Опубликовано сообщение: {message} в топик: {topic}",
|
||||||
"reconnection_error": "Не удалось переподключиться",
|
"reconnection_error": "Не удалось переподключиться",
|
||||||
"show": "Show",
|
"show": "Показать",
|
||||||
"subscribed_failed": "Не удалось подписаться на топик: {topic}",
|
"subscribed_failed": "Не удалось подписаться на топик: {topic}",
|
||||||
"subscribed_success": "Успешно подписался на топик: {topic}",
|
"subscribed_success": "Успешно подписался на топик: {topic}",
|
||||||
"unsubscribed_failed": "Не удалось отписаться от топика: {topic}",
|
"unsubscribed_failed": "Не удалось отписаться от топика: {topic}",
|
||||||
@@ -871,7 +918,6 @@
|
|||||||
"forum": "Задавайте вопросы и получайте ответы",
|
"forum": "Задавайте вопросы и получайте ответы",
|
||||||
"github": "Подпишитесь на нас на Github",
|
"github": "Подпишитесь на нас на Github",
|
||||||
"shortcuts": "Просматривайте приложение быстрее",
|
"shortcuts": "Просматривайте приложение быстрее",
|
||||||
"team": "Свяжитесь с командой",
|
|
||||||
"title": "Служба поддержки",
|
"title": "Служба поддержки",
|
||||||
"twitter": "Следуйте за нами на Twitter"
|
"twitter": "Следуйте за нами на Twitter"
|
||||||
},
|
},
|
||||||
@@ -882,7 +928,7 @@
|
|||||||
"close_others": "Закрыть остальные вкладки",
|
"close_others": "Закрыть остальные вкладки",
|
||||||
"collections": "Коллекции",
|
"collections": "Коллекции",
|
||||||
"documentation": "Документация",
|
"documentation": "Документация",
|
||||||
"duplicate": "Duplicate Tab",
|
"duplicate": "Дублировать вкладку",
|
||||||
"environments": "Окружения",
|
"environments": "Окружения",
|
||||||
"headers": "Заголовки",
|
"headers": "Заголовки",
|
||||||
"history": "История",
|
"history": "История",
|
||||||
@@ -892,7 +938,8 @@
|
|||||||
"queries": "Запросы",
|
"queries": "Запросы",
|
||||||
"query": "Запрос",
|
"query": "Запрос",
|
||||||
"schema": "Схема",
|
"schema": "Схема",
|
||||||
"shared_requests": "Shared Requests",
|
"shared_requests": "Запросы в общем доступе",
|
||||||
|
"share_tab_request": "Поделиться запросом",
|
||||||
"socketio": "Socket.IO",
|
"socketio": "Socket.IO",
|
||||||
"sse": "SSE",
|
"sse": "SSE",
|
||||||
"tests": "Тесты",
|
"tests": "Тесты",
|
||||||
@@ -921,7 +968,6 @@
|
|||||||
"invite_tooltip": "Пригласить людей в Ваше рабочее пространство",
|
"invite_tooltip": "Пригласить людей в Ваше рабочее пространство",
|
||||||
"invited_to_team": "{owner} приглашает Вас присоединиться к команде {team}",
|
"invited_to_team": "{owner} приглашает Вас присоединиться к команде {team}",
|
||||||
"join": "Приглашение принято",
|
"join": "Приглашение принято",
|
||||||
"join_beta": "Присоединяйтесь к бета-программе, чтобы получить доступ к командам.",
|
|
||||||
"join_team": "Присоединиться к {team}",
|
"join_team": "Присоединиться к {team}",
|
||||||
"joined_team": "Вы присоединились к команде {team}",
|
"joined_team": "Вы присоединились к команде {team}",
|
||||||
"joined_team_description": "Теперь Вы участник этой команды",
|
"joined_team_description": "Теперь Вы участник этой команды",
|
||||||
@@ -950,6 +996,7 @@
|
|||||||
"permissions": "Разрешения",
|
"permissions": "Разрешения",
|
||||||
"same_target_destination": "Таже цель и конечная точка",
|
"same_target_destination": "Таже цель и конечная точка",
|
||||||
"saved": "Команда сохранена",
|
"saved": "Команда сохранена",
|
||||||
|
"search_title": "Team Requests",
|
||||||
"select_a_team": "Выбрать команду",
|
"select_a_team": "Выбрать команду",
|
||||||
"success_invites": "Принятые приглашения",
|
"success_invites": "Принятые приглашения",
|
||||||
"title": "Команды",
|
"title": "Команды",
|
||||||
@@ -981,16 +1028,8 @@
|
|||||||
"workspace": {
|
"workspace": {
|
||||||
"change": "Изменить пространство",
|
"change": "Изменить пространство",
|
||||||
"personal": "Моё пространство",
|
"personal": "Моё пространство",
|
||||||
|
"other_workspaces": "Пространства",
|
||||||
"team": "Пространство команды",
|
"team": "Пространство команды",
|
||||||
"title": "Рабочие пространства"
|
"title": "Рабочие пространства"
|
||||||
},
|
|
||||||
"shortcodes": {
|
|
||||||
"actions": "Действия",
|
|
||||||
"created_on": "Создано",
|
|
||||||
"deleted": "Удалёна",
|
|
||||||
"method": "Метод",
|
|
||||||
"not_found": "Короткая ссылка не найдена",
|
|
||||||
"short_code": "Короткая ссылка",
|
|
||||||
"url": "URL"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,9 +68,9 @@
|
|||||||
"developer_option": "Developer options",
|
"developer_option": "Developer options",
|
||||||
"developer_option_description": "Developer tools which helps in development and maintenance of Hoppscotch.",
|
"developer_option_description": "Developer tools which helps in development and maintenance of Hoppscotch.",
|
||||||
"discord": "Discord",
|
"discord": "Discord",
|
||||||
"documentation": "Dökümanlar",
|
"documentation": "Dokümanlar",
|
||||||
"github": "GitHub",
|
"github": "GitHub",
|
||||||
"help": "Yardım, geri bildirim ve dökümanlar",
|
"help": "Yardım, geri bildirim ve dokümanlar",
|
||||||
"home": "Ana sayfa",
|
"home": "Ana sayfa",
|
||||||
"invite": "Davet et",
|
"invite": "Davet et",
|
||||||
"invite_description": "Hoppscotch'ta API'lerinizi oluşturmak ve yönetmek için basit ve sezgisel bir arayüz tasarladık. Hoppscotch, API'lerinizi oluşturmanıza, test etmenize, belgelemenize ve paylaşmanıza yardımcı olan bir araçtır.",
|
"invite_description": "Hoppscotch'ta API'lerinizi oluşturmak ve yönetmek için basit ve sezgisel bir arayüz tasarladık. Hoppscotch, API'lerinizi oluşturmanıza, test etmenize, belgelemenize ve paylaşmanıza yardımcı olan bir araçtır.",
|
||||||
@@ -225,7 +225,7 @@
|
|||||||
"body": "Bu isteğin bir gövdesi yok",
|
"body": "Bu isteğin bir gövdesi yok",
|
||||||
"collection": "Koleksiyon boş",
|
"collection": "Koleksiyon boş",
|
||||||
"collections": "Koleksiyonlar boş",
|
"collections": "Koleksiyonlar boş",
|
||||||
"documentation": "Dökümanları görmek için GraphQL uç noktasını bağlayın",
|
"documentation": "Dokümanları görmek için GraphQL uç noktasını bağlayın",
|
||||||
"endpoint": "Uç nokta boş olamaz",
|
"endpoint": "Uç nokta boş olamaz",
|
||||||
"environments": "Ortamlar boş",
|
"environments": "Ortamlar boş",
|
||||||
"folder": "Klasör boş",
|
"folder": "Klasör boş",
|
||||||
@@ -735,7 +735,7 @@
|
|||||||
"url": "Bağlantı"
|
"url": "Bağlantı"
|
||||||
},
|
},
|
||||||
"spotlight": {
|
"spotlight": {
|
||||||
"change_language": "Change Language",
|
"change_language": "Dil Değiştir",
|
||||||
"environments": {
|
"environments": {
|
||||||
"delete": "Delete current environment",
|
"delete": "Delete current environment",
|
||||||
"duplicate": "Duplicate current environment",
|
"duplicate": "Duplicate current environment",
|
||||||
@@ -744,7 +744,7 @@
|
|||||||
"edit_global": "Edit global environment",
|
"edit_global": "Edit global environment",
|
||||||
"new": "Create new environment",
|
"new": "Create new environment",
|
||||||
"new_variable": "Create a new environment variable",
|
"new_variable": "Create a new environment variable",
|
||||||
"title": "Environments"
|
"title": "Ortamlar"
|
||||||
},
|
},
|
||||||
"general": {
|
"general": {
|
||||||
"chat": "Chat with support",
|
"chat": "Chat with support",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@hoppscotch/common",
|
"name": "@hoppscotch/common",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "2024.3.1",
|
"version": "2024.3.3",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "pnpm exec npm-run-all -p -l dev:*",
|
"dev": "pnpm exec npm-run-all -p -l dev:*",
|
||||||
"test": "vitest --run",
|
"test": "vitest --run",
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
"axios": "1.6.2",
|
"axios": "1.6.2",
|
||||||
"buffer": "6.0.3",
|
"buffer": "6.0.3",
|
||||||
"cookie-es": "1.0.0",
|
"cookie-es": "1.0.0",
|
||||||
"dioc": "1.0.1",
|
"dioc": "3.0.1",
|
||||||
"esprima": "4.0.1",
|
"esprima": "4.0.1",
|
||||||
"events": "3.3.0",
|
"events": "3.3.0",
|
||||||
"fp-ts": "2.16.1",
|
"fp-ts": "2.16.1",
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ declare module 'vue' {
|
|||||||
AppSpotlightEntryRESTHistory: typeof import('./components/app/spotlight/entry/RESTHistory.vue')['default']
|
AppSpotlightEntryRESTHistory: typeof import('./components/app/spotlight/entry/RESTHistory.vue')['default']
|
||||||
AppSpotlightEntryRESTRequest: typeof import('./components/app/spotlight/entry/RESTRequest.vue')['default']
|
AppSpotlightEntryRESTRequest: typeof import('./components/app/spotlight/entry/RESTRequest.vue')['default']
|
||||||
AppSpotlightEntryRESTTeamRequestEntry: typeof import('./components/app/spotlight/entry/RESTTeamRequestEntry.vue')['default']
|
AppSpotlightEntryRESTTeamRequestEntry: typeof import('./components/app/spotlight/entry/RESTTeamRequestEntry.vue')['default']
|
||||||
|
AppSpotlightSearch: typeof import('./components/app/SpotlightSearch.vue')['default']
|
||||||
AppSupport: typeof import('./components/app/Support.vue')['default']
|
AppSupport: typeof import('./components/app/Support.vue')['default']
|
||||||
Collections: typeof import('./components/collections/index.vue')['default']
|
Collections: typeof import('./components/collections/index.vue')['default']
|
||||||
CollectionsAdd: typeof import('./components/collections/Add.vue')['default']
|
CollectionsAdd: typeof import('./components/collections/Add.vue')['default']
|
||||||
|
|||||||
@@ -32,7 +32,6 @@ import { useI18n } from "~/composables/i18n"
|
|||||||
import { useToast } from "~/composables/toast"
|
import { useToast } from "~/composables/toast"
|
||||||
import { appendRESTCollections, restCollections$ } from "~/newstore/collections"
|
import { appendRESTCollections, restCollections$ } from "~/newstore/collections"
|
||||||
import MyCollectionImport from "~/components/importExport/ImportExportSteps/MyCollectionImport.vue"
|
import MyCollectionImport from "~/components/importExport/ImportExportSteps/MyCollectionImport.vue"
|
||||||
import { GetMyTeamsQuery } from "~/helpers/backend/graphql"
|
|
||||||
|
|
||||||
import IconFolderPlus from "~icons/lucide/folder-plus"
|
import IconFolderPlus from "~icons/lucide/folder-plus"
|
||||||
import IconOpenAPI from "~icons/lucide/file"
|
import IconOpenAPI from "~icons/lucide/file"
|
||||||
@@ -55,16 +54,15 @@ import { teamCollectionsExporter } from "~/helpers/import-export/export/teamColl
|
|||||||
|
|
||||||
import { GistSource } from "~/helpers/import-export/import/import-sources/GistSource"
|
import { GistSource } from "~/helpers/import-export/import/import-sources/GistSource"
|
||||||
import { ImporterOrExporter } from "~/components/importExport/types"
|
import { ImporterOrExporter } from "~/components/importExport/types"
|
||||||
|
import { TeamWorkspace } from "~/services/workspace.service"
|
||||||
|
|
||||||
const t = useI18n()
|
const t = useI18n()
|
||||||
const toast = useToast()
|
const toast = useToast()
|
||||||
|
|
||||||
type SelectedTeam = GetMyTeamsQuery["myTeams"][number] | undefined
|
|
||||||
|
|
||||||
type CollectionType =
|
type CollectionType =
|
||||||
| {
|
| {
|
||||||
type: "team-collections"
|
type: "team-collections"
|
||||||
selectedTeam: SelectedTeam
|
selectedTeam: TeamWorkspace
|
||||||
}
|
}
|
||||||
| { type: "my-collections" }
|
| { type: "my-collections" }
|
||||||
|
|
||||||
@@ -433,7 +431,7 @@ const HoppTeamCollectionsExporter: ImporterOrExporter = {
|
|||||||
props.collectionsType.selectedTeam
|
props.collectionsType.selectedTeam
|
||||||
) {
|
) {
|
||||||
const res = await teamCollectionsExporter(
|
const res = await teamCollectionsExporter(
|
||||||
props.collectionsType.selectedTeam.id
|
props.collectionsType.selectedTeam.teamID
|
||||||
)
|
)
|
||||||
|
|
||||||
if (E.isRight(res)) {
|
if (E.isRight(res)) {
|
||||||
@@ -569,8 +567,8 @@ const hasTeamWriteAccess = computed(() => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
collectionsType.selectedTeam.myRole === "EDITOR" ||
|
collectionsType.selectedTeam.role === "EDITOR" ||
|
||||||
collectionsType.selectedTeam.myRole === "OWNER"
|
collectionsType.selectedTeam.role === "OWNER"
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -578,17 +576,17 @@ const selectedTeamID = computed(() => {
|
|||||||
const { collectionsType } = props
|
const { collectionsType } = props
|
||||||
|
|
||||||
return collectionsType.type === "team-collections"
|
return collectionsType.type === "team-collections"
|
||||||
? collectionsType.selectedTeam?.id
|
? collectionsType.selectedTeam?.teamID
|
||||||
: undefined
|
: undefined
|
||||||
})
|
})
|
||||||
|
|
||||||
const getCollectionJSON = async () => {
|
const getCollectionJSON = async () => {
|
||||||
if (
|
if (
|
||||||
props.collectionsType.type === "team-collections" &&
|
props.collectionsType.type === "team-collections" &&
|
||||||
props.collectionsType.selectedTeam?.id
|
props.collectionsType.selectedTeam?.teamID
|
||||||
) {
|
) {
|
||||||
const res = await getTeamCollectionJSON(
|
const res = await getTeamCollectionJSON(
|
||||||
props.collectionsType.selectedTeam?.id
|
props.collectionsType.selectedTeam?.teamID
|
||||||
)
|
)
|
||||||
|
|
||||||
return E.isRight(res)
|
return E.isRight(res)
|
||||||
|
|||||||
@@ -56,23 +56,25 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { computed, nextTick, reactive, ref, watch } from "vue"
|
import { useI18n } from "@composables/i18n"
|
||||||
import { cloneDeep } from "lodash-es"
|
import { useToast } from "@composables/toast"
|
||||||
import {
|
import {
|
||||||
HoppGQLRequest,
|
HoppGQLRequest,
|
||||||
HoppRESTRequest,
|
HoppRESTRequest,
|
||||||
isHoppRESTRequest,
|
isHoppRESTRequest,
|
||||||
} from "@hoppscotch/data"
|
} from "@hoppscotch/data"
|
||||||
import { pipe } from "fp-ts/function"
|
import { computedWithControl } from "@vueuse/core"
|
||||||
|
import { useService } from "dioc/vue"
|
||||||
import * as TE from "fp-ts/TaskEither"
|
import * as TE from "fp-ts/TaskEither"
|
||||||
import { GetMyTeamsQuery } from "~/helpers/backend/graphql"
|
import { pipe } from "fp-ts/function"
|
||||||
|
import { cloneDeep } from "lodash-es"
|
||||||
|
import { computed, nextTick, reactive, ref, watch } from "vue"
|
||||||
|
import { GQLError } from "~/helpers/backend/GQLClient"
|
||||||
import {
|
import {
|
||||||
createRequestInCollection,
|
createRequestInCollection,
|
||||||
updateTeamRequest,
|
updateTeamRequest,
|
||||||
} from "~/helpers/backend/mutations/TeamRequest"
|
} from "~/helpers/backend/mutations/TeamRequest"
|
||||||
import { Picked } from "~/helpers/types/HoppPicked"
|
import { Picked } from "~/helpers/types/HoppPicked"
|
||||||
import { useI18n } from "@composables/i18n"
|
|
||||||
import { useToast } from "@composables/toast"
|
|
||||||
import {
|
import {
|
||||||
cascadeParentCollectionForHeaderAuth,
|
cascadeParentCollectionForHeaderAuth,
|
||||||
editGraphqlRequest,
|
editGraphqlRequest,
|
||||||
@@ -80,12 +82,10 @@ import {
|
|||||||
saveGraphqlRequestAs,
|
saveGraphqlRequestAs,
|
||||||
saveRESTRequestAs,
|
saveRESTRequestAs,
|
||||||
} from "~/newstore/collections"
|
} from "~/newstore/collections"
|
||||||
import { GQLError } from "~/helpers/backend/GQLClient"
|
|
||||||
import { computedWithControl } from "@vueuse/core"
|
|
||||||
import { platform } from "~/platform"
|
import { platform } from "~/platform"
|
||||||
import { useService } from "dioc/vue"
|
|
||||||
import { RESTTabService } from "~/services/tab/rest"
|
|
||||||
import { GQLTabService } from "~/services/tab/graphql"
|
import { GQLTabService } from "~/services/tab/graphql"
|
||||||
|
import { RESTTabService } from "~/services/tab/rest"
|
||||||
|
import { TeamWorkspace } from "~/services/workspace.service"
|
||||||
|
|
||||||
const t = useI18n()
|
const t = useI18n()
|
||||||
const toast = useToast()
|
const toast = useToast()
|
||||||
@@ -93,12 +93,10 @@ const toast = useToast()
|
|||||||
const RESTTabs = useService(RESTTabService)
|
const RESTTabs = useService(RESTTabService)
|
||||||
const GQLTabs = useService(GQLTabService)
|
const GQLTabs = useService(GQLTabService)
|
||||||
|
|
||||||
type SelectedTeam = GetMyTeamsQuery["myTeams"][number] | undefined
|
|
||||||
|
|
||||||
type CollectionType =
|
type CollectionType =
|
||||||
| {
|
| {
|
||||||
type: "team-collections"
|
type: "team-collections"
|
||||||
selectedTeam: SelectedTeam
|
selectedTeam: TeamWorkspace
|
||||||
}
|
}
|
||||||
| { type: "my-collections"; selectedTeam: undefined }
|
| { type: "my-collections"; selectedTeam: undefined }
|
||||||
|
|
||||||
@@ -192,7 +190,7 @@ watch(
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
const updateTeam = (newTeam: SelectedTeam) => {
|
const updateTeam = (newTeam: TeamWorkspace) => {
|
||||||
collectionsType.value.selectedTeam = newTeam
|
collectionsType.value.selectedTeam = newTeam
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -493,7 +491,7 @@ const updateTeamCollectionOrFolder = (
|
|||||||
const data = {
|
const data = {
|
||||||
title: requestUpdated.name,
|
title: requestUpdated.name,
|
||||||
request: JSON.stringify(requestUpdated),
|
request: JSON.stringify(requestUpdated),
|
||||||
teamID: collectionsType.value.selectedTeam.id,
|
teamID: collectionsType.value.selectedTeam.teamID,
|
||||||
}
|
}
|
||||||
pipe(
|
pipe(
|
||||||
createRequestInCollection(collectionID, data),
|
createRequestInCollection(collectionID, data),
|
||||||
|
|||||||
@@ -387,7 +387,6 @@ import IconPlus from "~icons/lucide/plus"
|
|||||||
import IconHelpCircle from "~icons/lucide/help-circle"
|
import IconHelpCircle from "~icons/lucide/help-circle"
|
||||||
import IconImport from "~icons/lucide/folder-down"
|
import IconImport from "~icons/lucide/folder-down"
|
||||||
import { computed, PropType, Ref, toRef } from "vue"
|
import { computed, PropType, Ref, toRef } from "vue"
|
||||||
import { GetMyTeamsQuery } from "~/helpers/backend/graphql"
|
|
||||||
import { useI18n } from "@composables/i18n"
|
import { useI18n } from "@composables/i18n"
|
||||||
import { useColorMode } from "@composables/theming"
|
import { useColorMode } from "@composables/theming"
|
||||||
import { TeamCollection } from "~/helpers/teams/TeamCollection"
|
import { TeamCollection } from "~/helpers/teams/TeamCollection"
|
||||||
@@ -400,17 +399,16 @@ import * as O from "fp-ts/Option"
|
|||||||
import { Picked } from "~/helpers/types/HoppPicked.js"
|
import { Picked } from "~/helpers/types/HoppPicked.js"
|
||||||
import { RESTTabService } from "~/services/tab/rest"
|
import { RESTTabService } from "~/services/tab/rest"
|
||||||
import { useService } from "dioc/vue"
|
import { useService } from "dioc/vue"
|
||||||
|
import { TeamWorkspace } from "~/services/workspace.service"
|
||||||
|
|
||||||
const t = useI18n()
|
const t = useI18n()
|
||||||
const colorMode = useColorMode()
|
const colorMode = useColorMode()
|
||||||
const tabs = useService(RESTTabService)
|
const tabs = useService(RESTTabService)
|
||||||
|
|
||||||
type SelectedTeam = GetMyTeamsQuery["myTeams"][number] | undefined
|
|
||||||
|
|
||||||
type CollectionType =
|
type CollectionType =
|
||||||
| {
|
| {
|
||||||
type: "team-collections"
|
type: "team-collections"
|
||||||
selectedTeam: SelectedTeam
|
selectedTeam: TeamWorkspace
|
||||||
}
|
}
|
||||||
| { type: "my-collections"; selectedTeam: undefined }
|
| { type: "my-collections"; selectedTeam: undefined }
|
||||||
|
|
||||||
@@ -614,7 +612,7 @@ const hasNoTeamAccess = computed(
|
|||||||
() =>
|
() =>
|
||||||
props.collectionsType.type === "team-collections" &&
|
props.collectionsType.type === "team-collections" &&
|
||||||
(props.collectionsType.selectedTeam === undefined ||
|
(props.collectionsType.selectedTeam === undefined ||
|
||||||
props.collectionsType.selectedTeam.myRole === "VIEWER")
|
props.collectionsType.selectedTeam.role === "VIEWER")
|
||||||
)
|
)
|
||||||
|
|
||||||
const isSelected = ({
|
const isSelected = ({
|
||||||
|
|||||||
@@ -200,7 +200,7 @@ const toast = useToast()
|
|||||||
defineProps<{
|
defineProps<{
|
||||||
// Whether to activate the ability to pick items (activates 'select' events)
|
// Whether to activate the ability to pick items (activates 'select' events)
|
||||||
saveRequest: boolean
|
saveRequest: boolean
|
||||||
picked: Picked
|
picked: Picked | null
|
||||||
}>()
|
}>()
|
||||||
|
|
||||||
const collections = useReadonlyStream(graphqlCollections$, [], "deep")
|
const collections = useReadonlyStream(graphqlCollections$, [], "deep")
|
||||||
|
|||||||
@@ -178,7 +178,6 @@ import { useI18n } from "@composables/i18n"
|
|||||||
import { Picked } from "~/helpers/types/HoppPicked"
|
import { Picked } from "~/helpers/types/HoppPicked"
|
||||||
import { useReadonlyStream } from "~/composables/stream"
|
import { useReadonlyStream } from "~/composables/stream"
|
||||||
import { useLocalState } from "~/newstore/localstate"
|
import { useLocalState } from "~/newstore/localstate"
|
||||||
import { GetMyTeamsQuery } from "~/helpers/backend/graphql"
|
|
||||||
import { pipe } from "fp-ts/function"
|
import { pipe } from "fp-ts/function"
|
||||||
import * as TE from "fp-ts/TaskEither"
|
import * as TE from "fp-ts/TaskEither"
|
||||||
import {
|
import {
|
||||||
@@ -245,7 +244,7 @@ import {
|
|||||||
} from "~/helpers/collection/collection"
|
} from "~/helpers/collection/collection"
|
||||||
import { currentReorderingStatus$ } from "~/newstore/reordering"
|
import { currentReorderingStatus$ } from "~/newstore/reordering"
|
||||||
import { defineActionHandler, invokeAction } from "~/helpers/actions"
|
import { defineActionHandler, invokeAction } from "~/helpers/actions"
|
||||||
import { WorkspaceService } from "~/services/workspace.service"
|
import { TeamWorkspace, WorkspaceService } from "~/services/workspace.service"
|
||||||
import { useService } from "dioc/vue"
|
import { useService } from "dioc/vue"
|
||||||
import { RESTTabService } from "~/services/tab/rest"
|
import { RESTTabService } from "~/services/tab/rest"
|
||||||
import { HoppInheritedProperty } from "~/helpers/types/HoppInheritedProperties"
|
import { HoppInheritedProperty } from "~/helpers/types/HoppInheritedProperties"
|
||||||
@@ -274,16 +273,14 @@ const props = defineProps({
|
|||||||
|
|
||||||
const emit = defineEmits<{
|
const emit = defineEmits<{
|
||||||
(event: "select", payload: Picked | null): void
|
(event: "select", payload: Picked | null): void
|
||||||
(event: "update-team", team: SelectedTeam): void
|
(event: "update-team", team: TeamWorkspace): void
|
||||||
(event: "update-collection-type", type: CollectionType["type"]): void
|
(event: "update-collection-type", type: CollectionType["type"]): void
|
||||||
}>()
|
}>()
|
||||||
|
|
||||||
type SelectedTeam = GetMyTeamsQuery["myTeams"][number] | undefined
|
|
||||||
|
|
||||||
type CollectionType =
|
type CollectionType =
|
||||||
| {
|
| {
|
||||||
type: "team-collections"
|
type: "team-collections"
|
||||||
selectedTeam: SelectedTeam
|
selectedTeam: TeamWorkspace
|
||||||
}
|
}
|
||||||
| { type: "my-collections"; selectedTeam: undefined }
|
| { type: "my-collections"; selectedTeam: undefined }
|
||||||
|
|
||||||
@@ -330,9 +327,7 @@ const requestMoveLoading = ref<string[]>([])
|
|||||||
// TeamList-Adapter
|
// TeamList-Adapter
|
||||||
const workspaceService = useService(WorkspaceService)
|
const workspaceService = useService(WorkspaceService)
|
||||||
const teamListAdapter = workspaceService.acquireTeamListAdapter(null)
|
const teamListAdapter = workspaceService.acquireTeamListAdapter(null)
|
||||||
const myTeams = useReadonlyStream(teamListAdapter.teamList$, null)
|
|
||||||
const REMEMBERED_TEAM_ID = useLocalState("REMEMBERED_TEAM_ID")
|
const REMEMBERED_TEAM_ID = useLocalState("REMEMBERED_TEAM_ID")
|
||||||
const teamListFetched = ref(false)
|
|
||||||
|
|
||||||
// Team Collection Adapter
|
// Team Collection Adapter
|
||||||
const teamCollectionAdapter = new TeamCollectionAdapter(null)
|
const teamCollectionAdapter = new TeamCollectionAdapter(null)
|
||||||
@@ -378,7 +373,7 @@ watch(
|
|||||||
filterTexts,
|
filterTexts,
|
||||||
(newFilterText) => {
|
(newFilterText) => {
|
||||||
if (collectionsType.value.type === "team-collections") {
|
if (collectionsType.value.type === "team-collections") {
|
||||||
const selectedTeamID = collectionsType.value.selectedTeam?.id
|
const selectedTeamID = collectionsType.value.selectedTeam?.teamID
|
||||||
|
|
||||||
selectedTeamID &&
|
selectedTeamID &&
|
||||||
debouncedSearch(newFilterText, selectedTeamID)?.catch(() => {})
|
debouncedSearch(newFilterText, selectedTeamID)?.catch(() => {})
|
||||||
@@ -435,28 +430,6 @@ onMounted(() => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
watch(
|
|
||||||
() => myTeams.value,
|
|
||||||
(newTeams) => {
|
|
||||||
if (newTeams && !teamListFetched.value) {
|
|
||||||
teamListFetched.value = true
|
|
||||||
if (REMEMBERED_TEAM_ID.value && currentUser.value) {
|
|
||||||
const team = newTeams.find((t) => t.id === REMEMBERED_TEAM_ID.value)
|
|
||||||
if (team) updateSelectedTeam(team)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
watch(
|
|
||||||
() => collectionsType.value.selectedTeam,
|
|
||||||
(newTeam) => {
|
|
||||||
if (newTeam) {
|
|
||||||
teamCollectionAdapter.changeTeamID(newTeam.id)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
const switchToMyCollections = () => {
|
const switchToMyCollections = () => {
|
||||||
collectionsType.value.type = "my-collections"
|
collectionsType.value.type = "my-collections"
|
||||||
collectionsType.value.selectedTeam = undefined
|
collectionsType.value.selectedTeam = undefined
|
||||||
@@ -488,11 +461,12 @@ const expandTeamCollection = (collectionID: string) => {
|
|||||||
teamCollectionAdapter.expandCollection(collectionID)
|
teamCollectionAdapter.expandCollection(collectionID)
|
||||||
}
|
}
|
||||||
|
|
||||||
const updateSelectedTeam = (team: SelectedTeam) => {
|
const updateSelectedTeam = (team: TeamWorkspace) => {
|
||||||
if (team) {
|
if (team) {
|
||||||
collectionsType.value.type = "team-collections"
|
collectionsType.value.type = "team-collections"
|
||||||
|
teamCollectionAdapter.changeTeamID(team.teamID)
|
||||||
collectionsType.value.selectedTeam = team
|
collectionsType.value.selectedTeam = team
|
||||||
REMEMBERED_TEAM_ID.value = team.id
|
REMEMBERED_TEAM_ID.value = team.teamID
|
||||||
emit("update-team", team)
|
emit("update-team", team)
|
||||||
emit("update-collection-type", "team-collections")
|
emit("update-collection-type", "team-collections")
|
||||||
}
|
}
|
||||||
@@ -501,23 +475,14 @@ const updateSelectedTeam = (team: SelectedTeam) => {
|
|||||||
const workspace = workspaceService.currentWorkspace
|
const workspace = workspaceService.currentWorkspace
|
||||||
|
|
||||||
// Used to switch collection type and team when user switch workspace in the global workspace switcher
|
// Used to switch collection type and team when user switch workspace in the global workspace switcher
|
||||||
// Check if there is a teamID in the workspace, if yes, switch to team collections and select the team
|
|
||||||
// If there is no teamID, switch to my collections
|
|
||||||
watch(
|
watch(
|
||||||
() => {
|
workspace,
|
||||||
const space = workspace.value
|
(newWorkspace) => {
|
||||||
return space.type === "personal" ? undefined : space.teamID
|
if (newWorkspace.type === "personal") {
|
||||||
},
|
switchToMyCollections()
|
||||||
(teamID) => {
|
} else if (newWorkspace.type === "team") {
|
||||||
if (teamID) {
|
updateSelectedTeam(newWorkspace)
|
||||||
const team = myTeams.value?.find((t) => t.id === teamID)
|
|
||||||
if (team) {
|
|
||||||
updateSelectedTeam(team)
|
|
||||||
}
|
}
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
return switchToMyCollections()
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
immediate: true,
|
immediate: true,
|
||||||
@@ -545,7 +510,7 @@ const hasTeamWriteAccess = computed(() => {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
const role = collectionsType.value.selectedTeam?.myRole
|
const role = collectionsType.value.selectedTeam?.role
|
||||||
return role === "OWNER" || role === "EDITOR"
|
return role === "OWNER" || role === "EDITOR"
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -760,7 +725,7 @@ const addNewRootCollection = (name: string) => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
pipe(
|
pipe(
|
||||||
createNewRootCollection(name, collectionsType.value.selectedTeam.id),
|
createNewRootCollection(name, collectionsType.value.selectedTeam.teamID),
|
||||||
TE.match(
|
TE.match(
|
||||||
(err: GQLError<string>) => {
|
(err: GQLError<string>) => {
|
||||||
toast.error(`${getErrorMessage(err)}`)
|
toast.error(`${getErrorMessage(err)}`)
|
||||||
@@ -831,7 +796,7 @@ const onAddRequest = (requestName: string) => {
|
|||||||
|
|
||||||
const data = {
|
const data = {
|
||||||
request: JSON.stringify(newRequest),
|
request: JSON.stringify(newRequest),
|
||||||
teamID: collectionsType.value.selectedTeam.id,
|
teamID: collectionsType.value.selectedTeam.teamID,
|
||||||
title: requestName,
|
title: requestName,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1158,7 +1123,7 @@ const duplicateRequest = (payload: {
|
|||||||
|
|
||||||
const data = {
|
const data = {
|
||||||
request: JSON.stringify(newRequest),
|
request: JSON.stringify(newRequest),
|
||||||
teamID: collectionsType.value.selectedTeam.id,
|
teamID: collectionsType.value.selectedTeam.teamID,
|
||||||
title: `${request.name} - ${t("action.duplicate")}`,
|
title: `${request.name} - ${t("action.duplicate")}`,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -364,6 +364,7 @@ const switchToTeamWorkspace = (team: GetMyTeamsQuery["myTeams"][number]) => {
|
|||||||
teamID: team.id,
|
teamID: team.id,
|
||||||
teamName: team.name,
|
teamName: team.name,
|
||||||
type: "team",
|
type: "team",
|
||||||
|
role: team.myRole,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
watch(
|
watch(
|
||||||
|
|||||||
@@ -46,41 +46,38 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { computed, ref, watch } from "vue"
|
|
||||||
import { isEqual } from "lodash-es"
|
|
||||||
import { platform } from "~/platform"
|
|
||||||
import { GetMyTeamsQuery } from "~/helpers/backend/graphql"
|
|
||||||
import { useReadonlyStream, useStream } from "@composables/stream"
|
import { useReadonlyStream, useStream } from "@composables/stream"
|
||||||
|
import { Environment } from "@hoppscotch/data"
|
||||||
|
import { useService } from "dioc/vue"
|
||||||
|
import * as TE from "fp-ts/TaskEither"
|
||||||
|
import { pipe } from "fp-ts/function"
|
||||||
|
import { isEqual } from "lodash-es"
|
||||||
|
import { computed, ref, watch } from "vue"
|
||||||
import { useI18n } from "~/composables/i18n"
|
import { useI18n } from "~/composables/i18n"
|
||||||
|
import { useToast } from "~/composables/toast"
|
||||||
|
import { defineActionHandler } from "~/helpers/actions"
|
||||||
|
import { GQLError } from "~/helpers/backend/GQLClient"
|
||||||
|
import { deleteTeamEnvironment } from "~/helpers/backend/mutations/TeamEnvironment"
|
||||||
|
import TeamEnvironmentAdapter from "~/helpers/teams/TeamEnvironmentAdapter"
|
||||||
import {
|
import {
|
||||||
|
deleteEnvironment,
|
||||||
getSelectedEnvironmentIndex,
|
getSelectedEnvironmentIndex,
|
||||||
globalEnv$,
|
globalEnv$,
|
||||||
selectedEnvironmentIndex$,
|
selectedEnvironmentIndex$,
|
||||||
setSelectedEnvironmentIndex,
|
setSelectedEnvironmentIndex,
|
||||||
} from "~/newstore/environments"
|
} from "~/newstore/environments"
|
||||||
import TeamEnvironmentAdapter from "~/helpers/teams/TeamEnvironmentAdapter"
|
|
||||||
import { defineActionHandler } from "~/helpers/actions"
|
|
||||||
import { useLocalState } from "~/newstore/localstate"
|
import { useLocalState } from "~/newstore/localstate"
|
||||||
import { pipe } from "fp-ts/function"
|
import { platform } from "~/platform"
|
||||||
import * as TE from "fp-ts/TaskEither"
|
import { TeamWorkspace, WorkspaceService } from "~/services/workspace.service"
|
||||||
import { GQLError } from "~/helpers/backend/GQLClient"
|
|
||||||
import { deleteEnvironment } from "~/newstore/environments"
|
|
||||||
import { deleteTeamEnvironment } from "~/helpers/backend/mutations/TeamEnvironment"
|
|
||||||
import { useToast } from "~/composables/toast"
|
|
||||||
import { WorkspaceService } from "~/services/workspace.service"
|
|
||||||
import { useService } from "dioc/vue"
|
|
||||||
import { Environment } from "@hoppscotch/data"
|
|
||||||
|
|
||||||
const t = useI18n()
|
const t = useI18n()
|
||||||
const toast = useToast()
|
const toast = useToast()
|
||||||
|
|
||||||
type EnvironmentType = "my-environments" | "team-environments"
|
type EnvironmentType = "my-environments" | "team-environments"
|
||||||
|
|
||||||
type SelectedTeam = GetMyTeamsQuery["myTeams"][number] | undefined
|
|
||||||
|
|
||||||
type EnvironmentsChooseType = {
|
type EnvironmentsChooseType = {
|
||||||
type: EnvironmentType
|
type: EnvironmentType
|
||||||
selectedTeam: SelectedTeam
|
selectedTeam: TeamWorkspace | undefined
|
||||||
}
|
}
|
||||||
|
|
||||||
const environmentType = ref<EnvironmentsChooseType>({
|
const environmentType = ref<EnvironmentsChooseType>({
|
||||||
@@ -102,11 +99,7 @@ const currentUser = useReadonlyStream(
|
|||||||
platform.auth.getCurrentUser()
|
platform.auth.getCurrentUser()
|
||||||
)
|
)
|
||||||
|
|
||||||
// TeamList-Adapter
|
|
||||||
const workspaceService = useService(WorkspaceService)
|
const workspaceService = useService(WorkspaceService)
|
||||||
const teamListAdapter = workspaceService.acquireTeamListAdapter(null)
|
|
||||||
const myTeams = useReadonlyStream(teamListAdapter.teamList$, null)
|
|
||||||
const teamListFetched = ref(false)
|
|
||||||
const REMEMBERED_TEAM_ID = useLocalState("REMEMBERED_TEAM_ID")
|
const REMEMBERED_TEAM_ID = useLocalState("REMEMBERED_TEAM_ID")
|
||||||
|
|
||||||
const adapter = new TeamEnvironmentAdapter(undefined)
|
const adapter = new TeamEnvironmentAdapter(undefined)
|
||||||
@@ -118,29 +111,17 @@ const loading = computed(
|
|||||||
() => adapterLoading.value && teamEnvironmentList.value.length === 0
|
() => adapterLoading.value && teamEnvironmentList.value.length === 0
|
||||||
)
|
)
|
||||||
|
|
||||||
watch(
|
|
||||||
() => myTeams.value,
|
|
||||||
(newTeams) => {
|
|
||||||
if (newTeams && !teamListFetched.value) {
|
|
||||||
teamListFetched.value = true
|
|
||||||
if (REMEMBERED_TEAM_ID.value && currentUser.value) {
|
|
||||||
const team = newTeams.find((t) => t.id === REMEMBERED_TEAM_ID.value)
|
|
||||||
if (team) updateSelectedTeam(team)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
const switchToMyEnvironments = () => {
|
const switchToMyEnvironments = () => {
|
||||||
environmentType.value.selectedTeam = undefined
|
environmentType.value.selectedTeam = undefined
|
||||||
updateEnvironmentType("my-environments")
|
updateEnvironmentType("my-environments")
|
||||||
adapter.changeTeamID(undefined)
|
adapter.changeTeamID(undefined)
|
||||||
}
|
}
|
||||||
|
|
||||||
const updateSelectedTeam = (newSelectedTeam: SelectedTeam | undefined) => {
|
const updateSelectedTeam = (newSelectedTeam: TeamWorkspace | undefined) => {
|
||||||
if (newSelectedTeam) {
|
if (newSelectedTeam) {
|
||||||
|
adapter.changeTeamID(newSelectedTeam.teamID)
|
||||||
environmentType.value.selectedTeam = newSelectedTeam
|
environmentType.value.selectedTeam = newSelectedTeam
|
||||||
REMEMBERED_TEAM_ID.value = newSelectedTeam.id
|
REMEMBERED_TEAM_ID.value = newSelectedTeam.teamID
|
||||||
updateEnvironmentType("team-environments")
|
updateEnvironmentType("team-environments")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -148,15 +129,6 @@ const updateEnvironmentType = (newEnvironmentType: EnvironmentType) => {
|
|||||||
environmentType.value.type = newEnvironmentType
|
environmentType.value.type = newEnvironmentType
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(
|
|
||||||
() => environmentType.value.selectedTeam,
|
|
||||||
(newTeam) => {
|
|
||||||
if (newTeam) {
|
|
||||||
adapter.changeTeamID(newTeam.id)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
const workspace = workspaceService.currentWorkspace
|
const workspace = workspaceService.currentWorkspace
|
||||||
|
|
||||||
// Switch to my environments if workspace is personal and to team environments if workspace is team
|
// Switch to my environments if workspace is personal and to team environments if workspace is team
|
||||||
@@ -170,8 +142,7 @@ watch(workspace, (newWorkspace) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
} else if (newWorkspace.type === "team") {
|
} else if (newWorkspace.type === "team") {
|
||||||
const team = myTeams.value?.find((t) => t.id === newWorkspace.teamID)
|
updateSelectedTeam(newWorkspace)
|
||||||
updateSelectedTeam(team)
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -54,9 +54,7 @@
|
|||||||
:key="tab.id"
|
:key="tab.id"
|
||||||
:label="tab.label"
|
:label="tab.label"
|
||||||
>
|
>
|
||||||
<div
|
<div class="divide-y divide-dividerLight">
|
||||||
class="divide-y divide-dividerLight rounded border border-divider"
|
|
||||||
>
|
|
||||||
<HoppSmartPlaceholder
|
<HoppSmartPlaceholder
|
||||||
v-if="tab.variables.length === 0"
|
v-if="tab.variables.length === 0"
|
||||||
:src="`/images/states/${colorMode.value}/blockchain.svg`"
|
:src="`/images/states/${colorMode.value}/blockchain.svg`"
|
||||||
|
|||||||
@@ -56,9 +56,7 @@
|
|||||||
:key="tab.id"
|
:key="tab.id"
|
||||||
:label="tab.label"
|
:label="tab.label"
|
||||||
>
|
>
|
||||||
<div
|
<div class="divide-y divide-dividerLight">
|
||||||
class="divide-y divide-dividerLight rounded border border-divider"
|
|
||||||
>
|
|
||||||
<HoppSmartPlaceholder
|
<HoppSmartPlaceholder
|
||||||
v-if="tab.variables.length === 0"
|
v-if="tab.variables.length === 0"
|
||||||
:src="`/images/states/${colorMode.value}/blockchain.svg`"
|
:src="`/images/states/${colorMode.value}/blockchain.svg`"
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
class="sticky top-upperPrimaryStickyFold z-10 flex flex-1 flex-shrink-0 justify-between overflow-x-auto border-b border-dividerLight bg-primary"
|
class="sticky top-upperPrimaryStickyFold z-10 flex flex-1 flex-shrink-0 justify-between overflow-x-auto border-b border-dividerLight bg-primary"
|
||||||
>
|
>
|
||||||
<HoppButtonSecondary
|
<HoppButtonSecondary
|
||||||
v-if="team === undefined || team.myRole === 'VIEWER'"
|
v-if="team === undefined || team.role === 'VIEWER'"
|
||||||
v-tippy="{ theme: 'tooltip' }"
|
v-tippy="{ theme: 'tooltip' }"
|
||||||
disabled
|
disabled
|
||||||
class="!rounded-none"
|
class="!rounded-none"
|
||||||
@@ -28,7 +28,7 @@
|
|||||||
:icon="IconHelpCircle"
|
:icon="IconHelpCircle"
|
||||||
/>
|
/>
|
||||||
<HoppButtonSecondary
|
<HoppButtonSecondary
|
||||||
v-if="team !== undefined && team.myRole === 'VIEWER'"
|
v-if="team !== undefined && team.role === 'VIEWER'"
|
||||||
v-tippy="{ theme: 'tooltip' }"
|
v-tippy="{ theme: 'tooltip' }"
|
||||||
disabled
|
disabled
|
||||||
:icon="IconImport"
|
:icon="IconImport"
|
||||||
@@ -84,7 +84,7 @@
|
|||||||
)"
|
)"
|
||||||
:key="`environment-${index}`"
|
:key="`environment-${index}`"
|
||||||
:environment="environment"
|
:environment="environment"
|
||||||
:is-viewer="team?.myRole === 'VIEWER'"
|
:is-viewer="team?.role === 'VIEWER'"
|
||||||
@edit-environment="editEnvironment(environment)"
|
@edit-environment="editEnvironment(environment)"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@@ -103,16 +103,16 @@
|
|||||||
:show="showModalDetails"
|
:show="showModalDetails"
|
||||||
:action="action"
|
:action="action"
|
||||||
:editing-environment="editingEnvironment"
|
:editing-environment="editingEnvironment"
|
||||||
:editing-team-id="team?.id"
|
:editing-team-id="team?.teamID"
|
||||||
:editing-variable-name="editingVariableName"
|
:editing-variable-name="editingVariableName"
|
||||||
:is-secret-option-selected="secretOptionSelected"
|
:is-secret-option-selected="secretOptionSelected"
|
||||||
:is-viewer="team?.myRole === 'VIEWER'"
|
:is-viewer="team?.role === 'VIEWER'"
|
||||||
@hide-modal="displayModalEdit(false)"
|
@hide-modal="displayModalEdit(false)"
|
||||||
/>
|
/>
|
||||||
<EnvironmentsImportExport
|
<EnvironmentsImportExport
|
||||||
v-if="showModalImportExport"
|
v-if="showModalImportExport"
|
||||||
:team-environments="teamEnvironments"
|
:team-environments="teamEnvironments"
|
||||||
:team-id="team?.id"
|
:team-id="team?.teamID"
|
||||||
environment-type="TEAM_ENV"
|
environment-type="TEAM_ENV"
|
||||||
@hide-modal="displayModalImportExport(false)"
|
@hide-modal="displayModalImportExport(false)"
|
||||||
/>
|
/>
|
||||||
@@ -129,16 +129,14 @@ import IconPlus from "~icons/lucide/plus"
|
|||||||
import IconHelpCircle from "~icons/lucide/help-circle"
|
import IconHelpCircle from "~icons/lucide/help-circle"
|
||||||
import IconImport from "~icons/lucide/folder-down"
|
import IconImport from "~icons/lucide/folder-down"
|
||||||
import { defineActionHandler } from "~/helpers/actions"
|
import { defineActionHandler } from "~/helpers/actions"
|
||||||
import { GetMyTeamsQuery } from "~/helpers/backend/graphql"
|
import { TeamWorkspace } from "~/services/workspace.service"
|
||||||
|
|
||||||
const t = useI18n()
|
const t = useI18n()
|
||||||
|
|
||||||
const colorMode = useColorMode()
|
const colorMode = useColorMode()
|
||||||
|
|
||||||
type SelectedTeam = GetMyTeamsQuery["myTeams"][number] | undefined
|
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
team: SelectedTeam
|
team: TeamWorkspace | undefined
|
||||||
teamEnvironments: TeamEnvironment[]
|
teamEnvironments: TeamEnvironment[]
|
||||||
adapterError: GQLError<string> | null
|
adapterError: GQLError<string> | null
|
||||||
loading: boolean
|
loading: boolean
|
||||||
@@ -151,7 +149,7 @@ const editingEnvironment = ref<TeamEnvironment | null>(null)
|
|||||||
const editingVariableName = ref("")
|
const editingVariableName = ref("")
|
||||||
const secretOptionSelected = ref(false)
|
const secretOptionSelected = ref(false)
|
||||||
|
|
||||||
const isTeamViewer = computed(() => props.team?.myRole === "VIEWER")
|
const isTeamViewer = computed(() => props.team?.role === "VIEWER")
|
||||||
|
|
||||||
const displayModalAdd = (shouldDisplay: boolean) => {
|
const displayModalAdd = (shouldDisplay: boolean) => {
|
||||||
action.value = "new"
|
action.value = "new"
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
spellcheck="false"
|
spellcheck="false"
|
||||||
class="w-full rounded border border-divider bg-primaryLight px-4 py-2 text-secondaryDark"
|
class="w-full rounded border border-divider bg-primaryLight px-4 py-2 text-secondaryDark"
|
||||||
:placeholder="`${t('request.url')}`"
|
:placeholder="`${t('graphql.url_placeholder')}`"
|
||||||
:disabled="connected"
|
:disabled="connected"
|
||||||
@keyup.enter="onConnectClick"
|
@keyup.enter="onConnectClick"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -54,7 +54,7 @@
|
|||||||
>
|
>
|
||||||
<SmartEnvInput
|
<SmartEnvInput
|
||||||
v-model="tab.document.request.endpoint"
|
v-model="tab.document.request.endpoint"
|
||||||
:placeholder="`${t('request.url')}`"
|
:placeholder="`${t('request.url_placeholder')}`"
|
||||||
:auto-complete-source="userHistories"
|
:auto-complete-source="userHistories"
|
||||||
:auto-complete-env="true"
|
:auto-complete-env="true"
|
||||||
:inspection-results="tabResults"
|
:inspection-results="tabResults"
|
||||||
|
|||||||
@@ -37,13 +37,17 @@ import { TeamNameCodec } from "~/helpers/backend/types/TeamName"
|
|||||||
import { useI18n } from "@composables/i18n"
|
import { useI18n } from "@composables/i18n"
|
||||||
import { useToast } from "@composables/toast"
|
import { useToast } from "@composables/toast"
|
||||||
import { platform } from "~/platform"
|
import { platform } from "~/platform"
|
||||||
|
import { useService } from "dioc/vue"
|
||||||
|
import { WorkspaceService } from "~/services/workspace.service"
|
||||||
|
import { useLocalState } from "~/newstore/localstate"
|
||||||
|
|
||||||
const t = useI18n()
|
const t = useI18n()
|
||||||
|
|
||||||
const toast = useToast()
|
const toast = useToast()
|
||||||
|
|
||||||
defineProps<{
|
const props = defineProps<{
|
||||||
show: boolean
|
show: boolean
|
||||||
|
switchWorkspaceAfterCreation?: boolean
|
||||||
}>()
|
}>()
|
||||||
|
|
||||||
const emit = defineEmits<{
|
const emit = defineEmits<{
|
||||||
@@ -52,8 +56,12 @@ const emit = defineEmits<{
|
|||||||
|
|
||||||
const editingName = ref<string | null>(null)
|
const editingName = ref<string | null>(null)
|
||||||
|
|
||||||
|
const REMEMBERED_TEAM_ID = useLocalState("REMEMBERED_TEAM_ID")
|
||||||
|
|
||||||
const isLoading = ref(false)
|
const isLoading = ref(false)
|
||||||
|
|
||||||
|
const workspaceService = useService(WorkspaceService)
|
||||||
|
|
||||||
const addNewTeam = async () => {
|
const addNewTeam = async () => {
|
||||||
isLoading.value = true
|
isLoading.value = true
|
||||||
await pipe(
|
await pipe(
|
||||||
@@ -76,8 +84,19 @@ const addNewTeam = async () => {
|
|||||||
// Handle GQL errors (use err obj)
|
// Handle GQL errors (use err obj)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
() => {
|
(team) => {
|
||||||
toast.success(`${t("team.new_created")}`)
|
toast.success(`${t("team.new_created")}`)
|
||||||
|
|
||||||
|
if (props.switchWorkspaceAfterCreation) {
|
||||||
|
REMEMBERED_TEAM_ID.value = team.id
|
||||||
|
workspaceService.changeWorkspace({
|
||||||
|
teamID: team.id,
|
||||||
|
teamName: team.name,
|
||||||
|
type: "team",
|
||||||
|
role: team.myRole,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
hideModal()
|
hideModal()
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -66,7 +66,11 @@
|
|||||||
{{ t("error.something_went_wrong") }}
|
{{ t("error.something_went_wrong") }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<TeamsAdd :show="showModalAdd" @hide-modal="displayModalAdd(false)" />
|
<TeamsAdd
|
||||||
|
:show="showModalAdd"
|
||||||
|
:switch-workspace-after-creation="true"
|
||||||
|
@hide-modal="displayModalAdd(false)"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
@@ -153,6 +157,7 @@ const switchToTeamWorkspace = (team: GetMyTeamsQuery["myTeams"][number]) => {
|
|||||||
workspaceService.changeWorkspace({
|
workspaceService.changeWorkspace({
|
||||||
teamID: team.id,
|
teamID: team.id,
|
||||||
teamName: team.name,
|
teamName: team.name,
|
||||||
|
role: team.myRole,
|
||||||
type: "team",
|
type: "team",
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -175,7 +180,6 @@ watch(
|
|||||||
|
|
||||||
const displayModalAdd = (shouldDisplay: boolean) => {
|
const displayModalAdd = (shouldDisplay: boolean) => {
|
||||||
showModalAdd.value = shouldDisplay
|
showModalAdd.value = shouldDisplay
|
||||||
teamListadapter.fetchList()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
defineActionHandler("modals.team.new", () => {
|
defineActionHandler("modals.team.new", () => {
|
||||||
|
|||||||
@@ -201,7 +201,7 @@ export class TeamSearchService extends Service {
|
|||||||
expandingCollections: Ref<string[]> = ref([])
|
expandingCollections: Ref<string[]> = ref([])
|
||||||
expandedCollections: Ref<string[]> = ref([])
|
expandedCollections: Ref<string[]> = ref([])
|
||||||
|
|
||||||
// FUTURE-TODO: ideally this should return the search results / formatted results instead of directly manipulating the result set
|
// TODO: ideally this should return the search results / formatted results instead of directly manipulating the result set
|
||||||
// eg: do the spotlight formatting in the spotlight searcher and not here
|
// eg: do the spotlight formatting in the spotlight searcher and not here
|
||||||
searchTeams = async (query: string, teamID: string) => {
|
searchTeams = async (query: string, teamID: string) => {
|
||||||
if (!query.length) {
|
if (!query.length) {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { HoppModule } from "."
|
import { HoppModule } from "."
|
||||||
import { Container, Service } from "dioc"
|
import { Container, ServiceClassInstance } from "dioc"
|
||||||
import { diocPlugin } from "dioc/vue"
|
import { diocPlugin } from "dioc/vue"
|
||||||
import { DebugService } from "~/services/debug.service"
|
import { DebugService } from "~/services/debug.service"
|
||||||
import { platform } from "~/platform"
|
import { platform } from "~/platform"
|
||||||
@@ -22,7 +22,7 @@ if (import.meta.env.DEV) {
|
|||||||
* services. Please use `useService` if within components or try to convert your
|
* services. Please use `useService` if within components or try to convert your
|
||||||
* legacy subsystem into a service if possible.
|
* legacy subsystem into a service if possible.
|
||||||
*/
|
*/
|
||||||
export function getService<T extends typeof Service<any> & { ID: string }>(
|
export function getService<T extends ServiceClassInstance<any>>(
|
||||||
service: T
|
service: T
|
||||||
): InstanceType<T> {
|
): InstanceType<T> {
|
||||||
return serviceContainer.bind(service)
|
return serviceContainer.bind(service)
|
||||||
@@ -30,11 +30,10 @@ export function getService<T extends typeof Service<any> & { ID: string }>(
|
|||||||
|
|
||||||
export default <HoppModule>{
|
export default <HoppModule>{
|
||||||
onVueAppInit(app) {
|
onVueAppInit(app) {
|
||||||
// TODO: look into this
|
|
||||||
// @ts-expect-error Something weird with Vue versions
|
|
||||||
app.use(diocPlugin, {
|
app.use(diocPlugin, {
|
||||||
container: serviceContainer,
|
container: serviceContainer,
|
||||||
})
|
})
|
||||||
|
|
||||||
for (const service of platform.addedServices ?? []) {
|
for (const service of platform.addedServices ?? []) {
|
||||||
serviceContainer.bind(service)
|
serviceContainer.bind(service)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
import { pluck, distinctUntilChanged } from "rxjs/operators"
|
|
||||||
import { cloneDeep, defaultsDeep, has } from "lodash-es"
|
import { cloneDeep, defaultsDeep, has } from "lodash-es"
|
||||||
import { Observable } from "rxjs"
|
import { Observable } from "rxjs"
|
||||||
|
import { distinctUntilChanged, pluck } from "rxjs/operators"
|
||||||
import DispatchingStore, { defineDispatchers } from "./DispatchingStore"
|
import { nextTick } from "vue"
|
||||||
|
import { platform } from "~/platform"
|
||||||
import type { KeysMatching } from "~/types/ts-utils"
|
import type { KeysMatching } from "~/types/ts-utils"
|
||||||
|
import DispatchingStore, { defineDispatchers } from "./DispatchingStore"
|
||||||
|
|
||||||
export const HoppBgColors = ["system", "light", "dark", "black"] as const
|
export const HoppBgColors = ["system", "light", "dark", "black"] as const
|
||||||
|
|
||||||
@@ -69,7 +70,8 @@ export type SettingsDef = {
|
|||||||
HAS_OPENED_SPOTLIGHT: boolean
|
HAS_OPENED_SPOTLIGHT: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
export const getDefaultSettings = (): SettingsDef => ({
|
export const getDefaultSettings = (): SettingsDef => {
|
||||||
|
const defaultSettings: SettingsDef = {
|
||||||
syncCollections: true,
|
syncCollections: true,
|
||||||
syncHistory: true,
|
syncHistory: true,
|
||||||
syncEnvironments: true,
|
syncEnvironments: true,
|
||||||
@@ -93,7 +95,7 @@ export const getDefaultSettings = (): SettingsDef => ({
|
|||||||
cookie: true,
|
cookie: true,
|
||||||
},
|
},
|
||||||
|
|
||||||
CURRENT_INTERCEPTOR_ID: "browser", // TODO: Allow the platform definition to take this place
|
CURRENT_INTERCEPTOR_ID: "",
|
||||||
|
|
||||||
// TODO: Interceptor related settings should move under the interceptor systems
|
// TODO: Interceptor related settings should move under the interceptor systems
|
||||||
PROXY_URL: "https://proxy.hoppscotch.io/",
|
PROXY_URL: "https://proxy.hoppscotch.io/",
|
||||||
@@ -113,7 +115,18 @@ export const getDefaultSettings = (): SettingsDef => ({
|
|||||||
COLUMN_LAYOUT: true,
|
COLUMN_LAYOUT: true,
|
||||||
|
|
||||||
HAS_OPENED_SPOTLIGHT: false,
|
HAS_OPENED_SPOTLIGHT: false,
|
||||||
})
|
}
|
||||||
|
|
||||||
|
// Wait for platform to initialize before setting CURRENT_INTERCEPTOR_ID
|
||||||
|
nextTick(() => {
|
||||||
|
applySetting(
|
||||||
|
"CURRENT_INTERCEPTOR_ID",
|
||||||
|
platform?.interceptors.default || "browser"
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
||||||
|
return defaultSettings
|
||||||
|
}
|
||||||
|
|
||||||
type ApplySettingPayload = {
|
type ApplySettingPayload = {
|
||||||
[K in keyof SettingsDef]: {
|
[K in keyof SettingsDef]: {
|
||||||
|
|||||||
@@ -64,13 +64,6 @@
|
|||||||
@submit="renameReqName"
|
@submit="renameReqName"
|
||||||
@hide-modal="showRenamingReqNameModal = false"
|
@hide-modal="showRenamingReqNameModal = false"
|
||||||
/>
|
/>
|
||||||
<HoppSmartConfirmModal
|
|
||||||
:show="confirmingCloseForTabID !== null"
|
|
||||||
:confirm="t('modal.close_unsaved_tab')"
|
|
||||||
:title="t('confirm.save_unsaved_tab')"
|
|
||||||
@hide-modal="onCloseConfirmSaveTab"
|
|
||||||
@resolve="onResolveConfirmSaveTab"
|
|
||||||
/>
|
|
||||||
<HoppSmartConfirmModal
|
<HoppSmartConfirmModal
|
||||||
:show="confirmingCloseAllTabs"
|
:show="confirmingCloseAllTabs"
|
||||||
:confirm="t('modal.close_unsaved_tab')"
|
:confirm="t('modal.close_unsaved_tab')"
|
||||||
@@ -78,6 +71,36 @@
|
|||||||
@hide-modal="confirmingCloseAllTabs = false"
|
@hide-modal="confirmingCloseAllTabs = false"
|
||||||
@resolve="onResolveConfirmCloseAllTabs"
|
@resolve="onResolveConfirmCloseAllTabs"
|
||||||
/>
|
/>
|
||||||
|
<HoppSmartModal
|
||||||
|
v-if="confirmingCloseForTabID !== null"
|
||||||
|
dialog
|
||||||
|
role="dialog"
|
||||||
|
aria-modal="true"
|
||||||
|
:title="t('modal.close_unsaved_tab')"
|
||||||
|
@close="confirmingCloseForTabID = null"
|
||||||
|
>
|
||||||
|
<template #body>
|
||||||
|
<div class="text-center">
|
||||||
|
{{ t("confirm.save_unsaved_tab") }}
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template #footer>
|
||||||
|
<span class="flex space-x-2">
|
||||||
|
<HoppButtonPrimary
|
||||||
|
v-focus
|
||||||
|
:label="t?.('action.yes')"
|
||||||
|
outline
|
||||||
|
@click="onResolveConfirmSaveTab"
|
||||||
|
/>
|
||||||
|
<HoppButtonSecondary
|
||||||
|
:label="t?.('action.no')"
|
||||||
|
filled
|
||||||
|
outline
|
||||||
|
@click="onCloseConfirmSaveTab"
|
||||||
|
/>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</HoppSmartModal>
|
||||||
<CollectionsSaveRequest
|
<CollectionsSaveRequest
|
||||||
v-if="savingRequest"
|
v-if="savingRequest"
|
||||||
mode="rest"
|
mode="rest"
|
||||||
|
|||||||
@@ -8,14 +8,14 @@ import { AnalyticsPlatformDef } from "./analytics"
|
|||||||
import { InterceptorsPlatformDef } from "./interceptors"
|
import { InterceptorsPlatformDef } from "./interceptors"
|
||||||
import { HoppModule } from "~/modules"
|
import { HoppModule } from "~/modules"
|
||||||
import { InspectorsPlatformDef } from "./inspectors"
|
import { InspectorsPlatformDef } from "./inspectors"
|
||||||
import { Service } from "dioc"
|
import { ServiceClassInstance } from "dioc"
|
||||||
import { IOPlatformDef } from "./io"
|
import { IOPlatformDef } from "./io"
|
||||||
import { SpotlightPlatformDef } from "./spotlight"
|
import { SpotlightPlatformDef } from "./spotlight"
|
||||||
|
|
||||||
export type PlatformDef = {
|
export type PlatformDef = {
|
||||||
ui?: UIPlatformDef
|
ui?: UIPlatformDef
|
||||||
addedHoppModules?: HoppModule[]
|
addedHoppModules?: HoppModule[]
|
||||||
addedServices?: Array<typeof Service<unknown> & { ID: string }>
|
addedServices?: Array<ServiceClassInstance<unknown>>
|
||||||
auth: AuthPlatformDef
|
auth: AuthPlatformDef
|
||||||
analytics?: AnalyticsPlatformDef
|
analytics?: AnalyticsPlatformDef
|
||||||
io: IOPlatformDef
|
io: IOPlatformDef
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Service } from "dioc"
|
import { Container, ServiceClassInstance } from "dioc"
|
||||||
import { Inspector } from "~/services/inspection"
|
import { Inspector } from "~/services/inspection"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -8,8 +8,9 @@ export type PlatformInspectorsDef = {
|
|||||||
// We are keeping this as the only mode for now
|
// We are keeping this as the only mode for now
|
||||||
// So that if we choose to add other modes, we can do without breaking
|
// So that if we choose to add other modes, we can do without breaking
|
||||||
type: "service"
|
type: "service"
|
||||||
service: typeof Service<unknown> & { ID: string } & {
|
// TODO: I don't think this type is effective, we have to come up with a better impl
|
||||||
new (): Service & Inspector
|
service: ServiceClassInstance<unknown> & {
|
||||||
|
new (c: Container): Inspector
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
import { Service } from "dioc"
|
import { Container, ServiceClassInstance } from "dioc"
|
||||||
import { Interceptor } from "~/services/interceptor.service"
|
import { Interceptor } from "~/services/interceptor.service"
|
||||||
|
|
||||||
export type PlatformInterceptorDef =
|
export type PlatformInterceptorDef =
|
||||||
| { type: "standalone"; interceptor: Interceptor }
|
| { type: "standalone"; interceptor: Interceptor }
|
||||||
| {
|
| {
|
||||||
type: "service"
|
type: "service"
|
||||||
service: typeof Service<unknown> & { ID: string } & {
|
// TODO: I don't think this type is effective, we have to come up with a better impl
|
||||||
new (): Service & Interceptor
|
service: ServiceClassInstance<unknown> & {
|
||||||
|
new (c: Container): Interceptor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
import { Service } from "dioc"
|
import { Container, ServiceClassInstance } from "dioc"
|
||||||
import { SpotlightSearcher } from "~/services/spotlight"
|
import { SpotlightSearcher } from "~/services/spotlight"
|
||||||
|
|
||||||
export type SpotlightPlatformDef = {
|
export type SpotlightPlatformDef = {
|
||||||
additionalSearchers?: Array<
|
additionalSearchers?: Array<
|
||||||
typeof Service<unknown> & { ID: string } & {
|
ServiceClassInstance<unknown> & {
|
||||||
new (): Service & SpotlightSearcher
|
new (c: Container): SpotlightSearcher
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,9 +31,7 @@ export class ExtensionInspectorService extends Service implements Inspector {
|
|||||||
|
|
||||||
private readonly inspection = this.bind(InspectionService)
|
private readonly inspection = this.bind(InspectionService)
|
||||||
|
|
||||||
constructor() {
|
override onServiceInit() {
|
||||||
super()
|
|
||||||
|
|
||||||
this.inspection.registerInspector(this)
|
this.inspection.registerInspector(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -133,9 +133,7 @@ export class ExtensionInterceptorService
|
|||||||
|
|
||||||
public selectable = { type: "selectable" as const }
|
public selectable = { type: "selectable" as const }
|
||||||
|
|
||||||
constructor() {
|
override onServiceInit() {
|
||||||
super()
|
|
||||||
|
|
||||||
this.listenForExtensionStatus()
|
this.listenForExtensionStatus()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,9 +24,7 @@ export class EnvironmentMenuService extends Service implements ContextMenu {
|
|||||||
|
|
||||||
private readonly contextMenu = this.bind(ContextMenuService)
|
private readonly contextMenu = this.bind(ContextMenuService)
|
||||||
|
|
||||||
constructor() {
|
override onServiceInit() {
|
||||||
super()
|
|
||||||
|
|
||||||
this.contextMenu.registerMenu(this)
|
this.contextMenu.registerMenu(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,9 +41,7 @@ export class ParameterMenuService extends Service implements ContextMenu {
|
|||||||
|
|
||||||
private readonly contextMenu = this.bind(ContextMenuService)
|
private readonly contextMenu = this.bind(ContextMenuService)
|
||||||
|
|
||||||
constructor() {
|
override onServiceInit() {
|
||||||
super()
|
|
||||||
|
|
||||||
this.contextMenu.registerMenu(this)
|
this.contextMenu.registerMenu(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -39,9 +39,7 @@ export class URLMenuService extends Service implements ContextMenu {
|
|||||||
private readonly contextMenu = this.bind(ContextMenuService)
|
private readonly contextMenu = this.bind(ContextMenuService)
|
||||||
private readonly restTab = this.bind(RESTTabService)
|
private readonly restTab = this.bind(RESTTabService)
|
||||||
|
|
||||||
constructor() {
|
override onServiceInit() {
|
||||||
super()
|
|
||||||
|
|
||||||
this.contextMenu.registerMenu(this)
|
this.contextMenu.registerMenu(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,10 +20,6 @@ export class CookieJarService extends Service {
|
|||||||
*/
|
*/
|
||||||
public cookieJar = ref(new Map<string, string[]>())
|
public cookieJar = ref(new Map<string, string[]>())
|
||||||
|
|
||||||
constructor() {
|
|
||||||
super()
|
|
||||||
}
|
|
||||||
|
|
||||||
public parseSetCookieString(setCookieString: string) {
|
public parseSetCookieString(setCookieString: string) {
|
||||||
return setCookieParse(setCookieString)
|
return setCookieParse(setCookieString)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,9 +14,7 @@ import { Service } from "dioc"
|
|||||||
export class DebugService extends Service {
|
export class DebugService extends Service {
|
||||||
public static readonly ID = "DEBUG_SERVICE"
|
public static readonly ID = "DEBUG_SERVICE"
|
||||||
|
|
||||||
constructor() {
|
override onServiceInit() {
|
||||||
super()
|
|
||||||
|
|
||||||
console.log("DebugService is initialized...")
|
console.log("DebugService is initialized...")
|
||||||
|
|
||||||
const container = this.getContainer()
|
const container = this.getContainer()
|
||||||
|
|||||||
@@ -107,9 +107,7 @@ export class InspectionService extends Service {
|
|||||||
|
|
||||||
private readonly restTab = this.bind(RESTTabService)
|
private readonly restTab = this.bind(RESTTabService)
|
||||||
|
|
||||||
constructor() {
|
override onServiceInit() {
|
||||||
super()
|
|
||||||
|
|
||||||
this.initializeListeners()
|
this.initializeListeners()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -53,9 +53,7 @@ export class EnvironmentInspectorService extends Service implements Inspector {
|
|||||||
}
|
}
|
||||||
)[0]
|
)[0]
|
||||||
|
|
||||||
constructor() {
|
override onServiceInit() {
|
||||||
super()
|
|
||||||
|
|
||||||
this.inspection.registerInspector(this)
|
this.inspection.registerInspector(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,9 +22,7 @@ export class HeaderInspectorService extends Service implements Inspector {
|
|||||||
private readonly inspection = this.bind(InspectionService)
|
private readonly inspection = this.bind(InspectionService)
|
||||||
private readonly interceptorService = this.bind(InterceptorService)
|
private readonly interceptorService = this.bind(InterceptorService)
|
||||||
|
|
||||||
constructor() {
|
override onServiceInit() {
|
||||||
super()
|
|
||||||
|
|
||||||
this.inspection.registerInspector(this)
|
this.inspection.registerInspector(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,9 +23,7 @@ export class ResponseInspectorService extends Service implements Inspector {
|
|||||||
|
|
||||||
private readonly inspection = this.bind(InspectionService)
|
private readonly inspection = this.bind(InspectionService)
|
||||||
|
|
||||||
constructor() {
|
override onServiceInit() {
|
||||||
super()
|
|
||||||
|
|
||||||
this.inspection.registerInspector(this)
|
this.inspection.registerInspector(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -178,9 +178,7 @@ export class InterceptorService extends Service {
|
|||||||
return this.interceptors.get(this.currentInterceptorID.value)
|
return this.interceptors.get(this.currentInterceptorID.value)
|
||||||
})
|
})
|
||||||
|
|
||||||
constructor() {
|
override onServiceInit() {
|
||||||
super()
|
|
||||||
|
|
||||||
// If the current interceptor is unselectable, select the first selectable one, else null
|
// If the current interceptor is unselectable, select the first selectable one, else null
|
||||||
watch([() => this.interceptors, this.currentInterceptorID], () => {
|
watch([() => this.interceptors, this.currentInterceptorID], () => {
|
||||||
if (!this.currentInterceptorID.value) return
|
if (!this.currentInterceptorID.value) return
|
||||||
|
|||||||
@@ -109,10 +109,6 @@ export class OauthAuthService extends Service {
|
|||||||
public static readonly ID = "OAUTH_AUTH_SERVICE"
|
public static readonly ID = "OAUTH_AUTH_SERVICE"
|
||||||
|
|
||||||
static redirectURI = `${window.location.origin}/oauth`
|
static redirectURI = `${window.location.origin}/oauth`
|
||||||
|
|
||||||
constructor() {
|
|
||||||
super()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export const generateRandomString = () => {
|
export const generateRandomString = () => {
|
||||||
|
|||||||
@@ -89,10 +89,6 @@ export class PersistenceService extends Service {
|
|||||||
|
|
||||||
public hoppLocalConfigStorage: StorageLike = localStorage
|
public hoppLocalConfigStorage: StorageLike = localStorage
|
||||||
|
|
||||||
constructor() {
|
|
||||||
super()
|
|
||||||
}
|
|
||||||
|
|
||||||
private showErrorToast(localStorageKey: string) {
|
private showErrorToast(localStorageKey: string) {
|
||||||
const toast = useToast()
|
const toast = useToast()
|
||||||
toast.error(
|
toast.error(
|
||||||
|
|||||||
@@ -27,10 +27,6 @@ export class SecretEnvironmentService extends Service {
|
|||||||
*/
|
*/
|
||||||
public secretEnvironments = reactive(new Map<string, SecretVariable[]>())
|
public secretEnvironments = reactive(new Map<string, SecretVariable[]>())
|
||||||
|
|
||||||
constructor() {
|
|
||||||
super()
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a new secret environment.
|
* Add a new secret environment.
|
||||||
* @param id ID of the environment
|
* @param id ID of the environment
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import {
|
|||||||
import { nextTick, reactive, ref } from "vue"
|
import { nextTick, reactive, ref } from "vue"
|
||||||
import { SpotlightSearcherResult } from "../../.."
|
import { SpotlightSearcherResult } from "../../.."
|
||||||
import { TestContainer } from "dioc/testing"
|
import { TestContainer } from "dioc/testing"
|
||||||
|
import { Container } from "dioc"
|
||||||
|
|
||||||
async function flushPromises() {
|
async function flushPromises() {
|
||||||
return await new Promise((r) => setTimeout(r))
|
return await new Promise((r) => setTimeout(r))
|
||||||
@@ -32,12 +33,15 @@ describe("StaticSpotlightSearcherService", () => {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
constructor() {
|
// TODO: dioc > v3 does not recommend using constructors, move to onServiceInit
|
||||||
super({
|
constructor(c: Container) {
|
||||||
|
super(c, {
|
||||||
searchFields: ["text"],
|
searchFields: ["text"],
|
||||||
fieldWeights: {},
|
fieldWeights: {},
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
override onServiceInit() {
|
||||||
this.setDocuments(this.documents)
|
this.setDocuments(this.documents)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -94,12 +98,15 @@ describe("StaticSpotlightSearcherService", () => {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
constructor() {
|
// TODO: dioc > v3 does not recommend using constructors, move to onServiceInit
|
||||||
super({
|
constructor(c: Container) {
|
||||||
|
super(c, {
|
||||||
searchFields: ["text"],
|
searchFields: ["text"],
|
||||||
fieldWeights: {},
|
fieldWeights: {},
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
override onServiceInit() {
|
||||||
this.setDocuments(this.documents)
|
this.setDocuments(this.documents)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -159,12 +166,15 @@ describe("StaticSpotlightSearcherService", () => {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
constructor() {
|
// TODO: dioc > v3 does not recommend using constructors, move to onServiceInit
|
||||||
super({
|
constructor(c: Container) {
|
||||||
|
super(c, {
|
||||||
searchFields: ["text"],
|
searchFields: ["text"],
|
||||||
fieldWeights: {},
|
fieldWeights: {},
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
override onServiceInit() {
|
||||||
this.setDocuments(this.documents)
|
this.setDocuments(this.documents)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -224,12 +234,15 @@ describe("StaticSpotlightSearcherService", () => {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
constructor() {
|
// TODO: dioc > v3 does not recommend using constructors, move to onServiceInit
|
||||||
super({
|
constructor(c: Container) {
|
||||||
|
super(c, {
|
||||||
searchFields: ["text"],
|
searchFields: ["text"],
|
||||||
fieldWeights: {},
|
fieldWeights: {},
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
override onServiceInit() {
|
||||||
this.setDocuments(this.documents)
|
this.setDocuments(this.documents)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -285,12 +298,15 @@ describe("StaticSpotlightSearcherService", () => {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
constructor() {
|
// TODO: dioc > v3 does not recommend using constructors, move to onServiceInit
|
||||||
super({
|
constructor(c: Container) {
|
||||||
|
super(c, {
|
||||||
searchFields: ["text"],
|
searchFields: ["text"],
|
||||||
fieldWeights: {},
|
fieldWeights: {},
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
override onServiceInit() {
|
||||||
this.setDocuments(this.documents)
|
this.setDocuments(this.documents)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -354,12 +370,15 @@ describe("StaticSpotlightSearcherService", () => {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
constructor() {
|
// TODO: dioc > v3 does not recommend using constructors, move to onServiceInit
|
||||||
super({
|
constructor(c: Container) {
|
||||||
|
super(c, {
|
||||||
searchFields: ["text", "alternate"],
|
searchFields: ["text", "alternate"],
|
||||||
fieldWeights: {},
|
fieldWeights: {},
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
override onServiceInit() {
|
||||||
this.setDocuments(this.documents)
|
this.setDocuments(this.documents)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Service } from "dioc"
|
import { Container, Service } from "dioc"
|
||||||
import {
|
import {
|
||||||
type SpotlightSearcher,
|
type SpotlightSearcher,
|
||||||
type SpotlightSearcherResult,
|
type SpotlightSearcherResult,
|
||||||
@@ -67,8 +67,12 @@ export abstract class StaticSpotlightSearcherService<
|
|||||||
|
|
||||||
private _documents: Record<string, Doc> = {}
|
private _documents: Record<string, Doc> = {}
|
||||||
|
|
||||||
constructor(private opts: StaticSpotlightSearcherOptions<Doc>) {
|
// TODO: This pattern is no longer recommended in dioc > 3, move to something else
|
||||||
super()
|
constructor(
|
||||||
|
c: Container,
|
||||||
|
private opts: StaticSpotlightSearcherOptions<Doc>
|
||||||
|
) {
|
||||||
|
super(c)
|
||||||
|
|
||||||
this.minisearch = new MiniSearch({
|
this.minisearch = new MiniSearch({
|
||||||
fields: opts.searchFields as string[],
|
fields: opts.searchFields as string[],
|
||||||
|
|||||||
@@ -50,9 +50,7 @@ export class CollectionsSpotlightSearcherService
|
|||||||
private readonly spotlight = this.bind(SpotlightService)
|
private readonly spotlight = this.bind(SpotlightService)
|
||||||
private readonly workspaceService = this.bind(WorkspaceService)
|
private readonly workspaceService = this.bind(WorkspaceService)
|
||||||
|
|
||||||
constructor() {
|
override onServiceInit() {
|
||||||
super()
|
|
||||||
|
|
||||||
this.spotlight.registerSearcher(this)
|
this.spotlight.registerSearcher(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import IconEdit from "~icons/lucide/edit"
|
|||||||
import IconLayers from "~icons/lucide/layers"
|
import IconLayers from "~icons/lucide/layers"
|
||||||
import IconTrash2 from "~icons/lucide/trash-2"
|
import IconTrash2 from "~icons/lucide/trash-2"
|
||||||
|
|
||||||
import { Service } from "dioc"
|
import { Container, Service } from "dioc"
|
||||||
import * as TE from "fp-ts/TaskEither"
|
import * as TE from "fp-ts/TaskEither"
|
||||||
import { pipe } from "fp-ts/function"
|
import { pipe } from "fp-ts/function"
|
||||||
import { cloneDeep } from "lodash-es"
|
import { cloneDeep } from "lodash-es"
|
||||||
@@ -164,15 +164,18 @@ export class EnvironmentsSpotlightSearcherService extends StaticSpotlightSearche
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
constructor() {
|
// TODO: This pattern is no longer recommended in dioc > 3, move to something else
|
||||||
super({
|
constructor(c: Container) {
|
||||||
|
super(c, {
|
||||||
searchFields: ["text", "alternates"],
|
searchFields: ["text", "alternates"],
|
||||||
fieldWeights: {
|
fieldWeights: {
|
||||||
text: 2,
|
text: 2,
|
||||||
alternates: 1,
|
alternates: 1,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
override onServiceInit() {
|
||||||
this.setDocuments(this.documents)
|
this.setDocuments(this.documents)
|
||||||
this.spotlight.registerSearcher(this)
|
this.spotlight.registerSearcher(this)
|
||||||
}
|
}
|
||||||
@@ -277,9 +280,7 @@ export class SwitchEnvSpotlightSearcherService
|
|||||||
private readonly workspaceService = this.bind(WorkspaceService)
|
private readonly workspaceService = this.bind(WorkspaceService)
|
||||||
private teamEnvironmentList: TeamEnvironment[] = []
|
private teamEnvironmentList: TeamEnvironment[] = []
|
||||||
|
|
||||||
constructor() {
|
override onServiceInit() {
|
||||||
super()
|
|
||||||
|
|
||||||
this.spotlight.registerSearcher(this)
|
this.spotlight.registerSearcher(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import IconBook from "~icons/lucide/book"
|
|||||||
import IconLifeBuoy from "~icons/lucide/life-buoy"
|
import IconLifeBuoy from "~icons/lucide/life-buoy"
|
||||||
import IconZap from "~icons/lucide/zap"
|
import IconZap from "~icons/lucide/zap"
|
||||||
import { platform } from "~/platform"
|
import { platform } from "~/platform"
|
||||||
|
import { Container } from "dioc"
|
||||||
|
|
||||||
type Doc = {
|
type Doc = {
|
||||||
text: string | string[]
|
text: string | string[]
|
||||||
@@ -89,15 +90,18 @@ export class GeneralSpotlightSearcherService extends StaticSpotlightSearcherServ
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
constructor() {
|
// TODO: This is not recommended as of dioc > 3. Move to onServiceInit instead
|
||||||
super({
|
constructor(c: Container) {
|
||||||
|
super(c, {
|
||||||
searchFields: ["text", "alternates"],
|
searchFields: ["text", "alternates"],
|
||||||
fieldWeights: {
|
fieldWeights: {
|
||||||
text: 2,
|
text: 2,
|
||||||
alternates: 1,
|
alternates: 1,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
override onServiceInit() {
|
||||||
this.setDocuments(this.documents)
|
this.setDocuments(this.documents)
|
||||||
this.spotlight.registerSearcher(this)
|
this.spotlight.registerSearcher(this)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,9 +66,7 @@ export class HistorySpotlightSearcherService
|
|||||||
}
|
}
|
||||||
)[0]
|
)[0]
|
||||||
|
|
||||||
constructor() {
|
override onServiceInit() {
|
||||||
super()
|
|
||||||
|
|
||||||
this.spotlight.registerSearcher(this)
|
this.spotlight.registerSearcher(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -31,9 +31,7 @@ export class InterceptorSpotlightSearcherService
|
|||||||
private readonly spotlight = this.bind(SpotlightService)
|
private readonly spotlight = this.bind(SpotlightService)
|
||||||
private interceptorService = this.bind(InterceptorService)
|
private interceptorService = this.bind(InterceptorService)
|
||||||
|
|
||||||
constructor() {
|
override onServiceInit() {
|
||||||
super()
|
|
||||||
|
|
||||||
this.spotlight.registerSearcher(this)
|
this.spotlight.registerSearcher(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import {
|
|||||||
} from "./base/static.searcher"
|
} from "./base/static.searcher"
|
||||||
|
|
||||||
import IconShare from "~icons/lucide/share"
|
import IconShare from "~icons/lucide/share"
|
||||||
|
import { Container } from "dioc"
|
||||||
|
|
||||||
type Doc = {
|
type Doc = {
|
||||||
text: string
|
text: string
|
||||||
@@ -39,15 +40,18 @@ export class MiscellaneousSpotlightSearcherService extends StaticSpotlightSearch
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
constructor() {
|
// TODO: Constructors are no longer recommended as of dioc > 3, move to onServiceInit
|
||||||
super({
|
constructor(c: Container) {
|
||||||
|
super(c, {
|
||||||
searchFields: ["text", "alternates"],
|
searchFields: ["text", "alternates"],
|
||||||
fieldWeights: {
|
fieldWeights: {
|
||||||
text: 2,
|
text: 2,
|
||||||
alternates: 1,
|
alternates: 1,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
override onServiceInit() {
|
||||||
this.setDocuments(this.documents)
|
this.setDocuments(this.documents)
|
||||||
this.spotlight.registerSearcher(this)
|
this.spotlight.registerSearcher(this)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import {
|
|||||||
} from "./base/static.searcher"
|
} from "./base/static.searcher"
|
||||||
|
|
||||||
import IconArrowRight from "~icons/lucide/arrow-right"
|
import IconArrowRight from "~icons/lucide/arrow-right"
|
||||||
|
import { Container } from "dioc"
|
||||||
|
|
||||||
type Doc = {
|
type Doc = {
|
||||||
text: string
|
text: string
|
||||||
@@ -61,15 +62,18 @@ export class NavigationSpotlightSearcherService extends StaticSpotlightSearcherS
|
|||||||
|
|
||||||
private docKeys = Object.keys(this.documents)
|
private docKeys = Object.keys(this.documents)
|
||||||
|
|
||||||
constructor() {
|
// TODO: Constructors are no longer recommended as of dioc > 3, use onServiceInit instead
|
||||||
super({
|
constructor(c: Container) {
|
||||||
|
super(c, {
|
||||||
searchFields: ["text", "alternates"],
|
searchFields: ["text", "alternates"],
|
||||||
fieldWeights: {
|
fieldWeights: {
|
||||||
text: 2,
|
text: 2,
|
||||||
alternates: 1,
|
alternates: 1,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
override onServiceInit() {
|
||||||
this.setDocuments(this.documents)
|
this.setDocuments(this.documents)
|
||||||
this.spotlight.registerSearcher(this)
|
this.spotlight.registerSearcher(this)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import IconRotateCCW from "~icons/lucide/rotate-ccw"
|
|||||||
import IconSave from "~icons/lucide/save"
|
import IconSave from "~icons/lucide/save"
|
||||||
import { GQLOptionTabs } from "~/components/graphql/RequestOptions.vue"
|
import { GQLOptionTabs } from "~/components/graphql/RequestOptions.vue"
|
||||||
import { RESTTabService } from "~/services/tab/rest"
|
import { RESTTabService } from "~/services/tab/rest"
|
||||||
|
import { Container } from "dioc"
|
||||||
|
|
||||||
type Doc = {
|
type Doc = {
|
||||||
text: string | string[]
|
text: string | string[]
|
||||||
@@ -224,15 +225,18 @@ export class RequestSpotlightSearcherService extends StaticSpotlightSearcherServ
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
constructor() {
|
// TODO: Constructors are no longer recommended as of dioc > 3, use onServiceInit instead
|
||||||
super({
|
constructor(c: Container) {
|
||||||
|
super(c, {
|
||||||
searchFields: ["text", "alternates"],
|
searchFields: ["text", "alternates"],
|
||||||
fieldWeights: {
|
fieldWeights: {
|
||||||
text: 2,
|
text: 2,
|
||||||
alternates: 1,
|
alternates: 1,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
override onServiceInit() {
|
||||||
this.setDocuments(this.documents)
|
this.setDocuments(this.documents)
|
||||||
this.spotlight.registerSearcher(this)
|
this.spotlight.registerSearcher(this)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import {
|
|||||||
|
|
||||||
import IconDownload from "~icons/lucide/download"
|
import IconDownload from "~icons/lucide/download"
|
||||||
import IconCopy from "~icons/lucide/copy"
|
import IconCopy from "~icons/lucide/copy"
|
||||||
|
import { Container } from "dioc"
|
||||||
|
|
||||||
type Doc = {
|
type Doc = {
|
||||||
text: string
|
text: string
|
||||||
@@ -56,15 +57,18 @@ export class ResponseSpotlightSearcherService extends StaticSpotlightSearcherSer
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
constructor() {
|
// TODO: Constructors are no longer recommended as of dioc > 3, move to onServiceInit
|
||||||
super({
|
constructor(c: Container) {
|
||||||
|
super(c, {
|
||||||
searchFields: ["text", "alternates"],
|
searchFields: ["text", "alternates"],
|
||||||
fieldWeights: {
|
fieldWeights: {
|
||||||
text: 2,
|
text: 2,
|
||||||
alternates: 1,
|
alternates: 1,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
override onServiceInit() {
|
||||||
this.setDocuments(this.documents)
|
this.setDocuments(this.documents)
|
||||||
this.spotlight.registerSearcher(this)
|
this.spotlight.registerSearcher(this)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import IconMonitor from "~icons/lucide/monitor"
|
|||||||
import IconMoon from "~icons/lucide/moon"
|
import IconMoon from "~icons/lucide/moon"
|
||||||
import IconSun from "~icons/lucide/sun"
|
import IconSun from "~icons/lucide/sun"
|
||||||
import IconCheckCircle from "~icons/lucide/check-circle"
|
import IconCheckCircle from "~icons/lucide/check-circle"
|
||||||
|
import { Container } from "dioc"
|
||||||
|
|
||||||
type Doc = {
|
type Doc = {
|
||||||
text: string | string[]
|
text: string | string[]
|
||||||
@@ -100,15 +101,18 @@ export class SettingsSpotlightSearcherService extends StaticSpotlightSearcherSer
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
constructor() {
|
// TODO: Constuctors are no longer recommended as of dioc > 3, move to onServiceInit
|
||||||
super({
|
constructor(c: Container) {
|
||||||
|
super(c, {
|
||||||
searchFields: ["text", "alternates"],
|
searchFields: ["text", "alternates"],
|
||||||
fieldWeights: {
|
fieldWeights: {
|
||||||
text: 2,
|
text: 2,
|
||||||
alternates: 1,
|
alternates: 1,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
override onServiceInit() {
|
||||||
this.setDocuments(this.documents)
|
this.setDocuments(this.documents)
|
||||||
this.spotlight.registerSearcher(this)
|
this.spotlight.registerSearcher(this)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import IconXSquare from "~icons/lucide/x-square"
|
|||||||
import { invokeAction } from "~/helpers/actions"
|
import { invokeAction } from "~/helpers/actions"
|
||||||
import { RESTTabService } from "~/services/tab/rest"
|
import { RESTTabService } from "~/services/tab/rest"
|
||||||
import { GQLTabService } from "~/services/tab/graphql"
|
import { GQLTabService } from "~/services/tab/graphql"
|
||||||
|
import { Container } from "dioc"
|
||||||
|
|
||||||
type Doc = {
|
type Doc = {
|
||||||
text: string | string[]
|
text: string | string[]
|
||||||
@@ -89,15 +90,18 @@ export class TabSpotlightSearcherService extends StaticSpotlightSearcherService<
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
constructor() {
|
// TODO: Constructors are no longer recommended as of dioc > 3, use onServiceInit instead
|
||||||
super({
|
constructor(c: Container) {
|
||||||
|
super(c, {
|
||||||
searchFields: ["text", "alternates"],
|
searchFields: ["text", "alternates"],
|
||||||
fieldWeights: {
|
fieldWeights: {
|
||||||
text: 2,
|
text: 2,
|
||||||
alternates: 1,
|
alternates: 1,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
override onServiceInit() {
|
||||||
this.setDocuments(this.documents)
|
this.setDocuments(this.documents)
|
||||||
this.spotlight.registerSearcher(this)
|
this.spotlight.registerSearcher(this)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,9 +39,7 @@ export class TeamsSpotlightSearcherService
|
|||||||
|
|
||||||
private readonly tabs = this.bind(RESTTabService)
|
private readonly tabs = this.bind(RESTTabService)
|
||||||
|
|
||||||
constructor() {
|
override onServiceInit() {
|
||||||
super()
|
|
||||||
|
|
||||||
this.spotlight.registerSearcher(this)
|
this.spotlight.registerSearcher(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import { useStreamStatic } from "~/composables/stream"
|
|||||||
import IconLogin from "~icons/lucide/log-in"
|
import IconLogin from "~icons/lucide/log-in"
|
||||||
import IconLogOut from "~icons/lucide/log-out"
|
import IconLogOut from "~icons/lucide/log-out"
|
||||||
import { activeActions$, invokeAction } from "~/helpers/actions"
|
import { activeActions$, invokeAction } from "~/helpers/actions"
|
||||||
|
import { Container } from "dioc"
|
||||||
|
|
||||||
type Doc = {
|
type Doc = {
|
||||||
text: string
|
text: string
|
||||||
@@ -59,15 +60,18 @@ export class UserSpotlightSearcherService extends StaticSpotlightSearcherService
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
constructor() {
|
// TODO: Constructors are no longer recommended as of dioc > 3, move to onServiceInit
|
||||||
super({
|
constructor(c: Container) {
|
||||||
|
super(c, {
|
||||||
searchFields: ["text", "alternates"],
|
searchFields: ["text", "alternates"],
|
||||||
fieldWeights: {
|
fieldWeights: {
|
||||||
text: 2,
|
text: 2,
|
||||||
alternates: 1,
|
alternates: 1,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
override onServiceInit(): void {
|
||||||
this.setDocuments(this.documents)
|
this.setDocuments(this.documents)
|
||||||
this.spotlight.registerSearcher(this)
|
this.spotlight.registerSearcher(this)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import {
|
|||||||
StaticSpotlightSearcherService,
|
StaticSpotlightSearcherService,
|
||||||
} from "./base/static.searcher"
|
} from "./base/static.searcher"
|
||||||
|
|
||||||
import { Service } from "dioc"
|
import { Container, Service } from "dioc"
|
||||||
import * as E from "fp-ts/Either"
|
import * as E from "fp-ts/Either"
|
||||||
import MiniSearch from "minisearch"
|
import MiniSearch from "minisearch"
|
||||||
import IconCheckCircle from "~/components/app/spotlight/entry/IconSelected.vue"
|
import IconCheckCircle from "~/components/app/spotlight/entry/IconSelected.vue"
|
||||||
@@ -102,15 +102,18 @@ export class WorkspaceSpotlightSearcherService extends StaticSpotlightSearcherSe
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
constructor() {
|
// TODO: Constructors are no longer recommended as of dioc > 3, move to onServiceInit
|
||||||
super({
|
constructor(c: Container) {
|
||||||
|
super(c, {
|
||||||
searchFields: ["text", "alternates"],
|
searchFields: ["text", "alternates"],
|
||||||
fieldWeights: {
|
fieldWeights: {
|
||||||
text: 2,
|
text: 2,
|
||||||
alternates: 1,
|
alternates: 1,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
override onServiceInit() {
|
||||||
this.setDocuments(this.documents)
|
this.setDocuments(this.documents)
|
||||||
this.spotlight.registerSearcher(this)
|
this.spotlight.registerSearcher(this)
|
||||||
}
|
}
|
||||||
@@ -166,9 +169,7 @@ export class SwitchWorkspaceSpotlightSearcherService
|
|||||||
private readonly spotlight = this.bind(SpotlightService)
|
private readonly spotlight = this.bind(SpotlightService)
|
||||||
private readonly workspaceService = this.bind(WorkspaceService)
|
private readonly workspaceService = this.bind(WorkspaceService)
|
||||||
|
|
||||||
constructor() {
|
override onServiceInit() {
|
||||||
super()
|
|
||||||
|
|
||||||
this.spotlight.registerSearcher(this)
|
this.spotlight.registerSearcher(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,9 +6,7 @@ import { reactive } from "vue"
|
|||||||
class MockTabService extends TabService<{ request: string }> {
|
class MockTabService extends TabService<{ request: string }> {
|
||||||
public static readonly ID = "MOCK_TAB_SERVICE"
|
public static readonly ID = "MOCK_TAB_SERVICE"
|
||||||
|
|
||||||
constructor() {
|
override onServiceInit() {
|
||||||
super()
|
|
||||||
|
|
||||||
this.tabMap = reactive(
|
this.tabMap = reactive(
|
||||||
new Map([
|
new Map([
|
||||||
[
|
[
|
||||||
|
|||||||
@@ -3,12 +3,15 @@ import { getDefaultGQLRequest } from "~/helpers/graphql/default"
|
|||||||
import { HoppGQLDocument, HoppGQLSaveContext } from "~/helpers/graphql/document"
|
import { HoppGQLDocument, HoppGQLSaveContext } from "~/helpers/graphql/document"
|
||||||
import { TabService } from "./tab"
|
import { TabService } from "./tab"
|
||||||
import { computed } from "vue"
|
import { computed } from "vue"
|
||||||
|
import { Container } from "dioc"
|
||||||
|
|
||||||
export class GQLTabService extends TabService<HoppGQLDocument> {
|
export class GQLTabService extends TabService<HoppGQLDocument> {
|
||||||
public static readonly ID = "GQL_TAB_SERVICE"
|
public static readonly ID = "GQL_TAB_SERVICE"
|
||||||
|
|
||||||
constructor() {
|
// TODO: Moving this to `onServiceInit` breaks `persistableTabState`
|
||||||
super()
|
// Figure out how to fix this
|
||||||
|
constructor(c: Container) {
|
||||||
|
super(c)
|
||||||
|
|
||||||
this.tabMap.set("test", {
|
this.tabMap.set("test", {
|
||||||
id: "test",
|
id: "test",
|
||||||
|
|||||||
@@ -3,12 +3,15 @@ import { computed } from "vue"
|
|||||||
import { getDefaultRESTRequest } from "~/helpers/rest/default"
|
import { getDefaultRESTRequest } from "~/helpers/rest/default"
|
||||||
import { HoppRESTDocument, HoppRESTSaveContext } from "~/helpers/rest/document"
|
import { HoppRESTDocument, HoppRESTSaveContext } from "~/helpers/rest/document"
|
||||||
import { TabService } from "./tab"
|
import { TabService } from "./tab"
|
||||||
|
import { Container } from "dioc"
|
||||||
|
|
||||||
export class RESTTabService extends TabService<HoppRESTDocument> {
|
export class RESTTabService extends TabService<HoppRESTDocument> {
|
||||||
public static readonly ID = "REST_TAB_SERVICE"
|
public static readonly ID = "REST_TAB_SERVICE"
|
||||||
|
|
||||||
constructor() {
|
// TODO: Moving this to `onServiceInit` breaks `persistableTabState`
|
||||||
super()
|
// Figure out how to fix this
|
||||||
|
constructor(c: Container) {
|
||||||
|
super(c)
|
||||||
|
|
||||||
this.tabMap.set("test", {
|
this.tabMap.set("test", {
|
||||||
id: "test",
|
id: "test",
|
||||||
|
|||||||
@@ -5,13 +5,24 @@ import { useStreamStatic } from "~/composables/stream"
|
|||||||
import TeamListAdapter from "~/helpers/teams/TeamListAdapter"
|
import TeamListAdapter from "~/helpers/teams/TeamListAdapter"
|
||||||
import { platform } from "~/platform"
|
import { platform } from "~/platform"
|
||||||
import { min } from "lodash-es"
|
import { min } from "lodash-es"
|
||||||
|
import { TeamMemberRole } from "~/helpers/backend/graphql"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Defines a workspace and its information
|
* Defines a workspace and its information
|
||||||
*/
|
*/
|
||||||
export type Workspace =
|
|
||||||
| { type: "personal" }
|
export type PersonalWorkspace = {
|
||||||
| { type: "team"; teamID: string; teamName: string }
|
type: "personal"
|
||||||
|
}
|
||||||
|
|
||||||
|
export type TeamWorkspace = {
|
||||||
|
type: "team"
|
||||||
|
teamID: string
|
||||||
|
teamName: string
|
||||||
|
role: TeamMemberRole | null | undefined
|
||||||
|
}
|
||||||
|
|
||||||
|
export type Workspace = PersonalWorkspace | TeamWorkspace
|
||||||
|
|
||||||
export type WorkspaceServiceEvent = {
|
export type WorkspaceServiceEvent = {
|
||||||
type: "managed-team-list-adapter-polled"
|
type: "managed-team-list-adapter-polled"
|
||||||
@@ -48,8 +59,7 @@ export class WorkspaceService extends Service<WorkspaceServiceEvent> {
|
|||||||
-1
|
-1
|
||||||
)
|
)
|
||||||
|
|
||||||
constructor() {
|
override onServiceInit() {
|
||||||
super()
|
|
||||||
// Dispose the managed team list adapter when the user logs out
|
// Dispose the managed team list adapter when the user logs out
|
||||||
// and initialize it when the user logs in
|
// and initialize it when the user logs in
|
||||||
watch(
|
watch(
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@hoppscotch/selfhost-desktop",
|
"name": "@hoppscotch/selfhost-desktop",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "2024.3.0",
|
"version": "2024.3.3",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev:vite": "vite",
|
"dev:vite": "vite",
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
"@vueuse/core": "10.5.0",
|
"@vueuse/core": "10.5.0",
|
||||||
"axios": "0.21.4",
|
"axios": "0.21.4",
|
||||||
"buffer": "6.0.3",
|
"buffer": "6.0.3",
|
||||||
"dioc": "1.0.1",
|
"dioc": "3.0.1",
|
||||||
"environments.api": "link:@platform/environments/environments.api",
|
"environments.api": "link:@platform/environments/environments.api",
|
||||||
"event": "link:@tauri-apps/api/event",
|
"event": "link:@tauri-apps/api/event",
|
||||||
"fp-ts": "2.16.1",
|
"fp-ts": "2.16.1",
|
||||||
|
|||||||
@@ -1260,7 +1260,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "hoppscotch-desktop"
|
name = "hoppscotch-desktop"
|
||||||
version = "24.3.1"
|
version = "24.3.2"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cocoa 0.25.0",
|
"cocoa 0.25.0",
|
||||||
"hex_color",
|
"hex_color",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "hoppscotch-desktop"
|
name = "hoppscotch-desktop"
|
||||||
version = "24.3.0"
|
version = "24.3.3"
|
||||||
description = "A Tauri App"
|
description = "A Tauri App"
|
||||||
authors = ["you"]
|
authors = ["you"]
|
||||||
license = ""
|
license = ""
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
},
|
},
|
||||||
"package": {
|
"package": {
|
||||||
"productName": "Hoppscotch",
|
"productName": "Hoppscotch",
|
||||||
"version": "24.3.1"
|
"version": "24.3.3"
|
||||||
},
|
},
|
||||||
"tauri": {
|
"tauri": {
|
||||||
"allowlist": {
|
"allowlist": {
|
||||||
|
|||||||
@@ -138,10 +138,6 @@ export class NativeInterceptorService extends Service implements Interceptor {
|
|||||||
|
|
||||||
public cookieJarService = this.bind(CookieJarService)
|
public cookieJarService = this.bind(CookieJarService)
|
||||||
|
|
||||||
constructor() {
|
|
||||||
super()
|
|
||||||
}
|
|
||||||
|
|
||||||
public runRequest(req: any) {
|
public runRequest(req: any) {
|
||||||
const processedReq = preProcessRequest(req)
|
const processedReq = preProcessRequest(req)
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@hoppscotch/selfhost-web",
|
"name": "@hoppscotch/selfhost-web",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "2024.3.1",
|
"version": "2024.3.3",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev:vite": "vite",
|
"dev:vite": "vite",
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ createHoppApp("#app", {
|
|||||||
history: historyDef,
|
history: historyDef,
|
||||||
},
|
},
|
||||||
interceptors: {
|
interceptors: {
|
||||||
default: "browser",
|
default: "proxy",
|
||||||
interceptors: [
|
interceptors: [
|
||||||
{ type: "standalone", interceptor: browserInterceptor },
|
{ type: "standalone", interceptor: browserInterceptor },
|
||||||
{ type: "standalone", interceptor: proxyInterceptor },
|
{ type: "standalone", interceptor: proxyInterceptor },
|
||||||
|
|||||||
@@ -52,7 +52,8 @@
|
|||||||
"title": "Server is restarting"
|
"title": "Server is restarting"
|
||||||
},
|
},
|
||||||
"save_changes": "Save Changes",
|
"save_changes": "Save Changes",
|
||||||
"title": "Configurations"
|
"title": "Configurations",
|
||||||
|
"update_failure": "Failed to update server configurations"
|
||||||
},
|
},
|
||||||
"data_sharing": {
|
"data_sharing": {
|
||||||
"description": "Share anonymous data usage to improve Hoppscotch",
|
"description": "Share anonymous data usage to improve Hoppscotch",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "hoppscotch-sh-admin",
|
"name": "hoppscotch-sh-admin",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "2024.3.1",
|
"version": "2024.3.3",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "pnpm exec npm-run-all -p -l dev:*",
|
"dev": "pnpm exec npm-run-all -p -l dev:*",
|
||||||
|
|||||||
@@ -69,18 +69,18 @@
|
|||||||
import { useVModel } from '@vueuse/core';
|
import { useVModel } from '@vueuse/core';
|
||||||
import { reactive } from 'vue';
|
import { reactive } from 'vue';
|
||||||
import { useI18n } from '~/composables/i18n';
|
import { useI18n } from '~/composables/i18n';
|
||||||
import { Config, SsoAuthProviders } from '~/composables/useConfigHandler';
|
import { ServerConfigs, SsoAuthProviders } from '~/helpers/configs';
|
||||||
import IconEye from '~icons/lucide/eye';
|
import IconEye from '~icons/lucide/eye';
|
||||||
import IconEyeOff from '~icons/lucide/eye-off';
|
import IconEyeOff from '~icons/lucide/eye-off';
|
||||||
|
|
||||||
const t = useI18n();
|
const t = useI18n();
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
config: Config;
|
config: ServerConfigs;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const emit = defineEmits<{
|
const emit = defineEmits<{
|
||||||
(e: 'update:config', v: Config): void;
|
(e: 'update:config', v: ServerConfigs): void;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const workingConfigs = useVModel(props, 'config', emit);
|
const workingConfigs = useVModel(props, 'config', emit);
|
||||||
@@ -93,7 +93,7 @@ const capitalize = (text: string) =>
|
|||||||
type ProviderFieldKeys = keyof ProviderFields;
|
type ProviderFieldKeys = keyof ProviderFields;
|
||||||
|
|
||||||
type ProviderFields = {
|
type ProviderFields = {
|
||||||
[Field in keyof Config['providers'][SsoAuthProviders]['fields']]: boolean;
|
[Field in keyof ServerConfigs['providers'][SsoAuthProviders]['fields']]: boolean;
|
||||||
} & Partial<{ tenant: boolean }>;
|
} & Partial<{ tenant: boolean }>;
|
||||||
|
|
||||||
type ProviderFieldMetadata = {
|
type ProviderFieldMetadata = {
|
||||||
|
|||||||
@@ -9,14 +9,14 @@
|
|||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { useVModel } from '@vueuse/core';
|
import { useVModel } from '@vueuse/core';
|
||||||
import { Config } from '~/composables/useConfigHandler';
|
import { ServerConfigs } from '~/helpers/configs';
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
config: Config;
|
config: ServerConfigs;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const emit = defineEmits<{
|
const emit = defineEmits<{
|
||||||
(e: 'update:config', v: Config): void;
|
(e: 'update:config', v: ServerConfigs): void;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const workingConfigs = useVModel(props, 'config', emit);
|
const workingConfigs = useVModel(props, 'config', emit);
|
||||||
|
|||||||
@@ -38,17 +38,17 @@
|
|||||||
import { useVModel } from '@vueuse/core';
|
import { useVModel } from '@vueuse/core';
|
||||||
import { computed } from 'vue';
|
import { computed } from 'vue';
|
||||||
import { useI18n } from '~/composables/i18n';
|
import { useI18n } from '~/composables/i18n';
|
||||||
import { Config } from '~/composables/useConfigHandler';
|
import { ServerConfigs } from '~/helpers/configs';
|
||||||
import IconShieldQuestion from '~icons/lucide/shield-question';
|
import IconShieldQuestion from '~icons/lucide/shield-question';
|
||||||
|
|
||||||
const t = useI18n();
|
const t = useI18n();
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
config: Config;
|
config: ServerConfigs;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const emit = defineEmits<{
|
const emit = defineEmits<{
|
||||||
(e: 'update:config', v: Config): void;
|
(e: 'update:config', v: ServerConfigs): void;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const workingConfigs = useVModel(props, 'config', emit);
|
const workingConfigs = useVModel(props, 'config', emit);
|
||||||
|
|||||||
@@ -17,20 +17,21 @@ import { useMutation } from '@urql/vue';
|
|||||||
import { onMounted, ref } from 'vue';
|
import { onMounted, ref } from 'vue';
|
||||||
import { useI18n } from '~/composables/i18n';
|
import { useI18n } from '~/composables/i18n';
|
||||||
import { useToast } from '~/composables/toast';
|
import { useToast } from '~/composables/toast';
|
||||||
import { Config, useConfigHandler } from '~/composables/useConfigHandler';
|
import { useConfigHandler } from '~/composables/useConfigHandler';
|
||||||
import {
|
import {
|
||||||
EnableAndDisableSsoDocument,
|
EnableAndDisableSsoDocument,
|
||||||
ResetInfraConfigsDocument,
|
ResetInfraConfigsDocument,
|
||||||
UpdateInfraConfigsDocument,
|
|
||||||
ToggleAnalyticsCollectionDocument,
|
ToggleAnalyticsCollectionDocument,
|
||||||
|
UpdateInfraConfigsDocument,
|
||||||
} from '~/helpers/backend/graphql';
|
} from '~/helpers/backend/graphql';
|
||||||
|
import { ServerConfigs } from '~/helpers/configs';
|
||||||
|
|
||||||
const t = useI18n();
|
const t = useI18n();
|
||||||
const toast = useToast();
|
const toast = useToast();
|
||||||
|
|
||||||
const props = withDefaults(
|
const props = withDefaults(
|
||||||
defineProps<{
|
defineProps<{
|
||||||
workingConfigs?: Config;
|
workingConfigs?: ServerConfigs;
|
||||||
reset?: boolean;
|
reset?: boolean;
|
||||||
}>(),
|
}>(),
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -58,18 +58,18 @@
|
|||||||
import { useVModel } from '@vueuse/core';
|
import { useVModel } from '@vueuse/core';
|
||||||
import { computed, reactive } from 'vue';
|
import { computed, reactive } from 'vue';
|
||||||
import { useI18n } from '~/composables/i18n';
|
import { useI18n } from '~/composables/i18n';
|
||||||
import { Config } from '~/composables/useConfigHandler';
|
import { ServerConfigs } from '~/helpers/configs';
|
||||||
import IconEye from '~icons/lucide/eye';
|
import IconEye from '~icons/lucide/eye';
|
||||||
import IconEyeOff from '~icons/lucide/eye-off';
|
import IconEyeOff from '~icons/lucide/eye-off';
|
||||||
|
|
||||||
const t = useI18n();
|
const t = useI18n();
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
config: Config;
|
config: ServerConfigs;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const emit = defineEmits<{
|
const emit = defineEmits<{
|
||||||
(e: 'update:config', v: Config): void;
|
(e: 'update:config', v: ServerConfigs): void;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const workingConfigs = useVModel(props, 'config', emit);
|
const workingConfigs = useVModel(props, 'config', emit);
|
||||||
@@ -87,7 +87,7 @@ const smtpConfigs = computed({
|
|||||||
// Mask sensitive fields
|
// Mask sensitive fields
|
||||||
type Field = {
|
type Field = {
|
||||||
name: string;
|
name: string;
|
||||||
key: keyof Config['mailConfigs']['fields'];
|
key: keyof ServerConfigs['mailConfigs']['fields'];
|
||||||
};
|
};
|
||||||
|
|
||||||
const smtpConfigFields = reactive<Field[]>([
|
const smtpConfigFields = reactive<Field[]>([
|
||||||
@@ -100,10 +100,10 @@ const maskState = reactive<Record<string, boolean>>({
|
|||||||
mailer_from_address: true,
|
mailer_from_address: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
const toggleMask = (fieldKey: keyof Config['mailConfigs']['fields']) => {
|
const toggleMask = (fieldKey: keyof ServerConfigs['mailConfigs']['fields']) => {
|
||||||
maskState[fieldKey] = !maskState[fieldKey];
|
maskState[fieldKey] = !maskState[fieldKey];
|
||||||
};
|
};
|
||||||
|
|
||||||
const isMasked = (fieldKey: keyof Config['mailConfigs']['fields']) =>
|
const isMasked = (fieldKey: keyof ServerConfigs['mailConfigs']['fields']) =>
|
||||||
maskState[fieldKey];
|
maskState[fieldKey];
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,83 +1,39 @@
|
|||||||
import { AnyVariables, UseMutationResponse } from '@urql/vue';
|
import { AnyVariables, UseMutationResponse } from '@urql/vue';
|
||||||
import { cloneDeep } from 'lodash-es';
|
import { cloneDeep } from 'lodash-es';
|
||||||
import { computed, onMounted, ref } from 'vue';
|
import { onMounted, ref } from 'vue';
|
||||||
|
|
||||||
import { useI18n } from '~/composables/i18n';
|
import { useI18n } from '~/composables/i18n';
|
||||||
import {
|
import {
|
||||||
AllowedAuthProvidersDocument,
|
AllowedAuthProvidersDocument,
|
||||||
|
AuthProvider,
|
||||||
EnableAndDisableSsoArgs,
|
EnableAndDisableSsoArgs,
|
||||||
EnableAndDisableSsoMutation,
|
EnableAndDisableSsoMutation,
|
||||||
InfraConfigArgs,
|
InfraConfigArgs,
|
||||||
InfraConfigEnum,
|
InfraConfigEnum,
|
||||||
InfraConfigsDocument,
|
InfraConfigsDocument,
|
||||||
ResetInfraConfigsMutation,
|
ResetInfraConfigsMutation,
|
||||||
|
ServiceStatus,
|
||||||
ToggleAnalyticsCollectionMutation,
|
ToggleAnalyticsCollectionMutation,
|
||||||
UpdateInfraConfigsMutation,
|
UpdateInfraConfigsMutation,
|
||||||
} from '~/helpers/backend/graphql';
|
} from '~/helpers/backend/graphql';
|
||||||
|
import {
|
||||||
|
ALL_CONFIGS,
|
||||||
|
ConfigSection,
|
||||||
|
ConfigTransform,
|
||||||
|
GITHUB_CONFIGS,
|
||||||
|
GOOGLE_CONFIGS,
|
||||||
|
MAIL_CONFIGS,
|
||||||
|
MICROSOFT_CONFIGS,
|
||||||
|
ServerConfigs,
|
||||||
|
UpdatedConfigs,
|
||||||
|
} from '~/helpers/configs';
|
||||||
import { useToast } from './toast';
|
import { useToast } from './toast';
|
||||||
import { useClientHandler } from './useClientHandler';
|
import { useClientHandler } from './useClientHandler';
|
||||||
|
|
||||||
// Types
|
|
||||||
export type SsoAuthProviders = 'google' | 'microsoft' | 'github';
|
|
||||||
|
|
||||||
export type Config = {
|
|
||||||
providers: {
|
|
||||||
google: {
|
|
||||||
name: SsoAuthProviders;
|
|
||||||
enabled: boolean;
|
|
||||||
fields: {
|
|
||||||
client_id: string;
|
|
||||||
client_secret: string;
|
|
||||||
callback_url: string;
|
|
||||||
scope: string;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
github: {
|
|
||||||
name: SsoAuthProviders;
|
|
||||||
enabled: boolean;
|
|
||||||
fields: {
|
|
||||||
client_id: string;
|
|
||||||
client_secret: string;
|
|
||||||
callback_url: string;
|
|
||||||
scope: string;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
microsoft: {
|
|
||||||
name: SsoAuthProviders;
|
|
||||||
enabled: boolean;
|
|
||||||
fields: {
|
|
||||||
client_id: string;
|
|
||||||
client_secret: string;
|
|
||||||
callback_url: string;
|
|
||||||
scope: string;
|
|
||||||
tenant: string;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
mailConfigs: {
|
|
||||||
name: string;
|
|
||||||
enabled: boolean;
|
|
||||||
fields: {
|
|
||||||
mailer_smtp_url: string;
|
|
||||||
mailer_from_address: string;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
dataSharingConfigs: {
|
|
||||||
name: string;
|
|
||||||
enabled: boolean;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
type UpdatedConfigs = {
|
|
||||||
name: string;
|
|
||||||
value: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
/** Composable that handles all operations related to server configurations
|
/** Composable that handles all operations related to server configurations
|
||||||
* @param updatedConfigs A Config Object contatining the updated configs
|
* @param updatedConfigs A Config Object contatining the updated configs
|
||||||
*/
|
*/
|
||||||
export function useConfigHandler(updatedConfigs?: Config) {
|
export function useConfigHandler(updatedConfigs?: ServerConfigs) {
|
||||||
const t = useI18n();
|
const t = useI18n();
|
||||||
const toast = useToast();
|
const toast = useToast();
|
||||||
|
|
||||||
@@ -90,24 +46,9 @@ export function useConfigHandler(updatedConfigs?: Config) {
|
|||||||
} = useClientHandler(
|
} = useClientHandler(
|
||||||
InfraConfigsDocument,
|
InfraConfigsDocument,
|
||||||
{
|
{
|
||||||
configNames: [
|
configNames: ALL_CONFIGS.flat().map(
|
||||||
'GOOGLE_CLIENT_ID',
|
({ name }) => name
|
||||||
'GOOGLE_CLIENT_SECRET',
|
) as InfraConfigEnum[],
|
||||||
'GOOGLE_CALLBACK_URL',
|
|
||||||
'GOOGLE_SCOPE',
|
|
||||||
'MICROSOFT_CLIENT_ID',
|
|
||||||
'MICROSOFT_CLIENT_SECRET',
|
|
||||||
'MICROSOFT_CALLBACK_URL',
|
|
||||||
'MICROSOFT_SCOPE',
|
|
||||||
'MICROSOFT_TENANT',
|
|
||||||
'GITHUB_CLIENT_ID',
|
|
||||||
'GITHUB_CLIENT_SECRET',
|
|
||||||
'GITHUB_CALLBACK_URL',
|
|
||||||
'GITHUB_SCOPE',
|
|
||||||
'MAILER_SMTP_URL',
|
|
||||||
'MAILER_ADDRESS_FROM',
|
|
||||||
'ALLOW_ANALYTICS_COLLECTION',
|
|
||||||
] as InfraConfigEnum[],
|
|
||||||
},
|
},
|
||||||
(x) => x.infraConfigs
|
(x) => x.infraConfigs
|
||||||
);
|
);
|
||||||
@@ -125,14 +66,14 @@ export function useConfigHandler(updatedConfigs?: Config) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
// Current and working configs
|
// Current and working configs
|
||||||
const currentConfigs = ref<Config>();
|
const currentConfigs = ref<ServerConfigs>();
|
||||||
const workingConfigs = ref<Config>();
|
const workingConfigs = ref<ServerConfigs>();
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
await fetchInfraConfigs();
|
await fetchInfraConfigs();
|
||||||
await fetchAllowedAuthProviders();
|
await fetchAllowedAuthProviders();
|
||||||
|
|
||||||
const getFieldValue = (name: string) =>
|
const getFieldValue = (name: InfraConfigEnum) =>
|
||||||
infraConfigs.value.find((x) => x.name === name)?.value ?? '';
|
infraConfigs.value.find((x) => x.name === name)?.value ?? '';
|
||||||
|
|
||||||
// Transforming the fetched data into a Configs object
|
// Transforming the fetched data into a Configs object
|
||||||
@@ -140,42 +81,42 @@ export function useConfigHandler(updatedConfigs?: Config) {
|
|||||||
providers: {
|
providers: {
|
||||||
google: {
|
google: {
|
||||||
name: 'google',
|
name: 'google',
|
||||||
enabled: allowedAuthProviders.value.includes('GOOGLE'),
|
enabled: allowedAuthProviders.value.includes(AuthProvider.Google),
|
||||||
fields: {
|
fields: {
|
||||||
client_id: getFieldValue('GOOGLE_CLIENT_ID'),
|
client_id: getFieldValue(InfraConfigEnum.GoogleClientId),
|
||||||
client_secret: getFieldValue('GOOGLE_CLIENT_SECRET'),
|
client_secret: getFieldValue(InfraConfigEnum.GoogleClientSecret),
|
||||||
callback_url: getFieldValue('GOOGLE_CALLBACK_URL'),
|
callback_url: getFieldValue(InfraConfigEnum.GoogleCallbackUrl),
|
||||||
scope: getFieldValue('GOOGLE_SCOPE'),
|
scope: getFieldValue(InfraConfigEnum.GoogleScope),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
github: {
|
github: {
|
||||||
name: 'github',
|
name: 'github',
|
||||||
enabled: allowedAuthProviders.value.includes('GITHUB'),
|
enabled: allowedAuthProviders.value.includes(AuthProvider.Github),
|
||||||
fields: {
|
fields: {
|
||||||
client_id: getFieldValue('GITHUB_CLIENT_ID'),
|
client_id: getFieldValue(InfraConfigEnum.GithubClientId),
|
||||||
client_secret: getFieldValue('GITHUB_CLIENT_SECRET'),
|
client_secret: getFieldValue(InfraConfigEnum.GithubClientSecret),
|
||||||
callback_url: getFieldValue('GITHUB_CALLBACK_URL'),
|
callback_url: getFieldValue(InfraConfigEnum.GoogleCallbackUrl),
|
||||||
scope: getFieldValue('GITHUB_SCOPE'),
|
scope: getFieldValue(InfraConfigEnum.GithubScope),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
microsoft: {
|
microsoft: {
|
||||||
name: 'microsoft',
|
name: 'microsoft',
|
||||||
enabled: allowedAuthProviders.value.includes('MICROSOFT'),
|
enabled: allowedAuthProviders.value.includes(AuthProvider.Microsoft),
|
||||||
fields: {
|
fields: {
|
||||||
client_id: getFieldValue('MICROSOFT_CLIENT_ID'),
|
client_id: getFieldValue(InfraConfigEnum.MicrosoftClientId),
|
||||||
client_secret: getFieldValue('MICROSOFT_CLIENT_SECRET'),
|
client_secret: getFieldValue(InfraConfigEnum.MicrosoftClientSecret),
|
||||||
callback_url: getFieldValue('MICROSOFT_CALLBACK_URL'),
|
callback_url: getFieldValue(InfraConfigEnum.MicrosoftCallbackUrl),
|
||||||
scope: getFieldValue('MICROSOFT_SCOPE'),
|
scope: getFieldValue(InfraConfigEnum.MicrosoftScope),
|
||||||
tenant: getFieldValue('MICROSOFT_TENANT'),
|
tenant: getFieldValue(InfraConfigEnum.MicrosoftTenant),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
mailConfigs: {
|
mailConfigs: {
|
||||||
name: 'email',
|
name: 'email',
|
||||||
enabled: allowedAuthProviders.value.includes('EMAIL'),
|
enabled: allowedAuthProviders.value.includes(AuthProvider.Email),
|
||||||
fields: {
|
fields: {
|
||||||
mailer_smtp_url: getFieldValue('MAILER_SMTP_URL'),
|
mailer_smtp_url: getFieldValue(InfraConfigEnum.MailerSmtpUrl),
|
||||||
mailer_from_address: getFieldValue('MAILER_ADDRESS_FROM'),
|
mailer_from_address: getFieldValue(InfraConfigEnum.MailerAddressFrom),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
dataSharingConfigs: {
|
dataSharingConfigs: {
|
||||||
@@ -191,138 +132,13 @@ export function useConfigHandler(updatedConfigs?: Config) {
|
|||||||
workingConfigs.value = cloneDeep(currentConfigs.value);
|
workingConfigs.value = cloneDeep(currentConfigs.value);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Transforming the working configs back into the format required by the mutations
|
/*
|
||||||
const updatedInfraConfigs = computed(() => {
|
Check if any of the config fields are empty
|
||||||
let config: UpdatedConfigs[] = [
|
*/
|
||||||
{
|
|
||||||
name: '',
|
|
||||||
value: '',
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
if (updatedConfigs?.providers.google.enabled) {
|
|
||||||
config.push(
|
|
||||||
{
|
|
||||||
name: 'GOOGLE_CLIENT_ID',
|
|
||||||
value: updatedConfigs?.providers.google.fields.client_id ?? '',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'GOOGLE_CLIENT_SECRET',
|
|
||||||
value: updatedConfigs?.providers.google.fields.client_secret ?? '',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'GOOGLE_CALLBACK_URL',
|
|
||||||
value: updatedConfigs?.providers.google.fields.callback_url ?? '',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'GOOGLE_SCOPE',
|
|
||||||
value: updatedConfigs?.providers.google.fields.scope ?? '',
|
|
||||||
}
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
config = config.filter(
|
|
||||||
(item) =>
|
|
||||||
item.name !== 'GOOGLE_CLIENT_ID' &&
|
|
||||||
item.name !== 'GOOGLE_CLIENT_SECRET' &&
|
|
||||||
item.name !== 'GOOGLE_CALLBACK_URL' &&
|
|
||||||
item.name !== 'GOOGLE_SCOPE'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (updatedConfigs?.providers.microsoft.enabled) {
|
|
||||||
config.push(
|
|
||||||
{
|
|
||||||
name: 'MICROSOFT_CLIENT_ID',
|
|
||||||
value: updatedConfigs?.providers.microsoft.fields.client_id ?? '',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'MICROSOFT_CLIENT_SECRET',
|
|
||||||
value: updatedConfigs?.providers.microsoft.fields.client_secret ?? '',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'MICROSOFT_CALLBACK_URL',
|
|
||||||
value: updatedConfigs?.providers.microsoft.fields.callback_url ?? '',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'MICROSOFT_SCOPE',
|
|
||||||
value: updatedConfigs?.providers.microsoft.fields.scope ?? '',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'MICROSOFT_TENANT',
|
|
||||||
value: updatedConfigs?.providers.microsoft.fields.tenant ?? '',
|
|
||||||
}
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
config = config.filter(
|
|
||||||
(item) =>
|
|
||||||
item.name !== 'MICROSOFT_CLIENT_ID' &&
|
|
||||||
item.name !== 'MICROSOFT_CLIENT_SECRET' &&
|
|
||||||
item.name !== 'MICROSOFT_CALLBACK_URL' &&
|
|
||||||
item.name !== 'MICROSOFT_SCOPE' &&
|
|
||||||
item.name !== 'MICROSOFT_TENANT'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (updatedConfigs?.providers.github.enabled) {
|
|
||||||
config.push(
|
|
||||||
{
|
|
||||||
name: 'GITHUB_CLIENT_ID',
|
|
||||||
value: updatedConfigs?.providers.github.fields.client_id ?? '',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'GITHUB_CLIENT_SECRET',
|
|
||||||
value: updatedConfigs?.providers.github.fields.client_secret ?? '',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'GITHUB_CALLBACK_URL',
|
|
||||||
value: updatedConfigs?.providers.github.fields.callback_url ?? '',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'GITHUB_SCOPE',
|
|
||||||
value: updatedConfigs?.providers.github.fields.scope ?? '',
|
|
||||||
}
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
config = config.filter(
|
|
||||||
(item) =>
|
|
||||||
item.name !== 'GITHUB_CLIENT_ID' &&
|
|
||||||
item.name !== 'GITHUB_CLIENT_SECRET' &&
|
|
||||||
item.name !== 'GITHUB_CALLBACK_URL' &&
|
|
||||||
item.name !== 'GITHUB_SCOPE'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (updatedConfigs?.mailConfigs.enabled) {
|
|
||||||
config.push(
|
|
||||||
{
|
|
||||||
name: 'MAILER_SMTP_URL',
|
|
||||||
value: updatedConfigs?.mailConfigs.fields.mailer_smtp_url ?? '',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'MAILER_ADDRESS_FROM',
|
|
||||||
value: updatedConfigs?.mailConfigs.fields.mailer_from_address ?? '',
|
|
||||||
}
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
config = config.filter(
|
|
||||||
(item) =>
|
|
||||||
item.name !== 'MAILER_SMTP_URL' && item.name !== 'MAILER_ADDRESS_FROM'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
config = config.filter((item) => item.name !== '');
|
|
||||||
|
|
||||||
return config;
|
|
||||||
});
|
|
||||||
|
|
||||||
// Checking if any of the config fields are empty
|
|
||||||
const isFieldEmpty = (field: string) => field.trim() === '';
|
const isFieldEmpty = (field: string) => field.trim() === '';
|
||||||
|
|
||||||
type ConfigSection = {
|
const AreAnyConfigFieldsEmpty = (config: ServerConfigs): boolean => {
|
||||||
enabled: boolean;
|
|
||||||
fields: Record<string, string>;
|
|
||||||
};
|
|
||||||
|
|
||||||
const AreAnyConfigFieldsEmpty = (config: Config): boolean => {
|
|
||||||
const sections: Array<ConfigSection> = [
|
const sections: Array<ConfigSection> = [
|
||||||
config.providers.github,
|
config.providers.github,
|
||||||
config.providers.google,
|
config.providers.google,
|
||||||
@@ -337,28 +153,44 @@ export function useConfigHandler(updatedConfigs?: Config) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Transforming the working configs back into the format required by the mutations
|
// Transforming the working configs back into the format required by the mutations
|
||||||
const updatedAllowedAuthProviders = computed(() => {
|
const transformInfraConfigs = () => {
|
||||||
return [
|
const updatedWorkingConfigs: ConfigTransform[] = [
|
||||||
{
|
{
|
||||||
provider: 'GOOGLE',
|
config: GOOGLE_CONFIGS,
|
||||||
status: updatedConfigs?.providers.google.enabled ? 'ENABLE' : 'DISABLE',
|
enabled: updatedConfigs?.providers.google.enabled,
|
||||||
|
fields: updatedConfigs?.providers.google.fields,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provider: 'MICROSOFT',
|
config: GITHUB_CONFIGS,
|
||||||
status: updatedConfigs?.providers.microsoft.enabled
|
enabled: updatedConfigs?.providers.github.enabled,
|
||||||
? 'ENABLE'
|
fields: updatedConfigs?.providers.github.fields,
|
||||||
: 'DISABLE',
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provider: 'GITHUB',
|
config: MICROSOFT_CONFIGS,
|
||||||
status: updatedConfigs?.providers.github.enabled ? 'ENABLE' : 'DISABLE',
|
enabled: updatedConfigs?.providers.microsoft.enabled,
|
||||||
|
fields: updatedConfigs?.providers.microsoft.fields,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provider: 'EMAIL',
|
config: MAIL_CONFIGS,
|
||||||
status: updatedConfigs?.mailConfigs.enabled ? 'ENABLE' : 'DISABLE',
|
enabled: updatedConfigs?.mailConfigs.enabled,
|
||||||
|
fields: updatedConfigs?.mailConfigs.fields,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
const transformedConfigs: UpdatedConfigs[] = [];
|
||||||
|
|
||||||
|
updatedWorkingConfigs.forEach(({ config, enabled, fields }) => {
|
||||||
|
config.forEach(({ name, key }) => {
|
||||||
|
if (enabled && fields) {
|
||||||
|
const value =
|
||||||
|
typeof fields === 'string' ? fields : String(fields[key]);
|
||||||
|
transformedConfigs.push({ name, value });
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
return transformedConfigs;
|
||||||
|
};
|
||||||
|
|
||||||
// Generic function to handle mutation execution and error handling
|
// Generic function to handle mutation execution and error handling
|
||||||
const executeMutation = async <T, V>(
|
const executeMutation = async <T, V>(
|
||||||
@@ -379,27 +211,59 @@ export function useConfigHandler(updatedConfigs?: Config) {
|
|||||||
// Updating the auth provider configurations
|
// Updating the auth provider configurations
|
||||||
const updateAuthProvider = (
|
const updateAuthProvider = (
|
||||||
updateProviderStatus: UseMutationResponse<EnableAndDisableSsoMutation>
|
updateProviderStatus: UseMutationResponse<EnableAndDisableSsoMutation>
|
||||||
) =>
|
) => {
|
||||||
executeMutation(
|
const updatedAllowedAuthProviders: EnableAndDisableSsoArgs[] = [
|
||||||
|
{
|
||||||
|
provider: AuthProvider.Google,
|
||||||
|
status: updatedConfigs?.providers.google.enabled
|
||||||
|
? ServiceStatus.Enable
|
||||||
|
: ServiceStatus.Disable,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
provider: AuthProvider.Microsoft,
|
||||||
|
status: updatedConfigs?.providers.microsoft.enabled
|
||||||
|
? ServiceStatus.Enable
|
||||||
|
: ServiceStatus.Disable,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
provider: AuthProvider.Github,
|
||||||
|
status: updatedConfigs?.providers.github.enabled
|
||||||
|
? ServiceStatus.Enable
|
||||||
|
: ServiceStatus.Disable,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
provider: AuthProvider.Email,
|
||||||
|
status: updatedConfigs?.mailConfigs.enabled
|
||||||
|
? ServiceStatus.Enable
|
||||||
|
: ServiceStatus.Disable,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
return executeMutation(
|
||||||
updateProviderStatus,
|
updateProviderStatus,
|
||||||
{
|
{
|
||||||
providerInfo:
|
providerInfo: updatedAllowedAuthProviders,
|
||||||
updatedAllowedAuthProviders.value as EnableAndDisableSsoArgs[],
|
|
||||||
},
|
},
|
||||||
'configs.auth_providers.update_failure'
|
'configs.auth_providers.update_failure'
|
||||||
);
|
);
|
||||||
|
};
|
||||||
|
|
||||||
// Updating the infra configurations
|
// Updating the infra configurations
|
||||||
const updateInfraConfigs = (
|
const updateInfraConfigs = (
|
||||||
updateInfraConfigsMutation: UseMutationResponse<UpdateInfraConfigsMutation>
|
updateInfraConfigsMutation: UseMutationResponse<UpdateInfraConfigsMutation>
|
||||||
) =>
|
) => {
|
||||||
executeMutation(
|
const infraConfigs: InfraConfigArgs[] = updatedConfigs
|
||||||
|
? transformInfraConfigs()
|
||||||
|
: [];
|
||||||
|
|
||||||
|
return executeMutation(
|
||||||
updateInfraConfigsMutation,
|
updateInfraConfigsMutation,
|
||||||
{
|
{
|
||||||
infraConfigs: updatedInfraConfigs.value as InfraConfigArgs[],
|
infraConfigs,
|
||||||
},
|
},
|
||||||
'configs.mail_configs.update_failure'
|
'configs.update_failure'
|
||||||
);
|
);
|
||||||
|
};
|
||||||
|
|
||||||
// Resetting the infra configurations
|
// Resetting the infra configurations
|
||||||
const resetInfraConfigs = (
|
const resetInfraConfigs = (
|
||||||
@@ -411,7 +275,6 @@ export function useConfigHandler(updatedConfigs?: Config) {
|
|||||||
'configs.reset.failure'
|
'configs.reset.failure'
|
||||||
);
|
);
|
||||||
|
|
||||||
// Updating the data sharing configurations
|
|
||||||
const updateDataSharingConfigs = (
|
const updateDataSharingConfigs = (
|
||||||
toggleDataSharingMutation: UseMutationResponse<ToggleAnalyticsCollectionMutation>
|
toggleDataSharingMutation: UseMutationResponse<ToggleAnalyticsCollectionMutation>
|
||||||
) =>
|
) =>
|
||||||
@@ -419,8 +282,8 @@ export function useConfigHandler(updatedConfigs?: Config) {
|
|||||||
toggleDataSharingMutation,
|
toggleDataSharingMutation,
|
||||||
{
|
{
|
||||||
status: updatedConfigs?.dataSharingConfigs.enabled
|
status: updatedConfigs?.dataSharingConfigs.enabled
|
||||||
? 'ENABLE'
|
? ServiceStatus.Enable
|
||||||
: 'DISABLE',
|
: ServiceStatus.Disable,
|
||||||
},
|
},
|
||||||
'configs.data_sharing.update_failure'
|
'configs.data_sharing.update_failure'
|
||||||
);
|
);
|
||||||
@@ -428,8 +291,6 @@ export function useConfigHandler(updatedConfigs?: Config) {
|
|||||||
return {
|
return {
|
||||||
currentConfigs,
|
currentConfigs,
|
||||||
workingConfigs,
|
workingConfigs,
|
||||||
updatedInfraConfigs,
|
|
||||||
updatedAllowedAuthProviders,
|
|
||||||
updateAuthProvider,
|
updateAuthProvider,
|
||||||
updateDataSharingConfigs,
|
updateDataSharingConfigs,
|
||||||
updateInfraConfigs,
|
updateInfraConfigs,
|
||||||
|
|||||||
160
packages/hoppscotch-sh-admin/src/helpers/configs.ts
Normal file
160
packages/hoppscotch-sh-admin/src/helpers/configs.ts
Normal file
@@ -0,0 +1,160 @@
|
|||||||
|
import { InfraConfigEnum } from './backend/graphql';
|
||||||
|
|
||||||
|
export type SsoAuthProviders = 'google' | 'microsoft' | 'github';
|
||||||
|
|
||||||
|
export type ServerConfigs = {
|
||||||
|
providers: {
|
||||||
|
google: {
|
||||||
|
name: SsoAuthProviders;
|
||||||
|
enabled: boolean;
|
||||||
|
fields: {
|
||||||
|
client_id: string;
|
||||||
|
client_secret: string;
|
||||||
|
callback_url: string;
|
||||||
|
scope: string;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
github: {
|
||||||
|
name: SsoAuthProviders;
|
||||||
|
enabled: boolean;
|
||||||
|
fields: {
|
||||||
|
client_id: string;
|
||||||
|
client_secret: string;
|
||||||
|
callback_url: string;
|
||||||
|
scope: string;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
microsoft: {
|
||||||
|
name: SsoAuthProviders;
|
||||||
|
enabled: boolean;
|
||||||
|
fields: {
|
||||||
|
client_id: string;
|
||||||
|
client_secret: string;
|
||||||
|
callback_url: string;
|
||||||
|
scope: string;
|
||||||
|
tenant: string;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
mailConfigs: {
|
||||||
|
name: string;
|
||||||
|
enabled: boolean;
|
||||||
|
fields: {
|
||||||
|
mailer_smtp_url: string;
|
||||||
|
mailer_from_address: string;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
dataSharingConfigs: {
|
||||||
|
name: string;
|
||||||
|
enabled: boolean;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
export type UpdatedConfigs = {
|
||||||
|
name: InfraConfigEnum;
|
||||||
|
value: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type ConfigTransform = {
|
||||||
|
config: Config[];
|
||||||
|
enabled?: boolean;
|
||||||
|
fields?: Record<string, string | boolean> | string;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type ConfigSection = {
|
||||||
|
enabled: boolean;
|
||||||
|
fields: Record<string, string>;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type Config = {
|
||||||
|
name: InfraConfigEnum;
|
||||||
|
key: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const GOOGLE_CONFIGS: Config[] = [
|
||||||
|
{
|
||||||
|
name: InfraConfigEnum.GoogleClientId,
|
||||||
|
key: 'client_id',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: InfraConfigEnum.GoogleClientSecret,
|
||||||
|
key: 'client_secret',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: InfraConfigEnum.GoogleCallbackUrl,
|
||||||
|
key: 'callback_url',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: InfraConfigEnum.GoogleScope,
|
||||||
|
key: 'scope',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export const MICROSOFT_CONFIGS: Config[] = [
|
||||||
|
{
|
||||||
|
name: InfraConfigEnum.MicrosoftClientId,
|
||||||
|
key: 'client_id',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: InfraConfigEnum.MicrosoftClientSecret,
|
||||||
|
key: 'client_secret',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: InfraConfigEnum.MicrosoftCallbackUrl,
|
||||||
|
key: 'callback_url',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: InfraConfigEnum.MicrosoftScope,
|
||||||
|
key: 'scope',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: InfraConfigEnum.MicrosoftTenant,
|
||||||
|
key: 'tenant',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export const GITHUB_CONFIGS: Config[] = [
|
||||||
|
{
|
||||||
|
name: InfraConfigEnum.GithubClientId,
|
||||||
|
key: 'client_id',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: InfraConfigEnum.GithubClientSecret,
|
||||||
|
key: 'client_secret',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: InfraConfigEnum.GithubCallbackUrl,
|
||||||
|
key: 'callback_url',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: InfraConfigEnum.GithubScope,
|
||||||
|
key: 'scope',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export const MAIL_CONFIGS: Config[] = [
|
||||||
|
{
|
||||||
|
name: InfraConfigEnum.MailerSmtpUrl,
|
||||||
|
key: 'mailer_smtp_url',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: InfraConfigEnum.MailerAddressFrom,
|
||||||
|
key: 'mailer_from_address',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
const DATA_SHARING_CONFIGS: Omit<Config, 'key'>[] = [
|
||||||
|
{
|
||||||
|
name: InfraConfigEnum.AllowAnalyticsCollection,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export const ALL_CONFIGS = [
|
||||||
|
GOOGLE_CONFIGS,
|
||||||
|
MICROSOFT_CONFIGS,
|
||||||
|
GITHUB_CONFIGS,
|
||||||
|
MAIL_CONFIGS,
|
||||||
|
DATA_SHARING_CONFIGS,
|
||||||
|
];
|
||||||
@@ -208,13 +208,14 @@ const deleteUserMutation = async (id: string | null) => {
|
|||||||
if (result.error) {
|
if (result.error) {
|
||||||
toast.error(t('state.delete_user_failure'));
|
toast.error(t('state.delete_user_failure'));
|
||||||
} else {
|
} else {
|
||||||
const deletedUsers = result.data?.removeUsersByAdmin || [];
|
const deletedUser = result.data?.removeUsersByAdmin || [];
|
||||||
|
handleUserDeletion(deletedUser);
|
||||||
|
|
||||||
handleUserDeletion(deletedUsers);
|
const { isDeleted } = deletedUser[0];
|
||||||
|
if (isDeleted) router.push('/users');
|
||||||
}
|
}
|
||||||
|
|
||||||
confirmDeletion.value = false;
|
confirmDeletion.value = false;
|
||||||
deleteUserUID.value = null;
|
deleteUserUID.value = null;
|
||||||
|
|
||||||
!result.error && router.push('/users');
|
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
333
pnpm-lock.yaml
generated
333
pnpm-lock.yaml
generated
@@ -7,7 +7,7 @@ settings:
|
|||||||
overrides:
|
overrides:
|
||||||
vue: 3.3.9
|
vue: 3.3.9
|
||||||
|
|
||||||
packageExtensionsChecksum: bdb9819fb2a1070afb75d3fc2c7fd132
|
packageExtensionsChecksum: e7f8d2e2f491662822f685ff3c4b1274
|
||||||
|
|
||||||
importers:
|
importers:
|
||||||
|
|
||||||
@@ -104,6 +104,9 @@ importers:
|
|||||||
'@nestjs/schedule':
|
'@nestjs/schedule':
|
||||||
specifier: 4.0.1
|
specifier: 4.0.1
|
||||||
version: 4.0.1(@nestjs/common@10.2.7(reflect-metadata@0.1.13)(rxjs@7.6.0))(@nestjs/core@10.2.7(@nestjs/common@10.2.7(reflect-metadata@0.1.13)(rxjs@7.6.0))(@nestjs/platform-express@10.2.7)(reflect-metadata@0.1.13)(rxjs@7.6.0))
|
version: 4.0.1(@nestjs/common@10.2.7(reflect-metadata@0.1.13)(rxjs@7.6.0))(@nestjs/core@10.2.7(@nestjs/common@10.2.7(reflect-metadata@0.1.13)(rxjs@7.6.0))(@nestjs/platform-express@10.2.7)(reflect-metadata@0.1.13)(rxjs@7.6.0))
|
||||||
|
'@nestjs/terminus':
|
||||||
|
specifier: 10.2.3
|
||||||
|
version: 10.2.3(@nestjs/common@10.2.7(reflect-metadata@0.1.13)(rxjs@7.6.0))(@nestjs/core@10.2.7(@nestjs/common@10.2.7(reflect-metadata@0.1.13)(rxjs@7.6.0))(@nestjs/platform-express@10.2.7)(reflect-metadata@0.1.13)(rxjs@7.6.0))(@prisma/client@5.8.1(prisma@5.8.1))(reflect-metadata@0.1.13)(rxjs@7.6.0)
|
||||||
'@nestjs/throttler':
|
'@nestjs/throttler':
|
||||||
specifier: 5.0.1
|
specifier: 5.0.1
|
||||||
version: 5.0.1(@nestjs/common@10.2.7(reflect-metadata@0.1.13)(rxjs@7.6.0))(@nestjs/core@10.2.7(@nestjs/common@10.2.7(reflect-metadata@0.1.13)(rxjs@7.6.0))(@nestjs/platform-express@10.2.7)(reflect-metadata@0.1.13)(rxjs@7.6.0))(reflect-metadata@0.1.13)
|
version: 5.0.1(@nestjs/common@10.2.7(reflect-metadata@0.1.13)(rxjs@7.6.0))(@nestjs/core@10.2.7(@nestjs/common@10.2.7(reflect-metadata@0.1.13)(rxjs@7.6.0))(@nestjs/platform-express@10.2.7)(reflect-metadata@0.1.13)(rxjs@7.6.0))(reflect-metadata@0.1.13)
|
||||||
@@ -455,8 +458,8 @@ importers:
|
|||||||
specifier: 1.0.0
|
specifier: 1.0.0
|
||||||
version: 1.0.0
|
version: 1.0.0
|
||||||
dioc:
|
dioc:
|
||||||
specifier: 1.0.1
|
specifier: 3.0.1
|
||||||
version: 1.0.1(vue@3.3.9(typescript@5.3.2))
|
version: 3.0.1(vue@3.3.9(typescript@5.3.2))
|
||||||
esprima:
|
esprima:
|
||||||
specifier: 4.0.1
|
specifier: 4.0.1
|
||||||
version: 4.0.1
|
version: 4.0.1
|
||||||
@@ -474,13 +477,13 @@ importers:
|
|||||||
version: 16.8.1
|
version: 16.8.1
|
||||||
graphql-language-service-interface:
|
graphql-language-service-interface:
|
||||||
specifier: 2.10.2
|
specifier: 2.10.2
|
||||||
version: 2.10.2(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
|
version: 2.10.2(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
|
||||||
graphql-tag:
|
graphql-tag:
|
||||||
specifier: 2.12.6
|
specifier: 2.12.6
|
||||||
version: 2.12.6(graphql@16.8.1)
|
version: 2.12.6(graphql@16.8.1)
|
||||||
httpsnippet:
|
httpsnippet:
|
||||||
specifier: 3.0.1
|
specifier: 3.0.1
|
||||||
version: 3.0.1(ajv@8.12.0)
|
version: 3.0.1
|
||||||
insomnia-importers:
|
insomnia-importers:
|
||||||
specifier: 3.6.0
|
specifier: 3.6.0
|
||||||
version: 3.6.0(openapi-types@12.1.3)
|
version: 3.6.0(openapi-types@12.1.3)
|
||||||
@@ -760,7 +763,7 @@ importers:
|
|||||||
version: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)
|
version: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)
|
||||||
vite-plugin-checker:
|
vite-plugin-checker:
|
||||||
specifier: 0.6.2
|
specifier: 0.6.2
|
||||||
version: 0.6.2(eslint@8.57.0)(meow@8.1.2)(optionator@0.9.3)(typescript@5.3.2)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue-tsc@1.8.24(typescript@5.3.2))
|
version: 0.6.2(eslint@8.57.0)(optionator@0.9.3)(typescript@5.3.2)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue-tsc@1.8.24(typescript@5.3.2))
|
||||||
vite-plugin-fonts:
|
vite-plugin-fonts:
|
||||||
specifier: 0.7.0
|
specifier: 0.7.0
|
||||||
version: 0.7.0(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))
|
version: 0.7.0(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))
|
||||||
@@ -879,7 +882,7 @@ importers:
|
|||||||
version: 2.8.4
|
version: 2.8.4
|
||||||
ts-jest:
|
ts-jest:
|
||||||
specifier: 27.1.5
|
specifier: 27.1.5
|
||||||
version: 27.1.5(@babel/core@7.23.9)(@types/jest@27.5.2)(babel-jest@29.7.0(@babel/core@7.23.9))(jest@29.7.0(@types/node@17.0.45)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@17.0.45)(typescript@4.9.5)))(typescript@4.9.5)
|
version: 27.1.5(@babel/core@7.23.9)(@types/jest@27.5.2)(jest@29.7.0(@types/node@17.0.45)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@17.0.45)(typescript@4.9.5)))(typescript@4.9.5)
|
||||||
typescript:
|
typescript:
|
||||||
specifier: 4.9.5
|
specifier: 4.9.5
|
||||||
version: 4.9.5
|
version: 4.9.5
|
||||||
@@ -923,8 +926,8 @@ importers:
|
|||||||
specifier: 6.0.3
|
specifier: 6.0.3
|
||||||
version: 6.0.3
|
version: 6.0.3
|
||||||
dioc:
|
dioc:
|
||||||
specifier: 1.0.1
|
specifier: 3.0.1
|
||||||
version: 1.0.1(vue@3.3.9(typescript@4.9.5))
|
version: 3.0.1(vue@3.3.9(typescript@4.9.5))
|
||||||
environments.api:
|
environments.api:
|
||||||
specifier: link:@platform/environments/environments.api
|
specifier: link:@platform/environments/environments.api
|
||||||
version: link:@platform/environments/environments.api
|
version: link:@platform/environments/environments.api
|
||||||
@@ -1048,10 +1051,10 @@ importers:
|
|||||||
version: 1.1.1(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))
|
version: 1.1.1(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))
|
||||||
unplugin-icons:
|
unplugin-icons:
|
||||||
specifier: 0.14.9
|
specifier: 0.14.9
|
||||||
version: 0.14.9(@vue/compiler-sfc@3.3.10)(esbuild@0.20.0)(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue-template-compiler@2.7.14)(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
|
version: 0.14.9(@vue/compiler-sfc@3.3.10)(esbuild@0.20.0)(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue-template-compiler@2.7.14)(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
|
||||||
unplugin-vue-components:
|
unplugin-vue-components:
|
||||||
specifier: 0.21.0
|
specifier: 0.21.0
|
||||||
version: 0.21.0(@babel/parser@7.23.9)(esbuild@0.20.0)(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue@3.3.9(typescript@4.9.5))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
|
version: 0.21.0(@babel/parser@7.23.9)(esbuild@0.20.0)(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue@3.3.9(typescript@4.9.5))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
|
||||||
vite:
|
vite:
|
||||||
specifier: 4.5.0
|
specifier: 4.5.0
|
||||||
version: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)
|
version: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)
|
||||||
@@ -1060,7 +1063,7 @@ importers:
|
|||||||
version: 1.0.11(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))
|
version: 1.0.11(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))
|
||||||
vite-plugin-inspect:
|
vite-plugin-inspect:
|
||||||
specifier: 0.7.38
|
specifier: 0.7.38
|
||||||
version: 0.7.38(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))
|
version: 0.7.38(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))
|
||||||
vite-plugin-pages:
|
vite-plugin-pages:
|
||||||
specifier: 0.26.0
|
specifier: 0.26.0
|
||||||
version: 0.26.0(@vue/compiler-sfc@3.3.10)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))
|
version: 0.26.0(@vue/compiler-sfc@3.3.10)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))
|
||||||
@@ -1217,7 +1220,7 @@ importers:
|
|||||||
version: 0.17.4(@vue/compiler-sfc@3.3.10)(vue-template-compiler@2.7.14)
|
version: 0.17.4(@vue/compiler-sfc@3.3.10)(vue-template-compiler@2.7.14)
|
||||||
unplugin-vue-components:
|
unplugin-vue-components:
|
||||||
specifier: 0.25.2
|
specifier: 0.25.2
|
||||||
version: 0.25.2(@babel/parser@7.23.9)(rollup@3.29.4)(vue@3.3.9(typescript@5.3.2))
|
version: 0.25.2(@babel/parser@7.23.9)(rollup@2.79.1)(vue@3.3.9(typescript@5.3.2))
|
||||||
vite:
|
vite:
|
||||||
specifier: 4.5.0
|
specifier: 4.5.0
|
||||||
version: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)
|
version: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)
|
||||||
@@ -1229,7 +1232,7 @@ importers:
|
|||||||
version: 1.0.11(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))
|
version: 1.0.11(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))
|
||||||
vite-plugin-inspect:
|
vite-plugin-inspect:
|
||||||
specifier: 0.7.42
|
specifier: 0.7.42
|
||||||
version: 0.7.42(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))
|
version: 0.7.42(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))
|
||||||
vite-plugin-pages:
|
vite-plugin-pages:
|
||||||
specifier: 0.31.0
|
specifier: 0.31.0
|
||||||
version: 0.31.0(@vue/compiler-sfc@3.3.10)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))
|
version: 0.31.0(@vue/compiler-sfc@3.3.10)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))
|
||||||
@@ -1271,7 +1274,7 @@ importers:
|
|||||||
version: 0.1.0(vue@3.3.9(typescript@4.9.3))
|
version: 0.1.0(vue@3.3.9(typescript@4.9.3))
|
||||||
'@intlify/unplugin-vue-i18n':
|
'@intlify/unplugin-vue-i18n':
|
||||||
specifier: 1.2.0
|
specifier: 1.2.0
|
||||||
version: 1.2.0(rollup@3.29.4)(vue-i18n@9.2.2(vue@3.3.9(typescript@4.9.3)))
|
version: 1.2.0(rollup@2.79.1)(vue-i18n@9.2.2(vue@3.3.9(typescript@4.9.3)))
|
||||||
'@types/cors':
|
'@types/cors':
|
||||||
specifier: 2.8.13
|
specifier: 2.8.13
|
||||||
version: 2.8.13
|
version: 2.8.13
|
||||||
@@ -1334,10 +1337,10 @@ importers:
|
|||||||
version: 2.0.0(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@4.9.3)
|
version: 2.0.0(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@4.9.3)
|
||||||
unplugin-icons:
|
unplugin-icons:
|
||||||
specifier: 0.14.9
|
specifier: 0.14.9
|
||||||
version: 0.14.9(@vue/compiler-sfc@3.2.45)(esbuild@0.20.0)(rollup@3.29.4)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(vue-template-compiler@2.7.14)(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
|
version: 0.14.9(@vue/compiler-sfc@3.2.45)(esbuild@0.20.0)(rollup@2.79.1)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(vue-template-compiler@2.7.14)(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
|
||||||
unplugin-vue-components:
|
unplugin-vue-components:
|
||||||
specifier: 0.21.0
|
specifier: 0.21.0
|
||||||
version: 0.21.0(@babel/parser@7.23.9)(esbuild@0.20.0)(rollup@3.29.4)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(vue@3.3.9(typescript@4.9.3))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
|
version: 0.21.0(@babel/parser@7.23.9)(esbuild@0.20.0)(rollup@2.79.1)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(vue@3.3.9(typescript@4.9.3))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
|
||||||
vue:
|
vue:
|
||||||
specifier: 3.3.9
|
specifier: 3.3.9
|
||||||
version: 3.3.9(typescript@4.9.3)
|
version: 3.3.9(typescript@4.9.3)
|
||||||
@@ -3511,6 +3514,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==}
|
resolution: {integrity: sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==}
|
||||||
engines: {node: '>= 14'}
|
engines: {node: '>= 14'}
|
||||||
|
|
||||||
|
'@intlify/message-compiler@10.0.0-alpha.3':
|
||||||
|
resolution: {integrity: sha512-WjM1KAl5enpOfprfVAJ3FzwACmizZFPgyV0sn+QXoWH8BG2ahVkf7uVEqQH0mvUr2rKKaScwpzhH3wZ5F7ZdPw==}
|
||||||
|
engines: {node: '>= 16'}
|
||||||
|
|
||||||
'@intlify/message-compiler@9.2.2':
|
'@intlify/message-compiler@9.2.2':
|
||||||
resolution: {integrity: sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA==}
|
resolution: {integrity: sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA==}
|
||||||
engines: {node: '>= 14'}
|
engines: {node: '>= 14'}
|
||||||
@@ -3519,14 +3526,14 @@ packages:
|
|||||||
resolution: {integrity: sha512-hwqQXyTnDzAVZ300SU31jO0+3OJbpOdfVU6iBkrmNpS7t2HRnVACo0EwcEXzJa++4EVDreqz5OeqJbt+PeSGGA==}
|
resolution: {integrity: sha512-hwqQXyTnDzAVZ300SU31jO0+3OJbpOdfVU6iBkrmNpS7t2HRnVACo0EwcEXzJa++4EVDreqz5OeqJbt+PeSGGA==}
|
||||||
engines: {node: '>= 16'}
|
engines: {node: '>= 16'}
|
||||||
|
|
||||||
'@intlify/message-compiler@9.4.1':
|
|
||||||
resolution: {integrity: sha512-aN2N+dUx320108QhH51Ycd2LEpZ+NKbzyQ2kjjhqMcxhHdxtOnkgdx+MDBhOy/CObwBmhC3Nygzc6hNlfKvPNw==}
|
|
||||||
engines: {node: '>= 16'}
|
|
||||||
|
|
||||||
'@intlify/message-compiler@9.8.0':
|
'@intlify/message-compiler@9.8.0':
|
||||||
resolution: {integrity: sha512-McnYWhcoYmDJvssVu6QGR0shqlkJuL1HHdi5lK7fNqvQqRYaQ4lSLjYmZxwc8tRNMdIe9/KUKfyPxU9M6yCtNQ==}
|
resolution: {integrity: sha512-McnYWhcoYmDJvssVu6QGR0shqlkJuL1HHdi5lK7fNqvQqRYaQ4lSLjYmZxwc8tRNMdIe9/KUKfyPxU9M6yCtNQ==}
|
||||||
engines: {node: '>= 16'}
|
engines: {node: '>= 16'}
|
||||||
|
|
||||||
|
'@intlify/shared@10.0.0-alpha.3':
|
||||||
|
resolution: {integrity: sha512-fi2q48i+C6sSCAt3vOj/9LD3tkr1wcvLt+ifZEHrpPiwHCyKLDYGp5qBNUHUBBA/iqFTeWdtHUbHE9z9OeTXkw==}
|
||||||
|
engines: {node: '>= 16'}
|
||||||
|
|
||||||
'@intlify/shared@9.2.2':
|
'@intlify/shared@9.2.2':
|
||||||
resolution: {integrity: sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==}
|
resolution: {integrity: sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==}
|
||||||
engines: {node: '>= 14'}
|
engines: {node: '>= 14'}
|
||||||
@@ -3535,10 +3542,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-RucSPqh8O9FFxlYUysQTerSw0b9HIRpyoN1Zjogpm0qLiHK+lBNSa5sh1nCJ4wSsNcjphzgpLQCyR60GZlRV8g==}
|
resolution: {integrity: sha512-RucSPqh8O9FFxlYUysQTerSw0b9HIRpyoN1Zjogpm0qLiHK+lBNSa5sh1nCJ4wSsNcjphzgpLQCyR60GZlRV8g==}
|
||||||
engines: {node: '>= 16'}
|
engines: {node: '>= 16'}
|
||||||
|
|
||||||
'@intlify/shared@9.4.1':
|
|
||||||
resolution: {integrity: sha512-A51elBmZWf1FS80inf/32diO9DeXoqg9GR9aUDHFcfHoNDuT46Q+fpPOdj8jiJnSHSBh8E1E+6qWRhAZXdK3Ng==}
|
|
||||||
engines: {node: '>= 16'}
|
|
||||||
|
|
||||||
'@intlify/shared@9.8.0':
|
'@intlify/shared@9.8.0':
|
||||||
resolution: {integrity: sha512-TmgR0RCLjzrSo+W3wT0ALf9851iFMlVI9EYNGeWvZFUQTAJx0bvfsMlPdgVtV1tDNRiAfhkFsMKu6jtUY1ZLKQ==}
|
resolution: {integrity: sha512-TmgR0RCLjzrSo+W3wT0ALf9851iFMlVI9EYNGeWvZFUQTAJx0bvfsMlPdgVtV1tDNRiAfhkFsMKu6jtUY1ZLKQ==}
|
||||||
engines: {node: '>= 16'}
|
engines: {node: '>= 16'}
|
||||||
@@ -3918,6 +3921,54 @@ packages:
|
|||||||
peerDependencies:
|
peerDependencies:
|
||||||
typescript: '>=4.8.2'
|
typescript: '>=4.8.2'
|
||||||
|
|
||||||
|
'@nestjs/terminus@10.2.3':
|
||||||
|
resolution: {integrity: sha512-iX7gXtAooePcyQqFt57aDke5MzgdkBeYgF5YsFNNFwOiAFdIQEhfv3PR0G+HlH9F6D7nBCDZt9U87Pks/qHijg==}
|
||||||
|
peerDependencies:
|
||||||
|
'@grpc/grpc-js': '*'
|
||||||
|
'@grpc/proto-loader': '*'
|
||||||
|
'@mikro-orm/core': '*'
|
||||||
|
'@mikro-orm/nestjs': '*'
|
||||||
|
'@nestjs/axios': ^1.0.0 || ^2.0.0 || ^3.0.0
|
||||||
|
'@nestjs/common': ^9.0.0 || ^10.0.0
|
||||||
|
'@nestjs/core': ^9.0.0 || ^10.0.0
|
||||||
|
'@nestjs/microservices': ^9.0.0 || ^10.0.0
|
||||||
|
'@nestjs/mongoose': ^9.0.0 || ^10.0.0
|
||||||
|
'@nestjs/sequelize': ^9.0.0 || ^10.0.0
|
||||||
|
'@nestjs/typeorm': ^9.0.0 || ^10.0.0
|
||||||
|
'@prisma/client': '*'
|
||||||
|
mongoose: '*'
|
||||||
|
reflect-metadata: 0.1.x || 0.2.x
|
||||||
|
rxjs: 7.x
|
||||||
|
sequelize: '*'
|
||||||
|
typeorm: '*'
|
||||||
|
peerDependenciesMeta:
|
||||||
|
'@grpc/grpc-js':
|
||||||
|
optional: true
|
||||||
|
'@grpc/proto-loader':
|
||||||
|
optional: true
|
||||||
|
'@mikro-orm/core':
|
||||||
|
optional: true
|
||||||
|
'@mikro-orm/nestjs':
|
||||||
|
optional: true
|
||||||
|
'@nestjs/axios':
|
||||||
|
optional: true
|
||||||
|
'@nestjs/microservices':
|
||||||
|
optional: true
|
||||||
|
'@nestjs/mongoose':
|
||||||
|
optional: true
|
||||||
|
'@nestjs/sequelize':
|
||||||
|
optional: true
|
||||||
|
'@nestjs/typeorm':
|
||||||
|
optional: true
|
||||||
|
'@prisma/client':
|
||||||
|
optional: true
|
||||||
|
mongoose:
|
||||||
|
optional: true
|
||||||
|
sequelize:
|
||||||
|
optional: true
|
||||||
|
typeorm:
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@nestjs/testing@10.2.7':
|
'@nestjs/testing@10.2.7':
|
||||||
resolution: {integrity: sha512-d2SIqiJIf/7NSILeNNWSdRvTTpHSouGgisGHwf5PVDC7z4/yXZw/wPO9eJhegnxFlqk6n2LW4QBTmMzbqjAfHA==}
|
resolution: {integrity: sha512-d2SIqiJIf/7NSILeNNWSdRvTTpHSouGgisGHwf5PVDC7z4/yXZw/wPO9eJhegnxFlqk6n2LW4QBTmMzbqjAfHA==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@@ -5437,16 +5488,25 @@ packages:
|
|||||||
peerDependencies:
|
peerDependencies:
|
||||||
ajv: ^6.9.1
|
ajv: ^6.9.1
|
||||||
|
|
||||||
|
ajv@6.12.3:
|
||||||
|
resolution: {integrity: sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==}
|
||||||
|
|
||||||
ajv@6.12.6:
|
ajv@6.12.6:
|
||||||
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
|
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
|
||||||
|
|
||||||
ajv@8.12.0:
|
ajv@8.12.0:
|
||||||
resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
|
resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
|
||||||
|
|
||||||
|
ajv@8.13.0:
|
||||||
|
resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==}
|
||||||
|
|
||||||
alce@1.2.0:
|
alce@1.2.0:
|
||||||
resolution: {integrity: sha512-XppPf2S42nO2WhvKzlwzlfcApcXHzjlod30pKmcWjRgLOtqoe5DMuqdiYoM6AgyXksc6A6pV4v1L/WW217e57w==}
|
resolution: {integrity: sha512-XppPf2S42nO2WhvKzlwzlfcApcXHzjlod30pKmcWjRgLOtqoe5DMuqdiYoM6AgyXksc6A6pV4v1L/WW217e57w==}
|
||||||
engines: {node: '>=0.8.0'}
|
engines: {node: '>=0.8.0'}
|
||||||
|
|
||||||
|
ansi-align@3.0.1:
|
||||||
|
resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==}
|
||||||
|
|
||||||
ansi-colors@4.1.1:
|
ansi-colors@4.1.1:
|
||||||
resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
|
resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
@@ -5713,6 +5773,10 @@ packages:
|
|||||||
boolbase@1.0.0:
|
boolbase@1.0.0:
|
||||||
resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
|
resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
|
||||||
|
|
||||||
|
boxen@5.1.2:
|
||||||
|
resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
|
||||||
bplist-parser@0.2.0:
|
bplist-parser@0.2.0:
|
||||||
resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==}
|
resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==}
|
||||||
engines: {node: '>= 5.10.0'}
|
engines: {node: '>= 5.10.0'}
|
||||||
@@ -5877,6 +5941,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-6dVyOOYjpfFcL1Y4qChrAoQLRHvj2ziyhcm0QJlhOcAhykL/k1kTUPbeo+87MNRTRdk2OIIsIXbuF3x2wi5EXg==}
|
resolution: {integrity: sha512-6dVyOOYjpfFcL1Y4qChrAoQLRHvj2ziyhcm0QJlhOcAhykL/k1kTUPbeo+87MNRTRdk2OIIsIXbuF3x2wi5EXg==}
|
||||||
engines: {node: '>=4.0.0'}
|
engines: {node: '>=4.0.0'}
|
||||||
|
|
||||||
|
check-disk-space@3.4.0:
|
||||||
|
resolution: {integrity: sha512-drVkSqfwA+TvuEhFipiR1OC9boEGZL5RrWvVsOthdcvQNXyCCuKkEiTOTXZ7qxSf/GLwq4GvzfrQD/Wz325hgw==}
|
||||||
|
engines: {node: '>=16'}
|
||||||
|
|
||||||
check-error@1.0.3:
|
check-error@1.0.3:
|
||||||
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
|
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
|
||||||
|
|
||||||
@@ -5920,6 +5988,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
|
resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
|
cli-boxes@2.2.1:
|
||||||
|
resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==}
|
||||||
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
cli-cursor@3.1.0:
|
cli-cursor@3.1.0:
|
||||||
resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
|
resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
@@ -6457,8 +6529,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==}
|
resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==}
|
||||||
engines: {node: '>=0.3.1'}
|
engines: {node: '>=0.3.1'}
|
||||||
|
|
||||||
dioc@1.0.1:
|
dioc@3.0.1:
|
||||||
resolution: {integrity: sha512-G3T8ThO2WehWJFrKp687wpXU//WLueJA6t5L7yirhWN/jn7BFNRKwskbJn0LEEd6gqI6rwiQE48f2Zqt5jvYVw==}
|
resolution: {integrity: sha512-LawhI08/B5f5sA6zqrNdtZY9URCjIzmebKVZhmR8lH05HFlx/spAoz4kJ7x1E6pRf/kvWsePSkudv18OR5FT6Q==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
vue: 3.3.9
|
vue: 3.3.9
|
||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
@@ -7824,8 +7896,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-RJbzVu9Gq97Ti76MPKAb9AknKbRluRbzOqswM2qgEW48QUShVEIuJjl43dZG5q0Upj2SZlKqzR6B6ah1q5znfg==}
|
resolution: {integrity: sha512-RJbzVu9Gq97Ti76MPKAb9AknKbRluRbzOqswM2qgEW48QUShVEIuJjl43dZG5q0Upj2SZlKqzR6B6ah1q5znfg==}
|
||||||
engines: {node: ^14.19.1 || ^16.14.2 || ^18.0.0}
|
engines: {node: ^14.19.1 || ^16.14.2 || ^18.0.0}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
peerDependencies:
|
|
||||||
ajv: 6.12.3
|
|
||||||
|
|
||||||
human-signals@1.1.1:
|
human-signals@1.1.1:
|
||||||
resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==}
|
resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==}
|
||||||
@@ -9163,8 +9233,8 @@ packages:
|
|||||||
no-case@3.0.4:
|
no-case@3.0.4:
|
||||||
resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
|
resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
|
||||||
|
|
||||||
node-abi@3.60.0:
|
node-abi@3.57.0:
|
||||||
resolution: {integrity: sha512-zcGgwoXbzw9NczqbGzAWL/ToDYAxv1V8gL1D67ClbdkIfeeDBbY0GelZtC25ayLvVjr2q2cloHeQV1R0QAWqRQ==}
|
resolution: {integrity: sha512-Dp+A9JWxRaKuHP35H77I4kCKesDy5HUDEmScia2FyncMTOXASMyg251F5PhFoDA5uqBrDDffiLpbqnrZmNXW+g==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
|
||||||
node-abort-controller@3.1.1:
|
node-abort-controller@3.1.1:
|
||||||
@@ -12090,6 +12160,10 @@ packages:
|
|||||||
wide-align@1.1.5:
|
wide-align@1.1.5:
|
||||||
resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
|
resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
|
||||||
|
|
||||||
|
widest-line@3.1.0:
|
||||||
|
resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
windows-release@4.0.0:
|
windows-release@4.0.0:
|
||||||
resolution: {integrity: sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==}
|
resolution: {integrity: sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
@@ -12132,6 +12206,7 @@ packages:
|
|||||||
|
|
||||||
workbox-google-analytics@7.0.0:
|
workbox-google-analytics@7.0.0:
|
||||||
resolution: {integrity: sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==}
|
resolution: {integrity: sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==}
|
||||||
|
deprecated: It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained
|
||||||
|
|
||||||
workbox-navigation-preload@7.0.0:
|
workbox-navigation-preload@7.0.0:
|
||||||
resolution: {integrity: sha512-juWCSrxo/fiMz3RsvDspeSLGmbgC0U9tKqcUPZBCf35s64wlaLXyn2KdHHXVQrb2cqF7I0Hc9siQalainmnXJA==}
|
resolution: {integrity: sha512-juWCSrxo/fiMz3RsvDspeSLGmbgC0U9tKqcUPZBCf35s64wlaLXyn2KdHHXVQrb2cqF7I0Hc9siQalainmnXJA==}
|
||||||
@@ -12467,9 +12542,9 @@ snapshots:
|
|||||||
|
|
||||||
'@antfu/utils@0.7.6': {}
|
'@antfu/utils@0.7.6': {}
|
||||||
|
|
||||||
'@apideck/better-ajv-errors@0.3.6(ajv@8.12.0)':
|
'@apideck/better-ajv-errors@0.3.6(ajv@8.13.0)':
|
||||||
dependencies:
|
dependencies:
|
||||||
ajv: 8.12.0
|
ajv: 8.13.0
|
||||||
json-schema: 0.4.0
|
json-schema: 0.4.0
|
||||||
jsonpointer: 5.0.1
|
jsonpointer: 5.0.1
|
||||||
leven: 3.1.0
|
leven: 3.1.0
|
||||||
@@ -12507,8 +12582,8 @@ snapshots:
|
|||||||
'@apidevtools/openapi-schemas': 2.1.0
|
'@apidevtools/openapi-schemas': 2.1.0
|
||||||
'@apidevtools/swagger-methods': 3.0.2
|
'@apidevtools/swagger-methods': 3.0.2
|
||||||
'@jsdevtools/ono': 7.1.3
|
'@jsdevtools/ono': 7.1.3
|
||||||
ajv: 8.12.0
|
ajv: 8.13.0
|
||||||
ajv-draft-04: 1.0.0(ajv@8.12.0)
|
ajv-draft-04: 1.0.0(ajv@8.13.0)
|
||||||
call-me-maybe: 1.0.2
|
call-me-maybe: 1.0.2
|
||||||
openapi-types: 12.1.3
|
openapi-types: 12.1.3
|
||||||
|
|
||||||
@@ -15444,8 +15519,8 @@ snapshots:
|
|||||||
|
|
||||||
'@intlify/bundle-utils@3.4.0(vue-i18n@9.8.0(vue@3.3.9(typescript@5.3.2)))':
|
'@intlify/bundle-utils@3.4.0(vue-i18n@9.8.0(vue@3.3.9(typescript@5.3.2)))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@intlify/message-compiler': 9.4.1
|
'@intlify/message-compiler': 10.0.0-alpha.3
|
||||||
'@intlify/shared': 9.4.1
|
'@intlify/shared': 10.0.0-alpha.3
|
||||||
jsonc-eslint-parser: 1.4.1
|
jsonc-eslint-parser: 1.4.1
|
||||||
source-map: 0.6.1
|
source-map: 0.6.1
|
||||||
yaml-eslint-parser: 0.3.2
|
yaml-eslint-parser: 0.3.2
|
||||||
@@ -15498,6 +15573,11 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@intlify/shared': 9.2.2
|
'@intlify/shared': 9.2.2
|
||||||
|
|
||||||
|
'@intlify/message-compiler@10.0.0-alpha.3':
|
||||||
|
dependencies:
|
||||||
|
'@intlify/shared': 10.0.0-alpha.3
|
||||||
|
source-map-js: 1.0.2
|
||||||
|
|
||||||
'@intlify/message-compiler@9.2.2':
|
'@intlify/message-compiler@9.2.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@intlify/shared': 9.2.2
|
'@intlify/shared': 9.2.2
|
||||||
@@ -15508,29 +15588,24 @@ snapshots:
|
|||||||
'@intlify/shared': 9.3.0-beta.20
|
'@intlify/shared': 9.3.0-beta.20
|
||||||
source-map-js: 1.0.2
|
source-map-js: 1.0.2
|
||||||
|
|
||||||
'@intlify/message-compiler@9.4.1':
|
|
||||||
dependencies:
|
|
||||||
'@intlify/shared': 9.4.1
|
|
||||||
source-map-js: 1.0.2
|
|
||||||
|
|
||||||
'@intlify/message-compiler@9.8.0':
|
'@intlify/message-compiler@9.8.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@intlify/shared': 9.8.0
|
'@intlify/shared': 9.8.0
|
||||||
source-map-js: 1.0.2
|
source-map-js: 1.0.2
|
||||||
|
|
||||||
|
'@intlify/shared@10.0.0-alpha.3': {}
|
||||||
|
|
||||||
'@intlify/shared@9.2.2': {}
|
'@intlify/shared@9.2.2': {}
|
||||||
|
|
||||||
'@intlify/shared@9.3.0-beta.20': {}
|
'@intlify/shared@9.3.0-beta.20': {}
|
||||||
|
|
||||||
'@intlify/shared@9.4.1': {}
|
|
||||||
|
|
||||||
'@intlify/shared@9.8.0': {}
|
'@intlify/shared@9.8.0': {}
|
||||||
|
|
||||||
'@intlify/unplugin-vue-i18n@1.2.0(rollup@3.29.4)(vue-i18n@9.2.2(vue@3.3.9(typescript@4.9.3)))':
|
'@intlify/unplugin-vue-i18n@1.2.0(rollup@2.79.1)(vue-i18n@9.2.2(vue@3.3.9(typescript@4.9.3)))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@intlify/bundle-utils': 7.4.0(vue-i18n@9.2.2(vue@3.3.9(typescript@4.9.3)))
|
'@intlify/bundle-utils': 7.4.0(vue-i18n@9.2.2(vue@3.3.9(typescript@4.9.3)))
|
||||||
'@intlify/shared': 9.8.0
|
'@intlify/shared': 9.8.0
|
||||||
'@rollup/pluginutils': 5.1.0(rollup@3.29.4)
|
'@rollup/pluginutils': 5.1.0(rollup@2.79.1)
|
||||||
'@vue/compiler-sfc': 3.3.10
|
'@vue/compiler-sfc': 3.3.10
|
||||||
debug: 4.3.4(supports-color@9.2.2)
|
debug: 4.3.4(supports-color@9.2.2)
|
||||||
fast-glob: 3.3.2
|
fast-glob: 3.3.2
|
||||||
@@ -15549,7 +15624,7 @@ snapshots:
|
|||||||
'@intlify/vite-plugin-vue-i18n@6.0.1(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue-i18n@9.8.0(vue@3.3.9(typescript@4.9.5)))':
|
'@intlify/vite-plugin-vue-i18n@6.0.1(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue-i18n@9.8.0(vue@3.3.9(typescript@4.9.5)))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@intlify/bundle-utils': 7.0.0(vue-i18n@9.8.0(vue@3.3.9(typescript@4.9.5)))
|
'@intlify/bundle-utils': 7.0.0(vue-i18n@9.8.0(vue@3.3.9(typescript@4.9.5)))
|
||||||
'@intlify/shared': 9.4.1
|
'@intlify/shared': 10.0.0-alpha.3
|
||||||
'@rollup/pluginutils': 4.2.1
|
'@rollup/pluginutils': 4.2.1
|
||||||
debug: 4.3.4(supports-color@9.2.2)
|
debug: 4.3.4(supports-color@9.2.2)
|
||||||
fast-glob: 3.3.2
|
fast-glob: 3.3.2
|
||||||
@@ -15563,7 +15638,7 @@ snapshots:
|
|||||||
'@intlify/vite-plugin-vue-i18n@7.0.0(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue-i18n@9.8.0(vue@3.3.9(typescript@5.3.2)))':
|
'@intlify/vite-plugin-vue-i18n@7.0.0(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue-i18n@9.8.0(vue@3.3.9(typescript@5.3.2)))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@intlify/bundle-utils': 3.4.0(vue-i18n@9.8.0(vue@3.3.9(typescript@5.3.2)))
|
'@intlify/bundle-utils': 3.4.0(vue-i18n@9.8.0(vue@3.3.9(typescript@5.3.2)))
|
||||||
'@intlify/shared': 9.4.1
|
'@intlify/shared': 10.0.0-alpha.3
|
||||||
'@rollup/pluginutils': 4.2.1
|
'@rollup/pluginutils': 4.2.1
|
||||||
debug: 4.3.4(supports-color@9.2.2)
|
debug: 4.3.4(supports-color@9.2.2)
|
||||||
fast-glob: 3.3.2
|
fast-glob: 3.3.2
|
||||||
@@ -16147,6 +16222,17 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- chokidar
|
- chokidar
|
||||||
|
|
||||||
|
'@nestjs/terminus@10.2.3(@nestjs/common@10.2.7(reflect-metadata@0.1.13)(rxjs@7.6.0))(@nestjs/core@10.2.7(@nestjs/common@10.2.7(reflect-metadata@0.1.13)(rxjs@7.6.0))(@nestjs/platform-express@10.2.7)(reflect-metadata@0.1.13)(rxjs@7.6.0))(@prisma/client@5.8.1(prisma@5.8.1))(reflect-metadata@0.1.13)(rxjs@7.6.0)':
|
||||||
|
dependencies:
|
||||||
|
'@nestjs/common': 10.2.7(reflect-metadata@0.1.13)(rxjs@7.6.0)
|
||||||
|
'@nestjs/core': 10.2.7(@nestjs/common@10.2.7(reflect-metadata@0.1.13)(rxjs@7.6.0))(@nestjs/platform-express@10.2.7)(reflect-metadata@0.1.13)(rxjs@7.6.0)
|
||||||
|
boxen: 5.1.2
|
||||||
|
check-disk-space: 3.4.0
|
||||||
|
reflect-metadata: 0.1.13
|
||||||
|
rxjs: 7.6.0
|
||||||
|
optionalDependencies:
|
||||||
|
'@prisma/client': 5.8.1(prisma@5.8.1)
|
||||||
|
|
||||||
'@nestjs/testing@10.2.7(@nestjs/common@10.2.7(reflect-metadata@0.1.13)(rxjs@7.6.0))(@nestjs/core@10.2.7(@nestjs/common@10.2.7(reflect-metadata@0.1.13)(rxjs@7.6.0))(@nestjs/platform-express@10.2.7)(reflect-metadata@0.1.13)(rxjs@7.6.0))(@nestjs/platform-express@10.2.7(@nestjs/common@10.2.7(reflect-metadata@0.1.13)(rxjs@7.6.0))(@nestjs/core@10.2.7))':
|
'@nestjs/testing@10.2.7(@nestjs/common@10.2.7(reflect-metadata@0.1.13)(rxjs@7.6.0))(@nestjs/core@10.2.7(@nestjs/common@10.2.7(reflect-metadata@0.1.13)(rxjs@7.6.0))(@nestjs/platform-express@10.2.7)(reflect-metadata@0.1.13)(rxjs@7.6.0))(@nestjs/platform-express@10.2.7(@nestjs/common@10.2.7(reflect-metadata@0.1.13)(rxjs@7.6.0))(@nestjs/core@10.2.7))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@nestjs/common': 10.2.7(reflect-metadata@0.1.13)(rxjs@7.6.0)
|
'@nestjs/common': 10.2.7(reflect-metadata@0.1.13)(rxjs@7.6.0)
|
||||||
@@ -16378,6 +16464,14 @@ snapshots:
|
|||||||
estree-walker: 2.0.2
|
estree-walker: 2.0.2
|
||||||
picomatch: 2.3.1
|
picomatch: 2.3.1
|
||||||
|
|
||||||
|
'@rollup/pluginutils@5.1.0(rollup@2.79.1)':
|
||||||
|
dependencies:
|
||||||
|
'@types/estree': 1.0.5
|
||||||
|
estree-walker: 2.0.2
|
||||||
|
picomatch: 2.3.1
|
||||||
|
optionalDependencies:
|
||||||
|
rollup: 2.79.1
|
||||||
|
|
||||||
'@rollup/pluginutils@5.1.0(rollup@3.29.4)':
|
'@rollup/pluginutils@5.1.0(rollup@3.29.4)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/estree': 1.0.5
|
'@types/estree': 1.0.5
|
||||||
@@ -16673,7 +16767,7 @@ snapshots:
|
|||||||
|
|
||||||
'@types/graceful-fs@4.1.5':
|
'@types/graceful-fs@4.1.5':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 18.18.8
|
'@types/node': 17.0.45
|
||||||
|
|
||||||
'@types/har-format@1.2.15': {}
|
'@types/har-format@1.2.15': {}
|
||||||
|
|
||||||
@@ -18140,9 +18234,9 @@ snapshots:
|
|||||||
clean-stack: 2.2.0
|
clean-stack: 2.2.0
|
||||||
indent-string: 4.0.0
|
indent-string: 4.0.0
|
||||||
|
|
||||||
ajv-draft-04@1.0.0(ajv@8.12.0):
|
ajv-draft-04@1.0.0(ajv@8.13.0):
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
ajv: 8.12.0
|
ajv: 8.13.0
|
||||||
|
|
||||||
ajv-formats@2.1.1(ajv@8.12.0):
|
ajv-formats@2.1.1(ajv@8.12.0):
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
@@ -18152,6 +18246,13 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
ajv: 6.12.6
|
ajv: 6.12.6
|
||||||
|
|
||||||
|
ajv@6.12.3:
|
||||||
|
dependencies:
|
||||||
|
fast-deep-equal: 3.1.3
|
||||||
|
fast-json-stable-stringify: 2.1.0
|
||||||
|
json-schema-traverse: 0.4.1
|
||||||
|
uri-js: 4.4.1
|
||||||
|
|
||||||
ajv@6.12.6:
|
ajv@6.12.6:
|
||||||
dependencies:
|
dependencies:
|
||||||
fast-deep-equal: 3.1.3
|
fast-deep-equal: 3.1.3
|
||||||
@@ -18166,11 +18267,22 @@ snapshots:
|
|||||||
require-from-string: 2.0.2
|
require-from-string: 2.0.2
|
||||||
uri-js: 4.4.1
|
uri-js: 4.4.1
|
||||||
|
|
||||||
|
ajv@8.13.0:
|
||||||
|
dependencies:
|
||||||
|
fast-deep-equal: 3.1.3
|
||||||
|
json-schema-traverse: 1.0.0
|
||||||
|
require-from-string: 2.0.2
|
||||||
|
uri-js: 4.4.1
|
||||||
|
|
||||||
alce@1.2.0:
|
alce@1.2.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
esprima: 1.2.5
|
esprima: 1.2.5
|
||||||
estraverse: 1.9.3
|
estraverse: 1.9.3
|
||||||
|
|
||||||
|
ansi-align@3.0.1:
|
||||||
|
dependencies:
|
||||||
|
string-width: 4.2.3
|
||||||
|
|
||||||
ansi-colors@4.1.1: {}
|
ansi-colors@4.1.1: {}
|
||||||
|
|
||||||
ansi-colors@4.1.3: {}
|
ansi-colors@4.1.3: {}
|
||||||
@@ -18532,6 +18644,17 @@ snapshots:
|
|||||||
|
|
||||||
boolbase@1.0.0: {}
|
boolbase@1.0.0: {}
|
||||||
|
|
||||||
|
boxen@5.1.2:
|
||||||
|
dependencies:
|
||||||
|
ansi-align: 3.0.1
|
||||||
|
camelcase: 6.3.0
|
||||||
|
chalk: 4.1.2
|
||||||
|
cli-boxes: 2.2.1
|
||||||
|
string-width: 4.2.3
|
||||||
|
type-fest: 0.20.2
|
||||||
|
widest-line: 3.1.0
|
||||||
|
wrap-ansi: 7.0.0
|
||||||
|
|
||||||
bplist-parser@0.2.0:
|
bplist-parser@0.2.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
big-integer: 1.6.51
|
big-integer: 1.6.51
|
||||||
@@ -18740,6 +18863,8 @@ snapshots:
|
|||||||
|
|
||||||
charset@1.0.1: {}
|
charset@1.0.1: {}
|
||||||
|
|
||||||
|
check-disk-space@3.4.0: {}
|
||||||
|
|
||||||
check-error@1.0.3:
|
check-error@1.0.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
get-func-name: 2.0.2
|
get-func-name: 2.0.2
|
||||||
@@ -18793,6 +18918,8 @@ snapshots:
|
|||||||
|
|
||||||
clean-stack@2.2.0: {}
|
clean-stack@2.2.0: {}
|
||||||
|
|
||||||
|
cli-boxes@2.2.1: {}
|
||||||
|
|
||||||
cli-cursor@3.1.0:
|
cli-cursor@3.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
restore-cursor: 3.1.0
|
restore-cursor: 3.1.0
|
||||||
@@ -19016,10 +19143,10 @@ snapshots:
|
|||||||
ts-node: 10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@4.9.3)
|
ts-node: 10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@4.9.3)
|
||||||
typescript: 4.9.3
|
typescript: 4.9.3
|
||||||
|
|
||||||
cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2):
|
cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 18.18.8
|
'@types/node': 18.18.8
|
||||||
cosmiconfig: 8.2.0
|
cosmiconfig: 7.0.1
|
||||||
ts-node: 10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2)
|
ts-node: 10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2)
|
||||||
typescript: 5.3.2
|
typescript: 5.3.2
|
||||||
optional: true
|
optional: true
|
||||||
@@ -19340,13 +19467,13 @@ snapshots:
|
|||||||
|
|
||||||
diff@5.0.0: {}
|
diff@5.0.0: {}
|
||||||
|
|
||||||
dioc@1.0.1(vue@3.3.9(typescript@4.9.5)):
|
dioc@3.0.1(vue@3.3.9(typescript@4.9.5)):
|
||||||
dependencies:
|
dependencies:
|
||||||
rxjs: 7.8.1
|
rxjs: 7.8.1
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
vue: 3.3.9(typescript@4.9.5)
|
vue: 3.3.9(typescript@4.9.5)
|
||||||
|
|
||||||
dioc@1.0.1(vue@3.3.9(typescript@5.3.2)):
|
dioc@3.0.1(vue@3.3.9(typescript@5.3.2)):
|
||||||
dependencies:
|
dependencies:
|
||||||
rxjs: 7.8.1
|
rxjs: 7.8.1
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
@@ -20035,7 +20162,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@eslint/eslintrc': 1.3.3
|
'@eslint/eslintrc': 1.3.3
|
||||||
'@humanwhocodes/config-array': 0.9.5
|
'@humanwhocodes/config-array': 0.9.5
|
||||||
ajv: 6.12.6
|
ajv: 6.12.3
|
||||||
chalk: 4.1.2
|
chalk: 4.1.2
|
||||||
cross-spawn: 7.0.3
|
cross-spawn: 7.0.3
|
||||||
debug: 4.3.4(supports-color@9.2.2)
|
debug: 4.3.4(supports-color@9.2.2)
|
||||||
@@ -20077,7 +20204,7 @@ snapshots:
|
|||||||
'@humanwhocodes/config-array': 0.11.14
|
'@humanwhocodes/config-array': 0.11.14
|
||||||
'@humanwhocodes/module-importer': 1.0.1
|
'@humanwhocodes/module-importer': 1.0.1
|
||||||
'@nodelib/fs.walk': 1.2.8
|
'@nodelib/fs.walk': 1.2.8
|
||||||
ajv: 6.12.6
|
ajv: 6.12.3
|
||||||
chalk: 4.1.2
|
chalk: 4.1.2
|
||||||
cross-spawn: 7.0.3
|
cross-spawn: 7.0.3
|
||||||
debug: 4.3.4(supports-color@9.2.2)
|
debug: 4.3.4(supports-color@9.2.2)
|
||||||
@@ -20894,7 +21021,7 @@ snapshots:
|
|||||||
- encoding
|
- encoding
|
||||||
- utf-8-validate
|
- utf-8-validate
|
||||||
|
|
||||||
graphql-config@4.4.1(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1):
|
graphql-config@4.4.1(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@graphql-tools/graphql-file-loader': 7.5.16(graphql@16.8.1)
|
'@graphql-tools/graphql-file-loader': 7.5.16(graphql@16.8.1)
|
||||||
'@graphql-tools/json-file-loader': 7.4.17(graphql@16.8.1)
|
'@graphql-tools/json-file-loader': 7.4.17(graphql@16.8.1)
|
||||||
@@ -20908,7 +21035,7 @@ snapshots:
|
|||||||
string-env-interpolation: 1.0.1
|
string-env-interpolation: 1.0.1
|
||||||
tslib: 2.6.2
|
tslib: 2.6.2
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
cosmiconfig-typescript-loader: 4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2)
|
cosmiconfig-typescript-loader: 4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@types/node'
|
- '@types/node'
|
||||||
- bufferutil
|
- bufferutil
|
||||||
@@ -20935,13 +21062,13 @@ snapshots:
|
|||||||
- encoding
|
- encoding
|
||||||
- utf-8-validate
|
- utf-8-validate
|
||||||
|
|
||||||
graphql-language-service-interface@2.10.2(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1):
|
graphql-language-service-interface@2.10.2(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
graphql: 16.8.1
|
graphql: 16.8.1
|
||||||
graphql-config: 4.4.1(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
|
graphql-config: 4.4.1(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
|
||||||
graphql-language-service-parser: 1.10.4(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
|
graphql-language-service-parser: 1.10.4(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
|
||||||
graphql-language-service-types: 1.8.7(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
|
graphql-language-service-types: 1.8.7(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
|
||||||
graphql-language-service-utils: 2.7.1(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
|
graphql-language-service-utils: 2.7.1(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
|
||||||
vscode-languageserver-types: 3.17.2
|
vscode-languageserver-types: 3.17.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@types/node'
|
- '@types/node'
|
||||||
@@ -20951,10 +21078,10 @@ snapshots:
|
|||||||
- encoding
|
- encoding
|
||||||
- utf-8-validate
|
- utf-8-validate
|
||||||
|
|
||||||
graphql-language-service-parser@1.10.4(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1):
|
graphql-language-service-parser@1.10.4(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
graphql: 16.8.1
|
graphql: 16.8.1
|
||||||
graphql-language-service-types: 1.8.7(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
|
graphql-language-service-types: 1.8.7(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@types/node'
|
- '@types/node'
|
||||||
- bufferutil
|
- bufferutil
|
||||||
@@ -20963,10 +21090,10 @@ snapshots:
|
|||||||
- encoding
|
- encoding
|
||||||
- utf-8-validate
|
- utf-8-validate
|
||||||
|
|
||||||
graphql-language-service-types@1.8.7(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1):
|
graphql-language-service-types@1.8.7(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
graphql: 16.8.1
|
graphql: 16.8.1
|
||||||
graphql-config: 4.4.1(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
|
graphql-config: 4.4.1(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
|
||||||
vscode-languageserver-types: 3.17.2
|
vscode-languageserver-types: 3.17.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@types/node'
|
- '@types/node'
|
||||||
@@ -20976,11 +21103,11 @@ snapshots:
|
|||||||
- encoding
|
- encoding
|
||||||
- utf-8-validate
|
- utf-8-validate
|
||||||
|
|
||||||
graphql-language-service-utils@2.7.1(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1):
|
graphql-language-service-utils@2.7.1(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/json-schema': 7.0.9
|
'@types/json-schema': 7.0.9
|
||||||
graphql: 16.8.1
|
graphql: 16.8.1
|
||||||
graphql-language-service-types: 1.8.7(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@8.2.0)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
|
graphql-language-service-types: 1.8.7(@types/node@18.18.8)(cosmiconfig-typescript-loader@4.3.0(@types/node@18.18.8)(cosmiconfig@7.0.1)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.18.8)(typescript@5.3.2))(typescript@5.3.2))(graphql@16.8.1)
|
||||||
nullthrows: 1.1.1
|
nullthrows: 1.1.1
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@types/node'
|
- '@types/node'
|
||||||
@@ -21256,9 +21383,9 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
httpsnippet@3.0.1(ajv@8.12.0):
|
httpsnippet@3.0.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
ajv: 8.12.0
|
ajv: 6.12.3
|
||||||
chalk: 4.1.2
|
chalk: 4.1.2
|
||||||
event-stream: 4.0.1
|
event-stream: 4.0.1
|
||||||
form-data: 4.0.0
|
form-data: 4.0.0
|
||||||
@@ -23232,7 +23359,7 @@ snapshots:
|
|||||||
lower-case: 2.0.2
|
lower-case: 2.0.2
|
||||||
tslib: 2.6.2
|
tslib: 2.6.2
|
||||||
|
|
||||||
node-abi@3.60.0:
|
node-abi@3.57.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
semver: 7.6.0
|
semver: 7.6.0
|
||||||
|
|
||||||
@@ -23808,7 +23935,7 @@ snapshots:
|
|||||||
minimist: 1.2.6
|
minimist: 1.2.6
|
||||||
mkdirp-classic: 0.5.3
|
mkdirp-classic: 0.5.3
|
||||||
napi-build-utils: 1.0.2
|
napi-build-utils: 1.0.2
|
||||||
node-abi: 3.60.0
|
node-abi: 3.57.0
|
||||||
pump: 3.0.0
|
pump: 3.0.0
|
||||||
rc: 1.2.8
|
rc: 1.2.8
|
||||||
simple-get: 4.0.1
|
simple-get: 4.0.1
|
||||||
@@ -25278,7 +25405,7 @@ snapshots:
|
|||||||
|
|
||||||
ts-interface-checker@0.1.13: {}
|
ts-interface-checker@0.1.13: {}
|
||||||
|
|
||||||
ts-jest@27.1.5(@babel/core@7.23.9)(@types/jest@27.5.2)(babel-jest@29.7.0(@babel/core@7.23.9))(jest@29.7.0(@types/node@17.0.45)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@17.0.45)(typescript@4.9.5)))(typescript@4.9.5):
|
ts-jest@27.1.5(@babel/core@7.23.9)(@types/jest@27.5.2)(jest@29.7.0(@types/node@17.0.45)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@17.0.45)(typescript@4.9.5)))(typescript@4.9.5):
|
||||||
dependencies:
|
dependencies:
|
||||||
bs-logger: 0.2.6
|
bs-logger: 0.2.6
|
||||||
fast-json-stable-stringify: 2.1.0
|
fast-json-stable-stringify: 2.1.0
|
||||||
@@ -25293,7 +25420,6 @@ snapshots:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@babel/core': 7.23.9
|
'@babel/core': 7.23.9
|
||||||
'@types/jest': 27.5.2
|
'@types/jest': 27.5.2
|
||||||
babel-jest: 29.7.0(@babel/core@7.23.9)
|
|
||||||
|
|
||||||
ts-jest@29.0.5(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(jest@29.4.1(@types/node@18.11.10)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.11.10)(typescript@4.9.3)))(typescript@4.9.3):
|
ts-jest@29.0.5(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(jest@29.4.1(@types/node@18.11.10)(ts-node@10.9.1(@swc/core@1.4.2)(@types/node@18.11.10)(typescript@4.9.3)))(typescript@4.9.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -25715,7 +25841,7 @@ snapshots:
|
|||||||
unplugin: 1.5.1
|
unplugin: 1.5.1
|
||||||
vite: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)
|
vite: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)
|
||||||
|
|
||||||
unplugin-icons@0.14.9(@vue/compiler-sfc@3.2.45)(esbuild@0.20.0)(rollup@3.29.4)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(vue-template-compiler@2.7.14)(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
|
unplugin-icons@0.14.9(@vue/compiler-sfc@3.2.45)(esbuild@0.20.0)(rollup@2.79.1)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(vue-template-compiler@2.7.14)(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@antfu/install-pkg': 0.1.1
|
'@antfu/install-pkg': 0.1.1
|
||||||
'@antfu/utils': 0.5.2
|
'@antfu/utils': 0.5.2
|
||||||
@@ -25723,7 +25849,7 @@ snapshots:
|
|||||||
debug: 4.3.4(supports-color@9.2.2)
|
debug: 4.3.4(supports-color@9.2.2)
|
||||||
kolorist: 1.8.0
|
kolorist: 1.8.0
|
||||||
local-pkg: 0.4.3
|
local-pkg: 0.4.3
|
||||||
unplugin: 0.9.5(esbuild@0.20.0)(rollup@3.29.4)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
|
unplugin: 0.9.5(esbuild@0.20.0)(rollup@2.79.1)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@vue/compiler-sfc': 3.2.45
|
'@vue/compiler-sfc': 3.2.45
|
||||||
vue-template-compiler: 2.7.14
|
vue-template-compiler: 2.7.14
|
||||||
@@ -25734,7 +25860,7 @@ snapshots:
|
|||||||
- vite
|
- vite
|
||||||
- webpack
|
- webpack
|
||||||
|
|
||||||
unplugin-icons@0.14.9(@vue/compiler-sfc@3.3.10)(esbuild@0.20.0)(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue-template-compiler@2.7.14)(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
|
unplugin-icons@0.14.9(@vue/compiler-sfc@3.3.10)(esbuild@0.20.0)(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue-template-compiler@2.7.14)(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@antfu/install-pkg': 0.1.1
|
'@antfu/install-pkg': 0.1.1
|
||||||
'@antfu/utils': 0.5.2
|
'@antfu/utils': 0.5.2
|
||||||
@@ -25742,7 +25868,7 @@ snapshots:
|
|||||||
debug: 4.3.4(supports-color@9.2.2)
|
debug: 4.3.4(supports-color@9.2.2)
|
||||||
kolorist: 1.8.0
|
kolorist: 1.8.0
|
||||||
local-pkg: 0.4.3
|
local-pkg: 0.4.3
|
||||||
unplugin: 0.9.5(esbuild@0.20.0)(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
|
unplugin: 0.9.5(esbuild@0.20.0)(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@vue/compiler-sfc': 3.3.10
|
'@vue/compiler-sfc': 3.3.10
|
||||||
vue-template-compiler: 2.7.14
|
vue-template-compiler: 2.7.14
|
||||||
@@ -25768,7 +25894,7 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
unplugin-vue-components@0.21.0(@babel/parser@7.23.9)(esbuild@0.20.0)(rollup@3.29.4)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(vue@3.3.9(typescript@4.9.3))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
|
unplugin-vue-components@0.21.0(@babel/parser@7.23.9)(esbuild@0.20.0)(rollup@2.79.1)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(vue@3.3.9(typescript@4.9.3))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@antfu/utils': 0.5.2
|
'@antfu/utils': 0.5.2
|
||||||
'@rollup/pluginutils': 4.2.1
|
'@rollup/pluginutils': 4.2.1
|
||||||
@@ -25779,7 +25905,7 @@ snapshots:
|
|||||||
magic-string: 0.26.7
|
magic-string: 0.26.7
|
||||||
minimatch: 5.1.6
|
minimatch: 5.1.6
|
||||||
resolve: 1.22.8
|
resolve: 1.22.8
|
||||||
unplugin: 0.7.1(esbuild@0.20.0)(rollup@3.29.4)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
|
unplugin: 0.7.1(esbuild@0.20.0)(rollup@2.79.1)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
|
||||||
vue: 3.3.9(typescript@4.9.3)
|
vue: 3.3.9(typescript@4.9.3)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@babel/parser': 7.23.9
|
'@babel/parser': 7.23.9
|
||||||
@@ -25790,7 +25916,7 @@ snapshots:
|
|||||||
- vite
|
- vite
|
||||||
- webpack
|
- webpack
|
||||||
|
|
||||||
unplugin-vue-components@0.21.0(@babel/parser@7.23.9)(esbuild@0.20.0)(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue@3.3.9(typescript@4.9.5))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
|
unplugin-vue-components@0.21.0(@babel/parser@7.23.9)(esbuild@0.20.0)(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue@3.3.9(typescript@4.9.5))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@antfu/utils': 0.5.2
|
'@antfu/utils': 0.5.2
|
||||||
'@rollup/pluginutils': 4.2.1
|
'@rollup/pluginutils': 4.2.1
|
||||||
@@ -25801,7 +25927,7 @@ snapshots:
|
|||||||
magic-string: 0.26.7
|
magic-string: 0.26.7
|
||||||
minimatch: 5.1.6
|
minimatch: 5.1.6
|
||||||
resolve: 1.22.8
|
resolve: 1.22.8
|
||||||
unplugin: 0.7.1(esbuild@0.20.0)(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
|
unplugin: 0.7.1(esbuild@0.20.0)(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0))
|
||||||
vue: 3.3.9(typescript@4.9.5)
|
vue: 3.3.9(typescript@4.9.5)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@babel/parser': 7.23.9
|
'@babel/parser': 7.23.9
|
||||||
@@ -25812,10 +25938,10 @@ snapshots:
|
|||||||
- vite
|
- vite
|
||||||
- webpack
|
- webpack
|
||||||
|
|
||||||
unplugin-vue-components@0.25.2(@babel/parser@7.23.9)(rollup@3.29.4)(vue@3.3.9(typescript@5.3.2)):
|
unplugin-vue-components@0.25.2(@babel/parser@7.23.9)(rollup@2.79.1)(vue@3.3.9(typescript@5.3.2)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@antfu/utils': 0.7.6
|
'@antfu/utils': 0.7.6
|
||||||
'@rollup/pluginutils': 5.1.0(rollup@3.29.4)
|
'@rollup/pluginutils': 5.1.0(rollup@2.79.1)
|
||||||
chokidar: 3.5.3
|
chokidar: 3.5.3
|
||||||
debug: 4.3.4(supports-color@9.2.2)
|
debug: 4.3.4(supports-color@9.2.2)
|
||||||
fast-glob: 3.3.2
|
fast-glob: 3.3.2
|
||||||
@@ -25850,7 +25976,7 @@ snapshots:
|
|||||||
- rollup
|
- rollup
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
unplugin@0.7.1(esbuild@0.20.0)(rollup@3.29.4)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
|
unplugin@0.7.1(esbuild@0.20.0)(rollup@2.79.1)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
|
||||||
dependencies:
|
dependencies:
|
||||||
acorn: 8.11.3
|
acorn: 8.11.3
|
||||||
chokidar: 3.5.3
|
chokidar: 3.5.3
|
||||||
@@ -25858,11 +25984,11 @@ snapshots:
|
|||||||
webpack-virtual-modules: 0.4.4
|
webpack-virtual-modules: 0.4.4
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
esbuild: 0.20.0
|
esbuild: 0.20.0
|
||||||
rollup: 3.29.4
|
rollup: 2.79.1
|
||||||
vite: 3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0)
|
vite: 3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0)
|
||||||
webpack: 5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)
|
webpack: 5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)
|
||||||
|
|
||||||
unplugin@0.7.1(esbuild@0.20.0)(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
|
unplugin@0.7.1(esbuild@0.20.0)(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
|
||||||
dependencies:
|
dependencies:
|
||||||
acorn: 8.11.3
|
acorn: 8.11.3
|
||||||
chokidar: 3.5.3
|
chokidar: 3.5.3
|
||||||
@@ -25870,11 +25996,11 @@ snapshots:
|
|||||||
webpack-virtual-modules: 0.4.4
|
webpack-virtual-modules: 0.4.4
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
esbuild: 0.20.0
|
esbuild: 0.20.0
|
||||||
rollup: 3.29.4
|
rollup: 2.79.1
|
||||||
vite: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)
|
vite: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)
|
||||||
webpack: 5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)
|
webpack: 5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)
|
||||||
|
|
||||||
unplugin@0.9.5(esbuild@0.20.0)(rollup@3.29.4)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
|
unplugin@0.9.5(esbuild@0.20.0)(rollup@2.79.1)(vite@3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
|
||||||
dependencies:
|
dependencies:
|
||||||
acorn: 8.11.3
|
acorn: 8.11.3
|
||||||
chokidar: 3.5.3
|
chokidar: 3.5.3
|
||||||
@@ -25882,11 +26008,11 @@ snapshots:
|
|||||||
webpack-virtual-modules: 0.4.4
|
webpack-virtual-modules: 0.4.4
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
esbuild: 0.20.0
|
esbuild: 0.20.0
|
||||||
rollup: 3.29.4
|
rollup: 2.79.1
|
||||||
vite: 3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0)
|
vite: 3.2.4(@types/node@18.18.8)(sass@1.58.0)(terser@5.27.0)
|
||||||
webpack: 5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)
|
webpack: 5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)
|
||||||
|
|
||||||
unplugin@0.9.5(esbuild@0.20.0)(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
|
unplugin@0.9.5(esbuild@0.20.0)(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(webpack@5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)):
|
||||||
dependencies:
|
dependencies:
|
||||||
acorn: 8.11.3
|
acorn: 8.11.3
|
||||||
chokidar: 3.5.3
|
chokidar: 3.5.3
|
||||||
@@ -25894,7 +26020,7 @@ snapshots:
|
|||||||
webpack-virtual-modules: 0.4.4
|
webpack-virtual-modules: 0.4.4
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
esbuild: 0.20.0
|
esbuild: 0.20.0
|
||||||
rollup: 3.29.4
|
rollup: 2.79.1
|
||||||
vite: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)
|
vite: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)
|
||||||
webpack: 5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)
|
webpack: 5.90.0(@swc/core@1.4.2)(esbuild@0.20.0)
|
||||||
|
|
||||||
@@ -26028,7 +26154,7 @@ snapshots:
|
|||||||
- supports-color
|
- supports-color
|
||||||
- terser
|
- terser
|
||||||
|
|
||||||
vite-plugin-checker@0.6.2(eslint@8.57.0)(meow@8.1.2)(optionator@0.9.3)(typescript@5.3.2)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue-tsc@1.8.24(typescript@5.3.2)):
|
vite-plugin-checker@0.6.2(eslint@8.57.0)(optionator@0.9.3)(typescript@5.3.2)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0))(vue-tsc@1.8.24(typescript@5.3.2)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/code-frame': 7.23.5
|
'@babel/code-frame': 7.23.5
|
||||||
ansi-escapes: 4.3.2
|
ansi-escapes: 4.3.2
|
||||||
@@ -26050,7 +26176,6 @@ snapshots:
|
|||||||
vscode-uri: 3.0.7
|
vscode-uri: 3.0.7
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
eslint: 8.57.0
|
eslint: 8.57.0
|
||||||
meow: 8.1.2
|
|
||||||
optionator: 0.9.3
|
optionator: 0.9.3
|
||||||
typescript: 5.3.2
|
typescript: 5.3.2
|
||||||
vue-tsc: 1.8.24(typescript@5.3.2)
|
vue-tsc: 1.8.24(typescript@5.3.2)
|
||||||
@@ -26096,10 +26221,10 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
vite: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)
|
vite: 4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)
|
||||||
|
|
||||||
vite-plugin-inspect@0.7.38(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)):
|
vite-plugin-inspect@0.7.38(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@antfu/utils': 0.7.6
|
'@antfu/utils': 0.7.6
|
||||||
'@rollup/pluginutils': 5.1.0(rollup@3.29.4)
|
'@rollup/pluginutils': 5.1.0(rollup@2.79.1)
|
||||||
debug: 4.3.4(supports-color@9.2.2)
|
debug: 4.3.4(supports-color@9.2.2)
|
||||||
error-stack-parser-es: 0.1.1
|
error-stack-parser-es: 0.1.1
|
||||||
fs-extra: 11.1.1
|
fs-extra: 11.1.1
|
||||||
@@ -26111,10 +26236,10 @@ snapshots:
|
|||||||
- rollup
|
- rollup
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
vite-plugin-inspect@0.7.42(rollup@3.29.4)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)):
|
vite-plugin-inspect@0.7.42(rollup@2.79.1)(vite@4.5.0(@types/node@18.18.8)(sass@1.69.5)(terser@5.27.0)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@antfu/utils': 0.7.6
|
'@antfu/utils': 0.7.6
|
||||||
'@rollup/pluginutils': 5.1.0(rollup@3.29.4)
|
'@rollup/pluginutils': 5.1.0(rollup@2.79.1)
|
||||||
debug: 4.3.4(supports-color@9.2.2)
|
debug: 4.3.4(supports-color@9.2.2)
|
||||||
error-stack-parser-es: 0.1.1
|
error-stack-parser-es: 0.1.1
|
||||||
fs-extra: 11.1.1
|
fs-extra: 11.1.1
|
||||||
@@ -26865,6 +26990,10 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
string-width: 4.2.3
|
string-width: 4.2.3
|
||||||
|
|
||||||
|
widest-line@3.1.0:
|
||||||
|
dependencies:
|
||||||
|
string-width: 4.2.3
|
||||||
|
|
||||||
windows-release@4.0.0:
|
windows-release@4.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
execa: 4.1.0
|
execa: 4.1.0
|
||||||
@@ -26893,7 +27022,7 @@ snapshots:
|
|||||||
|
|
||||||
workbox-build@7.0.0(@types/babel__core@7.1.19):
|
workbox-build@7.0.0(@types/babel__core@7.1.19):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@apideck/better-ajv-errors': 0.3.6(ajv@8.12.0)
|
'@apideck/better-ajv-errors': 0.3.6(ajv@8.13.0)
|
||||||
'@babel/core': 7.23.9
|
'@babel/core': 7.23.9
|
||||||
'@babel/preset-env': 7.23.9(@babel/core@7.23.9)
|
'@babel/preset-env': 7.23.9(@babel/core@7.23.9)
|
||||||
'@babel/runtime': 7.23.9
|
'@babel/runtime': 7.23.9
|
||||||
@@ -26901,7 +27030,7 @@ snapshots:
|
|||||||
'@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.1)
|
'@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.1)
|
||||||
'@rollup/plugin-replace': 2.4.2(rollup@2.79.1)
|
'@rollup/plugin-replace': 2.4.2(rollup@2.79.1)
|
||||||
'@surma/rollup-plugin-off-main-thread': 2.2.3
|
'@surma/rollup-plugin-off-main-thread': 2.2.3
|
||||||
ajv: 8.12.0
|
ajv: 8.13.0
|
||||||
common-tags: 1.8.2
|
common-tags: 1.8.2
|
||||||
fast-json-stable-stringify: 2.1.0
|
fast-json-stable-stringify: 2.1.0
|
||||||
fs-extra: 9.1.0
|
fs-extra: 9.1.0
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM node:18-alpine3.19 as base_builder
|
FROM node:20-alpine3.19 as base_builder
|
||||||
|
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user