diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 000000000..c25925208
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1 @@
+*/**/node_modules
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 2cf042711..9a2af6430 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -2,9 +2,9 @@ name: Node.js CI
on:
push:
- branches: [main, staging]
+ branches: [main, staging, "release/**"]
pull_request:
- branches: [main, staging]
+ branches: [main, staging, "release/**"]
jobs:
test:
diff --git a/docker-compose.yml b/docker-compose.yml
index 417b15002..8c948fcd0 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -19,10 +19,12 @@ services:
- DATABASE_URL=postgresql://postgres:testpass@hoppscotch-db:5432/hoppscotch?connect_timeout=300
- PORT=3000
volumes:
- - ./packages/hoppscotch-backend/:/usr/src/app
+ # Uncomment the line below when modifying code. Only applicable when using the "dev" target.
+ # - ./packages/hoppscotch-backend/:/usr/src/app
- /usr/src/app/node_modules/
depends_on:
- - hoppscotch-db
+ hoppscotch-db:
+ condition: service_healthy
ports:
- "3170:3000"
@@ -60,12 +62,20 @@ services:
# you are using an external postgres instance
# This will be exposed at port 5432
hoppscotch-db:
- image: postgres
+ image: postgres:15
ports:
- "5432:5432"
+ user: postgres
environment:
+ # The default user defined by the docker image
+ POSTGRES_USER: postgres
# NOTE: Please UPDATE THIS PASSWORD!
POSTGRES_PASSWORD: testpass
POSTGRES_DB: hoppscotch
+ healthcheck:
+ test: ["CMD-SHELL", "sh -c 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}'"]
+ interval: 5s
+ timeout: 5s
+ retries: 10
diff --git a/packages/hoppscotch-backend/package.json b/packages/hoppscotch-backend/package.json
index eaf675eaf..e0ad0802a 100644
--- a/packages/hoppscotch-backend/package.json
+++ b/packages/hoppscotch-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "hoppscotch-backend",
- "version": "2023.4.7",
+ "version": "2023.4.8",
"description": "",
"author": "",
"private": true,
diff --git a/packages/hoppscotch-backend/src/team-environments/team-environments.service.spec.ts b/packages/hoppscotch-backend/src/team-environments/team-environments.service.spec.ts
index 719e58007..254936460 100644
--- a/packages/hoppscotch-backend/src/team-environments/team-environments.service.spec.ts
+++ b/packages/hoppscotch-backend/src/team-environments/team-environments.service.spec.ts
@@ -306,8 +306,8 @@ describe('TeamEnvironmentsService', () => {
);
mockPrisma.teamEnvironment.create.mockResolvedValueOnce({
- ...teamEnvironment,
id: 'newid',
+ ...teamEnvironment,
});
const result = await teamEnvironmentsService.createDuplicateEnvironment(
@@ -337,8 +337,8 @@ describe('TeamEnvironmentsService', () => {
);
mockPrisma.teamEnvironment.create.mockResolvedValueOnce({
- ...teamEnvironment,
id: 'newid',
+ ...teamEnvironment,
});
const result = await teamEnvironmentsService.createDuplicateEnvironment(
diff --git a/packages/hoppscotch-common/locales/tw.json b/packages/hoppscotch-common/locales/tw.json
index 6d58298c9..cce86a565 100644
--- a/packages/hoppscotch-common/locales/tw.json
+++ b/packages/hoppscotch-common/locales/tw.json
@@ -19,7 +19,7 @@
"edit": "編輯",
"filter": "篩選回應",
"go_back": "返回",
- "go_forward": "Go forward",
+ "go_forward": "向前",
"group_by": "分組方式",
"label": "標籤",
"learn_more": "瞭解更多",
@@ -117,37 +117,37 @@
"username": "使用者名稱"
},
"collection": {
- "created": "組合已建立",
- "different_parent": "Cannot reorder collection with different parent",
- "edit": "編輯組合",
- "invalid_name": "請提供有效的組合名稱",
- "invalid_root_move": "Collection already in the root",
- "moved": "Moved Successfully",
- "my_collections": "我的組合",
- "name": "我的新組合",
- "name_length_insufficient": "組合名稱至少要有 3 個字元。",
- "new": "建立組合",
- "order_changed": "Collection Order Updated",
- "renamed": "組合已重新命名",
+ "created": "集合已建立",
+ "different_parent": "無法為父集合不同的集合重新排序",
+ "edit": "編輯集合",
+ "invalid_name": "請提供有效的集合名稱",
+ "invalid_root_move": "集合已在根目錄",
+ "moved": "移動成功",
+ "my_collections": "我的集合",
+ "name": "我的新集合",
+ "name_length_insufficient": "集合名稱至少要有 3 個字元。",
+ "new": "建立集合",
+ "order_changed": "集合順序已更新",
+ "renamed": "集合已重新命名",
"request_in_use": "請求正在使用中",
"save_as": "另存為",
- "select": "選擇一個組合",
+ "select": "選擇一個集合",
"select_location": "選擇位置",
"select_team": "選擇一個團隊",
- "team_collections": "團隊組合"
+ "team_collections": "團隊集合"
},
"confirm": {
"exit_team": "您確定要離開此團隊嗎?",
"logout": "您確定要登出嗎?",
- "remove_collection": "您確定要永久刪除該組合嗎?",
+ "remove_collection": "您確定要永久刪除該集合嗎?",
"remove_environment": "您確定要永久刪除該環境嗎?",
"remove_folder": "您確定要永久刪除該資料夾嗎?",
"remove_history": "您確定要永久刪除全部歷史記錄嗎?",
"remove_request": "您確定要永久刪除該請求嗎?",
"remove_team": "您確定要刪除該團隊嗎?",
"remove_telemetry": "您確定要退出遙測服務嗎?",
- "request_change": "您確定要捨棄當前請求嗎?未儲存的變更將遺失。",
- "save_unsaved_tab": "Do you want to save changes made in this tab?",
+ "request_change": "您確定要捨棄目前的請求嗎?未儲存的變更將遺失。",
+ "save_unsaved_tab": "您要儲存在此分頁做出的改動嗎?",
"sync": "您想從雲端恢復您的工作區嗎?這將丟棄您的本地進度。"
},
"count": {
@@ -160,13 +160,13 @@
},
"documentation": {
"generate": "產生文件",
- "generate_message": "匯入 Hoppscotch 組合以隨時隨地產生 API 文件。"
+ "generate_message": "匯入 Hoppscotch 集合以隨時隨地產生 API 文件。"
},
"empty": {
"authorization": "該請求沒有使用任何授權",
"body": "該請求沒有任何請求主體",
- "collection": "組合為空",
- "collections": "組合為空",
+ "collection": "集合為空",
+ "collections": "集合為空",
"documentation": "連線到 GraphQL 端點以檢視文件",
"endpoint": "端點不能留空",
"environments": "環境為空",
@@ -209,7 +209,7 @@
"browser_support_sse": "此瀏覽器似乎不支援 SSE。",
"check_console_details": "檢查控制台日誌以獲悉詳情",
"curl_invalid_format": "cURL 格式不正確",
- "danger_zone": "Danger zone",
+ "danger_zone": "危險地帶",
"delete_account": "您的帳號目前為這些團隊的擁有者:",
"delete_account_description": "您在刪除帳號前必須先將您自己從團隊中移除、轉移擁有權,或是刪除團隊。",
"empty_req_name": "空請求名稱",
@@ -277,38 +277,38 @@
"tests": "編寫測試指令碼以自動除錯。"
},
"hide": {
- "collection": "隱藏組合面板",
+ "collection": "隱藏集合面板",
"more": "隱藏更多",
"preview": "隱藏預覽",
"sidebar": "隱藏側邊欄"
},
"import": {
- "collections": "匯入組合",
+ "collections": "匯入集合",
"curl": "匯入 cURL",
"failed": "匯入失敗",
"from_gist": "從 Gist 匯入",
"from_gist_description": "從 Gist 網址匯入",
"from_insomnia": "從 Insomnia 匯入",
- "from_insomnia_description": "從 Insomnia 組合匯入",
+ "from_insomnia_description": "從 Insomnia 集合匯入",
"from_json": "從 Hoppscotch 匯入",
- "from_json_description": "從 Hoppscotch 組合檔匯入",
- "from_my_collections": "從我的組合匯入",
- "from_my_collections_description": "從我的組合檔匯入",
+ "from_json_description": "從 Hoppscotch 集合檔匯入",
+ "from_my_collections": "從我的集合匯入",
+ "from_my_collections_description": "從我的集合檔匯入",
"from_openapi": "從 OpenAPI 匯入",
"from_openapi_description": "從 OpenAPI 規格檔 (YML/JSON) 匯入",
"from_postman": "從 Postman 匯入",
- "from_postman_description": "從 Postman 組合匯入",
+ "from_postman_description": "從 Postman 集合匯入",
"from_url": "從網址匯入",
"gist_url": "輸入 Gist 網址",
"import_from_url_invalid_fetch": "無法從網址取得資料",
- "import_from_url_invalid_file_format": "匯入組合時發生錯誤",
+ "import_from_url_invalid_file_format": "匯入集合時發生錯誤",
"import_from_url_invalid_type": "不支援此類型。可接受的值為 'hoppscotch'、'openapi'、'postman'、'insomnia'",
- "import_from_url_success": "已匯入組合",
- "json_description": "從 Hoppscotch 組合 JSON 檔匯入組合",
+ "import_from_url_success": "已匯入集合",
+ "json_description": "從 Hoppscotch 集合 JSON 檔匯入集合",
"title": "匯入"
},
"layout": {
- "collapse_collection": "隱藏或顯示組合",
+ "collapse_collection": "隱藏或顯示集合",
"collapse_sidebar": "隱藏或顯示側邊欄",
"column": "垂直版面",
"name": "配置",
@@ -316,8 +316,8 @@
"zen_mode": "專注模式"
},
"modal": {
- "close_unsaved_tab": "You have unsaved changes",
- "collections": "組合",
+ "close_unsaved_tab": "您有未儲存的改動",
+ "collections": "集合",
"confirm": "確認",
"edit_request": "編輯請求",
"import_export": "匯入/匯出"
@@ -374,9 +374,9 @@
"email_verification_mail": "已將驗證信寄送至您的電子郵件地址。請點擊信中連結以驗證您的電子郵件地址。",
"no_permission": "您沒有權限執行此操作。",
"owner": "擁有者",
- "owner_description": "擁有者可以新增、編輯和刪除請求、組合和團隊成員。",
+ "owner_description": "擁有者可以新增、編輯和刪除請求、集合和團隊成員。",
"roles": "角色",
- "roles_description": "角色用來控制對共用組合的存取權。",
+ "roles_description": "角色用來控制對共用集合的存取權。",
"updated": "已更新個人檔案",
"viewer": "檢視者",
"viewer_description": "檢視者只能檢視和使用請求。"
@@ -396,8 +396,8 @@
"text": "文字"
},
"copy_link": "複製連結",
- "different_collection": "Cannot reorder requests from different collections",
- "duplicated": "Request duplicated",
+ "different_collection": "無法重新排列來自不同集合的請求",
+ "duplicated": "已複製請求",
"duration": "持續時間",
"enter_curl": "輸入 cURL",
"generate_code": "產生程式碼",
@@ -405,10 +405,10 @@
"header_list": "請求標頭列表",
"invalid_name": "請提供請求名稱",
"method": "方法",
- "moved": "Request moved",
+ "moved": "已移動請求",
"name": "請求名稱",
"new": "新請求",
- "order_changed": "Request Order Updated",
+ "order_changed": "已更新請求順序",
"override": "覆寫",
"override_help": "在標頭設置 Content-Type",
"overriden": "已覆寫",
@@ -432,7 +432,7 @@
"view_my_links": "檢視我的連結"
},
"response": {
- "audio": "Audio",
+ "audio": "音訊",
"body": "回應本體",
"filter_response_body": "篩選 JSON 回應本體 (使用 JSONPath 語法)",
"headers": "回應標頭",
@@ -446,7 +446,7 @@
"status": "狀態",
"time": "時間",
"title": "回應",
- "video": "Video",
+ "video": "視訊",
"waiting_for_connection": "等待連線",
"xml": "XML"
},
@@ -494,7 +494,7 @@
"short_codes_description": "我們為您打造的快捷碼。",
"sidebar_on_left": "左側邊欄",
"sync": "同步",
- "sync_collections": "組合",
+ "sync_collections": "集合",
"sync_description": "這些設定會同步到雲端。",
"sync_environments": "環境",
"sync_history": "歷史",
@@ -551,7 +551,7 @@
"previous_method": "選擇上一個方法",
"put_method": "選擇 PUT 方法",
"reset_request": "重置請求",
- "save_to_collections": "儲存到組合",
+ "save_to_collections": "儲存到集合",
"send_request": "傳送請求",
"title": "請求"
},
@@ -570,7 +570,7 @@
},
"show": {
"code": "顯示程式碼",
- "collection": "顯示組合面板",
+ "collection": "顯示集合面板",
"more": "顯示更多",
"sidebar": "顯示側邊欄"
},
@@ -639,9 +639,9 @@
"tab": {
"authorization": "授權",
"body": "請求本體",
- "collections": "組合",
+ "collections": "集合",
"documentation": "幫助文件",
- "environments": "Environments",
+ "environments": "環境",
"headers": "請求標頭",
"history": "歷史記錄",
"mqtt": "MQTT",
@@ -666,7 +666,7 @@
"email_do_not_match": "電子信箱與您的帳號資料不一致。請聯絡您的團隊擁有者。",
"exit": "退出團隊",
"exit_disabled": "團隊擁有者無法退出團隊",
- "invalid_coll_id": "Invalid collection ID",
+ "invalid_coll_id": "集合 ID 無效",
"invalid_email_format": "電子信箱格式無效",
"invalid_id": "團隊 ID 無效。請聯絡您的團隊擁有者。",
"invalid_invite_link": "邀請連結無效",
@@ -690,21 +690,21 @@
"member_removed": "使用者已移除",
"member_role_updated": "使用者角色已更新",
"members": "成員",
- "more_members": "+{count} more",
+ "more_members": "還有 {count} 位",
"name_length_insufficient": "團隊名稱至少為 6 個字元",
"name_updated": "團隊名稱已更新",
"new": "新團隊",
"new_created": "已建立新團隊",
"new_name": "我的新團隊",
- "no_access": "您沒有編輯組合的許可權",
+ "no_access": "您沒有編輯集合的許可權",
"no_invite_found": "未找到邀請。請聯絡您的團隊擁有者。",
- "no_request_found": "Request not found.",
+ "no_request_found": "找不到請求。",
"not_found": "找不到團隊。請聯絡您的團隊擁有者。",
"not_valid_viewer": "您不是一個有效的檢視者。請聯絡您的團隊擁有者。",
- "parent_coll_move": "Cannot move collection to a child collection",
+ "parent_coll_move": "無法將集合移動至子集合",
"pending_invites": "待定邀請",
"permissions": "許可權",
- "same_target_destination": "Same target and destination",
+ "same_target_destination": "目標和目的地相同",
"saved": "團隊已儲存",
"select_a_team": "選擇團隊",
"title": "團隊",
@@ -734,9 +734,9 @@
"url": "網址"
},
"workspace": {
- "change": "Change workspace",
- "personal": "My Workspace",
- "team": "Team Workspace",
- "title": "Workspaces"
+ "change": "切換工作區",
+ "personal": "我的工作區",
+ "team": "團隊工作區",
+ "title": "工作區"
}
}
diff --git a/packages/hoppscotch-common/package.json b/packages/hoppscotch-common/package.json
index b9b5f1c04..700043e71 100644
--- a/packages/hoppscotch-common/package.json
+++ b/packages/hoppscotch-common/package.json
@@ -1,7 +1,7 @@
{
"name": "@hoppscotch/common",
"private": true,
- "version": "2023.4.7",
+ "version": "2023.4.8",
"scripts": {
"dev": "pnpm exec npm-run-all -p -l dev:*",
"test": "vitest --run",
diff --git a/packages/hoppscotch-common/public/badge.svg b/packages/hoppscotch-common/public/badge.svg
new file mode 100644
index 000000000..2c4897b13
--- /dev/null
+++ b/packages/hoppscotch-common/public/badge.svg
@@ -0,0 +1 @@
+
diff --git a/packages/hoppscotch-common/src/components.d.ts b/packages/hoppscotch-common/src/components.d.ts
index 86af05744..7ceddf987 100644
--- a/packages/hoppscotch-common/src/components.d.ts
+++ b/packages/hoppscotch-common/src/components.d.ts
@@ -7,6 +7,7 @@ export {}
declare module "@vue/runtime-core" {
export interface GlobalComponents {
+<<<<<<< HEAD
AppActionHandler: typeof import("./components/app/ActionHandler.vue")["default"]
AppAnnouncement: typeof import("./components/app/Announcement.vue")["default"]
AppDeveloperOptions: typeof import("./components/app/DeveloperOptions.vue")["default"]
@@ -199,5 +200,158 @@ declare module "@vue/runtime-core" {
Tippy: typeof import("vue-tippy")["Tippy"]
WorkspaceCurrent: typeof import("./components/workspace/Current.vue")["default"]
WorkspaceSelector: typeof import("./components/workspace/Selector.vue")["default"]
+=======
+ AppActionHandler: typeof import('./components/app/ActionHandler.vue')['default']
+ AppAnnouncement: typeof import('./components/app/Announcement.vue')['default']
+ AppDeveloperOptions: typeof import('./components/app/DeveloperOptions.vue')['default']
+ AppFooter: typeof import('./components/app/Footer.vue')['default']
+ AppFuse: typeof import('./components/app/Fuse.vue')['default']
+ AppGitHubStarButton: typeof import('./components/app/GitHubStarButton.vue')['default']
+ AppHeader: typeof import('./components/app/Header.vue')['default']
+ AppInterceptor: typeof import('./components/app/Interceptor.vue')['default']
+ AppLogo: typeof import('./components/app/Logo.vue')['default']
+ AppOptions: typeof import('./components/app/Options.vue')['default']
+ AppPaneLayout: typeof import('./components/app/PaneLayout.vue')['default']
+ AppPowerSearch: typeof import('./components/app/PowerSearch.vue')['default']
+ AppPowerSearchEntry: typeof import('./components/app/PowerSearchEntry.vue')['default']
+ AppShare: typeof import('./components/app/Share.vue')['default']
+ AppShortcuts: typeof import('./components/app/Shortcuts.vue')['default']
+ AppShortcutsEntry: typeof import('./components/app/ShortcutsEntry.vue')['default']
+ AppShortcutsPrompt: typeof import('./components/app/ShortcutsPrompt.vue')['default']
+ AppSidenav: typeof import('./components/app/Sidenav.vue')['default']
+ AppSupport: typeof import('./components/app/Support.vue')['default']
+ ButtonPrimary: typeof import('./../../hoppscotch-ui/src/components/button/Primary.vue')['default']
+ ButtonSecondary: typeof import('./../../hoppscotch-ui/src/components/button/Secondary.vue')['default']
+ Collections: typeof import('./components/collections/index.vue')['default']
+ CollectionsAdd: typeof import('./components/collections/Add.vue')['default']
+ CollectionsAddFolder: typeof import('./components/collections/AddFolder.vue')['default']
+ CollectionsAddRequest: typeof import('./components/collections/AddRequest.vue')['default']
+ CollectionsCollection: typeof import('./components/collections/Collection.vue')['default']
+ CollectionsEdit: typeof import('./components/collections/Edit.vue')['default']
+ CollectionsEditFolder: typeof import('./components/collections/EditFolder.vue')['default']
+ CollectionsEditRequest: typeof import('./components/collections/EditRequest.vue')['default']
+ CollectionsGraphql: typeof import('./components/collections/graphql/index.vue')['default']
+ CollectionsGraphqlAdd: typeof import('./components/collections/graphql/Add.vue')['default']
+ CollectionsGraphqlAddFolder: typeof import('./components/collections/graphql/AddFolder.vue')['default']
+ CollectionsGraphqlAddRequest: typeof import('./components/collections/graphql/AddRequest.vue')['default']
+ CollectionsGraphqlCollection: typeof import('./components/collections/graphql/Collection.vue')['default']
+ CollectionsGraphqlEdit: typeof import('./components/collections/graphql/Edit.vue')['default']
+ CollectionsGraphqlEditFolder: typeof import('./components/collections/graphql/EditFolder.vue')['default']
+ CollectionsGraphqlEditRequest: typeof import('./components/collections/graphql/EditRequest.vue')['default']
+ CollectionsGraphqlFolder: typeof import('./components/collections/graphql/Folder.vue')['default']
+ CollectionsGraphqlImportExport: typeof import('./components/collections/graphql/ImportExport.vue')['default']
+ CollectionsGraphqlRequest: typeof import('./components/collections/graphql/Request.vue')['default']
+ CollectionsImportExport: typeof import('./components/collections/ImportExport.vue')['default']
+ CollectionsMyCollections: typeof import('./components/collections/MyCollections.vue')['default']
+ CollectionsRequest: typeof import('./components/collections/Request.vue')['default']
+ CollectionsSaveRequest: typeof import('./components/collections/SaveRequest.vue')['default']
+ CollectionsTeamCollections: typeof import('./components/collections/TeamCollections.vue')['default']
+ Environments: typeof import('./components/environments/index.vue')['default']
+ EnvironmentsImportExport: typeof import('./components/environments/ImportExport.vue')['default']
+ EnvironmentsMy: typeof import('./components/environments/my/index.vue')['default']
+ EnvironmentsMyDetails: typeof import('./components/environments/my/Details.vue')['default']
+ EnvironmentsMyEnvironment: typeof import('./components/environments/my/Environment.vue')['default']
+ EnvironmentsSelector: typeof import('./components/environments/Selector.vue')['default']
+ EnvironmentsTeams: typeof import('./components/environments/teams/index.vue')['default']
+ EnvironmentsTeamsDetails: typeof import('./components/environments/teams/Details.vue')['default']
+ EnvironmentsTeamsEnvironment: typeof import('./components/environments/teams/Environment.vue')['default']
+ FirebaseLogin: typeof import('./components/firebase/Login.vue')['default']
+ FirebaseLogout: typeof import('./components/firebase/Logout.vue')['default']
+ GraphqlAuthorization: typeof import('./components/graphql/Authorization.vue')['default']
+ GraphqlField: typeof import('./components/graphql/Field.vue')['default']
+ GraphqlRequest: typeof import('./components/graphql/Request.vue')['default']
+ GraphqlRequestOptions: typeof import('./components/graphql/RequestOptions.vue')['default']
+ GraphqlResponse: typeof import('./components/graphql/Response.vue')['default']
+ GraphqlSidebar: typeof import('./components/graphql/Sidebar.vue')['default']
+ GraphqlType: typeof import('./components/graphql/Type.vue')['default']
+ GraphqlTypeLink: typeof import('./components/graphql/TypeLink.vue')['default']
+ History: typeof import('./components/history/index.vue')['default']
+ HistoryGraphqlCard: typeof import('./components/history/graphql/Card.vue')['default']
+ HistoryRestCard: typeof import('./components/history/rest/Card.vue')['default']
+ HttpAuthorization: typeof import('./components/http/Authorization.vue')['default']
+ HttpAuthorizationApiKey: typeof import('./components/http/authorization/ApiKey.vue')['default']
+ HttpAuthorizationBasic: typeof import('./components/http/authorization/Basic.vue')['default']
+ HttpBody: typeof import('./components/http/Body.vue')['default']
+ HttpBodyParameters: typeof import('./components/http/BodyParameters.vue')['default']
+ HttpCodegenModal: typeof import('./components/http/CodegenModal.vue')['default']
+ HttpHeaders: typeof import('./components/http/Headers.vue')['default']
+ HttpImportCurl: typeof import('./components/http/ImportCurl.vue')['default']
+ HttpOAuth2Authorization: typeof import('./components/http/OAuth2Authorization.vue')['default']
+ HttpParameters: typeof import('./components/http/Parameters.vue')['default']
+ HttpPreRequestScript: typeof import('./components/http/PreRequestScript.vue')['default']
+ HttpRawBody: typeof import('./components/http/RawBody.vue')['default']
+ HttpReqChangeConfirmModal: typeof import('./components/http/ReqChangeConfirmModal.vue')['default']
+ HttpRequest: typeof import('./components/http/Request.vue')['default']
+ HttpRequestOptions: typeof import('./components/http/RequestOptions.vue')['default']
+ HttpRequestTab: typeof import('./components/http/RequestTab.vue')['default']
+ HttpResponse: typeof import('./components/http/Response.vue')['default']
+ HttpResponseMeta: typeof import('./components/http/ResponseMeta.vue')['default']
+ HttpSidebar: typeof import('./components/http/Sidebar.vue')['default']
+ HttpTestResult: typeof import('./components/http/TestResult.vue')['default']
+ HttpTestResultEntry: typeof import('./components/http/TestResultEntry.vue')['default']
+ HttpTestResultEnv: typeof import('./components/http/TestResultEnv.vue')['default']
+ HttpTestResultReport: typeof import('./components/http/TestResultReport.vue')['default']
+ HttpTests: typeof import('./components/http/Tests.vue')['default']
+ HttpURLEncodedParams: typeof import('./components/http/URLEncodedParams.vue')['default']
+ LensesHeadersRenderer: typeof import('./components/lenses/HeadersRenderer.vue')['default']
+ LensesHeadersRendererEntry: typeof import('./components/lenses/HeadersRendererEntry.vue')['default']
+ LensesRenderersAudioLensRenderer: typeof import('./components/lenses/renderers/AudioLensRenderer.vue')['default']
+ LensesRenderersHTMLLensRenderer: typeof import('./components/lenses/renderers/HTMLLensRenderer.vue')['default']
+ LensesRenderersImageLensRenderer: typeof import('./components/lenses/renderers/ImageLensRenderer.vue')['default']
+ LensesRenderersJSONLensRenderer: typeof import('./components/lenses/renderers/JSONLensRenderer.vue')['default']
+ LensesRenderersPDFLensRenderer: typeof import('./components/lenses/renderers/PDFLensRenderer.vue')['default']
+ LensesRenderersRawLensRenderer: typeof import('./components/lenses/renderers/RawLensRenderer.vue')['default']
+ LensesRenderersVideoLensRenderer: typeof import('./components/lenses/renderers/VideoLensRenderer.vue')['default']
+ LensesRenderersXMLLensRenderer: typeof import('./components/lenses/renderers/XMLLensRenderer.vue')['default']
+ LensesResponseBodyRenderer: typeof import('./components/lenses/ResponseBodyRenderer.vue')['default']
+ ProfileShortcode: typeof import('./components/profile/Shortcode.vue')['default']
+ ProfileShortcodes: typeof import('./components/profile/Shortcodes.vue')['default']
+ ProfileUserDelete: typeof import('./components/profile/UserDelete.vue')['default']
+ RealtimeCommunication: typeof import('./components/realtime/Communication.vue')['default']
+ RealtimeConnectionConfig: typeof import('./components/realtime/ConnectionConfig.vue')['default']
+ RealtimeLog: typeof import('./components/realtime/Log.vue')['default']
+ RealtimeLogEntry: typeof import('./components/realtime/LogEntry.vue')['default']
+ RealtimeSubscription: typeof import('./components/realtime/Subscription.vue')['default']
+ SmartAccentModePicker: typeof import('./components/smart/AccentModePicker.vue')['default']
+ SmartAnchor: typeof import('./../../hoppscotch-ui/src/components/smart/Anchor.vue')['default']
+ SmartAutoComplete: typeof import('./../../hoppscotch-ui/src/components/smart/AutoComplete.vue')['default']
+ SmartChangeLanguage: typeof import('./components/smart/ChangeLanguage.vue')['default']
+ SmartCheckbox: typeof import('./../../hoppscotch-ui/src/components/smart/Checkbox.vue')['default']
+ SmartColorModePicker: typeof import('./components/smart/ColorModePicker.vue')['default']
+ SmartConfirmModal: typeof import('./../../hoppscotch-ui/src/components/smart/ConfirmModal.vue')['default']
+ SmartEnvInput: typeof import('./components/smart/EnvInput.vue')['default']
+ SmartExpand: typeof import('./../../hoppscotch-ui/src/components/smart/Expand.vue')['default']
+ SmartFileChip: typeof import('./../../hoppscotch-ui/src/components/smart/FileChip.vue')['default']
+ SmartFontSizePicker: typeof import('./components/smart/FontSizePicker.vue')['default']
+ SmartIntersection: typeof import('./../../hoppscotch-ui/src/components/smart/Intersection.vue')['default']
+ SmartItem: typeof import('./../../hoppscotch-ui/src/components/smart/Item.vue')['default']
+ SmartLink: typeof import('./../../hoppscotch-ui/src/components/smart/Link.vue')['default']
+ SmartModal: typeof import('./../../hoppscotch-ui/src/components/smart/Modal.vue')['default']
+ SmartPicture: typeof import('./../../hoppscotch-ui/src/components/smart/Picture.vue')['default']
+ SmartProgressRing: typeof import('./../../hoppscotch-ui/src/components/smart/ProgressRing.vue')['default']
+ SmartRadio: typeof import('./../../hoppscotch-ui/src/components/smart/Radio.vue')['default']
+ SmartRadioGroup: typeof import('./../../hoppscotch-ui/src/components/smart/RadioGroup.vue')['default']
+ SmartSlideOver: typeof import('./../../hoppscotch-ui/src/components/smart/SlideOver.vue')['default']
+ SmartSpinner: typeof import('./../../hoppscotch-ui/src/components/smart/Spinner.vue')['default']
+ SmartTab: typeof import('./../../hoppscotch-ui/src/components/smart/Tab.vue')['default']
+ SmartTabs: typeof import('./../../hoppscotch-ui/src/components/smart/Tabs.vue')['default']
+ SmartToggle: typeof import('./../../hoppscotch-ui/src/components/smart/Toggle.vue')['default']
+ SmartTree: typeof import('./components/smart/Tree.vue')['default']
+ SmartTreeBranch: typeof import('./components/smart/TreeBranch.vue')['default']
+ SmartWindow: typeof import('./../../hoppscotch-ui/src/components/smart/Window.vue')['default']
+ SmartWindows: typeof import('./../../hoppscotch-ui/src/components/smart/Windows.vue')['default']
+ TabPrimary: typeof import('./components/tab/Primary.vue')['default']
+ TabSecondary: typeof import('./components/tab/Secondary.vue')['default']
+ Teams: typeof import('./components/teams/index.vue')['default']
+ TeamsAdd: typeof import('./components/teams/Add.vue')['default']
+ TeamsEdit: typeof import('./components/teams/Edit.vue')['default']
+ TeamsInvite: typeof import('./components/teams/Invite.vue')['default']
+ TeamsMemberStack: typeof import('./components/teams/MemberStack.vue')['default']
+ TeamsModal: typeof import('./components/teams/Modal.vue')['default']
+ TeamsTeam: typeof import('./components/teams/Team.vue')['default']
+ Tippy: typeof import('vue-tippy')['Tippy']
+ WorkspaceCurrent: typeof import('./components/workspace/Current.vue')['default']
+ WorkspaceSelector: typeof import('./components/workspace/Selector.vue')['default']
+>>>>>>> upstream/main
}
}
diff --git a/packages/hoppscotch-common/src/helpers/keybindings.ts b/packages/hoppscotch-common/src/helpers/keybindings.ts
index d672386f4..e08149996 100644
--- a/packages/hoppscotch-common/src/helpers/keybindings.ts
+++ b/packages/hoppscotch-common/src/helpers/keybindings.ts
@@ -14,7 +14,13 @@ let keybindingsEnabled = true
* Alt is also regarded as macOS OPTION (⌥) key
* Ctrl is also regarded as macOS COMMAND (⌘) key (NOTE: this differs from HTML Keyboard spec where COMMAND is Meta key!)
*/
-type ModifierKeys = "ctrl" | "alt" | "ctrl-shift" | "alt-shift"
+type ModifierKeys =
+ | "ctrl"
+ | "alt"
+ | "ctrl-shift"
+ | "alt-shift"
+ | "ctrl-alt"
+ | "ctrl-alt-shift"
/* eslint-disable prettier/prettier */
// prettier-ignore
@@ -143,18 +149,19 @@ function getPressedKey(ev: KeyboardEvent): Key | null {
}
function getActiveModifier(ev: KeyboardEvent): ModifierKeys | null {
- const isShiftKey = ev.shiftKey
+ const modifierKeys = {
+ ctrl: isAppleDevice() ? ev.metaKey : ev.ctrlKey,
+ alt: ev.altKey,
+ shift: ev.shiftKey,
+ }
- // We only allow one modifier key to be pressed (for now)
- // Control key (+ Command) gets priority and if Alt is also pressed, it is ignored
- if (isAppleDevice() && ev.metaKey) return isShiftKey ? "ctrl-shift" : "ctrl"
- else if (!isAppleDevice() && ev.ctrlKey)
- return isShiftKey ? "ctrl-shift" : "ctrl"
+ // active modifier: ctrl | alt | ctrl-alt | ctrl-shift | ctrl-alt-shift | alt-shift
+ // modiferKeys object's keys are sorted to match the above order
+ const activeModifier = Object.keys(modifierKeys)
+ .filter((key) => modifierKeys[key as keyof typeof modifierKeys])
+ .join("-")
- // Test for Alt key
- if (ev.altKey) return isShiftKey ? "alt-shift" : "alt"
-
- return null
+ return activeModifier === "" ? null : (activeModifier as ModifierKeys)
}
/**
diff --git a/packages/hoppscotch-selfhost-web/Dockerfile b/packages/hoppscotch-selfhost-web/Dockerfile
index bd35ab288..b43ae334d 100644
--- a/packages/hoppscotch-selfhost-web/Dockerfile
+++ b/packages/hoppscotch-selfhost-web/Dockerfile
@@ -6,7 +6,7 @@ WORKDIR /usr/src/app
RUN npm i -g pnpm
COPY . .
-RUN pnpm install
+RUN pnpm install --force --frozen-lockfile
WORKDIR /usr/src/app/packages/hoppscotch-selfhost-web/
RUN pnpm run build
diff --git a/packages/hoppscotch-selfhost-web/package.json b/packages/hoppscotch-selfhost-web/package.json
index 215c07367..3db12fc01 100644
--- a/packages/hoppscotch-selfhost-web/package.json
+++ b/packages/hoppscotch-selfhost-web/package.json
@@ -1,13 +1,13 @@
{
"name": "@hoppscotch/selfhost-web",
"private": true,
- "version": "2023.4.7",
+ "version": "2023.4.8",
"type": "module",
"scripts": {
"dev:vite": "vite",
"dev:gql-codegen": "graphql-codegen --require dotenv/config --config gql-codegen.yml dotenv_config_path=\"../../.env\" --watch",
"dev": "pnpm exec npm-run-all -p -l dev:*",
- "build": "node --max_old_space_size=16384 ./node_modules/vite/bin/vite.js build",
+ "build": "node --max_old_space_size=4096 ./node_modules/vite/bin/vite.js build",
"preview": "vite preview",
"lint": "eslint src --ext .ts,.js,.vue --ignore-path .gitignore .",
"lint:ts": "vue-tsc --noEmit",
diff --git a/packages/hoppscotch-sh-admin/Dockerfile b/packages/hoppscotch-sh-admin/Dockerfile
index 9795de122..9a1f98f38 100644
--- a/packages/hoppscotch-sh-admin/Dockerfile
+++ b/packages/hoppscotch-sh-admin/Dockerfile
@@ -6,7 +6,7 @@ WORKDIR /usr/src/app
RUN npm i -g pnpm
COPY . .
-RUN pnpm install
+RUN pnpm install --force --frozen-lockfile
WORKDIR /usr/src/app/packages/hoppscotch-sh-admin/
RUN pnpm run build
diff --git a/packages/hoppscotch-sh-admin/package.json b/packages/hoppscotch-sh-admin/package.json
index 758627e99..359f173dd 100644
--- a/packages/hoppscotch-sh-admin/package.json
+++ b/packages/hoppscotch-sh-admin/package.json
@@ -1,7 +1,7 @@
{
"name": "hoppscotch-sh-admin",
"private": true,
- "version": "2023.4.7",
+ "version": "2023.4.8",
"type": "module",
"scripts": {
"dev": "pnpm exec npm-run-all -p -l dev:*",
diff --git a/packages/hoppscotch-ui/package.json b/packages/hoppscotch-ui/package.json
index de94378f7..784a5c013 100644
--- a/packages/hoppscotch-ui/package.json
+++ b/packages/hoppscotch-ui/package.json
@@ -75,7 +75,8 @@
"unplugin-vue-components": "^0.21.0",
"vite": "^3.2.3",
"vite-plugin-checker": "^0.5.1",
- "vite-plugin-dts": "2.0.0-beta.3",
+ "vite-plugin-dts": "3.2.0",
+ "vite-plugin-fonts": "^0.6.0",
"vite-plugin-html-config": "^1.0.10",
"vite-plugin-inspect": "^0.7.4",
"vite-plugin-pages": "^0.26.0",
diff --git a/packages/hoppscotch-ui/src/components/smart/Anchor.vue b/packages/hoppscotch-ui/src/components/smart/Anchor.vue
index 3a18a7d70..b6bf55839 100644
--- a/packages/hoppscotch-ui/src/components/smart/Anchor.vue
+++ b/packages/hoppscotch-ui/src/components/smart/Anchor.vue
@@ -1,62 +1,55 @@
-
-
+ ]"
+ :disabled="disabled"
+ tabindex="0"
+ >
+
{{ label }}
-
diff --git a/packages/hoppscotch-ui/vite.config.ts b/packages/hoppscotch-ui/vite.config.ts
index 28834e426..3f6b56d7e 100644
--- a/packages/hoppscotch-ui/vite.config.ts
+++ b/packages/hoppscotch-ui/vite.config.ts
@@ -11,14 +11,13 @@ export default defineConfig({
vue(),
dts({
insertTypesEntry: true,
- skipDiagnostics: true,
- outputDir: ['dist']
+ outDir: ["dist"],
}),
WindiCSS({
root: path.resolve(__dirname),
}),
Icons({
- compiler: "vue3"
+ compiler: "vue3",
}),
Unfonts({
fontsource: {
@@ -54,6 +53,6 @@ export default defineConfig({
exports: "named",
},
},
- emptyOutDir: true
+ emptyOutDir: true,
},
})
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index aeb84de41..94dd7db30 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1350,8 +1350,11 @@ importers:
specifier: ^0.5.1
version: 0.5.1(eslint@8.29.0)(typescript@4.9.3)(vite@3.2.4)
vite-plugin-dts:
- specifier: 2.0.0-beta.3
- version: 2.0.0-beta.3(@types/node@17.0.45)(rollup@2.79.1)(vite@3.2.4)
+ specifier: 3.2.0
+ version: 3.2.0(@types/node@17.0.45)(sass@1.53.0)(terser@5.14.1)(typescript@4.9.3)
+ vite-plugin-fonts:
+ specifier: ^0.6.0
+ version: 0.6.0(vite@3.2.4)
vite-plugin-html-config:
specifier: ^1.0.10
version: 1.0.10(vite@3.2.4)
@@ -2050,14 +2053,6 @@ packages:
dependencies:
'@babel/types': 7.18.7
- /@babel/parser@7.20.15:
- resolution: {integrity: sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==}
- engines: {node: '>=6.0.0'}
- hasBin: true
- dependencies:
- '@babel/types': 7.20.7
- dev: true
-
/@babel/parser@7.22.5:
resolution: {integrity: sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==}
engines: {node: '>=6.0.0'}
@@ -6672,32 +6667,32 @@ packages:
resolution: {integrity: sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA==}
dev: true
- /@microsoft/api-extractor-model@7.26.4(@types/node@17.0.45):
- resolution: {integrity: sha512-PDCgCzXDo+SLY5bsfl4bS7hxaeEtnXj7XtuzEE+BtALp7B5mK/NrS2kHWU69pohgsRmEALycQdaQPXoyT2i5MQ==}
+ /@microsoft/api-extractor-model@7.27.5(@types/node@17.0.45):
+ resolution: {integrity: sha512-9/tBzYMJitR+o+zkPr1lQh2+e8ClcaTF6eZo7vZGDqRt2O5XmXWPbYJZmxyM3wb5at6lfJNEeGZrQXLjsQ0Nbw==}
dependencies:
'@microsoft/tsdoc': 0.14.2
'@microsoft/tsdoc-config': 0.16.2
- '@rushstack/node-core-library': 3.55.2(@types/node@17.0.45)
+ '@rushstack/node-core-library': 3.59.6(@types/node@17.0.45)
transitivePeerDependencies:
- '@types/node'
dev: true
- /@microsoft/api-extractor@7.34.4(@types/node@17.0.45):
- resolution: {integrity: sha512-HOdcci2nT40ejhwPC3Xja9G+WSJmWhCUKKryRfQYsmE9cD+pxmBaKBKCbuS9jUcl6bLLb4Gz+h7xEN5r0QiXnQ==}
+ /@microsoft/api-extractor@7.36.3(@types/node@17.0.45):
+ resolution: {integrity: sha512-u0H6362AQq+r55X8drHx4npgkrCfJnMzRRHfQo8PMNKB8TcBnrTLfXhXWi+xnTM6CzlU/netEN8c4bq581Rnrg==}
hasBin: true
dependencies:
- '@microsoft/api-extractor-model': 7.26.4(@types/node@17.0.45)
+ '@microsoft/api-extractor-model': 7.27.5(@types/node@17.0.45)
'@microsoft/tsdoc': 0.14.2
'@microsoft/tsdoc-config': 0.16.2
- '@rushstack/node-core-library': 3.55.2(@types/node@17.0.45)
- '@rushstack/rig-package': 0.3.18
- '@rushstack/ts-command-line': 4.13.2
+ '@rushstack/node-core-library': 3.59.6(@types/node@17.0.45)
+ '@rushstack/rig-package': 0.4.0
+ '@rushstack/ts-command-line': 4.15.1
colors: 1.2.5
lodash: 4.17.21
resolve: 1.22.1
- semver: 7.3.8
+ semver: 7.5.4
source-map: 0.6.1
- typescript: 4.8.4
+ typescript: 5.0.4
transitivePeerDependencies:
- '@types/node'
dev: true
@@ -7277,8 +7272,8 @@ packages:
resolution: {integrity: sha512-LwzQKA4vzIct1zNZzBmRKI9QuNpLgTQMEjsQLf3BXuGYb3QPTP4Yjf6mkdX+X1mYttZ808QpOwAzZjv28kq7DA==}
dev: true
- /@rushstack/node-core-library@3.55.2(@types/node@17.0.45):
- resolution: {integrity: sha512-SaLe/x/Q/uBVdNFK5V1xXvsVps0y7h1sN7aSJllQyFbugyOaxhNRF25bwEDnicARNEjJw0pk0lYnJQ9Kr6ev0A==}
+ /@rushstack/node-core-library@3.59.6(@types/node@17.0.45):
+ resolution: {integrity: sha512-bMYJwNFfWXRNUuHnsE9wMlW/mOB4jIwSUkRKtu02CwZhQdmzMsUbxE0s1xOLwTpNIwlzfW/YT7OnOHgDffLgYg==}
peerDependencies:
'@types/node': '*'
peerDependenciesMeta:
@@ -7291,19 +7286,19 @@ packages:
import-lazy: 4.0.0
jju: 1.4.0
resolve: 1.22.1
- semver: 7.3.8
+ semver: 7.5.4
z-schema: 5.0.5
dev: true
- /@rushstack/rig-package@0.3.18:
- resolution: {integrity: sha512-SGEwNTwNq9bI3pkdd01yCaH+gAsHqs0uxfGvtw9b0LJXH52qooWXnrFTRRLG1aL9pf+M2CARdrA9HLHJys3jiQ==}
+ /@rushstack/rig-package@0.4.0:
+ resolution: {integrity: sha512-FnM1TQLJYwSiurP6aYSnansprK5l8WUK8VG38CmAaZs29ZeL1msjK0AP1VS4ejD33G0kE/2cpsPsS9jDenBMxw==}
dependencies:
resolve: 1.22.1
strip-json-comments: 3.1.1
dev: true
- /@rushstack/ts-command-line@4.13.2:
- resolution: {integrity: sha512-bCU8qoL9HyWiciltfzg7GqdfODUeda/JpI0602kbN5YH22rzTxyqYvv7aRLENCM7XCQ1VRs7nMkEqgJUOU8Sag==}
+ /@rushstack/ts-command-line@4.15.1:
+ resolution: {integrity: sha512-EL4jxZe5fhb1uVL/P/wQO+Z8Rc8FMiWJ1G7VgnPDvdIt5GVjRfK7vwzder1CZQiX3x0PY6uxENYLNGTFd1InRQ==}
dependencies:
'@types/argparse': 1.0.38
argparse: 1.0.10
@@ -7565,15 +7560,6 @@ packages:
engines: {node: '>= 10'}
dev: true
- /@ts-morph/common@0.18.1:
- resolution: {integrity: sha512-RVE+zSRICWRsfrkAw5qCAK+4ZH9kwEFv5h0+/YeHTLieWP7F4wWq4JsKFuNWG+fYh/KF+8rAtgdj5zb2mm+DVA==}
- dependencies:
- fast-glob: 3.2.12
- minimatch: 5.1.0
- mkdirp: 1.0.4
- path-browserify: 1.0.1
- dev: true
-
/@tsconfig/node10@1.0.9:
resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==}
@@ -8785,6 +8771,12 @@ packages:
muggle-string: 0.1.0
dev: true
+ /@volar/language-core@1.10.0:
+ resolution: {integrity: sha512-ddyWwSYqcbEZNFHm+Z3NZd6M7Ihjcwl/9B5cZd8kECdimVXUFdFi60XHWD27nrWtUQIsUYIG7Ca1WBwV2u2LSQ==}
+ dependencies:
+ '@volar/source-map': 1.10.0
+ dev: true
+
/@volar/shared@0.27.24:
resolution: {integrity: sha512-Mi8a4GQaiorfb+o4EqOXDZm9E/uBJXgScFgF+NhtcMBOUKHNMKQyLI7YRGumtyJTTdaX7nSDJjGGTkv23tcOtQ==}
dependencies:
@@ -8809,6 +8801,12 @@ packages:
muggle-string: 0.1.0
dev: true
+ /@volar/source-map@1.10.0:
+ resolution: {integrity: sha512-/ibWdcOzDGiq/GM1JU2eX8fH1bvAhl66hfe8yEgLEzg9txgr6qb5sQ/DEz5PcDL75tF5H5sCRRwn8Eu8ezi9mw==}
+ dependencies:
+ muggle-string: 0.3.1
+ dev: true
+
/@volar/transforms@0.27.24:
resolution: {integrity: sha512-sOHi1ZSapFlxn7yPl4MO5TXd9aWC0BVq2CgXAJ2EESb+ddh2uJbGQgLLNocX+MDh419cUuuFT2QAJpuWHhJcng==}
dependencies:
@@ -8822,6 +8820,12 @@ packages:
'@volar/language-core': 1.0.9
dev: true
+ /@volar/typescript@1.10.0:
+ resolution: {integrity: sha512-OtqGtFbUKYC0pLNIk3mHQp5xWnvL1CJIUc9VE39VdZ/oqpoBh5jKfb9uJ45Y4/oP/WYTrif/Uxl1k8VTPz66Gg==}
+ dependencies:
+ '@volar/language-core': 1.10.0
+ dev: true
+
/@volar/vue-code-gen@0.38.2:
resolution: {integrity: sha512-whLunD6phSGWBUHZKdTxeglrpzQu26ii8CRVapFdjfyMaVhQ7ESNeIAhkTVyg2ovOPc0PiDYPQEPzfWAADIWog==}
dependencies:
@@ -9043,6 +9047,25 @@ packages:
- supports-color
dev: true
+ /@vue/language-core@1.8.8(typescript@4.9.3):
+ resolution: {integrity: sha512-i4KMTuPazf48yMdYoebTkgSOJdFraE4pQf0B+FTOFkbB+6hAfjrSou/UmYWRsWyZV6r4Rc6DDZdI39CJwL0rWw==}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@volar/language-core': 1.10.0
+ '@volar/source-map': 1.10.0
+ '@vue/compiler-dom': 3.3.4
+ '@vue/reactivity': 3.3.4
+ '@vue/shared': 3.3.4
+ minimatch: 9.0.3
+ muggle-string: 0.3.1
+ typescript: 4.9.3
+ vue-template-compiler: 2.7.14
+ dev: true
+
/@vue/reactivity-transform@3.2.37:
resolution: {integrity: sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==}
dependencies:
@@ -9086,6 +9109,12 @@ packages:
dependencies:
'@vue/shared': 3.2.45
+ /@vue/reactivity@3.3.4:
+ resolution: {integrity: sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==}
+ dependencies:
+ '@vue/shared': 3.3.4
+ dev: true
+
/@vue/runtime-core@3.2.37:
resolution: {integrity: sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==}
dependencies:
@@ -9150,6 +9179,15 @@ packages:
resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==}
dev: true
+ /@vue/typescript@1.8.8(typescript@4.9.3):
+ resolution: {integrity: sha512-jUnmMB6egu5wl342eaUH236v8tdcEPXXkPgj+eI/F6JwW/lb+yAU6U07ZbQ3MVabZRlupIlPESB7ajgAGixhow==}
+ dependencies:
+ '@volar/typescript': 1.10.0
+ '@vue/language-core': 1.8.8(typescript@4.9.3)
+ transitivePeerDependencies:
+ - typescript
+ dev: true
+
/@vueuse/core@8.7.5(vue@3.2.45):
resolution: {integrity: sha512-tqgzeZGoZcXzoit4kOGLWJibDMLp0vdm6ZO41SSUQhkhtrPhAg6dbIEPiahhUu6sZAmSYvVrZgEr5aKD51nrLA==}
peerDependencies:
@@ -10728,10 +10766,6 @@ packages:
engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
dev: true
- /code-block-writer@11.0.3:
- resolution: {integrity: sha512-NiujjUFB4SwScJq2bwbYUtXbZhBSlY6vYzm++3Q6oC+U+injTqfPYFK8wS9COOmb2lueqp0ZRB4nK1VYeHgNyw==}
- dev: true
-
/collect-v8-coverage@1.0.1:
resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==}
dev: true
@@ -16443,6 +16477,10 @@ packages:
resolution: {integrity: sha512-ymToLHqL02udwVdbkowNpzjFd6UzozMtshPQKVi5k1EjKRqKqBrOnE9QbLEb0/pV76SAiIT13hdL8R6suc+f3g==}
dev: true
+ /kolorist@1.8.0:
+ resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==}
+ dev: true
+
/leac@0.6.0:
resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==}
dev: false
@@ -16813,13 +16851,6 @@ packages:
dependencies:
sourcemap-codec: 1.4.8
- /magic-string@0.29.0:
- resolution: {integrity: sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==}
- engines: {node: '>=12'}
- dependencies:
- '@jridgewell/sourcemap-codec': 1.4.14
- dev: true
-
/magic-string@0.30.0:
resolution: {integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==}
engines: {node: '>=12'}
@@ -17082,6 +17113,13 @@ packages:
dependencies:
brace-expansion: 2.0.1
+ /minimatch@9.0.3:
+ resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
+ engines: {node: '>=16 || 14 >=14.17'}
+ dependencies:
+ brace-expansion: 2.0.1
+ dev: true
+
/minimist-options@4.1.0:
resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
engines: {node: '>= 6'}
@@ -17564,6 +17602,10 @@ packages:
resolution: {integrity: sha512-Tr1knR3d2mKvvWthlk7202rywKbiOm4rVFLsfAaSIhJ6dt9o47W4S+JMtWhd/PW9Wrdew2/S2fSvhz3E2gkfEg==}
dev: true
+ /muggle-string@0.3.1:
+ resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==}
+ dev: true
+
/multer@1.4.4-lts.1:
resolution: {integrity: sha512-WeSGziVj6+Z2/MwQo3GvqzgR+9Uc+qt8SwHKh3gvNPiISKfsMfG4SvCOFYlxxgkXt7yIV2i1yczehm0EOKIxIg==}
engines: {node: '>= 6.0.0'}
@@ -17708,7 +17750,7 @@ packages:
dependencies:
hosted-git-info: 4.1.0
is-core-module: 2.9.0
- semver: 7.3.8
+ semver: 7.5.4
validate-npm-package-license: 3.0.4
dev: true
@@ -18168,10 +18210,6 @@ packages:
utils-merge: 1.0.1
dev: false
- /path-browserify@1.0.1:
- resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
- dev: true
-
/path-case@3.0.4:
resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==}
dependencies:
@@ -19379,6 +19417,13 @@ packages:
dependencies:
lru-cache: 6.0.0
+ /semver@7.5.4:
+ resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dependencies:
+ lru-cache: 6.0.0
+
/send@0.18.0:
resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
engines: {node: '>= 0.8.0'}
@@ -20041,7 +20086,7 @@ packages:
methods: 1.1.2
mime: 2.6.0
qs: 6.11.0
- semver: 7.3.8
+ semver: 7.5.4
transitivePeerDependencies:
- supports-color
dev: false
@@ -20537,13 +20582,6 @@ packages:
resolution: {integrity: sha512-DEQrfv6l7IvN2jlzc/VTdZJYsWUnQNCsueYjMkC/iXoEoi5fNan6MjeDqkvhfzbmHgdz9UxDUluX3V5HdjTydQ==}
dev: true
- /ts-morph@17.0.1:
- resolution: {integrity: sha512-10PkHyXmrtsTvZSL+cqtJLTgFXkU43Gd0JCc0Rw6GchWbqKe0Rwgt1v3ouobTZwQzF1mGhDeAlWYBMGRV7y+3g==}
- dependencies:
- '@ts-morph/common': 0.18.1
- code-block-writer: 11.0.3
- dev: true
-
/ts-node-dev@2.0.0(@types/node@18.16.17)(typescript@4.9.3):
resolution: {integrity: sha512-ywMrhCfH6M75yftYvrvNarLEY+SUXtUvU8/0Z6llrHQVBx12GiFk5sStF8UdfE/yfzk9IAq7O5EEbTQsxlBI8w==}
engines: {node: '>=0.8.0'}
@@ -20882,6 +20920,12 @@ packages:
hasBin: true
dev: true
+ /typescript@5.0.4:
+ resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==}
+ engines: {node: '>=12.20'}
+ hasBin: true
+ dev: true
+
/ua-parser-js@0.7.31:
resolution: {integrity: sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==}
dev: true
@@ -21473,27 +21517,31 @@ packages:
vscode-uri: 3.0.3
dev: true
- /vite-plugin-dts@2.0.0-beta.3(@types/node@17.0.45)(rollup@2.79.1)(vite@3.2.4):
- resolution: {integrity: sha512-QrsbTxyt0choSYXPxPfmN9XcSvxcVZk0zticxLrI5DkECs9KhDrSVGok1YP/UPkoKpfF9ThtOJcM5Rjuesxv/w==}
+ /vite-plugin-dts@3.2.0(@types/node@17.0.45)(sass@1.53.0)(terser@5.14.1)(typescript@4.9.3):
+ resolution: {integrity: sha512-s+dwJvDcb/AWgb49oVbq9JiUSIMwaVpFfV4SVIaBZmv9OZyeyDGxujaq+z4HJ4LB4hUG5c4oRAJyLfV66c763Q==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
- vite: '>=2.9.0'
+ typescript: '*'
dependencies:
- '@babel/parser': 7.20.15
- '@microsoft/api-extractor': 7.34.4(@types/node@17.0.45)
+ '@microsoft/api-extractor': 7.36.3(@types/node@17.0.45)
'@rollup/pluginutils': 5.0.2(rollup@2.79.1)
- '@rushstack/node-core-library': 3.55.2(@types/node@17.0.45)
+ '@rushstack/node-core-library': 3.59.6(@types/node@17.0.45)
+ '@vue/language-core': 1.8.8(typescript@4.9.3)
debug: 4.3.4(supports-color@9.2.2)
- fast-glob: 3.2.12
- fs-extra: 10.1.0
- kolorist: 1.7.0
- magic-string: 0.29.0
- ts-morph: 17.0.1
+ kolorist: 1.8.0
+ typescript: 4.9.3
+ vue-tsc: 1.8.8(typescript@4.9.3)
+ optionalDependencies:
+ rollup: 2.79.1
vite: 3.2.4(@types/node@17.0.45)(sass@1.53.0)(terser@5.14.1)
transitivePeerDependencies:
- '@types/node'
- - rollup
+ - less
+ - sass
+ - stylus
+ - sugarss
- supports-color
+ - terser
dev: true
/vite-plugin-eslint@1.8.1(eslint@8.29.0)(vite@3.2.4):
@@ -21509,6 +21557,15 @@ packages:
vite: 3.2.4(@types/node@17.0.45)(sass@1.53.0)(terser@5.14.1)
dev: false
+ /vite-plugin-fonts@0.6.0(vite@3.2.4):
+ resolution: {integrity: sha512-dV6nnLEju8k5EmvlBH6egxkVZ+rgc5zWsJr9+cNRXBMEDnpRGHcZPI260UEDNg2yB99wSTNER2eduEvZFbMIGw==}
+ peerDependencies:
+ vite: ^2.0.0 || ^3.0.0
+ dependencies:
+ fast-glob: 3.2.12
+ vite: 3.2.4(@types/node@17.0.45)(sass@1.53.0)(terser@5.14.1)
+ dev: true
+
/vite-plugin-html-config@1.0.10(vite@3.1.4):
resolution: {integrity: sha512-qJCVKC/mR4BIy4EG7AHQ3nGo1BF+3fOjVIka0kXKQMlxT12dl9G5YKmjhLohDzySijOb03R2PzYiAdavwKkqQQ==}
engines: {node: '>=12.0.0'}
@@ -22390,6 +22447,18 @@ packages:
typescript: 4.9.3
dev: true
+ /vue-tsc@1.8.8(typescript@4.9.3):
+ resolution: {integrity: sha512-bSydNFQsF7AMvwWsRXD7cBIXaNs/KSjvzWLymq/UtKE36697sboX4EccSHFVxvgdBlI1frYPc/VMKJNB7DFeDQ==}
+ hasBin: true
+ peerDependencies:
+ typescript: '*'
+ dependencies:
+ '@vue/language-core': 1.8.8(typescript@4.9.3)
+ '@vue/typescript': 1.8.8(typescript@4.9.3)
+ semver: 7.3.8
+ typescript: 4.9.3
+ dev: true
+
/vue@2.7.1:
resolution: {integrity: sha512-X1YkFddhbTAU2FPK0gBZ/vDOcOMA8ZT4uHoFVor1bUb7BpVGdEswS286YGtODsf/Ghfr1LM1sBMFAY8XT+dVhA==}
dependencies: