diff --git a/contributing.md b/contributing.md index 3835c2cb..0b845066 100644 --- a/contributing.md +++ b/contributing.md @@ -15,6 +15,7 @@ | [正體中文](docs/contributing/contributing_zhtw.md) | [日本語](docs/contributing/contributing_ja.md) | [हिंदी](docs/contributing/contributing_hi.md) +| [Nederlands](docs/contributing/contributing_nl.md) ## Let's make Bruno better, together!! diff --git a/docs/contributing/contributing_bn.md b/docs/contributing/contributing_bn.md index 9348919f..a5d765a1 100644 --- a/docs/contributing/contributing_bn.md +++ b/docs/contributing/contributing_bn.md @@ -1,20 +1,4 @@ [English](../../contributing.md) -| [Українська](./contributing_ua.md) -| [Русский](./contributing_ru.md) -| [Türkçe](./contributing_tr.md) -| [Deutsch](./contributing_de.md) -| [Français](./contributing_fr.md) -| [Português (BR)](./contributing_pt_br.md) -| [한국어](./contributing_kr.md) -| **বাংলা** -| [Español](./contributing_es.md) -| [Italiano](./contributing_it.md) -| [Română](./contributing_ro.md) -| [Polski](./contributing_pl.md) -| [简体中文](./contributing_cn.md) -| [正體中文](./contributing_zhtw.md) -| [日本語](./contributing_ja.md) -| [हिंदी](./contributing_hi.md) ## আসুন ব্রুনোকে আরও ভালো করি, একসাথে!! diff --git a/docs/contributing/contributing_cn.md b/docs/contributing/contributing_cn.md index f20d0ce7..f355feba 100644 --- a/docs/contributing/contributing_cn.md +++ b/docs/contributing/contributing_cn.md @@ -1,20 +1,4 @@ [English](../../contributing.md) -| [Українська](./contributing_ua.md) -| [Русский](./contributing_ru.md) -| [Türkçe](./contributing_tr.md) -| [Deutsch](./contributing_de.md) -| [Français](./contributing_fr.md) -| [Português (BR)](./contributing_pt_br.md) -| [한국어](./contributing_kr.md) -| [বাংলা](./contributing_bn.md) -| [Español](./contributing_es.md) -| [Italiano](./contributing_it.md) -| [Română](./contributing_ro.md) -| [Polski](./contributing_pl.md) -| **简体中文** -| [正體中文](./contributing_zhtw.md) -| [日本語](./contributing_ja.md) -| [हिंदी](./contributing_hi.md) ## 让我们一起改进 Bruno! diff --git a/docs/contributing/contributing_de.md b/docs/contributing/contributing_de.md index 2e11bdc7..2983e8d2 100644 --- a/docs/contributing/contributing_de.md +++ b/docs/contributing/contributing_de.md @@ -1,20 +1,4 @@ [English](../../contributing.md) -| [Українська](./contributing_ua.md) -| [Русский](./contributing_ru.md) -| [Türkçe](./contributing_tr.md) -| **Deutsch** -| [Français](./contributing_fr.md) -| [Português (BR)](./contributing_pt_br.md) -| [한국어](./contributing_kr.md) -| [বাংলা](./contributing_bn.md) -| [Español](./contributing_es.md) -| [Italiano](./contributing_it.md) -| [Română](./contributing_ro.md) -| [Polski](./contributing_pl.md) -| [简体中文](./contributing_cn.md) -| [正體中文](./contributing_zhtw.md) -| [日本語](./contributing_ja.md) -| [हिंदी](./contributing_hi.md) ## Lass uns Bruno noch besser machen, gemeinsam!! diff --git a/docs/contributing/contributing_es.md b/docs/contributing/contributing_es.md index d94cee03..f84090a1 100644 --- a/docs/contributing/contributing_es.md +++ b/docs/contributing/contributing_es.md @@ -1,20 +1,4 @@ [English](../../contributing.md) -| [Українська](./contributing_ua.md) -| [Русский](./contributing_ru.md) -| [Türkçe](./contributing_tr.md) -| [Deutsch](./contributing_de.md) -| [Français](./contributing_fr.md) -| [Português (BR)](./contributing_pt_br.md) -| [한국어](./contributing_kr.md) -| [বাংলা](./contributing_bn.md) -| **Español** -| [Italiano](./contributing_it.md) -| [Română](./contributing_ro.md) -| [Polski](./contributing_pl.md) -| [简体中文](./contributing_cn.md) -| [正體中文](./contributing_zhtw.md) -| [日本語](./contributing_ja.md) -| [हिंदी](./contributing_hi.md) ## ¡Juntos, hagamos a Bruno mejor! diff --git a/docs/contributing/contributing_fr.md b/docs/contributing/contributing_fr.md index 4016ab3d..9b0eacda 100644 --- a/docs/contributing/contributing_fr.md +++ b/docs/contributing/contributing_fr.md @@ -1,20 +1,4 @@ [English](../../contributing.md) -| [Українська](./contributing_ua.md) -| [Русский](./contributing_ru.md) -| [Türkçe](./contributing_tr.md) -| [Deutsch](./contributing_de.md) -| **Français** -| [Português (BR)](./contributing_pt_br.md) -| [한국어](./contributing_kr.md) -| [বাংলা](./contributing_bn.md) -| [Español](./contributing_es.md) -| [Italiano](./contributing_it.md) -| [Română](./contributing_ro.md) -| [Polski](./contributing_pl.md) -| [简体中文](./contributing_cn.md) -| [正體中文](./contributing_zhtw.md) -| [日本語](./contributing_ja.md) -| [हिंदी](./contributing_hi.md) ## Ensemble, améliorons Bruno ! diff --git a/docs/contributing/contributing_hi.md b/docs/contributing/contributing_hi.md index 71f0f503..38f39c5e 100644 --- a/docs/contributing/contributing_hi.md +++ b/docs/contributing/contributing_hi.md @@ -1,20 +1,4 @@ [English](../../contributing.md) -| [Українська](./contributing_ua.md) -| [Русский](./contributing_ru.md) -| [Türkçe](./contributing_tr.md) -| [Deutsch](./contributing_de.md) -| [Français](./contributing_fr.md) -| [Português (BR)](./contributing_pt_br.md) -| [한국어](./contributing_kr.md) -| [বাংলা](./contributing_bn.md) -| [Español](./contributing_es.md) -| [Italiano](./contributing_it.md) -| [Română](./contributing_ro.md) -| [Polski](./contributing_pl.md) -| [简体中文](./contributing_cn.md) -| [正體中文](./contributing_zhtw.md) -| [日本語](./contributing_ja.md) -| **हिंदी** ## आइए मिलकर Bruno को बेहतर बनाएं !! diff --git a/docs/contributing/contributing_it.md b/docs/contributing/contributing_it.md index 93dce3e3..18b7518f 100644 --- a/docs/contributing/contributing_it.md +++ b/docs/contributing/contributing_it.md @@ -1,20 +1,4 @@ [English](../../contributing.md) -| [Українська](./contributing_ua.md) -| [Русский](./contributing_ru.md) -| [Türkçe](./contributing_tr.md) -| [Deutsch](./contributing_de.md) -| [Français](./contributing_fr.md) -| [Português (BR)](./contributing_pt_br.md) -| [한국어](./contributing_kr.md) -| [বাংলা](./contributing_bn.md) -| [Español](./contributing_es.md) -| **Italiano** -| [Română](./contributing_ro.md) -| [Polski](./contributing_pl.md) -| [简体中文](./contributing_cn.md) -| [正體中文](./contributing_zhtw.md) -| [日本語](./contributing_ja.md) -| [हिंदी](./contributing_hi.md) ## Insieme, miglioriamo Bruno! diff --git a/docs/contributing/contributing_ja.md b/docs/contributing/contributing_ja.md index 604c5957..da219788 100644 --- a/docs/contributing/contributing_ja.md +++ b/docs/contributing/contributing_ja.md @@ -1,20 +1,4 @@ [English](../../contributing.md) -| [Українська](./contributing_ua.md) -| [Русский](./contributing_ru.md) -| [Türkçe](./contributing_tr.md) -| [Deutsch](./contributing_de.md) -| [Français](./contributing_fr.md) -| [Português (BR)](./contributing_pt_br.md) -| [한국어](./contributing_kr.md) -| [বাংলা](./contributing_bn.md) -| [Español](./contributing_es.md) -| [Italiano](./contributing_it.md) -| [Română](./contributing_ro.md) -| [Polski](./contributing_pl.md) -| [简体中文](./contributing_cn.md) -| [正體中文](./contributing_zhtw.md) -| **日本語** -| [हिंदी](./contributing_hi.md) ## 一緒に Bruno をよりよいものにしていきましょう!! diff --git a/docs/contributing/contributing_kr.md b/docs/contributing/contributing_kr.md index d1c00830..70e5a12f 100644 --- a/docs/contributing/contributing_kr.md +++ b/docs/contributing/contributing_kr.md @@ -1,20 +1,4 @@ [English](../../contributing.md) -| [Українська](./contributing_ua.md) -| [Русский](./contributing_ru.md) -| [Türkçe](./contributing_tr.md) -| [Deutsch](./contributing_de.md) -| [Français](./contributing_fr.md) -| [Português (BR)](./contributing_pt_br.md) -| **한국어** -| [বাংলা](./contributing_bn.md) -| [Español](./contributing_es.md) -| [Italiano](./contributing_it.md) -| [Română](./contributing_ro.md) -| [Polski](./contributing_pl.md) -| [简体中文](./contributing_cn.md) -| [正體中文](./contributing_zhtw.md) -| [日本語](./contributing_ja.md) -| [हिंदी](./contributing_hi.md) ## 함께 Bruno를 더 좋게 만들어요!! diff --git a/docs/contributing/contributing_nl.md b/docs/contributing/contributing_nl.md new file mode 100644 index 00000000..8c8d9402 --- /dev/null +++ b/docs/contributing/contributing_nl.md @@ -0,0 +1,82 @@ +[English](../../contributing.md) + +## Laten we Bruno samen beter maken !! + +We zijn blij dat je Bruno wilt verbeteren. Hieronder staan de richtlijnen om Bruno op je computer op te zetten. + +### Technologiestack + +Bruno is gebouwd met Next.js en React. We gebruiken ook Electron om een desktopversie te leveren (die lokale collecties ondersteunt). + +Bibliotheken die we gebruiken: + +- CSS - Tailwind +- Code Editors - Codemirror +- State Management - Redux +- Iconen - Tabler Icons +- Formulieren - formik +- Schema Validatie - Yup +- Request Client - axios +- Bestandsysteem Watcher - chokidar + +### Afhankelijkheden + +Je hebt [Node v18.x of de nieuwste LTS-versie](https://nodejs.org/en/) en npm 8.x nodig. We gebruiken npm workspaces in het project. + +## Ontwikkeling + +Bruno wordt ontwikkeld als een desktop-app. Je moet de app laden door de Next.js app in één terminal te draaien en daarna de Electron app in een andere terminal te draaien. + +### Lokale Ontwikkeling + +```bash +# gebruik voorgeschreven node versie +nvm use + +# installeer afhankelijkheden +npm i --legacy-peer-deps + +# build pakketten +npm run build:graphql-docs +npm run build:bruno-query +npm run build:bruno-common + +# draai next app (terminal 1) +npm run dev:web + +# draai electron app (terminal 2) +npm run dev:electron +``` + +### Problemen oplossen + +Je kunt een `Unsupported platform`-fout tegenkomen wanneer je `npm install` uitvoert. Om dit te verhelpen, moet je `node_modules` en `package-lock.json` verwijderen en `npm install` uitvoeren. Dit zou alle benodigde afhankelijkheden moeten installeren om de app te draaien. + +```shell +# Verwijder node_modules in subdirectories +find ./ -type d -name "node_modules" -print0 | while read -d $'\0' dir; do + rm -rf "$dir" +done + +# Verwijder package-lock in subdirectories +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 +``` + +### Pull Requests indienen + +- Houd de PR's klein en gefocust op één ding +- Volg het formaat voor het aanmaken van branches + - feature/[feature naam]: Deze branch moet wijzigingen voor een specifieke functie bevatten + - Voorbeeld: feature/dark-mode + - bugfix/[bug naam]: Deze branch moet alleen bugfixes voor een specifieke bug bevatten + - Voorbeeld: bugfix/bug-1 \ No newline at end of file diff --git a/docs/contributing/contributing_pl.md b/docs/contributing/contributing_pl.md index 6cc7a7f5..085407db 100644 --- a/docs/contributing/contributing_pl.md +++ b/docs/contributing/contributing_pl.md @@ -1,20 +1,4 @@ [English](../../contributing.md) -| [Українська](./contributing_ua.md) -| [Русский](./contributing_ru.md) -| [Türkçe](./contributing_tr.md) -| [Deutsch](./contributing_de.md) -| [Français](./contributing_fr.md) -| [Português (BR)](./contributing_pt_br.md) -| [한국어](./contributing_kr.md) -| [বাংলা](./contributing_bn.md) -| [Español](./contributing_es.md) -| [Italiano](./contributing_it.md) -| [Română](./contributing_ro.md) -| **Polski** -| [简体中文](./contributing_cn.md) -| [正體中文](./contributing_zhtw.md) -| [日本語](./contributing_ja.md) -| [हिंदी](./contributing_hi.md) ## Wspólnie uczynijmy Bruno lepszym !! diff --git a/docs/contributing/contributing_pt_br.md b/docs/contributing/contributing_pt_br.md index 52bdecaf..513dfcc3 100644 --- a/docs/contributing/contributing_pt_br.md +++ b/docs/contributing/contributing_pt_br.md @@ -1,20 +1,4 @@ [English](../../contributing.md) -| [Українська](./contributing_ua.md) -| [Русский](./contributing_ru.md) -| [Türkçe](./contributing_tr.md) -| [Deutsch](./contributing_de.md) -| [Français](./contributing_fr.md) -| **Português (BR)** -| [한국어](./contributing_kr.md) -| [বাংলা](./contributing_bn.md) -| [Español](./contributing_es.md) -| [Italiano](./contributing_it.md) -| [Română](./contributing_ro.md) -| [Polski](./contributing_pl.md) -| [简体中文](./contributing_cn.md) -| [正體中文](./contributing_zhtw.md) -| [日本語](./contributing_ja.md) -| [हिंदी](./contributing_hi.md) ## Vamos tornar o Bruno melhor, juntos!! diff --git a/docs/contributing/contributing_ro.md b/docs/contributing/contributing_ro.md index 5a7e23f9..ee210261 100644 --- a/docs/contributing/contributing_ro.md +++ b/docs/contributing/contributing_ro.md @@ -1,20 +1,4 @@ [English](../../contributing.md) -| [Українська](./contributing_ua.md) -| [Русский](./contributing_ru.md) -| [Türkçe](./contributing_tr.md) -| [Deutsch](./contributing_de.md) -| [Français](./contributing_fr.md) -| [Português (BR)](./contributing_pt_br.md) -| [한국어](./contributing_kr.md) -| [বাংলা](./contributing_bn.md) -| [Español](./contributing_es.md) -| [Italiano](./contributing_it.md) -| **Română** -| [Polski](./contributing_pl.md) -| [简体中文](./contributing_cn.md) -| [正體中文](./contributing_zhtw.md) -| [日本語](./contributing_ja.md) -| [हिंदी](./contributing_hi.md) ## Haideţi să îmbunătățim Bruno, împreună!! diff --git a/docs/contributing/contributing_ru.md b/docs/contributing/contributing_ru.md index ce4cf16d..ab967953 100644 --- a/docs/contributing/contributing_ru.md +++ b/docs/contributing/contributing_ru.md @@ -1,20 +1,4 @@ [English](../../contributing.md) -| [Українська](./contributing_ua.md) -| **Русский** -| [Türkçe](./contributing_tr.md) -| [Deutsch](./contributing_de.md) -| [Français](./contributing_fr.md) -| [Português (BR)](./contributing_pt_br.md) -| [한국어](./contributing_kr.md) -| [বাংলা](./contributing_bn.md) -| [Español](./contributing_es.md) -| [Italiano](./contributing_it.md) -| [Română](./contributing_ro.md) -| [Polski](./contributing_pl.md) -| [简体中文](./contributing_cn.md) -| [正體中文](./contributing_zhtw.md) -| [日本語](./contributing_ja.md) -| [हिंदी](./contributing_hi.md) ## Давайте вместе сделаем Бруно лучше!!! diff --git a/docs/contributing/contributing_tr.md b/docs/contributing/contributing_tr.md index 2789b3a5..26531cab 100644 --- a/docs/contributing/contributing_tr.md +++ b/docs/contributing/contributing_tr.md @@ -1,20 +1,4 @@ [English](../../contributing.md) -| [Українська](./contributing_ua.md) -| [Русский](./contributing_ru.md) -| **Türkçe** -| [Deutsch](./contributing_de.md) -| [Français](./contributing_fr.md) -| [Português (BR)](./contributing_pt_br.md) -| [한국어](./contributing_kr.md) -| [বাংলা](./contributing_bn.md) -| [Español](./contributing_es.md) -| [Italiano](./contributing_it.md) -| [Română](./contributing_ro.md) -| [Polski](./contributing_pl.md) -| [简体中文](./contributing_cn.md) -| [正體中文](./contributing_zhtw.md) -| [日本語](./contributing_ja.md) -| [हिंदी](./contributing_hi.md) ## Bruno'yu birlikte daha iyi hale getirelim!!! diff --git a/docs/contributing/contributing_ua.md b/docs/contributing/contributing_ua.md index aeace255..88f9ab59 100644 --- a/docs/contributing/contributing_ua.md +++ b/docs/contributing/contributing_ua.md @@ -1,20 +1,4 @@ [English](../../contributing.md) -| **Українська** -| [Русский](./contributing_ru.md) -| [Türkçe](./contributing_tr.md) -| [Deutsch](./contributing_de.md) -| [Français](./contributing_fr.md) -| [Português (BR)](./contributing_pt_br.md) -| [한국어](./contributing_kr.md) -| [বাংলা](./contributing_bn.md) -| [Español](./contributing_es.md) -| [Italiano](./contributing_it.md) -| [Română](./contributing_ro.md) -| [Polski](./contributing_pl.md) -| [简体中文](./contributing_cn.md) -| [正體中文](./contributing_zhtw.md) -| [日本語](./contributing_ja.md) -| [हिंदी](./contributing_hi.md) ## Давайте зробимо Bruno краще, разом !! diff --git a/docs/contributing/contributing_zhtw.md b/docs/contributing/contributing_zhtw.md index 48ec8248..f061adb4 100644 --- a/docs/contributing/contributing_zhtw.md +++ b/docs/contributing/contributing_zhtw.md @@ -1,20 +1,4 @@ [English](../../contributing.md) -| [Українська](./contributing_ua.md) -| [Русский](./contributing_ru.md) -| [Türkçe](./contributing_tr.md) -| [Deutsch](./contributing_de.md) -| [Français](./contributing_fr.md) -| [Português (BR)](./contributing_pt_br.md) -| [한국어](./contributing_kr.md) -| [বাংলা](./contributing_bn.md) -| [Español](./contributing_es.md) -| [Italiano](./contributing_it.md) -| [Română](./contributing_ro.md) -| [Polski](./contributing_pl.md) -| [简体中文](./contributing_cn.md) -| **正體中文** -| [日本語](./contributing_ja.md) -| [हिंदी](./contributing_hi.md) ## 讓我們一起來讓 Bruno 變得更好! diff --git a/docs/publishing/publishin_nl.md b/docs/publishing/publishin_nl.md new file mode 100644 index 00000000..a6c74279 --- /dev/null +++ b/docs/publishing/publishin_nl.md @@ -0,0 +1,7 @@ +[English](../../publishing.md) + +### Bruno publiceren naar een nieuwe pakketbeheerder + +Hoewel onze code open source is en beschikbaar voor iedereen, verzoeken we je vriendelijk om contact met ons op te nemen voordat je publicatie overweegt op nieuwe pakketbeheerders. Als de maker van Bruno houd ik het handelsmerk `Bruno` voor dit project en wil ik het distributieproces beheren. Als je Bruno op een nieuwe pakketbeheerder wilt zien, dien dan een GitHub-issue in. + +Hoewel de meerderheid van onze functies gratis en open source zijn (die REST en GraphQL API's dekken), streven we ernaar een harmonieuze balans te vinden tussen open-source principes en duurzaamheid - https://github.com/usebruno/bruno/discussions/269 \ No newline at end of file diff --git a/docs/publishing/publishing_bn.md b/docs/publishing/publishing_bn.md index 44cc55ae..bca792f7 100644 --- a/docs/publishing/publishing_bn.md +++ b/docs/publishing/publishing_bn.md @@ -1,14 +1,4 @@ [English](../../publishing.md) -| [Türkçe](./publishing_tr.md) -| [Deutsch](./publishing_de.md) -| [Français](./publishing_fr.md) -| [Português (BR)](./publishing_pt_br.md) -| **বাংলা** -| [Română](./publishing_ro.md) -| [Polski](./publishing_pl.md) -| [简体中文](./publishing_cn.md) -| [正體中文](./publishing_zhtw.md) -| [日本語](./publishing_ja.md) ### ব্রুনোকে নতুন প্যাকেজ ম্যানেজারে প্রকাশ করা diff --git a/docs/publishing/publishing_cn.md b/docs/publishing/publishing_cn.md index 04bd23c8..08835547 100644 --- a/docs/publishing/publishing_cn.md +++ b/docs/publishing/publishing_cn.md @@ -1,14 +1,4 @@ [English](../../publishing.md) -| [Türkçe](./publishing_tr.md) -| [Deutsch](./publishing_de.md) -| [Français](./publishing_fr.md) -| [Português (BR)](./publishing_pt_br.md) -| [বাংলা](./publishing_bn.md) -| [Română](./publishing_ro.md) -| [Polski](./publishing_pl.md) -| **简体中文** -| [正體中文](./publishing_zhtw.md) -| [日本語](./publishing_ja.md) ### 将 Bruno 发布到新的包管理器 diff --git a/docs/publishing/publishing_de.md b/docs/publishing/publishing_de.md index 01f866c0..e8388bc5 100644 --- a/docs/publishing/publishing_de.md +++ b/docs/publishing/publishing_de.md @@ -1,14 +1,4 @@ [English](../../publishing.md) -| [Türkçe](./publishing_tr.md) -| **Deutsch** -| [Français](./publishing_fr.md) -| [Português (BR)](./publishing_pt_br.md) -| [বাংলা](./publishing_bn.md) -| [Română](./publishing_ro.md) -| [Polski](./publishing_pl.md) -| [简体中文](./publishing_cn.md) -| [正體中文](./publishing_zhtw.md) -| [日本語](./publishing_ja.md) ### Veröffentlichung von Bruno über neue Paket-Manager diff --git a/docs/publishing/publishing_fr.md b/docs/publishing/publishing_fr.md index fd88a8dc..856665e2 100644 --- a/docs/publishing/publishing_fr.md +++ b/docs/publishing/publishing_fr.md @@ -1,14 +1,4 @@ [English](../../publishing.md) -| [Türkçe](./publishing_tr.md) -| [Deutsch](./publishing_de.md) -| **Français** -| [Português (BR)](./publishing_pt_br.md) -| [বাংলা](./publishing_bn.md) -| [Română](./publishing_ro.md) -| [Polski](./publishing_pl.md) -| [简体中文](./publishing_cn.md) -| [正體中文](./publishing_zhtw.md) -| [日本語](./publishing_ja.md) ### Publier Bruno dans un nouveau gestionnaire de paquets diff --git a/docs/publishing/publishing_ja.md b/docs/publishing/publishing_ja.md index adb3f120..be45b647 100644 --- a/docs/publishing/publishing_ja.md +++ b/docs/publishing/publishing_ja.md @@ -1,14 +1,4 @@ [English](../../publishing.md) -| [Türkçe](./publishing_tr.md) -| [Deutsch](./publishing_de.md) -| [Français](./publishing_fr.md) -| [Português (BR)](./publishing_pt_br.md) -| [বাংলা](./publishing_bn.md) -| [Română](./publishing_ro.md) -| [Polski](./publishing_pl.md) -| [简体中文](./publishing_cn.md) -| [正體中文](./publishing_zhtw.md) -| **日本語** ### Bruno を新しいパッケージマネージャに公開する場合の注意 diff --git a/docs/publishing/publishing_pl.md b/docs/publishing/publishing_pl.md index 37127c23..5fd8b0ac 100644 --- a/docs/publishing/publishing_pl.md +++ b/docs/publishing/publishing_pl.md @@ -1,14 +1,4 @@ [English](../../publishing.md) -| [Türkçe](./publishing_tr.md) -| [Deutsch](./publishing_de.md) -| [Français](./publishing_fr.md) -| [Português (BR)](./publishing_pt_br.md) -| [বাংলা](./publishing_bn.md) -| [Română](./publishing_ro.md) -| **Polski** -| [简体中文](./publishing_cn.md) -| [正體中文](./publishing_zhtw.md) -| [日本語](./publishing_ja.md) ### Publikowanie Bruno w nowym menedżerze pakietów diff --git a/docs/publishing/publishing_pt_br.md b/docs/publishing/publishing_pt_br.md index 3cb43cf5..7d49aca5 100644 --- a/docs/publishing/publishing_pt_br.md +++ b/docs/publishing/publishing_pt_br.md @@ -1,14 +1,4 @@ [English](../../publishing.md) -| [Türkçe](./publishing_tr.md) -| [Deutsch](./publishing_de.md) -| [Français](./publishing_fr.md) -| **Português (BR)** -| [বাংলা](./publishing_bn.md) -| [Română](./publishing_ro.md) -| [Polski](./publishing_pl.md) -| [简体中文](./publishing_cn.md) -| [正體中文](./publishing_zhtw.md) -| [日本語](./publishing_ja.md) ### Publicando Bruno em um novo gerenciador de pacotes diff --git a/docs/publishing/publishing_ro.md b/docs/publishing/publishing_ro.md index 44fcca7c..0c3177b0 100644 --- a/docs/publishing/publishing_ro.md +++ b/docs/publishing/publishing_ro.md @@ -1,14 +1,4 @@ [English](../../publishing.md) -| [Türkçe](./publishing_tr.md) -| [Deutsch](./publishing_de.md) -| [Français](./publishing_fr.md) -| [Português (BR)](./publishing_pt_br.md) -| [বাংলা](./publishing_bn.md) -| **Română** -| [Polski](./publishing_pl.md) -| [简体中文](./publishing_cn.md) -| [正體中文](./publishing_zhtw.md) -| [日本語](./publishing_ja.md) ### Publicarea lui Bruno la un gestionar de pachete nou diff --git a/docs/publishing/publishing_tr.md b/docs/publishing/publishing_tr.md index 5dfb8763..314471f6 100644 --- a/docs/publishing/publishing_tr.md +++ b/docs/publishing/publishing_tr.md @@ -1,14 +1,4 @@ [English](../../publishing.md) -| **Türkçe** -| [Deutsch](./publishing_de.md) -| [Français](./publishing_fr.md) -| [Português (BR)](./publishing_pt_br.md) -| [বাংলা](./publishing_bn.md) -| [Română](./publishing_ro.md) -| [Polski](./publishing_pl.md) -| [简体中文](./publishing_cn.md) -| [正體中文](./publishing_zhtw.md) -| [日本語](./publishing_ja.md) ### Bruno'yu yeni bir paket yöneticisine yayınlama diff --git a/docs/publishing/publishing_zhtw.md b/docs/publishing/publishing_zhtw.md index 87548c21..294f468c 100644 --- a/docs/publishing/publishing_zhtw.md +++ b/docs/publishing/publishing_zhtw.md @@ -1,14 +1,4 @@ [English](../../publishing.md) -| [Türkçe](./publishing_tr.md) -| [Deutsch](./publishing_de.md) -| [Français](./publishing_fr.md) -| [Português (BR)](./publishing_pt_br.md) -| [বাংলা](./publishing_bn.md) -| [Română](./publishing_ro.md) -| [Polski](./publishing_pl.md) -| [简体中文](./publishing_cn.md) -| **正體中文** -| [日本語](./publishing_ja.md) ### 將 Bruno 發佈到新的套件管理器 diff --git a/docs/readme/readme_nl.md b/docs/readme/readme_nl.md new file mode 100644 index 00000000..809de08e --- /dev/null +++ b/docs/readme/readme_nl.md @@ -0,0 +1,157 @@ +
+ + +### Bruno - Open source IDE voor het verkennen en testen van API's. + +[![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/tests.yml/badge.svg?branch=main)](https://github.com/usebruno/bruno/actions/workflows/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) + +[English](../../readme.md) | [Українська](docs/readme/readme_ua.md) | [Русский](docs/readme/readme_ru.md) | [Türkçe](docs/readme/readme_tr.md) | [Deutsch](docs/readme/readme_de.md) | ** Nederlands ** | [Français](docs/readme/readme_fr.md) | [Português (BR)](docs/readme/readme_pt_br.md) | [한국어](docs/readme/readme_kr.md) | [বাংলা](docs/readme/readme_bn.md) | [Español](docs/readme/readme_es.md) | [Italiano](docs/readme/readme_it.md) | [Română](docs/readme/readme_ro.md) | [Polski](docs/readme/readme_pl.md) | [简体中文](docs/readme/readme_cn.md) | [正體中文](docs/readme/readme_zhtw.md) | [العربية](docs/readme/readme_ar.md) | [日本語](docs/readme/readme_ja.md) + +Bruno is een nieuwe en innovatieve API-client, gericht op het revolutioneren van de status quo die wordt vertegenwoordigd door Postman en vergelijkbare tools. + +Bruno slaat je collecties direct op in een map op je bestandssysteem. We gebruiken een platte tekst opmaaktaal, Bru, om informatie over API-verzoeken op te slaan. + +Je kunt Git of elke versiebeheertool naar keuze gebruiken om samen te werken aan je API-collecties. + +Bruno is uitsluitend offline. Er zijn geen plannen om ooit cloud-synchronisatie aan Bruno toe te voegen. We waarderen je gegevensprivacy en geloven dat deze op je apparaat moet blijven. Lees onze langetermijnvisie [hier](https://github.com/usebruno/bruno/discussions/269) + +[Download Bruno](https://www.usebruno.com/downloads) + +📢 Bekijk onze recente presentatie op de India FOSS 3.0 Conference [hier](https://www.youtube.com/watch?v=7bSMFpbcPiY) + +![bruno](/assets/images/landing-2.png)

+ +### Golden Edition ✨ + +De meeste van onze functies zijn gratis en open source. +We streven naar een harmonieuze balans tussen [open-source principes en duurzaamheid](https://github.com/usebruno/bruno/discussions/269). + +Je kunt de [Golden Edition](https://www.usebruno.com/pricing) kopen voor een eenmalige betaling van **$19**!
+ +### Installatie + +Bruno is beschikbaar als binaire download [op onze website](https://www.usebruno.com/downloads) voor Mac, Windows en Linux. + +Je kunt Bruno ook installeren via pakketbeheerders zoals Homebrew, Chocolatey, Scoop, Snap, Flatpak en Apt. + +```sh +# Op Mac via Homebrew +brew install bruno + +# Op Windows via Chocolatey +choco install bruno + +# Op Windows via Scoop +scoop bucket add extras +scoop install bruno + +# Op Windows via winget +winget install Bruno.Bruno + +# Op Linux via Snap +snap install bruno + +# Op Linux via Flatpak +flatpak install com.usebruno.Bruno + +# Op Linux via Apt +sudo mkdir -p /etc/apt/keyrings +sudo gpg --no-default-keyring --keyring /etc/apt/keyrings/bruno.gpg --keyserver keyserver.ubuntu.com --recv-keys 9FA6017ECABE0266 + +echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/bruno.gpg] http://debian.usebruno.com/ bruno stable" | sudo tee /etc/apt/sources.list.d/bruno.list + +sudo apt update +sudo apt install bruno +``` + +### Draai op meerdere platformen 🖥️ + +![bruno](/assets/images/run-anywhere.png)

+ +### Samenwerken via Git 👩‍💻🧑‍💻 + +Of elk versiebeheersysteem naar keuze + +![bruno](/assets/images/version-control.png)

+ +### Sponsors + +#### Gouden Sponsors + + + +#### Zilveren Sponsors + + + +#### Bronzen Sponsors + + + + + +### Belangrijke Links 📌 + +- [Onze Langetermijnvisie](https://github.com/usebruno/bruno/discussions/269) +- [Roadmap](https://github.com/usebruno/bruno/discussions/384) +- [Documentatie](https://docs.usebruno.com) +- [Stack Overflow](https://stackoverflow.com/questions/tagged/bruno) +- [Website](https://www.usebruno.com) +- [Prijzen](https://www.usebruno.com/pricing) +- [Download](https://www.usebruno.com/downloads) +- [GitHub Sponsors](https://github.com/sponsors/helloanoop) + +### Showcase 🎥 + +- [Getuigenissen](https://github.com/usebruno/bruno/discussions/343) +- [Kenniscentrum](https://github.com/usebruno/bruno/discussions/386) +- [Scriptmania](https://github.com/usebruno/bruno/discussions/385) + +### Ondersteuning ❤️ + +Als je Bruno leuk vindt en ons open-source werk wilt ondersteunen, overweeg dan om ons te sponsoren via [GitHub Sponsors](https://github.com/sponsors/helloanoop). + +### Deel Getuigenissen 📣 + +Als Bruno je heeft geholpen op je werk en in je teams, deel dan je [getuigenissen op onze GitHub-discussie](https://github.com/usebruno/bruno/discussions/343). + + +### Blijf in 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) + +### Handelsmerk + +**Naam** + +`Bruno` is een handelsmerk in bezit van [Anoop M D](https://www.helloanoop.com/). + +**Logo** + +Het logo is afkomstig van [OpenMoji](https://openmoji.org/library/emoji-1F436/). Licentie: CC [BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) + +### Bijdragen 👩‍💻🧑‍💻 + +Ik ben blij dat je Bruno wilt verbeteren. Bekijk de [bijdragegids](contributing.md). + +Zelfs als je geen bijdragen via code kunt leveren, aarzel dan niet om bugs en functieverzoeken in te dienen die moeten worden geïmplementeerd om jouw gebruiksscenario op te lossen. + +### Auteurs + +
+ + + +
+ +### Licentie 📄 + +[MIT](../../license.md) \ No newline at end of file diff --git a/packages/bruno-app/src/components/CodeEditor/index.js b/packages/bruno-app/src/components/CodeEditor/index.js index 0b12e68d..df910389 100644 --- a/packages/bruno-app/src/components/CodeEditor/index.js +++ b/packages/bruno-app/src/components/CodeEditor/index.js @@ -6,7 +6,7 @@ */ import React from 'react'; -import isEqual from 'lodash/isEqual'; +import { isEqual, escapeRegExp } from 'lodash'; import { getEnvironmentVariables } from 'utils/collections'; import { defineCodeMirrorBrunoVariablesMode } from 'utils/common/codemirror'; import StyledWrapper from './StyledWrapper'; @@ -61,6 +61,8 @@ if (!SERVER_RENDERED) { 'bru.getProcessEnv(key)', 'bru.hasEnvVar(key)', 'bru.getEnvVar(key)', + 'bru.getFolderVar(key)', + 'bru.getCollectionVar(key)', 'bru.setEnvVar(key,value)', 'bru.hasVar(key)', 'bru.getVar(key)', @@ -406,7 +408,8 @@ export default class CodeEditor extends React.Component { const searchInput = document.querySelector('.CodeMirror-search-field'); if (searchInput && searchInput.value.length > 0) { - const text = new RegExp(searchInput.value, 'gi'); + // Escape special characters in search input to prevent RegExp crashes. Fixes #3051 + const text = new RegExp(escapeRegExp(searchInput.value), 'gi'); const matches = this.editor.getValue().match(text); count = matches ? matches.length : 0; } diff --git a/packages/bruno-app/src/components/CollectionSettings/Auth/ApiKeyAuth/StyledWrapper.js b/packages/bruno-app/src/components/CollectionSettings/Auth/ApiKeyAuth/StyledWrapper.js new file mode 100644 index 00000000..aaa30d7f --- /dev/null +++ b/packages/bruno-app/src/components/CollectionSettings/Auth/ApiKeyAuth/StyledWrapper.js @@ -0,0 +1,56 @@ +import styled from 'styled-components'; + +const Wrapper = styled.div` + label { + font-size: 0.8125rem; + } + + .single-line-editor-wrapper { + padding: 0.15rem 0.4rem; + border-radius: 3px; + border: solid 1px ${(props) => props.theme.input.border}; + background-color: ${(props) => props.theme.input.bg}; + } + + .auth-placement-selector { + padding: 0.5rem 0px; + border-radius: 3px; + border: solid 1px ${(props) => props.theme.input.border}; + background-color: ${(props) => props.theme.input.bg}; + + .dropdown { + width: fit-content; + + div[data-tippy-root] { + width: fit-content; + } + .tippy-box { + width: fit-content; + max-width: none !important; + + .tippy-content: { + width: fit-content; + max-width: none !important; + } + } + } + + .auth-type-label { + width: fit-content; + color: ${(props) => props.theme.colors.text.yellow}; + justify-content: space-between; + padding: 0 0.5rem; + } + + .dropdown-item { + padding: 0.2rem 0.6rem !important; + } + } + + .caret { + color: rgb(140, 140, 140); + fill: rgb(140 140 140); + } +`; + +export default Wrapper; diff --git a/packages/bruno-app/src/components/CollectionSettings/Auth/ApiKeyAuth/index.js b/packages/bruno-app/src/components/CollectionSettings/Auth/ApiKeyAuth/index.js new file mode 100644 index 00000000..74d348c6 --- /dev/null +++ b/packages/bruno-app/src/components/CollectionSettings/Auth/ApiKeyAuth/index.js @@ -0,0 +1,109 @@ +import React, { useRef, forwardRef, useEffect } from 'react'; +import { useDispatch } from 'react-redux'; +import get from 'lodash/get'; +import { IconCaretDown } from '@tabler/icons'; +import Dropdown from 'components/Dropdown'; +import { useTheme } from 'providers/Theme'; +import SingleLineEditor from 'components/SingleLineEditor'; +import { updateCollectionAuth } from 'providers/ReduxStore/slices/collections'; +import { saveCollectionRoot } from 'providers/ReduxStore/slices/collections/actions'; +import StyledWrapper from './StyledWrapper'; +import { humanizeRequestAPIKeyPlacement } from 'utils/collections'; + +const ApiKeyAuth = ({ collection }) => { + const dispatch = useDispatch(); + const { storedTheme } = useTheme(); + const dropdownTippyRef = useRef(); + const onDropdownCreate = (ref) => (dropdownTippyRef.current = ref); + + const apikeyAuth = get(collection, 'root.request.auth.apikey', {}); + + const handleSave = () => dispatch(saveCollectionRoot(collection.uid)); + + const Icon = forwardRef((props, ref) => { + return ( +
+ {humanizeRequestAPIKeyPlacement(apikeyAuth?.placement)} + +
+ ); + }); + + const handleAuthChange = (property, value) => { + dispatch( + updateCollectionAuth({ + mode: 'apikey', + collectionUid: collection.uid, + content: { + ...apikeyAuth, + [property]: value + } + }) + ); + }; + + useEffect(() => { + !apikeyAuth?.placement && + dispatch( + updateCollectionAuth({ + mode: 'apikey', + collectionUid: collection.uid, + content: { + placement: 'header' + } + }) + ); + }, [apikeyAuth]); + + return ( + + +
+ handleAuthChange('key', val)} + collection={collection} + /> +
+ + +
+ handleAuthChange('value', val)} + collection={collection} + /> +
+ + +
+ } placement="bottom-end"> +
{ + dropdownTippyRef.current.hide(); + handleAuthChange('placement', 'header'); + }} + > + Header +
+
{ + dropdownTippyRef.current.hide(); + handleAuthChange('placement', 'queryparams'); + }} + > + Query Params +
+
+
+
+ ); +}; + +export default ApiKeyAuth; diff --git a/packages/bruno-app/src/components/CollectionSettings/Auth/AuthMode/index.js b/packages/bruno-app/src/components/CollectionSettings/Auth/AuthMode/index.js index 7280e672..7dabb4c7 100644 --- a/packages/bruno-app/src/components/CollectionSettings/Auth/AuthMode/index.js +++ b/packages/bruno-app/src/components/CollectionSettings/Auth/AuthMode/index.js @@ -52,6 +52,15 @@ const AuthMode = ({ collection }) => { > Basic Auth +
{ + dropdownTippyRef.current.hide(); + onModeChange('wsse'); + }} + > + WSSE Auth +
{ @@ -79,6 +88,15 @@ const AuthMode = ({ collection }) => { > Oauth2
+
{ + dropdownTippyRef.current.hide(); + onModeChange('apikey'); + }} + > + API Key +
{ diff --git a/packages/bruno-app/src/components/CollectionSettings/Auth/WsseAuth/StyledWrapper.js b/packages/bruno-app/src/components/CollectionSettings/Auth/WsseAuth/StyledWrapper.js new file mode 100644 index 00000000..c2bb5d20 --- /dev/null +++ b/packages/bruno-app/src/components/CollectionSettings/Auth/WsseAuth/StyledWrapper.js @@ -0,0 +1,16 @@ +import styled from 'styled-components'; + +const Wrapper = styled.div` + label { + font-size: 0.8125rem; + } + + .single-line-editor-wrapper { + padding: 0.15rem 0.4rem; + border-radius: 3px; + border: solid 1px ${(props) => props.theme.input.border}; + background-color: ${(props) => props.theme.input.bg}; + } +`; + +export default Wrapper; diff --git a/packages/bruno-app/src/components/CollectionSettings/Auth/WsseAuth/index.js b/packages/bruno-app/src/components/CollectionSettings/Auth/WsseAuth/index.js new file mode 100644 index 00000000..45efc7b1 --- /dev/null +++ b/packages/bruno-app/src/components/CollectionSettings/Auth/WsseAuth/index.js @@ -0,0 +1,71 @@ +import React from 'react'; +import get from 'lodash/get'; +import { useTheme } from 'providers/Theme'; +import { useDispatch } from 'react-redux'; +import SingleLineEditor from 'components/SingleLineEditor'; +import { updateCollectionAuth } from 'providers/ReduxStore/slices/collections'; +import { saveCollectionRoot } from 'providers/ReduxStore/slices/collections/actions'; +import StyledWrapper from './StyledWrapper'; + +const WsseAuth = ({ collection }) => { + const dispatch = useDispatch(); + const { storedTheme } = useTheme(); + + const wsseAuth = get(collection, 'root.request.auth.wsse', {}); + + const handleSave = () => dispatch(saveCollectionRoot(collection.uid)); + + const handleUserChange = (username) => { + dispatch( + updateCollectionAuth({ + mode: 'wsse', + collectionUid: collection.uid, + content: { + username, + password: wsseAuth.password + } + }) + ); + }; + + const handlePasswordChange = (password) => { + dispatch( + updateCollectionAuth({ + mode: 'wsse', + collectionUid: collection.uid, + content: { + username: wsseAuth.username, + password + } + }) + ); + }; + + return ( + + +
+ handleUserChange(val)} + collection={collection} + /> +
+ + +
+ handlePasswordChange(val)} + collection={collection} + /> +
+
+ ); +}; + +export default WsseAuth; diff --git a/packages/bruno-app/src/components/CollectionSettings/Auth/index.js b/packages/bruno-app/src/components/CollectionSettings/Auth/index.js index 38a958e9..05efc17b 100644 --- a/packages/bruno-app/src/components/CollectionSettings/Auth/index.js +++ b/packages/bruno-app/src/components/CollectionSettings/Auth/index.js @@ -6,6 +6,8 @@ import AwsV4Auth from './AwsV4Auth'; import BearerAuth from './BearerAuth'; import BasicAuth from './BasicAuth'; import DigestAuth from './DigestAuth'; +import WsseAuth from './WsseAuth'; +import ApiKeyAuth from './ApiKeyAuth/'; import { saveCollectionRoot } from 'providers/ReduxStore/slices/collections/actions'; import StyledWrapper from './StyledWrapper'; import OAuth2 from './OAuth2'; @@ -33,6 +35,12 @@ const Auth = ({ collection }) => { case 'oauth2': { return ; } + case 'wsse': { + return ; + } + case 'apikey': { + return ; + } } }; diff --git a/packages/bruno-app/src/components/Environments/EnvironmentSettings/CopyEnvironment/index.js b/packages/bruno-app/src/components/Environments/EnvironmentSettings/CopyEnvironment/index.js index a9fdf3b4..586f874b 100644 --- a/packages/bruno-app/src/components/Environments/EnvironmentSettings/CopyEnvironment/index.js +++ b/packages/bruno-app/src/components/Environments/EnvironmentSettings/CopyEnvironment/index.js @@ -44,7 +44,7 @@ const CopyEnvironment = ({ collection, environment, onClose }) => { return ( -
+ e.preventDefault()}>