mirror of
https://github.com/usebruno/bruno.git
synced 2024-12-22 14:41:04 +01:00
Merge branch 'main' into pr-706
This commit is contained in:
commit
8c6721de13
1
.github/FUNDING.yml
vendored
Normal file
1
.github/FUNDING.yml
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
github: helloanoop
|
34
.github/ISSUE_TEMPLATE/BugReport.yaml
vendored
Normal file
34
.github/ISSUE_TEMPLATE/BugReport.yaml
vendored
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
name: Bug Report
|
||||||
|
description: File a bug report
|
||||||
|
labels: ['bug']
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thanks for taking the time to fill out this bug report!
|
||||||
|
- type: checkboxes
|
||||||
|
attributes:
|
||||||
|
label: 'I have checked the following:'
|
||||||
|
options:
|
||||||
|
- label: I use the newest version of bruno.
|
||||||
|
required: true
|
||||||
|
- label: I've searched existing issues and found nothing related to my issue.
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Describe the bug
|
||||||
|
description: A clear and concise description of the bug.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: .bru file to reproduce the bug
|
||||||
|
description: Attach your .bru file here that can reqroduce the problem.
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Screenshots/Live demo link
|
||||||
|
description: Add some screenshots to help explain the problem.
|
||||||
|
validations:
|
||||||
|
required: true
|
26
.github/ISSUE_TEMPLATE/FeatureRequest.yaml
vendored
Normal file
26
.github/ISSUE_TEMPLATE/FeatureRequest.yaml
vendored
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
name: Feature Request
|
||||||
|
description: Suggest an idea for this project.
|
||||||
|
labels: ['enhancement']
|
||||||
|
body:
|
||||||
|
- type: checkboxes
|
||||||
|
attributes:
|
||||||
|
label: 'I have checked the following:'
|
||||||
|
options:
|
||||||
|
- label: I've searched existing issues and found nothing related to my issue.
|
||||||
|
required: true
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Suggest an idea for this project.
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Describe the feature you want to add
|
||||||
|
description: A clear and concise description of the feature you want to be added.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Mockups or Images of the feature
|
||||||
|
description: Add some images to support your feature.
|
||||||
|
validations:
|
||||||
|
required: true
|
8
.github/ISSUE_TEMPLATE/config.yaml
vendored
Normal file
8
.github/ISSUE_TEMPLATE/config.yaml
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
blank_issues_enabled: true
|
||||||
|
contact_links:
|
||||||
|
- name: Discussions
|
||||||
|
url: https://github.com/usebruno/bruno/discussions
|
||||||
|
about: You can ask general questions or give feedback here.
|
||||||
|
- name: Discord Server
|
||||||
|
url: https://discord.com/invite/KgcZUncpjq
|
||||||
|
about: Join our Discord community to chat about Bruno.
|
4
.github/PULL_REQUEST_TEMPLATE.md
vendored
4
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -11,3 +11,7 @@
|
|||||||
- [ ] **Create an issue and link to the pull request.**
|
- [ ] **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.
|
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.
|
||||||
|
12
.github/workflows/bump-homebrew-cask.yml
vendored
12
.github/workflows/bump-homebrew-cask.yml
vendored
@ -1,12 +0,0 @@
|
|||||||
name: Bump Homebrew Cask
|
|
||||||
|
|
||||||
on:
|
|
||||||
release:
|
|
||||||
types: [published]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
bump:
|
|
||||||
runs-on: macos-10.15
|
|
||||||
steps:
|
|
||||||
- name: Bump Homebrew Cask
|
|
||||||
run: brew bump-cask-pr bruno --version "${GITHUB_REF_NAME#v}"
|
|
48
.github/workflows/npm-bru-cli.yml
vendored
Normal file
48
.github/workflows/npm-bru-cli.yml
vendored
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
name: Bru CLI Tests (npm)
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
build:
|
||||||
|
description: 'Test Bru CLI (npm)'
|
||||||
|
required: true
|
||||||
|
default: 'true'
|
||||||
|
|
||||||
|
# Assign permissions for unit tests to be reported.
|
||||||
|
# See https://github.com/dorny/test-reporter/issues/168
|
||||||
|
permissions:
|
||||||
|
statuses: write
|
||||||
|
checks: write
|
||||||
|
contents: write
|
||||||
|
pull-requests: write
|
||||||
|
actions: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
name: CLI Tests
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version-file: '.nvmrc'
|
||||||
|
|
||||||
|
- name: Install Bru CLI from NPM
|
||||||
|
run: npm install -g @usebruno/cli
|
||||||
|
|
||||||
|
- name: Display Bru CLI Version
|
||||||
|
run: bru --version
|
||||||
|
|
||||||
|
- name: Run tests
|
||||||
|
run: |
|
||||||
|
cd packages/bruno-tests/collection
|
||||||
|
npm install
|
||||||
|
bru run --env Prod --output junit.xml --format junit
|
||||||
|
|
||||||
|
- name: Publish Test Report
|
||||||
|
uses: dorny/test-reporter@v1
|
||||||
|
if: success() || failure()
|
||||||
|
with:
|
||||||
|
name: Test Report
|
||||||
|
path: packages/bruno-tests/collection/junit.xml
|
||||||
|
reporter: java-junit
|
27
.github/workflows/playwright.yml
vendored
27
.github/workflows/playwright.yml
vendored
@ -1,27 +0,0 @@
|
|||||||
name: Playwright Tests
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ main ]
|
|
||||||
pull_request:
|
|
||||||
branches: [ main ]
|
|
||||||
jobs:
|
|
||||||
test:
|
|
||||||
timeout-minutes: 60
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- uses: actions/setup-node@v3
|
|
||||||
with:
|
|
||||||
node-version: 16
|
|
||||||
- name: Install dependencies
|
|
||||||
run: npm i --legacy-peer-deps
|
|
||||||
- name: Install Playwright Browsers
|
|
||||||
run: npx playwright install --with-deps
|
|
||||||
- name: Run Playwright tests
|
|
||||||
run: npm run test:e2e
|
|
||||||
- uses: actions/upload-artifact@v3
|
|
||||||
if: always()
|
|
||||||
with:
|
|
||||||
name: playwright-report
|
|
||||||
path: playwright-report/
|
|
||||||
retention-days: 30
|
|
49
.github/workflows/release-snap.yml
vendored
49
.github/workflows/release-snap.yml
vendored
@ -1,49 +0,0 @@
|
|||||||
name: Publish to Snapcraft
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
build:
|
|
||||||
description: 'Build and publish to Snapcraft'
|
|
||||||
required: true
|
|
||||||
default: 'true'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
publish:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Set up Node.js
|
|
||||||
uses: actions/setup-node@v3
|
|
||||||
with:
|
|
||||||
node-version: 18
|
|
||||||
|
|
||||||
- name: Check package-lock.json
|
|
||||||
run: npm ci
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: npm install --legacy-peer-deps
|
|
||||||
|
|
||||||
- name: Build Electron app
|
|
||||||
run: |
|
|
||||||
npm run build:bruno-query
|
|
||||||
npm run build:graphql-docs
|
|
||||||
npm run build:electron:snap
|
|
||||||
|
|
||||||
- name: Install Snapcraft
|
|
||||||
run: |
|
|
||||||
sudo snap install snapcraft --classic
|
|
||||||
continue-on-error: true
|
|
||||||
|
|
||||||
- name: Configure Snapcraft
|
|
||||||
run: snapcraft whoami
|
|
||||||
env:
|
|
||||||
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_API_KEY }}
|
|
||||||
|
|
||||||
- name: Publish to Snapcraft
|
|
||||||
run: |
|
|
||||||
snapcraft upload --release=stable packages/bruno-electron/out/*.snap
|
|
||||||
env:
|
|
||||||
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_API_KEY }}
|
|
80
.github/workflows/tests.yml
vendored
Normal file
80
.github/workflows/tests.yml
vendored
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
name: Tests
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
pull_request:
|
||||||
|
branches: [main]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
unit-test:
|
||||||
|
name: Unit Tests
|
||||||
|
timeout-minutes: 60
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version-file: '.nvmrc'
|
||||||
|
cache: 'npm'
|
||||||
|
cache-dependency-path: './package-lock.json'
|
||||||
|
- name: Install dependencies
|
||||||
|
run: npm ci --legacy-peer-deps
|
||||||
|
|
||||||
|
# build libraries
|
||||||
|
- name: Build libraries
|
||||||
|
run: |
|
||||||
|
npm run build --workspace=packages/bruno-common
|
||||||
|
npm run build --workspace=packages/bruno-query
|
||||||
|
npm run sandbox:bundle-libraries --workspace=packages/bruno-js
|
||||||
|
|
||||||
|
# tests
|
||||||
|
- name: Test Package bruno-js
|
||||||
|
run: npm run test --workspace=packages/bruno-js
|
||||||
|
- name: Test Package bruno-cli
|
||||||
|
run: npm run test --workspace=packages/bruno-cli
|
||||||
|
|
||||||
|
- name: Test Package bruno-query
|
||||||
|
run: npm run test --workspace=packages/bruno-query
|
||||||
|
- name: Test Package bruno-lang
|
||||||
|
run: npm run test --workspace=packages/bruno-lang
|
||||||
|
- name: Test Package bruno-schema
|
||||||
|
run: npm run test --workspace=packages/bruno-schema
|
||||||
|
- name: Test Package bruno-app
|
||||||
|
run: npm run test --workspace=packages/bruno-app
|
||||||
|
- name: Test Package bruno-common
|
||||||
|
run: npm run test --workspace=packages/bruno-common
|
||||||
|
- name: Test Package bruno-electron
|
||||||
|
run: npm run test --workspace=packages/bruno-electron
|
||||||
|
|
||||||
|
cli-test:
|
||||||
|
name: CLI Tests
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version-file: '.nvmrc'
|
||||||
|
cache: 'npm'
|
||||||
|
cache-dependency-path: './package-lock.json'
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: npm ci --legacy-peer-deps
|
||||||
|
|
||||||
|
- name: Build Libraries
|
||||||
|
run: |
|
||||||
|
npm run build --workspace=packages/bruno-query
|
||||||
|
npm run build --workspace=packages/bruno-common
|
||||||
|
npm run sandbox:bundle-libraries --workspace=packages/bruno-js
|
||||||
|
|
||||||
|
- name: Run tests
|
||||||
|
run: |
|
||||||
|
cd packages/bruno-tests/collection
|
||||||
|
npm install
|
||||||
|
node ../../bruno-cli/bin/bru.js run --env Prod --output junit.xml --format junit
|
||||||
|
|
||||||
|
- name: Publish Test Report
|
||||||
|
uses: EnricoMi/publish-unit-test-result-action@v2
|
||||||
|
if: always()
|
||||||
|
with:
|
||||||
|
files: packages/bruno-tests/collection/junit.xml
|
||||||
|
comment_mode: always
|
45
.github/workflows/unit-tests.yml
vendored
45
.github/workflows/unit-tests.yml
vendored
@ -1,45 +0,0 @@
|
|||||||
name: Unit Tests
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [main]
|
|
||||||
pull_request:
|
|
||||||
branches: [main]
|
|
||||||
jobs:
|
|
||||||
tests:
|
|
||||||
timeout-minutes: 60
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- uses: actions/setup-node@v3
|
|
||||||
with:
|
|
||||||
node-version-file: '.nvmrc'
|
|
||||||
- name: Install dependencies
|
|
||||||
run: npm ci --legacy-peer-deps
|
|
||||||
- name: Test Package bruno-query
|
|
||||||
run: npm run test --workspace=packages/bruno-query
|
|
||||||
- name: Build Package bruno-query
|
|
||||||
run: npm run build --workspace=packages/bruno-query
|
|
||||||
- name: Test Package bruno-lang
|
|
||||||
run: npm run test --workspace=packages/bruno-lang
|
|
||||||
- name: Test Package bruno-schema
|
|
||||||
run: npm run test --workspace=packages/bruno-schema
|
|
||||||
- name: Test Package bruno-app
|
|
||||||
run: npm run test --workspace=packages/bruno-app
|
|
||||||
- name: Test Package bruno-js
|
|
||||||
run: npm run test --workspace=packages/bruno-js
|
|
||||||
- name: Test Package bruno-cli
|
|
||||||
run: npm run test --workspace=packages/bruno-cli
|
|
||||||
- name: Test Package bruno-electron
|
|
||||||
run: npm run test --workspace=packages/bruno-electron
|
|
||||||
|
|
||||||
prettier:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- uses: actions/setup-node@v3
|
|
||||||
with:
|
|
||||||
node-version-file: '.nvmrc'
|
|
||||||
- name: Install dependencies
|
|
||||||
run: npm ci --legacy-peer-deps
|
|
||||||
- name: Run Prettier
|
|
||||||
run: npm run test:prettier:web
|
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,11 +1,14 @@
|
|||||||
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
||||||
|
|
||||||
# dependencies
|
# dependencies
|
||||||
|
bun.lockb
|
||||||
node_modules
|
node_modules
|
||||||
yarn.lock
|
yarn.lock
|
||||||
pnpm-lock.yaml
|
pnpm-lock.yaml
|
||||||
.pnp
|
.pnp
|
||||||
.pnp.js
|
.pnp.js
|
||||||
|
bun.lockb
|
||||||
|
bun.lock
|
||||||
|
|
||||||
# testing
|
# testing
|
||||||
coverage
|
coverage
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
#!/usr/bin/env sh
|
|
||||||
. "$(dirname -- "$0")/_/husky.sh"
|
|
||||||
|
|
||||||
npx pretty-quick --staged
|
|
BIN
assets/images/sponsors/commit-company.png
Normal file
BIN
assets/images/sponsors/commit-company.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.2 KiB |
BIN
assets/images/sponsors/samagata.png
Normal file
BIN
assets/images/sponsors/samagata.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.2 KiB |
BIN
assets/images/sponsors/zuplo.png
Normal file
BIN
assets/images/sponsors/zuplo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 86 KiB |
@ -1,12 +1,29 @@
|
|||||||
**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)
|
||||||
|
| [Português (BR)](docs/contributing/contributing_pt_br.md)
|
||||||
|
| [한국어](docs/contributing/contributing_kr.md)
|
||||||
|
| [বাংলা](docs/contributing/contributing_bn.md)
|
||||||
|
| [Español](docs/contributing/contributing_es.md)
|
||||||
|
| [Italiano](docs/contributing/contributing_it.md)
|
||||||
|
| [Română](docs/contributing/contributing_ro.md)
|
||||||
|
| [Polski](docs/contributing/contributing_pl.md)
|
||||||
|
| [简体中文](docs/contributing/contributing_cn.md)
|
||||||
|
| [正體中文](docs/contributing/contributing_zhtw.md)
|
||||||
|
| [日本語](docs/contributing/contributing_ja.md)
|
||||||
|
| [हिंदी](docs/contributing/contributing_hi.md)
|
||||||
|
| [Nederlands](docs/contributing/contributing_nl.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
|
### 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
|
Libraries we use
|
||||||
|
|
||||||
@ -18,20 +35,69 @@ Libraries we use
|
|||||||
- Schema Validation - Yup
|
- Schema Validation - Yup
|
||||||
- Request Client - axios
|
- Request Client - axios
|
||||||
- Filesystem Watcher - chokidar
|
- Filesystem Watcher - chokidar
|
||||||
|
- i18n - i18next
|
||||||
|
|
||||||
### Dependencies
|
### Dependencies
|
||||||
|
|
||||||
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
|
You would need [Node v20.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.
|
||||||
|
|
||||||
### Raising Pull Request
|
### Local Development
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# use nodejs 18 version
|
||||||
|
nvm use
|
||||||
|
|
||||||
|
# install deps
|
||||||
|
npm i --legacy-peer-deps
|
||||||
|
|
||||||
|
# build packages
|
||||||
|
npm run build:graphql-docs
|
||||||
|
npm run build:bruno-query
|
||||||
|
npm run build:bruno-common
|
||||||
|
|
||||||
|
# bundle js sandbox libraries
|
||||||
|
npm run sandbox:bundle-libraries --workspace=packages/bruno-js
|
||||||
|
|
||||||
|
# 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 Requests
|
||||||
|
|
||||||
- Please keep the PR's small and focused on one thing
|
- Please keep the PR's small and focused on one thing
|
||||||
- Please follow the format of creating branches
|
- Please follow the format of creating branches
|
||||||
- feature/[feature name]: This branch should contain changes for a specific feature
|
- feature/[feature name]: This branch should contain changes for a specific feature
|
||||||
- Example: feature/dark-mode
|
- 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
|
- Example bugfix/bug-1
|
||||||
|
@ -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
|
|
@ -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
|
|
87
docs/contributing/contributing_bn.md
Normal file
87
docs/contributing/contributing_bn.md
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
[English](../../contributing.md)
|
||||||
|
|
||||||
|
## আসুন ব্রুনোকে আরও ভালো করি, একসাথে!!
|
||||||
|
|
||||||
|
আমরা খুশি যে আপনি ব্রুনোর উন্নতি করতে চাইছেন। নীচে আপনার কম্পিউটারে ব্রুনো ইনষ্টল করার নির্দেশিকা রয়েছে৷।
|
||||||
|
|
||||||
|
### Technology Stack (প্রযুক্তি স্ট্যাক)
|
||||||
|
|
||||||
|
ব্রুনো Next.js এবং React ব্যবহার করে নির্মিত। এছাড়াও আমরা একটি ডেস্কটপ সংস্করণ পাঠাতে ইলেক্ট্রন ব্যবহার করি (যা স্থানীয় সংগ্রহ সমর্থন করে)
|
||||||
|
|
||||||
|
নিম্ন লিখিত লাইব্রেরি আমরা ব্যবহার করি -
|
||||||
|
|
||||||
|
- CSS - Tailwind
|
||||||
|
- Code Editors - Codemirror
|
||||||
|
- State Management - Redux
|
||||||
|
- Icons - Tabler Icons
|
||||||
|
- Forms - formik
|
||||||
|
- Schema Validation - Yup
|
||||||
|
- Request Client - axios
|
||||||
|
- Filesystem Watcher - chokidar
|
||||||
|
|
||||||
|
### Dependencies (নির্ভরতা)
|
||||||
|
|
||||||
|
আপনার প্রয়োজন হবে [নোড v18.x বা সর্বশেষ LTS সংস্করণ](https://nodejs.org/en/) এবং npm 8.x। আমরা প্রকল্পে npm ওয়ার্কস্পেস ব্যবহার করি ।
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
ব্রুনো একটি ডেস্কটপ অ্যাপ হিসেবে তৈরি করা হচ্ছে। আপনাকে একটি টার্মিনালে Next.js অ্যাপটি চালিয়ে অ্যাপটি লোড করতে হবে এবং তারপরে অন্য টার্মিনালে ইলেক্ট্রন অ্যাপটি চালাতে হবে।
|
||||||
|
|
||||||
|
### Dependencies (নির্ভরতা)
|
||||||
|
|
||||||
|
- NodeJS v18
|
||||||
|
|
||||||
|
### Local Development
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# nodejs 18 সংস্করণ ব্যবহার করুন
|
||||||
|
nvm use
|
||||||
|
|
||||||
|
# নির্ভরতা ইনস্টল করুন
|
||||||
|
npm i --legacy-peer-deps
|
||||||
|
|
||||||
|
# গ্রাফকিউএল ডক্স তৈরি করুন
|
||||||
|
npm run build:graphql-docs
|
||||||
|
|
||||||
|
# ব্রুনো কোয়েরি তৈরি করুন
|
||||||
|
npm run build:bruno-query
|
||||||
|
|
||||||
|
# NextJs অ্যাপ চালান (টার্মিনাল 1)
|
||||||
|
npm run dev:web
|
||||||
|
|
||||||
|
# ইলেক্ট্রন অ্যাপ চালান (টার্মিনাল 2)
|
||||||
|
npm run dev:electron
|
||||||
|
```
|
||||||
|
|
||||||
|
### Troubleshooting (সমস্যা সমাধান)
|
||||||
|
|
||||||
|
আপনি যখন 'npm install' চালান তখন আপনি একটি 'অসমর্থিত প্ল্যাটফর্ম' ত্রুটির সম্মুখীন হতে পারেন৷ এটি ঠিক করতে, আপনাকে `node_modules` এবং `package-lock.json` মুছে ফেলতে হবে এবং `npm install` চালাতে হবে। এটি অ্যাপটি চালানোর জন্য প্রয়োজনীয় সমস্ত প্যাকেজ ইনস্টল করবে যাতে এই ত্রুটি ঠিক হয়ে যেতে পারে ।
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# সাব-ডিরেক্টরিতে নোড_মডিউল মুছুন
|
||||||
|
find ./ -type d -name "node_modules" -print0 | while read -d $'\0' dir; do
|
||||||
|
rm -rf "$dir"
|
||||||
|
done
|
||||||
|
|
||||||
|
# সাব-ডিরেক্টরিতে প্যাকেজ-লক মুছুন
|
||||||
|
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 (পুল অনুরোধ উত্থাপন)
|
||||||
|
|
||||||
|
- অনুগ্রহ করে PR এর আকার ছোট রাখুন এবং একটি বিষয়ে ফোকাস করুন।
|
||||||
|
- অনুগ্রহ করে শাখা তৈরির বিন্যাস অনুসরণ করুন।
|
||||||
|
- বৈশিষ্ট্য/[ফিচারের নাম]: এই শাখায় একটি নির্দিষ্ট বৈশিষ্ট্যের জন্য পরিবর্তন থাকতে হবে।
|
||||||
|
- উদাহরণ: বৈশিষ্ট্য/ডার্ক-মোড।
|
||||||
|
- বাগফিক্স/[বাগ নাম]: এই শাখায় একটি নির্দিষ্ট বাগ-এর জন্য শুধুমাত্র বাগ ফিক্স থাকা উচিত।
|
||||||
|
- উদাহরণ বাগফিক্স/বাগ-1।
|
87
docs/contributing/contributing_cn.md
Normal file
87
docs/contributing/contributing_cn.md
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
[English](../../contributing.md)
|
||||||
|
|
||||||
|
## 让我们一起改进 Bruno!
|
||||||
|
|
||||||
|
很高兴看到您考虑改进 Bruno。以下是获取 Bruno 并在您的电脑上运行它的规则和指南。
|
||||||
|
|
||||||
|
### 使用的技术
|
||||||
|
|
||||||
|
Bruno 基于 NextJs 和 React 构建。我们使用 Electron 来封装桌面版本。
|
||||||
|
|
||||||
|
我们使用的库包括:
|
||||||
|
|
||||||
|
- CSS - Tailwind
|
||||||
|
- 代码编辑器 - Codemirror
|
||||||
|
- 状态管理 - Redux
|
||||||
|
- 图标 - Tabler Icons
|
||||||
|
- 表单 - formik
|
||||||
|
- 模式验证 - Yup
|
||||||
|
- 请求客户端 - axios
|
||||||
|
- 文件系统监视器 - chokidar
|
||||||
|
|
||||||
|
### 依赖项
|
||||||
|
|
||||||
|
您需要 [Node v20.x 或最新的 LTS 版本](https://nodejs.org/en/) 和 npm 8.x。我们在这个项目中也使用 npm 工作区(_npm workspaces_)。
|
||||||
|
|
||||||
|
## 开发
|
||||||
|
|
||||||
|
Bruno 是作为一个 _client lourd(重客户端)_ 应用程序开发的。您需要在一个终端中启动 nextjs 来加载应用程序,然后在另一个终端中启动 Electron 应用程序。
|
||||||
|
|
||||||
|
### 依赖项
|
||||||
|
|
||||||
|
- NodeJS v18
|
||||||
|
|
||||||
|
### 本地开发
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 使用 node 版本 18
|
||||||
|
nvm use
|
||||||
|
|
||||||
|
# 安装依赖项
|
||||||
|
npm i --legacy-peer-deps
|
||||||
|
|
||||||
|
# 构建 graphql 文档
|
||||||
|
npm run build:graphql-docs
|
||||||
|
|
||||||
|
# 构建 bruno 查询
|
||||||
|
npm run build:bruno-query
|
||||||
|
|
||||||
|
# 启动 next(终端 1)
|
||||||
|
npm run dev:web
|
||||||
|
|
||||||
|
# 启动重客户端(终端 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.json 文件
|
||||||
|
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
|
||||||
|
```
|
||||||
|
|
||||||
|
### 提交 Pull Request
|
||||||
|
|
||||||
|
- 请保持 PR 精简并专注于单一目标
|
||||||
|
- 请遵循分支命名格式:
|
||||||
|
- feature/[feature name]:该分支应包含特定功能
|
||||||
|
- 例如:feature/dark-mode
|
||||||
|
- bugfix/[bug name]:该分支应仅包含特定 bug 的修复
|
||||||
|
- 例如:bugfix/bug-1
|
91
docs/contributing/contributing_de.md
Normal file
91
docs/contributing/contributing_de.md
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
[English](../../contributing.md)
|
||||||
|
|
||||||
|
## 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 v20.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
|
||||||
|
```
|
87
docs/contributing/contributing_es.md
Normal file
87
docs/contributing/contributing_es.md
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
[English](../../contributing.md)
|
||||||
|
|
||||||
|
## ¡Juntos, hagamos a Bruno mejor!
|
||||||
|
|
||||||
|
Estamos encantados de que quieras ayudar a mejorar Bruno. A continuación encontrarás las instrucciones para empezar a trabajar con Bruno en tu computadora.
|
||||||
|
|
||||||
|
### Tecnologías utilizadas
|
||||||
|
|
||||||
|
Bruno está construido con NextJs y React. También usamos electron para distribuir una versión de escritorio (que soporta colecciones locales).
|
||||||
|
|
||||||
|
Librerías que utilizamos:
|
||||||
|
|
||||||
|
- CSS - Tailwind
|
||||||
|
- Editores de código - Codemirror
|
||||||
|
- Manejo del estado - Redux
|
||||||
|
- Íconos - Tabler Icons
|
||||||
|
- Formularios - formik
|
||||||
|
- Validación de esquemas - Yup
|
||||||
|
- Cliente de peticiones - axios
|
||||||
|
- Monitor del sistema de archivos - chokidar
|
||||||
|
|
||||||
|
### Dependencias
|
||||||
|
|
||||||
|
Necesitarás [Node v20.x o la última versión LTS](https://nodejs.org/es) y npm 8.x. Ten en cuenta que utilizamos espacios de trabajo de npm en el proyecto.
|
||||||
|
|
||||||
|
## Desarrollo
|
||||||
|
|
||||||
|
Bruno está siendo desarrollado como una aplicación de escritorio. Para ejecutarlo, primero debes ejecutar la aplicación de nextjs en una terminal y luego ejecutar la aplicación de electron en otra terminal.
|
||||||
|
|
||||||
|
### Dependencias
|
||||||
|
|
||||||
|
- NodeJS v18
|
||||||
|
|
||||||
|
### Desarrollo local
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Utiliza la versión 18 de nodejs
|
||||||
|
nvm use
|
||||||
|
|
||||||
|
# Instala las dependencias
|
||||||
|
npm i --legacy-peer-deps
|
||||||
|
|
||||||
|
# Construye la documentación de graphql
|
||||||
|
npm run build:graphql-docs
|
||||||
|
|
||||||
|
# Construye bruno-query
|
||||||
|
npm run build:bruno-query
|
||||||
|
|
||||||
|
# Ejecuta la aplicación de nextjs (terminal 1)
|
||||||
|
npm run dev:web
|
||||||
|
|
||||||
|
# Ejecuta la aplicación de electron (terminal 2)
|
||||||
|
npm run dev:electron
|
||||||
|
```
|
||||||
|
|
||||||
|
### Solución de problemas
|
||||||
|
|
||||||
|
Es posible que encuentres un error de `Unsupported platform` cuando ejecutes `npm install`. Para solucionarlo, debes eliminar la carpeta `node_modules` y el archivo `package-lock.json`, luego, ejecuta `npm install`. Lo anterior debería instalar todos los paquetes necesarios para ejecutar la aplicación.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# Elimina la carpeta node_modules en los subdirectorios
|
||||||
|
find ./ -type d -name "node_modules" -print0 | while read -d $'\0' dir; do
|
||||||
|
rm -rf "$dir"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Elimina el archivo package-lock en los subdirectorios
|
||||||
|
find . -type f -name "package-lock.json" -delete
|
||||||
|
```
|
||||||
|
|
||||||
|
### Pruebas
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# bruno-schema
|
||||||
|
npm test --workspace=packages/bruno-schema
|
||||||
|
|
||||||
|
# bruno-lang
|
||||||
|
npm test --workspace=packages/bruno-lang
|
||||||
|
```
|
||||||
|
|
||||||
|
### Crea un Pull Request
|
||||||
|
|
||||||
|
- Por favor, mantén los Pull Request pequeños y enfocados en una sola cosa.
|
||||||
|
- Por favor, sigue el siguiente formato para la creación de ramas:
|
||||||
|
- feature/[nombre de la funcionalidad]: Esta rama debe contener los cambios para una funcionalidad específica.
|
||||||
|
- Ejemplo: feature/dark-mode
|
||||||
|
- bugfix/[nombre del error]: Esta rama debe contener solo correcciones de errores para un error específico.
|
||||||
|
- Ejemplo: bugfix/bug-1
|
90
docs/contributing/contributing_fr.md
Normal file
90
docs/contributing/contributing_fr.md
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
[English](../../contributing.md)
|
||||||
|
|
||||||
|
## Ensemble, améliorons Bruno !
|
||||||
|
|
||||||
|
Je suis content de voir que vous envisagez d'améliorer Bruno. Vous trouverez ci-dessous les règles et guides pour récupérer Bruno sur votre ordinateur.
|
||||||
|
|
||||||
|
### Technologies utilisées
|
||||||
|
|
||||||
|
Bruno est basé sur NextJs et React. Nous utilisons aussi Electron pour embarquer la version ordinateur (ce qui permet les collections locales).
|
||||||
|
|
||||||
|
Les librairies 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 v20.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.
|
||||||
|
|
||||||
|
## Développement
|
||||||
|
|
||||||
|
Bruno est développé comme une application _client lourd_. Vous devrez charger l'application en démarrant nextjs dans un premier terminal, puis démarre l'application Electron dans un second.
|
||||||
|
|
||||||
|
### Dépendances
|
||||||
|
|
||||||
|
- NodeJS v18
|
||||||
|
|
||||||
|
### Développement local
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# utiliser node en version 18
|
||||||
|
nvm use
|
||||||
|
|
||||||
|
# installation des dépendances
|
||||||
|
npm i --legacy-peer-deps
|
||||||
|
|
||||||
|
# construction des docs graphql
|
||||||
|
npm run build:graphql-docs
|
||||||
|
|
||||||
|
# construction de bruno query
|
||||||
|
npm run build:bruno-query
|
||||||
|
|
||||||
|
# construction de bruno common
|
||||||
|
npm run build:bruno-common
|
||||||
|
|
||||||
|
# démarrage de next (terminal 1)
|
||||||
|
npm run dev:web
|
||||||
|
|
||||||
|
# démarrage du client lourd (terminal 2)
|
||||||
|
npm run dev:electron
|
||||||
|
```
|
||||||
|
|
||||||
|
### Dépannage
|
||||||
|
|
||||||
|
Vous pourriez rencontrer une erreur `Unsupported platform` durant le lancement de `npm install`. Pour résoudre cela, veuillez supprimer le répertoire `node_modules` ainsi que le fichier `package-lock.json` et lancez à nouveau `npm install`. Cela devrait installer tous les paquets nécessaires pour lancer l'application.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# Efface les répertoires node_modules dans les sous-répertoires
|
||||||
|
find ./ -type d -name "node_modules" -print0 | while read -d $'\0' dir; do
|
||||||
|
rm -rf "$dir"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Efface les fichiers package-lock.json dans les sous-répertoires
|
||||||
|
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
|
||||||
|
```
|
||||||
|
|
||||||
|
### Ouvrir une Pull Request
|
||||||
|
|
||||||
|
- Merci de conserver les PR minimes et focalisées sur un seul objectif
|
||||||
|
- Merci de suivre le format de nom des branches :
|
||||||
|
- feature/[feature name]: Cette branche doit contenir une fonctionnalité spécifique
|
||||||
|
- Exemple : feature/dark-mode
|
||||||
|
- bugfix/[bug name]: Cette branche doit contenir seulement une solution pour un bug spécifique
|
||||||
|
- Exemple : bugfix/bug-1
|
82
docs/contributing/contributing_hi.md
Normal file
82
docs/contributing/contributing_hi.md
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
[English](../../contributing.md)
|
||||||
|
|
||||||
|
## आइए मिलकर Bruno को बेहतर बनाएं !!
|
||||||
|
|
||||||
|
हमें खुशी है कि आप Bruno को बेहतर बनाना चाहते हैं। Bruno को अपने कंप्यूटर पर लाना शुरू करने के लिए दिशानिर्देश नीचे दिए गए हैं।
|
||||||
|
|
||||||
|
### टेक्नोलॉजी स्टैक
|
||||||
|
|
||||||
|
Bruno को Next.js और React का उपयोग करके बनाया गया है। हम डेस्कटॉप संस्करण को शिप करने के लिए इलेक्ट्रॉन का भी उपयोग करते हैं (जो स्थानीय संग्रह का समर्थन करता है)
|
||||||
|
|
||||||
|
Libraries जिनका हम उपयोग करते हैं
|
||||||
|
|
||||||
|
- CSS - Tailwind
|
||||||
|
- कोड संपादक - Codemirror
|
||||||
|
- State Management - Redux
|
||||||
|
- Icons - Tabler Icons
|
||||||
|
- Forms - formik
|
||||||
|
- Schema Validation - Yup
|
||||||
|
- Request Client - axios
|
||||||
|
- Filesystem Watcher - chokidar
|
||||||
|
|
||||||
|
### निर्भरताएँ
|
||||||
|
|
||||||
|
आपको [Node v20.x या नवीनतम LTS संस्करण](https://nodejs.org/en/) और npm 8.x की आवश्यकता होगी। हम प्रोजेक्ट में npm वर्कस्पेस का उपयोग करते हैं
|
||||||
|
|
||||||
|
## डेवलपमेंट
|
||||||
|
|
||||||
|
Bruno को एक डेस्कटॉप ऐप के रूप में बनाया किया जा रहा है। आपको Next.js ऐप को एक टर्मिनल में चलाकर ऐप को लोड करना होगा और फिर इलेक्ट्रॉन ऐप को दूसरे टर्मिनल में चलाना होगा।
|
||||||
|
|
||||||
|
### लोकल डेवलपमेंट
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# nodejs 18 संस्करण का उपयोग करें
|
||||||
|
nvm use
|
||||||
|
|
||||||
|
# डिपेंडेंसी इनस्टॉल करे
|
||||||
|
npm i --legacy-peer-deps
|
||||||
|
|
||||||
|
# पैकेज बिल्ड करें
|
||||||
|
npm run build:graphql-docs
|
||||||
|
npm run build:bruno-query
|
||||||
|
npm run build:bruno-common
|
||||||
|
|
||||||
|
# Next.js ऐप चलाएँ (टर्मिनल 1 पर)
|
||||||
|
npm run dev:web
|
||||||
|
|
||||||
|
# इलेक्ट्रॉन ऐप चलाएँ (टर्मिनल 2 पर)
|
||||||
|
npm run dev:electron
|
||||||
|
```
|
||||||
|
|
||||||
|
### समस्या निवारण
|
||||||
|
|
||||||
|
जब आप `npm इंस्टॉल` चलाते हैं तो आपको `असमर्थित प्लेटफ़ॉर्म` त्रुटि का सामना करना पड़ सकता है। इसे ठीक करने के लिए, आपको `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
|
||||||
|
```
|
||||||
|
|
||||||
|
### पुल अनुरोध प्रक्रिया
|
||||||
|
|
||||||
|
- कृपया PR को छोटा रखें और एक चीज़ पर केंद्रित रखें
|
||||||
|
- कृपया शाखाएँ बनाने के प्रारूप का पालन करें
|
||||||
|
- feature/[feature name]: इस शाखा में किसी विशिष्ट सुविधा के लिए परिवर्तन होने चाहिए
|
||||||
|
- उदाहरण: feature/dark-mode
|
||||||
|
- bugfix/[bug name]: इस शाखा में केवल विशिष्ट बग के लिए बग फिक्स शामिल होने चाहिए
|
||||||
|
- उदाहरण bugfix/bug-1
|
91
docs/contributing/contributing_it.md
Normal file
91
docs/contributing/contributing_it.md
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
[English](../../contributing.md)
|
||||||
|
|
||||||
|
## Insieme, miglioriamo Bruno!
|
||||||
|
|
||||||
|
Sono felice di vedere che hai intenzione di migliorare Bruno. Di seguito, troverai le regole e le guide per ripristinare Bruno sul tuo computer.
|
||||||
|
|
||||||
|
### Tecnologie utilizzate
|
||||||
|
|
||||||
|
Bruno è costruito utilizzando Next.js e React. Utilizziamo anche Electron per incorporare la versione desktop (che consente raccolte locali).
|
||||||
|
|
||||||
|
Le librerie che utilizziamo sono:
|
||||||
|
|
||||||
|
- CSS - Tailwind
|
||||||
|
- Code Editors - Codemirror
|
||||||
|
- State Management - Redux
|
||||||
|
- Icons - Tabler Icons
|
||||||
|
- Forms - formik
|
||||||
|
- Schema Validation - Yup
|
||||||
|
- Request Client - axios
|
||||||
|
- Filesystem Watcher - chokidar
|
||||||
|
|
||||||
|
### Dependences
|
||||||
|
|
||||||
|
Hai bisogno di [Node v20.x o dell'ultima versione LTS](https://nodejs.org/en/) di npm 8.x. Utilizziamo gli spazi di lavoro npm (_npm workspaces_) in questo progetto.
|
||||||
|
|
||||||
|
### Iniziamo a codificare
|
||||||
|
|
||||||
|
Si prega di fare riferimento alla [documentazione di sviluppo](docs/development_it.md) per le istruzioni su come avviare l'ambiente di sviluppo locale.
|
||||||
|
|
||||||
|
### Aprire una richiesta di pull (Pull Request)
|
||||||
|
|
||||||
|
- Si prega di mantenere le Pull Request (PR) brevi e concentrate su un singolo obiettivo.
|
||||||
|
- Si prega di seguire il formato di denominazione dei rami.
|
||||||
|
- feature/[feature name]: Questo ramo dovrebbe contenere una specifica funzionalità.
|
||||||
|
- Esempio: feature/dark-mode
|
||||||
|
- bugfix/[bug name]: Questo ramo dovrebbe contenere solo una soluzione per un bug specifico.
|
||||||
|
- Esempio: bugfix/bug-1
|
||||||
|
|
||||||
|
## Sviluppo
|
||||||
|
|
||||||
|
Bruno è sviluppato come un'applicazione "heavy". È necessario caricare l'applicazione avviando Next.js in una finestra del terminale e quindi avviare l'applicazione Electron in un altro terminale.
|
||||||
|
|
||||||
|
### Sviluppo
|
||||||
|
|
||||||
|
- NodeJS v18
|
||||||
|
|
||||||
|
### Sviluppo locale
|
||||||
|
|
||||||
|
```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
|
||||||
|
```
|
||||||
|
|
||||||
|
### Risoluzione dei problemi
|
||||||
|
|
||||||
|
Potresti trovare un errore `Unsupported platform` durante l'esecuzione di `npm install`. Per risolvere questo problema, ti preghiamo di eliminare la cartella `node_modules`, il file `package-lock.json` e di seguito nuovamente `npm install`. Qeusto dovrebbe installare tutti i pacchetti necessari per avviare l'applicazione.
|
||||||
|
|
||||||
|
```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
|
||||||
|
```
|
82
docs/contributing/contributing_ja.md
Normal file
82
docs/contributing/contributing_ja.md
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
[English](../../contributing.md)
|
||||||
|
|
||||||
|
## 一緒に Bruno をよりよいものにしていきましょう!!
|
||||||
|
|
||||||
|
Bruno を改善していただけるのは歓迎です。以下はあなたの環境で Bruno を起動するためのガイドラインです。
|
||||||
|
|
||||||
|
### 技術スタック
|
||||||
|
|
||||||
|
Bruno は Next.js と React で作られています。デスクトップアプリ(ローカルのコレクションに対応しています)には electron も使用しています。
|
||||||
|
|
||||||
|
使用ライブラリ
|
||||||
|
|
||||||
|
- CSS - Tailwind
|
||||||
|
- Code Editors - Codemirror
|
||||||
|
- State Management - Redux
|
||||||
|
- Icons - Tabler Icons
|
||||||
|
- Forms - formik
|
||||||
|
- Schema Validation - Yup
|
||||||
|
- Request Client - axios
|
||||||
|
- Filesystem Watcher - chokidar
|
||||||
|
|
||||||
|
### 依存関係
|
||||||
|
|
||||||
|
[Node v20.x もしくは最新の LTS バージョン](https://nodejs.org/en/)と npm 8.x が必要です。プロジェクトに npm ワークスペースを使用しています。
|
||||||
|
|
||||||
|
## 開発
|
||||||
|
|
||||||
|
Bruno はデスクトップアプリとして開発されています。一つのターミナルで Next.js アプリを立ち上げ、もう一つのターミナルで electron アプリを立ち上げてアプリを読み込む必要があります。
|
||||||
|
|
||||||
|
### ローカル環境での開発
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# use nodejs 18 version
|
||||||
|
nvm use
|
||||||
|
|
||||||
|
# install deps
|
||||||
|
npm i --legacy-peer-deps
|
||||||
|
|
||||||
|
# build packages
|
||||||
|
npm run build:graphql-docs
|
||||||
|
npm run build:bruno-query
|
||||||
|
npm run build:bruno-common
|
||||||
|
|
||||||
|
# run next app (terminal 1)
|
||||||
|
npm run dev:web
|
||||||
|
|
||||||
|
# run electron app (terminal 2)
|
||||||
|
npm run dev:electron
|
||||||
|
```
|
||||||
|
|
||||||
|
### トラブルシューティング
|
||||||
|
|
||||||
|
`npm install`を実行すると、`Unsupported platform`エラーに遭遇することがあります。これを直すためには、`node_modules`と`package-lock.json`を削除し、`npm install`を実行しなおす必要があります。これにより、アプリを動かすのに必要なパッケージがすべてインストールされます。
|
||||||
|
|
||||||
|
```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
|
||||||
|
```
|
||||||
|
|
||||||
|
### テストを動かすには
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# bruno-schema
|
||||||
|
npm test --workspace=packages/bruno-schema
|
||||||
|
|
||||||
|
# bruno-lang
|
||||||
|
npm test --workspace=packages/bruno-lang
|
||||||
|
```
|
||||||
|
|
||||||
|
### プルリクエストの手順
|
||||||
|
|
||||||
|
- プルリクエストは小規模で、一つのことにフォーカスしたものにしてください。
|
||||||
|
- 以下のフォーマットに従ってブランチを作ってください。
|
||||||
|
- feature/[feature name]: このブランチには特定の機能に対する変更を含んでください。
|
||||||
|
- 例: feature/dark-mode
|
||||||
|
- bugfix/[bug name]: このブランチには特定のバグに対する修正のみを含むようにしてください。
|
||||||
|
- 例: bugfix/bug-1
|
83
docs/contributing/contributing_kr.md
Normal file
83
docs/contributing/contributing_kr.md
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
[English](../../contributing.md)
|
||||||
|
|
||||||
|
## 함께 Bruno를 더 좋게 만들어요!!
|
||||||
|
|
||||||
|
우리는 여러분이 Bruno를 발전시키기 위해 노력해주셔서 기쁩니다. 다음은 여러분의 컴퓨터에서 Bruno를 불러오는 가이드라인입니다.
|
||||||
|
|
||||||
|
### 기술 스택
|
||||||
|
|
||||||
|
Bruno는 Next.js와 React로 구축되었습니다. 또한, (로컬 컬렉션을 지원하는) 데스크톱 버전을 제공하기 위해 electron을 사용합니다.
|
||||||
|
|
||||||
|
우리가 사용하는 라이브러리
|
||||||
|
|
||||||
|
- CSS - Tailwind
|
||||||
|
- Code Editors - Codemirror
|
||||||
|
- State Management - Redux
|
||||||
|
- Icons - Tabler Icons
|
||||||
|
- Forms - formik
|
||||||
|
- Schema Validation - Yup
|
||||||
|
- Request Client - axios
|
||||||
|
- Filesystem Watcher - chokidar
|
||||||
|
|
||||||
|
### 의존성
|
||||||
|
|
||||||
|
[Node v20.x 혹은 최신 LTS version](https://nodejs.org/en/)과 npm 8.x 버전이 필요합니다. 우리는 이 프로젝트에서 npm workspaces를 사용합니다.
|
||||||
|
|
||||||
|
## 개발
|
||||||
|
|
||||||
|
Bruno는 데스크톱 앱으로 개발되고 있습니다. 한 터미널에서 Next.js를 실행하여 앱을 로드한 다음 다른 터미널에서 electron 앱을 실행해야합니다.
|
||||||
|
|
||||||
|
### 로컬 개발
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# nodejs 18 버전 사용
|
||||||
|
nvm use
|
||||||
|
|
||||||
|
# 의존성 설치
|
||||||
|
npm i --legacy-peer-deps
|
||||||
|
|
||||||
|
# packages 빌드
|
||||||
|
npm run build:graphql-docs
|
||||||
|
npm run build:bruno-query
|
||||||
|
npm run build:bruno-common
|
||||||
|
|
||||||
|
# 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
|
||||||
|
```
|
||||||
|
|
||||||
|
### Pull Requests 요청
|
||||||
|
|
||||||
|
- PR을 작게 유지하고 한가지에 집중해주세요.
|
||||||
|
- 브랜치를 생성하는 형식을 따라주세요.
|
||||||
|
- feature/[feature name]: 이 브랜치는 특정 기능에 대한 변경사항이 포함되어야합니다.
|
||||||
|
- 예시: feature/dark-mode
|
||||||
|
- bugfix/[bug name]: 이 브랜치는 특정 버그에 대한 버그 수정만 포함되어야합니다.
|
||||||
|
- 예시: bugfix/bug-1
|
82
docs/contributing/contributing_nl.md
Normal file
82
docs/contributing/contributing_nl.md
Normal file
@ -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
|
88
docs/contributing/contributing_pl.md
Normal file
88
docs/contributing/contributing_pl.md
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
[English](../../contributing.md)
|
||||||
|
|
||||||
|
## Wspólnie uczynijmy Bruno lepszym !!
|
||||||
|
|
||||||
|
Cieszymy się, że chcesz udoskonalić Bruno. Poniżej znajdziesz wskazówki, jak rozpocząć pracę z Bruno na Twoim komputerze.
|
||||||
|
|
||||||
|
### Stos Technologiczny
|
||||||
|
|
||||||
|
Bruno jest zbudowane przy użyciu Next.js i React. Używamy również electron do stworzenia wersji desktopowej (która obsługuje lokalne kolekcje)
|
||||||
|
|
||||||
|
Biblioteki, których używamy
|
||||||
|
|
||||||
|
- CSS - Tailwind
|
||||||
|
- Edytory Kodu - Codemirror
|
||||||
|
- Zarządzanie Stanem - Redux
|
||||||
|
- Ikony - Tabler Icons
|
||||||
|
- Formularze - formik
|
||||||
|
- Walidacja Schematu - Yup
|
||||||
|
- Klient Zapytań - axios
|
||||||
|
- Obserwator Systemu Plików - chokidar
|
||||||
|
|
||||||
|
### Zależności
|
||||||
|
|
||||||
|
Będziesz potrzebować [Node v20.x lub najnowszej wersji LTS](https://nodejs.org/en/) oraz npm 8.x. W projekcie używamy npm workspaces
|
||||||
|
|
||||||
|
## Rozwój
|
||||||
|
|
||||||
|
Bruno jest rozwijane jako aplikacja desktopowa. Musisz załadować aplikację, uruchamiając aplikację Next.js w jednym terminalu, a następnie uruchomić aplikację electron w innym terminalu.
|
||||||
|
|
||||||
|
### Zależności
|
||||||
|
|
||||||
|
- NodeJS v18
|
||||||
|
|
||||||
|
### Lokalny Rozwój
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# użyj wersji nodejs 18
|
||||||
|
nvm use
|
||||||
|
|
||||||
|
# zainstaluj zależności
|
||||||
|
npm i --legacy-peer-deps
|
||||||
|
|
||||||
|
# zbuduj dokumentację graphql
|
||||||
|
npm run build:graphql-docs
|
||||||
|
|
||||||
|
# zbuduj zapytanie bruno
|
||||||
|
npm run build:bruno-query
|
||||||
|
|
||||||
|
# uruchom aplikację next (terminal 1)
|
||||||
|
npm run dev:web
|
||||||
|
|
||||||
|
# uruchom aplikację electron (terminal 2)
|
||||||
|
npm run dev:electron
|
||||||
|
```
|
||||||
|
|
||||||
|
### Rozwiązywanie Problemów
|
||||||
|
|
||||||
|
Możesz napotkać błąd `Unsupported platform` podczas uruchamiania `npm install`. Aby to naprawić, będziesz musiał usunąć `node_modules` i `package-lock.json`, a następnie uruchomić `npm install`. Powinno to zainstalować wszystkie niezbędne pakiety potrzebne do uruchomienia aplikacji.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# Usuń node_modules w podkatalogach
|
||||||
|
find ./ -type d -name "node_modules" -print0 | while read -d $'\0' dir; do
|
||||||
|
rm -rf "$dir"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Usuń package-lock w podkatalogach
|
||||||
|
find . -type f -name "package-lock.json" -delete
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### Testowanie
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# bruno-schema
|
||||||
|
npm test --workspace=packages/bruno-schema
|
||||||
|
|
||||||
|
# bruno-lang
|
||||||
|
npm test --workspace=packages/bruno-lang
|
||||||
|
```
|
||||||
|
|
||||||
|
### Tworzenie Pull Request
|
||||||
|
|
||||||
|
- Prosimy, aby PR były małe i skoncentrowane na jednej rzeczy
|
||||||
|
- Prosimy przestrzegać formatu tworzenia gałęzi
|
||||||
|
- feature/[nazwa funkcji]: Ta gałąź powinna zawierać zmiany dotyczące konkretnej funkcji
|
||||||
|
- Przykład: feature/dark-mode
|
||||||
|
- bugfix/[nazwa błędu]: Ta gałąź powinna zawierać tylko poprawki dla konkretnego błędu
|
||||||
|
- Przykład bugfix/bug-1
|
87
docs/contributing/contributing_pt_br.md
Normal file
87
docs/contributing/contributing_pt_br.md
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
[English](../../contributing.md)
|
||||||
|
|
||||||
|
## Vamos tornar o Bruno melhor, juntos!!
|
||||||
|
|
||||||
|
Estamos felizes que você queira ajudar a melhorar o Bruno. Abaixo estão as diretrizes e orientações para começar a executar o Bruno no seu computador.
|
||||||
|
|
||||||
|
### Stack de Tecnologias
|
||||||
|
|
||||||
|
O Bruno é construído usando Next.js e React. Também usamos o Electron para disponibilizar uma versão para desktop (que suporta coleções locais).
|
||||||
|
|
||||||
|
Bibliotecas que utilizamos:
|
||||||
|
|
||||||
|
- CSS - Tailwind
|
||||||
|
- Editor de Código - Codemirror
|
||||||
|
- Gerenciador de Estado - Redux
|
||||||
|
- Ícones - Tabler Icons
|
||||||
|
- Formulários - formik
|
||||||
|
- Validador de Schema - Yup
|
||||||
|
- Cliente de Requisições - axios
|
||||||
|
- Monitor de Arquivos - chokidar
|
||||||
|
|
||||||
|
### Dependências
|
||||||
|
|
||||||
|
Você precisará do [Node v20.x (ou da versão LTS mais recente)](https://nodejs.org/en/) e do npm na versão 8.x. Nós utilizamos npm workspaces no projeto.
|
||||||
|
|
||||||
|
## Desenvolvimento
|
||||||
|
|
||||||
|
Bruno está sendo desenvolvido como um aplicativo de desktop. Você precisa carregar o programa executando o aplicativo Next.js em um terminal e, em seguida, executar o aplicativo Electron em outro terminal.
|
||||||
|
|
||||||
|
### Dependências
|
||||||
|
|
||||||
|
- NodeJS v18
|
||||||
|
|
||||||
|
### Desenvolvimento 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
|
||||||
|
```
|
||||||
|
|
||||||
|
### Troubleshooting
|
||||||
|
|
||||||
|
Você pode se deparar com o erro `Unsupported platform` ao executar o comando `npm install`. Para corrigir isso, você precisará excluir a pasta `node_modules` e o arquivo `package-lock.json` e, em seguida, executar o comando `npm install` novamente. Isso deve instalar todos os pacotes necessários para executar o aplicativo.
|
||||||
|
|
||||||
|
```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
|
||||||
|
```
|
||||||
|
|
||||||
|
### Testando
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# bruno-schema
|
||||||
|
npm test --workspace=packages/bruno-schema
|
||||||
|
|
||||||
|
# bruno-lang
|
||||||
|
npm test --workspace=packages/bruno-lang
|
||||||
|
```
|
||||||
|
|
||||||
|
### Envio de Pull Request
|
||||||
|
|
||||||
|
- Por favor, mantenha os PRs pequenos e focados em uma única coisa.
|
||||||
|
- Siga o formato de criação de branches.
|
||||||
|
- feature/[nome da funcionalidade]: Esta branch deve conter alterações para uma funcionalidade específica.
|
||||||
|
- Exemplo: feature/dark-mode
|
||||||
|
- bugfix/[nome do bug]: Esta branch deve conter apenas correções para um bug específico.
|
||||||
|
- Exemplo: bugfix/bug-1
|
81
docs/contributing/contributing_ro.md
Normal file
81
docs/contributing/contributing_ro.md
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
[English](../../contributing.md)
|
||||||
|
|
||||||
|
## Haideţi să îmbunătățim Bruno, împreună!!
|
||||||
|
|
||||||
|
Ne bucurăm că doriți să îmbunătățiți bruno. Mai jos sunt instrucțiunile pentru ca să porniți bruno pe calculatorul dvs.
|
||||||
|
|
||||||
|
### Stack-ul tehnologic
|
||||||
|
|
||||||
|
Bruno este construit cu Next.js și React. De asemenea, folosim electron pentru a livra o versiune desktop (care poate folosi colecții locale)
|
||||||
|
|
||||||
|
Bibliotecile pe care le folosim
|
||||||
|
|
||||||
|
- CSS - Tailwind
|
||||||
|
- Editori de cod - Codemirror
|
||||||
|
- Management de condiție - Redux
|
||||||
|
- Icoane - Tabler Icons
|
||||||
|
- Formulare - formik
|
||||||
|
- Validarea schemelor - Yup
|
||||||
|
- Cererile client - axios
|
||||||
|
- Observatorul sistemului de fișiere - chokidar
|
||||||
|
|
||||||
|
### Dependențele
|
||||||
|
|
||||||
|
Veți avea nevoie de [Node v20.x sau cea mai recentă versiune LTS](https://nodejs.org/en/) și npm 8.x. Noi folosim spații de lucru npm în proiect
|
||||||
|
|
||||||
|
## Dezvoltarea
|
||||||
|
|
||||||
|
Bruno este dezvoltat ca o aplicație desktop. Ca să porniți aplicatia trebuie să rulați aplicația Next.js într-un terminal și apoi să rulați aplicația electron într-un alt terminal.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# folosiți nodejs versiunea 18
|
||||||
|
nvm use
|
||||||
|
|
||||||
|
# instalați dependențele
|
||||||
|
npm i --legacy-peer-deps
|
||||||
|
|
||||||
|
# construiți documente graphql
|
||||||
|
npm run build:graphql-docs
|
||||||
|
|
||||||
|
# construiți bruno query
|
||||||
|
npm run build:bruno-query
|
||||||
|
|
||||||
|
# rulați aplicația next (terminal 1)
|
||||||
|
npm run dev:web
|
||||||
|
|
||||||
|
# rulați aplicația electron (terminal 2)
|
||||||
|
npm run dev:electron
|
||||||
|
```
|
||||||
|
|
||||||
|
### Depanare
|
||||||
|
|
||||||
|
Este posibil să întâmpinați o eroare `Unsupported platform` când rulați „npm install”. Pentru a remedia acest lucru, va trebui să ștergeți `node_modules` și `package-lock.json` și să rulați `npm install`. Aceasta ar trebui să instaleze toate pachetele necesare pentru a rula aplicația.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# Ștergeți node_modules din subdirectoare
|
||||||
|
find ./ -type d -name "node_modules" -print0 | while read -d $'\0' dir; do
|
||||||
|
rm -rf "$dir"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Ștergeți package-lock din subdirectoare
|
||||||
|
find . -type f -name "package-lock.json" -delete
|
||||||
|
```
|
||||||
|
|
||||||
|
### Testarea
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# bruno-schema
|
||||||
|
npm test --workspace=packages/bruno-schema
|
||||||
|
|
||||||
|
# bruno-lang
|
||||||
|
npm test --workspace=packages/bruno-lang
|
||||||
|
```
|
||||||
|
|
||||||
|
### Crearea unui Pull Request
|
||||||
|
|
||||||
|
- Vă rugăm să păstrați PR-urile mici și concentrate pe un singur lucru
|
||||||
|
- Vă rugăm să urmați formatul de creare a branchurilor
|
||||||
|
- feature/[Numele funcției]: Acest branch ar trebui să conțină modificări pentru o funcție anumită
|
||||||
|
- Exemplu: feature/dark-mode
|
||||||
|
- bugfix/[Numele eroarei]: Acest branch ar trebui să conţină numai remedieri pentru o eroare anumită
|
||||||
|
- Exemplu bugfix/bug-1
|
91
docs/contributing/contributing_ru.md
Normal file
91
docs/contributing/contributing_ru.md
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
[English](../../contributing.md)
|
||||||
|
|
||||||
|
## Давайте вместе сделаем Бруно лучше!!!
|
||||||
|
|
||||||
|
Я рад, что Вы хотите усовершенствовать bruno. Ниже приведены рекомендации по запуску bruno на вашем компьютере.
|
||||||
|
|
||||||
|
### Стек
|
||||||
|
|
||||||
|
Bruno построен с использованием Next.js и React. Мы также используем electron для поставки десктопной версии ( которая поддерживает локальные коллекции )
|
||||||
|
|
||||||
|
Библиотеки, которые мы используем
|
||||||
|
|
||||||
|
- CSS - Tailwind
|
||||||
|
- Редакторы кода - Codemirror
|
||||||
|
- Управление состоянием - Redux
|
||||||
|
- Иконки - Tabler Icons
|
||||||
|
- Формы - formik
|
||||||
|
- Валидация схем - Yup
|
||||||
|
- Запросы клиента - axios
|
||||||
|
- Наблюдатель за файловой системой - chokidar
|
||||||
|
|
||||||
|
### Зависимости
|
||||||
|
|
||||||
|
Вам потребуется [Node v20.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
|
||||||
|
```
|
84
docs/contributing/contributing_sk.md
Normal file
84
docs/contributing/contributing_sk.md
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
## Urobme bruno lepším, spoločne !!
|
||||||
|
|
||||||
|
Sme radi, že chcete zlepšiť bruno. Nižšie sú uvedené pokyny, ako začať s výchovou bruno na vašom počítači.
|
||||||
|
|
||||||
|
### Technologický zásobník
|
||||||
|
|
||||||
|
Bruno je vytvorené pomocou Next.js a React. Na dodávanie desktopovej verzie (ktorá podporuje lokálne kolekcie) používame aj electron.
|
||||||
|
|
||||||
|
Balíčky, ktoré používame:
|
||||||
|
|
||||||
|
- CSS - Tailwind
|
||||||
|
- Editory kódu - Codemirror
|
||||||
|
- Správa stavu - Redux
|
||||||
|
- Ikony - Tabler Icons
|
||||||
|
- Formuláre - formik
|
||||||
|
- Overovanie schém - Yup
|
||||||
|
- Klient požiadaviek - axios
|
||||||
|
- Sledovač súborového systému - chokidar
|
||||||
|
|
||||||
|
### Závislosti
|
||||||
|
|
||||||
|
Budete potrebovať [NodeJS v18.x alebo najnovšiu verziu LTS](https://nodejs.org/en/) a npm versiu 8.x. V projekte používame pracovné priestory npm
|
||||||
|
|
||||||
|
## Vývoj
|
||||||
|
|
||||||
|
Bruno sa vyvíja ako desktopová aplikácia. Aplikáciu je potrebné načítať spustením aplikácie Next.js v jednom termináli a potom spustiť aplikáciu electron v inom termináli.
|
||||||
|
|
||||||
|
### Závislosti
|
||||||
|
|
||||||
|
- NodeJS v18
|
||||||
|
|
||||||
|
### Miestny vývoj
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# použite verziu nodejs 18
|
||||||
|
nvm use
|
||||||
|
|
||||||
|
# nainštalovať balíčky
|
||||||
|
npm i --legacy-peer-deps
|
||||||
|
|
||||||
|
# zostaviť balíčky
|
||||||
|
npm run build:graphql-docs
|
||||||
|
npm run build:bruno-query
|
||||||
|
npm run build:bruno-common
|
||||||
|
|
||||||
|
# spustite ďalšiu aplikáciu (terminál 1)
|
||||||
|
npm run dev:web
|
||||||
|
|
||||||
|
# spustite aplikáciu electron (terminál 2)
|
||||||
|
npm run dev:electron
|
||||||
|
```
|
||||||
|
|
||||||
|
### Riešenie problémov
|
||||||
|
|
||||||
|
Pri spustení `npm install` sa môžete stretnúť s chybou `Unsupported platform`. Ak chcete túto chybu odstrániť, musíte odstrániť súbory `node_modules`, `package-lock.json` a spustiť `npm install`. Tým by sa mali nainštalovať všetky potrebné balíky potrebné na spustenie aplikácie.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# Odstrániť node_modules v podadresároch
|
||||||
|
find ./ -type d -name "node_modules" -print0 | while read -d $'\0' dir; do
|
||||||
|
rm -rf "$dir"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Odstráňte package-lock v podadresároch
|
||||||
|
find . -type f -name "package-lock.json" -delete
|
||||||
|
```
|
||||||
|
|
||||||
|
### Testovanie
|
||||||
|
|
||||||
|
````bash
|
||||||
|
# bruno-schema
|
||||||
|
npm test --workspace=packages/bruno-schema
|
||||||
|
|
||||||
|
# bruno-lang
|
||||||
|
npm test --workspace=packages/bruno-lang
|
||||||
|
```
|
||||||
|
|
||||||
|
### Vyrobenie Pull Request
|
||||||
|
|
||||||
|
- Prosím, aby PR boli malé a zamerané na jednu vec
|
||||||
|
- Prosím, dodržujte formát vytvárania vetiev
|
||||||
|
- feature/[názov funkcie]: Táto vetva by mala obsahovať zmeny pre konkrétnu funkciu
|
||||||
|
- Príklad: feature/dark-mode
|
||||||
|
- bugfix/[názov chyby]: Táto vetva by mala obsahovať iba opravy konkrétnej chyby
|
||||||
|
- Príklad: bugfix/bug-1
|
87
docs/contributing/contributing_tr.md
Normal file
87
docs/contributing/contributing_tr.md
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
[English](../../contributing.md)
|
||||||
|
|
||||||
|
## Bruno'yu birlikte daha iyi hale getirelim!!!
|
||||||
|
|
||||||
|
bruno'yu geliştirmek istemenizden mutluluk duyuyoruz. 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 Icons
|
||||||
|
- Formlar - formik
|
||||||
|
- Şema Doğrulama - Yup
|
||||||
|
- İstek İstemcisi - axios
|
||||||
|
- Dosya Sistemi İzleyicisi - chokidar
|
||||||
|
|
||||||
|
### Bağımlılıklar
|
||||||
|
|
||||||
|
[Node v20.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
|
||||||
|
|
||||||
|
## Gelişim
|
||||||
|
|
||||||
|
Bruno bir masaüstü uygulaması olarak geliştirilmektedir. Next.js uygulamasını bir terminalde çalıştırarak uygulamayı yüklemeniz ve ardından electron uygulamasını başka bir terminalde çalıştırmanız gerekir.
|
||||||
|
|
||||||
|
### Bağımlılıklar
|
||||||
|
|
||||||
|
- NodeJS v18
|
||||||
|
|
||||||
|
### Yerel Geliştirme
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# nodejs 18 sürümünü kullan
|
||||||
|
nvm use
|
||||||
|
|
||||||
|
# deps yükleyin
|
||||||
|
npm i --legacy-peer-deps
|
||||||
|
|
||||||
|
# graphql dokümanlarını oluştur
|
||||||
|
npm run build:graphql-docs
|
||||||
|
|
||||||
|
# bruno sorgusu oluştur
|
||||||
|
npm run build:bruno-query
|
||||||
|
|
||||||
|
# sonraki uygulamayı çalıştır (terminal 1)
|
||||||
|
npm run dev:web
|
||||||
|
|
||||||
|
# electron uygulamasını çalıştır (terminal 2)
|
||||||
|
npm run dev:electron
|
||||||
|
```
|
||||||
|
|
||||||
|
### Sorun Giderme
|
||||||
|
|
||||||
|
`npm install`'ı çalıştırdığınızda `Unsupported platform` hatası ile karşılaşabilirsiniz. Bunu düzeltmek için `node_modules` ve `package-lock.json` dosyalarını silmeniz ve `npm install` dosyasını çalıştırmanız gerekecektir. Bu, uygulamayı çalıştırmak için gereken tüm gerekli paketleri yüklemelidir.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# Alt dizinlerdeki node_modules öğelerini silme
|
||||||
|
find ./ -type d -name "node_modules" -print0 | while read -d $'\0' dir; do
|
||||||
|
rm -rf "$dir"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Alt dizinlerdeki paket kilidini silme
|
||||||
|
find . -type f -name "package-lock.json" -delete
|
||||||
|
```
|
||||||
|
|
||||||
|
### Test
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# bruno-schema
|
||||||
|
npm test --workspace=packages/bruno-schema
|
||||||
|
|
||||||
|
# bruno-lang
|
||||||
|
npm test --workspace=packages/bruno-lang
|
||||||
|
```
|
||||||
|
|
||||||
|
### 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üzeltmeleri içermelidir
|
||||||
|
- Örnek bugfix/bug-1
|
91
docs/contributing/contributing_ua.md
Normal file
91
docs/contributing/contributing_ua.md
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
[English](../../contributing.md)
|
||||||
|
|
||||||
|
## Давайте зробимо Bruno краще, разом !!
|
||||||
|
|
||||||
|
Я дуже радий що Ви бажаєте покращити Bruno. Нижче наведені вказівки як розпочати розробку Bruno на Вашому комп'ютері.
|
||||||
|
|
||||||
|
### Стек технологій
|
||||||
|
|
||||||
|
Bruno побудований на Next.js та React. Також для десктопної версії (яка підтримує локальні колекції) використовується Electron
|
||||||
|
|
||||||
|
Бібліотеки, які ми використовуємо
|
||||||
|
|
||||||
|
- CSS - Tailwind
|
||||||
|
- Редактори коду - Codemirror
|
||||||
|
- Керування станом - Redux
|
||||||
|
- Іконки - Tabler Icons
|
||||||
|
- Форми - formik
|
||||||
|
- Валідація по схемі - Yup
|
||||||
|
- Клієнт запитів - axios
|
||||||
|
- Спостерігач за файловою системою - chokidar
|
||||||
|
|
||||||
|
### Залежності
|
||||||
|
|
||||||
|
Вам знадобиться [Node v20.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
|
||||||
|
```
|
87
docs/contributing/contributing_zhtw.md
Normal file
87
docs/contributing/contributing_zhtw.md
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
[English](../../contributing.md)
|
||||||
|
|
||||||
|
## 讓我們一起來讓 Bruno 變得更好!
|
||||||
|
|
||||||
|
我們很高興您希望一同改善 Bruno。以下是在您的電腦上開始運行 Bruno 的規則及指南。
|
||||||
|
|
||||||
|
### 技術細節
|
||||||
|
|
||||||
|
Bruno 使用 Next.js 和 React 構建。我們使用 Electron 來封裝及發佈桌面版本。
|
||||||
|
|
||||||
|
我們使用的函式庫:
|
||||||
|
|
||||||
|
- CSS - Tailwind
|
||||||
|
- 程式碼編輯器 - Codemirror
|
||||||
|
- 狀態管理 - Redux
|
||||||
|
- Icons - Tabler Icons
|
||||||
|
- 表單 - formik
|
||||||
|
- 結構驗證- Yup
|
||||||
|
- 請求用戶端 - axios
|
||||||
|
- 檔案系統監測 - chokidar
|
||||||
|
|
||||||
|
### 依賴關係
|
||||||
|
|
||||||
|
您需要使用 [Node v20.x 或最新的 LTS 版本](https://nodejs.org/en/) 和 npm 8.x。我們在這個專案中使用 npm 工作區(_npm workspaces_)。
|
||||||
|
|
||||||
|
## 開發
|
||||||
|
|
||||||
|
Bruno 正以桌面應用程式的形式開發。您需要在一個終端機中執行 Next.js 來載入應用程式,然後在另一個終端機中執行 electron 應用程式。
|
||||||
|
|
||||||
|
### 開發依賴
|
||||||
|
|
||||||
|
- NodeJS v18
|
||||||
|
|
||||||
|
### 本地開發
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 使用 nodejs 第 18 版
|
||||||
|
nvm use
|
||||||
|
|
||||||
|
# 安裝相依套件(使用--legacy-peer-deps 解決套件相依性問題)
|
||||||
|
npm i --legacy-peer-deps
|
||||||
|
|
||||||
|
# 建立 graphql 文件
|
||||||
|
npm run build:graphql-docs
|
||||||
|
|
||||||
|
# 建立 bruno 查詢
|
||||||
|
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.json 檔案
|
||||||
|
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
|
||||||
|
```
|
||||||
|
|
||||||
|
### 發送 Pull Request
|
||||||
|
|
||||||
|
- 請保持 PR 精簡並專注於一個目標
|
||||||
|
- 請遵循建立分支的格式:
|
||||||
|
- feature/[feature name]:該分支應包含特定功能的更改
|
||||||
|
- 範例:feature/dark-mode
|
||||||
|
- bugfix/[bug name]:該分支應僅包含特定 bug 的修復
|
||||||
|
- 範例:bugfix/bug-1
|
@ -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
|
|
||||||
```
|
|
@ -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
|
|
||||||
```
|
|
@ -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
|
|
||||||
```
|
|
7
docs/publishing/publishin_nl.md
Normal file
7
docs/publishing/publishin_nl.md
Normal file
@ -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
|
7
docs/publishing/publishing_bn.md
Normal file
7
docs/publishing/publishing_bn.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
[English](../../publishing.md)
|
||||||
|
|
||||||
|
### ব্রুনোকে নতুন প্যাকেজ ম্যানেজারে প্রকাশ করা
|
||||||
|
|
||||||
|
যদিও আমাদের কোড ওপেন সোর্স এবং সবার ব্যবহারের জন্য উপলব্ধ, তবে আমরা নতুন প্যাকেজ ম্যানেজারে প্রকাশনা বিবেচনা করার আগে আমাদের সাথে যোগাযোগ করার জন্য অনুরোধ করি। ব্রুনোর স্রষ্টা হিসাবে, আমি এই প্রকল্পের জন্য `Bruno` ট্রেডমার্ক ধারণ করি এবং এর বিতরণ পরিচালনা করতে চাই। যদি আপনি একটি নতুন প্যাকেজ ম্যানেজারে ব্রুনো দেখতে চান, দয়া করে একটি GitHub ইস্যু তুলুন।
|
||||||
|
|
||||||
|
যদিও আমাদের বেশিরভাগ বৈশিষ্ট্য বিনামূল্যে এবং ওপেন সোর্স (যা REST এবং GraphQL API গুলিকে কভার করে), আমরা ওপেন-সোর্স নীতি এবং স্থায়িত্বের মধ্যে একটি সুসঙ্গত ভারসাম্য বজায় রাখার জন্য চেষ্টা করি - https://github.com/usebruno/bruno/discussions/269
|
7
docs/publishing/publishing_cn.md
Normal file
7
docs/publishing/publishing_cn.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
[English](../../publishing.md)
|
||||||
|
|
||||||
|
### 将 Bruno 发布到新的包管理器
|
||||||
|
|
||||||
|
虽然我们的代码是开源的,每个人都可以使用,但我们恳请您在考虑在新的包管理器上发布之前与我们联系。作为 Bruno 的创建者,我拥有这个项目的 Bruno 商标并希望管理其发行。如果您希望看到它使用新的包管理器,请提交一个 GitHub issue。
|
||||||
|
|
||||||
|
虽然我们的大部分功能都是免费与开源的 (涵盖 REST 和 GraphQL APIs) ,但我们努力在开源原则和可持续性之间取得和谐的平衡 - https://github.com/usebruno/bruno/discussions/269
|
10
docs/publishing/publishing_de.md
Normal file
10
docs/publishing/publishing_de.md
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
[English](../../publishing.md)
|
||||||
|
|
||||||
|
### Veröffentlichung von Bruno über neue Paket-Manager
|
||||||
|
|
||||||
|
Obwohl Bruno Open Source und für alle frei zugänglich ist, bitten wir dich Kontakt zu uns aufzunehmen, bevor du Bruno über weitere Paket-Manager veröffentlichst.
|
||||||
|
Als Schöpfer von Bruno liegen alle Marktrechte von `Bruno` bei mir und ich möchte die volle Kontrolle über alle Verbreitungswege behalten.
|
||||||
|
Falls Bruno über einen weiteren Paketmanager veröffentlicht werden soll, eröffne bitte ein GitHub-Issue.
|
||||||
|
|
||||||
|
Während ein Großteil der Features kostenlos und Open Source ist (beinhaltet REST und GraphQL APIs),
|
||||||
|
bemühen wir uns um ein harmonisches Gleichgewicht zwischen Open-Source-Prinzipien und Nachhaltigkeit - https://github.com/usebruno/bruno/discussions/269
|
7
docs/publishing/publishing_fr.md
Normal file
7
docs/publishing/publishing_fr.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
[English](../../publishing.md)
|
||||||
|
|
||||||
|
### Publier Bruno dans un nouveau gestionnaire de paquets
|
||||||
|
|
||||||
|
Bien que notre code soit open source et disponible pour tout le monde, nous vous remercions de nous contacter avant de considérer sa publication sur un nouveau gestionnaire de paquets. En tant que créateur de Bruno, je détiens la marque `Bruno` pour ce projet et j'aimerais gérer moi-même sa distribution. Si vous voyez Bruno sur un nouveau gestionnaire de paquets, merci de créer une _issue_ GitHub.
|
||||||
|
|
||||||
|
Bien que la majorité de nos fonctionnalités soient gratuites et open source (ce qui couvre les APIs REST et GraphQL), nous nous efforçons de trouver un équilibre harmonieux entre les principes de l'open source et la pérennité - https://github.com/usebruno/bruno/discussions/269
|
8
docs/publishing/publishing_ja.md
Normal file
8
docs/publishing/publishing_ja.md
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[English](../../publishing.md)
|
||||||
|
|
||||||
|
### Bruno を新しいパッケージマネージャに公開する場合の注意
|
||||||
|
|
||||||
|
私たちのソースコードはオープンソースで誰でも使用できますが、新しいパッケージマネージャで公開を検討する前に、私たちにご連絡ください。私は Bruno の製作者として、このプロジェクト「Bruno」の商標を保有しており、その配布を管理したいと考えています。もし新しいパッケージマネージャで Bruno を使いたい場合は、GitHub の issue を立ててください。
|
||||||
|
|
||||||
|
私たちの機能の大部分が無料でオープンソース(REST や GraphQL の API も含む)ですが、
|
||||||
|
私たちはオープンソースの原則と長期的な維持の間でよいバランスをとれるように努力しています- https://github.com/usebruno/bruno/discussions/269
|
8
docs/publishing/publishing_pl.md
Normal file
8
docs/publishing/publishing_pl.md
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[English](../../publishing.md)
|
||||||
|
|
||||||
|
### Publikowanie Bruno w nowym menedżerze pakietów
|
||||||
|
|
||||||
|
Chociaż nasz kod jest otwartoźródłowy i dostępny dla każdego do użytku, uprzejmie prosimy o kontakt z nami przed rozważeniem publikacji w nowych menedżerach pakietów. Jako twórca Bruno, posiadam znak towarowy `Bruno` dla tego projektu i chciałbym zarządzać jego dystrybucją. Jeśli chcesz zobaczyć Bruno w nowym menedżerze pakietów, proszę zgłoś problem na GitHubie.
|
||||||
|
|
||||||
|
Chociaż większość naszych funkcji jest darmowa i otwartoźródłowa (co obejmuje REST i GraphQL Apis),
|
||||||
|
staramy się osiągnąć harmonijny balans między zasadami open-source a zrównoważonym rozwojem - https://github.com/usebruno/bruno/discussions/269
|
7
docs/publishing/publishing_pt_br.md
Normal file
7
docs/publishing/publishing_pt_br.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
[English](../../publishing.md)
|
||||||
|
|
||||||
|
### Publicando Bruno em um novo gerenciador de pacotes
|
||||||
|
|
||||||
|
Embora nosso código seja de código aberto e esteja disponível para todos usarem, pedimos gentilmente que entre em contato conosco antes de considerar a publicação em novos gerenciadores de pacotes. Como o criador da ferramenta, mantenho a marca registrada `Bruno` para este projeto e gostaria de gerenciar sua distribuição. Se deseja ver o Bruno em um novo gerenciador de pacotes, por favor, solicite através de uma issue no GitHub.
|
||||||
|
|
||||||
|
Embora a maioria de nossas funcionalidades seja gratuita e de código aberto (o que abrange API's REST e GraphQL), buscamos alcançar um equilíbrio harmonioso entre os princípios de código aberto e sustentabilidade. - https://github.com/usebruno/bruno/discussions/269
|
8
docs/publishing/publishing_ro.md
Normal file
8
docs/publishing/publishing_ro.md
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[English](../../publishing.md)
|
||||||
|
|
||||||
|
### Publicarea lui Bruno la un gestionar de pachete nou
|
||||||
|
|
||||||
|
Deși codul nostru este cu sursă deschisă și disponibil pentru utilizare pentru toată lumea, vă rugăm să ne contactați înainte de a considera publicarea pe gestionari de pachete noi. În calitate de creator al lui Bruno, dețin marca comercială `Bruno` pentru acest proiect și aș dori să gestionez distribuția acestuia. Dacă doriți să-l vedeți pe Bruno pe un gestionar de pachete nou, vă rugăm să creați un issue pe GitHub.
|
||||||
|
|
||||||
|
În timp ce majoritatea funcțiilor noastre sunt gratuite și cu sursă deschisă (ceea ce acoperă API-uri REST și GraphQL),
|
||||||
|
ne străduim să găsim un echilibru armonios între principiile de sursă deschisă și sustenabilitate - https://github.com/usebruno/bruno/discussions/269
|
8
docs/publishing/publishing_tr.md
Normal file
8
docs/publishing/publishing_tr.md
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[English](../../publishing.md)
|
||||||
|
|
||||||
|
### Bruno'yu yeni bir paket yöneticisine yayınlama
|
||||||
|
|
||||||
|
Kodumuz açık kaynak kodlu ve herkesin kullanımına açık olsa da, yeni paket yöneticilerinde yayınlamayı düşünmeden önce bize ulaşmanızı rica ediyoruz. Bruno'nun yaratıcısı olarak, bu proje için `Bruno` ticari markasına sahibim ve dağıtımını yönetmek istiyorum. Bruno'yu yeni bir paket yöneticisinde görmek istiyorsanız, lütfen bir GitHub sorunu oluşturun.
|
||||||
|
|
||||||
|
Özelliklerimizin çoğu ücretsiz ve açık kaynak olsa da (REST ve GraphQL Apis'i kapsar),
|
||||||
|
açık kaynak ilkeleri ile sürdürülebilirlik arasında uyumlu bir denge kurmaya çalışıyoruz - https://github.com/usebruno/bruno/discussions/269
|
7
docs/publishing/publishing_zhtw.md
Normal file
7
docs/publishing/publishing_zhtw.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
[English](../../publishing.md)
|
||||||
|
|
||||||
|
### 將 Bruno 發佈到新的套件管理器
|
||||||
|
|
||||||
|
雖然我們的程式碼是開源的並且可供所有人使用,但我們懇請您在考慮在新的套件管理器上發布之前與我們聯繫。作為 Bruno 的創建者,我擁有這個專案的 Bruno 商標並希望管理其發行。如果您希望看到 Bruno 使用新的套件管理器,請提出一個 GitHub issue。
|
||||||
|
|
||||||
|
雖然我們的大部分功能都是免費和開源(涵蓋 REST 和 GraphQL APIs),但我們努力在開源的原則和永續性之間,取得和諧的平衡 - https://github.com/usebruno/bruno/discussions/269
|
157
docs/readme/readme_ar.md
Normal file
157
docs/readme/readme_ar.md
Normal file
@ -0,0 +1,157 @@
|
|||||||
|
<br />
|
||||||
|
<img src="../../assets/images/logo-transparent.png" width="80"/>
|
||||||
|
|
||||||
|
### برونو - بيئة تطوير مفتوحة المصدر لاستكشاف واختبار واجهات برمجة التطبيقات (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/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)
|
||||||
|
| [Українська](./readme_ua.md)
|
||||||
|
| [Русский](./readme_ru.md)
|
||||||
|
| [Türkçe](./readme_tr.md)
|
||||||
|
| [Deutsch](./readme_de.md)
|
||||||
|
| [Français](./readme_fr.md)
|
||||||
|
| [Português (BR)](./readme_pt_br.md)
|
||||||
|
| [한국어](./readme_kr.md)
|
||||||
|
| [বাংলা](./readme_bn.md)
|
||||||
|
| [Español](./readme_es.md)
|
||||||
|
| [Italiano](./readme_it.md)
|
||||||
|
| [Română](./readme_ro.md)
|
||||||
|
| [Polski](./readme_pl.md)
|
||||||
|
| [简体中文](./readme_cn.md)
|
||||||
|
| [正體中文](./readme_zhtw.md)
|
||||||
|
| **العربية**
|
||||||
|
| [日本語](./readme_ja.md)
|
||||||
|
| [ქართული](./readme_ka.md)
|
||||||
|
|
||||||
|
برونو هو عميل API جديد ومبتكر، يهدف إلى ثورة الحالة الحالية التي يمثلها برنامج Postman وأدوات مماثلة هناك.
|
||||||
|
|
||||||
|
يقوم برونو بتخزين مجموعاتك مباشرة في مجلد على نظام الملفات الخاص بك. نحن نستخدم لغة ترميز النص العادية، Bru، لحفظ معلومات حول طلبات واجهة برمجة التطبيقات (API).
|
||||||
|
|
||||||
|
يمكنك استخدام Git أو أي نظام تحكم في الإصدار الذي تفضله للتعاون على مجموعات API الخاصة بك.
|
||||||
|
|
||||||
|
برونو هو خاص بالاستخدام دون اتصال بالإنترنت. ليس هناك خطط لإضافة مزامنة السحابة إلى برونو أبدًا. نحن نقدر خصوصية بياناتك ونعتقد أنه يجب أن تظل على جهازك. اقرأ رؤيتنا على المدى الطويل [هنا](https://github.com/usebruno/bruno/discussions/269)
|
||||||
|
|
||||||
|
📢 شاهد حديثنا الأخير في مؤتمر India FOSS 3.0 [هنا](https://www.youtube.com/watch?v=7bSMFpbcPiY)
|
||||||
|
|
||||||
|
![bruno](/assets/images/landing-2.png) <br /><br />
|
||||||
|
|
||||||
|
### الطبعة الذهبية ✨
|
||||||
|
|
||||||
|
غالبية ميزاتنا مجانية ومفتوحة المصدر.
|
||||||
|
نحن نسعى لتحقيق توازن متناغم بين [مبادئ الشفافية والاستدامة](https://github.com/usebruno/bruno/discussions/269)
|
||||||
|
|
||||||
|
طلبات الشراء لـ [الطبعة الذهبية](https://www.usebruno.com/pricing) ستطلق قريبًا بسعر ~~$19~~ **$9** ! <br/>
|
||||||
|
[اشترك هنا](https://usebruno.ck.page/4c65576bd4) لتصلك إشعارات عند الإطلاق.
|
||||||
|
|
||||||
|
### التثبيت
|
||||||
|
|
||||||
|
برونو متاح كتنزيل ثنائي [على موقعنا على الويب](https://www.usebruno.com/downloads) لأنظمة التشغيل Mac و Windows و Linux.
|
||||||
|
|
||||||
|
يمكنك أيضًا تثبيت برونو عبر مديري الحزم مثل Homebrew و Chocolatey و Scoop و Snap و Flatpak و Apt.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# على نظام Mac عبر Homebrew
|
||||||
|
brew install bruno
|
||||||
|
|
||||||
|
# على نظام Windows عبر Chocolatey
|
||||||
|
choco install bruno
|
||||||
|
|
||||||
|
# على نظام Windows عبر Scoop
|
||||||
|
scoop bucket add extras
|
||||||
|
scoop install bruno
|
||||||
|
|
||||||
|
# على نظام Linux عبر Snap
|
||||||
|
snap install bruno
|
||||||
|
|
||||||
|
# على نظام Linux عبر Flatpak
|
||||||
|
flatpak install com.usebruno.Bruno
|
||||||
|
|
||||||
|
# على نظام Linux عبر 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 [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
|
||||||
|
```
|
||||||
|
|
||||||
|
### التشغيل عبر منصات متعددة 🖥️
|
||||||
|
|
||||||
|
![bruno](/assets/images/run-anywhere.png) <br /><br />
|
||||||
|
|
||||||
|
### التعاون عبر Git 👩💻🧑💻
|
||||||
|
|
||||||
|
أو أي نظام تحكم في الإصدار الذي تفضله
|
||||||
|
|
||||||
|
![bruno](/assets/images/version-control.png) <br /><br />
|
||||||
|
|
||||||
|
### الروابط المهمة 📌
|
||||||
|
|
||||||
|
- [رؤيتنا على المدى الطويل](https://github.com/usebruno/bruno/discussions/269)
|
||||||
|
- [خارطة الطريق](https://github.com/usebruno/bruno/discussions/384)
|
||||||
|
- [التوثيق](https://docs.usebruno.com)
|
||||||
|
- [Stack Overflow](https://stackoverflow.com/questions/tagged/bruno)
|
||||||
|
- [الموقع الإلكتروني](https://www.usebruno.com)
|
||||||
|
- [التسعير](https://www.usebruno.com/pricing)
|
||||||
|
- [التنزيل](https://www.usebruno.com/downloads)
|
||||||
|
- [Github Sponsors](https://github.com/sponsors/helloanoop).
|
||||||
|
|
||||||
|
### عروض 🎥
|
||||||
|
|
||||||
|
- [الشهادات](https://github.com/usebruno/bruno/discussions/343)
|
||||||
|
- [مركز المعرفة](https://github.com/usebruno/bruno/discussions/386)
|
||||||
|
- [Scriptmania](https://github.com/usebruno/bruno/discussions/385)
|
||||||
|
|
||||||
|
### الدعم ❤️
|
||||||
|
|
||||||
|
إذا كنت تحب برونو وترغب في دعم عملنا مفتوح المصدر، فكر في رعايتنا عبر [Github Sponsors](https://github.com/sponsors/helloanoop).
|
||||||
|
|
||||||
|
### شارك الشهادات 📣
|
||||||
|
|
||||||
|
إذا كان برونو قد ساعدك في العمل وفرقك، فلا تنسى مشاركة [شهاداتك في مناقشتنا على GitHub](https://github.com/usebruno/bruno/discussions/343)
|
||||||
|
|
||||||
|
### نشر إلى مديري الحزم الجديدة
|
||||||
|
|
||||||
|
يرجى الرجوع [هنا](../../publishing.md) لمزيد من المعلومات.
|
||||||
|
|
||||||
|
### تواصل معنا 🌐
|
||||||
|
|
||||||
|
[𝕏 (تويتر)](https://twitter.com/use_bruno) <br />
|
||||||
|
[الموقع الإلكتروني](https://www.usebruno.com) <br />
|
||||||
|
[ديسكورد](https://discord.com/invite/KgcZUncpjq) <br />
|
||||||
|
[لينكدإن](https://www.linkedin.com/company/usebruno)
|
||||||
|
|
||||||
|
### علامة تجارية
|
||||||
|
|
||||||
|
**الاسم**
|
||||||
|
|
||||||
|
`برونو` هو علامة تجارية تمتلكها [أنوب إم دي](https://www.helloanoop.com/)
|
||||||
|
|
||||||
|
**الشعار**
|
||||||
|
|
||||||
|
الشعار من [OpenMoji](https://openmoji.org/library/emoji-1F436/). الترخيص: CC [BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)
|
||||||
|
|
||||||
|
### المساهمة 👩💻🧑💻
|
||||||
|
|
||||||
|
يسعدني أنك تتطلع لتحسين برونو. يرجى الاطلاع على [دليل المساهمة](../../contributing.md)
|
||||||
|
|
||||||
|
حتى إذا لم تكن قادرًا على التساهم بشكل مباشر من خلال الشيفرة، فلا تتردد في الإبلاغ عن الأخطاء وطلب الميزات التي يجب تنفيذها لحل حالتك.
|
||||||
|
|
||||||
|
### الكتّاب
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<a href="https://github.com/usebruno/bruno/graphs/contributors">
|
||||||
|
<img src="https://contrib.rocks/image?repo=usebruno/bruno" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
### الرخصة 📄
|
||||||
|
|
||||||
|
[MIT](../../license.md)
|
140
docs/readme/readme_bn.md
Normal file
140
docs/readme/readme_bn.md
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
<br />
|
||||||
|
<img src="../../assets/images/logo-transparent.png" width="80"/>
|
||||||
|
|
||||||
|
### ব্রুনো - API অন্বেষণ এবং পরীক্ষা করার জন্য ওপেনসোর্স IDE।
|
||||||
|
|
||||||
|
[![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)
|
||||||
|
| [Українська](./readme_ua.md)
|
||||||
|
| [Русский](./readme_ru.md)
|
||||||
|
| [Türkçe](./readme_tr.md)
|
||||||
|
| [Deutsch](./readme_de.md)
|
||||||
|
| [Français](./readme_fr.md)
|
||||||
|
| [Português (BR)](./readme_pt_br.md)
|
||||||
|
| [한국어](./readme_kr.md)
|
||||||
|
| **বাংলা**
|
||||||
|
| [Español](./readme_es.md)
|
||||||
|
| [Italiano](./readme_it.md)
|
||||||
|
| [Română](./readme_ro.md)
|
||||||
|
| [Polski](./readme_pl.md)
|
||||||
|
| [简体中文](./readme_cn.md)
|
||||||
|
| [正體中文](./readme_zhtw.md)
|
||||||
|
| [العربية](./readme_ar.md)
|
||||||
|
| [日本語](./readme_ja.md)
|
||||||
|
| [ქართული](./readme_ka.md)
|
||||||
|
|
||||||
|
ব্রুনো হল একটি নতুন এবং উদ্ভাবনী API ক্লায়েন্ট, যার লক্ষ্য পোস্টম্যান এবং অনুরূপ সরঞ্জাম দ্বারা প্রতিনিধিত্ব করা স্থিতাবস্থায় বিপ্লব ঘটানো।
|
||||||
|
|
||||||
|
ব্রুনো আপনার সংগ্রহগুলি সরাসরি আপনার ফাইল সিস্টেমের একটি ফোল্ডারে সঞ্চয় করে। আমরা API অনুরোধ সম্পর্কে তথ্য সংরক্ষণ করতে একটি প্লেইন টেক্সট মার্কআপ ভাষা, ব্রু ব্যবহার করি।
|
||||||
|
|
||||||
|
আপনি আপনার API সংগ্রহে সহযোগিতা করতে গিট বা আপনার পছন্দের যেকোনো সংস্করণ নিয়ন্ত্রণ ব্যবহার করতে পারেন।
|
||||||
|
|
||||||
|
ব্রুনো শুধুমাত্র অফলাইন। ব্রুনোতে ক্লাউড-সিঙ্ক যোগ করার কোন পরিকল্পনা নেই, কখনও। আমরা আপনার ডেটা গোপনীয়তার মূল্য দিই এবং বিশ্বাস করি এটি আপনার ডিভাইসে থাকা উচিত। আমাদের দীর্ঘমেয়াদী দৃষ্টি পড়ুন। [এখানে ](https://github.com/usebruno/bruno/discussions/269)
|
||||||
|
|
||||||
|
📢 ইন্ডিয়া FOSS 3.0 সম্মেলনে আমাদের সাম্প্রতিক আলোচনা দেখুন [এখানে](https://www.youtube.com/watch?v=7bSMFpbcPiY)
|
||||||
|
|
||||||
|
![bruno](/assets/images/landing-2.png) <br /><br />
|
||||||
|
|
||||||
|
### স্থাপন
|
||||||
|
|
||||||
|
ব্রুনো বাইনারি ডাউনলোড হিসাবে উপলব্ধ [আমাদের ওয়েবসাইটে](https://www.usebruno.com/downloads) ম্যাক, উইন্ডোজ এবং লিনাক্সের জন্য।
|
||||||
|
|
||||||
|
আপনি Homebrew, Chocolatey, Snap এবং Apt এর মত প্যাকেজ ম্যানেজারদের মাধ্যমে ব্রুনো ইনস্টল করতে পারেন।
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Homebrew এর মাধ্যমে Mac-এ
|
||||||
|
brew install bruno
|
||||||
|
|
||||||
|
# চকোলেটির মাধ্যমে উইন্ডোজে
|
||||||
|
choco install bruno
|
||||||
|
|
||||||
|
# স্ন্যাপ এর মাধ্যমে লিনাক্সে
|
||||||
|
snap install bruno
|
||||||
|
|
||||||
|
# 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 [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
|
||||||
|
```
|
||||||
|
|
||||||
|
### একাধিক প্ল্যাটফর্মে চালান 🖥️
|
||||||
|
|
||||||
|
![bruno](/assets/images/run-anywhere.png) <br /><br />
|
||||||
|
|
||||||
|
### Git এর মাধ্যমে সহযোগিতা করুন 👩💻🧑💻
|
||||||
|
|
||||||
|
অথবা আপনার পছন্দের যেকোনো সংস্করণ নিয়ন্ত্রণ ব্যবস্থা
|
||||||
|
|
||||||
|
![bruno](/assets/images/version-control.png) <br /><br />
|
||||||
|
|
||||||
|
### গুরুত্বপূর্ণ লিংক 📌
|
||||||
|
|
||||||
|
- [আমাদের দীর্ঘমেয়াদী দৃষ্টি](https://github.com/usebruno/bruno/discussions/269)
|
||||||
|
- [রোডম্যাপ](https://github.com/usebruno/bruno/discussions/384)
|
||||||
|
- [ডকুমেন্টেশন](https://docs.usebruno.com)
|
||||||
|
- [ওয়েবসাইট](https://www.usebruno.com)
|
||||||
|
- [মূল্য](https://www.usebruno.com/pricing)
|
||||||
|
- [ডাউনলোড করুন](https://www.usebruno.com/downloads)
|
||||||
|
|
||||||
|
### শোকেস 🎥
|
||||||
|
|
||||||
|
- [প্রশংসাপত্র](https://github.com/usebruno/bruno/discussions/343)
|
||||||
|
- [নলেজ হাব](https://github.com/usebruno/bruno/discussions/386)
|
||||||
|
- [স্ক্রিপ্টম্যানিয়া](https://github.com/usebruno/bruno/discussions/385)
|
||||||
|
|
||||||
|
### সমর্থন ❤️
|
||||||
|
|
||||||
|
উফ ! আপনি যদি প্রকল্পটি পছন্দ করেন তবে ⭐ বোতামটি টিপুন !!
|
||||||
|
|
||||||
|
### প্রশংসাপত্র শেয়ার করুন 📣
|
||||||
|
|
||||||
|
যদি ব্রুনো আপনাকে কর্মক্ষেত্রে এবং আপনার দলগুলিতে সাহায্য করে থাকে, অনুগ্রহ করে আপনার [আমাদের গিটহাব আলোচনায় প্রশংসাপত্রগুলি](https://github.com/usebruno/bruno/discussions/343) শেয়ার করতে ভুলবেন না
|
||||||
|
|
||||||
|
### নতুন প্যাকেজ পরিচালকদের কাছে প্রকাশ করা হচ্ছে
|
||||||
|
|
||||||
|
আরও তথ্যের জন্য অনুগ্রহ করে [এখানে](../publishing/publishing_bn.md) দেখুন।
|
||||||
|
|
||||||
|
### অবদান 👩💻🧑💻
|
||||||
|
|
||||||
|
আমি খুশি যে আপনি ব্রুনোর উন্নতি করতে চাইছেন। অনুগ্রহ করে [অবদানকারী নির্দেশিকা](../contributing/contributing_bn.md) দেখুন
|
||||||
|
|
||||||
|
আপনি কোডের মাধ্যমে অবদান রাখতে না পারলেও, অনুগ্রহ করে বাগ এবং বৈশিষ্ট্যের অনুরোধ ফাইল করতে দ্বিধা করবেন না যা আপনার ব্যবহারের ক্ষেত্রে সমাধান করার জন্য প্রয়োগ করা প্রয়োজন।
|
||||||
|
|
||||||
|
### লেখক
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<a href="https://github.com/usebruno/bruno/graphs/contributors">
|
||||||
|
<img src="https://contrib.rocks/image?repo=usebruno/bruno" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
### সাথে থাকুন 🌐
|
||||||
|
|
||||||
|
[𝕏 (টুইটার)](https://twitter.com/use_bruno) <br />
|
||||||
|
[ওয়েবসাইট](https://www.usebruno.com) <br />
|
||||||
|
[ডিসকর্ড](https://discord.com/invite/KgcZUncpjq) <br />
|
||||||
|
[লিঙ্কডইন](https://www.linkedin.com/company/usebruno)
|
||||||
|
|
||||||
|
### ট্রেডমার্ক
|
||||||
|
|
||||||
|
**নাম**
|
||||||
|
|
||||||
|
`Bruno` হল একটি ট্রেডমার্ক [Anoop M D](https://www.helloanoop.com/)
|
||||||
|
|
||||||
|
**লোগো**
|
||||||
|
|
||||||
|
লোগোটি [OpenMoji](https://openmoji.org/library/emoji-1F436/) থেকে নেওয়া হয়েছে। লাইসেন্স: CC [BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)
|
||||||
|
|
||||||
|
### লাইসেন্স 📄
|
||||||
|
|
||||||
|
[MIT](../../license.md)
|
146
docs/readme/readme_cn.md
Normal file
146
docs/readme/readme_cn.md
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
<br />
|
||||||
|
<img src="../../assets/images/logo-transparent.png" width="80"/>
|
||||||
|
|
||||||
|
### Bruno - 开源 IDE,用于探索和测试 API。
|
||||||
|
|
||||||
|
[![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)
|
||||||
|
[![网站](https://img.shields.io/badge/Website-Visit-blue)](https://www.usebruno.com)
|
||||||
|
[![下载](https://img.shields.io/badge/Download-Latest-brightgreen)](https://www.usebruno.com/downloads)
|
||||||
|
|
||||||
|
[English](../../readme.md)
|
||||||
|
| [Українська](./readme_ua.md)
|
||||||
|
| [Русский](./readme_ru.md)
|
||||||
|
| [Türkçe](./readme_tr.md)
|
||||||
|
| [Deutsch](./readme_de.md)
|
||||||
|
| [Français](./readme_fr.md)
|
||||||
|
| [Português (BR)](./readme_pt_br.md)
|
||||||
|
| [한국어](./readme_kr.md)
|
||||||
|
| [বাংলা](./readme_bn.md)
|
||||||
|
| [Español](./readme_es.md)
|
||||||
|
| [Italiano](./readme_it.md)
|
||||||
|
| [Română](./readme_ro.md)
|
||||||
|
| [Polski](./readme_pl.md)
|
||||||
|
| **简体中文**
|
||||||
|
| [正體中文](./readme_zhtw.md)
|
||||||
|
| [العربية](./readme_ar.md)
|
||||||
|
| [日本語](./readme_ja.md)
|
||||||
|
| [ქართული](./readme_ka.md)
|
||||||
|
|
||||||
|
Bruno 是一款全新且创新的 API 客户端,旨在颠覆 Postman 和其他类似工具。
|
||||||
|
|
||||||
|
Bruno 直接在您的电脑文件夹中存储您的 API 信息。我们使用纯文本标记语言 Bru 来保存有关 API 的信息。
|
||||||
|
|
||||||
|
您可以使用 Git 或您选择的任何版本控制系统来对您的 API 信息进行版本控制和协作。
|
||||||
|
|
||||||
|
Bruno 仅限离线使用。我们计划永不向 Bruno 添加云同步功能。我们重视您的数据隐私,并认为它应该留在您的设备上。阅读我们的长期愿景 [点击查看](https://github.com/usebruno/bruno/discussions/269)
|
||||||
|
|
||||||
|
📢 观看我们在印度 FOSS 3.0 会议上的最新演讲 [点击查看](https://www.youtube.com/watch?v=7bSMFpbcPiY)
|
||||||
|
|
||||||
|
![bruno](../../assets/images/landing-2.png) <br /><br />
|
||||||
|
|
||||||
|
### 安装
|
||||||
|
|
||||||
|
Bruno 可以在我们的 [网站上下载](https://www.usebruno.com/downloads) Mac、Windows 和 Linux 的可执行文件。
|
||||||
|
|
||||||
|
您也可以通过包管理器如 Homebrew、Chocolatey、Scoop、Snap 和 Apt 安装 Bruno。
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# 在 Mac 电脑上用 Homebrew 安装
|
||||||
|
brew install bruno
|
||||||
|
|
||||||
|
# 在 Windows 上用 Chocolatey 安装
|
||||||
|
choco install bruno
|
||||||
|
|
||||||
|
# 在 Windows 上用 Scoop 安装
|
||||||
|
scoop bucket add extras
|
||||||
|
scoop install bruno
|
||||||
|
|
||||||
|
# 在 Linux 上用 Snap 安装
|
||||||
|
snap install bruno
|
||||||
|
|
||||||
|
# 在 Linux 上用 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 [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
|
||||||
|
```
|
||||||
|
|
||||||
|
### 在 Mac 上通过 Homebrew 安装 🖥️
|
||||||
|
|
||||||
|
![bruno](../../assets/images/run-anywhere.png) <br /><br />
|
||||||
|
|
||||||
|
### Collaborate 安装 👩💻🧑💻
|
||||||
|
|
||||||
|
或者任何您选择的版本控制系统
|
||||||
|
|
||||||
|
![bruno](../../assets/images/version-control.png) <br /><br />
|
||||||
|
|
||||||
|
### 重要链接 📌
|
||||||
|
|
||||||
|
- [我们的愿景](https://github.com/usebruno/bruno/discussions/269)
|
||||||
|
- [路线图](https://github.com/usebruno/bruno/discussions/384)
|
||||||
|
- [文档](https://docs.usebruno.com)
|
||||||
|
- [Stack Overflow](https://stackoverflow.com/questions/tagged/bruno)
|
||||||
|
- [网站](https://www.usebruno.com)
|
||||||
|
- [价格](https://www.usebruno.com/pricing)
|
||||||
|
- [下载](https://www.usebruno.com/downloads)
|
||||||
|
- [GitHub 赞助](https://github.com/sponsors/helloanoop).
|
||||||
|
|
||||||
|
### 展示 🎥
|
||||||
|
|
||||||
|
- [Testimonials](https://github.com/usebruno/bruno/discussions/343)
|
||||||
|
- [Knowledge Hub](https://github.com/usebruno/bruno/discussions/386)
|
||||||
|
- [Scriptmania](https://github.com/usebruno/bruno/discussions/385)
|
||||||
|
|
||||||
|
### 支持 ❤️
|
||||||
|
|
||||||
|
如果您喜欢 Bruno 并想支持我们的开源工作,请考虑通过 [GitHub Sponsors](https://github.com/sponsors/helloanoop) 来赞助我们。
|
||||||
|
|
||||||
|
### 分享评价 📣
|
||||||
|
|
||||||
|
如果 Bruno 在您的工作和团队中帮助了您,请不要忘记在我们的 GitHub 讨论上分享您的 [评价](https://github.com/usebruno/bruno/discussions/343)
|
||||||
|
|
||||||
|
### 发布到新的包管理器
|
||||||
|
|
||||||
|
有关更多信息,请参见 [此处](../publishing/publishing_cn.md) 。
|
||||||
|
|
||||||
|
### 贡献 👩💻🧑💻
|
||||||
|
|
||||||
|
我很高兴您希望改进 bruno。请查看 [贡献指南](../contributing/contributing_cn.md)。
|
||||||
|
|
||||||
|
即使您无法通过代码做出贡献,我们仍然欢迎您提出 BUG 和新的功能需求。
|
||||||
|
|
||||||
|
### 作者
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<a href="https://github.com/usebruno/bruno/graphs/contributors">
|
||||||
|
<img src="https://contrib.rocks/image?repo=usebruno/bruno" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
### 联系方式 🌐
|
||||||
|
|
||||||
|
[𝕏 (Twitter)](https://twitter.com/use_bruno) <br />
|
||||||
|
[Website](https://www.usebruno.com) <br />
|
||||||
|
[Discord](https://discord.com/invite/KgcZUncpjq) <br />
|
||||||
|
[LinkedIn](https://www.linkedin.com/company/usebruno)
|
||||||
|
|
||||||
|
### 商标
|
||||||
|
|
||||||
|
**名称**
|
||||||
|
|
||||||
|
`Bruno` 是由 [Anoop M D](https://www.helloanoop.com/) 持有的商标。
|
||||||
|
|
||||||
|
**Logo**
|
||||||
|
|
||||||
|
Logo 源自 [OpenMoji](https://openmoji.org/library/emoji-1F436/). License: CC [BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)
|
||||||
|
|
||||||
|
### 许可证 📄
|
||||||
|
|
||||||
|
[MIT](../../license.md)
|
169
docs/readme/readme_de.md
Normal file
169
docs/readme/readme_de.md
Normal file
@ -0,0 +1,169 @@
|
|||||||
|
<br />
|
||||||
|
<img src="/assets/images/logo-transparent.png" width="80"/>
|
||||||
|
|
||||||
|
### 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/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)
|
||||||
|
| [Українська](./readme_ua.md)
|
||||||
|
| [Русский](./readme_ru.md)
|
||||||
|
| [Türkçe](./readme_tr.md)
|
||||||
|
| **Deutsch**
|
||||||
|
| [Français](./readme_fr.md)
|
||||||
|
| [Português (BR)](./readme_pt_br.md)
|
||||||
|
| [한국어](./readme_kr.md)
|
||||||
|
| [বাংলা](./readme_bn.md)
|
||||||
|
| [Español](./readme_es.md)
|
||||||
|
| [Italiano](./readme_it.md)
|
||||||
|
| [Română](./readme_ro.md)
|
||||||
|
| [Polski](./readme_pl.md)
|
||||||
|
| [简体中文](./readme_cn.md)
|
||||||
|
| [正體中文](./readme_zhtw.md)
|
||||||
|
| [العربية](./readme_ar.md)
|
||||||
|
| [日本語](./readme_ja.md)
|
||||||
|
| [ქართული](./readme_ka.md)
|
||||||
|
|
||||||
|
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 gemeinsam mit anderen an deinen API-Sammlungen zu arbeiten.
|
||||||
|
|
||||||
|
Bruno ist ein reines Offline-Tool. Es gibt keine Pläne, Bruno um eine Cloud-Synchronisation zu erweitern. 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).
|
||||||
|
|
||||||
|
[Download Bruno](https://www.usebruno.com/downloads)
|
||||||
|
|
||||||
|
📢 Sieh Dir unseren Vortrag auf der India FOSS 3.0 Conference [hier](https://www.youtube.com/watch?v=7bSMFpbcPiY) an.
|
||||||
|
|
||||||
|
![bruno](/assets/images/landing-2.png) <br /><br />
|
||||||
|
|
||||||
|
### Golden Edition ✨
|
||||||
|
|
||||||
|
Die meisten unserer Funktionen sind kostenlos und quelloffen.
|
||||||
|
Wir bemühen uns um ein Gleichgewicht zwischen [Open-Source-Prinzipien und Nachhaltigkeit](https://github.com/usebruno/bruno/discussions/269)
|
||||||
|
|
||||||
|
Du kannst die [Golden Edition](https://www.usebruno.com/pricing) bestellen **$19**! <br/>
|
||||||
|
|
||||||
|
### Installation
|
||||||
|
|
||||||
|
Bruno ist als Download [auf unserer Website](https://www.usebruno.com/downloads) für Mac, Windows und Linux verfügbar.
|
||||||
|
|
||||||
|
Du kannst Bruno auch über Paketmanager wie Homebrew, Chocolatey, Scoop, Snap, Flatpak und Apt installieren.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Auf Mac via Homebrew
|
||||||
|
brew install bruno
|
||||||
|
|
||||||
|
# Auf Windows via Chocolatey
|
||||||
|
choco install bruno
|
||||||
|
|
||||||
|
# Auf Windows via Scoop
|
||||||
|
scoop bucket add extras
|
||||||
|
scoop install bruno
|
||||||
|
|
||||||
|
# Auf Windows via winget
|
||||||
|
winget install Bruno.Bruno
|
||||||
|
|
||||||
|
# Auf Linux via Snap
|
||||||
|
snap install bruno
|
||||||
|
|
||||||
|
# Auf Linux via Flatpak
|
||||||
|
flatpak install com.usebruno.Bruno
|
||||||
|
|
||||||
|
# Auf 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 [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
|
||||||
|
```
|
||||||
|
|
||||||
|
### Einsatz auf verschiedensten Plattformen 🖥️
|
||||||
|
|
||||||
|
![bruno](/assets/images/run-anywhere.png) <br /><br />
|
||||||
|
|
||||||
|
### Zusammenarbeit mit Git 👩💻🧑💻
|
||||||
|
|
||||||
|
Oder einer Versionskontrolle deiner Wahl
|
||||||
|
|
||||||
|
![bruno](/assets/images/version-control.png) <br /><br />
|
||||||
|
|
||||||
|
### Sponsoren
|
||||||
|
|
||||||
|
#### Gold Sponsoren
|
||||||
|
|
||||||
|
<img src="/assets/images/sponsors/samagata.png" width="150"/>
|
||||||
|
|
||||||
|
#### Silber Sponsoren
|
||||||
|
|
||||||
|
<img src="/assets/images/sponsors/commit-company.png" width="70"/>
|
||||||
|
|
||||||
|
### 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 auf den ⭐ Button !!
|
||||||
|
|
||||||
|
### Teile Erfahrungsberichte 📣
|
||||||
|
|
||||||
|
Wenn Bruno dir und in deinem Team bei der Arbeit geholfen hat, vergiss bitte nicht, deine [Erfahrungsberichte in unserer GitHub-Diskussion](https://github.com/usebruno/bruno/discussions/343) zu teilen.
|
||||||
|
|
||||||
|
### Bereitstellung in neuen Paket-Managern
|
||||||
|
|
||||||
|
Mehr Informationen findest du [hier](../publishing/publishing_de.md).
|
||||||
|
|
||||||
|
### 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
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<a href="https://github.com/usebruno/bruno/graphs/contributors">
|
||||||
|
<img src="https://contrib.rocks/image?repo=usebruno/bruno" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
### In Verbindung bleiben 🌐
|
||||||
|
|
||||||
|
[Twitter](https://twitter.com/use_bruno) <br />
|
||||||
|
[Webseite](https://www.usebruno.com) <br />
|
||||||
|
[Discord](https://discord.com/invite/KgcZUncpjq) <br />
|
||||||
|
[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)
|
156
docs/readme/readme_es.md
Normal file
156
docs/readme/readme_es.md
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
<br />
|
||||||
|
<img src="../../assets/images/logo-transparent.png" width="80"/>
|
||||||
|
|
||||||
|
### Bruno - IDE de código abierto para explorar y probar APIs.
|
||||||
|
|
||||||
|
[![Versión en Github](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)
|
||||||
|
[![Actividad de Commits](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)
|
||||||
|
[![Sitio Web](https://img.shields.io/badge/Website-Visit-blue)](https://www.usebruno.com)
|
||||||
|
[![Descargas](https://img.shields.io/badge/Download-Latest-brightgreen)](https://www.usebruno.com/downloads)
|
||||||
|
|
||||||
|
[English](../../readme.md)
|
||||||
|
| [Українська](./readme_ua.md)
|
||||||
|
| [Русский](./readme_ru.md)
|
||||||
|
| [Türkçe](./readme_tr.md)
|
||||||
|
| [Deutsch](./readme_de.md)
|
||||||
|
| [Français](./readme_fr.md)
|
||||||
|
| [Português (BR)](./readme_pt_br.md)
|
||||||
|
| [한국어](./readme_kr.md)
|
||||||
|
| [বাংলা](./readme_bn.md)
|
||||||
|
| **Español**
|
||||||
|
| [Italiano](./readme_it.md)
|
||||||
|
| [Română](./readme_ro.md)
|
||||||
|
| [Polski](./readme_pl.md)
|
||||||
|
| [简体中文](./readme_cn.md)
|
||||||
|
| [正體中文](./readme_zhtw.md)
|
||||||
|
| [العربية](./readme_ar.md)
|
||||||
|
| [日本語](./readme_ja.md)
|
||||||
|
| [ქართული](./readme_ka.md)
|
||||||
|
|
||||||
|
Bruno es un cliente de APIs nuevo e innovador, creado con el objetivo de revolucionar el panorama actual representado por Postman y otras herramientas similares.
|
||||||
|
|
||||||
|
Bruno almacena tus colecciones directamente en una carpeta de tu sistema de archivos. Usamos un lenguaje de marcado de texto plano, llamado Bru, para guardar información sobre las peticiones a tus APIs.
|
||||||
|
|
||||||
|
Puedes usar git o cualquier otro sistema de control de versiones que prefieras para colaborar en tus colecciones.
|
||||||
|
|
||||||
|
Bruno funciona sin conexión a internet. No tenemos intenciones de añadir sincronización en la nube a Bruno, en ningún momento. Valoramos tu privacidad y creemos que tus datos deben permanecer en tu dispositivo. Puedes leer nuestra visión a largo plazo [aquí](https://github.com/usebruno/bruno/discussions/269).
|
||||||
|
|
||||||
|
[Descarga Bruno](https://www.usebruno.com/downloads).
|
||||||
|
|
||||||
|
📢 Mira nuestra charla en la conferencia India FOSS 3.0 [aquí](https://www.youtube.com/watch?v=7bSMFpbcPiY).
|
||||||
|
|
||||||
|
![bruno](/assets/images/landing-2.png) <br /><br />
|
||||||
|
|
||||||
|
### Golden Edition ✨
|
||||||
|
|
||||||
|
La mayoría de nuestras funcionalidades son gratis y de código abierto.
|
||||||
|
Queremos alcanzar un equilibrio en armonía entre los [principios open-source y la sostenibilidad](https://github.com/usebruno/bruno/discussions/269).
|
||||||
|
|
||||||
|
¡Puedes reservar la [Golden Edition](https://www.usebruno.com/pricing) por ~~$19~~ **$9**! <br/>
|
||||||
|
|
||||||
|
### Instalación
|
||||||
|
|
||||||
|
Bruno está disponible para su descarga [en nuestro sitio web](https://www.usebruno.com/downloads) para Mac, Windows y Linux.
|
||||||
|
|
||||||
|
También puedes instalar Bruno mediante package managers como Homebrew, Chocolatey, Scoop, Flatpak y Apt.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# En Mac con Homebrew
|
||||||
|
brew install bruno
|
||||||
|
|
||||||
|
# En Windows con Chocolatey
|
||||||
|
choco install bruno
|
||||||
|
|
||||||
|
# En Windows con Scoop
|
||||||
|
scoop bucket add extras
|
||||||
|
scoop install bruno
|
||||||
|
|
||||||
|
# En Linux con Snap
|
||||||
|
snap install bruno
|
||||||
|
|
||||||
|
# En Linux con Flatpak
|
||||||
|
flatpak install com.usebruno.Bruno
|
||||||
|
|
||||||
|
# En Linux con 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 [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
|
||||||
|
```
|
||||||
|
|
||||||
|
### Ejecútalo en múltiples plataformas 🖥️
|
||||||
|
|
||||||
|
![bruno](/assets/images/run-anywhere.png) <br /><br />
|
||||||
|
|
||||||
|
### Colabora vía Git 👩💻🧑💻
|
||||||
|
|
||||||
|
O cualquier otro sistema de control de versiones que prefieras
|
||||||
|
|
||||||
|
![bruno](/assets/images/version-control.png) <br /><br />
|
||||||
|
|
||||||
|
### Enlaces importantes 📌
|
||||||
|
|
||||||
|
- [Nuestra Visión a Largo Plazo](https://github.com/usebruno/bruno/discussions/269)
|
||||||
|
- [Hoja de Ruta](https://github.com/usebruno/bruno/discussions/384)
|
||||||
|
- [Documentación](https://docs.usebruno.com)
|
||||||
|
- [Sitio Web](https://www.usebruno.com)
|
||||||
|
- [Precios](https://www.usebruno.com/pricing)
|
||||||
|
- [Descargas](https://www.usebruno.com/downloads)
|
||||||
|
|
||||||
|
### Casos de uso 🎥
|
||||||
|
|
||||||
|
- [Testimonios](https://github.com/usebruno/bruno/discussions/343)
|
||||||
|
- [Centro de Conocimiento](https://github.com/usebruno/bruno/discussions/386)
|
||||||
|
- [Scripts de la Comunidad](https://github.com/usebruno/bruno/discussions/385)
|
||||||
|
|
||||||
|
### Apoya el proyecto ❤️
|
||||||
|
|
||||||
|
¡Guau! Si te gusta el proyecto, ¡dale al botón de ⭐!
|
||||||
|
|
||||||
|
### Comparte tus testimonios 📣
|
||||||
|
|
||||||
|
Si Bruno te ha ayudado en tu trabajo y con tus equipos, por favor, no olvides compartir tus testimonios en [nuestras discusiones de GitHub](https://github.com/usebruno/bruno/discussions/343)
|
||||||
|
|
||||||
|
### Publicar en nuevos gestores de paquetes
|
||||||
|
|
||||||
|
Por favor, consulta [aquí](../../publishing.md) para más información.
|
||||||
|
|
||||||
|
### Contribuye 👩💻🧑💻
|
||||||
|
|
||||||
|
Estamos encantados de que quieras ayudar a mejorar Bruno. Por favor, consulta la [guía de contribución](../contributing/contributing_es.md) para más información.
|
||||||
|
|
||||||
|
Incluso si no puedes contribuir con código, no dudes en reportar errores y solicitar nuevas funcionalidades que necesites para resolver tu caso de uso.
|
||||||
|
|
||||||
|
### Colaboradores
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<a href="https://github.com/usebruno/bruno/graphs/contributors">
|
||||||
|
<img src="https://contrib.rocks/image?repo=usebruno/bruno" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
### Mantente en contacto 🌐
|
||||||
|
|
||||||
|
[X](https://twitter.com/use_bruno) <br />
|
||||||
|
[Sitio Web](https://www.usebruno.com) <br />
|
||||||
|
[Discord](https://discord.com/invite/KgcZUncpjq) <br />
|
||||||
|
[LinkedIn](https://www.linkedin.com/company/usebruno)
|
||||||
|
|
||||||
|
### Marca
|
||||||
|
|
||||||
|
**Nombre**
|
||||||
|
|
||||||
|
`Bruno` es una marca propiedad de [Anoop M D](https://www.helloanoop.com/).
|
||||||
|
|
||||||
|
**Logo**
|
||||||
|
|
||||||
|
El logo fue obtenido de [OpenMoji](https://openmoji.org/library/emoji-1F436/). Licencia: CC [BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)
|
||||||
|
|
||||||
|
### Licencia 📄
|
||||||
|
|
||||||
|
[MIT](../../license.md)
|
146
docs/readme/readme_fr.md
Normal file
146
docs/readme/readme_fr.md
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
<br />
|
||||||
|
<img src="../../assets/images/logo-transparent.png" width="80"/>
|
||||||
|
|
||||||
|
### 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/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)
|
||||||
|
| [Українська](./readme_ua.md)
|
||||||
|
| [Русский](./readme_ru.md)
|
||||||
|
| [Türkçe](./readme_tr.md)
|
||||||
|
| [Deutsch](./readme_de.md)
|
||||||
|
| **Français**
|
||||||
|
| [Português (BR)](./readme_pt_br.md)
|
||||||
|
| [한국어](./readme_kr.md)
|
||||||
|
| [বাংলা](./readme_bn.md)
|
||||||
|
| [Español](./readme_es.md)
|
||||||
|
| [Italiano](./readme_it.md)
|
||||||
|
| [Română](./readme_ro.md)
|
||||||
|
| [Polski](./readme_pl.md)
|
||||||
|
| [简体中文](./readme_cn.md)
|
||||||
|
| [正體中文](./readme_zhtw.md)
|
||||||
|
| [العربية](./readme_ar.md)
|
||||||
|
| [日本語](./readme_ja.md)
|
||||||
|
| [ქართული](./readme_ka.md)
|
||||||
|
|
||||||
|
Bruno est un nouveau client API, innovant, qui a pour but de révolutionner le _statu quo_ que représentent 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 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).
|
||||||
|
|
||||||
|
📢 Regardez notre présentation récente lors de la conférence India FOSS 3.0 (en anglais) [ici](https://www.youtube.com/watch?v=7bSMFpbcPiY)
|
||||||
|
|
||||||
|
![bruno](/assets/images/landing-2.png) <br /><br />
|
||||||
|
|
||||||
|
### Installation
|
||||||
|
|
||||||
|
Bruno est disponible au téléchargement [sur notre site web](https://www.usebruno.com/downloads), pour Mac, Windows et Linux.
|
||||||
|
|
||||||
|
Vous pouvez aussi installer Bruno via un gestionnaire de paquets, comme Homebrew, Chocolatey, Scoop, Snap et Apt.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Mac via Homebrew
|
||||||
|
brew install bruno
|
||||||
|
|
||||||
|
# Windows via Chocolatey
|
||||||
|
choco install bruno
|
||||||
|
|
||||||
|
# Windows via Scoop
|
||||||
|
scoop bucket add extras
|
||||||
|
scoop install bruno
|
||||||
|
|
||||||
|
# Linux via Snap
|
||||||
|
snap install bruno
|
||||||
|
|
||||||
|
# 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 [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
|
||||||
|
```
|
||||||
|
|
||||||
|
### Fonctionne sur de multiples plateformes 🖥️
|
||||||
|
|
||||||
|
![bruno](/assets/images/run-anywhere.png) <br /><br />
|
||||||
|
|
||||||
|
### Collaborer via Git 👩💻🧑💻
|
||||||
|
|
||||||
|
Ou n'importe quel système de gestion de sources
|
||||||
|
|
||||||
|
![bruno](/assets/images/version-control.png) <br /><br />
|
||||||
|
|
||||||
|
### 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)
|
||||||
|
- [Sponsors GitHub](https://github.com/sponsors/helloanoop)
|
||||||
|
|
||||||
|
### 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 ❤️
|
||||||
|
|
||||||
|
Si vous aimez Bruno et que vous souhaitez soutenir le travail _opensource_, pensez à devenir un sponsor via la page [Github Sponsors](https://github.com/sponsors/helloanoop).
|
||||||
|
|
||||||
|
### 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/publishing_fr.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
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<a href="https://github.com/usebruno/bruno/graphs/contributors">
|
||||||
|
<img src="https://contrib.rocks/image?repo=usebruno/bruno" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
### Restons en contact 🌐
|
||||||
|
|
||||||
|
[Twitter](https://twitter.com/use_bruno) <br />
|
||||||
|
[Website](https://www.usebruno.com) <br />
|
||||||
|
[Discord](https://discord.com/invite/KgcZUncpjq) <br />
|
||||||
|
[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)
|
140
docs/readme/readme_it.md
Normal file
140
docs/readme/readme_it.md
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
<br />
|
||||||
|
<img src="../../assets/images/logo-transparent.png" width="80"/>
|
||||||
|
|
||||||
|
### Bruno - Opensource IDE per esplorare e testare gli 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/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)
|
||||||
|
| [Українська](./readme_ua.md)
|
||||||
|
| [Русский](./readme_ru.md)
|
||||||
|
| [Türkçe](./readme_tr.md)
|
||||||
|
| [Deutsch](./readme_de.md)
|
||||||
|
| [Français](./readme_fr.md)
|
||||||
|
| [Português (BR)](./readme_pt_br.md)
|
||||||
|
| [한국어](./readme_kr.md)
|
||||||
|
| [বাংলা](./readme_bn.md)
|
||||||
|
| [Español](./readme_es.md)
|
||||||
|
| **Italiano**
|
||||||
|
| [Română](./readme_ro.md)
|
||||||
|
| [Polski](./readme_pl.md)
|
||||||
|
| [简体中文](./readme_cn.md)
|
||||||
|
| [正體中文](./readme_zhtw.md)
|
||||||
|
| [العربية](./readme_ar.md)
|
||||||
|
| [日本語](./readme_ja.md)
|
||||||
|
| [ქართული](./readme_ka.md)
|
||||||
|
|
||||||
|
Bruno è un nuovo ed innovativo API client, mirato a rivoluzionare lo status quo rappresentato da Postman e strumenti simili disponibili.
|
||||||
|
|
||||||
|
Bruno memorizza le tue raccolte direttamente in una cartella del tuo filesystem. Utilizziamo un linguaggio di markup in testo semplice chiamato Bru per salvare informazioni sulle richeste API.
|
||||||
|
|
||||||
|
Puoi utilizzare Git o qualsiasi sistema di controllo che preferisci per collaborare sulle tue raccolte di API.
|
||||||
|
|
||||||
|
Bruno funziona solo in modalità offline. Non ci sono piani per aggiungere la sincronizzazione su cloud a Bruno in futuro. Valorizziamo la privacy dei tuoi dati e crediamo che dovrebbero rimanere sul tuo dispositivo. Puoi leggere la nostra visione a lungo termine [qui (in inglese)](https://github.com/usebruno/bruno/discussions/269)
|
||||||
|
|
||||||
|
📢 Guarda la nostra presentazione più recente alla conferenza India FOSS 3.0 [qui](https://www.youtube.com/watch?v=7bSMFpbcPiY)
|
||||||
|
|
||||||
|
![bruno](/assets/images/landing-2.png) <br /><br />
|
||||||
|
|
||||||
|
### Installazione
|
||||||
|
|
||||||
|
Bruno è disponibile come download binario [sul nostro sito](https://www.usebruno.com/downloads) per Mac, Windows e Linux.
|
||||||
|
|
||||||
|
Puoi installare Bruno anche tramite package manger come Homebrew, Chocolatey, Snap e Apt.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Su Mac come Homebrew
|
||||||
|
brew install bruno
|
||||||
|
|
||||||
|
# Su Windows come Chocolatey
|
||||||
|
choco install bruno
|
||||||
|
|
||||||
|
# Su Linux tramite Snap
|
||||||
|
snap install bruno
|
||||||
|
|
||||||
|
# Su Linux tramite 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 [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
|
||||||
|
```
|
||||||
|
|
||||||
|
### Funziona su diverse piattaforme 🖥️
|
||||||
|
|
||||||
|
![bruno](/assets/images/run-anywhere.png) <br /><br />
|
||||||
|
|
||||||
|
### Collabora tramite Git 👩💻🧑💻
|
||||||
|
|
||||||
|
O con qualsiasi sistema di controllo di versioni a tua scelta
|
||||||
|
|
||||||
|
![bruno](/assets/images/version-control.png) <br /><br />
|
||||||
|
|
||||||
|
### Collegamenti importanti 📌
|
||||||
|
|
||||||
|
- [La nostra visione a lungo termine](https://github.com/usebruno/bruno/discussions/269)
|
||||||
|
- [Roadmap](https://github.com/usebruno/bruno/discussions/384)
|
||||||
|
- [Documentazione](https://docs.usebruno.com)
|
||||||
|
- [Sito internet](https://www.usebruno.com)
|
||||||
|
- [Prezzo](https://www.usebruno.com/pricing)
|
||||||
|
- [Download](https://www.usebruno.com/downloads)
|
||||||
|
|
||||||
|
### Showcase 🎥
|
||||||
|
|
||||||
|
- [Testimonianze](https://github.com/usebruno/bruno/discussions/343)
|
||||||
|
- [Centro di conoscenza](https://github.com/usebruno/bruno/discussions/386)
|
||||||
|
- [Scriptmania](https://github.com/usebruno/bruno/discussions/385)
|
||||||
|
|
||||||
|
### Supporto ❤️
|
||||||
|
|
||||||
|
Woof! se ti piace il progetto, premi quel ⭐ pulsante !!
|
||||||
|
|
||||||
|
### Testimonianze condivise 📣
|
||||||
|
|
||||||
|
Se Bruno ti ha aiutato con il tuo lavoro ed il tuo team, per favore non dimenticare di condividere le tue [testimonianze nella nostra discussione su GitHub](https://github.com/usebruno/bruno/discussions/343)
|
||||||
|
|
||||||
|
### Pubblica Bruno su un nuovo gestore di pacchetti
|
||||||
|
|
||||||
|
Per favore vedi [qui](../../publishing.md) per accedere a più informazioni.
|
||||||
|
|
||||||
|
### Contribuire 👩💻🧑💻
|
||||||
|
|
||||||
|
Sono felice che vuoi migliorare Bruno. Per favore controlla la [guida per la partecipazione](../contributing/contributing_it.md)
|
||||||
|
|
||||||
|
Anche se non sei in grado di contribuire tramite il codice, non esitare a segnalare bug e richieste di funzionalità che devono essere implementati per risolvere il tuo caso d'uso.
|
||||||
|
|
||||||
|
### Autori
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<a href="https://github.com/usebruno/bruno/graphs/contributors">
|
||||||
|
<img src="https://contrib.rocks/image?repo=usebruno/bruno" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
### Resta in contatto 🌐
|
||||||
|
|
||||||
|
[𝕏 (Twitter)](https://twitter.com/use_bruno) <br />
|
||||||
|
[Sito internet](https://www.usebruno.com) <br />
|
||||||
|
[Discord](https://discord.com/invite/KgcZUncpjq) <br />
|
||||||
|
[LinkedIn](https://www.linkedin.com/company/usebruno)
|
||||||
|
|
||||||
|
### Marchio
|
||||||
|
|
||||||
|
**Nome**
|
||||||
|
|
||||||
|
`Bruno` è un marchio registrato appartenente a [Anoop M D](https://www.helloanoop.com/)
|
||||||
|
|
||||||
|
**Logo**
|
||||||
|
|
||||||
|
Il logo è stato creato da [OpenMoji](https://openmoji.org/library/emoji-1F436/). Licenza: CC [BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)
|
||||||
|
|
||||||
|
### Licenza 📄
|
||||||
|
|
||||||
|
[MIT](../../license.md)
|
177
docs/readme/readme_ja.md
Normal file
177
docs/readme/readme_ja.md
Normal file
@ -0,0 +1,177 @@
|
|||||||
|
<br />
|
||||||
|
<img src="../../assets/images/logo-transparent.png" width="80"/>
|
||||||
|
|
||||||
|
### Bruno - API の検証・動作テストのためのオープンソース IDE.
|
||||||
|
|
||||||
|
[![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)
|
||||||
|
| [Українська](./readme_ua.md)
|
||||||
|
| [Русский](./readme_ru.md)
|
||||||
|
| [Türkçe](./readme_tr.md)
|
||||||
|
| [Deutsch](./readme_de.md)
|
||||||
|
| [Français](./readme_fr.md)
|
||||||
|
| [Português (BR)](./readme_pt_br.md)
|
||||||
|
| [한국어](./readme_kr.md)
|
||||||
|
| [বাংলা](./readme_bn.md)
|
||||||
|
| [Español](./readme_es.md)
|
||||||
|
| [Italiano](./readme_it.md)
|
||||||
|
| [Română](./readme_ro.md)
|
||||||
|
| [Polski](./readme_pl.md)
|
||||||
|
| [简体中文](./readme_cn.md)
|
||||||
|
| [正體中文](./readme_zhtw.md)
|
||||||
|
| [العربية](./readme_ar.md)
|
||||||
|
| **日本語**
|
||||||
|
| [ქართული](./readme_ka.md)
|
||||||
|
|
||||||
|
Bruno は革新的な API クライアントです。Postman を代表する API クライアントツールの現状に一石を投じることを目指しています。
|
||||||
|
|
||||||
|
Bruno はローカルフォルダに直接コレクションを保存します。API リクエストの情報を保存するために Bru というプレーンテキストのマークアップ言語を採用しています。
|
||||||
|
|
||||||
|
Git や任意のバージョン管理システムを使って API コレクションを共同開発することもできます。
|
||||||
|
|
||||||
|
Bruno はオフラインのみで利用できます。Bruno にクラウド同期機能を追加する予定はありません。私たちはデータプライバシーを尊重しており、データはローカルに保存されるべきだと考えています。私たちの長期的なビジョンは[こちら](https://github.com/usebruno/bruno/discussions/269)をご覧ください。
|
||||||
|
|
||||||
|
[Bruno をダウンロード](https://www.usebruno.com/downloads)
|
||||||
|
|
||||||
|
📢 India FOSS 3.0 Conference での発表の様子は[こちら](https://www.youtube.com/watch?v=7bSMFpbcPiY)から
|
||||||
|
|
||||||
|
![bruno](/assets/images/landing-2.png) <br /><br />
|
||||||
|
|
||||||
|
### ゴールデンエディション ✨
|
||||||
|
|
||||||
|
機能のほとんどが無料で使用でき、オープンソースとなっています。
|
||||||
|
私たちは[オープンソースの原則と長期的な維持](https://github.com/usebruno/bruno/discussions/269)の間でうまくバランスを取ろうと努力しています。
|
||||||
|
|
||||||
|
[ゴールデンエディション](https://www.usebruno.com/pricing)を **19 ドル** (買い切り)で購入できます!
|
||||||
|
|
||||||
|
### インストール方法
|
||||||
|
|
||||||
|
Bruno は[私たちのウェブサイト](https://www.usebruno.com/downloads)からバイナリをダウンロードできます。Mac, Windows, Linux に対応しています。
|
||||||
|
|
||||||
|
Homebrew, Chocolatey, Scoop, Snap, Flatpak, Apt などのパッケージマネージャからもインストール可能です。
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# MacでHomebrewを使ってインストール
|
||||||
|
brew install bruno
|
||||||
|
|
||||||
|
# WindowsでChocolateyを使ってインストール
|
||||||
|
choco install bruno
|
||||||
|
|
||||||
|
# WindowsでScoopを使ってインストール
|
||||||
|
scoop bucket add extras
|
||||||
|
scoop install bruno
|
||||||
|
|
||||||
|
# Windowsでwingetを使ってインストール
|
||||||
|
winget install Bruno.Bruno
|
||||||
|
|
||||||
|
# LinuxでSnapを使ってインストール
|
||||||
|
snap install bruno
|
||||||
|
|
||||||
|
# LinuxでFlatpakを使ってインストール
|
||||||
|
flatpak install com.usebruno.Bruno
|
||||||
|
|
||||||
|
# Linuxで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 [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
|
||||||
|
```
|
||||||
|
|
||||||
|
### マルチプラットフォームでの実行に対応 🖥️
|
||||||
|
|
||||||
|
![bruno](/assets/images/run-anywhere.png) <br /><br />
|
||||||
|
|
||||||
|
### Git との連携が可能 👩💻🧑💻
|
||||||
|
|
||||||
|
または任意のバージョン管理システムにも対応しています。
|
||||||
|
|
||||||
|
![bruno](/assets/images/version-control.png) <br /><br />
|
||||||
|
|
||||||
|
### スポンサー
|
||||||
|
|
||||||
|
#### ゴールドスポンサー
|
||||||
|
|
||||||
|
<img src="../../assets/images/sponsors/samagata.png" width="150"/>
|
||||||
|
|
||||||
|
#### シルバースポンサー
|
||||||
|
|
||||||
|
<img src="../../assets/images/sponsors/commit-company.png" width="70"/>
|
||||||
|
|
||||||
|
#### ブロンズスポンサー
|
||||||
|
|
||||||
|
<a href="https://zuplo.link/bruno">
|
||||||
|
<img src="../../assets/images/sponsors/zuplo.png" width="120"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
### 主要リンク 📌
|
||||||
|
|
||||||
|
- [私たちの長期ビジョン](https://github.com/usebruno/bruno/discussions/269)
|
||||||
|
- [ロードマップ](https://github.com/usebruno/bruno/discussions/384)
|
||||||
|
- [ドキュメント](https://docs.usebruno.com)
|
||||||
|
- [Stack Overflow](https://stackoverflow.com/questions/tagged/bruno)
|
||||||
|
- [ウェブサイト](https://www.usebruno.com)
|
||||||
|
- [料金設定](https://www.usebruno.com/pricing)
|
||||||
|
- [ダウンロード](https://www.usebruno.com/downloads)
|
||||||
|
- [Github スポンサー](https://github.com/sponsors/helloanoop).
|
||||||
|
|
||||||
|
### Showcase 🎥
|
||||||
|
|
||||||
|
- [体験談](https://github.com/usebruno/bruno/discussions/343)
|
||||||
|
- [ナレッジベース](https://github.com/usebruno/bruno/discussions/386)
|
||||||
|
- [スクリプト集](https://github.com/usebruno/bruno/discussions/385)
|
||||||
|
|
||||||
|
### サポート ❤️
|
||||||
|
|
||||||
|
もし Bruno を気に入っていただいて、オープンソースの活動を支援していただけるなら、[Github Sponsors](https://github.com/sponsors/helloanoop)でスポンサーになることを考えてみてください。
|
||||||
|
|
||||||
|
### 体験談のシェア 📣
|
||||||
|
|
||||||
|
Bruno が職場やチームで役立っているのであれば、[GitHub discussion 上であなたの体験談](https://github.com/usebruno/bruno/discussions/343)をシェアしていただくようお願いします。
|
||||||
|
|
||||||
|
### 新しいパッケージマネージャへの公開
|
||||||
|
|
||||||
|
詳しくは[こちら](../publishing/publishing_ja.md)をご覧ください。
|
||||||
|
|
||||||
|
### 連絡先 🌐
|
||||||
|
|
||||||
|
[𝕏 (Twitter)](https://twitter.com/use_bruno) <br />
|
||||||
|
[Website](https://www.usebruno.com) <br />
|
||||||
|
[Discord](https://discord.com/invite/KgcZUncpjq) <br />
|
||||||
|
[LinkedIn](https://www.linkedin.com/company/usebruno)
|
||||||
|
|
||||||
|
### 商標について
|
||||||
|
|
||||||
|
**名前**
|
||||||
|
|
||||||
|
`Bruno`は[Anoop M D](https://www.helloanoop.com/)は取得している商標です。
|
||||||
|
|
||||||
|
**ロゴ**
|
||||||
|
|
||||||
|
ロゴの出典は[OpenMoji](https://openmoji.org/library/emoji-1F436/)です。CC [BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)でライセンスされています。
|
||||||
|
|
||||||
|
### 貢献するには 👩💻🧑💻
|
||||||
|
|
||||||
|
Bruno を改善していただけるのは歓迎です。[コントリビュートガイド](../contributing/contributing_ja.md)をご覧ください。
|
||||||
|
|
||||||
|
もしコードによる貢献ができない場合でも、あなたのユースケースを解決するために遠慮なくバグ報告や機能リクエストを出してください。
|
||||||
|
|
||||||
|
### 開発者
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<a href="https://github.com/usebruno/bruno/graphs/contributors">
|
||||||
|
<img src="https://contrib.rocks/image?repo=usebruno/bruno" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
### ライセンス 📄
|
||||||
|
|
||||||
|
[MIT](../../license.md)
|
176
docs/readme/readme_ka.md
Normal file
176
docs/readme/readme_ka.md
Normal file
@ -0,0 +1,176 @@
|
|||||||
|
<br />
|
||||||
|
<img src="../../assets/images/logo-transparent.png" width="80"/>
|
||||||
|
|
||||||
|
### ბრუნო - ღია წყაროების IDE API-ების შესწავლისა და ტესტირებისათვის.
|
||||||
|
|
||||||
|
[![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)
|
||||||
|
| [Українська](./readme_ua.md)
|
||||||
|
| [Русский](./readme_ru.md)
|
||||||
|
| [Türkçe](./readme_tr.md)
|
||||||
|
| [Deutsch](./readme_de.md)
|
||||||
|
| [Français](./readme_fr.md)
|
||||||
|
| [Português (BR)](./readme_pt_br.md)
|
||||||
|
| [한국어](./readme_kr.md)
|
||||||
|
| [বাংলা](./readme_bn.md)
|
||||||
|
| [Español](./readme_es.md)
|
||||||
|
| [Italiano](./readme_it.md)
|
||||||
|
| [Română](./readme_ro.md)
|
||||||
|
| [Polski](./readme_pl.md)
|
||||||
|
| [简体中文](./readme_cn.md)
|
||||||
|
| [正體中文](./readme_zhtw.md)
|
||||||
|
| [العربية](./readme_ar.md)
|
||||||
|
| [日本語](./readme_ja.md)
|
||||||
|
| **ქართული**
|
||||||
|
|
||||||
|
ბრუნო არის ახალი და ინოვაციური API კლიენტი, რომელიც მიზნად ისახავს პოსტმანისა და მსგავსი ინსტრუმენტების არსებული მდგომარეობის რევოლუციას.
|
||||||
|
|
||||||
|
ბრუნო თქვენი კოლექციების შენახვას უშუალოდ თქვენს ფაილური სისტემის ერთ-ერთ საქაღალოში ახდენს. ჩვენ ვხმარობთ უბრალო ტექსტურ მარკაპ ენის, Bru-ს, API მოთხოვნების შესახებ ინფორმაციის შენახვისთვის.
|
||||||
|
|
||||||
|
თქვენ შეგიძლიათ გამოიყენოთ Git ან ნებისმიერი ვერსიის კონტროლის სისტემა თქვენი API კოლექციების გასაზიარებლად.
|
||||||
|
|
||||||
|
ბრუნო მხოლოდ ოფლაინ რეჟიმში მუშაობს. ბრუნოში ღრუბლური სინქრონიზაციის დამატების გეგმები არ არის. ჩვენ ვაფასებთ თქვენი მონაცემების პრივატობას და creemos, რომ ისინი თქვენს მოწყობილობაში უნდა დარჩეს. წაიკითხეთ ჩვენი გრძელვადიანი ხედვა [აქ](https://github.com/usebruno/bruno/discussions/269)
|
||||||
|
|
||||||
|
[დამატებით ბრუნო](https://www.usebruno.com/downloads)
|
||||||
|
|
||||||
|
📢 შეიტყვეთ ჩვენი უახლესი საუბრის შესახებ India FOSS 3.0 კონფერენციაზე [აქ](https://www.youtube.com/watch?v=7bSMFpbcPiY)
|
||||||
|
|
||||||
|
![bruno](../../assets/images/landing-2.png) <br /><br />
|
||||||
|
|
||||||
|
### ოქროს გამოცემა ✨
|
||||||
|
|
||||||
|
მთავარი ფუნქციების უმეტესობა უფასოა და ღია წყაროა. ჩვენ ვცდილობთ ჰარმონიული ბალანსის დაცვას [ღია წყაროების პრინციპებსა და მდგრადობას შორის](https://github.com/usebruno/bruno/discussions/269)
|
||||||
|
|
||||||
|
თქვენ შეგიძლიათ შეიძინოთ [ოქროს გამოცემა](https://www.usebruno.com/pricing) ერთჯერადი გადახდით **19 დოლარად**! <br/>
|
||||||
|
|
||||||
|
### ინსტალაცია
|
||||||
|
|
||||||
|
ბრუნო ხელმისაწვდომია როგორც ბინარული ჩამოტვირთვა [ჩვენ的网站上](https://www.usebruno.com/downloads) Mac-ის, Windows-ისა და Linux-ისთვის.
|
||||||
|
|
||||||
|
თქვენ ასევე შეგიძლიათ დააინსტალიროთ ბრუნო პაკეტის მენეჯერების საშუალებით, როგორიცაა Homebrew, Chocolatey, Scoop, Snap, Flatpak და Apt.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Mac-ზე Homebrew-ს საშუალებით
|
||||||
|
brew install bruno
|
||||||
|
|
||||||
|
# Windows-ზე Chocolatey-ს საშუალებით
|
||||||
|
choco install bruno
|
||||||
|
|
||||||
|
# Windows-ზე Scoop-ის საშუალებით
|
||||||
|
scoop bucket add extras
|
||||||
|
scoop install bruno
|
||||||
|
|
||||||
|
# Windows-ზე winget-ის საშუალებით
|
||||||
|
winget install Bruno.Bruno
|
||||||
|
|
||||||
|
# Linux-ზე Snap-ის საშუალებით
|
||||||
|
snap install bruno
|
||||||
|
|
||||||
|
# Linux-ზე Flatpak-ის საშუალებით
|
||||||
|
flatpak install com.usebruno.Bruno
|
||||||
|
|
||||||
|
# Linux-ზე 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
|
||||||
|
```
|
||||||
|
|
||||||
|
### პლატფორმებს შორის მუშაობა 🖥️
|
||||||
|
|
||||||
|
![bruno](../../assets/images/run-anywhere.png) <br /><br />
|
||||||
|
|
||||||
|
### თანამშრომლობა Git-ის საშუალებით 👩💻🧑💻
|
||||||
|
|
||||||
|
ან ნებისმიერი ვერსიის კონტროლის სისტემის საშუალებით
|
||||||
|
|
||||||
|
![bruno](../../assets/images/version-control.png) <br /><br />
|
||||||
|
|
||||||
|
### სპონსორები
|
||||||
|
|
||||||
|
#### ოქროს სპონსორები
|
||||||
|
|
||||||
|
<img src="../../assets/images/sponsors/samagata.png" width="150"/>
|
||||||
|
|
||||||
|
#### ვერცხლის სპონსორები
|
||||||
|
|
||||||
|
<img src="../../assets/images/sponsors/commit-company.png" width="70"/>
|
||||||
|
|
||||||
|
#### ბრინჯის სპონსორები
|
||||||
|
|
||||||
|
<a href="https://zuplo.link/bruno">
|
||||||
|
<img src="../../assets/images/sponsors/zuplo.png" width="120"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
### მნიშვნელოვანი ბმულები 📌
|
||||||
|
|
||||||
|
- [ჩვენი გრძელვადიანი ხედვა](https://github.com/usebruno/bruno/discussions/269)
|
||||||
|
- [გეგმა](https://github.com/usebruno/bruno/discussions/384)
|
||||||
|
- [დოკუმენტაცია](https://docs.usebruno.com)
|
||||||
|
- [Stack Overflow](https://stackoverflow.com/questions/tagged/bruno)
|
||||||
|
- [ვებსაიტი](https://www.usebruno.com)
|
||||||
|
- [ფასები](https://www.usebruno.com/pricing)
|
||||||
|
- [დამატება](https://www.usebruno.com/downloads)
|
||||||
|
- [GitHub სპონსორები](https://github.com/sponsors/helloanoop).
|
||||||
|
|
||||||
|
### ვიტრინა 🎥
|
||||||
|
|
||||||
|
- [მოწონებები](https://github.com/usebruno/bruno/discussions/343)
|
||||||
|
- [მეცნიერების ჰაბი](https://github.com/usebruno/bruno/discussions/386)
|
||||||
|
- [Scriptmania](https://github.com/usebruno/bruno/discussions/385)
|
||||||
|
|
||||||
|
### მხარდაჭერა ❤️
|
||||||
|
|
||||||
|
თუ გიყვართ ბრუნო და გინდათ მხარი დაუჭიროთ ჩვენს ღია წყაროების მუშაობას, გაითვალისწინეთ ჩვენი დახმარება [GitHub სპონსორების საშუალებით](https://github.com/sponsors/helloanoop).
|
||||||
|
|
||||||
|
### გააზიარეთ მოწმობები 📣
|
||||||
|
|
||||||
|
თუ ბრუნო დაგეხმარათ თქვენს სამუშაოში და გუნდებში, გთხოვთ, არ დაგავიწყდეთ ჩვენი [მოწონებების გაზიარება ჩვენს GitHub განხილვაში](https://github.com/usebruno/bruno/discussions/343)
|
||||||
|
|
||||||
|
### ახალი პაკეტის მენეჯერებში გამოქვეყნება
|
||||||
|
|
||||||
|
იხილეთ [აქ](../../publishing.md) მეტი ინფორმაციისათვის.
|
||||||
|
|
||||||
|
### დაინტერესდით 🌐
|
||||||
|
|
||||||
|
[𝕎 (Twitter)](https://twitter.com/use_bruno) <br />
|
||||||
|
[ვებსაიტი](https://www.usebruno.com) <br />
|
||||||
|
[Discord](https://discord.com/invite/KgcZUncpjq) <br />
|
||||||
|
[LinkedIn](https://www.linkedin.com/company/usebruno)
|
||||||
|
|
||||||
|
### სავაჭრო ნიშანი
|
||||||
|
|
||||||
|
**სახელი**
|
||||||
|
|
||||||
|
`ბრუნო` არის სავაჭრო ნიშანი, რომელსაც ფლობს [ანუპ მ. დ.](https://www.helloanoop.com/)
|
||||||
|
|
||||||
|
**ლოგო**
|
||||||
|
|
||||||
|
ლოგო არის [OpenMoji](https://openmoji.org/library/emoji-1F436/) სურათებიდან. ლიცენზია: CC [BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)
|
||||||
|
|
||||||
|
### თანამშრომლობა 👩💻🧑💻
|
||||||
|
|
||||||
|
მიხარია, რომ დაინტერესებული ხართ ბრუნოს გაუმჯობესებით. გთხოვთ, გადახედეთ [თანამშრომლობის სახელმძღვანელოს](../../contributing.md)
|
||||||
|
|
||||||
|
თუნდაც ვერ მოახერხოთ კოდის საშუალებით კონტრიბუცია, ნუ ინანებთ პრობლემების და ფუნქციის მოთხოვნების ჩაწერას, რომლებიც უნდა განხორციელდეს თქვენი შემთხვევის გადასაჭრელად.
|
||||||
|
|
||||||
|
### ავტორები
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<a href="https://github.com/usebruno/bruno/graphs/contributors">
|
||||||
|
<img src="https://contrib.rocks/image?repo=usebruno/bruno" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
### ლიცენზია 📄
|
||||||
|
|
||||||
|
[MIT](../../license.md)
|
140
docs/readme/readme_kr.md
Normal file
140
docs/readme/readme_kr.md
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
<br />
|
||||||
|
<img src="../../assets/images/logo-transparent.png" width="80"/>
|
||||||
|
|
||||||
|
### Bruno - API 탐색 및 테스트를 위한 오픈소스 IDE.
|
||||||
|
|
||||||
|
[![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)
|
||||||
|
| [Українська](./readme_ua.md)
|
||||||
|
| [Русский](./readme_ru.md)
|
||||||
|
| [Türkçe](./readme_tr.md)
|
||||||
|
| [Deutsch](./readme_de.md)
|
||||||
|
| [Français](./readme_fr.md)
|
||||||
|
| [Português (BR)](./readme_pt_br.md)
|
||||||
|
| **한국어**
|
||||||
|
| [বাংলা](./readme_bn.md)
|
||||||
|
| [Español](./readme_es.md)
|
||||||
|
| [Italiano](./readme_it.md)
|
||||||
|
| [Română](./readme_ro.md)
|
||||||
|
| [Polski](./readme_pl.md)
|
||||||
|
| [简体中文](./readme_cn.md)
|
||||||
|
| [正體中文](./readme_zhtw.md)
|
||||||
|
| [العربية](./readme_ar.md)
|
||||||
|
| [日本語](./readme_ja.md)
|
||||||
|
| [ქართული](./readme_ka.md)
|
||||||
|
|
||||||
|
Bruno는 새롭고 혁신적인 API 클라이언트로, Postman과 유사한 툴들을 혁신하는 것을 목표로 합니다.
|
||||||
|
|
||||||
|
Bruno는 사용자의 컬렉션을 파일 시스템의 폴더에 직접 저장합니다. 일반 텍스트 마크업 언어인 Bru를 사용해 API 요청에 대한 정보를 저장합니다.
|
||||||
|
|
||||||
|
Git 또는 원하는 버전 관리 도구를 사용하여 API 컬렉션을 연동할 수 있습니다.
|
||||||
|
|
||||||
|
브루는 오프라인 전용입니다. 브루노에 클라우드 동기화 기능을 추가할 계획은 없습니다. 저희는 사용자의 데이터 프라이버시를 소중히 여기며, 데이터는 사용자의 기기에 남아 있어야 한다고 믿습니다. 장기 비전 읽기 [링크](https://github.com/usebruno/bruno/discussions/269)
|
||||||
|
|
||||||
|
📢 Watch our recent talk at India FOSS 3.0 Conference [here](https://www.youtube.com/watch?v=7bSMFpbcPiY)
|
||||||
|
|
||||||
|
![bruno](/assets/images/landing-2.png) <br /><br />
|
||||||
|
|
||||||
|
### 설치
|
||||||
|
|
||||||
|
Bruno 는 여기에서 다운로드 받을 수 있습니다.[링크](https://www.usebruno.com/downloads) (맥, 윈도우, 리눅스)
|
||||||
|
|
||||||
|
Homebrew, Chocolatey, Snap, Apt 같은 패키지 관리자를 통해서도 Bruno를 설치할 수 있습니다.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# On Mac via Homebrew
|
||||||
|
brew install bruno
|
||||||
|
|
||||||
|
# On Windows via Chocolatey
|
||||||
|
choco install bruno
|
||||||
|
|
||||||
|
# On Linux via Snap
|
||||||
|
snap install bruno
|
||||||
|
|
||||||
|
# On 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 [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
|
||||||
|
```
|
||||||
|
|
||||||
|
### 여러 플랫폼에서 실행하세요. 🖥️
|
||||||
|
|
||||||
|
![bruno](/assets/images/run-anywhere.png) <br /><br />
|
||||||
|
|
||||||
|
### Git과 연동하세요. 👩💻🧑💻
|
||||||
|
|
||||||
|
또는 원하는 버전 관리 시스템을 선택하세요.
|
||||||
|
|
||||||
|
![bruno](/assets/images/version-control.png) <br /><br />
|
||||||
|
|
||||||
|
### 중요 링크 📌
|
||||||
|
|
||||||
|
- [Our Long Term Vision](https://github.com/usebruno/bruno/discussions/269)
|
||||||
|
- [Roadmap](https://github.com/usebruno/bruno/discussions/384)
|
||||||
|
- [Documentation](https://docs.usebruno.com)
|
||||||
|
- [Website](https://www.usebruno.com)
|
||||||
|
- [Pricing](https://www.usebruno.com/pricing)
|
||||||
|
- [Download](https://www.usebruno.com/downloads)
|
||||||
|
|
||||||
|
### 쇼케이스 🎥
|
||||||
|
|
||||||
|
- [Testimonials](https://github.com/usebruno/bruno/discussions/343)
|
||||||
|
- [Knowledge Hub](https://github.com/usebruno/bruno/discussions/386)
|
||||||
|
- [Scriptmania](https://github.com/usebruno/bruno/discussions/385)
|
||||||
|
|
||||||
|
### 지원 ❤️
|
||||||
|
|
||||||
|
프로젝트가 마음에 들면 ⭐ 버튼을 눌러 주세요.
|
||||||
|
|
||||||
|
### 후기 공유 📣
|
||||||
|
|
||||||
|
Bruno가 여러분과 여러분의 팀에 도움이 되었다면, 잊지 말고 공유해 주세요. [GitHub discussion 공유 링크](https://github.com/usebruno/bruno/discussions/343)
|
||||||
|
|
||||||
|
### 새 패키지 관리자에게 게시
|
||||||
|
|
||||||
|
더 많은 정보를 확인하시려면 링크를 클릭해 주세요. [배포 가이드](../../publishing.md)
|
||||||
|
|
||||||
|
### 컨트리뷰트 👩💻🧑💻
|
||||||
|
|
||||||
|
컨트리뷰트에 관심이 있으시면 링크를 참고해 주세요. [컨트리뷰트 가이드](../contributing/contributing_kr.md)
|
||||||
|
|
||||||
|
코드를 통해 기여할 수 없더라도 사용 사례를 해결하기 위해 구현이 필요한 버그나 기능 요청을 주저하지 마시고 제출해 주세요.
|
||||||
|
|
||||||
|
### Authors
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<a href="https://github.com/usebruno/bruno/graphs/contributors">
|
||||||
|
<img src="https://contrib.rocks/image?repo=usebruno/bruno" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
### Stay in touch 🌐
|
||||||
|
|
||||||
|
[𝕏 (Twitter)](https://twitter.com/use_bruno) <br />
|
||||||
|
[Website](https://www.usebruno.com) <br />
|
||||||
|
[Discord](https://discord.com/invite/KgcZUncpjq) <br />
|
||||||
|
[LinkedIn](https://www.linkedin.com/company/usebruno)
|
||||||
|
|
||||||
|
### Trademark
|
||||||
|
|
||||||
|
**Name**
|
||||||
|
|
||||||
|
`Bruno` is a trademark held by [Anoop M D](https://www.helloanoop.com/)
|
||||||
|
|
||||||
|
**Logo**
|
||||||
|
|
||||||
|
The logo is sourced from [OpenMoji](https://openmoji.org/library/emoji-1F436/). License: CC [BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)
|
||||||
|
|
||||||
|
### License 📄
|
||||||
|
|
||||||
|
[MIT](../../license.md)
|
157
docs/readme/readme_nl.md
Normal file
157
docs/readme/readme_nl.md
Normal file
@ -0,0 +1,157 @@
|
|||||||
|
<br />
|
||||||
|
<img src="../../assets/images/logo-transparent.png" width="80"/>
|
||||||
|
|
||||||
|
### 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) <br /><br />
|
||||||
|
|
||||||
|
### 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**! <br/>
|
||||||
|
|
||||||
|
### 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) <br /><br />
|
||||||
|
|
||||||
|
### Samenwerken via Git 👩💻🧑💻
|
||||||
|
|
||||||
|
Of elk versiebeheersysteem naar keuze
|
||||||
|
|
||||||
|
![bruno](/assets/images/version-control.png) <br /><br />
|
||||||
|
|
||||||
|
### Sponsors
|
||||||
|
|
||||||
|
#### Gouden Sponsors
|
||||||
|
|
||||||
|
<img src="../../assets/images/sponsors/samagata.png" width="150"/>
|
||||||
|
|
||||||
|
#### Zilveren Sponsors
|
||||||
|
|
||||||
|
<img src="../../assets/images/sponsors/commit-company.png" width="70"/>
|
||||||
|
|
||||||
|
#### Bronzen Sponsors
|
||||||
|
|
||||||
|
<a href="https://zuplo.link/bruno">
|
||||||
|
<img src="../../assets/images/sponsors/zuplo.png" width="120"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
### 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) <br />
|
||||||
|
[Website](https://www.usebruno.com) <br />
|
||||||
|
[Discord](https://discord.com/invite/KgcZUncpjq) <br />
|
||||||
|
[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
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<a href="https://github.com/usebruno/bruno/graphs/contributors">
|
||||||
|
<img src="https://contrib.rocks/image?repo=usebruno/bruno" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
### Licentie 📄
|
||||||
|
|
||||||
|
[MIT](../../license.md)
|
152
docs/readme/readme_pl.md
Normal file
152
docs/readme/readme_pl.md
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
<br />
|
||||||
|
<img src="../../assets/images/logo-transparent.png" width="80"/>
|
||||||
|
|
||||||
|
### Bruno - Otwartoźródłowe IDE do eksploracji i testów 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/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)
|
||||||
|
| [Українська](./readme_ua.md)
|
||||||
|
| [Русский](./readme_ru.md)
|
||||||
|
| [Türkçe](./readme_tr.md)
|
||||||
|
| [Deutsch](./readme_de.md)
|
||||||
|
| [Français](./readme_fr.md)
|
||||||
|
| [Português (BR)](./readme_pt_br.md)
|
||||||
|
| [한국어](./readme_kr.md)
|
||||||
|
| [বাংলা](./readme_bn.md)
|
||||||
|
| [Español](./readme_es.md)
|
||||||
|
| [Italiano](./readme_it.md)
|
||||||
|
| [Română](./readme_ro.md)
|
||||||
|
| **Polski**
|
||||||
|
| [简体中文](./readme_cn.md)
|
||||||
|
| [正體中文](./readme_zhtw.md)
|
||||||
|
| [العربية](./readme_ar.md)
|
||||||
|
| [日本語](./readme_ja.md)
|
||||||
|
| [ქართული](./readme_ka.md)
|
||||||
|
|
||||||
|
Bruno to nowy i innowacyjny klient API, którego celem jest zrewolucjonizowanie status quo reprezentowanego przez narzędzia takie jak Postman.
|
||||||
|
|
||||||
|
Bruno przechowuje twoje kolekcje bezpośrednio w folderze na twoim systemie plików. Używamy prostego języka znaczników, Bru, do zapisywania informacji o żądaniach API.
|
||||||
|
|
||||||
|
Możesz użyć Git lub dowolnego systemu kontroli wersji do współpracy nad swoimi kolekcjami API.
|
||||||
|
|
||||||
|
Bruno działa tylko w trybie offline. Nie planujemy nigdy dodawać synchronizacji w chmurze do Bruno. Cenimy prywatność Twoich danych i wierzymy, że powinny one pozostać na Twoim urządzeniu. Przeczytaj naszą długoterminową wizję [tutaj](https://github.com/usebruno/bruno/discussions/269)
|
||||||
|
|
||||||
|
📢 Obejrzyj naszą ostatnią rozmowę na konferencji India FOSS 3.0 [tutaj](https://www.youtube.com/watch?v=7bSMFpbcPiY)
|
||||||
|
|
||||||
|
![bruno](/assets/images/landing-2.png) <br /><br />
|
||||||
|
|
||||||
|
### Instalacja
|
||||||
|
|
||||||
|
Bruno jest dostępny jako plik binarny do pobrania [na naszej stronie internetowej](https://www.usebruno.com/downloads) dla Mac, Windows i Linux.
|
||||||
|
|
||||||
|
Możesz również zainstalować Bruno za pomocą menedżerów pakietów, takich jak Homebrew, Chocolatey, Scoop, Snap i Apt.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# On Mac via Homebrew
|
||||||
|
brew install bruno
|
||||||
|
|
||||||
|
# On Windows via Chocolatey
|
||||||
|
choco install bruno
|
||||||
|
|
||||||
|
# On Windows via Scoop
|
||||||
|
scoop bucket add extras
|
||||||
|
scoop install bruno
|
||||||
|
|
||||||
|
# On Windows via winget
|
||||||
|
winget install Bruno.Bruno
|
||||||
|
|
||||||
|
# On Linux via Snap
|
||||||
|
snap install bruno
|
||||||
|
|
||||||
|
# On Linux via Flatpak
|
||||||
|
flatpak install com.usebruno.Bruno
|
||||||
|
|
||||||
|
# On 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
|
||||||
|
```
|
||||||
|
|
||||||
|
### Uruchom na wielu platformach 🖥️
|
||||||
|
|
||||||
|
![bruno](/assets/images/run-anywhere.png) <br /><br />
|
||||||
|
|
||||||
|
### Współpracuj przez Git 👩💻🧑💻
|
||||||
|
|
||||||
|
Lub dowolny inny system kontroli wersji, który wybierzesz
|
||||||
|
|
||||||
|
![bruno](/assets/images/version-control.png) <br /><br />
|
||||||
|
|
||||||
|
### Ważne Linki 📌
|
||||||
|
|
||||||
|
- [Nasza Długoterminowa Wizja](https://github.com/usebruno/bruno/discussions/269)
|
||||||
|
- [Mapa Drogi](https://github.com/usebruno/bruno/discussions/384)
|
||||||
|
- [Dokumentacja](https://docs.usebruno.com)
|
||||||
|
- [Stack Overflow](https://stackoverflow.com/questions/tagged/bruno)
|
||||||
|
- [Strona Internetowa](https://www.usebruno.com)
|
||||||
|
- [Cennik](https://www.usebruno.com/pricing)
|
||||||
|
- [Pobieranie](https://www.usebruno.com/downloads)
|
||||||
|
- [Sponsorzy GitHub](https://github.com/sponsors/helloanoop).
|
||||||
|
|
||||||
|
### Zobacz 🎥
|
||||||
|
|
||||||
|
- [Opinie](https://github.com/usebruno/bruno/discussions/343)
|
||||||
|
- [Centrum Wiedzy](https://github.com/usebruno/bruno/discussions/386)
|
||||||
|
- [Scriptmania](https://github.com/usebruno/bruno/discussions/385)
|
||||||
|
|
||||||
|
### Wsparcie ❤️
|
||||||
|
|
||||||
|
Jeśli podoba Ci się Bruno i chcesz wspierać naszą pracę opensource, rozważ sponsorowanie nas przez [Sponsorzy GitHub](https://github.com/sponsors/helloanoop).
|
||||||
|
|
||||||
|
### Udostępnij Opinie 📣
|
||||||
|
|
||||||
|
Jeśli Bruno pomógł w pracy Tobie i Twoim zespołom, nie zapomnij podzielić się swoimi [opiniami na naszej dyskusji GitHub](https://github.com/usebruno/bruno/discussions/343)
|
||||||
|
|
||||||
|
### Publikowanie w Nowych Menedżerach Pakietów
|
||||||
|
|
||||||
|
Więcej informacji znajdziesz [tutaj](../publishing/publishing_pl.md).
|
||||||
|
|
||||||
|
### Współpraca 👩💻🧑💻
|
||||||
|
|
||||||
|
Cieszymy się, że chcesz udoskonalić bruno. Proszę sprawdź [przewodnik współpracy](../contributing/contributing_pl.md)
|
||||||
|
|
||||||
|
Nawet jeśli nie jesteś w stanie przyczynić się poprzez kod, nie wahaj się zgłaszać błędów i wniosków o funkcje, które muszą zostać zaimplementowane, aby rozwiązać Twój przypadek użycia.
|
||||||
|
|
||||||
|
### Autorzy
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<a href="https://github.com/usebruno/bruno/graphs/contributors">
|
||||||
|
<img src="https://contrib.rocks/image?repo=usebruno/bruno" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
### Pozostań w kontakcie 🌐
|
||||||
|
|
||||||
|
[𝕏 (Twitter)](https://twitter.com/use_bruno) <br />
|
||||||
|
[Strona Internetowa](https://www.usebruno.com) <br />
|
||||||
|
[Discord](https://discord.com/invite/KgcZUncpjq) <br />
|
||||||
|
[LinkedIn](https://www.linkedin.com/company/usebruno)
|
||||||
|
|
||||||
|
### Znak Towarowy
|
||||||
|
|
||||||
|
**Nazwa**
|
||||||
|
|
||||||
|
`Bruno` jest znakiem towarowym należącym do [Anoop M D](https://www.helloanoop.com/)
|
||||||
|
|
||||||
|
**Logo**
|
||||||
|
|
||||||
|
Logo pochodzi z [OpenMoji](https://openmoji.org/library/emoji-1F436/). Licencja: CC [BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)
|
||||||
|
|
||||||
|
### Licencja 📄
|
||||||
|
|
||||||
|
[MIT](../../license.md)
|
175
docs/readme/readme_pt_br.md
Normal file
175
docs/readme/readme_pt_br.md
Normal file
@ -0,0 +1,175 @@
|
|||||||
|
<br />
|
||||||
|
<img src="../../assets/images/logo-transparent.png" width="80"/>
|
||||||
|
|
||||||
|
### Bruno - IDE de código aberto para explorar e testar 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/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)
|
||||||
|
| [Українська](./readme_ua.md)
|
||||||
|
| [Русский](./readme_ru.md)
|
||||||
|
| [Türkçe](./readme_tr.md)
|
||||||
|
| [Deutsch](./readme_de.md)
|
||||||
|
| [Français](./readme_fr.md)
|
||||||
|
| **Português (BR)**
|
||||||
|
| [한국어](./readme_kr.md)
|
||||||
|
| [বাংলা](./readme_bn.md)
|
||||||
|
| [Español](./readme_es.md)
|
||||||
|
| [Italiano](./readme_it.md)
|
||||||
|
| [Română](./readme_ro.md)
|
||||||
|
| [Polski](./readme_pl.md)
|
||||||
|
| [简体中文](./readme_cn.md)
|
||||||
|
| [正體中文](./readme_zhtw.md)
|
||||||
|
| [العربية](./readme_ar.md)
|
||||||
|
| [日本語](./readme_ja.md)
|
||||||
|
| [ქართული](./readme_ka.md)
|
||||||
|
|
||||||
|
Bruno é um novo e inovador cliente de API, com o objetivo de revolucionar o status quo representado por ferramentas como o Postman e outras semelhantes.
|
||||||
|
|
||||||
|
Bruno armazena suas coleções diretamente em uma pasta no seu sistema de arquivos. Utilizamos uma linguagem de marcação de texto simples, chamada Bru, para salvar informações sobre requisições de API.
|
||||||
|
|
||||||
|
Você pode usar o Git ou qualquer sistema de controle de versão de sua escolha para colaborar em suas coleções de API.
|
||||||
|
|
||||||
|
Bruno é totalmente offline. Não há planos de adicionar sincronização em nuvem ao Bruno, nunca. Valorizamos a privacidade de seus dados e acreditamos que eles devem permanecer em seu dispositivo. Saiba mais sobre nossa visão a longo prazo [aqui](https://github.com/usebruno/bruno/discussions/269).
|
||||||
|
|
||||||
|
📢 Assista à nossa palestra recente na India FOSS 3.0 Conference [aqui](https://www.youtube.com/watch?v=7bSMFpbcPiY).
|
||||||
|
|
||||||
|
![bruno](../../assets/images/landing-2.png) <br /><br />
|
||||||
|
|
||||||
|
### Golden Edition ✨
|
||||||
|
|
||||||
|
A grande maioria dos nossos recursos são gratuitos e de código aberto.
|
||||||
|
Nós nos esforçamos para encontrar um equilíbrio harmônico entre [princípios de código aberto e sustentabilidade](https://github.com/usebruno/bruno/discussions/269)
|
||||||
|
|
||||||
|
Você pode pré encomendar o plano [Golden Edition](https://www.usebruno.com/pricing) por ~~USD $19~~ **USD $9**! <br/>
|
||||||
|
|
||||||
|
### Instalação
|
||||||
|
|
||||||
|
Bruno está disponível para download como binário [em nosso site](https://www.usebruno.com/downloads) para Mac, Windows e Linux.
|
||||||
|
|
||||||
|
Você também pode instalar o Bruno via gerenciadores de pacotes como Homebrew, Chocolatey, Snap e Apt.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# No Mac via Homebrew
|
||||||
|
brew install bruno
|
||||||
|
|
||||||
|
# No Windows via Chocolatey
|
||||||
|
choco install bruno
|
||||||
|
|
||||||
|
# No Windows via Scoop
|
||||||
|
scoop bucket add extras
|
||||||
|
scoop install bruno
|
||||||
|
|
||||||
|
# No Windows via winget
|
||||||
|
winget install Bruno.Bruno
|
||||||
|
|
||||||
|
# No Linux via Snap
|
||||||
|
snap install bruno
|
||||||
|
|
||||||
|
# No Linux via Flatpak
|
||||||
|
flatpak install com.usebruno.Bruno
|
||||||
|
|
||||||
|
# No 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 [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
|
||||||
|
```
|
||||||
|
|
||||||
|
### Execute em várias plataformas 🖥️
|
||||||
|
|
||||||
|
![bruno](../../assets/images/run-anywhere.png) <br /><br />
|
||||||
|
|
||||||
|
### Colaboração via Git 👩💻🧑💻
|
||||||
|
|
||||||
|
Ou qualquer sistema de controle de versão de sua escolha.
|
||||||
|
|
||||||
|
![bruno](../../assets/images/version-control.png) <br /><br />
|
||||||
|
|
||||||
|
### Apoiadores
|
||||||
|
|
||||||
|
#### Apoiadores Gold
|
||||||
|
|
||||||
|
<img src="../../assets/images/sponsors/samagata.png" width="150"/>
|
||||||
|
|
||||||
|
#### Apoiadores Silver
|
||||||
|
|
||||||
|
<img src="../../assets/images/sponsors/commit-company.png" width="70"/>
|
||||||
|
|
||||||
|
#### Apoiadores Bronze
|
||||||
|
|
||||||
|
<a href="https://zuplo.link/bruno">
|
||||||
|
<img src="../../assets/images/sponsors/zuplo.png" width="120"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
### Links Importantes 📌
|
||||||
|
|
||||||
|
- [Nossa Visão de Longo Prazo](https://github.com/usebruno/bruno/discussions/269)
|
||||||
|
- [Roadmap](https://github.com/usebruno/bruno/discussions/384)
|
||||||
|
- [Documentação](https://docs.usebruno.com)
|
||||||
|
- [Stack Overflow](https://stackoverflow.com/questions/tagged/bruno)
|
||||||
|
- [Website](https://www.usebruno.com)
|
||||||
|
- [Preços](https://www.usebruno.com/pricing)
|
||||||
|
- [Download](https://www.usebruno.com/downloads)
|
||||||
|
- [GitHub Sponsors](https://github.com/sponsors/helloanoop)
|
||||||
|
|
||||||
|
### Showcase 🎥
|
||||||
|
|
||||||
|
- [Depoimentos](https://github.com/usebruno/bruno/discussions/343)
|
||||||
|
- [Hub de Conhecimento](https://github.com/usebruno/bruno/discussions/386)
|
||||||
|
- [Scriptmania](https://github.com/usebruno/bruno/discussions/385)
|
||||||
|
|
||||||
|
### Apoie ❤️
|
||||||
|
|
||||||
|
Au-au! Se você gosta do projeto e deseja apoiar nosso trabalho, considere nos ajudando via [GitHub Sponsors](https://github.com/sponsors/helloanoop).
|
||||||
|
|
||||||
|
### Compartilhe sua experiência 📣
|
||||||
|
|
||||||
|
Se o Bruno ajudou no seu trabalho e/ou no trabalho de sua equipe, por favor, não se esqueça de compartilhar seu [depoimento em nossas discussões no GitHub](https://github.com/usebruno/bruno/discussions/343).
|
||||||
|
|
||||||
|
### Publicando em Novos Gerenciadores de Pacotes
|
||||||
|
|
||||||
|
Por favor, verifique [aqui](../publishing/publishing_pt_br.md) mais informações.
|
||||||
|
|
||||||
|
### Mantenha Contato 🌐
|
||||||
|
|
||||||
|
[𝕏 (Twitter)](https://twitter.com/use_bruno) <br />
|
||||||
|
[Website](https://www.usebruno.com) <br />
|
||||||
|
[Discord](https://discord.com/invite/KgcZUncpjq) <br />
|
||||||
|
[LinkedIn](https://www.linkedin.com/company/usebruno)
|
||||||
|
|
||||||
|
### Trademark
|
||||||
|
|
||||||
|
**Nome**
|
||||||
|
|
||||||
|
`Bruno` é uma marca registrada de [Anoop M D](https://www.helloanoop.com/).
|
||||||
|
|
||||||
|
**Logo**
|
||||||
|
|
||||||
|
A logo é original do [OpenMoji](https://openmoji.org/library/emoji-1F436/). Licença: CC [BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/).
|
||||||
|
|
||||||
|
### Colabore 👩💻🧑💻
|
||||||
|
|
||||||
|
Fico feliz que você queira melhorar o Bruno. Por favor, confira o [guia de colaboração](../contributing/contributing_pt_br.md).
|
||||||
|
|
||||||
|
Mesmo que você não possa contribuir codificando, não deixe de relatar problemas e solicitar recursos que precisam ser implementados para atender ao contexto de seu dia a dia.
|
||||||
|
|
||||||
|
### Contribuidores
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<a href="https://github.com/usebruno/bruno/graphs/contributors">
|
||||||
|
<img src="https://contrib.rocks/image?repo=usebruno/bruno" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
### Licença 📄
|
||||||
|
|
||||||
|
[MIT](../../license.md)
|
142
docs/readme/readme_ro.md
Normal file
142
docs/readme/readme_ro.md
Normal file
@ -0,0 +1,142 @@
|
|||||||
|
<br />
|
||||||
|
<img src="../../assets/images/logo-transparent.png" width="80"/>
|
||||||
|
|
||||||
|
### Bruno - Mediu integrat de dezvoltare cu sursă deschisă pentru explorarea și testarea API-urilor.
|
||||||
|
|
||||||
|
[![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)
|
||||||
|
| [Українська](./readme_ua.md)
|
||||||
|
| [Русский](./readme_ru.md)
|
||||||
|
| [Türkçe](./readme_tr.md)
|
||||||
|
| [Deutsch](./readme_de.md)
|
||||||
|
| [Français](./readme_fr.md)
|
||||||
|
| [Português (BR)](./readme_pt_br.md)
|
||||||
|
| [한국어](./readme_kr.md)
|
||||||
|
| [বাংলা](./readme_bn.md)
|
||||||
|
| [Español](./readme_es.md)
|
||||||
|
| [Italiano](./readme_it.md)
|
||||||
|
| **Română**
|
||||||
|
| [Polski](./readme_pl.md)
|
||||||
|
| [简体中文](./readme_cn.md)
|
||||||
|
| [正體中文](./readme_zhtw.md)
|
||||||
|
| [العربية](./readme_ar.md)
|
||||||
|
| [日本語](./readme_ja.md)
|
||||||
|
| [ქართული](./readme_ka.md)
|
||||||
|
|
||||||
|
Bruno este un client API nou și inovativ, care vizează să revoluționeze status quo-ul reprezentat de Postman și alte instrumente similare.
|
||||||
|
|
||||||
|
Bruno salvează colecțiile voastre direct într-o mapă din sistemul dvs. de fișiere. Folosim un limbaj de marcare cu text simplu, Bru, pentru a salva informații despre cererile API.
|
||||||
|
|
||||||
|
Puteți folosi Git sau orice altă unealtă de control al versiunii la alegere pentru a colabora la colecțiile API voastre.
|
||||||
|
|
||||||
|
Bruno este numai offline. Nu va exista niciodată vreun plan pentru a adăuga sincronizarea cloud la Bruno. Noi valorăm confidențialitatea datelor voastre și credem că ar trebui să rămână pe dispozitivul vostru. Citiți viziunea noastră pe termen lung [aici](https://github.com/usebruno/bruno/discussions/269)
|
||||||
|
|
||||||
|
📢 Priviți prezentarea noastră recentă de la India FOSS 3.0 Conference [aici](https://www.youtube.com/watch?v=7bSMFpbcPiY)
|
||||||
|
|
||||||
|
![bruno](/assets/images/landing-2.png) <br /><br />
|
||||||
|
|
||||||
|
### Instalarea
|
||||||
|
|
||||||
|
Bruno este disponibil ca descărcare binară [pe website-ul nostru](https://www.usebruno.com/downloads) pentru Mac, Windows și Linux.
|
||||||
|
|
||||||
|
De asemenea, puteţi instala Bruno cu un gestionar de pachete precum Homebrew, Chocolatey, Snap şi Apt.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Pe Mac cu Homebrew
|
||||||
|
brew install bruno
|
||||||
|
|
||||||
|
# Pe Windows cu Chocolatey
|
||||||
|
choco install bruno
|
||||||
|
|
||||||
|
# Pe Linux cu Snap
|
||||||
|
snap install bruno
|
||||||
|
|
||||||
|
# Pe Linux cu 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 [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
|
||||||
|
```
|
||||||
|
|
||||||
|
### Utilizați pe mai multe platforme 🖥️
|
||||||
|
|
||||||
|
![bruno](/assets/images/run-anywhere.png) <br /><br />
|
||||||
|
|
||||||
|
### Colaborați cu Git 👩💻🧑💻
|
||||||
|
|
||||||
|
Sau orice unealtă de control al versiunii la alegere
|
||||||
|
|
||||||
|
![bruno](/assets/images/version-control.png) <br /><br />
|
||||||
|
|
||||||
|
### Linkuri importante 📌
|
||||||
|
|
||||||
|
- [Viziunea noastră pe termen lung](https://github.com/usebruno/bruno/discussions/269)
|
||||||
|
- [Roadmap](https://github.com/usebruno/bruno/discussions/384)
|
||||||
|
- [Documentație](https://docs.usebruno.com)
|
||||||
|
- [Stack Overflow](https://stackoverflow.com/questions/tagged/bruno)
|
||||||
|
- [Website](https://www.usebruno.com)
|
||||||
|
- [Prețuri](https://www.usebruno.com/pricing)
|
||||||
|
- [Descărcări](https://www.usebruno.com/downloads)
|
||||||
|
- [Sponsori GitHub](https://github.com/sponsors/helloanoop).
|
||||||
|
|
||||||
|
### Vitrina 🎥
|
||||||
|
|
||||||
|
- [Recenzii](https://github.com/usebruno/bruno/discussions/343)
|
||||||
|
- [Centrul de cunoștințe](https://github.com/usebruno/bruno/discussions/386)
|
||||||
|
- [Scriptmania](https://github.com/usebruno/bruno/discussions/385)
|
||||||
|
|
||||||
|
### Sprijiniți ❤️
|
||||||
|
|
||||||
|
Dacă vă place Bruno și doriți să sprijiniți munca noastră de sursă deschisă, puteți considera să ne sponsorizați [pe GitHub](https://github.com/sponsors/helloanoop).
|
||||||
|
|
||||||
|
### Distribuiți recenziile 📣
|
||||||
|
|
||||||
|
Dacă Bruno va ajutat la locul de muncă și la echipele dvs., vă rugăm să nu uitați să distribuiți [recenziile în discuția noastră GitHub](https://github.com/usebruno/bruno/discussions/343)
|
||||||
|
|
||||||
|
### Publicarea la gestionari de pachete noi
|
||||||
|
|
||||||
|
Vă rugăm să citiţi [aici](../publishing/publishing_ro.md) pentru mai multă informaţie.
|
||||||
|
|
||||||
|
### Contribuiți 👩💻🧑💻
|
||||||
|
|
||||||
|
Mă bucur că doriți să îmbunătățiți Bruno. Vă rugăm să consultați [ghidul pentru contribuire](../contributing/contributing_ro.md)
|
||||||
|
|
||||||
|
Chiar dacă nu puteți face contribuții prin cod, vă rugăm să nu ezitați să raportați erori și să solicitați funcții care trebuie implementate pentru a rezolva cazul dvs. de utilizare.
|
||||||
|
|
||||||
|
### Autori
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<a href="https://github.com/usebruno/bruno/graphs/contributors">
|
||||||
|
<img src="https://contrib.rocks/image?repo=usebruno/bruno" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
### Păstrați legătura 🌐
|
||||||
|
|
||||||
|
[𝕏 (Twitter)](https://twitter.com/use_bruno) <br />
|
||||||
|
[Website](https://www.usebruno.com) <br />
|
||||||
|
[Discord](https://discord.com/invite/KgcZUncpjq) <br />
|
||||||
|
[LinkedIn](https://www.linkedin.com/company/usebruno)
|
||||||
|
|
||||||
|
### Marcă comercială
|
||||||
|
|
||||||
|
**Nume**
|
||||||
|
|
||||||
|
`Bruno` este o marcă deținută de [Anoop M D](https://www.helloanoop.com/)
|
||||||
|
|
||||||
|
**Logo**
|
||||||
|
|
||||||
|
Logo-ul provine de la [OpenMoji](https://openmoji.org/library/emoji-1F436/). Licența: CC [BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)
|
||||||
|
|
||||||
|
### Licența 📄
|
||||||
|
|
||||||
|
[MIT](../../license.md)
|
@ -1,16 +1,33 @@
|
|||||||
<br />
|
<br />
|
||||||
<img src="assets/images/logo-transparent.png" width="80"/>
|
<img src="../../assets/images/logo-transparent.png" width="80"/>
|
||||||
|
|
||||||
### Bruno - IDE с открытым исходным кодом для изучения и тестирования API.
|
### Bruno - IDE с открытым исходным кодом для изучения и тестирования API.
|
||||||
|
|
||||||
[![GitHub version](https://badge.fury.io/gh/usebruno%2Fbruno.svg)](https://badge.fury.io/gh/usebruno%bruno)
|
[![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)
|
[![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)
|
[![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)
|
[![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)
|
[![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)
|
[![Download](https://img.shields.io/badge/Download-Latest-brightgreen)](https://www.usebruno.com/downloads)
|
||||||
|
|
||||||
[English](/readme.md) | [Українська](/readme_ua.md) | **Русский**
|
[English](../../readme.md)
|
||||||
|
| [Українська](./readme_ua.md)
|
||||||
|
| **Русский**
|
||||||
|
| [Türkçe](./readme_tr.md)
|
||||||
|
| [Deutsch](./readme_de.md)
|
||||||
|
| [Français](./readme_fr.md)
|
||||||
|
| [Português (BR)](./readme_pt_br.md)
|
||||||
|
| [한국어](./readme_kr.md)
|
||||||
|
| [বাংলা](./readme_bn.md)
|
||||||
|
| [Español](./readme_es.md)
|
||||||
|
| [Italiano](./readme_it.md)
|
||||||
|
| [Română](./readme_ro.md)
|
||||||
|
| [Polski](./readme_pl.md)
|
||||||
|
| [简体中文](./readme_cn.md)
|
||||||
|
| [正體中文](./readme_zhtw.md)
|
||||||
|
| [العربية](./readme_ar.md)
|
||||||
|
| [日本語](./readme_ja.md)
|
||||||
|
| [ქართული](./readme_ka.md)
|
||||||
|
|
||||||
Bruno - новый и инновационный клиент API, направленный на революцию в установившейся ситуации, представленной Postman и подобными инструментами.
|
Bruno - новый и инновационный клиент API, направленный на революцию в установившейся ситуации, представленной Postman и подобными инструментами.
|
||||||
|
|
||||||
@ -20,17 +37,17 @@ Bruno хранит ваши коллекции непосредственно в
|
|||||||
|
|
||||||
Bruno работает только в автономном режиме. Добавление облачной синхронизации в Bruno не планируется. Мы ценим конфиденциальность ваших данных и считаем, что они должны оставаться на вашем устройстве. Ознакомьтесь с нашим долгосрочным видением [здесь](https://github.com/usebruno/bruno/discussions/269)
|
Bruno работает только в автономном режиме. Добавление облачной синхронизации в Bruno не планируется. Мы ценим конфиденциальность ваших данных и считаем, что они должны оставаться на вашем устройстве. Ознакомьтесь с нашим долгосрочным видением [здесь](https://github.com/usebruno/bruno/discussions/269)
|
||||||
|
|
||||||
![bruno](assets/images/landing-2.png) <br /><br />
|
![bruno](/assets/images/landing-2.png) <br /><br />
|
||||||
|
|
||||||
### Работа на нескольких платформах 🖥️
|
### Работа на нескольких платформах 🖥️
|
||||||
|
|
||||||
![bruno](assets/images/run-anywhere.png) <br /><br />
|
![bruno](/assets/images/run-anywhere.png) <br /><br />
|
||||||
|
|
||||||
### Совместная работа через Git 👩💻🧑💻
|
### Совместная работа через Git 👩💻🧑💻
|
||||||
|
|
||||||
Или другая система контроля версий по вашему выбору
|
Или другая система контроля версий по вашему выбору
|
||||||
|
|
||||||
![bruno](assets/images/version-control.png) <br /><br />
|
![bruno](/assets/images/version-control.png) <br /><br />
|
||||||
|
|
||||||
### Важные ссылки 📌
|
### Важные ссылки 📌
|
||||||
|
|
||||||
@ -56,7 +73,7 @@ Bruno работает только в автономном режиме. Доб
|
|||||||
|
|
||||||
### Внести вклад 👩💻🧑💻
|
### Внести вклад 👩💻🧑💻
|
||||||
|
|
||||||
Я рад, что Вы хотите улучшить Бруно. Пожалуйста, ознакомьтесь с [этим гайдом](contributing_ru.md)
|
Я рад, что Вы хотите улучшить Бруно. Пожалуйста, ознакомьтесь с [этим гайдом](../contributing/contributing_ru.md)
|
||||||
|
|
||||||
Даже если вы не можете внести свой вклад с помощью кода, пожалуйста, не стесняйтесь сообщать об ошибках и пожеланиях к функциям, которые необходимо реализовать для решения вашей задачи.
|
Даже если вы не можете внести свой вклад с помощью кода, пожалуйста, не стесняйтесь сообщать об ошибках и пожеланиях к функциям, которые необходимо реализовать для решения вашей задачи.
|
||||||
|
|
||||||
@ -76,4 +93,4 @@ Bruno работает только в автономном режиме. Доб
|
|||||||
|
|
||||||
### Лицензия 📄
|
### Лицензия 📄
|
||||||
|
|
||||||
[MIT](license.md)
|
[MIT](../../license.md)
|
146
docs/readme/readme_tr.md
Normal file
146
docs/readme/readme_tr.md
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
<br />
|
||||||
|
<img src="../../assets/images/logo-transparent.png" width="80"/>
|
||||||
|
|
||||||
|
### 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/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)
|
||||||
|
[![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)
|
||||||
|
|
||||||
|
[English](../../readme.md)
|
||||||
|
| [Українська](./readme_ua.md)
|
||||||
|
| [Русский](./readme_ru.md)
|
||||||
|
| **Türkçe**
|
||||||
|
| [Deutsch](./readme_de.md)
|
||||||
|
| [Français](./readme_fr.md)
|
||||||
|
| [Português (BR)](./readme_pt_br.md)
|
||||||
|
| [한국어](./readme_kr.md)
|
||||||
|
| [বাংলা](./readme_bn.md)
|
||||||
|
| [Español](./readme_es.md)
|
||||||
|
| [Italiano](./readme_it.md)
|
||||||
|
| [Română](./readme_ro.md)
|
||||||
|
| [Polski](./readme_pl.md)
|
||||||
|
| [简体中文](./readme_cn.md)
|
||||||
|
| [正體中文](./readme_zhtw.md)
|
||||||
|
| [العربية](./readme_ar.md)
|
||||||
|
| [日本語](./readme_ja.md)
|
||||||
|
| [ქართული](./readme_ka.md)
|
||||||
|
|
||||||
|
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)
|
||||||
|
|
||||||
|
📢 Hindistan FOSS 3.0 Konferansındaki son konuşmamızı izleyin [burada](https://www.youtube.com/watch?v=7bSMFpbcPiY)
|
||||||
|
|
||||||
|
![bruno](/assets/images/landing-2.png) <br /><br />
|
||||||
|
|
||||||
|
### Kurulum
|
||||||
|
|
||||||
|
Bruno Mac, Windows ve Linux için ikili indirme olarak [web sitemizde](https://www.usebruno.com/downloads) mevcuttur.
|
||||||
|
|
||||||
|
Bruno'yu Homebrew, Chocolatey, Scoop, Snap ve Apt gibi paket yöneticileri aracılığıyla da yükleyebilirsiniz.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Homebrew aracılığıyla Mac'te
|
||||||
|
brew install bruno
|
||||||
|
|
||||||
|
# Chocolatey aracılığıyla Windows'ta
|
||||||
|
choco install bruno
|
||||||
|
|
||||||
|
# Scoop aracılığıyla Windows'ta
|
||||||
|
scoop bucket add extras
|
||||||
|
scoop install bruno
|
||||||
|
|
||||||
|
# Snap aracılığıyla Linux'ta
|
||||||
|
snap install bruno
|
||||||
|
|
||||||
|
# Apt aracılığıyla Linux'ta
|
||||||
|
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 [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
|
||||||
|
```
|
||||||
|
|
||||||
|
### Birden fazla platformda çalıştırın 🖥️
|
||||||
|
|
||||||
|
![bruno](/assets/images/run-anywhere.png) <br /><br />
|
||||||
|
|
||||||
|
### Git üzerinden katkıda bulunun 👩💻🧑💻
|
||||||
|
|
||||||
|
Veya seçtiğiniz herhangi bir sürüm kontrol sistemi
|
||||||
|
|
||||||
|
![bruno](/assets/images/version-control.png) <br /><br />
|
||||||
|
|
||||||
|
### Ö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)
|
||||||
|
- [Stack Overflow](https://stackoverflow.com/questions/tagged/bruno)
|
||||||
|
- [Web sitesi](https://www.usebruno.com)
|
||||||
|
- [Fiyatlandırma](https://www.usebruno.com/pricing)
|
||||||
|
- [İndir](https://www.usebruno.com/downloads)
|
||||||
|
- [GitHub Sponsorları](https://github.com/sponsors/helloanoop).
|
||||||
|
|
||||||
|
### 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 ❤️
|
||||||
|
|
||||||
|
Bruno'yu seviyorsanız ve açık kaynak çalışmalarımızı desteklemek istiyorsanız, [GitHub Sponsorları](https://github.com/sponsors/helloanoop) aracılığıyla bize sponsor olmayı düşünü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.
|
||||||
|
|
||||||
|
### Yeni Paket Yöneticilerine Yayınlama
|
||||||
|
|
||||||
|
Daha fazla bilgi için lütfen [buraya](../publishing/publishing_tr.md) bakın.
|
||||||
|
|
||||||
|
### Katkıda Bulunun 👩💻🧑💻
|
||||||
|
|
||||||
|
Bruno'yu geliştirmek istemenize sevindim. Lütfen [katkıda bulunma kılavuzuna](../contributing/contributing_tr.md) 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
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<a href="https://github.com/usebruno/bruno/graphs/contributors">
|
||||||
|
<img src="https://contrib.rocks/image?repo=usebruno/bruno" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
### İletişimde Kalın 🌐
|
||||||
|
|
||||||
|
[𝕏 (Twitter)](https://twitter.com/use_bruno) <br />
|
||||||
|
[Website](https://www.usebruno.com) <br />
|
||||||
|
[Discord](https://discord.com/invite/KgcZUncpjq) <br />
|
||||||
|
[LinkedIn](https://www.linkedin.com/company/usebruno)
|
||||||
|
|
||||||
|
### Ticari Marka
|
||||||
|
|
||||||
|
**İsim**
|
||||||
|
|
||||||
|
`Bruno` [Anoop M D](https://www.helloanoop.com/) tarafından sahip olunan bir ticari markadır.
|
||||||
|
|
||||||
|
**Logo**
|
||||||
|
|
||||||
|
Logo [OpenMoji](https://openmoji.org/library/emoji-1F436/) adresinden alınmıştır. Lisans: CC [BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)
|
||||||
|
|
||||||
|
### Lisans 📄
|
||||||
|
|
||||||
|
[MIT](../../license.md)
|
@ -1,16 +1,33 @@
|
|||||||
<br />
|
<br />
|
||||||
<img src="assets/images/logo-transparent.png" width="80"/>
|
<img src="../../assets/images/logo-transparent.png" width="80"/>
|
||||||
|
|
||||||
### Bruno - IDE із відкритим кодом для тестування та дослідження API
|
### Bruno - IDE із відкритим кодом для тестування та дослідження API
|
||||||
|
|
||||||
[![GitHub version](https://badge.fury.io/gh/usebruno%2Fbruno.svg)](https://badge.fury.io/gh/usebruno%bruno)
|
[![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)
|
[![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)
|
[![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)
|
[![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)
|
[![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)
|
[![Download](https://img.shields.io/badge/Download-Latest-brightgreen)](https://www.usebruno.com/downloads)
|
||||||
|
|
||||||
[English](/readme.md) | **Українська** | [Русский](/readme_ru.md)
|
[English](../../readme.md)
|
||||||
|
| **Українська**
|
||||||
|
| [Русский](./readme_ru.md)
|
||||||
|
| [Türkçe](./readme_tr.md)
|
||||||
|
| [Deutsch](./readme_de.md)
|
||||||
|
| [Français](./readme_fr.md)
|
||||||
|
| [Português (BR)](./readme_pt_br.md)
|
||||||
|
| [한국어](./readme_kr.md)
|
||||||
|
| [বাংলা](./readme_bn.md)
|
||||||
|
| [Español](./readme_es.md)
|
||||||
|
| [Italiano](./readme_it.md)
|
||||||
|
| [Română](./readme_ro.md)
|
||||||
|
| [Polski](./readme_pl.md)
|
||||||
|
| [简体中文](./readme_cn.md)
|
||||||
|
| [正體中文](./readme_zhtw.md)
|
||||||
|
| [العربية](./readme_ar.md)
|
||||||
|
| [日本語](./readme_ja.md)
|
||||||
|
| [ქართული](./readme_ka.md)
|
||||||
|
|
||||||
Bruno це новий та іноваційний API клієнт, націлений на революційну зміну статус кво, запровадженого інструментами на кшталт Postman.
|
Bruno це новий та іноваційний API клієнт, націлений на революційну зміну статус кво, запровадженого інструментами на кшталт Postman.
|
||||||
|
|
||||||
@ -20,17 +37,17 @@ Bruno зберігає ваші колекції напряму у теці на
|
|||||||
|
|
||||||
Bruno є повністю автономним. Немає жодних планів додавати будь-які синхронізації через хмару, ніколи. Ми цінуємо приватність ваших даних, і вважаєм, що вони мають залишитись лише на вашому комп'ютері. Взнати більше про наше бачення у довготривалій перспективі можна [тут](https://github.com/usebruno/bruno/discussions/269)
|
Bruno є повністю автономним. Немає жодних планів додавати будь-які синхронізації через хмару, ніколи. Ми цінуємо приватність ваших даних, і вважаєм, що вони мають залишитись лише на вашому комп'ютері. Взнати більше про наше бачення у довготривалій перспективі можна [тут](https://github.com/usebruno/bruno/discussions/269)
|
||||||
|
|
||||||
![bruno](assets/images/landing-2.png) <br /><br />
|
![bruno](/assets/images/landing-2.png) <br /><br />
|
||||||
|
|
||||||
### Кросплатформенність 🖥️
|
### Кросплатформенність 🖥️
|
||||||
|
|
||||||
![bruno](assets/images/run-anywhere.png) <br /><br />
|
![bruno](/assets/images/run-anywhere.png) <br /><br />
|
||||||
|
|
||||||
### Спільна робота через Git 👩💻🧑💻
|
### Спільна робота через Git 👩💻🧑💻
|
||||||
|
|
||||||
Або будь-яку іншу систему контролю версій на ваш вибір
|
Або будь-яку іншу систему контролю версій на ваш вибір
|
||||||
|
|
||||||
![bruno](assets/images/version-control.png) <br /><br />
|
![bruno](/assets/images/version-control.png) <br /><br />
|
||||||
|
|
||||||
### Важливі посилання 📌
|
### Важливі посилання 📌
|
||||||
|
|
||||||
@ -56,7 +73,7 @@ Bruno є повністю автономним. Немає жодних план
|
|||||||
|
|
||||||
### Зробити свій внесок 👩💻🧑💻
|
### Зробити свій внесок 👩💻🧑💻
|
||||||
|
|
||||||
Я радий що ви бажаєте покращити Bruno. Будь ласка переглянте [інструкцію по контрибуції](contributing_ua.md)
|
Я радий що ви бажаєте покращити Bruno. Будь ласка переглянте [інструкцію по контрибуції](../contributing/contributing_ua.md)
|
||||||
|
|
||||||
Навіть якщо ви не можете зробити свій внесок пишучи програмний код, будь ласка не соромтесь рапортувати про помилки і писати запити на новий функціонал, який потрібен вам у вашій роботі.
|
Навіть якщо ви не можете зробити свій внесок пишучи програмний код, будь ласка не соромтесь рапортувати про помилки і писати запити на новий функціонал, який потрібен вам у вашій роботі.
|
||||||
|
|
||||||
@ -72,9 +89,9 @@ Bruno є повністю автономним. Немає жодних план
|
|||||||
|
|
||||||
[Twitter](https://twitter.com/use_bruno) <br />
|
[Twitter](https://twitter.com/use_bruno) <br />
|
||||||
[Сайт](https://www.usebruno.com) <br />
|
[Сайт](https://www.usebruno.com) <br />
|
||||||
[Discord](https://discord.com/invite/KgcZUncpjq)
|
[Discord](https://discord.com/invite/KgcZUncpjq) <br />
|
||||||
[LinkedIn](https://www.linkedin.com/company/usebruno)
|
[LinkedIn](https://www.linkedin.com/company/usebruno)
|
||||||
|
|
||||||
### Ліцензія 📄
|
### Ліцензія 📄
|
||||||
|
|
||||||
[MIT](license.md)
|
[MIT](../../license.md)
|
146
docs/readme/readme_zhtw.md
Normal file
146
docs/readme/readme_zhtw.md
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
<br />
|
||||||
|
<img src="../../assets/images/logo-transparent.png" width="80"/>
|
||||||
|
|
||||||
|
### Bruno - 探索和測試 API 的開源 IDE 工具
|
||||||
|
|
||||||
|
[![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)
|
||||||
|
[![网站](https://img.shields.io/badge/Website-Visit-blue)](https://www.usebruno.com)
|
||||||
|
[![下载](https://img.shields.io/badge/Download-Latest-brightgreen)](https://www.usebruno.com/downloads)
|
||||||
|
|
||||||
|
[English](../../readme.md)
|
||||||
|
| [Українська](./readme_ua.md)
|
||||||
|
| [Русский](./readme_ru.md)
|
||||||
|
| [Türkçe](./readme_tr.md)
|
||||||
|
| [Deutsch](./readme_de.md)
|
||||||
|
| [Français](./readme_fr.md)
|
||||||
|
| [Português (BR)](./readme_pt_br.md)
|
||||||
|
| [한국어](./readme_kr.md)
|
||||||
|
| [বাংলা](./readme_bn.md)
|
||||||
|
| [Español](./readme_es.md)
|
||||||
|
| [Italiano](./readme_it.md)
|
||||||
|
| [Română](./readme_ro.md)
|
||||||
|
| [Polski](./readme_pl.md)
|
||||||
|
| [简体中文](./readme_cn.md)
|
||||||
|
| **正體中文**
|
||||||
|
| [العربية](./readme_ar.md)
|
||||||
|
| [日本語](./readme_ja.md)
|
||||||
|
| [ქართული](./readme_ka.md)
|
||||||
|
|
||||||
|
Bruno 是一個全新且有創新性的 API 用戶端,目的在徹底改變以 Postman 和其他類似工具的現況。
|
||||||
|
|
||||||
|
Bruno 將您的 API 集合直接儲存在檔案系統上的資料夾中。我們以純文本標記語言- Bru,來儲存和 API 有關的資訊。
|
||||||
|
|
||||||
|
您可以使用 Git 或您選擇的任何版本管理軟體,來管理及協作 API 集合。
|
||||||
|
|
||||||
|
Bruno 僅能夠離線使用,永遠不會計劃為 Bruno 增加雲端同步的功能。我們重視您的資料隱私,並相信它應該保留在您的裝置上。瞭解我們的長期願景 [連結](https://github.com/usebruno/bruno/discussions/269)
|
||||||
|
|
||||||
|
📢 觀看我們最近在 India FOSS 3.0 研討會上的演講 [連結](https://www.youtube.com/watch?v=7bSMFpbcPiY)
|
||||||
|
|
||||||
|
![bruno](../../assets/images/landing-2.png) <br /><br />
|
||||||
|
|
||||||
|
### 安装
|
||||||
|
|
||||||
|
可以在我們的 [網站上下載](https://www.usebruno.com/downloads) 跨平臺(Mac、Windows 和 Linux)的 Bruno 程式檔。
|
||||||
|
|
||||||
|
您也可以透過套件管理程式來安裝 Bruno,如:Homebrew、Chocolatey、Scoop、Snap 和 Apt。
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# 在 Mac 上使用 Homebrew 安裝
|
||||||
|
brew install bruno
|
||||||
|
|
||||||
|
# 在 Windows 上使用 Chocolatey 安裝
|
||||||
|
choco install bruno
|
||||||
|
|
||||||
|
# 在 Windows 上使用 Scoop 安裝
|
||||||
|
scoop bucket add extras
|
||||||
|
scoop install bruno
|
||||||
|
|
||||||
|
# 在 Linux 上使用 Snap 安裝
|
||||||
|
snap install bruno
|
||||||
|
|
||||||
|
# 在 Linux 上使用 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 [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
|
||||||
|
```
|
||||||
|
|
||||||
|
### 跨多個平台運行 🖥️
|
||||||
|
|
||||||
|
![bruno](../../assets/images/run-anywhere.png) <br /><br />
|
||||||
|
|
||||||
|
### 透過 Git 進行協作 👩💻🧑💻
|
||||||
|
|
||||||
|
您選擇的任何版本管理軟體
|
||||||
|
|
||||||
|
![bruno](../../assets/images/version-control.png) <br /><br />
|
||||||
|
|
||||||
|
### 重要連結 📌
|
||||||
|
|
||||||
|
- [我們的長期願景](https://github.com/usebruno/bruno/discussions/269)
|
||||||
|
- [藍圖](https://github.com/usebruno/bruno/discussions/384)
|
||||||
|
- [說明文件](https://docs.usebruno.com)
|
||||||
|
- [Stack Overflow](https://stackoverflow.com/questions/tagged/bruno)
|
||||||
|
- [網站](https://www.usebruno.com)
|
||||||
|
- [定價](https://www.usebruno.com/pricing)
|
||||||
|
- [下載](https://www.usebruno.com/downloads)
|
||||||
|
- [GitHub 贊助](https://github.com/sponsors/helloanoop).
|
||||||
|
|
||||||
|
### 展示 🎥
|
||||||
|
|
||||||
|
- [Testimonials](https://github.com/usebruno/bruno/discussions/343)
|
||||||
|
- [Knowledge Hub](https://github.com/usebruno/bruno/discussions/386)
|
||||||
|
- [Scriptmania](https://github.com/usebruno/bruno/discussions/385)
|
||||||
|
|
||||||
|
### 贊助支持 ❤️
|
||||||
|
|
||||||
|
如果您喜歡 Bruno 和希望支持我們在開源上的工作,請考慮使用 [GitHub Sponsors](https://github.com/sponsors/helloanoop) 來贊助我們。
|
||||||
|
|
||||||
|
### 分享感想 📣
|
||||||
|
|
||||||
|
如果 Bruno 在工作和您的團隊中為您提供了幫助,請不要忘記在我們的 [GitHub 討論區](https://github.com/usebruno/bruno/discussions/343) 中分享您的感想。
|
||||||
|
|
||||||
|
### 發佈到新的套件管理器
|
||||||
|
|
||||||
|
更多資訊,請參考這個 [連結](../publishing/publishing_zhtw.md) 。
|
||||||
|
|
||||||
|
### 持續關注 🌐
|
||||||
|
|
||||||
|
[𝕏 (Twitter)](https://twitter.com/use_bruno) <br />
|
||||||
|
[Website](https://www.usebruno.com) <br />
|
||||||
|
[Discord](https://discord.com/invite/KgcZUncpjq) <br />
|
||||||
|
[LinkedIn](https://www.linkedin.com/company/usebruno)
|
||||||
|
|
||||||
|
### 商標
|
||||||
|
|
||||||
|
**名稱**
|
||||||
|
|
||||||
|
`Bruno` 是 [Anoop M D](https://www.helloanoop.com/) 持有的商標。
|
||||||
|
|
||||||
|
**Logo**
|
||||||
|
|
||||||
|
Logo 源自於 [OpenMoji](https://openmoji.org/library/emoji-1F436/)。授權: CC [BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)
|
||||||
|
|
||||||
|
### 提供貢獻 👩💻🧑💻
|
||||||
|
|
||||||
|
我很高興您希望一同改善 Bruno。請參考 [貢獻指南](../contributing/contributing_zhtw.md)。
|
||||||
|
|
||||||
|
即使您無法透過程式碼做出貢獻,我們仍然歡迎您提出 Bug 及新的實作需求。
|
||||||
|
|
||||||
|
### 作者們
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<a href="https://github.com/usebruno/bruno/graphs/contributors">
|
||||||
|
<img src="https://contrib.rocks/image?repo=usebruno/bruno" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
### 授權許可 📄
|
||||||
|
|
||||||
|
[MIT](../../license.md)
|
23815
package-lock.json
generated
23815
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
20
package.json
20
package.json
@ -5,12 +5,13 @@
|
|||||||
"packages/bruno-app",
|
"packages/bruno-app",
|
||||||
"packages/bruno-electron",
|
"packages/bruno-electron",
|
||||||
"packages/bruno-cli",
|
"packages/bruno-cli",
|
||||||
"packages/bruno-tauri",
|
"packages/bruno-common",
|
||||||
"packages/bruno-schema",
|
"packages/bruno-schema",
|
||||||
"packages/bruno-query",
|
"packages/bruno-query",
|
||||||
"packages/bruno-js",
|
"packages/bruno-js",
|
||||||
"packages/bruno-lang",
|
"packages/bruno-lang",
|
||||||
"packages/bruno-testbench",
|
"packages/bruno-tests",
|
||||||
|
"packages/bruno-toml",
|
||||||
"packages/bruno-graphql-docs"
|
"packages/bruno-graphql-docs"
|
||||||
],
|
],
|
||||||
"homepage": "https://usebruno.com",
|
"homepage": "https://usebruno.com",
|
||||||
@ -18,18 +19,23 @@
|
|||||||
"@faker-js/faker": "^7.6.0",
|
"@faker-js/faker": "^7.6.0",
|
||||||
"@jest/globals": "^29.2.0",
|
"@jest/globals": "^29.2.0",
|
||||||
"@playwright/test": "^1.27.1",
|
"@playwright/test": "^1.27.1",
|
||||||
|
"@types/jest": "^29.5.11",
|
||||||
|
"concurrently": "^8.2.2",
|
||||||
|
"fs-extra": "^11.1.1",
|
||||||
"husky": "^8.0.3",
|
"husky": "^8.0.3",
|
||||||
"jest": "^29.2.0",
|
"jest": "^29.2.0",
|
||||||
"pretty-quick": "^3.1.3",
|
"pretty-quick": "^3.1.3",
|
||||||
"randomstring": "^1.2.2",
|
"randomstring": "^1.2.2",
|
||||||
"ts-jest": "^29.0.5",
|
"rimraf": "^6.0.1",
|
||||||
"fs-extra": "^11.1.1"
|
"ts-jest": "^29.0.5"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"dev": "concurrently --kill-others \"npm run dev:web\" \"npm run dev:electron\"",
|
||||||
"dev:web": "npm run dev --workspace=packages/bruno-app",
|
"dev:web": "npm run dev --workspace=packages/bruno-app",
|
||||||
"build:web": "npm run build --workspace=packages/bruno-app",
|
"build:web": "npm run build --workspace=packages/bruno-app",
|
||||||
"prettier:web": "npm run prettier --workspace=packages/bruno-app",
|
"prettier:web": "npm run prettier --workspace=packages/bruno-app",
|
||||||
"dev:electron": "npm run dev --workspace=packages/bruno-electron",
|
"dev:electron": "npm run dev --workspace=packages/bruno-electron",
|
||||||
|
"build:bruno-common": "npm run build --workspace=packages/bruno-common",
|
||||||
"build:bruno-query": "npm run build --workspace=packages/bruno-query",
|
"build:bruno-query": "npm run build --workspace=packages/bruno-query",
|
||||||
"build:graphql-docs": "npm run build --workspace=packages/bruno-graphql-docs",
|
"build:graphql-docs": "npm run build --workspace=packages/bruno-graphql-docs",
|
||||||
"build:electron": "node ./scripts/build-electron.js",
|
"build:electron": "node ./scripts/build-electron.js",
|
||||||
@ -45,6 +51,10 @@
|
|||||||
"prepare": "husky install"
|
"prepare": "husky install"
|
||||||
},
|
},
|
||||||
"overrides": {
|
"overrides": {
|
||||||
"rollup": "3.2.5"
|
"rollup":"3.29.4"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"json-bigint": "^1.0.0",
|
||||||
|
"lossless-json": "^4.0.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
ENV=production
|
|
||||||
|
|
||||||
NEXT_PUBLIC_ENV=prod
|
|
||||||
|
|
||||||
NEXT_PUBLIC_BRUNO_SERVER_API=https://ada.grafnode.com/api
|
|
3
packages/bruno-app/.env.production
Normal file
3
packages/bruno-app/.env.production
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
ENV=production
|
||||||
|
|
||||||
|
NEXT_PUBLIC_ENV=prod
|
@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
|
"jsx": "react",
|
||||||
"target": "es2017",
|
"target": "es2017",
|
||||||
"allowSyntheticDefaultImports": false,
|
"allowSyntheticDefaultImports": false,
|
||||||
"baseUrl": "./",
|
"baseUrl": "./",
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
"version": "0.3.0",
|
"version": "0.3.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "cross-env ENV=dev next dev",
|
"dev": "cross-env ENV=dev next dev -p 3000",
|
||||||
"build": "next build && next export",
|
"build": "next build && next export",
|
||||||
"start": "next start",
|
"start": "next start",
|
||||||
"lint": "next lint",
|
"lint": "next lint",
|
||||||
@ -12,19 +12,23 @@
|
|||||||
"prettier": "prettier --write \"./src/**/*.{js,jsx,json,ts,tsx}\""
|
"prettier": "prettier --write \"./src/**/*.{js,jsx,json,ts,tsx}\""
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@fontsource/inter": "^5.0.15",
|
||||||
"@fortawesome/fontawesome-svg-core": "^1.2.36",
|
"@fortawesome/fontawesome-svg-core": "^1.2.36",
|
||||||
"@fortawesome/free-solid-svg-icons": "^5.15.4",
|
"@fortawesome/free-solid-svg-icons": "^5.15.4",
|
||||||
"@fortawesome/react-fontawesome": "^0.1.16",
|
"@fortawesome/react-fontawesome": "^0.1.16",
|
||||||
"@reduxjs/toolkit": "^1.8.0",
|
"@reduxjs/toolkit": "^1.8.0",
|
||||||
"@tabler/icons": "^1.46.0",
|
"@tabler/icons": "^1.46.0",
|
||||||
"@tippyjs/react": "^4.2.6",
|
"@tippyjs/react": "^4.2.6",
|
||||||
|
"@usebruno/common": "0.1.0",
|
||||||
"@usebruno/graphql-docs": "0.1.0",
|
"@usebruno/graphql-docs": "0.1.0",
|
||||||
"@usebruno/schema": "0.5.0",
|
"@usebruno/schema": "0.7.0",
|
||||||
"axios": "^0.26.0",
|
"axios": "^1.5.1",
|
||||||
"classnames": "^2.3.1",
|
"classnames": "^2.3.1",
|
||||||
"codemirror": "^5.65.2",
|
"codemirror": "5.65.2",
|
||||||
"codemirror-graphql": "^1.2.5",
|
"codemirror-graphql": "1.2.5",
|
||||||
|
"cookie": "^0.6.0",
|
||||||
"escape-html": "^1.0.3",
|
"escape-html": "^1.0.3",
|
||||||
|
"file": "^0.2.2",
|
||||||
"file-dialog": "^0.0.8",
|
"file-dialog": "^0.0.8",
|
||||||
"file-saver": "^2.0.5",
|
"file-saver": "^2.0.5",
|
||||||
"formik": "^2.2.9",
|
"formik": "^2.2.9",
|
||||||
@ -32,33 +36,49 @@
|
|||||||
"graphiql": "^1.5.9",
|
"graphiql": "^1.5.9",
|
||||||
"graphql": "^16.6.0",
|
"graphql": "^16.6.0",
|
||||||
"graphql-request": "^3.7.0",
|
"graphql-request": "^3.7.0",
|
||||||
"handlebars": "^4.7.8",
|
"httpsnippet": "^3.0.6",
|
||||||
"httpsnippet": "^3.0.1",
|
"i18next": "^23.14.0",
|
||||||
"idb": "^7.0.0",
|
"idb": "^7.0.0",
|
||||||
"immer": "^9.0.15",
|
"immer": "^9.0.15",
|
||||||
|
"jsesc": "^3.0.2",
|
||||||
|
"jshint": "^2.13.6",
|
||||||
|
"json5": "^2.2.3",
|
||||||
|
"jsonc-parser": "^3.2.1",
|
||||||
|
"jsonlint": "^1.6.3",
|
||||||
|
"jsonpath-plus": "^7.2.0",
|
||||||
"know-your-http-well": "^0.5.0",
|
"know-your-http-well": "^0.5.0",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"markdown-it": "^13.0.2",
|
"markdown-it": "^13.0.2",
|
||||||
|
"markdown-it-replace-link": "^1.2.0",
|
||||||
"mousetrap": "^1.6.5",
|
"mousetrap": "^1.6.5",
|
||||||
"nanoid": "3.3.4",
|
"nanoid": "3.3.4",
|
||||||
"next": "12.3.3",
|
"next": "12.3.3",
|
||||||
"path": "^0.12.7",
|
"path": "^0.12.7",
|
||||||
|
"pdfjs-dist": "^3.11.174",
|
||||||
"platform": "^1.3.6",
|
"platform": "^1.3.6",
|
||||||
"posthog-node": "^2.1.0",
|
"posthog-node": "^2.1.0",
|
||||||
|
"prettier": "^2.7.1",
|
||||||
"qs": "^6.11.0",
|
"qs": "^6.11.0",
|
||||||
|
"query-string": "^7.0.1",
|
||||||
"react": "18.2.0",
|
"react": "18.2.0",
|
||||||
|
"react-copy-to-clipboard": "^5.1.0",
|
||||||
"react-dnd": "^16.0.1",
|
"react-dnd": "^16.0.1",
|
||||||
"react-dnd-html5-backend": "^16.0.1",
|
"react-dnd-html5-backend": "^16.0.1",
|
||||||
"react-dom": "18.2.0",
|
"react-dom": "18.2.0",
|
||||||
"react-github-btn": "^1.4.0",
|
"react-github-btn": "^1.4.0",
|
||||||
"react-hot-toast": "^2.4.0",
|
"react-hot-toast": "^2.4.0",
|
||||||
|
"react-i18next": "^15.0.1",
|
||||||
"react-inspector": "^6.0.2",
|
"react-inspector": "^6.0.2",
|
||||||
|
"react-pdf": "^7.5.1",
|
||||||
"react-redux": "^7.2.6",
|
"react-redux": "^7.2.6",
|
||||||
"react-tooltip": "^5.5.2",
|
"react-tooltip": "^5.5.2",
|
||||||
"sass": "^1.46.0",
|
"sass": "^1.46.0",
|
||||||
|
"strip-json-comments": "^5.0.1",
|
||||||
"styled-components": "^5.3.3",
|
"styled-components": "^5.3.3",
|
||||||
"tailwindcss": "^2.2.19",
|
"system": "^2.0.1",
|
||||||
|
"url": "^0.11.3",
|
||||||
"xml-formatter": "^3.5.0",
|
"xml-formatter": "^3.5.0",
|
||||||
|
"yargs-parser": "^21.1.1",
|
||||||
"yup": "^0.32.11"
|
"yup": "^0.32.11"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@ -67,6 +87,7 @@
|
|||||||
"@babel/preset-env": "^7.16.4",
|
"@babel/preset-env": "^7.16.4",
|
||||||
"@babel/preset-react": "^7.16.0",
|
"@babel/preset-react": "^7.16.0",
|
||||||
"@babel/runtime": "^7.16.3",
|
"@babel/runtime": "^7.16.3",
|
||||||
|
"autoprefixer": "^10.4.17",
|
||||||
"babel-loader": "^8.2.3",
|
"babel-loader": "^8.2.3",
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
"css-loader": "^6.5.1",
|
"css-loader": "^6.5.1",
|
||||||
@ -74,8 +95,9 @@
|
|||||||
"html-loader": "^3.0.1",
|
"html-loader": "^3.0.1",
|
||||||
"html-webpack-plugin": "^5.5.0",
|
"html-webpack-plugin": "^5.5.0",
|
||||||
"mini-css-extract-plugin": "^2.4.5",
|
"mini-css-extract-plugin": "^2.4.5",
|
||||||
"prettier": "^2.7.1",
|
"postcss": "^8.4.35",
|
||||||
"style-loader": "^3.3.1",
|
"style-loader": "^3.3.1",
|
||||||
|
"tailwindcss": "^3.4.1",
|
||||||
"webpack": "^5.64.4",
|
"webpack": "^5.64.4",
|
||||||
"webpack-cli": "^4.9.1"
|
"webpack-cli": "^4.9.1"
|
||||||
}
|
}
|
||||||
|
6
packages/bruno-app/postcss.config.js
Normal file
6
packages/bruno-app/postcss.config.js
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
module.exports = {
|
||||||
|
plugins: {
|
||||||
|
tailwindcss: {},
|
||||||
|
autoprefixer: {}
|
||||||
|
}
|
||||||
|
};
|
@ -5,6 +5,9 @@ const StyledWrapper = styled.div`
|
|||||||
background: ${(props) => props.theme.codemirror.bg};
|
background: ${(props) => props.theme.codemirror.bg};
|
||||||
border: solid 1px ${(props) => props.theme.codemirror.border};
|
border: solid 1px ${(props) => props.theme.codemirror.border};
|
||||||
font-family: ${(props) => (props.font ? props.font : 'default')};
|
font-family: ${(props) => (props.font ? props.font : 'default')};
|
||||||
|
font-size: ${(props) => (props.fontSize ? `${props.fontSize}px` : 'inherit')};
|
||||||
|
line-break: anywhere;
|
||||||
|
flex: 1 1 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.CodeMirror-overlayscroll-horizontal div,
|
.CodeMirror-overlayscroll-horizontal div,
|
||||||
@ -12,6 +15,24 @@ const StyledWrapper = styled.div`
|
|||||||
background: #d2d7db;
|
background: #d2d7db;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.CodeMirror-dialog {
|
||||||
|
overflow: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
#search-results-count {
|
||||||
|
display: inline-block;
|
||||||
|
position: absolute;
|
||||||
|
top: calc(100% + 1px);
|
||||||
|
right: 0;
|
||||||
|
border-width: 0 0 1px 1px;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: ${(props) => props.theme.codemirror.border};
|
||||||
|
padding: 0.1em 0.8em;
|
||||||
|
background-color: ${(props) => props.theme.codemirror.bg};
|
||||||
|
color: rgb(102, 102, 102);
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
textarea.cm-editor {
|
textarea.cm-editor {
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
@ -6,16 +6,104 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import isEqual from 'lodash/isEqual';
|
import { isEqual, escapeRegExp } from 'lodash';
|
||||||
import { getEnvironmentVariables } from 'utils/collections';
|
import { getEnvironmentVariables } from 'utils/collections';
|
||||||
import { defineCodeMirrorBrunoVariablesMode } from 'utils/common/codemirror';
|
import { defineCodeMirrorBrunoVariablesMode } from 'utils/common/codemirror';
|
||||||
import StyledWrapper from './StyledWrapper';
|
import StyledWrapper from './StyledWrapper';
|
||||||
|
import jsonlint from 'jsonlint';
|
||||||
|
import { JSHINT } from 'jshint';
|
||||||
|
import stripJsonComments from 'strip-json-comments';
|
||||||
|
|
||||||
let CodeMirror;
|
let CodeMirror;
|
||||||
const SERVER_RENDERED = typeof navigator === 'undefined' || global['PREVENT_CODEMIRROR_RENDER'] === true;
|
const SERVER_RENDERED = typeof navigator === 'undefined' || global['PREVENT_CODEMIRROR_RENDER'] === true;
|
||||||
|
const TAB_SIZE = 2;
|
||||||
|
|
||||||
if (!SERVER_RENDERED) {
|
if (!SERVER_RENDERED) {
|
||||||
CodeMirror = require('codemirror');
|
CodeMirror = require('codemirror');
|
||||||
|
window.jsonlint = jsonlint;
|
||||||
|
window.JSHINT = JSHINT;
|
||||||
|
//This should be done dynamically if possible
|
||||||
|
const hintWords = [
|
||||||
|
'res',
|
||||||
|
'res.status',
|
||||||
|
'res.statusText',
|
||||||
|
'res.headers',
|
||||||
|
'res.body',
|
||||||
|
'res.responseTime',
|
||||||
|
'res.getStatus()',
|
||||||
|
'res.getHeader(name)',
|
||||||
|
'res.getHeaders()',
|
||||||
|
'res.getBody()',
|
||||||
|
'res.getResponseTime()',
|
||||||
|
'req',
|
||||||
|
'req.url',
|
||||||
|
'req.method',
|
||||||
|
'req.headers',
|
||||||
|
'req.body',
|
||||||
|
'req.timeout',
|
||||||
|
'req.getUrl()',
|
||||||
|
'req.setUrl(url)',
|
||||||
|
'req.getMethod()',
|
||||||
|
'req.getAuthMode()',
|
||||||
|
'req.setMethod(method)',
|
||||||
|
'req.getHeader(name)',
|
||||||
|
'req.getHeaders()',
|
||||||
|
'req.setHeader(name, value)',
|
||||||
|
'req.setHeaders(data)',
|
||||||
|
'req.getBody()',
|
||||||
|
'req.setBody(data)',
|
||||||
|
'req.setMaxRedirects(maxRedirects)',
|
||||||
|
'req.getTimeout()',
|
||||||
|
'req.setTimeout(timeout)',
|
||||||
|
'req.getExecutionMode()',
|
||||||
|
'bru',
|
||||||
|
'bru.cwd()',
|
||||||
|
'bru.getEnvName(key)',
|
||||||
|
'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)',
|
||||||
|
'bru.setVar(key,value)',
|
||||||
|
'bru.deleteVar(key)',
|
||||||
|
'bru.setNextRequest(requestName)',
|
||||||
|
'req.disableParsingResponseJson()',
|
||||||
|
'bru.getRequestVar(key)',
|
||||||
|
'bru.sleep(ms)'
|
||||||
|
];
|
||||||
|
CodeMirror.registerHelper('hint', 'brunoJS', (editor, options) => {
|
||||||
|
const cursor = editor.getCursor();
|
||||||
|
const currentLine = editor.getLine(cursor.line);
|
||||||
|
let startBru = cursor.ch;
|
||||||
|
let endBru = startBru;
|
||||||
|
while (endBru < currentLine.length && /[\w.]/.test(currentLine.charAt(endBru))) ++endBru;
|
||||||
|
while (startBru && /[\w.]/.test(currentLine.charAt(startBru - 1))) --startBru;
|
||||||
|
let curWordBru = startBru != endBru && currentLine.slice(startBru, endBru);
|
||||||
|
|
||||||
|
let start = cursor.ch;
|
||||||
|
let end = start;
|
||||||
|
while (end < currentLine.length && /[\w]/.test(currentLine.charAt(end))) ++end;
|
||||||
|
while (start && /[\w]/.test(currentLine.charAt(start - 1))) --start;
|
||||||
|
const jsHinter = CodeMirror.hint.javascript;
|
||||||
|
let result = jsHinter(editor) || { list: [] };
|
||||||
|
result.to = CodeMirror.Pos(cursor.line, end);
|
||||||
|
result.from = CodeMirror.Pos(cursor.line, start);
|
||||||
|
if (curWordBru) {
|
||||||
|
hintWords.forEach((h) => {
|
||||||
|
if (h.includes('.') == curWordBru.includes('.') && h.startsWith(curWordBru)) {
|
||||||
|
result.list.push(curWordBru.includes('.') ? h.split('.')[1] : h);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
result.list?.sort();
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
});
|
||||||
|
CodeMirror.commands.autocomplete = (cm, hint, options) => {
|
||||||
|
cm.showHint({ hint, ...options });
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export default class CodeEditor extends React.Component {
|
export default class CodeEditor extends React.Component {
|
||||||
@ -27,6 +115,13 @@ export default class CodeEditor extends React.Component {
|
|||||||
// unnecessary updates during the update lifecycle.
|
// unnecessary updates during the update lifecycle.
|
||||||
this.cachedValue = props.value || '';
|
this.cachedValue = props.value || '';
|
||||||
this.variables = {};
|
this.variables = {};
|
||||||
|
this.searchResultsCountElementId = 'search-results-count';
|
||||||
|
|
||||||
|
this.lintOptions = {
|
||||||
|
esversion: 11,
|
||||||
|
expr: true,
|
||||||
|
asi: true
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
@ -34,14 +129,15 @@ export default class CodeEditor extends React.Component {
|
|||||||
value: this.props.value || '',
|
value: this.props.value || '',
|
||||||
lineNumbers: true,
|
lineNumbers: true,
|
||||||
lineWrapping: true,
|
lineWrapping: true,
|
||||||
tabSize: 2,
|
tabSize: TAB_SIZE,
|
||||||
mode: this.props.mode || 'application/ld+json',
|
mode: this.props.mode || 'application/ld+json',
|
||||||
keyMap: 'sublime',
|
keyMap: 'sublime',
|
||||||
autoCloseBrackets: true,
|
autoCloseBrackets: true,
|
||||||
matchBrackets: true,
|
matchBrackets: true,
|
||||||
showCursorWhenSelecting: true,
|
showCursorWhenSelecting: true,
|
||||||
foldGutter: true,
|
foldGutter: true,
|
||||||
gutters: ['CodeMirror-linenumbers', 'CodeMirror-foldgutter'],
|
gutters: ['CodeMirror-linenumbers', 'CodeMirror-foldgutter', 'CodeMirror-lint-markers'],
|
||||||
|
lint: this.lintOptions,
|
||||||
readOnly: this.props.readOnly,
|
readOnly: this.props.readOnly,
|
||||||
scrollbarStyle: 'overlay',
|
scrollbarStyle: 'overlay',
|
||||||
theme: this.props.theme === 'dark' ? 'monokai' : 'default',
|
theme: this.props.theme === 'dark' ? 'monokai' : 'default',
|
||||||
@ -66,17 +162,130 @@ export default class CodeEditor extends React.Component {
|
|||||||
this.props.onSave();
|
this.props.onSave();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'Cmd-F': 'findPersistent',
|
'Cmd-F': (cm) => {
|
||||||
'Ctrl-F': 'findPersistent',
|
cm.execCommand('findPersistent');
|
||||||
|
this._bindSearchHandler();
|
||||||
|
this._appendSearchResultsCount();
|
||||||
|
},
|
||||||
|
'Ctrl-F': (cm) => {
|
||||||
|
cm.execCommand('findPersistent');
|
||||||
|
this._bindSearchHandler();
|
||||||
|
this._appendSearchResultsCount();
|
||||||
|
},
|
||||||
|
'Cmd-H': 'replace',
|
||||||
|
'Ctrl-H': 'replace',
|
||||||
Tab: function (cm) {
|
Tab: function (cm) {
|
||||||
cm.replaceSelection(' ', 'end');
|
cm.getSelection().includes('\n') || editor.getLine(cm.getCursor().line) == cm.getSelection()
|
||||||
|
? cm.execCommand('indentMore')
|
||||||
|
: cm.replaceSelection(' ', 'end');
|
||||||
|
},
|
||||||
|
'Shift-Tab': 'indentLess',
|
||||||
|
'Ctrl-Space': 'autocomplete',
|
||||||
|
'Cmd-Space': 'autocomplete',
|
||||||
|
'Ctrl-Y': 'foldAll',
|
||||||
|
'Cmd-Y': 'foldAll',
|
||||||
|
'Ctrl-I': 'unfoldAll',
|
||||||
|
'Cmd-I': 'unfoldAll',
|
||||||
|
'Cmd-/': (cm) => {
|
||||||
|
// comment/uncomment every selected line(s)
|
||||||
|
const selections = cm.listSelections();
|
||||||
|
selections.forEach((range) => {
|
||||||
|
for (let i = range.from().line; i <= range.to().line; i++) {
|
||||||
|
const selectedLine = cm.getLine(i);
|
||||||
|
// if commented line, remove comment
|
||||||
|
if (selectedLine.trim().startsWith('//')) {
|
||||||
|
cm.replaceRange(
|
||||||
|
selectedLine.replace(/^(\s*)\/\/\s?/, '$1'),
|
||||||
|
{ line: i, ch: 0 },
|
||||||
|
{ line: i, ch: selectedLine.length }
|
||||||
|
);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
// otherwise add comment
|
||||||
|
cm.replaceRange(
|
||||||
|
selectedLine.search(/\S|$/) >= TAB_SIZE
|
||||||
|
? ' '.repeat(TAB_SIZE) + '// ' + selectedLine.trim()
|
||||||
|
: '// ' + selectedLine,
|
||||||
|
{ line: i, ch: 0 },
|
||||||
|
{ line: i, ch: selectedLine.length }
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
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(
|
||||||
|
'<a> ' + internal.replace(/(?<=\<|<\/)\w+:/g, '') + '</a>',
|
||||||
|
'application/xml'
|
||||||
|
);
|
||||||
|
count = dcm.documentElement.children.length;
|
||||||
|
} catch (e) {}
|
||||||
|
}
|
||||||
|
return count ? `\u21A4${count}\u21A6` : '\u2194';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
CodeMirror.registerHelper('lint', 'json', function (text) {
|
||||||
|
let found = [];
|
||||||
|
if (!window.jsonlint) {
|
||||||
|
if (window.console) {
|
||||||
|
window.console.error('Error: window.jsonlint not defined, CodeMirror JSON linting cannot run.');
|
||||||
|
}
|
||||||
|
return found;
|
||||||
|
}
|
||||||
|
let jsonlint = window.jsonlint.parser || window.jsonlint;
|
||||||
|
jsonlint.parseError = function (str, hash) {
|
||||||
|
let loc = hash.loc;
|
||||||
|
found.push({
|
||||||
|
from: CodeMirror.Pos(loc.first_line - 1, loc.first_column),
|
||||||
|
to: CodeMirror.Pos(loc.last_line - 1, loc.last_column),
|
||||||
|
message: str
|
||||||
|
});
|
||||||
|
};
|
||||||
|
try {
|
||||||
|
jsonlint.parse(stripJsonComments(text.replace(/(?<!"[^":{]*){{[^}]*}}(?![^"},]*")/g, '1')));
|
||||||
|
} catch (e) {}
|
||||||
|
return found;
|
||||||
|
});
|
||||||
if (editor) {
|
if (editor) {
|
||||||
|
editor.setOption('lint', this.props.mode && editor.getValue().trim().length > 0 ? this.lintOptions : false);
|
||||||
editor.on('change', this._onEdit);
|
editor.on('change', this._onEdit);
|
||||||
this.addOverlay();
|
this.addOverlay();
|
||||||
}
|
}
|
||||||
|
if (this.props.mode == 'javascript') {
|
||||||
|
editor.on('keyup', function (cm, event) {
|
||||||
|
const cursor = editor.getCursor();
|
||||||
|
const currentLine = editor.getLine(cursor.line);
|
||||||
|
let start = cursor.ch;
|
||||||
|
let end = start;
|
||||||
|
while (end < currentLine.length && /[^{}();\s\[\]\,]/.test(currentLine.charAt(end))) ++end;
|
||||||
|
while (start && /[^{}();\s\[\]\,]/.test(currentLine.charAt(start - 1))) --start;
|
||||||
|
let curWord = start != end && currentLine.slice(start, end);
|
||||||
|
//Qualify if autocomplete will be shown
|
||||||
|
if (
|
||||||
|
/^(?!Shift|Tab|Enter|Escape|ArrowUp|ArrowDown|ArrowLeft|ArrowRight|\s)\w*/.test(event.key) &&
|
||||||
|
curWord.length > 0 &&
|
||||||
|
!/\/\/|\/\*|.*{{|`[^$]*{|`[^{]*$/.test(currentLine.slice(0, end)) &&
|
||||||
|
/(?<!\d)[a-zA-Z\._]$/.test(curWord)
|
||||||
|
) {
|
||||||
|
CodeMirror.commands.autocomplete(cm, CodeMirror.hint.brunoJS, { completeSingle: false });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidUpdate(prevProps) {
|
componentDidUpdate(prevProps) {
|
||||||
@ -114,14 +323,20 @@ export default class CodeEditor extends React.Component {
|
|||||||
this.editor.off('change', this._onEdit);
|
this.editor.off('change', this._onEdit);
|
||||||
this.editor = null;
|
this.editor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this._unbindSearchHandler();
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
if (this.editor) {
|
||||||
|
this.editor.refresh();
|
||||||
|
}
|
||||||
return (
|
return (
|
||||||
<StyledWrapper
|
<StyledWrapper
|
||||||
className="h-full w-full"
|
className="h-full w-full flex flex-col relative"
|
||||||
aria-label="Code Editor"
|
aria-label="Code Editor"
|
||||||
font={this.props.font}
|
font={this.props.font}
|
||||||
|
fontSize={this.props.fontSize}
|
||||||
ref={(node) => {
|
ref={(node) => {
|
||||||
this._node = node;
|
this._node = node;
|
||||||
}}
|
}}
|
||||||
@ -140,10 +355,70 @@ export default class CodeEditor extends React.Component {
|
|||||||
|
|
||||||
_onEdit = () => {
|
_onEdit = () => {
|
||||||
if (!this.ignoreChangeEvent && this.editor) {
|
if (!this.ignoreChangeEvent && this.editor) {
|
||||||
|
this.editor.setOption('lint', this.editor.getValue().trim().length > 0 ? this.lintOptions : false);
|
||||||
this.cachedValue = this.editor.getValue();
|
this.cachedValue = this.editor.getValue();
|
||||||
if (this.props.onEdit) {
|
if (this.props.onEdit) {
|
||||||
this.props.onEdit(this.cachedValue);
|
this.props.onEdit(this.cachedValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Bind handler to search input to count number of search results
|
||||||
|
*/
|
||||||
|
_bindSearchHandler = () => {
|
||||||
|
const searchInput = document.querySelector('.CodeMirror-search-field');
|
||||||
|
|
||||||
|
if (searchInput) {
|
||||||
|
searchInput.addEventListener('input', this._countSearchResults);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unbind handler to search input to count number of search results
|
||||||
|
*/
|
||||||
|
_unbindSearchHandler = () => {
|
||||||
|
const searchInput = document.querySelector('.CodeMirror-search-field');
|
||||||
|
|
||||||
|
if (searchInput) {
|
||||||
|
searchInput.removeEventListener('input', this._countSearchResults);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Append search results count to search dialog
|
||||||
|
*/
|
||||||
|
_appendSearchResultsCount = () => {
|
||||||
|
const dialog = document.querySelector('.CodeMirror-dialog.CodeMirror-dialog-top');
|
||||||
|
|
||||||
|
if (dialog) {
|
||||||
|
const searchResultsCount = document.createElement('span');
|
||||||
|
searchResultsCount.id = this.searchResultsCountElementId;
|
||||||
|
dialog.appendChild(searchResultsCount);
|
||||||
|
|
||||||
|
this._countSearchResults();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Count search results and update state
|
||||||
|
*/
|
||||||
|
_countSearchResults = () => {
|
||||||
|
let count = 0;
|
||||||
|
|
||||||
|
const searchInput = document.querySelector('.CodeMirror-search-field');
|
||||||
|
|
||||||
|
if (searchInput && searchInput.value.length > 0) {
|
||||||
|
// 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
const searchResultsCountElement = document.querySelector(`#${this.searchResultsCountElementId}`);
|
||||||
|
|
||||||
|
if (searchResultsCountElement) {
|
||||||
|
searchResultsCountElement.innerText = `${count} results`;
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@ -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;
|
@ -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 (
|
||||||
|
<div ref={ref} className="flex items-center justify-end auth-type-label select-none">
|
||||||
|
{humanizeRequestAPIKeyPlacement(apikeyAuth?.placement)}
|
||||||
|
<IconCaretDown className="caret ml-1 mr-1" size={14} strokeWidth={2} />
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
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 (
|
||||||
|
<StyledWrapper className="mt-2 w-full">
|
||||||
|
<label className="block font-medium mb-2">Key</label>
|
||||||
|
<div className="single-line-editor-wrapper mb-2">
|
||||||
|
<SingleLineEditor
|
||||||
|
value={apikeyAuth.key || ''}
|
||||||
|
theme={storedTheme}
|
||||||
|
onSave={handleSave}
|
||||||
|
onChange={(val) => handleAuthChange('key', val)}
|
||||||
|
collection={collection}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<label className="block font-medium mb-2">Value</label>
|
||||||
|
<div className="single-line-editor-wrapper mb-2">
|
||||||
|
<SingleLineEditor
|
||||||
|
value={apikeyAuth.value || ''}
|
||||||
|
theme={storedTheme}
|
||||||
|
onSave={handleSave}
|
||||||
|
onChange={(val) => handleAuthChange('value', val)}
|
||||||
|
collection={collection}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<label className="block font-medium mb-2">Add To</label>
|
||||||
|
<div className="inline-flex items-center cursor-pointer auth-placement-selector w-fit">
|
||||||
|
<Dropdown onCreate={onDropdownCreate} icon={<Icon />} placement="bottom-end">
|
||||||
|
<div
|
||||||
|
className="dropdown-item"
|
||||||
|
onClick={() => {
|
||||||
|
dropdownTippyRef.current.hide();
|
||||||
|
handleAuthChange('placement', 'header');
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Header
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
className="dropdown-item"
|
||||||
|
onClick={() => {
|
||||||
|
dropdownTippyRef.current.hide();
|
||||||
|
handleAuthChange('placement', 'queryparams');
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Query Params
|
||||||
|
</div>
|
||||||
|
</Dropdown>
|
||||||
|
</div>
|
||||||
|
</StyledWrapper>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default ApiKeyAuth;
|
@ -52,6 +52,15 @@ const AuthMode = ({ collection }) => {
|
|||||||
>
|
>
|
||||||
Basic Auth
|
Basic Auth
|
||||||
</div>
|
</div>
|
||||||
|
<div
|
||||||
|
className="dropdown-item"
|
||||||
|
onClick={() => {
|
||||||
|
dropdownTippyRef.current.hide();
|
||||||
|
onModeChange('wsse');
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
WSSE Auth
|
||||||
|
</div>
|
||||||
<div
|
<div
|
||||||
className="dropdown-item"
|
className="dropdown-item"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
@ -61,6 +70,33 @@ const AuthMode = ({ collection }) => {
|
|||||||
>
|
>
|
||||||
Bearer Token
|
Bearer Token
|
||||||
</div>
|
</div>
|
||||||
|
<div
|
||||||
|
className="dropdown-item"
|
||||||
|
onClick={() => {
|
||||||
|
dropdownTippyRef.current.hide();
|
||||||
|
onModeChange('digest');
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Digest Auth
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
className="dropdown-item"
|
||||||
|
onClick={() => {
|
||||||
|
dropdownTippyRef.current.hide();
|
||||||
|
onModeChange('oauth2');
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Oauth2
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
className="dropdown-item"
|
||||||
|
onClick={() => {
|
||||||
|
dropdownTippyRef.current.hide();
|
||||||
|
onModeChange('apikey');
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
API Key
|
||||||
|
</div>
|
||||||
<div
|
<div
|
||||||
className="dropdown-item"
|
className="dropdown-item"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
|
@ -138,6 +138,7 @@ const AwsV4Auth = ({ collection }) => {
|
|||||||
onSave={handleSave}
|
onSave={handleSave}
|
||||||
onChange={(val) => handleSecretAccessKeyChange(val)}
|
onChange={(val) => handleSecretAccessKeyChange(val)}
|
||||||
collection={collection}
|
collection={collection}
|
||||||
|
isSecret={true}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -62,6 +62,7 @@ const BasicAuth = ({ collection }) => {
|
|||||||
onSave={handleSave}
|
onSave={handleSave}
|
||||||
onChange={(val) => handlePasswordChange(val)}
|
onChange={(val) => handlePasswordChange(val)}
|
||||||
collection={collection}
|
collection={collection}
|
||||||
|
isSecret={true}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</StyledWrapper>
|
</StyledWrapper>
|
||||||
|
@ -11,7 +11,7 @@ const BearerAuth = ({ collection }) => {
|
|||||||
const dispatch = useDispatch();
|
const dispatch = useDispatch();
|
||||||
const { storedTheme } = useTheme();
|
const { storedTheme } = useTheme();
|
||||||
|
|
||||||
const bearerToken = get(collection, 'root.request.auth.bearer.token');
|
const bearerToken = get(collection, 'root.request.auth.bearer.token', '');
|
||||||
|
|
||||||
const handleSave = () => dispatch(saveCollectionRoot(collection.uid));
|
const handleSave = () => dispatch(saveCollectionRoot(collection.uid));
|
||||||
|
|
||||||
@ -37,6 +37,7 @@ const BearerAuth = ({ collection }) => {
|
|||||||
onSave={handleSave}
|
onSave={handleSave}
|
||||||
onChange={(val) => handleTokenChange(val)}
|
onChange={(val) => handleTokenChange(val)}
|
||||||
collection={collection}
|
collection={collection}
|
||||||
|
isSecret={true}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</StyledWrapper>
|
</StyledWrapper>
|
||||||
|
@ -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;
|
@ -0,0 +1,72 @@
|
|||||||
|
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 DigestAuth = ({ collection }) => {
|
||||||
|
const dispatch = useDispatch();
|
||||||
|
const { storedTheme } = useTheme();
|
||||||
|
|
||||||
|
const digestAuth = get(collection, 'root.request.auth.digest', {});
|
||||||
|
|
||||||
|
const handleSave = () => dispatch(saveCollectionRoot(collection.uid));
|
||||||
|
|
||||||
|
const handleUsernameChange = (username) => {
|
||||||
|
dispatch(
|
||||||
|
updateCollectionAuth({
|
||||||
|
mode: 'digest',
|
||||||
|
collectionUid: collection.uid,
|
||||||
|
content: {
|
||||||
|
username: username,
|
||||||
|
password: digestAuth.password
|
||||||
|
}
|
||||||
|
})
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
const handlePasswordChange = (password) => {
|
||||||
|
dispatch(
|
||||||
|
updateCollectionAuth({
|
||||||
|
mode: 'digest',
|
||||||
|
collectionUid: collection.uid,
|
||||||
|
content: {
|
||||||
|
username: digestAuth.username,
|
||||||
|
password: password
|
||||||
|
}
|
||||||
|
})
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<StyledWrapper className="mt-2 w-full">
|
||||||
|
<label className="block font-medium mb-2">Username</label>
|
||||||
|
<div className="single-line-editor-wrapper mb-2">
|
||||||
|
<SingleLineEditor
|
||||||
|
value={digestAuth.username || ''}
|
||||||
|
theme={storedTheme}
|
||||||
|
onSave={handleSave}
|
||||||
|
onChange={(val) => handleUsernameChange(val)}
|
||||||
|
collection={collection}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<label className="block font-medium mb-2">Password</label>
|
||||||
|
<div className="single-line-editor-wrapper">
|
||||||
|
<SingleLineEditor
|
||||||
|
value={digestAuth.password || ''}
|
||||||
|
theme={storedTheme}
|
||||||
|
onSave={handleSave}
|
||||||
|
onChange={(val) => handlePasswordChange(val)}
|
||||||
|
collection={collection}
|
||||||
|
isSecret={true}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</StyledWrapper>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default DigestAuth;
|
@ -0,0 +1,16 @@
|
|||||||
|
import styled from 'styled-components';
|
||||||
|
|
||||||
|
const Wrapper = styled.div`
|
||||||
|
label {
|
||||||
|
font-size: 0.8125rem;
|
||||||
|
}
|
||||||
|
.single-line-editor-wrapper {
|
||||||
|
max-width: 400px;
|
||||||
|
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;
|
@ -0,0 +1,120 @@
|
|||||||
|
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 { saveCollectionRoot, sendCollectionOauth2Request } from 'providers/ReduxStore/slices/collections/actions';
|
||||||
|
import StyledWrapper from './StyledWrapper';
|
||||||
|
import { inputsConfig } from './inputsConfig';
|
||||||
|
import { updateCollectionAuth } from 'providers/ReduxStore/slices/collections/index';
|
||||||
|
import { clearOauth2Cache } from 'utils/network/index';
|
||||||
|
import toast from 'react-hot-toast';
|
||||||
|
|
||||||
|
const OAuth2AuthorizationCode = ({ collection }) => {
|
||||||
|
const dispatch = useDispatch();
|
||||||
|
const { storedTheme } = useTheme();
|
||||||
|
|
||||||
|
const oAuth = get(collection, 'root.request.auth.oauth2', {});
|
||||||
|
|
||||||
|
const handleRun = async () => {
|
||||||
|
dispatch(sendCollectionOauth2Request(collection.uid));
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleSave = () => dispatch(saveCollectionRoot(collection.uid));
|
||||||
|
|
||||||
|
const { callbackUrl, authorizationUrl, accessTokenUrl, clientId, clientSecret, scope, state, pkce } = oAuth;
|
||||||
|
|
||||||
|
const handleChange = (key, value) => {
|
||||||
|
dispatch(
|
||||||
|
updateCollectionAuth({
|
||||||
|
mode: 'oauth2',
|
||||||
|
collectionUid: collection.uid,
|
||||||
|
content: {
|
||||||
|
grantType: 'authorization_code',
|
||||||
|
callbackUrl,
|
||||||
|
authorizationUrl,
|
||||||
|
accessTokenUrl,
|
||||||
|
clientId,
|
||||||
|
clientSecret,
|
||||||
|
scope,
|
||||||
|
state,
|
||||||
|
pkce,
|
||||||
|
[key]: value
|
||||||
|
}
|
||||||
|
})
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
const handlePKCEToggle = (e) => {
|
||||||
|
dispatch(
|
||||||
|
updateCollectionAuth({
|
||||||
|
mode: 'oauth2',
|
||||||
|
collectionUid: collection.uid,
|
||||||
|
content: {
|
||||||
|
grantType: 'authorization_code',
|
||||||
|
callbackUrl,
|
||||||
|
authorizationUrl,
|
||||||
|
accessTokenUrl,
|
||||||
|
clientId,
|
||||||
|
clientSecret,
|
||||||
|
scope,
|
||||||
|
state,
|
||||||
|
pkce: !Boolean(oAuth?.['pkce'])
|
||||||
|
}
|
||||||
|
})
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleClearCache = (e) => {
|
||||||
|
clearOauth2Cache(collection?.uid)
|
||||||
|
.then(() => {
|
||||||
|
toast.success('cleared cache successfully');
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
toast.error(err.message);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<StyledWrapper className="mt-2 flex w-full gap-4 flex-col">
|
||||||
|
{inputsConfig.map((input) => {
|
||||||
|
const { key, label, isSecret } = input;
|
||||||
|
return (
|
||||||
|
<div className="flex flex-col w-full gap-1" key={`input-${key}`}>
|
||||||
|
<label className="block font-medium">{label}</label>
|
||||||
|
<div className="single-line-editor-wrapper">
|
||||||
|
<SingleLineEditor
|
||||||
|
value={oAuth[key] || ''}
|
||||||
|
theme={storedTheme}
|
||||||
|
onSave={handleSave}
|
||||||
|
onChange={(val) => handleChange(key, val)}
|
||||||
|
onRun={handleRun}
|
||||||
|
collection={collection}
|
||||||
|
isSecret={isSecret}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
<div className="flex flex-row w-full gap-4" key="pkce">
|
||||||
|
<label className="block font-medium">Use PKCE</label>
|
||||||
|
<input
|
||||||
|
className="cursor-pointer"
|
||||||
|
type="checkbox"
|
||||||
|
checked={Boolean(oAuth?.['pkce'])}
|
||||||
|
onChange={handlePKCEToggle}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div className="flex flex-row gap-4">
|
||||||
|
<button onClick={handleRun} className="submit btn btn-sm btn-secondary w-fit">
|
||||||
|
Get Access Token
|
||||||
|
</button>
|
||||||
|
<button onClick={handleClearCache} className="submit btn btn-sm btn-secondary w-fit">
|
||||||
|
Clear Cache
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</StyledWrapper>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default OAuth2AuthorizationCode;
|
@ -0,0 +1,33 @@
|
|||||||
|
const inputsConfig = [
|
||||||
|
{
|
||||||
|
key: 'callbackUrl',
|
||||||
|
label: 'Callback URL'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'authorizationUrl',
|
||||||
|
label: 'Authorization URL'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'accessTokenUrl',
|
||||||
|
label: 'Access Token URL'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'clientId',
|
||||||
|
label: 'Client ID'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'clientSecret',
|
||||||
|
label: 'Client Secret',
|
||||||
|
isSecret: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'scope',
|
||||||
|
label: 'Scope'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'state',
|
||||||
|
label: 'State'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
export { inputsConfig };
|
@ -0,0 +1,16 @@
|
|||||||
|
import styled from 'styled-components';
|
||||||
|
|
||||||
|
const Wrapper = styled.div`
|
||||||
|
label {
|
||||||
|
font-size: 0.8125rem;
|
||||||
|
}
|
||||||
|
.single-line-editor-wrapper {
|
||||||
|
max-width: 400px;
|
||||||
|
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;
|
@ -0,0 +1,70 @@
|
|||||||
|
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 { saveCollectionRoot, sendCollectionOauth2Request } from 'providers/ReduxStore/slices/collections/actions';
|
||||||
|
import StyledWrapper from './StyledWrapper';
|
||||||
|
import { inputsConfig } from './inputsConfig';
|
||||||
|
import { updateCollectionAuth } from 'providers/ReduxStore/slices/collections/index';
|
||||||
|
|
||||||
|
const OAuth2ClientCredentials = ({ collection }) => {
|
||||||
|
const dispatch = useDispatch();
|
||||||
|
const { storedTheme } = useTheme();
|
||||||
|
|
||||||
|
const oAuth = get(collection, 'root.request.auth.oauth2', {});
|
||||||
|
|
||||||
|
const handleRun = async () => {
|
||||||
|
dispatch(sendCollectionOauth2Request(collection.uid));
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleSave = () => dispatch(saveCollectionRoot(collection.uid));
|
||||||
|
|
||||||
|
const { accessTokenUrl, clientId, clientSecret, scope } = oAuth;
|
||||||
|
|
||||||
|
const handleChange = (key, value) => {
|
||||||
|
dispatch(
|
||||||
|
updateCollectionAuth({
|
||||||
|
mode: 'oauth2',
|
||||||
|
collectionUid: collection.uid,
|
||||||
|
content: {
|
||||||
|
grantType: 'client_credentials',
|
||||||
|
accessTokenUrl,
|
||||||
|
clientId,
|
||||||
|
clientSecret,
|
||||||
|
scope,
|
||||||
|
[key]: value
|
||||||
|
}
|
||||||
|
})
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<StyledWrapper className="mt-2 flex w-full gap-4 flex-col">
|
||||||
|
{inputsConfig.map((input) => {
|
||||||
|
const { key, label, isSecret } = input;
|
||||||
|
return (
|
||||||
|
<div className="flex flex-col w-full gap-1" key={`input-${key}`}>
|
||||||
|
<label className="block font-medium">{label}</label>
|
||||||
|
<div className="single-line-editor-wrapper">
|
||||||
|
<SingleLineEditor
|
||||||
|
value={oAuth[key] || ''}
|
||||||
|
theme={storedTheme}
|
||||||
|
onSave={handleSave}
|
||||||
|
onChange={(val) => handleChange(key, val)}
|
||||||
|
onRun={handleRun}
|
||||||
|
collection={collection}
|
||||||
|
isSecret={isSecret}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
<button onClick={handleRun} className="submit btn btn-sm btn-secondary w-fit">
|
||||||
|
Get Access Token
|
||||||
|
</button>
|
||||||
|
</StyledWrapper>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default OAuth2ClientCredentials;
|
@ -0,0 +1,21 @@
|
|||||||
|
const inputsConfig = [
|
||||||
|
{
|
||||||
|
key: 'accessTokenUrl',
|
||||||
|
label: 'Access Token URL'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'clientId',
|
||||||
|
label: 'Client ID'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'clientSecret',
|
||||||
|
label: 'Client Secret',
|
||||||
|
isSecret: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'scope',
|
||||||
|
label: 'Scope'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
export { inputsConfig };
|
@ -0,0 +1,54 @@
|
|||||||
|
import styled from 'styled-components';
|
||||||
|
|
||||||
|
const Wrapper = styled.div`
|
||||||
|
font-size: 0.8125rem;
|
||||||
|
|
||||||
|
.grant-type-mode-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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.grant-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;
|
||||||
|
}
|
||||||
|
|
||||||
|
.label-item {
|
||||||
|
padding: 0.2rem 0.6rem !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.caret {
|
||||||
|
color: rgb(140, 140, 140);
|
||||||
|
fill: rgb(140 140 140);
|
||||||
|
}
|
||||||
|
label {
|
||||||
|
font-size: 0.8125rem;
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
export default Wrapper;
|
@ -0,0 +1,98 @@
|
|||||||
|
import React, { useRef, forwardRef } from 'react';
|
||||||
|
import get from 'lodash/get';
|
||||||
|
import Dropdown from 'components/Dropdown';
|
||||||
|
import { useDispatch } from 'react-redux';
|
||||||
|
import StyledWrapper from './StyledWrapper';
|
||||||
|
import { IconCaretDown } from '@tabler/icons';
|
||||||
|
import { updateAuth } from 'providers/ReduxStore/slices/collections';
|
||||||
|
import { humanizeGrantType } from 'utils/collections';
|
||||||
|
import { useEffect } from 'react';
|
||||||
|
import { updateCollectionAuth, updateCollectionAuthMode } from 'providers/ReduxStore/slices/collections/index';
|
||||||
|
|
||||||
|
const GrantTypeSelector = ({ collection }) => {
|
||||||
|
const dispatch = useDispatch();
|
||||||
|
const dropdownTippyRef = useRef();
|
||||||
|
const onDropdownCreate = (ref) => (dropdownTippyRef.current = ref);
|
||||||
|
|
||||||
|
const oAuth = get(collection, 'root.request.auth.oauth2', {});
|
||||||
|
|
||||||
|
const Icon = forwardRef((props, ref) => {
|
||||||
|
return (
|
||||||
|
<div ref={ref} className="flex items-center justify-end grant-type-label select-none">
|
||||||
|
{humanizeGrantType(oAuth?.grantType)} <IconCaretDown className="caret ml-1 mr-1" size={14} strokeWidth={2} />
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
const onGrantTypeChange = (grantType) => {
|
||||||
|
dispatch(
|
||||||
|
updateCollectionAuth({
|
||||||
|
mode: 'oauth2',
|
||||||
|
collectionUid: collection.uid,
|
||||||
|
content: {
|
||||||
|
grantType
|
||||||
|
}
|
||||||
|
})
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
// initialize redux state with a default oauth2 grant type
|
||||||
|
// authorization_code - default option
|
||||||
|
!oAuth?.grantType &&
|
||||||
|
dispatch(
|
||||||
|
updateCollectionAuthMode({
|
||||||
|
mode: 'oauth2',
|
||||||
|
collectionUid: collection.uid
|
||||||
|
})
|
||||||
|
);
|
||||||
|
!oAuth?.grantType &&
|
||||||
|
dispatch(
|
||||||
|
updateCollectionAuth({
|
||||||
|
mode: 'oauth2',
|
||||||
|
collectionUid: collection.uid,
|
||||||
|
content: {
|
||||||
|
grantType: 'authorization_code'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}, [oAuth]);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<StyledWrapper>
|
||||||
|
<label className="block font-medium mb-2">Grant Type</label>
|
||||||
|
<div className="inline-flex items-center cursor-pointer grant-type-mode-selector w-fit">
|
||||||
|
<Dropdown onCreate={onDropdownCreate} icon={<Icon />} placement="bottom-end">
|
||||||
|
<div
|
||||||
|
className="dropdown-item"
|
||||||
|
onClick={() => {
|
||||||
|
dropdownTippyRef.current.hide();
|
||||||
|
onGrantTypeChange('password');
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Password Credentials
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
className="dropdown-item"
|
||||||
|
onClick={() => {
|
||||||
|
dropdownTippyRef.current.hide();
|
||||||
|
onGrantTypeChange('authorization_code');
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Authorization Code
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
className="dropdown-item"
|
||||||
|
onClick={() => {
|
||||||
|
dropdownTippyRef.current.hide();
|
||||||
|
onGrantTypeChange('client_credentials');
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Client Credentials
|
||||||
|
</div>
|
||||||
|
</Dropdown>
|
||||||
|
</div>
|
||||||
|
</StyledWrapper>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
export default GrantTypeSelector;
|
@ -0,0 +1,16 @@
|
|||||||
|
import styled from 'styled-components';
|
||||||
|
|
||||||
|
const Wrapper = styled.div`
|
||||||
|
label {
|
||||||
|
font-size: 0.8125rem;
|
||||||
|
}
|
||||||
|
.single-line-editor-wrapper {
|
||||||
|
max-width: 400px;
|
||||||
|
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;
|
@ -0,0 +1,72 @@
|
|||||||
|
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 { saveCollectionRoot, sendCollectionOauth2Request } from 'providers/ReduxStore/slices/collections/actions';
|
||||||
|
import StyledWrapper from './StyledWrapper';
|
||||||
|
import { inputsConfig } from './inputsConfig';
|
||||||
|
import { updateCollectionAuth } from 'providers/ReduxStore/slices/collections/index';
|
||||||
|
|
||||||
|
const OAuth2AuthorizationCode = ({ item, collection }) => {
|
||||||
|
const dispatch = useDispatch();
|
||||||
|
const { storedTheme } = useTheme();
|
||||||
|
|
||||||
|
const oAuth = get(collection, 'root.request.auth.oauth2', {});
|
||||||
|
|
||||||
|
const handleRun = async () => {
|
||||||
|
dispatch(sendCollectionOauth2Request(collection.uid));
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleSave = () => dispatch(saveCollectionRoot(collection.uid));
|
||||||
|
|
||||||
|
const { accessTokenUrl, username, password, clientId, clientSecret, scope } = oAuth;
|
||||||
|
|
||||||
|
const handleChange = (key, value) => {
|
||||||
|
dispatch(
|
||||||
|
updateCollectionAuth({
|
||||||
|
mode: 'oauth2',
|
||||||
|
collectionUid: collection.uid,
|
||||||
|
content: {
|
||||||
|
grantType: 'password',
|
||||||
|
accessTokenUrl,
|
||||||
|
username,
|
||||||
|
password,
|
||||||
|
clientId,
|
||||||
|
clientSecret,
|
||||||
|
scope,
|
||||||
|
[key]: value
|
||||||
|
}
|
||||||
|
})
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<StyledWrapper className="mt-2 flex w-full gap-4 flex-col">
|
||||||
|
{inputsConfig.map((input) => {
|
||||||
|
const { key, label, isSecret } = input;
|
||||||
|
return (
|
||||||
|
<div className="flex flex-col w-full gap-1" key={`input-${key}`}>
|
||||||
|
<label className="block font-medium">{label}</label>
|
||||||
|
<div className="single-line-editor-wrapper">
|
||||||
|
<SingleLineEditor
|
||||||
|
value={oAuth[key] || ''}
|
||||||
|
theme={storedTheme}
|
||||||
|
onSave={handleSave}
|
||||||
|
onChange={(val) => handleChange(key, val)}
|
||||||
|
onRun={handleRun}
|
||||||
|
collection={collection}
|
||||||
|
isSecret={isSecret}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
<button onClick={handleRun} className="submit btn btn-sm btn-secondary w-fit">
|
||||||
|
Get Access Token
|
||||||
|
</button>
|
||||||
|
</StyledWrapper>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default OAuth2AuthorizationCode;
|
@ -0,0 +1,29 @@
|
|||||||
|
const inputsConfig = [
|
||||||
|
{
|
||||||
|
key: 'accessTokenUrl',
|
||||||
|
label: 'Access Token URL'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'username',
|
||||||
|
label: 'Username'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'password',
|
||||||
|
label: 'Password'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'clientId',
|
||||||
|
label: 'Client ID'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'clientSecret',
|
||||||
|
label: 'Client Secret',
|
||||||
|
isSecret: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'scope',
|
||||||
|
label: 'Scope'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
export { inputsConfig };
|
@ -0,0 +1,16 @@
|
|||||||
|
import styled from 'styled-components';
|
||||||
|
|
||||||
|
const Wrapper = styled.div`
|
||||||
|
label {
|
||||||
|
font-size: 0.8125rem;
|
||||||
|
}
|
||||||
|
.single-line-editor-wrapper {
|
||||||
|
max-width: 400px;
|
||||||
|
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;
|
@ -0,0 +1,37 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import get from 'lodash/get';
|
||||||
|
import StyledWrapper from './StyledWrapper';
|
||||||
|
import GrantTypeSelector from './GrantTypeSelector/index';
|
||||||
|
import OAuth2PasswordCredentials from './PasswordCredentials/index';
|
||||||
|
import OAuth2AuthorizationCode from './AuthorizationCode/index';
|
||||||
|
import OAuth2ClientCredentials from './ClientCredentials/index';
|
||||||
|
|
||||||
|
const grantTypeComponentMap = (grantType, collection) => {
|
||||||
|
switch (grantType) {
|
||||||
|
case 'password':
|
||||||
|
return <OAuth2PasswordCredentials collection={collection} />;
|
||||||
|
break;
|
||||||
|
case 'authorization_code':
|
||||||
|
return <OAuth2AuthorizationCode collection={collection} />;
|
||||||
|
break;
|
||||||
|
case 'client_credentials':
|
||||||
|
return <OAuth2ClientCredentials collection={collection} />;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return <div>TBD</div>;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const OAuth2 = ({ collection }) => {
|
||||||
|
const oAuth = get(collection, 'root.request.auth.oauth2', {});
|
||||||
|
|
||||||
|
return (
|
||||||
|
<StyledWrapper className="mt-2 w-full">
|
||||||
|
<GrantTypeSelector collection={collection} />
|
||||||
|
{grantTypeComponentMap(oAuth?.grantType, collection)}
|
||||||
|
</StyledWrapper>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default OAuth2;
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user