1
0
Fork 0
mirror of synced 2024-05-09 23:32:38 +12:00

Merge branch 'master' of https://github.com/appwrite/appwrite into feat-database-indexing

This commit is contained in:
Torsten Dittmann 2021-11-17 11:39:03 +01:00
commit d099b0133c
25 changed files with 16780 additions and 17977 deletions

View file

@ -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

View file

@ -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
@ -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

View file

@ -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",

View file

@ -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 dIvoire",
"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"
}

View file

@ -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",

View file

@ -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": "अंगोला",

View file

@ -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,
@ -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,

View file

@ -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')

View file

@ -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);
}
}
}
});

View file

@ -67,7 +67,7 @@
},
"repositories": [],
"require-dev": {
"appwrite/sdk-generator": "0.16.0",
"appwrite/sdk-generator": "0.16.2",
"phpunit/phpunit": "9.5.6",
"swoole/ide-helper": "4.6.7",
"textalk/websocket": "1.5.2",

106
composer.lock generated
View file

@ -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": "fa378feaffc446f557a140035a1c77b6",
"content-hash": "a3aad9d7aba75e837b4c6e242c7a91a3",
"packages": [
{
"name": "adhocore/jwt",
@ -2304,20 +2304,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"
},
@ -2351,9 +2350,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",
@ -3015,16 +3014,16 @@
},
{
"name": "appwrite/sdk-generator",
"version": "0.16.0",
"version": "0.16.2",
"source": {
"type": "git",
"url": "https://github.com/appwrite/sdk-generator.git",
"reference": "5a57afe89ded393a3eca8d9ba96b8e2c479f2601"
"reference": "e3a20c96a745a9c4aa048fd344650fcfbf41cf6f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/5a57afe89ded393a3eca8d9ba96b8e2c479f2601",
"reference": "5a57afe89ded393a3eca8d9ba96b8e2c479f2601",
"url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/e3a20c96a745a9c4aa048fd344650fcfbf41cf6f",
"reference": "e3a20c96a745a9c4aa048fd344650fcfbf41cf6f",
"shasum": ""
},
"require": {
@ -3058,9 +3057,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/0.16.0"
"source": "https://github.com/appwrite/sdk-generator/tree/0.16.2"
},
"time": "2021-10-21T06:49:55+00:00"
"time": "2021-11-12T11:09:38+00:00"
},
{
"name": "composer/semver",
@ -3656,16 +3655,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": {
@ -3706,9 +3705,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",
@ -4103,23 +4102,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",
@ -4168,7 +4167,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": [
{
@ -4176,7 +4175,7 @@
"type": "github"
}
],
"time": "2021-09-17T05:39:03+00:00"
"time": "2021-10-30T08:01:38+00:00"
},
{
"name": "phpunit/php-file-iterator",
@ -4524,20 +4523,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": {
@ -4566,9 +4565,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",
@ -4999,16 +4998,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": {
@ -5057,14 +5056,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": [
{
@ -5072,7 +5071,7 @@
"type": "github"
}
],
"time": "2020-09-28T05:24:23+00:00"
"time": "2021-11-11T14:18:36+00:00"
},
{
"name": "sebastian/global-state",
@ -5588,16 +5587,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": {
@ -5667,7 +5666,7 @@
"terminal"
],
"support": {
"source": "https://github.com/symfony/console/tree/v5.3.7"
"source": "https://github.com/symfony/console/tree/v5.3.10"
},
"funding": [
{
@ -5683,7 +5682,7 @@
"type": "tidelift"
}
],
"time": "2021-08-25T20:02:16+00:00"
"time": "2021-10-26T09:30:15+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
@ -6090,16 +6089,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": {
@ -6153,7 +6152,7 @@
"utf8"
],
"support": {
"source": "https://github.com/symfony/string/tree/v5.3.7"
"source": "https://github.com/symfony/string/tree/v5.3.10"
},
"funding": [
{
@ -6169,7 +6168,7 @@
"type": "tidelift"
}
],
"time": "2021-08-26T08:00:08+00:00"
"time": "2021-10-27T18:21:46+00:00"
},
{
"name": "textalk/websocket",
@ -6502,6 +6501,7 @@
"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"
}
],

View file

@ -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);
}

View file

