mirror of
https://github.com/appwrite/appwrite
synced 2026-05-23 00:49:02 +00:00
Merge branch 'main' into patch-4
This commit is contained in:
commit
82bde7f7e9
10186 changed files with 139992 additions and 16912 deletions
34
.env
34
.env
|
|
@ -11,8 +11,9 @@ _APP_SYSTEM_RESPONSE_FORMAT=
|
|||
_APP_OPTIONS_ABUSE=disabled
|
||||
_APP_OPTIONS_FORCE_HTTPS=disabled
|
||||
_APP_OPENSSL_KEY_V1=your-secret-key
|
||||
_APP_DOMAIN=demo.appwrite.io
|
||||
_APP_DOMAIN_TARGET=demo.appwrite.io
|
||||
_APP_DOMAIN=localhost
|
||||
_APP_DOMAIN_FUNCTIONS=functions.localhost
|
||||
_APP_DOMAIN_TARGET=localhost
|
||||
_APP_REDIS_HOST=redis
|
||||
_APP_REDIS_PORT=6379
|
||||
_APP_REDIS_PASS=
|
||||
|
|
@ -63,14 +64,14 @@ _APP_STORAGE_PREVIEW_LIMIT=20000000
|
|||
_APP_FUNCTIONS_SIZE_LIMIT=30000000
|
||||
_APP_FUNCTIONS_TIMEOUT=900
|
||||
_APP_FUNCTIONS_BUILD_TIMEOUT=900
|
||||
_APP_FUNCTIONS_CONTAINERS=10
|
||||
_APP_FUNCTIONS_CPUS=0
|
||||
_APP_FUNCTIONS_MEMORY=0
|
||||
_APP_FUNCTIONS_MEMORY_SWAP=0
|
||||
_APP_FUNCTIONS_INACTIVE_THRESHOLD=60
|
||||
OPEN_RUNTIMES_NETWORK=appwrite_runtimes
|
||||
_APP_FUNCTIONS_CPUS=1
|
||||
_APP_FUNCTIONS_MEMORY=1024
|
||||
_APP_FUNCTIONS_INACTIVE_THRESHOLD=600
|
||||
_APP_FUNCTIONS_MAINTENANCE_INTERVAL=600
|
||||
_APP_FUNCTIONS_RUNTIMES_NETWORK=runtimes
|
||||
_APP_EXECUTOR_SECRET=your-secret-key
|
||||
_APP_EXECUTOR_HOST=http://appwrite-executor/v1
|
||||
_APP_EXECUTOR_HOST=http://proxy/v1
|
||||
_APP_FUNCTIONS_RUNTIMES=php-8.0,node-18.0,python-3.9,ruby-3.1
|
||||
_APP_MAINTENANCE_INTERVAL=86400
|
||||
_APP_MAINTENANCE_RETENTION_CACHE=2592000
|
||||
_APP_MAINTENANCE_RETENTION_EXECUTION=1209600
|
||||
|
|
@ -78,12 +79,21 @@ _APP_MAINTENANCE_RETENTION_ABUSE=86400
|
|||
_APP_MAINTENANCE_RETENTION_AUDIT=1209600
|
||||
_APP_USAGE_AGGREGATION_INTERVAL=5
|
||||
_APP_MAINTENANCE_RETENTION_USAGE_HOURLY=8640000
|
||||
_APP_MAINTENANCE_RETENTION_SCHEDULES=86400
|
||||
_APP_USAGE_STATS=enabled
|
||||
_APP_LOGGING_PROVIDER=
|
||||
_APP_LOGGING_CONFIG=
|
||||
_APP_GRAPHQL_MAX_BATCH_SIZE=10
|
||||
_APP_GRAPHQL_MAX_COMPLEXITY=250
|
||||
_APP_GRAPHQL_MAX_DEPTH=3
|
||||
DOCKERHUB_PULL_USERNAME=
|
||||
DOCKERHUB_PULL_PASSWORD=
|
||||
DOCKERHUB_PULL_EMAIL=
|
||||
_APP_DOCKER_HUB_USERNAME=
|
||||
_APP_DOCKER_HUB_PASSWORD=
|
||||
_APP_VCS_GITHUB_APP_NAME=
|
||||
_APP_VCS_GITHUB_PRIVATE_KEY=""
|
||||
_APP_VCS_GITHUB_APP_ID=
|
||||
_APP_VCS_GITHUB_CLIENT_ID=
|
||||
_APP_VCS_GITHUB_CLIENT_SECRET=
|
||||
_APP_VCS_GITHUB_WEBHOOK_SECRET=
|
||||
_APP_MIGRATIONS_FIREBASE_CLIENT_ID=
|
||||
_APP_MIGRATIONS_FIREBASE_CLIENT_SECRET=
|
||||
_APP_ASSISTANT_OPENAI_API_KEY=
|
||||
39
.github/workflows/cleanup-cache.yml
vendored
Normal file
39
.github/workflows/cleanup-cache.yml
vendored
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
name: Cleanup Cache
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types:
|
||||
- closed
|
||||
|
||||
jobs:
|
||||
cleanup:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Cleanup
|
||||
run: |
|
||||
gh extension install actions/gh-actions-cache
|
||||
|
||||
REPO=${{ github.repository }}
|
||||
BRANCH="refs/pull/${{ github.event.pull_request.number }}/merge"
|
||||
|
||||
while true
|
||||
do
|
||||
cacheKeysForPR=$(gh actions-cache list -R $REPO -B $BRANCH -L 100 | cut -f 1 )
|
||||
|
||||
if [ -z "$cacheKeysForPR" ]
|
||||
then
|
||||
break
|
||||
fi
|
||||
|
||||
## Setting this to not fail the workflow while deleting cache keys.
|
||||
set +e
|
||||
for cacheKey in $cacheKeysForPR
|
||||
do
|
||||
gh actions-cache delete $cacheKey -R $REPO -B $BRANCH --confirm
|
||||
done
|
||||
done
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
46
.github/workflows/publish.yml
vendored
Normal file
46
.github/workflows/publish.yml
vendored
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
name: "Build and Publish Appwrite Images for Cloud"
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- cl-*
|
||||
|
||||
jobs:
|
||||
build-publish:
|
||||
name: Build and Publish
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 2
|
||||
submodules: recursive
|
||||
ref: master
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Extract metadata (tags, labels) for Docker
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
with:
|
||||
images: appwrite/cloud
|
||||
tags: |
|
||||
type=ref,event=tag
|
||||
|
||||
- name: Build & Publish to DockerHub
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
context: .
|
||||
platforms: linux/amd64
|
||||
build-args: |
|
||||
VERSION=${{ steps.meta.outputs.version }}
|
||||
VITE_APPWRITE_GROWTH_ENDPOINT=https://growth.appwrite.io/v1
|
||||
VITE_GA_PROJECT=G-L7G2B6PLDS
|
||||
VITE_CONSOLE_MODE=cloud
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
53
.github/workflows/release.yml
vendored
Normal file
53
.github/workflows/release.yml
vendored
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
name: "Release"
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
tests:
|
||||
name: Release
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
# We must fetch at least the immediate parents so that if this is
|
||||
# a pull request then we can checkout the head.
|
||||
fetch-depth: 2
|
||||
# Fetch submodules
|
||||
submodules: recursive
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Extract metadata (tags, labels) for Docker
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
with:
|
||||
images: appwrite/appwrite
|
||||
tags: |
|
||||
type=semver,pattern={{major}}.{{minor}}.{{patch}}
|
||||
type=semver,pattern={{major}}.{{minor}}
|
||||
type=semver,pattern={{major}}
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
context: .
|
||||
platforms: linux/amd64,linux/arm64
|
||||
build-args: |
|
||||
VERSION=${{ steps.meta.outputs.version }}
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
4
.github/workflows/tests.yml
vendored
4
.github/workflows/tests.yml
vendored
|
|
@ -49,7 +49,9 @@ jobs:
|
|||
sleep 30
|
||||
|
||||
- name: Doctor
|
||||
run: docker compose exec -T appwrite doctor
|
||||
run: |
|
||||
docker compose logs appwrite
|
||||
docker compose exec -T appwrite doctor
|
||||
|
||||
- name: Environment Variables
|
||||
run: docker compose exec -T appwrite vars
|
||||
|
|
|
|||
2
.gitmodules
vendored
2
.gitmodules
vendored
|
|
@ -1,4 +1,4 @@
|
|||
[submodule "app/console"]
|
||||
path = app/console
|
||||
url = https://github.com/appwrite/console
|
||||
branch = 2.2.0
|
||||
branch = 3.1.1
|
||||
|
|
|
|||
167
CHANGES.md
167
CHANGES.md
|
|
@ -1,6 +1,167 @@
|
|||
# Version TBD
|
||||
- Fix expire to formatTz in create account session [#4985](https://github.com/appwrite/appwrite/pull/4985)
|
||||
# Version 1.4.3
|
||||
|
||||
## Features
|
||||
- Support for the all new bun runtime [#6230](https://github.com/appwrite/appwrite/pull/6230)
|
||||
- Stripe function templates [Console #540](https://github.com/appwrite/console/pull/540)
|
||||
|
||||
## Fixes
|
||||
- Fix missing _APP_OPENSSL_KEY_V1 in the compose file [#6199](https://github.com/appwrite/appwrite/pull/6199)
|
||||
- Fix V2 functions env vars [#6215](https://github.com/appwrite/appwrite/pull/6215)
|
||||
- Fix Don't update User Accessed At for Users and Teams APIs [#6222](https://github.com/appwrite/appwrite/pull/6222)
|
||||
- Fix Git deploys with S3 [#6227](https://github.com/appwrite/appwrite/pull/6227)
|
||||
- Fix manual internal id insertion [#6232](https://github.com/appwrite/appwrite/pull/6232)
|
||||
- Fix function timeout [#6235](https://github.com/appwrite/appwrite/pull/6235)
|
||||
- Fix collections with datetime attributes migration [#17](https://github.com/utopia-php/migration/pull/17)
|
||||
- Fix not all user data being migrated [#17](https://github.com/utopia-php/migration/pull/17)
|
||||
- Fix team memberships migration [#16](https://github.com/utopia-php/migration/pull/16)
|
||||
- Fix events validation on create/update webhooks [#6219](https://github.com/appwrite/appwrite/pull/6219)
|
||||
- Fix schedules task [#6246](https://github.com/appwrite/appwrite/pull/6246)
|
||||
- Fix missing keys when updating document via relationship [Database #320](https://github.com/utopia-php/database/pull/320)
|
||||
- Fix Discord template [Console #538](https://github.com/appwrite/console/pull/538)
|
||||
- Fix form var is url not text [Console #539](https://github.com/appwrite/console/pull/539)
|
||||
- Fix incorrect link to migration docs for self-hosted to cloud [Console #543](https://github.com/appwrite/console/pull/543)
|
||||
- Fix can't disable smtp [Console #548](https://github.com/appwrite/console/pull/548)
|
||||
- Fix create function cover for case where VCS is not enabled [Console #544](https://github.com/appwrite/console/pull/544)
|
||||
- Fix users list not re-rendering [Console #537](https://github.com/appwrite/console/pull/537)
|
||||
- Fix create attribute modal null when selecting same time twice [Console #549](https://github.com/appwrite/console/pull/549)
|
||||
- Fix runtime versions in templates [Console #546](https://github.com/appwrite/console/pull/546)
|
||||
|
||||
# Version 1.4.2
|
||||
|
||||
## Fixes
|
||||
|
||||
- Fix create phone session abuse key [#6134](https://github.com/appwrite/appwrite/pull/6134)
|
||||
- Fix CLI backwards compatibility [#6125](https://github.com/appwrite/appwrite/pull/6125)
|
||||
- Fix Not Found error when deploying function from git [#6133](https://github.com/appwrite/appwrite/pull/6133)
|
||||
- Fix _APP_EXECUTOR_HOST for upgrades [#6141](https://github.com/appwrite/appwrite/pull/6141)
|
||||
- Fix create execution request filter from previous SDK version [#6146](https://github.com/appwrite/appwrite/pull/6146)
|
||||
- Fix migrations worker [#6116](https://github.com/appwrite/appwrite/pull/6116)
|
||||
- Fix: Global variables by [#6150](https://github.com/appwrite/appwrite/pull/6150)
|
||||
- Fix webhook secret validation and executor path validation [#6162](https://github.com/appwrite/appwrite/pull/6162)
|
||||
- Fix: Untrusted custom domains + auto-ssl [#6155](https://github.com/appwrite/appwrite/pull/6155)
|
||||
- Fix: AI Assistant [#6153](https://github.com/appwrite/appwrite/pull/6153)
|
||||
|
||||
## Changes
|
||||
- Add required params for scheduled functions [#6148](https://github.com/appwrite/appwrite/pull/6148)
|
||||
- Update the error message for router_domain_not_configured [#6145](https://github.com/appwrite/appwrite/pull/6145)
|
||||
- Override forEachDocument() to skip the cache collection [#6144](https://github.com/appwrite/appwrite/pull/6144)
|
||||
- Support for v2 functions [#6142](https://github.com/appwrite/appwrite/pull/6142)
|
||||
- Change executor hostname back to appwrite-executor [#6160](https://github.com/appwrite/appwrite/pull/6160)
|
||||
- Make URL optional for Create Membership API and Serverside Requests [#6157](https://github.com/appwrite/appwrite/pull/6157)
|
||||
|
||||
# Version 1.4.1
|
||||
|
||||
## Features
|
||||
|
||||
- Add upgrade task [#6068](https://github.com/appwrite/appwrite/pull/6068)
|
||||
|
||||
## Fixes
|
||||
|
||||
- Fix VCS/migration/assistant scopes [#6071](https://github.com/appwrite/appwrite/pull/6071)
|
||||
- Add missing parameters required for custom email templates [#6077](https://github.com/appwrite/appwrite/pull/6077)
|
||||
- Fix `Call to a member function label() on null` error when using a custom domain [#6079](https://github.com/appwrite/appwrite/pull/6079)
|
||||
|
||||
## Changes
|
||||
|
||||
- Update console to 3.0.2 [#6071](https://github.com/appwrite/appwrite/pull/6071)
|
||||
|
||||
# Version 1.4.0
|
||||
|
||||
## Features
|
||||
|
||||
- Add error attribute to indexes and attributes [#4575](https://github.com/appwrite/appwrite/pull/4575)
|
||||
- Add new index validation rules [#5710](https://github.com/appwrite/appwrite/pull/5710)
|
||||
- Added support for disallowing passwords that contain personal data [#5371](https://github.com/appwrite/appwrite/pull/5371)
|
||||
|
||||
## Fixes
|
||||
|
||||
- Fix cascading deletes across multiple levels [DB #269](https://github.com/utopia-php/database/pull/269)
|
||||
- Fix identical two-way keys not throwing duplicate exceptions [DB #273](https://github.com/utopia-php/database/pull/273)
|
||||
- Fix search wildcards [DB #279](https://github.com/utopia-php/database/pull/279)
|
||||
- Fix permissions returning as an object instead of list [DB #281](https://github.com/utopia-php/database/pull/281)
|
||||
- Fix missing collection not found error [DB #282](https://github.com/utopia-php/database/pull/282)
|
||||
|
||||
## Changes
|
||||
|
||||
- Improve permission indexes [DB #248](https://github.com/utopia-php/database/pull/248)
|
||||
- Validators back-ported to Utopia [#5439](https://github.com/appwrite/appwrite/pull/5439)
|
||||
|
||||
# Version 1.3.8
|
||||
|
||||
## Changes
|
||||
|
||||
- Replace Appwrite executor with OpenRuntimes Executor [#4650](https://github.com/appwrite/appwrite/pull/4650)
|
||||
- Add `_APP_CONNECTIONS_MAX` env var [#4673](https://github.com/appwrite/appwrite/pull/4673)
|
||||
- Increase Traefik TCP + file limits [#4673](https://github.com/appwrite/appwrite/pull/4673)
|
||||
- Store build output file size [#4844](https://github.com/appwrite/appwrite/pull/4844)
|
||||
|
||||
## Bugs
|
||||
- Fix audit user internal [#5809](https://github.com/appwrite/appwrite/pull/5809)
|
||||
|
||||
# Version 1.3.7
|
||||
|
||||
## Bugs
|
||||
- Fix the routing for the default OAuth2 pages [#5640](https://github.com/appwrite/appwrite/pull/5640) [#5648](https://github.com/appwrite/appwrite/pull/5648)
|
||||
- Add support for trailing slashes in Routes and URLs [#5647](https://github.com/appwrite/appwrite/pull/5647) [#5648](https://github.com/appwrite/appwrite/pull/5648)
|
||||
|
||||
# Version 1.3.6
|
||||
|
||||
## Bugs
|
||||
|
||||
- Fix Console deep linking to result in a 404 [#5632](https://github.com/appwrite/appwrite/pull/5632)
|
||||
- Fix ACME HTTP Challenge [#5632](https://github.com/appwrite/appwrite/pull/5632)
|
||||
|
||||
# Version 1.3.5
|
||||
|
||||
## Bugs
|
||||
|
||||
- Fix minimum length for string attribute default values [#5606](https://github.com/appwrite/appwrite/pull/5606), [#5602](https://github.com/appwrite/appwrite/pull/5602)
|
||||
- Update framework to fix route mismatches [#5603](https://github.com/appwrite/appwrite/pull/5603)
|
||||
|
||||
# Version 1.3.4
|
||||
|
||||
## Bugs
|
||||
|
||||
- Update migration to properly migrate bucket permissions [#5497](https://github.com/appwrite/appwrite/pull/5497)
|
||||
|
||||
# Version 1.3.3
|
||||
|
||||
## Bugs
|
||||
- Fixed migration resetting some data [#5455](https://github.com/appwrite/appwrite/pull/5455)
|
||||
|
||||
# Version 1.3.2
|
||||
|
||||
## Bugs
|
||||
- Fixed auto-setting custom ID on nested documents [#5363](https://github.com/appwrite/appwrite/pull/5363)
|
||||
- Fixed listDocuments not returning all the documents [#5395](https://github.com/appwrite/appwrite/pull/5395)
|
||||
- Fixed deleting keys, webhooks, platforms and domains after deleting project [#5395](https://github.com/appwrite/appwrite/pull/5395)
|
||||
- Fixed empty team prefs returning as JSON object rather array [#5361](https://github.com/appwrite/appwrite/pull/5361)
|
||||
|
||||
# Version 1.3.1
|
||||
|
||||
## Bugs
|
||||
- Fixed Migration issue regarding 500 error [#5356](https://github.com/appwrite/appwrite/pull/5356)
|
||||
|
||||
# Version 1.3.0
|
||||
|
||||
## Features
|
||||
- Password dictionary setting allows to compare user's password against command password database [#4906](https://github.com/appwrite/appwrite/pull/4906)
|
||||
- Password history setting allows to save user's last used password so that it may not be used again. Maximum number of history saved is 20, which can be configured. Minimum is 0 which means disabled. [#4866](https://github.com/appwrite/appwrite/pull/4866)
|
||||
- Update APIs to check X-Appwrite-Timestamp header [#5024](https://github.com/appwrite/appwrite/pull/5024)
|
||||
- Database relationships [#5238](https://github.com/appwrite/appwrite/pull/5238)
|
||||
- New query operators [#5238](https://github.com/appwrite/appwrite/pull/5238)
|
||||
- Team preferences [#5196](https://github.com/appwrite/appwrite/pull/5196)
|
||||
- Update attribute metadata [#5164](https://github.com/appwrite/appwrite/pull/5164)
|
||||
|
||||
## Bugs
|
||||
- Fix not storing function's response on response codes 5xx [#4610](https://github.com/appwrite/appwrite/pull/4610)
|
||||
- Fix expire to formatTz in create account session [#4985](https://github.com/appwrite/appwrite/pull/4985)
|
||||
- Fix deleting projects when organization is deleted [#5335](https://github.com/appwrite/appwrite/pull/5335)
|
||||
- Fix deleting collections from a project [#4983](https://github.com/appwrite/appwrite/pull/4983)
|
||||
- Fix cleaning up project databases [#4984](https://github.com/appwrite/appwrite/pull/4984)
|
||||
- Fix creating documents with attributes with special characters [#246](https://github.com/utopia-php/database/pull/246)
|
||||
- Fix deleting attribute not deleting metadata index [#246](https://github.com/utopia-php/database/pull/246)
|
||||
- Fix create attribute event payload [#246](https://github.com/utopia-php/database/pull/246)
|
||||
|
||||
# Version 1.2.1
|
||||
## Changes
|
||||
|
|
@ -27,7 +188,6 @@
|
|||
- Get default region from environment on project create [#4780](https://github.com/appwrite/appwrite/pull/4780)
|
||||
- Fix french translation [#4782](https://github.com/appwrite/appwrite/pull/4782)
|
||||
- Fix max mimetype size [#4814](https://github.com/appwrite/appwrite/pull/4814)
|
||||
|
||||
## Bugs
|
||||
- Fix invited account verified status [#4776](https://github.com/appwrite/appwrite/pull/4776)
|
||||
|
||||
|
|
@ -35,6 +195,7 @@
|
|||
## Changes
|
||||
- Released `appwrite/console` [2.0.2](https://github.com/appwrite/console/releases/tag/2.0.2)
|
||||
- Make `region` parameter optional with default for project create [#4763](https://github.com/appwrite/appwrite/pull/4763)
|
||||
- Add security headers to the console endpoint [#4758](https://github.com/appwrite/appwrite/pull/4758)
|
||||
|
||||
## Bugs
|
||||
- Fix default oauth paths [#4725](https://github.com/appwrite/appwrite/pull/4725)
|
||||
|
|
|
|||
|
|
@ -2,6 +2,11 @@
|
|||
|
||||
We would ❤️ you to contribute to Appwrite and help make it better! We want contributing to Appwrite to be fun, enjoyable, and educational for anyone and everyone. All contributions are welcome, including issues, and new docs, as well as updates and tweaks, blog posts, workshops, and more.
|
||||
|
||||
## Here for Hacktoberfest?
|
||||
If you're here to contribute during Hacktoberfest, we're so happy to see you here. Appwrite has been a long-time participant of Hacktoberfest and we welcome you, whatever your experience level. This year, we're **only taking contributions for issues tagged** `hacktoberfest`, so we can focus our resources to support your contributions.
|
||||
|
||||
You can [find issues using this query](https://github.com/search?q=org%3Aappwrite+is%3Aopen+type%3Aissue+label%3Ahacktoberfest&type=issues).
|
||||
|
||||
## How to Start?
|
||||
|
||||
If you are worried or don’t know where to start, check out the next section that explains what kind of help we could use and where you can get involved. You can send your questions to [@appwrite](https://twitter.com/appwrite) on Twitter or to anyone from the [Appwrite team on Discord](https://appwrite.io/discord). You can also submit an issue, and a maintainer can guide you!
|
||||
|
|
@ -109,7 +114,9 @@ docker run --rm --interactive --tty \
|
|||
|
||||
### User Interface
|
||||
|
||||
Appwrite uses an internal micro-framework called Litespeed.js to build simple UI components in vanilla JS and [less](http://lesscss.org/) for compiling CSS code. To apply any of your changes to the UI, use the `gulp build` or `gulp less` commands, and restart the Appwrite main container to load the new static files to memory using `docker compose restart appwrite`.
|
||||
Appwrite's UI is built with [Svelte](https://svelte.dev/), [Svelte Kit](https://kit.svelte.dev/), and the [Pink Design](https://github.com/appwrite/pink) component library. You can find the source code in the [Appwrite Console](https://github.com/appwrite/console) repository.
|
||||
|
||||
To contribute to the UI, head to the [Contribution Guide](https://github.com/appwrite/console/blob/main/CONTRIBUTING.md) of Appwrite Console.
|
||||
|
||||
### Get Started
|
||||
|
||||
|
|
@ -238,8 +245,8 @@ Appwrite stack is a combination of a variety of open-source technologies and too
|
|||
|
||||
- Redis - for managing cache and in-memory data (currently, we do not use Redis for persistent data).
|
||||
- MariaDB - for database storage and queries.
|
||||
- InfluxDB - for managing stats and time-series based data.
|
||||
- Statsd - for sending data over UDP protocol (using Telegraf).
|
||||
- InfluxDB - for managing stats and time-series based data
|
||||
- Statsd - for sending data over UDP protocol (using Telegraf)
|
||||
- ClamAV - for validating and scanning storage files.
|
||||
- Imagemagick - for manipulating and managing image media files.
|
||||
- Webp - for better compression of images on supporting clients.
|
||||
|
|
@ -321,7 +328,7 @@ The Runtimes for all supported cloud functions (multicore builds) can be found a
|
|||
|
||||
The following steps are used to generate a new console SDK:
|
||||
|
||||
1. Update the console spec file located at `app/config/specs/swagger2-<version-number>.console.json` using Appwrite Tasks. Run the `php app/cli.php specs <version-number> normal` command in a running `appwrite/appwrite` container.
|
||||
1. Update the console spec file located at `app/config/specs/swagger2-<version-number>.console.json` using Appwrite Tasks. Run the `php app/cli.php specs version=<version-number> mode=normal` command in a running `appwrite/appwrite` container.
|
||||
2. Generate a new SDK using the command `php app/cli.php sdks`.
|
||||
3. Change your working dir using `cd app/sdks/console-web`.
|
||||
4. Build the new SDK `npm run build`.
|
||||
|
|
@ -346,8 +353,7 @@ If you are in PHP Storm you don't need any plugin. Below are the settings requir
|
|||
|
||||
1. Create an init file.
|
||||
2. Duplicate **dev/yasd_init.php.stub** file and name it **dev/yasd_init.php**.
|
||||
3. Change the IP address to your development machine's IP. Without the proper IP address, the debugger won't connect.
|
||||
4. Set **DEBUG** build arg in **appwrite** service in **docker-compose.yml** file.
|
||||
3. Set **DEBUG** build arg in **appwrite** service in **docker-compose.yml** file.
|
||||
|
||||
### VS Code Launch Configuration
|
||||
|
||||
|
|
@ -436,6 +442,14 @@ composer lint
|
|||
composer lint <your file path>
|
||||
```
|
||||
|
||||
## Clearing the Cache
|
||||
|
||||
If you need to clear the cache, you can do so by running the following command:
|
||||
|
||||
```bash
|
||||
docker compose exec redis redis-cli FLUSHALL
|
||||
```
|
||||
|
||||
## Tutorials
|
||||
|
||||
From time to time, our team will add tutorials that will help contributors find their way in the Appwrite source code. Below is a list of currently available tutorials:
|
||||
|
|
|
|||
111
Dockerfile
111
Dockerfile
|
|
@ -12,7 +12,7 @@ RUN composer install --ignore-platform-reqs --optimize-autoloader \
|
|||
--no-plugins --no-scripts --prefer-dist \
|
||||
`if [ "$TESTING" != "true" ]; then echo "--no-dev"; fi`
|
||||
|
||||
FROM node:16.14.2-alpine3.15 as node
|
||||
FROM --platform=$BUILDPLATFORM node:16.14.2-alpine3.15 as node
|
||||
|
||||
COPY app/console /usr/local/src/console
|
||||
|
||||
|
|
@ -29,7 +29,7 @@ ENV VITE_APPWRITE_GROWTH_ENDPOINT=$VITE_APPWRITE_GROWTH_ENDPOINT
|
|||
RUN npm ci
|
||||
RUN npm run build
|
||||
|
||||
FROM appwrite/base:0.2.0 as final
|
||||
FROM appwrite/base:0.4.3 as final
|
||||
|
||||
LABEL maintainer="team@appwrite.io"
|
||||
|
||||
|
|
@ -37,92 +37,8 @@ ARG VERSION=dev
|
|||
ARG DEBUG=false
|
||||
ENV DEBUG=$DEBUG
|
||||
|
||||
ENV DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
|
||||
ENV DOCKER_COMPOSE_VERSION=v2.5.0
|
||||
|
||||
ENV _APP_SERVER=swoole \
|
||||
_APP_ENV=production \
|
||||
_APP_LOCALE=en \
|
||||
_APP_WORKER_PER_CORE= \
|
||||
_APP_DOMAIN=localhost \
|
||||
_APP_DOMAIN_TARGET=localhost \
|
||||
_APP_HOME=https://appwrite.io \
|
||||
_APP_EDITION=community \
|
||||
_APP_CONSOLE_WHITELIST_ROOT=enabled \
|
||||
_APP_CONSOLE_WHITELIST_EMAILS= \
|
||||
_APP_CONSOLE_WHITELIST_IPS= \
|
||||
_APP_SYSTEM_EMAIL_NAME= \
|
||||
_APP_SYSTEM_EMAIL_ADDRESS= \
|
||||
_APP_SYSTEM_RESPONSE_FORMAT= \
|
||||
_APP_SYSTEM_SECURITY_EMAIL_ADDRESS= \
|
||||
_APP_OPTIONS_ABUSE=enabled \
|
||||
_APP_OPTIONS_FORCE_HTTPS=disabled \
|
||||
_APP_OPENSSL_KEY_V1=your-secret-key \
|
||||
_APP_STORAGE_LIMIT=10000000 \
|
||||
_APP_STORAGE_ANTIVIRUS=enabled \
|
||||
_APP_STORAGE_ANTIVIRUS_HOST=clamav \
|
||||
_APP_STORAGE_ANTIVIRUS_PORT=3310 \
|
||||
_APP_STORAGE_DEVICE=Local \
|
||||
_APP_STORAGE_S3_ACCESS_KEY= \
|
||||
_APP_STORAGE_S3_SECRET= \
|
||||
_APP_STORAGE_S3_REGION= \
|
||||
_APP_STORAGE_S3_BUCKET= \
|
||||
_APP_STORAGE_DO_SPACES_ACCESS_KEY= \
|
||||
_APP_STORAGE_DO_SPACES_SECRET= \
|
||||
_APP_STORAGE_DO_SPACES_REGION= \
|
||||
_APP_STORAGE_DO_SPACES_BUCKET= \
|
||||
_APP_STORAGE_BACKBLAZE_ACCESS_KEY= \
|
||||
_APP_STORAGE_BACKBLAZE_SECRET= \
|
||||
_APP_STORAGE_BACKBLAZE_REGION= \
|
||||
_APP_STORAGE_BACKBLAZE_BUCKET= \
|
||||
_APP_STORAGE_LINODE_ACCESS_KEY= \
|
||||
_APP_STORAGE_LINODE_SECRET= \
|
||||
_APP_STORAGE_LINODE_REGION= \
|
||||
_APP_STORAGE_LINODE_BUCKET= \
|
||||
_APP_STORAGE_WASABI_ACCESS_KEY= \
|
||||
_APP_STORAGE_WASABI_SECRET= \
|
||||
_APP_STORAGE_WASABI_REGION= \
|
||||
_APP_STORAGE_WASABI_BUCKET= \
|
||||
_APP_REDIS_HOST=redis \
|
||||
_APP_REDIS_PORT=6379 \
|
||||
_APP_DB_HOST=mariadb \
|
||||
_APP_DB_PORT=3306 \
|
||||
_APP_DB_USER=root \
|
||||
_APP_DB_PASS=password \
|
||||
_APP_DB_SCHEMA=appwrite \
|
||||
_APP_INFLUXDB_HOST=influxdb \
|
||||
_APP_INFLUXDB_PORT=8086 \
|
||||
_APP_STATSD_HOST=telegraf \
|
||||
_APP_STATSD_PORT=8125 \
|
||||
_APP_SMTP_HOST= \
|
||||
_APP_SMTP_PORT= \
|
||||
_APP_SMTP_SECURE= \
|
||||
_APP_SMTP_USERNAME= \
|
||||
_APP_SMTP_PASSWORD= \
|
||||
_APP_SMS_PROVIDER= \
|
||||
_APP_SMS_FROM= \
|
||||
_APP_FUNCTIONS_SIZE_LIMIT=30000000 \
|
||||
_APP_FUNCTIONS_TIMEOUT=900 \
|
||||
_APP_FUNCTIONS_CONTAINERS=10 \
|
||||
_APP_FUNCTIONS_CPUS=1 \
|
||||
_APP_FUNCTIONS_MEMORY=128 \
|
||||
_APP_FUNCTIONS_MEMORY_SWAP=128 \
|
||||
_APP_EXECUTOR_SECRET=a-random-secret \
|
||||
_APP_EXECUTOR_HOST=http://appwrite-executor/v1 \
|
||||
_APP_EXECUTOR_RUNTIME_NETWORK=appwrite_runtimes \
|
||||
_APP_SETUP=self-hosted \
|
||||
_APP_VERSION=$VERSION \
|
||||
_APP_USAGE_STATS=enabled \
|
||||
_APP_USAGE_AGGREGATION_INTERVAL=30 \
|
||||
# 14 Days = 1209600 s
|
||||
_APP_MAINTENANCE_RETENTION_EXECUTION=1209600 \
|
||||
_APP_MAINTENANCE_RETENTION_AUDIT=1209600 \
|
||||
# 1 Day = 86400 s
|
||||
_APP_MAINTENANCE_RETENTION_ABUSE=86400 \
|
||||
_APP_MAINTENANCE_RETENTION_USAGE_HOURLY=8640000 \
|
||||
_APP_MAINTENANCE_INTERVAL=86400 \
|
||||
_APP_LOGGING_PROVIDER= \
|
||||
_APP_LOGGING_CONFIG=
|
||||
ENV _APP_VERSION=$VERSION \
|
||||
_APP_HOME=https://appwrite.io
|
||||
|
||||
RUN \
|
||||
if [ "$DEBUG" == "true" ]; then \
|
||||
|
|
@ -136,6 +52,7 @@ COPY --from=node /usr/local/src/console/build /usr/src/code/console
|
|||
|
||||
# Add Source Code
|
||||
COPY ./app /usr/src/code/app
|
||||
COPY ./public /usr/src/code/public
|
||||
COPY ./bin /usr/local/bin
|
||||
COPY ./docs /usr/src/code/docs
|
||||
COPY ./src /usr/src/code/src
|
||||
|
|
@ -156,12 +73,12 @@ RUN mkdir -p /storage/uploads && \
|
|||
|
||||
# Executables
|
||||
RUN chmod +x /usr/local/bin/doctor && \
|
||||
chmod +x /usr/local/bin/maintenance && \
|
||||
chmod +x /usr/local/bin/maintenance && \
|
||||
chmod +x /usr/local/bin/usage && \
|
||||
chmod +x /usr/local/bin/install && \
|
||||
chmod +x /usr/local/bin/upgrade && \
|
||||
chmod +x /usr/local/bin/migrate && \
|
||||
chmod +x /usr/local/bin/realtime && \
|
||||
chmod +x /usr/local/bin/executor && \
|
||||
chmod +x /usr/local/bin/schedule && \
|
||||
chmod +x /usr/local/bin/sdks && \
|
||||
chmod +x /usr/local/bin/specs && \
|
||||
|
|
@ -176,13 +93,23 @@ RUN chmod +x /usr/local/bin/doctor && \
|
|||
chmod +x /usr/local/bin/worker-builds && \
|
||||
chmod +x /usr/local/bin/worker-mails && \
|
||||
chmod +x /usr/local/bin/worker-messaging && \
|
||||
chmod +x /usr/local/bin/worker-webhooks
|
||||
chmod +x /usr/local/bin/worker-webhooks && \
|
||||
chmod +x /usr/local/bin/worker-migrations
|
||||
|
||||
# Cloud Executabless
|
||||
RUN chmod +x /usr/local/bin/hamster && \
|
||||
chmod +x /usr/local/bin/volume-sync && \
|
||||
chmod +x /usr/local/bin/patch-delete-schedule-updated-at-attribute && \
|
||||
chmod +x /usr/local/bin/patch-delete-project-collections && \
|
||||
chmod +x /usr/local/bin/clear-card-cache && \
|
||||
chmod +x /usr/local/bin/calc-users-stats && \
|
||||
chmod +x /usr/local/bin/calc-tier-stats
|
||||
|
||||
# Letsencrypt Permissions
|
||||
RUN mkdir -p /etc/letsencrypt/live/ && chmod -Rf 755 /etc/letsencrypt/live/
|
||||
|
||||
# Enable Extensions
|
||||
RUN if [ "$DEBUG" == "true" ]; then printf "zend_extension=yasd \nyasd.debug_mode=remote \nyasd.init_file=/usr/local/dev/yasd_init.php \nyasd.remote_port=9005 \nyasd.log_level=-1" >> /usr/local/etc/php/conf.d/yasd.ini; fi
|
||||
RUN if [ "$DEBUG" == "true" ]; then printf "zend_extension=yasd \nyasd.debug_mode=remote \nyasd.init_file=/usr/src/code/dev/yasd_init.php \nyasd.remote_port=9005 \nyasd.log_level=-1" >> /usr/local/etc/php/conf.d/yasd.ini; fi
|
||||
|
||||
RUN if [ "$DEBUG" == "true" ]; then echo "opcache.enable=0" >> /usr/local/etc/php/conf.d/appwrite.ini; fi
|
||||
RUN echo "opcache.preload_user=www-data" >> /usr/local/etc/php/conf.d/appwrite.ini
|
||||
|
|
|
|||
23
README-CN.md
23
README-CN.md
|
|
@ -1,5 +1,4 @@
|
|||
> 准备好迎接狂风暴'云'了吗? 🌩 ☂️
|
||||
> Appwrite Cloud即将到来!你能够通过https://appwrite.io/cloud了解更多的资讯, 注册即可领取试用额度哦
|
||||
> 好消息!Appwrite 云现已进入公开测试版!立即访问 cloud.appwrite.io 注册,体验无忧的托管服务。今天就加入我们的云端吧!☁️🎉
|
||||
|
||||
<br />
|
||||
<p align="center">
|
||||
|
|
@ -24,7 +23,7 @@
|
|||
|
||||
[English](README.md) | 简体中文
|
||||
|
||||
[**我们发布了 Appwrite Console 2.0 版本,点击这里了解更多!**](https://medium.com/appwrite-io/announcing-console-2-0-2e0e96891cb0?source=friends_link&sk=7a82b4069778e3adc165dc026e960fe1)
|
||||
[**Appwrite 云公开测试版!立即注册!**](https://cloud.appwrite.io)
|
||||
|
||||
Appwrite是一个基于Docker的端到端开发者平台,其容器化的微服务库可应用于网页端,移动端,以及后端。Appwrite 通过视觉化界面简化了从零开始编写 API 的繁琐过程,在保证软件安全的前提下为开发者创造了一个高效的开发环境。
|
||||
|
||||
|
|
@ -67,7 +66,7 @@ docker run -it --rm \
|
|||
--volume /var/run/docker.sock:/var/run/docker.sock \
|
||||
--volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \
|
||||
--entrypoint="install" \
|
||||
appwrite/appwrite:1.2.1
|
||||
appwrite/appwrite:1.4.3
|
||||
```
|
||||
|
||||
### Windows
|
||||
|
|
@ -79,7 +78,7 @@ docker run -it --rm ^
|
|||
--volume //var/run/docker.sock:/var/run/docker.sock ^
|
||||
--volume "%cd%"/appwrite:/usr/src/code/appwrite:rw ^
|
||||
--entrypoint="install" ^
|
||||
appwrite/appwrite:1.2.1
|
||||
appwrite/appwrite:1.4.3
|
||||
```
|
||||
|
||||
#### PowerShell
|
||||
|
|
@ -89,7 +88,7 @@ docker run -it --rm `
|
|||
--volume /var/run/docker.sock:/var/run/docker.sock `
|
||||
--volume ${pwd}/appwrite:/usr/src/code/appwrite:rw `
|
||||
--entrypoint="install" `
|
||||
appwrite/appwrite:1.2.1
|
||||
appwrite/appwrite:1.4.3
|
||||
```
|
||||
|
||||
运行后,可以在浏览器上访问 http://localhost 找到 Appwrite 控制台。在非 Linux 的本机主机上完成安装后,服务器可能需要几分钟才能启动。
|
||||
|
|
@ -114,14 +113,14 @@ docker run -it --rm `
|
|||
|
||||
### 软件服务
|
||||
|
||||
* [**帐户**](https://appwrite.io/docs/client/account) -管理当前用户的帐户和登录方式。跟踪和管理用户 Session,登录设备,登录方法和查看相关记录。
|
||||
* [**帐户**](https://appwrite.io/docs/references/cloud/client-web/account) -管理当前用户的帐户和登录方式。跟踪和管理用户 Session,登录设备,登录方法和查看相关记录。
|
||||
* [**用户**](https://appwrite.io/docs/server/users) - 在以管理员模式登录时管理和列出所有用户。
|
||||
* [**团队**](https://appwrite.io/docs/client/teams) - 管理用户分组。邀请成员,管理团队中的用户权限和用户角色。
|
||||
* [**数据库**](https://appwrite.io/docs/client/databases) - 管理数据库文档和文档集。用检索界面来对文档和文档集进行读取,创建,更新,和删除。
|
||||
* [**贮存**](https://appwrite.io/docs/client/storage) - 管理文件的阅读、创建、删除和预览。设置文件的预览来满足程序的个性化需求。所有文件都由 ClamAV 扫描并安全存储和加密。
|
||||
* [**团队**](https://appwrite.io/docs/references/cloud/client-web/teams) - 管理用户分组。邀请成员,管理团队中的用户权限和用户角色。
|
||||
* [**数据库**](https://appwrite.io/docs/references/cloud/client-web/databases) - 管理数据库文档和文档集。用检索界面来对文档和文档集进行读取,创建,更新,和删除。
|
||||
* [**贮存**](https://appwrite.io/docs/references/cloud/client-web/storage) - 管理文件的阅读、创建、删除和预览。设置文件的预览来满足程序的个性化需求。所有文件都由 ClamAV 扫描并安全存储和加密。
|
||||
* [**云函数**](https://appwrite.io/docs/server/functions) - 在安全,隔离的环境中运行自定义代码。这些代码可以被事件,CRON,或者手动操作触发。
|
||||
* [**语言适配**](https://appwrite.io/docs/client/locale) - 根据用户所在的的国家和地区做出合适的语言适配。
|
||||
* [**头像**](https://appwrite.io/docs/client/avatars) -管理用户头像、国家旗帜、浏览器图标、信用卡符号,和生成二维码。
|
||||
* [**语言适配**](https://appwrite.io/docs/references/cloud/client-web/locale) - 根据用户所在的的国家和地区做出合适的语言适配。
|
||||
* [**头像**](https://appwrite.io/docs/references/cloud/client-web/avatars) -管理用户头像、国家旗帜、浏览器图标、信用卡符号,和生成二维码。
|
||||
如需完整的 API 界面文档,请访问 [https://appwrite.io/docs](https://appwrite.io/docs)。如需更多教程、新闻和公告,请订阅我们的 [博客](https://medium.com/appwrite-io) 和 加入我们的[Discord 社区](https://discord.gg/GSeTUeA)。
|
||||
|
||||
### 开发套件
|
||||
|
|
|
|||
34
README.md
34
README.md
|
|
@ -1,12 +1,11 @@
|
|||
> It's going to get cloudy! 🌩 ☂️
|
||||
> The Appwrite Cloud is coming soon! You can learn more about our upcoming hosted solution and signup for free credits at: https://appwrite.io/cloud
|
||||
> Great news! Appwrite Cloud is now in public beta! Sign up at [cloud.appwrite.io](https://cloud.appwrite.io) for a hassle-free, hosted experience. Join us in the Cloud today! ☁️🎉
|
||||
|
||||
<br />
|
||||
<p align="center">
|
||||
<a href="https://appwrite.io" target="_blank"><img width="260" height="39" src="https://appwrite.io/images/appwrite.svg" alt="Appwrite Logo"></a>
|
||||
<a href="https://appwrite.io" target="_blank"><img src="./public/images/banner.png" alt="Appwrite Logo"></a>
|
||||
<br />
|
||||
<br />
|
||||
<b>A complete backend solution for your [Flutter / Vue / Angular / React / iOS / Android / *ANY OTHER*] app</b>
|
||||
<b>Appwrite is a backend platform for developing Web, Mobile, and Flutter applications. Built with the open source community and optimized for developer experience in the coding languages you love.</b>
|
||||
<br />
|
||||
<br />
|
||||
</p>
|
||||
|
|
@ -26,7 +25,7 @@
|
|||
|
||||
English | [简体中文](README-CN.md)
|
||||
|
||||
[**Announcing Appwrite 1.2 with GraphQL support! Learn what's new!**](https://appwrite.io/graphql)
|
||||
[**Announcing Appwrite Cloud Public Beta! Sign up today!**](https://cloud.appwrite.io)
|
||||
|
||||
Appwrite is an end-to-end backend server for Web, Mobile, Native, or Backend apps packaged as a set of Docker<nobr> microservices. Appwrite abstracts the complexity and repetitiveness required to build a modern backend API from scratch and allows you to build secure apps faster.
|
||||
|
||||
|
|
@ -51,6 +50,7 @@ Table of Contents:
|
|||
- [CMD](#cmd)
|
||||
- [PowerShell](#powershell)
|
||||
- [Upgrade from an Older Version](#upgrade-from-an-older-version)
|
||||
- [One-Click Setups](#one-click-setups)
|
||||
- [Getting Started](#getting-started)
|
||||
- [Services](#services)
|
||||
- [SDKs](#sdks)
|
||||
|
|
@ -76,7 +76,7 @@ docker run -it --rm \
|
|||
--volume /var/run/docker.sock:/var/run/docker.sock \
|
||||
--volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \
|
||||
--entrypoint="install" \
|
||||
appwrite/appwrite:1.2.1
|
||||
appwrite/appwrite:1.4.3
|
||||
```
|
||||
|
||||
### Windows
|
||||
|
|
@ -88,7 +88,7 @@ docker run -it --rm ^
|
|||
--volume //var/run/docker.sock:/var/run/docker.sock ^
|
||||
--volume "%cd%"/appwrite:/usr/src/code/appwrite:rw ^
|
||||
--entrypoint="install" ^
|
||||
appwrite/appwrite:1.2.1
|
||||
appwrite/appwrite:1.4.3
|
||||
```
|
||||
|
||||
#### PowerShell
|
||||
|
|
@ -98,7 +98,7 @@ docker run -it --rm `
|
|||
--volume /var/run/docker.sock:/var/run/docker.sock `
|
||||
--volume ${pwd}/appwrite:/usr/src/code/appwrite:rw `
|
||||
--entrypoint="install" `
|
||||
appwrite/appwrite:1.2.1
|
||||
appwrite/appwrite:1.4.3
|
||||
```
|
||||
|
||||
Once the Docker installation is complete, go to http://localhost to access the Appwrite console from your browser. Please note that on non-Linux native hosts, the server might take a few minutes to start after completing the installation.
|
||||
|
|
@ -129,6 +129,12 @@ Choose from one of the providers below:
|
|||
<br /><sub><b>Gitpod</b></sub></a>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center" width="100" height="100">
|
||||
<a href="https://www.linode.com/marketplace/apps/appwrite/appwrite/">
|
||||
<img width="50" height="39" src="public/images/integrations/akamai-logo.svg" alt="Akamai Logo" />
|
||||
<br /><sub><b>Akamai Compute</b></sub></a>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
|
@ -145,15 +151,15 @@ Getting started with Appwrite is as easy as creating a new project, choosing you
|
|||
|
||||
### Services
|
||||
|
||||
- [**Account**](https://appwrite.io/docs/client/account) - Manage current user authentication and account. Track and manage the user sessions, devices, sign-in methods, and security logs.
|
||||
- [**Account**](https://appwrite.io/docs/references/cloud/client-web/account) - Manage current user authentication and account. Track and manage the user sessions, devices, sign-in methods, and security logs.
|
||||
- [**Users**](https://appwrite.io/docs/server/users) - Manage and list all project users when building backend integrations with Server SDKs.
|
||||
- [**Teams**](https://appwrite.io/docs/client/teams) - Manage and group users in teams. Manage memberships, invites, and user roles within a team.
|
||||
- [**Databases**](https://appwrite.io/docs/client/databases) - Manage databases, collections, and documents. Read, create, update, and delete documents and filter lists of document collections using advanced filters.
|
||||
- [**Storage**](https://appwrite.io/docs/client/storage) - Manage storage files. Read, create, delete, and preview files. Manipulate the preview of your files to perfectly fit your app. All files are scanned by ClamAV and stored in a secure and encrypted way.
|
||||
- [**Teams**](https://appwrite.io/docs/references/cloud/client-web/teams) - Manage and group users in teams. Manage memberships, invites, and user roles within a team.
|
||||
- [**Databases**](https://appwrite.io/docs/references/cloud/client-web/databases) - Manage databases, collections, and documents. Read, create, update, and delete documents and filter lists of document collections using advanced filters.
|
||||
- [**Storage**](https://appwrite.io/docs/references/cloud/client-web/storage) - Manage storage files. Read, create, delete, and preview files. Manipulate the preview of your files to perfectly fit your app. All files are scanned by ClamAV and stored in a secure and encrypted way.
|
||||
- [**Functions**](https://appwrite.io/docs/server/functions) - Customize your Appwrite server by executing your custom code in a secure, isolated environment. You can trigger your code on any Appwrite system event either manually or using a CRON schedule.
|
||||
- [**Realtime**](https://appwrite.io/docs/realtime) - Listen to real-time events for any of your Appwrite services including users, storage, functions, databases, and more.
|
||||
- [**Locale**](https://appwrite.io/docs/client/locale) - Track your user's location and manage your app locale-based data.
|
||||
- [**Avatars**](https://appwrite.io/docs/client/avatars) - Manage your users' avatars, countries' flags, browser icons, and credit card symbols. Generate QR codes from links or plaintext strings.
|
||||
- [**Locale**](https://appwrite.io/docs/references/cloud/client-web/locale) - Track your user's location and manage your app locale-based data.
|
||||
- [**Avatars**](https://appwrite.io/docs/references/cloud/client-web/avatars) - Manage your users' avatars, countries' flags, browser icons, and credit card symbols. Generate QR codes from links or plaintext strings.
|
||||
|
||||
For the complete API documentation, visit [https://appwrite.io/docs](https://appwrite.io/docs). For more tutorials, news and announcements check out our [blog](https://medium.com/appwrite-io) and [Discord Server](https://discord.gg/GSeTUeA).
|
||||
|
||||
|
|
|
|||
|
|
@ -4,11 +4,12 @@
|
|||
|
||||
| Version | Supported |
|
||||
| --------- | ------------------ |
|
||||
| <= 0.14.x | :x: |
|
||||
| 0.15.x | :white_check_mark: |
|
||||
| <= 0.15.x | :x: |
|
||||
| 1.0.x | :white_check_mark: |
|
||||
| 1.1.x | :white_check_mark: |
|
||||
| 1.2.x | :white_check_mark: |
|
||||
| 1.3.x | :white_check_mark: |
|
||||
| 1.4.x | :white_check_mark: |
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
|
|
|
|||
10000
app/assets/security/10k-common-passwords
Normal file
10000
app/assets/security/10k-common-passwords
Normal file
File diff suppressed because it is too large
Load diff
195
app/cli.php
195
app/cli.php
|
|
@ -3,30 +3,193 @@
|
|||
require_once __DIR__ . '/init.php';
|
||||
require_once __DIR__ . '/controllers/general.php';
|
||||
|
||||
use Utopia\App;
|
||||
use Appwrite\Event\Func;
|
||||
use Appwrite\Platform\Appwrite;
|
||||
use Utopia\CLI\CLI;
|
||||
use Utopia\CLI\Console;
|
||||
use Utopia\Database\Validator\Authorization;
|
||||
use Utopia\Platform\Service;
|
||||
use Utopia\App;
|
||||
use Utopia\CLI\Console;
|
||||
use Utopia\Cache\Adapter\Sharding;
|
||||
use Utopia\Cache\Cache;
|
||||
use Utopia\Config\Config;
|
||||
use Utopia\Database\Database;
|
||||
use Utopia\Database\Document;
|
||||
use Utopia\Logger\Log;
|
||||
use Utopia\Pools\Group;
|
||||
use Utopia\Registry\Registry;
|
||||
|
||||
Authorization::disable();
|
||||
|
||||
$cli = new CLI();
|
||||
CLI::setResource('register', fn()=>$register);
|
||||
|
||||
include 'tasks/doctor.php';
|
||||
include 'tasks/maintenance.php';
|
||||
include 'tasks/install.php';
|
||||
include 'tasks/migrate.php';
|
||||
include 'tasks/sdks.php';
|
||||
include 'tasks/specs.php';
|
||||
include 'tasks/ssl.php';
|
||||
include 'tasks/vars.php';
|
||||
include 'tasks/usage.php';
|
||||
CLI::setResource('cache', function ($pools) {
|
||||
$list = Config::getParam('pools-cache', []);
|
||||
$adapters = [];
|
||||
|
||||
foreach ($list as $value) {
|
||||
$adapters[] = $pools
|
||||
->get($value)
|
||||
->pop()
|
||||
->getResource()
|
||||
;
|
||||
}
|
||||
|
||||
return new Cache(new Sharding($adapters));
|
||||
}, ['pools']);
|
||||
|
||||
CLI::setResource('pools', function (Registry $register) {
|
||||
return $register->get('pools');
|
||||
}, ['register']);
|
||||
|
||||
CLI::setResource('dbForConsole', function ($pools, $cache) {
|
||||
$sleep = 3;
|
||||
$maxAttempts = 5;
|
||||
$attempts = 0;
|
||||
$ready = false;
|
||||
|
||||
do {
|
||||
$attempts++;
|
||||
try {
|
||||
// Prepare database connection
|
||||
$dbAdapter = $pools
|
||||
->get('console')
|
||||
->pop()
|
||||
->getResource();
|
||||
|
||||
$dbForConsole = new Database($dbAdapter, $cache);
|
||||
$dbForConsole->setNamespace('_console');
|
||||
|
||||
// Ensure tables exist
|
||||
$collections = Config::getParam('collections', [])['console'];
|
||||
$last = \array_key_last($collections);
|
||||
|
||||
if (!($dbForConsole->exists($dbForConsole->getDefaultDatabase(), $last))) { /** TODO cache ready variable using registry */
|
||||
throw new Exception('Tables not ready yet.');
|
||||
}
|
||||
|
||||
$ready = true;
|
||||
} catch (\Exception $err) {
|
||||
Console::warning($err->getMessage());
|
||||
$pools->get('console')->reclaim();
|
||||
sleep($sleep);
|
||||
}
|
||||
} while ($attempts < $maxAttempts && !$ready);
|
||||
|
||||
if (!$ready) {
|
||||
throw new Exception("Console is not ready yet. Please try again later.");
|
||||
}
|
||||
|
||||
return $dbForConsole;
|
||||
}, ['pools', 'cache']);
|
||||
|
||||
CLI::setResource('getProjectDB', function (Group $pools, Database $dbForConsole, $cache) {
|
||||
$databases = []; // TODO: @Meldiron This should probably be responsibility of utopia-php/pools
|
||||
|
||||
$getProjectDB = function (Document $project) use ($pools, $dbForConsole, $cache, &$databases) {
|
||||
if ($project->isEmpty() || $project->getId() === 'console') {
|
||||
return $dbForConsole;
|
||||
}
|
||||
|
||||
$databaseName = $project->getAttribute('database');
|
||||
|
||||
if (isset($databases[$databaseName])) {
|
||||
$database = $databases[$databaseName];
|
||||
$database->setNamespace('_' . $project->getInternalId());
|
||||
return $database;
|
||||
}
|
||||
|
||||
$dbAdapter = $pools
|
||||
->get($databaseName)
|
||||
->pop()
|
||||
->getResource();
|
||||
|
||||
$database = new Database($dbAdapter, $cache);
|
||||
|
||||
$databases[$databaseName] = $database;
|
||||
|
||||
$database->setNamespace('_' . $project->getInternalId());
|
||||
|
||||
return $database;
|
||||
};
|
||||
|
||||
return $getProjectDB;
|
||||
}, ['pools', 'dbForConsole', 'cache']);
|
||||
|
||||
CLI::setResource('influxdb', function (Registry $register) {
|
||||
$client = $register->get('influxdb'); /** @var InfluxDB\Client $client */
|
||||
$attempts = 0;
|
||||
$max = 10;
|
||||
$sleep = 1;
|
||||
|
||||
do { // check if telegraf database is ready
|
||||
try {
|
||||
$attempts++;
|
||||
$database = $client->selectDB('telegraf');
|
||||
if (in_array('telegraf', $client->listDatabases())) {
|
||||
break; // leave the do-while if successful
|
||||
}
|
||||
} catch (\Throwable $th) {
|
||||
Console::warning("InfluxDB not ready. Retrying connection ({$attempts})...");
|
||||
if ($attempts >= $max) {
|
||||
throw new \Exception('InfluxDB database not ready yet');
|
||||
}
|
||||
sleep($sleep);
|
||||
}
|
||||
} while ($attempts < $max);
|
||||
return $database;
|
||||
}, ['register']);
|
||||
|
||||
CLI::setResource('queueForFunctions', function (Group $pools) {
|
||||
return new Func($pools->get('queue')->pop()->getResource());
|
||||
}, ['pools']);
|
||||
|
||||
CLI::setResource('logError', function (Registry $register) {
|
||||
return function (Throwable $error, string $namespace, string $action) use ($register) {
|
||||
$logger = $register->get('logger');
|
||||
|
||||
if ($logger) {
|
||||
$version = App::getEnv('_APP_VERSION', 'UNKNOWN');
|
||||
|
||||
$log = new Log();
|
||||
$log->setNamespace($namespace);
|
||||
$log->setServer(\gethostname());
|
||||
$log->setVersion($version);
|
||||
$log->setType(Log::TYPE_ERROR);
|
||||
$log->setMessage($error->getMessage());
|
||||
|
||||
$log->addTag('code', $error->getCode());
|
||||
$log->addTag('verboseType', get_class($error));
|
||||
|
||||
$log->addExtra('file', $error->getFile());
|
||||
$log->addExtra('line', $error->getLine());
|
||||
$log->addExtra('trace', $error->getTraceAsString());
|
||||
$log->addExtra('detailedTrace', $error->getTrace());
|
||||
|
||||
$log->setAction($action);
|
||||
|
||||
$isProduction = App::getEnv('_APP_ENV', 'development') === 'production';
|
||||
$log->setEnvironment($isProduction ? Log::ENVIRONMENT_PRODUCTION : Log::ENVIRONMENT_STAGING);
|
||||
|
||||
$responseCode = $logger->addLog($log);
|
||||
Console::info('Usage stats log pushed with status code: ' . $responseCode);
|
||||
}
|
||||
|
||||
Console::warning("Failed: {$error->getMessage()}");
|
||||
Console::warning($error->getTraceAsString());
|
||||
};
|
||||
}, ['register']);
|
||||
|
||||
$platform = new Appwrite();
|
||||
$platform->init(Service::TYPE_CLI);
|
||||
|
||||
$cli = $platform->getCli();
|
||||
|
||||
$cli
|
||||
->task('version')
|
||||
->desc('Get the server version')
|
||||
->action(function () {
|
||||
Console::log(App::getEnv('_APP_VERSION', 'UNKNOWN'));
|
||||
->error()
|
||||
->inject('error')
|
||||
->action(function (Throwable $error) {
|
||||
Console::error($error->getMessage());
|
||||
});
|
||||
|
||||
$cli->run();
|
||||
|
|
|
|||
|
|
@ -2,20 +2,21 @@
|
|||
|
||||
return [
|
||||
// Codes based on: https://github.com/matomo-org/device-detector/blob/master/Parser/Client/Browser.php
|
||||
'aa' => __DIR__ . '/browsers/avant.png',
|
||||
'an' => __DIR__ . '/browsers/android-webview-beta.png',
|
||||
'ch' => __DIR__ . '/browsers/chrome.png',
|
||||
'ci' => __DIR__ . '/browsers/chrome.png', //Chrome Mobile iOS
|
||||
'cm' => __DIR__ . '/browsers/chrome.png', //Chrome Mobile
|
||||
'cr' => __DIR__ . '/browsers/chromium.png',
|
||||
'ff' => __DIR__ . '/browsers/firefox.png',
|
||||
'sf' => __DIR__ . '/browsers/safari.png',
|
||||
'mf' => __DIR__ . '/browsers/safari.png',
|
||||
'ps' => __DIR__ . '/browsers/edge.png',
|
||||
'oi' => __DIR__ . '/browsers/edge.png',
|
||||
'om' => __DIR__ . '/browsers/opera-mini.png',
|
||||
'op' => __DIR__ . '/browsers/opera.png',
|
||||
'on' => __DIR__ . '/browsers/opera.png',
|
||||
'aa' => ['name' => 'Avant Browser', 'path' => __DIR__ . '/browsers/avant.png'],
|
||||
'an' => ['name' => 'Android WebView Beta', 'path' => __DIR__ . '/browsers/android-webview-beta.png'],
|
||||
'ch' => ['name' => 'Google Chrome', 'path' => __DIR__ . '/browsers/chrome.png'],
|
||||
'ci' => ['name' => 'Google Chrome (iOS)', 'path' => __DIR__ . '/browsers/chrome.png'],
|
||||
'cm' => ['name' => 'Google Chrome (Mobile)', 'path' => __DIR__ . '/browsers/chrome.png'],
|
||||
'cr' => ['name' => 'Chromium', 'path' => __DIR__ . '/browsers/chromium.png'],
|
||||
'ff' => ['name' => 'Mozilla Firefox', 'path' => __DIR__ . '/browsers/firefox.png'],
|
||||
'sf' => ['name' => 'Safari', 'path' => __DIR__ . '/browsers/safari.png'],
|
||||
'mf' => ['name' => 'Mobile Safari', 'path' => __DIR__ . '/browsers/safari.png'],
|
||||
'ps' => ['name' => 'Microsoft Edge', 'path' => __DIR__ . '/browsers/edge.png'],
|
||||
'oi' => ['name' => 'Microsoft Edge (iOS)', 'path' => __DIR__ . '/browsers/edge.png'],
|
||||
'om' => ['name' => 'Opera Mini', 'path' => __DIR__ . '/browsers/opera-mini.png'],
|
||||
'op' => ['name' => 'Opera', 'path' => __DIR__ . '/browsers/opera.png'],
|
||||
'on' => ['name' => 'Opera (Next)', 'path' => __DIR__ . '/browsers/opera.png'],
|
||||
|
||||
|
||||
/*
|
||||
'36' => '360 Phone Browser',
|
||||
|
|
|
|||
|
|
@ -1,20 +1,20 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'amex' => __DIR__ . '/credit-cards/amex.png',
|
||||
'argencard' => __DIR__ . '/credit-cards/argencard.png',
|
||||
'cabal' => __DIR__ . '/credit-cards/cabal.png',
|
||||
'censosud' => __DIR__ . '/credit-cards/consosud.png',
|
||||
'diners' => __DIR__ . '/credit-cards/diners.png',
|
||||
'discover' => __DIR__ . '/credit-cards/discover.png',
|
||||
'elo' => __DIR__ . '/credit-cards/elo.png',
|
||||
'hipercard' => __DIR__ . '/credit-cards/hipercard.png',
|
||||
'jcb' => __DIR__ . '/credit-cards/jcb.png',
|
||||
'mastercard' => __DIR__ . '/credit-cards/mastercard.png',
|
||||
'naranja' => __DIR__ . '/credit-cards/naranja.png',
|
||||
'targeta-shopping' => __DIR__ . '/credit-cards/tarjeta-shopping.png',
|
||||
'union-china-pay' => __DIR__ . '/credit-cards/union-china-pay.png',
|
||||
'visa' => __DIR__ . '/credit-cards/visa.png',
|
||||
'mir' => __DIR__ . '/credit-cards/mir.png',
|
||||
'maestro' => __DIR__ . '/credit-cards/maestro.png',
|
||||
];
|
||||
'amex' => ['name' => 'American Express', 'path' => __DIR__ . '/credit-cards/amex.png'],
|
||||
'argencard' => ['name' => 'Argencard', 'path' => __DIR__ . '/credit-cards/argencard.png'],
|
||||
'cabal' => ['name' => 'Cabal', 'path' => __DIR__ . '/credit-cards/cabal.png'],
|
||||
'censosud' => ['name' => 'Consosud', 'path' => __DIR__ . '/credit-cards/consosud.png'],
|
||||
'diners' => ['name' => 'Diners Club', 'path' => __DIR__ . '/credit-cards/diners.png'],
|
||||
'discover' => ['name' => 'Discover', 'path' => __DIR__ . '/credit-cards/discover.png'],
|
||||
'elo' => ['name' => 'Elo', 'path' => __DIR__ . '/credit-cards/elo.png'],
|
||||
'hipercard' => ['name' => 'Hipercard', 'path' => __DIR__ . '/credit-cards/hipercard.png'],
|
||||
'jcb' => ['name' => 'JCB', 'path' => __DIR__ . '/credit-cards/jcb.png'],
|
||||
'mastercard' => ['name' => 'Mastercard', 'path' => __DIR__ . '/credit-cards/mastercard.png'],
|
||||
'naranja' => ['name' => 'Naranja', 'path' => __DIR__ . '/credit-cards/naranja.png'],
|
||||
'targeta-shopping' => ['name' => 'Tarjeta Shopping', 'path' => __DIR__ . '/credit-cards/tarjeta-shopping.png'],
|
||||
'union-china-pay' => ['name' => 'Union China Pay', 'path' => __DIR__ . '/credit-cards/union-china-pay.png'],
|
||||
'visa' => ['name' => 'Visa', 'path' => __DIR__ . '/credit-cards/visa.png'],
|
||||
'mir' => ['name' => 'MIR', 'path' => __DIR__ . '/credit-cards/mir.png'],
|
||||
'maestro' => ['name' => 'Maestro', 'path' => __DIR__ . '/credit-cards/maestro.png']
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,198 +1,198 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'af' => __DIR__ . '/flags/af.png',
|
||||
'ao' => __DIR__ . '/flags/ao.png',
|
||||
'al' => __DIR__ . '/flags/al.png',
|
||||
'ad' => __DIR__ . '/flags/ad.png',
|
||||
'ae' => __DIR__ . '/flags/ae.png',
|
||||
'ar' => __DIR__ . '/flags/ar.png',
|
||||
'am' => __DIR__ . '/flags/am.png',
|
||||
'ag' => __DIR__ . '/flags/ag.png',
|
||||
'au' => __DIR__ . '/flags/au.png',
|
||||
'at' => __DIR__ . '/flags/at.png',
|
||||
'az' => __DIR__ . '/flags/az.png',
|
||||
'bi' => __DIR__ . '/flags/bi.png',
|
||||
'be' => __DIR__ . '/flags/be.png',
|
||||
'bj' => __DIR__ . '/flags/bj.png',
|
||||
'bf' => __DIR__ . '/flags/bf.png',
|
||||
'bd' => __DIR__ . '/flags/bd.png',
|
||||
'bg' => __DIR__ . '/flags/bg.png',
|
||||
'bh' => __DIR__ . '/flags/bh.png',
|
||||
'bs' => __DIR__ . '/flags/bs.png',
|
||||
'ba' => __DIR__ . '/flags/ba.png',
|
||||
'by' => __DIR__ . '/flags/by.png',
|
||||
'bz' => __DIR__ . '/flags/bz.png',
|
||||
'bo' => __DIR__ . '/flags/bo.png',
|
||||
'br' => __DIR__ . '/flags/br.png',
|
||||
'bb' => __DIR__ . '/flags/bb.png',
|
||||
'bn' => __DIR__ . '/flags/bn.png',
|
||||
'bt' => __DIR__ . '/flags/bt.png',
|
||||
'bw' => __DIR__ . '/flags/bw.png',
|
||||
'cf' => __DIR__ . '/flags/cf.png',
|
||||
'ca' => __DIR__ . '/flags/ca.png',
|
||||
'ch' => __DIR__ . '/flags/ch.png',
|
||||
'cl' => __DIR__ . '/flags/cl.png',
|
||||
'cn' => __DIR__ . '/flags/cn.png',
|
||||
'ci' => __DIR__ . '/flags/ci.png',
|
||||
'cm' => __DIR__ . '/flags/cm.png',
|
||||
'cd' => __DIR__ . '/flags/cd.png',
|
||||
'cg' => __DIR__ . '/flags/cg.png',
|
||||
'co' => __DIR__ . '/flags/co.png',
|
||||
'km' => __DIR__ . '/flags/km.png',
|
||||
'cv' => __DIR__ . '/flags/cv.png',
|
||||
'cr' => __DIR__ . '/flags/cr.png',
|
||||
'cu' => __DIR__ . '/flags/cu.png',
|
||||
'cy' => __DIR__ . '/flags/cy.png',
|
||||
'cz' => __DIR__ . '/flags/cz.png',
|
||||
'de' => __DIR__ . '/flags/de.png',
|
||||
'dj' => __DIR__ . '/flags/dj.png',
|
||||
'dm' => __DIR__ . '/flags/dm.png',
|
||||
'dk' => __DIR__ . '/flags/dk.png',
|
||||
'do' => __DIR__ . '/flags/do.png',
|
||||
'dz' => __DIR__ . '/flags/dz.png',
|
||||
'ec' => __DIR__ . '/flags/ec.png',
|
||||
'eg' => __DIR__ . '/flags/eg.png',
|
||||
'er' => __DIR__ . '/flags/er.png',
|
||||
'es' => __DIR__ . '/flags/es.png',
|
||||
'ee' => __DIR__ . '/flags/ee.png',
|
||||
'et' => __DIR__ . '/flags/et.png',
|
||||
'fi' => __DIR__ . '/flags/fi.png',
|
||||
'fj' => __DIR__ . '/flags/fj.png',
|
||||
'fr' => __DIR__ . '/flags/fr.png',
|
||||
'fm' => __DIR__ . '/flags/fm.png',
|
||||
'ga' => __DIR__ . '/flags/ga.png',
|
||||
'gb' => __DIR__ . '/flags/gb.png',
|
||||
'ge' => __DIR__ . '/flags/ge.png',
|
||||
'gh' => __DIR__ . '/flags/gh.png',
|
||||
'gn' => __DIR__ . '/flags/gn.png',
|
||||
'gm' => __DIR__ . '/flags/gm.png',
|
||||
'gw' => __DIR__ . '/flags/gw.png',
|
||||
'gq' => __DIR__ . '/flags/gq.png',
|
||||
'gr' => __DIR__ . '/flags/gr.png',
|
||||
'gd' => __DIR__ . '/flags/gd.png',
|
||||
'gt' => __DIR__ . '/flags/gt.png',
|
||||
'gy' => __DIR__ . '/flags/gy.png',
|
||||
'hn' => __DIR__ . '/flags/hn.png',
|
||||
'hr' => __DIR__ . '/flags/hr.png',
|
||||
'ht' => __DIR__ . '/flags/ht.png',
|
||||
'hu' => __DIR__ . '/flags/hu.png',
|
||||
'id' => __DIR__ . '/flags/id.png',
|
||||
'in' => __DIR__ . '/flags/in.png',
|
||||
'ie' => __DIR__ . '/flags/ie.png',
|
||||
'ir' => __DIR__ . '/flags/ir.png',
|
||||
'iq' => __DIR__ . '/flags/iq.png',
|
||||
'is' => __DIR__ . '/flags/is.png',
|
||||
'il' => __DIR__ . '/flags/il.png',
|
||||
'it' => __DIR__ . '/flags/it.png',
|
||||
'jm' => __DIR__ . '/flags/jm.png',
|
||||
'jo' => __DIR__ . '/flags/jo.png',
|
||||
'jp' => __DIR__ . '/flags/jp.png',
|
||||
'kz' => __DIR__ . '/flags/kz.png',
|
||||
'ke' => __DIR__ . '/flags/ke.png',
|
||||
'kg' => __DIR__ . '/flags/kg.png',
|
||||
'kh' => __DIR__ . '/flags/kh.png',
|
||||
'ki' => __DIR__ . '/flags/ki.png',
|
||||
'kn' => __DIR__ . '/flags/kn.png',
|
||||
'kr' => __DIR__ . '/flags/kr.png',
|
||||
'kw' => __DIR__ . '/flags/kw.png',
|
||||
'la' => __DIR__ . '/flags/la.png',
|
||||
'lb' => __DIR__ . '/flags/lb.png',
|
||||
'lr' => __DIR__ . '/flags/lr.png',
|
||||
'ly' => __DIR__ . '/flags/ly.png',
|
||||
'lc' => __DIR__ . '/flags/lc.png',
|
||||
'li' => __DIR__ . '/flags/li.png',
|
||||
'lk' => __DIR__ . '/flags/lk.png',
|
||||
'ls' => __DIR__ . '/flags/ls.png',
|
||||
'lt' => __DIR__ . '/flags/ls.png',
|
||||
'lu' => __DIR__ . '/flags/lu.png',
|
||||
'lv' => __DIR__ . '/flags/lv.png',
|
||||
'ma' => __DIR__ . '/flags/ma.png',
|
||||
'mc' => __DIR__ . '/flags/mc.png',
|
||||
'md' => __DIR__ . '/flags/md.png',
|
||||
'mg' => __DIR__ . '/flags/mg.png',
|
||||
'mv' => __DIR__ . '/flags/mv.png',
|
||||
'mx' => __DIR__ . '/flags/mx.png',
|
||||
'mh' => __DIR__ . '/flags/mh.png',
|
||||
'mk' => __DIR__ . '/flags/mk.png',
|
||||
'ml' => __DIR__ . '/flags/ml.png',
|
||||
'mt' => __DIR__ . '/flags/mt.png',
|
||||
'mm' => __DIR__ . '/flags/mm.png',
|
||||
'me' => __DIR__ . '/flags/me.png',
|
||||
'mn' => __DIR__ . '/flags/mn.png',
|
||||
'mz' => __DIR__ . '/flags/mz.png',
|
||||
'mr' => __DIR__ . '/flags/mr.png',
|
||||
'mu' => __DIR__ . '/flags/mu.png',
|
||||
'mw' => __DIR__ . '/flags/mw.png',
|
||||
'my' => __DIR__ . '/flags/my.png',
|
||||
'na' => __DIR__ . '/flags/na.png',
|
||||
'ne' => __DIR__ . '/flags/ne.png',
|
||||
'ng' => __DIR__ . '/flags/ng.png',
|
||||
'ni' => __DIR__ . '/flags/ni.png',
|
||||
'nl' => __DIR__ . '/flags/nl.png',
|
||||
'no' => __DIR__ . '/flags/no.png',
|
||||
'np' => __DIR__ . '/flags/np.png',
|
||||
'nr' => __DIR__ . '/flags/nr.png',
|
||||
'nz' => __DIR__ . '/flags/nz.png',
|
||||
'om' => __DIR__ . '/flags/om.png',
|
||||
'pk' => __DIR__ . '/flags/pk.png',
|
||||
'pa' => __DIR__ . '/flags/pa.png',
|
||||
'pe' => __DIR__ . '/flags/pe.png',
|
||||
'ph' => __DIR__ . '/flags/ph.png',
|
||||
'pw' => __DIR__ . '/flags/pw.png',
|
||||
'pg' => __DIR__ . '/flags/pg.png',
|
||||
'pl' => __DIR__ . '/flags/pl.png',
|
||||
'kp' => __DIR__ . '/flags/kp.png',
|
||||
'pt' => __DIR__ . '/flags/pt.png',
|
||||
'py' => __DIR__ . '/flags/py.png',
|
||||
'qa' => __DIR__ . '/flags/qa.png',
|
||||
'ro' => __DIR__ . '/flags/ro.png',
|
||||
'ru' => __DIR__ . '/flags/ru.png',
|
||||
'rw' => __DIR__ . '/flags/rw.png',
|
||||
'sa' => __DIR__ . '/flags/sa.png',
|
||||
'sd' => __DIR__ . '/flags/sd.png',
|
||||
'sn' => __DIR__ . '/flags/sn.png',
|
||||
'sg' => __DIR__ . '/flags/sg.png',
|
||||
'sb' => __DIR__ . '/flags/sb.png',
|
||||
'sl' => __DIR__ . '/flags/sl.png',
|
||||
'sv' => __DIR__ . '/flags/sv.png',
|
||||
'sm' => __DIR__ . '/flags/sm.png',
|
||||
'so' => __DIR__ . '/flags/so.png',
|
||||
'rs' => __DIR__ . '/flags/rs.png',
|
||||
'ss' => __DIR__ . '/flags/ss.png',
|
||||
'st' => __DIR__ . '/flags/st.png',
|
||||
'sr' => __DIR__ . '/flags/sr.png',
|
||||
'sk' => __DIR__ . '/flags/sk.png',
|
||||
'si' => __DIR__ . '/flags/si.png',
|
||||
'se' => __DIR__ . '/flags/se.png',
|
||||
'sz' => __DIR__ . '/flags/sz.png',
|
||||
'sc' => __DIR__ . '/flags/sc.png',
|
||||
'sy' => __DIR__ . '/flags/sy.png',
|
||||
'td' => __DIR__ . '/flags/td.png',
|
||||
'tg' => __DIR__ . '/flags/tg.png',
|
||||
'th' => __DIR__ . '/flags/th.png',
|
||||
'tj' => __DIR__ . '/flags/tj.png',
|
||||
'tm' => __DIR__ . '/flags/tm.png',
|
||||
'tl' => __DIR__ . '/flags/tl.png',
|
||||
'to' => __DIR__ . '/flags/to.png',
|
||||
'tt' => __DIR__ . '/flags/tt.png',
|
||||
'tn' => __DIR__ . '/flags/tn.png',
|
||||
'tr' => __DIR__ . '/flags/tr.png',
|
||||
'tv' => __DIR__ . '/flags/tv.png',
|
||||
'tz' => __DIR__ . '/flags/tz.png',
|
||||
'ug' => __DIR__ . '/flags/ug.png',
|
||||
'ua' => __DIR__ . '/flags/ua.png',
|
||||
'uy' => __DIR__ . '/flags/uy.png',
|
||||
'us' => __DIR__ . '/flags/us.png',
|
||||
'uz' => __DIR__ . '/flags/uz.png',
|
||||
'va' => __DIR__ . '/flags/va.png',
|
||||
'vc' => __DIR__ . '/flags/vc.png',
|
||||
've' => __DIR__ . '/flags/ve.png',
|
||||
'vn' => __DIR__ . '/flags/vn.png',
|
||||
'vu' => __DIR__ . '/flags/vu.png',
|
||||
'ws' => __DIR__ . '/flags/ws.png',
|
||||
'ye' => __DIR__ . '/flags/ye.png',
|
||||
'za' => __DIR__ . '/flags/za.png',
|
||||
'zm' => __DIR__ . '/flags/zm.png',
|
||||
'zw' => __DIR__ . '/flags/zw.png',
|
||||
'af' => ['name' => 'Afghanistan', 'path' => __DIR__ . '/flags/af.png'],
|
||||
'ao' => ['name' => 'Angola', 'path' => __DIR__ . '/flags/ao.png'],
|
||||
'al' => ['name' => 'Albania', 'path' => __DIR__ . '/flags/al.png'],
|
||||
'ad' => ['name' => 'Andorra', 'path' => __DIR__ . '/flags/ad.png'],
|
||||
'ae' => ['name' => 'United Arab Emirates', 'path' => __DIR__ . '/flags/ae.png'],
|
||||
'ar' => ['name' => 'Argentina', 'path' => __DIR__ . '/flags/ar.png'],
|
||||
'am' => ['name' => 'Armenia', 'path' => __DIR__ . '/flags/am.png'],
|
||||
'ag' => ['name' => 'Antigua and Barbuda', 'path' => __DIR__ . '/flags/ag.png'],
|
||||
'au' => ['name' => 'Australia', 'path' => __DIR__ . '/flags/au.png'],
|
||||
'at' => ['name' => 'Austria', 'path' => __DIR__ . '/flags/at.png'],
|
||||
'az' => ['name' => 'Azerbaijan', 'path' => __DIR__ . '/flags/az.png'],
|
||||
'bi' => ['name' => 'Burundi', 'path' => __DIR__ . '/flags/bi.png'],
|
||||
'be' => ['name' => 'Belgium', 'path' => __DIR__ . '/flags/be.png'],
|
||||
'bj' => ['name' => 'Benin', 'path' => __DIR__ . '/flags/bj.png'],
|
||||
'bf' => ['name' => 'Burkina Faso', 'path' => __DIR__ . '/flags/bf.png'],
|
||||
'bd' => ['name' => 'Bangladesh', 'path' => __DIR__ . '/flags/bd.png'],
|
||||
'bg' => ['name' => 'Bulgaria', 'path' => __DIR__ . '/flags/bg.png'],
|
||||
'bh' => ['name' => 'Bahrain', 'path' => __DIR__ . '/flags/bh.png'],
|
||||
'bs' => ['name' => 'Bahamas', 'path' => __DIR__ . '/flags/bs.png'],
|
||||
'ba' => ['name' => 'Bosnia and Herzegovina', 'path' => __DIR__ . '/flags/ba.png'],
|
||||
'by' => ['name' => 'Belarus', 'path' => __DIR__ . '/flags/by.png'],
|
||||
'bz' => ['name' => 'Belize', 'path' => __DIR__ . '/flags/bz.png'],
|
||||
'bo' => ['name' => 'Bolivia', 'path' => __DIR__ . '/flags/bo.png'],
|
||||
'br' => ['name' => 'Brazil', 'path' => __DIR__ . '/flags/br.png'],
|
||||
'bb' => ['name' => 'Barbados', 'path' => __DIR__ . '/flags/bb.png'],
|
||||
'bn' => ['name' => 'Brunei Darussalam', 'path' => __DIR__ . '/flags/bn.png'],
|
||||
'bt' => ['name' => 'Bhutan', 'path' => __DIR__ . '/flags/bt.png'],
|
||||
'bw' => ['name' => 'Botswana', 'path' => __DIR__ . '/flags/bw.png'],
|
||||
'cf' => ['name' => 'Central African Republic', 'path' => __DIR__ . '/flags/cf.png'],
|
||||
'ca' => ['name' => 'Canada', 'path' => __DIR__ . '/flags/ca.png'],
|
||||
'ch' => ['name' => 'Switzerland', 'path' => __DIR__ . '/flags/ch.png'],
|
||||
'cl' => ['name' => 'Chile', 'path' => __DIR__ . '/flags/cl.png'],
|
||||
'cn' => ['name' => 'China', 'path' => __DIR__ . '/flags/cn.png'],
|
||||
'ci' => ['name' => 'Côte d\'Ivoire', 'path' => __DIR__ . '/flags/ci.png'],
|
||||
'cm' => ['name' => 'Cameroon', 'path' => __DIR__ . '/flags/cm.png'],
|
||||
'cd' => ['name' => 'Democratic Republic of the Congo', 'path' => __DIR__ . '/flags/cd.png'],
|
||||
'cg' => ['name' => 'Republic of the Congo', 'path' => __DIR__ . '/flags/cg.png'],
|
||||
'co' => ['name' => 'Colombia', 'path' => __DIR__ . '/flags/co.png'],
|
||||
'km' => ['name' => 'Comoros', 'path' => __DIR__ . '/flags/km.png'],
|
||||
'cv' => ['name' => 'Cape Verde', 'path' => __DIR__ . '/flags/cv.png'],
|
||||
'cr' => ['name' => 'Costa Rica', 'path' => __DIR__ . '/flags/cr.png'],
|
||||
'cu' => ['name' => 'Cuba', 'path' => __DIR__ . '/flags/cu.png'],
|
||||
'cy' => ['name' => 'Cyprus', 'path' => __DIR__ . '/flags/cy.png'],
|
||||
'cz' => ['name' => 'Czech Republic', 'path' => __DIR__ . '/flags/cz.png'],
|
||||
'de' => ['name' => 'Germany', 'path' => __DIR__ . '/flags/de.png'],
|
||||
'dj' => ['name' => 'Djibouti', 'path' => __DIR__ . '/flags/dj.png'],
|
||||
'dm' => ['name' => 'Dominica', 'path' => __DIR__ . '/flags/dm.png'],
|
||||
'dk' => ['name' => 'Denmark', 'path' => __DIR__ . '/flags/dk.png'],
|
||||
'do' => ['name' => 'Dominican Republic', 'path' => __DIR__ . '/flags/do.png'],
|
||||
'dz' => ['name' => 'Algeria', 'path' => __DIR__ . '/flags/dz.png'],
|
||||
'ec' => ['name' => 'Ecuador', 'path' => __DIR__ . '/flags/ec.png'],
|
||||
'eg' => ['name' => 'Egypt', 'path' => __DIR__ . '/flags/eg.png'],
|
||||
'er' => ['name' => 'Eritrea', 'path' => __DIR__ . '/flags/er.png'],
|
||||
'es' => ['name' => 'Spain', 'path' => __DIR__ . '/flags/es.png'],
|
||||
'ee' => ['name' => 'Estonia', 'path' => __DIR__ . '/flags/ee.png'],
|
||||
'et' => ['name' => 'Ethiopia', 'path' => __DIR__ . '/flags/et.png'],
|
||||
'fi' => ['name' => 'Finland', 'path' => __DIR__ . '/flags/fi.png'],
|
||||
'fj' => ['name' => 'Fiji', 'path' => __DIR__ . '/flags/fj.png'],
|
||||
'fr' => ['name' => 'France', 'path' => __DIR__ . '/flags/fr.png'],
|
||||
'fm' => ['name' => 'Micronesia (Federated States of)', 'path' => __DIR__ . '/flags/fm.png'],
|
||||
'ga' => ['name' => 'Gabon', 'path' => __DIR__ . '/flags/ga.png'],
|
||||
'gb' => ['name' => 'United Kingdom', 'path' => __DIR__ . '/flags/gb.png'],
|
||||
'ge' => ['name' => 'Georgia', 'path' => __DIR__ . '/flags/ge.png'],
|
||||
'gh' => ['name' => 'Ghana', 'path' => __DIR__ . '/flags/gh.png'],
|
||||
'gn' => ['name' => 'Guinea', 'path' => __DIR__ . '/flags/gn.png'],
|
||||
'gm' => ['name' => 'Gambia', 'path' => __DIR__ . '/flags/gm.png'],
|
||||
'gw' => ['name' => 'Guinea-Bissau', 'path' => __DIR__ . '/flags/gw.png'],
|
||||
'gq' => ['name' => 'Equatorial Guinea', 'path' => __DIR__ . '/flags/gq.png'],
|
||||
'gr' => ['name' => 'Greece', 'path' => __DIR__ . '/flags/gr.png'],
|
||||
'gd' => ['name' => 'Grenada', 'path' => __DIR__ . '/flags/gd.png'],
|
||||
'gt' => ['name' => 'Guatemala', 'path' => __DIR__ . '/flags/gt.png'],
|
||||
'gy' => ['name' => 'Guyana', 'path' => __DIR__ . '/flags/gy.png'],
|
||||
'hn' => ['name' => 'Honduras', 'path' => __DIR__ . '/flags/hn.png'],
|
||||
'hr' => ['name' => 'Croatia', 'path' => __DIR__ . '/flags/hr.png'],
|
||||
'ht' => ['name' => 'Haiti', 'path' => __DIR__ . '/flags/ht.png'],
|
||||
'hu' => ['name' => 'Hungary', 'path' => __DIR__ . '/flags/hu.png'],
|
||||
'id' => ['name' => 'Indonesia', 'path' => __DIR__ . '/flags/id.png'],
|
||||
'in' => ['name' => 'India', 'path' => __DIR__ . '/flags/in.png'],
|
||||
'ie' => ['name' => 'Ireland', 'path' => __DIR__ . '/flags/ie.png'],
|
||||
'ir' => ['name' => 'Iran (Islamic Republic of)', 'path' => __DIR__ . '/flags/ir.png'],
|
||||
'iq' => ['name' => 'Iraq', 'path' => __DIR__ . '/flags/iq.png'],
|
||||
'is' => ['name' => 'Iceland', 'path' => __DIR__ . '/flags/is.png'],
|
||||
'il' => ['name' => 'Israel', 'path' => __DIR__ . '/flags/il.png'],
|
||||
'it' => ['name' => 'Italy', 'path' => __DIR__ . '/flags/it.png'],
|
||||
'jm' => ['name' => 'Jamaica', 'path' => __DIR__ . '/flags/jm.png'],
|
||||
'jo' => ['name' => 'Jordan', 'path' => __DIR__ . '/flags/jo.png'],
|
||||
'jp' => ['name' => 'Japan', 'path' => __DIR__ . '/flags/jp.png'],
|
||||
'kz' => ['name' => 'Kazakhstan', 'path' => __DIR__ . '/flags/kz.png'],
|
||||
'ke' => ['name' => 'Kenya', 'path' => __DIR__ . '/flags/ke.png'],
|
||||
'kg' => ['name' => 'Kyrgyzstan', 'path' => __DIR__ . '/flags/kg.png'],
|
||||
'kh' => ['name' => 'Cambodia', 'path' => __DIR__ . '/flags/kh.png'],
|
||||
'ki' => ['name' => 'Kiribati', 'path' => __DIR__ . '/flags/ki.png'],
|
||||
'kn' => ['name' => 'Saint Kitts and Nevis', 'path' => __DIR__ . '/flags/kn.png'],
|
||||
'kr' => ['name' => 'South Korea', 'path' => __DIR__ . '/flags/kr.png'],
|
||||
'kw' => ['name' => 'Kuwait', 'path' => __DIR__ . '/flags/kw.png'],
|
||||
'la' => ['name' => 'Lao People\'s Democratic Republic', 'path' => __DIR__ . '/flags/la.png'],
|
||||
'lb' => ['name' => 'Lebanon', 'path' => __DIR__ . '/flags/lb.png'],
|
||||
'lr' => ['name' => 'Liberia', 'path' => __DIR__ . '/flags/lr.png'],
|
||||
'ly' => ['name' => 'Libya', 'path' => __DIR__ . '/flags/ly.png'],
|
||||
'lc' => ['name' => 'Saint Lucia', 'path' => __DIR__ . '/flags/lc.png'],
|
||||
'li' => ['name' => 'Liechtenstein', 'path' => __DIR__ . '/flags/li.png'],
|
||||
'lk' => ['name' => 'Sri Lanka', 'path' => __DIR__ . '/flags/lk.png'],
|
||||
'ls' => ['name' => 'Lesotho', 'path' => __DIR__ . '/flags/ls.png'],
|
||||
'lt' => ['name' => 'Lithuania', 'path' => __DIR__ . '/flags/lt.png'],
|
||||
'lu' => ['name' => 'Luxembourg', 'path' => __DIR__ . '/flags/lu.png'],
|
||||
'lv' => ['name' => 'Latvia', 'path' => __DIR__ . '/flags/lv.png'],
|
||||
'ma' => ['name' => 'Morocco', 'path' => __DIR__ . '/flags/ma.png'],
|
||||
'mc' => ['name' => 'Monaco', 'path' => __DIR__ . '/flags/mc.png'],
|
||||
'md' => ['name' => 'Moldova', 'path' => __DIR__ . '/flags/md.png'],
|
||||
'mg' => ['name' => 'Madagascar', 'path' => __DIR__ . '/flags/mg.png'],
|
||||
'mv' => ['name' => 'Maldives', 'path' => __DIR__ . '/flags/mv.png'],
|
||||
'mx' => ['name' => 'Mexico', 'path' => __DIR__ . '/flags/mx.png'],
|
||||
'mh' => ['name' => 'Marshall Islands', 'path' => __DIR__ . '/flags/mh.png'],
|
||||
'mk' => ['name' => 'North Macedonia', 'path' => __DIR__ . '/flags/mk.png'],
|
||||
'ml' => ['name' => 'Mali', 'path' => __DIR__ . '/flags/ml.png'],
|
||||
'mt' => ['name' => 'Malta', 'path' => __DIR__ . '/flags/mt.png'],
|
||||
'mm' => ['name' => 'Myanmar', 'path' => __DIR__ . '/flags/mm.png'],
|
||||
'me' => ['name' => 'Montenegro', 'path' => __DIR__ . '/flags/me.png'],
|
||||
'mn' => ['name' => 'Mongolia', 'path' => __DIR__ . '/flags/mn.png'],
|
||||
'mz' => ['name' => 'Mozambique', 'path' => __DIR__ . '/flags/mz.png'],
|
||||
'mr' => ['name' => 'Mauritania', 'path' => __DIR__ . '/flags/mr.png'],
|
||||
'mu' => ['name' => 'Mauritius', 'path' => __DIR__ . '/flags/mu.png'],
|
||||
'mw' => ['name' => 'Malawi', 'path' => __DIR__ . '/flags/mw.png'],
|
||||
'my' => ['name' => 'Malaysia', 'path' => __DIR__ . '/flags/my.png'],
|
||||
'na' => ['name' => 'Namibia', 'path' => __DIR__ . '/flags/na.png'],
|
||||
'ne' => ['name' => 'Niger', 'path' => __DIR__ . '/flags/ne.png'],
|
||||
'ng' => ['name' => 'Nigeria', 'path' => __DIR__ . '/flags/ng.png'],
|
||||
'ni' => ['name' => 'Nicaragua', 'path' => __DIR__ . '/flags/ni.png'],
|
||||
'nl' => ['name' => 'Netherlands', 'path' => __DIR__ . '/flags/nl.png'],
|
||||
'no' => ['name' => 'Norway', 'path' => __DIR__ . '/flags/no.png'],
|
||||
'np' => ['name' => 'Nepal', 'path' => __DIR__ . '/flags/np.png'],
|
||||
'nr' => ['name' => 'Nauru', 'path' => __DIR__ . '/flags/nr.png'],
|
||||
'nz' => ['name' => 'New Zealand', 'path' => __DIR__ . '/flags/nz.png'],
|
||||
'om' => ['name' => 'Oman', 'path' => __DIR__ . '/flags/om.png'],
|
||||
'pk' => ['name' => 'Pakistan', 'path' => __DIR__ . '/flags/pk.png'],
|
||||
'pa' => ['name' => 'Panama', 'path' => __DIR__ . '/flags/pa.png'],
|
||||
'pe' => ['name' => 'Peru', 'path' => __DIR__ . '/flags/pe.png'],
|
||||
'ph' => ['name' => 'Philippines', 'path' => __DIR__ . '/flags/ph.png'],
|
||||
'pw' => ['name' => 'Palau', 'path' => __DIR__ . '/flags/pw.png'],
|
||||
'pg' => ['name' => 'Papua New Guinea', 'path' => __DIR__ . '/flags/pg.png'],
|
||||
'pl' => ['name' => 'Poland', 'path' => __DIR__ . '/flags/pl.png'],
|
||||
'kp' => ['name' => 'North Korea', 'path' => __DIR__ . '/flags/kp.png'],
|
||||
'pt' => ['name' => 'Portugal', 'path' => __DIR__ . '/flags/pt.png'],
|
||||
'py' => ['name' => 'Paraguay', 'path' => __DIR__ . '/flags/py.png'],
|
||||
'qa' => ['name' => 'Qatar', 'path' => __DIR__ . '/flags/qa.png'],
|
||||
'ro' => ['name' => 'Romania', 'path' => __DIR__ . '/flags/ro.png'],
|
||||
'ru' => ['name' => 'Russia', 'path' => __DIR__ . '/flags/ru.png'],
|
||||
'rw' => ['name' => 'Rwanda', 'path' => __DIR__ . '/flags/rw.png'],
|
||||
'sa' => ['name' => 'Saudi Arabia', 'path' => __DIR__ . '/flags/sa.png'],
|
||||
'sd' => ['name' => 'Sudan', 'path' => __DIR__ . '/flags/sd.png'],
|
||||
'sn' => ['name' => 'Senegal', 'path' => __DIR__ . '/flags/sn.png'],
|
||||
'sg' => ['name' => 'Singapore', 'path' => __DIR__ . '/flags/sg.png'],
|
||||
'sb' => ['name' => 'Solomon Islands', 'path' => __DIR__ . '/flags/sb.png'],
|
||||
'sl' => ['name' => 'Sierra Leone', 'path' => __DIR__ . '/flags/sl.png'],
|
||||
'sv' => ['name' => 'El Salvador', 'path' => __DIR__ . '/flags/sv.png'],
|
||||
'sm' => ['name' => 'San Marino', 'path' => __DIR__ . '/flags/sm.png'],
|
||||
'so' => ['name' => 'Somalia', 'path' => __DIR__ . '/flags/so.png'],
|
||||
'rs' => ['name' => 'Serbia', 'path' => __DIR__ . '/flags/rs.png'],
|
||||
'ss' => ['name' => 'South Sudan', 'path' => __DIR__ . '/flags/ss.png'],
|
||||
'st' => ['name' => 'Sao Tome and Principe', 'path' => __DIR__ . '/flags/st.png'],
|
||||
'sr' => ['name' => 'Suriname', 'path' => __DIR__ . '/flags/sr.png'],
|
||||
'sk' => ['name' => 'Slovakia', 'path' => __DIR__ . '/flags/sk.png'],
|
||||
'si' => ['name' => 'Slovenia', 'path' => __DIR__ . '/flags/si.png'],
|
||||
'se' => ['name' => 'Sweden', 'path' => __DIR__ . '/flags/se.png'],
|
||||
'sz' => ['name' => 'Eswatini', 'path' => __DIR__ . '/flags/sz.png'],
|
||||
'sc' => ['name' => 'Seychelles', 'path' => __DIR__ . '/flags/sc.png'],
|
||||
'sy' => ['name' => 'Syria', 'path' => __DIR__ . '/flags/sy.png'],
|
||||
'td' => ['name' => 'Chad', 'path' => __DIR__ . '/flags/td.png'],
|
||||
'tg' => ['name' => 'Togo', 'path' => __DIR__ . '/flags/tg.png'],
|
||||
'th' => ['name' => 'Thailand', 'path' => __DIR__ . '/flags/th.png'],
|
||||
'tj' => ['name' => 'Tajikistan', 'path' => __DIR__ . '/flags/tj.png'],
|
||||
'tm' => ['name' => 'Turkmenistan', 'path' => __DIR__ . '/flags/tm.png'],
|
||||
'tl' => ['name' => 'Timor-Leste', 'path' => __DIR__ . '/flags/tl.png'],
|
||||
'to' => ['name' => 'Tonga', 'path' => __DIR__ . '/flags/to.png'],
|
||||
'tt' => ['name' => 'Trinidad and Tobago', 'path' => __DIR__ . '/flags/tt.png'],
|
||||
'tn' => ['name' => 'Tunisia', 'path' => __DIR__ . '/flags/tn.png'],
|
||||
'tr' => ['name' => 'Turkey', 'path' => __DIR__ . '/flags/tr.png'],
|
||||
'tv' => ['name' => 'Tuvalu', 'path' => __DIR__ . '/flags/tv.png'],
|
||||
'tz' => ['name' => 'Tanzania', 'path' => __DIR__ . '/flags/tz.png'],
|
||||
'ug' => ['name' => 'Uganda', 'path' => __DIR__ . '/flags/ug.png'],
|
||||
'ua' => ['name' => 'Ukraine', 'path' => __DIR__ . '/flags/ua.png'],
|
||||
'uy' => ['name' => 'Uruguay', 'path' => __DIR__ . '/flags/uy.png'],
|
||||
'us' => ['name' => 'United States', 'path' => __DIR__ . '/flags/us.png'],
|
||||
'uz' => ['name' => 'Uzbekistan', 'path' => __DIR__ . '/flags/uz.png'],
|
||||
'va' => ['name' => 'Vatican City', 'path' => __DIR__ . '/flags/va.png'],
|
||||
'vc' => ['name' => 'Saint Vincent and the Grenadines', 'path' => __DIR__ . '/flags/vc.png'],
|
||||
've' => ['name' => 'Venezuela', 'path' => __DIR__ . '/flags/ve.png'],
|
||||
'vn' => ['name' => 'Vietnam', 'path' => __DIR__ . '/flags/vn.png'],
|
||||
'vu' => ['name' => 'Vanuatu', 'path' => __DIR__ . '/flags/vu.png'],
|
||||
'ws' => ['name' => 'Samoa', 'path' => __DIR__ . '/flags/ws.png'],
|
||||
'ye' => ['name' => 'Yemen', 'path' => __DIR__ . '/flags/ye.png'],
|
||||
'za' => ['name' => 'South Africa', 'path' => __DIR__ . '/flags/za.png'],
|
||||
'zm' => ['name' => 'Zambia', 'path' => __DIR__ . '/flags/zm.png'],
|
||||
'zw' => ['name' => 'Zimbabwe', 'path' => __DIR__ . '/flags/zw.png'],
|
||||
];
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -88,6 +88,21 @@ return [
|
|||
'description' => 'The request cannot be fulfilled with the current protocol. Please check the value of the _APP_OPTIONS_FORCE_HTTPS environment variable.',
|
||||
'code' => 500,
|
||||
],
|
||||
Exception::GENERAL_CODES_DISABLED => [
|
||||
'name' => Exception::GENERAL_CODES_DISABLED,
|
||||
'description' => 'Invitation codes are disabled on this server. Please contact the server administrator.',
|
||||
'code' => 500,
|
||||
],
|
||||
Exception::GENERAL_USAGE_DISABLED => [
|
||||
'name' => Exception::GENERAL_USAGE_DISABLED,
|
||||
'description' => 'Usage stats is not configured. Please check the value of the _APP_USAGE_STATS environment variable of your Appwrite server.',
|
||||
'code' => 501,
|
||||
],
|
||||
Exception::GENERAL_NOT_IMPLEMENTED => [
|
||||
'name' => Exception::GENERAL_NOT_IMPLEMENTED,
|
||||
'description' => 'This method was not fully implemented yet. If you believe this is a mistake, please upgrade your Appwrite server version.',
|
||||
'code' => 405,
|
||||
],
|
||||
|
||||
/** User Errors */
|
||||
Exception::USER_COUNT_EXCEEDED => [
|
||||
|
|
@ -102,12 +117,12 @@ return [
|
|||
],
|
||||
Exception::USER_ALREADY_EXISTS => [
|
||||
'name' => Exception::USER_ALREADY_EXISTS,
|
||||
'description' => 'A user with the same email already exists in your project.',
|
||||
'description' => 'A user with the same id, email, or phone already exists in this project.',
|
||||
'code' => 409,
|
||||
],
|
||||
Exception::USER_BLOCKED => [
|
||||
'name' => Exception::USER_BLOCKED,
|
||||
'description' => 'The current user has been blocked. You can unblock the user from the Appwrite console.',
|
||||
'description' => 'The current user has been blocked. You can unblock the user by making a request to the User API\'s "Update User Status" endpoint or in the Appwrite Console\'s Auth section.',
|
||||
'code' => 401,
|
||||
],
|
||||
Exception::USER_INVALID_TOKEN => [
|
||||
|
|
@ -125,6 +140,11 @@ return [
|
|||
'description' => 'Console registration is restricted to specific emails. Contact your administrator for more information.',
|
||||
'code' => 401,
|
||||
],
|
||||
Exception::USER_INVALID_CODE => [
|
||||
'name' => Exception::USER_INVALID_CODE,
|
||||
'description' => 'The specified code is not valid. Contact your administrator for more information.',
|
||||
'code' => 401,
|
||||
],
|
||||
Exception::USER_IP_NOT_WHITELISTED => [
|
||||
'name' => Exception::USER_IP_NOT_WHITELISTED,
|
||||
'description' => 'Console registration is restricted to specific IPs. Contact your administrator for more information.',
|
||||
|
|
@ -160,11 +180,26 @@ return [
|
|||
'description' => 'Passwords do not match. Please check the password and confirm password.',
|
||||
'code' => 400,
|
||||
],
|
||||
Exception::USER_PASSWORD_RECENTLY_USED => [
|
||||
'name' => Exception::USER_PASSWORD_RECENTLY_USED,
|
||||
'description' => 'The password you are trying to use is similar to your previous password. For your security, please choose a different password and try again.',
|
||||
'code' => 400,
|
||||
],
|
||||
Exception::USER_PASSWORD_PERSONAL_DATA => [
|
||||
'name' => Exception::USER_PASSWORD_PERSONAL_DATA,
|
||||
'description' => 'The password you are trying to use contains references to your name, email, phone or userID. For your security, please choose a different password and try again.',
|
||||
'code' => 400,
|
||||
],
|
||||
Exception::USER_SESSION_NOT_FOUND => [
|
||||
'name' => Exception::USER_SESSION_NOT_FOUND,
|
||||
'description' => 'The current user session could not be found.',
|
||||
'code' => 404,
|
||||
],
|
||||
Exception::USER_IDENTITY_NOT_FOUND => [
|
||||
'name' => Exception::USER_IDENTITY_NOT_FOUND,
|
||||
'description' => 'The identity could not be found. Please sign in with OAuth provider to create identity first.',
|
||||
'code' => 404,
|
||||
],
|
||||
Exception::USER_UNAUTHORIZED => [
|
||||
'name' => Exception::USER_UNAUTHORIZED,
|
||||
'description' => 'The current user is not authorized to perform the requested action.',
|
||||
|
|
@ -190,6 +225,21 @@ return [
|
|||
'description' => 'Missing ID from OAuth2 provider.',
|
||||
'code' => 400,
|
||||
],
|
||||
Exception::USER_OAUTH2_BAD_REQUEST => [
|
||||
'name' => Exception::USER_OAUTH2_BAD_REQUEST,
|
||||
'description' => 'OAuth2 provider rejected the bad request.',
|
||||
'code' => 400,
|
||||
],
|
||||
Exception::USER_OAUTH2_UNAUTHORIZED => [
|
||||
'name' => Exception::USER_OAUTH2_UNAUTHORIZED,
|
||||
'description' => 'OAuth2 provider rejected the unauthorized request.',
|
||||
'code' => 401,
|
||||
],
|
||||
Exception::USER_OAUTH2_PROVIDER_ERROR => [
|
||||
'name' => Exception::USER_OAUTH2_PROVIDER_ERROR,
|
||||
'description' => 'OAuth2 provider returned some error.',
|
||||
'code' => 424,
|
||||
],
|
||||
|
||||
/** Teams */
|
||||
Exception::TEAM_NOT_FOUND => [
|
||||
|
|
@ -209,7 +259,7 @@ return [
|
|||
],
|
||||
Exception::TEAM_INVALID_SECRET => [
|
||||
'name' => Exception::TEAM_INVALID_SECRET,
|
||||
'description' => 'The team invitation secret is invalid.',
|
||||
'description' => 'The team invitation secret is invalid. Please request a new invitation and try again.',
|
||||
'code' => 401,
|
||||
],
|
||||
Exception::TEAM_MEMBERSHIP_MISMATCH => [
|
||||
|
|
@ -222,6 +272,11 @@ return [
|
|||
'description' => 'The invite does not belong to the current user.',
|
||||
'code' => 401,
|
||||
],
|
||||
Exception::TEAM_ALREADY_EXISTS => [
|
||||
'name' => Exception::TEAM_ALREADY_EXISTS,
|
||||
'description' => 'Team with requested ID already exists. Please choose a different ID and try again.',
|
||||
'code' => 409,
|
||||
],
|
||||
|
||||
/** Membership */
|
||||
Exception::MEMBERSHIP_NOT_FOUND => [
|
||||
|
|
@ -231,7 +286,7 @@ return [
|
|||
],
|
||||
Exception::MEMBERSHIP_ALREADY_CONFIRMED => [
|
||||
'name' => Exception::MEMBERSHIP_ALREADY_CONFIRMED,
|
||||
'description' => 'Membership already confirmed',
|
||||
'description' => 'Membership is already confirmed.',
|
||||
'code' => 409,
|
||||
],
|
||||
|
||||
|
|
@ -263,6 +318,11 @@ return [
|
|||
],
|
||||
|
||||
/** Storage */
|
||||
Exception::STORAGE_FILE_ALREADY_EXISTS => [
|
||||
'name' => Exception::STORAGE_FILE_ALREADY_EXISTS,
|
||||
'description' => 'A storage file with the requested ID already exists.',
|
||||
'code' => 409,
|
||||
],
|
||||
Exception::STORAGE_FILE_NOT_FOUND => [
|
||||
'name' => Exception::STORAGE_FILE_NOT_FOUND,
|
||||
'description' => 'The requested file could not be found.',
|
||||
|
|
@ -295,7 +355,7 @@ return [
|
|||
],
|
||||
Exception::STORAGE_BUCKET_ALREADY_EXISTS => [
|
||||
'name' => Exception::STORAGE_BUCKET_ALREADY_EXISTS,
|
||||
'description' => 'A storage bucket with the requested ID already exists.',
|
||||
'description' => 'A storage bucket with the requested ID already exists. Try again with a different ID or use "unique()" to generate a unique ID.',
|
||||
'code' => 409,
|
||||
],
|
||||
Exception::STORAGE_BUCKET_NOT_FOUND => [
|
||||
|
|
@ -313,6 +373,38 @@ return [
|
|||
'description' => 'The requested range is not satisfiable. Please check the value of the Range header.',
|
||||
'code' => 416,
|
||||
],
|
||||
Exception::STORAGE_INVALID_APPWRITE_ID => [
|
||||
'name' => Exception::STORAGE_INVALID_APPWRITE_ID,
|
||||
'description' => 'The value for x-appwrite-id header is invalid. Please check the value of the x-appwrite-id header is a valid id and not unique().',
|
||||
'code' => 400,
|
||||
],
|
||||
|
||||
/** VCS */
|
||||
Exception::INSTALLATION_NOT_FOUND => [
|
||||
'name' => Exception::INSTALLATION_NOT_FOUND,
|
||||
'description' => 'Installation with the requested ID could not be found. Check to see if the ID is correct, or create the installation.',
|
||||
'code' => 404,
|
||||
],
|
||||
Exception::PROVIDER_REPOSITORY_NOT_FOUND => [
|
||||
'name' => Exception::PROVIDER_REPOSITORY_NOT_FOUND,
|
||||
'description' => 'VCS (Version Control System) repository with the requested ID could not be found. Check to see if the ID is correct, and if it belongs to installationId you provided.',
|
||||
'code' => 404,
|
||||
],
|
||||
Exception::REPOSITORY_NOT_FOUND => [
|
||||
'name' => Exception::REPOSITORY_NOT_FOUND,
|
||||
'description' => 'Repository with the requested ID could not be found. Check to see if the ID is correct, or create the respository.',
|
||||
'code' => 404,
|
||||
],
|
||||
Exception::PROVIDER_CONTRIBUTION_CONFLICT => [
|
||||
'name' => Exception::PROVIDER_CONTRIBUTION_CONFLICT,
|
||||
'description' => 'External contribution is already authorized.',
|
||||
'code' => 409,
|
||||
],
|
||||
Exception::GENERAL_PROVIDER_FAILURE => [
|
||||
'name' => Exception::GENERAL_PROVIDER_FAILURE,
|
||||
'description' => 'VCS (Version Control System) provider failed to proccess the request. We believe this is an error with the VCS provider. Try again, or contact support for more information.',
|
||||
'code' => 400,
|
||||
],
|
||||
|
||||
/** Functions */
|
||||
Exception::FUNCTION_NOT_FOUND => [
|
||||
|
|
@ -325,6 +417,11 @@ return [
|
|||
'description' => 'The requested runtime is either inactive or unsupported. Please check the value of the _APP_FUNCTIONS_RUNTIMES environment variable.',
|
||||
'code' => 404,
|
||||
],
|
||||
Exception::FUNCTION_ENTRYPOINT_MISSING => [
|
||||
'name' => Exception::FUNCTION_RUNTIME_UNSUPPORTED,
|
||||
'description' => 'Entrypoint for your Appwrite Function is missing. Please specify it when making deployment or update the entrypoint under your function\'s "Settings" > "Configuration" > "Entrypoint".',
|
||||
'code' => 404,
|
||||
],
|
||||
|
||||
/** Builds */
|
||||
Exception::BUILD_NOT_FOUND => [
|
||||
|
|
@ -378,7 +475,7 @@ return [
|
|||
],
|
||||
Exception::COLLECTION_ALREADY_EXISTS => [
|
||||
'name' => Exception::COLLECTION_ALREADY_EXISTS,
|
||||
'description' => 'A collection with the requested ID already exists.',
|
||||
'description' => 'A collection with the requested ID already exists. Try again with a different ID or use "unique()" to generate a unique ID.',
|
||||
'code' => 409,
|
||||
],
|
||||
Exception::COLLECTION_LIMIT_EXCEEDED => [
|
||||
|
|
@ -398,16 +495,31 @@ return [
|
|||
'description' => 'The document structure is invalid. Please ensure the attributes match the collection definition.',
|
||||
'code' => 400,
|
||||
],
|
||||
Exception::DOCUMENT_MISSING_DATA => [
|
||||
'name' => Exception::DOCUMENT_MISSING_DATA,
|
||||
'description' => 'The document data is missing. Try again with document data populated',
|
||||
'code' => 400,
|
||||
],
|
||||
Exception::DOCUMENT_MISSING_PAYLOAD => [
|
||||
'name' => Exception::DOCUMENT_MISSING_PAYLOAD,
|
||||
'description' => 'The document payload is missing.',
|
||||
'description' => 'The document data and permissions are missing. You must provide either document data or permissions to be updated.',
|
||||
'code' => 400,
|
||||
],
|
||||
Exception::DOCUMENT_ALREADY_EXISTS => [
|
||||
'name' => Exception::DOCUMENT_ALREADY_EXISTS,
|
||||
'description' => 'Document with the requested ID already exists.',
|
||||
'description' => 'Document with the requested ID already exists. Try again with a different ID or use "unique()" to generate a unique ID.',
|
||||
'code' => 409,
|
||||
],
|
||||
Exception::DOCUMENT_UPDATE_CONFLICT => [
|
||||
'name' => Exception::DOCUMENT_UPDATE_CONFLICT,
|
||||
'description' => 'Remote document is newer than local.',
|
||||
'code' => 409,
|
||||
],
|
||||
Exception::DOCUMENT_DELETE_RESTRICTED => [
|
||||
'name' => Exception::DOCUMENT_DELETE_RESTRICTED,
|
||||
'description' => 'Document cannot be deleted because it is referenced by another document.',
|
||||
'code' => 403,
|
||||
],
|
||||
|
||||
/** Attributes */
|
||||
Exception::ATTRIBUTE_NOT_FOUND => [
|
||||
|
|
@ -417,12 +529,12 @@ return [
|
|||
],
|
||||
Exception::ATTRIBUTE_UNKNOWN => [
|
||||
'name' => Exception::ATTRIBUTE_UNKNOWN,
|
||||
'description' => 'The attribute required for the index could not be found. Please confirm all your attributes are in the <span class="tag">available</span> state.',
|
||||
'description' => 'The attribute required for the index could not be found. Please confirm all your attributes are in the available state.',
|
||||
'code' => 400,
|
||||
],
|
||||
Exception::ATTRIBUTE_NOT_AVAILABLE => [
|
||||
'name' => Exception::ATTRIBUTE_NOT_AVAILABLE,
|
||||
'description' => 'The requested attribute is not yet <span class="tag">available</span>. Please try again later.',
|
||||
'description' => 'The requested attribute is not yet available. Please try again later.',
|
||||
'code' => 400,
|
||||
],
|
||||
Exception::ATTRIBUTE_FORMAT_UNSUPPORTED => [
|
||||
|
|
@ -432,12 +544,12 @@ return [
|
|||
],
|
||||
Exception::ATTRIBUTE_DEFAULT_UNSUPPORTED => [
|
||||
'name' => Exception::ATTRIBUTE_DEFAULT_UNSUPPORTED,
|
||||
'description' => 'Default values cannot be set for <span class="tag">array</span> and <span class="tag">required</span> attributes.',
|
||||
'description' => 'Default values cannot be set for array or required attributes.',
|
||||
'code' => 400,
|
||||
],
|
||||
Exception::ATTRIBUTE_ALREADY_EXISTS => [
|
||||
'name' => Exception::ATTRIBUTE_ALREADY_EXISTS,
|
||||
'description' => 'Attribute with the requested ID already exists.',
|
||||
'description' => 'Attribute with the requested ID already exists. Try again with a different ID or use "unique()" to generate a unique ID.',
|
||||
'code' => 409,
|
||||
],
|
||||
Exception::ATTRIBUTE_LIMIT_EXCEEDED => [
|
||||
|
|
@ -450,6 +562,11 @@ return [
|
|||
'description' => 'The attribute value is invalid. Please check the type, range and value of the attribute.',
|
||||
'code' => 400,
|
||||
],
|
||||
Exception::ATTRIBUTE_TYPE_INVALID => [
|
||||
'name' => Exception::ATTRIBUTE_TYPE_INVALID,
|
||||
'description' => 'The attribute type is invalid.',
|
||||
'code' => 400,
|
||||
],
|
||||
|
||||
/** Indexes */
|
||||
Exception::INDEX_NOT_FOUND => [
|
||||
|
|
@ -464,9 +581,14 @@ return [
|
|||
],
|
||||
Exception::INDEX_ALREADY_EXISTS => [
|
||||
'name' => Exception::INDEX_ALREADY_EXISTS,
|
||||
'description' => 'Index with the requested ID already exists.',
|
||||
'description' => 'Index with the requested ID already exists. Try again with a different ID or use "unique()" to generate a unique ID.',
|
||||
'code' => 409,
|
||||
],
|
||||
Exception::INDEX_INVALID => [
|
||||
'name' => Exception::INDEX_INVALID,
|
||||
'description' => 'Index invalid.',
|
||||
'code' => 400,
|
||||
],
|
||||
|
||||
/** Project Errors */
|
||||
Exception::PROJECT_NOT_FOUND => [
|
||||
|
|
@ -474,6 +596,11 @@ return [
|
|||
'description' => 'Project with the requested ID could not be found. Please check the value of the X-Appwrite-Project header to ensure the correct project ID is being used.',
|
||||
'code' => 404,
|
||||
],
|
||||
Exception::PROJECT_ALREADY_EXISTS => [
|
||||
'name' => Exception::PROJECT_ALREADY_EXISTS,
|
||||
'description' => 'Project with the requested ID already exists. Try again with a different ID or use "unique()" to generate a unique ID.',
|
||||
'code' => 409,
|
||||
],
|
||||
Exception::PROJECT_UNKNOWN => [
|
||||
'name' => Exception::PROJECT_UNKNOWN,
|
||||
'description' => 'The project ID is either missing or not valid. Please check the value of the X-Appwrite-Project header to ensure the correct project ID is being used.',
|
||||
|
|
@ -509,6 +636,46 @@ return [
|
|||
'description' => 'The project key has expired. Please generate a new key using the Appwrite console.',
|
||||
'code' => 401,
|
||||
],
|
||||
Exception::ROUTER_HOST_NOT_FOUND => [
|
||||
'name' => Exception::ROUTER_HOST_NOT_FOUND,
|
||||
'description' => 'Host is not trusted. This could occur because you have not configured a custom domain. Add a custom domain to your project first and try again.',
|
||||
'code' => 404,
|
||||
],
|
||||
Exception::ROUTER_DOMAIN_NOT_CONFIGURED => [
|
||||
'name' => Exception::ROUTER_DOMAIN_NOT_CONFIGURED,
|
||||
'description' => '_APP_DOMAIN, _APP_DOMAIN_TARGET, and _APP_DOMAIN_FUNCTIONS environment variables have not been configured. Please configure the domain environment variables before accessing the Appwrite Console via any IP address or hostname other than localhost. This value could be an IP like 203.0.113.0 or a hostname like example.com.',
|
||||
'code' => 500,
|
||||
],
|
||||
Exception::RULE_RESOURCE_NOT_FOUND => [
|
||||
'name' => Exception::RULE_RESOURCE_NOT_FOUND,
|
||||
'description' => 'Resource could not be found. Please check if the resourceId and resourceType are correct, or if the resource actually exists.',
|
||||
'code' => 404,
|
||||
],
|
||||
Exception::RULE_NOT_FOUND => [
|
||||
'name' => Exception::RULE_NOT_FOUND,
|
||||
'description' => 'Rule with the requested ID could not be found. Please check if the ID provided is correct or if the rule actually exists.',
|
||||
'code' => 404,
|
||||
],
|
||||
Exception::RULE_ALREADY_EXISTS => [
|
||||
'name' => Exception::RULE_ALREADY_EXISTS,
|
||||
'description' => 'Domain is already used. Please try again with a different domain.',
|
||||
'code' => 409,
|
||||
],
|
||||
Exception::RULE_VERIFICATION_FAILED => [
|
||||
'name' => Exception::RULE_VERIFICATION_FAILED,
|
||||
'description' => 'Domain verification failed. Please check if your DNS records are correct and try again.',
|
||||
'code' => 401,
|
||||
],
|
||||
Exception::PROJECT_SMTP_CONFIG_INVALID => [
|
||||
'name' => Exception::PROJECT_SMTP_CONFIG_INVALID,
|
||||
'description' => 'Provided SMTP config is invalid. Please check the configured values and try again.',
|
||||
'code' => 400,
|
||||
],
|
||||
Exception::PROJECT_TEMPLATE_DEFAULT_DELETION => [
|
||||
'name' => Exception::PROJECT_TEMPLATE_DEFAULT_DELETION,
|
||||
'description' => 'You can\'t delete default template. If you are trying to reset your template changes, you can ignore this error as it\'s already been reset.',
|
||||
'code' => 401,
|
||||
],
|
||||
Exception::WEBHOOK_NOT_FOUND => [
|
||||
'name' => Exception::WEBHOOK_NOT_FOUND,
|
||||
'description' => 'Webhook with the requested ID could not be found.',
|
||||
|
|
@ -524,16 +691,6 @@ return [
|
|||
'description' => 'Platform with the requested ID could not be found.',
|
||||
'code' => 404,
|
||||
],
|
||||
Exception::DOMAIN_NOT_FOUND => [
|
||||
'name' => Exception::DOMAIN_NOT_FOUND,
|
||||
'description' => 'Domain with the requested ID could not be found.',
|
||||
'code' => 404,
|
||||
],
|
||||
Exception::DOMAIN_ALREADY_EXISTS => [
|
||||
'name' => Exception::DOMAIN_ALREADY_EXISTS,
|
||||
'description' => 'A Domain with the requested ID already exists.',
|
||||
'code' => 409,
|
||||
],
|
||||
Exception::VARIABLE_NOT_FOUND => [
|
||||
'name' => Exception::VARIABLE_NOT_FOUND,
|
||||
'description' => 'Variable with the requested ID could not be found.',
|
||||
|
|
@ -541,19 +698,9 @@ return [
|
|||
],
|
||||
Exception::VARIABLE_ALREADY_EXISTS => [
|
||||
'name' => Exception::VARIABLE_ALREADY_EXISTS,
|
||||
'description' => 'Variable with the same ID already exists in your project.',
|
||||
'description' => 'Variable with the same ID already exists in this project. Try again with a different ID.',
|
||||
'code' => 409,
|
||||
],
|
||||
Exception::DOMAIN_VERIFICATION_FAILED => [
|
||||
'name' => Exception::DOMAIN_VERIFICATION_FAILED,
|
||||
'description' => 'Domain verification for the requested domain has failed.',
|
||||
'code' => 401,
|
||||
],
|
||||
Exception::DOMAIN_TARGET_INVALID => [
|
||||
'name' => Exception::DOMAIN_TARGET_INVALID,
|
||||
'description' => 'Your Appwrite instance is not publicly accessible. Please check the _APP_DOMAIN_TARGET environment variable of your Appwrite server.',
|
||||
'code' => 501,
|
||||
],
|
||||
Exception::GRAPHQL_NO_QUERY => [
|
||||
'name' => Exception::GRAPHQL_NO_QUERY,
|
||||
'description' => 'Param "query" is not optional.',
|
||||
|
|
@ -564,4 +711,21 @@ return [
|
|||
'description' => 'Too many queries.',
|
||||
'code' => 400,
|
||||
],
|
||||
|
||||
/** Migrations */
|
||||
Exception::MIGRATION_NOT_FOUND => [
|
||||
'name' => Exception::MIGRATION_NOT_FOUND,
|
||||
'description' => 'Migration with the requested ID could not be found. Please verify that the provided ID is correct and try again.',
|
||||
'code' => 404,
|
||||
],
|
||||
Exception::MIGRATION_ALREADY_EXISTS => [
|
||||
'name' => Exception::MIGRATION_ALREADY_EXISTS,
|
||||
'description' => 'Migration with the requested ID already exists. Try again with a different ID.',
|
||||
'code' => 409,
|
||||
],
|
||||
Exception::MIGRATION_IN_PROGRESS => [
|
||||
'name' => Exception::MIGRATION_IN_PROGRESS,
|
||||
'description' => 'Migration is already in progress. You can check the status of the migration in your Appwrite Console\'s "Settings" > "Migrations".',
|
||||
'code' => 409,
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -183,13 +183,16 @@ return [
|
|||
],
|
||||
],
|
||||
'create' => [
|
||||
'$description' => 'This event triggers when a bucket is created.'
|
||||
'$description' => 'This event triggers when a team is created.'
|
||||
],
|
||||
'delete' => [
|
||||
'$description' => 'This event triggers when a bucket is deleted.',
|
||||
'$description' => 'This event triggers when a team is deleted.',
|
||||
],
|
||||
'update' => [
|
||||
'$description' => 'This event triggers when a bucket is updated.',
|
||||
'$description' => 'This event triggers when a team is updated.',
|
||||
'prefs' => [
|
||||
'$description' => 'This event triggers when a team\'s preferences are updated.',
|
||||
],
|
||||
]
|
||||
],
|
||||
'functions' => [
|
||||
|
|
@ -233,5 +236,19 @@ return [
|
|||
'update' => [
|
||||
'$description' => 'This event triggers when a function is updated.',
|
||||
]
|
||||
],
|
||||
'rules' => [
|
||||
'$model' => Response::MODEL_PROXY_RULE,
|
||||
'$resource' => true,
|
||||
'$description' => 'This event triggers on any proxy rule event.',
|
||||
'create' => [
|
||||
'$description' => 'This event triggers when a proxy rule is created.'
|
||||
],
|
||||
'delete' => [
|
||||
'$description' => 'This event triggers when a proxy rule is deleted.',
|
||||
],
|
||||
'update' => [
|
||||
'$description' => 'This event triggers when a proxy rule is updated.',
|
||||
]
|
||||
]
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,76 +1,537 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* ISO 639-1 standard language codes
|
||||
* https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
|
||||
*
|
||||
* Source:
|
||||
* https://www.andiamo.co.uk/resources/iso-language-codes/
|
||||
*
|
||||
*/
|
||||
|
||||
return [
|
||||
'af', // Afrikaans
|
||||
'ar', // Arabic
|
||||
'as', // Assamese
|
||||
'az', // Azerbaijani
|
||||
'be', // Belarusian
|
||||
'bg', // Bulgarian
|
||||
'bh', // Bihari
|
||||
'bn', // Bengali
|
||||
'bs', // Bosnian
|
||||
'ca', // Catalan
|
||||
'cs', // Czech
|
||||
'da', // Danish
|
||||
'de', // German
|
||||
'en', // English
|
||||
'eo', // Esperanto
|
||||
'es', // Spanish
|
||||
'fa', // Farsi/Persian
|
||||
'fi', // Finnish
|
||||
'fo', // Faroese
|
||||
'fr', // French
|
||||
'el', // Greek
|
||||
'ga', // Irish
|
||||
'gu', // Gujrati
|
||||
'he', // Hebrew
|
||||
'hi', // Hindi,
|
||||
'hr', // Croatian
|
||||
'hu', // Hungarian
|
||||
'hy', // Armenian
|
||||
'id', // Indonesian
|
||||
'is', // Icelandic
|
||||
'it', // Italian
|
||||
'ja', // Japanese
|
||||
'jv', // Javanese
|
||||
'kn', // Kannada
|
||||
'km', // Khmer
|
||||
'ko', // Korean
|
||||
'la', // Latin
|
||||
'lb', // Luxembourgish
|
||||
'lt', // Lithuanian
|
||||
'lv', // Latvian
|
||||
'ml', // Malayalam
|
||||
'mr', // Marathi
|
||||
'ms', // Malay
|
||||
'nb', // Norwegian bokmål
|
||||
'nl', // Dutch
|
||||
'nn', // Norwegian nynorsk
|
||||
'ne', // Nepali
|
||||
'or', // Oriya
|
||||
'tl', // Filipino
|
||||
'pl', // Polish
|
||||
'pt-br', // Portuguese - Brazil
|
||||
'pt-pt', // Portuguese - Portugal
|
||||
'pa', // Punjabi
|
||||
'ro', // Romanian
|
||||
'ru', // Russian
|
||||
'sa', //Sanskrit
|
||||
'sd', // Sindhi
|
||||
'si', // Sinhala
|
||||
'sk', // Slovakia
|
||||
'sl', // Slovenian
|
||||
'sn', // Shona
|
||||
'sq', // Albanian
|
||||
'sv', // Swedish
|
||||
'ta', // Tamil
|
||||
'te', // Telugu
|
||||
'th', // Thai
|
||||
'tr', // Turkish
|
||||
'uk', // Ukrainian
|
||||
'ur', // Urdu
|
||||
'vi', // Vietnamese
|
||||
'zh-cn', // Chinese - China
|
||||
'zh-tw', // Chinese - Taiwan
|
||||
[
|
||||
"code" => "af",
|
||||
"name" => "Afrikaans",
|
||||
],
|
||||
[
|
||||
"code" => "ar-ae",
|
||||
"name" => "Arabic (U.A.E.)",
|
||||
],
|
||||
[
|
||||
"code" => "ar-bh",
|
||||
"name" => "Arabic (Bahrain)",
|
||||
],
|
||||
[
|
||||
"code" => "ar-dz",
|
||||
"name" => "Arabic (Algeria)",
|
||||
],
|
||||
[
|
||||
"code" => "ar-eg",
|
||||
"name" => "Arabic (Egypt)",
|
||||
],
|
||||
[
|
||||
"code" => "ar-iq",
|
||||
"name" => "Arabic (Iraq)",
|
||||
],
|
||||
[
|
||||
"code" => "ar-jo",
|
||||
"name" => "Arabic (Jordan)",
|
||||
],
|
||||
[
|
||||
"code" => "ar-kw",
|
||||
"name" => "Arabic (Kuwait)",
|
||||
],
|
||||
[
|
||||
"code" => "ar-lb",
|
||||
"name" => "Arabic (Lebanon)",
|
||||
],
|
||||
[
|
||||
"code" => "ar-ly",
|
||||
"name" => "Arabic (Libya)",
|
||||
],
|
||||
[
|
||||
"code" => "ar-ma",
|
||||
"name" => "Arabic (Morocco)",
|
||||
],
|
||||
[
|
||||
"code" => "ar-om",
|
||||
"name" => "Arabic (Oman)",
|
||||
],
|
||||
[
|
||||
"code" => "ar-qa",
|
||||
"name" => "Arabic (Qatar)",
|
||||
],
|
||||
[
|
||||
"code" => "ar-sa",
|
||||
"name" => "Arabic (Saudi Arabia)",
|
||||
],
|
||||
[
|
||||
"code" => "ar-sy",
|
||||
"name" => "Arabic (Syria)",
|
||||
],
|
||||
[
|
||||
"code" => "ar-tn",
|
||||
"name" => "Arabic (Tunisia)",
|
||||
],
|
||||
[
|
||||
"code" => "ar-ye",
|
||||
"name" => "Arabic (Yemen)",
|
||||
],
|
||||
[
|
||||
"code" => "as",
|
||||
"name" => "Assamese",
|
||||
],
|
||||
[
|
||||
"code" => "az",
|
||||
"name" => "Azerbaijani",
|
||||
],
|
||||
[
|
||||
"code" => "be",
|
||||
"name" => "Belarusian",
|
||||
],
|
||||
[
|
||||
"code" => "bg",
|
||||
"name" => "Bulgarian",
|
||||
],
|
||||
[
|
||||
"code" => "bh",
|
||||
"name" => "Bihari",
|
||||
],
|
||||
[
|
||||
"code" => "bn",
|
||||
"name" => "Bengali",
|
||||
],
|
||||
[
|
||||
"code" => "bs",
|
||||
"name" => "Bosnian",
|
||||
],
|
||||
[
|
||||
"code" => "ca",
|
||||
"name" => "Catalan",
|
||||
],
|
||||
[
|
||||
"code" => "cs",
|
||||
"name" => "Czech",
|
||||
],
|
||||
[
|
||||
"code" => "cy",
|
||||
"name" => "Welsh",
|
||||
],
|
||||
[
|
||||
"code" => "da",
|
||||
"name" => "Danish",
|
||||
],
|
||||
[
|
||||
"code" => "de",
|
||||
"name" => "German (Standard)",
|
||||
],
|
||||
[
|
||||
"code" => "de-at",
|
||||
"name" => "German (Austria)",
|
||||
],
|
||||
[
|
||||
"code" => "de-ch",
|
||||
"name" => "German (Switzerland)",
|
||||
],
|
||||
[
|
||||
"code" => "de-li",
|
||||
"name" => "German (Liechtenstein)",
|
||||
],
|
||||
[
|
||||
"code" => "de-lu",
|
||||
"name" => "German (Luxembourg)",
|
||||
],
|
||||
[
|
||||
"code" => "el",
|
||||
"name" => "Greek",
|
||||
],
|
||||
[
|
||||
"code" => "en",
|
||||
"name" => "English",
|
||||
],
|
||||
[
|
||||
"code" => "en-au",
|
||||
"name" => "English (Australia)",
|
||||
],
|
||||
[
|
||||
"code" => "en-bz",
|
||||
"name" => "English (Belize)",
|
||||
],
|
||||
[
|
||||
"code" => "en-ca",
|
||||
"name" => "English (Canada)",
|
||||
],
|
||||
[
|
||||
"code" => "en-gb",
|
||||
"name" => "English (United Kingdom)",
|
||||
],
|
||||
[
|
||||
"code" => "en-ie",
|
||||
"name" => "English (Ireland)",
|
||||
],
|
||||
[
|
||||
"code" => "en-jm",
|
||||
"name" => "English (Jamaica)",
|
||||
],
|
||||
[
|
||||
"code" => "en-nz",
|
||||
"name" => "English (New Zealand)",
|
||||
],
|
||||
[
|
||||
"code" => "en-tt",
|
||||
"name" => "English (Trinidad)",
|
||||
],
|
||||
[
|
||||
"code" => "en-us",
|
||||
"name" => "English (United States)",
|
||||
],
|
||||
[
|
||||
"code" => "en-za",
|
||||
"name" => "English (South Africa)",
|
||||
],
|
||||
[
|
||||
"code" => "eo",
|
||||
"name" => "Esperanto",
|
||||
],
|
||||
[
|
||||
"code" => "es",
|
||||
"name" => "Spanish (Spain)",
|
||||
],
|
||||
[
|
||||
"code" => "es-ar",
|
||||
"name" => "Spanish (Argentina)",
|
||||
],
|
||||
[
|
||||
"code" => "es-bo",
|
||||
"name" => "Spanish (Bolivia)",
|
||||
],
|
||||
[
|
||||
"code" => "es-cl",
|
||||
"name" => "Spanish (Chile)",
|
||||
],
|
||||
[
|
||||
"code" => "es-co",
|
||||
"name" => "Spanish (Colombia)",
|
||||
],
|
||||
[
|
||||
"code" => "es-cr",
|
||||
"name" => "Spanish (Costa Rica)",
|
||||
],
|
||||
[
|
||||
"code" => "es-do",
|
||||
"name" => "Spanish (Dominican Republic)",
|
||||
],
|
||||
[
|
||||
"code" => "es-ec",
|
||||
"name" => "Spanish (Ecuador)",
|
||||
],
|
||||
[
|
||||
"code" => "es-gt",
|
||||
"name" => "Spanish (Guatemala)",
|
||||
],
|
||||
[
|
||||
"code" => "es-hn",
|
||||
"name" => "Spanish (Honduras)",
|
||||
],
|
||||
[
|
||||
"code" => "es-mx",
|
||||
"name" => "Spanish (Mexico)",
|
||||
],
|
||||
[
|
||||
"code" => "es-ni",
|
||||
"name" => "Spanish (Nicaragua)",
|
||||
],
|
||||
[
|
||||
"code" => "es-pa",
|
||||
"name" => "Spanish (Panama)",
|
||||
],
|
||||
[
|
||||
"code" => "es-pe",
|
||||
"name" => "Spanish (Peru)",
|
||||
],
|
||||
[
|
||||
"code" => "es-pr",
|
||||
"name" => "Spanish (Puerto Rico)",
|
||||
],
|
||||
[
|
||||
"code" => "es-py",
|
||||
"name" => "Spanish (Paraguay)",
|
||||
],
|
||||
[
|
||||
"code" => "es-sv",
|
||||
"name" => "Spanish (El Salvador)",
|
||||
],
|
||||
[
|
||||
"code" => "es-uy",
|
||||
"name" => "Spanish (Uruguay)",
|
||||
],
|
||||
[
|
||||
"code" => "es-ve",
|
||||
"name" => "Spanish (Venezuela)",
|
||||
],
|
||||
[
|
||||
"code" => "et",
|
||||
"name" => "Estonian",
|
||||
],
|
||||
[
|
||||
"code" => "eu",
|
||||
"name" => "Basque",
|
||||
],
|
||||
[
|
||||
"code" => "fa",
|
||||
"name" => "Farsi",
|
||||
],
|
||||
[
|
||||
"code" => "fi",
|
||||
"name" => "Finnish",
|
||||
],
|
||||
[
|
||||
"code" => "fo",
|
||||
"name" => "Faeroese",
|
||||
],
|
||||
[
|
||||
"code" => "fr",
|
||||
"name" => "French (Standard)",
|
||||
],
|
||||
[
|
||||
"code" => "fr-be",
|
||||
"name" => "French (Belgium)",
|
||||
],
|
||||
[
|
||||
"code" => "fr-ca",
|
||||
"name" => "French (Canada)",
|
||||
],
|
||||
[
|
||||
"code" => "fr-ch",
|
||||
"name" => "French (Switzerland)",
|
||||
],
|
||||
[
|
||||
"code" => "fr-lu",
|
||||
"name" => "French (Luxembourg)",
|
||||
],
|
||||
[
|
||||
"code" => "ga",
|
||||
"name" => "Irish",
|
||||
],
|
||||
[
|
||||
"code" => "gd",
|
||||
"name" => "Gaelic (Scotland)",
|
||||
],
|
||||
[
|
||||
"code" => "he",
|
||||
"name" => "Hebrew",
|
||||
],
|
||||
[
|
||||
"code" => "hi",
|
||||
"name" => "Hindi",
|
||||
],
|
||||
[
|
||||
"code" => "hr",
|
||||
"name" => "Croatian",
|
||||
],
|
||||
[
|
||||
"code" => "hu",
|
||||
"name" => "Hungarian",
|
||||
],
|
||||
[
|
||||
"code" => "id",
|
||||
"name" => "Indonesian",
|
||||
],
|
||||
[
|
||||
"code" => "is",
|
||||
"name" => "Icelandic",
|
||||
],
|
||||
[
|
||||
"code" => "it",
|
||||
"name" => "Italian (Standard)",
|
||||
],
|
||||
[
|
||||
"code" => "it-ch",
|
||||
"name" => "Italian (Switzerland)",
|
||||
],
|
||||
[
|
||||
"code" => "ja",
|
||||
"name" => "Japanese",
|
||||
],
|
||||
[
|
||||
"code" => "ji",
|
||||
"name" => "Yiddish",
|
||||
],
|
||||
[
|
||||
"code" => "ko",
|
||||
"name" => "Korean",
|
||||
],
|
||||
[
|
||||
"code" => "ku",
|
||||
"name" => "Kurdish",
|
||||
],
|
||||
[
|
||||
"code" => "lt",
|
||||
"name" => "Lithuanian",
|
||||
],
|
||||
[
|
||||
"code" => "lv",
|
||||
"name" => "Latvian",
|
||||
],
|
||||
[
|
||||
"code" => "mk",
|
||||
"name" => "Macedonian (FYROM)",
|
||||
],
|
||||
[
|
||||
"code" => "ml",
|
||||
"name" => "Malayalam",
|
||||
],
|
||||
[
|
||||
"code" => "ms",
|
||||
"name" => "Malaysian",
|
||||
],
|
||||
[
|
||||
"code" => "mt",
|
||||
"name" => "Maltese",
|
||||
],
|
||||
[
|
||||
"code" => "nb",
|
||||
"name" => "Norwegian (Bokmål)",
|
||||
],
|
||||
[
|
||||
"code" => "ne",
|
||||
"name" => "Nepali",
|
||||
],
|
||||
[
|
||||
"code" => "nl",
|
||||
"name" => "Dutch (Standard)",
|
||||
],
|
||||
[
|
||||
"code" => "nl-be",
|
||||
"name" => "Dutch (Belgium)",
|
||||
],
|
||||
[
|
||||
"code" => "nn",
|
||||
"name" => "Norwegian (Nynorsk)",
|
||||
],
|
||||
[
|
||||
"code" => "no",
|
||||
"name" => "Norwegian",
|
||||
],
|
||||
[
|
||||
"code" => "pa",
|
||||
"name" => "Punjabi",
|
||||
],
|
||||
[
|
||||
"code" => "pl",
|
||||
"name" => "Polish",
|
||||
],
|
||||
[
|
||||
"code" => "pt",
|
||||
"name" => "Portuguese (Portugal)",
|
||||
],
|
||||
[
|
||||
"code" => "pt-br",
|
||||
"name" => "Portuguese (Brazil)",
|
||||
],
|
||||
[
|
||||
"code" => "rm",
|
||||
"name" => "Rhaeto-Romanic",
|
||||
],
|
||||
[
|
||||
"code" => "ro",
|
||||
"name" => "Romanian",
|
||||
],
|
||||
[
|
||||
"code" => "ro-md",
|
||||
"name" => "Romanian (Republic of Moldova)",
|
||||
],
|
||||
[
|
||||
"code" => "ru",
|
||||
"name" => "Russian",
|
||||
],
|
||||
[
|
||||
"code" => "ru-md",
|
||||
"name" => "Russian (Republic of Moldova)",
|
||||
],
|
||||
[
|
||||
"code" => "sb",
|
||||
"name" => "Sorbian",
|
||||
],
|
||||
[
|
||||
"code" => "sk",
|
||||
"name" => "Slovak",
|
||||
],
|
||||
[
|
||||
"code" => "sl",
|
||||
"name" => "Slovenian",
|
||||
],
|
||||
[
|
||||
"code" => "sq",
|
||||
"name" => "Albanian",
|
||||
],
|
||||
[
|
||||
"code" => "sr",
|
||||
"name" => "Serbian",
|
||||
],
|
||||
[
|
||||
"code" => "sv",
|
||||
"name" => "Swedish",
|
||||
],
|
||||
[
|
||||
"code" => "sv-fi",
|
||||
"name" => "Swedish (Finland)",
|
||||
],
|
||||
[
|
||||
"code" => "th",
|
||||
"name" => "Thai",
|
||||
],
|
||||
[
|
||||
"code" => "tn",
|
||||
"name" => "Tswana",
|
||||
],
|
||||
[
|
||||
"code" => "tr",
|
||||
"name" => "Turkish",
|
||||
],
|
||||
[
|
||||
"code" => "ts",
|
||||
"name" => "Tsonga",
|
||||
],
|
||||
[
|
||||
"code" => "ua",
|
||||
"name" => "Ukrainian",
|
||||
],
|
||||
[
|
||||
"code" => "ur",
|
||||
"name" => "Urdu",
|
||||
],
|
||||
[
|
||||
"code" => "ve",
|
||||
"name" => "Venda",
|
||||
],
|
||||
[
|
||||
"code" => "vi",
|
||||
"name" => "Vietnamese",
|
||||
],
|
||||
[
|
||||
"code" => "xh",
|
||||
"name" => "Xhosa",
|
||||
],
|
||||
[
|
||||
"code" => "zh-cn",
|
||||
"name" => "Chinese (PRC)",
|
||||
],
|
||||
[
|
||||
"code" => "zh-hk",
|
||||
"name" => "Chinese (Hong Kong)",
|
||||
],
|
||||
[
|
||||
"code" => "zh-sg",
|
||||
"name" => "Chinese (Singapore)",
|
||||
],
|
||||
[
|
||||
"code" => "zh-tw",
|
||||
"name" => "Chinese (Taiwan)",
|
||||
],
|
||||
[
|
||||
"code" => "zu",
|
||||
"name" => "Zulu",
|
||||
],
|
||||
];
|
||||
|
|
|
|||
15
app/config/locale/templates.php
Normal file
15
app/config/locale/templates.php
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'email' => [
|
||||
'verification',
|
||||
'magicSession',
|
||||
'recovery',
|
||||
'invitation',
|
||||
],
|
||||
'sms' => [
|
||||
'verification',
|
||||
'login',
|
||||
'invitation'
|
||||
]
|
||||
];
|
||||
|
|
@ -2,164 +2,66 @@
|
|||
<html>
|
||||
|
||||
<head>
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<title>{{subject}}</title>
|
||||
<style>
|
||||
body {
|
||||
background-color: {{bg-body}};
|
||||
color: {{text-content}};
|
||||
font-family: sans-serif;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
font-size: 14px;
|
||||
line-height: 1.4;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
-ms-text-size-adjust: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
}
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link
|
||||
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Poppins:wght@500;600&display=swap"
|
||||
rel="stylesheet">
|
||||
<style>
|
||||
a { color:currentColor; }
|
||||
body {
|
||||
padding: 32px;
|
||||
color: #616B7C;
|
||||
font-size: 15px;
|
||||
font-family: 'Inter', sans-serif;
|
||||
line-height: 15px;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: separate;
|
||||
mso-table-lspace: 0pt;
|
||||
mso-table-rspace: 0pt;
|
||||
width: 100%;
|
||||
}
|
||||
table {
|
||||
width: 100%;
|
||||
border-spacing: 0 !important;
|
||||
}
|
||||
|
||||
table td {
|
||||
font-family: sans-serif;
|
||||
font-size: 14px;
|
||||
vertical-align: top;
|
||||
}
|
||||
table,
|
||||
tr,
|
||||
th,
|
||||
td {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.body {
|
||||
background-color: {{bg-body}};
|
||||
width: 100%;
|
||||
}
|
||||
td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.container {
|
||||
display: block;
|
||||
margin: 0 auto !important;
|
||||
max-width: 580px;
|
||||
padding: 10px;
|
||||
width: 580px;
|
||||
}
|
||||
h* {
|
||||
font-family: 'Poppins', sans-serif;
|
||||
}
|
||||
|
||||
.content {
|
||||
box-sizing: border-box;
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
max-width: 580px;
|
||||
padding: 10px;
|
||||
color: {{text-content}};
|
||||
}
|
||||
hr {
|
||||
border: none;
|
||||
border-top: 1px solid #E8E9F0;
|
||||
}
|
||||
|
||||
.main {
|
||||
background: {{bg-content}};
|
||||
border-radius: 10px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
box-sizing: border-box;
|
||||
padding: 30px 30px 15px 30px;
|
||||
}
|
||||
|
||||
.content-block {
|
||||
padding-bottom: 10px;
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
p {
|
||||
font-family: sans-serif;
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
margin: 0;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
a {
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 620px) {
|
||||
.container {
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@media all {
|
||||
.ExternalClass {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.ExternalClass,
|
||||
.ExternalClass p,
|
||||
.ExternalClass span,
|
||||
.ExternalClass font,
|
||||
.ExternalClass td,
|
||||
.ExternalClass div {
|
||||
line-height: 100%;
|
||||
}
|
||||
|
||||
.apple-link a {
|
||||
color: inherit !important;
|
||||
font-family: inherit !important;
|
||||
font-size: inherit !important;
|
||||
font-weight: inherit !important;
|
||||
line-height: inherit !important;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
#MessageViewBody a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
font-size: inherit;
|
||||
font-family: inherit;
|
||||
font-weight: inherit;
|
||||
line-height: inherit;
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
p {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body style="direction: {{direction}}">
|
||||
<table role="presentation" border="0" cellpadding="0" cellspacing="0" class="body">
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td class="container">
|
||||
<div class="content">
|
||||
<table role="presentation" class="main">
|
||||
<tr>
|
||||
<td class="wrapper">
|
||||
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td>
|
||||
<p>{{hello}}</p>
|
||||
<p>{{body}}</p>
|
||||
<a href="{{redirect}}" target="_blank">{{redirect}}</a>
|
||||
<p></br>{{footer}}</p>
|
||||
<p>{{thanks}}
|
||||
</br>
|
||||
{{signature}}
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!-- <div style="text-align: center; line-height: 25px; margin: 15px 0; font-size: 12px; color: #40404c;">
|
||||
<a href="https://appwrite.io" style="text-decoration: none; color: #40404c;">Powered by <img src="https://appwrite.io/images/appwrite-footer-light.svg" height="15" style="margin: -3px 0" /></a>
|
||||
</div> -->
|
||||
</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
</table>
|
||||
<div style="max-width:650px; word-wrap: break-word; overflow-wrap: break-word;
|
||||
word-break: break-all; margin:0 auto;">
|
||||
<table style="margin-top: 32px">
|
||||
<tr>
|
||||
<td>
|
||||
{{body}}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
15
app/config/locale/templates/email-inner-base.tpl
Normal file
15
app/config/locale/templates/email-inner-base.tpl
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
<p>{{hello}}</p>
|
||||
|
||||
<br>
|
||||
|
||||
<p>{{body}}</p>
|
||||
|
||||
<a href="{{redirect}}" target="_blank">{{redirect}}</a>
|
||||
|
||||
<p>{{footer}}</p>
|
||||
|
||||
<br>
|
||||
|
||||
<p>{{thanks}}</p>
|
||||
|
||||
<p>{{signature}}</p>
|
||||
1
app/config/locale/templates/sms-base.tpl
Normal file
1
app/config/locale/templates/sms-base.tpl
Normal file
|
|
@ -0,0 +1 @@
|
|||
{{token}}
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s span",
|
||||
"emails.verification.subject": "Rekening Bevestiging",
|
||||
"emails.verification.hello": "Goeie dag {{name}}",
|
||||
"emails.verification.hello": "Goeie dag {{user}}",
|
||||
"emails.verification.body": "Volg hierdie skakel om u e-pos adres te bevestig.",
|
||||
"emails.verification.footer": "Ignoreer gerus hierdie boodskap as u nie die versoek gestuur het om u adres te bevestig nie.",
|
||||
"emails.verification.thanks": "Baie dankie",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Baie dankie",
|
||||
"emails.magicSession.signature": "Die {{project}} span",
|
||||
"emails.recovery.subject": "Herstel Wagwoord",
|
||||
"emails.recovery.hello": "Goeie dag {{name}}",
|
||||
"emails.recovery.hello": "Goeie dag {{user}}",
|
||||
"emails.recovery.body": "Volg hierdie skakel om u {{project}} wagwoord te herstel.",
|
||||
"emails.recovery.footer": "Ignoreer gerus hierdie boodskap as u nie die versoek gestuur het om u wagwoord te herstel nie.",
|
||||
"emails.recovery.thanks": "Baie dankie",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "rtl",
|
||||
"emails.sender": "فريق %s",
|
||||
"emails.verification.subject": "تأكيد الحساب",
|
||||
"emails.verification.hello": "مرحبا {{name}}",
|
||||
"emails.verification.hello": "مرحبا {{user}}",
|
||||
"emails.verification.body": "برجاء اتباع الرابط التالي لتأكيد بريدك الإلكتروني",
|
||||
"emails.verification.footer": "لو لم تطلب تأكيد هذا البريد الإلكتروني، يمكنك تجاهل هذه الرسالة",
|
||||
"emails.verification.thanks": "شكرا",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "شكرا",
|
||||
"emails.magicSession.signature": "فريق {{project}}",
|
||||
"emails.recovery.subject": "تغيير كلمة السر",
|
||||
"emails.recovery.hello": "أهلا {{name}}",
|
||||
"emails.recovery.hello": "أهلا {{user}}",
|
||||
"emails.recovery.body": "برجاء اتباع الراط التالي لتغيير كلمة السر الخاصة بـ{{project}}",
|
||||
"emails.recovery.footer": "لولم تطلب تغيير كلمة السر، يمكنك تجاهل هذه الرسالة",
|
||||
"emails.recovery.thanks": "شكرا",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s দল",
|
||||
"emails.verification.subject": "একাউণ্ট প্ৰমাণীকৰণ",
|
||||
"emails.verification.hello": "নমস্কাৰ {{name}}",
|
||||
"emails.verification.hello": "নমস্কাৰ {{user}}",
|
||||
"emails.verification.body": "আপোনাৰ ইমেইল ঠিকনা প্ৰমাণিত কৰিবলৈ এই লিংকটো অনুসৰণ কৰক।",
|
||||
"emails.verification.footer": "যদি আপুনি এই ঠিকনাটো সত্যাপিত কৰিবলৈ কোৱা নাই, আপুনি এই বাৰ্তাটো উপেক্ষা কৰিব পাৰে।",
|
||||
"emails.verification.thanks": "ধন্যবাদ",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "ধন্যবাদ",
|
||||
"emails.magicSession.signature": "{{project}} দল",
|
||||
"emails.recovery.subject": "পাছৱাৰ্ড ৰিছেট",
|
||||
"emails.recovery.hello": "ধন্যবাদ {{name}}",
|
||||
"emails.recovery.hello": "ধন্যবাদ {{user}}",
|
||||
"emails.recovery.body": "আপোনাৰ {{project}} পাছৱৰ্ড ৰিছেট কৰিবলৈ এই লিংকটো অনুসৰণ কৰক।.",
|
||||
"emails.recovery.footer": "যদি আপুনি আপোনাৰ পাছৱৰ্ড ৰিছেট কৰিবলৈ কোৱা নাছিল, আপুনি এই বাৰ্তাটো উপেক্ষা কৰিব পাৰে।",
|
||||
"emails.recovery.thanks": "ধন্যবাদ",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Komandası",
|
||||
"emails.verification.subject": "Hesab Doğrulama",
|
||||
"emails.verification.hello": "Salam {{name}}",
|
||||
"emails.verification.hello": "Salam {{user}}",
|
||||
"emails.verification.body": "E-poçt ünvanınızı təsdiq etmək üçün bu linki izləyin.",
|
||||
"emails.verification.footer": "Bu ünvanı doğrulamağı xahiş etməmisinizsə, bu mesajı gözardı edə bilərsiniz.",
|
||||
"emails.verification.thanks": "Təşəkkürlər",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Təşəkkürlər",
|
||||
"emails.magicSession.signature": "{{project}} komandası",
|
||||
"emails.recovery.subject": "Şifrə Sıfırlanması",
|
||||
"emails.recovery.hello": "Salam {{name}}",
|
||||
"emails.recovery.hello": "Salam {{user}}",
|
||||
"emails.recovery.body": "{{project}} şifrənizi sıfırlamaq üçün bu linki izləyin.",
|
||||
"emails.recovery.footer": "Şifrənizi sıfırlamağı xahiş etməmisinizsə, bu mesajı gözardı edə bilərsiniz.",
|
||||
"emails.recovery.thanks": "Təşəkkürlər",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "Каманда %s",
|
||||
"emails.verification.subject": "Верыфікацыя акаўнта",
|
||||
"emails.verification.hello": "Прывітанне {{name}}",
|
||||
"emails.verification.hello": "Прывітанне {{user}}",
|
||||
"emails.verification.body": "Перайдзіце па гэтай спасылцы, каб пацвердзіць свой адрас электроннай пошты",
|
||||
"emails.verification.footer": "Калі вы не запытвалі пацвярджэнне гэтага адрасу, праігнаруйце гэтае паведамленне.",
|
||||
"emails.verification.thanks": "Дзякуем",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Дзякуем",
|
||||
"emails.magicSession.signature": "каманда {{project}}",
|
||||
"emails.recovery.subject": "Скід пароля",
|
||||
"emails.recovery.hello": "Прывітанне, {{name}}",
|
||||
"emails.recovery.hello": "Прывітанне, {{user}}",
|
||||
"emails.recovery.body": "Перайдзіце па гэтай спасылцы, каб скінуць пароль для праекта {{project}}.",
|
||||
"emails.recovery.footer": "Калі вы не прасілі скінуць пароль, вы можаце праігнараваць гэта паведамленне.",
|
||||
"emails.recovery.thanks": "Дзякуем",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s टीम",
|
||||
"emails.verification.subject": "खाता प्रमाणिकरण",
|
||||
"emails.verification.hello": "नमस्ते {{name}}",
|
||||
"emails.verification.hello": "नमस्ते {{user}}",
|
||||
"emails.verification.body": "ईमेल प्रमाणिकरण करे क लेल दिहल गइल लिंक फॉलो करें|",
|
||||
"emails.verification.footer": "अगर ई पता को सत्यापित करे के लिए ना कहाले, तो आप ई संदेश क अनदेखा कर सकत अछि।",
|
||||
"emails.verification.thanks": "धन्यवाद",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "धन्यवाद",
|
||||
"emails.magicSession.signature": "{{project}} टीम",
|
||||
"emails.recovery.subject": "पासवर्ड बदल क लेल|",
|
||||
"emails.recovery.hello": "प्रणाम {{name}}",
|
||||
"emails.recovery.hello": "प्रणाम {{user}}",
|
||||
"emails.recovery.body": "पासवर्ड बदल क लेल दिहल गइल लिंक फॉलो करें|",
|
||||
"emails.recovery.footer": "अगर पासवर्ड बदल क लेल ना कहाले, तो आप ई संदेश क अनदेखा कर सकत अछि।",
|
||||
"emails.recovery.thanks": "धन्यवाद",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s টীম",
|
||||
"emails.verification.subject": "বিষয়",
|
||||
"emails.verification.hello": "নমস্কার {{name}}",
|
||||
"emails.verification.hello": "নমস্কার {{user}}",
|
||||
"emails.verification.body": "এই লিঙ্কের মাধ্যমে ইমেইল যাচাই করুন।",
|
||||
"emails.verification.footer": "আপনি যদি এই ঠিকানা যাচাই করতে না বলেন, তাহলে আপনি এই বার্তাটি উপেক্ষা করতে পারেন।",
|
||||
"emails.verification.thanks": "ধন্যবাদ",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "ধন্যবাদ",
|
||||
"emails.magicSession.signature": "{{project}} টীম",
|
||||
"emails.recovery.subject": "পাসওয়ার্ড রিসেট",
|
||||
"emails.recovery.hello": "নমস্কার {{name}}",
|
||||
"emails.recovery.hello": "নমস্কার {{user}}",
|
||||
"emails.recovery.body": "এই লিঙ্কের মাধ্যমে আপনার {{project}} পাসওয়ার্ড পুনরায় সেট করুন।",
|
||||
"emails.recovery.footer": "আপনি যদি আপনার পাসওয়ার্ড পুনরায় সেট করতে না বলেন, তাহলে আপনি এই বার্তাটি উপেক্ষা করতে পারেন।",
|
||||
"emails.recovery.thanks": "ধন্যবাদ",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Equip",
|
||||
"emails.verification.subject": "Verificació del compte",
|
||||
"emails.verification.hello": "Hola {{name}}",
|
||||
"emails.verification.hello": "Hola {{user}}",
|
||||
"emails.verification.body": "Accedeix a aquest enllaç per tal de verificar la teva adreça electrònica.",
|
||||
"emails.verification.footer": "Si no has sol·licitat la verificació d'aquesta adreça electrònica, pots ignorar aquest missatge.",
|
||||
"emails.verification.thanks": "Gràcies",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Gràcies",
|
||||
"emails.magicSession.signature": "Equip {{project}}",
|
||||
"emails.recovery.subject": "Reinicialitzar contrasenya",
|
||||
"emails.recovery.hello": "Hola {{name}}",
|
||||
"emails.recovery.hello": "Hola {{user}}",
|
||||
"emails.recovery.body": "Accedeix a aquest enllaç per a reinicialitzar la teva contrasenya de {{project}}.",
|
||||
"emails.recovery.footer": "Si no has sol·licitat reinicialitzar la teva contrasenya, pots ignorar aquest missatge.",
|
||||
"emails.recovery.thanks": "Gràcies",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Team",
|
||||
"emails.verification.subject": "Konto Verifikation",
|
||||
"emails.verification.hello": "Hej {{name}}",
|
||||
"emails.verification.hello": "Hej {{user}}",
|
||||
"emails.verification.body": "Følg dette link, for at verificere din email adresse.",
|
||||
"emails.verification.footer": "Hvis du ikke har bedt om at verificere denne adresse, ignorer venligst denne besked.",
|
||||
"emails.verification.thanks": "Tak",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Tak",
|
||||
"emails.magicSession.signature": "{{project}} team",
|
||||
"emails.recovery.subject": "Nulstil Password",
|
||||
"emails.recovery.hello": "Hej {{name}}",
|
||||
"emails.recovery.hello": "Hej {{user}}",
|
||||
"emails.recovery.body": "Følg dette link for at nulstille koden til {{project}}.",
|
||||
"emails.recovery.footer": "Hvis du ikke har bedt om at nulstille dit password, ignorer venligst denne besked.",
|
||||
"emails.recovery.thanks": "Tak",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Team",
|
||||
"emails.verification.subject": "Kontoverifizierung",
|
||||
"emails.verification.hello": "Hey {{name}}",
|
||||
"emails.verification.hello": "Hey {{user}}",
|
||||
"emails.verification.body": "Folge diesem Link, um deine E-Mail-Adresse zu bestätigen.",
|
||||
"emails.verification.footer": "Solltest du keine Verifizierung dieser E-Mail-Adresse angefordert haben, kannst du diese Nachricht ignorieren.",
|
||||
"emails.verification.thanks": "Danke",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Danke",
|
||||
"emails.magicSession.signature": "{{project}}-Team",
|
||||
"emails.recovery.subject": "Kennwort zurücksetzen",
|
||||
"emails.recovery.hello": "Hallo {{name}}",
|
||||
"emails.recovery.hello": "Hallo {{user}}",
|
||||
"emails.recovery.body": "Folge diesem Link, um dein {{project}}-Kennwort zurückzusetzen.",
|
||||
"emails.recovery.footer": "Solltest du keine Kennwort-Zurücksetzung angefordert haben, kannst du diese Nachricht ignorieren.",
|
||||
"emails.recovery.thanks": "Danke",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "Ομάδα %s",
|
||||
"emails.verification.subject": "Επαλήθευση Λογαριασμού",
|
||||
"emails.verification.hello": "Γεια σου {{name}}",
|
||||
"emails.verification.hello": "Γεια σου {{user}}",
|
||||
"emails.verification.body": "Ακολουθήστε αυτό το link για να επαληθεύσετε τη δ/νση του email σας",
|
||||
"emails.verification.footer": "Εάν δεν ζητήσατε επαλήθευση αυτής της δ/νσης email, μπορείτε να αγνοήσετε αυτό το μήνυμα",
|
||||
"emails.verification.thanks": "Ευχαριστούμε",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Ευχαριστούμε",
|
||||
"emails.magicSession.signature": "Η ομάδα του {{project}}",
|
||||
"emails.recovery.subject": "Αλλαγή κωδικού πρόσβασης",
|
||||
"emails.recovery.hello": "Γεια σου {{name}}",
|
||||
"emails.recovery.hello": "Γεια σου {{user}}",
|
||||
"emails.recovery.body": "Ακολουθήστε αυτό το link για να αλλάξετε τον {{project}} κωδικό σας",
|
||||
"emails.recovery.footer": "Εάν δεν ζητήσατε αλλαγή του κωδικού σας πρόσβασης, μπορείτε να αγνοήσετε αυτό το μήνυμα",
|
||||
"emails.recovery.thanks": "Ευχαριστούμε",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Team",
|
||||
"emails.verification.subject": "Account Verification",
|
||||
"emails.verification.hello": "Hey {{name}}",
|
||||
"emails.verification.hello": "Hey {{user}}",
|
||||
"emails.verification.body": "Follow this link to verify your email address.",
|
||||
"emails.verification.footer": "If you didn’t ask to verify this address, you can ignore this message.",
|
||||
"emails.verification.thanks": "Thanks",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Thanks",
|
||||
"emails.magicSession.signature": "{{project}} team",
|
||||
"emails.recovery.subject": "Password Reset",
|
||||
"emails.recovery.hello": "Hello {{name}}",
|
||||
"emails.recovery.hello": "Hello {{user}}",
|
||||
"emails.recovery.body": "Follow this link to reset your {{project}} password.",
|
||||
"emails.recovery.footer": "If you didn’t ask to reset your password, you can ignore this message.",
|
||||
"emails.recovery.thanks": "Thanks",
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "Teamo %s",
|
||||
"emails.verification.subject": "Konta Konfirmo",
|
||||
"emails.verification.hello": "Saluton {{name}}",
|
||||
"emails.verification.hello": "Saluton {{user}}",
|
||||
"emails.verification.body": "Alklaku ĉi tiun ligon por kontroli vian retpoŝtan adreson.",
|
||||
"emails.verification.footer": "Se vi ne petis ĉi tiun konfirmon de ĉi tiu retpoŝto, vi povas ignori ĉi tiun mesaĝon.",
|
||||
"emails.verification.thanks": "Dankegon.",
|
||||
|
|
@ -15,7 +15,7 @@
|
|||
"emails.magicSession.thanks": "Dankegon",
|
||||
"emails.magicSession.signature": "Teamo {{project}}",
|
||||
"emails.recovery.subject": "Parsvorta Restarigo",
|
||||
"emails.recovery.hello": "Saluton {{name}}",
|
||||
"emails.recovery.hello": "Saluton {{user}}",
|
||||
"emails.recovery.body": "Alklaku ĉi tiun ligon por reagordi vian pasvorton. {{project}}",
|
||||
"emails.recovery.footer": "Se vi ne petis reagordi vian pasvorton, vi povas ignori ĉi tiun mesaĝon.",
|
||||
"emails.recovery.thanks": "Dankegon",
|
||||
|
|
|
|||
|
|
@ -4,29 +4,29 @@
|
|||
"settings.direction": "rtl",
|
||||
"emails.sender": "تیم %s",
|
||||
"emails.verification.subject": "تأیید حساب",
|
||||
"emails.verification.hello": "سلام {{name}}",
|
||||
"emails.verification.hello": "سلام {{user}}",
|
||||
"emails.verification.body": "برای تأیید ایمیلتان پیوند زیر را دنبال کنید.",
|
||||
"emails.verification.footer": "اگر شما درخواست تأیید حساب ندادهاید، میتوانید این پیام را نادیده بگیرید.",
|
||||
"emails.verification.thanks": "سپاس فراوان",
|
||||
"emails.verification.signature": "تیم {{name}}",
|
||||
"emails.verification.signature": "تیم {{user}}",
|
||||
"emails.magicSession.subject": "ورود به حساب کاربری",
|
||||
"emails.magicSession.hello": "سلام،",
|
||||
"emails.magicSession.body": "برای ورود به حسابتان پیوند زیر را دنبال کنید.",
|
||||
"emails.magicSession.footer": "اگر شما درخواست ورود به حساب کاربری با استفاده از این ایمیل را ندادهاید، میتوانید این پیام را نادیده بگیرید.",
|
||||
"emails.magicSession.thanks": "سپاس فراوان",
|
||||
"emails.magicSession.signature": "تیم {{name}}",
|
||||
"emails.magicSession.signature": "تیم {{user}}",
|
||||
"emails.recovery.subject": "بازیابی گذرواژه",
|
||||
"emails.recovery.hello": "سلام {{name}}",
|
||||
"emails.recovery.hello": "سلام {{user}}",
|
||||
"emails.recovery.body": "برای بازیابی گذرواژهتان پیوند زیر را دنبال کنید.",
|
||||
"emails.recovery.footer": "اگر شما درخواست بازیابی گذرواژه ندادهاید، میتوانید این پیام را نادیده بگیرید.",
|
||||
"emails.recovery.thanks": "سپاس فراوان",
|
||||
"emails.recovery.signature": "تیم {{name}}",
|
||||
"emails.recovery.signature": "تیم {{user}}",
|
||||
"emails.invitation.subject": "دعوت به تیم %s در %s",
|
||||
"emails.invitation.hello": "سلام",
|
||||
"emails.invitation.body": "این ایمیل برای شما فرستاده شدهاست زیرا {{owner}} میخواهد شما را به تیم {{team}} در پروژهی {{project}} بیفزاید.",
|
||||
"emails.invitation.footer": "اگر علاقه ندارید، میتوانید این پیام را نادیده بگیرید.",
|
||||
"emails.invitation.thanks": "سپاس فراوان",
|
||||
"emails.invitation.signature": "تیم {{name}}",
|
||||
"emails.invitation.signature": "تیم {{user}}",
|
||||
"locale.country.unknown": "ناشناخته",
|
||||
"countries.af": "افغانستان",
|
||||
"countries.ao": "آنگولا",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "Équipe %s",
|
||||
"emails.verification.subject": "Vérification du compte",
|
||||
"emails.verification.hello": "Bonjour {{name}}",
|
||||
"emails.verification.hello": "Bonjour {{user}}",
|
||||
"emails.verification.body": "Suivez ce lien pour vérifier votre adresse e-mail.",
|
||||
"emails.verification.footer": "Si vous n'avez pas demandé à vérifier cette adresse, vous pouvez ignorer ce message.",
|
||||
"emails.verification.thanks": "Merci",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Merci",
|
||||
"emails.magicSession.signature": "L'équipe {{project}}",
|
||||
"emails.recovery.subject": "Réinitialisation du mot de passe",
|
||||
"emails.recovery.hello": "Bonjour {{name}}",
|
||||
"emails.recovery.hello": "Bonjour {{user}}",
|
||||
"emails.recovery.body": "Suivez ce lien pour réinitialiser votre mot de passe pour {{project}}.",
|
||||
"emails.recovery.footer": "Si vous n'avez pas demandé à réinitialiser votre mot de passe, vous pouvez ignorer ce message.",
|
||||
"emails.recovery.thanks": "Merci",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Foireann",
|
||||
"emails.verification.subject": "Fíoraithe cuntais",
|
||||
"emails.verification.hello": "Haigh {{name}}",
|
||||
"emails.verification.hello": "Haigh {{user}}",
|
||||
"emails.verification.body": "Lean an nasc seo chun do ríomhphost a fhíorú.",
|
||||
"emails.verification.footer": "Mura ndearna tú iarratas an seoladh seo a fhíoru, déan neamhaird den teachtaireacht seo.",
|
||||
"emails.verification.thanks": "Go raibh maith agat",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Go raibh maith agat",
|
||||
"emails.magicSession.signature": "{{project}} foireann",
|
||||
"emails.recovery.subject": "Athshocrú pasfhocail",
|
||||
"emails.recovery.hello": "Haigh {{name}}",
|
||||
"emails.recovery.hello": "Haigh {{user}}",
|
||||
"emails.recovery.body": "Lean an nasc seo chun do pasfhocal {{project}} a athshocrú.",
|
||||
"emails.recovery.footer": "Mura ndearna tú iarratas do pasfhocal a athshocrú, déan neamhaird den teachtaireacht seo.",
|
||||
"emails.recovery.thanks": "Go raibh maith agat",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s ટીમ",
|
||||
"emails.verification.subject": "ખાતાની ચકાસણી",
|
||||
"emails.verification.hello": "નમસ્કાર {{name}}",
|
||||
"emails.verification.hello": "નમસ્કાર {{user}}",
|
||||
"emails.verification.body": "તમારું ઇમેઇલ સરનામું ચકાસવા માટે આ લિંકને અનુસરો.",
|
||||
"emails.verification.footer": "જો તમે આ સરનામાંની ચકાસણી કરવાનું ન કહ્યું હોય, તો તમે આ સંદેશને અવગણી શકો છો.",
|
||||
"emails.verification.thanks": "આભાર",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "આભાર",
|
||||
"emails.magicSession.signature": "{{project}} ટીમ",
|
||||
"emails.recovery.subject": "પાસવર્ડ ફરીથી સેટ કરો",
|
||||
"emails.recovery.hello": "નમસ્કાર {{name}}",
|
||||
"emails.recovery.hello": "નમસ્કાર {{user}}",
|
||||
"emails.recovery.body": "તમારો {{project}} પાસવર્ડ ફરીથી સેટ કરવા માટે આ લિંકને અનુસરો.",
|
||||
"emails.recovery.footer": "જો તમે તમારો પાસવર્ડ ફરીથી સેટ કરવાનું ન કહ્યું હોય, તો તમે આ સંદેશને અવગણી શકો છો.",
|
||||
"emails.recovery.thanks": "આભાર",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "rtl",
|
||||
"emails.sender": "צוות %s",
|
||||
"emails.verification.subject": "אימות חשבון",
|
||||
"emails.verification.hello": "שלום {{name}}",
|
||||
"emails.verification.hello": "שלום {{user}}",
|
||||
"emails.verification.body": "לחץ על קישור זה כדי לאמת את כתובת הדוא\"ל שלך.",
|
||||
"emails.verification.footer": "אם לא ביקשת לאמת כתובת זו, תוכל להתעלם מהודעה זו.",
|
||||
"emails.verification.thanks": "תודה",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "תודה",
|
||||
"emails.magicSession.signature": "צוות {{project}}",
|
||||
"emails.recovery.subject": "איפוס סיסמא",
|
||||
"emails.recovery.hello": "שלום {{name}}",
|
||||
"emails.recovery.hello": "שלום {{user}}",
|
||||
"emails.recovery.body": "עקוב אחר קישור זה כדי לאפס את סיסמתך ב-{{project}}.",
|
||||
"emails.recovery.footer": "אם לא ביקשת לאפס את הסיסמה, תוכל להתעלם מהודעה זו.",
|
||||
"emails.recovery.thanks": "תודה",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s टीम",
|
||||
"emails.verification.subject": "अकाउंट वेरिफिकेशन ",
|
||||
"emails.verification.hello": "नमस्ते {{name}}",
|
||||
"emails.verification.hello": "नमस्ते {{user}}",
|
||||
"emails.verification.body": "इस लिंक के माध्यम से अपने ईमेल को सत्यापित कीजिये।",
|
||||
"emails.verification.footer": "यदि आप इस पते को सत्यापित नहीं करना चाहते हैं, तो आप इस संदेश को नज़रअंदाज़ कर सकते हैं।",
|
||||
"emails.verification.thanks": "धन्यवाद",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "धन्यवाद",
|
||||
"emails.magicSession.signature": "{{project}} टीम",
|
||||
"emails.recovery.subject": "पासवर्ड रीसेट",
|
||||
"emails.recovery.hello": "नमस्ते {{name}}",
|
||||
"emails.recovery.hello": "नमस्ते {{user}}",
|
||||
"emails.recovery.body": "इस लिंक के माध्यम से अपना {{project}} पासवर्ड रीसेट करें।",
|
||||
"emails.recovery.footer": "यदि आप अपना पासवर्ड रीसेट नहीं करना चाहते हैं, तो आप इस संदेश को नज़रअंदाज़ कर सकते हैं।",
|
||||
"emails.recovery.thanks": "धन्यवाद",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Tim",
|
||||
"emails.verification.subject": "Verifikacija računa",
|
||||
"emails.verification.hello": "Pozdrav {{name}}",
|
||||
"emails.verification.hello": "Pozdrav {{user}}",
|
||||
"emails.verification.body": "Slijedite ovu poveznicu da biste potvrdili svoju adresu e-pošte.",
|
||||
"emails.verification.footer": "Ukoliko niste zatražili potvrdu ove adrese, možete zanemariti ovu poruku.",
|
||||
"emails.verification.thanks": "Hvala",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Hvala",
|
||||
"emails.magicSession.signature": "{{project}} tim",
|
||||
"emails.recovery.subject": "Ponovno postavljanje lozinke",
|
||||
"emails.recovery.hello": "Pozdrav {{name}}",
|
||||
"emails.recovery.hello": "Pozdrav {{user}}",
|
||||
"emails.recovery.body": "Slijedite ovu poveznicu za ponovno postavljanje {{project}} lozinke.",
|
||||
"emails.recovery.footer": "Ako niste zatražili ponovno postavljanje Vaše lozinke, možete zanemariti ovu poruku.",
|
||||
"emails.recovery.thanks": "Hvala",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Csapat",
|
||||
"emails.verification.subject": "Fiók Megerősítése",
|
||||
"emails.verification.hello": "Szia {{name}}",
|
||||
"emails.verification.hello": "Szia {{user}}",
|
||||
"emails.verification.body": "Kattints a linkre, hogy megerősítsd az email címedet.",
|
||||
"emails.verification.footer": "Ha nem te kérted a címed megerősítését, akkor nyugodtan hagyd figyelmen kívül ezt az üzenetet.",
|
||||
"emails.verification.thanks": "Köszönettel",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Köszönettel",
|
||||
"emails.magicSession.signature": "a {{project}} csapat",
|
||||
"emails.recovery.subject": "Jelszó Visszaállítása",
|
||||
"emails.recovery.hello": "Hahó, {{name}}",
|
||||
"emails.recovery.hello": "Hahó, {{user}}",
|
||||
"emails.recovery.body": "Kattints a linkre a {{project}} jelszavad visszaállításához.",
|
||||
"emails.recovery.footer": "Ha nem te kezdeményezted a jelszavad visszaállítását, akkor nyugodtan hagyd figyelmen kívül ezt az üzenetet.",
|
||||
"emails.recovery.thanks": "Köszönettel",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "Tim %s",
|
||||
"emails.verification.subject": "Verifikasi Akun",
|
||||
"emails.verification.hello": "Hai {{name}}",
|
||||
"emails.verification.hello": "Hai {{user}}",
|
||||
"emails.verification.body": "Ikuti tautan ini untuk memverifikasi alamat email Anda.",
|
||||
"emails.verification.footer": "Jika Anda tidak meminta untuk memverifikasi alamat email ini, Anda dapat mengabaikan pesan ini.",
|
||||
"emails.verification.thanks": "Terima kasih",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Terima kasih",
|
||||
"emails.magicSession.signature": "Tim {{project}}",
|
||||
"emails.recovery.subject": "Atur Ulang Kata Sandi",
|
||||
"emails.recovery.hello": "Halo {{name}}",
|
||||
"emails.recovery.hello": "Halo {{user}}",
|
||||
"emails.recovery.body": "Ikuti tautan ini untuk menyetel ulang kata sandi {{project}} Anda.",
|
||||
"emails.recovery.footer": "Jika Anda tidak meminta untuk menyetel ulang kata sandi, Anda dapat mengabaikan pesan ini.",
|
||||
"emails.recovery.thanks": "Terima kasih",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "Team %s",
|
||||
"emails.verification.subject": "Verifica account",
|
||||
"emails.verification.hello": "Ciao {{name}}",
|
||||
"emails.verification.hello": "Ciao {{user}}",
|
||||
"emails.verification.body": "Clicca questo link per verificare il tuo indirizzo email.",
|
||||
"emails.verification.footer": "Se non hai richiesto la verifica dell’indirizzo email, puoi ignorare questo messaggio.",
|
||||
"emails.verification.thanks": "Grazie",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Grazie",
|
||||
"emails.magicSession.signature": "Il team {{project}}",
|
||||
"emails.recovery.subject": "Reimpostazione password",
|
||||
"emails.recovery.hello": "Ciao {{name}}",
|
||||
"emails.recovery.hello": "Ciao {{user}}",
|
||||
"emails.recovery.body": "Clicca questo link per reimpostare la tua password di {{project}}.",
|
||||
"emails.recovery.footer": "Se non hai richiesto la reimpostazione della password, puoi ignorare questo messaggio.",
|
||||
"emails.recovery.thanks": "Grazie",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s チーム",
|
||||
"emails.verification.subject": "アカウント認証",
|
||||
"emails.verification.hello": "こんにちは{{name}}さん",
|
||||
"emails.verification.hello": "こんにちは{{user}}さん",
|
||||
"emails.verification.body": "メールアドレスを有効化するためには下記リンクをクリックして下さい。",
|
||||
"emails.verification.footer": "このメールに心当たりが無い場合は破棄をお願いいたします。",
|
||||
"emails.verification.thanks": "ご利用いただきありがとうございます。",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "ご利用いただきありがとうございます。",
|
||||
"emails.magicSession.signature": "{{project}}チーム",
|
||||
"emails.recovery.subject": "パスワードリセット",
|
||||
"emails.recovery.hello": "こんにちは{{name}}さん",
|
||||
"emails.recovery.hello": "こんにちは{{user}}さん",
|
||||
"emails.recovery.body": "パスワードをリセットするためには下記リンクをクリックしてください。",
|
||||
"emails.recovery.footer": "このメールに心当たりが無い場合は破棄をお願いいたします。",
|
||||
"emails.recovery.thanks": "ご利用いただきありがとうございます。",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "Tim %s",
|
||||
"emails.verification.subject": "Verifikasi Akun",
|
||||
"emails.verification.hello": "Hai {{name}}",
|
||||
"emails.verification.hello": "Hai {{user}}",
|
||||
"emails.verification.body": "Klik link iki kanggo verifikasi alamat email sampeyan.",
|
||||
"emails.verification.footer": "Yen sampeyan ora njaluk verifikasi alamat iki, sampeyan iso nglirwakake pesen iki.",
|
||||
"emails.verification.thanks": "Matur nuwun",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Matur nuwun",
|
||||
"emails.magicSession.signature": "Tim {{project}}",
|
||||
"emails.recovery.subject": "Setel ulang sandi",
|
||||
"emails.recovery.hello": "Halo {{name}}",
|
||||
"emails.recovery.hello": "Halo {{user}}",
|
||||
"emails.recovery.body": "Klik link iki kanggo setel ulang sandi {{project}}.",
|
||||
"emails.recovery.footer": "Yen sampeyan ora njaluk setel ulang sandi, sampeyan iso nglirwakake pesen iki.",
|
||||
"emails.recovery.thanks": "Matur nuwun",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s ತಂಡ",
|
||||
"emails.verification.subject": "ಖಾತೆ ಪರಿಶೀಲನೆ",
|
||||
"emails.verification.hello": "ನಮಸ್ಕಾರ {{name}}",
|
||||
"emails.verification.hello": "ನಮಸ್ಕಾರ {{user}}",
|
||||
"emails.verification.body": "ನಿಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸ ಪರಿಶೀಲನೆಗೆ ಈ ಲಿಂಕನ್ನು ಅನುಸರಿಸಿ",
|
||||
"emails.verification.footer": "ನೀವು ಇಮೇಲ್ ವಿಳಾಸ ಪರಿಶೀಲನೆಗೆ ಕೇಳದಿದ್ದರೆ, ಈ ಸಂದೇಶವನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ",
|
||||
"emails.verification.thanks": "ಧನ್ಯವಾದಗಳು",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "ಧನ್ಯವಾದಗಳು",
|
||||
"emails.magicSession.signature": "{{project}} ತಂಡ",
|
||||
"emails.recovery.subject": "ಗುಪ್ತಪದ ಮರುಹೊಂದಿಸಿ",
|
||||
"emails.recovery.hello": "ನಮಸ್ಕಾರ {{name}}",
|
||||
"emails.recovery.hello": "ನಮಸ್ಕಾರ {{user}}",
|
||||
"emails.recovery.body": "ನಿಮ್ಮ {{project}} ಗುಪ್ತಪದವನ್ನು ಮರುಹೊಂದಿಸಲು ಈ ಲಿಂಕನ್ನು ಅನುಸರಿಸಿ",
|
||||
"emails.recovery.footer": "ನೀವು ಗುಪ್ತಪದವನ್ನು ಮರುಹೊಂದಿಸಲು ಕೇಳದಿದ್ದರೆ, ಈ ಸಂದೇಶವನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ",
|
||||
"emails.recovery.thanks": "ಧನ್ಯವಾದಗಳು",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s 팀",
|
||||
"emails.verification.subject": "계정 인증",
|
||||
"emails.verification.hello": "안녕하세요 {{name}}님",
|
||||
"emails.verification.hello": "안녕하세요 {{user}}님",
|
||||
"emails.verification.body": "이메일 인증을 위해 링크를 클릭하여주세요.",
|
||||
"emails.verification.footer": "이메일 인증을 부탁하지 않으셨다면 이 메시지를 무시하여주세요.",
|
||||
"emails.verification.thanks": "감사합니다",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "감사합니다",
|
||||
"emails.magicSession.signature": "{{project}} 팀",
|
||||
"emails.recovery.subject": "비밀번호 재설정",
|
||||
"emails.recovery.hello": "안녕하세요 {{name}}님",
|
||||
"emails.recovery.hello": "안녕하세요 {{user}}님",
|
||||
"emails.recovery.body": "{{project}}의 비밀번호 재설정을 위해 링크를 클릭하여주세요.",
|
||||
"emails.recovery.footer": "비밀번호 재설정 신청을 하지 않으셨다면 이 메세지를 무시하여주세요.",
|
||||
"emails.recovery.thanks": "감사합니다",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr*",
|
||||
"emails.sender": "%s team",
|
||||
"emails.verification.subject": "Ratio comprobatio",
|
||||
"emails.verification.hello": "Salve ibi {{name}}",
|
||||
"emails.verification.hello": "Salve ibi {{user}}",
|
||||
"emails.verification.body": "Sequere hanc nexum ut quin inscriptionem tuum.",
|
||||
"emails.verification.footer": "Si verificationem huius inscriptionis non postulasti, nuntium hunc ignorare potes.",
|
||||
"emails.verification.thanks": "Gratias",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Gratias",
|
||||
"emails.magicSession.signature": "{{project}} team",
|
||||
"emails.recovery.subject": "Recuperet password",
|
||||
"emails.recovery.hello": "Salve ibi {{name}}",
|
||||
"emails.recovery.hello": "Salve ibi {{user}}",
|
||||
"emails.recovery.body": "Sequere hanc conjunctionem ut recipias project password {{project}}",
|
||||
"emails.recovery.footer": "Si tesseram tuam recuperare non petis, nuntium hunc ignorare potes",
|
||||
"emails.recovery.thanks": "Gratias",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Team",
|
||||
"emails.verification.subject": "Kont Verifikatioun",
|
||||
"emails.verification.hello": "Hey {{name}}",
|
||||
"emails.verification.hello": "Hey {{user}}",
|
||||
"emails.verification.body": "Follegt dëse Link fir Är E -Mail Adress z'iwwerpréiwen.",
|
||||
"emails.verification.footer": "Wann Dir net gefrot hutt dës Adress z'iwwerpréiwen, kënnt Dir dëse Message ignoréieren.",
|
||||
"emails.verification.thanks": "Merci",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Merci",
|
||||
"emails.magicSession.signature": "{{project}} équipe",
|
||||
"emails.recovery.subject": "Password Reset",
|
||||
"emails.recovery.hello": "Hello {{name}}",
|
||||
"emails.recovery.hello": "Hello {{user}}",
|
||||
"emails.recovery.body": "Follegt dëse Link fir Äert {{project}} Passwuert zréckzesetzen.",
|
||||
"emails.recovery.footer": "Wann Dir net gefrot hutt Äert Passwuert zréckzesetzen, kënnt Dir dëse Message ignoréieren.",
|
||||
"emails.recovery.thanks": "Merci",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s komanda",
|
||||
"emails.verification.subject": "Paskyros Patvirtinimas",
|
||||
"emails.verification.hello": "Labas {{name}}",
|
||||
"emails.verification.hello": "Labas {{user}}",
|
||||
"emails.verification.body": "Spauskite šią nuorodą, kad patvirtintumėte savo el. paštą.",
|
||||
"emails.verification.footer": "Jei neprašėte patvirtinti šio el. pašto, galite ignoruoti šį pranešimą.",
|
||||
"emails.verification.thanks": "Ačiū",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Ačiū",
|
||||
"emails.magicSession.signature": "{{project}} komanda",
|
||||
"emails.recovery.subject": "Slaptažodžio Atkūrimas",
|
||||
"emails.recovery.hello": "Labas {{name}}",
|
||||
"emails.recovery.hello": "Labas {{user}}",
|
||||
"emails.recovery.body": "Spauskite šią nuorodą, kad atkurtumėte projekto {{project}} slaptažodį.",
|
||||
"emails.recovery.footer": "Jei neprašėte atkurti savo slaptažodzio, galite ignoruoti šį pranešimą.",
|
||||
"emails.recovery.thanks": "Ačiū",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s komanda",
|
||||
"emails.verification.subject": "Konta verifikācija",
|
||||
"emails.verification.hello": "Sveicināti, {{name}}",
|
||||
"emails.verification.hello": "Sveicināti, {{user}}",
|
||||
"emails.verification.body": "Sekojiet saitei, lai apstiprinātu savu e-pasta adresi.",
|
||||
"emails.verification.footer": "Ja Jūs nepieprasījāt šīs adreses apstiprinājumu, lūdzu, ignorējiet šo ziņu.",
|
||||
"emails.verification.thanks": "Paldies",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Paldies",
|
||||
"emails.magicSession.signature": "{{project}} komanda",
|
||||
"emails.recovery.subject": "Paroles atjaunināšana",
|
||||
"emails.recovery.hello": "Labdien, {{name}}",
|
||||
"emails.recovery.hello": "Labdien, {{user}}",
|
||||
"emails.recovery.body": "Sekojiet saitei, lai atjauninātu {{project}} paroli.",
|
||||
"emails.recovery.footer": "Ja Jūs nepieprasījāt paroles atjaunināšanu, lūdzu, ignorējiet šo ziņu.",
|
||||
"emails.recovery.thanks": "Paldies",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s ടീം",
|
||||
"emails.verification.subject": "അക്കൗണ്ട് സ്ഥിരീകരണം",
|
||||
"emails.verification.hello": "നമസ്കാരം {{name}}",
|
||||
"emails.verification.hello": "നമസ്കാരം {{user}}",
|
||||
"emails.verification.body": "നിങ്ങളുടെ ഇമെയിൽ വിലാസം സ്ഥിരീകരിക്കുന്നതിനായി ഈ ലിങ്ക് പിന്തുടരുക.",
|
||||
"emails.verification.footer": "ഈ വിലാസം സ്ഥിരീകരിക്കാന് നിങ്ങൾ ആവശ്യപ്പെട്ടില്ലെങ്കിൽ, നിങ്ങൾക്ക് ഈ സന്ദേശം അവഗണിക്കാവുന്നതാണ്.",
|
||||
"emails.verification.thanks": "നന്ദി",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "നന്ദി",
|
||||
"emails.magicSession.signature": "{{project}} ടീം",
|
||||
"emails.recovery.subject": "രഹസ്യവാക്ക് പുനക്രമീകരണം",
|
||||
"emails.recovery.hello": "നമസ്കാരം {{name}}",
|
||||
"emails.recovery.hello": "നമസ്കാരം {{user}}",
|
||||
"emails.recovery.body": "നിങ്ങളുടെ {{Project}} രഹസ്യവാക്ക് പുനക്രമീകരിക്കുന്നതിന് ഈ ലിങ്ക് പിന്തുടരുക.",
|
||||
"emails.recovery.footer": "നിങ്ങളുടെ രഹസ്യവാക്ക് പുനക്രമീകരിക്കാന് നിങ്ങൾ ആവശ്യപ്പെട്ടില്ലെങ്കിൽ, ഈ സന്ദേശം അവഗണിക്കാവുന്നതാണ്.",
|
||||
"emails.recovery.thanks": "നന്ദി",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s टीम",
|
||||
"emails.verification.subject": "खाते सत्यापन",
|
||||
"emails.verification.hello": "नमस्कार {{name}}",
|
||||
"emails.verification.hello": "नमस्कार {{user}}",
|
||||
"emails.verification.body": "आपला ईमेल पत्ता सत्यापित करण्यासाठी या दुव्याचे अनुसरण करा.",
|
||||
"emails.verification.footer": "आपण या पत्त्याची पडताळणी करण्यास सांगितले नसल्यास, आपण या संदेशाकडे दुर्लक्ष करू शकता.",
|
||||
"emails.verification.thanks": "धन्यवाद",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "धन्यवाद",
|
||||
"emails.magicSession.signature": "{{project}} संघ",
|
||||
"emails.recovery.subject": "पासवर्ड रीसेट",
|
||||
"emails.recovery.hello": "नमस्कार {{name}}",
|
||||
"emails.recovery.hello": "नमस्कार {{user}}",
|
||||
"emails.recovery.body": "आपला {{project}}चे पासवर्ड रीसेट करण्यासाठी या लिंकचे अनुसरण करा",
|
||||
"emails.recovery.footer": "आपण आपला पासवर्ड रीसेट करण्यास सांगितले नसल्यास, आपण या संदेशाकडे दुर्लक्ष करू शकता.",
|
||||
"emails.recovery.thanks": "धन्यवाद",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Team",
|
||||
"emails.verification.subject": "Pengesahan Akaun",
|
||||
"emails.verification.hello": "Hey {{name}}",
|
||||
"emails.verification.hello": "Hey {{user}}",
|
||||
"emails.verification.body": "Tekan pautan ini untuk mengesahkan alamat email anda.",
|
||||
"emails.verification.footer": "Sekiranya anda tidak membuat permintaan untuk mengesahkan email ini, sila abaikan mesej ini.",
|
||||
"emails.verification.thanks": "Terima kasih",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Terima kasih",
|
||||
"emails.magicSession.signature": "{{project}} team",
|
||||
"emails.recovery.subject": "Menetap semula Kata Laluan",
|
||||
"emails.recovery.hello": "Hello {{name}}",
|
||||
"emails.recovery.hello": "Hello {{user}}",
|
||||
"emails.recovery.body": "Tekan pautan ini untuk menetapkan semula kata laluan {{project}}.",
|
||||
"emails.recovery.footer": "Sekiranya anda tidak membuat permintaan menetap semula kata laluan, sila abaikan mesej ini.",
|
||||
"emails.recovery.thanks": "Terima kasih",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Team",
|
||||
"emails.verification.subject": "Kontobekreftelse",
|
||||
"emails.verification.hello": "Hei {{name}}",
|
||||
"emails.verification.hello": "Hei {{user}}",
|
||||
"emails.verification.body": "Følg denne lenken for å bekrefte din e-postadresse.",
|
||||
"emails.verification.footer": "Dersom du ikke ba om å bekrefte e-postadressen, kan du se bort fra denne meldingen.",
|
||||
"emails.verification.thanks": "Takk",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Takk",
|
||||
"emails.magicSession.signature": "{{project}} team",
|
||||
"emails.recovery.subject": "Nullstille passord",
|
||||
"emails.recovery.hello": "Hei {{name}}",
|
||||
"emails.recovery.hello": "Hei {{user}}",
|
||||
"emails.recovery.body": "Følg denne lenken for å nullstille ditt {{project}} passord.",
|
||||
"emails.recovery.footer": "Dersom du ikke ba om å nullstille passordet ditt, kan du se bort fra denne meldingen.",
|
||||
"emails.recovery.thanks": "Takk",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s समूह",
|
||||
"emails.verification.subject": "खाता प्रमाणिकरण",
|
||||
"emails.verification.hello": "नमस्ते {{name}}",
|
||||
"emails.verification.hello": "नमस्ते {{user}}",
|
||||
"emails.verification.body": "इमेल ठेगाना प्रमाणित गर्नको लागी यो लिंकमा जानुहोस।",
|
||||
"emails.verification.footer": "यदि तपाइँले आफ्नो खाता प्रमाणित गर्न सोध्नु भएको छैन भने तपाइँले यो सन्देश लाई बेवास्ता गर्न सक्नुहुन्छ।",
|
||||
"emails.verification.thanks": "धन्यवाद",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "धन्यवाद",
|
||||
"emails.magicSession.signature": "{{project}} समूह",
|
||||
"emails.recovery.subject": "पासवर्ड रिसेट",
|
||||
"emails.recovery.hello": "नमस्ते {{name}}",
|
||||
"emails.recovery.hello": "नमस्ते {{user}}",
|
||||
"emails.recovery.body": "{{project}}को पासवर्ड रिसेट गर्नको लागी यो लिंकमा जानुहोस।",
|
||||
"emails.recovery.footer": "यदि तपाइँले आफ्नो पासवर्ड रिसेट गर्न सोध्नु भएको छैन भने तपाइँले यो सन्देश लाई बेवास्ता गर्न सक्नुहुन्छ।",
|
||||
"emails.recovery.thanks": "धन्यवाद",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Team",
|
||||
"emails.verification.subject": "Account Verificatie",
|
||||
"emails.verification.hello": "Hoi {{name}}",
|
||||
"emails.verification.hello": "Hoi {{user}}",
|
||||
"emails.verification.body": "Volg deze link om uw e-mail te verifieren",
|
||||
"emails.verification.footer": "Als u geen aanvraag voor verificatie heeft gemaakt, kan u deze mail negeren",
|
||||
"emails.verification.thanks": "Bedankt",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Bedankt",
|
||||
"emails.magicSession.signature": "{{project}} team",
|
||||
"emails.recovery.subject": "Wachtwoord Herinstellen",
|
||||
"emails.recovery.hello": "Hallo {{name}}",
|
||||
"emails.recovery.hello": "Hallo {{user}}",
|
||||
"emails.recovery.body": "Volg deze link om het wachtwoord van uw project {{project}} te wijzigen",
|
||||
"emails.recovery.footer": "Als u geen aanvraag heeft gemaakt om uw wachtwoord te wijzigen, kan u deze mail negeren",
|
||||
"emails.recovery.thanks": "Bedankt",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Team",
|
||||
"emails.verification.subject": "Kontostadfesting",
|
||||
"emails.verification.hello": "Hallo {{name}}",
|
||||
"emails.verification.hello": "Hallo {{user}}",
|
||||
"emails.verification.body": "Følg denne lenkja for å bekrefta din e-postadresse.",
|
||||
"emails.verification.footer": "Om du ikkje bad om å bekrefta e-postadressa, kan du ignorera denne meldinga.",
|
||||
"emails.verification.thanks": "Takk",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Takk",
|
||||
"emails.magicSession.signature": "{{project}} team",
|
||||
"emails.recovery.subject": "Nullstilla passord",
|
||||
"emails.recovery.hello": "Hallo {{name}}",
|
||||
"emails.recovery.hello": "Hallo {{user}}",
|
||||
"emails.recovery.body": "Følg denne lenkja for å nullstilla ditt {{project}} passord.",
|
||||
"emails.recovery.footer": "Om du ikkje ba om å nullstilla passordet ditt, kan du ignorera denne meldinga.",
|
||||
"emails.recovery.thanks": "Takk",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s ଦଳ",
|
||||
"emails.verification.subject": "ଖାତା ଯାଞ୍ଚ",
|
||||
"emails.verification.hello": "ନମସ୍କାର {{name}}",
|
||||
"emails.verification.hello": "ନମସ୍କାର {{user}}",
|
||||
"emails.verification.body": "ଆପଣଙ୍କର ଇମେଲ୍ ଠିକଣା ଯାଞ୍ଚ କରିବାକୁ ଏହି ଲିଙ୍କ୍ ଅନୁସରଣ କରନ୍ତୁ |",
|
||||
"emails.verification.footer": "ଯଦି ଆପଣ ଏହି ଠିକଣା ଯାଞ୍ଚ କରିବାକୁ କହି ନାହାଁନ୍ତି, ତେବେ ଆପଣ ଏହି ସନ୍ଦେଶକୁ ଉପେକ୍ଷା କରିପାରିବେ |",
|
||||
"emails.verification.thanks": "ଧନ୍ୟବାଦ",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "ଧନ୍ୟବାଦ",
|
||||
"emails.magicSession.signature": "{{project}} ଦଳ",
|
||||
"emails.recovery.subject": "ପାସୱାର୍ଡ ପୁନଃ ସେଟ୍ କରନ୍ତୁ |",
|
||||
"emails.recovery.hello": "ନମସ୍କାର {{name}}",
|
||||
"emails.recovery.hello": "ନମସ୍କାର {{user}}",
|
||||
"emails.recovery.body": "ଆପଣଙ୍କର {{project}} ପାସୱାର୍ଡ ପୁନଃ ସେଟ୍ କରିବାକୁ ଏହି ଲିଙ୍କକୁ ଅନୁସରଣ କରନ୍ତୁ |",
|
||||
"emails.recovery.footer": "ଯଦି ଆପଣ ଆପଣଙ୍କର ପାସୱାର୍ଡ ପୁନଃ ସେଟ୍ କରିବାକୁ କହି ନାହାଁନ୍ତି, ତେବେ ଆପଣ ଏହି ସନ୍ଦେଶକୁ ଉପେକ୍ଷା କରିପାରିବେ |",
|
||||
"emails.recovery.thanks": "ଧନ୍ୟବାଦ",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "Zespół %s",
|
||||
"emails.verification.subject": "Weryfikacja konta",
|
||||
"emails.verification.hello": "Cześć {{name}}",
|
||||
"emails.verification.hello": "Cześć {{user}}",
|
||||
"emails.verification.body": "Przejdź do tego linku, aby zweryfikować swój adres e-mail.",
|
||||
"emails.verification.footer": "Jeśli to nie Ty prosiłeś o zweryfikowanie tego adresu, zignoruj tę wiadomość.",
|
||||
"emails.verification.thanks": "Dziękujemy",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Dziękujemy",
|
||||
"emails.magicSession.signature": "Zespół {{project}}",
|
||||
"emails.recovery.subject": "Resetowanie hasła",
|
||||
"emails.recovery.hello": "Cześć {{name}}",
|
||||
"emails.recovery.hello": "Cześć {{user}}",
|
||||
"emails.recovery.body": "Przejdź do tego linku, aby zresetować hasło dla {{project}}.",
|
||||
"emails.recovery.footer": "Jeśli to nie Ty prosiłeś o zresetowanie swojego hasła, zignoruj tę wiadomość.",
|
||||
"emails.recovery.thanks": "Dziękujemy",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "Time %s",
|
||||
"emails.verification.subject": "Verificação da Conta",
|
||||
"emails.verification.hello": "Olá {{name}}",
|
||||
"emails.verification.hello": "Olá {{user}}",
|
||||
"emails.verification.body": "Clique neste link para verificar o seu endereço de e-mail.",
|
||||
"emails.verification.footer": "Se você não solicitou a verificação deste e-mail, ignore essa mensagem.",
|
||||
"emails.verification.thanks": "Muito obrigado",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Muito obrigado",
|
||||
"emails.magicSession.signature": "Time {{project}}",
|
||||
"emails.recovery.subject": "Redefinição de senha",
|
||||
"emails.recovery.hello": "Olá {{name}}",
|
||||
"emails.recovery.hello": "Olá {{user}}",
|
||||
"emails.recovery.body": "Clique neste link para redefinir sua senha do {{project}}.",
|
||||
"emails.recovery.footer": "Se você não solicitou a redefinição da sua senha, você pode ignorar essa mensagem.",
|
||||
"emails.recovery.thanks": "Muito obrigado",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "Equipa %s",
|
||||
"emails.verification.subject": "Verificação de contas",
|
||||
"emails.verification.hello": "Hey {{name}}",
|
||||
"emails.verification.hello": "Hey {{user}}",
|
||||
"emails.verification.body": "Siga esta ligação para verificar o seu endereço de correio electrónico.",
|
||||
"emails.verification.footer": "Se não pediu para verificar este endereço, pode ignorar esta mensagem.",
|
||||
"emails.verification.thanks": "Obrigado",
|
||||
|
|
@ -16,8 +16,8 @@
|
|||
"emails.magicSession.thanks": "Obrigado",
|
||||
"emails.magicSession.signature": "Equipa {{project}}",
|
||||
"emails.recovery.subject": "Redefinição de senha",
|
||||
"emails.recovery.hello": "Olá {{name}}",
|
||||
"emails.recovery.body": "tilize este link para redefinir a palavra-passe do seu projecto {{project}}",
|
||||
"emails.recovery.hello": "Olá {{user}}",
|
||||
"emails.recovery.body": "Utilize este link para redefinir a palavra-passe do seu projecto {{project}}",
|
||||
"emails.recovery.footer": "Se não pediu para redefinir a sua palavra-passe, pode ignorar esta mensagem.",
|
||||
"emails.recovery.thanks": "Obrigado",
|
||||
"emails.recovery.signature": "Equipa {{project}}",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Echipa",
|
||||
"emails.verification.subject": "Verificare cont",
|
||||
"emails.verification.hello": "Bună ziua, {{name}}",
|
||||
"emails.verification.hello": "Bună ziua, {{user}}",
|
||||
"emails.verification.body": "Click pe acest link pentru a valida adresa de email.",
|
||||
"emails.verification.footer": "Dacă nu ai cerut validarea adresei de email, poți ignora acest mesaj.",
|
||||
"emails.verification.thanks": "Mulțumim",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Mulțumim",
|
||||
"emails.magicSession.signature": "Echipa {{project}}",
|
||||
"emails.recovery.subject": "Resetare parolă",
|
||||
"emails.recovery.hello": "Bună ziua, {{name}}",
|
||||
"emails.recovery.hello": "Bună ziua, {{user}}",
|
||||
"emails.recovery.body": "Click aici pentru a reseta parola pentru {{project}}",
|
||||
"emails.recovery.footer": "Dacă nu ai cerut să îți schimbi parola, ignoră acest mesaj.",
|
||||
"emails.recovery.thanks": "Mulțumim",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "Команда %s",
|
||||
"emails.verification.subject": "Верификация аккаунта",
|
||||
"emails.verification.hello": "Здравствуйте, {{name}}",
|
||||
"emails.verification.hello": "Здравствуйте, {{user}}",
|
||||
"emails.verification.body": "Перейдите по ссылке, чтобы подтвердить свой адрес электронной почты.",
|
||||
"emails.verification.footer": "Если вы не запрашивали подтверждение этого адреса, проигнорируйте это сообщение.",
|
||||
"emails.verification.thanks": "Спасибо",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Спасибо",
|
||||
"emails.magicSession.signature": "команда {{project}}",
|
||||
"emails.recovery.subject": "Сброс пароля",
|
||||
"emails.recovery.hello": "Здравствуйте, {{name}}",
|
||||
"emails.recovery.hello": "Здравствуйте, {{user}}",
|
||||
"emails.recovery.body": "Перейдите по этой ссылке для того чтобы сбросить свой пароль для проекта {{project}}",
|
||||
"emails.recovery.footer": "Если вы не запрашивали сброс пароля, проигнорируйте это сообщение.",
|
||||
"emails.recovery.thanks": "Спасибо",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s गणः",
|
||||
"emails.verification.subject": "पञ्जिकानिर्णायनम्",
|
||||
"emails.verification.hello": "अयि {{name}}",
|
||||
"emails.verification.hello": "अयि {{user}}",
|
||||
"emails.verification.body": "ई-पत्रनिर्णायनार्थमिदं संयोगसूत्रमनुसरतु।",
|
||||
"emails.verification.footer": "यदि अस्य संकेतस्य निर्णायनं नेष्यते तर्हि वात्र्तामिमामुपेक्षताम्।",
|
||||
"emails.verification.thanks": "धन्यवादः",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "धन्यवादः",
|
||||
"emails.magicSession.signature": "{{project}} गणः",
|
||||
"emails.recovery.subject": "कूटशब्दपुनयाेजनम्",
|
||||
"emails.recovery.hello": "अयि भो {{name}}",
|
||||
"emails.recovery.hello": "अयि भो {{user}}",
|
||||
"emails.recovery.body": "{{project}} कूटशब्दपुनयाेजनाय संयोगमेनमनुसरतु।",
|
||||
"emails.recovery.footer": "यदि कूटशब्दस्य पुनयाेजनं नेष्यते तर्हि वात्र्तामिमामुपेक्षताम्।",
|
||||
"emails.recovery.thanks": "धन्यवादः",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s ٽيم",
|
||||
"emails.verification.subject": " اڪائونٽ جي تصديق",
|
||||
"emails.verification.hello": "سلام {{name}}",
|
||||
"emails.verification.hello": "سلام {{user}}",
|
||||
"emails.verification.body": "پنھنجي اي ميل ايڊريس جي تصديق ڪرڻ لاءِ ھن لنڪ تي عمل ڪريو.",
|
||||
"emails.verification.footer": "جيڪڏھن توھان نه پ askيا ھئا ھن ايڊريس جي تصديق ڪرڻ لاءِ ، توھان نظر انداز ڪري سگھوٿا ھن پيغام کي.",
|
||||
"emails.verification.thanks": "مهرباني",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "مهرباني",
|
||||
"emails.magicSession.signature": "{{project}} ٽيم",
|
||||
"emails.recovery.subject": "پاسورڊ ري سيٽ",
|
||||
"emails.recovery.hello": "هيلو {{name}}",
|
||||
"emails.recovery.hello": "هيلو {{user}}",
|
||||
"emails.recovery.body": "ھن لنڪ تي عمل ڪريو پنھنجو {{project}} پاسورڊ ري سيٽ ڪرڻ لاءِ.",
|
||||
"emails.recovery.footer": "جيڪڏھن توھان نه پ پيو ھو پنھنجي پاسورڊ کي ري سيٽ ڪرڻ لاءِ ، توھان نظر انداز ڪري سگھوٿا ھن پيغام کي.",
|
||||
"emails.recovery.thanks": "مهرباني",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s කණ්ඩායම",
|
||||
"emails.verification.subject": "ගිණුම් සත්යාපනය",
|
||||
"emails.verification.hello": "හේයි {{name}}",
|
||||
"emails.verification.hello": "හේයි {{user}}",
|
||||
"emails.verification.body": "ඔබගේ විද්යුත් තැපැල් ලිපිනය සත්යාපනය කිරීමට මෙම සම්බන්ධකය අනුගමනය කරන්න.",
|
||||
"emails.verification.footer": "මෙම ලිපිනය සත්යාපනය කරන ලෙස ඔබ ඉල්ලුවේ නැත්නම්, ඔබට මෙම පණිවිඩය නොසලකා හැරිය හැක.",
|
||||
"emails.verification.thanks": "ස්තුතියි",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "ස්තුතියි",
|
||||
"emails.magicSession.signature": "{{project}} කණ්ඩායම",
|
||||
"emails.recovery.subject": "මුරපද යළි පිහිටුවීම",
|
||||
"emails.recovery.hello": "ආයුබෝවන් {{name}}",
|
||||
"emails.recovery.hello": "ආයුබෝවන් {{user}}",
|
||||
"emails.recovery.body": "ඔබගේ {{project}} මුරපදය නැවත සැකසීමට මෙම සම්බන්ධකය අනුගමනය කරන්න.",
|
||||
"emails.recovery.footer": "ඔබගේ මුරපදය නැවත සකසන ලෙස ඔබ ඉල්ලුවේ නැත්නම්, ඔබට මෙම පණිවිඩය නොසලකා හැරිය හැක.",
|
||||
"emails.recovery.thanks": "ස්තුතියි",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s Tím",
|
||||
"emails.verification.subject": "Overenie účtu",
|
||||
"emails.verification.hello": "Ahoj {{name}}",
|
||||
"emails.verification.hello": "Ahoj {{user}}",
|
||||
"emails.verification.body": "Použi tento link pre overenie svojej emailovej adresy.",
|
||||
"emails.verification.footer": "Ak si nepožiadal o overenie tejto adresy, môžeš túto správu ignorovať.",
|
||||
"emails.verification.thanks": "Ďakujeme.",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Ďakujeme",
|
||||
"emails.magicSession.signature": "{{project}} tím",
|
||||
"emails.recovery.subject": "Obnovenie hesla",
|
||||
"emails.recovery.hello": "Ahoj {{name}}",
|
||||
"emails.recovery.hello": "Ahoj {{user}}",
|
||||
"emails.recovery.body": "Použi tento link pre obnovenie svojho {{project}} hesla.",
|
||||
"emails.recovery.footer": "Ak si nepožiadal o obnovu svojho hesla, túto správu môžeš ignorovať.",
|
||||
"emails.recovery.thanks": "Ďakujeme",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "Chikwata che%s",
|
||||
"emails.verification.subject": "Kuratidzi kuti ndiwe muridzi weakaundi",
|
||||
"emails.verification.hello": "Hesi {{name}}",
|
||||
"emails.verification.hello": "Hesi {{user}}",
|
||||
"emails.verification.body": "Tevedza chinongedzo ichi kuti uratidze kuti kero iyi ndeyako.",
|
||||
"emails.verification.footer": "Kana usina kukumbira kuti uratidze kuti kero iyi ndeyako, unogona kufuratira meseji iyi.",
|
||||
"emails.verification.thanks": "Ndatenda",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Ndatenda",
|
||||
"emails.magicSession.signature": "Chikwata che{{project}}",
|
||||
"emails.recovery.subject": "Kuchinja pasiwedhi",
|
||||
"emails.recovery.hello": "Mhoro {{name}}",
|
||||
"emails.recovery.hello": "Mhoro {{user}}",
|
||||
"emails.recovery.body": "Baya chinongedzo ichi kuti uchinje pasiwedhi yako ye{{project}}.",
|
||||
"emails.recovery.footer": "Kana usina kukumbira kuchinja pasiwedhi yako, unogona kufuratira meseji iyi.",
|
||||
"emails.recovery.thanks": "Ndatenda",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s-teamet",
|
||||
"emails.verification.subject": "Verifiera konto",
|
||||
"emails.verification.hello": "Hej {{name}}",
|
||||
"emails.verification.hello": "Hej {{user}}",
|
||||
"emails.verification.body": "Klicka på denna länk för att verifiera din email",
|
||||
"emails.verification.footer": "Om du inte bad om att verifiera den här e-postadressen kan du ignorera detta mail.",
|
||||
"emails.verification.thanks": "Tack",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Tack",
|
||||
"emails.magicSession.signature": "{{project}} teamet",
|
||||
"emails.recovery.subject": "Återställ lösenord",
|
||||
"emails.recovery.hello": "Hej {{name}}",
|
||||
"emails.recovery.hello": "Hej {{user}}",
|
||||
"emails.recovery.body": "Klicka på denna länk för att återställa lösenordet på {{project}}",
|
||||
"emails.recovery.footer": "Om du inte bad om att återställa ditt lösenord kan du ignorera detta mail.",
|
||||
"emails.recovery.thanks": "Tack",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s குழு",
|
||||
"emails.verification.subject": "கணக்கு சரிபார்ப்பு",
|
||||
"emails.verification.hello": "ஏய் {{name}}",
|
||||
"emails.verification.hello": "ஏய் {{user}}",
|
||||
"emails.verification.body": "உங்கள் மின்னஞ்சல் முகவரியைச் சரிபார்க்க இந்த இணைப்பைப் பின்தொடரவும்.",
|
||||
"emails.verification.footer": "இந்த முகவரியைச் சரிபார்க்கும்படி உங்களிடம் கேட்கப்படவில்லை என்றால், இந்தச் செய்தியை நீங்கள் புறக்கணிக்கலாம்.",
|
||||
"emails.verification.thanks": "நன்றி",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "நன்றி",
|
||||
"emails.magicSession.signature": "{{project}} குழு",
|
||||
"emails.recovery.subject": "கடவுச்சொல் மீட்டமைப்பு",
|
||||
"emails.recovery.hello": "வணக்கம் {{name}}",
|
||||
"emails.recovery.hello": "வணக்கம் {{user}}",
|
||||
"emails.recovery.body": "மீட்டமைக்க இந்த இணைப்பைப் பின்தொடரவும் {{project}} கடவுச்சொல்.",
|
||||
"emails.recovery.footer": "உங்கள் கடவுச்சொல்லை மீட்டமைக்கும்படி உங்களிடம் கேட்கப்படவில்லை என்றால், இந்தச் செய்தியை நீங்கள் புறக்கணிக்கலாம்.",
|
||||
"emails.recovery.thanks": "நன்றி",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s జట్టు",
|
||||
"emails.verification.subject": "ఖాతా ధృవీకరణ",
|
||||
"emails.verification.hello": "నమస్కారము {{name}}",
|
||||
"emails.verification.hello": "నమస్కారము {{user}}",
|
||||
"emails.verification.body": "ఈ లింక్ ద్వారా ఇమెయిల్ ని ధృవీకరించండి",
|
||||
"emails.verification.footer": "మీరు ఈ చిరునామాను ధృవీకరించమని అడగనట్లయితే, మీరు ఈ సందేశాన్ని విస్మరించవచ్చు",
|
||||
"emails.verification.thanks": "ధన్యవాదాలు",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "ధన్యవాదాలు",
|
||||
"emails.magicSession.signature": "{{project}} జట్",
|
||||
"emails.recovery.subject": "పాస్వర్డ్ రీసెట్",
|
||||
"emails.recovery.hello": "నమస్కారమ {{name}}",
|
||||
"emails.recovery.hello": "నమస్కారమ {{user}}",
|
||||
"emails.recovery.body": "మీ {{project}} పాస్వర్డ్ ని రీసెట్ చేయడానికి ఈ లింక్ ని అనుసరించండి",
|
||||
"emails.recovery.footer": "మీరు మీ పాస్వర్డ్ ని రీసెట్ చేయమని అడగనట్లయితే, మీరు ఈ సందేశాన్ని విస్మరించవచ్చు",
|
||||
"emails.recovery.thanks": "ధన్యవాదాల",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "ทีม %s",
|
||||
"emails.verification.subject": "การยืนยันบัญชีผู้ใช้",
|
||||
"emails.verification.hello": "เรียนคุณ {{name}}",
|
||||
"emails.verification.hello": "เรียนคุณ {{user}}",
|
||||
"emails.verification.body": "กดเข้าไปที่ลิงก์นี้เพื่อยืนยันอีเมลของท่าน",
|
||||
"emails.verification.footer": "หากท่านไม่ได้ต้องการที่จะยืนยันอีเมลนี้ ท่านสามารถเพิกเฉยข้อความนี้ได้",
|
||||
"emails.verification.thanks": "ขอบคุณ",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "ขอบคุณ",
|
||||
"emails.magicSession.signature": "ทีม {{project}}",
|
||||
"emails.recovery.subject": "รีเซ็ตรหัสผ่าน",
|
||||
"emails.recovery.hello": "เรียนคุณ {{name}}",
|
||||
"emails.recovery.hello": "เรียนคุณ {{user}}",
|
||||
"emails.recovery.body": "กดเข้าไปที่ลิงก์นี้เพื่อรีเซ็ตรหัสผ่านสำหรับโปรเจกต์ {{project}} ของท่าน",
|
||||
"emails.recovery.footer": "หากท่านไม่ได้ต้องการที่จะรีเซ็ตรหัสผ่านของท่าน ท่านสามารถเพิกเฉยข้อความนี้ได้",
|
||||
"emails.recovery.thanks": "ขอบคุณ",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "Pangkat ng %s",
|
||||
"emails.verification.subject": "Pagpapatunay ng account",
|
||||
"emails.verification.hello": "Kamusta {{name}}",
|
||||
"emails.verification.hello": "Kamusta {{user}}",
|
||||
"emails.verification.body": "Sundin ang link na ito upang ma-verify ang iyong email address.",
|
||||
"emails.verification.footer": "Kung hindi mo hiningi na i-verify ang address na ito, maaari mong balewalain ang mensahe na ito.",
|
||||
"emails.verification.thanks": "Salamat",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Salamat",
|
||||
"emails.magicSession.signature": "Pangkat ng {{project}}",
|
||||
"emails.recovery.subject": "I-reset ang password",
|
||||
"emails.recovery.hello": "Kamusta {{name}}",
|
||||
"emails.recovery.hello": "Kamusta {{user}}",
|
||||
"emails.recovery.body": "Sundin ang link na ito upang i-reset ang password ng iyong {{project}}.",
|
||||
"emails.recovery.footer": "Kung hindi mo hiningi na i-reset ang iyong password, maaari mong balewalain ang mensahe na ito.",
|
||||
"emails.recovery.thanks": "Salamat",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "Команда %s",
|
||||
"emails.verification.subject": "Верифікація акаунта",
|
||||
"emails.verification.hello": "Вітаємо, {{name}}",
|
||||
"emails.verification.hello": "Вітаємо, {{user}}",
|
||||
"emails.verification.body": "Перейдіть за цим посиланням, щоб підтвердити свою електронну адресу.",
|
||||
"emails.verification.footer": "Якщо ви не запитували підтвердження цієї адреси, ви можете ігнорувати це повідомлення.",
|
||||
"emails.verification.thanks": "Дякуємо",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Дякуємо",
|
||||
"emails.magicSession.signature": "команда {{project}}",
|
||||
"emails.recovery.subject": "Скидання пароля",
|
||||
"emails.recovery.hello": "Вітаємо, {{name}}",
|
||||
"emails.recovery.hello": "Вітаємо, {{user}}",
|
||||
"emails.recovery.body": "Перейдіть за цим посиланням для того щоб скинути свій пароль для проекту {{project}}",
|
||||
"emails.recovery.footer": "Якщо ви не запитували скидання паролю, проігноруйте це повідомлення.",
|
||||
"emails.recovery.thanks": "Дякуємо",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "rtl",
|
||||
"emails.sender": "%s ٹیم",
|
||||
"emails.verification.subject": "اکاؤنٹ کی تصدیق",
|
||||
"emails.verification.hello": "خوش آمدید {{name}}",
|
||||
"emails.verification.hello": "خوش آمدید {{user}}",
|
||||
"emails.verification.body": "براہ کرم اپنے ای میل کی تصدیق کے لیے درج ذیل لنک پر عمل کریں۔",
|
||||
"emails.verification.footer": "اگر آپ نے اس پتے کی تصدیق کے لیے نہیں کہا تو آپ اس پیغام کو نظر انداز کر سکتے ہیں۔",
|
||||
"emails.verification.thanks": "شکریہ",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "شکریہ",
|
||||
"emails.magicSession.signature": "ٹیم۔ {{project}}",
|
||||
"emails.recovery.subject": "پاس ورڈ ری سیٹ۔",
|
||||
"emails.recovery.hello": "ہیلو {{name}}",
|
||||
"emails.recovery.hello": "ہیلو {{user}}",
|
||||
"emails.recovery.body": "{{project}} کا پاس ورڈ تبدیل کرنے کے لیے درج ذیل لنک پر عمل کریں",
|
||||
"emails.recovery.footer": "اگر آپ نے اپنا پاس ورڈ دوبارہ ترتیب دینے کے لیے نہیں کہا تو آپ اس پیغام کو نظر انداز کر سکتے ہیں۔",
|
||||
"emails.recovery.thanks": "شکریہ",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "Nhóm %s",
|
||||
"emails.verification.subject": "Xác minh tài khoản",
|
||||
"emails.verification.hello": "Chào {{name}}",
|
||||
"emails.verification.hello": "Chào {{user}}",
|
||||
"emails.verification.body": "Nhấn vào đường dẫn sau để xác minh địa chỉ email của bạn.",
|
||||
"emails.verification.footer": "Nếu bạn không yêu cầu xác minh tài khoản, bạn có thể bỏ qua email này.",
|
||||
"emails.verification.thanks": "Cảm ơn",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "Cảm ơn",
|
||||
"emails.magicSession.signature": "Nhóm {{project}}",
|
||||
"emails.recovery.subject": "Thiết lập lại mật khẩu",
|
||||
"emails.recovery.hello": "Chào {{name}}",
|
||||
"emails.recovery.hello": "Chào {{user}}",
|
||||
"emails.recovery.body": "Nhấn vào đường dẫn sau để thiết lập lại mật khẩu {{project}} của bạn.",
|
||||
"emails.recovery.footer": "Nếu bạn không yêu cầu thiết lập lại mật khẩu, bạn có thể bỏ qua email này.",
|
||||
"emails.recovery.thanks": "Cảm ơn",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s 小组",
|
||||
"emails.verification.subject": "帐户验证",
|
||||
"emails.verification.hello": "你好 {{name}}",
|
||||
"emails.verification.hello": "你好 {{user}}",
|
||||
"emails.verification.body": "点此链接验证您的电子邮件地址。",
|
||||
"emails.verification.footer": "如果您没有要求验证此地址,则可忽略此消息。",
|
||||
"emails.verification.thanks": "谢谢",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "谢谢",
|
||||
"emails.magicSession.signature": "{{project}} 团队",
|
||||
"emails.recovery.subject": "重设密码",
|
||||
"emails.recovery.hello": "你好 {{name}}",
|
||||
"emails.recovery.hello": "你好 {{user}}",
|
||||
"emails.recovery.body": "点此链接重置您的 {{project}} 密码。",
|
||||
"emails.recovery.footer": "如果您没有要求重置密码,则可以忽略此消息。",
|
||||
"emails.recovery.thanks": "谢谢",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s 小組",
|
||||
"emails.verification.subject": "帳戶驗證",
|
||||
"emails.verification.hello": "嗨 {{name}}",
|
||||
"emails.verification.hello": "嗨 {{user}}",
|
||||
"emails.verification.body": "按照此連結驗證您的電子郵件地址。",
|
||||
"emails.verification.footer": "如果您沒有要求驗證此地址,則可以忽略此消息。",
|
||||
"emails.verification.thanks": "謝謝",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"emails.magicSession.thanks": "謝謝",
|
||||
"emails.magicSession.signature": "{{project}} 團隊",
|
||||
"emails.recovery.subject": "重設密碼",
|
||||
"emails.recovery.hello": "您好 {{name}}",
|
||||
"emails.recovery.hello": "您好 {{user}}",
|
||||
"emails.recovery.body": "按照此連結重置您的 {{project}} 密碼。",
|
||||
"emails.recovery.footer": "如果您沒有要求重置密碼,則可以忽略此消息。",
|
||||
"emails.recovery.thanks": "謝謝",
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ return [
|
|||
[
|
||||
'key' => 'web',
|
||||
'name' => 'Web',
|
||||
'version' => '10.2.0',
|
||||
'version' => '13.0.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-web',
|
||||
'package' => 'https://www.npmjs.com/package/appwrite',
|
||||
'enabled' => true,
|
||||
|
|
@ -28,7 +28,7 @@ return [
|
|||
'gitUrl' => 'git@github.com:appwrite/sdk-for-web.git',
|
||||
'gitRepoName' => 'sdk-for-web',
|
||||
'gitUserName' => 'appwrite',
|
||||
'gitBranch' => 'master',
|
||||
'gitBranch' => 'dev',
|
||||
'demos' => [
|
||||
[
|
||||
'icon' => 'react.svg',
|
||||
|
|
@ -63,7 +63,7 @@ return [
|
|||
[
|
||||
'key' => 'flutter',
|
||||
'name' => 'Flutter',
|
||||
'version' => '8.2.0',
|
||||
'version' => '11.0.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-flutter',
|
||||
'package' => 'https://pub.dev/packages/appwrite',
|
||||
'enabled' => true,
|
||||
|
|
@ -76,12 +76,12 @@ return [
|
|||
'gitUrl' => 'git@github.com:appwrite/sdk-for-flutter.git',
|
||||
'gitRepoName' => 'sdk-for-flutter',
|
||||
'gitUserName' => 'appwrite',
|
||||
'gitBranch' => 'master',
|
||||
'gitBranch' => 'dev',
|
||||
],
|
||||
[
|
||||
'key' => 'apple',
|
||||
'name' => 'Apple',
|
||||
'version' => '1.2.0',
|
||||
'version' => '4.0.1',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-apple',
|
||||
'package' => 'https://github.com/appwrite/sdk-for-apple',
|
||||
'enabled' => true,
|
||||
|
|
@ -94,7 +94,7 @@ return [
|
|||
'gitUrl' => 'git@github.com:appwrite/sdk-for-apple.git',
|
||||
'gitRepoName' => 'sdk-for-apple',
|
||||
'gitUserName' => 'appwrite',
|
||||
'gitBranch' => 'master',
|
||||
'gitBranch' => 'dev',
|
||||
],
|
||||
[
|
||||
'key' => 'objective-c',
|
||||
|
|
@ -111,12 +111,12 @@ return [
|
|||
'gitUrl' => 'git@github.com:appwrite/sdk-for-objective-c.git',
|
||||
'gitRepoName' => 'sdk-for-objective-c',
|
||||
'gitUserName' => 'appwrite',
|
||||
'gitBranch' => 'master',
|
||||
'gitBranch' => 'dev',
|
||||
],
|
||||
[
|
||||
'key' => 'android',
|
||||
'name' => 'Android',
|
||||
'version' => '1.2.0',
|
||||
'version' => '4.0.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-android',
|
||||
'package' => 'https://search.maven.org/artifact/io.appwrite/sdk-for-android',
|
||||
'enabled' => true,
|
||||
|
|
@ -129,7 +129,7 @@ return [
|
|||
'gitUrl' => 'git@github.com:appwrite/sdk-for-android.git',
|
||||
'gitRepoName' => 'sdk-for-android',
|
||||
'gitUserName' => 'appwrite',
|
||||
'gitBranch' => 'main',
|
||||
'gitBranch' => 'dev',
|
||||
'docDirectories' => [
|
||||
'Kotlin' => 'kotlin',
|
||||
'Java' => 'java',
|
||||
|
|
@ -185,7 +185,7 @@ return [
|
|||
[
|
||||
'key' => 'web',
|
||||
'name' => 'Console',
|
||||
'version' => '0.0.1',
|
||||
'version' => '0.3.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-console',
|
||||
'package' => '',
|
||||
'enabled' => true,
|
||||
|
|
@ -196,14 +196,14 @@ return [
|
|||
'prism' => 'javascript',
|
||||
'source' => \realpath(__DIR__ . '/../sdks/console-web'),
|
||||
'gitUrl' => 'git@github.com:appwrite/sdk-for-console.git',
|
||||
'gitBranch' => 'main',
|
||||
'gitBranch' => 'dev',
|
||||
'gitRepoName' => 'sdk-for-console',
|
||||
'gitUserName' => 'appwrite',
|
||||
],
|
||||
[
|
||||
'key' => 'cli',
|
||||
'name' => 'Command Line',
|
||||
'version' => '1.1.1',
|
||||
'version' => '4.1.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-cli',
|
||||
'package' => 'https://www.npmjs.com/package/appwrite-cli',
|
||||
'enabled' => true,
|
||||
|
|
@ -216,7 +216,7 @@ return [
|
|||
'gitUrl' => 'git@github.com:appwrite/sdk-for-cli.git',
|
||||
'gitRepoName' => 'sdk-for-cli',
|
||||
'gitUserName' => 'appwrite',
|
||||
'gitBranch' => 'master',
|
||||
'gitBranch' => 'dev',
|
||||
],
|
||||
],
|
||||
],
|
||||
|
|
@ -231,7 +231,7 @@ return [
|
|||
[
|
||||
'key' => 'nodejs',
|
||||
'name' => 'Node.js',
|
||||
'version' => '8.2.0',
|
||||
'version' => '11.0.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-node',
|
||||
'package' => 'https://www.npmjs.com/package/node-appwrite',
|
||||
'enabled' => true,
|
||||
|
|
@ -244,12 +244,12 @@ return [
|
|||
'gitUrl' => 'git@github.com:appwrite/sdk-for-node.git',
|
||||
'gitRepoName' => 'sdk-for-node',
|
||||
'gitUserName' => 'appwrite',
|
||||
'gitBranch' => 'master',
|
||||
'gitBranch' => 'dev',
|
||||
],
|
||||
[
|
||||
'key' => 'deno',
|
||||
'name' => 'Deno',
|
||||
'version' => '6.2.0',
|
||||
'version' => '9.0.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-deno',
|
||||
'package' => 'https://deno.land/x/appwrite',
|
||||
'enabled' => true,
|
||||
|
|
@ -262,12 +262,12 @@ return [
|
|||
'gitUrl' => 'git@github.com:appwrite/sdk-for-deno.git',
|
||||
'gitRepoName' => 'sdk-for-deno',
|
||||
'gitUserName' => 'appwrite',
|
||||
'gitBranch' => 'master',
|
||||
'gitBranch' => 'dev',
|
||||
],
|
||||
[
|
||||
'key' => 'php',
|
||||
'name' => 'PHP',
|
||||
'version' => '7.2.0',
|
||||
'version' => '10.0.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-php',
|
||||
'package' => 'https://packagist.org/packages/appwrite/appwrite',
|
||||
'enabled' => true,
|
||||
|
|
@ -280,12 +280,12 @@ return [
|
|||
'gitUrl' => 'git@github.com:appwrite/sdk-for-php.git',
|
||||
'gitRepoName' => 'sdk-for-php',
|
||||
'gitUserName' => 'appwrite',
|
||||
'gitBranch' => 'master',
|
||||
'gitBranch' => 'dev',
|
||||
],
|
||||
[
|
||||
'key' => 'python',
|
||||
'name' => 'Python',
|
||||
'version' => '1.2.0',
|
||||
'version' => '4.0.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-python',
|
||||
'package' => 'https://pypi.org/project/appwrite/',
|
||||
'enabled' => true,
|
||||
|
|
@ -298,12 +298,12 @@ return [
|
|||
'gitUrl' => 'git@github.com:appwrite/sdk-for-python.git',
|
||||
'gitRepoName' => 'sdk-for-python',
|
||||
'gitUserName' => 'appwrite',
|
||||
'gitBranch' => 'master',
|
||||
'gitBranch' => 'dev',
|
||||
],
|
||||
[
|
||||
'key' => 'ruby',
|
||||
'name' => 'Ruby',
|
||||
'version' => '7.2.0',
|
||||
'version' => '10.0.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-ruby',
|
||||
'package' => 'https://rubygems.org/gems/appwrite',
|
||||
'enabled' => true,
|
||||
|
|
@ -316,12 +316,12 @@ return [
|
|||
'gitUrl' => 'git@github.com:appwrite/sdk-for-ruby.git',
|
||||
'gitRepoName' => 'sdk-for-ruby',
|
||||
'gitUserName' => 'appwrite',
|
||||
'gitBranch' => 'master',
|
||||
'gitBranch' => 'dev',
|
||||
],
|
||||
[
|
||||
'key' => 'go',
|
||||
'name' => 'Go',
|
||||
'version' => '1.2.0',
|
||||
'version' => '3.0.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-go',
|
||||
'package' => '',
|
||||
'enabled' => false,
|
||||
|
|
@ -334,12 +334,12 @@ return [
|
|||
'gitUrl' => 'git@github.com:appwrite/sdk-for-go.git',
|
||||
'gitRepoName' => 'sdk-for-go',
|
||||
'gitUserName' => 'appwrite',
|
||||
'gitBranch' => 'master',
|
||||
'gitBranch' => 'dev',
|
||||
],
|
||||
[
|
||||
'key' => 'java',
|
||||
'name' => 'Java',
|
||||
'version' => '1.2.0',
|
||||
'version' => '3.0.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-java',
|
||||
'package' => '',
|
||||
'enabled' => false,
|
||||
|
|
@ -352,17 +352,17 @@ return [
|
|||
'gitUrl' => 'git@github.com:appwrite/sdk-for-java.git',
|
||||
'gitRepoName' => 'sdk-for-java',
|
||||
'gitUserName' => 'appwrite',
|
||||
'gitBranch' => 'master',
|
||||
'gitBranch' => 'dev',
|
||||
],
|
||||
[
|
||||
'key' => 'dotnet',
|
||||
'name' => '.NET',
|
||||
'version' => '1.2.0',
|
||||
'version' => '0.6.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-dotnet',
|
||||
'package' => 'https://www.nuget.org/packages/Appwrite',
|
||||
'enabled' => false,
|
||||
'enabled' => true,
|
||||
'beta' => true,
|
||||
'dev' => true,
|
||||
'dev' => false,
|
||||
'hidden' => false,
|
||||
'family' => APP_PLATFORM_SERVER,
|
||||
'prism' => 'csharp',
|
||||
|
|
@ -370,12 +370,12 @@ return [
|
|||
'gitUrl' => 'git@github.com:appwrite/sdk-for-dotnet.git',
|
||||
'gitRepoName' => 'sdk-for-dotnet',
|
||||
'gitUserName' => 'appwrite',
|
||||
'gitBranch' => 'main',
|
||||
'gitBranch' => 'dev',
|
||||
],
|
||||
[
|
||||
'key' => 'dart',
|
||||
'name' => 'Dart',
|
||||
'version' => '7.2.0',
|
||||
'version' => '10.0.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-dart',
|
||||
'package' => 'https://pub.dev/packages/dart_appwrite',
|
||||
'enabled' => true,
|
||||
|
|
@ -388,12 +388,12 @@ return [
|
|||
'gitUrl' => 'git@github.com:appwrite/sdk-for-dart.git',
|
||||
'gitRepoName' => 'sdk-for-dart',
|
||||
'gitUserName' => 'appwrite',
|
||||
'gitBranch' => 'master',
|
||||
'gitBranch' => 'dev',
|
||||
],
|
||||
[
|
||||
'key' => 'kotlin',
|
||||
'name' => 'Kotlin',
|
||||
'version' => '1.2.0',
|
||||
'version' => '4.0.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-kotlin',
|
||||
'package' => 'https://search.maven.org/artifact/io.appwrite/sdk-for-kotlin',
|
||||
'enabled' => true,
|
||||
|
|
@ -406,7 +406,7 @@ return [
|
|||
'gitUrl' => 'git@github.com:appwrite/sdk-for-kotlin.git',
|
||||
'gitRepoName' => 'sdk-for-kotlin',
|
||||
'gitUserName' => 'appwrite',
|
||||
'gitBranch' => 'main',
|
||||
'gitBranch' => 'dev',
|
||||
'docDirectories' => [
|
||||
'Kotlin' => 'kotlin',
|
||||
'Java' => 'java',
|
||||
|
|
@ -415,7 +415,7 @@ return [
|
|||
[
|
||||
'key' => 'swift',
|
||||
'name' => 'Swift',
|
||||
'version' => '1.2.0',
|
||||
'version' => '4.0.1',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-swift',
|
||||
'package' => 'https://github.com/appwrite/sdk-for-swift',
|
||||
'enabled' => true,
|
||||
|
|
@ -428,7 +428,7 @@ return [
|
|||
'gitUrl' => 'git@github.com:appwrite/sdk-for-swift.git',
|
||||
'gitRepoName' => 'sdk-for-swift',
|
||||
'gitUserName' => 'appwrite',
|
||||
'gitBranch' => 'main',
|
||||
'gitBranch' => 'dev',
|
||||
],
|
||||
[
|
||||
'key' => 'graphql',
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
<?php
|
||||
|
||||
return [ // Ordered by ABC.
|
||||
// Ordered by ABC.
|
||||
return [
|
||||
'amazon' => [
|
||||
'name' => 'Amazon',
|
||||
'developers' => 'https://developer.amazon.com/apps-and-games/services-and-apis',
|
||||
|
|
@ -201,6 +202,16 @@ return [ // Ordered by ABC.
|
|||
'beta' => false,
|
||||
'mock' => false,
|
||||
],
|
||||
'oidc' => [
|
||||
'name' => 'OpenID Connect',
|
||||
'developers' => 'https://openid.net/connect/faq/',
|
||||
'icon' => 'icon-oidc',
|
||||
'enabled' => true,
|
||||
'sandbox' => false,
|
||||
'form' => 'oidc.phtml',
|
||||
'beta' => false,
|
||||
'mock' => false,
|
||||
],
|
||||
'okta' => [
|
||||
'name' => 'Okta',
|
||||
'developers' => 'https://developer.okta.com/',
|
||||
|
|
@ -222,7 +233,7 @@ return [ // Ordered by ABC.
|
|||
'mock' => false
|
||||
],
|
||||
'paypalSandbox' => [
|
||||
'name' => 'PayPal',
|
||||
'name' => 'PayPal Sandbox',
|
||||
'developers' => 'https://developer.paypal.com/docs/api/overview/',
|
||||
'icon' => 'icon-paypal',
|
||||
'enabled' => true,
|
||||
|
|
@ -292,7 +303,7 @@ return [ // Ordered by ABC.
|
|||
'mock' => false,
|
||||
],
|
||||
'tradeshiftBox' => [
|
||||
'name' => 'Tradeshift',
|
||||
'name' => 'Tradeshift Sandbox',
|
||||
'developers' => 'https://developers.tradeshift.com/docs/api',
|
||||
'icon' => 'icon-tradeshiftbox',
|
||||
'enabled' => true,
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
use Appwrite\Auth\Auth;
|
||||
|
||||
$member = [
|
||||
'global',
|
||||
'public',
|
||||
'home',
|
||||
'console',
|
||||
|
|
@ -20,9 +21,11 @@ $member = [
|
|||
'avatars.read',
|
||||
'execution.read',
|
||||
'execution.write',
|
||||
'assistant.read',
|
||||
];
|
||||
|
||||
$admins = [
|
||||
'global',
|
||||
'graphql',
|
||||
'teams.read',
|
||||
'teams.write',
|
||||
|
|
@ -51,12 +54,19 @@ $admins = [
|
|||
'functions.write',
|
||||
'execution.read',
|
||||
'execution.write',
|
||||
'rules.read',
|
||||
'rules.write',
|
||||
'migrations.read',
|
||||
'migrations.write',
|
||||
'vcs.read',
|
||||
'vcs.write',
|
||||
];
|
||||
|
||||
return [
|
||||
Auth::USER_ROLE_GUESTS => [
|
||||
'label' => 'Guests',
|
||||
'scopes' => [
|
||||
'global',
|
||||
'public',
|
||||
'home',
|
||||
'console',
|
||||
|
|
@ -72,22 +82,22 @@ return [
|
|||
],
|
||||
Auth::USER_ROLE_USERS => [
|
||||
'label' => 'Users',
|
||||
'scopes' => \array_merge($member, []),
|
||||
'scopes' => \array_merge($member),
|
||||
],
|
||||
Auth::USER_ROLE_ADMIN => [
|
||||
'label' => 'Admin',
|
||||
'scopes' => \array_merge($admins, []),
|
||||
'scopes' => \array_merge($admins),
|
||||
],
|
||||
Auth::USER_ROLE_DEVELOPER => [
|
||||
'label' => 'Developer',
|
||||
'scopes' => \array_merge($admins, []),
|
||||
'scopes' => \array_merge($admins),
|
||||
],
|
||||
Auth::USER_ROLE_OWNER => [
|
||||
'label' => 'Owner',
|
||||
'scopes' => \array_merge($member, $admins, []),
|
||||
'scopes' => \array_merge($member, $admins),
|
||||
],
|
||||
Auth::USER_ROLE_APPS => [
|
||||
'label' => 'Applications',
|
||||
'scopes' => ['health.read', 'graphql'],
|
||||
'scopes' => ['global', 'health.read', 'graphql'],
|
||||
],
|
||||
];
|
||||
|
|
|
|||
16
app/config/runtimes-v2.php
Normal file
16
app/config/runtimes-v2.php
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* List of Appwrite Cloud Functions supported runtimes
|
||||
*/
|
||||
|
||||
use Utopia\App;
|
||||
use Appwrite\Runtimes\Runtimes;
|
||||
|
||||
$runtimes = new Runtimes('v2');
|
||||
|
||||
$allowList = empty(App::getEnv('_APP_FUNCTIONS_RUNTIMES')) ? [] : \explode(',', App::getEnv('_APP_FUNCTIONS_RUNTIMES'));
|
||||
|
||||
$runtimes = $runtimes->getAll(true, $allowList);
|
||||
|
||||
return $runtimes;
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
use Utopia\App;
|
||||
use Appwrite\Runtimes\Runtimes;
|
||||
|
||||
$runtimes = new Runtimes('v2');
|
||||
$runtimes = new Runtimes('v3');
|
||||
|
||||
$allowList = empty(App::getEnv('_APP_FUNCTIONS_RUNTIMES')) ? [] : \explode(',', App::getEnv('_APP_FUNCTIONS_RUNTIMES'));
|
||||
|
||||
|
|
|
|||
|
|
@ -76,4 +76,25 @@ return [ // List of publicly visible scopes
|
|||
'health.read' => [
|
||||
'description' => 'Access to read your project\'s health status',
|
||||
],
|
||||
'rules.read' => [
|
||||
'description' => 'Access to read your project\'s proxy rules',
|
||||
],
|
||||
'rules.write' => [
|
||||
'description' => 'Access to create, update, and delete your project\'s proxy rules',
|
||||
],
|
||||
'migrations.read' => [
|
||||
'description' => 'Access to read your project\'s migrations',
|
||||
],
|
||||
'migrations.write' => [
|
||||
'description' => 'Access to create, update, and delete your project\'s migrations.',
|
||||
],
|
||||
'vcs.read' => [
|
||||
'description' => 'Access to read your project\'s VCS repositories',
|
||||
],
|
||||
'vcs.write' => [
|
||||
'description' => 'Access to create, update, and delete your project\'s VCS repositories',
|
||||
],
|
||||
'assistant.read' => [
|
||||
'description' => 'Access to read the Assistant service',
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'/' => [
|
||||
'key' => 'homepage',
|
||||
'name' => 'Homepage',
|
||||
'web/home' => [
|
||||
'key' => 'web/home',
|
||||
'name' => 'Home',
|
||||
'subtitle' => '',
|
||||
'description' => '',
|
||||
'controller' => 'web/home.php',
|
||||
|
|
@ -14,8 +14,8 @@ return [
|
|||
'optional' => false,
|
||||
'icon' => '',
|
||||
],
|
||||
'console' => [
|
||||
'key' => 'console',
|
||||
'web/console' => [
|
||||
'key' => 'web/console',
|
||||
'name' => 'Console',
|
||||
'subtitle' => '',
|
||||
'description' => '',
|
||||
|
|
@ -108,6 +108,19 @@ return [
|
|||
'optional' => false,
|
||||
'icon' => '',
|
||||
],
|
||||
'project' => [
|
||||
'key' => 'project',
|
||||
'name' => 'Project',
|
||||
'subtitle' => 'The Project service allows you to manage all the projects in your Appwrite server.',
|
||||
'description' => '',
|
||||
'controller' => 'api/project.php',
|
||||
'sdk' => true,
|
||||
'docs' => true,
|
||||
'docsUrl' => '',
|
||||
'tests' => false,
|
||||
'optional' => false,
|
||||
'icon' => '',
|
||||
],
|
||||
'storage' => [
|
||||
'key' => 'storage',
|
||||
'name' => 'Storage',
|
||||
|
|
@ -147,6 +160,19 @@ return [
|
|||
'optional' => true,
|
||||
'icon' => '/images/services/users.png',
|
||||
],
|
||||
'vcs' => [
|
||||
'key' => 'vcs',
|
||||
'name' => 'VCS',
|
||||
'subtitle' => 'The VCS service allows you to interact with providers like GitHub, GitLab etc.',
|
||||
'description' => '',
|
||||
'controller' => 'api/vcs.php',
|
||||
'sdk' => false,
|
||||
'docs' => false,
|
||||
'docsUrl' => '',
|
||||
'tests' => false,
|
||||
'optional' => true,
|
||||
'icon' => '',
|
||||
],
|
||||
'functions' => [
|
||||
'key' => 'functions',
|
||||
'name' => 'Functions',
|
||||
|
|
@ -160,6 +186,19 @@ return [
|
|||
'optional' => true,
|
||||
'icon' => '/images/services/functions.png',
|
||||
],
|
||||
'proxy' => [
|
||||
'key' => 'proxy',
|
||||
'name' => 'Proxy',
|
||||
'subtitle' => 'The Proxy Service allows you to configure actions for your domains beyond DNS configuration.',
|
||||
'description' => '/docs/services/proxy.md',
|
||||
'controller' => 'api/proxy.php',
|
||||
'sdk' => true,
|
||||
'docs' => true,
|
||||
'docsUrl' => 'https://appwrite.io/docs/proxy',
|
||||
'tests' => false,
|
||||
'optional' => true,
|
||||
'icon' => '/images/services/proxy.png',
|
||||
],
|
||||
'mock' => [
|
||||
'key' => 'mock',
|
||||
'name' => 'Mock',
|
||||
|
|
@ -186,4 +225,30 @@ return [
|
|||
'optional' => true,
|
||||
'icon' => '/images/services/graphql.png',
|
||||
],
|
||||
'console' => [
|
||||
'key' => 'console',
|
||||
'name' => 'Console',
|
||||
'subtitle' => 'The Console service allows you to interact with console relevant informations.',
|
||||
'description' => '',
|
||||
'controller' => 'api/console.php',
|
||||
'sdk' => true,
|
||||
'docs' => true,
|
||||
'docsUrl' => '',
|
||||
'tests' => false,
|
||||
'optional' => false,
|
||||
'icon' => '',
|
||||
],
|
||||
'migrations' => [
|
||||
'key' => 'migrations',
|
||||
'name' => 'Migrations',
|
||||
'subtitle' => 'The Migrations service allows you to migrate third-party data to your Appwrite project.',
|
||||
'description' => '/docs/services/migrations.md',
|
||||
'controller' => 'api/migrations.php',
|
||||
'sdk' => true,
|
||||
'docs' => true,
|
||||
'docsUrl' => 'https://appwrite.io/docs/migrations',
|
||||
'tests' => true,
|
||||
'optional' => true,
|
||||
'icon' => '/images/services/migrations.png',
|
||||
],
|
||||
];
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
app/config/specs/open-api3-1.3.x-client.json
Normal file
1
app/config/specs/open-api3-1.3.x-client.json
Normal file
File diff suppressed because one or more lines are too long
1
app/config/specs/open-api3-1.3.x-console.json
Normal file
1
app/config/specs/open-api3-1.3.x-console.json
Normal file
File diff suppressed because one or more lines are too long
1
app/config/specs/open-api3-1.3.x-server.json
Normal file
1
app/config/specs/open-api3-1.3.x-server.json
Normal file
File diff suppressed because one or more lines are too long
1
app/config/specs/open-api3-1.4.x-client.json
Normal file
1
app/config/specs/open-api3-1.4.x-client.json
Normal file
File diff suppressed because one or more lines are too long
1
app/config/specs/open-api3-1.4.x-console.json
Normal file
1
app/config/specs/open-api3-1.4.x-console.json
Normal file
File diff suppressed because one or more lines are too long
1
app/config/specs/open-api3-1.4.x-server.json
Normal file
1
app/config/specs/open-api3-1.4.x-server.json
Normal file
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue