Merge remote-tracking branch 'origin/refactor-usage-sn' into feat-upgrade-platform-with-module

This commit is contained in:
Damodar Lohani 2024-06-04 08:00:19 +00:00
commit fef769271f
290 changed files with 2809 additions and 835 deletions

View file

@ -0,0 +1,19 @@
name: Check dependencies
# Adapted from https://google.github.io/osv-scanner/github-action/#scan-on-pull-request
on:
pull_request:
branches: [main, 1.*.x]
merge_group:
branches: [main, 1.*.x]
permissions:
# Require writing security events to upload SARIF file to security tab
security-events: write
# Only need to read contents
contents: read
jobs:
scan-pr:
uses: "google/osv-scanner-action/.github/workflows/osv-scanner-reusable.yml@v1.7.1"

View file

@ -18,6 +18,6 @@ jobs:
days-before-close: 14 days-before-close: 14
remove-stale-when-updated: true remove-stale-when-updated: true
close-issue-message: "This issue has been closed due to inactivity. If you still require assistance, please provide the requested information." close-issue-message: "This issue has been closed due to inactivity. If you still require assistance, please provide the requested information."
close-issue-reason: "not-planned" close-issue-reason: "not_planned"
operations-per-run: 100 operations-per-run: 100
only-labels: "question" only-labels: "question"

2
.gitmodules vendored
View file

@ -1,4 +1,4 @@
[submodule "app/console"] [submodule "app/console"]
path = app/console path = app/console
url = https://github.com/appwrite/console url = https://github.com/appwrite/console
branch = 4.0.6 branch = 4.3.5

View file