@ -58,14 +58,16 @@ For **Windows** add your app <u>name</u> and <u>package name</u>, 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

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -370,10 +370,9 @@ let doNotTrack=window.navigator.doNotTrack;if(doNotTrack=='1'){return;}
let project=router.params["project"]||'None';ga("set","page",window.location.pathname);ga("set","dimension1",project);ga('set','dimension2',env.VERSION);ga('set','dimension3',env.SETUP);ga("send","pageview");}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-clone",controller:function(element,document,view){var template=element.innerHTML.toString();var label=element.dataset["label"]||"Add";var icon=element.dataset["icon"]||null;var target=element.dataset["target"]||null;var first=parseInt(element.dataset["first"]||1);var button=document.createElement("button");button.type="button";button.innerText=" "+label+" ";button.classList.add("margin-end");button.classList.add("margin-bottom-small");button.classList.add("reverse");if(icon){var iconElement=document.createElement("i");iconElement.className=icon;button.insertBefore(iconElement,button.firstChild);}
if(target){target=document.getElementById(target);}
button.addEventListener("click",function(){var clone=document.createElement(element.tagName);if(element.name){clone.name=element.name;}
clone.innerHTML=template;clone.className=element.className;var input=clone.querySelector("input, select, textarea");view.render(clone);if(target){target.appendChild(clone);}else{button.parentNode.insertBefore(clone,button);}
if(input){input.focus();}
Array.prototype.slice.call(clone.querySelectorAll("[data-remove]")).map(function(obj){obj.addEventListener("click",function(){clone.parentNode.removeChild(clone);obj.scrollIntoView({behavior:"smooth"});});});Array.prototype.slice.call(clone.querySelectorAll("[data-up]")).map(function(obj){obj.addEventListener("click",function(){if(clone.previousElementSibling){clone.parentNode.insertBefore(clone,clone.previousElementSibling);obj.scrollIntoView({behavior:"smooth"});}});});Array.prototype.slice.call(clone.querySelectorAll("[data-down]")).map(function(obj){obj.addEventListener("click",function(){if(clone.nextElementSibling){clone.parentNode.insertBefore(clone.nextElementSibling,clone);obj.scrollIntoView({behavior:"smooth"});}});});});element.parentNode.insertBefore(button,element.nextSibling);element.parentNode.removeChild(element);button.form.addEventListener('reset',function(event){target.innerHTML='';if(first){button.click();}});if(first){button.click();}}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-add",repeat:false,controller:function(element,view,container,document){for(var i=0;i<element.children.length;i++){let button=document.createElement("button");let template=element.children[i].cloneNode(true);let as=element.getAttribute('data-ls-as');let counter=0;button.type="button";button.innerText="Add";button.classList.add("reverse");button.classList.add("margin-end-small");button.addEventListener('click',function(){container.addNamespace(as,'new-'+counter++);console.log(container.namespaces,container.get(as),as);container.set(as,null,true,true);let child=template.cloneNode(true);view.render(child);element.appendChild(child);element.style.visibility='visible';let inputs=child.querySelectorAll('input,textarea');for(let index=0;index<inputs.length;++index){if(inputs[index].type!=='hidden'){inputs[index].focus();break;}}});element.after(button);}}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-chart",controller:function(element,container,date,document){let wrapper=document.createElement("div");let child=document.createElement("canvas");let sources=element.getAttribute('data-forms-chart');let width=element.getAttribute('data-width')||500;let height=element.getAttribute('data-height')||175;let colors=(element.getAttribute('data-colors')||'blue,green,orange,red').split(',');let themes={'blue':'#29b5d9','green':'#4eb55b','orange':'#fba233','red':'#dc3232',};let range={'24h':'H:i','7d':'d F Y','30d':'d F Y','90d':'d F Y'}
element.parentNode.insertBefore(wrapper,element.nextSibling);wrapper.classList.add('content');child.width=width;child.height=height;sources=sources.split(',');wrapper.appendChild(child);let chart=null;let check=function(){let config={type:"line",data:{labels:[],datasets:[]},options:{responsive:true,title:{display:false,text:"Stats"},legend:{display:false},tooltips:{mode:"index",intersect:false,caretPadding:0},hover:{mode:"nearest",intersect:true},scales:{xAxes:[{display:false}],yAxes:[{display:false}]}}};for(let i=0;i<sources.length;i++){let label=sources[i].substring(0,sources[i].indexOf('='));let path=sources[i].substring(sources[i].indexOf('=')+1);let data=container.path(path);let value=JSON.parse(element.value);config.data.labels[i]=label;config.data.datasets[i]={};config.data.datasets[i].label=label;config.data.datasets[i].borderColor=themes[colors[i]];config.data.datasets[i].backgroundColor=themes[colors[i]]+'36';config.data.datasets[i].borderWidth=2;config.data.datasets[i].data=[0,0,0,0,0,0,0];config.data.datasets[i].fill=true;if(!data){return;}
clone.innerHTML=template;clone.className=element.className;view.render(clone);if(target){target.appendChild(clone);}else{button.parentNode.insertBefore(clone,button);}
clone.querySelector("input").focus();Array.prototype.slice.call(clone.querySelectorAll("[data-remove]")).map(function(obj){obj.addEventListener("click",function(){clone.parentNode.removeChild(clone);obj.scrollIntoView({behavior:"smooth"});});});Array.prototype.slice.call(clone.querySelectorAll("[data-up]")).map(function(obj){obj.addEventListener("click",function(){if(clone.previousElementSibling){clone.parentNode.insertBefore(clone,clone.previousElementSibling);obj.scrollIntoView({behavior:"smooth"});}});});Array.prototype.slice.call(clone.querySelectorAll("[data-down]")).map(function(obj){obj.addEventListener("click",function(){if(clone.nextElementSibling){clone.parentNode.insertBefore(clone.nextElementSibling,clone);obj.scrollIntoView({behavior:"smooth"});}});});});element.parentNode.insertBefore(button,element.nextSibling);element.parentNode.removeChild(element);if(first){button.click();}}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-add",repeat:false,controller:function(element,view,container,document){for(var i=0;i<element.children.length;i++){let button=document.createElement("button");let template=element.children[i].cloneNode(true);let as=element.getAttribute('data-ls-as');let counter=0;button.type="button";button.innerText="Add";button.classList.add("reverse");button.classList.add("margin-end-small");button.addEventListener('click',function(){container.addNamespace(as,'new-'+counter++);console.log(container.namespaces,container.get(as),as);container.set(as,null,true,true);let child=template.cloneNode(true);view.render(child);element.appendChild(child);element.style.visibility='visible';let inputs=child.querySelectorAll('input,textarea');for(let index=0;index<inputs.length;++index){if(inputs[index].type!=='hidden'){inputs[index].focus();break;}}});element.after(button);}}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-chart",controller:function(element,container,date,document){let wrapper=document.createElement("div");let child=document.createElement("canvas");let sources=element.getAttribute('data-forms-chart');let width=element.getAttribute('data-width')||500;let height=element.getAttribute('data-height')||175;let colors=(element.getAttribute('data-colors')||'blue,green,orange,red').split(',');let themes={'blue':'#29b5d9','green':'#4eb55b','orange':'#fba233','red':'#dc3232',};let range={'24h':'H:i','7d':'d F Y','30d':'d F Y','90d':'d F Y'}
element.parentNode.insertBefore(wrapper,element.nextSibling);wrapper.classList.add('content');child.width=width;child.height=height;sources=sources.split(',');wrapper.appendChild(child);let chart=null;let check=function(){let config={type:"line",data:{labels:[],datasets:[]},options:{responsive:true,tooltip:{mode:"index",intersect:false,caretPadding:0},hover:{mode:"nearest",intersect:true},scales:{x:{display:false},y:{display:false}},plugins:{title:{display:false,text:"Stats"},legend:{display:false},}}};for(let i=0;i<sources.length;i++){let label=sources[i].substring(0,sources[i].indexOf('='));let path=sources[i].substring(sources[i].indexOf('=')+1);let data=container.path(path);let value=JSON.parse(element.value);config.data.labels[i]=label;config.data.datasets[i]={};config.data.datasets[i].label=label;config.data.datasets[i].borderColor=themes[colors[i]];config.data.datasets[i].backgroundColor=themes[colors[i]]+'36';config.data.datasets[i].borderWidth=2;config.data.datasets[i].data=[0,0,0,0,0,0,0];config.data.datasets[i].fill=true;if(!data){return;}
let dateFormat=(value.range&&range[value.range])?range[value.range]:'d F Y';for(let x=0;x<data.length;x++){config.data.datasets[i].data[x]=data[x].value;config.data.labels[x]=date.format(dateFormat,data[x].date);}}
if(chart){chart.destroy();}
else{}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 86 KiB

File diff suppressed because it is too large Load diff

View file

@ -36,14 +36,7 @@
},
options: {
responsive: true,
title: {
display: false,
text: "Stats"
},
legend: {
display: false
},
tooltips: {
tooltip: {
mode: "index",
intersect: false,
caretPadding: 0
@ -53,16 +46,21 @@
intersect: true
},
scales: {
xAxes: [
{
display: false
}
],
yAxes: [
{
display: false
}
]
x: {
display: false
},
y: {
display: false
}
},
plugins: {
title: {
display: false,
text: "Stats"
},
legend: {
display: false
},
}
}
};

View file

@ -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;
@ -93,6 +94,7 @@
--config-console-nav-switch-arrow: url("data:image/svg+xml;utf8,<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='24' height='24' viewBox='0 0 24 24'><path fill='%23868686' d='M7.406 7.828l4.594 4.594 4.594-4.594 1.406 1.406-6 6-6-6z'></path></svg>");
.theme-dark {
--config-color-primary: #f02e65;
--config-color-background: #061F2F;
--config-color-background-dark: #262d50;
--config-color-background-fade: #1c223a;

View file

@ -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, []));
}
@ -107,4 +107,4 @@ class PDO extends PDONative
return $this->pdo;
}
}
}

View file

@ -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;
}
}
}

View file

@ -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