diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index ab9c411a2..ec5e254ef 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -1,72 +1,63 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# -name: "CodeQL" +name: "CodeQL analysis" on: push: - branches: [ main ] + branches: [main] pull_request: - # The branches below must be a subset of the branches above - branches: [ main ] + branches: [main] schedule: - - cron: '39 7 * * 2' + # ┌───────────── minute (0 - 59) + # │ ┌───────────── hour (0 - 23) + # │ │ ┌───────────── day of the month (1 - 31) + # │ │ │ ┌───────────── month (1 - 12 or JAN-DEC) + # │ │ │ │ ┌───────────── day of the week (0 - 6 or SUN-SAT) + # │ │ │ │ │ + # │ │ │ │ │ + # │ │ │ │ │ + # * * * * * + - cron: '30 1 * * 0' jobs: analyze: name: Analyze + # CodeQL runs on ubuntu-latest, windows-latest, and macos-latest runs-on: ubuntu-latest + permissions: - actions: read - contents: read + # required for all workflows security-events: write - strategy: - fail-fast: false - matrix: - language: [ 'javascript' ] - # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] - # Learn more about CodeQL language support at https://git.io/codeql-language-support + # only required for workflows in private repositories + actions: read + contents: read steps: - - name: Checkout repository - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v3 - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v2 - with: - # Run extended queries including queries using machine learning - queries: security-extended - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + with: + # Run extended queries including queries using machine learning + queries: security-extended + languages: ${{ matrix.language }} - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v2 + # Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java). + # If this step fails, then you should remove it and run the build manually (see below). + - name: Autobuild + uses: github/codeql-action/autobuild@v2 - # ℹ️ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl + # ℹ️ Command-line programs to run using the OS shell. + # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun - # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language + # ✏️ If the Autobuild fails above, remove it and uncomment the following + # three lines and modify them (or add more) to build your code if your + # project uses a compiled language - #- run: | - # make bootstrap - # make release + #- run: | + # make bootstrap + # make release - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-firebase-production.yml similarity index 78% rename from .github/workflows/deploy-prod.yml rename to .github/workflows/deploy-firebase-production.yml index 3a111d765..c72ccb2db 100644 --- a/.github/workflows/deploy-prod.yml +++ b/.github/workflows/deploy-firebase-production.yml @@ -1,15 +1,15 @@ -name: Deploy to Live Channel +name: Deploy to Firebase (production) on: push: - branches: - - main + branches: [main] jobs: - deploy_live_website: + deploy: + name: Deploy runs-on: ubuntu-latest steps: - - name: Checkout Repository + - name: Checkout uses: actions/checkout@v3 - name: Deploy to Firebase (production) diff --git a/.github/workflows/deploy-netlify.yml b/.github/workflows/deploy-netlify-production.yml similarity index 76% rename from .github/workflows/deploy-netlify.yml rename to .github/workflows/deploy-netlify-production.yml index 9a8b70648..6e4309792 100644 --- a/.github/workflows/deploy-netlify.yml +++ b/.github/workflows/deploy-netlify-production.yml @@ -1,27 +1,33 @@ -name: Deploy to Netlify +name: Deploy to Netlify (production) on: push: branches: [main] jobs: - build: - name: Push build files to Netlify + deploy: + name: Deploy runs-on: ubuntu-latest steps: - - name: Checkout Repository + - name: Checkout uses: actions/checkout@v3 - - name: Setup Environment + - name: Setup environment run: mv .env.example .env - - name: Setup and run pnpm install + - name: Setup pnpm uses: pnpm/action-setup@v2.2.4 with: version: 7 run_install: true - - name: Build Site + - name: Setup node + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node }} + cache: pnpm + + - name: Build site env: VITE_SENTRY_DSN: ${{ secrets.SENTRY_DSN }} VITE_SENTRY_ENVIRONMENT: production @@ -35,7 +41,7 @@ jobs: NETLIFY_SITE_ID: ${{ secrets.NETLIFY_PRODUCTION_SITE_ID }} NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} - - name: Create Sentry Release + - name: Create Sentry release uses: getsentry/action-release@v1 env: SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} diff --git a/.github/workflows/deploy-staging-netlify.yml b/.github/workflows/deploy-netlify-staging.yml similarity index 83% rename from .github/workflows/deploy-staging-netlify.yml rename to .github/workflows/deploy-netlify-staging.yml index 0e1d875ae..a0b70e4a7 100644 --- a/.github/workflows/deploy-staging-netlify.yml +++ b/.github/workflows/deploy-netlify-staging.yml @@ -1,19 +1,20 @@ -name: Deploy to Staging Netlify +name: Deploy to Netlify (staging) on: push: - # TODO: Migrate to staging branch only - branches: [main] + branches: [staging] + pull_request: + branches: [staging] jobs: - build: - name: Push build files to Netlify + deploy: + name: Deploy runs-on: ubuntu-latest steps: - - name: Checkout Repository + - name: Checkout uses: actions/checkout@v3 - - name: Setup and run pnpm install + - name: Setup pnpm uses: pnpm/action-setup@v2.2.4 env: VITE_BACKEND_GQL_URL: ${{ secrets.STAGING_BACKEND_GQL_URL }} @@ -21,7 +22,13 @@ jobs: version: 7 run_install: true - - name: Build Site + - name: Setup node + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node }} + cache: pnpm + + - name: Build site env: VITE_GA_ID: ${{ secrets.STAGING_GA_ID }} VITE_GTM_ID: ${{ secrets.STAGING_GTM_ID }} @@ -47,7 +54,7 @@ jobs: NETLIFY_SITE_ID: ${{ secrets.NETLIFY_STAGING_SITE_ID }} NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} - - name: Create Sentry Release + - name: Create Sentry release uses: getsentry/action-release@v1 env: SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} diff --git a/.github/workflows/deploy-preview-netlify.yml b/.github/workflows/deploy-preview-netlify.yml deleted file mode 100644 index 6be28db1f..000000000 --- a/.github/workflows/deploy-preview-netlify.yml +++ /dev/null @@ -1,60 +0,0 @@ -name: Deploy to Preview Netlify - -on: - pull_request: - branches: - - main - -jobs: - build: - name: Push build files to Netlify - runs-on: ubuntu-latest - steps: - - name: Checkout Repository - uses: actions/checkout@v3 - - - name: Setup and run pnpm install - uses: pnpm/action-setup@v2.2.4 - env: - VITE_BACKEND_GQL_URL: ${{ secrets.STAGING_BACKEND_GQL_URL }} - with: - version: 7 - run_install: true - - - name: Build Site - env: - VITE_GA_ID: ${{ secrets.STAGING_GA_ID }} - VITE_GTM_ID: ${{ secrets.STAGING_GTM_ID }} - VITE_API_KEY: ${{ secrets.STAGING_FB_API_KEY }} - VITE_AUTH_DOMAIN: ${{ secrets.STAGING_FB_AUTH_DOMAIN }} - VITE_DATABASE_URL: ${{ secrets.STAGING_FB_DATABASE_URL }} - VITE_PROJECT_ID: ${{ secrets.STAGING_FB_PROJECT_ID }} - VITE_STORAGE_BUCKET: ${{ secrets.STAGING_FB_STORAGE_BUCKET }} - VITE_MESSAGING_SENDER_ID: ${{ secrets.STAGING_FB_MESSAGING_SENDER_ID }} - VITE_APP_ID: ${{ secrets.STAGING_FB_APP_ID }} - VITE_BASE_URL: ${{ secrets.STAGING_BASE_URL }} - VITE_BACKEND_GQL_URL: ${{ secrets.STAGING_BACKEND_GQL_URL }} - VITE_BACKEND_WS_URL: ${{ secrets.STAGING_BACKEND_WS_URL }} - VITE_SENTRY_DSN: ${{ secrets.SENTRY_DSN }} - VITE_SENTRY_RELEASE_TAG: ${{ github.sha }} - VITE_SENTRY_ENVIRONMENT: staging - run: pnpm run generate - - # Deploy the preview site with netlify-cli - - name: Deploy to Netlify (preview) - run: npx netlify-cli deploy --dir=packages/hoppscotch-web/dist --alias=preview - env: - NETLIFY_SITE_ID: ${{ secrets.NETLIFY_STAGING_SITE_ID }} - NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} - - - name: Create Sentry Release - uses: getsentry/action-release@v1 - env: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG: ${{ secrets.SENTRY_ORG }} - SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} - with: - environment: preview - ignore_missing: true - ignore_empty: true - version: ${{ github.sha }} diff --git a/.github/workflows/publish-docker.yml b/.github/workflows/publish-docker.yml index 5055cf578..01566d59e 100644 --- a/.github/workflows/publish-docker.yml +++ b/.github/workflows/publish-docker.yml @@ -7,11 +7,20 @@ on: types: [published] jobs: - push_to_registry: - name: Push Docker image to Docker Hub + publish: + name: Publish runs-on: ubuntu-latest steps: - - name: Check out the repo + - name: Maximize build space + uses: easimon/maximize-build-space@master + with: + root-reserve-mb: 8192 + swap-size-mb: 18432 + remove-dotnet: 'true' + remove-android: 'true' + remove-haskell: 'true' + + - name: Checkout uses: actions/checkout@v3 - name: Set up QEMU @@ -41,6 +50,6 @@ jobs: with: context: . push: true - platforms: linux/amd64,linux/arm64/v8,linux/arm/v7 + platforms: linux/amd64,linux/arm64 tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 4a09c24e3..2faac5bbd 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -2,12 +2,13 @@ name: Node.js CI on: push: - branches: [main] + branches: [main, staging] pull_request: - branches: [main] + branches: [main, staging] jobs: - build: + test: + name: Test runs-on: ubuntu-latest strategy: @@ -15,22 +16,22 @@ jobs: node-version: ["lts/*"] steps: - - name: Checkout Repository + - name: Checkout uses: actions/checkout@v3 - - name: Setup Environment + - name: Setup environment run: mv .env.example .env - - name: Setup and run pnpm install + - name: Setup pnpm uses: pnpm/action-setup@v2.2.4 with: version: 7 run_install: true - - name: Use Node.js ${{ matrix.node-version }} + - name: Setup node uses: actions/setup-node@v3 with: - node-version: ${{ matrix.node-version }} + node-version: ${{ matrix.node }} cache: pnpm - name: Run tests diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 000000000..5d27aff2d --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1,27 @@ +# CODEOWNERS is prioritized from bottom to top + +# If none of the below matched +* @AndrewBastin @liyasthomas + +# Packages +/packages/codemirror-lang-graphql/ @AndrewBastin +/packages/hoppscotch-cli/ @aitchnyu +/packages/hoppscotch-common/ @amk-dev @AndrewBastin +/packages/hoppscotch-data/ @AndrewBastin +/packages/hoppscotch-js-sandbox/ @aitchnyu +/packages/hoppscotch-ui/ @anwarulislam +/packages/hoppscotch-web/ @amk-dev @AndrewBastin + +# Sections within Hoppscotch Common +/packages/hoppscotch-common/src/components @anwarulislam +/packages/hoppscotch-common/src/components/collections @nivedin @amk-dev +/packages/hoppscotch-common/src/components/environments @nivedin @amk-dev +/packages/hoppscotch-common/src/composables @amk-dev +/packages/hoppscotch-common/src/modules @AndrewBastin @amk-dev +/packages/hoppscotch-common/src/pages @AndrewBastin @amk-dev +/packages/hoppscotch-common/src/newstore @AndrewBastin @amk-dev + +README.md @liyasthomas + +# The lockfile has no owner +pnpm-lock.yaml diff --git a/README.md b/README.md index ea412aa6b..713f06d5c 100644 --- a/README.md +++ b/README.md @@ -36,14 +36,14 @@

