diff --git a/.github/ISSUE_TEMPLATE/bug.yaml b/.github/ISSUE_TEMPLATE/bug.yaml
index 2551c366bf..1399d56746 100644
--- a/.github/ISSUE_TEMPLATE/bug.yaml
+++ b/.github/ISSUE_TEMPLATE/bug.yaml
@@ -37,6 +37,7 @@ body:
label: "🎲 Appwrite version"
description: "What version of Appwrite are you running?"
options:
+ - Version 0.11.x
- Version 0.10.x
- Version 0.9.x
- Version 0.8.x
diff --git a/README.md b/README.md
index e4d50bf529..e71cbf57e9 100644
--- a/README.md
+++ b/README.md
@@ -83,7 +83,7 @@ docker run -it --rm ,
appwrite/appwrite:0.11.0
```
-Once the Docker installation completes, 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 installation completes.
+Once the Docker installation completes, 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 installation completes.
For advanced production and custom installation, check out our Docker [environment variables](https://appwrite.io/docs/environment-variables) docs. You can also use our public [docker-compose.yml](https://gist.github.com/eldadfux/977869ff6bdd7312adfd4e629ee15cc5#file-docker-compose-yml) file to manually set up an environment.
@@ -94,7 +94,7 @@ If you are upgrading your Appwrite server from an older version, you should use
## Getting Started
-Getting started with Appwrite is as easy as creating a new project, choosing your platform, and integrating its SDK in 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.
* [Getting Started for Web](https://appwrite.io/docs/getting-started-for-web)
* [Getting Started for Flutter](https://appwrite.io/docs/getting-started-for-flutter)
@@ -102,7 +102,6 @@ Getting started with Appwrite is as easy as creating a new project, choosing you
* [Getting Started for Android](https://appwrite.io/docs/getting-started-for-android)
* [Getting Started for Server](https://appwrite.io/docs/getting-started-for-server)
* [Getting Started for CLI](https://appwrite.io/docs/command-line)
-* Getting Started for iOS (Coming soon...)
### Services
@@ -130,7 +129,7 @@ Below is a list of currently supported platforms and languages. If you wish to h
#### Server
* ✅ [NodeJS](https://github.com/appwrite/sdk-for-node) (Maintained by the Appwrite Team)
* ✅ [PHP](https://github.com/appwrite/sdk-for-php) (Maintained by the Appwrite Team)
-* ✅ [Dart](https://github.com/appwrite/sdk-for-dart) - **Beta** (Maintained by the Appwrite Team)
+* ✅ [Dart](https://github.com/appwrite/sdk-for-dart) - (Maintained by the Appwrite Team)
* ✅ [Deno](https://github.com/appwrite/sdk-for-deno) - **Beta** (Maintained by the Appwrite Team)
* ✅ [Ruby](https://github.com/appwrite/sdk-for-ruby) (Maintained by the Appwrite Team)
* ✅ [Python](https://github.com/appwrite/sdk-for-python) (Maintained by the Appwrite Team)
@@ -139,8 +138,9 @@ Below is a list of currently supported platforms and languages. If you wish to h
* ✅ [.NET](https://github.com/appwrite/sdk-for-dotnet) - **Experimental** (Maintained by the Appwrite Team)
#### Community
-* ✅ [Appcelerator Titanium](https://github.com/m1ga/ti.appwrite) (Maintained by [Michael Gangolf](https://github.com/m1ga/))
-
+* ✅ [Appcelerator Titanium](https://github.com/m1ga/ti.appwrite) (Maintained by [Michael Gangolf](https://github.com/m1ga/))
+* ✅ [Godot Engine](https://github.com/GodotNuts/appwrite-sdk) (Maintained by [fenix-hub @GodotNuts](https://github.com/fenix-hub))
+
Looking for more SDKs? - Help us by contributing a pull request to our [SDK Generator](https://github.com/appwrite/sdk-generator)!
## Contributing
diff --git a/app/config/locale/translations/fa.json b/app/config/locale/translations/fa.json
index 2ea78963af..346e3759bf 100644
--- a/app/config/locale/translations/fa.json
+++ b/app/config/locale/translations/fa.json
@@ -1,24 +1,24 @@
{
- "settings.inspire": "\"هنر خردمند بودن، هنر دانستن چیزی است که باید از آن غافل شد.\"",
+ "settings.inspire": "\"هنر خردمند بودن این است که بدانید چه چیزی را نادیده بگیرید.\"",
"settings.locale": "fa",
"settings.direction": "rtl",
"emails.sender": "تیم %s",
"emails.verification.subject": "تأیید حساب",
"emails.verification.hello": "سلام {{name}}",
- "emails.verification.body": "برای تأیید حسابتان پیوند زیر را دنبال کنید.",
- "emails.verification.footer": "اگر شما درخواست تأیید حساب ندادهاید، میتوانید این ایمیل را نادیده بگیرید.",
+ "emails.verification.body": "برای تأیید ایمیلتان پیوند زیر را دنبال کنید.",
+ "emails.verification.footer": "اگر شما درخواست تأیید حساب ندادهاید، میتوانید این پیام را نادیده بگیرید.",
"emails.verification.thanks": "سپاس فراوان",
"emails.verification.signature": "تیم {{name}}",
"emails.magicSession.subject": "ورود به حساب کاربری",
"emails.magicSession.hello": "سلام،",
"emails.magicSession.body": "برای ورود به حسابتان پیوند زیر را دنبال کنید.",
- "emails.magicSession.footer": "اگر شما درخواست ورود به حساب کاربری ندادهاید، میتوانید این ایمیل را نادیده بگیرید.",
+ "emails.magicSession.footer": "اگر شما درخواست ورود به حساب کاربری با استفاده از این ایمیل را ندادهاید، میتوانید این پیام را نادیده بگیرید.",
"emails.magicSession.thanks": "سپاس فراوان",
"emails.magicSession.signature": "تیم {{name}}",
"emails.recovery.subject": "بازیابی گذرواژه",
"emails.recovery.hello": "سلام {{name}}",
"emails.recovery.body": "برای بازیابی گذرواژهتان پیوند زیر را دنبال کنید.",
- "emails.recovery.footer": "اگر شما درخواست بازیابی گذرواژه ندادهاید، میتوانید این ایمیل را نادیده بگیرید.",
+ "emails.recovery.footer": "اگر شما درخواست بازیابی گذرواژه ندادهاید، میتوانید این پیام را نادیده بگیرید.",
"emails.recovery.thanks": "سپاس فراوان",
"emails.recovery.signature": "تیم {{name}}",
"emails.invitation.subject": "دعوت به تیم %s در %s",
diff --git a/app/config/locale/translations/ga.json b/app/config/locale/translations/ga.json
index 9ff3f16bfa..d572fa01a8 100644
--- a/app/config/locale/translations/ga.json
+++ b/app/config/locale/translations/ga.json
@@ -28,205 +28,205 @@
"emails.invitation.thanks": "Go raibh maith agat",
"emails.invitation.signature": "{{project}} foireann",
"locale.country.unknown": "Neamhaithnid",
- "countries.af": "Afghanistan",
- "countries.ao": "Angola",
- "countries.al": "Albania",
- "countries.ad": "Andorra",
- "countries.ae": "United Arab Emirates",
- "countries.ar": "Argentina",
- "countries.am": "Armenia",
- "countries.ag": "Antigua and Barbuda",
- "countries.au": "Australia",
- "countries.at": "Austria",
- "countries.az": "Azerbaijan",
- "countries.bi": "Burundi",
- "countries.be": "Belgium",
- "countries.bj": "Benin",
- "countries.bf": "Burkina Faso",
- "countries.bd": "Bangladesh",
- "countries.bg": "Bulgaria",
- "countries.bh": "Bahrain",
- "countries.bs": "Bahamas",
- "countries.ba": "Bosnia and Herzegovina",
- "countries.by": "Belarus",
- "countries.bz": "Belize",
- "countries.bo": "Bolivia",
- "countries.br": "Brazil",
- "countries.bb": "Barbados",
- "countries.bn": "Brunei",
- "countries.bt": "Bhutan",
- "countries.bw": "Botswana",
- "countries.cf": "Central African Republic",
- "countries.ca": "Canada",
- "countries.ch": "Switzerland",
- "countries.cl": "Chile",
- "countries.cn": "China",
- "countries.ci": "Ivory Coast",
- "countries.cm": "Cameroon",
- "countries.cd": "DR Congo",
- "countries.cg": "Republic of the Congo",
- "countries.co": "Colombia",
- "countries.km": "Comoros",
+ "countries.af": "An Afganastáin",
+ "countries.ao": "Angóla",
+ "countries.al": "Albáin",
+ "countries.ad": "Andóra",
+ "countries.ae": "Aontas na nÉimíríochtaí Arabacha",
+ "countries.ar": "Airgintín",
+ "countries.am": "Airméin",
+ "countries.ag": "Antigua agus Barbúda",
+ "countries.au": "Astráil",
+ "countries.at": "Ostair",
+ "countries.az": "Asarbaiseáin",
+ "countries.bi": "An Bhurúin",
+ "countries.be": "An Bheilg",
+ "countries.bj": "Beinin",
+ "countries.bf": "Buircíne Fasó",
+ "countries.bd": "An Bhanglaidéis",
+ "countries.bg": "An Bhulgáir",
+ "countries.bh": "Bairéin",
+ "countries.bs": "Na Bahámaí",
+ "countries.ba": "An Bhoisnia agus an Heirseagaivéin",
+ "countries.by": "An Bhealarúis",
+ "countries.bz": "An Bheilís",
+ "countries.bo": "An Bholaiv",
+ "countries.br": "An Bhrasaíl",
+ "countries.bb": "Barbadós",
+ "countries.bn": "Brúiné",
+ "countries.bt": "An Bhútáin",
+ "countries.bw": "An Bhotsuáin",
+ "countries.cf": "Poblacht na hAfraice Láir",
+ "countries.ca": "Ceanada",
+ "countries.ch": "An Eilvéis",
+ "countries.cl": "An tSile",
+ "countries.cn": "An tSín",
+ "countries.ci": "Poblacht Côte d’Ivoire",
+ "countries.cm": "Camarún",
+ "countries.cd": "Poblacht Dhaonlathach an Chongó",
+ "countries.cg": "Poblacht an Chongó",
+ "countries.co": "An Cholóim",
+ "countries.km": "Oileáin Chomóra",
"countries.cv": "Cape Verde",
- "countries.cr": "Costa Rica",
- "countries.cu": "Cuba",
- "countries.cy": "Cyprus",
- "countries.cz": "Czechia",
- "countries.de": "Germany",
+ "countries.cr": "Cósta Ríce",
+ "countries.cu": "Cúba",
+ "countries.cy": "An Chipir",
+ "countries.cz": "An tSeicia",
+ "countries.de": "An Ghearmáin",
"countries.dj": "Djibouti",
- "countries.dm": "Dominica",
- "countries.dk": "Denmark",
- "countries.do": "Dominican Republic",
- "countries.dz": "Algeria",
- "countries.ec": "Ecuador",
- "countries.eg": "Egypt",
- "countries.er": "Eritrea",
- "countries.es": "Spain",
- "countries.ee": "Estonia",
- "countries.et": "Ethiopia",
- "countries.fi": "Finland",
- "countries.fj": "Fiji",
- "countries.fr": "France",
- "countries.fm": "Micronesia",
- "countries.ga": "Gabon",
- "countries.gb": "United Kingdom",
- "countries.ge": "Georgia",
- "countries.gh": "Ghana",
- "countries.gn": "Guinea",
- "countries.gm": "Gambia",
- "countries.gw": "Guinea-Bissau",
- "countries.gq": "Equatorial Guinea",
- "countries.gr": "Greece",
- "countries.gd": "Grenada",
- "countries.gt": "Guatemala",
- "countries.gy": "Guyana",
- "countries.hn": "Honduras",
- "countries.hr": "Croatia",
- "countries.ht": "Haiti",
- "countries.hu": "Hungary",
- "countries.id": "Indonesia",
+ "countries.dm": "Doiminice",
+ "countries.dk": "An Danmhairg",
+ "countries.do": "An Phoblacht Dhoiminiceach",
+ "countries.dz": "An Ailgéir",
+ "countries.ec": "Eacuadór",
+ "countries.eg": "An Éigipt",
+ "countries.er": "An Eiritré",
+ "countries.es": "An Spáinn",
+ "countries.ee": "An Eastóin",
+ "countries.et": "An Aetóip",
+ "countries.fi": "An Fhionlainn",
+ "countries.fj": "Fidsí",
+ "countries.fr": "An Fhrainc",
+ "countries.fm": "An Mhicrinéis",
+ "countries.ga": "An Ghabúin",
+ "countries.gb": "An Ríocht Aontaithe",
+ "countries.ge": "An tSeoirsia",
+ "countries.gh": "Gána",
+ "countries.gn": "An Ghuine",
+ "countries.gm": "An Ghaimbia",
+ "countries.gw": "Guine Bissau",
+ "countries.gq": "An Ghuine Mheánchiorclach",
+ "countries.gr": "An Ghréig",
+ "countries.gd": "Greanáda",
+ "countries.gt": "Guatamala",
+ "countries.gy": "An Ghuáin",
+ "countries.hn": "Hondúras",
+ "countries.hr": "An Chróit",
+ "countries.ht": "Háítí",
+ "countries.hu": "An Ungáir",
+ "countries.id": "An Indinéis",
"countries.in": "India",
- "countries.ie": "Ireland",
- "countries.ir": "Iran",
- "countries.iq": "Iraq",
- "countries.is": "Iceland",
- "countries.il": "Israel",
- "countries.it": "Italy",
- "countries.jm": "Jamaica",
- "countries.jo": "Jordan",
- "countries.jp": "Japan",
- "countries.kz": "Kazakhstan",
- "countries.ke": "Kenya",
- "countries.kg": "Kyrgyzstan",
- "countries.kh": "Cambodia",
- "countries.ki": "Kiribati",
- "countries.kn": "Saint Kitts and Nevis",
- "countries.kr": "South Korea",
- "countries.kw": "Kuwait",
+ "countries.ie": "Éire",
+ "countries.ir": "An Iaráin",
+ "countries.iq": "An Iaráic",
+ "countries.is": "An Íoslainn",
+ "countries.il": "Iosrael",
+ "countries.it": "An Iodáil",
+ "countries.jm": "Iamáice",
+ "countries.jo": "An Iordáin",
+ "countries.jp": "An tSeapáin",
+ "countries.kz": "An Chasacstáin",
+ "countries.ke": "An Chéinia",
+ "countries.kg": "An Chirgeastáin",
+ "countries.kh": "An Chambóid",
+ "countries.ki": "Ciribeas",
+ "countries.kn": "San Críostóir-Nimheas",
+ "countries.kr": "An Chóiré Theas",
+ "countries.kw": "Cuáit",
"countries.la": "Laos",
- "countries.lb": "Lebanon",
- "countries.lr": "Liberia",
- "countries.ly": "Libya",
+ "countries.lb": "An Liobáin",
+ "countries.lr": "An Libéir",
+ "countries.ly": "An Libia",
"countries.lc": "Saint Lucia",
- "countries.li": "Liechtenstein",
- "countries.lk": "Sri Lanka",
- "countries.ls": "Lesotho",
- "countries.lt": "Lithuania",
- "countries.lu": "Luxembourg",
- "countries.lv": "Latvia",
- "countries.ma": "Morocco",
- "countries.mc": "Monaco",
- "countries.md": "Moldova",
+ "countries.li": "Lichtinstéin",
+ "countries.lk": "Srí Lanca",
+ "countries.ls": "Leosóta",
+ "countries.lt": "An Liotuáin",
+ "countries.lu": "Lucsamburg",
+ "countries.lv": "An Laitvia",
+ "countries.ma": "Maracó",
+ "countries.mc": "Monacó",
+ "countries.md": "An Mholdóiv",
"countries.mg": "Madagascar",
- "countries.mv": "Maldives",
- "countries.mx": "Mexico",
- "countries.mh": "Marshall Islands",
- "countries.mk": "Macedonia",
- "countries.ml": "Mali",
- "countries.mt": "Malta",
- "countries.mm": "Myanmar",
- "countries.me": "Montenegro",
- "countries.mn": "Mongolia",
- "countries.mz": "Mozambique",
- "countries.mr": "Mauritania",
- "countries.mu": "Mauritius",
- "countries.mw": "Malawi",
- "countries.my": "Malaysia",
- "countries.na": "Namibia",
+ "countries.mv": "Oileáin Mhaildíve",
+ "countries.mx": "Meicsiceo",
+ "countries.mh": "Oileáin Marshall",
+ "countries.mk": "An Mhacadóin",
+ "countries.ml": "Mailí",
+ "countries.mt": "Málta",
+ "countries.mm": "Maenmar",
+ "countries.me": "Montainéagró",
+ "countries.mn": "An Mhongóil",
+ "countries.mz": "Mósaimbíc",
+ "countries.mr": "An Mháratáin",
+ "countries.mu": "Oileán Mhuirís",
+ "countries.mw": "Malávach",
+ "countries.my": "An Mhalaeisia",
+ "countries.na": "An Namaib",
"countries.ne": "Niger",
- "countries.ng": "Nigeria",
- "countries.ni": "Nicaragua",
- "countries.nl": "Netherlands",
- "countries.no": "Norway",
- "countries.np": "Nepal",
- "countries.nr": "Nauru",
- "countries.nz": "New Zealand",
- "countries.om": "Oman",
- "countries.pk": "Pakistan",
+ "countries.ng": "An Nigéir",
+ "countries.ni": "Nicearagua",
+ "countries.nl": "An Ísiltír",
+ "countries.no": "An Iorua",
+ "countries.np": "Neipeal",
+ "countries.nr": "Nárú",
+ "countries.nz": "An Nua-Shéalainn",
+ "countries.om": "Óman",
+ "countries.pk": "An Phacastáin",
"countries.pa": "Panama",
- "countries.pe": "Peru",
- "countries.ph": "Philippines",
- "countries.pw": "Palau",
- "countries.pg": "Papua New Guinea",
- "countries.pl": "Poland",
- "countries.kp": "North Korea",
- "countries.pt": "Portugal",
- "countries.py": "Paraguay",
- "countries.qa": "Qatar",
- "countries.ro": "Romania",
- "countries.ru": "Russia",
- "countries.rw": "Rwanda",
- "countries.sa": "Saudi Arabia",
- "countries.sd": "Sudan",
- "countries.sn": "Senegal",
- "countries.sg": "Singapore",
- "countries.sb": "Solomon Islands",
- "countries.sl": "Sierra Leone",
- "countries.sv": "El Salvador",
- "countries.sm": "San Marino",
- "countries.so": "Somalia",
- "countries.rs": "Serbia",
- "countries.ss": "South Sudan",
- "countries.st": "São Tomé and Príncipe",
- "countries.sr": "Suriname",
- "countries.sk": "Slovakia",
- "countries.si": "Slovenia",
- "countries.se": "Sweden",
- "countries.sz": "Swaziland",
- "countries.sc": "Seychelles",
- "countries.sy": "Syria",
- "countries.td": "Chad",
- "countries.tg": "Togo",
- "countries.th": "Thailand",
- "countries.tj": "Tajikistan",
- "countries.tm": "Turkmenistan",
- "countries.tl": "Timor-Leste",
+ "countries.pe": "Peiriú",
+ "countries.ph": "Na hOileáin Fhilipíneacha",
+ "countries.pw": "Oileáin Palau",
+ "countries.pg": "Nua-Ghuine Phapua",
+ "countries.pl": "An Pholainn",
+ "countries.kp": "An Chóiré Thuaidh",
+ "countries.pt": "An Phortaingéil",
+ "countries.py": "Paragua",
+ "countries.qa": "Catar",
+ "countries.ro": "An Rómáin",
+ "countries.ru": "An Rúis",
+ "countries.rw": "Ruanda",
+ "countries.sa": "An Araib Shádach",
+ "countries.sd": "An tSúdáin",
+ "countries.sn": "An tSeineagáil",
+ "countries.sg": "Singeapór",
+ "countries.sb": "Oileáin Sholaimh",
+ "countries.sl": "Siarra Leon",
+ "countries.sv": "An tSalvadóir",
+ "countries.sm": "San Mairíne",
+ "countries.so": "An tSomáil",
+ "countries.rs": "An tSeirbia",
+ "countries.ss": "An tSúdáin Theas",
+ "countries.st": "São Tomé agus Príncipe",
+ "countries.sr": "Suranam",
+ "countries.sk": "An tSlóvaic",
+ "countries.si": "An tSlóivéin",
+ "countries.se": "An tSualainn",
+ "countries.sz": "An tSuasalainn",
+ "countries.sc": "Na Séiséil",
+ "countries.sy": "An tSiria",
+ "countries.td": "Sead",
+ "countries.tg": "Tóga",
+ "countries.th": "An Téalainn",
+ "countries.tj": "An Táidsíceastáin",
+ "countries.tm": "An Tuircméanastáin",
+ "countries.tl": "Tíomór Thoir",
"countries.to": "Tonga",
- "countries.tt": "Trinidad and Tobago",
- "countries.tn": "Tunisia",
- "countries.tr": "Turkey",
- "countries.tv": "Tuvalu",
- "countries.tz": "Tanzania",
+ "countries.tt": "Oileán na Tríonóide agus Tobága",
+ "countries.tn": "An Túinéis",
+ "countries.tr": "An Tuirc",
+ "countries.tv": "Túvalú",
+ "countries.tz": "An Tansáin",
"countries.ug": "Uganda",
- "countries.ua": "Ukraine",
- "countries.uy": "Uruguay",
- "countries.us": "United States",
- "countries.uz": "Uzbekistan",
- "countries.va": "Vatican City",
- "countries.vc": "Saint Vincent and the Grenadines",
- "countries.ve": "Venezuela",
- "countries.vn": "Vietnam",
- "countries.vu": "Vanuatu",
- "countries.ws": "Samoa",
- "countries.ye": "Yemen",
- "countries.za": "South Africa",
- "countries.zm": "Zambia",
- "countries.zw": "Zimbabwe",
- "continents.af": "Africa",
- "continents.an": "Antarctica",
- "continents.as": "Asia",
- "continents.eu": "Europe",
- "continents.na": "North America",
- "continents.oc": "Oceania",
- "continents.sa": "South America"
+ "countries.ua": "An Úcráin",
+ "countries.uy": "Uragua",
+ "countries.us": "Na Stáit Aontaithe",
+ "countries.uz": "An Úisbéiceastáin",
+ "countries.va": "Cathair na Vatacáine",
+ "countries.vc": "San Uinseann agus na Greanáidíní",
+ "countries.ve": "Veiniséala",
+ "countries.vn": "Vítneam",
+ "countries.vu": "Vanuatú",
+ "countries.ws": "Samó",
+ "countries.ye": "Éimin",
+ "countries.za": "An Afraic Theas",
+ "countries.zm": "An tSaimbia",
+ "countries.zw": "An tSiombáib",
+ "continents.af": "An Afraic",
+ "continents.an": "Antartaice",
+ "continents.as": "An Áise",
+ "continents.eu": "An Eoraip",
+ "continents.na": "Meiriceá Thuaidh",
+ "continents.oc": "An Aigéine",
+ "continents.sa": "Meiriceá Theas"
}
diff --git a/app/config/locale/translations/hi.json b/app/config/locale/translations/hi.json
index a1ef9b7aa5..1fa7d0555a 100644
--- a/app/config/locale/translations/hi.json
+++ b/app/config/locale/translations/hi.json
@@ -1,30 +1,30 @@
{
- "settings.inspire": "\"बुद्धिमान होने की कला यह जानने की कला है कि क्या अनदेखा करना चाहिए |\"",
+ "settings.inspire": "\"बुद्धिमान होने की कला यह जानने की कला है कि क्या अनदेखा किया जाए |\"",
"settings.locale": "hi",
"settings.direction": "ltr",
"emails.sender": "%s टीम",
- "emails.verification.subject": "खाता सत्यापन",
+ "emails.verification.subject": "अकाउंट वेरिफिकेशन ",
"emails.verification.hello": "नमस्ते {{name}}",
- "emails.verification.body": "इस लिंक के माध्यम से ईमेल सत्यापित कीजिये।",
- "emails.verification.footer": "यदि आपने इस पते को सत्यापित करने के लिए नहीं कहा है, तो आप इस संदेश को नज़रअंदाज़ कर सकते हैं।",
+ "emails.verification.body": "इस लिंक के माध्यम से अपने ईमेल को सत्यापित कीजिये।",
+ "emails.verification.footer": "यदि आपने इस पते को सत्यापित नहीं करना चाहते है, तो आप इस संदेश को नज़रअंदाज़ कर सकते हैं।",
"emails.verification.thanks": "धन्यवाद",
"emails.verification.signature": "{{project}} टीम",
"emails.magicSession.subject": "लॉग इन",
"emails.magicSession.hello": "नमस्ते,",
- "emails.magicSession.body": "इस लिंक के माध्यम से लॉग इन करें।",
- "emails.magicSession.footer": "यदि आपने इस ईमेल का उपयोग करके लॉगिन करने के लिए नहीं कहा है, तो आप इस संदेश को नज़रअंदाज़ कर सकते हैं।",
+ "emails.magicSession.body": "इस लिंक के माध्यम से लॉग-इन करें।",
+ "emails.magicSession.footer": "यदि आप इस ईमेल द्वारा लॉगिन नहीं करना चाहते है, तो आप इस संदेश को नज़रअंदाज़ कर सकते हैं।",
"emails.magicSession.thanks": "धन्यवाद",
"emails.magicSession.signature": "{{project}} टीम",
"emails.recovery.subject": "पासवर्ड रीसेट",
"emails.recovery.hello": "नमस्ते {{name}}",
"emails.recovery.body": "इस लिंक के माध्यम से अपना {{project}} पासवर्ड रीसेट करें।",
- "emails.recovery.footer": "यदि आपने अपना पासवर्ड रीसेट करने के लिए नहीं कहा है, तो आप इस संदेश को नज़रअंदाज़ कर सकते हैं।",
+ "emails.recovery.footer": "यदि आप अपना पासवर्ड रिसेट नहीं करना चाहते है, तो आप इस संदेश को नज़रअंदाज़ कर सकते हैं।",
"emails.recovery.thanks": "धन्यवाद",
"emails.recovery.signature": "{{project}} टीम",
- "emails.invitation.subject": "%s टीम को %s पर आमंत्रण",
+ "emails.invitation.subject": "%s टीम का यहाँ %s पर आमंत्रण",
"emails.invitation.hello": "नमस्ते",
- "emails.invitation.body": "यह मेल आपको इसलिए भेजा गया था क्योंकि {{owner}} आपको {{team}} टीम का सदस्य बनने के लिए आमंत्रित करना चाहते थे जो {{project}} से जुड़ा है।",
- "emails.invitation.footer": "यदि यह आपके लिए आवश्यक नहीं है, तो आप इस संदेश को नज़रअंदाज़ कर सकते हैं।",
+ "emails.invitation.body": "यह मेल आपको इसलिए भेजा गया था क्योंकि {{owner}} आपको {{team}} टीम का सदस्य बनाना चाहते थे, जो {{project}} से जुड़ा हुआ है।",
+ "emails.invitation.footer": "यदि आप इसमे रूचि नहीं रखते, तो आप इस संदेश को नज़रअंदाज़ कर सकते हैं।",
"emails.invitation.thanks": "धन्यवाद",
"emails.invitation.signature": "{{project}} टीम",
"locale.country.unknown": "अज्ञात",
diff --git a/app/config/locale/translations/jv.json b/app/config/locale/translations/jv.json
index a7c658c8b4..06990dfa9f 100644
--- a/app/config/locale/translations/jv.json
+++ b/app/config/locale/translations/jv.json
@@ -3,30 +3,30 @@
"settings.locale": "jv",
"settings.direction": "ltr",
"emails.sender": "Tim %s",
- "emails.verification.subject": "",
- "emails.verification.hello": "",
- "emails.verification.body": "",
- "emails.verification.footer": "",
- "emails.verification.thanks": "",
- "emails.verification.signature": "",
- "emails.magicSession.subject": "",
- "emails.magicSession.hello": "",
- "emails.magicSession.body": "",
- "emails.magicSession.footer": "",
- "emails.magicSession.thanks": "",
- "emails.magicSession.signature": "",
- "emails.recovery.subject": "",
- "emails.recovery.hello": "",
- "emails.recovery.body": "",
- "emails.recovery.footer": "",
- "emails.recovery.thanks": "",
- "emails.recovery.signature": "",
- "emails.invitation.subject": "",
- "emails.invitation.hello": "",
- "emails.invitation.body": "",
- "emails.invitation.footer": "",
- "emails.invitation.thanks": "",
- "emails.invitation.signature": "",
+ "emails.verification.subject": "Verifikasi Akun",
+ "emails.verification.hello": "Hai {{name}}",
+ "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",
+ "emails.verification.signature": "Tim {{project}}",
+ "emails.magicSession.subject": "Masuk",
+ "emails.magicSession.hello": "Hai,",
+ "emails.magicSession.body": "Klik link iki kanggo masuk.",
+ "emails.magicSession.footer": "Yen sampeyan ora njaluk masuk nggunakake alamat email iki, sampeyan iso nglirwakake pesen iki.",
+ "emails.magicSession.thanks": "Matur nuwun",
+ "emails.magicSession.signature": "Tim {{project}}",
+ "emails.recovery.subject": "Setel ulang sandi",
+ "emails.recovery.hello": "Halo {{name}}",
+ "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",
+ "emails.recovery.signature": "Tim {{project}}",
+ "emails.invitation.subject": "Undangan ke Tim %s di %s",
+ "emails.invitation.hello": "Halo",
+ "emails.invitation.body": "Email iki dikirim menyang sampeyan amarga {{owner}} pengin ngajak sampeyan dadi anggota tim {{team}} di {{project}}.",
+ "emails.invitation.footer": "Yen sampeyan ora tertarik, sampeyan iso nglirwakake pesen iki.",
+ "emails.invitation.thanks": "Matur nuwun",
+ "emails.invitation.signature": "Tim {{project}}",
"locale.country.unknown": "Ora dingerteni",
"countries.af": "Afghanistan",
"countries.ao": "Angola",
diff --git a/app/config/locale/translations/mr.json b/app/config/locale/translations/mr.json
index 45a08f5f7e..1b3adfe061 100644
--- a/app/config/locale/translations/mr.json
+++ b/app/config/locale/translations/mr.json
@@ -3,30 +3,30 @@
"settings.locale": "mr",
"settings.direction": "ltr",
"emails.sender": "%s टीम",
- "emails.verification.subject": "",
- "emails.verification.hello": "",
- "emails.verification.body": "",
- "emails.verification.footer": "",
- "emails.verification.thanks": "",
- "emails.verification.signature": "",
- "emails.magicSession.subject": "",
- "emails.magicSession.hello": "",
- "emails.magicSession.body": "",
- "emails.magicSession.footer": "",
- "emails.magicSession.thanks": "",
- "emails.magicSession.signature": "",
- "emails.recovery.subject": "",
- "emails.recovery.hello": "",
- "emails.recovery.body": "",
- "emails.recovery.footer": "",
- "emails.recovery.thanks": "",
- "emails.recovery.signature": "",
- "emails.invitation.subject": "",
- "emails.invitation.hello": "",
- "emails.invitation.body": "",
- "emails.invitation.footer": "",
- "emails.invitation.thanks": "",
- "emails.invitation.signature": "",
+ "emails.verification.subject": "खाते सत्यापन",
+ "emails.verification.hello": "नमस्कार {{name}}",
+ "emails.verification.body": "आपला ईमेल पत्ता सत्यापित करण्यासाठी या दुव्याचे अनुसरण करा.",
+ "emails.verification.footer": "आपण या पत्त्याची पडताळणी करण्यास सांगितले नसल्यास, आपण या संदेशाकडे दुर्लक्ष करू शकता.",
+ "emails.verification.thanks": "धन्यवाद",
+ "emails.verification.signature": "{{project}} संघ",
+ "emails.magicSession.subject": "लॉगिन करा",
+ "emails.magicSession.hello": "नमस्कार ,",
+ "emails.magicSession.body": "लॉगिन करण्यासाठी या लिंकचे अनुसरण करा.",
+ "emails.magicSession.footer": "आपण या ईमेलचा वापर करून लॉगिन करण्यास सांगितले नसल्यास, आपण या संदेशाकडे दुर्लक्ष करू शकता.",
+ "emails.magicSession.thanks": "धन्यवाद",
+ "emails.magicSession.signature": "{{project}} संघ",
+ "emails.recovery.subject": "पासवर्ड रीसेट",
+ "emails.recovery.hello": "नमस्कार {{name}}",
+ "emails.recovery.body": "आपला {{project}}चे पासवर्ड रीसेट करण्यासाठी या लिंकचे अनुसरण करा",
+ "emails.recovery.footer": "आपण आपला पासवर्ड रीसेट करण्यास सांगितले नसल्यास, आपण या संदेशाकडे दुर्लक्ष करू शकता.",
+ "emails.recovery.thanks": "धन्यवाद",
+ "emails.recovery.signature": "{{project}} संघ",
+ "emails.invitation.subject": "%s संघ %s येथे सामील होण्यासाठी आमंत्रण",
+ "emails.invitation.hello": "नमस्कार",
+ "emails.invitation.body": "हा मेल तुम्हाला पाठवला होता कारण {{owner}} तुम्हाला {{project}} येथे {{team}} टीमचे सदस्य होण्यासाठी आमंत्रित करू इच्छित होते.",
+ "emails.invitation.footer": "आपल्याला स्वारस्य नसल्यास, आपण या संदेशाकडे दुर्लक्ष करू शकता.",
+ "emails.invitation.thanks": "धन्यवाद",
+ "emails.invitation.signature": "{{project}} संघ",
"locale.country.unknown": "अज्ञात",
"countries.af": "अफगानिस्तान",
"countries.ao": "अंगोला",
diff --git a/app/config/platforms.php b/app/config/platforms.php
index 16f6cf42ba..f97d598086 100644
--- a/app/config/platforms.php
+++ b/app/config/platforms.php
@@ -15,7 +15,7 @@ return [
[
'key' => 'web',
'name' => 'Web',
- 'version' => '4.0.4',
+ 'version' => '5.0.0',
'url' => 'https://github.com/appwrite/sdk-for-web',
'package' => 'https://www.npmjs.com/package/appwrite',
'enabled' => true,
@@ -81,7 +81,7 @@ return [
[
'key' => 'apple',
'name' => 'Apple',
- 'version' => '0.1.0',
+ 'version' => '0.1.1',
'url' => 'https://github.com/appwrite/sdk-for-apple',
'package' => 'https://github.com/appwrite/sdk-for-apple',
'enabled' => true,
@@ -190,7 +190,7 @@ return [
[
'key' => 'nodejs',
'name' => 'Node.js',
- 'version' => '2.5.1',
+ 'version' => '3.0.0',
'url' => 'https://github.com/appwrite/sdk-for-node',
'package' => 'https://www.npmjs.com/package/node-appwrite',
'enabled' => true,
@@ -208,11 +208,11 @@ return [
[
'key' => 'deno',
'name' => 'Deno',
- 'version' => '0.4.1',
+ 'version' => '1.0.0',
'url' => 'https://github.com/appwrite/sdk-for-deno',
'package' => 'https://deno.land/x/appwrite',
'enabled' => true,
- 'beta' => true,
+ 'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_PLATFORM_SERVER,
diff --git a/app/controllers/api/health.php b/app/controllers/api/health.php
index 5a1718c9cc..0b8e91b3b5 100644
--- a/app/controllers/api/health.php
+++ b/app/controllers/api/health.php
@@ -46,9 +46,20 @@ App::get('/v1/health/db')
->action(function ($response, $utopia) {
/** @var Appwrite\Utopia\Response $response */
/** @var Utopia\App $utopia */
- $utopia->getResource('db');
+ try {
+ $db = $utopia->getResource('db'); /* @var $db PDO */
- $response->json(['status' => 'OK']);
+ // Run a small test to check the connection
+ $statement = $db->prepare("SELECT 1;");
+
+ $statement->closeCursor();
+
+ $statement->execute();
+ } catch (Exception $_e) {
+ throw new Exception('Database is not available', 500);
+ }
+
+ return $response->json(['status' => 'OK']);
});
App::get('/v1/health/cache')
@@ -64,9 +75,14 @@ App::get('/v1/health/cache')
->action(function ($response, $utopia) {
/** @var Appwrite\Utopia\Response $response */
/** @var Utopia\App $utopia */
- $utopia->getResource('cache');
+ /** @var Redis */
+ $redis = $utopia->getResource('cache');
- $response->json(['status' => 'OK']);
+ if ($redis->ping(true)) {
+ return $response->json(['status' => 'OK']);
+ } else {
+ throw new Exception('Cache is not available', 500);
+ }
});
App::get('/v1/health/time')
diff --git a/app/controllers/mock.php b/app/controllers/mock.php
index d4076547e0..ffffff1ad6 100644
--- a/app/controllers/mock.php
+++ b/app/controllers/mock.php
@@ -234,29 +234,74 @@ App::post('/v1/mock/tests/general/upload')
->param('z', null, new ArrayList(new Text(256)), 'Sample array param')
->param('file', [], new File(), 'Sample file param', false)
->inject('request')
- ->action(function ($x, $y, $z, $file, $request) {
+ ->inject('response')
+ ->action(function ($x, $y, $z, $file, $request, $response) {
/** @var Utopia\Swoole\Request $request */
+ /** @var Utopia\Swoole\Response $response */
$file = $request->getFiles('file');
- $file['tmp_name'] = (\is_array($file['tmp_name'])) ? $file['tmp_name'] : [$file['tmp_name']];
- $file['name'] = (\is_array($file['name'])) ? $file['name'] : [$file['name']];
- $file['size'] = (\is_array($file['size'])) ? $file['size'] : [$file['size']];
+
+ $contentRange = $request->getHeader('content-range');
+ if(!empty($contentRange)) {
+ $start = $request->getContentRangeStart();
+ $end = $request->getContentRangeEnd();
+ $size = $request->getContentRangeSize();
+ $id = $request->getHeader('x-appwrite-id', '');
+ $file['size'] = (\is_array($file['size'])) ? $file['size'] : [$file['size']];
- foreach ($file['name'] as $i => $name) {
- if ($name !== 'file.png') {
- throw new Exception('Wrong file name', 400);
+ if(is_null($start) || is_null($end) || is_null($size)) {
+ throw new Exception('Invalid content-range header', 400);
}
- }
- foreach ($file['size'] as $i => $size) {
- if ($size !== 38756) {
- throw new Exception('Wrong file size', 400);
+ if($start > $end || $end > $size) {
+ throw new Exception('Invalid content-range header', 400);
}
- }
- foreach ($file['tmp_name'] as $i => $tmpName) {
- if (\md5(\file_get_contents($tmpName)) !== 'd80e7e6999a3eb2ae0d631a96fe135a4') {
- throw new Exception('Wrong file uploaded', 400);
+ if($start === 0 && !empty($id)) {
+ throw new Exception('First chunked request cannot have id header', 400);
+ }
+
+ if($start !== 0 && $id !== 'newfileid') {
+ throw new Exception('All chunked request must have id header (except first)', 400);
+ }
+
+ if($end !== $size && $end-$start+1 !== 5*1024*1024) {
+ throw new Exception('Chunk size must be 5MB (except last chunk)', 400);
+ }
+
+ foreach ($file['size'] as $i => $sz) {
+ if ($end !== $size && $sz !== 5*1024*1024) {
+ throw new Exception('Wrong chunk size', 400);
+ }
+
+ if($sz > 5*1024*1024) {
+ throw new Exception('Chunk size must be 5MB or less', 400);
+ }
+ }
+ if($end !== $size) {
+ $response->json(['$id'=> 'newfileid']);
+ }
+ } else {
+ $file['tmp_name'] = (\is_array($file['tmp_name'])) ? $file['tmp_name'] : [$file['tmp_name']];
+ $file['name'] = (\is_array($file['name'])) ? $file['name'] : [$file['name']];
+ $file['size'] = (\is_array($file['size'])) ? $file['size'] : [$file['size']];
+
+ foreach ($file['name'] as $i => $name) {
+ if ($name !== 'file.png') {
+ throw new Exception('Wrong file name', 400);
+ }
+ }
+
+ foreach ($file['size'] as $i => $size) {
+ if ($size !== 38756) {
+ throw new Exception('Wrong file size', 400);
+ }
+ }
+
+ foreach ($file['tmp_name'] as $i => $tmpName) {
+ if (\md5(\file_get_contents($tmpName)) !== 'd80e7e6999a3eb2ae0d631a96fe135a4') {
+ throw new Exception('Wrong file uploaded', 400);
+ }
}
}
});
diff --git a/composer.json b/composer.json
index 304cc03264..40542d8e6e 100644
--- a/composer.json
+++ b/composer.json
@@ -64,7 +64,7 @@
"slickdeals/statsd": "3.1.0"
},
"require-dev": {
- "appwrite/sdk-generator": "dev-feat-swift-templates",
+ "appwrite/sdk-generator": "0.16.2",
"phpunit/phpunit": "9.5.6",
"swoole/ide-helper": "4.6.7",
"textalk/websocket": "1.5.2",
diff --git a/composer.lock b/composer.lock
index 45d1525e8f..bd4240a995 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "6658bcb6a570300242ac1d227052f1bf",
+ "content-hash": "a3aad9d7aba75e837b4c6e242c7a91a3",
"packages": [
{
"name": "adhocore/jwt",
@@ -115,16 +115,16 @@
},
{
"name": "appwrite/php-runtimes",
- "version": "0.6.0",
+ "version": "0.6.1",
"source": {
"type": "git",
"url": "https://github.com/appwrite/php-runtimes.git",
- "reference": "b4ca9786e6012c99db30baa752b55d935294ac5c"
+ "reference": "a42434de2fbd60818244c1a9b2ac0429ad0ef9ee"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/appwrite/php-runtimes/zipball/b4ca9786e6012c99db30baa752b55d935294ac5c",
- "reference": "b4ca9786e6012c99db30baa752b55d935294ac5c",
+ "url": "https://api.github.com/repos/appwrite/php-runtimes/zipball/a42434de2fbd60818244c1a9b2ac0429ad0ef9ee",
+ "reference": "a42434de2fbd60818244c1a9b2ac0429ad0ef9ee",
"shasum": ""
},
"require": {
@@ -164,9 +164,9 @@
],
"support": {
"issues": "https://github.com/appwrite/php-runtimes/issues",
- "source": "https://github.com/appwrite/php-runtimes/tree/0.6.0"
+ "source": "https://github.com/appwrite/php-runtimes/tree/0.6.1"
},
- "time": "2021-10-06T13:26:31+00:00"
+ "time": "2021-10-21T11:32:25+00:00"
},
{
"name": "chillerlan/php-qrcode",
@@ -416,24 +416,25 @@
},
{
"name": "guzzlehttp/guzzle",
- "version": "7.3.0",
+ "version": "7.4.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
- "reference": "7008573787b430c1c1f650e3722d9bba59967628"
+ "reference": "868b3571a039f0ebc11ac8f344f4080babe2cb94"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7008573787b430c1c1f650e3722d9bba59967628",
- "reference": "7008573787b430c1c1f650e3722d9bba59967628",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/868b3571a039f0ebc11ac8f344f4080babe2cb94",
+ "reference": "868b3571a039f0ebc11ac8f344f4080babe2cb94",
"shasum": ""
},
"require": {
"ext-json": "*",
- "guzzlehttp/promises": "^1.4",
- "guzzlehttp/psr7": "^1.7 || ^2.0",
+ "guzzlehttp/promises": "^1.5",
+ "guzzlehttp/psr7": "^1.8.3 || ^2.1",
"php": "^7.2.5 || ^8.0",
- "psr/http-client": "^1.0"
+ "psr/http-client": "^1.0",
+ "symfony/deprecation-contracts": "^2.2"
},
"provide": {
"psr/http-client-implementation": "1.0"
@@ -443,7 +444,7 @@
"ext-curl": "*",
"php-http/client-integration-tests": "^3.0",
"phpunit/phpunit": "^8.5.5 || ^9.3.5",
- "psr/log": "^1.1"
+ "psr/log": "^1.1 || ^2.0 || ^3.0"
},
"suggest": {
"ext-curl": "Required for CURL handler support",
@@ -453,7 +454,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "7.3-dev"
+ "dev-master": "7.4-dev"
}
},
"autoload": {
@@ -469,19 +470,43 @@
"MIT"
],
"authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
},
+ {
+ "name": "Jeremy Lindblom",
+ "email": "jeremeamia@gmail.com",
+ "homepage": "https://github.com/jeremeamia"
+ },
+ {
+ "name": "George Mponos",
+ "email": "gmponos@gmail.com",
+ "homepage": "https://github.com/gmponos"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
{
"name": "Márk Sági-Kazár",
"email": "mark.sagikazar@gmail.com",
- "homepage": "https://sagikazarmark.hu"
+ "homepage": "https://github.com/sagikazarmark"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
}
],
"description": "Guzzle is a PHP HTTP client library",
- "homepage": "http://guzzlephp.org/",
"keywords": [
"client",
"curl",
@@ -495,7 +520,7 @@
],
"support": {
"issues": "https://github.com/guzzle/guzzle/issues",
- "source": "https://github.com/guzzle/guzzle/tree/7.3.0"
+ "source": "https://github.com/guzzle/guzzle/tree/7.4.0"
},
"funding": [
{
@@ -507,28 +532,24 @@
"type": "github"
},
{
- "url": "https://github.com/alexeyshockov",
- "type": "github"
- },
- {
- "url": "https://github.com/gmponos",
- "type": "github"
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle",
+ "type": "tidelift"
}
],
- "time": "2021-03-23T11:33:13+00:00"
+ "time": "2021-10-18T09:52:00+00:00"
},
{
"name": "guzzlehttp/promises",
- "version": "1.5.0",
+ "version": "1.5.1",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
- "reference": "136a635e2b4a49b9d79e9c8fee267ffb257fdba0"
+ "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/promises/zipball/136a635e2b4a49b9d79e9c8fee267ffb257fdba0",
- "reference": "136a635e2b4a49b9d79e9c8fee267ffb257fdba0",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/fe752aedc9fd8fcca3fe7ad05d419d32998a06da",
+ "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da",
"shasum": ""
},
"require": {
@@ -583,7 +604,7 @@
],
"support": {
"issues": "https://github.com/guzzle/promises/issues",
- "source": "https://github.com/guzzle/promises/tree/1.5.0"
+ "source": "https://github.com/guzzle/promises/tree/1.5.1"
},
"funding": [
{
@@ -599,7 +620,7 @@
"type": "tidelift"
}
],
- "time": "2021-10-07T13:05:22+00:00"
+ "time": "2021-10-22T20:56:57+00:00"
},
{
"name": "guzzlehttp/psr7",
@@ -1372,6 +1393,73 @@
},
"time": "2021-06-04T20:33:46+00:00"
},
+ {
+ "name": "symfony/deprecation-contracts",
+ "version": "v2.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/deprecation-contracts.git",
+ "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627",
+ "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.4-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "files": [
+ "function.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "A generic function and convention to trigger deprecation notices",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v2.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-03-23T23:28:01+00:00"
+ },
{
"name": "symfony/polyfill-ctype",
"version": "v1.23.0",
@@ -1871,20 +1959,19 @@
},
{
"name": "utopia-php/image",
- "version": "0.5.2",
+ "version": "0.5.3",
"source": {
"type": "git",
"url": "https://github.com/utopia-php/image.git",
- "reference": "049446fea7cb53db8a431455ec382e30e6d1482a"
+ "reference": "4a8429b62dcf56562b038d6712375f75166f0c02"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/utopia-php/image/zipball/049446fea7cb53db8a431455ec382e30e6d1482a",
- "reference": "049446fea7cb53db8a431455ec382e30e6d1482a",
+ "url": "https://api.github.com/repos/utopia-php/image/zipball/4a8429b62dcf56562b038d6712375f75166f0c02",
+ "reference": "4a8429b62dcf56562b038d6712375f75166f0c02",
"shasum": ""
},
"require": {
- "chillerlan/php-qrcode": "4.3.1",
"ext-imagick": "*",
"php": ">=7.4"
},
@@ -1918,9 +2005,9 @@
],
"support": {
"issues": "https://github.com/utopia-php/image/issues",
- "source": "https://github.com/utopia-php/image/tree/0.5.2"
+ "source": "https://github.com/utopia-php/image/tree/0.5.3"
},
- "time": "2021-10-18T06:41:05+00:00"
+ "time": "2021-11-02T05:47:16+00:00"
},
{
"name": "utopia-php/locale",
@@ -2582,16 +2669,16 @@
},
{
"name": "appwrite/sdk-generator",
- "version": "dev-feat-swift-templates",
+ "version": "0.16.2",
"source": {
"type": "git",
"url": "https://github.com/appwrite/sdk-generator.git",
- "reference": "0fe34f984cded746a13b4c5dacb6c008f72d6897"
+ "reference": "e3a20c96a745a9c4aa048fd344650fcfbf41cf6f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/0fe34f984cded746a13b4c5dacb6c008f72d6897",
- "reference": "0fe34f984cded746a13b4c5dacb6c008f72d6897",
+ "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/e3a20c96a745a9c4aa048fd344650fcfbf41cf6f",
+ "reference": "e3a20c96a745a9c4aa048fd344650fcfbf41cf6f",
"shasum": ""
},
"require": {
@@ -2625,9 +2712,9 @@
"description": "Appwrite PHP library for generating API SDKs for multiple programming languages and platforms",
"support": {
"issues": "https://github.com/appwrite/sdk-generator/issues",
- "source": "https://github.com/appwrite/sdk-generator/tree/feat-swift-templates"
+ "source": "https://github.com/appwrite/sdk-generator/tree/0.16.2"
},
- "time": "2021-10-18T08:23:10+00:00"
+ "time": "2021-11-12T11:09:38+00:00"
},
{
"name": "composer/package-versions-deprecated",
@@ -2704,16 +2791,16 @@
},
{
"name": "composer/semver",
- "version": "3.2.5",
+ "version": "3.2.6",
"source": {
"type": "git",
"url": "https://github.com/composer/semver.git",
- "reference": "31f3ea725711245195f62e54ffa402d8ef2fdba9"
+ "reference": "83e511e247de329283478496f7a1e114c9517506"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/semver/zipball/31f3ea725711245195f62e54ffa402d8ef2fdba9",
- "reference": "31f3ea725711245195f62e54ffa402d8ef2fdba9",
+ "url": "https://api.github.com/repos/composer/semver/zipball/83e511e247de329283478496f7a1e114c9517506",
+ "reference": "83e511e247de329283478496f7a1e114c9517506",
"shasum": ""
},
"require": {
@@ -2765,7 +2852,7 @@
"support": {
"irc": "irc://irc.freenode.org/composer",
"issues": "https://github.com/composer/semver/issues",
- "source": "https://github.com/composer/semver/tree/3.2.5"
+ "source": "https://github.com/composer/semver/tree/3.2.6"
},
"funding": [
{
@@ -2781,7 +2868,7 @@
"type": "tidelift"
}
],
- "time": "2021-05-24T12:41:47+00:00"
+ "time": "2021-10-25T11:34:17+00:00"
},
{
"name": "composer/xdebug-handler",
@@ -3296,16 +3383,16 @@
},
{
"name": "nikic/php-parser",
- "version": "v4.13.0",
+ "version": "v4.13.1",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "50953a2691a922aa1769461637869a0a2faa3f53"
+ "reference": "63a79e8daa781cac14e5195e63ed8ae231dd10fd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/50953a2691a922aa1769461637869a0a2faa3f53",
- "reference": "50953a2691a922aa1769461637869a0a2faa3f53",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/63a79e8daa781cac14e5195e63ed8ae231dd10fd",
+ "reference": "63a79e8daa781cac14e5195e63ed8ae231dd10fd",
"shasum": ""
},
"require": {
@@ -3346,9 +3433,9 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v4.13.0"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v4.13.1"
},
- "time": "2021-09-20T12:20:58+00:00"
+ "time": "2021-11-03T20:52:16+00:00"
},
{
"name": "openlss/lib-array2xml",
@@ -3569,16 +3656,16 @@
},
{
"name": "phpdocumentor/reflection-docblock",
- "version": "5.2.2",
+ "version": "5.3.0",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556"
+ "reference": "622548b623e81ca6d78b721c5e029f4ce664f170"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556",
- "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170",
+ "reference": "622548b623e81ca6d78b721c5e029f4ce664f170",
"shasum": ""
},
"require": {
@@ -3589,7 +3676,8 @@
"webmozart/assert": "^1.9.1"
},
"require-dev": {
- "mockery/mockery": "~1.3.2"
+ "mockery/mockery": "~1.3.2",
+ "psalm/phar": "^4.8"
},
"type": "library",
"extra": {
@@ -3619,9 +3707,9 @@
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
"support": {
"issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
- "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master"
+ "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0"
},
- "time": "2020-09-03T19:13:55+00:00"
+ "time": "2021-10-19T17:43:47+00:00"
},
{
"name": "phpdocumentor/type-resolver",
@@ -3742,23 +3830,23 @@
},
{
"name": "phpunit/php-code-coverage",
- "version": "9.2.7",
+ "version": "9.2.8",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "d4c798ed8d51506800b441f7a13ecb0f76f12218"
+ "reference": "cf04e88a2e3c56fc1a65488afd493325b4c1bc3e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/d4c798ed8d51506800b441f7a13ecb0f76f12218",
- "reference": "d4c798ed8d51506800b441f7a13ecb0f76f12218",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/cf04e88a2e3c56fc1a65488afd493325b4c1bc3e",
+ "reference": "cf04e88a2e3c56fc1a65488afd493325b4c1bc3e",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-libxml": "*",
"ext-xmlwriter": "*",
- "nikic/php-parser": "^4.12.0",
+ "nikic/php-parser": "^4.13.0",
"php": ">=7.3",
"phpunit/php-file-iterator": "^3.0.3",
"phpunit/php-text-template": "^2.0.2",
@@ -3807,7 +3895,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.7"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.8"
},
"funding": [
{
@@ -3815,7 +3903,7 @@
"type": "github"
}
],
- "time": "2021-09-17T05:39:03+00:00"
+ "time": "2021-10-30T08:01:38+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -4163,20 +4251,20 @@
},
{
"name": "psr/container",
- "version": "1.1.1",
+ "version": "1.1.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/container.git",
- "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf"
+ "reference": "513e0666f7216c7459170d56df27dfcefe1689ea"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf",
- "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea",
+ "reference": "513e0666f7216c7459170d56df27dfcefe1689ea",
"shasum": ""
},
"require": {
- "php": ">=7.2.0"
+ "php": ">=7.4.0"
},
"type": "library",
"autoload": {
@@ -4205,9 +4293,9 @@
],
"support": {
"issues": "https://github.com/php-fig/container/issues",
- "source": "https://github.com/php-fig/container/tree/1.1.1"
+ "source": "https://github.com/php-fig/container/tree/1.1.2"
},
- "time": "2021-03-05T17:36:06+00:00"
+ "time": "2021-11-05T16:50:12+00:00"
},
{
"name": "sebastian/cli-parser",
@@ -4638,16 +4726,16 @@
},
{
"name": "sebastian/exporter",
- "version": "4.0.3",
+ "version": "4.0.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65"
+ "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/d89cc98761b8cb5a1a235a6b703ae50d34080e65",
- "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/65e8b7db476c5dd267e65eea9cab77584d3cfff9",
+ "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9",
"shasum": ""
},
"require": {
@@ -4696,14 +4784,14 @@
}
],
"description": "Provides the functionality to export PHP variables for visualization",
- "homepage": "http://www.github.com/sebastianbergmann/exporter",
+ "homepage": "https://www.github.com/sebastianbergmann/exporter",
"keywords": [
"export",
"exporter"
],
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
- "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.3"
+ "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.4"
},
"funding": [
{
@@ -4711,7 +4799,7 @@
"type": "github"
}
],
- "time": "2020-09-28T05:24:23+00:00"
+ "time": "2021-11-11T14:18:36+00:00"
},
{
"name": "sebastian/global-state",
@@ -5062,7 +5150,6 @@
"type": "github"
}
],
- "abandoned": true,
"time": "2020-09-28T06:45:17+00:00"
},
{
@@ -5228,16 +5315,16 @@
},
{
"name": "symfony/console",
- "version": "v5.3.7",
+ "version": "v5.3.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "8b1008344647462ae6ec57559da166c2bfa5e16a"
+ "reference": "d4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/8b1008344647462ae6ec57559da166c2bfa5e16a",
- "reference": "8b1008344647462ae6ec57559da166c2bfa5e16a",
+ "url": "https://api.github.com/repos/symfony/console/zipball/d4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3",
+ "reference": "d4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3",
"shasum": ""
},
"require": {
@@ -5307,7 +5394,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v5.3.7"
+ "source": "https://github.com/symfony/console/tree/v5.3.10"
},
"funding": [
{
@@ -5323,74 +5410,7 @@
"type": "tidelift"
}
],
- "time": "2021-08-25T20:02:16+00:00"
- },
- {
- "name": "symfony/deprecation-contracts",
- "version": "v2.4.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627",
- "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "2.4-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
- }
- },
- "autoload": {
- "files": [
- "function.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "A generic function and convention to trigger deprecation notices",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v2.4.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2021-03-23T23:28:01+00:00"
+ "time": "2021-10-26T09:30:15+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
@@ -5880,16 +5900,16 @@
},
{
"name": "symfony/string",
- "version": "v5.3.7",
+ "version": "v5.3.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "8d224396e28d30f81969f083a58763b8b9ceb0a5"
+ "reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/8d224396e28d30f81969f083a58763b8b9ceb0a5",
- "reference": "8d224396e28d30f81969f083a58763b8b9ceb0a5",
+ "url": "https://api.github.com/repos/symfony/string/zipball/d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c",
+ "reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c",
"shasum": ""
},
"require": {
@@ -5943,7 +5963,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v5.3.7"
+ "source": "https://github.com/symfony/string/tree/v5.3.10"
},
"funding": [
{
@@ -5959,7 +5979,7 @@
"type": "tidelift"
}
],
- "time": "2021-08-26T08:00:08+00:00"
+ "time": "2021-10-27T18:21:46+00:00"
},
{
"name": "textalk/websocket",
@@ -6292,14 +6312,13 @@
"issues": "https://github.com/webmozart/path-util/issues",
"source": "https://github.com/webmozart/path-util/tree/2.3.0"
},
+ "abandoned": "symfony/filesystem",
"time": "2015-12-17T08:42:14+00:00"
}
],
"aliases": [],
"minimum-stability": "stable",
- "stability-flags": {
- "appwrite/sdk-generator": 20
- },
+ "stability-flags": [],
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
@@ -6321,5 +6340,5 @@
"platform-overrides": {
"php": "8.0"
},
- "plugin-api-version": "2.0.0"
+ "plugin-api-version": "2.1.0"
}
diff --git a/docker-compose.yml b/docker-compose.yml
index 08a1b9b3e9..39d4bf89bb 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -463,7 +463,7 @@ services:
# - SMARTHOST_PORT=587
redis:
- image: redis:6.0-alpine
+ image: redis:6.2-alpine
container_name: appwrite-redis
networks:
- appwrite
@@ -479,7 +479,7 @@ services:
# - appwrite-uploads:/storage/uploads
influxdb:
- image: appwrite/influxdb:1.0.0
+ image: appwrite/influxdb:1.4.0
container_name: appwrite-influxdb
networks:
- appwrite
@@ -487,7 +487,7 @@ services:
- appwrite-influxdb:/var/lib/influxdb:rw
telegraf:
- image: appwrite/telegraf:1.2.0
+ image: appwrite/telegraf:1.3.0
container_name: appwrite-telegraf
networks:
- appwrite
diff --git a/docs/sdks/deno/GETTING_STARTED.md b/docs/sdks/deno/GETTING_STARTED.md
index 5fae9f634b..65930a3e07 100644
--- a/docs/sdks/deno/GETTING_STARTED.md
+++ b/docs/sdks/deno/GETTING_STARTED.md
@@ -12,7 +12,6 @@ client
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
.setSelfSigned() // Use only on dev mode with a self-signed SSL cert
;
-
```
### Make your first request
@@ -22,13 +21,8 @@ Once your SDK object is set, create any of the Appwrite service objects and choo
```typescript
let users = new sdk.Users(client);
-let promise = users.create('email@example.com', 'password');
-
-promise.then(function (response) {
- console.log(response);
-}, function (error) {
- console.log(error);
-});
+let response = await users.create('email@example.com', 'password');
+console.log(response);
```
### Full Example
@@ -45,13 +39,8 @@ client
.setSelfSigned() // Use only on dev mode with a self-signed SSL cert
;
-let promise = users.create('email@example.com', 'password');
-
-promise.then(function (response) {
- console.log(response);
-}, function (error) {
- console.log(error);
-});
+let response = await users.create('email@example.com', 'password');
+console.log(response);
```
### Error Handling
@@ -61,7 +50,7 @@ The Appwrite Deno SDK raises `AppwriteException` object with `message`, `code` a
let users = new sdk.Users(client);
try {
- let res = await users.create('email@example.com', 'password');
+ let response = await users.create('email@example.com', 'password');
} catch(e) {
console.log(e.message);
}
diff --git a/docs/sdks/flutter/GETTING_STARTED.md b/docs/sdks/flutter/GETTING_STARTED.md
index 28899ff18d..8ed1e19923 100644
--- a/docs/sdks/flutter/GETTING_STARTED.md
+++ b/docs/sdks/flutter/GETTING_STARTED.md
@@ -58,14 +58,16 @@ For **Windows** add your app name and package name, Your package n
```dart
import 'package:appwrite/appwrite.dart';
-Client client = Client();
+void main() {
+ Client client = Client();
-client
- .setEndpoint('https://localhost/v1') // Your Appwrite Endpoint
- .setProject('5e8cf4f46b5e8') // Your project ID
- .setSelfSigned() // Use only on dev mode with a self-signed SSL cert
-;
+ client
+ .setEndpoint('https://localhost/v1') // Your Appwrite Endpoint
+ .setProject('5e8cf4f46b5e8') // Your project ID
+ .setSelfSigned() // Use only on dev mode with a self-signed SSL cert
+ ;
+}
```
Before starting to send any API calls to your new Appwrite instance, make sure your Android or iOS emulators has network access to the Appwrite server hostname or IP address.
@@ -91,25 +93,28 @@ Response user = await account
```dart
import 'package:appwrite/appwrite.dart';
-Client client = Client();
+
+void main() {
+ Client client = Client();
-client
- .setEndpoint('https://localhost/v1') // Your Appwrite Endpoint
- .setProject('5e8cf4f46b5e8') // Your project ID
- .setSelfSigned() // Use only on dev mode with a self-signed SSL cert
- ;
+ client
+ .setEndpoint('https://localhost/v1') // Your Appwrite Endpoint
+ .setProject('5e8cf4f46b5e8') // Your project ID
+ .setSelfSigned() // Use only on dev mode with a self-signed SSL cert
+ ;
-// Register User
-Account account = Account(client);
+ // Register User
+ Account account = Account(client);
-Response user = await account
- .create(
- email: 'me@appwrite.io',
- password: 'password',
- name: 'My Name'
- );
+ Response user = await account
+ .create(
+ email: 'me@appwrite.io',
+ password: 'password',
+ name: 'My Name'
+ );
+}
```
### Error Handling
diff --git a/public/images/logo.png b/public/images/logo.png
index 3b7ec29c62..1f2cf818cf 100644
Binary files a/public/images/logo.png and b/public/images/logo.png differ
diff --git a/public/styles/themes.less b/public/styles/themes.less
index 9361037de1..868cc02243 100644
--- a/public/styles/themes.less
+++ b/public/styles/themes.less
@@ -5,6 +5,7 @@
--config-width-large: 700px;
--config-width-medium: 550px;
--config-width-small: 320px;
+ --config-color-primary: #f02e65;
--config-color-link: #1e849e;
--config-color-background: #eceff1;
--config-color-background-dark: #dfe2e4;
@@ -92,6 +93,7 @@
--config-console-nav-switch-arrow: url("data:image/svg+xml;utf8,");
.theme-dark {
+ --config-color-primary: #f02e65;
--config-color-background: #061F2F;
--config-color-background-dark: #262d50;
--config-color-background-fade: #1c223a;
diff --git a/src/Appwrite/Extend/PDO.php b/src/Appwrite/Extend/PDO.php
index 72f9f37ac3..6d54bcf3f0 100644
--- a/src/Appwrite/Extend/PDO.php
+++ b/src/Appwrite/Extend/PDO.php
@@ -49,7 +49,7 @@ class PDO extends PDONative
return $this->pdo->setAttribute($attribute, $value);
}
- public function prepare($statement, $driver_options = NULL)
+ public function prepare($statement, $driver_options = null)
{
return new PDOStatement($this, $this->pdo->prepare($statement, []));
}
@@ -71,4 +71,4 @@ class PDO extends PDONative
return $this->pdo;
}
-}
\ No newline at end of file
+}
diff --git a/src/Appwrite/Extend/PDOStatement.php b/src/Appwrite/Extend/PDOStatement.php
index c1a60f6a3a..3dc7a4aa1d 100644
--- a/src/Appwrite/Extend/PDOStatement.php
+++ b/src/Appwrite/Extend/PDOStatement.php
@@ -100,10 +100,10 @@ class PDOStatement extends PDOStatementNative
/**
* Fetch All
- *
+ *
* @param int $fetch_style
* @param mixed $fetch_args
- *
+ *
* @return array|false
*/
public function fetchAll(int $fetch_style = PDO::FETCH_BOTH, mixed ...$fetch_args)
@@ -112,4 +112,4 @@ class PDOStatement extends PDOStatementNative
return $result;
}
-}
\ No newline at end of file
+}
diff --git a/src/Appwrite/OpenSSL/OpenSSL.php b/src/Appwrite/OpenSSL/OpenSSL.php
index aa641ec839..1965a3c858 100644
--- a/src/Appwrite/OpenSSL/OpenSSL.php
+++ b/src/Appwrite/OpenSSL/OpenSSL.php
@@ -4,7 +4,7 @@ namespace Appwrite\OpenSSL;
class OpenSSL
{
- const CIPHER_AES_128_GCM = 'aes-128-gcm';
+ public const CIPHER_AES_128_GCM = 'aes-128-gcm';
/**
* @param $data
diff --git a/src/Appwrite/Utopia/Response.php b/src/Appwrite/Utopia/Response.php
index 6a9f62cc4c..4f561de342 100644
--- a/src/Appwrite/Utopia/Response.php
+++ b/src/Appwrite/Utopia/Response.php
@@ -22,6 +22,7 @@ use Appwrite\Utopia\Response\Model\ErrorDev;
use Appwrite\Utopia\Response\Model\Execution;
use Appwrite\Utopia\Response\Model\File;
use Appwrite\Utopia\Response\Model\Func;
+use Appwrite\Utopia\Response\Model\FuncPermissions;
use Appwrite\Utopia\Response\Model\JWT;
use Appwrite\Utopia\Response\Model\Key;
use Appwrite\Utopia\Response\Model\Language;
@@ -106,6 +107,7 @@ class Response extends SwooleResponse
const MODEL_TAG_LIST = 'tagList';
const MODEL_EXECUTION = 'execution';
const MODEL_EXECUTION_LIST = 'executionList';
+ const MODEL_FUNC_PERMISSIONS = 'funcPermissions';
// Project
const MODEL_PROJECT = 'project';
@@ -186,6 +188,7 @@ class Response extends SwooleResponse
->setModel(new Team())
->setModel(new Membership())
->setModel(new Func())
+ ->setModel(new FuncPermissions())
->setModel(new Tag())
->setModel(new Execution())
->setModel(new Project())
diff --git a/src/Appwrite/Utopia/Response/Model/Func.php b/src/Appwrite/Utopia/Response/Model/Func.php
index cb869a6b5f..1ea91757c3 100644
--- a/src/Appwrite/Utopia/Response/Model/Func.php
+++ b/src/Appwrite/Utopia/Response/Model/Func.php
@@ -17,7 +17,7 @@ class Func extends Model
'example' => '5e5ea5c16897e',
])
->addRule('$permissions', [
- 'type' => Response::MODEL_PERMISSIONS,
+ 'type' => Response::MODEL_FUNC_PERMISSIONS,
'description' => 'Function permissions.',
'default' => new \stdClass,
'example' => new \stdClass,
diff --git a/src/Appwrite/Utopia/Response/Model/FuncPermissions.php b/src/Appwrite/Utopia/Response/Model/FuncPermissions.php
new file mode 100644
index 0000000000..22ee62b759
--- /dev/null
+++ b/src/Appwrite/Utopia/Response/Model/FuncPermissions.php
@@ -0,0 +1,42 @@
+addRule('execute', [
+ 'type' => self::TYPE_STRING,
+ 'description' => 'Execution permissions.',
+ 'default' => [],
+ 'example' => 'user:5e5ea5c16897e',
+ 'array' => true,
+ ])
+ ;
+ }
+
+ /**
+ * Get Name
+ *
+ * @return string
+ */
+ public function getName():string
+ {
+ return 'FuncPermissions';
+ }
+
+ /**
+ * Get Collection
+ *
+ * @return string
+ */
+ public function getType():string
+ {
+ return Response::MODEL_FUNC_PERMISSIONS;
+ }
+}