Compare commits

..

1 Commits

Author SHA1 Message Date
ankitsridhar16
74933031c6 fix: remove DB URL from logging 2023-06-04 16:20:29 +05:30
48 changed files with 90 additions and 210 deletions

View File

@@ -1,42 +0,0 @@
name: Deploy to Netlify (ui)
on:
push:
branches: [main]
# run this workflow only if an update is made to the ui package
paths:
- "packages/hoppscotch-ui/**"
workflow_dispatch:
jobs:
deploy:
name: Deploy
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup environment
run: mv .env.example .env
- name: Setup pnpm
uses: pnpm/action-setup@v2.2.4
with:
version: 8
run_install: true
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
cache: pnpm
- name: Build site
run: pnpm run generate-ui
# Deploy the ui site with netlify-cli
- name: Deploy to Netlify (ui)
run: npx netlify-cli deploy --dir=packages/hoppscotch-ui/.histoire/dist --prod
env:
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_UI_SITE_ID }}
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}

View File

@@ -1,6 +1,6 @@
{
"name": "hoppscotch-backend",
"version": "2023.4.6",
"version": "2023.4.4",
"description": "",
"author": "",
"private": true,

View File

@@ -32,7 +32,7 @@ export class TeamInviteViewerGuard implements CanActivate {
// Get user
TE.bindW('user', ({ gqlCtx }) =>
pipe(
O.fromNullable(gqlCtx.getContext().req.user),
O.fromNullable(gqlCtx.getContext<{ user?: User }>().user),
TE.fromOption(() => BUG_AUTH_NO_USER_CTX),
),
),

View File

@@ -33,7 +33,7 @@ export class TeamInviteeGuard implements CanActivate {
// Get user
TE.bindW('user', ({ gqlCtx }) =>
pipe(
O.fromNullable(gqlCtx.getContext().req.user),
O.fromNullable(gqlCtx.getContext<{ user?: User }>().user),
TE.fromOption(() => BUG_AUTH_NO_USER_CTX),
),
),

View File

@@ -432,7 +432,6 @@
"view_my_links": "View my links"
},
"response": {
"audio": "Audio",
"body": "Reaksie liggaam",
"filter_response_body": "Filter JSON response body (uses JSONPath syntax)",
"headers": "Opskrifte",
@@ -446,7 +445,6 @@
"status": "Status",
"time": "Tyd",
"title": "Reaksie",
"video": "Video",
"waiting_for_connection": "wag vir verbinding",
"xml": "XML"
},

View File

@@ -432,7 +432,6 @@
"view_my_links": "View my links"
},
"response": {
"audio": "Audio",
"body": "هيئة الاستجابة",
"filter_response_body": "Filter JSON response body (uses JSONPath syntax)",
"headers": "الرؤوس",
@@ -446,7 +445,6 @@
"status": "حالة",
"time": "وقت",
"title": "إجابة",
"video": "Video",
"waiting_for_connection": "في انتظار الاتصال",
"xml": "XML"
},

View File

@@ -432,7 +432,6 @@
"view_my_links": "Visualitzar els meus enllaços"
},
"response": {
"audio": "Audio",
"body": "Cos de resposta",
"filter_response_body": "Filtrar el cos de la resposta JSON (utilitza la sintaxi JSONPath)",
"headers": "Capçaleres",
@@ -446,7 +445,6 @@
"status": "Estat",
"time": "Temps",
"title": "Resposta",
"video": "Video",
"waiting_for_connection": "esperant la connexió",
"xml": "XML"
},

View File

@@ -432,7 +432,6 @@
"view_my_links": "查看我的链接"
},
"response": {
"audio": "Audio",
"body": "响应体",
"filter_response_body": "筛选JSON响应本体使用JSONPath语法",
"headers": "响应头",
@@ -446,7 +445,6 @@
"status": "状态",
"time": "时间",
"title": "响应",
"video": "Video",
"waiting_for_connection": "等待连接",
"xml": "XML"
},

View File