Hoppscotch Hoppscotch @@ -317,7 +317,7 @@ docker run --rm --name hoppscotch -p 3000:3000 hoppscotch/hoppscotch:latest 3. Install dependencies by running `pnpm install` within the directory that you cloned (probably `hoppscotch`). 4. Update [`.env.example`](https://github.com/hoppscotch/hoppscotch/blob/main/.env.example) file found in the root of repository with your own keys and rename it to `.env`. 5. Build the release files with `pnpm run generate`. -6. Find the built project in `packages/hoppscotch-app/dist`. Host these files on any [static hosting servers](https://www.pluralsight.com/blog/software-development/where-to-host-your-jamstack-site). +6. Find the built project in `packages/hoppscotch-web/dist`. Host these files on any [static hosting servers](https://www.pluralsight.com/blog/software-development/where-to-host-your-jamstack-site). ## **Contributing** diff --git a/packages/hoppscotch-common/assets/scss/styles.scss b/packages/hoppscotch-common/assets/scss/styles.scss index b3d7c9c2c..d29df819e 100644 --- a/packages/hoppscotch-common/assets/scss/styles.scss +++ b/packages/hoppscotch-common/assets/scss/styles.scss @@ -135,7 +135,7 @@ a { @apply shadow-none; @apply fixed; @apply inline-flex; - @apply -mt-6; + @apply -mt-8; } } @@ -501,6 +501,10 @@ pre.ace_editor { @apply rounded; @apply ml-2; @apply px-1; + @apply min-w-5; + @apply min-h-5; + @apply items-center; + @apply justify-center; @apply border border-dividerDark; @apply shadow-sm; @apply Content-Type in Headers", - "overriden": "Overridden", - "parameter_list": "Query Parameters", - "parameters": "Parameters", - "path": "Path", - "payload": "Payload", - "query": "Query", - "raw_body": "Raw Request Body", - "renamed": "Request renamed", - "run": "Run", - "save": "Save", - "save_as": "Save as", - "saved": "Request saved", - "share": "Share", - "share_description": "Share Hoppscotch with your friends", - "title": "Request", - "type": "Request type", + "copy_link": "リンクをコピー", + "duration": "間隔", + "enter_curl": "cURLコマンドを入力してください", + "generate_code": "コードを生成", + "generated_code": "生成されたコード", + "header_list": "ヘッダーリスト", + "invalid_name": "リクエスト名を入力してください", + "method": "メソッド", + "name": "リクエスト名", + "new": "新しいリクエスト", + "override": "上書き", + "override_help": "リクエストの Content-Type ヘッダを上書き", + "overriden": "上書きされました", + "parameter_list": "クエリパラメータ", + "parameters": "パラメータ", + "path": "パス", + "payload": "ペイロード", + "query": "クエリ", + "raw_body": "生のリクエストボディ", + "renamed": "リクエストの名前を変更", + "run": "実行", + "save": "保存", + "save_as": "名前を付けて保存", + "saved": "保存されたリクエスト", + "share": "共有", + "share_description": "Hoppscotchを友人に共有", + "title": "リクエスト", + "type": "リクエストの種類", "url": "URL", - "variables": "Variables", - "view_my_links": "View my links" + "variables": "変数", + "view_my_links": "自分のリンクを見る" }, "response": { - "body": "Response Body", - "filter_response_body": "Filter JSON response body (uses JSONPath syntax)", - "headers": "Headers", + "body": "レスポンスボディ", + "filter_response_body": "JSONレスポンスボディをフィルタ (JSONPathシンタックスを使用)", + "headers": "ヘッダー", "html": "HTML", - "image": "Image", + "image": "画像", "json": "JSON", "pdf": "PDF", - "preview_html": "Preview HTML", + "preview_html": "HTMLのプレビュー", "raw": "Raw", - "size": "Size", - "status": "Status", - "time": "Time", - "title": "Response", - "waiting_for_connection": "waiting for connection", + "size": "サイズ", + "status": "ステータス", + "time": "時間", + "title": "レスポンス", + "waiting_for_connection": "接続を待っています", "xml": "XML" }, "settings": { - "accent_color": "Accent color", + "accent_color": "アクセントの色", "account": "アカウント", - "account_description": "Customize your account settings.", - "account_email_description": "Your primary email address.", - "account_name_description": "This is your display name.", - "background": "Background", - "black_mode": "Black", - "change_font_size": "Change font size", - "choose_language": "Choose language", - "dark_mode": "Dark", - "expand_navigation": "Expand navigation", - "experiments": "Experiments", - "experiments_notice": "This is a collection of experiments we're working on that might turn out to be useful, fun, both, or neither. They're not final and may not be stable, so if something overly weird happens, don't panic. Just turn the dang thing off. Jokes aside, ", - "extension_ver_not_reported": "Not Reported", - "extension_version": "Extension Version", - "extensions": "Browser extension", - "extensions_use_toggle": "Use the browser extension to send requests (if present)", - "follow": "Follow Us", - "font_size": "Font size", - "font_size_large": "Large", - "font_size_medium": "Medium", - "font_size_small": "Small", - "interceptor": "Interceptor", - "interceptor_description": "Middleware between application and APIs.", - "language": "Language", - "light_mode": "Light", - "official_proxy_hosting": "Official Proxy is hosted by Hoppscotch.", - "profile": "Profile", - "profile_description": "Update your profile details", - "profile_email": "Email address", - "profile_name": "Profile name", - "proxy": "Proxy", - "proxy_url": "Proxy URL", - "proxy_use_toggle": "Use the proxy middleware to send requests", - "read_the": "Read the", - "reset_default": "Reset to default", - "short_codes": "Short codes", - "short_codes_description": "Short codes which were created by you.", - "sidebar_on_left": "Sidebar on left", - "sync": "Synchronise", - "sync_collections": "Collections", - "sync_description": "These settings are synced to cloud.", - "sync_environments": "Environments", - "sync_history": "History", - "system_mode": "System", - "telemetry": "Telemetry", - "telemetry_helps_us": "Telemetry helps us to personalize our operations and deliver the best experience to you.", - "theme": "Theme", - "theme_description": "Customize your application theme.", - "use_experimental_url_bar": "Use experimental URL bar with environment highlighting", - "user": "User", - "verified_email": "Verified email", - "verify_email": "Verify email" + "account_deleted": "あなたのアカウントは削除されました", + "account_description": "アカウント設定をカスタマイズ", + "account_email_description": "プライマリメールアドレス", + "account_name_description": "あなたの表示名", + "background": "背景", + "black_mode": "ブラック", + "change_font_size": "フォントの大きさを変更", + "choose_language": "言語を選択", + "dark_mode": "ダーク", + "delete_account": "アカウントの削除", + "delete_account_description": "アカウントを削除すると、あなたのアカウントに紐づくデータは全て永久に削除されます。これは取り消すことができません。", + "expand_navigation": "ナビゲーションの詳細表示", + "experiments": "試験的な機能", + "experiments_notice": "これらは試験的に実装している機能で、役に立つかもしれないし、楽しいかもしれないし、両方かもしれないし、はたまたどちらでもないかもしれません。これらは未完成で、安定したものではありません。何か問題がありましたら、こちらより報告をお願いします。→", + "extension_ver_not_reported": "未報告", + "extensions": "拡張機能", + "extension_version": "ブラウザ拡張機能のバージョン", + "extensions_use_toggle": "ブラウザ拡張機能を使用してリクエストを送信する(利用可能な場合)", + "follow": "フォローする", + "font_size": "フォントサイズ", + "font_size_large": "大きめ", + "font_size_medium": "普通", + "font_size_small": "小さめ", + "interceptor": "インターセプタ", + "interceptor_description": "アプリケーションとAPIをつなぐミドルウェア", + "language": "言語", + "light_mode": "ライト", + "official_proxy_hosting": "公式プロキシはHoppscotchによってホストされています。", + "profile": "プロフィール", + "profile_description": "プロフィールの詳細を更新", + "profile_email": "メールアドレス", + "profile_name": "プロフィールに表示する名前", + "proxy": "プロキシ", + "proxy_url": "プロキシURL", + "proxy_use_toggle": "リクエストの送信にプロキシミドルウェアを使用する", + "read_the": "詳しくは", + "reset_default": "デフォルトにリセット", + "short_codes": "ショートコード", + "short_codes_description": "あなたが作成したショートコードです。", + "sidebar_on_left": "サイドバーを左側に表示", + "sync": "同期する", + "sync_collections": "コレクション", + "sync_description": "これらの設定はクラウドに同期されます。", + "sync_environments": "環境変数", + "sync_history": "履歴", + "system_mode": "システム", + "telemetry": "テレメトリ", + "telemetry_helps_us": "テレメトリは私たちの業務を改善し、ユーザの皆様に最高の体験を提供するために役立てられます。", + "theme": "テーマ", + "theme_description": "アプリケーションのテーマをカスタマイズ", + "use_experimental_url_bar": "ハイライトした実験的なURLバーを使用", + "user": "ユーザー", + "verified_email": "メールアドレスの認証済", + "verify_email": "メールアドレスの認証" }, "shortcodes": { - "actions": "Actions", - "created_on": "Created on", - "deleted": "Shortcode deleted", - "method": "Method", - "not_found": "Shortcode not found", - "short_code": "Short code", + "actions": "アクション", + "created_on": "作成日", + "deleted": "ショートコードを削除しました", + "method": "メソッド", + "not_found": "ショートコードが見つかりません", + "short_code": "ショートコード", "url": "URL" }, "shortcut": { "general": { - "close_current_menu": "Close current menu", - "command_menu": "Search & command menu", - "help_menu": "Help menu", - "show_all": "Keyboard shortcuts", - "title": "General" + "close_current_menu": "現在のメニューを閉じる", + "command_menu": "検索&コマンドメニュー", + "help_menu": "ヘルプメニュー", + "show_all": "キーボードショートカット", + "title": "全般" }, "miscellaneous": { - "invite": "Invite people to Hoppscotch", - "title": "Miscellaneous" + "invite": "Hoppscotchに招待", + "title": "その他" }, "navigation": { - "back": "Go back to previous page", - "documentation": "Go to Documentation page", - "forward": "Go forward to next page", - "graphql": "Go to GraphQL page", - "profile": "Go to Profile page", - "realtime": "Go to Realtime page", - "rest": "Go to REST page", - "settings": "Go to Settings page", - "title": "Navigation" + "back": "前のページに戻る", + "documentation": "ドキュメントページに移動", + "forward": "次のページに進む", + "graphql": "GraphQLページに移動", + "profile": "プロフィールページに移動", + "realtime": "リアルタイムページに移動", + "rest": "RESTページに移動", + "settings": "設定ページに移動", + "title": "ナビゲーション" }, "request": { - "copy_request_link": "Copy Request Link", - "delete_method": "Select DELETE method", - "get_method": "Select GET method", - "head_method": "Select HEAD method", - "method": "Method", - "next_method": "Select Next method", - "post_method": "Select POST method", - "previous_method": "Select Previous method", - "put_method": "Select PUT method", - "reset_request": "Reset Request", - "save_to_collections": "Save to Collections", - "send_request": "Send Request", - "title": "Request" + "copy_request_link": "コピーリクエストリンク", + "delete_method": "DELETEメソッドを選択", + "get_method": "GETメソッドを選択", + "head_method": "HEADメソッドを選択", + "method": "メソッド", + "next_method": "次のメソッドを選択", + "post_method": "POSTメソッドを選択", + "previous_method": "前のメソッドを選択", + "put_method": "PUTメソッドを選択", + "reset_request": "リセットリクエスト", + "save_to_collections": "コレクションに保存", + "send_request": "リクエストを送信", + "title": "リクエスト" }, "response": { - "copy": "Copy response to clipboard", - "download": "Download response as file", - "title": "Response" + "copy": "レスポンスをクリップボードにコピー", + "download": "レスポンスをファイルとして保存", + "title": "レスポンス" }, "theme": { - "black": "Switch theme to black mode", - "dark": "Switch theme to dark mode", - "light": "Switch theme to light mode", - "system": "Switch theme to system mode", - "title": "Theme" + "black": "テーマをブラックモードに変更", + "dark": "テーマをダークモードに変更", + "light": "テーマをライトモードに変更", + "system": "テーマをシステム標準に変更", + "title": "テーマ" } }, "show": { - "code": "Show code", - "collection": "Expand Collection Panel", - "more": "Show more", - "sidebar": "Expand sidebar" + "code": "コードを表示", + "collection": "コレクションパネルを表示", + "more": "さらに表示", + "sidebar": "サイドバーを表示" }, "socketio": { - "communication": "Communication", - "connection_not_authorized": "This SocketIO connection does not use any authentication.", - "event_name": "Event Name", - "events": "Events", - "log": "Log", + "communication": "コミュニケーション", + "connection_not_authorized": "このSocketIOコネクションではどの認証も使われていません。", + "event_name": "イベント・トピック名", + "events": "イベント", + "log": "ログ", "url": "URL" }, "sse": { - "event_type": "Event type", - "log": "Log", + "event_type": "イベントの種類", + "log": "ログ", "url": "URL" }, "state": { - "bulk_mode": "Bulk edit", - "bulk_mode_placeholder": "Entries are separated by newline\nKeys and values are separated by :\nPrepend # to any row you want to add but keep disabled", - "cleared": "Cleared", - "connected": "Connected", - "connected_to": "Connected to {name}", - "connecting_to": "Connecting to {name}...", - "connection_error": "Failed to connect", - "connection_failed": "Connection failed", - "connection_lost": "Connection lost", - "copied_to_clipboard": "Copied to clipboard", - "deleted": "Deleted", - "deprecated": "DEPRECATED", - "disabled": "Disabled", - "disconnected": "Disconnected", - "disconnected_from": "Disconnected from {name}", - "docs_generated": "Documentation generated", - "download_started": "Download started", - "enabled": "Enabled", - "file_imported": "File imported", - "finished_in": "Finished in {duration} ms", - "history_deleted": "History deleted", - "linewrap": "Wrap lines", - "loading": "Loading...", - "message_received": "Message: {message} arrived on topic: {topic}", - "mqtt_subscription_failed": "Something went wrong while subscribing to topic: {topic}", - "none": "None", - "nothing_found": "Nothing found for", - "published_error": "Something went wrong while publishing msg: {topic} to topic: {message}", - "published_message": "Published message: {message} to topic: {topic}", - "reconnection_error": "Failed to reconnect", - "subscribed_failed": "Failed to subscribe to topic: {topic}", - "subscribed_success": "Successfully subscribed to topic: {topic}", - "unsubscribed_failed": "Failed to unsubscribe from topic: {topic}", - "unsubscribed_success": "Successfully unsubscribed from topic: {topic}", - "waiting_send_request": "Waiting to send request" + "bulk_mode": "一括編集", + "bulk_mode_placeholder": "エントリは改行で区切られます。\nキーと値は「:」で区切られます。\n追加したいが無効にしたい行の先頭には「#」を追加してください。", + "cleared": "クリア", + "connected": "接続済み", + "connected_to": "{名前}に接続しました", + "connecting_to": "{名前}に接続しています...", + "copied_to_clipboard": "クリップボードにコピーしました", + "deleted": "削除されました", + "deprecated": "非推奨", + "disabled": "無効", + "disconnected": "切断されました", + "disconnected_from": "{名前}から切断されました", + "docs_generated": "生成されたドキュメント", + "download_started": "ダウンロード開始", + "enabled": "有効", + "file_imported": "インポートされたファイル", + "finished_in": "{duration} msで終了しました", + "history_deleted": "履歴が削除されました", + "linewrap": "行の折り返し", + "loading": "読み込んでいます...", + "message_received": "トピック: {topic} でメッセージ: {message} を受信しました", + "mqtt_subscription_failed": "トピック: {topic} のサブスクライブで問題が発生しました", + "none": "なし", + "nothing_found": "何も見つかりません", + "published_error": "ピック: {topic} にメッセージ: {message} を送信する際に問題が発生しました", + "published_message": "トピック: {topic} にメッセージ: {message} を送信しました", + "reconnection_error": "再接続に失敗", + "subscribed_failed": "トピック: {topic} のサブスクライブに失敗", + "subscribed_success": "トピック: {topic} のサブスクライブに成功", + "unsubscribed_failed": "トピック: {topic} のサブスクライブ解除に失敗", + "unsubscribed_success": "トピック: {topic} のサブスクライブ解除に成功", + "waiting_send_request": "リクエストの送信を待機中" }, "support": { - "changelog": "Read more about latest releases", - "chat": "Questions? Chat with us!", - "community": "Ask questions and help others", - "documentation": "Read more about Hoppscotch", - "forum": "Ask questions and get answers", - "github": "Follow us on Github", - "shortcuts": "Browse app faster", - "team": "Get in touch with the team", - "title": "Support", - "twitter": "Follow us on Twitter" + "changelog": "最新リリースについてもっと読む", + "chat": "ご質問はこちら。チャットでお問い合わせください!", + "community": "質問の投稿・回答はこちらから", + "documentation": "Hoppscotchをもっと知る", + "forum": "質問をして答えを得る", + "github": "GitHubでフォローする", + "shortcuts": "アプリをより効率よく使いこなす", + "team": "チームと連絡を取る", + "title": "サポート", + "twitter": "私たちのTwitterをフォローする" }, "tab": { - "authorization": "Authorization", - "body": "Body", - "collections": "Collections", - "documentation": "Documentation", - "headers": "Headers", - "history": "History", + "authorization": "認証", + "body": "ボディ", + "collections": "コレクション", + "documentation": "ドキュメント", + "headers": "ヘッダー", + "history": "履歴", "mqtt": "MQTT", - "parameters": "Parameters", - "pre_request_script": "Pre-request Script", - "queries": "Queries", - "query": "Query", - "schema": "Schema", + "parameters": "パラメータ", + "pre_request_script": "プリリクエストスクリプト", + "queries": "クエリ", + "query": "クエリ", + "schema": "スキーマ", "socketio": "Socket.IO", "sse": "SSE", - "tests": "Tests", - "types": "Types", - "variables": "Variables", + "tests": "テスト", + "types": "種類", + "variables": "変数", "websocket": "WebSocket" }, "team": { - "already_member": "You are already a member of this team. Contact your team owner.", - "create_new": "Create new team", - "deleted": "Team deleted", - "edit": "Edit Team", - "email": "E-mail", - "email_do_not_match": "Email doesn't match with your account details. Contact your team owner.", - "exit": "Exit Team", - "exit_disabled": "Only owner cannot exit the team", - "invalid_email_format": "Email format is invalid", - "invalid_id": "Invalid team ID. Contact your team owner.", - "invalid_invite_link": "Invalid invite link", - "invalid_invite_link_description": "The link you followed is invalid. Contact your team owner.", - "invalid_member_permission": "Please provide a valid permission to the team member", - "invite": "Invite", - "invite_more": "Invite more", - "invite_tooltip": "Invite people to this workspace", - "invited_to_team": "{owner} invited you to join {team}", - "join": "Invitation accepted", - "join_beta": "Join the beta program to access teams.", - "join_team": "Join {team}", - "joined_team": "You have joined {team}", - "joined_team_description": "You are now a member of this team", - "left": "You left the team", - "login_to_continue": "Login to continue", - "login_to_continue_description": "You need to be logged in to join a team.", - "logout_and_try_again": "Logout and sign in with another account", - "member_has_invite": "This email ID already has an invite. Contact your team owner.", - "member_not_found": "Member not found. Contact your team owner.", - "member_removed": "User removed", - "member_role_updated": "User roles updated", - "members": "Members", - "name_length_insufficient": "Team name should be at least 6 characters long", - "name_updated": "Team name updated", - "new": "New Team", - "new_created": "New team created", - "new_name": "My New Team", - "no_access": "You do not have edit access to these collections", - "no_invite_found": "Invitation not found. Contact your team owner.", - "not_found": "Team not found. Contact your team owner.", - "not_valid_viewer": "You are not a valid viewer. Contact your team owner.", - "pending_invites": "Pending invites", - "permissions": "Permissions", - "saved": "Team saved", - "select_a_team": "Select a team", - "title": "Teams", - "we_sent_invite_link": "We sent an invite link to all invitees!", - "we_sent_invite_link_description": "Ask all invitees to check their inbox. Click on the link to join the team." + "already_member": "あなたは既にこのチームのメンバーです。チームの管理者に連絡してください。", + "create_new": "新しいチームを作成", + "deleted": "チームが削除されました", + "edit": "チームの編集", + "email": "メールアドレス", + "email_do_not_match": "メールアドレスがアカウント情報と一致しません。チームの管理者に連絡してください。", + "exit": "チームから退出", + "exit_disabled": "管理者はチームから退出できません", + "invalid_email_format": "メールアドレスの形式が無効です", + "invalid_id": "チームIDが無効です。チームの管理者に連絡してください。", + "invalid_invite_link": "招待リンクが無効です", + "invalid_invite_link_description": "このリンクは無効です。チームの管理者に連絡してください。", + "invalid_member_permission": "チームメンバーに有効な許可を与えてください", + "invite": "招待", + "invite_more": "さらに招待", + "invite_tooltip": "このワークスペースに招待", + "invited_to_team": "{owner}が{team}にあなたを招待しました", + "join": "招待を了承しました", + "join_beta": "ベータプログラムに参加して、チームにアクセスする。", + "join_team": "{team}に参加", + "joined_team": "あなたは{team}に参加しました", + "joined_team_description": "あなたはこのチームのメンバーです", + "left": "あなたはチームから退出しました", + "login_to_continue": "ログインして続行", + "login_to_continue_description": "チームに参加するには、ログインが必要です。", + "logout_and_try_again": "ログアウトして別のアカウントでサインインする", + "member_has_invite": "このメールアドレスはすでに招待されています。チームの管理者に連絡してください。", + "member_not_found": "メンバーが見つかりませんでした。チームの管理者に連絡してください。", + "member_removed": "ユーザーが削除されました", + "member_role_updated": "ユーザーロールが更新されました", + "members": "メンバー", + "name_length_insufficient": "チーム名は6文字以上である必要があります", + "name_updated": "チーム名が更新されました", + "new": "新しいチーム", + "new_created": "新しいチームが作成されました", + "new_name": "私の新しいチーム", + "no_access": "これらのコレクションを編集することはできません", + "no_invite_found": "招待が見つかりません。チームの管理者に連絡してください。", + "not_found": "チームが見つかりません。チームの管理者に連絡してください。", + "not_valid_viewer": "あなたは有効な閲覧者ではありません。チームの管理者に連絡してください。", + "pending_invites": "招待の保留", + "permissions": "権限", + "saved": "チームが保存されました", + "select_a_team": "チームを選択", + "title": "チーム", + "we_sent_invite_link": "招待者の皆様に、招待リンクを送信しました!", + "we_sent_invite_link_description": "招待者全員に受信トレイを確認するよう依頼します。リンクをクリックすると、チームに参加できます。" }, "team_environment": { - "deleted": "Environment Deleted", - "duplicate": "Environment Duplicated", - "not_found": "Environment not found." + "deleted": "環境変数を削除しました", + "duplicate": "環境変数が重複しています", + "not_found": "環境変数が見つかりません" }, "test": { - "failed": "test failed", - "javascript_code": "JavaScript Code", - "learn": "Read documentation", - "passed": "test passed", - "report": "Test Report", - "results": "Test Results", - "script": "Script", - "snippets": "Snippets" + "failed": "テスト失敗", + "javascript_code": "JavaScriptコード", + "learn": "ドキュメントを読む", + "passed": "テスト成功", + "report": "テストレポート", + "results": "テスト結果", + "script": "スクリプト", + "snippets": "スニペット" }, "websocket": { - "communication": "Communication", - "log": "Log", - "message": "Message", - "protocols": "Protocols", + "communication": "コミュニケーション", + "log": "ログ", + "message": "メッセージ", + "protocols": "プロトコル", "url": "URL" } } diff --git a/packages/hoppscotch-common/locales/ko.json b/packages/hoppscotch-common/locales/ko.json index c00ec900c..fbc8b16b9 100644 --- a/packages/hoppscotch-common/locales/ko.json +++ b/packages/hoppscotch-common/locales/ko.json @@ -203,6 +203,9 @@ "browser_support_sse": "이 브라우저는 서버 전송 이벤트를 지원하지 않는 것 같습니다.", "check_console_details": "자세한 내용은 콘솔 로그를 확인하세요.", "curl_invalid_format": "cURL 형식이 올바르지 않습니다.", + "danger_zone": "Danger zone", + "delete_account": "Your account is currently an owner in these teams:", + "delete_account_description": "You must either remove yourself, transfer ownership, or delete these teams before you can delete your account.", "empty_req_name": "빈 요청 이름", "f12_details": "(자세한 내용은 F12)", "gql_prettify_invalid_query": "잘못된 쿼리를 구문 강조할 수 없습니다. 쿼리 구문 오류를 해결하고 다시 시도하세요.", @@ -437,6 +440,7 @@ "settings": { "accent_color": "강조색", "account": "계정", + "account_deleted": "Your account has been deleted", "account_description": "계정 설정을 수정합니다.", "account_email_description": "기본 이메일 주소입니다.", "account_name_description": "디스플레이 이름입니다.", @@ -445,6 +449,8 @@ "change_font_size": "글자 크기 변경", "choose_language": "언어 선택", "dark_mode": "어두운 테마", + "delete_account": "Delete account", + "delete_account_description": "Once you delete your account, all your data will be permanently deleted. This action cannot be undone.", "expand_navigation": "내비게이션 확장", "experiments": "실험실", "experiments_notice": "이것은 유용하거나 재미있거나 둘 다이거나 어느 쪽도 아닌, 아직 실험 중인 기능입니다. 완성되지 않았고 안정적이지 않을 수 있으므로 이상한 일이 발생하더라도 당황하지 마세요. 진지하게 말해서, 끄세요.", diff --git a/packages/hoppscotch-common/locales/nl.json b/packages/hoppscotch-common/locales/nl.json index ae0fc4f52..e48367a67 100644 --- a/packages/hoppscotch-common/locales/nl.json +++ b/packages/hoppscotch-common/locales/nl.json @@ -203,6 +203,9 @@ "browser_support_sse": "Deze browser lijkt geen ondersteuning te hebben voor door de server verzonden gebeurtenissen.", "check_console_details": "Controleer het consolelogboek voor details.", "curl_invalid_format": "cURL is niet correct geformatteerd", + "danger_zone": "Danger zone", + "delete_account": "Your account is currently an owner in these teams:", + "delete_account_description": "You must either remove yourself, transfer ownership, or delete these teams before you can delete your account.", "empty_req_name": "Lege aanvraagnaam", "f12_details": "(F12 voor details)", "gql_prettify_invalid_query": "Kon een ongeldige zoekopdracht niet mooier maken, syntaxisfouten in de query oplossen en opnieuw proberen", @@ -437,6 +440,7 @@ "settings": { "accent_color": "Accentkleur", "account": "Account", + "account_deleted": "Your account has been deleted", "account_description": "Pas uw accountinstellingen aan.", "account_email_description": "Uw primaire e-mailadres.", "account_name_description": "Dit is uw weergavenaam.", @@ -445,6 +449,8 @@ "change_font_size": "Verander lettergrootte", "choose_language": "Kies een taal", "dark_mode": "Donker", + "delete_account": "Delete account", + "delete_account_description": "Once you delete your account, all your data will be permanently deleted. This action cannot be undone.", "expand_navigation": "Expand navigation", "experiments": "Experimentele functies", "experiments_notice": "Dit is een verzameling experimenten waaraan we werken en die nuttig, leuk, beide of geen van beide kunnen te zijn. Ze zijn niet definitief en zijn mogelijk niet stabiel, dus als er iets heel raars gebeurt, raak dan niet in paniek. Zet de functie uit, en", diff --git a/packages/hoppscotch-common/locales/no.json b/packages/hoppscotch-common/locales/no.json index 4ae0b85bf..bbf0aa299 100644 --- a/packages/hoppscotch-common/locales/no.json +++ b/packages/hoppscotch-common/locales/no.json @@ -203,6 +203,9 @@ "browser_support_sse": "Denne nettleseren ser ikke ut til å ha Server Sent Events -støtte.", "check_console_details": "Sjekk konsollloggen for detaljer.", "curl_invalid_format": "cURL er ikke riktig formatert", + "danger_zone": "Danger zone", + "delete_account": "Your account is currently an owner in these teams:", + "delete_account_description": "You must either remove yourself, transfer ownership, or delete these teams before you can delete your account.", "empty_req_name": "Tom forespørselsnavn", "f12_details": "(F12 for detaljer)", "gql_prettify_invalid_query": "Kunne ikke forskjønne en ugyldig spørring, løse spørringssyntaksfeil og prøve igjen", @@ -437,6 +440,7 @@ "settings": { "accent_color": "Aksentfarge", "account": "Konto", + "account_deleted": "Your account has been deleted", "account_description": "Tilpass kontoinnstillingene dine.", "account_email_description": "Din primære e-postadresse.", "account_name_description": "Dette er visningsnavnet ditt.", @@ -445,6 +449,8 @@ "change_font_size": "Endre skriftstørrelse", "choose_language": "Velg språk", "dark_mode": "Mørk", + "delete_account": "Delete account", + "delete_account_description": "Once you delete your account, all your data will be permanently deleted. This action cannot be undone.", "expand_navigation": "Expand navigation", "experiments": "Eksperimenter", "experiments_notice": "Dette er en samling eksperimenter vi jobber med som kan vise seg å være nyttige, morsomme, begge deler eller ingen av dem. De er ikke endelige og er kanskje ikke stabile, så hvis det skjer noe altfor rart, ikke få panikk. Bare slå av det. Vitser til side,", diff --git a/packages/hoppscotch-common/locales/pl.json b/packages/hoppscotch-common/locales/pl.json index 4759388bc..51423452e 100644 --- a/packages/hoppscotch-common/locales/pl.json +++ b/packages/hoppscotch-common/locales/pl.json @@ -203,6 +203,9 @@ "browser_support_sse": "Wygląda na to, że ta przeglądarka nie obsługuje zdarzeń wysłanych przez serwer.", "check_console_details": "Sprawdź dziennik konsoli, aby uzyskać szczegółowe informacje.", "curl_invalid_format": "cURL nie jest poprawnie sformatowany", + "danger_zone": "Danger zone", + "delete_account": "Your account is currently an owner in these teams:", + "delete_account_description": "You must either remove yourself, transfer ownership, or delete these teams before you can delete your account.", "empty_req_name": "Pusta nazwa żądania", "f12_details": "(F12 po szczegóły)", "gql_prettify_invalid_query": "Nie można poprawić czytelności nieprawidłowego zapytania, napraw błędy składni zapytania i spróbuj ponownie", @@ -437,6 +440,7 @@ "settings": { "accent_color": "Kolor akcentu", "account": "Konto", + "account_deleted": "Your account has been deleted", "account_description": "Dostosuj ustawienia swojego konta.", "account_email_description": "Twój podstawowy adres e-mail.", "account_name_description": "To jest Twoja nazwa wyświetlana.", @@ -445,6 +449,8 @@ "change_font_size": "Zmień rozmiar czczionki", "choose_language": "Wybierz język", "dark_mode": "Ciemny", + "delete_account": "Delete account", + "delete_account_description": "Once you delete your account, all your data will be permanently deleted. This action cannot be undone.", "expand_navigation": "Expand navigation", "experiments": "Eksperymenty", "experiments_notice": "To jest zbiór eksperymentów, nad którymi pracujemy, które mogą okazać się przydatne, zabawne, obie te rzeczy albo żadne. Nie są ostateczne i mogą nie być stabilne, więc jeśli wydarzy się coś zbyt dziwnego, nie panikuj. Po prostu wyłącz to cholerstwo. Żarty na bok,", diff --git a/packages/hoppscotch-common/locales/pt-br.json b/packages/hoppscotch-common/locales/pt-br.json index a4778bf74..aa9136049 100644 --- a/packages/hoppscotch-common/locales/pt-br.json +++ b/packages/hoppscotch-common/locales/pt-br.json @@ -203,6 +203,9 @@ "browser_support_sse": "Este navegador não parece ter suporte para eventos enviados pelo servidor.", "check_console_details": "Verifique o log do console para obter detalhes.", "curl_invalid_format": "cURL não está formatado corretamente", + "danger_zone": "Danger zone", + "delete_account": "Your account is currently an owner in these teams:", + "delete_account_description": "You must either remove yourself, transfer ownership, or delete these teams before you can delete your account.", "empty_req_name": "Nome de requisição vazio", "f12_details": "(F12 para detalhes)", "gql_prettify_invalid_query": "Não foi possível justificar uma requisição inválida, resolva os erros de sintaxe da requisição e tente novamente", @@ -437,6 +440,7 @@ "settings": { "accent_color": "Cor de destaque", "account": "Conta", + "account_deleted": "Your account has been deleted", "account_description": "Personalize as configurações da sua conta.", "account_email_description": "Seu endereço de e-mail principal.", "account_name_description": "Este é o seu nome de exibição.", @@ -445,6 +449,8 @@ "change_font_size": "Mudar TAMANHO DA FONTE", "choose_language": "Escolha o seu idioma", "dark_mode": "Escuro", + "delete_account": "Delete account", + "delete_account_description": "Once you delete your account, all your data will be permanently deleted. This action cannot be undone.", "expand_navigation": "Expandir navegação", "experiments": "Experimentos", "experiments_notice": "Esta é uma coleção de experimentos em que estamos trabalhando que podem ser úteis, divertidos, ambos ou nenhum dos dois. Eles não são finais e podem não ser estáveis, portanto, se algo muito estranho acontecer, não entre em pânico. Apenas desligue essa maldita coisa. Piadas à parte,", diff --git a/packages/hoppscotch-common/locales/pt.json b/packages/hoppscotch-common/locales/pt.json index 13e07f6d9..c63f4e817 100644 --- a/packages/hoppscotch-common/locales/pt.json +++ b/packages/hoppscotch-common/locales/pt.json @@ -203,6 +203,9 @@ "browser_support_sse": "Este navegador não parece ter suporte para eventos enviados pelo servidor.", "check_console_details": "Verifique o log do console para obter detalhes.", "curl_invalid_format": "cURL não está formatado corretamente", + "danger_zone": "Danger zone", + "delete_account": "Your account is currently an owner in these teams:", + "delete_account_description": "You must either remove yourself, transfer ownership, or delete these teams before you can delete your account.", "empty_req_name": "Nome do pedido vazio", "f12_details": "(F12 para detalhes)", "gql_prettify_invalid_query": "Não foi possível justificar uma consulta inválida, resolva os erros de sintaxe da consulta e tente novamente", @@ -437,6 +440,7 @@ "settings": { "accent_color": "Cor de destaque", "account": "Conta", + "account_deleted": "Your account has been deleted", "account_description": "Personalize as configurações da sua conta.", "account_email_description": "Seu endereço de e-mail principal.", "account_name_description": "Este é o seu nome de exibição.", @@ -445,6 +449,8 @@ "change_font_size": "Mudar TAMANHO DA FONTE", "choose_language": "Escolha o seu idioma", "dark_mode": "Escuro", + "delete_account": "Delete account", + "delete_account_description": "Once you delete your account, all your data will be permanently deleted. This action cannot be undone.", "expand_navigation": "Expand navigation", "experiments": "Experimentos", "experiments_notice": "Esta é uma coleção de experimentos em que estamos trabalhando que podem ser úteis, divertidos, ambos ou nenhum dos dois. Eles não são finais e podem não ser estáveis, portanto, se algo muito estranho acontecer, não entre em pânico. Apenas desligue essa maldita coisa. Piadas à parte,", diff --git a/packages/hoppscotch-common/locales/ro.json b/packages/hoppscotch-common/locales/ro.json index 14cd0098a..e7795fcea 100644 --- a/packages/hoppscotch-common/locales/ro.json +++ b/packages/hoppscotch-common/locales/ro.json @@ -203,6 +203,9 @@ "browser_support_sse": "Acest browser pare să nu aibă suport pentru Server Sent Events.", "check_console_details": "Verificați jurnalul consolei pentru detalii.", "curl_invalid_format": "cURL nu este formatat corect", + "danger_zone": "Danger zone", + "delete_account": "Your account is currently an owner in these teams:", + "delete_account_description": "You must either remove yourself, transfer ownership, or delete these teams before you can delete your account.", "empty_req_name": "Nume cerere goală", "f12_details": "(F12 pentru detalii)", "gql_prettify_invalid_query": "Nu am putut formata o interogare nevalidă, rezolvați erorile de sintaxă ale interogării și încercați din nou", @@ -437,6 +440,7 @@ "settings": { "accent_color": "Culoare de accent", "account": "Cont", + "account_deleted": "Your account has been deleted", "account_description": "Personalizați setările contului.", "account_email_description": "Adresa dvs. de e-mail principală.", "account_name_description": "Acesta este numele dvs. afișat.", @@ -445,6 +449,8 @@ "change_font_size": "Schimbă marimea fontului", "choose_language": "Alege limba", "dark_mode": "Întunecat", + "delete_account": "Delete account", + "delete_account_description": "Once you delete your account, all your data will be permanently deleted. This action cannot be undone.", "expand_navigation": "Expandează navigarea", "experiments": "Experimente", "experiments_notice": "Aceasta este o colecție de experimente la care lucrăm, care s-ar putea dovedi a fi utile, distractive, ambele sau nici una. Nu sunt definitive și s-ar putea să nu fie stabile, așa că, dacă se întâmplă ceva prea ciudat, nu vă panicați. Doar oprește-l. Lăsând glumele deoparte,", diff --git a/packages/hoppscotch-common/locales/ru.json b/packages/hoppscotch-common/locales/ru.json index 6cfb9f28f..788c7dade 100644 --- a/packages/hoppscotch-common/locales/ru.json +++ b/packages/hoppscotch-common/locales/ru.json @@ -203,6 +203,9 @@ "browser_support_sse": "Похоже, в этом браузере нет поддержки событий, отправленных сервером.", "check_console_details": "Подробности смотрите в журнале консоли.", "curl_invalid_format": "cURL неправильно отформатирован", + "danger_zone": "Danger zone", + "delete_account": "Your account is currently an owner in these teams:", + "delete_account_description": "You must either remove yourself, transfer ownership, or delete these teams before you can delete your account.", "empty_req_name": "Пустое имя запроса", "f12_details": "(F12 для подробностей)", "gql_prettify_invalid_query": "Не удалось определить недопустимый запрос, устранить синтаксические ошибки запроса и повторить попытку.", @@ -437,6 +440,7 @@ "settings": { "accent_color": "Основной цвет", "account": "Счет", + "account_deleted": "Your account has been deleted", "account_description": "Настройте параметры своей учетной записи.", "account_email_description": "Ваш основной адрес электронной почты.", "account_name_description": "Это ваше отображаемое имя.", @@ -445,6 +449,8 @@ "change_font_size": "Изменить размер шрифта", "choose_language": "Выберите язык", "dark_mode": "Темный", + "delete_account": "Delete account", + "delete_account_description": "Once you delete your account, all your data will be permanently deleted. This action cannot be undone.", "expand_navigation": "Раскрыть панель навигации", "experiments": "Эксперименты", "experiments_notice": "Это набор экспериментов, над которыми мы работаем, которые могут оказаться полезными, интересными, и тем, и другим, или ни тем, ни другим. Они не окончательные и могут быть нестабильными, поэтому, если произойдет что-то слишком странное, не паникуйте. Просто выключи эту чертову штуку. Шутки в сторону,", diff --git a/packages/hoppscotch-common/locales/sr.json b/packages/hoppscotch-common/locales/sr.json index 8b0002217..90c0894e1 100644 --- a/packages/hoppscotch-common/locales/sr.json +++ b/packages/hoppscotch-common/locales/sr.json @@ -203,6 +203,9 @@ "browser_support_sse": "Изгледа да овај прегледач нема подршку за Послане догађаје са сервера.", "check_console_details": "Детаље потражите у дневнику конзоле.", "curl_invalid_format": "цУРЛ није правилно форматиран", + "danger_zone": "Danger zone", + "delete_account": "Your account is currently an owner in these teams:", + "delete_account_description": "You must either remove yourself, transfer ownership, or delete these teams before you can delete your account.", "empty_req_name": "Празан назив захтева", "f12_details": "(Ф12 за детаље)", "gql_prettify_invalid_query": "Није могуће унапредити неважећи упит, решити грешке у синтакси упита и покушати поново", @@ -437,6 +440,7 @@ "settings": { "accent_color": "Боја акцента", "account": "Рачун", + "account_deleted": "Your account has been deleted", "account_description": "Прилагодите поставке налога.", "account_email_description": "Ваша примарна адреса е -поште.", "account_name_description": "Ово је ваше име за приказ.", @@ -445,6 +449,8 @@ "change_font_size": "Промените величину фонта", "choose_language": "Изабери језик", "dark_mode": "Дарк", + "delete_account": "Delete account", + "delete_account_description": "Once you delete your account, all your data will be permanently deleted. This action cannot be undone.", "expand_navigation": "Expand navigation", "experiments": "Експерименти", "experiments_notice": "Ово је збирка експеримената на којима радимо и који би се могли показати корисним, забавним, обоје или ниједно. Нису коначни и можда нису стабилни, па ако се догоди нешто превише чудно, немојте паничарити. Само искључите опасну ствар. Шалу на страну,", diff --git a/packages/hoppscotch-common/locales/sv.json b/packages/hoppscotch-common/locales/sv.json index 713739ca5..e9face08d 100644 --- a/packages/hoppscotch-common/locales/sv.json +++ b/packages/hoppscotch-common/locales/sv.json @@ -203,6 +203,9 @@ "browser_support_sse": "Den här webbläsaren verkar inte ha stöd för Server Sent Events.", "check_console_details": "Kontrollera konsolloggen för mer information.", "curl_invalid_format": "cURL är inte korrekt formaterad", + "danger_zone": "Danger zone", + "delete_account": "Your account is currently an owner in these teams:", + "delete_account_description": "You must either remove yourself, transfer ownership, or delete these teams before you can delete your account.", "empty_req_name": "Tom förfrågningsnamn", "f12_details": "(F12 för detaljer)", "gql_prettify_invalid_query": "Det gick inte att pryda en ogiltig fråga, lösa frågesyntaxfel och försök igen", @@ -437,6 +440,7 @@ "settings": { "accent_color": "Accentfärg", "account": "konto", + "account_deleted": "Your account has been deleted", "account_description": "Anpassa dina kontoinställningar.", "account_email_description": "Din primära e -postadress.", "account_name_description": "Detta är ditt visningsnamn.", @@ -445,6 +449,8 @@ "change_font_size": "Ändra typsnittsstorlek", "choose_language": "Välj språk", "dark_mode": "Mörk", + "delete_account": "Delete account", + "delete_account_description": "Once you delete your account, all your data will be permanently deleted. This action cannot be undone.", "expand_navigation": "Expand navigation", "experiments": "Experiment", "experiments_notice": "Det här är en samling experiment vi arbetar med som kan visa sig vara användbara, roliga, båda eller ingen av dem. De är inte slutgiltiga och kanske inte är stabila, så om inget alltför konstigt händer, var inte rädd. Stäng bara av det jävla. Skämt åt sidan,", diff --git a/packages/hoppscotch-common/locales/tr.json b/packages/hoppscotch-common/locales/tr.json index 708a4a4ea..43f0bf7f3 100644 --- a/packages/hoppscotch-common/locales/tr.json +++ b/packages/hoppscotch-common/locales/tr.json @@ -203,6 +203,9 @@ "browser_support_sse": "Bu tarayıcıda SSE desteği yok gibi görünüyor.", "check_console_details": "Ayrıntılar için konsol günlüğünü kontrol edin.", "curl_invalid_format": "cURL düzgün biçimlendirilmemiş", + "danger_zone": "Danger zone", + "delete_account": "Your account is currently an owner in these teams:", + "delete_account_description": "You must either remove yourself, transfer ownership, or delete these teams before you can delete your account.", "empty_req_name": "Boş İstek Adı", "f12_details": "(Ayrıntılar için F12)", "gql_prettify_invalid_query": "Geçersiz bir sorgu güzelleştirilemedi, sorgu sözdizimi hatalarını çözüp tekrar deneyin", @@ -437,6 +440,7 @@ "settings": { "accent_color": "Vurgu rengi", "account": "Hesap", + "account_deleted": "Your account has been deleted", "account_description": "Hesap ayarlarınızı özelleştirin.", "account_email_description": "Birincil e-posta adresiniz.", "account_name_description": "Bu sizin görünen adınız.", @@ -445,6 +449,8 @@ "change_font_size": "Yazı tipi boyutunu değiştir", "choose_language": "Dil seçiniz", "dark_mode": "Karanlık", + "delete_account": "Delete account", + "delete_account_description": "Once you delete your account, all your data will be permanently deleted. This action cannot be undone.", "expand_navigation": "Gezinmeyi genişlet", "experiments": "Deneyler", "experiments_notice": "Bu, üzerinde çalıştığımız, yararlı, eğlenceli, her ikisi de ya da hiçbiri olabilecek bir deneyler koleksiyonudur. Nihai değiller ve istikrarlı olmayabilirler, bu yüzden aşırı garip bir şey olursa panik yapmayın.", diff --git a/packages/hoppscotch-common/locales/tw.json b/packages/hoppscotch-common/locales/tw.json index 86adef4c9..682ee2e08 100644 --- a/packages/hoppscotch-common/locales/tw.json +++ b/packages/hoppscotch-common/locales/tw.json @@ -19,7 +19,7 @@ "edit": "編輯", "filter": "篩選回應", "go_back": "返回", - "group_by": "Group by", + "group_by": "分組方式", "label": "標籤", "learn_more": "瞭解更多", "less": "更少", @@ -175,7 +175,7 @@ "protocols": "協定為空", "schema": "連線至 GraphQL 端點", "shortcodes": "Shortcodes 為空", - "subscription": "Subscriptions are empty", + "subscription": "訂閱為空", "team_name": "團隊名稱為空", "teams": "團隊為空", "tests": "沒有針對該請求的測試" @@ -203,6 +203,9 @@ "browser_support_sse": "此瀏覽器似乎不支援 SSE。", "check_console_details": "檢查控制台日誌以獲悉詳情", "curl_invalid_format": "cURL 格式不正確", + "danger_zone": "Danger zone", + "delete_account": "您的帳號目前為這些團隊的擁有者:", + "delete_account_description": "您在刪除帳號前必須先將您自己從團隊中移除、轉移擁有權,或是刪除團隊。", "empty_req_name": "空請求名稱", "f12_details": "(按下 F12 以獲悉詳情)", "gql_prettify_invalid_query": "無法美化無效的查詢,處理查詢語法錯誤並重試", @@ -229,9 +232,9 @@ "title": "匯出" }, "filter": { - "all": "All", - "none": "None", - "starred": "Starred" + "all": "全部", + "none": "無", + "starred": "已加星號" }, "folder": { "created": "已建立資料夾", @@ -247,8 +250,8 @@ "subscriptions": "訂閱" }, "group": { - "time": "Time", - "url": "URL" + "time": "時間", + "url": "網址" }, "header": { "install_pwa": "安裝應用程式", @@ -313,16 +316,16 @@ "import_export": "匯入/匯出" }, "mqtt": { - "already_subscribed": "You are already subscribed to this topic.", - "clean_session": "Clean Session", - "clear_input": "Clear input", - "clear_input_on_send": "Clear input on send", - "client_id": "Client ID", - "color": "Pick a color", + "already_subscribed": "您已經訂閱了此主題。", + "clean_session": "清理工作階段", + "clear_input": "清除輸入", + "clear_input_on_send": "傳送後清除輸入", + "client_id": "客戶端 ID", + "color": "選擇顏色", "communication": "通訊", - "connection_config": "Connection Config", - "connection_not_authorized": "This MQTT connection does not use any authentication.", - "invalid_topic": "Please provide a topic for the subscription", + "connection_config": "連線設定", + "connection_not_authorized": "此 MQTT 連線未使用任何驗證。", + "invalid_topic": "請提供該訂閱的主題", "keep_alive": "Keep Alive", "log": "日誌", "lw_message": "Last-Will Message", @@ -330,8 +333,8 @@ "lw_retain": "Last-Will Retain", "lw_topic": "Last-Will Topic", "message": "訊息", - "new": "New Subscription", - "not_connected": "Please start a MQTT connection first.", + "new": "新訂閱", + "not_connected": "請先啟動 MQTT 連線。", "publish": "發佈", "qos": "QoS", "ssl": "SSL", @@ -437,6 +440,7 @@ "settings": { "accent_color": "強調色", "account": "帳號", + "account_deleted": "已刪除您的帳號", "account_description": "自定義您的帳號設定。", "account_email_description": "您的主要電子郵件地址。", "account_name_description": "這是您的顯示名稱。", @@ -445,6 +449,8 @@ "change_font_size": "更改字型大小", "choose_language": "選擇語言", "dark_mode": "暗色", + "delete_account": "刪除帳號", + "delete_account_description": "一旦您刪除了您的帳號,您的所有資料將被永久刪除。此操作無法復原。", "expand_navigation": "展開導航欄", "experiments": "實驗功能", "experiments_notice": "下面是我們正在開發中的一些實驗功能,這些功能可能會很有用,可能很有趣,又或者二者都是或都不是。這些功能並非最終版本且可能不穩定,所以如果發生了一些過於奇怪的事情,不要驚慌,關掉它們就好了。玩笑歸玩笑,", diff --git a/packages/hoppscotch-common/locales/uk.json b/packages/hoppscotch-common/locales/uk.json index e34838207..4692a96ef 100644 --- a/packages/hoppscotch-common/locales/uk.json +++ b/packages/hoppscotch-common/locales/uk.json @@ -3,42 +3,42 @@ "autoscroll": "Автопрокручування", "cancel": "Скасувати", "choose_file": "Виберіть файл", - "clear": "Ясно", + "clear": "Очистити", "clear_all": "Очистити все", "close": "Закрити", - "connect": "Підключіться", - "connecting": "Connecting", + "connect": "Підключитись", + "connecting": "Підключення", "copy": "Копіювати", "delete": "Видалити", - "disconnect": "Відключити", + "disconnect": "Відключитись", "dismiss": "Відхилити", "dont_save": "Не зберігати", "download_file": "Завантажити файл", "drag_to_reorder": "Перетягніть для зміни порядку", "duplicate": "Дублювати", "edit": "Редагувати", - "filter": "Фільтр відповіді", - "go_back": "Повертайся", - "group_by": "Group by", + "filter": "Фільтрувати відповіді", + "go_back": "Повернутись", + "group_by": "Групувати за", "label": "Мітка", - "learn_more": "Вчи більше", + "learn_more": "Дізнатись більше", "less": "Менше", "more": "Більше", "new": "Новий", - "no": "Немає", + "no": "Ні", "open_workspace": "Відкрити робочу область", "paste": "Вставити", - "prettify": "Прикрасьте", + "prettify": "Форматувати", "remove": "Видалити", - "restore": "Відновлювати", + "restore": "Відновити", "save": "Зберегти", "scroll_to_bottom": "Прокрутити вниз", "scroll_to_top": "Прокрутити вгору", "search": "Пошук", "send": "Надіслати", "start": "Почати", - "starting": "Starting", - "stop": "Стій", + "starting": "Розпочинається", + "stop": "Зупити", "to_close": "щоб закрити", "to_navigate": "для навігації", "to_select": "щоб вибрати", @@ -52,7 +52,7 @@ "star": "Додати зірочку" }, "app": { - "chat_with_us": "Спілкуйтеся з нами", + "chat_with_us": "Написати нам", "contact_us": "Зв'яжіться з нами", "copy": "Копіювати", "copy_user_id": "Скопіювати токен автентифікації користувача", @@ -66,10 +66,10 @@ "invite": "Запросити", "invite_description": "У Hoppscotch ми розробили простий та інтуїтивно зрозумілий інтерфейс для створення та управління вашими API. Hoppscotch - це інструмент, який допомагає вам створювати, тестувати, документувати та ділитися своїми API.", "invite_your_friends": "Запросіть своїх друзів", - "join_discord_community": "Приєднуйтесь до нашої спільноти Discord", + "join_discord_community": "Приєднуйтесь до нашої спільноти у Discord", "keyboard_shortcuts": "Гарячі клавіши", - "name": "Гопскотч", - "new_version_found": "Знайдено нову версію. Оновіть, щоб оновити.", + "name": "Hoppscotch", + "new_version_found": "Знайдено нову версію. Перезавантажте сторінку, щоб оновити.", "options": "Опції", "proxy_privacy_policy": "Політика конфіденційності проксі", "reload": "Перезавантажити", @@ -84,17 +84,17 @@ "type_a_command_search": "Введіть команду або виконайте пошук…", "we_use_cookies": "Ми використовуємо файли cookie", "whats_new": "Що нового?", - "wiki": "Вікі" + "wiki": "Wiki" }, "auth": { "account_exists": "Обліковий запис існує з різними обліковими даними - увійдіть, щоб зв'язати обидва облікові записи", "all_sign_in_options": "Усі параметри входу", "continue_with_email": "Продовжити з електронною поштою", "continue_with_github": "Продовжити з GitHub", - "continue_with_google": "Продовжуйте працювати з Google", + "continue_with_google": "Продовжити з Google", "continue_with_microsoft": "Продовжити з Microsoft", "email": "Електронна пошта", - "logged_out": "Вийшли з системи", + "logged_out": "Ви вийшли з облікового запису", "login": "Увійти", "login_success": "Вхід успішно здійснено", "login_to_hoppscotch": "Увійдіть до Hoppscotch", @@ -102,7 +102,7 @@ "re_enter_email": "Введіть електронну адресу ще раз", "send_magic_link": "Надішліть чарівне посилання", "sync": "Синхронізувати", - "we_sent_magic_link": "Ми надіслали вам чарівне посилання!", + "we_sent_magic_link": "Ми надіслали Вам чарівне посилання!", "we_sent_magic_link_description": "Перевірте свою поштову скриньку - ми надіслали електронний лист на адресу {email}. Він містить чарівне посилання, яке дозволить вам увійти." }, "authorization": { @@ -154,7 +154,7 @@ }, "documentation": { "generate": "Створення документації", - "generate_message": "Імпортуйте будь-яку колекцію Hoppscotch для створення документації API на ходу." + "generate_message": "Імпортуйте будь-яку колекцію Hoppscotch для автоматичного створення API-документації на ходу." }, "empty": { "authorization": "У цьому запиті не використовується авторизація", @@ -175,15 +175,15 @@ "protocols": "Протоколи порожні", "schema": "Підключіться до кінцевої точки GraphQL", "shortcodes": "Короткі коди порожні", - "subscription": "Subscriptions are empty", + "subscription": "Підписки порожні", "team_name": "Назва команди порожня", "teams": "Команди порожні", "tests": "Для цього запиту немає тестів" }, "environment": { - "add_to_global": "Додати до Глобального", + "add_to_global": "Додати до Глобального середовища", "added": "Додавання середовища", - "create_new": "Створіть нове середовище", + "create_new": "Створити нове середовище", "created": "Середовище створено", "deleted": "Видалення середовища", "edit": "Редагувати середовище", @@ -196,13 +196,16 @@ "select": "Виберіть середовище", "team_environments": "Командні середовища", "title": "Середовища", - "updated": "Environment updation", + "updated": "Оновлення середовища", "variable_list": "Список змінних" }, "error": { "browser_support_sse": "Схоже, цей браузер не підтримує події, надіслані сервером.", "check_console_details": "Детальніше перевірте журнал консолі.", "curl_invalid_format": "cURL неправильно форматовано", + "danger_zone": "Небезпечна зона", + "delete_account": "Ваш обліковий запис на разі володіє цими командами:", + "delete_account_description": "Ви повинні або видалити себе, або передати право власності, або видалити ці команди, перш ніж ви зможете видалити свій обліковий запис.", "empty_req_name": "Пуста назва запиту", "f12_details": "(F12 для деталей)", "gql_prettify_invalid_query": "Не вдалося попередньо визначити недійсний запит, вирішити синтаксичні помилки запиту та повторити спробу", @@ -223,15 +226,15 @@ }, "export": { "as_json": "Експортувати як JSON", - "create_secret_gist": "Створіть секретну суть", - "gist_created": "Суть створена", - "require_github": "Увійдіть за допомогою GitHub, щоб створити секретну історію", - "title": "Експорт" + "create_secret_gist": "Створити секретний GitHub Gist", + "gist_created": "Gist створений", + "require_github": "Увійдіть за допомогою GitHub, щоб створити секретний Gist", + "title": "Експортувати" }, "filter": { - "all": "All", - "none": "None", - "starred": "Starred" + "all": "Всі", + "none": "Жодного", + "starred": "З Зірочкою" }, "folder": { "created": "Папка створена", @@ -247,7 +250,7 @@ "subscriptions": "Підписки" }, "group": { - "time": "Time", + "time": "Час", "url": "URL" }, "header": { @@ -257,19 +260,19 @@ }, "helpers": { "authorization": "Заголовок авторизації буде автоматично сформований під час надсилання запиту.", - "generate_documentation_first": "Спочатку сформуйте документацію", + "generate_documentation_first": "Спочатку згенеруйте документацію", "network_fail": "Не вдається зв'язатися з кінцевою точкою API. Перевірте підключення до мережі та повторіть спробу.", "offline": "Ви, здається, не в мережі. Дані в цій робочій області можуть бути не актуальними.", "offline_short": "Ви, здається, не в мережі.", - "post_request_tests": "Тестові сценарії записуються на JavaScript і запускаються після отримання відповіді.", - "pre_request_script": "Сценарії попереднього запиту написані на JavaScript і запускаються перед надсиланням запиту.", - "script_fail": "Схоже, є збій у сценарії попереднього запиту. Перевірте помилку нижче та виправте відповідним чином сценарій.", - "test_script_fail": "Здається виникла помилка з тестовим сценарієм. Будь ласка, виправте помилки і спробуйте знову", - "tests": "Напишіть тестовий сценарій для автоматизації налагодження." + "post_request_tests": "Тестові скрипти записуються на JavaScript і запускаються після отримання відповіді.", + "pre_request_script": "Скрипти написані на JavaScript і запускаються перед надсиланням запиту.", + "script_fail": "Схоже, є збій у скрипті. Перевірте помилку нижче та виправте відповідним чином сценарій.", + "test_script_fail": "Здається виникла помилка з тестовим скриптом. Будь ласка, виправте помилки і спробуйте знову", + "tests": "Напишіть тестовий скрипт для автоматизації налагодження." }, "hide": { "collection": "Згорнути панель колекції", - "more": "Приховай більше", + "more": "Приховати більше", "preview": "Приховати попередній перегляд", "sidebar": "Приховати бічну панель" }, @@ -283,20 +286,20 @@ "from_insomnia_description": "Імпорт із колекції Insomnia", "from_json": "Імпорт з Hoppscotch", "from_json_description": "Імпорт з файлу колекції Hoppscotch", - "from_my_collections": "Імпортувати з Моїх колекцій", + "from_my_collections": "Імпортувати з моїх колекцій", "from_my_collections_description": "Імпортувати з мого файлу колекцій", "from_openapi": "Імпорт з OpenAPI", "from_openapi_description": "Імпорт з файлу специфікації OpenAPI (YML/JSON)", "from_postman": "Імпортувати з Postman", "from_postman_description": "Імпорт із колекції Postman", "from_url": "Імпорт з URL", - "gist_url": "Введіть URL -адресу Gist", + "gist_url": "Введіть URL-адресу Gist", "import_from_url_invalid_fetch": "Не вдалося отримати дані з url", "import_from_url_invalid_file_format": "Помилка при імпорті колекцій", "import_from_url_invalid_type": "Непідтримуваний тип. Допустимими значеннями є 'hoppscotch', 'openapi', 'postman', 'insomnia'", "import_from_url_success": "Колекції імпортовано", "json_description": "Імпортувати колекції з колекцій Hoppscotch JSON файлу", - "title": "Імпорт" + "title": "Імпортувати" }, "layout": { "collapse_collection": "Згорнути або розширити колекції", @@ -313,16 +316,16 @@ "import_export": "Імпорт-експорт" }, "mqtt": { - "already_subscribed": "You are already subscribed to this topic.", - "clean_session": "Clean Session", - "clear_input": "Clear input", - "clear_input_on_send": "Clear input on send", - "client_id": "Client ID", - "color": "Pick a color", - "communication": "Спілкування", - "connection_config": "Connection Config", - "connection_not_authorized": "This MQTT connection does not use any authentication.", - "invalid_topic": "Please provide a topic for the subscription", + "already_subscribed": "Ви вже підписані на цю тему.", + "clean_session": "Очистити сесію.", + "clear_input": "Очистити вхідні дані", + "clear_input_on_send": "Очистити вхідні дані після надсилання", + "client_id": "ID Клієнта", + "color": "Оберіть колір", + "communication": "Комунікації", + "connection_config": "Налаштування підключення", + "connection_not_authorized": "Це MQTT-з'єднання не використовує автентифікацію.", + "invalid_topic": "Будь ласка, вкажіть тему для підписки", "keep_alive": "Keep Alive", "log": "Журнал", "lw_message": "Last-Will Message", @@ -330,12 +333,12 @@ "lw_retain": "Last-Will Retain", "lw_topic": "Last-Will Topic", "message": "повідомлення", - "new": "New Subscription", - "not_connected": "Please start a MQTT connection first.", - "publish": "Публікуйте", + "new": "Нова Підписка", + "not_connected": "Будь ласка, спочатку створіть з'єднання MQTT.", + "publish": "Опублікувати", "qos": "QoS", "ssl": "SSL", - "subscribe": "Підпишіться", + "subscribe": "Підписатись", "topic": "Тема", "topic_name": "Назва теми", "topic_title": "Опублікувати / підписатися на тему", @@ -352,9 +355,9 @@ }, "preRequest": { "javascript_code": "Код JavaScript", - "learn": "Прочитайте документацію", + "learn": "Прочитати документацію", "script": "Сценарій попереднього запиту", - "snippets": "Фрагменти" + "snippets": "Сніпети" }, "profile": { "app_settings": "Параметри програми", @@ -436,15 +439,18 @@ }, "settings": { "accent_color": "Колір акценту", - "account": "Рахунок", + "account": "Обліковий запис", + "account_deleted": "Ваш обліковий запис успішно видалено.", "account_description": "Налаштуйте налаштування свого облікового запису.", "account_email_description": "Ваша основна електронна адреса.", "account_name_description": "Це ваше відображуване ім'я.", - "background": "Довідка", + "background": "Колір фону", "black_mode": "Чорний", "change_font_size": "Змінити розмір шрифту", "choose_language": "Виберіть мову", "dark_mode": "Темний", + "delete_account": "Видалити обліковий запис", + "delete_account_description": "Якщо Ви видалите обліковий запис, усі дані будуть втрачені без можливості їх відновлення.", "expand_navigation": "Розгорнути навігацію", "experiments": "Експерименти", "experiments_notice": "Це збірка експериментів, над якими ми працюємо, які можуть виявитися корисними, веселими, обома чи ні. Вони не остаточні і можуть бути нестійкими, тому, якщо трапиться щось надто дивне, не панікуйте. Просто вимкніть небезпеку. Жарти в сторону,", @@ -630,7 +636,7 @@ "queries": "Запити", "query": "Запит", "schema": "Схема", - "socketio": "Сокет.IO", + "socketio": "Socket.IO", "sse": "SSE", "tests": "Тести", "types": "Типи", @@ -692,14 +698,14 @@ "not_found": "Середовище не знайдено." }, "test": { - "failed": "помилка тесту", + "failed": "Помилка тесту", "javascript_code": "Код JavaScript", "learn": "Прочитайте документацію", - "passed": "тест пройдено", + "passed": "Тест пройдено", "report": "Протокол випробування", "results": "Результати тесту", - "script": "Сценарій", - "snippets": "Фрагменти" + "script": "Скрипти", + "snippets": "Сніпети" }, "websocket": { "communication": "Спілкування", diff --git a/packages/hoppscotch-common/locales/vi.json b/packages/hoppscotch-common/locales/vi.json index 303d5ebfe..a93e0462e 100644 --- a/packages/hoppscotch-common/locales/vi.json +++ b/packages/hoppscotch-common/locales/vi.json @@ -203,6 +203,9 @@ "browser_support_sse": "Trình duyệt này dường như không có hỗ trợ Sự kiện do Máy chủ gửi.", "check_console_details": "Kiểm tra nhật ký bảng điều khiển để biết chi tiết.", "curl_invalid_format": "cURL không được định dạng đúng", + "danger_zone": "Danger zone", + "delete_account": "Your account is currently an owner in these teams:", + "delete_account_description": "You must either remove yourself, transfer ownership, or delete these teams before you can delete your account.", "empty_req_name": "Tên yêu cầu trống", "f12_details": "(F12 để biết chi tiết)", "gql_prettify_invalid_query": "Không thể xác minh trước một truy vấn không hợp lệ, hãy giải quyết các lỗi cú pháp truy vấn và thử lại", @@ -437,6 +440,7 @@ "settings": { "accent_color": "Màu nhấn", "account": "Tài khoản", + "account_deleted": "Your account has been deleted", "account_description": "Tùy chỉnh cài đặt tài khoản của bạn.", "account_email_description": "Địa chỉ email chính của bạn.", "account_name_description": "Đây là tên hiển thị của bạn.", @@ -445,6 +449,8 @@ "change_font_size": "Thay đổi kích thước phông chữ", "choose_language": "Chọn ngôn ngữ", "dark_mode": "Tối tăm", + "delete_account": "Delete account", + "delete_account_description": "Once you delete your account, all your data will be permanently deleted. This action cannot be undone.", "expand_navigation": "Expand navigation", "experiments": "Thí nghiệm", "experiments_notice": "Đây là một bộ sưu tập các thử nghiệm mà chúng tôi đang thực hiện có thể hữu ích, thú vị, cả hai hoặc không. Chúng không phải là cuối cùng và có thể không ổn định, vì vậy nếu có điều gì đó quá kỳ lạ xảy ra, đừng hoảng sợ. Chỉ cần tắt điều này đi. Chuyện cười sang một bên,", diff --git a/packages/hoppscotch-common/package.json b/packages/hoppscotch-common/package.json index 2295f99bd..8c8a8e775 100644 --- a/packages/hoppscotch-common/package.json +++ b/packages/hoppscotch-common/package.json @@ -31,6 +31,7 @@ "@codemirror/state": "^6.1.0", "@codemirror/view": "^6.0.2", "@hoppscotch/codemirror-lang-graphql": "workspace:^0.2.0", + "@hoppscotch/ui": "workspace:^0.0.1", "@hoppscotch/data": "workspace:^0.4.4", "@hoppscotch/js-sandbox": "workspace:^2.1.0", "@hoppscotch/vue-toasted": "^0.1.0", diff --git a/packages/hoppscotch-common/src/components.d.ts b/packages/hoppscotch-common/src/components.d.ts index c78414770..710cbd7d8 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 { + 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'] @@ -25,8 +26,8 @@ declare module '@vue/runtime-core' { 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('./components/button/Primary.vue')['default'] - ButtonSecondary: typeof import('./components/button/Secondary.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'] @@ -99,7 +100,6 @@ declare module '@vue/runtime-core' { HttpTests: typeof import('./components/http/Tests.vue')['default'] HttpURLEncodedParams: typeof import('./components/http/URLEncodedParams.vue')['default'] IconLucideArrowLeft: typeof import('~icons/lucide/arrow-left')['default'] - IconLucideBrush: typeof import('~icons/lucide/brush')['default'] IconLucideCheckCircle: typeof import('~icons/lucide/check-circle')['default'] IconLucideChevronRight: typeof import('~icons/lucide/chevron-right')['default'] IconLucideGlobe: typeof import('~icons/lucide/globe')['default'] @@ -108,11 +108,9 @@ declare module '@vue/runtime-core' { IconLucideLayers: typeof import('~icons/lucide/layers')['default'] IconLucideLoader: typeof import('~icons/lucide/loader')['default'] IconLucideMinus: typeof import('~icons/lucide/minus')['default'] - IconLucideRss: typeof import('~icons/lucide/rss')['default'] IconLucideSearch: typeof import('~icons/lucide/search')['default'] IconLucideUser: typeof import('~icons/lucide/user')['default'] IconLucideUsers: typeof import('~icons/lucide/users')['default'] - IconLucideVerified: typeof import('~icons/lucide/verified')['default'] LensesHeadersRenderer: typeof import('./components/lenses/HeadersRenderer.vue')['default'] LensesHeadersRendererEntry: typeof import('./components/lenses/HeadersRendererEntry.vue')['default'] LensesRenderersHTMLLensRenderer: typeof import('./components/lenses/renderers/HTMLLensRenderer.vue')['default'] @@ -124,36 +122,38 @@ declare module '@vue/runtime-core' { LensesResponseBodyRenderer: typeof import('./components/lenses/ResponseBodyRenderer.vue')['default'] ProfilePicture: typeof import('./components/profile/Picture.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('./components/smart/Anchor.vue')['default'] - SmartAutoComplete: typeof import('./components/smart/AutoComplete.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('./components/smart/Checkbox.vue')['default'] + SmartCheckbox: typeof import('./../../hoppscotch-ui/src/components/smart/Checkbox.vue')['default'] SmartColorModePicker: typeof import('./components/smart/ColorModePicker.vue')['default'] - SmartConfirmModal: typeof import('./components/smart/ConfirmModal.vue')['default'] + SmartConfirmModal: typeof import('./../../hoppscotch-ui/src/components/smart/ConfirmModal.vue')['default'] SmartEnvInput: typeof import('./components/smart/EnvInput.vue')['default'] - SmartExpand: typeof import('./components/smart/Expand.vue')['default'] - SmartFileChip: typeof import('./components/smart/FileChip.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('./components/smart/Intersection.vue')['default'] - SmartItem: typeof import('./components/smart/Item.vue')['default'] - SmartLink: typeof import('./components/smart/Link.vue')['default'] - SmartModal: typeof import('./components/smart/Modal.vue')['default'] - SmartProgressRing: typeof import('./components/smart/ProgressRing.vue')['default'] - SmartRadio: typeof import('./components/smart/Radio.vue')['default'] - SmartRadioGroup: typeof import('./components/smart/RadioGroup.vue')['default'] - SmartSlideOver: typeof import('./components/smart/SlideOver.vue')['default'] - SmartSpinner: typeof import('./components/smart/Spinner.vue')['default'] - SmartTab: typeof import('./components/smart/Tab.vue')['default'] - SmartTabs: typeof import('./components/smart/Tabs.vue')['default'] - SmartToggle: typeof import('./components/smart/Toggle.vue')['default'] - SmartWindow: typeof import('./components/smart/Window.vue')['default'] - SmartWindows: typeof import('./components/smart/Windows.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'] + 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'] + 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'] diff --git a/packages/hoppscotch-common/src/components/app/ActionHandler.vue b/packages/hoppscotch-common/src/components/app/ActionHandler.vue new file mode 100644 index 000000000..6f1cfa547 --- /dev/null +++ b/packages/hoppscotch-common/src/components/app/ActionHandler.vue @@ -0,0 +1,26 @@ + + + diff --git a/packages/hoppscotch-common/src/components/app/Footer.vue b/packages/hoppscotch-common/src/components/app/Footer.vue index 6332aa762..62ca6ea76 100644 --- a/packages/hoppscotch-common/src/components/app/Footer.vue +++ b/packages/hoppscotch-common/src/components/app/Footer.vue @@ -50,9 +50,9 @@ ref="tippyActions" class="flex flex-col focus:outline-none" tabindex="0" - @keyup.d="documentation.$el.click()" - @keyup.s="shortcuts.$el.click()" - @keyup.c="chat.$el.click()" + @keyup.d="documentation!.$el.click()" + @keyup.s="shortcuts!.$el.click()" + @keyup.c="chat!.$el.click()" @keyup.escape="hide()" > ${getSpecialKey()}K`" :icon="IconZap" - @click="showShortcuts = true" + @click="invokeAction('flyouts.keybinds.toggle')" /> - - { - showShortcuts.value = !showShortcuts.value -}) - -defineActionHandler("modals.share.toggle", () => { - showShare.value = !showShare.value -}) - const EXPAND_NAVIGATION = useSetting("EXPAND_NAVIGATION") const SIDEBAR = useSetting("SIDEBAR") const ZEN_MODE = useSetting("ZEN_MODE") @@ -283,7 +271,7 @@ const showDeveloperOptionModal = () => { // Template refs const tippyActions = ref(null) -const documentation = ref(null) -const shortcuts = ref(null) -const chat = ref(null) +const documentation = ref() +const shortcuts = ref() +const chat = ref() diff --git a/packages/hoppscotch-common/src/components/app/Header.vue b/packages/hoppscotch-common/src/components/app/Header.vue index caeb28eee..b89c23bad 100644 --- a/packages/hoppscotch-common/src/components/app/Header.vue +++ b/packages/hoppscotch-common/src/components/app/Header.vue @@ -3,7 +3,13 @@

-
+
- @@ -170,6 +175,7 @@ import { probableUser$ } from "@helpers/fb/auth" import { useI18n } from "@composables/i18n" import { useReadonlyStream } from "@composables/stream" import { invokeAction } from "@helpers/actions" +import { platform } from "~/index" const t = useI18n() @@ -181,7 +187,6 @@ const t = useI18n() const showInstallButton = computed(() => !!pwaDefferedPrompt.value) -const showLogin = ref(false) const showTeamsModal = ref(false) const breakpoints = useBreakpoints(breakpointsTailwind) diff --git a/packages/hoppscotch-common/src/components/app/PaneLayout.vue b/packages/hoppscotch-common/src/components/app/PaneLayout.vue index e087ed636..7763abe1c 100644 --- a/packages/hoppscotch-common/src/components/app/PaneLayout.vue +++ b/packages/hoppscotch-common/src/components/app/PaneLayout.vue @@ -76,10 +76,10 @@ type PaneEvent = { size: number } -const PANE_SIDEBAR_SIZE = ref(25) -const PANE_MAIN_SIZE = ref(75) -const PANE_MAIN_TOP_SIZE = ref(45) -const PANE_MAIN_BOTTOM_SIZE = ref(65) +const PANE_MAIN_SIZE = ref(74) +const PANE_SIDEBAR_SIZE = ref(26) +const PANE_MAIN_TOP_SIZE = ref(42) +const PANE_MAIN_BOTTOM_SIZE = ref(58) if (!COLUMN_LAYOUT.value) { PANE_MAIN_TOP_SIZE.value = 50 diff --git a/packages/hoppscotch-common/src/components/collections/ChooseType.vue b/packages/hoppscotch-common/src/components/collections/ChooseType.vue index 01729110a..52974141a 100644 --- a/packages/hoppscotch-common/src/components/collections/ChooseType.vue +++ b/packages/hoppscotch-common/src/components/collections/ChooseType.vue @@ -12,7 +12,6 @@ import IconUsers from "~icons/lucide/users" import IconDone from "~icons/lucide/check" -import { ref, watch } from "vue" +import { nextTick, ref, watch } from "vue" import { GetMyTeamsQuery, Team } from "~/helpers/backend/graphql" import { currentUserInfo$ } from "~/helpers/teams/BackendUserInfo" import TeamListAdapter from "~/helpers/teams/TeamListAdapter" @@ -86,6 +85,7 @@ import { useReadonlyStream } from "@composables/stream" import { onLoggedIn } from "@composables/auth" import { useI18n } from "@composables/i18n" import { useLocalState } from "~/newstore/localstate" +import { invokeAction } from "~/helpers/actions" type TeamData = GetMyTeamsQuery["myTeams"][number] @@ -153,7 +153,10 @@ const updateSelectedTeam = (team: TeamData | undefined) => { emit("update-selected-team", team) } -watch(selectedCollectionTab, (newValue: string) => { - updateCollectionsType(newValue) +watch(selectedCollectionTab, (newValue: CollectionTabs) => { + if (newValue === "team-collections" && !currentUser.value) { + invokeAction("modals.login.toggle") + nextTick(() => (selectedCollectionTab.value = "my-collections")) + } else updateCollectionsType(newValue) }) diff --git a/packages/hoppscotch-common/src/components/environments/ChooseType.vue b/packages/hoppscotch-common/src/components/environments/ChooseType.vue index b88fab444..0aae6bfa0 100644 --- a/packages/hoppscotch-common/src/components/environments/ChooseType.vue +++ b/packages/hoppscotch-common/src/components/environments/ChooseType.vue @@ -12,7 +12,6 @@ diff --git a/packages/hoppscotch-common/src/components/environments/index.vue b/packages/hoppscotch-common/src/components/environments/index.vue index bcc0b1c0c..881e6e130 100644 --- a/packages/hoppscotch-common/src/components/environments/index.vue +++ b/packages/hoppscotch-common/src/components/environments/index.vue @@ -8,7 +8,6 @@ interactive trigger="click" theme="popover" - arrow :on-shown="() => tippyActions!.focus()" > - + (null) const options = ref(null) -const edit = ref(null) -const duplicate = ref(null) -const deleteAction = ref(null) +const edit = ref() +const duplicate = ref() +const deleteAction = ref() const removeEnvironment = () => { if (props.environmentIndex === null) return diff --git a/packages/hoppscotch-common/src/components/environments/teams/Environment.vue b/packages/hoppscotch-common/src/components/environments/teams/Environment.vue index cc4796451..086285003 100644 --- a/packages/hoppscotch-common/src/components/environments/teams/Environment.vue +++ b/packages/hoppscotch-common/src/components/environments/teams/Environment.vue @@ -24,7 +24,6 @@ interactive trigger="click" theme="popover" - arrow :on-shown="() => tippyActions!.focus()" > (null) const options = ref(null) -const edit = ref(null) -const duplicate = ref(null) -const deleteAction = ref(null) +const edit = ref() +const duplicate = ref() +const deleteAction = ref() const removeEnvironment = () => { pipe( diff --git a/packages/hoppscotch-common/src/components/history/index.vue b/packages/hoppscotch-common/src/components/history/index.vue index 1e302f089..462150c3c 100644 --- a/packages/hoppscotch-common/src/components/history/index.vue +++ b/packages/hoppscotch-common/src/components/history/index.vue @@ -99,7 +99,7 @@ :show-more="showMore" @toggle-star="toggleStar(entry.entry)" @delete-entry="deleteHistory(entry.entry)" - @use-entry="useHistory(entry.entry)" + @use-entry="useHistory(toRaw(entry.entry))" /> @@ -164,7 +164,7 @@ import IconHelpCircle from "~icons/lucide/help-circle" import IconTrash2 from "~icons/lucide/trash-2" import IconTrash from "~icons/lucide/trash" import IconFilter from "~icons/lucide/filter" -import { computed, ref, Ref } from "vue" +import { computed, ref, Ref, toRaw } from "vue" import { useColorMode } from "@composables/theming" import { HoppGQLRequest, diff --git a/packages/hoppscotch-common/src/components/http/RawBody.vue b/packages/hoppscotch-common/src/components/http/RawBody.vue index 8d3225a68..d560b462e 100644 --- a/packages/hoppscotch-common/src/components/http/RawBody.vue +++ b/packages/hoppscotch-common/src/components/http/RawBody.vue @@ -28,7 +28,15 @@ @click.prevent="linewrapEnabled = !linewrapEnabled" /> @@ -86,6 +94,8 @@ type PossibleContentTypes = Exclude< const t = useI18n() +const payload = ref(null) + const props = defineProps<{ contentType: PossibleContentTypes }>() @@ -145,7 +155,7 @@ const clearContent = () => { rawParamsBody.value = "" } -const uploadPayload = async (e: InputEvent) => { +const uploadPayload = async (e: Event) => { await pipe( (e.target as HTMLInputElement).files?.[0], TO.of, @@ -161,10 +171,17 @@ const uploadPayload = async (e: InputEvent) => { ) )() } + const prettifyRequestBody = () => { + let prettifyBody = "" try { - const jsonObj = JSON.parse(rawParamsBody.value) - rawParamsBody.value = JSON.stringify(jsonObj, null, 2) + if (props.contentType.endsWith("json")) { + const jsonObj = JSON.parse(rawParamsBody.value as string) + prettifyBody = JSON.stringify(jsonObj, null, 2) + } else if (props.contentType == "application/xml") { + prettifyBody = prettifyXML(rawParamsBody.value as string) + } + rawParamsBody.value = prettifyBody prettifyIcon.value = IconCheck } catch (e) { console.error(e) @@ -172,4 +189,28 @@ const prettifyRequestBody = () => { toast.error(`${t("error.json_prettify_invalid_body")}`) } } + +const prettifyXML = (xml: string) => { + const PADDING = " ".repeat(2) // set desired indent size here + const reg = /(>)(<)(\/*)/g + let pad = 0 + xml = xml.replace(reg, "$1\r\n$2$3") + return xml + .split("\r\n") + .map((node) => { + let indent = 0 + if (node.match(/.+<\/\w[^>]*>$/)) { + indent = 0 + } else if (node.match(/^<\/\w/) && pad > 0) { + pad -= 1 + } else if (node.match(/^<\w[^>]*[^\/]>.*$/)) { + indent = 1 + } else { + indent = 0 + } + pad += indent + return PADDING.repeat(pad - indent) + node + }) + .join("\r\n") +} diff --git a/packages/hoppscotch-common/src/components/profile/Shortcodes.vue b/packages/hoppscotch-common/src/components/profile/Shortcodes.vue new file mode 100644 index 000000000..159a003b9 --- /dev/null +++ b/packages/hoppscotch-common/src/components/profile/Shortcodes.vue @@ -0,0 +1,170 @@ + + + + + diff --git a/packages/hoppscotch-common/src/components/profile/UserDelete.vue b/packages/hoppscotch-common/src/components/profile/UserDelete.vue new file mode 100644 index 000000000..afe4688e2 --- /dev/null +++ b/packages/hoppscotch-common/src/components/profile/UserDelete.vue @@ -0,0 +1,184 @@ + + + diff --git a/packages/hoppscotch-common/src/components/teams/Edit.vue b/packages/hoppscotch-common/src/components/teams/Edit.vue index 43fa8a314..2c0e7c41f 100644 --- a/packages/hoppscotch-common/src/components/teams/Edit.vue +++ b/packages/hoppscotch-common/src/components/teams/Edit.vue @@ -34,12 +34,10 @@ /> -
- - {{ t("state.loading") }} +
+
+ +
( const source: Ref | undefined> = ref() - // A ref used to force re-execution of the query - const updateTicker: Ref = ref(true) - // Toggles between true and false to cause the polling operation to tick const pollerTick: Ref = ref(true) @@ -96,24 +94,23 @@ export const useGQLQuery = ( ) ) + const rerunQuery = () => { + source.value = !isPaused.value + ? client.value.executeQuery(request.value, { + requestPolicy: "network-only", + }) + : undefined + } + stops.push( - watchEffect( + watch( + pollerTick, () => { - // Just listen to the polling ticks - // eslint-disable-next-line no-unused-expressions - pollerTick.value - - // Just keep track of update ticking, but don't do anything - // eslint-disable-next-line no-unused-expressions - updateTicker.value - - source.value = !isPaused.value - ? client.value.executeQuery(request.value, { - requestPolicy: "network-only", - }) - : undefined + rerunQuery() }, - { flush: "pre" } + { + flush: "pre", + } ) ) @@ -192,7 +189,7 @@ export const useGQLQuery = ( } isPaused.value = false - updateTicker.value = !updateTicker.value + rerunQuery() } const pause = () => { diff --git a/packages/hoppscotch-common/src/helpers/actions.ts b/packages/hoppscotch-common/src/helpers/actions.ts index d73805689..f18c5d4da 100644 --- a/packages/hoppscotch-common/src/helpers/actions.ts +++ b/packages/hoppscotch-common/src/helpers/actions.ts @@ -37,6 +37,7 @@ export type HoppAction = | "response.preview.toggle" // Toggle response preview | "response.file.download" // Download response as file | "response.copy" // Copy response to clipboard + | "modals.login.toggle" // Login to Hoppscotch /** * Defines the arguments, if present for a given type that is required to be passed on diff --git a/packages/hoppscotch-common/src/helpers/backend/gql/mutations/DeleteUser.graphql b/packages/hoppscotch-common/src/helpers/backend/gql/mutations/DeleteUser.graphql new file mode 100644 index 000000000..8e529696b --- /dev/null +++ b/packages/hoppscotch-common/src/helpers/backend/gql/mutations/DeleteUser.graphql @@ -0,0 +1,3 @@ +mutation DeleteUser { + deleteUser +} diff --git a/packages/hoppscotch-common/src/helpers/backend/mutations/Profile.ts b/packages/hoppscotch-common/src/helpers/backend/mutations/Profile.ts new file mode 100644 index 000000000..82a4ddfd6 --- /dev/null +++ b/packages/hoppscotch-common/src/helpers/backend/mutations/Profile.ts @@ -0,0 +1,15 @@ +import { runMutation } from "../GQLClient" +import { + DeleteUserDocument, + DeleteUserMutation, + DeleteUserMutationVariables, +} from "../graphql" + +type DeleteUserErrors = "user/not_found" + +export const deleteUser = () => + runMutation< + DeleteUserMutation, + DeleteUserMutationVariables, + DeleteUserErrors + >(DeleteUserDocument, {}) diff --git a/packages/hoppscotch-common/src/helpers/editor/extensions/HoppEnvironment.ts b/packages/hoppscotch-common/src/helpers/editor/extensions/HoppEnvironment.ts index 735e25ead..244c26443 100644 --- a/packages/hoppscotch-common/src/helpers/editor/extensions/HoppEnvironment.ts +++ b/packages/hoppscotch-common/src/helpers/editor/extensions/HoppEnvironment.ts @@ -22,10 +22,8 @@ const HOPP_ENVIRONMENT_REGEX = /(<<[a-zA-Z0-9-_]+>>)/g const HOPP_ENV_HIGHLIGHT = "cursor-help transition rounded px-1 focus:outline-none mx-0.5 env-highlight" -const HOPP_ENV_HIGHLIGHT_FOUND = - "bg-accentDark text-accentContrast hover:bg-accent" -const HOPP_ENV_HIGHLIGHT_NOT_FOUND = - "bg-red-500 text-accentContrast hover:bg-red-600" +const HOPP_ENV_HIGHLIGHT_FOUND = "env-found" +const HOPP_ENV_HIGHLIGHT_NOT_FOUND = "env-not-found" const cursorTooltipField = (aggregateEnvs: AggregateEnvironment[]) => hoverTooltip( diff --git a/packages/hoppscotch-common/src/helpers/editor/themes/baseTheme.ts b/packages/hoppscotch-common/src/helpers/editor/themes/baseTheme.ts index 24e65634e..9896311dc 100644 --- a/packages/hoppscotch-common/src/helpers/editor/themes/baseTheme.ts +++ b/packages/hoppscotch-common/src/helpers/editor/themes/baseTheme.ts @@ -47,6 +47,7 @@ export const baseTheme = EditorView.theme({ fontFamily: "var(--font-mono)", color: "var(--secondary-dark-color)", backgroundColor: "transparent", + height: "100%", }, ".cm-cursor": { borderColor: "var(--secondary-color)", diff --git a/packages/hoppscotch-common/src/helpers/keybindings.ts b/packages/hoppscotch-common/src/helpers/keybindings.ts index d20953ab6..7afd26bed 100644 --- a/packages/hoppscotch-common/src/helpers/keybindings.ts +++ b/packages/hoppscotch-common/src/helpers/keybindings.ts @@ -56,8 +56,8 @@ export const bindings: { "alt-q": "navigation.jump.graphql", "alt-w": "navigation.jump.realtime", "alt-d": "navigation.jump.documentation", - "alt-m": "navigation.jump.profile", "alt-s": "navigation.jump.settings", + "alt-m": "navigation.jump.profile", "ctrl-shift-p": "response.preview.toggle", "ctrl-j": "response.file.download", "ctrl-.": "response.copy", diff --git a/packages/hoppscotch-common/src/index.ts b/packages/hoppscotch-common/src/index.ts index 7f09ce5c4..f27ef5624 100644 --- a/packages/hoppscotch-common/src/index.ts +++ b/packages/hoppscotch-common/src/index.ts @@ -1,4 +1,4 @@ -import { createApp } from "vue" +import { createApp, Ref } from "vue" import { setupLocalPersistence } from "./newstore/localpersistence" import { performMigrations } from "./helpers/migrations" import { initializeFirebase } from "./helpers/fb" @@ -12,7 +12,26 @@ import "nprogress/nprogress.css" import App from "./App.vue" -export function createHoppApp(el: string | Element) { +export type PlatformDef = { + ui?: { + appHeader?: { + paddingTop?: Ref + paddingLeft?: Ref + } + } +} + +/** + * Defines the fields, functions and properties that will be + * filled in by the individual platforms. + * + * This value is populated upon calling `createHoppApp` + */ +export let platform: PlatformDef + +export function createHoppApp(el: string | Element, platformDef: PlatformDef) { + platform = platformDef + const app = createApp(App) // Some basic work that needs to be done before module inits even @@ -26,11 +45,11 @@ export function createHoppApp(el: string | Element) { app.mount(el) console.info( - "%cWe ❤︎ open source!", - "background-color:white;padding:8px 16px;border-radius:8px;font-size:32px;color:red;" + "%cWE ♥️ OPEN SOURCE", + "margin:8px 0;font-family:sans-serif;font-weight:600;font-size:60px;color:violet;" ) console.info( "%cContribute: https://github.com/hoppscotch/hoppscotch", - "background-color:black;padding:4px 8px;border-radius:8px;font-size:16px;color:white;" + "margin:8px 0;font-family:sans-serif;font-weight:500;font-size:24px;color:violet;" ) } diff --git a/packages/hoppscotch-common/src/layouts/default.vue b/packages/hoppscotch-common/src/layouts/default.vue index a40e3d69e..d63fccf0b 100644 --- a/packages/hoppscotch-common/src/layouts/default.vue +++ b/packages/hoppscotch-common/src/layouts/default.vue @@ -46,6 +46,7 @@ + useI18n().t(key).toString(), + onModalOpen: disableKeybindings, + onModalClose: enableKeybindings, +} + +export default { + onVueAppInit(app) { + // disable eslint for this line. it's a hack because there's some unknown type error + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + app.use(HoppUI, HoppUIOptions) + }, +} diff --git a/packages/hoppscotch-common/src/pages/join-team.vue b/packages/hoppscotch-common/src/pages/join-team.vue index 8b7093700..65839d710 100644 --- a/packages/hoppscotch-common/src/pages/join-team.vue +++ b/packages/hoppscotch-common/src/pages/join-team.vue @@ -27,7 +27,7 @@
@@ -138,7 +138,6 @@ to="/" />
-
@@ -163,6 +162,7 @@ import { useReadonlyStream } from "@composables/stream" import { useToast } from "@composables/toast" import { useI18n } from "~/composables/i18n" import IconHome from "~icons/lucide/home" +import { invokeAction } from "~/helpers/actions" type GetInviteDetailsError = | "team_invite/not_valid_viewer" @@ -214,12 +214,12 @@ export default defineComponent({ toast: useToast(), t: useI18n(), IconHome, + invokeAction, } }, data() { return { invalidLink: false, - showLogin: false, loading: false, revokedLink: false, inviteID: "", diff --git a/packages/hoppscotch-common/src/pages/profile.vue b/packages/hoppscotch-common/src/pages/profile.vue index d6f0c9a09..600255c91 100644 --- a/packages/hoppscotch-common/src/pages/profile.vue +++ b/packages/hoppscotch-common/src/pages/profile.vue @@ -24,7 +24,7 @@
@@ -64,7 +64,7 @@ v-if="currentUser.emailVerified" v-tippy="{ theme: 'tooltip' }" :title="t('settings.verified_email')" - class="ml-2 text-green-500 svg-icons cursor-help" + class="ml-2 text-green-500 svg-icons focus:outline-none cursor-help" />
+ + +

{{ t("settings.sync") }} @@ -192,90 +195,8 @@

-
-

- {{ t("settings.short_codes") }} -

-
- {{ t("settings.short_codes_description") }} -
-
-
- - {{ - t("state.loading") - }} -
-
- - - {{ t("empty.shortcodes") }} - -
-
- -
- - -
- -
-
-
-
-
- - {{ getErrorMessage(adapterError) }} -
-
-
+ +
@@ -285,15 +206,11 @@ - - - diff --git a/packages/hoppscotch-common/windi.config.ts b/packages/hoppscotch-common/windi.config.ts index 8e391aecb..161a85969 100644 --- a/packages/hoppscotch-common/windi.config.ts +++ b/packages/hoppscotch-common/windi.config.ts @@ -1,6 +1,9 @@ import { defineConfig } from "windicss/helpers" export default defineConfig({ + extract: { + include: ["src/**/*.{vue,html}", "../hoppscotch-ui/src/**/*.{vue,html}"], + }, theme: { container: { center: true, diff --git a/packages/hoppscotch-data/package.json b/packages/hoppscotch-data/package.json index 0953213e4..7795a169c 100644 --- a/packages/hoppscotch-data/package.json +++ b/packages/hoppscotch-data/package.json @@ -34,7 +34,7 @@ "devDependencies": { "@types/lodash": "^4.14.181", "typescript": "^4.6.3", - "vite": "^3.1.0" + "vite": "^3.2.3" }, "dependencies": { "fp-ts": "^2.11.10", diff --git a/packages/hoppscotch-data/vite.config.ts b/packages/hoppscotch-data/vite.config.ts index ccc3ab06d..f41648388 100644 --- a/packages/hoppscotch-data/vite.config.ts +++ b/packages/hoppscotch-data/vite.config.ts @@ -9,9 +9,7 @@ export default defineConfig({ lib: { entry: resolve(__dirname, "src/index.ts"), fileName: "hoppscotch-data", - formats: [ - "es", "cjs" - ], - } - } + formats: ["es", "cjs"], + }, + }, }) diff --git a/packages/hoppscotch-ui/.eslintrc.js b/packages/hoppscotch-ui/.eslintrc.js new file mode 100644 index 000000000..76da7ac18 --- /dev/null +++ b/packages/hoppscotch-ui/.eslintrc.js @@ -0,0 +1,47 @@ +/* eslint-env node */ +require("@rushstack/eslint-patch/modern-module-resolution") +module.exports = { + root: true, + env: { + browser: true, + node: true, + jest: true, + }, + parserOptions: { + sourceType: "module", + requireConfigFile: false, + }, + extends: [ + "@vue/typescript/recommended", + "plugin:vue/vue3-recommended", + "plugin:prettier/recommended", + "plugin:storybook/recommended", + ], + ignorePatterns: [ + "static/**/*", + "./helpers/backend/graphql.ts", + "**/*.d.ts", + "types/**/*", + ], + plugins: ["vue", "prettier"], + // add your custom rules here + rules: { + semi: [2, "never"], + "import/named": "off", + // because, named import issue with typescript see: https://github.com/typescript-eslint/typescript-eslint/issues/154 + "no-console": "off", + "no-debugger": process.env.HOPP_LINT_FOR_PROD === "true" ? "error" : "warn", + "prettier/prettier": + process.env.HOPP_LINT_FOR_PROD === "true" ? "error" : "warn", + "vue/multi-word-component-names": "off", + "vue/no-side-effects-in-computed-properties": "off", + "import/no-named-as-default": "off", + "import/no-named-as-default-member": "off", + "@typescript-eslint/no-unused-vars": + process.env.HOPP_LINT_FOR_PROD === "true" ? "error" : "warn", + "@typescript-eslint/no-non-null-assertion": "off", + "@typescript-eslint/no-explicit-any": "off", + "import/default": "off", + "no-undef": "off", + }, +} diff --git a/packages/hoppscotch-ui/.gitignore b/packages/hoppscotch-ui/.gitignore new file mode 100644 index 000000000..2028a370c --- /dev/null +++ b/packages/hoppscotch-ui/.gitignore @@ -0,0 +1,27 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +# Environment Variables +.env diff --git a/packages/hoppscotch-ui/.prettierignore b/packages/hoppscotch-ui/.prettierignore new file mode 100644 index 000000000..ef46361f6 --- /dev/null +++ b/packages/hoppscotch-ui/.prettierignore @@ -0,0 +1,10 @@ +.dependabot +.github +.hoppscotch +.vscode +package-lock.json +node_modules +dist +static +components.d.ts +src/types diff --git a/packages/hoppscotch-ui/.prettierrc.js b/packages/hoppscotch-ui/.prettierrc.js new file mode 100644 index 000000000..8ef0f9962 --- /dev/null +++ b/packages/hoppscotch-ui/.prettierrc.js @@ -0,0 +1,3 @@ +module.exports = { + semi: false +} diff --git a/packages/hoppscotch-ui/README.md b/packages/hoppscotch-ui/README.md new file mode 100644 index 000000000..8f1885799 --- /dev/null +++ b/packages/hoppscotch-ui/README.md @@ -0,0 +1,57 @@ +
+ + + + + + + +
+ +
+ +# Hoppscotch UI + +
+ +Welcome to hoppscotch-ui, a collection of presentational components for our web applications. This library is part of the hoppscotch monorepo and contains components such as buttons, spinners, modals, tabs, windows, etc. + +## Usage + +To use the components in project, simply name the component with `directory` name as alias: + +For example `Primary Button` component is in `button` directory and the file name is `Primary.vue`. So, use that you have to write `` + +## Histoire + +We've included Histoire in this library which is similar to Storybook, to make it easy to play with the components in the browser. You can run Histoire in the browser with command + +`pnpm run story:dev` + +You can also use [Histoire](https://histoire.dev/) to create stories for your components and test them in different scenarios. + +## Versioning + +This project follows [Semantic Versioning](https://semver.org/) but as the project is still pre-1.0. The code and the public exposed API should not be considered to be fixed and stable. Things can change at any time! + +## License + +This project is licensed under the [MIT License](https://opensource.org/licenses/MIT) - see [`LICENSE`](https://github.com/hoppscotch/hoppscotch/blob/main/LICENSE) for more details. + +
+ +
+ +
+ +###### built with ❤︎ by the [Hoppscotch Team](https://github.com/hoppscotch) and [contributors](https://github.com/hoppscotch/hoppscotch/graphs/contributors). + +
diff --git a/packages/hoppscotch-ui/histoire.config.ts b/packages/hoppscotch-ui/histoire.config.ts new file mode 100644 index 000000000..3ce600279 --- /dev/null +++ b/packages/hoppscotch-ui/histoire.config.ts @@ -0,0 +1,7 @@ +import { HstVue } from "@histoire/plugin-vue" +import { defineConfig } from "histoire" + +export default defineConfig({ + setupFile: "histoire.setup.ts", + plugins: [HstVue()], +}) diff --git a/packages/hoppscotch-ui/histoire.setup.ts b/packages/hoppscotch-ui/histoire.setup.ts new file mode 100644 index 000000000..a54de6f26 --- /dev/null +++ b/packages/hoppscotch-ui/histoire.setup.ts @@ -0,0 +1,5 @@ +import "./src/assets/scss/styles.scss" +import "./src/assets/scss/themes.scss" +import "virtual:windi.css" + +export function setupVue3() {} diff --git a/packages/hoppscotch-ui/package.json b/packages/hoppscotch-ui/package.json new file mode 100644 index 000000000..cd8ae1b56 --- /dev/null +++ b/packages/hoppscotch-ui/package.json @@ -0,0 +1,82 @@ +{ + "name": "@hoppscotch/ui", + "private": true, + "version": "0.0.1", + "scripts": { + "build": "vite build", + "story:dev": "histoire dev", + "story:build": "histoire build", + "story:preview": "histoire preview" + }, + "dependencies": { + "@hoppscotch/vue-toasted": "^0.1.0", + "@lezer/highlight": "^1.0.0", + "@vitejs/plugin-legacy": "^2.3.0", + "@vueuse/core": "^8.7.5", + "@vueuse/head": "^0.7.9", + "acorn-walk": "^8.2.0", + "esprima": "^4.0.1", + "events": "^3.3.0", + "fp-ts": "^2.12.1", + "globalthis": "^1.0.3", + "lodash-es": "^4.17.21", + "path": "^0.12.7", + "rxjs": "^7.5.5", + "splitpanes": "^3.1.1", + "tern": "^0.24.3", + "timers": "^0.1.1", + "tippy.js": "^6.3.7", + "url": "^0.11.0", + "util": "^0.12.4", + "vite-plugin-eslint": "^1.8.1", + "vue": "^3.2.25", + "vue-github-button": "^3.0.3", + "vue-router": "^4.0.16", + "vue-tippy": "6.0.0-alpha.58", + "vuedraggable": "^4.1.0" + }, + "devDependencies": { + "@esbuild-plugins/node-globals-polyfill": "^0.1.1", + "@esbuild-plugins/node-modules-polyfill": "^0.1.4", + "@histoire/plugin-vue": "^0.12.4", + "@iconify-json/lucide": "^1.1.40", + "@intlify/vite-plugin-vue-i18n": "^6.0.1", + "@rushstack/eslint-patch": "^1.1.4", + "@types/lodash-es": "^4.17.6", + "@types/splitpanes": "^2.2.1", + "@typescript-eslint/eslint-plugin": "^5.19.0", + "@typescript-eslint/parser": "^5.19.0", + "@vitejs/plugin-vue": "^3.1.0", + "@vue/compiler-sfc": "^3.2.39", + "@vue/eslint-config-typescript": "^11.0.1", + "@vue/runtime-core": "^3.2.39", + "cross-env": "^7.0.3", + "eslint": "^8.24.0", + "eslint-plugin-prettier": "^4.2.0", + "eslint-plugin-vue": "^9.5.1", + "histoire": "^0.12.4", + "npm-run-all": "^4.1.5", + "rollup-plugin-polyfill-node": "^0.10.1", + "sass": "^1.53.0", + "typescript": "^4.5.4", + "unplugin-icons": "^0.14.9", + "unplugin-vue-components": "^0.21.0", + "vite": "^3.2.3", + "vite-plugin-checker": "^0.5.1", + "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", + "vite-plugin-pages-sitemap": "^1.4.0", + "vite-plugin-pwa": "^0.13.1", + "vite-plugin-vue-layouts": "^0.7.0", + "vite-plugin-windicss": "^1.8.8", + "vue-loader": "^16.8.3", + "vue-tsc": "^0.38.2", + "windicss": "^3.5.6" + }, + "files": [ + "src", + "dist" + ] +} diff --git a/packages/hoppscotch-ui/src/assets/scss/styles.scss b/packages/hoppscotch-ui/src/assets/scss/styles.scss new file mode 100644 index 000000000..9aaf1b411 --- /dev/null +++ b/packages/hoppscotch-ui/src/assets/scss/styles.scss @@ -0,0 +1,562 @@ +* { + @apply backface-hidden; + @apply before:backface-hidden; + @apply after:backface-hidden; + @apply selection:bg-accentDark; + @apply selection:text-accentContrast; +} + +:root { + @apply antialiased; + accent-color: var(--accent-color); + font-variant-ligatures: common-ligatures; +} + +::-webkit-scrollbar-track { + @apply bg-transparent; + @apply border-solid border-l border-dividerLight border-t-0 border-b-0 border-r-0; +} + +::-webkit-scrollbar-thumb { + @apply bg-divider bg-clip-content; + @apply rounded-full; + @apply border-solid border-transparent border-4; + @apply hover:bg-dividerDark; + @apply hover:bg-clip-content; +} + +::-webkit-scrollbar { + @apply w-4; + @apply h-0; +} + +input::placeholder, +textarea::placeholder, +.cm-placeholder { + @apply text-secondary; + @apply opacity-35; +} + +input, +textarea { + @apply text-secondaryDark; + @apply font-medium; +} + +html { + scroll-behavior: smooth; +} + +body { + @apply bg-primary; + @apply text-secondary text-body; + @apply font-medium; + @apply select-none; + @apply overflow-x-hidden; + @apply leading-body; + animation: fade 300ms forwards; + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; +} + +@keyframes fade { + 0% { + @apply opacity-0; + } + + 100% { + @apply opacity-100; + } +} + +.fade-enter-active, +.fade-leave-active { + @apply transition-opacity; +} + +.fade-enter-from, +.fade-leave-to { + @apply opacity-0; +} + +.slide-enter-active, +.slide-leave-active { + @apply transition; + @apply duration-300; +} + +.slide-enter-from, +.slide-leave-to { + @apply transform; + @apply translate-x-full; +} + +.bounce-enter-active, +.bounce-leave-active { + @apply transition; +} + +.bounce-enter-from, +.bounce-leave-to { + @apply transform; + @apply scale-95; +} + +.svg-icons { + @apply flex-shrink-0; + @apply overflow-hidden; + height: var(--line-height-body); + width: var(--line-height-body); +} + +a { + @apply inline-flex; + @apply text-current; + @apply no-underline; + @apply transition; + @apply leading-body; + @apply focus:outline-none; + + &.link { + @apply items-center; + @apply py-0.5 px-1; + @apply -my-0.5 -mx-1; + @apply text-accent; + @apply rounded; + @apply hover:text-accentDark; + @apply focus-visible:ring; + @apply focus-visible:ring-accent; + @apply focus-visible:text-accentDark; + } +} + +.cm-tooltip { + .tippy-box { + @apply shadow-none; + @apply fixed; + @apply inline-flex; + @apply -mt-6; + } +} + +.tippy-box[data-theme~="tooltip"] { + @apply bg-tooltip; + @apply border-solid border-tooltip; + @apply rounded; + @apply shadow; + + .tippy-content { + @apply flex; + @apply text-tiny text-primary; + @apply font-semibold; + @apply py-1 px-2; + @apply truncate; + @apply leading-normal; + @apply items-center; + + kbd { + @apply hidden; + @apply font-sans; + @apply bg-gray-500/45; + @apply text-primaryLight; + @apply rounded-sm; + @apply px-1; + @apply my-0 ml-1; + @apply truncate; + @apply sm:inline-flex; + } + + .env-icon { + @apply transition; + @apply inline-flex; + @apply items-center; + } + } + + .tippy-svg-arrow { + svg:first-child { + @apply fill-tooltip; + } + + svg:last-child { + @apply fill-tooltip; + } + } +} + +.tippy-box[data-theme~="popover"] { + @apply bg-popover; + @apply border-solid border-dividerDark; + @apply rounded; + @apply shadow-lg; + + .tippy-content { + @apply flex flex-col; + @apply max-h-56; + @apply items-stretch; + @apply overflow-y-auto; + @apply text-secondary text-body; + @apply p-2; + @apply leading-normal; + @apply focus:outline-none; + scroll-behavior: smooth; + } + + .tippy-svg-arrow { + svg:first-child { + @apply fill-dividerDark; + } + + svg:last-child { + @apply fill-popover; + } + } +} + +[data-v-tippy] { + @apply flex flex-1; +} + +[interactive] > div { + @apply flex flex-1; + @apply h-full; +} + +hr { + @apply border-b border-dividerLight; + @apply my-2; +} + +.heading { + @apply font-bold; + @apply text-secondaryDark text-lg; + @apply tracking-tight; +} + +.input, +.select, +.textarea { + @apply flex; + @apply w-full; + @apply py-2 px-4; + @apply bg-transparent; + @apply rounded; + @apply text-secondaryDark; + @apply border border-divider; + @apply focus-visible:border-dividerDark; +} + +input, +select, +textarea, +button { + @apply truncate; + @apply transition; + @apply text-body; + @apply leading-body; + @apply focus:outline-none; + @apply disabled:cursor-not-allowed; +} + +.input[type="file"], +.input[type="radio"], +#installPWA { + @apply hidden; +} + +.floating-input ~ label { + @apply absolute; + @apply px-2 py-0.5; + @apply m-2; + @apply rounded; + @apply transition; + @apply origin-top-left; +} + +.floating-input:focus-within ~ label, +.floating-input:not(:placeholder-shown) ~ label { + @apply bg-primary; + @apply transform; + @apply origin-top-left; + @apply scale-75; + @apply translate-x-1 -translate-y-4; +} + +.floating-input:focus-within ~ label { + @apply text-secondaryDark; +} + +.floating-input ~ .end-actions { + @apply absolute; + @apply right-0.2; + @apply inset-y-0; + @apply flex; + @apply items-center; +} + +.floating-input:has(~ .end-actions) { + @apply pr-12; +} + +pre.ace_editor { + @apply font-mono; + @apply resize-none; + @apply z-0; +} + +.select { + @apply appearance-none; + @apply cursor-pointer; + + &::-ms-expand { + @apply hidden; + } +} + +.select-wrapper { + @apply flex flex-1; + @apply relative; + @apply after:absolute; + @apply after:flex; + @apply after:inset-y-0; + @apply after:items-center; + @apply after:justify-center; + @apply after:pointer-events-none; + @apply after:font-icon; + @apply after:text-secondaryLight; + @apply after:right-3; + @apply after:content-["\e313"]; +} + +.info-response { + @apply text-pink-500; +} + +.success-response { + @apply text-green-500; +} + +.redir-response { + @apply text-yellow-500; +} + +.cl-error-response { + @apply text-red-500; +} + +.sv-error-response { + @apply text-red-600; +} + +.missing-data-response { + @apply text-secondaryLight; +} + +.toasted-container { + @apply max-w-md; + + .toasted { + &.toasted-primary { + @apply px-4 py-2; + @apply bg-tooltip; + @apply border-secondaryDark; + @apply text-primary text-body; + @apply justify-between; + @apply shadow-lg; + @apply font-semibold; + @apply transition; + @apply leading-body; + @apply sm:rounded; + @apply sm:border; + + .action { + @apply relative; + @apply flex flex-shrink-0; + @apply text-body; + @apply px-4; + @apply my-1; + @apply ml-auto; + @apply normal-case; + @apply font-semibold; + @apply leading-body; + @apply tracking-normal; + @apply rounded; + @apply last:ml-4; + @apply sm:ml-8; + @apply before:absolute; + @apply before:bg-current; + @apply before:opacity-10; + @apply before:inset-0; + @apply before:transition; + @apply before:content-DEFAULT; + @apply hover:no-underline; + @apply hover:before:opacity-20; + } + } + + &.info { + @apply bg-accent; + @apply text-accentContrast; + @apply border-accentDark; + } + + &.error { + @apply bg-red-200; + @apply text-red-800; + @apply border-red-400; + } + + &.success { + @apply bg-green-200; + @apply text-green-800; + @apply border-green-400; + } + } +} + +.smart-splitter .splitpanes__splitter { + @apply relative; + @apply bg-primaryLight; + @apply before:absolute; + @apply before:inset-0; + @apply before:bg-accentLight; + @apply before:opacity-0; + @apply before:z-20; + @apply before:transition; + @apply before:content-DEFAULT; + @apply after:absolute; + @apply after:inset-0; + @apply after:z-20; + @apply after:transition; + @apply after:flex; + @apply after:items-center; + @apply after:justify-center; + @apply after:text-dividerDark; + @apply after:font-icon; + @apply hover:before:opacity-100; + @apply hover:after:text-accentDark; +} + +.no-splitter .splitpanes__splitter { + @apply relative; + @apply bg-primaryLight; +} + +.smart-splitter.splitpanes--vertical > .splitpanes__splitter { + @apply w-1; + @apply before:-left-0.5; + @apply before:-right-0.5; + @apply before:h-full; + @apply after:content-["\e5d4"]; +} + +.smart-splitter.splitpanes--horizontal > .splitpanes__splitter { + @apply h-1; + @apply before:-top-0.5; + @apply before:-bottom-0.5; + @apply before:w-full; + @apply after:content-["\e5d3"]; +} + +.no-splitter.splitpanes--vertical > .splitpanes__splitter { + @apply w-0.5; + @apply pointer-events-none; +} + +.no-splitter.splitpanes--horizontal > .splitpanes__splitter { + @apply h-0.5; + @apply pointer-events-none; +} + +.cm-focused { + @apply select-auto; + @apply outline-none #{!important}; + + .cm-activeLine { + @apply bg-primaryLight; + } + + .cm-activeLineGutter { + @apply bg-primaryDark; + } +} + +.cm-editor { + .cm-line::selection { + @apply bg-accentDark #{!important}; + @apply text-accentContrast #{!important}; + } + + .cm-line ::selection { + @apply bg-accentDark #{!important}; + @apply text-accentContrast #{!important}; + } +} + +.shortcut-key { + @apply inline-flex; + @apply font-sans; + @apply text-tiny; + @apply bg-divider; + @apply rounded; + @apply ml-2; + @apply px-1; + @apply min-w-5; + @apply min-h-5; + @apply items-center; + @apply justify-center; + @apply border border-dividerDark; + @apply shadow-sm; + @apply diff --git a/packages/hoppscotch-common/src/components/smart/FileChip.vue b/packages/hoppscotch-ui/src/components/smart/FileChip.vue similarity index 100% rename from packages/hoppscotch-common/src/components/smart/FileChip.vue rename to packages/hoppscotch-ui/src/components/smart/FileChip.vue diff --git a/packages/hoppscotch-common/src/components/smart/Intersection.vue b/packages/hoppscotch-ui/src/components/smart/Intersection.vue similarity index 100% rename from packages/hoppscotch-common/src/components/smart/Intersection.vue rename to packages/hoppscotch-ui/src/components/smart/Intersection.vue diff --git a/packages/hoppscotch-common/src/components/smart/Item.vue b/packages/hoppscotch-ui/src/components/smart/Item.vue similarity index 100% rename from packages/hoppscotch-common/src/components/smart/Item.vue rename to packages/hoppscotch-ui/src/components/smart/Item.vue diff --git a/packages/hoppscotch-common/src/components/smart/Link.vue b/packages/hoppscotch-ui/src/components/smart/Link.vue similarity index 98% rename from packages/hoppscotch-common/src/components/smart/Link.vue rename to packages/hoppscotch-ui/src/components/smart/Link.vue index 708a6f3dc..be99d870b 100644 --- a/packages/hoppscotch-common/src/components/smart/Link.vue +++ b/packages/hoppscotch-ui/src/components/smart/Link.vue @@ -45,7 +45,6 @@ export default { diff --git a/packages/hoppscotch-ui/src/stories/Button.story.vue b/packages/hoppscotch-ui/src/stories/Button.story.vue new file mode 100644 index 000000000..e233967c8 --- /dev/null +++ b/packages/hoppscotch-ui/src/stories/Button.story.vue @@ -0,0 +1,10 @@ + diff --git a/packages/hoppscotch-ui/src/stories/Checkbox.story.vue b/packages/hoppscotch-ui/src/stories/Checkbox.story.vue new file mode 100644 index 000000000..bfc1c37fa --- /dev/null +++ b/packages/hoppscotch-ui/src/stories/Checkbox.story.vue @@ -0,0 +1,13 @@ + + + diff --git a/packages/hoppscotch-ui/src/stories/ConfirmModal.story.vue b/packages/hoppscotch-ui/src/stories/ConfirmModal.story.vue new file mode 100644 index 000000000..186a9f6fc --- /dev/null +++ b/packages/hoppscotch-ui/src/stories/ConfirmModal.story.vue @@ -0,0 +1,21 @@ + + + diff --git a/packages/hoppscotch-ui/src/stories/Item.story.vue b/packages/hoppscotch-ui/src/stories/Item.story.vue new file mode 100644 index 000000000..875f460ef --- /dev/null +++ b/packages/hoppscotch-ui/src/stories/Item.story.vue @@ -0,0 +1,7 @@ + diff --git a/packages/hoppscotch-ui/src/stories/Link.story.vue b/packages/hoppscotch-ui/src/stories/Link.story.vue new file mode 100644 index 000000000..74f579d5a --- /dev/null +++ b/packages/hoppscotch-ui/src/stories/Link.story.vue @@ -0,0 +1,18 @@ + + + diff --git a/packages/hoppscotch-ui/src/stories/Modal.story.vue b/packages/hoppscotch-ui/src/stories/Modal.story.vue new file mode 100644 index 000000000..ebfb081c5 --- /dev/null +++ b/packages/hoppscotch-ui/src/stories/Modal.story.vue @@ -0,0 +1,21 @@ + + + diff --git a/packages/hoppscotch-ui/src/stories/ProgressRing.story.vue b/packages/hoppscotch-ui/src/stories/ProgressRing.story.vue new file mode 100644 index 000000000..585699ff0 --- /dev/null +++ b/packages/hoppscotch-ui/src/stories/ProgressRing.story.vue @@ -0,0 +1,15 @@ + + + diff --git a/packages/hoppscotch-ui/src/stories/Radio.story.vue b/packages/hoppscotch-ui/src/stories/Radio.story.vue new file mode 100644 index 000000000..778065843 --- /dev/null +++ b/packages/hoppscotch-ui/src/stories/Radio.story.vue @@ -0,0 +1,21 @@ + + + diff --git a/packages/hoppscotch-ui/src/stories/SlideOver.story.vue b/packages/hoppscotch-ui/src/stories/SlideOver.story.vue new file mode 100644 index 000000000..aef073dcb --- /dev/null +++ b/packages/hoppscotch-ui/src/stories/SlideOver.story.vue @@ -0,0 +1,15 @@ + + + diff --git a/packages/hoppscotch-ui/src/stories/Spinner.story.vue b/packages/hoppscotch-ui/src/stories/Spinner.story.vue new file mode 100644 index 000000000..0129f530f --- /dev/null +++ b/packages/hoppscotch-ui/src/stories/Spinner.story.vue @@ -0,0 +1,5 @@ + diff --git a/packages/hoppscotch-ui/src/stories/Tab.story.vue b/packages/hoppscotch-ui/src/stories/Tab.story.vue new file mode 100644 index 000000000..28415baec --- /dev/null +++ b/packages/hoppscotch-ui/src/stories/Tab.story.vue @@ -0,0 +1,20 @@ + + + diff --git a/packages/hoppscotch-ui/src/stories/Toggle.story.vue b/packages/hoppscotch-ui/src/stories/Toggle.story.vue new file mode 100644 index 000000000..e1decb8bf --- /dev/null +++ b/packages/hoppscotch-ui/src/stories/Toggle.story.vue @@ -0,0 +1,15 @@ + + + diff --git a/packages/hoppscotch-ui/src/stories/Window.story.vue b/packages/hoppscotch-ui/src/stories/Window.story.vue new file mode 100644 index 000000000..69744ce9e --- /dev/null +++ b/packages/hoppscotch-ui/src/stories/Window.story.vue @@ -0,0 +1,72 @@ + + + diff --git a/packages/hoppscotch-ui/tsconfig.json b/packages/hoppscotch-ui/tsconfig.json new file mode 100644 index 000000000..c37c3ba3a --- /dev/null +++ b/packages/hoppscotch-ui/tsconfig.json @@ -0,0 +1,34 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "module": "ESNext", + "moduleResolution": "Node", + "strict": true, + "jsx": "preserve", + "sourceMap": true, + "resolveJsonModule": true, + "isolatedModules": true, + "esModuleInterop": true, + "lib": ["ESNext", "DOM"], + "skipLibCheck": true, + "noUnusedLocals": true, + "paths": { + "~/*": ["./src/*"], + "@composables/*": ["./src/composables/*"], + "@components/*": ["./src/components/*"], + "@helpers/*": ["./src/helpers/*"], + "@modules/*": ["./src/modules/*"], + "@workers/*": ["./src/workers/*"], + "@functional/*": ["./src/helpers/functional/*"] + }, + "types": [ + "vite/client", + "unplugin-icons/types/vue", + "vite-plugin-pages/client", + "vite-plugin-vue-layouts/client", + "vite-plugin-pwa/client" + ] + }, + "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"] +} diff --git a/packages/hoppscotch-ui/vite.config.ts b/packages/hoppscotch-ui/vite.config.ts new file mode 100644 index 000000000..e9492e16f --- /dev/null +++ b/packages/hoppscotch-ui/vite.config.ts @@ -0,0 +1,60 @@ +import vue from "@vitejs/plugin-vue" +import path from "path" +import { FileSystemIconLoader } from "unplugin-icons/loaders" +import IconResolver from "unplugin-icons/resolver" +import Icons from "unplugin-icons/vite" +import Components from "unplugin-vue-components/vite" +import { defineConfig } from "vite" +import WindiCSS from "vite-plugin-windicss" + +module.exports = defineConfig({ + plugins: [ + vue(), + WindiCSS({ + root: path.resolve(__dirname), + }), + Components({ + dts: "./src/components.d.ts", + dirs: ["./src/components"], + directoryAsNamespace: true, + resolvers: [ + IconResolver({ + prefix: "icon", + customCollections: ["hopp", "auth", "brands"], + }), + ], + }), + Icons({ + compiler: "vue3", + customCollections: { + hopp: FileSystemIconLoader("../hoppscotch-common/assets/icons"), + auth: FileSystemIconLoader("../hoppscotch-common/assets/icons/auth"), + brands: FileSystemIconLoader( + "../hoppscotch-common/assets/icons/brands" + ), + }, + }), + ], // to process SFC + build: { + lib: { + entry: path.resolve(__dirname, "src/index.ts"), + name: "hopp-ui", + formats: ["es"], // adding 'umd' requires globals set to every external module + fileName: (format) => `hopp-ui.${format}.js`, + }, + rollupOptions: { + // external modules won't be bundled into HoppUI library + external: ["vue"], // not every external has a global + output: { + // disable warning on src/index.ts using both default and named export + exports: "named", + // Provide global variables to use in the UMD build + // for externalized deps (not useful if 'umd' is not in lib.formats) + globals: { + vue: "Vue", + }, + }, + }, + emptyOutDir: false, // to retain the types folder generated by tsc + }, +}) diff --git a/packages/hoppscotch-ui/windi.config.ts b/packages/hoppscotch-ui/windi.config.ts new file mode 100644 index 000000000..8e391aecb --- /dev/null +++ b/packages/hoppscotch-ui/windi.config.ts @@ -0,0 +1,65 @@ +import { defineConfig } from "windicss/helpers" + +export default defineConfig({ + theme: { + container: { + center: true, + }, + extend: { + inset: { + upperPrimaryStickyFold: "var(--upper-primary-sticky-fold)", + upperSecondaryStickyFold: "var(--upper-secondary-sticky-fold)", + upperTertiaryStickyFold: "var(--upper-tertiary-sticky-fold)", + upperMobilePrimaryStickyFold: "var(--upper-mobile-primary-sticky-fold)", + upperMobileSecondaryStickyFold: + "var(--upper-mobile-secondary-sticky-fold)", + upperMobileStickyFold: "var(--upper-mobile-sticky-fold)", + upperMobileTertiaryStickyFold: + "var(--upper-mobile-tertiary-sticky-fold)", + lowerPrimaryStickyFold: "var(--lower-primary-sticky-fold)", + lowerSecondaryStickyFold: "var(--lower-secondary-sticky-fold)", + lowerTertiaryStickyFold: "var(--lower-tertiary-sticky-fold)", + sidebarPrimaryStickyFold: "var(--sidebar-primary-sticky-fold)", + }, + colors: { + primary: "var(--primary-color)", + primaryLight: "var(--primary-light-color)", + primaryDark: "var(--primary-dark-color)", + primaryContrast: "var(--primary-contrast-color)", + secondary: "var(--secondary-color)", + secondaryLight: "var(--secondary-light-color)", + secondaryDark: "var(--secondary-dark-color)", + accent: "var(--accent-color)", + accentLight: "var(--accent-light-color)", + accentDark: "var(--accent-dark-color)", + accentContrast: "var(--accent-contrast-color)", + divider: "var(--divider-color)", + dividerLight: "var(--divider-light-color)", + dividerDark: "var(--divider-dark-color)", + error: "var(--error-color)", + tooltip: "var(--tooltip-color)", + popover: "var(--popover-color)", + gradientFrom: "var(--gradient-from-color)", + gradientVia: "var(--gradient-via-color)", + gradientTo: "var(--gradient-to-color)", + }, + fontFamily: { + sans: "var(--font-sans)", + mono: "var(--font-mono)", + icon: "var(--font-icon)", + }, + fontSize: { + tiny: "var(--font-size-tiny)", + body: "var(--font-size-body)", + }, + lineHeight: { + body: "var(--line-height-body)", + }, + cursor: { + nsResize: "ns-resize", + grab: "grab", + grabbing: "grabbing", + }, + }, + }, +}) diff --git a/packages/hoppscotch-web/.gitignore b/packages/hoppscotch-web/.gitignore index a547bf36d..5b70e816d 100644 --- a/packages/hoppscotch-web/.gitignore +++ b/packages/hoppscotch-web/.gitignore @@ -22,3 +22,6 @@ dist-ssr *.njsproj *.sln *.sw? + +# Sitemap Generation Artifacts (see vite.config.ts) +.sitemap-gen diff --git a/packages/hoppscotch-web/package.json b/packages/hoppscotch-web/package.json index 5f5b20ef4..99c153c8c 100644 --- a/packages/hoppscotch-web/package.json +++ b/packages/hoppscotch-web/package.json @@ -49,6 +49,7 @@ "vite-plugin-pages": "^0.26.0", "vite-plugin-pages-sitemap": "^1.4.0", "vite-plugin-pwa": "^0.13.1", + "vite-plugin-static-copy": "^0.12.0", "vite-plugin-vue-layouts": "^0.7.0", "vite-plugin-windicss": "^1.8.8", "vue-tsc": "^1.0.9", diff --git a/packages/hoppscotch-web/src/main.ts b/packages/hoppscotch-web/src/main.ts index 18dcfea16..70b880b27 100644 --- a/packages/hoppscotch-web/src/main.ts +++ b/packages/hoppscotch-web/src/main.ts @@ -1,3 +1,3 @@ import { createHoppApp } from "@hoppscotch/common" -createHoppApp("#app") +createHoppApp("#app", {}) diff --git a/packages/hoppscotch-web/vite.config.ts b/packages/hoppscotch-web/vite.config.ts index 7ad79b9ae..e2ebbff90 100644 --- a/packages/hoppscotch-web/vite.config.ts +++ b/packages/hoppscotch-web/vite.config.ts @@ -1,6 +1,7 @@ -import { defineConfig, loadEnv } from "vite" +import { defineConfig, loadEnv, normalizePath } from "vite" import { APP_INFO, META_TAGS } from "./meta" -// import generateSitemap from "vite-plugin-pages-sitemap" +import { viteStaticCopy as StaticCopy } from "vite-plugin-static-copy" +import generateSitemap from "vite-plugin-pages-sitemap" import HtmlConfig from "vite-plugin-html-config" import Vue from "@vitejs/plugin-vue" import VueI18n from "@intlify/vite-plugin-vue-i18n" @@ -73,16 +74,25 @@ export default defineConfig({ routeStyle: "nuxt", dirs: "../hoppscotch-common/src/pages", importMode: "async", - onRoutesGenerated() { - // TODO: Figure this out ? - // return generateSitemap({ - // routes, - // nuxtStyle: true, - // allowRobots: true, - // hostname: ENV.VITE_BASE_URL, - // }) + onRoutesGenerated(routes) { + // HACK: See: https://github.com/jbaubree/vite-plugin-pages-sitemap/issues/173 + return ((generateSitemap as any).default as typeof generateSitemap)({ + routes, + nuxtStyle: true, + allowRobots: true, + dest: ".sitemap-gen", + hostname: ENV.VITE_BASE_URL, + }) }, }), + StaticCopy({ + targets: [ + { + src: normalizePath(path.resolve(__dirname, "./.sitemap-gen/*")), + dest: normalizePath(path.resolve(__dirname, "./dist")), + }, + ], + }), Layouts({ layoutsDirs: "../hoppscotch-common/src/layouts", defaultLayout: "default", @@ -97,7 +107,10 @@ export default defineConfig({ }), Components({ dts: "../hoppscotch-common/src/components.d.ts", - dirs: ["../hoppscotch-common/src/components"], + dirs: [ + "../hoppscotch-common/src/components", + "../hoppscotch-ui/src/components", + ], directoryAsNamespace: true, resolvers: [ IconResolver({ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0f3500dda..af865ac57 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,22 +52,31 @@ importers: '@nestjs/platform-express': ^9.2.1 '@nestjs/schematics': ^9.0.3 '@nestjs/testing': ^9.2.1 + '@prisma/client': ^4.7.1 + '@relmify/jest-fp-ts': ^2.0.2 '@types/express': ^4.17.14 - '@types/jest': 29.2.3 + '@types/jest': ^27.5.2 '@types/node': ^18.11.10 '@types/supertest': ^2.0.12 '@typescript-eslint/eslint-plugin': ^5.45.0 '@typescript-eslint/parser': ^5.45.0 apollo-server-express: ^3.11.1 + apollo-server-plugin-base: ^3.7.1 eslint: ^8.29.0 eslint-config-prettier: ^8.5.0 eslint-plugin-prettier: ^4.2.1 + express: ^4.17.1 + fp-ts: ^2.13.1 graphql: ^15.5.0 + graphql-query-complexity: ^0.12.0 graphql-redis-subscriptions: ^2.5.0 graphql-subscriptions: ^2.0.0 + io-ts: ^2.2.16 ioredis: ^5.2.4 - jest: 29.3.1 + jest: ^29.3.1 + jest-mock-extended: ^3.0.1 prettier: ^2.8.0 + prisma: ^4.7.1 reflect-metadata: ^0.1.13 rimraf: ^3.0.2 rxjs: ^7.6.0 @@ -84,11 +93,18 @@ importers: '@nestjs/core': 9.2.1_ajc4cvdydchgvxyi4xnoij5t4i '@nestjs/graphql': 10.1.6_2khsk5ahlt4vlkrgib4soffmwu '@nestjs/platform-express': 9.2.1_hjcqpoaebdr7gdo5hgc22hthbe - apollo-server-express: 3.11.1_graphql@15.8.0 + '@prisma/client': 4.9.0_prisma@4.9.0 + apollo-server-express: 3.11.1_4mq2c443wwzwcb6dpxnwkfvrzm + apollo-server-plugin-base: 3.7.1_graphql@15.8.0 + express: 4.18.2 + fp-ts: 2.13.1 graphql: 15.8.0 + graphql-query-complexity: 0.12.0_graphql@15.8.0 graphql-redis-subscriptions: 2.5.0_nsv4zbviaf54hk5nfhl4slig7i graphql-subscriptions: 2.0.0_graphql@15.8.0 + io-ts: 2.2.16_fp-ts@2.13.1 ioredis: 5.2.4 + prisma: 4.9.0 reflect-metadata: 0.1.13 rimraf: 3.0.2 rxjs: 7.6.0 @@ -96,8 +112,9 @@ importers: '@nestjs/cli': 9.1.5 '@nestjs/schematics': 9.0.3_typescript@4.9.3 '@nestjs/testing': 9.2.1_wdbvfsxfdwzlwdfiyh2gynjl4m + '@relmify/jest-fp-ts': 2.0.2_fp-ts@2.13.1+io-ts@2.2.16 '@types/express': 4.17.14 - '@types/jest': 29.2.3 + '@types/jest': 27.5.2 '@types/node': 18.11.10 '@types/supertest': 2.0.12 '@typescript-eslint/eslint-plugin': 5.45.0_yjegg5cyoezm3fzsmuszzhetym @@ -106,6 +123,7 @@ importers: eslint-config-prettier: 8.5.0_eslint@8.29.0 eslint-plugin-prettier: 4.2.1_nrhoyyjffvfyk4vtlt5destxgm jest: 29.3.1_j5wyyouvf5aixckc7ltaxrydha + jest-mock-extended: 3.0.1_4f6uxrzmuwipl5rr3bcogf6k74 prettier: 2.8.0 source-map-support: 0.5.21 supertest: 6.3.2 @@ -192,6 +210,7 @@ importers: '@hoppscotch/codemirror-lang-graphql': workspace:^0.2.0 '@hoppscotch/data': workspace:^0.4.4 '@hoppscotch/js-sandbox': workspace:^2.1.0 + '@hoppscotch/ui': workspace:^0.0.1 '@hoppscotch/vue-toasted': ^0.1.0 '@iconify-json/lucide': ^1.1.40 '@intlify/vite-plugin-vue-i18n': ^6.0.1 @@ -295,11 +314,11 @@ importers: yargs-parser: ^21.1.1 dependencies: '@apidevtools/swagger-parser': 10.1.0_openapi-types@12.0.0 - '@codemirror/autocomplete': 6.0.3 + '@codemirror/autocomplete': 6.0.3_2tvhcfwni47fhspxv36jamkaqi '@codemirror/commands': 6.0.1 '@codemirror/lang-javascript': 6.0.1 '@codemirror/lang-json': 6.0.0 - '@codemirror/lang-xml': 6.0.0 + '@codemirror/lang-xml': 6.0.0_@codemirror+view@6.0.2 '@codemirror/language': 6.2.0 '@codemirror/legacy-modes': 6.1.0 '@codemirror/lint': 6.0.0 @@ -309,6 +328,7 @@ importers: '@hoppscotch/codemirror-lang-graphql': link:../codemirror-lang-graphql '@hoppscotch/data': link:../hoppscotch-data '@hoppscotch/js-sandbox': link:../hoppscotch-js-sandbox + '@hoppscotch/ui': link:../hoppscotch-ui '@hoppscotch/vue-toasted': 0.1.0_vue@3.2.37 '@lezer/highlight': 1.0.0 '@sentry/tracing': 7.13.0 @@ -416,7 +436,7 @@ importers: vite-plugin-inspect: 0.7.4_vite@3.1.4 vite-plugin-pages: 0.26.0_vnheu5mvzzbfbuhqo4shkhdhei vite-plugin-pages-sitemap: 1.4.0 - vite-plugin-pwa: 0.13.1_vite@3.1.4 + vite-plugin-pwa: 0.13.1_bg4cnt4dy3xq3a47wkujd6ryzq vite-plugin-vue-layouts: 0.7.0_oewzdqozxqnqgsrjzmwikx34vi vite-plugin-windicss: 1.8.8_vite@3.1.4 vue-tsc: 0.38.2_typescript@4.7.4 @@ -430,7 +450,7 @@ importers: lodash: ^4.17.21 parser-ts: ^0.6.16 typescript: ^4.6.3 - vite: ^3.1.0 + vite: ^3.2.3 dependencies: fp-ts: 2.12.1 io-ts: 2.2.16_fp-ts@2.12.1 @@ -439,7 +459,7 @@ importers: devDependencies: '@types/lodash': 4.14.182 typescript: 4.7.4 - vite: 3.1.0 + vite: 3.2.4 packages/hoppscotch-js-sandbox: specifiers: @@ -486,6 +506,137 @@ importers: ts-jest: 27.1.5_mqaoisgizytgigbr3gbjwvnjie typescript: 4.7.4 + packages/hoppscotch-ui: + specifiers: + '@esbuild-plugins/node-globals-polyfill': ^0.1.1 + '@esbuild-plugins/node-modules-polyfill': ^0.1.4 + '@histoire/plugin-vue': ^0.12.4 + '@hoppscotch/vue-toasted': ^0.1.0 + '@iconify-json/lucide': ^1.1.40 + '@intlify/vite-plugin-vue-i18n': ^6.0.1 + '@lezer/highlight': ^1.0.0 + '@rushstack/eslint-patch': ^1.1.4 + '@types/lodash-es': ^4.17.6 + '@types/splitpanes': ^2.2.1 + '@typescript-eslint/eslint-plugin': ^5.19.0 + '@typescript-eslint/parser': ^5.19.0 + '@vitejs/plugin-legacy': ^2.3.0 + '@vitejs/plugin-vue': ^3.1.0 + '@vue/compiler-sfc': ^3.2.39 + '@vue/eslint-config-typescript': ^11.0.1 + '@vue/runtime-core': ^3.2.39 + '@vueuse/core': ^8.7.5 + '@vueuse/head': ^0.7.9 + acorn-walk: ^8.2.0 + cross-env: ^7.0.3 + eslint: ^8.24.0 + eslint-plugin-prettier: ^4.2.0 + eslint-plugin-vue: ^9.5.1 + esprima: ^4.0.1 + events: ^3.3.0 + fp-ts: ^2.12.1 + globalthis: ^1.0.3 + histoire: ^0.12.4 + lodash-es: ^4.17.21 + npm-run-all: ^4.1.5 + path: ^0.12.7 + rollup-plugin-polyfill-node: ^0.10.1 + rxjs: ^7.5.5 + sass: ^1.53.0 + splitpanes: ^3.1.1 + tern: ^0.24.3 + timers: ^0.1.1 + tippy.js: ^6.3.7 + typescript: ^4.5.4 + unplugin-icons: ^0.14.9 + unplugin-vue-components: ^0.21.0 + url: ^0.11.0 + util: ^0.12.4 + vite: ^3.2.3 + vite-plugin-checker: ^0.5.1 + vite-plugin-eslint: ^1.8.1 + 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 + vite-plugin-pages-sitemap: ^1.4.0 + vite-plugin-pwa: ^0.13.1 + vite-plugin-vue-layouts: ^0.7.0 + vite-plugin-windicss: ^1.8.8 + vue: ^3.2.25 + vue-github-button: ^3.0.3 + vue-loader: ^16.8.3 + vue-router: ^4.0.16 + vue-tippy: 6.0.0-alpha.58 + vue-tsc: ^0.38.2 + vuedraggable: ^4.1.0 + windicss: ^3.5.6 + dependencies: + '@hoppscotch/vue-toasted': 0.1.0_vue@3.2.45 + '@lezer/highlight': 1.0.0 + '@vitejs/plugin-legacy': 2.3.0_vite@3.2.4 + '@vueuse/core': 8.7.5_vue@3.2.45 + '@vueuse/head': 0.7.9_vue@3.2.45 + acorn-walk: 8.2.0 + esprima: 4.0.1 + events: 3.3.0 + fp-ts: 2.13.1 + globalthis: 1.0.3 + lodash-es: 4.17.21 + path: 0.12.7 + rxjs: 7.6.0 + splitpanes: 3.1.1 + tern: 0.24.3 + timers: 0.1.1 + tippy.js: 6.3.7 + url: 0.11.0 + util: 0.12.4 + vite-plugin-eslint: 1.8.1_eslint@8.29.0+vite@3.2.4 + vue: 3.2.45 + vue-github-button: 3.0.3 + vue-router: 4.1.0_vue@3.2.45 + vue-tippy: 6.0.0-alpha.58_vue@3.2.45 + vuedraggable: 4.1.0_vue@3.2.45 + devDependencies: + '@esbuild-plugins/node-globals-polyfill': 0.1.1 + '@esbuild-plugins/node-modules-polyfill': 0.1.4 + '@histoire/plugin-vue': 0.12.4_3ztk7oukhtctodvtf5427xwgjy + '@iconify-json/lucide': 1.1.40 + '@intlify/vite-plugin-vue-i18n': 6.0.1_vite@3.2.4 + '@rushstack/eslint-patch': 1.1.4 + '@types/lodash-es': 4.17.6 + '@types/splitpanes': 2.2.1 + '@typescript-eslint/eslint-plugin': 5.45.0_yjegg5cyoezm3fzsmuszzhetym + '@typescript-eslint/parser': 5.45.0_s5ps7njkmjlaqajutnox5ntcla + '@vitejs/plugin-vue': 3.2.0_vite@3.2.4+vue@3.2.45 + '@vue/compiler-sfc': 3.2.45 + '@vue/eslint-config-typescript': 11.0.1_qqryy2txu6s5xvbi2exjrxstfu + '@vue/runtime-core': 3.2.45 + cross-env: 7.0.3 + eslint: 8.29.0 + eslint-plugin-prettier: 4.2.1_eslint@8.29.0 + eslint-plugin-vue: 9.5.1_eslint@8.29.0 + histoire: 0.12.4_sass@1.53.0+vite@3.2.4 + npm-run-all: 4.1.5 + rollup-plugin-polyfill-node: 0.10.1 + sass: 1.53.0 + typescript: 4.9.3 + unplugin-icons: 0.14.9_ucej6auec2vidlux2n3htzvxf4 + unplugin-vue-components: 0.21.0_vite@3.2.4+vue@3.2.45 + vite: 3.2.4_sass@1.53.0 + vite-plugin-checker: 0.5.1_ijzhftcbnq5djhrq5avbc76z6m + vite-plugin-fonts: 0.6.0_vite@3.2.4 + vite-plugin-html-config: 1.0.10_vite@3.2.4 + vite-plugin-inspect: 0.7.4_vite@3.2.4 + vite-plugin-pages: 0.26.0_ucej6auec2vidlux2n3htzvxf4 + vite-plugin-pages-sitemap: 1.4.0 + vite-plugin-pwa: 0.13.1_vite@3.2.4 + vite-plugin-vue-layouts: 0.7.0_x3isqn4gd6tlkzc66bnhwnhwbi + vite-plugin-windicss: 1.8.8_vite@3.2.4 + vue-loader: 16.8.3_tfvhctuaqmmqnirfl65c47tqwu + vue-tsc: 0.38.2_typescript@4.9.3 + windicss: 3.5.6 + packages/hoppscotch-web: specifiers: '@hoppscotch/common': workspace:^ @@ -514,6 +665,7 @@ importers: vite-plugin-pages: ^0.26.0 vite-plugin-pages-sitemap: ^1.4.0 vite-plugin-pwa: ^0.13.1 + vite-plugin-static-copy: ^0.12.0 vite-plugin-vue-layouts: ^0.7.0 vite-plugin-windicss: ^1.8.8 vue: ^3.2.41 @@ -549,7 +701,8 @@ importers: vite-plugin-inspect: 0.7.4_vite@3.2.4 vite-plugin-pages: 0.26.0_vite@3.2.4 vite-plugin-pages-sitemap: 1.4.0 - vite-plugin-pwa: 0.13.1_vite@3.2.4 + vite-plugin-pwa: 0.13.1_3kw35epztoiwny7qtfesjexvtu + vite-plugin-static-copy: 0.12.0_vite@3.2.4 vite-plugin-vue-layouts: 0.7.0_vite@3.2.4+vue@3.2.45 vite-plugin-windicss: 1.8.8_vite@3.2.4 vue-tsc: 1.0.9_typescript@4.7.4 @@ -2120,8 +2273,12 @@ packages: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true - /@codemirror/autocomplete/6.0.3: + /@codemirror/autocomplete/6.0.3_2tvhcfwni47fhspxv36jamkaqi: resolution: {integrity: sha512-JTSBDC4tUyR8iRmCwQJaYpTXtOZmRn4gKjw1Fu4xIatFPqTJ7m0QRCdkdbzlvMovzjTiuHp4a8WUEB1c/LtiHg==} + peerDependencies: + '@codemirror/language': ^6.0.0 + '@codemirror/state': ^6.0.0 + '@codemirror/view': ^6.0.0 dependencies: '@codemirror/language': 6.2.0 '@codemirror/state': 6.1.0 @@ -2138,10 +2295,19 @@ packages: '@lezer/common': 1.0.0 dev: false + /@codemirror/commands/6.2.0: + resolution: {integrity: sha512-+00smmZBradoGFEkRjliN7BjqPh/Hx0KCHWOEibUmflUqZz2RwBTU0MrVovEEHozhx3AUSGcO/rl3/5f9e9Biw==} + dependencies: + '@codemirror/language': 6.4.0 + '@codemirror/state': 6.2.0 + '@codemirror/view': 6.7.3 + '@lezer/common': 1.0.0 + dev: true + /@codemirror/lang-javascript/6.0.1: resolution: {integrity: sha512-kjGbBEosl+ozDU5ruDV48w4v3H6KECTFiDjqMLT0KhVwESPfv3wOvnDrTT0uaMOg3YRGnBWsyiIoKHl/tNWWDg==} dependencies: - '@codemirror/autocomplete': 6.0.3 + '@codemirror/autocomplete': 6.0.3_2tvhcfwni47fhspxv36jamkaqi '@codemirror/language': 6.2.0 '@codemirror/lint': 6.0.0 '@codemirror/state': 6.1.0 @@ -2155,16 +2321,17 @@ packages: dependencies: '@codemirror/language': 6.2.0 '@lezer/json': 1.0.0 - dev: false - /@codemirror/lang-xml/6.0.0: + /@codemirror/lang-xml/6.0.0_@codemirror+view@6.0.2: resolution: {integrity: sha512-M/HLWxIiP956xGjtrxkeHkCmDGVQGKu782x8pOH5CLJIMkWtiB1DWfDoDHqpFjdEE9dkfcqPWvYfVi6GbhuXEg==} dependencies: - '@codemirror/autocomplete': 6.0.3 + '@codemirror/autocomplete': 6.0.3_2tvhcfwni47fhspxv36jamkaqi '@codemirror/language': 6.2.0 '@codemirror/state': 6.1.0 '@lezer/common': 1.0.0 '@lezer/xml': 1.0.0 + transitivePeerDependencies: + - '@codemirror/view' dev: false /@codemirror/language/6.2.0: @@ -2176,7 +2343,17 @@ packages: '@lezer/highlight': 1.0.0 '@lezer/lr': 1.2.0 style-mod: 4.0.0 - dev: false + + /@codemirror/language/6.4.0: + resolution: {integrity: sha512-Wzb7GnNj8vnEtbPWiOy9H0m1fBtE28kepQNGLXekU2EEZv43BF865VKITUn+NoV8OpW6gRtvm29YEhqm46927Q==} + dependencies: + '@codemirror/state': 6.2.0 + '@codemirror/view': 6.7.3 + '@lezer/common': 1.0.0 + '@lezer/highlight': 1.0.0 + '@lezer/lr': 1.2.0 + style-mod: 4.0.0 + dev: true /@codemirror/legacy-modes/6.1.0: resolution: {integrity: sha512-V/PgGpndkZeTn3Hdlg/gd8MLFdyvTCIX+iwJzjUw5iNziWiNsAY8X0jvf7m3gSfxnKkNzmid6l0g4rYSpiDaCw==} @@ -2190,7 +2367,6 @@ packages: '@codemirror/state': 6.1.0 '@codemirror/view': 6.0.2 crelt: 1.0.5 - dev: false /@codemirror/search/6.0.0: resolution: {integrity: sha512-rL0rd3AhI0TAsaJPUaEwC63KHLO7KL0Z/dYozXj6E7L3wNHRyx7RfE0/j5HsIf912EE5n2PCb4Vg0rGYmDv4UQ==} @@ -2202,7 +2378,19 @@ packages: /@codemirror/state/6.1.0: resolution: {integrity: sha512-qbUr94DZTe6/V1VS7LDLz11rM/1t/nJxR1El4I6UaxDEdc0aZZvq6JCLJWiRmUf95NRAnDH6fhXn+PWp9wGCIg==} - dev: false + + /@codemirror/state/6.2.0: + resolution: {integrity: sha512-69QXtcrsc3RYtOtd+GsvczJ319udtBf1PTrr2KbLWM/e2CXUPnh0Nz9AUo8WfhSQ7GeL8dPVNUmhQVgpmuaNGA==} + dev: true + + /@codemirror/theme-one-dark/6.1.0: + resolution: {integrity: sha512-AiTHtFRu8+vWT9wWUWDM+cog6ZwgivJogB1Tm/g40NIpLwph7AnmxrSzWfvJN5fBVufsuwBxecQCNmdcR5D7Aw==} + dependencies: + '@codemirror/language': 6.4.0 + '@codemirror/state': 6.2.0 + '@codemirror/view': 6.7.3 + '@lezer/highlight': 1.0.0 + dev: true /@codemirror/view/6.0.2: resolution: {integrity: sha512-mnVT/q1JvKPjpmjXJNeCi/xHyaJ3abGJsumIVpdQ1nE1MXAyHf7GHWt8QpWMUvDiqF0j+inkhVR2OviTdFFX7Q==} @@ -2210,7 +2398,14 @@ packages: '@codemirror/state': 6.1.0 style-mod: 4.0.0 w3c-keyname: 2.2.4 - dev: false + + /@codemirror/view/6.7.3: + resolution: {integrity: sha512-Lt+4POnhXrZFfHOdPzXEHxrzwdy7cjqYlMkOWvoFGi6/bAsjzlFfr0NY3B15B/PGx+cDFgM1hlc12wvYeZbGLw==} + dependencies: + '@codemirror/state': 6.2.0 + style-mod: 4.0.0 + w3c-keyname: 2.2.4 + dev: true /@colors/colors/1.5.0: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} @@ -2303,10 +2498,10 @@ packages: '@types/node': 17.0.45 chalk: 4.1.2 cosmiconfig: 7.0.1 - cosmiconfig-typescript-loader: 2.0.2_x2utdhayajzrh747hktprshhby + cosmiconfig-typescript-loader: 2.0.2_7cep2inysldxstbcrxlp3njwym lodash: 4.17.21 resolve-from: 5.0.0 - typescript: 4.7.4 + typescript: 4.9.3 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -2434,7 +2629,6 @@ packages: cpu: [arm] os: [android] requiresBuild: true - dev: true optional: true /@esbuild/linux-loong64/0.15.15: @@ -2443,7 +2637,6 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-loong64/0.15.7: @@ -2503,7 +2696,6 @@ packages: strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - dev: true /@faker-js/faker/5.5.3: resolution: {integrity: sha512-R11tGE6yIFwqpaIqcfkcg7AICXzFg14+5h5v0TfF/9+RMDL6jhzCy/pxHVOfbALGdtVYdt6JdR21tuxEgl34dw==} @@ -3523,6 +3715,64 @@ packages: yargs: 16.2.0 dev: false + /@histoire/app/0.12.4_vite@3.2.4: + resolution: {integrity: sha512-noemJQ3q5ofHbBJGJ9FgLIdoV4Feyn3zHMhOQjHZRPETdoAak2adALO4UWKVnFu75+R43SLtoV7HnK0TAPx5kw==} + dependencies: + '@histoire/controls': 0.12.4 + '@histoire/shared': 0.12.4_vite@3.2.4 + '@histoire/vendors': 0.12.4 + '@types/flexsearch': 0.7.3 + flexsearch: 0.7.21 + shiki-es: 0.1.2 + transitivePeerDependencies: + - vite + dev: true + + /@histoire/controls/0.12.4: + resolution: {integrity: sha512-p4qa11vXqhSMsnXW1p+n7ZqawoHVErLFL24yNnA9peMuXnR306/0cvdAnsLMQJdq5mDNayOY5Di69YKVQ0Shqg==} + dependencies: + '@codemirror/commands': 6.2.0 + '@codemirror/lang-json': 6.0.0 + '@codemirror/language': 6.4.0 + '@codemirror/lint': 6.0.0 + '@codemirror/state': 6.2.0 + '@codemirror/theme-one-dark': 6.1.0 + '@codemirror/view': 6.7.3 + '@histoire/vendors': 0.12.4 + dev: true + + /@histoire/plugin-vue/0.12.4_3ztk7oukhtctodvtf5427xwgjy: + resolution: {integrity: sha512-2xgBDwEHmiY053hPWy4rKnnMjntVcg8qfIYJGyITwFWSfNTq+6ez/HjWzUcHT6qwFMglUHq+rDlQb9gYZF+Edw==} + peerDependencies: + histoire: ^0.12.4 + vue: ^3.2.31 + dependencies: + '@histoire/controls': 0.12.4 + '@histoire/shared': 0.12.4_vite@3.2.4 + '@histoire/vendors': 0.12.4 + histoire: 0.12.4_sass@1.53.0+vite@3.2.4 + vue: 3.2.45 + transitivePeerDependencies: + - vite + dev: true + + /@histoire/shared/0.12.4_vite@3.2.4: + resolution: {integrity: sha512-dVSrfsEu17KczjyHVW8yPvSlguhEV7hWjDSwsjlUrRdbe7hwztX4GbbcCIWvG5hy5gASpKpQq6FJa5uTs0HOsg==} + peerDependencies: + vite: ^2.9.0 || ^3.0.0 || ^4.0.0 + dependencies: + '@types/fs-extra': 9.0.13 + '@types/markdown-it': 12.2.3 + chokidar: 3.5.3 + pathe: 0.2.0 + picocolors: 1.0.0 + vite: 3.2.4_sass@1.53.0 + dev: true + + /@histoire/vendors/0.12.4: + resolution: {integrity: sha512-NIi0krz19iSjPHhIsGLrW4Q3tvrCLfvCet2kFA8crKPX6inaMZm8g/+pDQBqlh9DRCXVbxV5RWQKcumrIFbrmw==} + dev: true + /@hoppscotch/vue-toasted/0.1.0_vue@3.2.37: resolution: {integrity: sha512-DIgmeTHxWwX5UeaHLEqDYNLJFGRosx/5N1fCHkaO8zt+sZv8GrHlkrIpjfKF2drmA3kKw5cY42Cw7WuCoabR3g==} peerDependencies: @@ -3531,6 +3781,14 @@ packages: vue: 3.2.37 dev: false + /@hoppscotch/vue-toasted/0.1.0_vue@3.2.45: + resolution: {integrity: sha512-DIgmeTHxWwX5UeaHLEqDYNLJFGRosx/5N1fCHkaO8zt+sZv8GrHlkrIpjfKF2drmA3kKw5cY42Cw7WuCoabR3g==} + peerDependencies: + vue: ^3.2.37 + dependencies: + vue: 3.2.45 + dev: false + /@humanwhocodes/config-array/0.10.7: resolution: {integrity: sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==} engines: {node: '>=10.10.0'} @@ -3551,7 +3809,6 @@ packages: minimatch: 3.1.2 transitivePeerDependencies: - supports-color - dev: true /@humanwhocodes/config-array/0.9.5: resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==} @@ -3571,11 +3828,9 @@ packages: /@humanwhocodes/module-importer/1.0.1: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - dev: true /@humanwhocodes/object-schema/1.2.1: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} - dev: true /@iarna/toml/2.2.5: resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} @@ -3615,8 +3870,8 @@ packages: vue-i18n: optional: true dependencies: - '@intlify/message-compiler': 9.3.0-beta.10 - '@intlify/shared': 9.3.0-beta.10 + '@intlify/message-compiler': 9.3.0-beta.16 + '@intlify/shared': 9.3.0-beta.16 jsonc-eslint-parser: 1.4.1 source-map: 0.6.1 yaml-eslint-parser: 0.3.2 @@ -3634,8 +3889,8 @@ packages: vue-i18n: optional: true dependencies: - '@intlify/message-compiler': 9.3.0-beta.10 - '@intlify/shared': 9.3.0-beta.10 + '@intlify/message-compiler': 9.3.0-beta.16 + '@intlify/shared': 9.3.0-beta.16 jsonc-eslint-parser: 1.4.1 source-map: 0.6.1 vue-i18n: 9.2.2_vue@3.2.37 @@ -3664,11 +3919,11 @@ packages: '@intlify/shared': 9.2.2 source-map: 0.6.1 - /@intlify/message-compiler/9.3.0-beta.10: - resolution: {integrity: sha512-RoOC6yceOykLRhN0NlbkNOBUx1el6iphx3W8NfOx3jHVNtfT1FYokx14/5sU3F1F0uxeG4sp6q+ppKvaF8o+ww==} + /@intlify/message-compiler/9.3.0-beta.16: + resolution: {integrity: sha512-CGQI3xRcs1ET75eDQ0DUy3MRYOqTauRIIgaMoISKiF83gqRWg93FqN8lGMKcpBqaF4tI0JhsfosCaGiBL9+dnw==} engines: {node: '>= 14'} dependencies: - '@intlify/shared': 9.3.0-beta.10 + '@intlify/shared': 9.3.0-beta.16 source-map: 0.6.1 dev: true @@ -3676,8 +3931,8 @@ packages: resolution: {integrity: sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==} engines: {node: '>= 14'} - /@intlify/shared/9.3.0-beta.10: - resolution: {integrity: sha512-h93uAanbAt/XgjDHclrVB7xix6r7Uz11wx0iGNOCdHP7aA2LCJjUT3uNbekJjjbo+Fl5jzTSJZdm2SexzoqhRA==} + /@intlify/shared/9.3.0-beta.16: + resolution: {integrity: sha512-kXbm4svALe3lX+EjdJxfnabOphqS4yQ1Ge/iIlR8tvUiYRCoNz3hig1M4336iY++Dfx5ytEQJPNjIcknNIuvig==} engines: {node: '>= 14'} dev: true @@ -3697,7 +3952,7 @@ packages: optional: true dependencies: '@intlify/bundle-utils': 3.4.0_vue-i18n@9.2.2 - '@intlify/shared': 9.3.0-beta.10 + '@intlify/shared': 9.3.0-beta.16 '@rollup/pluginutils': 4.2.1 debug: 4.3.4 fast-glob: 3.2.11 @@ -3724,12 +3979,12 @@ packages: optional: true dependencies: '@intlify/bundle-utils': 3.4.0 - '@intlify/shared': 9.3.0-beta.10 + '@intlify/shared': 9.3.0-beta.16 '@rollup/pluginutils': 4.2.1 debug: 4.3.4 fast-glob: 3.2.11 source-map: 0.6.1 - vite: 3.2.4 + vite: 3.2.4_sass@1.53.0 transitivePeerDependencies: - supports-color dev: true @@ -3878,7 +4133,7 @@ packages: dependencies: '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 17.0.45 + '@types/node': 18.11.10 jest-mock: 27.5.1 dev: true @@ -3922,7 +4177,7 @@ packages: dependencies: '@jest/types': 27.5.1 '@sinonjs/fake-timers': 8.1.0 - '@types/node': 17.0.45 + '@types/node': 18.11.10 jest-message-util: 27.5.1 jest-mock: 27.5.1 jest-util: 27.5.1 @@ -4278,7 +4533,6 @@ packages: resolution: {integrity: sha512-nsCnNtim90UKsB5YxoX65v3GEIw3iCHw9RM2DtdgkiqAbKh9pCdvi8AWNwkYf10Lu6fxNhXPpkpHbW6mihhvJA==} dependencies: '@lezer/common': 1.0.0 - dev: false /@lezer/javascript/1.0.1: resolution: {integrity: sha512-t7fpf3+gi/jiAtW+Gv734TbKdpPg6b8qATH01/jprW9H2oR++Tb688IHwJvZbk9F4GjpCEv86beuHMpUyC1b5g==} @@ -4292,7 +4546,6 @@ packages: dependencies: '@lezer/highlight': 1.0.0 '@lezer/lr': 1.2.0 - dev: false /@lezer/lr/1.2.0: resolution: {integrity: sha512-TgEpfm9br2SX8JwtwKT8HsQZKuFkLRg6g+IRxObk9nVKQLKnkP3oMh+QGcTBL9GQsfQ2ADtKPbj2iGSMf3ytiA==} @@ -4341,7 +4594,7 @@ packages: '@nestjs/common': 9.2.1_whg6pvy6vwu66ypq7idiq2suxq '@nestjs/core': 9.2.1_ajc4cvdydchgvxyi4xnoij5t4i '@nestjs/graphql': 10.1.6_2khsk5ahlt4vlkrgib4soffmwu - apollo-server-express: 3.11.1_graphql@15.8.0 + apollo-server-express: 3.11.1_4mq2c443wwzwcb6dpxnwkfvrzm graphql: 15.8.0 iterall: 1.3.0 lodash.omit: 4.5.0 @@ -4596,6 +4849,29 @@ packages: resolution: {integrity: sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==} dev: false + /@prisma/client/4.9.0_prisma@4.9.0: + resolution: {integrity: sha512-bz6QARw54sWcbyR1lLnF2QHvRW5R/Jxnbbmwh3u+969vUKXtBkXgSgjDA85nji31ZBlf7+FrHDy5x+5ydGyQDg==} + engines: {node: '>=14.17'} + requiresBuild: true + peerDependencies: + prisma: '*' + peerDependenciesMeta: + prisma: + optional: true + dependencies: + '@prisma/engines-version': 4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5 + prisma: 4.9.0 + dev: false + + /@prisma/engines-version/4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5: + resolution: {integrity: sha512-M16aibbxi/FhW7z1sJCX8u+0DriyQYY5AyeTH7plQm9MLnURoiyn3CZBqAyIoQ+Z1pS77usCIibYJWSgleBMBA==} + dev: false + + /@prisma/engines/4.9.0: + resolution: {integrity: sha512-t1pt0Gsp+HcgPJrHFc+d/ZSAaKKWar2G/iakrE07yeKPNavDP3iVKPpfXP22OTCHZUWf7OelwKJxQgKAm5hkgw==} + requiresBuild: true + dev: false + /@protobufjs/aspromise/1.1.2: resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} dev: false @@ -4653,6 +4929,20 @@ packages: jest-matcher-utils: 28.1.1 dev: true + /@relmify/jest-fp-ts/2.0.2_fp-ts@2.13.1+io-ts@2.2.16: + resolution: {integrity: sha512-qhQOfn9q5YsylD9qNCiizrA8w/i3A015hDk3P46fYPe48yLSB6BJaBImSvECUY9nCjeiEp4YP2sPopNyqDYwjw==} + peerDependencies: + fp-ts: 2.x + io-ts: 2.x + dependencies: + '@jest/expect-utils': 28.1.1 + expect: 28.1.1 + fp-ts: 2.13.1 + io-ts: 2.2.16_fp-ts@2.13.1 + jest-get-type: 28.0.2 + jest-matcher-utils: 28.1.1 + dev: true + /@rollup/plugin-babel/5.3.1_p5rdeczgubbtv4lfg2mcoxxnwm: resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} engines: {node: '>= 10.0.0'} @@ -4734,7 +5024,6 @@ packages: dependencies: estree-walker: 2.0.2 picomatch: 2.3.1 - dev: true /@rushstack/eslint-patch/1.1.4: resolution: {integrity: sha512-LwzQKA4vzIct1zNZzBmRKI9QuNpLgTQMEjsQLf3BXuGYb3QPTP4Yjf6mkdX+X1mYttZ808QpOwAzZjv28kq7DA==} @@ -5107,7 +5396,6 @@ packages: dependencies: '@types/estree': 0.0.51 '@types/json-schema': 7.0.9 - dev: true /@types/estree/0.0.39: resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} @@ -5115,7 +5403,6 @@ packages: /@types/estree/0.0.51: resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} - dev: true /@types/express-serve-static-core/4.17.31: resolution: {integrity: sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==} @@ -5132,6 +5419,16 @@ packages: '@types/qs': 6.9.7 '@types/serve-static': 1.15.0 + /@types/flexsearch/0.7.3: + resolution: {integrity: sha512-HXwADeHEP4exXkCIwy2n1+i0f1ilP1ETQOH5KDOugjkTFZPntWo0Gr8stZOaebkxsdx+k0X/K6obU/+it07ocg==} + dev: true + + /@types/fs-extra/9.0.13: + resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} + dependencies: + '@types/node': 18.11.10 + dev: true + /@types/graceful-fs/4.1.5: resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} dependencies: @@ -5161,13 +5458,6 @@ packages: pretty-format: 27.5.1 dev: true - /@types/jest/29.2.3: - resolution: {integrity: sha512-6XwoEbmatfyoCjWRX7z0fKMmgYKe9+/HrviJ5k0X/tjJWHGAezZOfYaxqQKuzG/TvQyr+ktjm4jgbk0s4/oF2w==} - dependencies: - expect: 29.3.1 - pretty-format: 29.3.1 - dev: true - /@types/js-yaml/4.0.5: resolution: {integrity: sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==} dev: true @@ -5185,6 +5475,10 @@ packages: '@types/node': 17.0.45 dev: true + /@types/linkify-it/3.0.2: + resolution: {integrity: sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==} + dev: true + /@types/lodash-es/4.17.6: resolution: {integrity: sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==} dependencies: @@ -5203,6 +5497,17 @@ packages: resolution: {integrity: sha512-zPE8kmpeL5/6L5gtTQHSOkAW/OSYYNTDRt6/2oEgLO1Zd3Rj5WVDoMloTtLJxQJhZGLGbL4pktKSh3NbzdaWdw==} dev: true + /@types/markdown-it/12.2.3: + resolution: {integrity: sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==} + dependencies: + '@types/linkify-it': 3.0.2 + '@types/mdurl': 1.0.2 + dev: true + + /@types/mdurl/1.0.2: + resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==} + dev: true + /@types/mime/3.0.1: resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==} @@ -5423,6 +5728,33 @@ packages: - supports-color dev: true + /@typescript-eslint/eslint-plugin/5.30.6_xxwvy74wa6xexxbg5ed4sc263a: + resolution: {integrity: sha512-J4zYMIhgrx4MgnZrSDD7sEnQp7FmhKNOaqaOpaoQ/SfdMfRB/0yvK74hTnvH+VQxndZynqs5/Hn4t+2/j9bADg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/parser': 5.30.6_s5ps7njkmjlaqajutnox5ntcla + '@typescript-eslint/scope-manager': 5.30.6 + '@typescript-eslint/type-utils': 5.30.6_s5ps7njkmjlaqajutnox5ntcla + '@typescript-eslint/utils': 5.30.6_s5ps7njkmjlaqajutnox5ntcla + debug: 4.3.4 + eslint: 8.29.0 + functional-red-black-tree: 1.0.1 + ignore: 5.2.0 + regexpp: 3.2.0 + semver: 7.3.7 + tsutils: 3.21.0_typescript@4.9.3 + typescript: 4.9.3 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/eslint-plugin/5.45.0_yjegg5cyoezm3fzsmuszzhetym: resolution: {integrity: sha512-CXXHNlf0oL+Yg021cxgOdMHNTXD17rHkq7iW6RFHoybdFgQBjU3yIXhhcPpGwr1CjZlo6ET8C6tzX5juQoXeGA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5490,6 +5822,26 @@ packages: - supports-color dev: true + /@typescript-eslint/parser/5.30.6_s5ps7njkmjlaqajutnox5ntcla: + resolution: {integrity: sha512-gfF9lZjT0p2ZSdxO70Xbw8w9sPPJGfAdjK7WikEjB3fcUI/yr9maUVEdqigBjKincUYNKOmf7QBMiTf719kbrA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.30.6 + '@typescript-eslint/types': 5.30.6 + '@typescript-eslint/typescript-estree': 5.30.6_typescript@4.9.3 + debug: 4.3.4 + eslint: 8.29.0 + typescript: 4.9.3 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/parser/5.30.6_tqvwk7sh3taph5wf7sr5z34mke: resolution: {integrity: sha512-gfF9lZjT0p2ZSdxO70Xbw8w9sPPJGfAdjK7WikEjB3fcUI/yr9maUVEdqigBjKincUYNKOmf7QBMiTf719kbrA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5584,6 +5936,25 @@ packages: - supports-color dev: true + /@typescript-eslint/type-utils/5.30.6_s5ps7njkmjlaqajutnox5ntcla: + resolution: {integrity: sha512-GFVVzs2j0QPpM+NTDMXtNmJKlF842lkZKDSanIxf+ArJsGeZUIaeT4jGg+gAgHt7AcQSFwW7htzF/rbAh2jaVA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/utils': 5.30.6_s5ps7njkmjlaqajutnox5ntcla + debug: 4.3.4 + eslint: 8.29.0 + tsutils: 3.21.0_typescript@4.9.3 + typescript: 4.9.3 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/type-utils/5.30.6_tqvwk7sh3taph5wf7sr5z34mke: resolution: {integrity: sha512-GFVVzs2j0QPpM+NTDMXtNmJKlF842lkZKDSanIxf+ArJsGeZUIaeT4jGg+gAgHt7AcQSFwW7htzF/rbAh2jaVA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5654,6 +6025,27 @@ packages: - supports-color dev: true + /@typescript-eslint/typescript-estree/5.30.6_typescript@4.9.3: + resolution: {integrity: sha512-Z7TgPoeYUm06smfEfYF0RBkpF8csMyVnqQbLYiGgmUSTaSXTP57bt8f0UFXstbGxKIreTwQCujtaH0LY9w9B+A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.30.6 + '@typescript-eslint/visitor-keys': 5.30.6 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.3.7 + tsutils: 3.21.0_typescript@4.9.3 + typescript: 4.9.3 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/typescript-estree/5.45.0_typescript@4.9.3: resolution: {integrity: sha512-maRhLGSzqUpFcZgXxg1qc/+H0bT36lHK4APhp0AEUVrpSwXiRAomm/JGjSG+kNUio5kAa3uekCYu/47cnGn5EQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5711,6 +6103,24 @@ packages: - typescript dev: true + /@typescript-eslint/utils/5.30.6_s5ps7njkmjlaqajutnox5ntcla: + resolution: {integrity: sha512-xFBLc/esUbLOJLk9jKv0E9gD/OH966M40aY9jJ8GiqpSkP2xOV908cokJqqhVd85WoIvHVHYXxSFE4cCSDzVvA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@types/json-schema': 7.0.9 + '@typescript-eslint/scope-manager': 5.30.6 + '@typescript-eslint/types': 5.30.6 + '@typescript-eslint/typescript-estree': 5.30.6_typescript@4.9.3 + eslint: 8.29.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0_eslint@8.29.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + /@typescript-eslint/utils/5.30.6_tqvwk7sh3taph5wf7sr5z34mke: resolution: {integrity: sha512-xFBLc/esUbLOJLk9jKv0E9gD/OH966M40aY9jJ8GiqpSkP2xOV908cokJqqhVd85WoIvHVHYXxSFE4cCSDzVvA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5843,8 +6253,7 @@ packages: magic-string: 0.26.7 regenerator-runtime: 0.13.10 systemjs: 6.13.0 - vite: 3.2.4 - dev: true + vite: 3.2.4_sass@1.53.0 /@vitejs/plugin-vue/3.1.0_vite@3.1.4+vue@3.2.37: resolution: {integrity: sha512-fmxtHPjSOEIRg6vHYDaem+97iwCUg/uSIaTzp98lhELt2ISOQuDo2hbkBdXod0g15IhfPMQmAxh4heUks2zvDA==} @@ -5864,7 +6273,7 @@ packages: vite: ^3.0.0 vue: ^3.2.25 dependencies: - vite: 3.2.4 + vite: 3.2.4_sass@1.53.0 vue: 3.2.45 dev: true @@ -5928,7 +6337,7 @@ packages: '@volar/source-map': 0.38.2 '@volar/vue-code-gen': 0.38.2 '@vue/compiler-sfc': 3.2.45 - '@vue/reactivity': 3.2.39 + '@vue/reactivity': 3.2.45 dev: true /@volar/vue-typescript/1.0.9: @@ -6097,6 +6506,27 @@ packages: - supports-color dev: true + /@vue/eslint-config-typescript/11.0.1_qqryy2txu6s5xvbi2exjrxstfu: + resolution: {integrity: sha512-0U+nL0nA7ahnGPk3rTN49x76miUwuQtQPQNWOFvAcjg6nFJkIkA8qbGNtXwsuHtwBwRtWpHhShL3zK07v+632w==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 + eslint-plugin-vue: ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 5.30.6_xxwvy74wa6xexxbg5ed4sc263a + '@typescript-eslint/parser': 5.30.6_s5ps7njkmjlaqajutnox5ntcla + eslint: 8.29.0 + eslint-plugin-vue: 9.5.1_eslint@8.29.0 + typescript: 4.9.3 + vue-eslint-parser: 9.1.0_eslint@8.29.0 + transitivePeerDependencies: + - supports-color + dev: true + /@vue/reactivity-transform/3.2.37: resolution: {integrity: sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==} dependencies: @@ -6220,6 +6650,24 @@ packages: vue-demi: 0.13.1_vue@3.2.37 dev: false + /@vueuse/core/8.7.5_vue@3.2.45: + resolution: {integrity: sha512-tqgzeZGoZcXzoit4kOGLWJibDMLp0vdm6ZO41SSUQhkhtrPhAg6dbIEPiahhUu6sZAmSYvVrZgEr5aKD51nrLA==} + peerDependencies: + '@vue/composition-api': ^1.1.0 + vue: ^2.6.0 || ^3.2.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + vue: + optional: true + dependencies: + '@types/web-bluetooth': 0.0.14 + '@vueuse/metadata': 8.7.5 + '@vueuse/shared': 8.7.5_vue@3.2.45 + vue: 3.2.45 + vue-demi: 0.13.1_vue@3.2.45 + dev: false + /@vueuse/head/0.7.9_vue@3.2.37: resolution: {integrity: sha512-5wnRiH2XIUSLLXJDLDDTcpvAg5QXgTIVZl46AU7to/T91KHsdBLHSE4WhRO7kP0jbkAhlxnx64E29cQtwBrMjg==} peerDependencies: @@ -6228,6 +6676,14 @@ packages: vue: 3.2.37 dev: false + /@vueuse/head/0.7.9_vue@3.2.45: + resolution: {integrity: sha512-5wnRiH2XIUSLLXJDLDDTcpvAg5QXgTIVZl46AU7to/T91KHsdBLHSE4WhRO7kP0jbkAhlxnx64E29cQtwBrMjg==} + peerDependencies: + vue: '>=3' + dependencies: + vue: 3.2.45 + dev: false + /@vueuse/metadata/8.7.5: resolution: {integrity: sha512-emJZKRQSaEnVqmlu39NpNp8iaW+bPC2kWykWoWOZMSlO/0QVEmO/rt8A5VhOEJTKLX3vwTevqbiRy9WJRwVOQg==} dev: false @@ -6247,6 +6703,21 @@ packages: vue-demi: 0.13.1_vue@3.2.37 dev: false + /@vueuse/shared/8.7.5_vue@3.2.45: + resolution: {integrity: sha512-THXPvMBFmg6Gf6AwRn/EdTh2mhqwjGsB2Yfp374LNQSQVKRHtnJ0I42bsZTn7nuEliBxqUrGQm/lN6qUHmhJLw==} + peerDependencies: + '@vue/composition-api': ^1.1.0 + vue: ^2.6.0 || ^3.2.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + vue: + optional: true + dependencies: + vue: 3.2.45 + vue-demi: 0.13.1_vue@3.2.45 + dev: false + /@webassemblyjs/ast/1.11.1: resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==} dependencies: @@ -6422,6 +6893,13 @@ packages: acorn-walk: 7.2.0 dev: true + /acorn-globals/7.0.1: + resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} + dependencies: + acorn: 8.8.2 + acorn-walk: 8.2.0 + dev: true + /acorn-import-assertions/1.8.0_acorn@8.8.0: resolution: {integrity: sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==} peerDependencies: @@ -6444,7 +6922,6 @@ packages: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: 8.8.0 - dev: true /acorn-loose/6.1.0: resolution: {integrity: sha512-FHhXoiF0Uch3IqsrnPpWwCtiv5PYvipTpT1k9lDMgQVVYc9iDuSl5zdJV358aI8twfHCYMFBRVYvAVki9wC/ng==} @@ -6483,10 +6960,15 @@ packages: resolution: {integrity: sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==} engines: {node: '>=0.4.0'} hasBin: true + + /acorn/8.8.2: + resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} + engines: {node: '>=0.4.0'} + hasBin: true dev: true /after/0.8.2: - resolution: {integrity: sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA==} + resolution: {integrity: sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=} dev: false /agent-base/6.0.2: @@ -6704,7 +7186,7 @@ packages: graphql: 15.8.0 dev: false - /apollo-server-express/3.11.1_graphql@15.8.0: + /apollo-server-express/3.11.1_4mq2c443wwzwcb6dpxnwkfvrzm: resolution: {integrity: sha512-x9ngcpXbBlt4naCXTwNtBFb/mOd9OU0wtFXvJkObHF26NsRazu3DxDfEuekA6V1NFOocD+A9jmVMQeQWug5MgA==} engines: {node: '>=12.0'} deprecated: The `apollo-server-express` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. @@ -6722,6 +7204,7 @@ packages: apollo-server-types: 3.7.1_graphql@15.8.0 body-parser: 1.20.1 cors: 2.8.5 + express: 4.18.2 graphql: 15.8.0 parseurl: 1.3.3 transitivePeerDependencies: @@ -6773,7 +7256,7 @@ packages: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} /array-flatten/1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + resolution: {integrity: sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=} /array-ify/1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} @@ -7043,7 +7526,7 @@ packages: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} /base64-arraybuffer/0.1.4: - resolution: {integrity: sha512-a1eIFi4R9ySrbiMuyTGx5e92uRH5tQY6kArNcFaKBUleIoLjdjBg7Zxm3Mqm3Kmkf27HLR/1fnxX9q8GQ7Iavg==} + resolution: {integrity: sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=} engines: {node: '>= 0.6.0'} dev: false @@ -7057,10 +7540,18 @@ packages: safe-buffer: 5.1.2 dev: true + /big.js/5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + dev: true + /binary-extensions/2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} + /birpc/0.1.1: + resolution: {integrity: sha512-B64AGL4ug2IS2jvV/zjTYDD1L+2gOJTT7Rv+VaK7KVQtQOo/xZbCDsh7g727ipckmU+QJYRqo5RcifVr0Kgcmg==} + dev: true + /bl/4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} dependencies: @@ -7531,14 +8022,14 @@ packages: dev: true /component-bind/1.0.0: - resolution: {integrity: sha512-WZveuKPeKAG9qY+FkYDeADzdHyTYdIboXS59ixDeRJL5ZhxpqUnxSOwop4FQjMsiYm3/Or8cegVbpAHNA7pHxw==} + resolution: {integrity: sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=} dev: false /component-emitter/1.3.0: resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} /component-inherit/0.0.3: - resolution: {integrity: sha512-w+LhYREhatpVqTESyGFg3NlP6Iu0kEKUHETY9GoZP/pQyW4mHFZuFWRUCIqVPZ36ueVLtoOEZaAqbCF2RDndaA==} + resolution: {integrity: sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=} dev: false /concat-map/0.0.1: @@ -7553,6 +8044,18 @@ packages: readable-stream: 2.3.7 typedarray: 0.0.6 + /connect/3.7.0: + resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} + engines: {node: '>= 0.10.0'} + dependencies: + debug: 2.6.9 + finalhandler: 1.1.2 + parseurl: 1.3.3 + utils-merge: 1.0.1 + transitivePeerDependencies: + - supports-color + dev: true + /consola/2.15.3: resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} @@ -7614,7 +8117,7 @@ packages: dev: true /cookie-signature/1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + resolution: {integrity: sha1-4wOogrNCzD7oylE6eZmXNNqzriw=} /cookie/0.5.0: resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} @@ -7661,7 +8164,7 @@ packages: dependencies: '@iarna/toml': 2.2.5 - /cosmiconfig-typescript-loader/2.0.2_x2utdhayajzrh747hktprshhby: + /cosmiconfig-typescript-loader/2.0.2_7cep2inysldxstbcrxlp3njwym: resolution: {integrity: sha512-KmE+bMjWMXJbkWCeY4FJX/npHuZPNr9XF9q9CIQ/bpFwi1qHfCmSiKarrCcRa0LO4fWjk93pVoeRtJAkTGcYNw==} engines: {node: '>=12', npm: '>=6'} peerDependencies: @@ -7670,8 +8173,8 @@ packages: dependencies: '@types/node': 17.0.45 cosmiconfig: 7.0.1 - ts-node: 10.8.2_x2utdhayajzrh747hktprshhby - typescript: 4.7.4 + ts-node: 10.8.2_7cep2inysldxstbcrxlp3njwym + typescript: 4.9.3 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -7692,7 +8195,6 @@ packages: /crelt/1.0.5: resolution: {integrity: sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==} - dev: false /cross-env/7.0.3: resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} @@ -7772,6 +8274,10 @@ packages: resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==} dev: true + /cssom/0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + dev: true + /cssstyle/2.3.0: resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} engines: {node: '>=8'} @@ -7800,6 +8306,15 @@ packages: whatwg-url: 8.7.0 dev: true + /data-urls/3.0.2: + resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} + engines: {node: '>=12'} + dependencies: + abab: 2.0.6 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + dev: true + /dataloader/2.1.0: resolution: {integrity: sha512-qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ==} @@ -7823,12 +8338,22 @@ packages: /debug/3.1.0: resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.0.0 dev: false /debug/3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.1.3 dev: true @@ -7892,6 +8417,10 @@ packages: resolution: {integrity: sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==} dev: true + /decimal.js/10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + dev: true + /dedent/0.7.0: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} dev: true @@ -7918,7 +8447,6 @@ packages: /deep-is/0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - dev: true /deepmerge/4.2.2: resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} @@ -7938,6 +8466,10 @@ packages: has-property-descriptors: 1.0.0 object-keys: 1.1.1 + /defu/6.1.2: + resolution: {integrity: sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==} + dev: true + /delayed-stream/1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -7977,6 +8509,10 @@ packages: wrappy: 1.0.2 dev: true + /diacritics/1.3.0: + resolution: {integrity: sha512-wlwEkqcsaxvPJML+rDh/2iS824jbREk6DUMUKkEaSlxdYHeS43cClJtsWglvw2RfeXGm6ohKDqsXteJ5sP5enA==} + dev: true + /diff-sequences/27.5.1: resolution: {integrity: sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -8012,7 +8548,6 @@ packages: engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 - dev: true /domexception/2.0.1: resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==} @@ -8021,6 +8556,13 @@ packages: webidl-conversions: 5.0.0 dev: true + /domexception/4.0.0: + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} + dependencies: + webidl-conversions: 7.0.0 + dev: true + /dot-case/3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} dependencies: @@ -8058,7 +8600,7 @@ packages: dev: true /ee-first/1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=} /ejs/3.1.8: resolution: {integrity: sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==} @@ -8089,6 +8631,11 @@ packages: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} dev: false + /emojis-list/3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + dev: true + /encodeurl/1.0.2: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} @@ -8115,6 +8662,7 @@ packages: yeast: 0.1.2 transitivePeerDependencies: - bufferutil + - supports-color - utf-8-validate dev: false @@ -8191,6 +8739,15 @@ packages: tapable: 2.2.1 dev: true + /entities/2.1.0: + resolution: {integrity: sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==} + dev: true + + /entities/4.4.0: + resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==} + engines: {node: '>=0.12'} + dev: true + /errno/0.1.8: resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} hasBin: true @@ -8270,7 +8827,6 @@ packages: cpu: [x64] os: [android] requiresBuild: true - dev: true optional: true /esbuild-android-64/0.15.7: @@ -8295,7 +8851,6 @@ packages: cpu: [arm64] os: [android] requiresBuild: true - dev: true optional: true /esbuild-android-arm64/0.15.7: @@ -8320,7 +8875,6 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true - dev: true optional: true /esbuild-darwin-64/0.15.7: @@ -8345,7 +8899,6 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true - dev: true optional: true /esbuild-darwin-arm64/0.15.7: @@ -8370,7 +8923,6 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true - dev: true optional: true /esbuild-freebsd-64/0.15.7: @@ -8395,7 +8947,6 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true - dev: true optional: true /esbuild-freebsd-arm64/0.15.7: @@ -8420,7 +8971,6 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true - dev: true optional: true /esbuild-linux-32/0.15.7: @@ -8445,7 +8995,6 @@ packages: cpu: [x64] os: [linux] requiresBuild: true - dev: true optional: true /esbuild-linux-64/0.15.7: @@ -8470,7 +9019,6 @@ packages: cpu: [arm] os: [linux] requiresBuild: true - dev: true optional: true /esbuild-linux-arm/0.15.7: @@ -8495,7 +9043,6 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true - dev: true optional: true /esbuild-linux-arm64/0.15.7: @@ -8520,7 +9067,6 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true - dev: true optional: true /esbuild-linux-mips64le/0.15.7: @@ -8545,7 +9091,6 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true - dev: true optional: true /esbuild-linux-ppc64le/0.15.7: @@ -8570,7 +9115,6 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true - dev: true optional: true /esbuild-linux-riscv64/0.15.7: @@ -8595,7 +9139,6 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true - dev: true optional: true /esbuild-linux-s390x/0.15.7: @@ -8620,7 +9163,6 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true - dev: true optional: true /esbuild-netbsd-64/0.15.7: @@ -8645,7 +9187,6 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true - dev: true optional: true /esbuild-openbsd-64/0.15.7: @@ -8670,7 +9211,6 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true - dev: true optional: true /esbuild-sunos-64/0.15.7: @@ -8695,7 +9235,6 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true - dev: true optional: true /esbuild-windows-32/0.15.7: @@ -8720,7 +9259,6 @@ packages: cpu: [x64] os: [win32] requiresBuild: true - dev: true optional: true /esbuild-windows-64/0.15.7: @@ -8745,7 +9283,6 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true - dev: true optional: true /esbuild-windows-arm64/0.15.7: @@ -8811,7 +9348,6 @@ packages: esbuild-windows-32: 0.15.15 esbuild-windows-64: 0.15.15 esbuild-windows-arm64: 0.15.15 - dev: true /esbuild/0.15.7: resolution: {integrity: sha512-7V8tzllIbAQV1M4QoE52ImKu8hT/NLGlGXkiDsbEU5PS6K8Mn09ZnYoS+dcmHxOS9CRsV4IRAMdT3I67IyUNXw==} @@ -8860,7 +9396,6 @@ packages: /escape-string-regexp/4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - dev: true /escodegen/2.0.0: resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==} @@ -8940,6 +9475,21 @@ packages: prettier-linter-helpers: 1.0.0 dev: true + /eslint-plugin-prettier/4.2.1_eslint@8.29.0: + resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + eslint: '>=7.28.0' + eslint-config-prettier: '*' + prettier: '>=2.0.0' + peerDependenciesMeta: + eslint-config-prettier: + optional: true + dependencies: + eslint: 8.29.0 + prettier-linter-helpers: 1.0.0 + dev: true + /eslint-plugin-prettier/4.2.1_nrhoyyjffvfyk4vtlt5destxgm: resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} engines: {node: '>=12.0.0'} @@ -8993,6 +9543,24 @@ packages: - supports-color dev: true + /eslint-plugin-vue/9.5.1_eslint@8.29.0: + resolution: {integrity: sha512-Y0sL2RY7Xc9S8kNih9lbwHIDmewUg9bfas6WSzsOWRgDXhIHKxRBZYNAnVcXBFfE+bMWHUA5GLChl7TcTYUI8w==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 + dependencies: + eslint: 8.29.0 + eslint-utils: 3.0.0_eslint@8.29.0 + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 6.0.10 + semver: 7.3.7 + vue-eslint-parser: 9.1.0_eslint@8.29.0 + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /eslint-scope/5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} @@ -9007,7 +9575,6 @@ packages: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - dev: true /eslint-utils/2.1.0: resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} @@ -9054,7 +9621,6 @@ packages: dependencies: eslint: 8.29.0 eslint-visitor-keys: 2.1.0 - dev: true /eslint-visitor-keys/1.3.0: resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} @@ -9064,12 +9630,10 @@ packages: /eslint-visitor-keys/2.1.0: resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} engines: {node: '>=10'} - dev: true /eslint-visitor-keys/3.3.0: resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true /eslint/8.19.0: resolution: {integrity: sha512-SXOPj3x9VKvPe81TjjUJCYlV4oJjQw68Uek+AM0X4p+33dj2HY5bpTZOgnQHcG2eAm1mtCU9uNMnJi7exU/kYw==} @@ -9257,7 +9821,6 @@ packages: text-table: 0.2.0 transitivePeerDependencies: - supports-color - dev: true /esm/3.2.25: resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} @@ -9289,7 +9852,6 @@ packages: acorn: 8.8.0 acorn-jsx: 5.3.2_acorn@8.8.0 eslint-visitor-keys: 3.3.0 - dev: true /esprima-extract-comments/1.1.0: resolution: {integrity: sha512-sBQUnvJwpeE9QnPrxh7dpI/dp67erYG4WXEAreAMoelPRpMR7NWb4YtwRPn9b+H1uLQKl/qS8WYmyaljTpjIsw==} @@ -9308,14 +9870,12 @@ packages: engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 - dev: true /esrecurse/4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 - dev: true /estraverse/4.3.0: resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} @@ -9325,7 +9885,6 @@ packages: /estraverse/5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} - dev: true /estree-walker/0.6.1: resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} @@ -9341,7 +9900,6 @@ packages: /esutils/2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} - dev: true /etag/1.8.1: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} @@ -9479,6 +10037,13 @@ packages: transitivePeerDependencies: - supports-color + /extend-shallow/2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + dependencies: + is-extendable: 0.1.1 + dev: true + /external-editor/3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} @@ -9538,7 +10103,6 @@ packages: /fast-levenshtein/2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - dev: true /fast-safe-stringify/2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} @@ -9597,7 +10161,6 @@ packages: engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.0.4 - dev: true /file-type/3.9.0: resolution: {integrity: sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==} @@ -9616,6 +10179,21 @@ packages: dependencies: to-regex-range: 5.0.1 + /finalhandler/1.1.2: + resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} + engines: {node: '>= 0.8'} + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.3.0 + parseurl: 1.3.3 + statuses: 1.5.0 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /finalhandler/1.2.0: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} @@ -9644,7 +10222,6 @@ packages: dependencies: locate-path: 6.0.0 path-exists: 4.0.0 - dev: true /firebase/9.8.4: resolution: {integrity: sha512-fQigVEtSBprGBDLVTr485KQJ1YUWh/HeocMQvmhaUCL9dHUnW8GWfK+XkKOV2kcDB1Ur8xZPkjCxlmoTcykhgA==} @@ -9687,7 +10264,6 @@ packages: dependencies: flatted: 3.2.6 rimraf: 3.0.2 - dev: true /flat/5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} @@ -9696,6 +10272,9 @@ packages: /flatted/3.2.6: resolution: {integrity: sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==} + + /flexsearch/0.7.21: + resolution: {integrity: sha512-W7cHV7Hrwjid6lWmy0IhsWDFQboWSng25U3VVywpHOTJnnAZNPScog67G+cVpeX9f7yDD21ih0WDrMMT+JoaYg==} dev: true /follow-redirects/1.15.1: @@ -9792,8 +10371,11 @@ packages: /fp-ts/2.12.1: resolution: {integrity: sha512-oxvgqUYR6O9VkKXrxkJ0NOyU0FrE705MeqgBUMEPWyTu6Pwn768cJbHChw2XOBlgFLKfIHxjr2OOBFpv2mUGZw==} + /fp-ts/2.13.1: + resolution: {integrity: sha512-0eu5ULPS2c/jsa1lGFneEFFEdTbembJv8e4QKXeVJ3lm/5hyve06dlKZrpxmMwJt6rYen7sxmHHK2CLaXvWuWQ==} + /fresh/0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + resolution: {integrity: sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=} engines: {node: '>= 0.6'} /from/0.1.7: @@ -9942,7 +10524,6 @@ packages: engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 - dev: true /glob-to-regexp/0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} @@ -9985,7 +10566,6 @@ packages: engines: {node: '>=8'} dependencies: type-fest: 0.20.2 - dev: true /globalthis/1.0.3: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} @@ -10005,12 +10585,22 @@ packages: merge2: 1.4.1 slash: 3.0.0 + /globby/13.1.3: + resolution: {integrity: sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + dir-glob: 3.0.1 + fast-glob: 3.2.12 + ignore: 5.2.0 + merge2: 1.4.1 + slash: 4.0.0 + dev: true + /graceful-fs/4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} /grapheme-splitter/1.0.4: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} - dev: true /graphql-config/4.3.1_h5eoywvcjsa4emif44kddonyyu: resolution: {integrity: sha512-czBWzJSGaLJfOHBLuUTZVRTjfgohPfvlaeN1B5nXBVptFARpiFuS7iI4FnRhCGwm6qt1h2j1g05nkg0OIGA6bg==} @@ -10104,6 +10694,15 @@ packages: - utf-8-validate dev: false + /graphql-query-complexity/0.12.0_graphql@15.8.0: + resolution: {integrity: sha512-fWEyuSL6g/+nSiIRgIipfI6UXTI7bAxrpPlCY1c0+V3pAEUo1ybaKmSBgNr1ed2r+agm1plJww8Loig9y6s2dw==} + peerDependencies: + graphql: ^14.6.0 || ^15.0.0 || ^16.0.0 + dependencies: + graphql: 15.8.0 + lodash.get: 4.4.2 + dev: false + /graphql-redis-subscriptions/2.5.0_nsv4zbviaf54hk5nfhl4slig7i: resolution: {integrity: sha512-l7Sc1gXdgNUGFlgWOpqh14ZDm6bM2PPCvMprSt/myZAhTjE2u5Gw5F4ndanS0JqRtO/QhzoZCqio7ewDHa9P3w==} peerDependencies: @@ -10169,6 +10768,16 @@ packages: resolution: {integrity: sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==} engines: {node: '>= 10.x'} + /gray-matter/4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + dev: true + /growl/1.10.5: resolution: {integrity: sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==} engines: {node: '>=4.x'} @@ -10210,7 +10819,7 @@ packages: dev: false /has-cors/1.1.0: - resolution: {integrity: sha512-g5VNKdkFuUuVCP9gYfDJHjK2nqdQJ7aDLTnycnc2+RvsOQbuLdF5pm7vuE5J76SEBIQjs4kQY/BWq74JUmjbXA==} + resolution: {integrity: sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=} dev: false /has-flag/3.0.0: @@ -10242,6 +10851,10 @@ packages: dependencies: function-bind: 1.1.1 + /hash-sum/2.0.0: + resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==} + dev: true + /he/1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true @@ -10263,6 +10876,57 @@ packages: engines: {node: '>=8'} dev: true + /histoire/0.12.4_sass@1.53.0+vite@3.2.4: + resolution: {integrity: sha512-q20Zncdh+GI2jDXiry1JS1DrN5qprKpl452AnS/P06Vgowqf79aG85E0XmhNpX2r8HI2HmIntwZ5FLd6hxYobQ==} + hasBin: true + peerDependencies: + vite: ^2.9.0 || ^3.0.0 || ^4.0.0 + dependencies: + '@histoire/app': 0.12.4_vite@3.2.4 + '@histoire/controls': 0.12.4 + '@histoire/shared': 0.12.4_vite@3.2.4 + '@histoire/vendors': 0.12.4 + '@types/flexsearch': 0.7.3 + '@types/markdown-it': 12.2.3 + birpc: 0.1.1 + change-case: 4.1.2 + chokidar: 3.5.3 + connect: 3.7.0 + defu: 6.1.2 + diacritics: 1.3.0 + flexsearch: 0.7.21 + fs-extra: 10.1.0 + globby: 13.1.3 + gray-matter: 4.0.3 + jiti: 1.16.2 + jsdom: 20.0.3 + markdown-it: 12.3.2 + markdown-it-anchor: 8.6.6_2zb4u3vubltivolgu556vv4aom + markdown-it-attrs: 4.1.6_markdown-it@12.3.2 + markdown-it-emoji: 2.0.2 + micromatch: 4.0.5 + mrmime: 1.0.1 + pathe: 0.2.0 + picocolors: 1.0.0 + sade: 1.8.1 + shiki-es: 0.1.2 + sirv: 2.0.2 + tinypool: 0.1.3 + vite: 3.2.4_sass@1.53.0 + vite-node: 0.26.0_sass@1.53.0 + transitivePeerDependencies: + - '@types/node' + - bufferutil + - canvas + - less + - sass + - stylus + - sugarss + - supports-color + - terser + - utf-8-validate + dev: true + /hosted-git-info/2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: true @@ -10363,6 +11027,7 @@ packages: url-join: 4.0.1 transitivePeerDependencies: - debug + - supports-color dev: true /https-proxy-agent/5.0.1: @@ -10391,6 +11056,7 @@ packages: stringify-object: 3.3.0 transitivePeerDependencies: - mkdirp + - supports-color dev: false /human-signals/1.1.1: @@ -10466,14 +11132,13 @@ packages: /imurmurhash/0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} - dev: true /indent-string/4.0.0: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} /indexof/0.0.1: - resolution: {integrity: sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==} + resolution: {integrity: sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=} dev: false /inflight/1.0.6: @@ -10526,7 +11191,7 @@ packages: mute-stream: 0.0.8 ora: 5.4.1 run-async: 2.4.1 - rxjs: 7.5.5 + rxjs: 7.6.0 string-width: 4.2.3 strip-ansi: 6.0.1 through: 2.3.8 @@ -10576,6 +11241,13 @@ packages: dependencies: fp-ts: 2.12.1 + /io-ts/2.2.16_fp-ts@2.13.1: + resolution: {integrity: sha512-y5TTSa6VP6le0hhmIyN0dqEXkrZeJLeC5KApJq6VLci3UEKF80lZ+KuoUs02RhBxNWlrqSNxzfI7otLX1Euv8Q==} + peerDependencies: + fp-ts: ^2.5.0 + dependencies: + fp-ts: 2.13.1 + /ioredis/5.2.4: resolution: {integrity: sha512-qIpuAEt32lZJQ0XyrloCRdlEdUUNGG9i0UOk6zgzK6igyudNWqEBxfH6OlbnOOoBBvr1WB02mm8fR55CnikRng==} engines: {node: '>=12.22.0'} @@ -10648,6 +11320,11 @@ packages: dependencies: has-tostringtag: 1.0.0 + /is-extendable/0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + dev: true + /is-extglob/2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -10724,7 +11401,6 @@ packages: /is-path-inside/3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} - dev: true /is-plain-obj/1.1.0: resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} @@ -10967,7 +11643,7 @@ packages: '@jest/environment': 27.5.1 '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 17.0.45 + '@types/node': 18.11.10 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 @@ -11225,7 +11901,7 @@ packages: '@jest/environment': 27.5.1 '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 17.0.45 + '@types/node': 18.11.10 jest-mock: 27.5.1 jest-util: 27.5.1 jsdom: 16.7.0 @@ -11243,7 +11919,7 @@ packages: '@jest/environment': 27.5.1 '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 17.0.45 + '@types/node': 18.11.10 jest-mock: 27.5.1 jest-util: 27.5.1 dev: true @@ -11322,7 +11998,7 @@ packages: '@jest/source-map': 27.5.1 '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 17.0.45 + '@types/node': 18.11.10 chalk: 4.1.2 co: 4.6.0 expect: 27.5.1 @@ -11430,12 +12106,23 @@ packages: stack-utils: 2.0.5 dev: true + /jest-mock-extended/3.0.1_4f6uxrzmuwipl5rr3bcogf6k74: + resolution: {integrity: sha512-RF4Ow8pXvbRuEcCTj56oYHmig5311BSFvbEGxPNYL51wGKGu93MvVQgx0UpFmjqyBXIcElkZo2Rke88kR1iSKQ==} + peerDependencies: + jest: ^24.0.0 || ^25.0.0 || ^26.0.0 || ^27.0.0 || ^28.0.0 || ^29.0.0 + typescript: ^3.0.0 || ^4.0.0 + dependencies: + jest: 29.3.1_j5wyyouvf5aixckc7ltaxrydha + ts-essentials: 7.0.3_typescript@4.9.3 + typescript: 4.9.3 + dev: true + /jest-mock/27.5.1: resolution: {integrity: sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 17.0.45 + '@types/node': 18.11.10 dev: true /jest-mock/29.3.1: @@ -11658,7 +12345,7 @@ packages: resolution: {integrity: sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@types/node': 17.0.45 + '@types/node': 18.11.10 graceful-fs: 4.2.10 dev: true @@ -11885,13 +12572,17 @@ packages: hasBin: true dev: true + /jiti/1.16.2: + resolution: {integrity: sha512-OKBOVWmU3FxDt/UH4zSwiKPuc1nihFZiOD722FuJlngvLz2glX1v2/TJIgoA4+mrpnXxHV6dSAoCvPcYQtoG5A==} + hasBin: true + dev: true + /joycon/3.1.1: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} engines: {node: '>=10'} /js-sdsl/4.1.4: resolution: {integrity: sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw==} - dev: true /js-tokens/4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -11951,6 +12642,47 @@ packages: - utf-8-validate dev: true + /jsdom/20.0.3: + resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} + engines: {node: '>=14'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + abab: 2.0.6 + acorn: 8.8.2 + acorn-globals: 7.0.1 + cssom: 0.5.0 + cssstyle: 2.3.0 + data-urls: 3.0.2 + decimal.js: 10.4.3 + domexception: 4.0.0 + escodegen: 2.0.0 + form-data: 4.0.0 + html-encoding-sniffer: 3.0.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.2 + parse5: 7.1.2 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 4.1.2 + w3c-xmlserializer: 4.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + ws: 8.11.0 + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + /jsesc/0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} hasBin: true @@ -11989,7 +12721,6 @@ packages: /json-stable-stringify-without-jsonify/1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - dev: true /json-stable-stringify/1.0.1: resolution: {integrity: sha512-i/J297TW6xyj7sDFa7AmBPkQvLIxWr2kKPWI26tXydnZrzVAocNqn5DMNT1Mzk0vit1V5UkRM7C1KdVNp7Lmcg==} @@ -12130,7 +12861,6 @@ packages: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 - dev: true /lie/3.3.0: resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} @@ -12150,6 +12880,12 @@ packages: /lines-and-columns/1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + /linkify-it/3.0.3: + resolution: {integrity: sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==} + dependencies: + uc.micro: 1.0.6 + dev: true + /lint-staged/12.5.0: resolution: {integrity: sha512-BKLUjWDsKquV/JuIcoQW4MSAI3ggwEImF1+sB4zaKvyVx1wBk3FsG7UK9bpnmBTN1pm7EH2BBcMwINJzCRv12g==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -12192,7 +12928,7 @@ packages: log-update: 4.0.0 p-map: 4.0.0 rfdc: 1.3.0 - rxjs: 7.5.5 + rxjs: 7.6.0 through: 2.3.8 wrap-ansi: 7.0.0 @@ -12215,6 +12951,15 @@ packages: engines: {node: '>=6.11.5'} dev: true + /loader-utils/2.0.4: + resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} + engines: {node: '>=8.9.0'} + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 2.2.1 + dev: true + /local-pkg/0.4.2: resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==} engines: {node: '>=14'} @@ -12232,7 +12977,6 @@ packages: engines: {node: '>=10'} dependencies: p-locate: 5.0.0 - dev: true /lodash-es/4.17.21: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} @@ -12291,7 +13035,6 @@ packages: /lodash.merge/4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - dev: true /lodash.omit/4.5.0: resolution: {integrity: sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==} @@ -12428,8 +13171,46 @@ packages: resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==} dev: false + /markdown-it-anchor/8.6.6_2zb4u3vubltivolgu556vv4aom: + resolution: {integrity: sha512-jRW30YGywD2ESXDc+l17AiritL0uVaSnWsb26f+68qaW9zgbIIr1f4v2Nsvc0+s0Z2N3uX6t/yAw7BwCQ1wMsA==} + peerDependencies: + '@types/markdown-it': '*' + markdown-it: '*' + dependencies: + '@types/markdown-it': 12.2.3 + markdown-it: 12.3.2 + dev: true + + /markdown-it-attrs/4.1.6_markdown-it@12.3.2: + resolution: {integrity: sha512-O7PDKZlN8RFMyDX13JnctQompwrrILuz2y43pW2GagcwpIIElkAdfeek+erHfxUOlXWPsjFeWmZ8ch1xtRLWpA==} + engines: {node: '>=6'} + peerDependencies: + markdown-it: '>= 9.0.0' + dependencies: + markdown-it: 12.3.2 + dev: true + + /markdown-it-emoji/2.0.2: + resolution: {integrity: sha512-zLftSaNrKuYl0kR5zm4gxXjHaOI3FAOEaloKmRA5hijmJZvSjmxcokOLlzycb/HXlUFWzXqpIEoyEMCE4i9MvQ==} + dev: true + + /markdown-it/12.3.2: + resolution: {integrity: sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==} + hasBin: true + dependencies: + argparse: 2.0.1 + entities: 2.1.0 + linkify-it: 3.0.3 + mdurl: 1.0.1 + uc.micro: 1.0.6 + dev: true + + /mdurl/1.0.1: + resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} + dev: true + /media-typer/0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + resolution: {integrity: sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=} engines: {node: '>= 0.6'} /memfs/3.4.12: @@ -12469,7 +13250,7 @@ packages: dev: true /merge-descriptors/1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + resolution: {integrity: sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=} /merge-stream/2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -12584,6 +13365,15 @@ packages: hasBin: true dev: true + /mlly/1.1.0: + resolution: {integrity: sha512-cwzBrBfwGC1gYJyfcy8TcZU1f+dbH/T+TuOhtYP2wLv/Fb51/uV7HJQfBPtEupZ2ORLRU1EKFS/QfS3eo9+kBQ==} + dependencies: + acorn: 8.8.2 + pathe: 1.1.0 + pkg-types: 1.0.1 + ufo: 1.0.1 + dev: true + /mocha/9.2.2: resolution: {integrity: sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==} engines: {node: '>= 12.0.0'} @@ -12615,6 +13405,11 @@ packages: yargs-unparser: 2.0.0 dev: true + /mri/1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + dev: true + /mrmime/1.0.1: resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} engines: {node: '>=10'} @@ -12673,7 +13468,6 @@ packages: /natural-compare/1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - dev: true /negotiator/0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} @@ -12793,6 +13587,10 @@ packages: resolution: {integrity: sha512-JYOWTeFoS0Z93587vRJgASD5Ut11fYl5NyihP3KrYBvMe1FRRs6RN7m20SA/16GM4P6hTnZjT+UmDOt38UeXNg==} dev: true + /nwsapi/2.2.2: + resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==} + dev: true + /object-assign/4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -12830,6 +13628,13 @@ packages: has-symbols: 1.0.3 object-keys: 1.1.1 + /on-finished/2.3.0: + resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + dev: true + /on-finished/2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -12894,7 +13699,6 @@ packages: prelude-ls: 1.2.1 type-check: 0.4.0 word-wrap: 1.2.3 - dev: true /ora/5.4.1: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} @@ -12949,7 +13753,6 @@ packages: engines: {node: '>=10'} dependencies: p-limit: 3.1.0 - dev: true /p-map/4.0.0: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} @@ -13017,6 +13820,12 @@ packages: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} dev: true + /parse5/7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + dependencies: + entities: 4.4.0 + dev: true + /parseqs/0.0.6: resolution: {integrity: sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==} dev: false @@ -13053,7 +13862,6 @@ packages: /path-exists/4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} - dev: true /path-is-absolute/1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} @@ -13084,7 +13892,7 @@ packages: dev: true /path-to-regexp/0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + resolution: {integrity: sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=} /path-to-regexp/3.2.0: resolution: {integrity: sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==} @@ -13107,6 +13915,14 @@ packages: util: 0.10.4 dev: false + /pathe/0.2.0: + resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} + dev: true + + /pathe/1.1.0: + resolution: {integrity: sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==} + dev: true + /pause-stream/0.0.11: resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} dependencies: @@ -13164,6 +13980,14 @@ packages: find-up: 4.1.0 dev: true + /pkg-types/1.0.1: + resolution: {integrity: sha512-jHv9HB+Ho7dj6ItwppRDDl0iZRYBD0jsakHXtFgoLr+cHSF6xC+QL54sJmWxyGxOLYSHm0afhXhXcQDQqH9z8g==} + dependencies: + jsonc-parser: 3.2.0 + mlly: 1.1.0 + pathe: 1.1.0 + dev: true + /pluralize/8.0.0: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} @@ -13176,6 +14000,8 @@ packages: async: 2.6.4 debug: 3.2.7 mkdirp: 0.5.6 + transitivePeerDependencies: + - supports-color dev: true /postcss-load-config/3.1.4: @@ -13249,7 +14075,6 @@ packages: /prelude-ls/1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - dev: true /prettier-linter-helpers/1.0.0: resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} @@ -13308,6 +14133,15 @@ packages: react-is: 18.2.0 dev: true + /prisma/4.9.0: + resolution: {integrity: sha512-bS96oZ5oDFXYgoF2l7PJ3Mp1wWWfLOo8B/jAfbA2Pn0Wm5Z/owBHzaMQKS3i1CzVBDWWPVnOohmbJmjvkcHS5w==} + engines: {node: '>=14.17'} + hasBin: true + requiresBuild: true + dependencies: + '@prisma/engines': 4.9.0 + dev: false + /process-nextick-args/2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -13400,6 +14234,10 @@ packages: deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. dev: false + /querystringify/2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + dev: true + /queue-microtask/1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -13566,7 +14404,6 @@ packages: /regexpp/3.2.0: resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} engines: {node: '>=8'} - dev: true /regexpu-core/5.1.0: resolution: {integrity: sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==} @@ -13813,7 +14650,6 @@ packages: hasBin: true optionalDependencies: fsevents: 2.3.2 - dev: true /run-async/2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} @@ -13836,12 +14672,20 @@ packages: resolution: {integrity: sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==} dependencies: tslib: 2.4.1 + dev: false /rxjs/7.6.0: resolution: {integrity: sha512-DDa7d8TFNUalGC9VqXvQ1euWNN7sc63TrUCuM9J998+ViviahMIjKSOU7rfcgFOF+FCD71BhDRv4hrFz+ImDLQ==} dependencies: tslib: 2.4.1 + /sade/1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + dependencies: + mri: 1.2.0 + dev: true + /safe-buffer/5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} @@ -13871,6 +14715,13 @@ packages: xmlchars: 2.2.0 dev: true + /saxes/6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} + dependencies: + xmlchars: 2.2.0 + dev: true + /schema-utils/3.1.1: resolution: {integrity: sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==} engines: {node: '>= 10.13.0'} @@ -13884,6 +14735,14 @@ packages: resolution: {integrity: sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg==} dev: true + /section-matter/1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + dev: true + /secure-compare/3.0.1: resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==} dev: true @@ -14033,6 +14892,10 @@ packages: rechoir: 0.6.2 dev: true + /shiki-es/0.1.2: + resolution: {integrity: sha512-eqtfk8idlYlSLAn0gp0Ly2+FbKc2d78IddigHSS4iHAnpXoY2kdRzyFGZOdi6TvemYMnRhZBi1HsSqZc5eNKqg==} + dev: true + /side-channel/1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: @@ -14064,6 +14927,11 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + /slash/4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + dev: true + /slice-ansi/3.0.0: resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} engines: {node: '>=8'} @@ -14110,6 +14978,7 @@ packages: to-array: 0.1.4 transitivePeerDependencies: - bufferutil + - supports-color - utf-8-validate dev: false @@ -14150,6 +15019,8 @@ packages: component-emitter: 1.3.0 debug: 3.1.0 isarray: 2.0.1 + transitivePeerDependencies: + - supports-color dev: false /socket.io-parser/4.0.5: @@ -14274,6 +15145,11 @@ packages: resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} dev: false + /statuses/1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + dev: true + /statuses/2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} @@ -14397,6 +15273,11 @@ packages: ansi-regex: 6.0.1 dev: false + /strip-bom-string/1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + dev: true + /strip-bom/3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} @@ -14426,11 +15307,9 @@ packages: /strip-json-comments/3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - dev: true /style-mod/4.0.0: resolution: {integrity: sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==} - dev: false /subscriptions-transport-ws/0.11.0_graphql@15.8.0: resolution: {integrity: sha512-8D4C6DIH5tGiAIpp5I0wD/xRlNiZAPGHygzCe7VzyzUoxHtawzjNAY9SUTXU05/EY2NMY9/9GF0ycizkXr1CWQ==} @@ -14675,7 +15554,6 @@ packages: /text-table/0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - dev: true /thenify-all/1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} @@ -14709,6 +15587,11 @@ packages: resolution: {integrity: sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==} dev: true + /tinypool/0.1.3: + resolution: {integrity: sha512-2IfcQh7CP46XGWGGbdyO4pjcKqsmVqFAPcXfPxcPXmOWt9cYkTP9HcDmGgsfijYoAEc4z9qcpM/BaBz46Y9/CQ==} + engines: {node: '>=14.0.0'} + dev: true + /tippy.js/6.3.7: resolution: {integrity: sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==} dependencies: @@ -14740,7 +15623,7 @@ packages: dev: true /to-array/0.1.4: - resolution: {integrity: sha512-LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A==} + resolution: {integrity: sha1-F+bBH3PdTz10zaek/zI46a2b+JA=} dev: false /to-fast-properties/2.0.0: @@ -14771,6 +15654,16 @@ packages: universalify: 0.1.2 dev: true + /tough-cookie/4.1.2: + resolution: {integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==} + engines: {node: '>=6'} + dependencies: + psl: 1.9.0 + punycode: 2.1.1 + universalify: 0.2.0 + url-parse: 1.5.10 + dev: true + /tr46/0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} @@ -14786,6 +15679,13 @@ packages: punycode: 2.1.1 dev: true + /tr46/3.0.0: + resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} + engines: {node: '>=12'} + dependencies: + punycode: 2.1.1 + dev: true + /tree-kill/1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true @@ -14805,6 +15705,14 @@ packages: typescript: 4.7.4 dev: true + /ts-essentials/7.0.3_typescript@4.9.3: + resolution: {integrity: sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==} + peerDependencies: + typescript: '>=3.7.0' + dependencies: + typescript: 4.9.3 + dev: true + /ts-interface-checker/0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} @@ -14893,7 +15801,7 @@ packages: resolution: {integrity: sha512-DEQrfv6l7IvN2jlzc/VTdZJYsWUnQNCsueYjMkC/iXoEoi5fNan6MjeDqkvhfzbmHgdz9UxDUluX3V5HdjTydQ==} dev: true - /ts-node/10.8.2_x2utdhayajzrh747hktprshhby: + /ts-node/10.8.2_7cep2inysldxstbcrxlp3njwym: resolution: {integrity: sha512-LYdGnoGddf1D6v8REPtIH+5iq/gTDuZqv2/UJUU7tKjuEU8xVZorBM+buCGNjj+pGEud+sOoM4CX3/YzINpENA==} hasBin: true peerDependencies: @@ -14919,7 +15827,7 @@ packages: create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.7.4 + typescript: 4.9.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true @@ -15109,7 +16017,6 @@ packages: engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 - dev: true /type-detect/4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} @@ -15129,7 +16036,6 @@ packages: /type-fest/0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} - dev: true /type-fest/0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} @@ -15186,10 +16092,18 @@ packages: resolution: {integrity: sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg==} dev: true + /uc.micro/1.0.6: + resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} + dev: true + /ufo/0.8.5: resolution: {integrity: sha512-e4+UtA5IRO+ha6hYklwj6r7BjiGMxS0O+UaSg9HbaTefg4kMkzj4tXzEBajRR+wkxf+golgAWKzLbytCUDMJAA==} dev: true + /ufo/1.0.1: + resolution: {integrity: sha512-boAm74ubXHY7KJQZLlXrtMz52qFvpsbOxDcZOnw/Wf+LS4Mmyu7JxmzD4tDLtUQtmZECypJ0FrCz4QIe6dvKRA==} + dev: true + /unbox-primitive/1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: @@ -15249,6 +16163,11 @@ packages: engines: {node: '>= 4.0.0'} dev: true + /universalify/0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + dev: true + /universalify/2.0.0: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} @@ -15264,6 +16183,39 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} + /unplugin-icons/0.14.9_ucej6auec2vidlux2n3htzvxf4: + resolution: {integrity: sha512-vPyVfNREH88dP6gszdaoGkAEFPpiScXj1A8eWN905jQgT53A3tsiPEiqJjCHOUVcsUaREt2JSudzumFOsCA78A==} + peerDependencies: + '@svgr/core': '>=5.5.0' + '@vue/compiler-sfc': ^3.0.2 + vue-template-compiler: ^2.6.12 + vue-template-es2015-compiler: ^1.9.0 + peerDependenciesMeta: + '@svgr/core': + optional: true + '@vue/compiler-sfc': + optional: true + vue-template-compiler: + optional: true + vue-template-es2015-compiler: + optional: true + dependencies: + '@antfu/install-pkg': 0.1.0 + '@antfu/utils': 0.5.2 + '@iconify/utils': 1.0.33 + '@vue/compiler-sfc': 3.2.45 + debug: 4.3.4 + kolorist: 1.5.1 + local-pkg: 0.4.2 + unplugin: 0.9.5_vite@3.2.4 + transitivePeerDependencies: + - esbuild + - rollup + - supports-color + - vite + - webpack + dev: true + /unplugin-icons/0.14.9_vite@3.2.4: resolution: {integrity: sha512-vPyVfNREH88dP6gszdaoGkAEFPpiScXj1A8eWN905jQgT53A3tsiPEiqJjCHOUVcsUaREt2JSudzumFOsCA78A==} peerDependencies: @@ -15430,7 +16382,7 @@ packages: dependencies: acorn: 8.8.0 chokidar: 3.5.3 - vite: 3.2.4 + vite: 3.2.4_sass@1.53.0 webpack-sources: 3.2.3 webpack-virtual-modules: 0.4.4 dev: true @@ -15478,7 +16430,7 @@ packages: dependencies: acorn: 8.8.0 chokidar: 3.5.3 - vite: 3.2.4 + vite: 3.2.4_sass@1.53.0 webpack-sources: 3.2.3 webpack-virtual-modules: 0.4.4 dev: true @@ -15518,6 +16470,13 @@ packages: resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} dev: true + /url-parse/1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + dev: true + /url/0.11.0: resolution: {integrity: sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==} dependencies: @@ -15546,7 +16505,7 @@ packages: dev: false /utils-merge/1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + resolution: {integrity: sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=} engines: {node: '>= 0.4.0'} /uuid/8.3.2: @@ -15604,6 +16563,66 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} + /vite-node/0.26.0_sass@1.53.0: + resolution: {integrity: sha512-nLtHWCv6reONl1oFsKhQ/LT7n3UNLpvVARAJlmGrQV6qSElht/9AdN41Pa+WSkw2Winh682UzM0Yw0GNlfqejw==} + engines: {node: '>=v14.16.0'} + hasBin: true + dependencies: + debug: 4.3.4 + mlly: 1.1.0 + pathe: 0.2.0 + source-map: 0.6.1 + source-map-support: 0.5.21 + vite: 3.2.4_sass@1.53.0 + transitivePeerDependencies: + - '@types/node' + - less + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /vite-plugin-checker/0.5.1_ijzhftcbnq5djhrq5avbc76z6m: + resolution: {integrity: sha512-NFiO1PyK9yGuaeSnJ7Whw9fnxLc1AlELnZoyFURnauBYhbIkx9n+PmIXxSFUuC9iFyACtbJQUAEuQi6yHs2Adg==} + engines: {node: '>=14.16'} + peerDependencies: + eslint: '>=7' + typescript: '*' + vite: ^2.0.0 || ^3.0.0-0 + vls: '*' + vti: '*' + peerDependenciesMeta: + eslint: + optional: true + typescript: + optional: true + vls: + optional: true + vti: + optional: true + dependencies: + '@babel/code-frame': 7.18.6 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + chokidar: 3.5.3 + commander: 8.3.0 + eslint: 8.29.0 + fast-glob: 3.2.11 + lodash.debounce: 4.0.8 + lodash.pick: 4.4.0 + npm-run-path: 4.0.1 + strip-ansi: 6.0.1 + tiny-invariant: 1.2.0 + typescript: 4.9.3 + vite: 3.2.4_sass@1.53.0 + vscode-languageclient: 7.0.0 + vscode-languageserver: 7.0.0 + vscode-languageserver-textdocument: 1.0.7 + vscode-uri: 3.0.3 + dev: true + /vite-plugin-checker/0.5.1_kjjvnh3jl66vp4phsscdedqila: resolution: {integrity: sha512-NFiO1PyK9yGuaeSnJ7Whw9fnxLc1AlELnZoyFURnauBYhbIkx9n+PmIXxSFUuC9iFyACtbJQUAEuQi6yHs2Adg==} engines: {node: '>=14.16'} @@ -15643,6 +16662,19 @@ packages: vscode-uri: 3.0.3 dev: true + /vite-plugin-eslint/1.8.1_eslint@8.29.0+vite@3.2.4: + resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==} + peerDependencies: + eslint: '>=7' + vite: '>=2' + dependencies: + '@rollup/pluginutils': 4.2.1 + '@types/eslint': 8.4.10 + eslint: 8.29.0 + rollup: 2.79.1 + vite: 3.2.4_sass@1.53.0 + dev: false + /vite-plugin-fonts/0.6.0_vite@3.1.4: resolution: {integrity: sha512-dV6nnLEju8k5EmvlBH6egxkVZ+rgc5zWsJr9+cNRXBMEDnpRGHcZPI260UEDNg2yB99wSTNER2eduEvZFbMIGw==} peerDependencies: @@ -15658,7 +16690,7 @@ packages: vite: ^2.0.0 || ^3.0.0 dependencies: fast-glob: 3.2.11 - vite: 3.2.4 + vite: 3.2.4_sass@1.53.0 dev: true /vite-plugin-html-config/1.0.10_vite@3.1.4: @@ -15676,7 +16708,7 @@ packages: peerDependencies: vite: '>=2.0.0' dependencies: - vite: 3.2.4 + vite: 3.2.4_sass@1.53.0 dev: true /vite-plugin-inspect/0.7.4_vite@3.1.4: @@ -15708,7 +16740,7 @@ packages: kolorist: 1.5.1 sirv: 2.0.2 ufo: 0.8.5 - vite: 3.2.4 + vite: 3.2.4_sass@1.53.0 transitivePeerDependencies: - supports-color dev: true @@ -15717,6 +16749,30 @@ packages: resolution: {integrity: sha512-8GlmNSeObvDVUdmgutfWnGBZGsn3Zb8IXCjRODFB0tOhQqAQPZRwXrFha6ZLjvF4DgVJI3sW2FfiXa1wFxJvmg==} dev: true + /vite-plugin-pages/0.26.0_ucej6auec2vidlux2n3htzvxf4: + resolution: {integrity: sha512-yJZvwHEt7puYIf19S89IvkDsWPjWleSied4H8hmdW6i8buCA93z1UAU1ipW1d8fNKrC4FzXsUHHbPm6+kl1p9w==} + peerDependencies: + '@vue/compiler-sfc': ^2.7.0 || ^3.0.0 + vite: ^2.0.0 || ^3.0.0-0 + peerDependenciesMeta: + '@vue/compiler-sfc': + optional: true + dependencies: + '@types/debug': 4.1.7 + '@vue/compiler-sfc': 3.2.45 + debug: 4.3.4 + deep-equal: 2.0.5 + extract-comments: 1.1.0 + fast-glob: 3.2.11 + json5: 2.2.1 + local-pkg: 0.4.2 + picocolors: 1.0.0 + vite: 3.2.4_sass@1.53.0 + yaml: 2.1.1 + transitivePeerDependencies: + - supports-color + dev: true + /vite-plugin-pages/0.26.0_vite@3.2.4: resolution: {integrity: sha512-yJZvwHEt7puYIf19S89IvkDsWPjWleSied4H8hmdW6i8buCA93z1UAU1ipW1d8fNKrC4FzXsUHHbPm6+kl1p9w==} peerDependencies: @@ -15764,10 +16820,29 @@ packages: - supports-color dev: true - /vite-plugin-pwa/0.13.1_vite@3.1.4: + /vite-plugin-pwa/0.13.1_3kw35epztoiwny7qtfesjexvtu: resolution: {integrity: sha512-NR3dIa+o2hzlzo4lF4Gu0cYvoMjSw2DdRc6Epw1yjmCqWaGuN86WK9JqZie4arNlE1ZuWT3CLiMdiX5wcmmUmg==} peerDependencies: vite: ^3.1.0 + workbox-window: ^6.5.4 + dependencies: + debug: 4.3.4 + fast-glob: 3.2.11 + pretty-bytes: 6.0.0 + rollup: 2.79.1 + vite: 3.2.4 + workbox-build: 6.5.4 + workbox-window: 6.5.4 + transitivePeerDependencies: + - '@types/babel__core' + - supports-color + dev: true + + /vite-plugin-pwa/0.13.1_bg4cnt4dy3xq3a47wkujd6ryzq: + resolution: {integrity: sha512-NR3dIa+o2hzlzo4lF4Gu0cYvoMjSw2DdRc6Epw1yjmCqWaGuN86WK9JqZie4arNlE1ZuWT3CLiMdiX5wcmmUmg==} + peerDependencies: + vite: ^3.1.0 + workbox-window: ^6.5.4 dependencies: debug: 4.3.4 fast-glob: 3.2.11 @@ -15785,19 +16860,32 @@ packages: resolution: {integrity: sha512-NR3dIa+o2hzlzo4lF4Gu0cYvoMjSw2DdRc6Epw1yjmCqWaGuN86WK9JqZie4arNlE1ZuWT3CLiMdiX5wcmmUmg==} peerDependencies: vite: ^3.1.0 + workbox-window: ^6.5.4 dependencies: debug: 4.3.4 fast-glob: 3.2.11 pretty-bytes: 6.0.0 rollup: 2.79.1 - vite: 3.2.4 + vite: 3.2.4_sass@1.53.0 workbox-build: 6.5.4 - workbox-window: 6.5.4 transitivePeerDependencies: - '@types/babel__core' - supports-color dev: true + /vite-plugin-static-copy/0.12.0_vite@3.2.4: + resolution: {integrity: sha512-5a8hCjYJdf/rl8s7ct/YWt97gXdGPGNSOoJtkY5IYhbnSq04X1gTt5GpFHKfAxhHoed1Grfw3Ed13t7AjJi7gw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^3.0.0 + dependencies: + chokidar: 3.5.3 + fast-glob: 3.2.12 + fs-extra: 10.1.0 + picocolors: 1.0.0 + vite: 3.2.4 + dev: true + /vite-plugin-vue-layouts/0.7.0_oewzdqozxqnqgsrjzmwikx34vi: resolution: {integrity: sha512-k5XDmRNFo4M/GmUjhbRXj2WmJiFcGoVI8l/uZ72RHyRDQr4wE/6Zq/KFq0lqXomWQxTSzakQRUswzNwtvZLE8A==} peerDependencies: @@ -15831,6 +16919,23 @@ packages: - supports-color dev: true + /vite-plugin-vue-layouts/0.7.0_x3isqn4gd6tlkzc66bnhwnhwbi: + resolution: {integrity: sha512-k5XDmRNFo4M/GmUjhbRXj2WmJiFcGoVI8l/uZ72RHyRDQr4wE/6Zq/KFq0lqXomWQxTSzakQRUswzNwtvZLE8A==} + peerDependencies: + vite: ^2.5.0 || ^3.0.0-0 + vue: ^2.6.12 || ^3.2.4 + vue-router: ^3.5.1 || ^ 4.0.11 + dependencies: + '@vue/compiler-sfc': 3.2.39 + debug: 4.3.4 + fast-glob: 3.2.11 + vite: 3.2.4_sass@1.53.0 + vue: 3.2.45 + vue-router: 4.1.0_vue@3.2.45 + transitivePeerDependencies: + - supports-color + dev: true + /vite-plugin-windicss/1.8.8_vite@3.1.4: resolution: {integrity: sha512-iyu+ZX0NmhNEUaLPv7xtC+EFRBpWMmw0nhd9a9upayfuNG/thwslKiQKmRB7U/dG0k/2oWLvPDvN/B9i7oRgSA==} peerDependencies: @@ -15853,39 +16958,12 @@ packages: '@windicss/plugin-utils': 1.8.8 debug: 4.3.4 kolorist: 1.5.1 - vite: 3.2.4 + vite: 3.2.4_sass@1.53.0 windicss: 3.5.6 transitivePeerDependencies: - supports-color dev: true - /vite/3.1.0: - resolution: {integrity: sha512-YBg3dUicDpDWFCGttmvMbVyS9ydjntwEjwXRj2KBFwSB8SxmGcudo1yb8FW5+M/G86aS8x828ujnzUVdsLjs9g==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - less: '*' - sass: '*' - stylus: '*' - terser: ^5.4.0 - peerDependenciesMeta: - less: - optional: true - sass: - optional: true - stylus: - optional: true - terser: - optional: true - dependencies: - esbuild: 0.15.7 - postcss: 8.4.16 - resolve: 1.22.1 - rollup: 2.78.1 - optionalDependencies: - fsevents: 2.3.2 - dev: true - /vite/3.1.4_sass@1.53.0: resolution: {integrity: sha512-JoQI08aBjY9lycL7jcEq4p9o1xUjq5aRvdH4KWaXtkSx7e7RpAh9D3IjzDWRD4Fg44LS3oDAIOG/Kq1L+82psA==} engines: {node: ^14.18.0 || >=16.0.0} @@ -15946,6 +17024,39 @@ packages: fsevents: 2.3.2 dev: true + /vite/3.2.4_sass@1.53.0: + resolution: {integrity: sha512-Z2X6SRAffOUYTa+sLy3NQ7nlHFU100xwanq1WDwqaiFiCe+25zdxP1TfCS5ojPV2oDDcXudHIoPnI1Z/66B7Yw==} + 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: + esbuild: 0.15.15 + postcss: 8.4.19 + resolve: 1.22.1 + rollup: 2.79.1 + sass: 1.53.0 + optionalDependencies: + fsevents: 2.3.2 + /vscode-jsonrpc/6.0.0: resolution: {integrity: sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==} engines: {node: '>=8.0.0 || >=10.0.0'} @@ -16005,6 +17116,21 @@ packages: vue: 3.2.37 dev: false + /vue-demi/0.13.1_vue@3.2.45: + resolution: {integrity: sha512-xmkJ56koG3ptpLnpgmIzk9/4nFf4CqduSJbUM0OdPoU87NwRuZ6x49OLhjSa/fC15fV+5CbEnrxU4oyE022svg==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.2.45 + dev: false + /vue-eslint-parser/9.1.0_eslint@8.24.0: resolution: {integrity: sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==} engines: {node: ^14.17.0 || >=16.0.0} @@ -16041,6 +17167,24 @@ packages: - supports-color dev: true + /vue-eslint-parser/9.1.0_eslint@8.29.0: + resolution: {integrity: sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + debug: 4.3.4 + eslint: 8.29.0 + eslint-scope: 7.1.1 + eslint-visitor-keys: 3.3.0 + espree: 9.4.0 + esquery: 1.4.0 + lodash: 4.17.21 + semver: 7.3.7 + transitivePeerDependencies: + - supports-color + dev: true + /vue-github-button/3.0.3: resolution: {integrity: sha512-O2Kv5HxRMn1qqgt2sSy8N7y2C6WGOeICzgGj6y+JFcnLjorTTzNR8vY5abiPOYDiW03WZ/9hUIn7Gm9CG9pIuA==} dependencies: @@ -16059,6 +17203,25 @@ packages: '@vue/devtools-api': 6.2.1 vue: 3.2.37 + /vue-loader/16.8.3_tfvhctuaqmmqnirfl65c47tqwu: + resolution: {integrity: sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==} + peerDependencies: + '@vue/compiler-sfc': ^3.0.8 + vue: ^3.2.13 + webpack: ^4.1.0 || ^5.0.0-0 + peerDependenciesMeta: + '@vue/compiler-sfc': + optional: true + vue: + optional: true + dependencies: + '@vue/compiler-sfc': 3.2.45 + chalk: 4.1.2 + hash-sum: 2.0.0 + loader-utils: 2.0.4 + vue: 3.2.45 + dev: true + /vue-pdf-embed/1.1.4_vue@3.2.37: resolution: {integrity: sha512-d4c7nM3LneWUiL4MssIyPHfGgVMRPh4Z7UgLsXMZ+lbAtH/6SBUFHdzZQLY2BASdh16BM/v6YCbmtQU+KIQdrg==} peerDependencies: @@ -16075,6 +17238,14 @@ packages: '@vue/devtools-api': 6.2.1 vue: 3.2.37 + /vue-router/4.1.0_vue@3.2.45: + resolution: {integrity: sha512-A+dYO0ZXLJFZ40ebW3XtqehCW0Wv2xNH4lFddOByDja4NtItEdyirrShTlvD3UA4xc5a5mG2RRI30BusYpOb9g==} + peerDependencies: + vue: ^3.2.0 + dependencies: + '@vue/devtools-api': 6.2.1 + vue: 3.2.45 + /vue-template-compiler/2.7.14: resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==} dependencies: @@ -16091,6 +17262,15 @@ packages: vue: 3.2.37 dev: false + /vue-tippy/6.0.0-alpha.58_vue@3.2.45: + resolution: {integrity: sha512-kfpkFZMvua+nTn9Mqx3v5UrY8rlu3nHiOoGKO1bhSM0CUG8ISygfofSDwLDUW6wAcAHABkF7vcp5sPqhTb26CA==} + peerDependencies: + vue: ^3.0.0 + dependencies: + tippy.js: 6.3.7 + vue: 3.2.45 + dev: false + /vue-tsc/0.38.2_typescript@4.7.4: resolution: {integrity: sha512-+OMmpw9BZC9khul3I1HGtWchv7BCiaM7NvfdilVAiOFkjnivIoaW6jJm6YPQJaEPouePtpkDUWovyzgNxWdDsw==} hasBin: true @@ -16101,6 +17281,16 @@ packages: typescript: 4.7.4 dev: true + /vue-tsc/0.38.2_typescript@4.9.3: + resolution: {integrity: sha512-+OMmpw9BZC9khul3I1HGtWchv7BCiaM7NvfdilVAiOFkjnivIoaW6jJm6YPQJaEPouePtpkDUWovyzgNxWdDsw==} + hasBin: true + peerDependencies: + typescript: '*' + dependencies: + '@volar/vue-typescript': 0.38.2 + typescript: 4.9.3 + dev: true + /vue-tsc/1.0.9_typescript@4.7.4: resolution: {integrity: sha512-vRmHD1K6DmBymNhoHjQy/aYKTRQNLGOu2/ESasChG9Vy113K6CdP0NlhR0bzgFJfv2eFB9Ez/9L5kIciUajBxQ==} hasBin: true @@ -16146,6 +17336,15 @@ packages: vue: 3.2.37 dev: false + /vuedraggable/4.1.0_vue@3.2.45: + resolution: {integrity: sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==} + peerDependencies: + vue: ^3.0.1 + dependencies: + sortablejs: 1.14.0 + vue: 3.2.45 + dev: false + /w3c-hr-time/1.0.2: resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} dependencies: @@ -16154,7 +17353,6 @@ packages: /w3c-keyname/2.2.4: resolution: {integrity: sha512-tOhfEwEzFLJzf6d1ZPkYfGj+FWhIpBux9ppoP3rlclw3Z0BZv3N7b7030Z1kYth+6rDuAsXUFr+d0VE6Ed1ikw==} - dev: false /w3c-xmlserializer/2.0.0: resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==} @@ -16163,6 +17361,13 @@ packages: xml-name-validator: 3.0.0 dev: true + /w3c-xmlserializer/4.0.0: + resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} + engines: {node: '>=14'} + dependencies: + xml-name-validator: 4.0.0 + dev: true + /walker/1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} dependencies: @@ -16207,6 +17412,11 @@ packages: engines: {node: '>=10.4'} dev: true + /webidl-conversions/7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + dev: true + /webpack-node-externals/3.0.0: resolution: {integrity: sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==} engines: {node: '>=6'} @@ -16303,7 +17513,14 @@ packages: /whatwg-mimetype/3.0.0: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} - dev: false + + /whatwg-url/11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} + dependencies: + tr46: 3.0.0 + webidl-conversions: 7.0.0 + dev: true /whatwg-url/5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} @@ -16393,7 +17610,6 @@ packages: /word-wrap/1.2.3: resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} engines: {node: '>=0.10.0'} - dev: true /workbox-background-sync/6.5.4: resolution: {integrity: sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g==} @@ -16602,7 +17818,6 @@ packages: optional: true utf-8-validate: optional: true - dev: false /ws/8.2.3: resolution: {integrity: sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==} @@ -16797,7 +18012,7 @@ packages: dev: false /yeast/0.1.2: - resolution: {integrity: sha512-8HFIh676uyGYP6wP13R/j6OJ/1HwJ46snpvzE7aHAN3Ryqh2yX6Xox2B4CUmTwwOIzlG3Bs7ocsP5dZH/R1Qbg==} + resolution: {integrity: sha1-AI4G2AlDIMNy28L47XagymyKxBk=} dev: false /yn/3.1.1: