diff --git a/app/config/platforms.php b/app/config/platforms.php index 22b976193..866e56b8a 100644 --- a/app/config/platforms.php +++ b/app/config/platforms.php @@ -15,7 +15,7 @@ return [ [ 'key' => 'web', 'name' => 'Web', - 'version' => '4.0.2', + 'version' => '4.0.3', 'url' => 'https://github.com/appwrite/sdk-for-web', 'package' => 'https://www.npmjs.com/package/appwrite', 'enabled' => true, @@ -62,7 +62,7 @@ return [ [ 'key' => 'flutter', 'name' => 'Flutter', - 'version' => '1.0.2', + 'version' => '2.0.1', 'url' => 'https://github.com/appwrite/sdk-for-flutter', 'package' => 'https://pub.dev/packages/appwrite', 'enabled' => true, diff --git a/composer.json b/composer.json index f5c9af576..8a7b1570f 100644 --- a/composer.json +++ b/composer.json @@ -64,7 +64,7 @@ "slickdeals/statsd": "3.1.0" }, "require-dev": { - "appwrite/sdk-generator": "0.14.5", + "appwrite/sdk-generator": "0.15.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 418b7120e..9d2ef6169 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": "3acb593da6b69af88e3b527b81929ed4", + "content-hash": "984640c83bc02c3253a0f38b5f772011", "packages": [ { "name": "adhocore/jwt", @@ -2350,16 +2350,16 @@ "packages-dev": [ { "name": "amphp/amp", - "version": "v2.6.0", + "version": "v2.6.1", "source": { "type": "git", "url": "https://github.com/amphp/amp.git", - "reference": "caa95edeb1ca1bf7532e9118ede4a3c3126408cc" + "reference": "c5fc66a78ee38d7ac9195a37bacaf940eb3f65ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/amp/zipball/caa95edeb1ca1bf7532e9118ede4a3c3126408cc", - "reference": "caa95edeb1ca1bf7532e9118ede4a3c3126408cc", + "url": "https://api.github.com/repos/amphp/amp/zipball/c5fc66a78ee38d7ac9195a37bacaf940eb3f65ae", + "reference": "c5fc66a78ee38d7ac9195a37bacaf940eb3f65ae", "shasum": "" }, "require": { @@ -2427,7 +2427,7 @@ "support": { "irc": "irc://irc.freenode.org/amphp", "issues": "https://github.com/amphp/amp/issues", - "source": "https://github.com/amphp/amp/tree/v2.6.0" + "source": "https://github.com/amphp/amp/tree/v2.6.1" }, "funding": [ { @@ -2435,7 +2435,7 @@ "type": "github" } ], - "time": "2021-07-16T20:06:06+00:00" + "time": "2021-09-23T18:43:08+00:00" }, { "name": "amphp/byte-stream", @@ -2516,16 +2516,16 @@ }, { "name": "appwrite/sdk-generator", - "version": "0.14.5", + "version": "0.15.2", "source": { "type": "git", "url": "https://github.com/appwrite/sdk-generator.git", - "reference": "6dfed83fb3aa85304ba86aeb2f1f282b9d8f80e5" + "reference": "f42e70737d3b63fb8440111022c9509529a16479" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/6dfed83fb3aa85304ba86aeb2f1f282b9d8f80e5", - "reference": "6dfed83fb3aa85304ba86aeb2f1f282b9d8f80e5", + "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/f42e70737d3b63fb8440111022c9509529a16479", + "reference": "f42e70737d3b63fb8440111022c9509529a16479", "shasum": "" }, "require": { @@ -2559,9 +2559,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.14.5" + "source": "https://github.com/appwrite/sdk-generator/tree/0.15.2" }, - "time": "2021-09-20T16:32:51+00:00" + "time": "2021-09-24T16:14:17+00:00" }, { "name": "composer/package-versions-deprecated", diff --git a/docs/sdks/flutter/CHANGELOG.md b/docs/sdks/flutter/CHANGELOG.md index 4a74ebf1c..ccdd0eabd 100644 --- a/docs/sdks/flutter/CHANGELOG.md +++ b/docs/sdks/flutter/CHANGELOG.md @@ -1,3 +1,16 @@ +## 2.0.1 +- Fix realtime close and reconnect working only 1 out of two times due to future returning too early +- Add dart doc comments to newly added response models + +## 2.0.0 +- BREAKING All services and methods now return proper response objects instead of `Response` object + +## 1.0.4 +- Fix user agent by using `packageName` instead of `appName` + +## 1.0.3 +- Upgrade `flutter_web_auth` to `0.3.1` + ## 1.0.2 - Fix timestamp in Realtime Response to Integer diff --git a/public/dist/scripts/app-all.js b/public/dist/scripts/app-all.js index 4a4daa72f..bacf1159a 100644 --- a/public/dist/scripts/app-all.js +++ b/public/dist/scripts/app-all.js @@ -473,8 +473,7 @@ subscribe(channels,callback){let channelArray=typeof channels==='string'?[channe savedChannels[index]={name:channel,index:(this.realtime.channels[channel].push(this.realtime.onMessage(channel,callback))-1)};clearTimeout(this.realtime.timeout);this.realtime.timeout=window===null||window===void 0?void 0:window.setTimeout(()=>{this.realtime.createSocket();},1);});return()=>{savedChannels.forEach(channel=>{var _a;(_a=this.realtime.socket)===null||_a===void 0?void 0:_a.removeEventListener('message',this.realtime.channels[channel.name][channel.index]);this.realtime.channels[channel.name].splice(channel.index,1);});};} call(method,url,headers={},params={}){var _a,_b;return __awaiter(this,void 0,void 0,function*(){method=method.toUpperCase();headers=Object.assign(Object.assign({},headers),this.headers);let options={method,headers,credentials:'include'};if(typeof window!=='undefined'&&window.localStorage){headers['X-Fallback-Cookies']=(_a=window.localStorage.getItem('cookieFallback'))!==null&&_a!==void 0?_a:"";} if(method==='GET'){for(const[key,value]of Object.entries(this.flatten(params))){url.searchParams.append(key,value);}} -else{switch(headers['content-type']){case'application/json':options.body=JSON.stringify(params);break;case'multipart/form-data':let formData=new FormData();for(const key in params){if(Array.isArray(params[key])){formData.append(key+'[]',params[key].join(','));} -else{formData.append(key,params[key]);}} +else{switch(headers['content-type']){case'application/json':options.body=JSON.stringify(params);break;case'multipart/form-data':let formData=new FormData();for(const key in params){if(Array.isArray(params[key])){params[key].forEach((value)=>{formData.append(key+'[]',value);})}else{formData.append(key,params[key]);}} options.body=formData;delete headers['content-type'];break;}} try{let data=null;const response=yield crossFetch.fetch(url.toString(),options);if((_b=response.headers.get("content-type"))===null||_b===void 0?void 0:_b.includes("application/json")){data=yield response.json();} else{data={message:yield response.text()};} diff --git a/public/dist/scripts/app-dep.js b/public/dist/scripts/app-dep.js index 7a5622742..2f2bc8e0a 100644 --- a/public/dist/scripts/app-dep.js +++ b/public/dist/scripts/app-dep.js @@ -473,8 +473,7 @@ subscribe(channels,callback){let channelArray=typeof channels==='string'?[channe savedChannels[index]={name:channel,index:(this.realtime.channels[channel].push(this.realtime.onMessage(channel,callback))-1)};clearTimeout(this.realtime.timeout);this.realtime.timeout=window===null||window===void 0?void 0:window.setTimeout(()=>{this.realtime.createSocket();},1);});return()=>{savedChannels.forEach(channel=>{var _a;(_a=this.realtime.socket)===null||_a===void 0?void 0:_a.removeEventListener('message',this.realtime.channels[channel.name][channel.index]);this.realtime.channels[channel.name].splice(channel.index,1);});};} call(method,url,headers={},params={}){var _a,_b;return __awaiter(this,void 0,void 0,function*(){method=method.toUpperCase();headers=Object.assign(Object.assign({},headers),this.headers);let options={method,headers,credentials:'include'};if(typeof window!=='undefined'&&window.localStorage){headers['X-Fallback-Cookies']=(_a=window.localStorage.getItem('cookieFallback'))!==null&&_a!==void 0?_a:"";} if(method==='GET'){for(const[key,value]of Object.entries(this.flatten(params))){url.searchParams.append(key,value);}} -else{switch(headers['content-type']){case'application/json':options.body=JSON.stringify(params);break;case'multipart/form-data':let formData=new FormData();for(const key in params){if(Array.isArray(params[key])){formData.append(key+'[]',params[key].join(','));} -else{formData.append(key,params[key]);}} +else{switch(headers['content-type']){case'application/json':options.body=JSON.stringify(params);break;case'multipart/form-data':let formData=new FormData();for(const key in params){if(Array.isArray(params[key])){params[key].forEach((value)=>{formData.append(key+'[]',value);})}else{formData.append(key,params[key]);}} options.body=formData;delete headers['content-type'];break;}} try{let data=null;const response=yield crossFetch.fetch(url.toString(),options);if((_b=response.headers.get("content-type"))===null||_b===void 0?void 0:_b.includes("application/json")){data=yield response.json();} else{data={message:yield response.text()};} diff --git a/public/scripts/dependencies/appwrite.js b/public/scripts/dependencies/appwrite.js index 8fc1fb679..3ac3e1b67 100644 --- a/public/scripts/dependencies/appwrite.js +++ b/public/scripts/dependencies/appwrite.js @@ -4420,9 +4420,10 @@ let formData = new FormData(); for (const key in params) { if (Array.isArray(params[key])) { - formData.append(key + '[]', params[key].join(',')); - } - else { + params[key].forEach((value) => { + formData.append(key + '[]', value); + }) + } else { formData.append(key, params[key]); } }