@@ -432,7 +432,6 @@
"view_my_links": "View my links"
},
"response": {
"audio": "Audio",
"body": "Odpovědní orgán",
"filter_response_body": "Filter JSON response body (uses JSONPath syntax)",
"headers": "Záhlaví",
@@ -446,7 +445,6 @@
"status": "Postavení",
"time": "Čas",
"title": "Odezva",
"video": "Video",
"waiting_for_connection": "čekání na připojení",
"xml": "XML"
},

View File

@@ -432,7 +432,6 @@
"view_my_links": "View my links"
},
"response": {
"audio": "Audio",
"body": "Svarorgan",
"filter_response_body": "Filter JSON response body (uses JSONPath syntax)",
"headers": "Overskrifter",
@@ -446,7 +445,6 @@
"status": "Status",
"time": "Tid",
"title": "Respons",
"video": "Video",
"waiting_for_connection": "venter på forbindelse",
"xml": "XML"
},

View File

@@ -432,7 +432,6 @@
"view_my_links": "View my links"
},
"response": {
"audio": "Audio",
"body": "Antworttext",
"filter_response_body": "Filter JSON response body (uses JSONPath syntax)",
"headers": "Header",
@@ -446,7 +445,6 @@
"status": "Status",
"time": "Zeit",
"title": "Antwort",
"video": "Video",
"waiting_for_connection": "auf Verbindung warten",
"xml": "XML"
},

View File

@@ -432,7 +432,6 @@
"view_my_links": "Προβολή των links μου"
},
"response": {
"audio": "Audio",
"body": "Σώμα απόκρισης",
"filter_response_body": "Filter JSON response body (uses JSONPath syntax)",
"headers": "Κεφαλίδες",
@@ -446,7 +445,6 @@
"status": "Κατάσταση",
"time": "χρόνος",
"title": "Απάντηση",
"video": "Video",
"waiting_for_connection": "περιμένοντας τη σύνδεση",
"xml": "XML"
},

View File

@@ -432,7 +432,6 @@
"view_my_links": "Ver mis enlaces"
},
"response": {
"audio": "Audio",
"body": "Cuerpo de respuesta",
"filter_response_body": "Filtrar el cuerpo de la respuesta JSON (utiliza la sintaxis JSONPath)",
"headers": "Encabezados",
@@ -446,7 +445,6 @@
"status": "Estado",
"time": "Tiempo",
"title": "Respuesta",
"video": "Video",
"waiting_for_connection": "esperando la conexión",
"xml": "XML"
},

View File

@@ -432,7 +432,6 @@
"view_my_links": "View my links"
},
"response": {
"audio": "Audio",
"body": "Vastauselin",
"filter_response_body": "Filter JSON response body (uses JSONPath syntax)",
"headers": "Otsikot",
@@ -446,7 +445,6 @@
"status": "Tila",
"time": "Aika",
"title": "Vastaus",
"video": "Video",
"waiting_for_connection": "yhteyttä odotellessa",
"xml": "XML"
},

View File

@@ -432,7 +432,6 @@
"view_my_links": "Voir mes liens"
},
"response": {
"audio": "Audio",
"body": "Corps de réponse",
"filter_response_body": "Filter JSON response body (uses JSONPath syntax)",
"headers": "En-têtes",
@@ -446,7 +445,6 @@
"status": "Statut",
"time": "Temps",
"title": "Réponse",
"video": "Video",
"waiting_for_connection": "En attente de connexion",
"xml": "XML"
},

View File

@@ -432,7 +432,6 @@
"view_my_links": "View my links"
},
"response": {
"audio": "Audio",
"body": "גוף תגובה",
"filter_response_body": "Filter JSON response body (uses JSONPath syntax)",
"headers": "כותרות",
@@ -446,7 +445,6 @@
"status": "סטָטוּס",
"time": "זְמַן",
"title": "תְגוּבָה",
"video": "Video",
"waiting_for_connection": "מחכה לחיבור",
"xml": "XML"
},

View File