@ -1,3 +1,121 @@
# Version 1.5.7
## What's Changed
### Fixes
* Fix database exception wrapping by @abnegate in https://github.com/appwrite/appwrite/pull/7787
* Fix exception wrap order by @abnegate in https://github.com/appwrite/appwrite/pull/7818
* Fix membership query to use internalId by @lohanidamodar in https://github.com/appwrite/appwrite/pull/7834
* Fix vcs silent mode by @vermakhushboo in https://github.com/appwrite/appwrite/pull/7683
* Fix function domain permissions by @stnguyen90 in https://github.com/appwrite/appwrite/pull/7852
* Fix tests required for Cloud by @lohanidamodar in https://github.com/appwrite/appwrite/pull/7777
* Fix OAuth error code by @vermakhushboo in https://github.com/appwrite/appwrite/pull/7893
* Fix connection reclaim logic. by @eldadfux in https://github.com/appwrite/appwrite/pull/6886
* Fix shared queue name by @abnegate in https://github.com/appwrite/appwrite/pull/8092
* Fix syntax error by @abnegate in https://github.com/appwrite/appwrite/pull/8093
* Fix missing id attribute error by @abnegate in https://github.com/appwrite/appwrite/pull/8094
* Fix tests for CL by @lohanidamodar in https://github.com/appwrite/appwrite/pull/8076
* Fix project deletes for shared tables by @abnegate in https://github.com/appwrite/appwrite/pull/8107
* Handle SQL error code 'HY000' in realtime by @stnguyen90 in https://github.com/appwrite/appwrite/pull/8106
* Fix: Don't Override `robots.txt` for Other Domains by @ItzNotABug in https://github.com/appwrite/appwrite/pull/8185
* Escape function build command by @stnguyen90 in https://github.com/appwrite/appwrite/pull/7808
* Create failed execution from worker if deployment doesn't exist by @vermakhushboo in https://github.com/appwrite/appwrite/pull/7896
* Fix: admin mode on console by @TorstenDittmann in https://github.com/appwrite/appwrite/pull/7951
* Fix file size default limit by @shimonewman in https://github.com/appwrite/appwrite/pull/7843
* Fix: Python failing builds by @Meldiron in https://github.com/appwrite/appwrite/pull/8078
* Fix shared project delete by @abnegate in https://github.com/appwrite/appwrite/pull/8142
* Fix TextMagic class name by @stnguyen90 in https://github.com/appwrite/appwrite/pull/8132
* Prevent functions domain and subdomain to be added as custom domain by @lohanidamodar in https://github.com/appwrite/appwrite/pull/7933
* Fix don't publish max users exceed by @vermakhushboo in https://github.com/appwrite/appwrite/pull/8067
* Fix invalid cache document id by @stnguyen90 in https://github.com/appwrite/appwrite/pull/8183
* Fix not hiding tokens for clients via realtime by @abnegate in https://github.com/appwrite/appwrite/pull/7870
### Miscellaneous
* Upload 400s to separate error logger by @PineappleIOnic in https://github.com/appwrite/appwrite/pull/7784
* Admin mode use teamInternalId by @lohanidamodar in https://github.com/appwrite/appwrite/pull/7835
* Chore: update avatars API by @christyjacob4 in https://github.com/appwrite/appwrite/pull/7840
* Use internal ids for query by @lohanidamodar in https://github.com/appwrite/appwrite/pull/7838
* Remove cloud related scripts by @shimonewman in https://github.com/appwrite/appwrite/pull/7414
* Update VCS Comment by @vermakhushboo in https://github.com/appwrite/appwrite/pull/7854
* Transaction and reconnection fixes by @fogelito in https://github.com/appwrite/appwrite/pull/7877
* Feat configurable collections by @christyjacob4 in https://github.com/appwrite/appwrite/pull/7882
* Remove var_dump calls by @stnguyen90 in https://github.com/appwrite/appwrite/pull/7884
* Storage DO adapter http version by @lohanidamodar in https://github.com/appwrite/appwrite/pull/7905
* Update executor version by @vermakhushboo in https://github.com/appwrite/appwrite/pull/7910
* Comment timer tick by @vermakhushboo in https://github.com/appwrite/appwrite/pull/7911
* Update db for relationships and object as array attributes fixes by @abnegate in https://github.com/appwrite/appwrite/pull/7917
* Bump executor version to 0.5.1 by @vermakhushboo in https://github.com/appwrite/appwrite/pull/7925
* Update database by @abnegate in https://github.com/appwrite/appwrite/pull/7937
* Reclaim only current connection by @abnegate in https://github.com/appwrite/appwrite/pull/7941
* Match memberships on internal ID by @abnegate in https://github.com/appwrite/appwrite/pull/7953
* Chore: queue retry update by @shimonewman in https://github.com/appwrite/appwrite/pull/7991
* Chore task addition by @shimonewman in https://github.com/appwrite/appwrite/pull/7992
* Databases.php collection not found by @fogelito in https://github.com/appwrite/appwrite/pull/7341
* Update database by @abnegate in https://github.com/appwrite/appwrite/pull/8036
* Feat upgrade db by @abnegate in https://github.com/appwrite/appwrite/pull/8050
* Handle string error codes by @fogelito in https://github.com/appwrite/appwrite/pull/7878
* Migration Logging Improvements by @PineappleIOnic in https://github.com/appwrite/appwrite/pull/8057
* Remove logger code from avatars.php by @vermakhushboo in https://github.com/appwrite/appwrite/pull/8065
* Update chunk size to 7 MB by @vermakhushboo in https://github.com/appwrite/appwrite/pull/8060
* Shared tables support by @abnegate in https://github.com/appwrite/appwrite/pull/7206
* Ensure namespace is set if override equals shared tables by @abnegate in https://github.com/appwrite/appwrite/pull/8091
* Update database by @abnegate in https://github.com/appwrite/appwrite/pull/8095
* Disable sending realtime stats by @stnguyen90 in https://github.com/appwrite/appwrite/pull/8104
* Increase chunk size to 10 MB by @vermakhushboo in https://github.com/appwrite/appwrite/pull/8099
* Update db by @abnegate in https://github.com/appwrite/appwrite/pull/8113
* Update executor image name to exc-1 by @vermakhushboo in https://github.com/appwrite/appwrite/pull/8123
* Catch DB errors on delete by @abnegate in https://github.com/appwrite/appwrite/pull/8143
* Update Logger and migrations, implement sampler. by @PineappleIOnic in https://github.com/appwrite/appwrite/pull/8146
* Increase shared tables projects by @abnegate in https://github.com/appwrite/appwrite/pull/8161
* Feat: improve cold start error, merge to cloud by @loks0n in https://github.com/appwrite/appwrite/pull/8165
* Add tests for scheduled functions by @vermakhushboo in https://github.com/appwrite/appwrite/pull/8164
* Remove throw PdoException in Error hook by @fogelito in https://github.com/appwrite/appwrite/pull/8169
* Refactor localdevice injection by @byawitz in https://github.com/appwrite/appwrite/pull/8173
* Usage sms per country code count by @shimonewman in https://github.com/appwrite/appwrite/pull/7592
* GetEnv on worker.php by @shimonewman in https://github.com/appwrite/appwrite/pull/8026
* Feat get env by @shimonewman in https://github.com/appwrite/appwrite/pull/8180
* Chore: remove compose version by @loks0n in https://github.com/appwrite/appwrite/pull/8148
* Chore update executor host default var by @abnegate in https://github.com/appwrite/appwrite/pull/8190
* Wrap realtime stats in an edition check by @abnegate in https://github.com/appwrite/appwrite/pull/8192
* Update executor image name by @vermakhushboo in https://github.com/appwrite/appwrite/pull/8147
* Feat: improve header demo values by @loks0n in https://github.com/appwrite/appwrite/pull/8089
* Feat: add warning header by @loks0n in https://github.com/appwrite/appwrite/pull/8063
# Version 1.5.6
## What's Changed
### Notable Changes
* Prevent functions domain to be used as custom domain in [#7934](https://github.com/appwrite/appwrite/pull/7934)
### Fixes
* Fix auth mode check in [#7980](https://github.com/appwrite/appwrite/pull/7980)
* Fix templates not copying hidden files in [#7610](https://github.com/appwrite/appwrite/pull/7610)
* Use `resourceInternalId` for Querying Function Deployments in [#8038](https://github.com/appwrite/appwrite/pull/8038)
* Fix Email OTP not verifying account in [#8084](https://github.com/appwrite/appwrite/pull/8084)
* Fix MFA email verification code font in [#8082](https://github.com/appwrite/appwrite/pull/8082)
* Don't kick user and require verification after enabling MFA in [#8081](https://github.com/appwrite/appwrite/pull/8081)
* Fix typo in credit-cards.php credit card image filename in [#8074](https://github.com/appwrite/appwrite/pull/8074)
* Fix Deprecated Warning in Doctor.php in [#8105](https://github.com/appwrite/appwrite/pull/8105)
* Set limit to retrieve all stats for the usage range in [#8117](https://github.com/appwrite/appwrite/pull/8117)
* Fix email used for name when user is created via Apple OAuth2 in [#8102](https://github.com/appwrite/appwrite/pull/8102)
### Miscellaneous
* Add GitHub action to close stale issues in [#7927](https://github.com/appwrite/appwrite/pull/7927)
* Document the standard we follow for country codes in [#8014](https://github.com/appwrite/appwrite/pull/8014)
* Add OSV Scanner for vulnerability scans in [#6506](https://github.com/appwrite/appwrite/pull/6506)
* Fix stale action close reason in [#8046](https://github.com/appwrite/appwrite/pull/8046)
* Add OSV Scanner for vulnerability scans in [#8021](https://github.com/appwrite/appwrite/pull/8021)
* Fix some typos in comments in [#7993](https://github.com/appwrite/appwrite/pull/7993)
* Replace missing domain paths in README.md in [#8049](https://github.com/appwrite/appwrite/pull/8049)
* Add the React Native SDK in [#7776](https://github.com/appwrite/appwrite/pull/7776)
* Bump database in [#8080](https://github.com/appwrite/appwrite/pull/8080)
* Add documentation for metrics in [#8088](https://github.com/appwrite/appwrite/pull/8088)
* Add new country Palestine with its translations in [#8031](https://github.com/appwrite/appwrite/pull/8031)
* Update users create token description in [#8129](https://github.com/appwrite/appwrite/pull/8129)
* Bump dependencies in [#8130](https://github.com/appwrite/appwrite/pull/8130)
# Version 1.5.5 # Version 1.5.5
## What's Changed ## What's Changed
### Notable changes ### Notable changes

View file

@ -148,6 +148,14 @@ Learn more at our [Technology Stack](#technology-stack) section.
- [Microservices vs Monolithic](https://www.mulesoft.com/resources/api/microservices-vs-monolithic#:~:text=Microservices%20architecture%20vs%20monolithic%20architecture&text=A%20monolithic%20application%20is%20built%20as%20a%20single%20unit.&text=To%20make%20any%20alterations%20to,formally%20with%20business%2Doriented%20APIs.) - [Microservices vs Monolithic](https://www.mulesoft.com/resources/api/microservices-vs-monolithic#:~:text=Microservices%20architecture%20vs%20monolithic%20architecture&text=A%20monolithic%20application%20is%20built%20as%20a%20single%20unit.&text=To%20make%20any%20alterations%20to,formally%20with%20business%2Doriented%20APIs.)
- [MVVM](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel) - Appwrite console architecture - [MVVM](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel) - Appwrite console architecture
##### Container Namespace Conventions
To keep our services easy to understand within Docker we follow a naming convention for all our containers depending on it's intended use.
`appwrite-worker-X` - Workers (`src/Appwrite/Platform/Workers/*`)
`appwrite-task-X` - Tasks (`src/Appwrite/Platform/Tasks/*`)
Other containes should be named the same as their service, for example `redis` should just be called `redis`.
##### Security ##### Security
- [Appwrite Auth and ACL](https://github.com/appwrite/appwrite/blob/master/docs/specs/authentication.drawio.svg) - [Appwrite Auth and ACL](https://github.com/appwrite/appwrite/blob/master/docs/specs/authentication.drawio.svg)
@ -301,6 +309,143 @@ This will allow the Appwrite community to sufficiently discuss the new feature v
This is also important for the Appwrite lead developers to be able to provide technical input and potentially a different emphasis regarding the feature design and architecture. Some bigger features might need to go through our [RFC process](https://github.com/appwrite/rfc). This is also important for the Appwrite lead developers to be able to provide technical input and potentially a different emphasis regarding the feature design and architecture. Some bigger features might need to go through our [RFC process](https://github.com/appwrite/rfc).
## Adding New Usage Metrics
These are the current metrics we collect usage stats for:
| Metric | Description |
|--------|-------------------------------------------------|
| teams | Total number of teams per project |
| users | Total number of users per project|
| executions | Total number of executions per project |
| databases | Total number of databases per project |
| collections | Total number of collections per project |
| {databaseInternalId}.collections | Total number of collections per database|
| documents | Total number of documents per project |
| {databaseInternalId}.{collectionInternalId}.documents | Total number of documents per collection |
| buckets | Total number of buckets per project |
| files | Total number of files per project |
| {bucketInternalId}.files.storage | Sum of files.storage per bucket (in bytes) |
| functions | Total number of functions per project |
| deployments | Total number of deployments per project |
| builds | Total number of builds per project |
| {resourceType}.{resourceInternalId}.deployments | Total number of deployments per function |
| executions | Total number of executions per project |
| {functionInternalId}.executions | Total number of executions per function |
| files.storage | Sum of files storage per project (in bytes) |
| deployments.storage | Sum of deployments storage per project (in bytes) |
| {resourceType}.{resourceInternalId}.deployments.storage | Sum of deployments storage per function (in bytes) |
| builds.storage | Sum of builds storage per project (in bytes) |
| builds.compute | Sum of compute duration per project (in seconds) |
| {functionInternalId}.builds.storage | Sum of builds storage per function (in bytes) |
| {functionInternalId}.builds.compute | Sum of compute duration per function (in seconds) |
| network.requests | Total number of network requests per project |
| executions.compute | Sum of compute duration per project (in seconds) |
| network.inbound | Sum of network inbound traffic per project (in bytes)|
| network.outbound | Sum of network outbound traffic per project (in bytes)|
> Note: The curly brackets in the metric name represents a template and is replaced with a value when the metric is processed.
Metrics are collected within 3 scopes Daily, monthly, an infinity. Adding new usage metric in order to aggregate usage stats is very simple, but very much dependent on where do you want to collect
statistics ,via API or via background worker. For both cases you will need to add a `const` variable in `app/init.php` under the usage metrics list using the naming convention `METRIC_<RESOURCE_NAME>` as shown below.
```php
// Usage metrics
const METRIC_FUNCTIONS = 'functions';
const METRIC_DEPLOYMENTS = 'deployments';
const METRIC_DEPLOYMENTS_STORAGE = 'deployments.storage';
```
Next follow the appropriate steps below depending on whether you're adding the metric to the API or the worker.
**API**
In file `app/controllers/shared/api.php` On the database listener, add to an existing or create a new switch case. Add a call to the usage worker with your new metric const like so:
```php
case $document->getCollection() === 'teams':
$queueForUsage
->addMetric(METRIC_TEAMS, $value); // per project
break;
```
There are cases when you need to handle metric that has a parent entity, like buckets.
Files are linked to a parent bucket, you should verify you remove the files stats when you delete a bucket.
In that case you need also to handle children removal using addReduce() method call.
```php
case $document->getCollection() === 'buckets': //buckets
$queueForUsage
->addMetric(METRIC_BUCKETS, $value); // per project
if ($event === Database::EVENT_DOCUMENT_DELETE) {
$queueForUsage
->addReduce($document);
}
break;
```
In addition, you will also need to add some logic to the `reduce()` method of the Usage worker located in `/src/Appwrite/Platform/Workers/Usage.php`, like so:
```php
case $document->getCollection() === 'buckets':
$files = $dbForProject->getDocument('stats', md5(self::INFINITY_PERIOD . str_replace('{bucketInternalId}', $document->getInternalId(), METRIC_BUCKET_ID_FILES)));
$storage = $dbForProject->getDocument('stats', md5(self::INFINITY_PERIOD . str_replace('{bucketInternalId}', $document->getInternalId(), METRIC_BUCKET_ID_FILES_STORAGE)));
if (!empty($files['value'])) {
$metrics[] = [
'key' => METRIC_FILES,
'value' => ($files['value'] * -1),
];
}
if (!empty($storage['value'])) {
$metrics[] = [
'key' => METRIC_FILES_STORAGE,
'value' => ($storage['value'] * -1),
];
}
break;
```
**Background worker**
You need to inject the usage queue in the desired worker on the constructor method
```php
/**
* @throws Exception
*/
public function __construct()
{
$this
->desc('Functions worker')
->groups(['functions'])
->inject('message')
->inject('dbForProject')
->inject('queueForFunctions')
->inject('queueForEvents')
->inject('queueForUsage')
->inject('log')
->callback(fn (Message $message, Database $dbForProject, Func $queueForFunctions, Event $queueForEvents, Usage $queueForUsage, Log $log) => $this->action($message, $dbForProject, $queueForFunctions, $queueForEvents, $queueForUsage, $log));
}
```
and then trigger the queue with the new metric like so:
```php
$queueForUsage
->addMetric(METRIC_BUILDS, 1)
->addMetric(METRIC_BUILDS_STORAGE, $build->getAttribute('size', 0))
->addMetric(METRIC_BUILDS_COMPUTE, (int)$build->getAttribute('duration', 0) * 1000)
->addMetric(str_replace('{functionInternalId}', $function->getInternalId(), METRIC_FUNCTION_ID_BUILDS), 1)
->addMetric(str_replace('{functionInternalId}', $function->getInternalId(), METRIC_FUNCTION_ID_BUILDS_STORAGE), $build->getAttribute('size', 0))
->addMetric(str_replace('{functionInternalId}', $function->getInternalId(), METRIC_FUNCTION_ID_BUILDS_COMPUTE), (int)$build->getAttribute('duration', 0) * 1000)
->setProject($project)
->trigger();
```
## Build ## Build
To build a new version of the Appwrite server, all you need to do is run the build.sh file like this: To build a new version of the Appwrite server, all you need to do is run the build.sh file like this:

View file

@ -72,9 +72,6 @@ RUN mkdir -p /storage/uploads && \
chown -Rf www-data.www-data /storage/functions && chmod -Rf 0755 /storage/functions && \ chown -Rf www-data.www-data /storage/functions && chmod -Rf 0755 /storage/functions && \
chown -Rf www-data.www-data /storage/debug && chmod -Rf 0755 /storage/debug chown -Rf www-data.www-data /storage/debug && chmod -Rf 0755 /storage/debug
# Development Executables
RUN chmod +x /usr/local/bin/dev-generate-translations
# Executables # Executables
RUN chmod +x /usr/local/bin/doctor && \ RUN chmod +x /usr/local/bin/doctor && \
chmod +x /usr/local/bin/install && \ chmod +x /usr/local/bin/install && \

View file

@ -11,6 +11,7 @@
</p> </p>
<!-- [![Build Status](https://img.shields.io/travis/com/appwrite/appwrite?style=flat-square)](https://travis-ci.com/appwrite/appwrite) --> <!-- [![Build Status](https://img.shields.io/travis/com/appwrite/appwrite?style=flat-square)](https://travis-ci.com/appwrite/appwrite) -->
[![We're Hiring](https://img.shields.io/static/v1?label=We're&message=Hiring&color=blue&style=flat-square)](https://appwrite.io/company/careers) [![We're Hiring](https://img.shields.io/static/v1?label=We're&message=Hiring&color=blue&style=flat-square)](https://appwrite.io/company/careers)
[![Hacktoberfest](https://img.shields.io/static/v1?label=hacktoberfest&message=friendly&color=191120&style=flat-square)](https://hacktoberfest.appwrite.io) [![Hacktoberfest](https://img.shields.io/static/v1?label=hacktoberfest&message=friendly&color=191120&style=flat-square)](https://hacktoberfest.appwrite.io)
[![Discord](https://img.shields.io/discord/564160730845151244?label=discord&style=flat-square)](https://appwrite.io/discord?r=Github) [![Discord](https://img.shields.io/discord/564160730845151244?label=discord&style=flat-square)](https://appwrite.io/discord?r=Github)
@ -25,7 +26,7 @@
[**Appwrite 云公开测试版!立即注册!**](https://cloud.appwrite.io) [**Appwrite 云公开测试版!立即注册!**](https://cloud.appwrite.io)
Appwrite是一个基于Docker的端到端开发者平台其容器化的微服务库可应用于网页端移动端以及后端。Appwrite 通过视觉化界面简化了从零开始编写 API 的繁琐过程,在保证软件安全的前提下为开发者创造了一个高效的开发环境。 Appwrite 是一个基于 Docker 的端到端开发者平台其容器化的微服务库可应用于网页端移动端以及后端。Appwrite 通过视觉化界面简化了从零开始编写 API 的繁琐过程,在保证软件安全的前提下为开发者创造了一个高效的开发环境。
Appwrite 可以提供给开发者用户验证,外部授权,用户数据读写检索,文件储存,图像处理,云函数计算,[等多种服务](https://appwrite.io/docs). Appwrite 可以提供给开发者用户验证,外部授权,用户数据读写检索,文件储存,图像处理,云函数计算,[等多种服务](https://appwrite.io/docs).
@ -66,7 +67,7 @@ docker run -it --rm \
--volume /var/run/docker.sock:/var/run/docker.sock \ --volume /var/run/docker.sock:/var/run/docker.sock \
--volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \ --volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \
--entrypoint="install" \ --entrypoint="install" \
appwrite/appwrite:1.5.5 appwrite/appwrite:1.5.7
``` ```
### Windows ### Windows
@ -78,7 +79,7 @@ docker run -it --rm ^
--volume //var/run/docker.sock:/var/run/docker.sock ^ --volume //var/run/docker.sock:/var/run/docker.sock ^
--volume "%cd%"/appwrite:/usr/src/code/appwrite:rw ^ --volume "%cd%"/appwrite:/usr/src/code/appwrite:rw ^
--entrypoint="install" ^ --entrypoint="install" ^
appwrite/appwrite:1.5.5 appwrite/appwrite:1.5.7
``` ```
#### PowerShell #### PowerShell
@ -88,12 +89,11 @@ docker run -it --rm `
--volume /var/run/docker.sock:/var/run/docker.sock ` --volume /var/run/docker.sock:/var/run/docker.sock `
--volume ${pwd}/appwrite:/usr/src/code/appwrite:rw ` --volume ${pwd}/appwrite:/usr/src/code/appwrite:rw `
--entrypoint="install" ` --entrypoint="install" `
appwrite/appwrite:1.5.5 appwrite/appwrite:1.5.7
``` ```
运行后,可以在浏览器上访问 http://localhost 找到 Appwrite 控制台。在非 Linux 的本机主机上完成安装后,服务器可能需要几分钟才能启动。 运行后,可以在浏览器上访问 http://localhost 找到 Appwrite 控制台。在非 Linux 的本机主机上完成安装后,服务器可能需要几分钟才能启动。
需要自定义容器构架,请查看我们的 Docker [环境变量](https://appwrite.io/docs/environment-variables) 文档。您还可以参考我们的 [docker-compose.yml](https://appwrite.io/install/compose) 和 [.env](https://appwrite.io/install/env) 文件手动设置环境。 需要自定义容器构架,请查看我们的 Docker [环境变量](https://appwrite.io/docs/environment-variables) 文档。您还可以参考我们的 [docker-compose.yml](https://appwrite.io/install/compose) 和 [.env](https://appwrite.io/install/env) 文件手动设置环境。
### 从旧版本升级 ### 从旧版本升级
@ -104,71 +104,73 @@ docker run -it --rm `
开始使用 Appwrite 只需要在控制台创建一个新项目,选择开发平台,然后抓取我们的开发套件。您可以从以下的教程中找到你喜欢的平台开始使用 Appwrite。 开始使用 Appwrite 只需要在控制台创建一个新项目,选择开发平台,然后抓取我们的开发套件。您可以从以下的教程中找到你喜欢的平台开始使用 Appwrite。
| 类别 | 技术 | | 类别 | 技术 |
|---------------------|------| | ------------------ | --------------------------------------------------------------------------- |
| **Web 应用** | [Web 快速开始](/docs/quick-starts/web) | | **Web 应用** | [Web 快速开始](https://appwrite.io/docs/quick-starts/web) |
| | [Next.js 快速开始](/docs/quick-starts/nextjs) | | | [Next.js 快速开始](https://appwrite.io/docs/quick-starts/nextjs) |
| | [React 快速开始](/docs/quick-starts/react) | | | [React 快速开始](https://appwrite.io/docs/quick-starts/react) |
| | [Vue.js 快速开始](/docs/quick-starts/vue) | | | [Vue.js 快速开始](https://appwrite.io/docs/quick-starts/vue) |
| | [Nuxt 快速开始](/docs/quick-starts/nuxt) | | | [Nuxt 快速开始](https://appwrite.io/docs/quick-starts/nuxt) |
| | [SvelteKit 快速开始](/docs/quick-starts/sveltekit) | | | [SvelteKit 快速开始](https://appwrite.io/docs/quick-starts/sveltekit) |
| | [Refine 快速开始](/docs/quick-starts/refine) | | | [Refine 快速开始](https://appwrite.io/docs/quick-starts/refine) |
| | [Angular 快速开始](/docs/quick-starts/angular) | | | [Angular 快速开始](https://appwrite.io/docs/quick-starts/angular) |
| **苹果于安卓应用** | [React Native 快速开始](/docs/quick-starts/react-native) | | **苹果于安卓应用** | [React Native 快速开始](https://appwrite.io/docs/quick-starts/react-native) |
| | [Flutter 快速开始](/docs/quick-starts/flutter) | | | [Flutter 快速开始](https://appwrite.io/docs/quick-starts/flutter) |
| | [Apple 快速开始](/docs/quick-starts/apple) | | | [Apple 快速开始](https://appwrite.io/docs/quick-starts/apple) |
| | [Android 快速开始](/docs/quick-starts/android) | | | [Android 快速开始](https://appwrite.io/docs/quick-starts/android) |
| **服务器** | [Node.js 快速开始](/docs/quick-starts/node) | | **服务器** | [Node.js 快速开始](https://appwrite.io/docs/quick-starts/node) |
| | [Python 快速开始](/docs/quick-starts/python) | | | [Python 快速开始](https://appwrite.io/docs/quick-starts/python) |
| | [.NET 快速开始](/docs/quick-starts/dotnet) | | | [.NET 快速开始](https://appwrite.io/docs/quick-starts/dotnet) |
| | [Dart 快速开始](/docs/quick-starts/dart) | | | [Dart 快速开始](https://appwrite.io/docs/quick-starts/dart) |
| | [Ruby 快速开始](/docs/quick-starts/ruby) | | | [Ruby 快速开始](https://appwrite.io/docs/quick-starts/ruby) |
| | [Deno 快速开始](/docs/quick-starts/deno) | | | [Deno 快速开始](https://appwrite.io/docs/quick-starts/deno) |
| | [PHP 快速开始](/docs/quick-starts/php) | | | [PHP 快速开始](https://appwrite.io/docs/quick-starts/php) |
| | [Kotlin 快速开始](/docs/quick-starts/kotlin) | | | [Kotlin 快速开始](https://appwrite.io/docs/quick-starts/kotlin) |
| | [Swift 快速开始](/docs/quick-starts/swift) | | | [Swift 快速开始](https://appwrite.io/docs/quick-starts/swift) |
### 软件服务 ### 软件服务
* [**帐户**](https://appwrite.io/docs/references/cloud/client-web/account) -管理当前用户的帐户和登录方式。跟踪和管理用户 Session登录设备登录方法和查看相关记录。 - [**帐户**](https://appwrite.io/docs/references/cloud/client-web/account) -管理当前用户的帐户和登录方式。跟踪和管理用户 Session登录设备登录方法和查看相关记录。
* [**用户**](https://appwrite.io/docs/server/users) - 在以管理员模式登录时管理和列出所有用户。 - [**用户**](https://appwrite.io/docs/server/users) - 在以管理员模式登录时管理和列出所有用户。
* [**团队**](https://appwrite.io/docs/references/cloud/client-web/teams) - 管理用户分组。邀请成员,管理团队中的用户权限和用户角色。 - [**团队**](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/databases) - 管理数据库文档和文档集。用检索界面来对文档和文档集进行读取,创建,更新,和删除。
* [**贮存**](https://appwrite.io/docs/references/cloud/client-web/storage) - 管理文件的阅读、创建、删除和预览。设置文件的预览来满足程序的个性化需求。所有文件都由 ClamAV 扫描并安全存储和加密。 - [**贮存**](https://appwrite.io/docs/references/cloud/client-web/storage) - 管理文件的阅读、创建、删除和预览。设置文件的预览来满足程序的个性化需求。所有文件都由 ClamAV 扫描并安全存储和加密。
* [**云函数**](https://appwrite.io/docs/server/functions) - 在安全隔离的环境中运行自定义代码。这些代码可以被事件CRON或者手动操作触发。 - [**云函数**](https://appwrite.io/docs/server/functions) - 在安全隔离的环境中运行自定义代码。这些代码可以被事件CRON或者手动操作触发。
* [**消息传递**](https://appwrite.io/docs/references/cloud/client-web/messaging) - 使用 Appwrite 消息传递功能通过推送通知、电子邮件和短信与用户进行通信。 - [**消息传递**](https://appwrite.io/docs/references/cloud/client-web/messaging) - 使用 Appwrite 消息传递功能通过推送通知、电子邮件和短信与用户进行通信。
* [**语言适配**](https://appwrite.io/docs/references/cloud/client-web/locale) - 根据用户所在的的国家和地区做出合适的语言适配。 - [**语言适配**](https://appwrite.io/docs/references/cloud/client-web/locale) - 根据用户所在的的国家和地区做出合适的语言适配。
* [**头像**](https://appwrite.io/docs/references/cloud/client-web/avatars) -管理用户头像、国家旗帜、浏览器图标、信用卡符号,和生成二维码。 - [**头像**](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)。 如需完整的 API 界面文档,请访问 [https://appwrite.io/docs](https://appwrite.io/docs)。如需更多教程、新闻和公告,请订阅我们的 [博客](https://medium.com/appwrite-io) 和 加入我们的[Discord 社区](https://discord.gg/GSeTUeA)。
### 开发套件 ### 开发套件
以下是当前支持的平台和语言列表。如果您想帮助我们为您选择的平台添加支持,您可以访问我们的 [SDK 生成器](https://github.com/appwrite/sdk-generator) 项目并查看我们的 [贡献指南](https://github.com/appwrite/sdk-generator/blob/master/CONTRIBUTING.md)。 以下是当前支持的平台和语言列表。如果您想帮助我们为您选择的平台添加支持,您可以访问我们的 [SDK 生成器](https://github.com/appwrite/sdk-generator) 项目并查看我们的 [贡献指南](https://github.com/appwrite/sdk-generator/blob/master/CONTRIBUTING.md)。
#### 客户端 #### 客户端
* ✅ &nbsp; [Web](https://github.com/appwrite/sdk-for-web) (由 Appwrite 团队维护)
* ✅ &nbsp; [Flutter](https://github.com/appwrite/sdk-for-flutter) (由 Appwrite 团队维护) - ✅ &nbsp; [Web](https://github.com/appwrite/sdk-for-web) (由 Appwrite 团队维护)
* ✅ &nbsp; [Apple](https://github.com/appwrite/sdk-for-apple) (由 Appwrite 团队维护) - ✅ &nbsp; [Flutter](https://github.com/appwrite/sdk-for-flutter) (由 Appwrite 团队维护)
* ✅ &nbsp; [Android](https://github.com/appwrite/sdk-for-android) (由 Appwrite 团队维护) - ✅ &nbsp; [Apple](https://github.com/appwrite/sdk-for-apple) (由 Appwrite 团队维护)
* ✅ &nbsp; [React Native](https://github.com/appwrite/sdk-for-react-native) - **公测** (由 Appwrite 团队维护) - ✅ &nbsp; [Android](https://github.com/appwrite/sdk-for-android) (由 Appwrite 团队维护)
- ✅ &nbsp; [React Native](https://github.com/appwrite/sdk-for-react-native) - **公测** (由 Appwrite 团队维护)
#### 服务器 #### 服务器
* ✅ &nbsp; [NodeJS](https://github.com/appwrite/sdk-for-node) (由 Appwrite 团队维护)
* ✅ &nbsp; [PHP](https://github.com/appwrite/sdk-for-php) (由 Appwrite 团队维护) - ✅ &nbsp; [NodeJS](https://github.com/appwrite/sdk-for-node) (由 Appwrite 团队维护)
* ✅ &nbsp; [Dart](https://github.com/appwrite/sdk-for-dart) (由 Appwrite 团队维护) - ✅ &nbsp; [PHP](https://github.com/appwrite/sdk-for-php) (由 Appwrite 团队维护)
* ✅ &nbsp; [Deno](https://github.com/appwrite/sdk-for-deno) (由 Appwrite 团队维护) - ✅ &nbsp; [Dart](https://github.com/appwrite/sdk-for-dart) (由 Appwrite 团队维护)
* ✅ &nbsp; [Ruby](https://github.com/appwrite/sdk-for-ruby) (由 Appwrite 团队维护) - ✅ &nbsp; [Deno](https://github.com/appwrite/sdk-for-deno) (由 Appwrite 团队维护)
* ✅ &nbsp; [Python](https://github.com/appwrite/sdk-for-python) (由 Appwrite 团队维护) - ✅ &nbsp; [Ruby](https://github.com/appwrite/sdk-for-ruby) (由 Appwrite 团队维护)
* ✅ &nbsp; [Kotlin](https://github.com/appwrite/sdk-for-kotlin) (由 Appwrite 团队维护) - ✅ &nbsp; [Python](https://github.com/appwrite/sdk-for-python) (由 Appwrite 团队维护)
* ✅ &nbsp; [Swift](https://github.com/appwrite/sdk-for-swift) (由 Appwrite 团队维护) - ✅ &nbsp; [Kotlin](https://github.com/appwrite/sdk-for-kotlin) (由 Appwrite 团队维护)
* ✅ &nbsp; [.NET](https://github.com/appwrite/sdk-for-dotnet) - **公测** (由 Appwrite 团队维护) - ✅ &nbsp; [Swift](https://github.com/appwrite/sdk-for-swift) (由 Appwrite 团队维护)
- ✅ &nbsp; [.NET](https://github.com/appwrite/sdk-for-dotnet) - **公测** (由 Appwrite 团队维护)
#### 开发者社区 #### 开发者社区
* ✅ &nbsp; [Appcelerator Titanium](https://github.com/m1ga/ti.appwrite) (维护者 [Michael Gangolf](https://github.com/m1ga/))
* ✅ &nbsp; [Godot Engine](https://github.com/GodotNuts/appwrite-sdk) (维护者 [fenix-hub @GodotNuts](https://github.com/fenix-hub))
找不到需要的的 SDK - 欢迎通过发起PR来帮助我们完善Appwrite的软件生态环境 [SDK 生成器](https://github.com/appwrite/sdk-generator)! - ✅ &nbsp; [Appcelerator Titanium](https://github.com/m1ga/ti.appwrite) (维护者 [Michael Gangolf](https://github.com/m1ga/))
- ✅ &nbsp; [Godot Engine](https://github.com/GodotNuts/appwrite-sdk) (维护者 [fenix-hub @GodotNuts](https://github.com/fenix-hub))
找不到需要的的 SDK - 欢迎通过发起 PR 来帮助我们完善 Appwrite 的软件生态环境 [SDK 生成器](https://github.com/appwrite/sdk-generator)!
## 软件架构 ## 软件架构
@ -180,13 +182,13 @@ Appwrite API 界面层利用后台缓存和任务委派来提供极速的响应
## 贡献代码 ## 贡献代码
为了确保正确审查,所有代码贡献 - 包括来自具有直接提交更改权限的贡献者 - 都必须提交PR请求并在合并分支之前得到核心开发人员的批准。 为了确保正确审查,所有代码贡献 - 包括来自具有直接提交更改权限的贡献者 - 都必须提交 PR 请求并在合并分支之前得到核心开发人员的批准。
我们欢迎所有人提交PR如果您愿意提供帮助可以在 [贡献指南](CONTRIBUTING.md) 中了解有关如何为项目做出贡献的更多信息。 我们欢迎所有人提交 PR如果您愿意提供帮助可以在 [贡献指南](CONTRIBUTING.md) 中了解有关如何为项目做出贡献的更多信息。
## 安全 ## 安全
为了保护您的隐私请避免在GitHub 上发布安全问题。发送问题至 security@appwrite.io我们将为您做更细致的解答。 为了保护您的隐私,请避免在 GitHub 上发布安全问题。发送问题至 security@appwrite.io我们将为您做更细致的解答。
## 订阅我们 ## 订阅我们

View file

@ -10,7 +10,6 @@
<br /> <br />
</p> </p>
<!-- [![Build Status](https://img.shields.io/travis/com/appwrite/appwrite?style=flat-square)](https://travis-ci.com/appwrite/appwrite) --> <!-- [![Build Status](https://img.shields.io/travis/com/appwrite/appwrite?style=flat-square)](https://travis-ci.com/appwrite/appwrite) -->
[![We're Hiring](https://img.shields.io/static/v1?label=We're&message=Hiring&color=blue&style=flat-square)](https://appwrite.io/company/careers) [![We're Hiring](https://img.shields.io/static/v1?label=We're&message=Hiring&color=blue&style=flat-square)](https://appwrite.io/company/careers)
@ -76,7 +75,7 @@ docker run -it --rm \
--volume /var/run/docker.sock:/var/run/docker.sock \ --volume /var/run/docker.sock:/var/run/docker.sock \
--volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \ --volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \
--entrypoint="install" \ --entrypoint="install" \
appwrite/appwrite:1.5.5 appwrite/appwrite:1.5.7
``` ```
### Windows ### Windows
@ -88,7 +87,7 @@ docker run -it --rm ^
--volume //var/run/docker.sock:/var/run/docker.sock ^ --volume //var/run/docker.sock:/var/run/docker.sock ^
--volume "%cd%"/appwrite:/usr/src/code/appwrite:rw ^ --volume "%cd%"/appwrite:/usr/src/code/appwrite:rw ^
--entrypoint="install" ^ --entrypoint="install" ^
appwrite/appwrite:1.5.5 appwrite/appwrite:1.5.7
``` ```
#### PowerShell #### PowerShell
@ -98,7 +97,7 @@ docker run -it --rm `
--volume /var/run/docker.sock:/var/run/docker.sock ` --volume /var/run/docker.sock:/var/run/docker.sock `
--volume ${pwd}/appwrite:/usr/src/code/appwrite:rw ` --volume ${pwd}/appwrite:/usr/src/code/appwrite:rw `
--entrypoint="install" ` --entrypoint="install" `
appwrite/appwrite:1.5.5 appwrite/appwrite:1.5.7
``` ```
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. 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.
@ -142,29 +141,29 @@ Choose from one of the providers below:
Getting started with Appwrite is as easy as creating a new project, choosing your platform, and integrating its SDK into your code. You can easily get started with your platform of choice by reading one of our Getting Started tutorials. Getting started with Appwrite is as easy as creating a new project, choosing your platform, and integrating its SDK into your code. You can easily get started with your platform of choice by reading one of our Getting Started tutorials.
| Platform | Technology | | Platform | Technology |
|--------------------|------------| | --------------------- | ---------------------------------------------------------------------------------- |
| **Web app** | [Quick start for Web](/docs/quick-starts/web) | | **Web app** | [Quick start for Web](https://appwrite.io/docs/quick-starts/web) |
| | [Quick start for Next.js](/docs/quick-starts/nextjs) | | | [Quick start for Next.js](https://appwrite.io/docs/quick-starts/nextjs) |
| | [Quick start for React](/docs/quick-starts/react) | | | [Quick start for React](https://appwrite.io/docs/quick-starts/react) |
| | [Quick start for Vue.js](/docs/quick-starts/vue) | | | [Quick start for Vue.js](https://appwrite.io/docs/quick-starts/vue) |
| | [Quick start for Nuxt](/docs/quick-starts/nuxt) | | | [Quick start for Nuxt](https://appwrite.io/docs/quick-starts/nuxt) |
| | [Quick start for SvelteKit](/docs/quick-starts/sveltekit) | | | [Quick start for SvelteKit](https://appwrite.io/docs/quick-starts/sveltekit) |
| | [Quick start for Refine](/docs/quick-starts/refine) | | | [Quick start for Refine](https://appwrite.io/docs/quick-starts/refine) |
| | [Quick start for Angular](/docs/quick-starts/angular) | | | [Quick start for Angular](https://appwrite.io/docs/quick-starts/angular) |
| **Mobile and Native** | [Quick start for React Native](/docs/quick-starts/react-native) | | **Mobile and Native** | [Quick start for React Native](https://appwrite.io/docs/quick-starts/react-native) |
| | [Quick start for Flutter](/docs/quick-starts/flutter) | | | [Quick start for Flutter](https://appwrite.io/docs/quick-starts/flutter) |
| | [Quick start for Apple](/docs/quick-starts/apple) | | | [Quick start for Apple](https://appwrite.io/docs/quick-starts/apple) |
| | [Quick start for Android](/docs/quick-starts/android) | | | [Quick start for Android](https://appwrite.io/docs/quick-starts/android) |
| **Server** | [Quick start for Node.js](/docs/quick-starts/node) | | **Server** | [Quick start for Node.js](https://appwrite.io/docs/quick-starts/node) |
| | [Quick start for Python](/docs/quick-starts/python) | | | [Quick start for Python](https://appwrite.io/docs/quick-starts/python) |
| | [Quick start for .NET](/docs/quick-starts/dotnet) | | | [Quick start for .NET](https://appwrite.io/docs/quick-starts/dotnet) |
| | [Quick start for Dart](/docs/quick-starts/dart) | | | [Quick start for Dart](https://appwrite.io/docs/quick-starts/dart) |
| | [Quick start for Ruby](/docs/quick-starts/ruby) | | | [Quick start for Ruby](https://appwrite.io/docs/quick-starts/ruby) |
| | [Quick start for Deno](/docs/quick-starts/deno) | | | [Quick start for Deno](https://appwrite.io/docs/quick-starts/deno) |
| | [Quick start for PHP](/docs/quick-starts/php) | | | [Quick start for PHP](https://appwrite.io/docs/quick-starts/php) |
| | [Quick start for Kotlin](/docs/quick-starts/kotlin) | | | [Quick start for Kotlin](https://appwrite.io/docs/quick-starts/kotlin) |
| | [Quick start for Swift](/docs/quick-starts/swift) | | | [Quick start for Swift](https://appwrite.io/docs/quick-starts/swift) |
### Products ### Products

View file

@ -4,7 +4,7 @@ return [
'amex' => ['name' => 'American Express', 'path' => __DIR__ . '/credit-cards/amex.png'], 'amex' => ['name' => 'American Express', 'path' => __DIR__ . '/credit-cards/amex.png'],
'argencard' => ['name' => 'Argencard', 'path' => __DIR__ . '/credit-cards/argencard.png'], 'argencard' => ['name' => 'Argencard', 'path' => __DIR__ . '/credit-cards/argencard.png'],
'cabal' => ['name' => 'Cabal', 'path' => __DIR__ . '/credit-cards/cabal.png'], 'cabal' => ['name' => 'Cabal', 'path' => __DIR__ . '/credit-cards/cabal.png'],
'censosud' => ['name' => 'Consosud', 'path' => __DIR__ . '/credit-cards/consosud.png'], 'cencosud' => ['name' => 'Cencosud', 'path' => __DIR__ . '/credit-cards/cencosud.png'],
'diners' => ['name' => 'Diners Club', 'path' => __DIR__ . '/credit-cards/diners.png'], 'diners' => ['name' => 'Diners Club', 'path' => __DIR__ . '/credit-cards/diners.png'],
'discover' => ['name' => 'Discover', 'path' => __DIR__ . '/credit-cards/discover.png'], 'discover' => ['name' => 'Discover', 'path' => __DIR__ . '/credit-cards/discover.png'],
'elo' => ['name' => 'Elo', 'path' => __DIR__ . '/credit-cards/elo.png'], 'elo' => ['name' => 'Elo', 'path' => __DIR__ . '/credit-cards/elo.png'],

View file

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

View file

@ -11,7 +11,7 @@ return [
/** General Errors */ /** General Errors */
Exception::GENERAL_UNKNOWN => [ Exception::GENERAL_UNKNOWN => [
'name' => Exception::GENERAL_UNKNOWN, 'name' => Exception::GENERAL_UNKNOWN,
'description' => 'An unknown error has occured. Please check the logs for more information.', 'description' => 'An unknown error has occurred. Please check the logs for more information.',
'code' => 500, 'code' => 500,
], ],
Exception::GENERAL_MOCK => [ Exception::GENERAL_MOCK => [
@ -134,7 +134,7 @@ return [
Exception::USER_COUNT_EXCEEDED => [ Exception::USER_COUNT_EXCEEDED => [
'name' => Exception::USER_COUNT_EXCEEDED, 'name' => Exception::USER_COUNT_EXCEEDED,
'description' => 'The current project has exceeded the maximum number of users. Please check your user limit in the Appwrite console.', 'description' => 'The current project has exceeded the maximum number of users. Please check your user limit in the Appwrite console.',
'code' => 501, 'code' => 400,
], ],
Exception::USER_CONSOLE_COUNT_EXCEEDED => [ Exception::USER_CONSOLE_COUNT_EXCEEDED => [
'name' => Exception::USER_CONSOLE_COUNT_EXCEEDED, 'name' => Exception::USER_CONSOLE_COUNT_EXCEEDED,
@ -284,7 +284,7 @@ return [
], ],
Exception::USER_CHALLENGE_REQUIRED => [ Exception::USER_CHALLENGE_REQUIRED => [
'name' => Exception::USER_CHALLENGE_REQUIRED, 'name' => Exception::USER_CHALLENGE_REQUIRED,
'description' => 'A recently succeessful challenge is required to complete this action. A challenge is considered recent for 5 minutes.', 'description' => 'A recently successful challenge is required to complete this action. A challenge is considered recent for 5 minutes.',
'code' => 401, 'code' => 401,
], ],
Exception::USER_OAUTH2_BAD_REQUEST => [ Exception::USER_OAUTH2_BAD_REQUEST => [
@ -489,7 +489,7 @@ return [
], ],
Exception::REPOSITORY_NOT_FOUND => [ Exception::REPOSITORY_NOT_FOUND => [
'name' => 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.', 'description' => 'Repository with the requested ID could not be found. Check to see if the ID is correct, or create the repository.',
'code' => 404, 'code' => 404,
], ],
Exception::PROVIDER_CONTRIBUTION_CONFLICT => [ Exception::PROVIDER_CONTRIBUTION_CONFLICT => [
@ -499,7 +499,7 @@ return [
], ],
Exception::GENERAL_PROVIDER_FAILURE => [ Exception::GENERAL_PROVIDER_FAILURE => [
'name' => 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.', 'description' => 'VCS (Version Control System) provider failed to process the request. We believe this is an error with the VCS provider. Try again, or contact support for more information.',
'code' => 400, 'code' => 400,
], ],
@ -519,6 +519,11 @@ return [
'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".', '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, 'code' => 404,
], ],
Exception::FUNCTION_SYNCHRONOUS_TIMEOUT => [
'name' => Exception::FUNCTION_SYNCHRONOUS_TIMEOUT,
'description' => 'Synchronous function execution timed out. Use asynchronous execution instead, or ensure the execution duration doesn\'t exceed 30 seconds.',
'code' => 408,
],
/** Builds */ /** Builds */
Exception::BUILD_NOT_FOUND => [ Exception::BUILD_NOT_FOUND => [

View file

@ -145,6 +145,7 @@ return [
'NZ', 'NZ',
'OM', 'OM',
'PK', 'PK',
'PS',
'PA', 'PA',
'PE', 'PE',
'PH', 'PH',

View file

@ -926,12 +926,12 @@ return [
[ [
"code" => "zh-cn", "code" => "zh-cn",
"name" => "Chinese (Simplified)", "name" => "Chinese (Simplified)",
"nativeName" => "国人" "nativeName" => ""
], ],
[ [
"code" => "zh-tw", "code" => "zh-tw",
"name" => "Chinese (Traditional)", "name" => "Chinese (Traditional)",
"nativeName" => "國人" "nativeName" => ""
], ],
[ [
"code" => "zu", "code" => "zu",

View file

@ -136,6 +136,7 @@ return [
'NZ' => '64', 'NZ' => '64',
'OM' => '968', 'OM' => '968',
'PK' => '92', 'PK' => '92',
'PS' => '970',
'PA' => '507', 'PA' => '507',
'PE' => '51', 'PE' => '51',
'PH' => '63', 'PH' => '63',

View file

@ -5,7 +5,7 @@
<table border="0" cellspacing="0" cellpadding="0" style="padding-top: 10px; padding-bottom: 10px; display: inline-block;"> <table border="0" cellspacing="0" cellpadding="0" style="padding-top: 10px; padding-bottom: 10px; display: inline-block;">
<tr> <tr>
<td align="center" style="border-radius: 8px; background-color: #ffffff;"> <td align="center" style="border-radius: 8px; background-color: #ffffff;">
<p style="font-size: 24px; text-indent: 18px; letter-spacing: 18px; font-family: Inter; color: #414146; text-decoration: none; border-radius: 8px; padding: 24px 12px; border: 1px solid #EDEDF0; display: inline-block; font-weight: bold; ">{{otp}}</p> <p style="font-size: 24px; text-indent: 18px; letter-spacing: 18px; font-family: 'Inter', sans-serif; color: #414146; text-decoration: none; border-radius: 8px; padding: 24px 12px; border: 1px solid #EDEDF0; display: inline-block; font-weight: bold; ">{{otp}}</p>
</td> </td>
</tr> </tr>
</table> </table>

View file

@ -163,6 +163,7 @@
"countries.nz": "Nieu-Seeland", "countries.nz": "Nieu-Seeland",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palestine",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Filippyne", "countries.ph": "Filippyne",

View file

@ -163,6 +163,7 @@
"countries.nz": "نيوزيلندا", "countries.nz": "نيوزيلندا",
"countries.om": "عمان", "countries.om": "عمان",
"countries.pk": "باكستان", "countries.pk": "باكستان",
"countries.ps": "فلسطين",
"countries.pa": "بنما", "countries.pa": "بنما",
"countries.pe": "بيرو", "countries.pe": "بيرو",
"countries.ph": "الفلبين", "countries.ph": "الفلبين",

View file

@ -163,6 +163,7 @@
"countries.nz": "নিউজিলেণ্ড", "countries.nz": "নিউজিলেণ্ড",
"countries.om": "ওমান", "countries.om": "ওমান",
"countries.pk": "পাকিস্তান", "countries.pk": "পাকিস্তান",
"countries.ps": "প্যালেস্টাইন",
"countries.pa": "পানামা", "countries.pa": "পানামা",
"countries.pe": "পেৰু", "countries.pe": "পেৰু",
"countries.ph": "ফিলিপাইনচ", "countries.ph": "ফিলিপাইনচ",

View file

@ -163,6 +163,7 @@
"countries.nz": "Yeni Zelandiya", "countries.nz": "Yeni Zelandiya",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Fələstin",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Filippin", "countries.ph": "Filippin",

View file

@ -163,6 +163,7 @@
"countries.nz": "Новая Зеландыя", "countries.nz": "Новая Зеландыя",
"countries.om": "Аман", "countries.om": "Аман",
"countries.pk": "Пакістан", "countries.pk": "Пакістан",
"countries.ps": "Палестина",
"countries.pa": "Панама", "countries.pa": "Панама",
"countries.pe": "Перу", "countries.pe": "Перу",
"countries.ph": "Філіпіны", "countries.ph": "Філіпіны",

View file

@ -163,6 +163,7 @@
"countries.nz": "Нова Зеландия", "countries.nz": "Нова Зеландия",
"countries.om": "Оман", "countries.om": "Оман",
"countries.pk": "Пакистан", "countries.pk": "Пакистан",
"countries.ps": "Палестина",
"countries.pa": "Панама", "countries.pa": "Панама",
"countries.pe": "Перу", "countries.pe": "Перу",
"countries.ph": "Филипини", "countries.ph": "Филипини",

View file

@ -163,6 +163,7 @@
"countries.nz": "न्यूजीलैंड", "countries.nz": "न्यूजीलैंड",
"countries.om": "ओमान", "countries.om": "ओमान",
"countries.pk": "पाकिस्तान", "countries.pk": "पाकिस्तान",
"countries.ps": "पैलिस्टाइन",
"countries.pa": "पनामा", "countries.pa": "पनामा",
"countries.pe": "पेरू", "countries.pe": "पेरू",
"countries.ph": "फिलीपींस", "countries.ph": "फिलीपींस",

View file

@ -163,6 +163,7 @@
"countries.nz": "নিউজিল্যান্ড", "countries.nz": "নিউজিল্যান্ড",
"countries.om": "ওমান", "countries.om": "ওমান",
"countries.pk": "পাকিস্তান", "countries.pk": "পাকিস্তান",
"countries.ps": "প্যালেস্টাইন",
"countries.pa": "পানামা", "countries.pa": "পানামা",
"countries.pe": "পেরু", "countries.pe": "পেরু",
"countries.ph": "ফিলিপাইন", "countries.ph": "ফিলিপাইন",

View file

@ -163,6 +163,7 @@
"countries.nz": "Novi Zeland", "countries.nz": "Novi Zeland",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palestina",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Filipini", "countries.ph": "Filipini",

View file

@ -163,6 +163,7 @@
"countries.nz": "Nova Zelanda", "countries.nz": "Nova Zelanda",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palestina",
"countries.pa": "Panamà", "countries.pa": "Panamà",
"countries.pe": "Perú", "countries.pe": "Perú",
"countries.ph": "Filipines", "countries.ph": "Filipines",

View file

@ -163,6 +163,7 @@
"countries.nz": "Nový Zéland", "countries.nz": "Nový Zéland",
"countries.om": "Omán", "countries.om": "Omán",
"countries.pk": "Pákistán", "countries.pk": "Pákistán",
"countries.ps": "Palestina",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Filipíny", "countries.ph": "Filipíny",

View file

@ -163,6 +163,7 @@
"countries.nz": "New Zealand", "countries.nz": "New Zealand",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palæstina",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Filippinerne", "countries.ph": "Filippinerne",

View file

@ -163,6 +163,7 @@
"countries.nz": "Neuseeland", "countries.nz": "Neuseeland",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palästina",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Philippinen", "countries.ph": "Philippinen",

View file

@ -163,6 +163,7 @@
"countries.nz": "Νέα Ζηλανδία", "countries.nz": "Νέα Ζηλανδία",
"countries.om": "Ομάν", "countries.om": "Ομάν",
"countries.pk": "Πακιστάν", "countries.pk": "Πακιστάν",
"countries.ps": "Παλαιστίνη",
"countries.pa": "Παναμάς", "countries.pa": "Παναμάς",
"countries.pe": "Περού", "countries.pe": "Περού",
"countries.ph": "Φιλιππίνες", "countries.ph": "Φιλιππίνες",

View file

@ -180,6 +180,7 @@
"countries.nz": "New Zealand", "countries.nz": "New Zealand",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palestine",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Philippines", "countries.ph": "Philippines",

View file

@ -162,6 +162,7 @@
"countries.nz": "New Zealand", "countries.nz": "New Zealand",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palestinio",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Philippines", "countries.ph": "Philippines",

View file

@ -163,6 +163,7 @@
"countries.nz": "Nueva Zelanda", "countries.nz": "Nueva Zelanda",
"countries.om": "Omán", "countries.om": "Omán",
"countries.pk": "Pakistán", "countries.pk": "Pakistán",
"countries.ps": "Palestina",
"countries.pa": "Panamá", "countries.pa": "Panamá",
"countries.pe": "Perú", "countries.pe": "Perú",
"countries.ph": "Filipinas", "countries.ph": "Filipinas",

View file

@ -163,6 +163,7 @@
"countries.nz": "نیوزلند", "countries.nz": "نیوزلند",
"countries.om": "عمان", "countries.om": "عمان",
"countries.pk": "پاکستان", "countries.pk": "پاکستان",
"countries.ps": "فلسطین",
"countries.pa": "پاناما", "countries.pa": "پاناما",
"countries.pe": "پرو", "countries.pe": "پرو",
"countries.ph": "فیلیپین", "countries.ph": "فیلیپین",

View file

@ -163,6 +163,7 @@
"countries.nz": "Uusi-Seelanti", "countries.nz": "Uusi-Seelanti",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palestiina",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Filippiinit", "countries.ph": "Filippiinit",

View file

@ -163,6 +163,7 @@
"countries.nz": "Nýsæland", "countries.nz": "Nýsæland",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palestina",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Filipsoyggjar", "countries.ph": "Filipsoyggjar",

View file

@ -163,6 +163,7 @@
"countries.nz": "Nouvelle-Zélande", "countries.nz": "Nouvelle-Zélande",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palestine",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Pérou", "countries.pe": "Pérou",
"countries.ph": "Philippines", "countries.ph": "Philippines",

View file

@ -163,6 +163,7 @@
"countries.nz": "An Nua-Shéalainn", "countries.nz": "An Nua-Shéalainn",
"countries.om": "Óman", "countries.om": "Óman",
"countries.pk": "An Phacastáin", "countries.pk": "An Phacastáin",
"countries.ps": "An Phalaistín",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peiriú", "countries.pe": "Peiriú",
"countries.ph": "Na hOileáin Fhilipíneacha", "countries.ph": "Na hOileáin Fhilipíneacha",

View file

@ -163,6 +163,7 @@
"countries.nz": "ન્યુઝીલેન્ડ", "countries.nz": "ન્યુઝીલેન્ડ",
"countries.om": "ઓમાન", "countries.om": "ઓમાન",
"countries.pk": "પાકિસ્તાન", "countries.pk": "પાકિસ્તાન",
"countries.ps": "પેલેસ્ટાઇન",
"countries.pa": "પનામા", "countries.pa": "પનામા",
"countries.pe": "પેરુ", "countries.pe": "પેરુ",
"countries.ph": "ફિલિપાઇન્સ", "countries.ph": "ફિલિપાઇન્સ",

View file

@ -163,6 +163,7 @@
"countries.nz": "ניו זילנד", "countries.nz": "ניו זילנד",
"countries.om": "עומאן", "countries.om": "עומאן",
"countries.pk": "פקיסטן", "countries.pk": "פקיסטן",
"countries.ps": "פלסטין",
"countries.pa": "פנמה", "countries.pa": "פנמה",
"countries.pe": "פרו", "countries.pe": "פרו",
"countries.ph": "הפיליפינים", "countries.ph": "הפיליפינים",

View file

@ -163,6 +163,7 @@
"countries.nz": "न्यूजीलैंड", "countries.nz": "न्यूजीलैंड",
"countries.om": "ओमान", "countries.om": "ओमान",
"countries.pk": "पाकिस्तान", "countries.pk": "पाकिस्तान",
"countries.ps": "पैलिस्टाइन",
"countries.pa": "पनामा", "countries.pa": "पनामा",
"countries.pe": "पेरू", "countries.pe": "पेरू",
"countries.ph": "फिलीपींस", "countries.ph": "फिलीपींस",

View file

@ -163,6 +163,7 @@
"countries.nz": "Novi Zeland", "countries.nz": "Novi Zeland",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palestina",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Filipini", "countries.ph": "Filipini",

View file

@ -163,6 +163,7 @@
"countries.nz": "Új-Zéland", "countries.nz": "Új-Zéland",
"countries.om": "Omán", "countries.om": "Omán",
"countries.pk": "Pakisztán", "countries.pk": "Pakisztán",
"countries.ps": "Palesztina",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Fülöp-szigetek", "countries.ph": "Fülöp-szigetek",

View file

@ -163,6 +163,7 @@
"countries.nz": "Նոր Զելանդիա", "countries.nz": "Նոր Զելանդիա",
"countries.om": "Օման", "countries.om": "Օման",
"countries.pk": "Պակիստան", "countries.pk": "Պակիստան",
"countries.ps": "Պաղեստին",
"countries.pa": "Պանամա", "countries.pa": "Պանամա",
"countries.pe": "Պերու", "countries.pe": "Պերու",
"countries.ph": "Ֆիլիպիններ", "countries.ph": "Ֆիլիպիններ",

View file

@ -163,6 +163,7 @@
"countries.nz": "Selandia Baru", "countries.nz": "Selandia Baru",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palestina",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Filipina", "countries.ph": "Filipina",

View file

@ -163,6 +163,7 @@
"countries.nz": "Nýja Sjáland", "countries.nz": "Nýja Sjáland",
"countries.om": "Óman", "countries.om": "Óman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palestína",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Perú", "countries.pe": "Perú",
"countries.ph": "Filippseyjar", "countries.ph": "Filippseyjar",

View file

@ -163,6 +163,7 @@
"countries.nz": "Nuova Zelanda", "countries.nz": "Nuova Zelanda",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palestina",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Perù", "countries.pe": "Perù",
"countries.ph": "Filippine", "countries.ph": "Filippine",

View file

@ -163,6 +163,7 @@
"countries.nz": "ニュージーランド", "countries.nz": "ニュージーランド",
"countries.om": "オマーン", "countries.om": "オマーン",
"countries.pk": "パキスタン", "countries.pk": "パキスタン",
"countries.ps": "パレスチナ",
"countries.pa": "パナマ", "countries.pa": "パナマ",
"countries.pe": "ペルー", "countries.pe": "ペルー",
"countries.ph": "フィリピン", "countries.ph": "フィリピン",

View file

@ -163,6 +163,7 @@
"countries.nz": "Selandia Anyar", "countries.nz": "Selandia Anyar",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palestina",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Filipina", "countries.ph": "Filipina",

View file

@ -163,6 +163,7 @@
"countries.nz": "នូវែលសេឡង់", "countries.nz": "នូវែលសេឡង់",
"countries.om": "អូម៉ង់", "countries.om": "អូម៉ង់",
"countries.pk": "ប៉ាគីស្ថាន", "countries.pk": "ប៉ាគីស្ថាន",
"countries.ps": "ប៉ាលេស្ទីន",
"countries.pa": "ប៉ាណាម៉ា", "countries.pa": "ប៉ាណាម៉ា",
"countries.pe": "ប៉េរូ", "countries.pe": "ប៉េរូ",
"countries.ph": "ហ្វីលីពីន", "countries.ph": "ហ្វីលីពីន",

View file

@ -163,6 +163,7 @@
"countries.nz": "ನ್ಯೂಜಿಲ್ಯಾಂಡ್", "countries.nz": "ನ್ಯೂಜಿಲ್ಯಾಂಡ್",
"countries.om": "ಓಮನ್", "countries.om": "ಓಮನ್",
"countries.pk": "ಪಾಕಿಸ್ತಾನ", "countries.pk": "ಪಾಕಿಸ್ತಾನ",
"countries.ps": "ಪ್ಯಾಲೇಸ್ಟೈನ್",
"countries.pa": "ಪನಾಮ", "countries.pa": "ಪನಾಮ",
"countries.pe": "ಪೆರು", "countries.pe": "ಪೆರು",
"countries.ph": "ಫಿಲಿಪೈನ್ಸ್", "countries.ph": "ಫಿಲಿಪೈನ್ಸ್",

View file

@ -163,6 +163,7 @@
"countries.nz": "뉴질랜드", "countries.nz": "뉴질랜드",
"countries.om": "오만", "countries.om": "오만",
"countries.pk": "파키스탄", "countries.pk": "파키스탄",
"countries.ps": "팔레스타인",
"countries.pa": "파나마", "countries.pa": "파나마",
"countries.pe": "페루", "countries.pe": "페루",
"countries.ph": "필리핀 제도", "countries.ph": "필리핀 제도",

View file

@ -163,6 +163,7 @@
"countries.nz": "New Zealand", "countries.nz": "New Zealand",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palestina",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Philippines", "countries.ph": "Philippines",

View file

@ -163,6 +163,7 @@
"countries.nz": "Neiséiland", "countries.nz": "Neiséiland",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palestina",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Philippinnen", "countries.ph": "Philippinnen",

View file

@ -163,6 +163,7 @@
"countries.nz": "Naujoji Zelandija", "countries.nz": "Naujoji Zelandija",
"countries.om": "Omanas", "countries.om": "Omanas",
"countries.pk": "Pakistanas", "countries.pk": "Pakistanas",
"countries.ps": "Palestina",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Filipinai", "countries.ph": "Filipinai",

View file

@ -163,6 +163,7 @@
"countries.nz": "Jaunzēlande", "countries.nz": "Jaunzēlande",
"countries.om": "Omāna", "countries.om": "Omāna",
"countries.pk": "Pakistāna", "countries.pk": "Pakistāna",
"countries.ps": "Palestīna",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Filipīnas", "countries.ph": "Filipīnas",

View file

@ -163,6 +163,7 @@
"countries.nz": "ന്യൂസിലൻഡ്", "countries.nz": "ന്യൂസിലൻഡ്",
"countries.om": "ഒമാൻ", "countries.om": "ഒമാൻ",
"countries.pk": "പാക്കിസ്ഥാൻ", "countries.pk": "പാക്കിസ്ഥാൻ",
"countries.ps": "പാലസ്തീൻ",
"countries.pa": "പനാമ", "countries.pa": "പനാമ",
"countries.pe": "പെറു", "countries.pe": "പെറു",
"countries.ph": "ഫിലിപ്പീൻസ്", "countries.ph": "ഫിലിപ്പീൻസ്",

View file

@ -163,6 +163,7 @@
"countries.nz": "न्यूजीलैंड", "countries.nz": "न्यूजीलैंड",
"countries.om": "ओमान", "countries.om": "ओमान",
"countries.pk": "पाकिस्तान", "countries.pk": "पाकिस्तान",
"countries.ps": "पॅलेस्टाईन",
"countries.pa": "पनामा", "countries.pa": "पनामा",
"countries.pe": "पेरू", "countries.pe": "पेरू",
"countries.ph": "फिलीपींस", "countries.ph": "फिलीपींस",

View file

@ -163,6 +163,7 @@
"countries.nz": "New Zealand", "countries.nz": "New Zealand",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palestin",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Filipina", "countries.ph": "Filipina",

View file

@ -163,6 +163,7 @@
"countries.nz": "New Zealand", "countries.nz": "New Zealand",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palestina",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Filippinene", "countries.ph": "Filippinene",

View file

@ -163,6 +163,7 @@
"countries.nz": "न्युजिल्याण्ड", "countries.nz": "न्युजिल्याण्ड",
"countries.om": "ओमान", "countries.om": "ओमान",
"countries.pk": "पाकिस्तान", "countries.pk": "पाकिस्तान",
"countries.ps": "प्यालेस्टाइन",
"countries.pa": "पनामा", "countries.pa": "पनामा",
"countries.pe": "पेरू", "countries.pe": "पेरू",
"countries.ph": "फिलिपिन्स", "countries.ph": "फिलिपिन्स",

View file

@ -163,6 +163,7 @@
"countries.nz": "Nieuw Zeeland", "countries.nz": "Nieuw Zeeland",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palestina",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Filippijnen", "countries.ph": "Filippijnen",

View file

@ -163,6 +163,7 @@
"countries.nz": "New Zealand", "countries.nz": "New Zealand",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palestina",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Filippinene", "countries.ph": "Filippinene",

View file

@ -163,6 +163,7 @@
"countries.nz": "ନିଉଜିଲାଣ୍ଡ୍", "countries.nz": "ନିଉଜିଲାଣ୍ଡ୍",
"countries.om": "ଓମାନ", "countries.om": "ଓମାନ",
"countries.pk": "ପାକିସ୍ତାନ", "countries.pk": "ପାକିସ୍ତାନ",
"countries.ps": "ପାଲେସ୍ତାଇନ",
"countries.pa": "ପାନାମା", "countries.pa": "ପାନାମା",
"countries.pe": "ପେରୁ", "countries.pe": "ପେରୁ",
"countries.ph": "ଫିଲିପାଇନ୍ସ", "countries.ph": "ଫିଲିପାଇନ୍ସ",

View file

@ -163,6 +163,7 @@
"countries.nz": "ਨਿਊਜ਼ੀਲੈਂਡ", "countries.nz": "ਨਿਊਜ਼ੀਲੈਂਡ",
"countries.om": "ਓਮਾਨ", "countries.om": "ਓਮਾਨ",
"countries.pk": "ਪਾਕਿਸਤਾਨ", "countries.pk": "ਪਾਕਿਸਤਾਨ",
"countries.ps": "ਫਿਲਿਸਤੀਨ",
"countries.pa": "ਪਨਾਮਾ", "countries.pa": "ਪਨਾਮਾ",
"countries.pe": "ਪੇਰੂ", "countries.pe": "ਪੇਰੂ",
"countries.ph": "ਫਿਲਪੀਨਜ਼", "countries.ph": "ਫਿਲਪੀਨਜ਼",

View file

@ -163,6 +163,7 @@
"countries.nz": "Nowa Zelandia", "countries.nz": "Nowa Zelandia",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palestyna",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Filipiny", "countries.ph": "Filipiny",

View file

@ -163,6 +163,7 @@
"countries.nz": "Nova Zelândia", "countries.nz": "Nova Zelândia",
"countries.om": "Omã", "countries.om": "Omã",
"countries.pk": "Paquistão", "countries.pk": "Paquistão",
"countries.ps": "Palestina",
"countries.pa": "Panamá", "countries.pa": "Panamá",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Filipinas", "countries.ph": "Filipinas",

View file

@ -163,6 +163,7 @@
"countries.nz": "Nova Zelândia", "countries.nz": "Nova Zelândia",
"countries.om": "Omã", "countries.om": "Omã",
"countries.pk": "Paquistão", "countries.pk": "Paquistão",
"countries.ps": "Palestina",
"countries.pa": "Panamá", "countries.pa": "Panamá",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Filipinas", "countries.ph": "Filipinas",

View file

@ -163,6 +163,7 @@
"countries.nz": "Noua Zeelandă", "countries.nz": "Noua Zeelandă",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palestina",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Philippines", "countries.ph": "Philippines",

View file

@ -163,6 +163,7 @@
"countries.nz": "Новая Зеландия", "countries.nz": "Новая Зеландия",
"countries.om": "Оман", "countries.om": "Оман",
"countries.pk": "Пакистан", "countries.pk": "Пакистан",
"countries.ps": "Палестина",
"countries.pa": "Панама", "countries.pa": "Панама",
"countries.pe": "Перу", "countries.pe": "Перу",
"countries.ph": "Филлиппины", "countries.ph": "Филлиппины",

View file

@ -163,6 +163,7 @@
"countries.nz": "न्यूजीलैंड", "countries.nz": "न्यूजीलैंड",
"countries.om": "ओमान", "countries.om": "ओमान",
"countries.pk": "पाकिस्तान", "countries.pk": "पाकिस्तान",
"countries.ps": "पैलिस्टाइन",
"countries.pa": "पनामा", "countries.pa": "पनामा",
"countries.pe": "पेरू", "countries.pe": "पेरू",
"countries.ph": "फिलीपींस", "countries.ph": "फिलीपींस",

View file

@ -163,6 +163,7 @@
"countries.nz": "نيو زيلينڊ", "countries.nz": "نيو زيلينڊ",
"countries.om": "عمان", "countries.om": "عمان",
"countries.pk": "پاڪستان", "countries.pk": "پاڪستان",
"countries.ps": "فلسطين",
"countries.pa": "پاناما", "countries.pa": "پاناما",
"countries.pe": "پيرو", "countries.pe": "پيرو",
"countries.ph": "فلپائن", "countries.ph": "فلپائن",

View file

@ -163,6 +163,7 @@
"countries.nz": "නිව්සීලන්තය", "countries.nz": "නිව්සීලන්තය",
"countries.om": "ඕමානය", "countries.om": "ඕමානය",
"countries.pk": "පාකිස්තානය", "countries.pk": "පාකිස්තානය",
"countries.ps": "පලස්තීනය",
"countries.pa": "පැනමාව", "countries.pa": "පැනමාව",
"countries.pe": "පේරු", "countries.pe": "පේරු",
"countries.ph": "පිලිපීනය", "countries.ph": "පිලිපීනය",

View file

@ -163,6 +163,7 @@
"countries.nz": "Nový Zéland", "countries.nz": "Nový Zéland",
"countries.om": "Omán", "countries.om": "Omán",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palestína",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Filipíny", "countries.ph": "Filipíny",

View file

@ -163,6 +163,7 @@
"countries.nz": "Nova Zelandija", "countries.nz": "Nova Zelandija",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palestina",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Filipini", "countries.ph": "Filipini",

View file

@ -163,6 +163,7 @@
"countries.nz": "New Zealand", "countries.nz": "New Zealand",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakisitani", "countries.pk": "Pakisitani",
"countries.ps": "Palestine",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Philippines", "countries.ph": "Philippines",

View file

@ -163,6 +163,7 @@
"countries.nz": "Zelanda e Re", "countries.nz": "Zelanda e Re",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palestinë",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Filipine", "countries.ph": "Filipine",

View file

@ -163,6 +163,7 @@
"countries.nz": "Nya Zeeland", "countries.nz": "Nya Zeeland",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palestina",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Filippinerna", "countries.ph": "Filippinerna",

View file

@ -163,6 +163,7 @@
"countries.nz": "நியூசிலாந்து", "countries.nz": "நியூசிலாந்து",
"countries.om": "ஓமான்", "countries.om": "ஓமான்",
"countries.pk": "பாகிஸ்தான்", "countries.pk": "பாகிஸ்தான்",
"countries.ps": "பாலஸ்தீன்",
"countries.pa": "பனாமா", "countries.pa": "பனாமா",
"countries.pe": "பெரு", "countries.pe": "பெரு",
"countries.ph": "பிலிப்பைன்ஸ்", "countries.ph": "பிலிப்பைன்ஸ்",

View file

@ -163,6 +163,7 @@
"countries.nz": "న్యూజిలాండ్", "countries.nz": "న్యూజిలాండ్",
"countries.om": "ఒమన్", "countries.om": "ఒమన్",
"countries.pk": "పాకిస్తాన్", "countries.pk": "పాకిస్తాన్",
"countries.ps": "పాలస్తీన్",
"countries.pa": "పనామా", "countries.pa": "పనామా",
"countries.pe": "పెరూ", "countries.pe": "పెరూ",
"countries.ph": "ఫిలిప్పీన్స్", "countries.ph": "ఫిలిప్పీన్స్",

View file

@ -163,6 +163,7 @@
"countries.nz": "New Zealand", "countries.nz": "New Zealand",
"countries.om": "โอมาน", "countries.om": "โอมาน",
"countries.pk": "ปากีสถาน", "countries.pk": "ปากีสถาน",
"countries.ps": "ปาเลสไตน์",
"countries.pa": "ปานามา", "countries.pa": "ปานามา",
"countries.pe": "เปรู", "countries.pe": "เปรู",
"countries.ph": "ฟิลิปปินส์", "countries.ph": "ฟิลิปปินส์",

View file

@ -163,6 +163,7 @@
"countries.nz": "New Zealand", "countries.nz": "New Zealand",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palestina",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Pilipinas", "countries.ph": "Pilipinas",

View file

@ -163,6 +163,7 @@
"countries.nz": "Yeni Zelanda", "countries.nz": "Yeni Zelanda",
"countries.om": "Umman", "countries.om": "Umman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Filistin",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Filipinler", "countries.ph": "Filipinler",

View file

@ -163,6 +163,7 @@
"countries.nz": "Нова Зеландія", "countries.nz": "Нова Зеландія",
"countries.om": "Оман", "countries.om": "Оман",
"countries.pk": "Пакістан", "countries.pk": "Пакістан",
"countries.ps": "Палестина",
"countries.pa": "Панама", "countries.pa": "Панама",
"countries.pe": "Перу", "countries.pe": "Перу",
"countries.ph": "Філіппіни", "countries.ph": "Філіппіни",

View file

@ -163,6 +163,7 @@
"countries.nz": "نیوزی لینڈ", "countries.nz": "نیوزی لینڈ",
"countries.om": "عمان", "countries.om": "عمان",
"countries.pk": "پاکستان", "countries.pk": "پاکستان",
"countries.ps": "فلسطین",
"countries.pa": "پانامہ", "countries.pa": "پانامہ",
"countries.pe": "پیرو", "countries.pe": "پیرو",
"countries.ph": "فلپائن", "countries.ph": "فلپائن",

View file

@ -163,6 +163,7 @@
"countries.nz": "New Zealand", "countries.nz": "New Zealand",
"countries.om": "Oman", "countries.om": "Oman",
"countries.pk": "Pakistan", "countries.pk": "Pakistan",
"countries.ps": "Palestine",
"countries.pa": "Panama", "countries.pa": "Panama",
"countries.pe": "Peru", "countries.pe": "Peru",
"countries.ph": "Philippines", "countries.ph": "Philippines",

View file

@ -163,6 +163,7 @@
"countries.nz": "新西兰", "countries.nz": "新西兰",
"countries.om": "阿曼", "countries.om": "阿曼",
"countries.pk": "巴基斯坦", "countries.pk": "巴基斯坦",
"countries.ps": "巴勒斯坦",
"countries.pa": "巴拿马", "countries.pa": "巴拿马",
"countries.pe": "秘鲁", "countries.pe": "秘鲁",
"countries.ph": "菲律宾", "countries.ph": "菲律宾",

View file

@ -163,6 +163,7 @@
"countries.nz": "紐西蘭", "countries.nz": "紐西蘭",
"countries.om": "阿曼", "countries.om": "阿曼",
"countries.pk": "巴基斯坦", "countries.pk": "巴基斯坦",
"countries.ps": "巴勒斯坦",
"countries.pa": "巴拿馬", "countries.pa": "巴拿馬",
"countries.pe": "秘魯", "countries.pe": "秘魯",
"countries.ph": "菲律賓", "countries.ph": "菲律賓",

View file

@ -15,7 +15,7 @@ return [
[ [
'key' => 'web', 'key' => 'web',
'name' => 'Web', 'name' => 'Web',
'version' => '14.0.0', 'version' => '14.0.2',
'url' => 'https://github.com/appwrite/sdk-for-web', 'url' => 'https://github.com/appwrite/sdk-for-web',
'package' => 'https://www.npmjs.com/package/appwrite', 'package' => 'https://www.npmjs.com/package/appwrite',
'enabled' => true, 'enabled' => true,
@ -63,7 +63,7 @@ return [
[ [
'key' => 'flutter', 'key' => 'flutter',
'name' => 'Flutter', 'name' => 'Flutter',
'version' => '12.0.3', 'version' => '12.0.4',
'url' => 'https://github.com/appwrite/sdk-for-flutter', 'url' => 'https://github.com/appwrite/sdk-for-flutter',
'package' => 'https://pub.dev/packages/appwrite', 'package' => 'https://pub.dev/packages/appwrite',
'enabled' => true, 'enabled' => true,
@ -81,7 +81,7 @@ return [
[ [
'key' => 'apple', 'key' => 'apple',
'name' => 'Apple', 'name' => 'Apple',
'version' => '5.0.0', 'version' => '6.0.0',
'url' => 'https://github.com/appwrite/sdk-for-apple', 'url' => 'https://github.com/appwrite/sdk-for-apple',
'package' => 'https://github.com/appwrite/sdk-for-apple', 'package' => 'https://github.com/appwrite/sdk-for-apple',
'enabled' => true, 'enabled' => true,
@ -116,7 +116,7 @@ return [
[ [
'key' => 'android', 'key' => 'android',
'name' => 'Android', 'name' => 'Android',
'version' => '5.0.0', 'version' => '5.1.1',
'url' => 'https://github.com/appwrite/sdk-for-android', 'url' => 'https://github.com/appwrite/sdk-for-android',
'package' => 'https://search.maven.org/artifact/io.appwrite/sdk-for-android', 'package' => 'https://search.maven.org/artifact/io.appwrite/sdk-for-android',
'enabled' => true, 'enabled' => true,
@ -135,6 +135,24 @@ return [
'Java' => 'java', 'Java' => 'java',
], ],
], ],
[
'key' => 'react-native',
'name' => 'React Native',
'version' => '0.3.2',
'url' => 'https://github.com/appwrite/sdk-for-react-native',
'package' => 'https://npmjs.com/package/react-native-appwrite',
'enabled' => true,
'beta' => true,
'dev' => false,
'hidden' => false,
'family' => APP_PLATFORM_CLIENT,
'prism' => 'javascript',
'source' => \realpath(__DIR__ . '/../sdks/client-react-native'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-react-native.git',
'gitRepoName' => 'sdk-for-react-native',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
],
[ [
'key' => 'graphql', 'key' => 'graphql',
'name' => 'GraphQL', 'name' => 'GraphQL',
@ -185,7 +203,7 @@ return [
[ [
'key' => 'web', 'key' => 'web',
'name' => 'Console', 'name' => 'Console',
'version' => '0.6.1', 'version' => '0.6.3',
'url' => 'https://github.com/appwrite/sdk-for-console', 'url' => 'https://github.com/appwrite/sdk-for-console',
'package' => '', 'package' => '',
'enabled' => true, 'enabled' => true,
@ -203,7 +221,7 @@ return [
[ [
'key' => 'cli', 'key' => 'cli',
'name' => 'Command Line', 'name' => 'Command Line',
'version' => '5.0.2', 'version' => '5.0.5',
'url' => 'https://github.com/appwrite/sdk-for-cli', 'url' => 'https://github.com/appwrite/sdk-for-cli',
'package' => 'https://www.npmjs.com/package/appwrite-cli', 'package' => 'https://www.npmjs.com/package/appwrite-cli',
'enabled' => true, 'enabled' => true,
@ -231,7 +249,7 @@ return [
[ [
'key' => 'nodejs', 'key' => 'nodejs',
'name' => 'Node.js', 'name' => 'Node.js',
'version' => '12.0.1', 'version' => '13.0.0',
'url' => 'https://github.com/appwrite/sdk-for-node', 'url' => 'https://github.com/appwrite/sdk-for-node',
'package' => 'https://www.npmjs.com/package/node-appwrite', 'package' => 'https://www.npmjs.com/package/node-appwrite',
'enabled' => true, 'enabled' => true,
@ -249,7 +267,7 @@ return [
[ [
'key' => 'deno', 'key' => 'deno',
'name' => 'Deno', 'name' => 'Deno',
'version' => '10.0.1', 'version' => '10.0.2',
'url' => 'https://github.com/appwrite/sdk-for-deno', 'url' => 'https://github.com/appwrite/sdk-for-deno',
'package' => 'https://deno.land/x/appwrite', 'package' => 'https://deno.land/x/appwrite',
'enabled' => true, 'enabled' => true,
@ -267,7 +285,7 @@ return [
[ [
'key' => 'php', 'key' => 'php',
'name' => 'PHP', 'name' => 'PHP',
'version' => '11.0.1', 'version' => '11.0.2',
'url' => 'https://github.com/appwrite/sdk-for-php', 'url' => 'https://github.com/appwrite/sdk-for-php',
'package' => 'https://packagist.org/packages/appwrite/appwrite', 'package' => 'https://packagist.org/packages/appwrite/appwrite',
'enabled' => true, 'enabled' => true,
@ -285,7 +303,7 @@ return [
[ [
'key' => 'python', 'key' => 'python',
'name' => 'Python', 'name' => 'Python',
'version' => '5.0.2', 'version' => '5.0.3',
'url' => 'https://github.com/appwrite/sdk-for-python', 'url' => 'https://github.com/appwrite/sdk-for-python',
'package' => 'https://pypi.org/project/appwrite/', 'package' => 'https://pypi.org/project/appwrite/',
'enabled' => true, 'enabled' => true,
@ -303,7 +321,7 @@ return [
[ [
'key' => 'ruby', 'key' => 'ruby',
'name' => 'Ruby', 'name' => 'Ruby',
'version' => '11.0.1', 'version' => '11.0.2',
'url' => 'https://github.com/appwrite/sdk-for-ruby', 'url' => 'https://github.com/appwrite/sdk-for-ruby',
'package' => 'https://rubygems.org/gems/appwrite', 'package' => 'https://rubygems.org/gems/appwrite',
'enabled' => true, 'enabled' => true,
@ -321,7 +339,7 @@ return [
[ [
'key' => 'go', 'key' => 'go',
'name' => 'Go', 'name' => 'Go',
'version' => '4.0.0', 'version' => '4.0.1',
'url' => 'https://github.com/appwrite/sdk-for-go', 'url' => 'https://github.com/appwrite/sdk-for-go',
'package' => '', 'package' => '',
'enabled' => false, 'enabled' => false,
@ -339,7 +357,7 @@ return [
[ [
'key' => 'java', 'key' => 'java',
'name' => 'Java', 'name' => 'Java',
'version' => '4.0.1', 'version' => '4.0.2',
'url' => 'https://github.com/appwrite/sdk-for-java', 'url' => 'https://github.com/appwrite/sdk-for-java',
'package' => '', 'package' => '',
'enabled' => false, 'enabled' => false,
@ -357,7 +375,7 @@ return [
[ [
'key' => 'dotnet', 'key' => 'dotnet',
'name' => '.NET', 'name' => '.NET',
'version' => '0.8.1', 'version' => '0.8.2',
'url' => 'https://github.com/appwrite/sdk-for-dotnet', 'url' => 'https://github.com/appwrite/sdk-for-dotnet',
'package' => 'https://www.nuget.org/packages/Appwrite', 'package' => 'https://www.nuget.org/packages/Appwrite',
'enabled' => true, 'enabled' => true,
@ -375,7 +393,7 @@ return [
[ [
'key' => 'dart', 'key' => 'dart',
'name' => 'Dart', 'name' => 'Dart',
'version' => '11.0.2', 'version' => '11.0.3',
'url' => 'https://github.com/appwrite/sdk-for-dart', 'url' => 'https://github.com/appwrite/sdk-for-dart',
'package' => 'https://pub.dev/packages/dart_appwrite', 'package' => 'https://pub.dev/packages/dart_appwrite',
'enabled' => true, 'enabled' => true,
@ -393,7 +411,7 @@ return [
[ [
'key' => 'kotlin', 'key' => 'kotlin',
'name' => 'Kotlin', 'name' => 'Kotlin',
'version' => '5.0.1', 'version' => '5.0.2',
'url' => 'https://github.com/appwrite/sdk-for-kotlin', 'url' => 'https://github.com/appwrite/sdk-for-kotlin',
'package' => 'https://search.maven.org/artifact/io.appwrite/sdk-for-kotlin', 'package' => 'https://search.maven.org/artifact/io.appwrite/sdk-for-kotlin',
'enabled' => true, 'enabled' => true,
@ -415,7 +433,7 @@ return [
[ [
'key' => 'swift', 'key' => 'swift',
'name' => 'Swift', 'name' => 'Swift',
'version' => '5.0.1', 'version' => '5.0.2',
'url' => 'https://github.com/appwrite/sdk-for-swift', 'url' => 'https://github.com/appwrite/sdk-for-swift',
'package' => 'https://github.com/appwrite/sdk-for-swift', 'package' => 'https://github.com/appwrite/sdk-for-swift',
'enabled' => true, 'enabled' => true,

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

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

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

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

Some files were not shown because too many files have changed in this diff Show more