diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 785378f91b..b18db1b881 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -11,3 +11,7 @@ - [ ] **Create an issue and link to the pull request.** Note: Keeping the PR small and focused helps make it easier to review and merge. If you have multiple changes you want to make, please consider submitting them as separate pull requests. + +### Publishing to New Package Managers + +Please see [here](../publishing.md) for more information. diff --git a/.github/workflows/release-snap.yml b/.github/workflows/release-snap.yml index 2e730508c9..16a8d2e865 100644 --- a/.github/workflows/release-snap.yml +++ b/.github/workflows/release-snap.yml @@ -27,7 +27,11 @@ jobs: run: npm install --legacy-peer-deps - name: Build Electron app - run: npm run build:electron:snap + run: | + npm run build:bruno-query + npm run build:graphql-docs + npm run build:web + npm run build:electron:snap - name: Install Snapcraft run: | diff --git a/contributing.md b/contributing.md index 966a6134b3..0d6efdffa6 100644 --- a/contributing.md +++ b/contributing.md @@ -1,12 +1,12 @@ -**English** | [Українська](/contributing_ua.md) | [Русский](/contributing_ru.md) +**English** | [Українська](docs/contributing/contributing_ua.md) | [Русский](docs/contributing/contributing_ru.md) | [Türkçe](docs/contributing/contributing_tr.md) | [Deutsch](docs/contributing/contributing_de.md) | [Français](docs/contributing/contributing_fr.md) -## Lets make bruno better, together !! +## Let's make bruno better, together !! -I am happy that you are looking to improve bruno. Below are the guidelines to get started bringing up bruno on your computer. +We are happy that you are looking to improve bruno. Below are the guidelines to get started bringing up bruno on your computer. ### Technology Stack -Bruno is built using NextJs and React. We also use electron to ship a desktop version (that supports local collections) +Bruno is built using Next.js and React. We also use electron to ship a desktop version (that supports local collections) Libraries we use @@ -23,9 +23,59 @@ Libraries we use You would need [Node v18.x or the latest LTS version](https://nodejs.org/en/) and npm 8.x. We use npm workspaces in the project -### Lets start coding +## Development -Please reference [development.md](docs/development.md) for instructions on running the local development environment. +Bruno is being developed as a desktop app. You need to load the app by running the Next.js app in one terminal and then run the electron app in another terminal. + +### Dependencies + +- NodeJS v18 + +### Local Development + +```bash +# use nodejs 18 version +nvm use + +# install deps +npm i --legacy-peer-deps + +# build graphql docs +npm run build:graphql-docs + +# build bruno query +npm run build:bruno-query + +# run next app (terminal 1) +npm run dev:web + +# run electron app (terminal 2) +npm run dev:electron +``` + +### Troubleshooting + +You might encounter a `Unsupported platform` error when you run `npm install`. To fix this, you will need to delete `node_modules` and `package-lock.json` and run `npm install`. This should install all the necessary packages needed to run the app. + +```shell +# Delete node_modules in sub-directories +find ./ -type d -name "node_modules" -print0 | while read -d $'\0' dir; do + rm -rf "$dir" +done + +# Delete package-lock in sub-directories +find . -type f -name "package-lock.json" -delete +``` + +### Testing + +```bash +# bruno-schema +npm test --workspace=packages/bruno-schema + +# bruno-lang +npm test --workspace=packages/bruno-lang +``` ### Raising Pull Request @@ -33,5 +83,5 @@ Please reference [development.md](docs/development.md) for instructions on runni - Please follow the format of creating branches - feature/[feature name]: This branch should contain changes for a specific feature - Example: feature/dark-mode - - bugfix/[bug name]: This branch should container only bug fixes for a specific bug + - bugfix/[bug name]: This branch should contain only bug fixes for a specific bug - Example bugfix/bug-1 diff --git a/contributing_ru.md b/contributing_ru.md deleted file mode 100644 index 6636004ba5..0000000000 --- a/contributing_ru.md +++ /dev/null @@ -1,37 +0,0 @@ -[English](/contributing.md) | [Українська](/contributing_ua.md) | **Русский** - -## Давайте вместе сделаем Бруно лучше!!! - -Я рад, что Вы хотите усовершенствовать bruno. Ниже приведены рекомендации по запуску bruno на вашем компьютере. - -### Стек - -Bruno построен с использованием NextJs и React. Мы также используем electron для поставки десктопной версии ( которая поддерживает локальные коллекции ) - -Библиотеки, которые мы используем - -- CSS - Tailwind -- Редакторы кода - Codemirror -- Управление состоянием - Redux -- Иконки - Tabler Icons -- Формы - formik -- Валидация схем - Yup -- Запросы клиента - axios -- Наблюдатель за файловой системой - chokidar - -### Зависимости - -Вам потребуется [Node v18.x или последняя версия LTS](https://nodejs.org/en/) и npm 8.x. В проекте мы используем рабочие пространства npm - -### Приступим к коду - -Пожалуйста, обратитесь к [development_ru.md](docs/development_ru.md) для получения инструкций по запуску локальной среды разработки. - -### Создание Pull Request - -- Пожалуйста, пусть PR будет небольшим и сфокусированным на одной вещи -- Пожалуйста, соблюдайте формат создания веток - - feature/[название функции]: Эта ветка должна содержать изменения для конкретной функции - - Пример: feature/dark-mode - - bugfix/[название ошибки]: Эта ветка должна содержать только исправления для конкретной ошибки - - Пример bugfix/bug-1 diff --git a/contributing_ua.md b/contributing_ua.md deleted file mode 100644 index 75760f5653..0000000000 --- a/contributing_ua.md +++ /dev/null @@ -1,37 +0,0 @@ -[English](/contributing.md) | **Українська** | [Русский](/contributing_ru.md) - -## Давайте зробимо Bruno краще, разом !! - -Я дуже радий що Ви бажаєте покращити Bruno. Нижче наведені вказівки як розпочати розробку Bruno на Вашому комп'ютері. - -### Стек технологій - -Bruno побудований на NextJs та React. Також для десктопної версії (яка підтримує локальні колекції) використовується Electron - -Бібліотеки, які ми використовуємо - -- CSS - Tailwind -- Редактори коду - Codemirror -- Керування станом - Redux -- Іконки - Tabler Icons -- Форми - formik -- Валідація по схемі - Yup -- Клієнт запитів - axios -- Спостерігач за файловою системою - chokidar - -### Залежності - -Вам знадобиться [Node v18.x або остання LTS версія](https://nodejs.org/en/) та npm 8.x. Ми використовуєм npm workspaces в цьому проекті - -### Починаєм писати код - -Будь ласка, зверніться до [development_ua.md](docs/development_ua.md) за інструкціями щодо запуску локального середовища розробки. - -### Створення Pull Request-ів - -- Будь ласка, робіть PR-и маленькими і сфокусованими на одній речі -- Будь ласка, слідуйте формату назв гілок - - feature/[назва feature]: Така гілка має містити зміни лише щодо конкретної feature - - Приклад: feature/dark-mode - - bugfix/[назва баґу]: Така гілка має містити лише виправлення конкретного багу - - Приклад: bugfix/bug-1 diff --git a/docs/contributing/contributing_de.md b/docs/contributing/contributing_de.md new file mode 100644 index 0000000000..b0b1b694d2 --- /dev/null +++ b/docs/contributing/contributing_de.md @@ -0,0 +1,89 @@ +## Lass uns Bruno noch besser machen, gemeinsam !! + +Ich freue mich, dass Du Bruno verbessern möchtest. Hier findest Du eine Anleitung, mit der Du Bruno auf Deinem Computer einrichten kannst. + +### Technologie Stack + +Bruno ist mit Next.js und React erstellt. Außerdem benötigen wir electron für die Desktop Version (die lokale Sammlungen unterstützt). + +Bibliotheken die wir benutzen + +- CSS - Tailwind +- Code Editoren - Codemirror +- State Management - Redux +- Icons - Tabler Icons +- Formulare - formik +- Schema Validierung - Yup +- Request Client - axios +- Dateisystem Watcher - chokidar + +### Abhängigkeiten + +Du benötigst [Node v18.x oder die neuste LTS Version](https://nodejs.org/en/) und npm 8.x. Wir benutzen npm workspaces in dem Projekt. + +### Lass uns coden + +Eine Anleitung zum Ausführen einer lokalen Entwicklungsumgebung findest Du in [development.md](docs/development_de.md). + +### Pull Request erstellen + +- Bitte halte die PRs klein und begrenzt auf eine Sache +- Bitte halte Dich beim Erstellen eines Branches an das folgende Format + - feature/[feature name]: Dieser Branch soll Änderungen für ein bestimmtes Feature enthalten + - Beispiel: feature/dark-mode + - bugfix/[bug name]: Dieser Branch soll ausschließlich Bugfixes für einen bestimmten Bug enthalten + - Beispiel: bugfix/bug-1 + +## Entwicklung + +Bruno wird als Desktop-Anwendung entwickelt. Um die App zu starten, musst Du zuerst die Next.js App in einem Terminal ausführen und anschließend in einem anderen Terminal die Electron-App. + +### Abhängigkeiten + +- NodeJS v18 + +### Lokales Entwickeln + +```bash +# use nodejs 18 version +nvm use + +# install deps +npm i --legacy-peer-deps + +# build graphql docs +npm run build:graphql-docs + +# build bruno query +npm run build:bruno-query + +# run next app (terminal 1) +npm run dev:web + +# run electron app (terminal 2) +npm run dev:electron +``` + +### Troubleshooting + +Es kann sein, dass Du einen `Unsupported platform`-Fehler bekommst, wenn Du `npm install` ausführst. Um dies zu beheben, musst Du `node_modules` und `package-lock.json` löschen und `npm install` erneut ausführen. Dies sollte alle notwendigen Pakete installieren, die zum Ausführen der Anwendung benötigt werden. + +```shell +# Delete node_modules in sub-directories +find ./ -type d -name "node_modules" -print0 | while read -d $'\0' dir; do + rm -rf "$dir" +done + +# Delete package-lock in sub-directories +find . -type f -name "package-lock.json" -delete +``` + +### Testen + +```bash +# bruno-schema +npm test --workspace=packages/bruno-schema + +# bruno-lang +npm test --workspace=packages/bruno-lang +``` diff --git a/docs/contributing/contributing_fr.md b/docs/contributing/contributing_fr.md new file mode 100644 index 0000000000..b69260e432 --- /dev/null +++ b/docs/contributing/contributing_fr.md @@ -0,0 +1,89 @@ +## Ensemble, améliorons Bruno ! + +Je suis content de voir que vous envisagez améliorer Bruno. Ci-dessous, vous trouverez les règles et guides pour récupérer Bruno sur votre ordinateur. + +### Technologies utilisées + +Bruno est construit en utilisant NextJs et React. Nous utilisons aussi Electron pour embarquer la version ordinateur (qui permet les collections locales). + +Les bibliothèques que nous utilisons : + +- CSS - Tailwind +- Code Editors - Codemirror +- State Management - Redux +- Icons - Tabler Icons +- Forms - formik +- Schema Validation - Yup +- Request Client - axios +- Filesystem Watcher - chokidar + +### Dépendances + +Vous aurez besoin de [Node v18.x ou la dernière version LTS](https://nodejs.org/en/) et npm 8.x. Nous utilisons aussi les espaces de travail npm (_npm workspaces_) dans ce projet. + +### Commençons à coder + +Veuillez vous référez à la [documentation de développement](docs/development_fr.md) pour les instructions de démarrage de l'environnement de développement local. + +### Ouvrir une Pull Request + +- Merci de conserver les PR petites et focalisées sur un seul objectif +- Merci de suivre le format de nom des branches + - feature/[feature name]: Cette branche devrait contenir une fonctionnalité spécifique + - Exemple: feature/dark-mode + - bugfix/[bug name]: Cette branche devrait contenir seulement une solution pour pour une bogue spécifique + - Exemple: bugfix/bug-1 + +## Développement + +Bruno est développé comme une application de _lourde_. Vous devez charger l'application en démarrant nextjs dans un terminal, puis démarre l'application Electron dans un autre terminal. + +### Dépendances + +- NodeJS v18 + +### Développement local + +```bash +# use nodejs 18 version +nvm use + +# install deps +npm i --legacy-peer-deps + +# build graphql docs +npm run build:graphql-docs + +# build bruno query +npm run build:bruno-query + +# run next app (terminal 1) +npm run dev:web + +# run electron app (terminal 2) +npm run dev:electron +``` + +### Dépannage + +Vous pourriez rencontrer une error `Unsupported platform` pendant le lancement de `npm install`. Pour résoudre cela, veuillez supprimer le répertoire `node_modules`, le fichier `package-lock.json` et lancer à nouveau `npm install`. Cela devrait isntaller tous les paquets nécessaires pour lancer l'application. + +```shell +# Delete node_modules in sub-directories +find ./ -type d -name "node_modules" -print0 | while read -d $'\0' dir; do + rm -rf "$dir" +done + +# Delete package-lock in sub-directories +find . -type f -name "package-lock.json" -delete +``` + +### Tests + +```bash +# bruno-schema +npm test --workspace=packages/bruno-schema + +# bruno-lang +npm test --workspace=packages/bruno-lang +``` diff --git a/docs/contributing/contributing_ru.md b/docs/contributing/contributing_ru.md new file mode 100644 index 0000000000..6202c8f330 --- /dev/null +++ b/docs/contributing/contributing_ru.md @@ -0,0 +1,89 @@ +## Давайте вместе сделаем Бруно лучше!!! + +Я рад, что Вы хотите усовершенствовать bruno. Ниже приведены рекомендации по запуску bruno на вашем компьютере. + +### Стек + +Bruno построен с использованием Next.js и React. Мы также используем electron для поставки десктопной версии ( которая поддерживает локальные коллекции ) + +Библиотеки, которые мы используем + +- CSS - Tailwind +- Редакторы кода - Codemirror +- Управление состоянием - Redux +- Иконки - Tabler Icons +- Формы - formik +- Валидация схем - Yup +- Запросы клиента - axios +- Наблюдатель за файловой системой - chokidar + +### Зависимости + +Вам потребуется [Node v18.x или последняя версия LTS](https://nodejs.org/en/) и npm 8.x. В проекте мы используем рабочие пространства npm + +### Приступим к коду + +Пожалуйста, обратитесь к [development_ru.md](docs/development_ru.md) для получения инструкций по запуску локальной среды разработки. + +### Создание Pull Request + +- Пожалуйста, пусть PR будет небольшим и сфокусированным на одной вещи +- Пожалуйста, соблюдайте формат создания веток + - feature/[название функции]: Эта ветка должна содержать изменения для конкретной функции + - Пример: feature/dark-mode + - bugfix/[название ошибки]: Эта ветка должна содержать только исправления для конкретной ошибки + - Пример bugfix/bug-1 + +## Разработка + +Bruno разрабатывается как десктопное приложение. Необходимо загрузить приложение, запустив приложение Next.js в одном терминале, а затем запустить приложение electron в другом терминале. + +### Зависимости + +- NodeJS v18 + +### Локальная разработка + +```bash +# используйте nodejs 18 версии +nvm use + +# установите зависимости +npm i --legacy-peer-deps + +# билд документации по graphql +npm run build:graphql-docs + +# билд bruno query +npm run build:bruno-query + +# запустить next приложение ( терминал 1 ) +npm run dev:web + +# запустить приложение electron ( терминал 2 ) +npm run dev:electron +``` + +### Устранение неисправностей + +При запуске `npm install` может возникнуть ошибка `Unsupported platform`. Чтобы исправить это, необходимо удалить `node_modules` и `package-lock.json` и запустить `npm install`. В результате будут установлены все пакеты, необходимые для работы приложения. + +```shell +# Удаление node_modules в подкаталогах +find ./ -type d -name "node_modules" -print0 | while read -d $'\0' dir; do + rm -rf "$dir" +done + +# Удаление package-lock в подкаталогах +find . -type f -name "package-lock.json" -delete +``` + +### Тестирование + +```bash +# bruno-schema +npm test --workspace=packages/bruno-schema + +# bruno-lang +npm test --workspace=packages/bruno-lang +``` diff --git a/docs/contributing/contributing_tr.md b/docs/contributing/contributing_tr.md new file mode 100644 index 0000000000..25ff880cc0 --- /dev/null +++ b/docs/contributing/contributing_tr.md @@ -0,0 +1,35 @@ +## Bruno'yu birlikte daha iyi hale getirelim !! + +Bruno'yu geliştirmek istemenizden mutluluk duyuyorum. Aşağıda, bruno'yu bilgisayarınıza getirmeye başlamak için yönergeler bulunmaktadır. + +### Kullanılan Teknolojiler + +Bruno, Next.js ve React kullanılarak oluşturulmuştur. Ayrıca bir masaüstü sürümü (yerel koleksiyonları destekleyen) göndermek için electron kullanıyoruz + +Kullandığımız kütüphaneler + +- CSS - Tailwind +- Kod Düzenleyiciler - Codemirror +- Durum Yönetimi - Redux +- Iconlar - Tabler Simgeleri +- Formlar - formik +- Şema Doğrulama - Yup +- İstek İstemcisi - axios +- Dosya Sistemi İzleyicisi - chokidar + +### Bağımlılıklar + +[Node v18.x veya en son LTS sürümüne](https://nodejs.org/en/) ve npm 8.x'e ihtiyacınız olacaktır. Projede npm çalışma alanlarını kullanıyoruz + +### Kodlamaya başlayalım + +Yerel geliştirme ortamının çalıştırılmasına ilişkin talimatlar için lütfen [development.md](docs/development.md) adresine başvurun. + +### Pull Request Oluşturma + +- Lütfen PR'ları küçük tutun ve tek bir şeye odaklanın +- Lütfen şube oluşturma formatını takip edin + - feature/[özellik adı]: Bu dal belirli bir özellik için değişiklikler içermelidir + - Örnek: feature/dark-mode + - bugfix/[hata adı]: Bu dal yalnızca belirli bir hata için hata düzeltmelerini içermelidir + - Örnek bugfix/bug-1 diff --git a/docs/contributing/contributing_ua.md b/docs/contributing/contributing_ua.md new file mode 100644 index 0000000000..329077cd18 --- /dev/null +++ b/docs/contributing/contributing_ua.md @@ -0,0 +1,89 @@ +## Давайте зробимо Bruno краще, разом !! + +Я дуже радий що Ви бажаєте покращити Bruno. Нижче наведені вказівки як розпочати розробку Bruno на Вашому комп'ютері. + +### Стек технологій + +Bruno побудований на Next.js та React. Також для десктопної версії (яка підтримує локальні колекції) використовується Electron + +Бібліотеки, які ми використовуємо + +- CSS - Tailwind +- Редактори коду - Codemirror +- Керування станом - Redux +- Іконки - Tabler Icons +- Форми - formik +- Валідація по схемі - Yup +- Клієнт запитів - axios +- Спостерігач за файловою системою - chokidar + +### Залежності + +Вам знадобиться [Node v18.x або остання LTS версія](https://nodejs.org/en/) та npm 8.x. Ми використовуєм npm workspaces в цьому проекті + +### Починаєм писати код + +Будь ласка, зверніться до [development_ua.md](docs/development_ua.md) за інструкціями щодо запуску локального середовища розробки. + +### Створення Pull Request-ів + +- Будь ласка, робіть PR-и маленькими і сфокусованими на одній речі +- Будь ласка, слідуйте формату назв гілок + - feature/[назва feature]: Така гілка має містити зміни лише щодо конкретної feature + - Приклад: feature/dark-mode + - bugfix/[назва баґу]: Така гілка має містити лише виправлення конкретного багу + - Приклад: bugfix/bug-1 + +## Розробка + +Bruno розробляється як декстопний застосунок. Вам потрібно запустити Next.js в одній сесії терміналу, та запустити застосунок Electron в іншій сесії терміналу. + +### Залежності + +- NodeJS v18 + +### Локальна розробка + +```bash +# Використовуйте nodejs 18-ї версії +nvm use + +# встановіть залежності +npm i --legacy-peer-deps + +# зберіть документацію graphql +npm run build:graphql-docs + +# зберіть bruno query +npm run build:bruno-query + +# запустіть додаток next (термінал 1) +npm run dev:web + +# запустіть додаток електрон (термінал 2) +npm run dev:electron +``` + +### Усунення несправностей + +Ви можете зтикнутись із помилкою `Unsupported platform` коли запускаєте `npm install`. Щоб усунути цю проблему, вам потрібно видалити `node_modules` та `package-lock.json`, і тоді запустити `npm install`. Це має встановити всі потрібні для запуску додатку пекеджі. + +```shell +# Видаліть node_modules в піддиректоріях +find ./ -type d -name "node_modules" -print0 | while read -d $'\0' dir; do + rm -rf "$dir" +done + +# Видаліть package-lock в піддиректоріях +find . -type f -name "package-lock.json" -delete +``` + +### Тестування + +```bash +# bruno-schema +npm test --workspace=packages/bruno-schema + +# bruno-lang +npm test --workspace=packages/bruno-lang +``` diff --git a/docs/development.md b/docs/development.md deleted file mode 100644 index d56d3e6cf8..0000000000 --- a/docs/development.md +++ /dev/null @@ -1,55 +0,0 @@ -**English** | [Українська](/docs/development_ua.md) | [Русский](/docs/development_ru.md) - -## Development - -Bruno is being developed as a desktop app. You need to load the app by running the nextjs app in one terminal and then run the electron app in another terminal. - -### Dependencies - -- NodeJS v18 - -### Local Development - -```bash -# use nodejs 18 version -nvm use - -# install deps -npm i --legacy-peer-deps - -# build graphql docs -npm run build:graphql-docs - -# build bruno query -npm run build:bruno-query - -# run next app (terminal 1) -npm run dev:web - -# run electron app (terminal 2) -npm run dev:electron -``` - -### Troubleshooting - -You might encounter a `Unsupported platform` error when you run `npm install`. To fix this, you will need to delete `node_modules` and `package-lock.json` and run `npm install`. This should install all the necessary packages needed to run the app. - -```shell -# Delete node_modules in sub-directories -find ./ -type d -name "node_modules" -print0 | while read -d $'\0' dir; do - rm -rf "$dir" -done - -# Delete package-lock in sub-directories -find . -type f -name "package-lock.json" -delete -``` - -### Testing - -```bash -# bruno-schema -npm test --workspace=packages/bruno-schema - -# bruno-lang -npm test --workspace=packages/bruno-lang -``` diff --git a/docs/development_ru.md b/docs/development_ru.md deleted file mode 100644 index 3816066e0f..0000000000 --- a/docs/development_ru.md +++ /dev/null @@ -1,55 +0,0 @@ -[English](/docs/development.md) | [Українська](/docs/development_ua.md) | **Русский** - -## Разработка - -Bruno разрабатывается как десктопное приложение. Необходимо загрузить приложение, запустив приложение nextjs в одном терминале, а затем запустить приложение electron в другом терминале. - -### Зависимости - -- NodeJS v18 - -### Локальная разработка - -```bash -# используйте nodejs 18 версии -nvm use - -# установите зависимости -npm i --legacy-peer-deps - -# билд документации по graphql -npm run build:graphql-docs - -# билд bruno query -npm run build:bruno-query - -# запустить next приложение ( терминал 1 ) -npm run dev:web - -# запустить приложение electron ( терминал 2 ) -npm run dev:electron -``` - -### Устранение неисправностей - -При запуске `npm install` может возникнуть ошибка `Unsupported platform`. Чтобы исправить это, необходимо удалить `node_modules` и `package-lock.json` и запустить `npm install`. В результате будут установлены все пакеты, необходимые для работы приложения. - -```shell -# Удаление node_modules в подкаталогах -find ./ -type d -name "node_modules" -print0 | while read -d $'\0' dir; do - rm -rf "$dir" -done - -# Удаление package-lock в подкаталогах -find . -type f -name "package-lock.json" -delete -``` - -### Тестирование - -```bash -# bruno-schema -npm test --workspace=packages/bruno-schema - -# bruno-lang -npm test --workspace=packages/bruno-lang -``` diff --git a/docs/development_ua.md b/docs/development_ua.md deleted file mode 100644 index d6d5bcdf87..0000000000 --- a/docs/development_ua.md +++ /dev/null @@ -1,55 +0,0 @@ -[English](/docs/development.md) | **Українська** | [Русский](/docs/development_ru.md) - -## Розробка - -Bruno розробляється як декстопний застосунок. Вам потрібно запустити nextjs в одній сесії терміналу, та запустити застосунок Electron в іншій сесії терміналу. - -### Залежності - -- NodeJS v18 - -### Локальна розробка - -```bash -# Використовуйте nodejs 18-ї версії -nvm use - -# встановіть залежності -npm i --legacy-peer-deps - -# зберіть документацію graphql -npm run build:graphql-docs - -# зберіть bruno query -npm run build:bruno-query - -# запустіть додаток next (термінал 1) -npm run dev:web - -# запустіть додаток електрон (термінал 2) -npm run dev:electron -``` - -### Усунення несправностей - -Ви можете зтикнутись із помилкою `Unsupported platform` коли запускаєте `npm install`. Щоб усунути цю проблему, вам потрібно видалити `node_modules` та `package-lock.json`, і тоді запустити `npm install`. Це має встановити всі потрібні для запуску додатку пекеджі. - -```shell -# Видаліть node_modules в піддиректоріях -find ./ -type d -name "node_modules" -print0 | while read -d $'\0' dir; do - rm -rf "$dir" -done - -# Видаліть package-lock в піддиректоріях -find . -type f -name "package-lock.json" -delete -``` - -### Тестування - -```bash -# bruno-schema -npm test --workspace=packages/bruno-schema - -# bruno-lang -npm test --workspace=packages/bruno-lang -``` diff --git a/docs/readme/readme_de.md b/docs/readme/readme_de.md new file mode 100644 index 0000000000..371672b4cc --- /dev/null +++ b/docs/readme/readme_de.md @@ -0,0 +1,93 @@ +
+ + +### Bruno - Opensource IDE zum Erkunden und Testen von APIs. + +[![GitHub version](https://badge.fury.io/gh/usebruno%2Fbruno.svg)](https://badge.fury.io/gh/usebruno%bruno) +[![CI](https://github.com/usebruno/bruno/actions/workflows/unit-tests.yml/badge.svg?branch=main)](https://github.com/usebruno/bruno/workflows/unit-tests.yml) +[![Commit Activity](https://img.shields.io/github/commit-activity/m/usebruno/bruno)](https://github.com/usebruno/bruno/pulse) +[![X](https://img.shields.io/twitter/follow/use_bruno?style=social&logo=x)](https://twitter.com/use_bruno) +[![Website](https://img.shields.io/badge/Website-Visit-blue)](https://www.usebruno.com) +[![Download](https://img.shields.io/badge/Download-Latest-brightgreen)](https://www.usebruno.com/downloads) + +Bruno ist ein neuer und innovativer API-Client, der den Status Quo von Postman und ähnlichen Tools revolutionieren soll. + +Bruno speichert Deine Sammlungen direkt in einem Ordner in Deinem Dateisystem. Wir verwenden eine einfache Textauszeichnungssprache - Bru - um Informationen über API-Anfragen zu speichern. + +Du kannst Git oder eine andere Versionskontrolle deiner Wahl verwenden, um an deinen API-Sammlungen gemeinsam mit anderen zu arbeiten. + +Bruno ist ein reines Offline-Tool. Es gibt keine Pläne, Bruno eine Cloud-Synchronisation hinzuzufügen. Wir schätzen den Schutz Deiner Daten und glauben, dass sie auf Deinem Gerät bleiben sollten. Lies unsere Langzeit-Vision [hier](https://github.com/usebruno/bruno/discussions/269). + +![bruno](/assets/images/landing-2.png)

+ +### Einsatz auf verschiedensten Plattformen 🖥️ + +![bruno](/assets/images/run-anywhere.png)

+ +### Zusammenarbeiten mit Git 👩‍💻🧑‍💻 + +oder eine Versionskontrolle Deiner Wahl + +![bruno](/assets/images/version-control.png)

+ +### Wichtige Links 📌 + +- [Unsere Langzeit-Vision](https://github.com/usebruno/bruno/discussions/269) +- [Roadmap](https://github.com/usebruno/bruno/discussions/384) +- [Dokumentation](https://docs.usebruno.com) +- [Webseite](https://www.usebruno.com) +- [Preise](https://www.usebruno.com/pricing) +- [Download](https://www.usebruno.com/downloads) + +### Showcase 🎥 + +- [Erfahrungsberichte](https://github.com/usebruno/bruno/discussions/343) +- [Wissenswertes](https://github.com/usebruno/bruno/discussions/386) +- [Scriptmania](https://github.com/usebruno/bruno/discussions/385) + +### Unterstützung ❤️ + +Wuff! Wenn Du dieses Projekt magst, klick den ⭐ Button !! + +### Teile Erfahrungsberichte 📣 + +Wenn Bruno Dir bei Deiner Arbeit und in Deinen Teams geholfen hat, vergiss bitte nicht, Deine [Erfahrungsberichte auf unserer GitHub-Diskussion](https://github.com/usebruno/bruno/discussions/343) zu teilen. + +### Veröffentlichung in neuen Paketmanagern + +Bitte [hier](/publishing.md) für mehr Informationen lesen. + +### Mitmachen 👩‍💻🧑‍💻 + +Ich freue mich, dass Du Bruno verbessern willst. Bitte schau Dir den [Leitfaden zum Mitmachen](../contributing/contributing_de.md) an. + +Auch wenn Du nicht in der Lage bist, einen Beitrag in Form von Code zu leisten, zögere bitte nicht, uns Fehler und Funktionswünsche mitzuteilen, die implementiert werden müssen, um Deinen Anwendungsfall zu unterstützen. + +### Autoren + +
+ + + +
+ +### In Verbindung bleiben 🌐 + +[Twitter](https://twitter.com/use_bruno)
+[Webseite](https://www.usebruno.com)
+[Discord](https://discord.com/invite/KgcZUncpjq)
+[LinkedIn](https://www.linkedin.com/company/usebruno) + +### Markenzeichen + +**Name** + +`Bruno` ist ein Markenzeichen von [Anoop M D](https://www.helloanoop.com/) + +**Logo** + +Das Logo stammt von [OpenMoji](https://openmoji.org/library/emoji-1F436/). Lizenz: CC [BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) + +### Lizenz 📄 + +[MIT](/license.md) diff --git a/docs/readme/readme_fr.md b/docs/readme/readme_fr.md new file mode 100644 index 0000000000..9c3fdd6cd6 --- /dev/null +++ b/docs/readme/readme_fr.md @@ -0,0 +1,94 @@ +
+ + +### Bruno - IDE Opensource pour explorer et tester des APIs. + +[![GitHub version](https://badge.fury.io/gh/usebruno%2Fbruno.svg)](https://badge.fury.io/gh/usebruno%bruno) +[![CI](https://github.com/usebruno/bruno/actions/workflows/unit-tests.yml/badge.svg?branch=main)](https://github.com/usebruno/bruno/workflows/unit-tests.yml) +[![Commit Activity](https://img.shields.io/github/commit-activity/m/usebruno/bruno)](https://github.com/usebruno/bruno/pulse) +[![X](https://img.shields.io/twitter/follow/use_bruno?style=social&logo=x)](https://twitter.com/use_bruno) +[![Website](https://img.shields.io/badge/Website-Visit-blue)](https://www.usebruno.com) +[![Download](https://img.shields.io/badge/Download-Latest-brightgreen)](https://www.usebruno.com/downloads) + +Bruno est un nouveau client API, innovant, qui a pour but de révolutionner le _status quo_ que représente Postman et les autres outils. + +Bruno sauvegarde vos collections directement sur votre système de fichiers. Nous utilisons un langage de balise de type texte pour décrire les requêtes API. + +Vous pouvez utiliser git ou tout autre gestionnaire de version pour travailler de manière collaborative sur vos collections d'APIs. + +Bruno ne fonctionne qu'en mode déconnecté. Il n'y a pas de d'abonnement ou de synchronisation avec le cloud Bruno, il n'y en aura jamais. Nous sommes conscients de la confidentialité de vos données et nous sommes convaincus qu'elles doivent rester sur vos appareils. Vous pouvez lire notre vision à long terme [ici (en anglais)](https://github.com/usebruno/bruno/discussions/269). + +![bruno](/assets/images/landing-2.png)

+ +### Fonctionne sur de multiples platformes 🖥️ + +![bruno](/assets/images/run-anywhere.png)

+ +### Collaborer via Git 👩‍💻🧑‍💻 + +Ou n'importe quel système de gestion de sources + +![bruno](/assets/images/version-control.png)

+ +### Liens importants 📌 + +- [Notre vision à long terme (en anglais)](https://github.com/usebruno/bruno/discussions/269) +- [Roadmap](https://github.com/usebruno/bruno/discussions/384) +- [Documentation](https://docs.usebruno.com) +- [Site web](https://www.usebruno.com) +- [Prix](https://www.usebruno.com/pricing) +- [Téléchargement](https://www.usebruno.com/downloads) + +### Showcase 🎥 + +- [Témoignages](https://github.com/usebruno/bruno/discussions/343) +- [Centre de connaissance](https://github.com/usebruno/bruno/discussions/386) +- [Scriptmania](https://github.com/usebruno/bruno/discussions/385) + +### Soutien ❤️ + +Ouaf! Si vous aimez le projet, cliquez sur le bouton ⭐ !! + +### Partage de témoignages 📣 + +Si Bruno vous a aidé dans votre travail, au sein de votre équipe, merci de penser à partager votre témoignage sur la [page discussion Github dédiée](https://github.com/usebruno/bruno/discussions/343) + +### Publier Bruno sur un nouveau gestionnaire de paquets + +Veuillez regarder [ici](/publishing.md) pour plus d'information. + +### Contribuer 👩‍💻🧑‍💻 + +Je suis heureux de voir que vous cherchez à améliorer Bruno. Merci de consulter le [guide de contribution](../contributing/contributing_fr.md) + +Même si vous n'êtes pas en mesure de contribuer directement via du code, n'hésitez pas à consigner les bogues et les demandes de nouvelles fonctionnalités pour résoudre vos cas d'usage ! + +### Auteurs + +
+ + + +
+ +### Restons en contact 🌐 + +[Twitter](https://twitter.com/use_bruno)
+[Website](https://www.usebruno.com)
+[Discord](https://discord.com/invite/KgcZUncpjq)
+[LinkedIn](https://www.linkedin.com/company/usebruno) + +### Marque + +**Nom** + +`Bruno` est une marque appartenant à [Anoop M D](https://www.helloanoop.com/) + +**Logo** + +Le logo est issu de [OpenMoji](https://openmoji.org/library/emoji-1F436/). +Licence: CC [BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) + +### Licence 📄 + +[MIT](/license.md) diff --git a/readme_ru.md b/docs/readme/readme_ru.md similarity index 92% rename from readme_ru.md rename to docs/readme/readme_ru.md index d8b8255f73..ddbe8135c1 100644 --- a/readme_ru.md +++ b/docs/readme/readme_ru.md @@ -1,5 +1,5 @@
- + ### Bruno - IDE с открытым исходным кодом для изучения и тестирования API. @@ -10,8 +10,6 @@ [![Website](https://img.shields.io/badge/Website-Visit-blue)](https://www.usebruno.com) [![Download](https://img.shields.io/badge/Download-Latest-brightgreen)](https://www.usebruno.com/downloads) -[English](/readme.md) | [Українська](/readme_ua.md) | **Русский** - Bruno - новый и инновационный клиент API, направленный на революцию в установившейся ситуации, представленной Postman и подобными инструментами. Bruno хранит ваши коллекции непосредственно в папке в вашей файловой системе. Для сохранения информации об API-запросах мы используем язык Bru. @@ -20,17 +18,17 @@ Bruno хранит ваши коллекции непосредственно в Bruno работает только в автономном режиме. Добавление облачной синхронизации в Bruno не планируется. Мы ценим конфиденциальность ваших данных и считаем, что они должны оставаться на вашем устройстве. Ознакомьтесь с нашим долгосрочным видением [здесь](https://github.com/usebruno/bruno/discussions/269) -![bruno](assets/images/landing-2.png)

+![bruno](/assets/images/landing-2.png)

### Работа на нескольких платформах 🖥️ -![bruno](assets/images/run-anywhere.png)

+![bruno](/assets/images/run-anywhere.png)

### Совместная работа через Git 👩‍💻🧑‍💻 Или другая система контроля версий по вашему выбору -![bruno](assets/images/version-control.png)

+![bruno](/assets/images/version-control.png)

### Важные ссылки 📌 @@ -56,7 +54,7 @@ Bruno работает только в автономном режиме. Доб ### Внести вклад 👩‍💻🧑‍💻 -Я рад, что Вы хотите улучшить Бруно. Пожалуйста, ознакомьтесь с [этим гайдом](contributing_ru.md) +Я рад, что Вы хотите улучшить Бруно. Пожалуйста, ознакомьтесь с [этим гайдом](../contributing/contributing_ru.md) Даже если вы не можете внести свой вклад с помощью кода, пожалуйста, не стесняйтесь сообщать об ошибках и пожеланиях к функциям, которые необходимо реализовать для решения вашей задачи. @@ -76,4 +74,4 @@ Bruno работает только в автономном режиме. Доб ### Лицензия 📄 -[MIT](license.md) +[MIT](/license.md) diff --git a/docs/readme/readme_tr.md b/docs/readme/readme_tr.md new file mode 100644 index 0000000000..b047385055 --- /dev/null +++ b/docs/readme/readme_tr.md @@ -0,0 +1,78 @@ +
+ + +### Bruno - API'leri keşfetmek ve test etmek için açık kaynaklı IDE. + +[![GitHub sürümü](https://badge.fury.io/gh/usebruno%2Fbruno.svg)](https://badge.fury.io/gh/usebruno%bruno) +[![CI](https://github.com/usebruno/bruno/actions/workflows/unit-tests.yml/badge.svg?branch=main)](https://github.com/usebruno/bruno/workflows/unit-tests.yml) +[![Commit Activity](https://img.shields.io/github/commit-activity/m/usebruno/bruno)](https://github.com/usebruno/bruno/pulse) +[![X](https://img.shields.io/twitter/follow/use_bruno?style=social&logo=x)](https://twitter.com/use_bruno) +[![Web Sitesi](https://img.shields.io/badge/Website-Visit-blue)](https://www.usebruno.com) +[![İndir](https://img.shields.io/badge/Download-Latest-brightgreen)](https://www.usebruno.com/downloads) + +Bruno, Postman ve benzeri araçlar tarafından temsil edilen statükoda devrim yaratmayı amaçlayan yeni ve yenilikçi bir API istemcisidir. + +Bruno koleksiyonlarınızı doğrudan dosya sisteminizdeki bir klasörde saklar. API istekleri hakkındaki bilgileri kaydetmek için düz bir metin biçimlendirme dili olan Bru kullanıyoruz. + +API koleksiyonlarınız üzerinde işbirliği yapmak için git veya seçtiğiniz herhangi bir sürüm kontrolünü kullanabilirsiniz. + +Bruno yalnızca çevrimdışıdır. Bruno'ya bulut senkronizasyonu eklemek gibi bir planımız yok. Veri gizliliğinize değer veriyoruz ve cihazınızda kalması gerektiğine inanıyoruz. Uzun vadeli vizyonumuzu okuyun [burada](https://github.com/usebruno/bruno/discussions/269) + +![bruno](/assets/images/landing-2.png)

+ +### Birden fazla platformda çalıştırın 🖥️ + +![bruno](/assets/images/run-anywhere.png)

+ +### Git üzerinden işbirliği yapın 👩‍💻🧑‍💻 + +Veya seçtiğiniz herhangi bir sürüm kontrol sistemi + +![bruno](/assets/images/version-control.png)

+ +### Önemli Bağlantılar 📌 + +- [Uzun Vadeli Vizyonumuz](https://github.com/usebruno/bruno/discussions/269) +- [Yol Haritası](https://github.com/usebruno/bruno/discussions/384) +- [Dokümantasyon](https://docs.usebruno.com) +- [Web sitesi](https://www.usebruno.com) +- [İndir](https://www.usebruno.com/downloads) + +### Vitrin 🎥 + +- [Görüşler](https://github.com/usebruno/bruno/discussions/343) +- [Bilgi Merkezi](https://github.com/usebruno/bruno/discussions/386) +- [Scriptmania](https://github.com/usebruno/bruno/discussions/385) + +### Destek ❤️ + +Woof! Projeyi beğendiyseniz, şu ⭐ düğmesine basın! + +### Referansları Paylaşın 📣 + +Bruno işinizde ve ekiplerinizde size yardımcı olduysa, lütfen [github tartışmamızdaki referanslarınızı](https://github.com/usebruno/bruno/discussions/343) paylaşmayı unutmayın + +### Katkıda Bulunun 👩‍💻🧑‍💻 + +Bruno'yu geliştirmek istemenize sevindim. Lütfen [katkıda bulunma kılavuzu](../contributing/contributing.md)'na göz atın + +Kod yoluyla katkıda bulunamasanız bile, lütfen kullanım durumunuzu çözmek için uygulanması gereken hataları ve özellik isteklerini bildirmekten çekinmeyin. + +### Katkıda Bulunanlar + +
+ + + +
+ +### İletişimde Kalın 🌐 + +[Twitter](https://twitter.com/use_bruno)
+[Website](https://www.usebruno.com)
+[Discord](https://discord.com/invite/KgcZUncpjq) +[LinkedIn](https://www.linkedin.com/company/usebruno) + +### Lisans 📄 + +[MIT](/license.md) diff --git a/readme_ua.md b/docs/readme/readme_ua.md similarity index 91% rename from readme_ua.md rename to docs/readme/readme_ua.md index 793e11a8ed..cb0ccb9ee5 100644 --- a/readme_ua.md +++ b/docs/readme/readme_ua.md @@ -1,5 +1,5 @@
- + ### Bruno - IDE із відкритим кодом для тестування та дослідження API @@ -10,8 +10,6 @@ [![Website](https://img.shields.io/badge/Website-Visit-blue)](https://www.usebruno.com) [![Download](https://img.shields.io/badge/Download-Latest-brightgreen)](https://www.usebruno.com/downloads) -[English](/readme.md) | **Українська** | [Русский](/readme_ru.md) - Bruno це новий та іноваційний API клієнт, націлений на революційну зміну статус кво, запровадженого інструментами на кшталт Postman. Bruno зберігає ваші колекції напряму у теці на вашому диску. Він використовує текстову мову розмітки Bru для збереження інформації про ваші API запити. @@ -20,17 +18,17 @@ Bruno зберігає ваші колекції напряму у теці на Bruno є повністю автономним. Немає жодних планів додавати будь-які синхронізації через хмару, ніколи. Ми цінуємо приватність ваших даних, і вважаєм, що вони мають залишитись лише на вашому комп'ютері. Взнати більше про наше бачення у довготривалій перспективі можна [тут](https://github.com/usebruno/bruno/discussions/269) -![bruno](assets/images/landing-2.png)

+![bruno](/assets/images/landing-2.png)

### Кросплатформенність 🖥️ -![bruno](assets/images/run-anywhere.png)

+![bruno](/assets/images/run-anywhere.png)

### Спільна робота через Git 👩‍💻🧑‍💻 Або будь-яку іншу систему контролю версій на ваш вибір -![bruno](assets/images/version-control.png)

+![bruno](/assets/images/version-control.png)

### Важливі посилання 📌 @@ -56,7 +54,7 @@ Bruno є повністю автономним. Немає жодних план ### Зробити свій внесок 👩‍💻🧑‍💻 -Я радий що ви бажаєте покращити Bruno. Будь ласка переглянте [інструкцію по контрибуції](contributing_ua.md) +Я радий що ви бажаєте покращити Bruno. Будь ласка переглянте [інструкцію по контрибуції](../contributing/contributing_ua.md) Навіть якщо ви не можете зробити свій внесок пишучи програмний код, будь ласка не соромтесь рапортувати про помилки і писати запити на новий функціонал, який потрібен вам у вашій роботі. @@ -72,9 +70,9 @@ Bruno є повністю автономним. Немає жодних план [Twitter](https://twitter.com/use_bruno)
[Сайт](https://www.usebruno.com)
-[Discord](https://discord.com/invite/KgcZUncpjq) +[Discord](https://discord.com/invite/KgcZUncpjq)
[LinkedIn](https://www.linkedin.com/company/usebruno) ### Ліцензія 📄 -[MIT](license.md) +[MIT](/license.md) diff --git a/package-lock.json b/package-lock.json index a39d0c0282..cf7a7d95f9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5534,75 +5534,6 @@ "node": ">=10.12.0" } }, - "node_modules/autoprefixer": { - "version": "10.4.16", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", - "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "peer": true, - "dependencies": { - "browserslist": "^4.21.10", - "caniuse-lite": "^1.0.30001538", - "fraction.js": "^4.3.6", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/autoprefixer/node_modules/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "peer": true, - "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, "node_modules/aws-sign2": { "version": "0.7.0", "dev": true, @@ -5998,6 +5929,7 @@ }, "node_modules/browserslist": { "version": "4.21.4", + "dev": true, "funding": [ { "type": "opencollective", @@ -7919,7 +7851,8 @@ "node_modules/electron-to-chromium": { "version": "1.4.554", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.554.tgz", - "integrity": "sha512-Q0umzPJjfBrrj8unkONTgbKQXzXRrH7sVV7D9ea2yBV3Oaogz991yhbpfvo2LMNkJItmruXTEzVpP9cp7vaIiQ==" + "integrity": "sha512-Q0umzPJjfBrrj8unkONTgbKQXzXRrH7sVV7D9ea2yBV3Oaogz991yhbpfvo2LMNkJItmruXTEzVpP9cp7vaIiQ==", + "dev": true }, "node_modules/electron-util": { "version": "0.17.2", @@ -8664,19 +8597,6 @@ "node": ">= 0.6" } }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "peer": true, - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, "node_modules/fresh": { "version": "0.5.2", "license": "MIT", @@ -11856,7 +11776,8 @@ "node_modules/node-releases": { "version": "2.0.13", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true }, "node_modules/normalize-package-data": { "version": "2.5.0", @@ -11889,15 +11810,6 @@ "node": ">=0.10.0" } }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/normalize-url": { "version": "6.1.0", "dev": true, @@ -12266,6 +12178,14 @@ "xml2js": "^0.4.5" } }, + "node_modules/parse-curl": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/parse-curl/-/parse-curl-0.2.6.tgz", + "integrity": "sha512-ENhXeIxG4A6wFvYSU87b0o3Tp6U+Wup069GYhXCn0ZP/E7evfvomTSM/MeEOs3QTyuye+u2r7fFRj6nX0q9kQA==", + "dependencies": { + "shellwords": "^0.1.0" + } + }, "node_modules/parse-headers": { "version": "2.0.5", "dev": true, @@ -14603,6 +14523,11 @@ "node": ">=8" } }, + "node_modules/shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==" + }, "node_modules/side-channel": { "version": "1.0.4", "license": "MIT", @@ -15843,6 +15768,7 @@ "version": "1.0.13", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, "funding": [ { "type": "opencollective", @@ -16534,7 +16460,7 @@ "@tabler/icons": "^1.46.0", "@tippyjs/react": "^4.2.6", "@usebruno/graphql-docs": "0.1.0", - "@usebruno/schema": "0.5.0", + "@usebruno/schema": "0.6.0", "axios": "^0.26.0", "classnames": "^2.3.1", "codemirror": "^5.65.2", @@ -16557,6 +16483,7 @@ "mousetrap": "^1.6.5", "nanoid": "3.3.4", "next": "12.3.3", + "parse-curl": "^0.2.6", "path": "^0.12.7", "platform": "^1.3.6", "posthog-node": "^2.1.0", @@ -16625,11 +16552,11 @@ }, "packages/bruno-cli": { "name": "@usebruno/cli", - "version": "0.14.0", + "version": "0.15.1", "license": "MIT", "dependencies": { - "@usebruno/js": "0.8.0", - "@usebruno/lang": "0.8.0", + "@usebruno/js": "0.9.1", + "@usebruno/lang": "0.9.0", "axios": "^1.5.1", "chai": "^4.3.7", "chalk": "^3.0.0", @@ -16717,18 +16644,18 @@ }, "packages/bruno-electron": { "name": "bruno", - "version": "v0.25.0", + "version": "v0.27.2", "dependencies": { "@aws-sdk/credential-providers": "^3.425.0", - "@usebruno/js": "0.8.0", - "@usebruno/lang": "0.8.0", - "@usebruno/schema": "0.5.0", + "@usebruno/js": "0.9.1", + "@usebruno/lang": "0.9.0", + "@usebruno/schema": "0.6.0", "about-window": "^1.15.2", "aws4-axios": "^3.3.0", "axios": "^1.5.1", "chai": "^4.3.7", - "chai-string": "^1.5.0", "chokidar": "^3.5.3", + "content-disposition": "^0.5.4", "decomment": "^0.9.5", "dotenv": "^16.0.3", "electron-is-dev": "^2.0.0", @@ -16742,7 +16669,9 @@ "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.2", "is-valid-path": "^0.1.1", + "js-yaml": "^4.1.0", "lodash": "^4.17.21", + "mime-types": "^2.1.35", "mustache": "^4.2.0", "nanoid": "3.3.4", "node-machine-id": "^1.1.12", @@ -16776,6 +16705,11 @@ "node": ">= 14" } }, + "packages/bruno-electron/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, "packages/bruno-electron/node_modules/aws4-axios": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/aws4-axios/-/aws4-axios-3.3.0.tgz", @@ -16892,6 +16826,17 @@ "node": ">= 14" } }, + "packages/bruno-electron/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "packages/bruno-electron/node_modules/uuid": { "version": "9.0.0", "license": "MIT", @@ -16928,7 +16873,7 @@ }, "packages/bruno-js": { "name": "@usebruno/js", - "version": "0.8.0", + "version": "0.9.1", "license": "MIT", "dependencies": { "@usebruno/query": "0.1.0", @@ -16937,6 +16882,7 @@ "axios": "^0.26.0", "btoa": "^1.2.1", "chai": "^4.3.7", + "chai-string": "^1.5.0", "crypto-js": "^4.1.1", "handlebars": "^4.7.8", "json-query": "^2.2.2", @@ -16977,7 +16923,7 @@ }, "packages/bruno-lang": { "name": "@usebruno/lang", - "version": "0.8.0", + "version": "0.9.0", "license": "MIT", "dependencies": { "arcsecond": "^5.0.0", @@ -17014,7 +16960,7 @@ }, "packages/bruno-schema": { "name": "@usebruno/schema", - "version": "0.5.0", + "version": "0.6.0", "license": "MIT", "peerDependencies": { "yup": "^0.32.11" @@ -20578,7 +20524,7 @@ "@tabler/icons": "^1.46.0", "@tippyjs/react": "^4.2.6", "@usebruno/graphql-docs": "0.1.0", - "@usebruno/schema": "0.5.0", + "@usebruno/schema": "0.6.0", "axios": "^0.26.0", "babel-loader": "^8.2.3", "classnames": "^2.3.1", @@ -20608,6 +20554,7 @@ "mousetrap": "^1.6.5", "nanoid": "3.3.4", "next": "12.3.3", + "parse-curl": "*", "path": "^0.12.7", "platform": "^1.3.6", "posthog-node": "^2.1.0", @@ -20660,8 +20607,8 @@ "@usebruno/cli": { "version": "file:packages/bruno-cli", "requires": { - "@usebruno/js": "0.8.0", - "@usebruno/lang": "0.8.0", + "@usebruno/js": "0.9.1", + "@usebruno/lang": "0.9.0", "axios": "^1.5.1", "chai": "^4.3.7", "chalk": "^3.0.0", @@ -20756,6 +20703,7 @@ "axios": "^0.26.0", "btoa": "^1.2.1", "chai": "^4.3.7", + "chai-string": "^1.5.0", "crypto-js": "^4.1.1", "handlebars": "^4.7.8", "json-query": "^2.2.2", @@ -21307,34 +21255,6 @@ "atomically": { "version": "1.7.0" }, - "autoprefixer": { - "version": "10.4.16", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", - "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", - "peer": true, - "requires": { - "browserslist": "^4.21.10", - "caniuse-lite": "^1.0.30001538", - "fraction.js": "^4.3.6", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "dependencies": { - "browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", - "peer": true, - "requires": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" - } - } - } - }, "aws-sign2": { "version": "0.7.0", "dev": true @@ -21596,6 +21516,7 @@ }, "browserslist": { "version": "4.21.4", + "dev": true, "requires": { "caniuse-lite": "^1.0.30001400", "electron-to-chromium": "^1.4.251", @@ -21607,15 +21528,15 @@ "version": "file:packages/bruno-electron", "requires": { "@aws-sdk/credential-providers": "^3.425.0", - "@usebruno/js": "0.8.0", - "@usebruno/lang": "0.8.0", - "@usebruno/schema": "0.5.0", + "@usebruno/js": "0.9.1", + "@usebruno/lang": "0.9.0", + "@usebruno/schema": "0.6.0", "about-window": "^1.15.2", "aws4-axios": "^3.3.0", "axios": "^1.5.1", "chai": "^4.3.7", - "chai-string": "^1.5.0", "chokidar": "^3.5.3", + "content-disposition": "^0.5.4", "decomment": "^0.9.5", "dmg-license": "^1.0.11", "dotenv": "^16.0.3", @@ -21633,7 +21554,9 @@ "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.2", "is-valid-path": "^0.1.1", + "js-yaml": "^4.1.0", "lodash": "^4.17.21", + "mime-types": "^2.1.35", "mustache": "^4.2.0", "nanoid": "3.3.4", "node-machine-id": "^1.1.12", @@ -21654,6 +21577,11 @@ "debug": "^4.3.4" } }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, "aws4-axios": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/aws4-axios/-/aws4-axios-3.3.0.tgz", @@ -21724,6 +21652,14 @@ "debug": "4" } }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + }, "uuid": { "version": "9.0.0" } @@ -22948,7 +22884,8 @@ "electron-to-chromium": { "version": "1.4.554", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.554.tgz", - "integrity": "sha512-Q0umzPJjfBrrj8unkONTgbKQXzXRrH7sVV7D9ea2yBV3Oaogz991yhbpfvo2LMNkJItmruXTEzVpP9cp7vaIiQ==" + "integrity": "sha512-Q0umzPJjfBrrj8unkONTgbKQXzXRrH7sVV7D9ea2yBV3Oaogz991yhbpfvo2LMNkJItmruXTEzVpP9cp7vaIiQ==", + "dev": true }, "electron-util": { "version": "0.17.2", @@ -23429,12 +23366,6 @@ "forwarded": { "version": "0.2.0" }, - "fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "peer": true - }, "fresh": { "version": "0.5.2" }, @@ -25443,7 +25374,8 @@ "node-releases": { "version": "2.0.13", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true }, "normalize-package-data": { "version": "2.5.0", @@ -25468,12 +25400,6 @@ "normalize-path": { "version": "3.0.0" }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "peer": true - }, "normalize-url": { "version": "6.1.0", "dev": true @@ -25692,6 +25618,14 @@ "xml2js": "^0.4.5" } }, + "parse-curl": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/parse-curl/-/parse-curl-0.2.6.tgz", + "integrity": "sha512-ENhXeIxG4A6wFvYSU87b0o3Tp6U+Wup069GYhXCn0ZP/E7evfvomTSM/MeEOs3QTyuye+u2r7fFRj6nX0q9kQA==", + "requires": { + "shellwords": "^0.1.0" + } + }, "parse-headers": { "version": "2.0.5", "dev": true @@ -27125,6 +27059,11 @@ "version": "3.0.0", "dev": true }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==" + }, "side-channel": { "version": "1.0.4", "requires": { @@ -27920,6 +27859,7 @@ "version": "1.0.13", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, "requires": { "escalade": "^3.1.1", "picocolors": "^1.0.0" diff --git a/packages/bruno-app/package.json b/packages/bruno-app/package.json index 8ead3b9254..77ff96b67d 100644 --- a/packages/bruno-app/package.json +++ b/packages/bruno-app/package.json @@ -3,7 +3,7 @@ "version": "0.3.0", "private": true, "scripts": { - "dev": "cross-env ENV=dev next dev", + "dev": "cross-env ENV=dev next dev -p 3000", "build": "next build && next export", "start": "next start", "lint": "next lint", @@ -19,7 +19,7 @@ "@tabler/icons": "^1.46.0", "@tippyjs/react": "^4.2.6", "@usebruno/graphql-docs": "0.1.0", - "@usebruno/schema": "0.5.0", + "@usebruno/schema": "0.6.0", "axios": "^0.26.0", "classnames": "^2.3.1", "codemirror": "^5.65.2", @@ -42,6 +42,7 @@ "mousetrap": "^1.6.5", "nanoid": "3.3.4", "next": "12.3.3", + "parse-curl": "^0.2.6", "path": "^0.12.7", "platform": "^1.3.6", "posthog-node": "^2.1.0", diff --git a/packages/bruno-app/src/components/CodeEditor/StyledWrapper.js b/packages/bruno-app/src/components/CodeEditor/StyledWrapper.js index fe0f4cc199..3623d406dc 100644 --- a/packages/bruno-app/src/components/CodeEditor/StyledWrapper.js +++ b/packages/bruno-app/src/components/CodeEditor/StyledWrapper.js @@ -5,6 +5,7 @@ const StyledWrapper = styled.div` background: ${(props) => props.theme.codemirror.bg}; border: solid 1px ${(props) => props.theme.codemirror.border}; font-family: ${(props) => (props.font ? props.font : 'default')}; + line-break: anywhere; } .CodeMirror-overlayscroll-horizontal div, diff --git a/packages/bruno-app/src/components/CodeEditor/index.js b/packages/bruno-app/src/components/CodeEditor/index.js index 6ad999e6ba..0bfd6fdd3e 100644 --- a/packages/bruno-app/src/components/CodeEditor/index.js +++ b/packages/bruno-app/src/components/CodeEditor/index.js @@ -70,6 +70,35 @@ export default class CodeEditor extends React.Component { 'Ctrl-F': 'findPersistent', Tab: function (cm) { cm.replaceSelection(' ', 'end'); + }, + 'Ctrl-Y': 'foldAll', + 'Cmd-Y': 'foldAll', + 'Ctrl-I': 'unfoldAll', + 'Cmd-I': 'unfoldAll' + }, + foldOptions: { + widget: (from, to) => { + var count = undefined; + var internal = this.editor.getRange(from, to); + if (this.props.mode == 'application/ld+json') { + if (this.editor.getLine(from.line).endsWith('[')) { + var toParse = '[' + internal + ']'; + } else var toParse = '{' + internal + '}'; + try { + count = Object.keys(JSON.parse(toParse)).length; + } catch (e) {} + } else if (this.props.mode == 'application/xml') { + var doc = new DOMParser(); + try { + //add header element and remove prefix namespaces for DOMParser + var dcm = doc.parseFromString( + ' ' + internal.replace(/(?<=\<|<\/)\w+:/g, '') + '', + 'application/xml' + ); + count = dcm.documentElement.children.length; + } catch (e) {} + } + return count ? `\u21A4${count}\u21A6` : '\u2194'; } } })); @@ -117,6 +146,9 @@ export default class CodeEditor extends React.Component { } render() { + if (this.editor) { + this.editor.refresh(); + } return ( { const proxySchema = Yup.object({ - use: Yup.string().oneOf(['global', 'true', 'false']), + enabled: Yup.string().oneOf(['global', 'true', 'false']), protocol: Yup.string().oneOf(['http', 'https', 'socks4', 'socks5']), hostname: Yup.string() - .when('use', { + .when('enabled', { is: true, then: (hostname) => hostname.required('Specify the hostname for your proxy.'), otherwise: (hostname) => hostname.nullable() }) .max(1024), port: Yup.number() - .when('use', { + .when('enabled', { is: true, then: (port) => port.required('Specify port between 1 and 65535').typeError('Specify port between 1 and 65535'), otherwise: (port) => port.nullable().transform((_, val) => (val ? Number(val) : null)) @@ -49,7 +49,7 @@ const ProxySettings = ({ proxyConfig, onUpdate }) => { const formik = useFormik({ initialValues: { - use: proxyConfig.use || 'global', + enabled: proxyConfig.enabled || 'global', protocol: proxyConfig.protocol || 'http', hostname: proxyConfig.hostname || '', port: proxyConfig.port || '', @@ -65,11 +65,11 @@ const ProxySettings = ({ proxyConfig, onUpdate }) => { proxySchema .validate(values, { abortEarly: true }) .then((validatedProxy) => { - // serialize 'use' to boolean - if (validatedProxy.use === 'true') { - validatedProxy.use = true; - } else if (validatedProxy.use === 'false') { - validatedProxy.use = false; + // serialize 'enabled' to boolean + if (validatedProxy.enabled === 'true') { + validatedProxy.enabled = true; + } else if (validatedProxy.enabled === 'false') { + validatedProxy.enabled = false; } onUpdate(validatedProxy); @@ -83,7 +83,7 @@ const ProxySettings = ({ proxyConfig, onUpdate }) => { useEffect(() => { formik.setValues({ - use: proxyConfig.use === true ? 'true' : proxyConfig.use === false ? 'false' : 'global', + enabled: proxyConfig.enabled === true ? 'true' : proxyConfig.enabled === false ? 'false' : 'global', protocol: proxyConfig.protocol || 'http', hostname: proxyConfig.hostname || '', port: proxyConfig.port || '', @@ -120,9 +120,9 @@ const ProxySettings = ({ proxyConfig, onUpdate }) => {