@@ -433,7 +433,6 @@
"view_my_links": "मेरे लिंक देखें"
},
"response": {
"audio": "Audio",
"body": "प्रतिक्रिया निकाय",
"filter_response_body": "फ़िल्टर JSON रिस्पांस बॉडी (JSONPATH सिंटैक्स का उपयोग करता है)",
"headers": "हेडर",
@@ -447,7 +446,6 @@
"status": "दर्जा",
"time": "समय",
"title": "जवाब",
"video": "Video",
"waiting_for_connection": "जुडने के लिए इंतजार",
"xml": "एक्सएमएल"
},

View File

@@ -432,7 +432,6 @@
"view_my_links": "View my links"
},
"response": {
"audio": "Audio",
"body": "Válasz törzse",
"filter_response_body": "Filter JSON response body (uses JSONPath syntax)",
"headers": "Fejlécek",
@@ -446,7 +445,6 @@
"status": "Állapot",
"time": "Idő",
"title": "Válasz",
"video": "Video",
"waiting_for_connection": "várakozás kapcsolódásra",
"xml": "XML"
},

View File

@@ -432,7 +432,6 @@
"view_my_links": "Lihat tautan saya"
},
"response": {
"audio": "Audio",
"body": "Response Body",
"filter_response_body": "Filter body respons JSON (menggunakan sintaks JSONPath)",
"headers": "Headers",
@@ -446,7 +445,6 @@
"status": "Status",
"time": "Waktu",
"title": "Response",
"video": "Video",
"waiting_for_connection": "Menunggu koneksi",
"xml": "XML"
},

View File

@@ -432,7 +432,6 @@
"view_my_links": "View my links"
},
"response": {
"audio": "Audio",
"body": "Corpo della risposta",
"filter_response_body": "Filter JSON response body (uses JSONPath syntax)",
"headers": "Intestazioni",
@@ -446,7 +445,6 @@
"status": "Stato",
"time": "Tempo impiegato",
"title": "Risposta",
"video": "Video",
"waiting_for_connection": "In attesa di connessione",
"xml": "XML"
},

View File

@@ -432,7 +432,6 @@
"view_my_links": "自分のリンクを見る"
},
"response": {
"audio": "Audio",
"body": "レスポンスボディ",
"filter_response_body": "JSONレスポンスボディをフィルタ (JSONPathシンタックスを使用)",
"headers": "ヘッダー",
@@ -446,7 +445,6 @@
"status": "ステータス",
"time": "時間",
"title": "レスポンス",
"video": "Video",
"waiting_for_connection": "接続を待っています",
"xml": "XML"
},

View File

@@ -432,7 +432,6 @@
"view_my_links": "내 링크 보기"
},
"response": {
"audio": "Audio",
"body": "응답 본문",
"filter_response_body": "Filter JSON response body (uses JSONPath syntax)",
"headers": "헤더",
@@ -446,7 +445,6 @@
"status": "상태",
"time": "시간",
"title": "제목",
"video": "Video",
"waiting_for_connection": "연결 대기 중",
"xml": "XML"
},

View File

@@ -432,7 +432,6 @@
"view_my_links": "View my links"
},
"response": {
"audio": "Audio",
"body": "Reactie inhoud",
"filter_response_body": "Filter JSON response body (uses JSONPath syntax)",
"headers": "Headers",
@@ -446,7 +445,6 @@
"status": "Status",
"time": "Tijd",
"title": "Antwoord",
"video": "Video",
"waiting_for_connection": "wachten op verbinding",
"xml": "XML"
},

View File

@@ -432,7 +432,6 @@
"view_my_links": "View my links"
},
"response": {
"audio": "Audio",
"body": "Svarkropp",
"filter_response_body": "Filter JSON response body (uses JSONPath syntax)",
"headers": "Overskrifter",
@@ -446,7 +445,6 @@
"status": "Status",
"time": "Tid",
"title": "Respons",
"video": "Video",
"waiting_for_connection": "venter på tilkobling",
"xml": "XML"
},

View File

@@ -432,7 +432,6 @@
"view_my_links": "View my links"
},
"response": {
"audio": "Audio",
"body": "Ciało odpowiedzi",
"filter_response_body": "Filter JSON response body (uses JSONPath syntax)",
"headers": "Nagłówki",
@@ -446,7 +445,6 @@
"status": "Status",
"time": "Czas",
"title": "Odpowiedź",
"video": "Video",
"waiting_for_connection": "oczekiwanie na połączenie",
"xml": "XML"
},

View File

@@ -432,7 +432,6 @@
"view_my_links": "View my links"
},
"response": {
"audio": "Audio",
"body": "Corpo de Resposta",
"filter_response_body": "Filter JSON response body (uses JSONPath syntax)",
"headers": "Cabeçalhos",
@@ -446,7 +445,6 @@
"status": "Status",
"time": "Tempo",
"title": "Resposta",
"video": "Video",
"waiting_for_connection": "aguardando conexão",
"xml": "XML"
},

View File

@@ -432,7 +432,6 @@
"view_my_links": "View my links"
},
"response": {
"audio": "Audio",
"body": "Corpo de Resposta",
"filter_response_body": "Filter JSON response body (uses JSONPath syntax)",
"headers": "Cabeçalhos",
@@ -446,7 +445,6 @@
"status": "Status",
"time": "Tempo",
"title": "Resposta",
"video": "Video",
"waiting_for_connection": "aguardando conexão",
"xml": "XML"
},

View File

@@ -432,7 +432,6 @@
"view_my_links": "Vizualizare link-uri"
},
"response": {
"audio": "Audio",
"body": "Corpul de răspuns",
"filter_response_body": "Filtrează corpul răspunsului JSON (folosește sintaxa JSONPath)",
"headers": "Anteturi",
@@ -446,7 +445,6 @@
"status": "Stare",
"time": "Timp",
"title": "Raspuns",
"video": "Video",
"waiting_for_connection": "Așteptând conexiunea",
"xml": "XML"
},

View File

@@ -432,7 +432,6 @@
"view_my_links": "View my links"
},
"response": {
"audio": "Audio",
"body": "Тело ответа",
"filter_response_body": "Filter JSON response body (uses JSONPath syntax)",
"headers": "Заголовки",
@@ -446,7 +445,6 @@
"status": "Статус",
"time": "Время",
"title": "Ответ",
"video": "Video",
"waiting_for_connection": "Ожидание соединения",
"xml": "XML"
},

View File

@@ -432,7 +432,6 @@
"view_my_links": "View my links"
},
"response": {
"audio": "Audio",
"body": "Тело за одговор",
"filter_response_body": "Filter JSON response body (uses JSONPath syntax)",
"headers": "Заглавља",
@@ -446,7 +445,6 @@
"status": "Статус",
"time": "време",
"title": "Одговор",
"video": "Video",
"waiting_for_connection": "чека везу",
"xml": "КСМЛ"
},

View File

@@ -432,7 +432,6 @@
"view_my_links": "View my links"
},
"response": {
"audio": "Audio",
"body": "Svarskommitté",
"filter_response_body": "Filter JSON response body (uses JSONPath syntax)",
"headers": "Rubriker",
@@ -446,7 +445,6 @@
"status": "Status",
"time": "Tid",
"title": "Svar",
"video": "Video",
"waiting_for_connection": "väntar på anslutning",
"xml": "XML"
},

View File

@@ -122,7 +122,7 @@
"edit": "Koleksiyonu düzenle",
"invalid_name": "Lütfen koleksiyon için geçerli bir ad girin",
"invalid_root_move": "Collection already in the root",
"moved": "Başarıyla taşındı",
"moved": "Moved Successfully",
"my_collections": "Koleksiyonlarım",
"name": "Yeni Koleksiyonum",
"name_length_insufficient": "Koleksiyon adı en az 3 karakter uzunluğunda olmalıdır",
@@ -147,7 +147,7 @@
"remove_team": "Bu takımı silmek istediğinizden emin misiniz?",
"remove_telemetry": "Telemetriden çıkmak istediğinizden emin misiniz?",
"request_change": "Are you sure you want to discard current request, unsaved changes will be lost.",
"save_unsaved_tab": "Bu sekmede yapılan değişiklikleri kaydetmek istiyor musunuz?",
"save_unsaved_tab": "Do you want to save changes made in this tab?",
"sync": "Bu çalışma alanını senkronize etmek istediğinizden emin misiniz?"
},
"count": {
@@ -368,9 +368,9 @@
},
"profile": {
"app_settings": "Uygulama ayarları",
"default_hopp_displayname": "Adsız Kullanıcı",
"editor": "Editör",
"editor_description": "Editörler istekleri ekleyebilir, düzenleyebilir ve silebilir.",
"default_hopp_displayname": "Unnamed User",
"editor": "Düzenleyici",
"editor_description": "Editors can add, edit, and delete requests.",
"email_verification_mail": "Doğrulama bağlantısı e-postanıza gönderildi. E-postanızı doğrulamak için gelen bağlantıya tıklayınız.",
"no_permission": "Bu eylemi gerçekleştirmek için gerekli yetkiniz yok.",
"owner": "Kurucu",
@@ -432,7 +432,6 @@
"view_my_links": "View my links"
},
"response": {
"audio": "Audio",
"body": "Yanıt gövdesi",
"filter_response_body": "Filter JSON response body (uses JSONPath syntax)",
"headers": "Başlıklar",
@@ -446,7 +445,6 @@
"status": "Durum",
"time": "Zaman",
"title": "Cevap",
"video": "Video",
"waiting_for_connection": "Bağlantı için bekleniyor",
"xml": "XML"
},

View File

@@ -432,7 +432,6 @@
"view_my_links": "檢視我的連結"
},
"response": {
"audio": "Audio",
"body": "回應本體",
"filter_response_body": "篩選 JSON 回應本體 (使用 JSONPath 語法)",
"headers": "回應標頭",
@@ -446,7 +445,6 @@
"status": "狀態",
"time": "時間",
"title": "回應",
"video": "Video",
"waiting_for_connection": "等待連線",
"xml": "XML"
},

View File

@@ -432,7 +432,6 @@
"view_my_links": "Переглянути мої посилання"
},
"response": {
"audio": "Audio",
"body": "Орган реагування",
"filter_response_body": "Фільтр тіла відповідей JSON (використовує синтаксис JSONPath)",
"headers": "Заголовки",
@@ -446,7 +445,6 @@
"status": "Статус",
"time": "Час",
"title": "Відповідь",
"video": "Video",
"waiting_for_connection": "очікування підключення",
"xml": "XML"
},

View File

@@ -4,7 +4,7 @@
"cancel": "Hủy bỏ",
"choose_file": "Chọn một tệp",
"clear": "Thông thoáng",
"clear_all": "Quet sạch tt cả",
"clear_all": "Quet sạch tât cả",
"close": "Close",
"connect": "Liên kết",
"connecting": "Connecting",
@@ -432,7 +432,6 @@
"view_my_links": "View my links"
},
"response": {
"audio": "Audio",
"body": "Cơ quan phản hồi",
"filter_response_body": "Filter JSON response body (uses JSONPath syntax)",
"headers": "Tiêu đề",
@@ -446,7 +445,6 @@
"status": "Tình trạng",
"time": "Thời gian",
"title": "Phản ứng",
"video": "Video",
"waiting_for_connection": "Đang đợi kết nối",
"xml": "XML"
},

View File

