diff --git a/.dockerignore b/.dockerignore index 61b7ef66..7ee311a4 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,2 +1,2 @@ node_modules/ -db/ \ No newline at end of file +db/ diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index f76b9015..43f3b63b 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1 +1 @@ -open_collective: fosscord \ No newline at end of file +open_collective: fosscord diff --git a/.github/workflows/docker-publish-api.yml b/.github/workflows/docker-publish-api.yml index 405faae4..cc35562a 100644 --- a/.github/workflows/docker-publish-api.yml +++ b/.github/workflows/docker-publish-api.yml @@ -1,47 +1,41 @@ name: docker-publish-api on: - push: - paths: - - 'api/**' + push: + paths: + - "api/**" jobs: - docker-api: - runs-on: ubuntu-latest - steps: - - - name: Checkout - uses: actions/checkout@v2 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Cache Docker layers - uses: actions/cache@v2 - with: - path: /tmp/.buildx-cache/api - key: ${{ runner.os }}-buildx-api-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-buildx-api- - - - name: Login to DockerHub - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build and push - uses: docker/build-push-action@v2 - with: - context: ./api - push: true - tags: ${{ secrets.DOCKERHUB_TAGS_API }} - cache-from: type=local,src=/tmp/.buildx-cache/api - cache-to: type=local,dest=/tmp/.buildx-cache-new/api - - - # Hackfix to cleanup cache; replace after buildx 0.6 and BuildKit 0.9 are GA - # https://github.com/docker/build-push-action/pull/406#issuecomment-879184394 - name: Move cache fix - run: | - rm -rf /tmp/.buildx-cache/api - mv /tmp/.buildx-cache-new/api /tmp/.buildx-cache/api \ No newline at end of file + docker-api: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - name: Cache Docker layers + uses: actions/cache@v2 + with: + path: /tmp/.buildx-cache/api + key: ${{ runner.os }}-buildx-api-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx-api- + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build and push + uses: docker/build-push-action@v2 + with: + context: ./api + push: true + tags: ${{ secrets.DOCKERHUB_TAGS_API }} + cache-from: type=local,src=/tmp/.buildx-cache/api + cache-to: type=local,dest=/tmp/.buildx-cache-new/api + - # Hackfix to cleanup cache; replace after buildx 0.6 and BuildKit 0.9 are GA + # https://github.com/docker/build-push-action/pull/406#issuecomment-879184394 + name: Move cache fix + run: | + rm -rf /tmp/.buildx-cache/api + mv /tmp/.buildx-cache-new/api /tmp/.buildx-cache/api diff --git a/.github/workflows/docker-publish-cdn.yml b/.github/workflows/docker-publish-cdn.yml index 9b3f6a64..86eae9d6 100644 --- a/.github/workflows/docker-publish-cdn.yml +++ b/.github/workflows/docker-publish-cdn.yml @@ -1,47 +1,41 @@ name: docker-publish-cdn on: - push: - paths: - - 'cdn/**' + push: + paths: + - "cdn/**" jobs: - docker-cdn: - runs-on: ubuntu-latest - steps: - - - name: Checkout - uses: actions/checkout@v2 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Cache Docker layers - uses: actions/cache@v2 - with: - path: /tmp/.buildx-cache/cdn - key: ${{ runner.os }}-buildx-cdn-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-buildx-cdn- - - - name: Login to DockerHub - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build and push - uses: docker/build-push-action@v2 - with: - context: ./cdn - push: true - tags: ${{ secrets.DOCKERHUB_TAGS_CDN }} - cache-from: type=local,src=/tmp/.buildx-cache/cdn - cache-to: type=local,dest=/tmp/.buildx-cache-new/cdn - - - # Hackfix to cleanup cache; replace after buildx 0.6 and BuildKit 0.9 are GA - # https://github.com/docker/build-push-action/pull/406#issuecomment-879184394 - name: Move cache fix - run: | - rm -rf /tmp/.buildx-cache/cdn - mv /tmp/.buildx-cache-new/cdn /tmp/.buildx-cache/cdn \ No newline at end of file + docker-cdn: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - name: Cache Docker layers + uses: actions/cache@v2 + with: + path: /tmp/.buildx-cache/cdn + key: ${{ runner.os }}-buildx-cdn-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx-cdn- + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build and push + uses: docker/build-push-action@v2 + with: + context: ./cdn + push: true + tags: ${{ secrets.DOCKERHUB_TAGS_CDN }} + cache-from: type=local,src=/tmp/.buildx-cache/cdn + cache-to: type=local,dest=/tmp/.buildx-cache-new/cdn + - # Hackfix to cleanup cache; replace after buildx 0.6 and BuildKit 0.9 are GA + # https://github.com/docker/build-push-action/pull/406#issuecomment-879184394 + name: Move cache fix + run: | + rm -rf /tmp/.buildx-cache/cdn + mv /tmp/.buildx-cache-new/cdn /tmp/.buildx-cache/cdn diff --git a/.github/workflows/docker-publish-gateway.yml b/.github/workflows/docker-publish-gateway.yml index eac1052b..21c3333e 100644 --- a/.github/workflows/docker-publish-gateway.yml +++ b/.github/workflows/docker-publish-gateway.yml @@ -1,47 +1,41 @@ name: docker-publish-gw on: - push: - paths: - - 'gateway/**' + push: + paths: + - "gateway/**" jobs: - docker-gw: - runs-on: ubuntu-latest - steps: - - - name: Checkout - uses: actions/checkout@v2 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Cache Docker layers - uses: actions/cache@v2 - with: - path: /tmp/.buildx-cache/gw - key: ${{ runner.os }}-buildx-gw-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-buildx-gw- - - - name: Login to DockerHub - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build and push - uses: docker/build-push-action@v2 - with: - context: ./gateway - push: true - tags: ${{ secrets.DOCKERHUB_TAGS_GW }} - cache-from: type=local,src=/tmp/.buildx-cache/gw - cache-to: type=local,dest=/tmp/.buildx-cache-new/gw - - - # Hackfix to cleanup cache; replace after buildx 0.6 and BuildKit 0.9 are GA - # https://github.com/docker/build-push-action/pull/406#issuecomment-879184394 - name: Move cache fix - run: | - rm -rf /tmp/.buildx-cache/gw - mv /tmp/.buildx-cache-new/gw /tmp/.buildx-cache/gw \ No newline at end of file + docker-gw: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - name: Cache Docker layers + uses: actions/cache@v2 + with: + path: /tmp/.buildx-cache/gw + key: ${{ runner.os }}-buildx-gw-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx-gw- + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build and push + uses: docker/build-push-action@v2 + with: + context: ./gateway + push: true + tags: ${{ secrets.DOCKERHUB_TAGS_GW }} + cache-from: type=local,src=/tmp/.buildx-cache/gw + cache-to: type=local,dest=/tmp/.buildx-cache-new/gw + - # Hackfix to cleanup cache; replace after buildx 0.6 and BuildKit 0.9 are GA + # https://github.com/docker/build-push-action/pull/406#issuecomment-879184394 + name: Move cache fix + run: | + rm -rf /tmp/.buildx-cache/gw + mv /tmp/.buildx-cache-new/gw /tmp/.buildx-cache/gw diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f9e87d53..6bd8f535 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,101 +1,101 @@ on: - workflow_dispatch: - push: - # Sequence of patterns matched against refs/tags - tags: - - "v*" # Push events to matching v*, i.e. v1.0, v20.15.10 + workflow_dispatch: + push: + # Sequence of patterns matched against refs/tags + tags: + - "v*" # Push events to matching v*, i.e. v1.0, v20.15.10 name: Publish Release jobs: - insiders-build: - strategy: - matrix: - os: [windows, macos, ubuntu] - include: - - os: windows - file: fosscord-server-windows.exe - package: "" - artifact: fosscord-server-windows.exe - - os: macos - file: fosscord-server.app - package: tar -czf 'fosscord-server-macos.app.tgz' 'fosscord-server.app' - artifact: fosscord-server-macos.app.tgz - - os: ubuntu - file: fosscord - package: chmod +x fosscord && tar -czf 'fosscord-server-linux.tgz' 'fosscord' - artifact: fosscord-server-linux.tgz - runs-on: ${{ matrix.os }}-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 - env: - MONGOMS_VERSION: 4.4.3 - with: - node-version: 14 - - run: | - cd bundle - npm run setup - npx caxa -i . -m 'This_may_take_a_while_to_run_the_first_time_please_wait...' --output '${{matrix.file}}' -- '{{caxa}}/node_modules/.bin/node' '{{caxa}}/dist/bundle/src/start.js' - ${{ matrix.package }} - - uses: actions/upload-artifact@v2 - with: - name: ${{ matrix.artifact }} - path: bundle/${{ matrix.artifact }} + insiders-build: + strategy: + matrix: + os: [windows, macos, ubuntu] + include: + - os: windows + file: fosscord-server-windows.exe + package: "" + artifact: fosscord-server-windows.exe + - os: macos + file: fosscord-server.app + package: tar -czf 'fosscord-server-macos.app.tgz' 'fosscord-server.app' + artifact: fosscord-server-macos.app.tgz + - os: ubuntu + file: fosscord + package: chmod +x fosscord && tar -czf 'fosscord-server-linux.tgz' 'fosscord' + artifact: fosscord-server-linux.tgz + runs-on: ${{ matrix.os }}-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 + env: + MONGOMS_VERSION: 4.4.3 + with: + node-version: 14 + - run: | + cd bundle + npm run setup + npx caxa -i . -m 'This_may_take_a_while_to_run_the_first_time_please_wait...' --output '${{matrix.file}}' -- '{{caxa}}/node_modules/.bin/node' '{{caxa}}/dist/bundle/src/start.js' + ${{ matrix.package }} + - uses: actions/upload-artifact@v2 + with: + name: ${{ matrix.artifact }} + path: bundle/${{ matrix.artifact }} - release: - needs: [insiders-build] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/download-artifact@v2 - with: - name: fosscord-server-windows.exe - - uses: actions/download-artifact@v2 - with: - name: fosscord-server-macos.app.tgz - - uses: actions/download-artifact@v2 - with: - name: fosscord-server-linux.tgz - - uses: actions/create-release@v1 - id: create-release - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: v${{ secrets.RELEASE_VERSION }} - release_name: Server v${{ secrets.RELEASE_VERSION }} - draft: false - prerelease: true # TODO: change this to false - body: > - ## Download + release: + needs: [insiders-build] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/download-artifact@v2 + with: + name: fosscord-server-windows.exe + - uses: actions/download-artifact@v2 + with: + name: fosscord-server-macos.app.tgz + - uses: actions/download-artifact@v2 + with: + name: fosscord-server-linux.tgz + - uses: actions/create-release@v1 + id: create-release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: v${{ secrets.RELEASE_VERSION }} + release_name: Server v${{ secrets.RELEASE_VERSION }} + draft: false + prerelease: true # TODO: change this to false + body: > + ## Download - - [Windows](https://github.com/fosscord/fosscord-server/releases/download/v${{ secrets.RELEASE_VERSION }}/fosscord-server-windows.exe) + - [Windows](https://github.com/fosscord/fosscord-server/releases/download/v${{ secrets.RELEASE_VERSION }}/fosscord-server-windows.exe) - - [MacOS](https://github.com/fosscord/fosscord-server/releases/download/v${{ secrets.RELEASE_VERSION }}/fosscord-server-macos.app.tgz) + - [MacOS](https://github.com/fosscord/fosscord-server/releases/download/v${{ secrets.RELEASE_VERSION }}/fosscord-server-macos.app.tgz) - - [Linux](https://github.com/fosscord/fosscord-server/releases/download/v${{ secrets.RELEASE_VERSION }}/fosscord-server-linux.tgz) + - [Linux](https://github.com/fosscord/fosscord-server/releases/download/v${{ secrets.RELEASE_VERSION }}/fosscord-server-linux.tgz) - - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create-release.outputs.upload_url }} - asset_path: fosscord-server-windows.exe - asset_name: fosscord-server-windows.exe - asset_content_type: application/vnd.microsoft.portable-executable - - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create-release.outputs.upload_url }} - asset_path: fosscord-server-macos.app.tgz - asset_name: fosscord-server-macos.app.tgz - asset_content_type: application/gzip - - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create-release.outputs.upload_url }} - asset_path: fosscord-server-linux.tgz - asset_name: fosscord-server-linux.tgz - asset_content_type: application/gzip + - uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create-release.outputs.upload_url }} + asset_path: fosscord-server-windows.exe + asset_name: fosscord-server-windows.exe + asset_content_type: application/vnd.microsoft.portable-executable + - uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create-release.outputs.upload_url }} + asset_path: fosscord-server-macos.app.tgz + asset_name: fosscord-server-macos.app.tgz + asset_content_type: application/gzip + - uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create-release.outputs.upload_url }} + asset_path: fosscord-server-linux.tgz + asset_name: fosscord-server-linux.tgz + asset_content_type: application/gzip diff --git a/.gitignore b/.gitignore index a09d215a..6e6de8d2 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,5 @@ api/assets/*.css database.db tsconfig.tsbuildinfo files/ -.env \ No newline at end of file +.env +config.json diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 00000000..8dc2e726 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,4 @@ +{ + "tabWidth": 4, + "useTabs": true +} diff --git a/Dockerfile b/Dockerfile index c0f3ab20..d4b423ee 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM nikolaik/python-nodejs:latest +FROM node:14 WORKDIR /usr/src/fosscord-server/ COPY . . WORKDIR /usr/src/fosscord-server/bundle diff --git a/README.md b/README.md index b8e2e573..cc831e62 100644 --- a/README.md +++ b/README.md @@ -18,13 +18,13 @@ This repository contains: -- [Fosscord HTTP API Server](https://github.com/fosscord/fosscord-server/tree/master/api) -- [WebSocket Gateway Server](https://github.com/fosscord/fosscord-server/tree/master/gateway) -- [HTTP CDN Server](https://github.com/fosscord/fosscord-server/tree/master/cdn) -- [Utility and Database Models](https://github.com/fosscord/fosscord-server/tree/master/util) -- [RTC Server](https://github.com/fosscord/fosscord-server/tree/master/rtc) -- [WebRTC Server](https://github.com/fosscord/fosscord-server/tree/master/webrtc) -- [Admin Dashboard](https://github.com/fosscord/fosscord-server/tree/master/dashboard) +- [Fosscord HTTP API Server](/api) +- [WebSocket Gateway Server](/gateway) +- [HTTP CDN Server](/cdn) +- [Utility and Database Models](/util) +- [RTC Server](/rtc) +- [WebRTC Server](/webrtc) +- [Admin Dashboard](/dashboard) ## [Resources](https://docs.fosscord.com/resources/) @@ -32,4 +32,4 @@ This repository contains: ## [Setup](https://docs.fosscord.com/setup/server/) -- [Download](https://github.com/fosscord/fosscord-server/releases) +- [Download](https://github.com/fosscord/fosscord-server/releases) diff --git a/api/.vscode/api-snippets.code-snippets b/api/.vscode/api-snippets.code-snippets index 17bde62f..ef4b6386 100644 --- a/api/.vscode/api-snippets.code-snippets +++ b/api/.vscode/api-snippets.code-snippets @@ -19,11 +19,7 @@ "Route": { "scope": "typescript", "prefix": "route", - "body": [ - "router.get(\"$1\", route({}), (req: Request, res: Response) => {", - "\t$2", - "});" - ], + "body": ["router.get(\"$1\", route({}), (req: Request, res: Response) => {", "\t$2", "});"], "description": "An API endpoint" - }, -} \ No newline at end of file + } +} diff --git a/api/Dockerfile b/api/Dockerfile index 16443b15..08d15f72 100644 --- a/api/Dockerfile +++ b/api/Dockerfile @@ -8,5 +8,5 @@ RUN npm rebuild bcrypt --build-from-source && npm install canvas --build-from-so RUN npm install COPY . . EXPOSE 3001 -RUN npm run build +RUN npm run build-docker CMD ["node", "dist/start.js"] diff --git a/api/assets/schemas.json b/api/assets/schemas.json index eb97112c..4ffa44b8 100644 --- a/api/assets/schemas.json +++ b/api/assets/schemas.json @@ -1,9697 +1,8149 @@ { - "LoginSchema": { - "type": "object", - "properties": { - "login": { - "type": "string" - }, - "password": { - "type": "string" - }, - "undelete": { - "type": "boolean" - }, - "captcha_key": { - "type": "string" - }, - "login_source": { - "type": "string" - }, - "gift_code_sku_id": { - "type": "string" - } - }, - "required": [ - "login", - "password" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "RegisterSchema": { - "type": "object", - "properties": { - "username": { - "minLength": 2, - "maxLength": 32, - "type": "string" - }, - "password": { - "minLength": 1, - "maxLength": 72, - "type": "string" - }, - "consent": { - "type": "boolean" - }, - "email": { - "format": "email", - "type": "string" - }, - "fingerprint": { - "type": "string" - }, - "invite": { - "type": "string" - }, - "date_of_birth": { - "type": "string" - }, - "gift_code_sku_id": { - "type": "string" - }, - "captcha_key": { - "type": "string" - } - }, - "required": [ - "consent", - "username" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "MessageCreateSchema": { - "type": "object", - "properties": { - "content": { - "type": "string" - }, - "nonce": { - "type": "string" - }, - "tts": { - "type": "boolean" - }, - "flags": { - "type": "string" - }, - "embeds": { - "type": "array", - "items": { - "$ref": "#/definitions/Embed" - } - }, - "embed": { - "$ref": "#/definitions/Embed" - }, - "allowed_mentions": { - "type": "object", - "properties": { - "parse": { - "type": "array", - "items": { - "type": "string" - } - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - }, - "users": { - "type": "array", - "items": { - "type": "string" - } - }, - "replied_user": { - "type": "boolean" - } - } - }, - "message_reference": { - "type": "object", - "properties": { - "message_id": { - "type": "string" - }, - "channel_id": { - "type": "string" - }, - "guild_id": { - "type": "string" - }, - "fail_if_not_exists": { - "type": "boolean" - } - }, - "required": [ - "channel_id", - "message_id" - ] - }, - "payload_json": { - "type": "string" - }, - "file": {}, - "attachments": { - "type": "array", - "items": {} - }, - "sticker_ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "InviteCreateSchema": { - "type": "object", - "properties": { - "target_user_id": { - "type": "string" - }, - "target_type": { - "type": "string" - }, - "validate": { - "type": "string" - }, - "max_age": { - "type": "integer" - }, - "max_uses": { - "type": "integer" - }, - "temporary": { - "type": "boolean" - }, - "unique": { - "type": "boolean" - }, - "target_user": { - "type": "string" - }, - "target_user_type": { - "type": "integer" - } - }, - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "MessageAcknowledgeSchema": { - "type": "object", - "properties": { - "manual": { - "type": "boolean" - }, - "mention_count": { - "type": "integer" - } - }, - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "BulkDeleteSchema": { - "type": "object", - "properties": { - "messages": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "messages" - ], - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "ChannelPermissionOverwriteSchema": { - "type": "object", - "properties": { - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - }, - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ], - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "WebhookCreateSchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 80, - "type": "string" - }, - "avatar": { - "type": "string" - } - }, - "required": [ - "avatar", - "name" - ], - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "BanCreateSchema": { - "type": "object", - "properties": { - "delete_message_days": { - "type": "string" - }, - "reason": { - "type": "string" - } - }, - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "ChannelReorderSchema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "position": { - "type": "integer" - }, - "lock_permissions": { - "type": "boolean" - }, - "parent_id": { - "type": "string" - } - }, - "required": [ - "id" - ] - }, - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "EmojiCreateSchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "image": { - "type": "string" - }, - "require_colons": { - "type": [ - "null", - "boolean" - ] - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "image" - ], - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "EmojiModifySchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "GuildCreateSchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "region": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "channels": { - "type": "array", - "items": { - "$ref": "#/definitions/ChannelModifySchema" - } - }, - "guild_template_code": { - "type": "string" - }, - "system_channel_id": { - "type": "string" - }, - "rules_channel_id": { - "type": "string" - } - }, - "required": [ - "name" - ], - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "GuildUpdateSchema": { - "type": "object", - "properties": { - "banner": { - "type": [ - "null", - "string" - ] - }, - "splash": { - "type": [ - "null", - "string" - ] - }, - "description": { - "type": "string" - }, - "features": { - "type": "array", - "items": { - "type": "string" - } - }, - "verification_level": { - "type": "integer" - }, - "default_message_notifications": { - "type": "integer" - }, - "system_channel_flags": { - "type": "integer" - }, - "explicit_content_filter": { - "type": "integer" - }, - "public_updates_channel_id": { - "type": "string" - }, - "afk_timeout": { - "type": "integer" - }, - "afk_channel_id": { - "type": "string" - }, - "preferred_locale": { - "type": "string" - }, - "name": { - "maxLength": 100, - "type": "string" - }, - "region": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "guild_template_code": { - "type": "string" - }, - "system_channel_id": { - "type": "string" - }, - "rules_channel_id": { - "type": "string" - } - }, - "required": [ - "name" - ], - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "MemberChangeSchema": { - "type": "object", - "properties": { - "roles": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "MemberNickChangeSchema": { - "type": "object", - "properties": { - "nick": { - "type": "string" - } - }, - "required": [ - "nick" - ], - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "RoleModifySchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "permissions": { - "type": "string" - }, - "color": { - "type": "integer" - }, - "hoist": { - "type": "boolean" - }, - "mentionable": { - "type": "boolean" - }, - "position": { - "type": "integer" - } - }, - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "RolePositionUpdateSchema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "position": { - "type": "integer" - } - }, - "required": [ - "id", - "position" - ] - }, - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "ModifyGuildStickerSchema": { - "type": "object", - "properties": { - "name": { - "minLength": 2, - "maxLength": 30, - "type": "string" - }, - "description": { - "maxLength": 100, - "type": "string" - }, - "tags": { - "maxLength": 200, - "type": "string" - } - }, - "required": [ - "name", - "tags" - ], - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "TemplateCreateSchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - } - }, - "required": [ - "name" - ], - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "TemplateModifySchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - } - }, - "required": [ - "name" - ], - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "VanityUrlSchema": { - "type": "object", - "properties": { - "code": { - "minLength": 1, - "maxLength": 20, - "type": "string" - } - }, - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "VoiceStateUpdateSchema": { - "type": "object", - "properties": { - "channel_id": { - "type": "string" - }, - "guild_id": { - "type": "string" - }, - "suppress": { - "type": "boolean" - }, - "request_to_speak_timestamp": { - "type": "string", - "format": "date-time" - }, - "self_mute": { - "type": "boolean" - }, - "self_deaf": { - "type": "boolean" - }, - "self_video": { - "type": "boolean" - } - }, - "required": [ - "channel_id" - ], - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "GuildUpdateWelcomeScreenSchema": { - "type": "object", - "properties": { - "welcome_channels": { - "type": "array", - "items": { - "type": "object", - "properties": { - "channel_id": { - "type": "string" - }, - "description": { - "type": "string" - }, - "emoji_id": { - "type": "string" - }, - "emoji_name": { - "type": "string" - } - }, - "required": [ - "channel_id", - "description", - "emoji_name" - ] - } - }, - "enabled": { - "type": "boolean" - }, - "description": { - "type": "string" - } - }, - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "WidgetModifySchema": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - }, - "channel_id": { - "type": "string" - } - }, - "required": [ - "channel_id", - "enabled" - ], - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "GuildTemplateCreateSchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "avatar": { - "type": [ - "null", - "string" - ] - } - }, - "required": [ - "name" - ], - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "UserProfileResponse": { - "type": "object", - "properties": { - "user": { - "$ref": "#/definitions/UserPublic" - }, - "connected_accounts": { - "$ref": "#/definitions/PublicConnectedAccount" - }, - "premium_guild_since": { - "type": "string", - "format": "date-time" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "required": [ - "connected_accounts", - "user" - ], - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "DmChannelCreateSchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "recipients": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "recipients" - ], - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "UserModifySchema": { - "type": "object", - "properties": { - "username": { - "minLength": 1, - "maxLength": 100, - "type": "string" - }, - "avatar": { - "type": [ - "null", - "string" - ] - }, - "bio": { - "maxLength": 1024, - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": [ - "null", - "string" - ] - }, - "password": { - "type": "string" - }, - "new_password": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "RelationshipPutSchema": { - "type": "object", - "properties": { - "type": { - "enum": [ - 1, - 2, - 3, - 4 - ], - "type": "number" - } - }, - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "RelationshipPostSchema": { - "type": "object", - "properties": { - "discriminator": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "required": [ - "discriminator", - "username" - ], - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "UserSettingsSchema": { - "type": "object", - "properties": { - "afk_timeout": { - "type": "integer" - }, - "allow_accessibility_detection": { - "type": "boolean" - }, - "animate_emoji": { - "type": "boolean" - }, - "animate_stickers": { - "type": "integer" - }, - "contact_sync_enabled": { - "type": "boolean" - }, - "convert_emoticons": { - "type": "boolean" - }, - "custom_status": { - "type": "object", - "properties": { - "emoji_id": { - "type": "string" - }, - "emoji_name": { - "type": "string" - }, - "expires_at": { - "type": "integer" - }, - "text": { - "type": "string" - } - } - }, - "default_guilds_restricted": { - "type": "boolean" - }, - "detect_platform_accounts": { - "type": "boolean" - }, - "developer_mode": { - "type": "boolean" - }, - "disable_games_tab": { - "type": "boolean" - }, - "enable_tts_command": { - "type": "boolean" - }, - "explicit_content_filter": { - "type": "integer" - }, - "friend_source_flags": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "required": [ - "all" - ] - }, - "gateway_connected": { - "type": "boolean" - }, - "gif_auto_play": { - "type": "boolean" - }, - "guild_folders": { - "type": "array", - "items": { - "type": "object", - "properties": { - "color": { - "type": "integer" - }, - "guild_ids": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "integer" - }, - "name": { - "type": "string" - } - }, - "required": [ - "color", - "guild_ids", - "id", - "name" - ] - } - }, - "guild_positions": { - "type": "array", - "items": { - "type": "string" - } - }, - "inline_attachment_media": { - "type": "boolean" - }, - "inline_embed_media": { - "type": "boolean" - }, - "locale": { - "type": "string" - }, - "message_display_compact": { - "type": "boolean" - }, - "native_phone_integration_enabled": { - "type": "boolean" - }, - "render_embeds": { - "type": "boolean" - }, - "render_reactions": { - "type": "boolean" - }, - "restricted_guilds": { - "type": "array", - "items": { - "type": "string" - } - }, - "show_current_game": { - "type": "boolean" - }, - "status": { - "enum": [ - "dnd", - "idle", - "offline", - "online" - ], - "type": "string" - }, - "stream_notifications_enabled": { - "type": "boolean" - }, - "theme": { - "enum": [ - "dark", - "white" - ], - "type": "string" - }, - "timezone_offset": { - "type": "integer" - } - }, - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1 - ], - "type": "number" - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - } - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "required": [ - "name", - "value" - ] - } - } - } - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 2, - 3, - 4, - 5, - 6 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "verifie" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - } -} \ No newline at end of file + "LoginSchema": { + "type": "object", + "properties": { + "login": { + "type": "string" + }, + "password": { + "type": "string" + }, + "undelete": { + "type": "boolean" + }, + "captcha_key": { + "type": "string" + }, + "login_source": { + "type": "string" + }, + "gift_code_sku_id": { + "type": "string" + } + }, + "required": ["login", "password"], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "RegisterSchema": { + "type": "object", + "properties": { + "username": { + "minLength": 2, + "maxLength": 32, + "type": "string" + }, + "password": { + "minLength": 1, + "maxLength": 72, + "type": "string" + }, + "consent": { + "type": "boolean" + }, + "email": { + "format": "email", + "type": "string" + }, + "fingerprint": { + "type": "string" + }, + "invite": { + "type": "string" + }, + "date_of_birth": { + "type": "string" + }, + "gift_code_sku_id": { + "type": "string" + }, + "captcha_key": { + "type": "string" + } + }, + "required": ["consent", "username"], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + }, + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "MessageCreateSchema": { + "type": "object", + "properties": { + "content": { + "type": "string" + }, + "nonce": { + "type": "string" + }, + "tts": { + "type": "boolean" + }, + "flags": { + "type": "string" + }, + "embeds": { + "type": "array", + "items": { + "$ref": "#/definitions/Embed" + } + }, + "embed": { + "$ref": "#/definitions/Embed" + }, + "allowed_mentions": { + "type": "object", + "properties": { + "parse": { + "type": "array", + "items": { + "type": "string" + } + }, + "roles": { + "type": "array", + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "items": { + "type": "string" + } + }, + "replied_user": { + "type": "boolean" + } + } + }, + "message_reference": { + "type": "object", + "properties": { + "message_id": { + "type": "string" + }, + "channel_id": { + "type": "string" + }, + "guild_id": { + "type": "string" + }, + "fail_if_not_exists": { + "type": "boolean" + } + }, + "required": ["channel_id", "message_id"] + }, + "payload_json": { + "type": "string" + }, + "file": {}, + "attachments": { + "type": "array", + "items": {} + }, + "sticker_ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "InviteCreateSchema": { + "type": "object", + "properties": { + "target_user_id": { + "type": "string" + }, + "target_type": { + "type": "string" + }, + "validate": { + "type": "string" + }, + "max_age": { + "type": "integer" + }, + "max_uses": { + "type": "integer" + }, + "temporary": { + "type": "boolean" + }, + "unique": { + "type": "boolean" + }, + "target_user": { + "type": "string" + }, + "target_user_type": { + "type": "integer" + } + }, + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "MessageAcknowledgeSchema": { + "type": "object", + "properties": { + "manual": { + "type": "boolean" + }, + "mention_count": { + "type": "integer" + } + }, + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "BulkDeleteSchema": { + "type": "object", + "properties": { + "messages": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": ["messages"], + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "ChannelPermissionOverwriteSchema": { + "type": "object", + "properties": { + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + }, + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + } + }, + "required": ["allow", "deny", "id", "type"], + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "WebhookCreateSchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 80, + "type": "string" + }, + "avatar": { + "type": "string" + } + }, + "required": ["avatar", "name"], + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "BanCreateSchema": { + "type": "object", + "properties": { + "delete_message_days": { + "type": "string" + }, + "reason": { + "type": "string" + } + }, + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "ChannelReorderSchema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "position": { + "type": "integer" + }, + "lock_permissions": { + "type": "boolean" + }, + "parent_id": { + "type": "string" + } + }, + "required": ["id"] + }, + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "EmojiCreateSchema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "image": { + "type": "string" + }, + "require_colons": { + "type": ["null", "boolean"] + }, + "roles": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": ["image"], + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "EmojiModifySchema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "roles": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "GuildCreateSchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "region": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "channels": { + "type": "array", + "items": { + "$ref": "#/definitions/ChannelModifySchema" + } + }, + "guild_template_code": { + "type": "string" + }, + "system_channel_id": { + "type": "string" + }, + "rules_channel_id": { + "type": "string" + } + }, + "required": ["name"], + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "GuildUpdateSchema": { + "type": "object", + "properties": { + "banner": { + "type": ["null", "string"] + }, + "splash": { + "type": ["null", "string"] + }, + "description": { + "type": "string" + }, + "features": { + "type": "array", + "items": { + "type": "string" + } + }, + "verification_level": { + "type": "integer" + }, + "default_message_notifications": { + "type": "integer" + }, + "system_channel_flags": { + "type": "integer" + }, + "explicit_content_filter": { + "type": "integer" + }, + "public_updates_channel_id": { + "type": "string" + }, + "afk_timeout": { + "type": "integer" + }, + "afk_channel_id": { + "type": "string" + }, + "preferred_locale": { + "type": "string" + }, + "name": { + "maxLength": 100, + "type": "string" + }, + "region": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "guild_template_code": { + "type": "string" + }, + "system_channel_id": { + "type": "string" + }, + "rules_channel_id": { + "type": "string" + } + }, + "required": ["name"], + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "MemberChangeSchema": { + "type": "object", + "properties": { + "roles": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "MemberNickChangeSchema": { + "type": "object", + "properties": { + "nick": { + "type": "string" + } + }, + "required": ["nick"], + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "RoleModifySchema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "permissions": { + "type": "string" + }, + "color": { + "type": "integer" + }, + "hoist": { + "type": "boolean" + }, + "mentionable": { + "type": "boolean" + }, + "position": { + "type": "integer" + } + }, + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "RolePositionUpdateSchema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "position": { + "type": "integer" + } + }, + "required": ["id", "position"] + }, + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "ModifyGuildStickerSchema": { + "type": "object", + "properties": { + "name": { + "minLength": 2, + "maxLength": 30, + "type": "string" + }, + "description": { + "maxLength": 100, + "type": "string" + }, + "tags": { + "maxLength": 200, + "type": "string" + } + }, + "required": ["name", "tags"], + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "TemplateCreateSchema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "required": ["name"], + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "TemplateModifySchema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "required": ["name"], + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "VanityUrlSchema": { + "type": "object", + "properties": { + "code": { + "minLength": 1, + "maxLength": 20, + "type": "string" + } + }, + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "VoiceStateUpdateSchema": { + "type": "object", + "properties": { + "channel_id": { + "type": "string" + }, + "guild_id": { + "type": "string" + }, + "suppress": { + "type": "boolean" + }, + "request_to_speak_timestamp": { + "type": "string", + "format": "date-time" + }, + "self_mute": { + "type": "boolean" + }, + "self_deaf": { + "type": "boolean" + }, + "self_video": { + "type": "boolean" + } + }, + "required": ["channel_id"], + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "GuildUpdateWelcomeScreenSchema": { + "type": "object", + "properties": { + "welcome_channels": { + "type": "array", + "items": { + "type": "object", + "properties": { + "channel_id": { + "type": "string" + }, + "description": { + "type": "string" + }, + "emoji_id": { + "type": "string" + }, + "emoji_name": { + "type": "string" + } + }, + "required": ["channel_id", "description", "emoji_name"] + } + }, + "enabled": { + "type": "boolean" + }, + "description": { + "type": "string" + } + }, + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "WidgetModifySchema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "channel_id": { + "type": "string" + } + }, + "required": ["channel_id", "enabled"], + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "GuildTemplateCreateSchema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "avatar": { + "type": ["null", "string"] + } + }, + "required": ["name"], + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "UserProfileResponse": { + "type": "object", + "properties": { + "user": { + "$ref": "#/definitions/UserPublic" + }, + "connected_accounts": { + "$ref": "#/definitions/PublicConnectedAccount" + }, + "premium_guild_since": { + "type": "string", + "format": "date-time" + }, + "premium_since": { + "type": "string", + "format": "date-time" + } + }, + "required": ["connected_accounts", "user"], + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "DmChannelCreateSchema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "recipients": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": ["recipients"], + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "UserModifySchema": { + "type": "object", + "properties": { + "username": { + "minLength": 1, + "maxLength": 100, + "type": "string" + }, + "avatar": { + "type": ["null", "string"] + }, + "bio": { + "maxLength": 1024, + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": ["null", "string"] + }, + "password": { + "type": "string" + }, + "new_password": { + "type": "string" + }, + "code": { + "type": "string" + } + }, + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "RelationshipPutSchema": { + "type": "object", + "properties": { + "type": { + "enum": [1, 2, 3, 4], + "type": "number" + } + }, + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "RelationshipPostSchema": { + "type": "object", + "properties": { + "discriminator": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "required": ["discriminator", "username"], + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "UserSettingsSchema": { + "type": "object", + "properties": { + "afk_timeout": { + "type": "integer" + }, + "allow_accessibility_detection": { + "type": "boolean" + }, + "animate_emoji": { + "type": "boolean" + }, + "animate_stickers": { + "type": "integer" + }, + "contact_sync_enabled": { + "type": "boolean" + }, + "convert_emoticons": { + "type": "boolean" + }, + "custom_status": { + "type": "object", + "properties": { + "emoji_id": { + "type": "string" + }, + "emoji_name": { + "type": "string" + }, + "expires_at": { + "type": "integer" + }, + "text": { + "type": "string" + } + } + }, + "default_guilds_restricted": { + "type": "boolean" + }, + "detect_platform_accounts": { + "type": "boolean" + }, + "developer_mode": { + "type": "boolean" + }, + "disable_games_tab": { + "type": "boolean" + }, + "enable_tts_command": { + "type": "boolean" + }, + "explicit_content_filter": { + "type": "integer" + }, + "friend_source_flags": { + "type": "object", + "properties": { + "all": { + "type": "boolean" + } + }, + "required": ["all"] + }, + "gateway_connected": { + "type": "boolean" + }, + "gif_auto_play": { + "type": "boolean" + }, + "guild_folders": { + "type": "array", + "items": { + "type": "object", + "properties": { + "color": { + "type": "integer" + }, + "guild_ids": { + "type": "array", + "items": { + "type": "string" + } + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + } + }, + "required": ["color", "guild_ids", "id", "name"] + } + }, + "guild_positions": { + "type": "array", + "items": { + "type": "string" + } + }, + "inline_attachment_media": { + "type": "boolean" + }, + "inline_embed_media": { + "type": "boolean" + }, + "locale": { + "type": "string" + }, + "message_display_compact": { + "type": "boolean" + }, + "native_phone_integration_enabled": { + "type": "boolean" + }, + "render_embeds": { + "type": "boolean" + }, + "render_reactions": { + "type": "boolean" + }, + "restricted_guilds": { + "type": "array", + "items": { + "type": "string" + } + }, + "show_current_game": { + "type": "boolean" + }, + "status": { + "enum": ["dnd", "idle", "offline", "online"], + "type": "string" + }, + "stream_notifications_enabled": { + "type": "boolean" + }, + "theme": { + "enum": ["dark", "white"], + "type": "string" + }, + "timezone_offset": { + "type": "integer" + } + }, + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "required": ["text"] + }, + "image": { + "$ref": "#/definitions/EmbedImage" + }, + "thumbnail": { + "$ref": "#/definitions/EmbedImage" + }, + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + } + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "required": ["name", "value"] + } + } + } + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": ["null", "string"] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} diff --git a/api/client_test/index.html b/api/client_test/index.html index 5a795253..a68b191a 100644 --- a/api/client_test/index.html +++ b/api/client_test/index.html @@ -105,8 +105,40 @@ }); } + const supportedLocales = [ + "bg", + "cs", + "da", + "de", + "el", + "en-GB", + "es-ES", + "fi", + "fr", + "hi", + "hr", + "hu", + "it", + "ja", + "ko", + "lt", + "nl", + "no", + "pl", + "pt-BR", + "ro", + "ru", + "sv-SE", + "th", + "tr", + "uk", + "vi", + "zh-CN", + "zh-TW" + ]; + const settings = JSON.parse(localStorage.getItem("UserSettingsStore")); - if (settings && settings.locale.length <= 2) { + if (settings && !supportedLocales.includes(settings.locale)) { // fix client locale wrong and client not loading at all settings.locale = "en-US"; localStorage.setItem("UserSettingsStore", JSON.stringify(settings)); diff --git a/api/crowdin.yml b/api/crowdin.yml index bf531df9..7228117f 100644 --- a/api/crowdin.yml +++ b/api/crowdin.yml @@ -1,3 +1,3 @@ files: - - source: /locales/en/*.json - translation: /locales/%two_letters_code%/%original_file_name% + - source: /locales/en/*.json + translation: /locales/%two_letters_code%/%original_file_name% diff --git a/api/locales/af/af b/api/locales/af/af deleted file mode 100644 index 7a0254fc..00000000 --- a/api/locales/af/af +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be a object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unkown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file diff --git a/api/locales/af/common.json b/api/locales/af/common.json index a565e3dc..8bb9c042 100644 --- a/api/locales/af/common.json +++ b/api/locales/af/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/ar/ar b/api/locales/ar/ar deleted file mode 100644 index 7a0254fc..00000000 --- a/api/locales/ar/ar +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be a object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unkown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file diff --git a/api/locales/ar/common.json b/api/locales/ar/common.json index e941bf54..09a4915a 100644 --- a/api/locales/ar/common.json +++ b/api/locales/ar/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "هذا الحقل مطلوب", - "BASE_TYPE_STRING": "يجب أن يكون هذا الحقل سلسلة من الأحرف", - "BASE_TYPE_NUMBER": "يجب أن يكون هذا الحقل رقم", - "BASE_TYPE_BIGINT": "يجب أن يكون هذا الحقل أكبر", - "BASE_TYPE_BOOLEAN": "يجب أن يكون هذا الحقل منطقيا", - "BASE_TYPE_CHOICES": "يجب أن يكون هذا الحقل واحدا من ({{types}})", - "BASE_TYPE_CLASS": "يجب أن يكون هذا الحقل مثيل {{type}}", - "BASE_TYPE_OBJECT": "يجب أن يكون هذا الحقل كائناً", - "BASE_TYPE_ARRAY": "يجب أن يكون هذا الحقل مصفوفة", - "UNKOWN_FIELD": "مفتاح غير معروف: {{key}}", - "BASE_TYPE_CONSTANT": "يجب أن يكون هذا الحقل {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "عنوان البريد الإلكتروني ليس مشكّل جيدا", - "DATE_TYPE_PARSE": "لا يمكن تحليل {{date}}. يجب أن يكون ISO8601", - "BASE_TYPE_BAD_LENGTH": "يجب أن يكون بين {{length}} في الطول" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "هذا الحقل مطلوب", + "BASE_TYPE_STRING": "يجب أن يكون هذا الحقل سلسلة من الأحرف", + "BASE_TYPE_NUMBER": "يجب أن يكون هذا الحقل رقم", + "BASE_TYPE_BIGINT": "يجب أن يكون هذا الحقل أكبر", + "BASE_TYPE_BOOLEAN": "يجب أن يكون هذا الحقل منطقيا", + "BASE_TYPE_CHOICES": "يجب أن يكون هذا الحقل واحدا من ({{types}})", + "BASE_TYPE_CLASS": "يجب أن يكون هذا الحقل مثيل {{type}}", + "BASE_TYPE_OBJECT": "يجب أن يكون هذا الحقل كائناً", + "BASE_TYPE_ARRAY": "يجب أن يكون هذا الحقل مصفوفة", + "UNKOWN_FIELD": "مفتاح غير معروف: {{key}}", + "BASE_TYPE_CONSTANT": "يجب أن يكون هذا الحقل {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "عنوان البريد الإلكتروني ليس مشكّل جيدا", + "DATE_TYPE_PARSE": "لا يمكن تحليل {{date}}. يجب أن يكون ISO8601", + "BASE_TYPE_BAD_LENGTH": "يجب أن يكون بين {{length}} في الطول" + } +} diff --git a/api/locales/da/da b/api/locales/arn/auth.json similarity index 72% rename from api/locales/da/da rename to api/locales/arn/auth.json index 025a3876..e19547a0 100644 --- a/api/locales/da/da +++ b/api/locales/arn/auth.json @@ -1,7 +1,8 @@ { "login": { "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password" + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled" }, "register": { "REGISTRATION_DISABLED": "New user registration is disabled", @@ -9,7 +10,7 @@ "EMAIL_INVALID": "Invalid Email", "EMAIL_ALREADY_REGISTERED": "Email is already registered", "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to Terms of Service and Privacy Policy.", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" } } diff --git a/api/locales/arn/common.json b/api/locales/arn/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/api/locales/arn/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/ko/ko b/api/locales/az/auth.json similarity index 72% rename from api/locales/ko/ko rename to api/locales/az/auth.json index 025a3876..e19547a0 100644 --- a/api/locales/ko/ko +++ b/api/locales/az/auth.json @@ -1,7 +1,8 @@ { "login": { "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password" + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled" }, "register": { "REGISTRATION_DISABLED": "New user registration is disabled", @@ -9,7 +10,7 @@ "EMAIL_INVALID": "Invalid Email", "EMAIL_ALREADY_REGISTERED": "Email is already registered", "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to Terms of Service and Privacy Policy.", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" } } diff --git a/api/locales/az/common.json b/api/locales/az/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/api/locales/az/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/be/common.json b/api/locales/be/common.json index 56500818..1b3115cc 100644 --- a/api/locales/be/common.json +++ b/api/locales/be/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "Гэта поле з'яўляецца абавязковым", - "BASE_TYPE_STRING": "Гэта поле павінна быць string", - "BASE_TYPE_NUMBER": "Гэта поле павінна быць number", - "BASE_TYPE_BIGINT": "Гэта поле павінна быць bigint", - "BASE_TYPE_BOOLEAN": "Гэта поле павінна быць boolean", - "BASE_TYPE_CHOICES": "Гэта поле павінна быць адным з ({{types}})", - "BASE_TYPE_CLASS": "Гэта поле павінна быць асобнікам {{type}}", - "BASE_TYPE_OBJECT": "Гэта поле павінна быць аб'ектам", - "BASE_TYPE_ARRAY": "Гэта поле павінна быць масівам", - "UNKOWN_FIELD": "Невядомае поле: {{key}}", - "BASE_TYPE_CONSTANT": "Гэта поле павінна быць {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Няправільны фармат адрасы электроннай пошты", - "DATE_TYPE_PARSE": "Немагчыма разабраць {{date}}. Яна павінна быць у ISO8601", - "BASE_TYPE_BAD_LENGTH": "Павінна быць паміж {{length}} у даўжыню" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "Гэта поле з'яўляецца абавязковым", + "BASE_TYPE_STRING": "Гэта поле павінна быць string", + "BASE_TYPE_NUMBER": "Гэта поле павінна быць number", + "BASE_TYPE_BIGINT": "Гэта поле павінна быць bigint", + "BASE_TYPE_BOOLEAN": "Гэта поле павінна быць boolean", + "BASE_TYPE_CHOICES": "Гэта поле павінна быць адным з ({{types}})", + "BASE_TYPE_CLASS": "Гэта поле павінна быць асобнікам {{type}}", + "BASE_TYPE_OBJECT": "Гэта поле павінна быць аб'ектам", + "BASE_TYPE_ARRAY": "Гэта поле павінна быць масівам", + "UNKOWN_FIELD": "Невядомае поле: {{key}}", + "BASE_TYPE_CONSTANT": "Гэта поле павінна быць {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Няправільны фармат адрасы электроннай пошты", + "DATE_TYPE_PARSE": "Немагчыма разабраць {{date}}. Яна павінна быць у ISO8601", + "BASE_TYPE_BAD_LENGTH": "Павінна быць паміж {{length}} у даўжыню" + } +} diff --git a/api/locales/ber/auth.json b/api/locales/ber/auth.json new file mode 100644 index 00000000..e19547a0 --- /dev/null +++ b/api/locales/ber/auth.json @@ -0,0 +1,16 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled" + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/api/locales/ber/common.json b/api/locales/ber/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/api/locales/ber/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/bg/common.json b/api/locales/bg/common.json index 8003eccf..dca90717 100644 --- a/api/locales/bg/common.json +++ b/api/locales/bg/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "Това поле е задължително", - "BASE_TYPE_STRING": "Това поле трябва да е низ", - "BASE_TYPE_NUMBER": "Това поле трябва да е число", - "BASE_TYPE_BIGINT": "Това поле трябва да е голямо", - "BASE_TYPE_BOOLEAN": "Това поле трябва да бъде булево", - "BASE_TYPE_CHOICES": "Това поле трябва да бъде едно от ({{types}})", - "BASE_TYPE_CLASS": "Това поле трябва да бъде екземпляр на {{type}}", - "BASE_TYPE_OBJECT": "Това поле трябва да бъде обект", - "BASE_TYPE_ARRAY": "Това поле трябва да бъде масив", - "UNKOWN_FIELD": "Непознат ключ: {{key}}", - "BASE_TYPE_CONSTANT": "Това поле трябва да е {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Невалиден имейл адрес", - "DATE_TYPE_PARSE": "Не може да се анализира {{date}}. Трябва да е ISO8601", - "BASE_TYPE_BAD_LENGTH": "Трябва да е с дължина между {{length}}" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "Това поле е задължително", + "BASE_TYPE_STRING": "Това поле трябва да е низ", + "BASE_TYPE_NUMBER": "Това поле трябва да е число", + "BASE_TYPE_BIGINT": "Това поле трябва да е голямо", + "BASE_TYPE_BOOLEAN": "Това поле трябва да бъде булево", + "BASE_TYPE_CHOICES": "Това поле трябва да бъде едно от ({{types}})", + "BASE_TYPE_CLASS": "Това поле трябва да бъде екземпляр на {{type}}", + "BASE_TYPE_OBJECT": "Това поле трябва да бъде обект", + "BASE_TYPE_ARRAY": "Това поле трябва да бъде масив", + "UNKOWN_FIELD": "Непознат ключ: {{key}}", + "BASE_TYPE_CONSTANT": "Това поле трябва да е {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Невалиден имейл адрес", + "DATE_TYPE_PARSE": "Не може да се анализира {{date}}. Трябва да е ISO8601", + "BASE_TYPE_BAD_LENGTH": "Трябва да е с дължина между {{length}}" + } +} diff --git a/api/locales/bo/auth.json b/api/locales/bo/auth.json new file mode 100644 index 00000000..e19547a0 --- /dev/null +++ b/api/locales/bo/auth.json @@ -0,0 +1,16 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled" + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/api/locales/bo/common.json b/api/locales/bo/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/api/locales/bo/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/ca/ca b/api/locales/ca/ca deleted file mode 100644 index 7a0254fc..00000000 --- a/api/locales/ca/ca +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be a object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unkown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file diff --git a/api/locales/ca/common.json b/api/locales/ca/common.json index a565e3dc..8bb9c042 100644 --- a/api/locales/ca/common.json +++ b/api/locales/ca/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/cs/auth.json b/api/locales/cs/auth.json index 70acc5ba..59fa4fcf 100644 --- a/api/locales/cs/auth.json +++ b/api/locales/cs/auth.json @@ -2,12 +2,12 @@ "login": { "INVALID_LOGIN": "E-Mail nebo telefon nenalezen", "INVALID_PASSWORD": "Neplatné heslo", - "ACCOUNT_DISABLED": "This account is disabled" + "ACCOUNT_DISABLED": "Tento účet je vypnutý" }, "register": { "REGISTRATION_DISABLED": "Registrace nového uživatele je zakázána", "INVITE_ONLY": "Musíte být pozváni k registraci", - "EMAIL_INVALID": "Invalid Email", + "EMAIL_INVALID": "Neplatný E-mail", "EMAIL_ALREADY_REGISTERED": "E-mail je již registrován", "DATE_OF_BIRTH_UNDERAGE": "Musíš být {{years}} let nebo starší", "CONSENT_REQUIRED": "Musíte souhlasit s obchodními podmínkami a zásadami ochrany osobních údajů.", diff --git a/api/locales/cs/common.json b/api/locales/cs/common.json index c1dd9ba4..61d70a40 100644 --- a/api/locales/cs/common.json +++ b/api/locales/cs/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "Toto pole je povinné", - "BASE_TYPE_STRING": "Toto pole musí být řetězec", - "BASE_TYPE_NUMBER": "Toto pole musí být číslo", - "BASE_TYPE_BIGINT": "Toto pole musí být velké", - "BASE_TYPE_BOOLEAN": "Toto pole musí být logická hodnota", - "BASE_TYPE_CHOICES": "Toto pole musí být jedno z ({{types}})", - "BASE_TYPE_CLASS": "Toto pole musí být instancí {{type}}", - "BASE_TYPE_OBJECT": "Toto pole musí být objekt", - "BASE_TYPE_ARRAY": "Toto pole musí být pole", - "UNKOWN_FIELD": "Neznámý klíč: {{key}}", - "BASE_TYPE_CONSTANT": "Toto pole musí být {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Není dobře vytvořená e-mailová adresa", - "DATE_TYPE_PARSE": "Nelze naparsovat {{date}}. Mělo by být ISO8601", - "BASE_TYPE_BAD_LENGTH": "Musí být mezi {{length}} délkou" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "Toto pole je povinné", + "BASE_TYPE_STRING": "Toto pole musí být řetězec", + "BASE_TYPE_NUMBER": "Toto pole musí být číslo", + "BASE_TYPE_BIGINT": "Toto pole musí být velké", + "BASE_TYPE_BOOLEAN": "Toto pole musí být logická hodnota", + "BASE_TYPE_CHOICES": "Toto pole musí být jedno z ({{types}})", + "BASE_TYPE_CLASS": "Toto pole musí být instancí {{type}}", + "BASE_TYPE_OBJECT": "Toto pole musí být objekt", + "BASE_TYPE_ARRAY": "Toto pole musí být pole", + "UNKOWN_FIELD": "Neznámý klíč: {{key}}", + "BASE_TYPE_CONSTANT": "Toto pole musí být {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Není dobře vytvořená e-mailová adresa", + "DATE_TYPE_PARSE": "Nelze naparsovat {{date}}. Mělo by být ISO8601", + "BASE_TYPE_BAD_LENGTH": "Musí být mezi {{length}} délkou" + } +} diff --git a/api/locales/cs/cs b/api/locales/cs/cs deleted file mode 100644 index 7a0254fc..00000000 --- a/api/locales/cs/cs +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be a object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unkown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file diff --git a/api/locales/da/common.json b/api/locales/da/common.json index da791f4a..d307d064 100644 --- a/api/locales/da/common.json +++ b/api/locales/da/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "Dette felt er påkrævet", - "BASE_TYPE_STRING": "Dette felt skal være en streng", - "BASE_TYPE_NUMBER": "Dette felt skal være et tal", - "BASE_TYPE_BIGINT": "Dette felt skal være en bigint", - "BASE_TYPE_BOOLEAN": "Dette felt skal være en boolsk", - "BASE_TYPE_CHOICES": "Dette felt skal være et af ({{types}})", - "BASE_TYPE_CLASS": "Dette felt skal være en instans på {{type}}", - "BASE_TYPE_OBJECT": "Dette felt skal være et objekt", - "BASE_TYPE_ARRAY": "Dette felt skal være et array", - "UNKOWN_FIELD": "Ukendt nøgle: {{key}}", - "BASE_TYPE_CONSTANT": "Dette felt skal være {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Ikke en velformet e-mailadresse", - "DATE_TYPE_PARSE": "Kunne ikke fortolke {{date}}. Bør være ISO8601", - "BASE_TYPE_BAD_LENGTH": "Skal være mellem {{length}} i længden" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "Dette felt er påkrævet", + "BASE_TYPE_STRING": "Dette felt skal være en streng", + "BASE_TYPE_NUMBER": "Dette felt skal være et tal", + "BASE_TYPE_BIGINT": "Dette felt skal være en bigint", + "BASE_TYPE_BOOLEAN": "Dette felt skal være en boolsk", + "BASE_TYPE_CHOICES": "Dette felt skal være et af ({{types}})", + "BASE_TYPE_CLASS": "Dette felt skal være en instans på {{type}}", + "BASE_TYPE_OBJECT": "Dette felt skal være et objekt", + "BASE_TYPE_ARRAY": "Dette felt skal være et array", + "UNKOWN_FIELD": "Ukendt nøgle: {{key}}", + "BASE_TYPE_CONSTANT": "Dette felt skal være {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Ikke en velformet e-mailadresse", + "DATE_TYPE_PARSE": "Kunne ikke fortolke {{date}}. Bør være ISO8601", + "BASE_TYPE_BAD_LENGTH": "Skal være mellem {{length}} i længden" + } +} diff --git a/api/locales/de/auth.json b/api/locales/de/auth.json index 63addd6f..e19547a0 100644 --- a/api/locales/de/auth.json +++ b/api/locales/de/auth.json @@ -1,16 +1,16 @@ { "login": { - "INVALID_LOGIN": "E-Mail oder Telefonnummer nicht gefunden", - "INVALID_PASSWORD": "Ungültiges Passwort", - "ACCOUNT_DISABLED": "Dieses Konto ist gesperrt" + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled" }, "register": { - "REGISTRATION_DISABLED": "Die Registrierung ist deaktiviert", - "INVITE_ONLY": "Du musst eingeladen werden, um dich zu registrieren", - "EMAIL_INVALID": "Ungültige E-Mail-Adresse", - "EMAIL_ALREADY_REGISTERED": "Die E-Mail-Adresse wird bereits verwendet", - "DATE_OF_BIRTH_UNDERAGE": "Du musst mindestens {{years}} Jahre oder älter sein", - "CONSENT_REQUIRED": "Du musst den Nutzungsbedingungen und den Datenschutzbestimmungen zustimmen.", - "USERNAME_TOO_MANY_USERS": "Zu viele Benutzer haben bereits diesen Benutzernamen, bitte wähle einen anderen" + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" } } diff --git a/api/locales/de/common.json b/api/locales/de/common.json index 980d7b80..39f38c49 100644 --- a/api/locales/de/common.json +++ b/api/locales/de/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "Dieses Feld ist erforderlich", - "BASE_TYPE_STRING": "Dieses Feld muss ein String sein", - "BASE_TYPE_NUMBER": "Dieses Feld muss eine Zahl sein", - "BASE_TYPE_BIGINT": "Dieses Feld muss ein bigint sein", - "BASE_TYPE_BOOLEAN": "Dieses Feld muss ein boolean sein", - "BASE_TYPE_CHOICES": "Dieses Feld muss eines von ({{types}}) sein", - "BASE_TYPE_CLASS": "Dieses Feld muss {{type}} sein", - "BASE_TYPE_OBJECT": "Dieses Feld muss ein Objekt sein", - "BASE_TYPE_ARRAY": "Dieses Feld muss ein Array sein", - "UNKOWN_FIELD": "Unbekanntes Feld: {{key}}", - "BASE_TYPE_CONSTANT": "Dieses Feld muss {{value}} sein", - "EMAIL_TYPE_INVALID_EMAIL": "Keine gültige E-Mail-Adresse", - "DATE_TYPE_PARSE": "Konnte {{date}} nicht lesen. Muss ISO8601 entsprechen", - "BASE_TYPE_BAD_LENGTH": "Muss zwischen {{length}} lang sein" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "Dieses Feld ist erforderlich", + "BASE_TYPE_STRING": "Dieses Feld muss ein String sein", + "BASE_TYPE_NUMBER": "Dieses Feld muss eine Zahl sein", + "BASE_TYPE_BIGINT": "Dieses Feld muss ein bigint sein", + "BASE_TYPE_BOOLEAN": "Dieses Feld muss ein boolean sein", + "BASE_TYPE_CHOICES": "Dieses Feld muss eines von ({{types}}) sein", + "BASE_TYPE_CLASS": "Dieses Feld muss {{type}} sein", + "BASE_TYPE_OBJECT": "Dieses Feld muss ein Objekt sein", + "BASE_TYPE_ARRAY": "Dieses Feld muss ein Array sein", + "UNKOWN_FIELD": "Unbekanntes Feld: {{key}}", + "BASE_TYPE_CONSTANT": "Dieses Feld muss {{value}} sein", + "EMAIL_TYPE_INVALID_EMAIL": "Keine gültige E-Mail-Adresse", + "DATE_TYPE_PARSE": "Konnte {{date}} nicht lesen. Muss ISO8601 entsprechen", + "BASE_TYPE_BAD_LENGTH": "Muss zwischen {{length}} lang sein" + } +} diff --git a/api/locales/de/de b/api/locales/de/de deleted file mode 100644 index 7a0254fc..00000000 --- a/api/locales/de/de +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be a object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unkown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file diff --git a/api/locales/el/common.json b/api/locales/el/common.json index d7e7cc7b..f4857cdc 100644 --- a/api/locales/el/common.json +++ b/api/locales/el/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "Αυτό το πεδίο είναι υποχρεωτικό", - "BASE_TYPE_STRING": "Αυτό το πεδίο πρέπει να είναι μια συμβολοσειρά", - "BASE_TYPE_NUMBER": "Αυτό το πεδίο πρέπει να είναι αριθμός", - "BASE_TYPE_BIGINT": "Αυτό το πεδίο πρέπει να είναι μεγαλοπρεπής", - "BASE_TYPE_BOOLEAN": "Αυτό το πεδίο πρέπει να είναι boolean", - "BASE_TYPE_CHOICES": "Αυτό το πεδίο πρέπει να είναι ένα από{{types}})", - "BASE_TYPE_CLASS": "Αυτό το πεδίο πρέπει να είναι ένα παράδειγμα {{type}}", - "BASE_TYPE_OBJECT": "Αυτό το πεδίο πρέπει να είναι αντικείμενο", - "BASE_TYPE_ARRAY": "Αυτό το πεδίο πρέπει να είναι ένας πίνακας", - "UNKOWN_FIELD": "Άγνωστο κλειδί: {{key}}", - "BASE_TYPE_CONSTANT": "Αυτό το πεδίο πρέπει να είναι {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Δεν είναι καλά σχηματισμένη διεύθυνση ηλεκτρονικού ταχυδρομείου", - "DATE_TYPE_PARSE": "Αδυναμία ανάλυσης του {{date}}. Πρέπει να είναι ISO8601", - "BASE_TYPE_BAD_LENGTH": "Πρέπει να είναι μεταξύ {{length}} σε μήκος" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "Αυτό το πεδίο είναι υποχρεωτικό", + "BASE_TYPE_STRING": "Αυτό το πεδίο πρέπει να είναι μια συμβολοσειρά", + "BASE_TYPE_NUMBER": "Αυτό το πεδίο πρέπει να είναι αριθμός", + "BASE_TYPE_BIGINT": "Αυτό το πεδίο πρέπει να είναι μεγαλοπρεπής", + "BASE_TYPE_BOOLEAN": "Αυτό το πεδίο πρέπει να είναι boolean", + "BASE_TYPE_CHOICES": "Αυτό το πεδίο πρέπει να είναι ένα από{{types}})", + "BASE_TYPE_CLASS": "Αυτό το πεδίο πρέπει να είναι ένα παράδειγμα {{type}}", + "BASE_TYPE_OBJECT": "Αυτό το πεδίο πρέπει να είναι αντικείμενο", + "BASE_TYPE_ARRAY": "Αυτό το πεδίο πρέπει να είναι ένας πίνακας", + "UNKOWN_FIELD": "Άγνωστο κλειδί: {{key}}", + "BASE_TYPE_CONSTANT": "Αυτό το πεδίο πρέπει να είναι {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Δεν είναι καλά σχηματισμένη διεύθυνση ηλεκτρονικού ταχυδρομείου", + "DATE_TYPE_PARSE": "Αδυναμία ανάλυσης του {{date}}. Πρέπει να είναι ISO8601", + "BASE_TYPE_BAD_LENGTH": "Πρέπει να είναι μεταξύ {{length}} σε μήκος" + } +} diff --git a/api/locales/el/el b/api/locales/el/el deleted file mode 100644 index 7a0254fc..00000000 --- a/api/locales/el/el +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be a object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unkown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file diff --git a/api/locales/en/common.json b/api/locales/en/common.json index a565e3dc..8bb9c042 100644 --- a/api/locales/en/common.json +++ b/api/locales/en/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/en/en b/api/locales/en/en deleted file mode 100644 index 7a0254fc..00000000 --- a/api/locales/en/en +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be a object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unkown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file diff --git a/api/locales/eo/common.json b/api/locales/eo/common.json index 6ff6d4cf..76a72960 100644 --- a/api/locales/eo/common.json +++ b/api/locales/eo/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "Tio kampo estas bezona", - "BASE_TYPE_STRING": "Tio kampo devas string", - "BASE_TYPE_NUMBER": "Tio kampo devas numbero", - "BASE_TYPE_BIGINT": "Tio kampo devas bigint", - "BASE_TYPE_BOOLEAN": "Tio kampo devas bulea", - "BASE_TYPE_CHOICES": "Tio kampo devas unu de ({{types}})", - "BASE_TYPE_CLASS": "Tio kampo devas kazo de {{type}}", - "BASE_TYPE_OBJECT": "Tio kampo devas objekto", - "BASE_TYPE_ARRAY": "Tio kampo devas tabelo", - "UNKOWN_FIELD": "Nekonata ŝlosilo: {{key}}", - "BASE_TYPE_CONSTANT": "Tio kampo devas {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Formado de retpoŝto estas nevalida", - "DATE_TYPE_PARSE": "Nevalida dato {{date}}. Devas ISO8601", - "BASE_TYPE_BAD_LENGTH": "Devas sub {{length}} en longo" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "Tio kampo estas bezona", + "BASE_TYPE_STRING": "Tio kampo devas string", + "BASE_TYPE_NUMBER": "Tio kampo devas numbero", + "BASE_TYPE_BIGINT": "Tio kampo devas bigint", + "BASE_TYPE_BOOLEAN": "Tio kampo devas bulea", + "BASE_TYPE_CHOICES": "Tio kampo devas unu de ({{types}})", + "BASE_TYPE_CLASS": "Tio kampo devas kazo de {{type}}", + "BASE_TYPE_OBJECT": "Tio kampo devas objekto", + "BASE_TYPE_ARRAY": "Tio kampo devas tabelo", + "UNKOWN_FIELD": "Nekonata ŝlosilo: {{key}}", + "BASE_TYPE_CONSTANT": "Tio kampo devas {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Formado de retpoŝto estas nevalida", + "DATE_TYPE_PARSE": "Nevalida dato {{date}}. Devas ISO8601", + "BASE_TYPE_BAD_LENGTH": "Devas sub {{length}} en longo" + } +} diff --git a/api/locales/es/auth.json b/api/locales/es/auth.json index 8271c578..b7f96f80 100644 --- a/api/locales/es/auth.json +++ b/api/locales/es/auth.json @@ -2,15 +2,15 @@ "login": { "INVALID_LOGIN": "E-Mail o teléfono no encontrado", "INVALID_PASSWORD": "Contraseña Incorrecta", - "ACCOUNT_DISABLED": "This account is disabled" + "ACCOUNT_DISABLED": "Esta cuenta está desactivada" }, "register": { "REGISTRATION_DISABLED": "El registro de un nuevo usuario no se encuentra habilitado", "INVITE_ONLY": "Tenés que ser invitado para poder registrarte", "EMAIL_INVALID": "Email inválido", "EMAIL_ALREADY_REGISTERED": "Este E-mail ya está registrado", - "DATE_OF_BIRTH_UNDERAGE": "Necesitas tener {{years}} años o más", + "DATE_OF_BIRTH_UNDERAGE": "Necesitás tener {{years}} años o más", "CONSENT_REQUIRED": "Tenés que aceptar los Términos de Servicio y la Política de Privacidad.", - "USERNAME_TOO_MANY_USERS": "Demasiados usuarios tienen este nombre de usuario, por favor intente con otro" + "USERNAME_TOO_MANY_USERS": "Demasiados usuarios tienen este nombre de usuario, por favor intentá con otro" } } diff --git a/api/locales/es/common.json b/api/locales/es/common.json index bf77d43c..f0a48bd4 100644 --- a/api/locales/es/common.json +++ b/api/locales/es/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "Este campo es obligatorio", - "BASE_TYPE_STRING": "Este campo debe ser un texto", - "BASE_TYPE_NUMBER": "Este campo debe ser un número", - "BASE_TYPE_BIGINT": "Este campo debe ser un tamaño grande", - "BASE_TYPE_BOOLEAN": "Este campo debe ser un boolean", - "BASE_TYPE_CHOICES": "Este campo debe ser uno de ({{types}})", - "BASE_TYPE_CLASS": "Este campo debe ser una instancia de {{type}}", - "BASE_TYPE_OBJECT": "Este campo debe ser un objeto", - "BASE_TYPE_ARRAY": "Este campo debe ser una matriz", - "UNKOWN_FIELD": "Clave desconocida: {{key}}", - "BASE_TYPE_CONSTANT": "Este campo debe ser {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "No es una dirección de email bien formada", - "DATE_TYPE_PARSE": "No se pudo analizar {{date}}. Debe ser ISO8601", - "BASE_TYPE_BAD_LENGTH": "Debe estar entre {{length}} de longitud" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "Este campo es obligatorio", + "BASE_TYPE_STRING": "Este campo debe ser un texto", + "BASE_TYPE_NUMBER": "Este campo debe ser un número", + "BASE_TYPE_BIGINT": "Este campo debe ser un tamaño grande", + "BASE_TYPE_BOOLEAN": "Este campo debe ser un boolean", + "BASE_TYPE_CHOICES": "Este campo debe ser uno de ({{types}})", + "BASE_TYPE_CLASS": "Este campo debe ser una instancia de {{type}}", + "BASE_TYPE_OBJECT": "Este campo debe ser un objeto", + "BASE_TYPE_ARRAY": "Este campo debe ser una matriz", + "UNKOWN_FIELD": "Clave desconocida: {{key}}", + "BASE_TYPE_CONSTANT": "Este campo debe ser {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "No es una dirección de email bien formada", + "DATE_TYPE_PARSE": "No se pudo analizar {{date}}. Debe ser ISO8601", + "BASE_TYPE_BAD_LENGTH": "Debe estar entre {{length}} de longitud" + } +} diff --git a/api/locales/es/es b/api/locales/es/es deleted file mode 100644 index 7a0254fc..00000000 --- a/api/locales/es/es +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be a object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unkown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file diff --git a/api/locales/eu/auth.json b/api/locales/eu/auth.json new file mode 100644 index 00000000..e19547a0 --- /dev/null +++ b/api/locales/eu/auth.json @@ -0,0 +1,16 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled" + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/api/locales/eu/common.json b/api/locales/eu/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/api/locales/eu/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/fa/auth.json b/api/locales/fa/auth.json new file mode 100644 index 00000000..e19547a0 --- /dev/null +++ b/api/locales/fa/auth.json @@ -0,0 +1,16 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled" + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/api/locales/fa/common.json b/api/locales/fa/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/api/locales/fa/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/fi/common.json b/api/locales/fi/common.json index d5aab9e3..80a73715 100644 --- a/api/locales/fi/common.json +++ b/api/locales/fi/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "Tämä kenttä on pakollinen", - "BASE_TYPE_STRING": "Tämän kentän on oltava merkkijono", - "BASE_TYPE_NUMBER": "Tämän kentän on oltava numero", - "BASE_TYPE_BIGINT": "Tämän kentän on oltava isoin", - "BASE_TYPE_BOOLEAN": "Tämän kentän on oltava totuus", - "BASE_TYPE_CHOICES": "Tämän kentän on oltava yksi ({{types}})", - "BASE_TYPE_CLASS": "Tämän kentän on oltava {{type}} instanssi", - "BASE_TYPE_OBJECT": "Tämän kentän on oltava objekti", - "BASE_TYPE_ARRAY": "Tämän kentän on oltava array", - "UNKOWN_FIELD": "Tuntematon avain: {{key}}", - "BASE_TYPE_CONSTANT": "Tämän kentän on oltava {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Sähköpostiosoite ei ole hyvin muodostettu", - "DATE_TYPE_PARSE": "Ei voitu jäsentää {{date}}. Pitäisi olla ISO8601", - "BASE_TYPE_BAD_LENGTH": "Pituuden on oltava välillä {{length}}" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "Tämä kenttä on pakollinen", + "BASE_TYPE_STRING": "Tämän kentän on oltava merkkijono", + "BASE_TYPE_NUMBER": "Tämän kentän on oltava numero", + "BASE_TYPE_BIGINT": "Tämän kentän on oltava isoin", + "BASE_TYPE_BOOLEAN": "Tämän kentän on oltava totuus", + "BASE_TYPE_CHOICES": "Tämän kentän on oltava yksi ({{types}})", + "BASE_TYPE_CLASS": "Tämän kentän on oltava {{type}} instanssi", + "BASE_TYPE_OBJECT": "Tämän kentän on oltava objekti", + "BASE_TYPE_ARRAY": "Tämän kentän on oltava array", + "UNKOWN_FIELD": "Tuntematon avain: {{key}}", + "BASE_TYPE_CONSTANT": "Tämän kentän on oltava {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Sähköpostiosoite ei ole hyvin muodostettu", + "DATE_TYPE_PARSE": "Ei voitu jäsentää {{date}}. Pitäisi olla ISO8601", + "BASE_TYPE_BAD_LENGTH": "Pituuden on oltava välillä {{length}}" + } +} diff --git a/api/locales/fi/fi b/api/locales/fi/fi deleted file mode 100644 index 7a0254fc..00000000 --- a/api/locales/fi/fi +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be a object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unkown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file diff --git a/api/locales/fr/common.json b/api/locales/fr/common.json index 8a2cd91e..33c56eb9 100644 --- a/api/locales/fr/common.json +++ b/api/locales/fr/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "Ce champ est obligatoire", - "BASE_TYPE_STRING": "Ce champ doit être une chaîne de caractères", - "BASE_TYPE_NUMBER": "Ce champ doit être un nombre", - "BASE_TYPE_BIGINT": "Ce champ doit être un bigint", - "BASE_TYPE_BOOLEAN": "Ce champ doit être un boolean", - "BASE_TYPE_CHOICES": "Ce champ doit être l'un des ({{types}})", - "BASE_TYPE_CLASS": "Ce champ doit être une instance de {{type}}", - "BASE_TYPE_OBJECT": "Ce champ doit être un objet", - "BASE_TYPE_ARRAY": "Ce champ doit être un tableau", - "UNKOWN_FIELD": "Clé inconnue: {{key}}", - "BASE_TYPE_CONSTANT": "Ce champ doit être {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Adresse e-mail mal formaté", - "DATE_TYPE_PARSE": "Impossible d'analyser {{date}}. Doit être ISO8601", - "BASE_TYPE_BAD_LENGTH": "Doit être entre {{length}} de longueur" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "Ce champ est obligatoire", + "BASE_TYPE_STRING": "Ce champ doit être une chaîne de caractères", + "BASE_TYPE_NUMBER": "Ce champ doit être un nombre", + "BASE_TYPE_BIGINT": "Ce champ doit être un bigint", + "BASE_TYPE_BOOLEAN": "Ce champ doit être un boolean", + "BASE_TYPE_CHOICES": "Ce champ doit être l'un des ({{types}})", + "BASE_TYPE_CLASS": "Ce champ doit être une instance de {{type}}", + "BASE_TYPE_OBJECT": "Ce champ doit être un objet", + "BASE_TYPE_ARRAY": "Ce champ doit être un tableau", + "UNKOWN_FIELD": "Clé inconnue: {{key}}", + "BASE_TYPE_CONSTANT": "Ce champ doit être {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Adresse e-mail mal formaté", + "DATE_TYPE_PARSE": "Impossible d'analyser {{date}}. Doit être ISO8601", + "BASE_TYPE_BAD_LENGTH": "Doit être entre {{length}} de longueur" + } +} diff --git a/api/locales/fr/fr b/api/locales/fr/fr deleted file mode 100644 index 7a0254fc..00000000 --- a/api/locales/fr/fr +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be a object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unkown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file diff --git a/api/locales/gn/auth.json b/api/locales/gn/auth.json new file mode 100644 index 00000000..e19547a0 --- /dev/null +++ b/api/locales/gn/auth.json @@ -0,0 +1,16 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled" + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/api/locales/gn/common.json b/api/locales/gn/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/api/locales/gn/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/ha/auth.json b/api/locales/ha/auth.json new file mode 100644 index 00000000..e19547a0 --- /dev/null +++ b/api/locales/ha/auth.json @@ -0,0 +1,16 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled" + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/api/locales/ha/common.json b/api/locales/ha/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/api/locales/ha/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/he/common.json b/api/locales/he/common.json index a565e3dc..8bb9c042 100644 --- a/api/locales/he/common.json +++ b/api/locales/he/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/he/he b/api/locales/he/he deleted file mode 100644 index 7a0254fc..00000000 --- a/api/locales/he/he +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be a object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unkown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file diff --git a/api/locales/hi/common.json b/api/locales/hi/common.json index beb4b222..0117eeee 100644 --- a/api/locales/hi/common.json +++ b/api/locales/hi/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "यह फ़ील्ड आवश्यक है", - "BASE_TYPE_STRING": "यह फ़ील्ड एक स्ट्रिंग होनी चाहिए", - "BASE_TYPE_NUMBER": "यह फ़ील्ड एक संख्या होनी चाहिए", - "BASE_TYPE_BIGINT": "यह फ़ील्ड एक बिगिन्ट होनी चाहिए", - "BASE_TYPE_BOOLEAN": "यह फ़ील्ड एक बूलियन होनी चाहिए", - "BASE_TYPE_CHOICES": "यह फ़ील्ड एक प्रकार का [[[types]]] होना चाहिए", - "BASE_TYPE_CLASS": "यह फ़ील्ड एक प्रकार का [[[types]]] होना चाहिए", - "BASE_TYPE_OBJECT": "यह फ़ील्ड एक ऑब्जेक्ट होनी चाहिए", - "BASE_TYPE_ARRAY": "यह फ़ील्ड एक ऐरे होनी चाहिए", - "UNKOWN_FIELD": "अज्ञात कुंजी: [[key]]", - "BASE_TYPE_CONSTANT": "यह क्षेत्र {{value}} होना चाहिए", - "EMAIL_TYPE_INVALID_EMAIL": "खराब ईमेल एड्रेस", - "DATE_TYPE_PARSE": "{{date}} की पदव्‍याख्‍या नहीं हो पाई है। ISO8601 होना चाहिए", - "BASE_TYPE_BAD_LENGTH": "लंबाई {{length}} के बीच में होनी चाहिए" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "यह फ़ील्ड आवश्यक है", + "BASE_TYPE_STRING": "यह फ़ील्ड एक स्ट्रिंग होनी चाहिए", + "BASE_TYPE_NUMBER": "यह फ़ील्ड एक संख्या होनी चाहिए", + "BASE_TYPE_BIGINT": "यह फ़ील्ड एक बिगिन्ट होनी चाहिए", + "BASE_TYPE_BOOLEAN": "यह फ़ील्ड एक बूलियन होनी चाहिए", + "BASE_TYPE_CHOICES": "यह फ़ील्ड एक प्रकार का [[[types]]] होना चाहिए", + "BASE_TYPE_CLASS": "यह फ़ील्ड एक प्रकार का [[[types]]] होना चाहिए", + "BASE_TYPE_OBJECT": "यह फ़ील्ड एक ऑब्जेक्ट होनी चाहिए", + "BASE_TYPE_ARRAY": "यह फ़ील्ड एक ऐरे होनी चाहिए", + "UNKOWN_FIELD": "अज्ञात कुंजी: [[key]]", + "BASE_TYPE_CONSTANT": "यह क्षेत्र {{value}} होना चाहिए", + "EMAIL_TYPE_INVALID_EMAIL": "खराब ईमेल एड्रेस", + "DATE_TYPE_PARSE": "{{date}} की पदव्‍याख्‍या नहीं हो पाई है। ISO8601 होना चाहिए", + "BASE_TYPE_BAD_LENGTH": "लंबाई {{length}} के बीच में होनी चाहिए" + } +} diff --git a/api/locales/hi/hi b/api/locales/hi/hi deleted file mode 100644 index 7a0254fc..00000000 --- a/api/locales/hi/hi +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be a object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unkown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file diff --git a/api/locales/hr/common.json b/api/locales/hr/common.json index 2126f375..4afc5794 100644 --- a/api/locales/hr/common.json +++ b/api/locales/hr/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "Ovo polje je obavezno", - "BASE_TYPE_STRING": "Ovo polje mora biti niz", - "BASE_TYPE_NUMBER": "Ovo polje mora biti broj", - "BASE_TYPE_BIGINT": "Ovo polje mora biti bigint", - "BASE_TYPE_BOOLEAN": "Ovo polje mora biti boolean", - "BASE_TYPE_CHOICES": "Ovo polje mora biti jedno od ({{types}})", - "BASE_TYPE_CLASS": "Ovo polje mora biti primjer od {{type}}", - "BASE_TYPE_OBJECT": "Ovo polje mora biti objekt", - "BASE_TYPE_ARRAY": "Ovo polje mora biti niz", - "UNKOWN_FIELD": "Nepoznati ključ: {{key}}", - "BASE_TYPE_CONSTANT": "Ovo polje mora biti {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Nije dobro oblikovana Email adresa", - "DATE_TYPE_PARSE": "Nije moguće raščlaniti {{date}}. Treba biti ISO8601", - "BASE_TYPE_BAD_LENGTH": "Mora biti između {{length}} u duljini" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "Ovo polje je obavezno", + "BASE_TYPE_STRING": "Ovo polje mora biti niz", + "BASE_TYPE_NUMBER": "Ovo polje mora biti broj", + "BASE_TYPE_BIGINT": "Ovo polje mora biti bigint", + "BASE_TYPE_BOOLEAN": "Ovo polje mora biti boolean", + "BASE_TYPE_CHOICES": "Ovo polje mora biti jedno od ({{types}})", + "BASE_TYPE_CLASS": "Ovo polje mora biti primjer od {{type}}", + "BASE_TYPE_OBJECT": "Ovo polje mora biti objekt", + "BASE_TYPE_ARRAY": "Ovo polje mora biti niz", + "UNKOWN_FIELD": "Nepoznati ključ: {{key}}", + "BASE_TYPE_CONSTANT": "Ovo polje mora biti {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Nije dobro oblikovana Email adresa", + "DATE_TYPE_PARSE": "Nije moguće raščlaniti {{date}}. Treba biti ISO8601", + "BASE_TYPE_BAD_LENGTH": "Mora biti između {{length}} u duljini" + } +} diff --git a/api/locales/hu/auth.json b/api/locales/hu/auth.json index 3891ce28..cf2f7d06 100644 --- a/api/locales/hu/auth.json +++ b/api/locales/hu/auth.json @@ -2,7 +2,7 @@ "login": { "INVALID_LOGIN": "Nincs ilyen E-Mail vagy Telefon", "INVALID_PASSWORD": "Érvénytelen jelszó", - "ACCOUNT_DISABLED": "This account is disabled" + "ACCOUNT_DISABLED": "Ez a fiók le van tiltva" }, "register": { "REGISTRATION_DISABLED": "Új felhasználók regisztrációja nem engedélyezett", diff --git a/api/locales/hu/common.json b/api/locales/hu/common.json index e9095325..43bd2722 100644 --- a/api/locales/hu/common.json +++ b/api/locales/hu/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "Ez a mező kötelező", - "BASE_TYPE_STRING": "Ennek a mezőnek string-nek kell lennie", - "BASE_TYPE_NUMBER": "Ennek a mezőnek számnak kell lennie", - "BASE_TYPE_BIGINT": "Ennek a mezőnek bigint-nek kell lennie", - "BASE_TYPE_BOOLEAN": "Ennek a mezőnek boolean-nek kell lennie", - "BASE_TYPE_CHOICES": "Ennek a mezőnek {{types}} típusúnak kell lennie", - "BASE_TYPE_CLASS": "Ennek a mezőnek {{type}} típusúnak kell lennie", - "BASE_TYPE_OBJECT": "Ennek a mezőnek object-nek kell lennie", - "BASE_TYPE_ARRAY": "Ennek a mezőnek array-nek kell lennie", - "UNKOWN_FIELD": "Ismeretlen kulcs: {{key}}", - "BASE_TYPE_CONSTANT": "A mezőnek {{value}} kell lennie", - "EMAIL_TYPE_INVALID_EMAIL": "Nem jól megformázott email cím", - "DATE_TYPE_PARSE": "Nem sikerült elemezni {{date}}. ISO8901-nak kéne lennie", - "BASE_TYPE_BAD_LENGTH": "{{length}} között kell lennie hosszban" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "Ez a mező kötelező", + "BASE_TYPE_STRING": "Ennek a mezőnek string-nek kell lennie", + "BASE_TYPE_NUMBER": "Ennek a mezőnek számnak kell lennie", + "BASE_TYPE_BIGINT": "Ennek a mezőnek bigint-nek kell lennie", + "BASE_TYPE_BOOLEAN": "Ennek a mezőnek boolean-nek kell lennie", + "BASE_TYPE_CHOICES": "Ennek a mezőnek {{types}} típusúnak kell lennie", + "BASE_TYPE_CLASS": "Ennek a mezőnek {{type}} típusúnak kell lennie", + "BASE_TYPE_OBJECT": "Ennek a mezőnek object-nek kell lennie", + "BASE_TYPE_ARRAY": "Ennek a mezőnek array-nek kell lennie", + "UNKOWN_FIELD": "Ismeretlen kulcs: {{key}}", + "BASE_TYPE_CONSTANT": "A mezőnek {{value}} kell lennie", + "EMAIL_TYPE_INVALID_EMAIL": "Nem jól megformázott email cím", + "DATE_TYPE_PARSE": "Nem sikerült elemezni {{date}}. ISO8901-nak kéne lennie", + "BASE_TYPE_BAD_LENGTH": "{{length}} között kell lennie hosszban" + } +} diff --git a/api/locales/hu/hu b/api/locales/hu/hu deleted file mode 100644 index 7a0254fc..00000000 --- a/api/locales/hu/hu +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be a object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unkown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file diff --git a/api/locales/id/common.json b/api/locales/id/common.json index a565e3dc..8bb9c042 100644 --- a/api/locales/id/common.json +++ b/api/locales/id/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/it/common.json b/api/locales/it/common.json index 2e17dd4f..1faa3df0 100644 --- a/api/locales/it/common.json +++ b/api/locales/it/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "Questo campo è obbligatorio", - "BASE_TYPE_STRING": "Questo campo deve essere una stringa", - "BASE_TYPE_NUMBER": "Questo campo deve essere un numero", - "BASE_TYPE_BIGINT": "Questo campo deve essere un numero intero", - "BASE_TYPE_BOOLEAN": "Questo campo deve essere un numero booleano", - "BASE_TYPE_CHOICES": "Questo campo deve essere uno di ({{types}})", - "BASE_TYPE_CLASS": "Questo campo deve essere un'istanza di {{type}}", - "BASE_TYPE_OBJECT": "Questo campo deve essere un oggetto", - "BASE_TYPE_ARRAY": "Questo campo deve essere un array", - "UNKOWN_FIELD": "Chiave non riconosciuta: {{key}}", - "BASE_TYPE_CONSTANT": "Questo campo deve essere {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Questo indirizzo e-mail non è in un formato valido", - "DATE_TYPE_PARSE": "Impossibile analizzare {{date}}. Dovrebbe essere ISO8601", - "BASE_TYPE_BAD_LENGTH": "Deve essere compreso tra {{length}} in lunghezza" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "Questo campo è obbligatorio", + "BASE_TYPE_STRING": "Questo campo deve essere una stringa", + "BASE_TYPE_NUMBER": "Questo campo deve essere un numero", + "BASE_TYPE_BIGINT": "Questo campo deve essere un numero intero", + "BASE_TYPE_BOOLEAN": "Questo campo deve essere un numero booleano", + "BASE_TYPE_CHOICES": "Questo campo deve essere uno di ({{types}})", + "BASE_TYPE_CLASS": "Questo campo deve essere un'istanza di {{type}}", + "BASE_TYPE_OBJECT": "Questo campo deve essere un oggetto", + "BASE_TYPE_ARRAY": "Questo campo deve essere un array", + "UNKOWN_FIELD": "Chiave non riconosciuta: {{key}}", + "BASE_TYPE_CONSTANT": "Questo campo deve essere {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Questo indirizzo e-mail non è in un formato valido", + "DATE_TYPE_PARSE": "Impossibile analizzare {{date}}. Dovrebbe essere ISO8601", + "BASE_TYPE_BAD_LENGTH": "Deve essere compreso tra {{length}} in lunghezza" + } +} diff --git a/api/locales/it/it b/api/locales/it/it deleted file mode 100644 index 7a0254fc..00000000 --- a/api/locales/it/it +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be a object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unkown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file diff --git a/api/locales/ja/common.json b/api/locales/ja/common.json index 25b7bc21..687c04e2 100644 --- a/api/locales/ja/common.json +++ b/api/locales/ja/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "このフィールドは必須項目です", - "BASE_TYPE_STRING": "このフィールドは文字列でなければなりません", - "BASE_TYPE_NUMBER": "このフィールドは数値でなければなりません", - "BASE_TYPE_BIGINT": "このフィールドはbigintでなければなりません", - "BASE_TYPE_BOOLEAN": "このフィールドはブール値でなければなりません", - "BASE_TYPE_CHOICES": "このフィールドは ({{types}} ) のいずれかでなければなりません", - "BASE_TYPE_CLASS": "このフィールドは {{type}} のインスタンスでなければなりません", - "BASE_TYPE_OBJECT": "このフィールドはオブジェクトでなければなりません", - "BASE_TYPE_ARRAY": "このフィールドは配列でなければなりません", - "UNKOWN_FIELD": "不明なキー: {{key}}", - "BASE_TYPE_CONSTANT": "このフィールドは {{value}} でなければなりません", - "EMAIL_TYPE_INVALID_EMAIL": "メールアドレスが正しくありません", - "DATE_TYPE_PARSE": "{{date}}を解析できませんでした。ISO8601である必要があります", - "BASE_TYPE_BAD_LENGTH": "{{length}} 以内でなければなりません" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "このフィールドは必須項目です", + "BASE_TYPE_STRING": "このフィールドは文字列でなければなりません", + "BASE_TYPE_NUMBER": "このフィールドは数値でなければなりません", + "BASE_TYPE_BIGINT": "このフィールドはbigintでなければなりません", + "BASE_TYPE_BOOLEAN": "このフィールドはブール値でなければなりません", + "BASE_TYPE_CHOICES": "このフィールドは ({{types}} ) のいずれかでなければなりません", + "BASE_TYPE_CLASS": "このフィールドは {{type}} のインスタンスでなければなりません", + "BASE_TYPE_OBJECT": "このフィールドはオブジェクトでなければなりません", + "BASE_TYPE_ARRAY": "このフィールドは配列でなければなりません", + "UNKOWN_FIELD": "不明なキー: {{key}}", + "BASE_TYPE_CONSTANT": "このフィールドは {{value}} でなければなりません", + "EMAIL_TYPE_INVALID_EMAIL": "メールアドレスが正しくありません", + "DATE_TYPE_PARSE": "{{date}}を解析できませんでした。ISO8601である必要があります", + "BASE_TYPE_BAD_LENGTH": "{{length}} 以内でなければなりません" + } +} diff --git a/api/locales/ja/ja b/api/locales/ja/ja deleted file mode 100644 index 7a0254fc..00000000 --- a/api/locales/ja/ja +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be a object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unkown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file diff --git a/api/locales/jv/auth.json b/api/locales/jv/auth.json new file mode 100644 index 00000000..e19547a0 --- /dev/null +++ b/api/locales/jv/auth.json @@ -0,0 +1,16 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled" + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/api/locales/jv/common.json b/api/locales/jv/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/api/locales/jv/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/kk/auth.json b/api/locales/kk/auth.json new file mode 100644 index 00000000..e19547a0 --- /dev/null +++ b/api/locales/kk/auth.json @@ -0,0 +1,16 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled" + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/api/locales/kk/common.json b/api/locales/kk/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/api/locales/kk/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/ko/common.json b/api/locales/ko/common.json index 2eb3d0c3..bb521b37 100644 --- a/api/locales/ko/common.json +++ b/api/locales/ko/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "필수로 기입해야 합니다", - "BASE_TYPE_STRING": "문자열을 입력해야 합니다", - "BASE_TYPE_NUMBER": "숫자를 입력해야 합니다", - "BASE_TYPE_BIGINT": "bigint를 입력해야 합니다", - "BASE_TYPE_BOOLEAN": "논리값을 입력해야 합니다", - "BASE_TYPE_CHOICES": "값의 유형이 ({{types}}) 중 하나여야 합니다", - "BASE_TYPE_CLASS": "값의 유형이 {{type}}(이)여야 합니다", - "BASE_TYPE_OBJECT": "객체를 입력해야 합니다", - "BASE_TYPE_ARRAY": "배열을 입력해야 합니다", - "UNKOWN_FIELD": "알 수 없는 키: {{key}}", - "BASE_TYPE_CONSTANT": "{{value}}(을)를 입력해야 합니다", - "EMAIL_TYPE_INVALID_EMAIL": "올바른 이메일 주소 형식이 아닙니다", - "DATE_TYPE_PARSE": "{{date}} 형식을 분석할 수 없습니다. ISO8601을 따라야 합니다", - "BASE_TYPE_BAD_LENGTH": "길이가 {{length}} 사이여야 합니다" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "필수로 기입해야 합니다", + "BASE_TYPE_STRING": "문자열을 입력해야 합니다", + "BASE_TYPE_NUMBER": "숫자를 입력해야 합니다", + "BASE_TYPE_BIGINT": "bigint를 입력해야 합니다", + "BASE_TYPE_BOOLEAN": "논리값을 입력해야 합니다", + "BASE_TYPE_CHOICES": "값의 유형이 ({{types}}) 중 하나여야 합니다", + "BASE_TYPE_CLASS": "값의 유형이 {{type}}(이)여야 합니다", + "BASE_TYPE_OBJECT": "객체를 입력해야 합니다", + "BASE_TYPE_ARRAY": "배열을 입력해야 합니다", + "UNKOWN_FIELD": "알 수 없는 키: {{key}}", + "BASE_TYPE_CONSTANT": "{{value}}(을)를 입력해야 합니다", + "EMAIL_TYPE_INVALID_EMAIL": "올바른 이메일 주소 형식이 아닙니다", + "DATE_TYPE_PARSE": "{{date}} 형식을 분석할 수 없습니다. ISO8601을 따라야 합니다", + "BASE_TYPE_BAD_LENGTH": "길이가 {{length}} 사이여야 합니다" + } +} diff --git a/api/locales/ku/auth.json b/api/locales/ku/auth.json new file mode 100644 index 00000000..e19547a0 --- /dev/null +++ b/api/locales/ku/auth.json @@ -0,0 +1,16 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled" + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/api/locales/ku/common.json b/api/locales/ku/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/api/locales/ku/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/la/auth.json b/api/locales/la/auth.json new file mode 100644 index 00000000..e19547a0 --- /dev/null +++ b/api/locales/la/auth.json @@ -0,0 +1,16 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled" + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/api/locales/la/common.json b/api/locales/la/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/api/locales/la/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/lt/auth.json b/api/locales/lt/auth.json index 0e2f0508..20c1ac29 100644 --- a/api/locales/lt/auth.json +++ b/api/locales/lt/auth.json @@ -2,7 +2,7 @@ "login": { "INVALID_LOGIN": "El. Paštas ar telefonas nerastas", "INVALID_PASSWORD": "Neteisingas slaptažodis", - "ACCOUNT_DISABLED": "This account is disabled" + "ACCOUNT_DISABLED": "Ši paskyra išjungta" }, "register": { "REGISTRATION_DISABLED": "Naujų vartotojų registracija išjungta", diff --git a/api/locales/lt/common.json b/api/locales/lt/common.json index f96e028f..bc9ad022 100644 --- a/api/locales/lt/common.json +++ b/api/locales/lt/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "Šis laukelis privalomas", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Neteisingai suformuotas el. pašto adresas", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "Šis laukelis privalomas", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Neteisingai suformuotas el. pašto adresas", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/mi/auth.json b/api/locales/mi/auth.json new file mode 100644 index 00000000..e19547a0 --- /dev/null +++ b/api/locales/mi/auth.json @@ -0,0 +1,16 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled" + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/api/locales/mi/common.json b/api/locales/mi/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/api/locales/mi/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/mn/auth.json b/api/locales/mn/auth.json new file mode 100644 index 00000000..e19547a0 --- /dev/null +++ b/api/locales/mn/auth.json @@ -0,0 +1,16 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled" + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/api/locales/mn/common.json b/api/locales/mn/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/api/locales/mn/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/mr/auth.json b/api/locales/mr/auth.json new file mode 100644 index 00000000..e19547a0 --- /dev/null +++ b/api/locales/mr/auth.json @@ -0,0 +1,16 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled" + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/api/locales/mr/common.json b/api/locales/mr/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/api/locales/mr/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/nl/common.json b/api/locales/nl/common.json index 85deb2ec..f18c1dcb 100644 --- a/api/locales/nl/common.json +++ b/api/locales/nl/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "Dit veld is verplicht", - "BASE_TYPE_STRING": "Dit veld moet een tekenreeks zijn", - "BASE_TYPE_NUMBER": "Dit veld moet een getal zijn", - "BASE_TYPE_BIGINT": "Dit veld moet een bigint zijn", - "BASE_TYPE_BOOLEAN": "Dit veld moet een Booleaanse waarde zijn", - "BASE_TYPE_CHOICES": "Dit veld moet een van ({{types}} ) zijn", - "BASE_TYPE_CLASS": "Dit veld moet een exemplaar zijn van {{type}}", - "BASE_TYPE_OBJECT": "Dit veld moet een object zijn", - "BASE_TYPE_ARRAY": "Dit veld moet een array zijn", - "UNKOWN_FIELD": "Onbekend sleutel: {{key}}", - "BASE_TYPE_CONSTANT": "Dit veld moet {{value}} zijn", - "EMAIL_TYPE_INVALID_EMAIL": "Niet een geldig e-mailadres", - "DATE_TYPE_PARSE": "Kan {{date}}niet parsen. Moet ISO8601 zijn", - "BASE_TYPE_BAD_LENGTH": "Moet tussen {{length}} in lengte zijn" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "Dit veld is verplicht", + "BASE_TYPE_STRING": "Dit veld moet een tekenreeks zijn", + "BASE_TYPE_NUMBER": "Dit veld moet een getal zijn", + "BASE_TYPE_BIGINT": "Dit veld moet een bigint zijn", + "BASE_TYPE_BOOLEAN": "Dit veld moet een Booleaanse waarde zijn", + "BASE_TYPE_CHOICES": "Dit veld moet een van ({{types}} ) zijn", + "BASE_TYPE_CLASS": "Dit veld moet een exemplaar zijn van {{type}}", + "BASE_TYPE_OBJECT": "Dit veld moet een object zijn", + "BASE_TYPE_ARRAY": "Dit veld moet een array zijn", + "UNKOWN_FIELD": "Onbekend sleutel: {{key}}", + "BASE_TYPE_CONSTANT": "Dit veld moet {{value}} zijn", + "EMAIL_TYPE_INVALID_EMAIL": "Niet een geldig e-mailadres", + "DATE_TYPE_PARSE": "Kan {{date}}niet parsen. Moet ISO8601 zijn", + "BASE_TYPE_BAD_LENGTH": "Moet tussen {{length}} in lengte zijn" + } +} diff --git a/api/locales/nl/nl b/api/locales/nl/nl deleted file mode 100644 index f10cf0ff..00000000 --- a/api/locales/nl/nl +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "Dit veld is verplicht.", - "BASE_TYPE_STRING": "Dit veld moet een tekst zijn.", - "BASE_TYPE_NUMBER": "Dit veld moet een nummer zijn.", - "BASE_TYPE_BIGINT": "Dit veld moet een BigInt zijn.", - "BASE_TYPE_BOOLEAN": "Dit veld moet een boolean zijn.", - "BASE_TYPE_CHOICES": "Dit veld moet een van de volgende zijn: ({{types}})", - "BASE_TYPE_CLASS": "Dit veld moet een instantie zijn van {{type}}", - "BASE_TYPE_OBJECT": "Dit veld moet een object zijn.", - "BASE_TYPE_ARRAY": "Dit veld moet een array zijn.", - "UNKOWN_FIELD": "Onbekende sleutel: {{key}}", - "BASE_TYPE_CONSTANT": "Dit veld moet zijn: {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Dit email adres is onjuist.", - "DATE_TYPE_PARSE": "Kon {{date}} niet parsen. Moet ISO8601 zijn.", - "BASE_TYPE_BAD_LENGTH": "Moet tussen {{length}} in lengte zijn." - } -} diff --git a/api/locales/nn/auth.json b/api/locales/nn/auth.json new file mode 100644 index 00000000..e19547a0 --- /dev/null +++ b/api/locales/nn/auth.json @@ -0,0 +1,16 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled" + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/api/locales/nn/common.json b/api/locales/nn/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/api/locales/nn/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/no/common.json b/api/locales/no/common.json index c70882a2..ab58a24e 100644 --- a/api/locales/no/common.json +++ b/api/locales/no/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "Dette feltet er obligatorisk", - "BASE_TYPE_STRING": "Dette feltet må være en streng", - "BASE_TYPE_NUMBER": "Dette feltet må være et tall", - "BASE_TYPE_BIGINT": "Dette feltet må være en stor", - "BASE_TYPE_BOOLEAN": "Dette feltet må være en boolsk verdi", - "BASE_TYPE_CHOICES": "Dette feltet må være ett av ({{types}})", - "BASE_TYPE_CLASS": "Dette feltet må være en forekomst av {{type}}", - "BASE_TYPE_OBJECT": "Dette feltet må være et objekt", - "BASE_TYPE_ARRAY": "Dette feltet må være en liste", - "UNKOWN_FIELD": "Ukjent nøkkel: {{key}}", - "BASE_TYPE_CONSTANT": "Dette feltet må være {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Ikke et gyldig e-postadresse format", - "DATE_TYPE_PARSE": "Kunne ikke analysere {{date}}. Skal være ISO8601", - "BASE_TYPE_BAD_LENGTH": "Må være mellom {{length}} i lengde" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "Dette feltet er obligatorisk", + "BASE_TYPE_STRING": "Dette feltet må være en streng", + "BASE_TYPE_NUMBER": "Dette feltet må være et tall", + "BASE_TYPE_BIGINT": "Dette feltet må være en stor", + "BASE_TYPE_BOOLEAN": "Dette feltet må være en boolsk verdi", + "BASE_TYPE_CHOICES": "Dette feltet må være ett av ({{types}})", + "BASE_TYPE_CLASS": "Dette feltet må være en forekomst av {{type}}", + "BASE_TYPE_OBJECT": "Dette feltet må være et objekt", + "BASE_TYPE_ARRAY": "Dette feltet må være en liste", + "UNKOWN_FIELD": "Ukjent nøkkel: {{key}}", + "BASE_TYPE_CONSTANT": "Dette feltet må være {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Ikke et gyldig e-postadresse format", + "DATE_TYPE_PARSE": "Kunne ikke analysere {{date}}. Skal være ISO8601", + "BASE_TYPE_BAD_LENGTH": "Må være mellom {{length}} i lengde" + } +} diff --git a/api/locales/no/no b/api/locales/no/no deleted file mode 100644 index 7a0254fc..00000000 --- a/api/locales/no/no +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be a object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unkown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file diff --git a/api/locales/pa/auth.json b/api/locales/pa/auth.json new file mode 100644 index 00000000..e19547a0 --- /dev/null +++ b/api/locales/pa/auth.json @@ -0,0 +1,16 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled" + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/api/locales/pa/common.json b/api/locales/pa/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/api/locales/pa/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/pl/auth.json b/api/locales/pl/auth.json index 4fb2734b..3988e9cd 100644 --- a/api/locales/pl/auth.json +++ b/api/locales/pl/auth.json @@ -1,16 +1,16 @@ { "login": { - "INVALID_LOGIN": "E-mail lub telefon nie znaleziony", + "INVALID_LOGIN": "E-mail lub telefon nie został znaleziony", "INVALID_PASSWORD": "Nieprawidłowe hasło", - "ACCOUNT_DISABLED": "Konto jest zablokowane" + "ACCOUNT_DISABLED": "To konto jest nieaktywne" }, "register": { - "REGISTRATION_DISABLED": "Rejestracja nowego użytkownika jest wyłączona", - "INVITE_ONLY": "Musisz być zaproszony do rejestracji", + "REGISTRATION_DISABLED": "Rejestracja nowych użytkowników jest wyłączona", + "INVITE_ONLY": "Aby się zarejestrować, musisz zostać zaproszony", "EMAIL_INVALID": "Nieprawidłowy email", "EMAIL_ALREADY_REGISTERED": "E-mail jest już zarejestrowany", "DATE_OF_BIRTH_UNDERAGE": "Musisz mieć {{years}} lat lub więcej", "CONSENT_REQUIRED": "Musisz zaakceptować Regulamin i Politykę Prywatności.", - "USERNAME_TOO_MANY_USERS": "Zbyt wielu użytkowników ma tę nazwę użytkownika, spróbuj inną" + "USERNAME_TOO_MANY_USERS": "Zbyt wielu użytkowników ma tę nazwę, spróbuj inną" } } diff --git a/api/locales/pl/common.json b/api/locales/pl/common.json index 2291905d..3b618c1f 100644 --- a/api/locales/pl/common.json +++ b/api/locales/pl/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "To pole jest wymagane", - "BASE_TYPE_STRING": "To pole musi być ciągiem znaków", - "BASE_TYPE_NUMBER": "To pole musi być liczbą", - "BASE_TYPE_BIGINT": "To pole musi być bigint", - "BASE_TYPE_BOOLEAN": "To pole musi być wartością logiczną", - "BASE_TYPE_CHOICES": "To pole musi być jednym z ({{types}})", - "BASE_TYPE_CLASS": "To pole musi być instancją {{type}}", - "BASE_TYPE_OBJECT": "To pole musi być obiektem", - "BASE_TYPE_ARRAY": "To pole musi być tablicą", - "UNKOWN_FIELD": "Nieznany klucz: {{key}}", - "BASE_TYPE_CONSTANT": "To pole musi być {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Źle sformułowany adres e-mail", - "DATE_TYPE_PARSE": "Nie można przetworzyć {{date}}. Powinno być ISO8601", - "BASE_TYPE_BAD_LENGTH": "Musi być pomiędzy {{length}}" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "To pole jest wymagane", + "BASE_TYPE_STRING": "To pole musi być ciągiem znaków", + "BASE_TYPE_NUMBER": "To pole musi być liczbą", + "BASE_TYPE_BIGINT": "To pole musi być bigint", + "BASE_TYPE_BOOLEAN": "To pole musi być wartością logiczną", + "BASE_TYPE_CHOICES": "To pole musi być jednym z ({{types}})", + "BASE_TYPE_CLASS": "To pole musi być instancją {{type}}", + "BASE_TYPE_OBJECT": "To pole musi być obiektem", + "BASE_TYPE_ARRAY": "To pole musi być tablicą", + "UNKOWN_FIELD": "Nieznany klucz: {{key}}", + "BASE_TYPE_CONSTANT": "To pole musi być {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Źle sformułowany adres e-mail", + "DATE_TYPE_PARSE": "Nie można przetworzyć {{date}}. Powinno być ISO8601", + "BASE_TYPE_BAD_LENGTH": "Długość musi wynosić między {{length}}" + } +} diff --git a/api/locales/pl/pl b/api/locales/pl/pl deleted file mode 100644 index 7a0254fc..00000000 --- a/api/locales/pl/pl +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be a object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unkown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file diff --git a/api/locales/pt/auth.json b/api/locales/pt/auth.json index df7d6708..e19547a0 100644 --- a/api/locales/pt/auth.json +++ b/api/locales/pt/auth.json @@ -1,16 +1,16 @@ { "login": { - "INVALID_LOGIN": "E-mail ou Telefone não encontrado", - "INVALID_PASSWORD": "Senha inválida", - "ACCOUNT_DISABLED": "Essa conta está desativada" + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled" }, "register": { - "REGISTRATION_DISABLED": "Registro de novos usuários está desativado", - "INVITE_ONLY": "Você deve ser convidado para registrar", - "EMAIL_INVALID": "E-mail inválido", - "EMAIL_ALREADY_REGISTERED": "E-mail já está registrado", - "DATE_OF_BIRTH_UNDERAGE": "Você precisa ter {{years}} anos ou mais", - "CONSENT_REQUIRED": "Você precisa aceitar os Termos de Serviço e a Política de Privacidade.", - "USERNAME_TOO_MANY_USERS": "Muitos usuários têm esse nome de usuário, por favor, tente outro" + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" } } diff --git a/api/locales/pt/common.json b/api/locales/pt/common.json index 6716dea9..8bb9c042 100644 --- a/api/locales/pt/common.json +++ b/api/locales/pt/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "Este campo é obrigatório.", - "BASE_TYPE_STRING": "Este campo deve ser uma string", - "BASE_TYPE_NUMBER": "Este campo deve ser um número", - "BASE_TYPE_BIGINT": "Este campo deve ser um grande", - "BASE_TYPE_BOOLEAN": "Este campo deve ser booleano", - "BASE_TYPE_CHOICES": "Este campo deve ser um dos ({{types}})", - "BASE_TYPE_CLASS": "Este campo deve ser uma instância de {{type}}", - "BASE_TYPE_OBJECT": "Este campo deve ser um objeto", - "BASE_TYPE_ARRAY": "Este campo deve ser um array", - "UNKOWN_FIELD": "Chave desconhecida: {{key}}", - "BASE_TYPE_CONSTANT": "Este campo deve ser {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Endereço de e-mail formado incorretamente", - "DATE_TYPE_PARSE": "Não foi possível analisar {{date}}. Deve ser ISO8601", - "BASE_TYPE_BAD_LENGTH": "Deve estar entre {{length}} de comprimento" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/pt/pt b/api/locales/pt/pt deleted file mode 100644 index 7a0254fc..00000000 --- a/api/locales/pt/pt +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be a object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unkown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file diff --git a/api/locales/qu/auth.json b/api/locales/qu/auth.json new file mode 100644 index 00000000..e19547a0 --- /dev/null +++ b/api/locales/qu/auth.json @@ -0,0 +1,16 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled" + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/api/locales/qu/common.json b/api/locales/qu/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/api/locales/qu/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/ro/common.json b/api/locales/ro/common.json index ee0ef86c..eec6d0d5 100644 --- a/api/locales/ro/common.json +++ b/api/locales/ro/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "Acest câmp este necesar", - "BASE_TYPE_STRING": "Acest câmp trebuie să fie un şir de caractere", - "BASE_TYPE_NUMBER": "Acest câmp trebuie să fie un număr", - "BASE_TYPE_BIGINT": "Acest câmp trebuie să fie mare", - "BASE_TYPE_BOOLEAN": "Acest câmp trebuie să fie un boolean", - "BASE_TYPE_CHOICES": "Acest câmp trebuie să fie unul din ({{types}})", - "BASE_TYPE_CLASS": "Acest câmp trebuie să fie o instanță de {{type}}", - "BASE_TYPE_OBJECT": "Acest câmp trebuie să fie un obiect", - "BASE_TYPE_ARRAY": "Acest câmp trebuie să fie un array", - "UNKOWN_FIELD": "Cheie necunoscută: {{key}}", - "BASE_TYPE_CONSTANT": "Acest câmp trebuie să fie {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Adresa de email nu este bine formatata", - "DATE_TYPE_PARSE": "Nu s-a putut analiza {{date}}. Ar trebui să fie ISO8601", - "BASE_TYPE_BAD_LENGTH": "Trebuie să fie între {{length}} lungime" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "Acest câmp este necesar", + "BASE_TYPE_STRING": "Acest câmp trebuie să fie un şir de caractere", + "BASE_TYPE_NUMBER": "Acest câmp trebuie să fie un număr", + "BASE_TYPE_BIGINT": "Acest câmp trebuie să fie mare", + "BASE_TYPE_BOOLEAN": "Acest câmp trebuie să fie un boolean", + "BASE_TYPE_CHOICES": "Acest câmp trebuie să fie unul din ({{types}})", + "BASE_TYPE_CLASS": "Acest câmp trebuie să fie o instanță de {{type}}", + "BASE_TYPE_OBJECT": "Acest câmp trebuie să fie un obiect", + "BASE_TYPE_ARRAY": "Acest câmp trebuie să fie un array", + "UNKOWN_FIELD": "Cheie necunoscută: {{key}}", + "BASE_TYPE_CONSTANT": "Acest câmp trebuie să fie {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Adresa de email nu este bine formatata", + "DATE_TYPE_PARSE": "Nu s-a putut analiza {{date}}. Ar trebui să fie ISO8601", + "BASE_TYPE_BAD_LENGTH": "Trebuie să fie între {{length}} lungime" + } +} diff --git a/api/locales/ro/ro b/api/locales/ro/ro deleted file mode 100644 index 7a0254fc..00000000 --- a/api/locales/ro/ro +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be a object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unkown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file diff --git a/api/locales/ru/auth.json b/api/locales/ru/auth.json index b63ac34f..26b3f5a7 100644 --- a/api/locales/ru/auth.json +++ b/api/locales/ru/auth.json @@ -2,7 +2,7 @@ "login": { "INVALID_LOGIN": "Данный адрес электронной почты или телефон не найден", "INVALID_PASSWORD": "Неверный пароль", - "ACCOUNT_DISABLED": "This account is disabled" + "ACCOUNT_DISABLED": "Этот аккаунт отключён" }, "register": { "REGISTRATION_DISABLED": "Регистрация нового пользователя отключена", diff --git a/api/locales/ru/common.json b/api/locales/ru/common.json index 99fb15cf..aff9677b 100644 --- a/api/locales/ru/common.json +++ b/api/locales/ru/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "Это поле является обязательным", - "BASE_TYPE_STRING": "Это поле должно быть string", - "BASE_TYPE_NUMBER": "Это поле должно быть number", - "BASE_TYPE_BIGINT": "Это поле должно быть bigint", - "BASE_TYPE_BOOLEAN": "Это поле должно быть boolean", - "BASE_TYPE_CHOICES": "Это поле должно быть одним из ({{types}})", - "BASE_TYPE_CLASS": "Это поле должно быть экземпляром {{type}}", - "BASE_TYPE_OBJECT": "Это поле должно быть объектом", - "BASE_TYPE_ARRAY": "Это поле должно быть массивом", - "UNKOWN_FIELD": "Неизвестное поле: {{key}}", - "BASE_TYPE_CONSTANT": "Это поле должно быть {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Неправильный формат адреса электронной почты", - "DATE_TYPE_PARSE": "Не удалось разобрать {{date}}. Дата должна быть в ISO8601", - "BASE_TYPE_BAD_LENGTH": "Длина должна быть между {{length}} в длину" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "Это поле является обязательным", + "BASE_TYPE_STRING": "Это поле должно быть string", + "BASE_TYPE_NUMBER": "Это поле должно быть number", + "BASE_TYPE_BIGINT": "Это поле должно быть bigint", + "BASE_TYPE_BOOLEAN": "Это поле должно быть boolean", + "BASE_TYPE_CHOICES": "Это поле должно быть одним из ({{types}})", + "BASE_TYPE_CLASS": "Это поле должно быть экземпляром {{type}}", + "BASE_TYPE_OBJECT": "Это поле должно быть объектом", + "BASE_TYPE_ARRAY": "Это поле должно быть массивом", + "UNKOWN_FIELD": "Неизвестное поле: {{key}}", + "BASE_TYPE_CONSTANT": "Это поле должно быть {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Неправильный формат адреса электронной почты", + "DATE_TYPE_PARSE": "Не удалось разобрать {{date}}. Дата должна быть в ISO8601", + "BASE_TYPE_BAD_LENGTH": "Длина должна быть между {{length}} в длину" + } +} diff --git a/api/locales/ru/ru b/api/locales/ru/ru deleted file mode 100644 index 7a0254fc..00000000 --- a/api/locales/ru/ru +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be a object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unkown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file diff --git a/api/locales/sh/auth.json b/api/locales/sh/auth.json new file mode 100644 index 00000000..0f2c8456 --- /dev/null +++ b/api/locales/sh/auth.json @@ -0,0 +1,16 @@ +{ + "login": { + "INVALID_LOGIN": "Email ili broj mobitela nije pronađen", + "INVALID_PASSWORD": "Pogrešna lozinka", + "ACCOUNT_DISABLED": "This account is disabled" + }, + "register": { + "REGISTRATION_DISABLED": "Registracija novog korisnika je onemogućena", + "INVITE_ONLY": "Morate biti pozvani da se registrirate", + "EMAIL_INVALID": "Nevažeći email", + "EMAIL_ALREADY_REGISTERED": "Email je već registriran", + "DATE_OF_BIRTH_UNDERAGE": "Morate imati {{years}} godina ili više", + "CONSENT_REQUIRED": "Morate se složiti s uvjetima pružanja usluge i pravila o privatnosti.", + "USERNAME_TOO_MANY_USERS": "Previše korisnika ima ovo korisničko ime, molimo vas da pokušate sa drugim" + } +} diff --git a/api/locales/sh/common.json b/api/locales/sh/common.json new file mode 100644 index 00000000..4afc5794 --- /dev/null +++ b/api/locales/sh/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "Ovo polje je obavezno", + "BASE_TYPE_STRING": "Ovo polje mora biti niz", + "BASE_TYPE_NUMBER": "Ovo polje mora biti broj", + "BASE_TYPE_BIGINT": "Ovo polje mora biti bigint", + "BASE_TYPE_BOOLEAN": "Ovo polje mora biti boolean", + "BASE_TYPE_CHOICES": "Ovo polje mora biti jedno od ({{types}})", + "BASE_TYPE_CLASS": "Ovo polje mora biti primjer od {{type}}", + "BASE_TYPE_OBJECT": "Ovo polje mora biti objekt", + "BASE_TYPE_ARRAY": "Ovo polje mora biti niz", + "UNKOWN_FIELD": "Nepoznati ključ: {{key}}", + "BASE_TYPE_CONSTANT": "Ovo polje mora biti {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Nije dobro oblikovana Email adresa", + "DATE_TYPE_PARSE": "Nije moguće raščlaniti {{date}}. Treba biti ISO8601", + "BASE_TYPE_BAD_LENGTH": "Mora biti između {{length}} u duljini" + } +} diff --git a/api/locales/si/auth.json b/api/locales/si/auth.json new file mode 100644 index 00000000..e19547a0 --- /dev/null +++ b/api/locales/si/auth.json @@ -0,0 +1,16 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled" + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/api/locales/si/common.json b/api/locales/si/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/api/locales/si/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/sk/auth.json b/api/locales/sk/auth.json index 241d71e9..52d96c70 100644 --- a/api/locales/sk/auth.json +++ b/api/locales/sk/auth.json @@ -1,8 +1,8 @@ { "login": { - "INVALID_LOGIN": "E-mail alebo telefón nebol nájdený", + "INVALID_LOGIN": "E-mail alebo Telefón nebol nájdený", "INVALID_PASSWORD": "Neplatné Heslo", - "ACCOUNT_DISABLED": "This account is disabled" + "ACCOUNT_DISABLED": "Tento účet je deaktivovaný" }, "register": { "REGISTRATION_DISABLED": "Registrácia nového používateľa je zakázaná", diff --git a/api/locales/sk/common.json b/api/locales/sk/common.json index c37f8604..c7435665 100644 --- a/api/locales/sk/common.json +++ b/api/locales/sk/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "Toto pole je povinné", - "BASE_TYPE_STRING": "Toto pole musí byť slovo alebo veta", - "BASE_TYPE_NUMBER": "Toto pole musí byť číslo", - "BASE_TYPE_BIGINT": "Toto pole musí byť binárna číslica", - "BASE_TYPE_BOOLEAN": "Toto pole musí byť buď áno, alebo nie", - "BASE_TYPE_CHOICES": "Toto pole musí byť jedným z ({{types}})", - "BASE_TYPE_CLASS": "Toto pole musí byť inštanciou z {{type}}", - "BASE_TYPE_OBJECT": "Toto pole musí byť objekt", - "BASE_TYPE_ARRAY": "Toto pole musí byť pole", - "UNKOWN_FIELD": "Neznámy kľúč: {{key}}", - "BASE_TYPE_CONSTANT": "Toto pole musí byť {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Nie je správne formulovaná emailová adresa", - "DATE_TYPE_PARSE": "Nepodarilo sa analyzovať {{date}}. Malo by byť ISO8601", - "BASE_TYPE_BAD_LENGTH": "Musí mať dĺžku medzi {{length}}" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "Toto pole je povinné", + "BASE_TYPE_STRING": "Toto pole musí byť slovo alebo veta", + "BASE_TYPE_NUMBER": "Toto pole musí byť číslo", + "BASE_TYPE_BIGINT": "Toto pole musí byť binárna číslica", + "BASE_TYPE_BOOLEAN": "Toto pole musí byť buď áno, alebo nie", + "BASE_TYPE_CHOICES": "Toto pole musí byť jedným z ({{types}})", + "BASE_TYPE_CLASS": "Toto pole musí byť inštanciou z {{type}}", + "BASE_TYPE_OBJECT": "Toto pole musí byť objekt", + "BASE_TYPE_ARRAY": "Toto pole musí byť pole", + "UNKOWN_FIELD": "Neznámy kľúč: {{key}}", + "BASE_TYPE_CONSTANT": "Toto pole musí byť {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Nie je správne formulovaná emailová adresa", + "DATE_TYPE_PARSE": "Nepodarilo sa analyzovať {{date}}. Malo by byť ISO8601", + "BASE_TYPE_BAD_LENGTH": "Musí mať dĺžku medzi {{length}}" + } +} diff --git a/api/locales/sr/common.json b/api/locales/sr/common.json index a565e3dc..8bb9c042 100644 --- a/api/locales/sr/common.json +++ b/api/locales/sr/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/sr/sr b/api/locales/sr/sr deleted file mode 100644 index 7a0254fc..00000000 --- a/api/locales/sr/sr +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be a object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unkown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file diff --git a/api/locales/sv/common.json b/api/locales/sv/common.json index 9d8eb0da..03ef05bc 100644 --- a/api/locales/sv/common.json +++ b/api/locales/sv/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "Detta fält är obligatoriskt", - "BASE_TYPE_STRING": "Detta fält måste vara en sträng", - "BASE_TYPE_NUMBER": "Detta fält måste vara ett nummer", - "BASE_TYPE_BIGINT": "Detta fält måste vara av typen bigint", - "BASE_TYPE_BOOLEAN": "Detta fält måste vara booleskt", - "BASE_TYPE_CHOICES": "Detta fält måste vara av typen av ett av följande ({{types}})", - "BASE_TYPE_CLASS": "Det här fältet måste vara en instans av {{type}}", - "BASE_TYPE_OBJECT": "Detta fält måste vara ett objekt", - "BASE_TYPE_ARRAY": "Detta fält måste vara en lista", - "UNKOWN_FIELD": "Okänd nyckel: {{key}}", - "BASE_TYPE_CONSTANT": "Det här fältet måste vara {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "E-postadressen har inte korrekt format", - "DATE_TYPE_PARSE": "Kunde inte tolka {{date}}. Bör vara ISO8601", - "BASE_TYPE_BAD_LENGTH": "Måste vara mellan {{length}} i längd" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "Detta fält är obligatoriskt", + "BASE_TYPE_STRING": "Detta fält måste vara en sträng", + "BASE_TYPE_NUMBER": "Detta fält måste vara ett nummer", + "BASE_TYPE_BIGINT": "Detta fält måste vara av typen bigint", + "BASE_TYPE_BOOLEAN": "Detta fält måste vara booleskt", + "BASE_TYPE_CHOICES": "Detta fält måste vara av typen av ett av följande ({{types}})", + "BASE_TYPE_CLASS": "Det här fältet måste vara en instans av {{type}}", + "BASE_TYPE_OBJECT": "Detta fält måste vara ett objekt", + "BASE_TYPE_ARRAY": "Detta fält måste vara en lista", + "UNKOWN_FIELD": "Okänd nyckel: {{key}}", + "BASE_TYPE_CONSTANT": "Det här fältet måste vara {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "E-postadressen har inte korrekt format", + "DATE_TYPE_PARSE": "Kunde inte tolka {{date}}. Bör vara ISO8601", + "BASE_TYPE_BAD_LENGTH": "Måste vara mellan {{length}} i längd" + } +} diff --git a/api/locales/sv/sv b/api/locales/sv/sv deleted file mode 100644 index 7a0254fc..00000000 --- a/api/locales/sv/sv +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be a object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unkown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file diff --git a/api/locales/sw/auth.json b/api/locales/sw/auth.json new file mode 100644 index 00000000..e19547a0 --- /dev/null +++ b/api/locales/sw/auth.json @@ -0,0 +1,16 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled" + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/api/locales/sw/common.json b/api/locales/sw/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/api/locales/sw/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/ta/auth.json b/api/locales/ta/auth.json new file mode 100644 index 00000000..e19547a0 --- /dev/null +++ b/api/locales/ta/auth.json @@ -0,0 +1,16 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled" + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/api/locales/ta/common.json b/api/locales/ta/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/api/locales/ta/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/tl/auth.json b/api/locales/tl/auth.json new file mode 100644 index 00000000..e19547a0 --- /dev/null +++ b/api/locales/tl/auth.json @@ -0,0 +1,16 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled" + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/api/locales/tl/common.json b/api/locales/tl/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/api/locales/tl/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/tr/auth.json b/api/locales/tr/auth.json index 321917ce..1b3c4a8f 100644 --- a/api/locales/tr/auth.json +++ b/api/locales/tr/auth.json @@ -1,16 +1,16 @@ { "login": { - "INVALID_LOGIN": "Eposta veya Telefon Numarası bulunamadı", + "INVALID_LOGIN": "E-posta veya Telefon Numarası bulunamadı", "INVALID_PASSWORD": "Geçersiz Şifre", - "ACCOUNT_DISABLED": "Bu hesap devre dışı bırakıldı." + "ACCOUNT_DISABLED": "Bu hesap devre dışı bırakıldı" }, "register": { "REGISTRATION_DISABLED": "Yeni kullanıcı alımı devre dışı bırakıldı", "INVITE_ONLY": "Kayıt olabilmek için davet edilmelisin", - "EMAIL_INVALID": "Geçersiz Eposta", - "EMAIL_ALREADY_REGISTERED": "Bu Eposta zaten kayıtlı", + "EMAIL_INVALID": "Geçersiz e-posta", + "EMAIL_ALREADY_REGISTERED": "Bu e-posta zaten kayıtlı", "DATE_OF_BIRTH_UNDERAGE": "{{years}} yaşında veya daha büyük olmalısın", - "CONSENT_REQUIRED": "Hizmet Şartları ve Gizlilik Politikasını kabul etmelisin.", + "CONSENT_REQUIRED": "Hizmet Koşulları ve Gizlilik Politikasını kabul etmelisin.", "USERNAME_TOO_MANY_USERS": "Çok fazla kullanıcı bu kullanıcı adını kullanıyor, lütfen başka bir kullanıcı adı dene" } } diff --git a/api/locales/tr/common.json b/api/locales/tr/common.json index b113453e..8d8dafe0 100644 --- a/api/locales/tr/common.json +++ b/api/locales/tr/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "Bu alan gereklidir", - "BASE_TYPE_STRING": "Bu alan bir metin (string) olmalı", - "BASE_TYPE_NUMBER": "Bu alan bir sayı olmalı", - "BASE_TYPE_BIGINT": "Bu alan büyük integer (bkz. bigint) değeri olmalıdır", - "BASE_TYPE_BOOLEAN": "Bu alan mantıksal değer (boolean) olmalıdır", - "BASE_TYPE_CHOICES": "Bu alan ({{types}}) lardan biri olmak zorunda", - "BASE_TYPE_CLASS": "Bu alan {{type}} türünden olmalı", - "BASE_TYPE_OBJECT": "Bu alan bir obje olmalı", - "BASE_TYPE_ARRAY": "Bu alan bir dizi (array) olmalı", - "UNKOWN_FIELD": "Bilinmeyen anahtar: {{key}}", - "BASE_TYPE_CONSTANT": "Bu alan {{value}} olmalı", - "EMAIL_TYPE_INVALID_EMAIL": "Geçerli bir e-posta adresi değil", - "DATE_TYPE_PARSE": "{{date}} işlenemiyor. ISO8601 standartlarında olmalı", - "BASE_TYPE_BAD_LENGTH": "Uzunluğu {{length}} olmalı" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "Bu alan gereklidir", + "BASE_TYPE_STRING": "Bu alan bir metin (string) olmalı", + "BASE_TYPE_NUMBER": "Bu alan bir sayı olmalı", + "BASE_TYPE_BIGINT": "Bu alan büyük integer (bkz. bigint) değeri olmalıdır", + "BASE_TYPE_BOOLEAN": "Bu alan mantıksal değer (boolean) olmalıdır", + "BASE_TYPE_CHOICES": "Bu alan ({{types}}) lardan biri olmak zorunda", + "BASE_TYPE_CLASS": "Bu alan {{type}} türünden olmalı", + "BASE_TYPE_OBJECT": "Bu alan bir obje olmalı", + "BASE_TYPE_ARRAY": "Bu alan bir dizi (array) olmalı", + "UNKOWN_FIELD": "Bilinmeyen anahtar: {{key}}", + "BASE_TYPE_CONSTANT": "Bu alan {{value}} olmalı", + "EMAIL_TYPE_INVALID_EMAIL": "Geçerli bir e-posta adresi değil", + "DATE_TYPE_PARSE": "{{date}} işlenemiyor. ISO8601 standartlarında olmalı", + "BASE_TYPE_BAD_LENGTH": "{{length}} arası uzunlukta olmalı" + } +} diff --git a/api/locales/tr/tr b/api/locales/tr/tr deleted file mode 100644 index ed2bba58..00000000 --- a/api/locales/tr/tr +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "Bu alan gereklidir", - "BASE_TYPE_STRING": "Bu alan string olmalıdır", - "BASE_TYPE_NUMBER": "Bu alan bir sayı olmalıdır", - "BASE_TYPE_BIGINT": "Bu alan bir bigint olmalıdır", - "BASE_TYPE_BOOLEAN": "Bu alan bir boolean olmalıdır", - "BASE_TYPE_CHOICES": "Bu alan ({{types}}) türlerinden biri olmalıdır", - "BASE_TYPE_CLASS": "Bu alan bir {{type}} örneği olmalıdır", - "BASE_TYPE_OBJECT": "Bu alan bir obje olmalıdır", - "BASE_TYPE_ARRAY": "Bu alan bir liste olmalıdır", - "UNKOWN_FIELD": "Geçersiz alan: {{key}}", - "BASE_TYPE_CONSTANT": "Bu alan {{value}} olmalıdır", - "EMAIL_TYPE_INVALID_EMAIL": "Doğru biçimlendirilmiş bir eposta adresi değil", - "DATE_TYPE_PARSE": "{{date}} ayrıştırılamadı. ISO8601 tarihi olmalıdır", - "BASE_TYPE_BAD_LENGTH": "{{length}} uzunluğunda olmalıdır" - } -} diff --git a/api/locales/ug/auth.json b/api/locales/ug/auth.json new file mode 100644 index 00000000..e19547a0 --- /dev/null +++ b/api/locales/ug/auth.json @@ -0,0 +1,16 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled" + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/api/locales/ug/common.json b/api/locales/ug/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/api/locales/ug/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/uk/common.json b/api/locales/uk/common.json index e694f8ae..5871e20b 100644 --- a/api/locales/uk/common.json +++ b/api/locales/uk/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "Це поле обов'язкове для заповнення", - "BASE_TYPE_STRING": "Це поле має бути рядком", - "BASE_TYPE_NUMBER": "Це поле має бути числом", - "BASE_TYPE_BIGINT": "Це поле має бути великим", - "BASE_TYPE_BOOLEAN": "Це поле має бути логічним", - "BASE_TYPE_CHOICES": "Це поле має бути одним з ({{types}})", - "BASE_TYPE_CLASS": "Це поле повинно бути екземпляром {{type}}", - "BASE_TYPE_OBJECT": "Це поле має бути об'єктом", - "BASE_TYPE_ARRAY": "Це поле має бути масивом", - "UNKOWN_FIELD": "Невідомий ключ: {{key}}", - "BASE_TYPE_CONSTANT": "Це поле має бути {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Неправильно сформована електронна адреса", - "DATE_TYPE_PARSE": "Не вдається розібрати {{date}}. має бути ISO8601", - "BASE_TYPE_BAD_LENGTH": "Повинно бути між {{length}} в довжині" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "Це поле обов'язкове для заповнення", + "BASE_TYPE_STRING": "Це поле має бути рядком", + "BASE_TYPE_NUMBER": "Це поле має бути числом", + "BASE_TYPE_BIGINT": "Це поле має бути великим", + "BASE_TYPE_BOOLEAN": "Це поле має бути логічним", + "BASE_TYPE_CHOICES": "Це поле має бути одним з ({{types}})", + "BASE_TYPE_CLASS": "Це поле повинно бути екземпляром {{type}}", + "BASE_TYPE_OBJECT": "Це поле має бути об'єктом", + "BASE_TYPE_ARRAY": "Це поле має бути масивом", + "UNKOWN_FIELD": "Невідомий ключ: {{key}}", + "BASE_TYPE_CONSTANT": "Це поле має бути {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Неправильно сформована електронна адреса", + "DATE_TYPE_PARSE": "Не вдається розібрати {{date}}. має бути ISO8601", + "BASE_TYPE_BAD_LENGTH": "Повинно бути між {{length}} в довжині" + } +} diff --git a/api/locales/uk/uk b/api/locales/uk/uk deleted file mode 100644 index 7a0254fc..00000000 --- a/api/locales/uk/uk +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be a object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unkown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file diff --git a/api/locales/ur/common.json b/api/locales/ur/common.json index a565e3dc..8bb9c042 100644 --- a/api/locales/ur/common.json +++ b/api/locales/ur/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/vec/auth.json b/api/locales/vec/auth.json new file mode 100644 index 00000000..e19547a0 --- /dev/null +++ b/api/locales/vec/auth.json @@ -0,0 +1,16 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled" + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/api/locales/vec/common.json b/api/locales/vec/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/api/locales/vec/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/vi/auth.json b/api/locales/vi/auth.json index b2f59d44..81c2cfa9 100644 --- a/api/locales/vi/auth.json +++ b/api/locales/vi/auth.json @@ -2,15 +2,15 @@ "login": { "INVALID_LOGIN": "E-mail hoặc số điện thoại không tồn tại", "INVALID_PASSWORD": "Sai mật khẩu", - "ACCOUNT_DISABLED": "This account is disabled" + "ACCOUNT_DISABLED": "Tài khoản đã bị vô hiệu hóa" }, "register": { "REGISTRATION_DISABLED": "Hệ thống hiện không cho phép tài khoản mới", "INVITE_ONLY": "Bạn cần được mời để tạo tài khoản", "EMAIL_INVALID": "Email không hợp lệ", "EMAIL_ALREADY_REGISTERED": "Email đã tồn tại", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "DATE_OF_BIRTH_UNDERAGE": "Bạn phải từ {{years}} tuổi trở lên", + "CONSENT_REQUIRED": "Bạn phải đồng ý với Điều khoản Dịch vụ và Chính sách Bảo Mật.", "USERNAME_TOO_MANY_USERS": "Quá nhiều tài khoản trùng với username bạn chọn, xin vui lòng chọn username khác" } } diff --git a/api/locales/vi/common.json b/api/locales/vi/common.json index a565e3dc..d968f617 100644 --- a/api/locales/vi/common.json +++ b/api/locales/vi/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "Mục này là bắt buộc", + "BASE_TYPE_STRING": "Trường này phải là một chuỗi", + "BASE_TYPE_NUMBER": "Mục này phải là một số", + "BASE_TYPE_BIGINT": "Trường này phải là một chuỗi", + "BASE_TYPE_BOOLEAN": "Mục này phải chọn đúng hoặc sai", + "BASE_TYPE_CHOICES": "Mục này phải là một trong ({{types}})", + "BASE_TYPE_CLASS": "Mục này phải là một ví dụ của {{type}}", + "BASE_TYPE_OBJECT": "Mục này phải là một đối tượng", + "BASE_TYPE_ARRAY": "Mục này phải là một danh sách", + "UNKOWN_FIELD": "Khóa không xác định: {{key}}", + "BASE_TYPE_CONSTANT": "Mục này phải là {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Không phải là một địa chỉ email hợp lệ", + "DATE_TYPE_PARSE": "Không thể phân tích cú pháp {{date}}. Phải là ISO8601", + "BASE_TYPE_BAD_LENGTH": "Phải có độ dài từ {{length}}" + } +} diff --git a/api/locales/vi/vi b/api/locales/vi/vi deleted file mode 100644 index 7a0254fc..00000000 --- a/api/locales/vi/vi +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be a object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unkown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file diff --git a/api/locales/zh/common.json b/api/locales/zh/common.json index a9e8532e..8bb9c042 100644 --- a/api/locales/zh/common.json +++ b/api/locales/zh/common.json @@ -1,18 +1,18 @@ { - "field": { - "BASE_TYPE_REQUIRED": "此字段是必填项", - "BASE_TYPE_STRING": "此字段必须是字符串", - "BASE_TYPE_NUMBER": "此字段必须是一个数字", - "BASE_TYPE_BIGINT": "此字段必须是很大的", - "BASE_TYPE_BOOLEAN": "此字段必须是布尔值", - "BASE_TYPE_CHOICES": "此字段必须是 ({{types}})", - "BASE_TYPE_CLASS": "此字段必须是 {{type}} 的实例", - "BASE_TYPE_OBJECT": "此字段必须是对象", - "BASE_TYPE_ARRAY": "此字段必须是一个数组", - "UNKOWN_FIELD": "未知密钥: {{key}}", - "BASE_TYPE_CONSTANT": "此字段必须是 {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "格式不正确的电子邮件地址", - "DATE_TYPE_PARSE": "无法解析 {{date}}。应该为 ISO8601", - "BASE_TYPE_BAD_LENGTH": "长度必须介于 {{length}} 之间" - } -} \ No newline at end of file + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/api/locales/zh/zh b/api/locales/zh/zh deleted file mode 100644 index 7a0254fc..00000000 --- a/api/locales/zh/zh +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be a object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unkown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} \ No newline at end of file diff --git a/api/package-lock.json b/api/package-lock.json index c78d3248..e8ebd5bf 100644 Binary files a/api/package-lock.json and b/api/package-lock.json differ diff --git a/api/package.json b/api/package.json index 1c6b4fc0..3be75f68 100644 --- a/api/package.json +++ b/api/package.json @@ -86,6 +86,7 @@ "multer": "^1.4.2", "node-fetch": "^2.6.1", "patch-package": "^6.4.7", + "proxy-agent": "^5.0.0", "supertest": "^6.1.6", "typeorm": "^0.2.37" }, diff --git a/api/src/global.d.ts b/api/src/global.d.ts index 3eb70f44..7751af8f 100644 --- a/api/src/global.d.ts +++ b/api/src/global.d.ts @@ -1,8 +1,8 @@ declare global { - namespace Express { - interface Request { - user_id: any; - token: any; - } - } -} \ No newline at end of file + namespace Express { + interface Request { + user_id: any; + token: any; + } + } +} diff --git a/api/src/routes/-/healthz.ts b/api/src/routes/-/healthz.ts index a42575f8..f7bcfebf 100644 --- a/api/src/routes/-/healthz.ts +++ b/api/src/routes/-/healthz.ts @@ -9,7 +9,7 @@ router.get("/", route({}), (req: Request, res: Response) => { // test that the database is alive & responding getConnection(); return res.sendStatus(200); - } catch(e) { + } catch (e) { res.sendStatus(503); } }); diff --git a/api/src/routes/-/readyz.ts b/api/src/routes/-/readyz.ts index a42575f8..f7bcfebf 100644 --- a/api/src/routes/-/readyz.ts +++ b/api/src/routes/-/readyz.ts @@ -9,7 +9,7 @@ router.get("/", route({}), (req: Request, res: Response) => { // test that the database is alive & responding getConnection(); return res.sendStatus(200); - } catch(e) { + } catch (e) { res.sendStatus(503); } }); diff --git a/api/src/routes/applications/#id/entitlements.ts b/api/src/routes/applications/#id/entitlements.ts index 1152e500..cfcfe40f 100644 --- a/api/src/routes/applications/#id/entitlements.ts +++ b/api/src/routes/applications/#id/entitlements.ts @@ -5,7 +5,7 @@ const router = Router(); router.get("/", route({}), (req: Request, res: Response) => { // TODO: - //const { exclude_consumed } = req.query; + //const { exclude_consumed } = req.query; res.status(200).send([]); }); diff --git a/api/src/routes/channels/#channel_id/messages/#message_id/crosspost.ts b/api/src/routes/channels/#channel_id/messages/#message_id/crosspost.ts index de0c01f1..b2cb6763 100644 --- a/api/src/routes/channels/#channel_id/messages/#message_id/crosspost.ts +++ b/api/src/routes/channels/#channel_id/messages/#message_id/crosspost.ts @@ -6,25 +6,23 @@ const router = Router(); router.post("/", route({ permission: "MANAGE_MESSAGES" }), (req: Request, res: Response) => { // TODO: res.json({ - id: "", - type: 0, - content: "", - channel_id: "", - author: {id: "", - username: "", - avatar: "", - discriminator: "", public_flags: 64}, - attachments: [], - embeds: [], - mentions: [], - mention_roles: [], - pinned: false, - mention_everyone: false, - tts: false, - timestamp: "", - edited_timestamp: null, - flags: 1, components: []}).status(200); + id: "", + type: 0, + content: "", + channel_id: "", + author: { id: "", username: "", avatar: "", discriminator: "", public_flags: 64 }, + attachments: [], + embeds: [], + mentions: [], + mention_roles: [], + pinned: false, + mention_everyone: false, + tts: false, + timestamp: "", + edited_timestamp: null, + flags: 1, + components: [] + }).status(200); }); export default router; - diff --git a/api/src/routes/channels/#channel_id/messages/bulk-delete.ts b/api/src/routes/channels/#channel_id/messages/bulk-delete.ts index a0fe7cc0..7a711cb0 100644 --- a/api/src/routes/channels/#channel_id/messages/bulk-delete.ts +++ b/api/src/routes/channels/#channel_id/messages/bulk-delete.ts @@ -29,7 +29,7 @@ router.post("/", route({ body: "BulkDeleteSchema" }), async (req: Request, res: if (messages.length < 2) throw new HTTPError("You must at least specify 2 messages to bulk delete"); if (messages.length > maxBulkDelete) throw new HTTPError(`You cannot delete more than ${maxBulkDelete} messages`); - await Message.delete({ id: In(messages) }); + await Message.delete(messages.map((x) => ({ id: x }))); await emitEvent({ event: "MESSAGE_DELETE_BULK", diff --git a/api/src/routes/channels/#channel_id/messages/index.ts b/api/src/routes/channels/#channel_id/messages/index.ts index 296bec9a..d3c0a409 100644 --- a/api/src/routes/channels/#channel_id/messages/index.ts +++ b/api/src/routes/channels/#channel_id/messages/index.ts @@ -119,7 +119,7 @@ router.get("/", async (req: Request, res: Response) => { x.attachments?.forEach((x) => { // dynamically set attachment proxy_url in case the endpoint changed const uri = x.proxy_url.startsWith("http") ? x.proxy_url : `https://example.org${x.proxy_url}`; - x.proxy_url = `${endpoint == null ? "http://localhost:3003" : endpoint}${new URL(uri).pathname}`; + x.proxy_url = `${endpoint == null ? "" : endpoint}${new URL(uri).pathname}`; }); return x; @@ -186,14 +186,13 @@ router.post( timestamp: new Date() }); - message = await message.save(); + channel.last_message_id = message.id; if (channel.isDm()) { const channel_dto = await DmChannelDTO.from(channel); - //Only one recipients should be closed here, since in group DMs the recipient is deleted not closed - - await Promise.all( + // Only one recipients should be closed here, since in group DMs the recipient is deleted not closed + Promise.all( channel.recipients!.map((recipient) => { if (recipient.closed) { recipient.closed = false; @@ -211,9 +210,10 @@ router.post( } await Promise.all([ - channel.assign({ last_message_id: message.id }).save(), + message.save(), + emitEvent({ event: "MESSAGE_CREATE", channel_id: channel_id, data: message } as MessageCreateEvent), message.guild_id ? Member.update({ id: req.user_id, guild_id: message.guild_id }, { last_message_id: message.id }) : null, - emitEvent({ event: "MESSAGE_CREATE", channel_id: channel_id, data: message } as MessageCreateEvent) + channel.save() ]); postHandleMessage(message).catch((e) => {}); // no await as it shouldnt block the message send function and silently catch error diff --git a/api/src/routes/channels/#channel_id/recipients.ts b/api/src/routes/channels/#channel_id/recipients.ts index 83b62049..e6466211 100644 --- a/api/src/routes/channels/#channel_id/recipients.ts +++ b/api/src/routes/channels/#channel_id/recipients.ts @@ -1,6 +1,16 @@ import { Request, Response, Router } from "express"; -import { Channel, ChannelRecipientAddEvent, ChannelType, DiscordApiErrors, DmChannelDTO, emitEvent, PublicUserProjection, Recipient, User } from "@fosscord/util"; -import { route } from "@fosscord/api" +import { + Channel, + ChannelRecipientAddEvent, + ChannelType, + DiscordApiErrors, + DmChannelDTO, + emitEvent, + PublicUserProjection, + Recipient, + User +} from "@fosscord/util"; +import { route } from "@fosscord/api"; const router: Router = Router(); @@ -9,20 +19,17 @@ router.put("/:user_id", route({}), async (req: Request, res: Response) => { const channel = await Channel.findOneOrFail({ where: { id: channel_id }, relations: ["recipients"] }); if (channel.type !== ChannelType.GROUP_DM) { - const recipients = [ - ...channel.recipients!.map(r => r.user_id), - user_id - ].unique() + const recipients = [...channel.recipients!.map((r) => r.user_id), user_id].unique(); - const new_channel = await Channel.createDMChannel(recipients, req.user_id) + const new_channel = await Channel.createDMChannel(recipients, req.user_id); return res.status(201).json(new_channel); } else { - if (channel.recipients!.map(r => r.user_id).includes(user_id)) { - throw DiscordApiErrors.INVALID_RECIPIENT //TODO is this the right error? + if (channel.recipients!.map((r) => r.user_id).includes(user_id)) { + throw DiscordApiErrors.INVALID_RECIPIENT; //TODO is this the right error? } channel.recipients!.push(new Recipient({ channel_id: channel_id, user_id: user_id })); - await channel.save() + await channel.save(); await emitEvent({ event: "CHANNEL_CREATE", @@ -31,10 +38,12 @@ router.put("/:user_id", route({}), async (req: Request, res: Response) => { }); await emitEvent({ - event: "CHANNEL_RECIPIENT_ADD", data: { + event: "CHANNEL_RECIPIENT_ADD", + data: { channel_id: channel_id, user: await User.findOneOrFail({ where: { id: user_id }, select: PublicUserProjection }) - }, channel_id: channel_id + }, + channel_id: channel_id } as ChannelRecipientAddEvent); return res.sendStatus(204); } @@ -44,13 +53,13 @@ router.delete("/:user_id", route({}), async (req: Request, res: Response) => { const { channel_id, user_id } = req.params; const channel = await Channel.findOneOrFail({ where: { id: channel_id }, relations: ["recipients"] }); if (!(channel.type === ChannelType.GROUP_DM && (channel.owner_id === req.user_id || user_id === req.user_id))) - throw DiscordApiErrors.MISSING_PERMISSIONS + throw DiscordApiErrors.MISSING_PERMISSIONS; - if (!channel.recipients!.map(r => r.user_id).includes(user_id)) { - throw DiscordApiErrors.INVALID_RECIPIENT //TODO is this the right error? + if (!channel.recipients!.map((r) => r.user_id).includes(user_id)) { + throw DiscordApiErrors.INVALID_RECIPIENT; //TODO is this the right error? } - await Channel.removeRecipientFromChannel(channel, user_id) + await Channel.removeRecipientFromChannel(channel, user_id); return res.sendStatus(204); }); diff --git a/api/src/routes/discoverable-guilds.ts b/api/src/routes/discoverable-guilds.ts index b626b084..1cf56f84 100644 --- a/api/src/routes/discoverable-guilds.ts +++ b/api/src/routes/discoverable-guilds.ts @@ -3,7 +3,6 @@ import { Guild, Config } from "@fosscord/util"; import { Router, Request, Response } from "express"; import { route } from "@fosscord/api"; - const router = Router(); router.get("/", route({}), async (req: Request, res: Response) => { @@ -12,7 +11,9 @@ router.get("/", route({}), async (req: Request, res: Response) => { // ! this only works using SQL querys // TODO: implement this with default typeorm query // const guilds = await Guild.find({ where: { features: "DISCOVERABLE" } }); //, take: Math.abs(Number(limit)) }); - const guilds = showAllGuilds ? await Guild.find({take: Math.abs(Number(limit || 20))}) : await Guild.find({ where: `"features" LIKE '%COMMUNITY%'`, take: Math.abs(Number(limit || 20)) }); + const guilds = showAllGuilds + ? await Guild.find({ take: Math.abs(Number(limit || 20)) }) + : await Guild.find({ where: `"features" LIKE '%COMMUNITY%'`, take: Math.abs(Number(limit || 20)) }); res.send({ guilds: guilds }); }); diff --git a/api/src/routes/discovery.ts b/api/src/routes/discovery.ts index 9e6e0164..bc495d42 100644 --- a/api/src/routes/discovery.ts +++ b/api/src/routes/discovery.ts @@ -5,7 +5,7 @@ const router = Router(); router.get("/categories", route({}), (req: Request, res: Response) => { // TODO: - //const { locale, primary_only } = req.query; + //const { locale, primary_only } = req.query; res.json([]).status(200); }); diff --git a/api/src/routes/gateway/bot.ts b/api/src/routes/gateway/bot.ts index 72313700..f1dbb9df 100644 --- a/api/src/routes/gateway/bot.ts +++ b/api/src/routes/gateway/bot.ts @@ -12,7 +12,7 @@ export interface GatewayBotResponse { remaining: number; reset_after: number; max_concurrency: number; - } + }; } const options: RouteOptions = { diff --git a/api/src/routes/gifs/search.ts b/api/src/routes/gifs/search.ts index 45b3ddca..9ad7a592 100644 --- a/api/src/routes/gifs/search.ts +++ b/api/src/routes/gifs/search.ts @@ -1,5 +1,6 @@ import { Router, Response, Request } from "express"; import fetch from "node-fetch"; +import ProxyAgent from 'proxy-agent'; import { route } from "@fosscord/api"; import { getGifApiKey, parseGifResult } from "./trending"; @@ -10,8 +11,11 @@ router.get("/", route({}), async (req: Request, res: Response) => { const { q, media_format, locale } = req.query; const apiKey = getGifApiKey(); + + const agent = new ProxyAgent(); const response = await fetch(`https://g.tenor.com/v1/search?q=${q}&media_format=${media_format}&locale=${locale}&key=${apiKey}`, { + agent, method: "get", headers: { "Content-Type": "application/json" } }); diff --git a/api/src/routes/gifs/trending-gifs.ts b/api/src/routes/gifs/trending-gifs.ts index b5f87222..6d97bf7c 100644 --- a/api/src/routes/gifs/trending-gifs.ts +++ b/api/src/routes/gifs/trending-gifs.ts @@ -1,5 +1,6 @@ import { Router, Response, Request } from "express"; import fetch from "node-fetch"; +import ProxyAgent from 'proxy-agent'; import { route } from "@fosscord/api"; import { getGifApiKey, parseGifResult } from "./trending"; @@ -10,8 +11,11 @@ router.get("/", route({}), async (req: Request, res: Response) => { const { media_format, locale } = req.query; const apiKey = getGifApiKey(); + + const agent = new ProxyAgent(); const response = await fetch(`https://g.tenor.com/v1/trending?media_format=${media_format}&locale=${locale}&key=${apiKey}`, { + agent, method: "get", headers: { "Content-Type": "application/json" } }); diff --git a/api/src/routes/gifs/trending.ts b/api/src/routes/gifs/trending.ts index 7ee9337e..c81b4c08 100644 --- a/api/src/routes/gifs/trending.ts +++ b/api/src/routes/gifs/trending.ts @@ -1,5 +1,6 @@ import { Router, Response, Request } from "express"; import fetch from "node-fetch"; +import ProxyAgent from 'proxy-agent'; import { route } from "@fosscord/api"; import { Config } from "@fosscord/util"; import { HTTPError } from "lambert-server"; @@ -33,13 +34,17 @@ router.get("/", route({}), async (req: Request, res: Response) => { const { media_format, locale } = req.query; const apiKey = getGifApiKey(); + + const agent = new ProxyAgent(); const [responseSource, trendGifSource] = await Promise.all([ fetch(`https://g.tenor.com/v1/categories?locale=${locale}&key=${apiKey}`, { + agent, method: "get", headers: { "Content-Type": "application/json" } }), fetch(`https://g.tenor.com/v1/trending?locale=${locale}&key=${apiKey}`, { + agent, method: "get", headers: { "Content-Type": "application/json" } }) diff --git a/api/src/routes/guilds/#guild_id/prune.ts b/api/src/routes/guilds/#guild_id/prune.ts index 92809985..0dd4d610 100644 --- a/api/src/routes/guilds/#guild_id/prune.ts +++ b/api/src/routes/guilds/#guild_id/prune.ts @@ -1,82 +1,82 @@ -import { Router, Request, Response } from "express"; -import { Guild, Member, Snowflake } from "@fosscord/util"; -import { LessThan, IsNull } from "typeorm"; -import { route } from "@fosscord/api"; -const router = Router(); - -//Returns all inactive members, respecting role hierarchy -export const inactiveMembers = async (guild_id: string, user_id: string, days: number, roles: string[] = []) => { - var date = new Date(); - date.setDate(date.getDate() - days); - //Snowflake should have `generateFromTime` method? Or similar? - var minId = BigInt(date.valueOf() - Snowflake.EPOCH) << BigInt(22); - - var members = await Member.find({ - where: [ - { - guild_id, - last_message_id: LessThan(minId.toString()) - }, - { - last_message_id: IsNull() - } - ], - relations: ["roles"] - }); - console.log(members); - if (!members.length) return []; - - //I'm sure I can do this in the above db query ( and it would probably be better to do so ), but oh well. - if (roles.length && members.length) members = members.filter((user) => user.roles?.some((role) => roles.includes(role.id))); - - const me = await Member.findOneOrFail({ id: user_id, guild_id }, { relations: ["roles"] }); - const myHighestRole = Math.max(...(me.roles?.map((x) => x.position) || [])); - - const guild = await Guild.findOneOrFail({ where: { id: guild_id } }); - - members = members.filter( - (member) => - member.id !== guild.owner_id && //can't kick owner - member.roles?.some( - (role) => - role.position < myHighestRole || //roles higher than me can't be kicked - me.id === guild.owner_id //owner can kick anyone - ) - ); - - return members; -}; - -router.get("/", route({ permission: "KICK_MEMBERS" }), async (req: Request, res: Response) => { - const days = parseInt(req.query.days as string); - - var roles = req.query.include_roles; - if (typeof roles === "string") roles = [roles]; //express will return array otherwise - - const members = await inactiveMembers(req.params.guild_id, req.user_id, days, roles as string[]); - - res.send({ pruned: members.length }); -}); - -export interface PruneSchema { - /** - * @min 0 - */ - days: number; -} - -router.post("/", route({ permission: "KICK_MEMBERS" }), async (req: Request, res: Response) => { - const days = parseInt(req.body.days); - - var roles = req.query.include_roles; - if (typeof roles === "string") roles = [roles]; - - const { guild_id } = req.params; - const members = await inactiveMembers(guild_id, req.user_id, days, roles as string[]); - - await Promise.all(members.map((x) => Member.removeFromGuild(x.id, guild_id))); - - res.send({ purged: members.length }); -}); - -export default router; +import { Router, Request, Response } from "express"; +import { Guild, Member, Snowflake } from "@fosscord/util"; +import { LessThan, IsNull } from "typeorm"; +import { route } from "@fosscord/api"; +const router = Router(); + +//Returns all inactive members, respecting role hierarchy +export const inactiveMembers = async (guild_id: string, user_id: string, days: number, roles: string[] = []) => { + var date = new Date(); + date.setDate(date.getDate() - days); + //Snowflake should have `generateFromTime` method? Or similar? + var minId = BigInt(date.valueOf() - Snowflake.EPOCH) << BigInt(22); + + var members = await Member.find({ + where: [ + { + guild_id, + last_message_id: LessThan(minId.toString()) + }, + { + last_message_id: IsNull() + } + ], + relations: ["roles"] + }); + console.log(members); + if (!members.length) return []; + + //I'm sure I can do this in the above db query ( and it would probably be better to do so ), but oh well. + if (roles.length && members.length) members = members.filter((user) => user.roles?.some((role) => roles.includes(role.id))); + + const me = await Member.findOneOrFail({ id: user_id, guild_id }, { relations: ["roles"] }); + const myHighestRole = Math.max(...(me.roles?.map((x) => x.position) || [])); + + const guild = await Guild.findOneOrFail({ where: { id: guild_id } }); + + members = members.filter( + (member) => + member.id !== guild.owner_id && //can't kick owner + member.roles?.some( + (role) => + role.position < myHighestRole || //roles higher than me can't be kicked + me.id === guild.owner_id //owner can kick anyone + ) + ); + + return members; +}; + +router.get("/", route({ permission: "KICK_MEMBERS" }), async (req: Request, res: Response) => { + const days = parseInt(req.query.days as string); + + var roles = req.query.include_roles; + if (typeof roles === "string") roles = [roles]; //express will return array otherwise + + const members = await inactiveMembers(req.params.guild_id, req.user_id, days, roles as string[]); + + res.send({ pruned: members.length }); +}); + +export interface PruneSchema { + /** + * @min 0 + */ + days: number; +} + +router.post("/", route({ permission: "KICK_MEMBERS" }), async (req: Request, res: Response) => { + const days = parseInt(req.body.days); + + var roles = req.query.include_roles; + if (typeof roles === "string") roles = [roles]; + + const { guild_id } = req.params; + const members = await inactiveMembers(guild_id, req.user_id, days, roles as string[]); + + await Promise.all(members.map((x) => Member.removeFromGuild(x.id, guild_id))); + + res.send({ purged: members.length }); +}); + +export default router; diff --git a/api/src/routes/oauth2/tokens.ts b/api/src/routes/oauth2/tokens.ts index 3657176d..bd284221 100644 --- a/api/src/routes/oauth2/tokens.ts +++ b/api/src/routes/oauth2/tokens.ts @@ -2,8 +2,8 @@ import { Router, Request, Response } from "express"; import { route } from "@fosscord/api"; const router = Router(); -router.get("/",route({}), async (req: Request, res: Response) => { - //TODO +router.get("/", route({}), async (req: Request, res: Response) => { + //TODO res.json([]); }); diff --git a/api/src/routes/store/published-listings/applications/#id/subscription-plans.ts b/api/src/routes/store/published-listings/applications/#id/subscription-plans.ts index 77f949d9..54151ae5 100644 --- a/api/src/routes/store/published-listings/applications/#id/subscription-plans.ts +++ b/api/src/routes/store/published-listings/applications/#id/subscription-plans.ts @@ -6,19 +6,20 @@ const router: Router = Router(); router.get("/", route({}), async (req: Request, res: Response) => { //TODO res.json([ - { - id: "", - name: "", - interval: 1, - interval_count: 1, - tax_inclusive: true, - sku_id: "", - fallback_price: 499, - fallback_currency: "eur", - currency: "eur", - price: 4199, - price_tier: null - }]).status(200); + { + id: "", + name: "", + interval: 1, + interval_count: 1, + tax_inclusive: true, + sku_id: "", + fallback_price: 499, + fallback_currency: "eur", + currency: "eur", + price: 4199, + price_tier: null + } + ]).status(200); }); export default router; diff --git a/api/src/routes/store/published-listings/skus/#sku_id/subscription-plans.ts b/api/src/routes/store/published-listings/skus/#sku_id/subscription-plans.ts index 54c01607..723a5160 100644 --- a/api/src/routes/store/published-listings/skus/#sku_id/subscription-plans.ts +++ b/api/src/routes/store/published-listings/skus/#sku_id/subscription-plans.ts @@ -4,17 +4,134 @@ import { route } from "@fosscord/api"; const router: Router = Router(); const skus = new Map([ - ["521842865731534868", [{"id": "511651856145973248", "name": "Premium Monthly (Legacy)", "interval": 1, "interval_count": 1, "tax_inclusive": true, "sku_id": "521842865731534868", "currency": "usd", "price": 0, "price_tier": null}, {"id": "511651860671627264", "name": "Premium Yearly (Legacy)", "interval": 2, "interval_count": 1, "tax_inclusive": true, "sku_id": "521842865731534868", "currency": "usd", "price": 0, "price_tier": null}]], - ["521846918637420545", [{"id": "511651871736201216", "name": "Premium Classic Monthly", "interval": 1, "interval_count": 1, "tax_inclusive": true, "sku_id": "521846918637420545", "currency": "usd", "price": 0, "price_tier": null}, {"id": "511651876987469824", "name": "Premium Classic Yearly", "interval": 2, "interval_count": 1, "tax_inclusive": true, "sku_id": "521846918637420545", "currency": "usd", "price": 0, "price_tier": null}]], - ["521847234246082599", [{"id": "642251038925127690", "name": "Premium Quarterly", "interval": 1, "interval_count": 3, "tax_inclusive": true, "sku_id": "521847234246082599", "currency": "usd", "price": 0, "price_tier": null}, {"id": "511651880837840896", "name": "Premium Monthly", "interval": 1, "interval_count": 1, "tax_inclusive": true, "sku_id": "521847234246082599", "currency": "usd", "price": 0, "price_tier": null}, {"id": "511651885459963904", "name": "Premium Yearly", "interval": 2, "interval_count": 1, "tax_inclusive": true, "sku_id": "521847234246082599", "currency": "usd", "price": 0, "price_tier": null}]], - ["590663762298667008", [{"id": "590665532894740483", "name": "Server Boost Monthly", "interval": 1, "interval_count": 1, "tax_inclusive": true, "sku_id": "590663762298667008", "discount_price": 0, "currency": "usd", "price": 0, "price_tier": null}, {"id": "590665538238152709", "name": "Server Boost Yearly", "interval": 2, "interval_count": 1, "tax_inclusive": true, "sku_id": "590663762298667008", "discount_price": 0, "currency": "usd", "price": 0, "price_tier": null}]], + [ + "521842865731534868", + [ + { + id: "511651856145973248", + name: "Premium Monthly (Legacy)", + interval: 1, + interval_count: 1, + tax_inclusive: true, + sku_id: "521842865731534868", + currency: "usd", + price: 0, + price_tier: null + }, + { + id: "511651860671627264", + name: "Premium Yearly (Legacy)", + interval: 2, + interval_count: 1, + tax_inclusive: true, + sku_id: "521842865731534868", + currency: "usd", + price: 0, + price_tier: null + } + ] + ], + [ + "521846918637420545", + [ + { + id: "511651871736201216", + name: "Premium Classic Monthly", + interval: 1, + interval_count: 1, + tax_inclusive: true, + sku_id: "521846918637420545", + currency: "usd", + price: 0, + price_tier: null + }, + { + id: "511651876987469824", + name: "Premium Classic Yearly", + interval: 2, + interval_count: 1, + tax_inclusive: true, + sku_id: "521846918637420545", + currency: "usd", + price: 0, + price_tier: null + } + ] + ], + [ + "521847234246082599", + [ + { + id: "642251038925127690", + name: "Premium Quarterly", + interval: 1, + interval_count: 3, + tax_inclusive: true, + sku_id: "521847234246082599", + currency: "usd", + price: 0, + price_tier: null + }, + { + id: "511651880837840896", + name: "Premium Monthly", + interval: 1, + interval_count: 1, + tax_inclusive: true, + sku_id: "521847234246082599", + currency: "usd", + price: 0, + price_tier: null + }, + { + id: "511651885459963904", + name: "Premium Yearly", + interval: 2, + interval_count: 1, + tax_inclusive: true, + sku_id: "521847234246082599", + currency: "usd", + price: 0, + price_tier: null + } + ] + ], + [ + "590663762298667008", + [ + { + id: "590665532894740483", + name: "Server Boost Monthly", + interval: 1, + interval_count: 1, + tax_inclusive: true, + sku_id: "590663762298667008", + discount_price: 0, + currency: "usd", + price: 0, + price_tier: null + }, + { + id: "590665538238152709", + name: "Server Boost Yearly", + interval: 2, + interval_count: 1, + tax_inclusive: true, + sku_id: "590663762298667008", + discount_price: 0, + currency: "usd", + price: 0, + price_tier: null + } + ] + ] ]); router.get("/", route({}), async (req: Request, res: Response) => { // TODO: add the ability to add custom const { sku_id } = req.params; - - if(!skus.has(sku_id)) { + + if (!skus.has(sku_id)) { console.log(`Request for invalid SKU ${sku_id}! Please report this!`); res.sendStatus(404); } else { diff --git a/api/src/routes/users/@me/activities/statistics/applications.ts b/api/src/routes/users/@me/activities/statistics/applications.ts index 834be35c..014df8af 100644 --- a/api/src/routes/users/@me/activities/statistics/applications.ts +++ b/api/src/routes/users/@me/activities/statistics/applications.ts @@ -5,7 +5,7 @@ const router = Router(); router.get("/", route({}), (req: Request, res: Response) => { // TODO: - res.json([]).status(200) + res.json([]).status(200); }); export default router; diff --git a/api/src/routes/users/@me/billing/payment-sources.ts b/api/src/routes/users/@me/billing/payment-sources.ts index 834be35c..014df8af 100644 --- a/api/src/routes/users/@me/billing/payment-sources.ts +++ b/api/src/routes/users/@me/billing/payment-sources.ts @@ -5,7 +5,7 @@ const router = Router(); router.get("/", route({}), (req: Request, res: Response) => { // TODO: - res.json([]).status(200) + res.json([]).status(200); }); export default router; diff --git a/api/src/routes/users/@me/channels.ts b/api/src/routes/users/@me/channels.ts index b5782eca..78f531e1 100644 --- a/api/src/routes/users/@me/channels.ts +++ b/api/src/routes/users/@me/channels.ts @@ -5,8 +5,11 @@ import { route } from "@fosscord/api"; const router: Router = Router(); router.get("/", route({}), async (req: Request, res: Response) => { - const recipients = await Recipient.find({ where: { user_id: req.user_id, closed: false }, relations: ["channel", "channel.recipients"] }); - res.json(await Promise.all(recipients.map(r => DmChannelDTO.from(r.channel, [req.user_id])))); + const recipients = await Recipient.find({ + where: { user_id: req.user_id, closed: false }, + relations: ["channel", "channel.recipients"] + }); + res.json(await Promise.all(recipients.map((r) => DmChannelDTO.from(r.channel, [req.user_id])))); }); export interface DmChannelCreateSchema { diff --git a/api/src/routes/users/@me/email-settings.ts b/api/src/routes/users/@me/email-settings.ts index 2d961a0e..3114984e 100644 --- a/api/src/routes/users/@me/email-settings.ts +++ b/api/src/routes/users/@me/email-settings.ts @@ -4,14 +4,15 @@ import { route } from "@fosscord/api"; const router = Router(); router.get("/", route({}), (req: Request, res: Response) => { - // TODO: + // TODO: res.json({ - categories: { - social: true, - communication: true, - tips: false, - updates_and_announcements: false, - recommendations_and_events: false }, + categories: { + social: true, + communication: true, + tips: false, + updates_and_announcements: false, + recommendations_and_events: false + }, initialized: false }).status(200); }); diff --git a/api/src/start.ts b/api/src/start.ts index d799c190..717e1b8f 100644 --- a/api/src/start.ts +++ b/api/src/start.ts @@ -7,7 +7,7 @@ config(); import { FosscordServer } from "./Server"; import cluster from "cluster"; import os from "os"; -const cores = Number(process.env.threads) || os.cpus().length; +const cores = Number(process.env.THREADS) || os.cpus().length; if (cluster.isMaster && process.env.NODE_ENV == "production") { console.log(`Primary ${process.pid} is running`); diff --git a/api/src/util/Message.ts b/api/src/util/Message.ts index d14d3aa2..4ba93edd 100644 --- a/api/src/util/Message.ts +++ b/api/src/util/Message.ts @@ -33,7 +33,7 @@ const DEFAULT_FETCH_OPTIONS: any = { redirect: "follow", follow: 1, headers: { - "user-agent": "Mozilla/5.0 (compatible; Discordbot/2.0; +https://discordapp.com)" + "user-agent": "Mozilla/5.0 (compatible; Fosscord/1.0; +https://github.com/fosscord/fosscord)" }, size: 1024 * 1024 * 1, compress: true, @@ -184,7 +184,7 @@ export async function sendMessage(opts: MessageOptions) { const message = await handleMessage({ ...opts, timestamp: new Date() }); await Promise.all([ - message.save(), + Message.insert(message), emitEvent({ event: "MESSAGE_CREATE", channel_id: opts.channel_id, data: message.toJSON() } as MessageCreateEvent) ]); diff --git a/api/src/util/ipAddress.ts b/api/src/util/ipAddress.ts index c6239426..13cc9603 100644 --- a/api/src/util/ipAddress.ts +++ b/api/src/util/ipAddress.ts @@ -81,18 +81,15 @@ export function getIpAdress(req: Request): string { return req.headers[Config.get().security.forwadedFor] || req.socket.remoteAddress; } - export function distanceBetweenLocations(loc1: any, loc2: any): number { return distanceBetweenCoords(loc1.latitude, loc1.longitude, loc2.latitude, loc2.longitude); } //Haversine function function distanceBetweenCoords(lat1: number, lon1: number, lat2: number, lon2: number) { - const p = 0.017453292519943295; // Math.PI / 180 + const p = 0.017453292519943295; // Math.PI / 180 const c = Math.cos; - const a = 0.5 - c((lat2 - lat1) * p) / 2 + - c(lat1 * p) * c(lat2 * p) * - (1 - c((lon2 - lon1) * p)) / 2; + const a = 0.5 - c((lat2 - lat1) * p) / 2 + (c(lat1 * p) * c(lat2 * p) * (1 - c((lon2 - lon1) * p))) / 2; return 12742 * Math.asin(Math.sqrt(a)); // 2 * R; R = 6371 km -} \ No newline at end of file +} diff --git a/bundle/.prettierrc b/bundle/.prettierrc new file mode 100644 index 00000000..6a48eb4a --- /dev/null +++ b/bundle/.prettierrc @@ -0,0 +1,4 @@ +{ + "useTabs": true, + "tabWidth": 4 +} diff --git a/bundle/package-lock.json b/bundle/package-lock.json index 4201b230..2a743b78 100644 Binary files a/bundle/package-lock.json and b/bundle/package-lock.json differ diff --git a/bundle/package.json b/bundle/package.json index e47d8536..f55599bf 100644 --- a/bundle/package.json +++ b/bundle/package.json @@ -65,6 +65,7 @@ "assert": "^1.5.0", "async-exit-hook": "^2.0.1", "bcrypt": "^5.0.1", + "better-sqlite3": "^7.4.3", "body-parser": "^1.19.0", "btoa": "^1.2.1", "cheerio": "^1.0.0-rc.10", @@ -73,7 +74,7 @@ "express": "^4.17.1", "express-async-errors": "^3.1.1", "file-type": "^16.5.0", - "form-data": "^3.0.0", + "form-data": "^4.0.0", "fs-extra": "^10.0.0", "i18next": "^19.9.2", "i18next-http-middleware": "^3.1.3", @@ -91,6 +92,7 @@ "node-os-utils": "^1.3.5", "patch-package": "^6.4.7", "pg": "^8.7.1", + "proxy-agent": "^5.0.0", "reflect-metadata": "^0.1.13", "sqlite3": "^5.0.2", "supertest": "^6.1.6", diff --git a/bundle/scripts/build.js b/bundle/scripts/build.js index dbc305a9..ad00d47f 100644 --- a/bundle/scripts/build.js +++ b/bundle/scripts/build.js @@ -18,15 +18,24 @@ if (argv.includes("clean")) { }); } -fse.copySync(path.join(__dirname, "..", "..", "api", "assets"), path.join(__dirname, "..", "dist", "api", "assets")); +fse.copySync( + path.join(__dirname, "..", "..", "api", "assets"), + path.join(__dirname, "..", "dist", "api", "assets") +); fse.copySync( path.join(__dirname, "..", "..", "api", "client_test"), path.join(__dirname, "..", "dist", "api", "client_test") ); -fse.copySync(path.join(__dirname, "..", "..", "api", "locales"), path.join(__dirname, "..", "dist", "api", "locales")); +fse.copySync( + path.join(__dirname, "..", "..", "api", "locales"), + path.join(__dirname, "..", "dist", "api", "locales") +); dirs.forEach((a) => { fse.copySync("../" + a + "/src", "dist/" + a + "/src"); - if (verbose) console.log(`Copied ${"../" + a + "/dist"} -> ${"dist/" + a + "/src"}!`); + if (verbose) + console.log( + `Copied ${"../" + a + "/dist"} -> ${"dist/" + a + "/src"}!` + ); }); console.log("Copying src files done"); @@ -35,7 +44,14 @@ console.log("Compiling src files ..."); console.log( execSync( 'node "' + - path.join(__dirname, "..", "node_modules", "typescript", "lib", "tsc.js") + + path.join( + __dirname, + "..", + "node_modules", + "typescript", + "lib", + "tsc.js" + ) + '" -p "' + path.join(__dirname, "..") + '"', diff --git a/bundle/scripts/install.js b/bundle/scripts/install.js index 3008b4c5..db9dadbc 100644 --- a/bundle/scripts/install.js +++ b/bundle/scripts/install.js @@ -5,10 +5,19 @@ const parts = ["api", "util", "cdn", "gateway"]; const bundle = require("../package.json"); for (const part of parts) { - const { devDependencies, dependencies } = require(path.join("..", "..", part, "package.json")); + const { devDependencies, dependencies } = require(path.join( + "..", + "..", + part, + "package.json" + )); bundle.devDependencies = { ...bundle.devDependencies, ...devDependencies }; bundle.dependencies = { ...bundle.dependencies, ...dependencies }; delete bundle.dependencies["@fosscord/util"]; } -fs.writeFileSync(path.join(__dirname, "..", "package.json"), JSON.stringify(bundle, null, "\t"), { encoding: "utf8" }); +fs.writeFileSync( + path.join(__dirname, "..", "package.json"), + JSON.stringify(bundle, null, "\t"), + { encoding: "utf8" } +); diff --git a/bundle/src/Server.ts b/bundle/src/Server.ts index d541735f..e461ec5f 100644 --- a/bundle/src/Server.ts +++ b/bundle/src/Server.ts @@ -12,7 +12,7 @@ import { Config, initDatabase } from "@fosscord/util"; const app = express(); const server = http.createServer(); const port = Number(process.env.PORT) || 3001; -const production = false; +const production = process.env.NODE_ENV == "development" ? false : true; server.on("request", app); // @ts-ignore @@ -23,6 +23,7 @@ const cdn = new CDNServer({ server, port, production, app }); const gateway = new Gateway.Server({ server, port, production }); async function main() { + server.listen(port); await initDatabase(); await Config.init(); // only set endpointPublic, if not already set diff --git a/bundle/src/start.ts b/bundle/src/start.ts index 8e7c3129..4445fde6 100644 --- a/bundle/src/start.ts +++ b/bundle/src/start.ts @@ -1,6 +1,6 @@ // process.env.MONGOMS_DEBUG = "true"; import "reflect-metadata"; -import cluster from "cluster"; +import cluster, { Worker } from "cluster"; import os from "os"; import { red, bold, yellow, cyan } from "nanocolors"; import { initStats } from "./stats"; @@ -8,20 +8,21 @@ import { config } from "dotenv"; config(); import { execSync } from "child_process"; -// TODO: add tcp socket event transmission -const cores = 1 || Number(process.env.threads) || os.cpus().length; +// TODO: add socket event transmission +let cores = Number(process.env.THREADS) || os.cpus().length; -function getCommitOrFail() { - try { - return execSync("git rev-parse HEAD").toString().trim(); - } catch (e) { - return null; +if (cluster.isMaster) { + function getCommitOrFail() { + try { + return execSync("git rev-parse HEAD").toString().trim(); + } catch (e) { + return null; + } } -} -const commit = getCommitOrFail(); + const commit = getCommitOrFail(); -console.log( - bold(` + console.log( + bold(` ███████╗ ██████╗ ███████╗███████╗ ██████╗ ██████╗ ██████╗ ██████╗ ██╔════╝██╔═══██╗██╔════╝██╔════╝██╔════╝██╔═══██╗██╔══██╗██╔══██╗ █████╗ ██║ ██║███████╗███████╗██║ ██║ ██║██████╔╝██║ ██║ @@ -38,32 +39,44 @@ console.log( )} Current commit: ${ - commit !== null - ? `${cyan(commit)} (${yellow(commit.slice(0, 7))})` - : "Unknown (Git cannot be found)" - } -`) -); - -if (commit == null) - console.log(yellow(`Warning: Git is not installed or not in PATH.`)); - -if (cluster.isMaster && !process.env.masterStarted) { - process.env.masterStarted = "true"; - - (async () => { - initStats(); - - if (cores === 1) { - require("./Server"); - return; + commit !== null + ? `${cyan(commit)} (${yellow(commit.slice(0, 7))})` + : "Unknown (Git cannot be found)" } +`) + ); + + if (commit == null) { + console.log(yellow(`Warning: Git is not installed or not in PATH.`)); + } + + initStats(); + + console.log(`[Process] starting with ${cores} threads`); + + if (cores === 1) { + require("./Server"); + } else { + process.env.EVENT_TRANSMISSION = "process"; // Fork workers. for (let i = 0; i < cores; i++) { - cluster.fork(); + // Delay each worker start if using sqlite database to prevent locking it + let delay = process.env.DATABASE?.includes("://") ? 0 : i * 1000; + setTimeout(() => { + cluster.fork(); + console.log(`[Process] worker ${i} started.`); + }, delay); } + cluster.on("message", (sender: Worker, message: any) => { + for (const id in cluster.workers) { + const worker = cluster.workers[id]; + if (worker === sender || !worker) continue; + worker.send(message); + } + }); + cluster.on("exit", (worker: any, code: any, signal: any) => { console.log( `[Worker] ${red( @@ -72,7 +85,7 @@ if (cluster.isMaster && !process.env.masterStarted) { ); cluster.fork(); }); - })(); + } } else { require("./Server"); } diff --git a/bundle/src/stats.ts b/bundle/src/stats.ts index 7928de89..9bd9131e 100644 --- a/bundle/src/stats.ts +++ b/bundle/src/stats.ts @@ -15,22 +15,23 @@ export function initStats() { ); } - setInterval(async () => { - const [cpuUsed, memory, network] = await Promise.all([ - osu.cpu.usage(), - osu.mem.info(), - osu.netstat.inOut(), - ]); - var networkUsage = ""; - if (typeof network === "object") { - networkUsage = `| [Network]: in ${network.total.inputMb}mb | out ${network.total.outputMb}mb`; - } + // TODO: node-os-utils might have a memory leak, more investigation needed + // TODO: doesn't work if spawned with multiple threads + // setInterval(async () => { + // const [cpuUsed, memory, network] = await Promise.all([ + // osu.cpu.usage(), + // osu.mem.info(), + // osu.netstat.inOut(), + // ]); + // var networkUsage = ""; + // if (typeof network === "object") { + // networkUsage = `| [Network]: in ${network.total.inputMb}mb | out ${network.total.outputMb}mb`; + // } - console.log( - `[CPU] ${cpuUsed.toPrecision(3)}% | [Memory] ${Math.round( - process.memoryUsage().rss / 1024 / 1024 - )}mb/${memory.totalMemMb.toFixed(0)}mb ${networkUsage}` - ); - // TODO: node-os-utils might have a memory leak, more investigation needed - }, 1000 * 60 * 5); + // console.log( + // `[CPU] ${cpuUsed.toPrecision(3)}% | [Memory] ${Math.round( + // process.memoryUsage().rss / 1024 / 1024 + // )}mb/${memory.totalMemMb.toFixed(0)}mb ${networkUsage}` + // ); + // }, 1000 * 60 * 5); } diff --git a/bundle/tsconfig.json b/bundle/tsconfig.json index 4e8db342..58c61132 100644 --- a/bundle/tsconfig.json +++ b/bundle/tsconfig.json @@ -8,7 +8,9 @@ "incremental": false /* Enable incremental compilation */, "target": "ES6" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */, "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */, - "lib": ["ES2021"] /* Specify library files to be included in the compilation. */, + "lib": [ + "ES2021" + ] /* Specify library files to be included in the compilation. */, "allowJs": true /* Allow javascript files to be compiled. */, "checkJs": true /* Report errors in .js files. */, // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ @@ -46,7 +48,9 @@ // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ // "typeRoots": [], /* List of folders to include type definitions from. */ - "types": ["node"] /* Type declaration files to be included in compilation. */, + "types": [ + "node" + ] /* Type declaration files to be included in compilation. */, // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ diff --git a/cdn/Dockerfile b/cdn/Dockerfile index bb73884a..d9ad78f4 100644 --- a/cdn/Dockerfile +++ b/cdn/Dockerfile @@ -4,5 +4,4 @@ COPY package.json . RUN npm install COPY . . EXPOSE 3003 -RUN npm run build -CMD ["node", "dist/start.js"] \ No newline at end of file +CMD ["node", "dist/"] \ No newline at end of file diff --git a/cdn/README.md b/cdn/README.md index 6cd6186a..7d8e99b0 100644 --- a/cdn/README.md +++ b/cdn/README.md @@ -1,20 +1,26 @@ # Fosscord-CDN + CDN for Fosscord ## Run localy: + ``` npm i node dist/ ``` ## Endpoints: + ### POST `/attachments/` + ``` Content-Type: form-data attachment: File (binary-data) ``` + ##### Returns: + ``` { "success": boolean, // true @@ -23,20 +29,28 @@ attachment: File (binary-data) "filename": string // "lakdoiauej.png" } ``` + ### GET `/attachments//` + ``` requests image from database with given and ``` + ##### Returns: + ``` Content-Type: image/ Image ``` + ### DELETE `/attachments//` + ``` deletes database entry ``` + ##### Returns: + ``` Content-Type: application/json @@ -49,7 +63,8 @@ Content-Type: application/json
_(endpoints for crawler):_ -### POST `/external` + +### POST `/external` ``` requests crawling of `og:`metadata and the download of the `og:image` property @@ -59,7 +74,9 @@ Content-Type: application/json body: {"url": URL} // "https://discord.com" ``` + ##### Returns: + ``` Content-Type: application/json @@ -72,17 +89,23 @@ Content-Type: application/json "ogType": string // "website" } ``` + ### GET `/external//` -- requests cached crawled image + +- requests cached crawled image + ``` url-params: :id // aHR0cHM6Ly9kaXNjb3JkLmNvbQ== :filename // discord.png ``` + ``` /external/aHR0cHM6Ly9kaXNjb3JkLmNvbQ==/discord.png ``` + ##### Returns: + ``` Content-Type: image/ Image diff --git a/cdn/package-lock.json b/cdn/package-lock.json index 74e1ce52..193c4820 100644 Binary files a/cdn/package-lock.json and b/cdn/package-lock.json differ diff --git a/cdn/package.json b/cdn/package.json index 852bfcdc..fec43785 100644 --- a/cdn/package.json +++ b/cdn/package.json @@ -5,10 +5,9 @@ "main": "dist/index.js", "types": "src/index.ts", "scripts": { - "postinstall": "ts-patch install -s", "test": "npm run build && jest --coverage ./tests", "build": "npx tsc -p .", - "start": "npm run build && node dist/start.js" + "start": "node dist/start.js" }, "repository": { "type": "git", @@ -46,12 +45,13 @@ "express": "^4.17.1", "express-async-errors": "^3.1.1", "file-type": "^16.5.0", + "form-data": "^4.0.0", "fs-extra": "^10.0.0", "image-size": "^1.0.0", "jest": "^27.0.6", "lambert-db": "^1.2.3", - "lambert-server": "^1.2.11", - "missing-native-js-functions": "^1.2.18", + "lambert-server": "^1.2.12", + "missing-native-js-functions": "^1.2.17", "multer": "^1.4.2", "nanocolors": "^0.2.12", "node-fetch": "^2.6.1", diff --git a/cdn/src/util/S3Storage.ts b/cdn/src/util/S3Storage.ts index df5bc19c..c4066817 100644 --- a/cdn/src/util/S3Storage.ts +++ b/cdn/src/util/S3Storage.ts @@ -5,30 +5,30 @@ import { Storage } from "./Storage"; const readableToBuffer = (readable: Readable): Promise => new Promise((resolve, reject) => { const chunks: Buffer[] = []; - readable.on('data', chunk => chunks.push(chunk)); - readable.on('error', reject); - readable.on('end', () => resolve(Buffer.concat(chunks))); + readable.on("data", (chunk) => chunks.push(chunk)); + readable.on("error", reject); + readable.on("end", () => resolve(Buffer.concat(chunks))); }); export class S3Storage implements Storage { public constructor( private client: S3, private bucket: string, - private basePath?: string, + private basePath?: string ) {} /** * Always return a string, to ensure consistency. */ get bucketBasePath() { - return this.basePath ?? ''; + return this.basePath ?? ""; } async set(path: string, data: Buffer): Promise { await this.client.putObject({ Bucket: this.bucket, Key: `${this.bucketBasePath}${path}`, - Body: data + Body: data, }); } @@ -36,15 +36,15 @@ export class S3Storage implements Storage { try { const s3Object = await this.client.getObject({ Bucket: this.bucket, - Key: `${this.bucketBasePath ?? ''}${path}` + Key: `${this.bucketBasePath ?? ""}${path}`, }); if (!s3Object.Body) return null; const body = s3Object.Body; - return await readableToBuffer( body); - } catch(err) { + return await readableToBuffer(body); + } catch (err) { console.error(`[CDN] Unable to get S3 object at path ${path}.`); console.error(err); return null; @@ -54,7 +54,7 @@ export class S3Storage implements Storage { async delete(path: string): Promise { await this.client.deleteObject({ Bucket: this.bucket, - Key: `${this.bucketBasePath}${path}` + Key: `${this.bucketBasePath}${path}`, }); } } diff --git a/cdn/src/util/Storage.ts b/cdn/src/util/Storage.ts index 3332f21c..f45fe44a 100644 --- a/cdn/src/util/Storage.ts +++ b/cdn/src/util/Storage.ts @@ -2,7 +2,7 @@ import { FileStorage } from "./FileStorage"; import path from "path"; import fse from "fs-extra"; import { bgCyan, black } from "nanocolors"; -import { S3 } from '@aws-sdk/client-s3'; +import { S3 } from "@aws-sdk/client-s3"; import { S3Storage } from "./S3Storage"; process.cwd(); @@ -27,17 +27,20 @@ if (process.env.STORAGE_PROVIDER === "file" || !process.env.STORAGE_PROVIDER) { storage = new FileStorage(); } else if (process.env.STORAGE_PROVIDER === "s3") { - const - region = process.env.STORAGE_REGION, + const region = process.env.STORAGE_REGION, bucket = process.env.STORAGE_BUCKET; if (!region) { - console.error(`[CDN] You must provide a region when using the S3 storage provider.`); + console.error( + `[CDN] You must provide a region when using the S3 storage provider.` + ); process.exit(1); } if (!bucket) { - console.error(`[CDN] You must provide a bucket when using the S3 storage provider.`); + console.error( + `[CDN] You must provide a bucket when using the S3 storage provider.` + ); process.exit(1); } @@ -45,8 +48,10 @@ if (process.env.STORAGE_PROVIDER === "file" || !process.env.STORAGE_PROVIDER) { let location = process.env.STORAGE_LOCATION; if (!location) { - console.warn(`[CDN] STORAGE_LOCATION unconfigured for S3 provider, defaulting to the bucket root...`); - location = undefined; + console.warn( + `[CDN] STORAGE_LOCATION unconfigured for S3 provider, defaulting to the bucket root...` + ); + location = undefined; } const client = new S3({ region }); diff --git a/cdn/tests/cdn_endpoints.test.js b/cdn/tests/cdn_endpoints.test.js index a133d0dd..8cf16748 100644 --- a/cdn/tests/cdn_endpoints.test.js +++ b/cdn/tests/cdn_endpoints.test.js @@ -11,7 +11,12 @@ if (!process.env.STORAGE_PROVIDER) process.env.STORAGE_PROVIDER = "file"; if (process.env.STORAGE_PROVIDER === "file") { if (process.env.STORAGE_LOCATION) { if (!process.env.STORAGE_LOCATION.startsWith("/")) { - process.env.STORAGE_LOCATION = path.join(__dirname, "..", process.env.STORAGE_LOCATION, "/"); + process.env.STORAGE_LOCATION = path.join( + __dirname, + "..", + process.env.STORAGE_LOCATION, + "/" + ); } } else { process.env.STORAGE_LOCATION = path.join(__dirname, "..", "files", "/"); @@ -67,7 +72,9 @@ describe("/attachments", () => { .set({ signature: Config.get().security.requestSignature }) .attach("file", __dirname + "/antman.jpg"); expect(response.statusCode).toBe(200); - expect(response.headers["content-type"]).toEqual(expect.stringContaining("json")); + expect(response.headers["content-type"]).toEqual( + expect.stringContaining("json") + ); expect(response.body.url).toBeDefined(); }); }); @@ -79,9 +86,11 @@ describe("/attachments", () => { .post("/attachments/123456789") .set({ signature: Config.get().security.requestSignature }) .attach("file", __dirname + "/antman.jpg"); - request.get(response.body.url.replace("http://localhost:3003", "")).then((x) => { - expect(x.statusCode).toBe(200); - }); + request + .get(response.body.url.replace("http://localhost:3003", "")) + .then((x) => { + expect(x.statusCode).toBe(200); + }); }); }); }); @@ -92,9 +101,13 @@ describe("/attachments", () => { .post("/attachments/123456789") .set({ signature: Config.get().security.requestSignature }) .attach("file", __dirname + "/antman.jpg"); - request.delete(response.body.url.replace("http://localhost:3003", "")).then((x) => { - expect(x.body.success).toBeDefined(); - }); + request + .delete( + response.body.url.replace("http://localhost:3003", "") + ) + .then((x) => { + expect(x.body.success).toBeDefined(); + }); }); }); }); @@ -123,7 +136,9 @@ describe("/avatars", () => { .set({ signature: Config.get().security.requestSignature }) .attach("file", __dirname + "/antman.jpg"); expect(response.statusCode).toBe(200); - expect(response.headers["content-type"]).toEqual(expect.stringContaining("json")); + expect(response.headers["content-type"]).toEqual( + expect.stringContaining("json") + ); expect(response.body.url).toBeDefined(); }); }); @@ -135,9 +150,11 @@ describe("/avatars", () => { .post("/avatars/123456789") .set({ signature: Config.get().security.requestSignature }) .attach("file", __dirname + "/antman.jpg"); - request.get(response.body.url.replace("http://localhost:3003", "")).then((x) => { - expect(x.statusCode).toBe(200); - }); + request + .get(response.body.url.replace("http://localhost:3003", "")) + .then((x) => { + expect(x.statusCode).toBe(200); + }); }); }); }); @@ -148,9 +165,13 @@ describe("/avatars", () => { .post("/avatars/123456789") .set({ signature: Config.get().security.requestSignature }) .attach("file", __dirname + "/antman.jpg"); - request.delete(response.body.url.replace("http://localhost:3003", "")).then((x) => { - expect(x.body.success).toBeDefined(); - }); + request + .delete( + response.body.url.replace("http://localhost:3003", "") + ) + .then((x) => { + expect(x.body.success).toBeDefined(); + }); }); }); }); @@ -177,9 +198,13 @@ describe("/external", () => { const response = await request .post("/external") .set({ signature: Config.get().security.requestSignature }) - .send({ url: "https://i.ytimg.com/vi_webp/TiXzhQr5AUc/mqdefault.webp" }); + .send({ + url: "https://i.ytimg.com/vi_webp/TiXzhQr5AUc/mqdefault.webp", + }); expect(response.statusCode).toBe(200); - expect(response.headers["content-type"]).toEqual(expect.stringContaining("json")); + expect(response.headers["content-type"]).toEqual( + expect.stringContaining("json") + ); expect(response.body.id).toBeDefined(); }); }); @@ -201,7 +226,9 @@ describe("/external", () => { let response = await request .post("/external") .set({ signature: Config.get().security.requestSignature }) - .send({ url: "https://i.ytimg.com/vi_webp/TiXzhQr5AUc/mqdefault.webp" }); + .send({ + url: "https://i.ytimg.com/vi_webp/TiXzhQr5AUc/mqdefault.webp", + }); request.get(`external/${response.body.id}`).then((x) => { expect(x.statusCode).toBe(200); }); diff --git a/cdn/tsconfig.json b/cdn/tsconfig.json index 249dffff..64ab18f4 100644 --- a/cdn/tsconfig.json +++ b/cdn/tsconfig.json @@ -7,7 +7,10 @@ "incremental": true /* Enable incremental compilation */, "target": "ES6" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */, "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */, - "lib": ["ES2015", "dom"] /* Specify library files to be included in the compilation. */, + "lib": [ + "ES2015", + "dom" + ] /* Specify library files to be included in the compilation. */, "allowJs": true /* Allow javascript files to be compiled. */, "checkJs": true /* Report errors in .js files. */, // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ @@ -48,7 +51,9 @@ // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ // "typeRoots": [], /* List of folders to include type definitions from. */ - "types": ["node"] /* Type declaration files to be included in compilation. */, + "types": [ + "node" + ] /* Type declaration files to be included in compilation. */, // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ diff --git a/crowdin.yml b/crowdin.yml new file mode 100644 index 00000000..a6330566 --- /dev/null +++ b/crowdin.yml @@ -0,0 +1,3 @@ +files: + - source: /api/locales/en/*.json + translation: /api/locales/%two_letters_code%/%original_file_name% diff --git a/docker-compose.yml b/docker-compose.yml index 5861e12f..3c03220c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,24 +1,7 @@ version: "3" services: - db: - hostname: fosscord_db - image: mongo:latest - volumes: - - ./db:/data/db - restart: unless-stopped - api: - hostname: fosscord_api - image: fosscord/api - depends_on: - - db - ports: - - 3001:3001 - env_file: ./.docker/env - gateway: - hostname: fosscord_gateway - image: fosscord/gateway - depends_on: - - db - ports: - - 3002:3002 - env_file: ./.docker/env \ No newline at end of file + server: + image: fosscord/server + build: . + ports: + - 3001:3001 diff --git a/fosscord-server.code-workspace b/fosscord-server.code-workspace index 645dcd76..e618b7f0 100644 --- a/fosscord-server.code-workspace +++ b/fosscord-server.code-workspace @@ -26,4 +26,4 @@ } ], "settings": {} -} \ No newline at end of file +} diff --git a/gateway/.github/FUNDING.yml b/gateway/.github/FUNDING.yml index f76b9015..43f3b63b 100644 --- a/gateway/.github/FUNDING.yml +++ b/gateway/.github/FUNDING.yml @@ -1 +1 @@ -open_collective: fosscord \ No newline at end of file +open_collective: fosscord diff --git a/gateway/package-lock.json b/gateway/package-lock.json index 4dbfbc49..a9813b6f 100644 Binary files a/gateway/package-lock.json and b/gateway/package-lock.json differ diff --git a/gateway/package.json b/gateway/package.json index c7db2160..e02a0000 100644 --- a/gateway/package.json +++ b/gateway/package.json @@ -33,6 +33,7 @@ "lambert-server": "^1.2.11", "missing-native-js-functions": "^1.2.18", "node-fetch": "^2.6.1", + "proxy-agent": "^5.0.0", "typeorm": "^0.2.37", "ws": "^7.4.2" }, diff --git a/gateway/src/listener/listener.ts b/gateway/src/listener/listener.ts index 79659a1f..060de65b 100644 --- a/gateway/src/listener/listener.ts +++ b/gateway/src/listener/listener.ts @@ -117,7 +117,7 @@ export async function setupListener(this: WebSocket) { // TODO: only subscribe for events that are in the connection intents async function consume(this: WebSocket, opts: EventOpts) { const { data, event } = opts; - const id = data.id as string; + let id = data.id as string; const permission = this.permissions[id] || new Permissions("ADMINISTRATOR"); // default permission for dm const consumer = consume.bind(this); @@ -138,6 +138,10 @@ async function consume(this: WebSocket, opts: EventOpts) { this.listen_options ); break; + case "GUILD_MEMBER_REMOVE": + if (!this.member_events[data.user.id]) break; + this.member_events[data.user.id](); + break; case "RELATIONSHIP_REMOVE": case "CHANNEL_DELETE": case "GUILD_DELETE": @@ -149,9 +153,18 @@ async function consume(this: WebSocket, opts: EventOpts) { !permission .overwriteChannel(data.permission_overwrites) .has("VIEW_CHANNEL") - ) + ) { return; - //No break needed here, we need to call the listenEvent function below + } + this.events[id] = await listenEvent(id, consumer, listenOpts); + break; + case "RELATIONSHIP_ADD": + this.events[data.user.id] = await listenEvent( + data.user.id, + handlePresenceUpdate.bind(this), + this.listen_options + ); + break; case "GUILD_CREATE": this.events[id] = await listenEvent(id, consumer, listenOpts); break; diff --git a/gateway/src/opcodes/LazyRequest.ts b/gateway/src/opcodes/LazyRequest.ts index c304dfe7..2156070f 100644 --- a/gateway/src/opcodes/LazyRequest.ts +++ b/gateway/src/opcodes/LazyRequest.ts @@ -1,11 +1,4 @@ -import { - EVENTEnum, - EventOpts, - getPermission, - listenEvent, - Member, - Role, -} from "@fosscord/util"; +import { getPermission, listenEvent, Member, Role } from "@fosscord/util"; import { LazyRequest } from "../schema/LazyRequest"; import { Send } from "../util/Send"; import { OPCODES } from "../util/Constants"; @@ -47,7 +40,7 @@ async function getMembers(guild_id: string, range: [number, number]) { const member_roles = members .map((m) => m.roles) .flat() - .unique((r) => r.id); + .unique((r: Role) => r.id); for (const role of member_roles) { // @ts-ignore diff --git a/gateway/src/util/SessionUtils.ts b/gateway/src/util/SessionUtils.ts index c66c7e76..bf854042 100644 --- a/gateway/src/util/SessionUtils.ts +++ b/gateway/src/util/SessionUtils.ts @@ -7,5 +7,7 @@ export function genVoiceToken() { } function genRanHex(size: number) { - return [...Array(size)].map(() => Math.floor(Math.random() * 16).toString(16)).join(""); + return [...Array(size)] + .map(() => Math.floor(Math.random() * 16).toString(16)) + .join(""); } diff --git a/gateway/tsconfig.json b/gateway/tsconfig.json index b6ae9455..5ecb21e1 100644 --- a/gateway/tsconfig.json +++ b/gateway/tsconfig.json @@ -8,7 +8,11 @@ "incremental": true /* Enable incremental compilation */, "target": "ES2020" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */, "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */, - "lib": ["ES2015", "ES2020.BigInt", "DOM"] /* Specify library files to be included in the compilation. */, + "lib": [ + "ES2015", + "ES2020.BigInt", + "DOM" + ] /* Specify library files to be included in the compilation. */, "allowJs": true /* Allow javascript files to be compiled. */, "checkJs": true /* Report errors in .js files. */, // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ @@ -48,7 +52,9 @@ // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ // "typeRoots": [], /* List of folders to include type definitions from. */ - "types": ["node"] /* Type declaration files to be included in compilation. */, + "types": [ + "node" + ] /* Type declaration files to be included in compilation. */, // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ diff --git a/rtc/config.json b/rtc/config.json index 9e26dfee..0967ef42 100644 --- a/rtc/config.json +++ b/rtc/config.json @@ -1 +1 @@ -{} \ No newline at end of file +{} diff --git a/rtc/package-lock.json b/rtc/package-lock.json deleted file mode 100644 index f39aac1c..00000000 Binary files a/rtc/package-lock.json and /dev/null differ diff --git a/rtc/package.json b/rtc/package.json deleted file mode 100644 index 0967ef42..00000000 --- a/rtc/package.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/util/package-lock.json b/util/package-lock.json index 0348b5d5..c6f2ed6f 100644 Binary files a/util/package-lock.json and b/util/package-lock.json differ diff --git a/util/package.json b/util/package.json index 5692913d..0b8423a5 100644 --- a/util/package.json +++ b/util/package.json @@ -39,6 +39,8 @@ }, "dependencies": { "amqplib": "^0.8.0", + "better-sqlite3": "^7.4.3", + "form-data": "^4.0.0", "jsonwebtoken": "^8.5.1", "lambert-server": "^1.2.12", "missing-native-js-functions": "^1.2.18", @@ -47,8 +49,8 @@ "node-fetch": "^2.6.1", "patch-package": "^6.4.7", "pg": "^8.7.1", + "proxy-agent": "^5.0.0", "reflect-metadata": "^0.1.13", - "sqlite3": "^5.0.2", "typeorm": "^0.2.38", "typescript": "^4.4.2", "typescript-json-schema": "^0.50.1" diff --git a/util/src/dtos/DmChannelDTO.ts b/util/src/dtos/DmChannelDTO.ts index 8b7a18fd..226b2f9d 100644 --- a/util/src/dtos/DmChannelDTO.ts +++ b/util/src/dtos/DmChannelDTO.ts @@ -12,24 +12,30 @@ export class DmChannelDTO { type: number; static async from(channel: Channel, excluded_recipients: string[] = [], origin_channel_id?: string) { - const obj = new DmChannelDTO() - obj.icon = channel.icon || null - obj.id = channel.id - obj.last_message_id = channel.last_message_id || null - obj.name = channel.name || null - obj.origin_channel_id = origin_channel_id || null - obj.owner_id = channel.owner_id - obj.type = channel.type - obj.recipients = (await Promise.all(channel.recipients!.filter(r => !excluded_recipients.includes(r.user_id)).map(async r => { - return await User.findOneOrFail({ where: { id: r.user_id }, select: PublicUserProjection }) - }))).map(u => new MinimalPublicUserDTO(u)) - return obj + const obj = new DmChannelDTO(); + obj.icon = channel.icon || null; + obj.id = channel.id; + obj.last_message_id = channel.last_message_id || null; + obj.name = channel.name || null; + obj.origin_channel_id = origin_channel_id || null; + obj.owner_id = channel.owner_id; + obj.type = channel.type; + obj.recipients = ( + await Promise.all( + channel + .recipients!.filter((r) => !excluded_recipients.includes(r.user_id)) + .map(async (r) => { + return await User.findOneOrFail({ where: { id: r.user_id }, select: PublicUserProjection }); + }) + ) + ).map((u) => new MinimalPublicUserDTO(u)); + return obj; } excludedRecipients(excluded_recipients: string[]): DmChannelDTO { return { ...this, - recipients: this.recipients.filter(r => !excluded_recipients.includes(r.id)) - } + recipients: this.recipients.filter((r) => !excluded_recipients.includes(r.id)), + }; } -} \ No newline at end of file +} diff --git a/util/src/dtos/UserDTO.ts b/util/src/dtos/UserDTO.ts index f09b5f4e..ee2752a4 100644 --- a/util/src/dtos/UserDTO.ts +++ b/util/src/dtos/UserDTO.ts @@ -8,10 +8,10 @@ export class MinimalPublicUserDTO { username: string; constructor(user: User) { - this.avatar = user.avatar - this.discriminator = user.discriminator - this.id = user.id - this.public_flags = user.public_flags - this.username = user.username + this.avatar = user.avatar; + this.discriminator = user.discriminator; + this.id = user.id; + this.public_flags = user.public_flags; + this.username = user.username; } -} \ No newline at end of file +} diff --git a/util/src/dtos/index.ts b/util/src/dtos/index.ts index 13702342..0e8f8459 100644 --- a/util/src/dtos/index.ts +++ b/util/src/dtos/index.ts @@ -1,2 +1,2 @@ export * from "./DmChannelDTO"; -export * from "./UserDTO"; \ No newline at end of file +export * from "./UserDTO"; diff --git a/util/src/entities/Invite.ts b/util/src/entities/Invite.ts index b3e00957..6ac64ddc 100644 --- a/util/src/entities/Invite.ts +++ b/util/src/entities/Invite.ts @@ -71,7 +71,7 @@ export class Invite extends BaseClassWithoutId { @Column({ nullable: true }) target_user_type?: number; - @Column({ nullable: true}) + @Column({ nullable: true }) vanity_url?: boolean; static async joinGuild(user_id: string, code: string) { diff --git a/util/src/entities/Message.ts b/util/src/entities/Message.ts index a4d38315..20a44ca3 100644 --- a/util/src/entities/Message.ts +++ b/util/src/entities/Message.ts @@ -9,6 +9,7 @@ import { CreateDateColumn, Entity, FindConditions, + Index, JoinColumn, JoinTable, ManyToMany, @@ -45,9 +46,11 @@ export enum MessageType { } @Entity("messages") +@Index(["channel_id", "id"], { unique: true }) export class Message extends BaseClass { @Column({ nullable: true }) @RelationId((message: Message) => message.channel) + @Index() channel_id: string; @JoinColumn({ name: "channel_id" }) @@ -68,10 +71,13 @@ export class Message extends BaseClass { @Column({ nullable: true }) @RelationId((message: Message) => message.author) + @Index() author_id: string; @JoinColumn({ name: "author_id", referencedColumnName: "id" }) - @ManyToOne(() => User) + @ManyToOne(() => User, { + onDelete: "CASCADE", + }) author?: User; @Column({ nullable: true }) diff --git a/util/src/entities/Migration.ts b/util/src/entities/Migration.ts index 7393496f..3f39ae72 100644 --- a/util/src/entities/Migration.ts +++ b/util/src/entities/Migration.ts @@ -10,7 +10,7 @@ export class Migration extends BaseClassWithoutId { @PrimaryIdAutoGenerated() id: number; - @Column({ type: 'bigint' }) + @Column({ type: "bigint" }) timestamp: number; @Column() diff --git a/util/src/util/ApiError.ts b/util/src/util/ApiError.ts index c133e6e7..f1a9b4f6 100644 --- a/util/src/util/ApiError.ts +++ b/util/src/util/ApiError.ts @@ -9,7 +9,8 @@ export class ApiError extends Error { } withDefaultParams(): ApiError { - if (this.defaultParams) return new ApiError(applyParamsToString(this.message, this.defaultParams), this.code, this.httpStatus); + if (this.defaultParams) + return new ApiError(applyParamsToString(this.message, this.defaultParams), this.code, this.httpStatus); return this; } diff --git a/util/src/util/Array.ts b/util/src/util/Array.ts index 27f7c961..5a45d1b5 100644 --- a/util/src/util/Array.ts +++ b/util/src/util/Array.ts @@ -1,3 +1,3 @@ export function containsAll(arr: any[], target: any[]) { - return target.every(v => arr.includes(v)); -} \ No newline at end of file + return target.every((v) => arr.includes(v)); +} diff --git a/util/src/util/AutoUpdate.ts b/util/src/util/AutoUpdate.ts index cafc7bdb..531bd8b7 100644 --- a/util/src/util/AutoUpdate.ts +++ b/util/src/util/AutoUpdate.ts @@ -1,5 +1,6 @@ import "missing-native-js-functions"; import fetch from "node-fetch"; +import ProxyAgent from 'proxy-agent'; import readline from "readline"; import fs from "fs/promises"; import path from "path"; @@ -52,7 +53,8 @@ async function download(url: string, dir: string) { try { // TODO: use file stream instead of buffer (to prevent crash because of high memory usage for big files) // TODO check file hash - const response = await fetch(url); + const agent = new ProxyAgent(); + const response = await fetch(url, { agent }); const buffer = await response.buffer(); const tempDir = await fs.mkdtemp("fosscord"); fs.writeFile(path.join(tempDir, "Fosscord.zip"), buffer); @@ -72,7 +74,8 @@ async function getCurrentVersion(dir: string) { async function getLatestVersion(url: string) { try { - const response = await fetch(url); + const agent = new ProxyAgent(); + const response = await fetch(url, { agent }); const content = await response.json(); return content.version; } catch (error) { diff --git a/util/src/util/Config.ts b/util/src/util/Config.ts index 704f3f2f..31b8d97c 100644 --- a/util/src/util/Config.ts +++ b/util/src/util/Config.ts @@ -1,5 +1,10 @@ import "missing-native-js-functions"; import { ConfigValue, ConfigEntity, DefaultConfigOptions } from "../entities/Config"; +import path from "path"; +import fs from "fs"; + +// TODO: yaml instead of json +// const overridePath = path.join(process.cwd(), "config.json"); var config: ConfigValue; var pairs: ConfigEntity[]; @@ -12,8 +17,16 @@ export const Config = { if (config) return config; pairs = await ConfigEntity.find(); config = pairsToConfig(pairs); + config = (config || {}).merge(DefaultConfigOptions); - return this.set((config || {}).merge(DefaultConfigOptions)); + // try { + // const overrideConfig = JSON.parse(fs.readFileSync(overridePath, { encoding: "utf8" })); + // config = overrideConfig.merge(config); + // } catch (error) { + // fs.writeFileSync(overridePath, JSON.stringify(config, null, 4)); + // } + + return this.set(config); }, get: function get() { return config; @@ -38,6 +51,7 @@ function applyConfig(val: ConfigValue) { pair.value = obj; return pair.save(); } + // fs.writeFileSync(overridePath, JSON.stringify(val, null, 4)); return apply(val); } diff --git a/util/src/util/Event.ts b/util/src/util/Event.ts index 8ed009d5..bb624051 100644 --- a/util/src/util/Event.ts +++ b/util/src/util/Event.ts @@ -15,6 +15,8 @@ export async function emitEvent(payload: Omit) { // assertQueue isn't needed, because a queue will automatically created if it doesn't exist const successful = RabbitMQ.channel?.publish(id, "", Buffer.from(`${data}`), { type: payload.event }); if (!successful) throw new Error("failed to send event"); + } else if (process.env.EVENT_TRANSMISSION === "process") { + process.send?.({ type: "event", event: payload, id } as ProcessEvent); } else { events.emit(id, payload); } @@ -25,6 +27,7 @@ export async function initEvent() { if (RabbitMQ.connection) { } else { // use event emitter + // use process messages } } @@ -39,17 +42,38 @@ export interface ListenEventOpts { acknowledge?: boolean; } +export interface ProcessEvent { + type: "event"; + event: Event; + id: string; +} + export async function listenEvent(event: string, callback: (event: EventOpts) => any, opts?: ListenEventOpts) { if (RabbitMQ.connection) { // @ts-ignore return rabbitListen(opts?.channel || RabbitMQ.channel, event, callback, { acknowledge: opts?.acknowledge }); - } else { + } else if (process.env.EVENT_TRANSMISSION === "process") { const cancel = () => { - events.removeListener(event, callback); + process.removeListener("message", listener); + process.setMaxListeners(process.getMaxListeners() - 1); + }; + + const listener = (msg: ProcessEvent) => { + msg.type === "event" && msg.id === event && callback({ ...msg.event, cancel }); + }; + + process.addListener("message", listener); + process.setMaxListeners(process.getMaxListeners() + 1); + + return cancel; + } else { + const listener = (opts: any) => callback({ ...opts, cancel }); + const cancel = () => { + events.removeListener(event, listener); events.setMaxListeners(events.getMaxListeners() - 1); }; events.setMaxListeners(events.getMaxListeners() + 1); - events.addListener(event, (opts) => callback({ ...opts, cancel })); + events.addListener(event, listener); return cancel; } diff --git a/util/src/util/FieldError.ts b/util/src/util/FieldError.ts index 0b3f93d2..406b33e8 100644 --- a/util/src/util/FieldError.ts +++ b/util/src/util/FieldError.ts @@ -8,9 +8,9 @@ export function FieldErrors(fields: Record