From 9ebe85dd5d08c63c8c5cdef46ed9bb9dc741ccc3 Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Mon, 16 Mar 2020 21:29:39 +0200 Subject: [PATCH] Updated SDKs --- app/sdks/console-javascript/src/sdk.js | 27 +++++++++++++++------- app/sdks/console-javascript/src/sdk.min.js | 10 ++++---- app/sdks/flutter-dart/pubspec.yaml | 2 +- app/sdks/server-php/composer.json | 2 +- app/sdks/server-python/setup.py | 4 ++-- app/sdks/server-ruby/appwrite.gemspec | 2 +- app/sdks/web-javascript/src/sdk.js | 11 +++++++++ app/sdks/web-javascript/src/sdk.min.js | 2 ++ 8 files changed, 43 insertions(+), 17 deletions(-) diff --git a/app/sdks/console-javascript/src/sdk.js b/app/sdks/console-javascript/src/sdk.js index e1fc51b8e8..f707b7f779 100644 --- a/app/sdks/console-javascript/src/sdk.js +++ b/app/sdks/console-javascript/src/sdk.js @@ -171,6 +171,10 @@ path = addParam(path, globalParams[i].key, globalParams[i].value); } + if(window.localStorage && window.localStorage.getItem('cookieFallback')) { + headers['X-Fallback-Cookies'] = window.localStorage.getItem('cookieFallback'); + } + for (let key in globalHeaders) { // Add Global Headers if (globalHeaders.hasOwnProperty(key)) { if (!headers[globalHeaders[key].key]) { @@ -233,6 +237,13 @@ break; } + let cookieFallback = this.getResponseHeader('X-Fallback-Cookies') || ''; + + if(window.localStorage && cookieFallback) { + window.console.warn('Appwrite is using localStorage for session management. Increase your security by adding a custom domain as your API endpoint.'); + window.localStorage.setItem('cookieFallback', cookieFallback); + } + resolve(data); } else { @@ -2342,11 +2353,11 @@ * @param {string} name * @param {string} key * @param {string} store - * @param {string} url + * @param {string} hostname * @throws {Error} * @return {Promise} */ - createPlatform: function(projectId, type, name, key = '', store = '', url = '') { + createPlatform: function(projectId, type, name, key = '', store = '', hostname = '') { if(projectId === undefined) { throw new Error('Missing required parameter: "projectId"'); } @@ -2379,8 +2390,8 @@ payload['store'] = store; } - if(url) { - payload['url'] = url; + if(hostname) { + payload['hostname'] = hostname; } return http @@ -2426,11 +2437,11 @@ * @param {string} name * @param {string} key * @param {string} store - * @param {string} url + * @param {string} hostname * @throws {Error} * @return {Promise} */ - updatePlatform: function(projectId, platformId, name, key = '', store = '', url = '') { + updatePlatform: function(projectId, platformId, name, key = '', store = '', hostname = '') { if(projectId === undefined) { throw new Error('Missing required parameter: "projectId"'); } @@ -2459,8 +2470,8 @@ payload['store'] = store; } - if(url) { - payload['url'] = url; + if(hostname) { + payload['hostname'] = hostname; } return http diff --git a/app/sdks/console-javascript/src/sdk.min.js b/app/sdks/console-javascript/src/sdk.min.js index 69a10cd5af..ee58ad1ee3 100644 --- a/app/sdks/console-javascript/src/sdk.min.js +++ b/app/sdks/console-javascript/src/sdk.min.js @@ -3,12 +3,14 @@ return str.join("&")};let addGlobalHeader=function(key,value){globalHeaders[key] if(typeof path!=='string'){throw new Error('var path must be of type string')} if(typeof headers!=='object'){throw new Error('var headers must be of type object')} for(i=0;i=request.status){let data=request.response;let contentType=this.getResponseHeader('content-type')||'';contentType=contentType.substring(0,contentType.indexOf(';'));switch(contentType){case 'application/json':data=JSON.parse(data);break} +let cookieFallback=this.getResponseHeader('X-Fallback-Cookies')||'';if(window.localStorage&&cookieFallback){window.console.warn('Appwrite is using localStorage for session management. Increase your security by adding a custom domain as your API endpoint.');window.localStorage.setItem('cookieFallback',cookieFallback)} resolve(data)}else{reject(new Error(request.statusText))}};if(progress){request.addEventListener('progress',progress);request.upload.addEventListener('progress',progress,!1)} request.onerror=function(){reject(new Error("Network Error"))};request.send(params)})};return{'get':function(path,headers={},params={}){return call('GET',path+((Object.keys(params).length>0)?'?'+buildQuery(params):''),headers,{})},'post':function(path,headers={},params={},progress=null){return call('POST',path,headers,params,progress)},'put':function(path,headers={},params={},progress=null){return call('PUT',path,headers,params,progress)},'patch':function(path,headers={},params={},progress=null){return call('PATCH',path,headers,params,progress)},'delete':function(path,headers={},params={},progress=null){return call('DELETE',path,headers,params,progress)},'addGlobalParam':addGlobalParam,'addGlobalHeader':addGlobalHeader}}(window.document);let iframe=function(method,url,params){let form=document.createElement('form');form.setAttribute('method',method);form.setAttribute('action',config.endpoint+url);for(let key in params){if(params.hasOwnProperty(key)){let hiddenField=document.createElement("input");hiddenField.setAttribute("type","hidden");hiddenField.setAttribute("name",key);hiddenField.setAttribute("value",params[key]);form.appendChild(hiddenField)}} document.body.appendChild(form);return form.submit()};let account={get:function(){let path='/account';let payload={};return http.get(path,{'content-type':'application/json',},payload)},create:function(email,password,name=''){if(email===undefined){throw new Error('Missing required parameter: "email"')} @@ -194,23 +196,23 @@ let path='/projects/{projectId}/oauth2'.replace(new RegExp('{projectId}','g'),pr if(appId){payload.appId=appId} if(secret){payload.secret=secret} return http.patch(path,{'content-type':'application/json',},payload)},listPlatforms:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} -let path='/projects/{projectId}/platforms'.replace(new RegExp('{projectId}','g'),projectId);let payload={};return http.get(path,{'content-type':'application/json',},payload)},createPlatform:function(projectId,type,name,key='',store='',url=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} +let path='/projects/{projectId}/platforms'.replace(new RegExp('{projectId}','g'),projectId);let payload={};return http.get(path,{'content-type':'application/json',},payload)},createPlatform:function(projectId,type,name,key='',store='',hostname=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} if(type===undefined){throw new Error('Missing required parameter: "type"')} if(name===undefined){throw new Error('Missing required parameter: "name"')} let path='/projects/{projectId}/platforms'.replace(new RegExp('{projectId}','g'),projectId);let payload={};if(type){payload.type=type} if(name){payload.name=name} if(key){payload.key=key} if(store){payload.store=store} -if(url){payload.url=url} +if(hostname){payload.hostname=hostname} return http.post(path,{'content-type':'application/json',},payload)},getPlatform:function(projectId,platformId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} if(platformId===undefined){throw new Error('Missing required parameter: "platformId"')} -let path='/projects/{projectId}/platforms/{platformId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{platformId}','g'),platformId);let payload={};return http.get(path,{'content-type':'application/json',},payload)},updatePlatform:function(projectId,platformId,name,key='',store='',url=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} +let path='/projects/{projectId}/platforms/{platformId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{platformId}','g'),platformId);let payload={};return http.get(path,{'content-type':'application/json',},payload)},updatePlatform:function(projectId,platformId,name,key='',store='',hostname=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} if(platformId===undefined){throw new Error('Missing required parameter: "platformId"')} if(name===undefined){throw new Error('Missing required parameter: "name"')} let path='/projects/{projectId}/platforms/{platformId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{platformId}','g'),platformId);let payload={};if(name){payload.name=name} if(key){payload.key=key} if(store){payload.store=store} -if(url){payload.url=url} +if(hostname){payload.hostname=hostname} return http.put(path,{'content-type':'application/json',},payload)},deletePlatform:function(projectId,platformId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} if(platformId===undefined){throw new Error('Missing required parameter: "platformId"')} let path='/projects/{projectId}/platforms/{platformId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{platformId}','g'),platformId);let payload={};return http.delete(path,{'content-type':'application/json',},payload)},listTasks:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} diff --git a/app/sdks/flutter-dart/pubspec.yaml b/app/sdks/flutter-dart/pubspec.yaml index 95225dfda5..7237ac0d80 100644 --- a/app/sdks/flutter-dart/pubspec.yaml +++ b/app/sdks/flutter-dart/pubspec.yaml @@ -1,7 +1,7 @@ name: appwrite version: 0.0.6 description: Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https://appwrite.io/docs](https://appwrite.io/docs) -author: Appwrite Team +author: Appwrite Team homepage: https://github.com/appwrite/sdk-for-dart environment: sdk: '>=2.2.2 <3.0.0' diff --git a/app/sdks/server-php/composer.json b/app/sdks/server-php/composer.json index c7e4692c95..f7c10edd42 100644 --- a/app/sdks/server-php/composer.json +++ b/app/sdks/server-php/composer.json @@ -5,7 +5,7 @@ "license": "BSD-3-Clause", "support": { "url": "https://appwrite.io/support", - "email": "team@appwrite.io" + "email": "team@localhost.test" }, "autoload": { "psr-4": { diff --git a/app/sdks/server-python/setup.py b/app/sdks/server-python/setup.py index 60853de094..495727634c 100644 --- a/app/sdks/server-python/setup.py +++ b/app/sdks/server-python/setup.py @@ -7,9 +7,9 @@ setuptools.setup( license='BSD-3-Clause', description = 'Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https://appwrite.io/docs](https://appwrite.io/docs)', author = 'Appwrite Team', - author_email = 'team@appwrite.io', + author_email = 'team@localhost.test', maintainer = 'Appwrite Team', - maintainer_email = 'team@appwrite.io', + maintainer_email = 'team@localhost.test', url = 'https://appwrite.io/support', download_url='https://github.com/appwrite/sdk-for-python/archive/0.0.3.tar.gz', # keywords = ['SOME', 'MEANINGFULL', 'KEYWORDS'], diff --git a/app/sdks/server-ruby/appwrite.gemspec b/app/sdks/server-ruby/appwrite.gemspec index 37149a6972..ce3f4f6d1d 100644 --- a/app/sdks/server-ruby/appwrite.gemspec +++ b/app/sdks/server-ruby/appwrite.gemspec @@ -5,7 +5,7 @@ Gem::Specification.new do |s| s.summary = "Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https://appwrite.io/docs](https://appwrite.io/docs)" s.author = 'Appwrite Team' s.homepage = 'https://appwrite.io/support' - s.email = 'team@appwrite.io' + s.email = 'team@localhost.test' s.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR) end \ No newline at end of file diff --git a/app/sdks/web-javascript/src/sdk.js b/app/sdks/web-javascript/src/sdk.js index eb31b6ca7d..8cc946a87c 100644 --- a/app/sdks/web-javascript/src/sdk.js +++ b/app/sdks/web-javascript/src/sdk.js @@ -171,6 +171,10 @@ path = addParam(path, globalParams[i].key, globalParams[i].value); } + if(window.localStorage && window.localStorage.getItem('cookieFallback')) { + headers['X-Fallback-Cookies'] = window.localStorage.getItem('cookieFallback'); + } + for (let key in globalHeaders) { // Add Global Headers if (globalHeaders.hasOwnProperty(key)) { if (!headers[globalHeaders[key].key]) { @@ -233,6 +237,13 @@ break; } + let cookieFallback = this.getResponseHeader('X-Fallback-Cookies') || ''; + + if(window.localStorage && cookieFallback) { + window.console.warn('Appwrite is using localStorage for session management. Increase your security by adding a custom domain as your API endpoint.'); + window.localStorage.setItem('cookieFallback', cookieFallback); + } + resolve(data); } else { diff --git a/app/sdks/web-javascript/src/sdk.min.js b/app/sdks/web-javascript/src/sdk.min.js index 1147914591..9f149f90ea 100644 --- a/app/sdks/web-javascript/src/sdk.min.js +++ b/app/sdks/web-javascript/src/sdk.min.js @@ -3,12 +3,14 @@ return str.join("&")};let addGlobalHeader=function(key,value){globalHeaders[key] if(typeof path!=='string'){throw new Error('var path must be of type string')} if(typeof headers!=='object'){throw new Error('var headers must be of type object')} for(i=0;i=request.status){let data=request.response;let contentType=this.getResponseHeader('content-type')||'';contentType=contentType.substring(0,contentType.indexOf(';'));switch(contentType){case 'application/json':data=JSON.parse(data);break} +let cookieFallback=this.getResponseHeader('X-Fallback-Cookies')||'';if(window.localStorage&&cookieFallback){window.console.warn('Appwrite is using localStorage for session management. Increase your security by adding a custom domain as your API endpoint.');window.localStorage.setItem('cookieFallback',cookieFallback)} resolve(data)}else{reject(new Error(request.statusText))}};if(progress){request.addEventListener('progress',progress);request.upload.addEventListener('progress',progress,!1)} request.onerror=function(){reject(new Error("Network Error"))};request.send(params)})};return{'get':function(path,headers={},params={}){return call('GET',path+((Object.keys(params).length>0)?'?'+buildQuery(params):''),headers,{})},'post':function(path,headers={},params={},progress=null){return call('POST',path,headers,params,progress)},'put':function(path,headers={},params={},progress=null){return call('PUT',path,headers,params,progress)},'patch':function(path,headers={},params={},progress=null){return call('PATCH',path,headers,params,progress)},'delete':function(path,headers={},params={},progress=null){return call('DELETE',path,headers,params,progress)},'addGlobalParam':addGlobalParam,'addGlobalHeader':addGlobalHeader}}(window.document);let iframe=function(method,url,params){let form=document.createElement('form');form.setAttribute('method',method);form.setAttribute('action',config.endpoint+url);for(let key in params){if(params.hasOwnProperty(key)){let hiddenField=document.createElement("input");hiddenField.setAttribute("type","hidden");hiddenField.setAttribute("name",key);hiddenField.setAttribute("value",params[key]);form.appendChild(hiddenField)}} document.body.appendChild(form);return form.submit()};let account={get:function(){let path='/account';let payload={};return http.get(path,{'content-type':'application/json',},payload)},create:function(email,password,name=''){if(email===undefined){throw new Error('Missing required parameter: "email"')}