@@ -1,7 +1,7 @@
{
"name": "@hoppscotch/common",
"private": true,
"version": "2023.4.6",
"version": "2023.4.4",
"scripts": {
"dev": "pnpm exec npm-run-all -p -l dev:*",
"dev:vite": "vite",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

@@ -134,13 +134,11 @@ declare module '@vue/runtime-core' {
IconLucideUsers: typeof import('~icons/lucide/users')['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']

View File

@@ -125,8 +125,8 @@
@hide-modal="displayModalEditFolder(false)"
/>
<CollectionsEditRequest
v-model="editingRequestName"
:show="showModalEditRequest"
:model-value="editingRequest ? editingRequest.name : ''"
:loading-state="modalLoadingState"
@submit="updateEditingRequest"
@hide-modal="displayModalEditRequest(false)"
@@ -157,7 +157,7 @@
</template>
<script setup lang="ts">
import { computed, nextTick, PropType, ref, watch } from "vue"
import { computed, PropType, ref, watch } from "vue"
import { useToast } from "@composables/toast"
import { useI18n } from "@composables/i18n"
import { Picked } from "~/helpers/types/HoppPicked"
@@ -288,7 +288,6 @@ const editingFolder = ref<
const editingFolderName = ref<string | null>(null)
const editingFolderPath = ref<string | null>(null)
const editingRequest = ref<HoppRESTRequest | null>(null)
const editingRequestName = ref("")
const editingRequestIndex = ref<number | null>(null)
const editingRequestID = ref<string | null>(null)
@@ -861,7 +860,6 @@ const editRequest = (payload: {
}) => {
const { folderPath, requestIndex, request } = payload
editingRequest.value = request
editingRequestName.value = request.name ?? ""
if (collectionsType.value.type === "my-collections" && folderPath) {
editingFolderPath.value = folderPath
editingRequestIndex.value = parseInt(requestIndex)
@@ -895,9 +893,6 @@ const updateEditingRequest = (newName: string) => {
if (possibleActiveTab) {
possibleActiveTab.value.document.request.name = requestUpdated.name
nextTick(() => {
possibleActiveTab.value.document.isDirty = false
})
}
displayModalEditRequest(false)
@@ -936,9 +931,6 @@ const updateEditingRequest = (newName: string) => {
if (possibleTab) {
possibleTab.value.document.request.name = requestName
nextTick(() => {
possibleTab.value.document.isDirty = false
})
}
}
}

View File

@@ -49,7 +49,7 @@
/>
<HoppSmartTabs
v-model="selectedEnvTab"
styles="sticky overflow-x-auto my-2 border border-divider rounded flex-shrink-0 z-10 top-0 bg-primary"
styles="sticky overflow-x-auto my-2 border border-divider rounded flex-shrink-0 z-0 top-0 bg-primary"
render-inactive-tabs
>
<HoppSmartTab
@@ -97,7 +97,7 @@
<HoppSmartSpinner class="my-4" />
<span class="text-secondaryLight">{{ t("state.loading") }}</span>
</div>
<div v-else-if="isTeamSelected" class="flex flex-col">
<div v-if="isTeamSelected" class="flex flex-col">
<HoppSmartItem
v-for="(gen, index) in teamEnvironmentList"
:key="`gen-team-${index}`"
@@ -161,14 +161,10 @@ import {
selectedEnvironmentIndex$,
setSelectedEnvironmentIndex,
} from "~/newstore/environments"
import { changeWorkspace, workspaceStatus$ } from "~/newstore/workspace"
import { workspaceStatus$ } from "~/newstore/workspace"
import TeamEnvironmentAdapter from "~/helpers/teams/TeamEnvironmentAdapter"
import { useColorMode } from "@composables/theming"
import { breakpointsTailwind, useBreakpoints } from "@vueuse/core"
import TeamListAdapter from "~/helpers/teams/TeamListAdapter"
import { useLocalState } from "~/newstore/localstate"
import { onLoggedIn } from "~/composables/auth"
import { GetMyTeamsQuery } from "~/helpers/backend/graphql"
const breakpoints = useBreakpoints(breakpointsTailwind)
const mdAndLarger = breakpoints.greater("md")
@@ -217,38 +213,6 @@ watch(
}
)
// TeamList-Adapter
const teamListAdapter = new TeamListAdapter(true)
const myTeams = useReadonlyStream(teamListAdapter.teamList$, null)
const teamListFetched = ref(false)
const REMEMBERED_TEAM_ID = useLocalState("REMEMBERED_TEAM_ID")
onLoggedIn(() => {
!teamListAdapter.isInitialized && teamListAdapter.initialize()
})
const switchToTeamWorkspace = (team: GetMyTeamsQuery["myTeams"][number]) => {
REMEMBERED_TEAM_ID.value = team.id
changeWorkspace({
teamID: team.id,
teamName: team.name,
type: "team",
})
}
watch(
() => myTeams.value,
(newTeams) => {
if (newTeams && !teamListFetched.value) {
teamListFetched.value = true
if (REMEMBERED_TEAM_ID.value) {
const team = newTeams.find((t) => t.id === REMEMBERED_TEAM_ID.value)
if (team) switchToTeamWorkspace(team)
}
}
}
)
const selectedEnv = computed(() => {
if (selectedEnvironmentIndex.value.type === "MY_ENV") {
return {

View File

@@ -217,7 +217,6 @@
@hide-modal="showCodegenModal = false"
/>
<CollectionsSaveRequest
v-if="showSaveRequestModal"
mode="rest"
:show="showSaveRequestModal"
@hide-modal="showSaveRequestModal = false"

View File

@@ -6,18 +6,14 @@ import { isJSONContentType } from "./utils/contenttypes"
* Handles translations for all the hopp.io REST Shareable URL params
*/
export function translateExtURLParams(
urlParams: Record<string, any>,
initialReq?: HoppRESTRequest
urlParams: Record<string, any>
): HoppRESTRequest {
if (urlParams.v) return parseV1ExtURL(urlParams, initialReq)
else return parseV0ExtURL(urlParams, initialReq)
if (urlParams.v) return parseV1ExtURL(urlParams)
else return parseV0ExtURL(urlParams)
}
function parseV0ExtURL(
urlParams: Record<string, any>,
initialReq?: HoppRESTRequest
): HoppRESTRequest {
const resolvedReq = initialReq ?? getDefaultRESTRequest()
function parseV0ExtURL(urlParams: Record<string, any>): HoppRESTRequest {
const resolvedReq = getDefaultRESTRequest()
if (urlParams.method && typeof urlParams.method === "string") {
resolvedReq.method = urlParams.method
@@ -93,11 +89,8 @@ function parseV0ExtURL(
return resolvedReq
}
function parseV1ExtURL(
urlParams: Record<string, any>,
initialReq?: HoppRESTRequest
): HoppRESTRequest {
const resolvedReq = initialReq ?? getDefaultRESTRequest()
function parseV1ExtURL(urlParams: Record<string, any>): HoppRESTRequest {
const resolvedReq = getDefaultRESTRequest()
if (urlParams.headers && typeof urlParams.headers === "string") {
resolvedReq.headers = JSON.parse(urlParams.headers)

View File

@@ -79,9 +79,8 @@
@resolve="onResolveConfirmSaveTab"
/>
<CollectionsSaveRequest
v-if="savingRequest"
mode="rest"
:show="savingRequest"
:mode="'rest'"
@hide-modal="onSaveModalClose"
/>
</div>
@@ -154,11 +153,8 @@ function bindRequestToURLParams() {
// If query params are empty, or contains code or error param (these are from Oauth Redirect)
// We skip URL params parsing
if (Object.keys(query).length === 0 || query.code || query.error) return
const request = currentActiveTab.value.document.request
currentActiveTab.value.document.request = safelyExtractRESTRequest(
translateExtURLParams(query, request),
translateExtURLParams(query),
getDefaultRESTRequest()
)
})

View File

@@ -11,14 +11,6 @@
<p class="mt-2 text-center">
{{ t("error.invalid_link_description") }}
</p>
<p class="mt-4">
<HoppButtonSecondary
to="/"
:icon="IconHome"
filled
:label="t('app.home')"
/>
</p>
</div>
<div v-else class="flex flex-col items-center justify-center flex-1 p-4">
<div
@@ -115,11 +107,6 @@ const addRequestToTab = () => {
const data = shortcodeDetails.data
if (E.isRight(data)) {
if (!data.right.shortcode?.request) {
invalidLink.value = true
return
}
const request: unknown = JSON.parse(data.right.shortcode?.request as string)
createNewTab({

View File

@@ -1,7 +1,7 @@
{
"name": "@hoppscotch/selfhost-web",
"private": true,
"version": "2023.4.6",
"version": "2023.4.4",
"type": "module",
"scripts": {
"dev:vite": "vite",

View File

@@ -1,7 +1,7 @@
{
"name": "hoppscotch-sh-admin",
"private": true,
"version": "2023.4.6",
"version": "2023.4.4",
"type": "module",
"scripts": {
"dev": "pnpm exec npm-run-all -p -l dev:*",

View File

@@ -115,9 +115,7 @@
}"
:style="[
`--thumb-width: ${scrollThumb.width}px`,
`width: calc(100% - ${
hasActions ? (mdAndLarger ? '19rem' : '7rem') : '3rem'
})`,
`width: calc(100% - ${hasActions ? mdAndLarger ? '19rem' : '7rem' : '3rem'})`,
]"
id="myRange"
/>
@@ -146,11 +144,7 @@ import {
nextTick,
useSlots,
} from "vue"
import {
breakpointsTailwind,
useBreakpoints,
useElementSize,
} from "@vueuse/core"
import { breakpointsTailwind, useBreakpoints, useElementSize } from "@vueuse/core"
import type { Slot } from "vue"
import draggable from "vuedraggable-es"
import { HoppUIPluginOptions, HOPP_UI_OPTIONS } from "./../../index"
@@ -356,8 +350,8 @@ watch(
rootMargin: "0px",
threshold: 1.0,
})
observer.observe(element!)
if (element) observer.observe(element)
element?.scrollIntoView({ behavior: "smooth", inline: "center" })
})
},

61
pnpm-lock.yaml generated
View File

@@ -58,6 +58,25 @@ importers:
specifier: ^4.6.3
version: 4.7.4
packages/dioc:
dependencies:
rxjs:
specifier: ^7.8.1
version: 7.8.1
vue:
specifier: ^3.2.25
version: 3.2.45
devDependencies:
typescript:
specifier: ^4.9.4
version: 4.9.4
vite:
specifier: ^4.0.4
version: 4.0.4(@types/node@17.0.45)
vitest:
specifier: ^0.29.3
version: 0.29.8(terser@5.14.1)
packages/hoppscotch-backend:
dependencies:
'@nestjs-modules/mailer':
@@ -18591,6 +18610,14 @@ packages:
optionalDependencies:
fsevents: 2.3.2
/rollup@3.23.0:
resolution: {integrity: sha512-h31UlwEi7FHihLe1zbk+3Q7z1k/84rb9BSwmBSr/XjOCEaBJ2YyedQDuM0t/kfOS0IxM+vk1/zI9XxYj9V+NJQ==}
engines: {node: '>=14.18.0', npm: '>=8.0.0'}
hasBin: true
optionalDependencies:
fsevents: 2.3.2
dev: true
/run-async@2.4.1:
resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
engines: {node: '>=0.12.0'}
@@ -21078,6 +21105,40 @@ packages:
optionalDependencies:
fsevents: 2.3.2
/vite@4.0.4(@types/node@17.0.45):
resolution: {integrity: sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==}
engines: {node: ^14.18.0 || >=16.0.0}
hasBin: true
peerDependencies:
'@types/node': '>= 14'
less: '*'
sass: '*'
stylus: '*'
sugarss: '*'
terser: ^5.4.0
peerDependenciesMeta:
'@types/node':
optional: true
less:
optional: true
sass:
optional: true
stylus:
optional: true
sugarss:
optional: true
terser:
optional: true
dependencies:
'@types/node': 17.0.45
esbuild: 0.16.17
postcss: 8.4.21
resolve: 1.22.1
rollup: 3.23.0
optionalDependencies:
fsevents: 2.3.2
dev: true
/vitest@0.29.8(terser@5.14.1):
resolution: {integrity: sha512-JIAVi2GK5cvA6awGpH0HvH/gEG9PZ0a/WoxdiV3PmqK+3CjQMf8c+J/Vhv4mdZ2nRyXFw66sAg6qz7VNkaHfDQ==}
engines: {node: '>=v14.16.0'}