@staticbackend/js 1.4.3 → 1.5.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/backend.js +1 -0
- package/dist/index.js +1 -6
- package/dist/module/backend.d.ts +20 -0
- package/dist/module/backend.js +50 -11
- package/dist/module/backend.js.map +1 -1
- package/package.json +11 -3
- package/dist/backend.d.ts +0 -120
- package/dist/index.d.ts +0 -1
- package/dist/index.js.map +0 -1
package/dist/backend.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var sb=(()=>{var u=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var w=(o,t)=>{for(var e in t)u(o,e,{get:t[e],enumerable:!0})},x=(o,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of y(t))!p.call(o,r)&&r!==e&&u(o,r,{get:()=>t[r],enumerable:!(s=g(t,r))||s.enumerable});return o};var b=o=>x(u({},"__esModule",{value:!0}),o);var n=(o,t,e)=>new Promise((s,r)=>{var i=a=>{try{l(e.next(a))}catch(c){r(c)}},h=a=>{try{l(e.throw(a))}catch(c){r(c)}},l=a=>a.done?s(a.value):Promise.resolve(a.value).then(i,h);l((e=e.apply(o,t)).next())});var k={};w(k,{Backend:()=>d});var d=class{constructor(t,e){this.baseURL="https://na1.staticbackend.com";this.wsURL="wss://na1.staticbackend.com";this.ws=null;this.wsId=null;this.wsToken=null;this.sseClient=null;this.pubKey="";this.types={ok:"ok",error:"error",init:"init",token:"token",joined:"joined",chanOut:"chan_out",dbCreated:"db_created",dbUpdated:"db_updated",dbDeleted:"db_deleted",echo:"echo",auth:"auth",join:"join",chanIn:"chan_in",presence:"presence"};this.timeout=t=>new Promise(e=>setTimeout(e,t));this.pubKey=t,e&&(e=="dev"?(this.baseURL="http://localhost:8099",this.wsURL="ws://localhost:8099"):e.length<10?(this.baseURL=`https://${e}.staticbackend.com`,this.wsURL=`wss://${e}.staticbackend.com`):(this.baseURL=e,this.wsURL=e.replace("https","wss")))}rawreq(t,e,s,r,i){return n(this,null,function*(){try{let l=null;i&&(l=t=="application/json"?JSON.stringify(i):i);let a={"SB-PUBLIC-KEY":this.pubKey};t&&t.length&&(a["Content-Type"]=t),e&&(a.Authorization=`Bearer ${e}`);let c=yield fetch(`${this.baseURL}${r}`,{method:s,headers:a,body:l});var h=null;return c.status>299?(h=yield c.text(),{ok:!1,content:h}):(h=yield c.json(),{ok:!0,content:h})}catch(l){return console.error(l),{ok:!1,content:l}}})}req(t,e,s,r){return n(this,null,function*(){return yield this.rawreq("application/json",t,e,s,r)})}register(t,e){return n(this,null,function*(){let s={email:t,password:e};return yield this.req("","POST","/register",s)})}login(t,e){return n(this,null,function*(){let s={email:t,password:e};return yield this.req("","POST","/login",s)})}me(t){return n(this,null,function*(){return yield this.req(t,"GET","/me")})}addUser(t,e,s){return n(this,null,function*(){let r={email:e,password:s};return yield this.req(t,"POST","/account/users",r)})}removeUser(t,e){return n(this,null,function*(){return yield this.req(t,"DELETE",`/account/users/${e}`)})}users(t){return n(this,null,function*(){return yield this.req(t,"GET","/account/users")})}create(t,e,s){return n(this,null,function*(){return yield this.req(t,"POST",`/db/${e}`,s)})}createBulk(t,e,s){return n(this,null,function*(){return yield this.req(t,"POST",`/db/${e}?bulk=1`,s)})}list(t,e){return n(this,null,function*(){return yield this.req(t,"GET",`/db/${e}`)})}getById(t,e,s){return n(this,null,function*(){return yield this.req(t,"GET",`/db/${e}/${s}`)})}query(t,e,s){return n(this,null,function*(){return yield this.req(t,"POST",`/query/${e}`,s)})}update(t,e,s,r){return n(this,null,function*(){return yield this.req(t,"PUT",`/db/${e}/${s}`,r)})}updateBulk(t,e,s){return n(this,null,function*(){return yield this.req(t,"PUT",`/db/${e}?bulk=1`,s)})}delete(t,e,s){return n(this,null,function*(){return yield this.req(t,"DELETE",`/db/${e}/${s}`)})}deleteBulk(t,e,s){return n(this,null,function*(){let r=btoa(JSON.stringify(s));return yield this.req(t,"DELETE",`/db/${e}?bulk=1&x=${r}`)})}count(t,e,s){return n(this,null,function*(){return yield this.req(t,"POST",`/db/count/${e}`,s)})}search(t,e,s){return n(this,null,function*(){let r={col:e,keywords:s};return yield this.req(t,"POST","/search",r)})}storeFile(t,e){return n(this,null,function*(){let s=new FormData(e);return yield this.rawreq("",t,"POST","/storage/upload",s)})}resizeImage(t,e,s){return n(this,null,function*(){let r=new FormData(s);return r.append("width",e.toString()),yield this.rawreq("",t,"POST","/extra/resizeimg",r)})}convertURLToX(t,e){return n(this,null,function*(){return yield this.req(t,"POST","/extra/htmltox",e)})}connectWS(t,e,s){this.ws=new WebSocket(this.wsURL+"/ws"),this.ws.onerror=r=>{console.error(r)},this.ws.onmessage=r=>{try{let i=JSON.parse(r.data);i.type==this.types.init?(this.wsId=i.data,this.send(this.types.auth,t)):i.type==this.types.token?(this.wsToken=i.data,e(i.data)):s(i)}catch(i){console.error(i)}}}sendWS(t,e,s){if(this.ws==null)return!1;let r={sid:this.wsId,token:this.wsToken,type:t,data:e,channel:s};return this.ws.send(JSON.stringify(r)),!0}connect(t,e,s){this.sseClient=new EventSource(this.baseURL+`/sse/connect?sbpk=${this.pubKey}`),this.sseClient.onerror=r=>{console.error(r)},this.sseClient.onmessage=r=>{try{let i=JSON.parse(r.data);i.type==this.types.init?(this.wsId=i.data,this.wsToken=t,this.send(this.types.auth,t)):i.type==this.types.token?e(this.wsToken):s(i)}catch(i){console.error(i)}}}send(t,e,s){if(this.sseClient==null||this.sseClient.readyState==2)return!1;let r={sid:this.wsId,token:this.wsToken,type:t,data:e,channel:s};return n(this,null,function*(){return yield this.req(this.wsToken,"POST","/sse/msg",r)}),!0}generateId(){let t=new Date().getTime();return"R"+"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(s){let r=(t+Math.random()*16)%16|0;return t=Math.floor(t/16),(s=="x"?r:r&3|8).toString(16)})}socialLogin(t){return n(this,null,function*(){let e=this.generateId(),s=`${this.baseURL}/oauth/login?provider=${t}&reqid=${e}&sbpk=${this.pubKey}`;return window.open(s,"_blank"),yield this.checkExternalUser(1,e)})}checkExternalUser(t,e){return n(this,null,function*(){if(t>=950)return{token:"",email:"",name:"",first:"",last:"",avatarUrl:""};let s=yield this.req("","GET",`/oauth/get-user?reqid=${e}`);return!s.ok||!s.content?(t++,yield this.timeout(1750),yield this.checkExternalUser(t,e)):s.content})}};return b(k);})();
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1 @@
|
|
|
1
|
-
|
|
2
|
-
"use strict";function e(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function t(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function r(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(a,s){function i(e){try{o(n.next(e))}catch(t){s(t)}}function u(e){try{o(n.throw(e))}catch(t){s(t)}}function o(e){var t;e.done?a(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(i,u)}o((n=n.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Backend=void 0;var a=function(){function t(r,n){e(this,t),this.baseURL="https://na1.staticbackend.com",this.wsURL="wss://na1.staticbackend.com",this.ws=null,this.wsId=null,this.wsToken=null,this.sseClient=null,this.pubKey="",this.types={ok:"ok",error:"error",init:"init",token:"token",joined:"joined",chanOut:"chan_out",dbCreated:"db_created",dbUpdated:"db_updated",dbDeleted:"db_deleted",echo:"echo",auth:"auth",join:"join",chanIn:"chan_in",presence:"presence"},this.timeout=function(e){return new Promise(function(t){return setTimeout(t,e)})},this.pubKey=r,n&&("dev"==n?(this.baseURL="http://localhost:8099",this.wsURL="ws://localhost:8099"):n.length<10?(this.baseURL="https://".concat(n,".staticbackend.com"),this.wsURL="wss://".concat(n,".staticbackend.com")):(this.baseURL=n,this.wsURL=n.replace("https","wss")))}return r(t,[{key:"rawreq",value:function(e,t,r,a,s){return n(this,void 0,void 0,regeneratorRuntime.mark(function n(){var i,u,o,c;return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,i=null,s&&(i="application/json"==e?JSON.stringify(s):s),u={"SB-PUBLIC-KEY":this.pubKey},e&&e.length&&(u["Content-Type"]=e),t&&(u.Authorization="Bearer ".concat(t)),n.next=8,fetch("".concat(this.baseURL).concat(a),{method:r,headers:u,body:i});case 8:if(o=n.sent,c=null,!(o.status>299)){n.next=15;break}return n.next=13,o.text();case 13:return c=n.sent,n.abrupt("return",{ok:!1,content:c});case 15:return n.next=17,o.json();case 17:return c=n.sent,n.abrupt("return",{ok:!0,content:c});case 21:return n.prev=21,n.t0=n.catch(0),console.error(n.t0),n.abrupt("return",{ok:!1,content:n.t0});case 25:case"end":return n.stop()}},n,this,[[0,21]])}))}},{key:"req",value:function(e,t,r,a){return n(this,void 0,void 0,regeneratorRuntime.mark(function n(){return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,this.rawreq("application/json",e,t,r,a);case 2:return n.abrupt("return",n.sent);case 3:case"end":return n.stop()}},n,this)}))}},{key:"register",value:function(e,t){return n(this,void 0,void 0,regeneratorRuntime.mark(function r(){var n;return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:return n={email:e,password:t},r.next=3,this.req("","POST","/register",n);case 3:return r.abrupt("return",r.sent);case 4:case"end":return r.stop()}},r,this)}))}},{key:"login",value:function(e,t){return n(this,void 0,void 0,regeneratorRuntime.mark(function r(){var n;return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:return n={email:e,password:t},r.next=3,this.req("","POST","/login",n);case 3:return r.abrupt("return",r.sent);case 4:case"end":return r.stop()}},r,this)}))}},{key:"me",value:function(e){return n(this,void 0,void 0,regeneratorRuntime.mark(function t(){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.req(e,"GET","/me");case 2:return t.abrupt("return",t.sent);case 3:case"end":return t.stop()}},t,this)}))}},{key:"create",value:function(e,t,r){return n(this,void 0,void 0,regeneratorRuntime.mark(function n(){return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,this.req(e,"POST","/db/".concat(t),r);case 2:return n.abrupt("return",n.sent);case 3:case"end":return n.stop()}},n,this)}))}},{key:"createBulk",value:function(e,t,r){return n(this,void 0,void 0,regeneratorRuntime.mark(function n(){return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,this.req(e,"POST","/db/".concat(t,"?bulk=1"),r);case 2:return n.abrupt("return",n.sent);case 3:case"end":return n.stop()}},n,this)}))}},{key:"list",value:function(e,t){return n(this,void 0,void 0,regeneratorRuntime.mark(function r(){return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,this.req(e,"GET","/db/".concat(t));case 2:return r.abrupt("return",r.sent);case 3:case"end":return r.stop()}},r,this)}))}},{key:"getById",value:function(e,t,r){return n(this,void 0,void 0,regeneratorRuntime.mark(function n(){return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,this.req(e,"GET","/db/".concat(t,"/").concat(r));case 2:return n.abrupt("return",n.sent);case 3:case"end":return n.stop()}},n,this)}))}},{key:"query",value:function(e,t,r){return n(this,void 0,void 0,regeneratorRuntime.mark(function n(){return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,this.req(e,"POST","/query/".concat(t),r);case 2:return n.abrupt("return",n.sent);case 3:case"end":return n.stop()}},n,this)}))}},{key:"update",value:function(e,t,r,a){return n(this,void 0,void 0,regeneratorRuntime.mark(function n(){return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,this.req(e,"PUT","/db/".concat(t,"/").concat(r),a);case 2:return n.abrupt("return",n.sent);case 3:case"end":return n.stop()}},n,this)}))}},{key:"updateBulk",value:function(e,t,r){return n(this,void 0,void 0,regeneratorRuntime.mark(function n(){return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,this.req(e,"PUT","/db/".concat(t,"?bulk=1"),r);case 2:return n.abrupt("return",n.sent);case 3:case"end":return n.stop()}},n,this)}))}},{key:"delete",value:function(e,t,r){return n(this,void 0,void 0,regeneratorRuntime.mark(function n(){return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,this.req(e,"DELETE","/db/".concat(t,"/").concat(r));case 2:return n.abrupt("return",n.sent);case 3:case"end":return n.stop()}},n,this)}))}},{key:"count",value:function(e,t,r){return n(this,void 0,void 0,regeneratorRuntime.mark(function n(){return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,this.req(e,"POST","/db/count/".concat(t),r);case 2:return n.abrupt("return",n.sent);case 3:case"end":return n.stop()}},n,this)}))}},{key:"storeFile",value:function(e,t){return n(this,void 0,void 0,regeneratorRuntime.mark(function r(){var n;return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:return n=new FormData(t),r.next=3,this.rawreq("",e,"POST","/storage/upload",n);case 3:return r.abrupt("return",r.sent);case 4:case"end":return r.stop()}},r,this)}))}},{key:"resizeImage",value:function(e,t,r){return n(this,void 0,void 0,regeneratorRuntime.mark(function n(){var a;return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return(a=new FormData(r)).append("width",t.toString()),n.next=4,this.rawreq("",e,"POST","/extra/resizeimg",a);case 4:return n.abrupt("return",n.sent);case 5:case"end":return n.stop()}},n,this)}))}},{key:"convertURLToX",value:function(e,t){return n(this,void 0,void 0,regeneratorRuntime.mark(function r(){return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,this.req(e,"POST","/extra/htmltox",t);case 2:return r.abrupt("return",r.sent);case 3:case"end":return r.stop()}},r,this)}))}},{key:"connectWS",value:function(e,t,r){var n=this;this.ws=new WebSocket(this.wsURL+"/ws"),this.ws.onerror=function(e){console.error(e)},this.ws.onmessage=function(a){try{var s=JSON.parse(a.data);s.type==n.types.init?(n.wsId=s.data,n.send(n.types.auth,e)):s.type==n.types.token?(n.wsToken=s.data,t(s.data)):r(s)}catch(i){console.error(i)}}}},{key:"sendWS",value:function(e,t,r){if(null==this.ws)return!1;var n={sid:this.wsId,token:this.wsToken,type:e,data:t,channel:r};return this.ws.send(JSON.stringify(n)),!0}},{key:"connect",value:function(e,t,r){var n=this;this.sseClient=new EventSource(this.baseURL+"/sse/connect?sbpk=".concat(this.pubKey)),this.sseClient.onerror=function(e){console.error(e)},this.sseClient.onmessage=function(a){try{var s=JSON.parse(a.data);s.type==n.types.init?(n.wsId=s.data,n.wsToken=e,n.send(n.types.auth,e)):s.type==n.types.token?t(n.wsToken):r(s)}catch(i){console.error(i)}}}},{key:"send",value:function(e,t,r){var a=this;if(null==this.sseClient||2==this.sseClient.readyState)return!1;var s={sid:this.wsId,token:this.wsToken,type:e,data:t,channel:r};return n(a,void 0,void 0,regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.req(this.wsToken,"POST","/sse/msg",s);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}},e,this)})),!0}},{key:"generateId",value:function(){var e=(new Date).getTime();return"R"+"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var r=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"==t?r:3&r|8).toString(16)})}},{key:"socialLogin",value:function(e){return n(this,void 0,void 0,regeneratorRuntime.mark(function t(){var r,n;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return r=this.generateId(),n="".concat(this.baseURL,"/oauth/login?provider=").concat(e,"&reqid=").concat(r,"&sbpk=").concat(this.pubKey),window.open(n,"_blank"),t.next=5,this.checkExternalUser(1,r);case 5:return t.abrupt("return",t.sent);case 6:case"end":return t.stop()}},t,this)}))}},{key:"checkExternalUser",value:function(e,t){return n(this,void 0,void 0,regeneratorRuntime.mark(function r(){var n,a;return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:if(!(e>=950)){r.next=2;break}return r.abrupt("return",{token:"",email:"",name:"",first:"",last:"",avatarUrl:""});case 2:return r.next=4,this.req("","GET","/oauth/get-user?reqid=".concat(t));case 4:if((n=r.sent).ok&&n.content){r.next=12;break}return e++,r.next=9,this.timeout(1750);case 9:return r.next=11,this.checkExternalUser(e,t);case 11:return r.abrupt("return",r.sent);case 12:return a=n.content,r.abrupt("return",a);case 14:case"end":return r.stop()}},r,this)}))}}]),t}();exports.Backend=a;
|
|
3
|
-
},{}],"QCba":[function(require,module,exports) {
|
|
4
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Backend=void 0;var e=require("./backend");Object.defineProperty(exports,"Backend",{enumerable:!0,get:function(){return e.Backend}});
|
|
5
|
-
},{"./backend":"oKSM"}]},{},["QCba"], null)
|
|
6
|
-
//# sourceMappingURL=/index.js.map
|
|
1
|
+
var c=class{baseURL="https://na1.staticbackend.com";wsURL="wss://na1.staticbackend.com";ws=null;wsId=null;wsToken=null;sseClient=null;pubKey="";types={ok:"ok",error:"error",init:"init",token:"token",joined:"joined",chanOut:"chan_out",dbCreated:"db_created",dbUpdated:"db_updated",dbDeleted:"db_deleted",echo:"echo",auth:"auth",join:"join",chanIn:"chan_in",presence:"presence"};constructor(t,e){this.pubKey=t,e&&(e=="dev"?(this.baseURL="http://localhost:8099",this.wsURL="ws://localhost:8099"):e.length<10?(this.baseURL=`https://${e}.staticbackend.com`,this.wsURL=`wss://${e}.staticbackend.com`):(this.baseURL=e,this.wsURL=e.replace("https","wss")))}async rawreq(t,e,s,r,n){try{let i=null;n&&(i=t=="application/json"?JSON.stringify(n):n);let o={"SB-PUBLIC-KEY":this.pubKey};t&&t.length&&(o["Content-Type"]=t),e&&(o.Authorization=`Bearer ${e}`);let l=await fetch(`${this.baseURL}${r}`,{method:s,headers:o,body:i});var a=null;return l.status>299?(a=await l.text(),{ok:!1,content:a}):(a=await l.json(),{ok:!0,content:a})}catch(i){return console.error(i),{ok:!1,content:i}}}async req(t,e,s,r){return await this.rawreq("application/json",t,e,s,r)}async register(t,e){let s={email:t,password:e};return await this.req("","POST","/register",s)}async login(t,e){let s={email:t,password:e};return await this.req("","POST","/login",s)}async me(t){return await this.req(t,"GET","/me")}async addUser(t,e,s){let r={email:e,password:s};return await this.req(t,"POST","/account/users",r)}async removeUser(t,e){return await this.req(t,"DELETE",`/account/users/${e}`)}async users(t){return await this.req(t,"GET","/account/users")}async create(t,e,s){return await this.req(t,"POST",`/db/${e}`,s)}async createBulk(t,e,s){return await this.req(t,"POST",`/db/${e}?bulk=1`,s)}async list(t,e){return await this.req(t,"GET",`/db/${e}`)}async getById(t,e,s){return await this.req(t,"GET",`/db/${e}/${s}`)}async query(t,e,s){return await this.req(t,"POST",`/query/${e}`,s)}async update(t,e,s,r){return await this.req(t,"PUT",`/db/${e}/${s}`,r)}async updateBulk(t,e,s){return await this.req(t,"PUT",`/db/${e}?bulk=1`,s)}async delete(t,e,s){return await this.req(t,"DELETE",`/db/${e}/${s}`)}async deleteBulk(t,e,s){let r=btoa(JSON.stringify(s));return await this.req(t,"DELETE",`/db/${e}?bulk=1&x=${r}`)}async count(t,e,s){return await this.req(t,"POST",`/db/count/${e}`,s)}async search(t,e,s){let r={col:e,keywords:s};return await this.req(t,"POST","/search",r)}async storeFile(t,e){let s=new FormData(e);return await this.rawreq("",t,"POST","/storage/upload",s)}async resizeImage(t,e,s){let r=new FormData(s);return r.append("width",e.toString()),await this.rawreq("",t,"POST","/extra/resizeimg",r)}async convertURLToX(t,e){return await this.req(t,"POST","/extra/htmltox",e)}connectWS(t,e,s){this.ws=new WebSocket(this.wsURL+"/ws"),this.ws.onerror=r=>{console.error(r)},this.ws.onmessage=r=>{try{let n=JSON.parse(r.data);n.type==this.types.init?(this.wsId=n.data,this.send(this.types.auth,t)):n.type==this.types.token?(this.wsToken=n.data,e(n.data)):s(n)}catch(n){console.error(n)}}}sendWS(t,e,s){if(this.ws==null)return!1;let r={sid:this.wsId,token:this.wsToken,type:t,data:e,channel:s};return this.ws.send(JSON.stringify(r)),!0}connect(t,e,s){this.sseClient=new EventSource(this.baseURL+`/sse/connect?sbpk=${this.pubKey}`),this.sseClient.onerror=r=>{console.error(r)},this.sseClient.onmessage=r=>{try{let n=JSON.parse(r.data);n.type==this.types.init?(this.wsId=n.data,this.wsToken=t,this.send(this.types.auth,t)):n.type==this.types.token?e(this.wsToken):s(n)}catch(n){console.error(n)}}}send(t,e,s){if(this.sseClient==null||this.sseClient.readyState==2)return!1;let r={sid:this.wsId,token:this.wsToken,type:t,data:e,channel:s};return(async()=>await this.req(this.wsToken,"POST","/sse/msg",r))(),!0}generateId(){let t=new Date().getTime();return"R"+"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(s){let r=(t+Math.random()*16)%16|0;return t=Math.floor(t/16),(s=="x"?r:r&3|8).toString(16)})}async socialLogin(t){let e=this.generateId(),s=`${this.baseURL}/oauth/login?provider=${t}&reqid=${e}&sbpk=${this.pubKey}`;return window.open(s,"_blank"),await this.checkExternalUser(1,e)}timeout=t=>new Promise(e=>setTimeout(e,t));async checkExternalUser(t,e){if(t>=950)return{token:"",email:"",name:"",first:"",last:"",avatarUrl:""};let s=await this.req("","GET",`/oauth/get-user?reqid=${e}`);return!s.ok||!s.content?(t++,await this.timeout(1750),await this.checkExternalUser(t,e)):s.content}};export{c as Backend};
|
package/dist/module/backend.d.ts
CHANGED
|
@@ -61,6 +61,18 @@ export declare class Backend {
|
|
|
61
61
|
ok: boolean;
|
|
62
62
|
content: any;
|
|
63
63
|
}>;
|
|
64
|
+
addUser(token: string, email: string, password: string): Promise<{
|
|
65
|
+
ok: boolean;
|
|
66
|
+
content: any;
|
|
67
|
+
}>;
|
|
68
|
+
removeUser(token: string, userId: string): Promise<{
|
|
69
|
+
ok: boolean;
|
|
70
|
+
content: any;
|
|
71
|
+
}>;
|
|
72
|
+
users(token: string): Promise<{
|
|
73
|
+
ok: boolean;
|
|
74
|
+
content: any;
|
|
75
|
+
}>;
|
|
64
76
|
create(token: string, repo: string, doc: any): Promise<{
|
|
65
77
|
ok: boolean;
|
|
66
78
|
content: any;
|
|
@@ -93,10 +105,18 @@ export declare class Backend {
|
|
|
93
105
|
ok: boolean;
|
|
94
106
|
content: any;
|
|
95
107
|
}>;
|
|
108
|
+
deleteBulk(token: string, repo: string, filters: any): Promise<{
|
|
109
|
+
ok: boolean;
|
|
110
|
+
content: any;
|
|
111
|
+
}>;
|
|
96
112
|
count(token: string, repo: string, filters: any): Promise<{
|
|
97
113
|
ok: boolean;
|
|
98
114
|
content: any;
|
|
99
115
|
}>;
|
|
116
|
+
search(token: string, repo: string, keywords: string): Promise<{
|
|
117
|
+
ok: boolean;
|
|
118
|
+
content: any;
|
|
119
|
+
}>;
|
|
100
120
|
storeFile(token: string, form: HTMLFormElement): Promise<{
|
|
101
121
|
ok: boolean;
|
|
102
122
|
content: any;
|
package/dist/module/backend.js
CHANGED
|
@@ -30,9 +30,9 @@ export class Backend {
|
|
|
30
30
|
auth: "auth",
|
|
31
31
|
join: "join",
|
|
32
32
|
chanIn: "chan_in",
|
|
33
|
-
presence: "presence"
|
|
33
|
+
presence: "presence",
|
|
34
34
|
};
|
|
35
|
-
this.timeout = (ms) => new Promise(resolve => setTimeout(resolve, ms));
|
|
35
|
+
this.timeout = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
36
36
|
this.pubKey = key;
|
|
37
37
|
if (region) {
|
|
38
38
|
if (region == "dev") {
|
|
@@ -57,7 +57,7 @@ export class Backend {
|
|
|
57
57
|
rawBody = ct == "application/json" ? JSON.stringify(body) : body;
|
|
58
58
|
}
|
|
59
59
|
let headers = {
|
|
60
|
-
"SB-PUBLIC-KEY": this.pubKey
|
|
60
|
+
"SB-PUBLIC-KEY": this.pubKey,
|
|
61
61
|
};
|
|
62
62
|
if (ct && ct.length) {
|
|
63
63
|
headers["Content-Type"] = ct;
|
|
@@ -68,7 +68,7 @@ export class Backend {
|
|
|
68
68
|
const resp = yield fetch(`${this.baseURL}${path}`, {
|
|
69
69
|
method: method,
|
|
70
70
|
headers: headers,
|
|
71
|
-
body: rawBody
|
|
71
|
+
body: rawBody,
|
|
72
72
|
});
|
|
73
73
|
var content = null;
|
|
74
74
|
if (resp.status > 299) {
|
|
@@ -106,6 +106,22 @@ export class Backend {
|
|
|
106
106
|
return yield this.req(token, "GET", "/me");
|
|
107
107
|
});
|
|
108
108
|
}
|
|
109
|
+
addUser(token, email, password) {
|
|
110
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
111
|
+
const body = { email: email, password: password };
|
|
112
|
+
return yield this.req(token, "POST", "/account/users", body);
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
removeUser(token, userId) {
|
|
116
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
117
|
+
return yield this.req(token, "DELETE", `/account/users/${userId}`);
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
users(token) {
|
|
121
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
122
|
+
return yield this.req(token, "GET", "/account/users");
|
|
123
|
+
});
|
|
124
|
+
}
|
|
109
125
|
create(token, repo, doc) {
|
|
110
126
|
return __awaiter(this, void 0, void 0, function* () {
|
|
111
127
|
return yield this.req(token, "POST", `/db/${repo}`, doc);
|
|
@@ -146,11 +162,23 @@ export class Backend {
|
|
|
146
162
|
return yield this.req(token, "DELETE", `/db/${repo}/${id}`);
|
|
147
163
|
});
|
|
148
164
|
}
|
|
165
|
+
deleteBulk(token, repo, filters) {
|
|
166
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
167
|
+
const x = btoa(JSON.stringify(filters));
|
|
168
|
+
return yield this.req(token, "DELETE", `/db/${repo}?bulk=1&x=${x}`);
|
|
169
|
+
});
|
|
170
|
+
}
|
|
149
171
|
count(token, repo, filters) {
|
|
150
172
|
return __awaiter(this, void 0, void 0, function* () {
|
|
151
173
|
return yield this.req(token, "POST", `/db/count/${repo}`, filters);
|
|
152
174
|
});
|
|
153
175
|
}
|
|
176
|
+
search(token, repo, keywords) {
|
|
177
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
178
|
+
const data = { col: repo, keywords: keywords };
|
|
179
|
+
return yield this.req(token, "POST", "/search", data);
|
|
180
|
+
});
|
|
181
|
+
}
|
|
154
182
|
storeFile(token, form) {
|
|
155
183
|
return __awaiter(this, void 0, void 0, function* () {
|
|
156
184
|
let fd = new FormData(form);
|
|
@@ -171,7 +199,9 @@ export class Backend {
|
|
|
171
199
|
}
|
|
172
200
|
connectWS(token, onAuth, onMessage) {
|
|
173
201
|
this.ws = new WebSocket(this.wsURL + "/ws");
|
|
174
|
-
this.ws.onerror = (e) => {
|
|
202
|
+
this.ws.onerror = (e) => {
|
|
203
|
+
console.error(e);
|
|
204
|
+
};
|
|
175
205
|
this.ws.onmessage = (e) => {
|
|
176
206
|
try {
|
|
177
207
|
let pl = JSON.parse(e.data);
|
|
@@ -201,14 +231,16 @@ export class Backend {
|
|
|
201
231
|
token: this.wsToken,
|
|
202
232
|
type: t,
|
|
203
233
|
data: data,
|
|
204
|
-
channel: channel
|
|
234
|
+
channel: channel,
|
|
205
235
|
};
|
|
206
236
|
this.ws.send(JSON.stringify(pl));
|
|
207
237
|
return true;
|
|
208
238
|
}
|
|
209
239
|
connect(token, onAuth, onMessage) {
|
|
210
240
|
this.sseClient = new EventSource(this.baseURL + `/sse/connect?sbpk=${this.pubKey}`);
|
|
211
|
-
this.sseClient.onerror = (e) => {
|
|
241
|
+
this.sseClient.onerror = (e) => {
|
|
242
|
+
console.error(e);
|
|
243
|
+
};
|
|
212
244
|
this.sseClient.onmessage = (e) => {
|
|
213
245
|
try {
|
|
214
246
|
let pl = JSON.parse(e.data);
|
|
@@ -238,7 +270,7 @@ export class Backend {
|
|
|
238
270
|
token: this.wsToken,
|
|
239
271
|
type: t,
|
|
240
272
|
data: data,
|
|
241
|
-
channel: channel
|
|
273
|
+
channel: channel,
|
|
242
274
|
};
|
|
243
275
|
(() => __awaiter(this, void 0, void 0, function* () {
|
|
244
276
|
return yield this.req(this.wsToken, "POST", "/sse/msg", pl);
|
|
@@ -247,10 +279,10 @@ export class Backend {
|
|
|
247
279
|
}
|
|
248
280
|
generateId() {
|
|
249
281
|
let dt = new Date().getTime();
|
|
250
|
-
let uuid =
|
|
282
|
+
let uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
|
|
251
283
|
let r = (dt + Math.random() * 16) % 16 | 0;
|
|
252
284
|
dt = Math.floor(dt / 16);
|
|
253
|
-
return (c ==
|
|
285
|
+
return (c == "x" ? r : (r & 0x3) | 0x8).toString(16);
|
|
254
286
|
});
|
|
255
287
|
return "R" + uuid;
|
|
256
288
|
}
|
|
@@ -265,7 +297,14 @@ export class Backend {
|
|
|
265
297
|
checkExternalUser(count, reqId) {
|
|
266
298
|
return __awaiter(this, void 0, void 0, function* () {
|
|
267
299
|
if (count >= 950) {
|
|
268
|
-
return {
|
|
300
|
+
return {
|
|
301
|
+
token: "",
|
|
302
|
+
email: "",
|
|
303
|
+
name: "",
|
|
304
|
+
first: "",
|
|
305
|
+
last: "",
|
|
306
|
+
avatarUrl: "",
|
|
307
|
+
};
|
|
269
308
|
}
|
|
270
309
|
const res = yield this.req("", "GET", `/oauth/get-user?reqid=${reqId}`);
|
|
271
310
|
if (!res.ok || !res.content) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/backend.ts"],"names":[],"mappings":";;;;;;;;;AA4BA,MAAM,OAAO,OAAO;
|
|
1
|
+
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/backend.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@staticbackend/js",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0-alpha.3",
|
|
4
4
|
"description": "JavaScript client library for StaticBackend",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
|
+
"module": "dist/module/index.js",
|
|
6
7
|
"scripts": {
|
|
7
|
-
"build": "rm -rf libs/* && tsc && parcel build src/index.ts && cp lib/*.d.ts dist/",
|
|
8
|
-
"build
|
|
8
|
+
"build:old": "rm -rf libs/* && tsc && parcel build src/index.ts && cp lib/*.d.ts dist/",
|
|
9
|
+
"build": "npm run clean && npm run build:esm && npm run build:module && npm run build:iife",
|
|
10
|
+
"clean": "rm -rf lib/ dist/",
|
|
11
|
+
"tsc": "tsc",
|
|
12
|
+
"build:types": "tsc --emitDeclarationOnly && cp lib/backend.d.ts dist/index.d.ts",
|
|
13
|
+
"build:esm": "esbuild --bundle --minify --format=esm --target=esnext --outfile=dist/index.js src/index.ts",
|
|
14
|
+
"build:module": "tsc -p tsconfig-module.json",
|
|
15
|
+
"build:iife": "esbuild --bundle --minify --global-name=sb --format=iife --outfile=dist/backend.js src/backend.ts"
|
|
9
16
|
},
|
|
10
17
|
"repository": {
|
|
11
18
|
"type": "git",
|
|
@@ -21,6 +28,7 @@
|
|
|
21
28
|
},
|
|
22
29
|
"homepage": "https://github.com/staticbackendhq/backend-js#readme",
|
|
23
30
|
"devDependencies": {
|
|
31
|
+
"esbuild": "^0.17.19",
|
|
24
32
|
"parcel": "^1.12.4",
|
|
25
33
|
"typescript": "^4.1.3"
|
|
26
34
|
},
|
package/dist/backend.d.ts
DELETED
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
export interface Payload {
|
|
2
|
-
sid: string;
|
|
3
|
-
type: string;
|
|
4
|
-
data: string;
|
|
5
|
-
channel: string;
|
|
6
|
-
token: string;
|
|
7
|
-
}
|
|
8
|
-
export interface ConvertData {
|
|
9
|
-
toPDF: boolean;
|
|
10
|
-
url: string;
|
|
11
|
-
fullpage: boolean;
|
|
12
|
-
}
|
|
13
|
-
export interface ExternalUser {
|
|
14
|
-
token: string;
|
|
15
|
-
email: string;
|
|
16
|
-
name: string;
|
|
17
|
-
first: string;
|
|
18
|
-
last: string;
|
|
19
|
-
avatarUrl: string;
|
|
20
|
-
}
|
|
21
|
-
export interface BulkUpdate {
|
|
22
|
-
update: any;
|
|
23
|
-
clauses: Array<Array<any>>;
|
|
24
|
-
}
|
|
25
|
-
export declare class Backend {
|
|
26
|
-
private baseURL;
|
|
27
|
-
private wsURL;
|
|
28
|
-
private ws;
|
|
29
|
-
private wsId;
|
|
30
|
-
private wsToken;
|
|
31
|
-
private sseClient;
|
|
32
|
-
private pubKey;
|
|
33
|
-
types: {
|
|
34
|
-
ok: string;
|
|
35
|
-
error: string;
|
|
36
|
-
init: string;
|
|
37
|
-
token: string;
|
|
38
|
-
joined: string;
|
|
39
|
-
chanOut: string;
|
|
40
|
-
dbCreated: string;
|
|
41
|
-
dbUpdated: string;
|
|
42
|
-
dbDeleted: string;
|
|
43
|
-
echo: string;
|
|
44
|
-
auth: string;
|
|
45
|
-
join: string;
|
|
46
|
-
chanIn: string;
|
|
47
|
-
presence: string;
|
|
48
|
-
};
|
|
49
|
-
constructor(key: string, region: string);
|
|
50
|
-
private rawreq;
|
|
51
|
-
private req;
|
|
52
|
-
register(email: string, pw: string): Promise<{
|
|
53
|
-
ok: boolean;
|
|
54
|
-
content: any;
|
|
55
|
-
}>;
|
|
56
|
-
login(email: string, pw: string): Promise<{
|
|
57
|
-
ok: boolean;
|
|
58
|
-
content: any;
|
|
59
|
-
}>;
|
|
60
|
-
me(token: any): Promise<{
|
|
61
|
-
ok: boolean;
|
|
62
|
-
content: any;
|
|
63
|
-
}>;
|
|
64
|
-
create(token: string, repo: string, doc: any): Promise<{
|
|
65
|
-
ok: boolean;
|
|
66
|
-
content: any;
|
|
67
|
-
}>;
|
|
68
|
-
createBulk(token: string, repo: string, docs: Array<any>): Promise<{
|
|
69
|
-
ok: boolean;
|
|
70
|
-
content: any;
|
|
71
|
-
}>;
|
|
72
|
-
list(token: string, repo: string): Promise<{
|
|
73
|
-
ok: boolean;
|
|
74
|
-
content: any;
|
|
75
|
-
}>;
|
|
76
|
-
getById(token: string, repo: string, id: string): Promise<{
|
|
77
|
-
ok: boolean;
|
|
78
|
-
content: any;
|
|
79
|
-
}>;
|
|
80
|
-
query(token: string, repo: string, filters: any): Promise<{
|
|
81
|
-
ok: boolean;
|
|
82
|
-
content: any;
|
|
83
|
-
}>;
|
|
84
|
-
update(token: string, repo: string, id: string, doc: any): Promise<{
|
|
85
|
-
ok: boolean;
|
|
86
|
-
content: any;
|
|
87
|
-
}>;
|
|
88
|
-
updateBulk(token: string, repo: string, data: BulkUpdate): Promise<{
|
|
89
|
-
ok: boolean;
|
|
90
|
-
content: any;
|
|
91
|
-
}>;
|
|
92
|
-
delete(token: string, repo: string, id: string): Promise<{
|
|
93
|
-
ok: boolean;
|
|
94
|
-
content: any;
|
|
95
|
-
}>;
|
|
96
|
-
count(token: string, repo: string, filters: any): Promise<{
|
|
97
|
-
ok: boolean;
|
|
98
|
-
content: any;
|
|
99
|
-
}>;
|
|
100
|
-
storeFile(token: string, form: HTMLFormElement): Promise<{
|
|
101
|
-
ok: boolean;
|
|
102
|
-
content: any;
|
|
103
|
-
}>;
|
|
104
|
-
resizeImage(token: string, maxWidth: number, form: HTMLFormElement): Promise<{
|
|
105
|
-
ok: boolean;
|
|
106
|
-
content: any;
|
|
107
|
-
}>;
|
|
108
|
-
convertURLToX(token: string, data: ConvertData): Promise<{
|
|
109
|
-
ok: boolean;
|
|
110
|
-
content: any;
|
|
111
|
-
}>;
|
|
112
|
-
connectWS(token: string, onAuth: (tok: string) => void, onMessage: (pl: Payload) => void): void;
|
|
113
|
-
sendWS(t: string, data: string, channel?: string): boolean;
|
|
114
|
-
connect(token: string, onAuth: (tok: string) => void, onMessage: (pl: Payload) => void): void;
|
|
115
|
-
send(t: string, data: string, channel?: string): boolean;
|
|
116
|
-
private generateId;
|
|
117
|
-
socialLogin(provider: "twitter" | "google" | "facebook"): Promise<ExternalUser>;
|
|
118
|
-
private timeout;
|
|
119
|
-
private checkExternalUser;
|
|
120
|
-
}
|
package/dist/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { Backend } from "./backend";
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["backend.ts","index.ts"],"names":[],"mappings":";AA4BA,aAAA,SAAA,EAAA,EAAA,GAAA,KAAA,aAAA,GAAA,MAAA,IAAA,UAAA,qCAAA,SAAA,EAAA,EAAA,GAAA,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,OAAA,IAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,cAAA,EAAA,UAAA,IAAA,EAAA,UAAA,GAAA,OAAA,eAAA,EAAA,EAAA,IAAA,IAAA,SAAA,EAAA,EAAA,EAAA,GAAA,OAAA,GAAA,EAAA,EAAA,UAAA,GAAA,GAAA,EAAA,EAAA,GAAA,EAAA,IAAA,EAAA,MAAA,KAAA,WAAA,SAAA,EAAA,EAAA,EAAA,GAAA,OAAA,IAAA,IAAA,EAAA,UAAA,SAAA,EAAA,GAAA,SAAA,EAAA,GAAA,IAAA,EAAA,EAAA,KAAA,IAAA,MAAA,GAAA,EAAA,IAAA,SAAA,EAAA,GAAA,IAAA,EAAA,EAAA,MAAA,IAAA,MAAA,GAAA,EAAA,IAAA,SAAA,EAAA,GAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,QAAA,EAAA,EAAA,MAAA,aAAA,EAAA,EAAA,IAAA,EAAA,SAAA,GAAA,EAAA,MAAA,KAAA,EAAA,GAAA,GAAA,EAAA,EAAA,MAAA,EAAA,GAAA,KAAA,WAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAAA,QAAA,aAAA,EAAa,IAAA,EAAA,WA0BA,SAAA,EAAA,EAAa,GAAc,EAAA,KAAA,GAzB/B,KAAA,QAAkB,gCAClB,KAAA,MAAgB,8BAChB,KAAA,GAAgB,KAChB,KAAA,KAAe,KACf,KAAA,QAAkB,KAClB,KAAA,UAAY,KACZ,KAAA,OAAiB,GAEzB,KAAA,MAAQ,CACP,GAAI,KACJ,MAAO,QACP,KAAM,OACN,MAAO,QACP,OAAQ,SACR,QAAS,WACT,UAAW,aACX,UAAW,aACX,UAAW,aACX,KAAM,OACN,KAAM,OACN,KAAM,OACN,OAAQ,UACR,SAAU,YA0OH,KAAA,QAAU,SAAC,GAAO,OAAA,IAAI,QAAQ,SAAA,GAAW,OAAA,WAAW,EAAS,MAtO/D,KAAA,OAAS,EAEV,IACW,OAAV,GACE,KAAA,QAAU,wBACV,KAAA,MAAQ,uBACH,EAAO,OAAS,IACrB,KAAA,QAAqB,WAAA,OAAA,EAA1B,sBACK,KAAA,MAAiB,SAAA,OAAA,EAAtB,wBAGK,KAAA,QAAU,EACV,KAAA,MAAQ,EAAO,QAAQ,QAAS,SAvCzC,OAAA,EAAA,EAAA,CAAA,CAAA,IAAA,SA4CsB,MAAA,SAAA,EAAY,EAAe,EAAgB,EAAc,GA5C/E,OAAA,EAAA,UAAA,OAAA,EAAA,mBAAA,KAAA,SAAA,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,OAAA,mBAAA,KAAA,SAAA,GAAA,OAAA,OAAA,EAAA,KAAA,EAAA,MAAA,KAAA,EA+DsB,OA/DtB,EAAA,KAAA,EA8CO,EAAU,KACV,IACH,EAAgB,oBAAN,EAA2B,KAAK,UAAU,GAAQ,GAGzD,EAAU,CACI,gBAAA,KAAK,QAGnB,GAAM,EAAG,SACZ,EAAQ,gBAAkB,GAGvB,IACH,EAAO,cAA8B,UAAA,OAAA,IA5DzC,EAAA,KAAA,EA+DsB,MAAS,GAAA,OAAA,KAAK,SAAU,OAAA,GAAQ,CAClD,OAAQ,EACR,QAAS,EACT,KAAM,IAlEV,KAAA,EAsEO,GAPE,EAAA,EAAA,KAMF,EAAe,OACf,EAAK,OAAS,KAAA,CAtErB,EAAA,KAAA,GAAA,MAuEoB,OAvEpB,EAAA,KAAA,GAuEoB,EAAK,OAvEzB,KAAA,GAwEW,OADP,EAAA,EAAA,KACO,EAAA,OAAA,SAAA,CAAE,IAAI,EAAO,QAAS,IAxEjC,KAAA,GA2EmB,OA3EnB,EAAA,KAAA,GA2EmB,EAAK,OA3ExB,KAAA,GA4EU,OADP,EAAA,EAAA,KACO,EAAA,OAAA,SAAA,CAAE,IAAI,EAAM,QAAS,IA5E/B,KAAA,GA+EU,OA/EV,EAAA,KAAA,GAAA,EAAA,GAAA,EAAA,MAAA,GA8EG,QAAQ,MAAR,EAAA,IACO,EAAA,OAAA,SAAA,CAAE,IAAI,EAAO,QAAO,EAAA,KA/E9B,KAAA,GAAA,IAAA,MAAA,OAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,EAAA,WAAA,CAAA,IAAA,MAmFmB,MAAA,SAAA,EAAe,EAAgB,EAAc,GAnFhE,OAAA,EAAA,UAAA,OAAA,EAAA,mBAAA,KAAA,SAAA,IAAA,OAAA,mBAAA,KAAA,SAAA,GAAA,OAAA,OAAA,EAAA,KAAA,EAAA,MAAA,KAAA,EAoFe,OApFf,EAAA,KAAA,EAoFe,KAAK,OAAO,mBAAoB,EAAO,EAAQ,EAAM,GApFpE,KAAA,EAAA,OAAA,EAAA,OAAA,SAAA,EAAA,MAAA,KAAA,EAAA,IAAA,MAAA,OAAA,EAAA,SAAA,EAAA,WAAA,CAAA,IAAA,WAuFgB,MAAA,SAAA,EAAe,GAvF/B,OAAA,EAAA,UAAA,OAAA,EAAA,mBAAA,KAAA,SAAA,IAAA,IAAA,EAAA,OAAA,mBAAA,KAAA,SAAA,GAAA,OAAA,OAAA,EAAA,KAAA,EAAA,MAAA,KAAA,EAyFe,OADP,EAAO,CAAE,MAAO,EAAO,SAAU,GAxFzC,EAAA,KAAA,EAyFe,KAAK,IAAI,GAAI,OAAQ,YAAa,GAzFjD,KAAA,EAAA,OAAA,EAAA,OAAA,SAAA,EAAA,MAAA,KAAA,EAAA,IAAA,MAAA,OAAA,EAAA,SAAA,EAAA,WAAA,CAAA,IAAA,QA4Fa,MAAA,SAAA,EAAe,GA5F5B,OAAA,EAAA,UAAA,OAAA,EAAA,mBAAA,KAAA,SAAA,IAAA,IAAA,EAAA,OAAA,mBAAA,KAAA,SAAA,GAAA,OAAA,OAAA,EAAA,KAAA,EAAA,MAAA,KAAA,EA8Fe,OADP,EAAO,CAAE,MAAO,EAAO,SAAU,GA7FzC,EAAA,KAAA,EA8Fe,KAAK,IAAI,GAAI,OAAQ,SAAU,GA9F9C,KAAA,EAAA,OAAA,EAAA,OAAA,SAAA,EAAA,MAAA,KAAA,EAAA,IAAA,MAAA,OAAA,EAAA,SAAA,EAAA,WAAA,CAAA,IAAA,KAiGU,MAAA,SAAA,GAjGV,OAAA,EAAA,UAAA,OAAA,EAAA,mBAAA,KAAA,SAAA,IAAA,OAAA,mBAAA,KAAA,SAAA,GAAA,OAAA,OAAA,EAAA,KAAA,EAAA,MAAA,KAAA,EAkGe,OAlGf,EAAA,KAAA,EAkGe,KAAK,IAAI,EAAO,MAAO,OAlGtC,KAAA,EAAA,OAAA,EAAA,OAAA,SAAA,EAAA,MAAA,KAAA,EAAA,IAAA,MAAA,OAAA,EAAA,SAAA,EAAA,WAAA,CAAA,IAAA,SAqGc,MAAA,SAAA,EAAe,EAAc,GArG3C,OAAA,EAAA,UAAA,OAAA,EAAA,mBAAA,KAAA,SAAA,IAAA,OAAA,mBAAA,KAAA,SAAA,GAAA,OAAA,OAAA,EAAA,KAAA,EAAA,MAAA,KAAA,EAsGe,OAtGf,EAAA,KAAA,EAsGe,KAAK,IAAI,EAAO,OAAe,OAAA,OAAA,GAAQ,GAtGtD,KAAA,EAAA,OAAA,EAAA,OAAA,SAAA,EAAA,MAAA,KAAA,EAAA,IAAA,MAAA,OAAA,EAAA,SAAA,EAAA,WAAA,CAAA,IAAA,aAyGkB,MAAA,SAAA,EAAe,EAAc,GAzG/C,OAAA,EAAA,UAAA,OAAA,EAAA,mBAAA,KAAA,SAAA,IAAA,OAAA,mBAAA,KAAA,SAAA,GAAA,OAAA,OAAA,EAAA,KAAA,EAAA,MAAA,KAAA,EA0Ge,OA1Gf,EAAA,KAAA,EA0Ge,KAAK,IAAI,EAAO,OAAe,OAAA,OAAA,EAAe,WAAA,GA1G7D,KAAA,EAAA,OAAA,EAAA,OAAA,SAAA,EAAA,MAAA,KAAA,EAAA,IAAA,MAAA,OAAA,EAAA,SAAA,EAAA,WAAA,CAAA,IAAA,OA6GY,MAAA,SAAA,EAAe,GA7G3B,OAAA,EAAA,UAAA,OAAA,EAAA,mBAAA,KAAA,SAAA,IAAA,OAAA,mBAAA,KAAA,SAAA,GAAA,OAAA,OAAA,EAAA,KAAA,EAAA,MAAA,KAAA,EA8Ge,OA9Gf,EAAA,KAAA,EA8Ge,KAAK,IAAI,EAAO,MAAc,OAAA,OAAA,IA9G7C,KAAA,EAAA,OAAA,EAAA,OAAA,SAAA,EAAA,MAAA,KAAA,EAAA,IAAA,MAAA,OAAA,EAAA,SAAA,EAAA,WAAA,CAAA,IAAA,UAiHe,MAAA,SAAA,EAAe,EAAc,GAjH5C,OAAA,EAAA,UAAA,OAAA,EAAA,mBAAA,KAAA,SAAA,IAAA,OAAA,mBAAA,KAAA,SAAA,GAAA,OAAA,OAAA,EAAA,KAAA,EAAA,MAAA,KAAA,EAkHe,OAlHf,EAAA,KAAA,EAkHe,KAAK,IAAI,EAAO,MAAc,OAAA,OAAA,EAAQ,KAAA,OAAA,IAlHrD,KAAA,EAAA,OAAA,EAAA,OAAA,SAAA,EAAA,MAAA,KAAA,EAAA,IAAA,MAAA,OAAA,EAAA,SAAA,EAAA,WAAA,CAAA,IAAA,QAqHa,MAAA,SAAA,EAAe,EAAc,GArH1C,OAAA,EAAA,UAAA,OAAA,EAAA,mBAAA,KAAA,SAAA,IAAA,OAAA,mBAAA,KAAA,SAAA,GAAA,OAAA,OAAA,EAAA,KAAA,EAAA,MAAA,KAAA,EAsHe,OAtHf,EAAA,KAAA,EAsHe,KAAK,IAAI,EAAO,OAAkB,UAAA,OAAA,GAAQ,GAtHzD,KAAA,EAAA,OAAA,EAAA,OAAA,SAAA,EAAA,MAAA,KAAA,EAAA,IAAA,MAAA,OAAA,EAAA,SAAA,EAAA,WAAA,CAAA,IAAA,SAyHc,MAAA,SAAA,EAAe,EAAc,EAAY,GAzHvD,OAAA,EAAA,UAAA,OAAA,EAAA,mBAAA,KAAA,SAAA,IAAA,OAAA,mBAAA,KAAA,SAAA,GAAA,OAAA,OAAA,EAAA,KAAA,EAAA,MAAA,KAAA,EA0He,OA1Hf,EAAA,KAAA,EA0He,KAAK,IAAI,EAAO,MAAc,OAAA,OAAA,EAAQ,KAAA,OAAA,GAAM,GA1H3D,KAAA,EAAA,OAAA,EAAA,OAAA,SAAA,EAAA,MAAA,KAAA,EAAA,IAAA,MAAA,OAAA,EAAA,SAAA,EAAA,WAAA,CAAA,IAAA,aA6HkB,MAAA,SAAA,EAAe,EAAc,GA7H/C,OAAA,EAAA,UAAA,OAAA,EAAA,mBAAA,KAAA,SAAA,IAAA,OAAA,mBAAA,KAAA,SAAA,GAAA,OAAA,OAAA,EAAA,KAAA,EAAA,MAAA,KAAA,EA8He,OA9Hf,EAAA,KAAA,EA8He,KAAK,IAAI,EAAO,MAAc,OAAA,OAAA,EAAe,WAAA,GA9H5D,KAAA,EAAA,OAAA,EAAA,OAAA,SAAA,EAAA,MAAA,KAAA,EAAA,IAAA,MAAA,OAAA,EAAA,SAAA,EAAA,WAAA,CAAA,IAAA,SAiIc,MAAA,SAAA,EAAe,EAAc,GAjI3C,OAAA,EAAA,UAAA,OAAA,EAAA,mBAAA,KAAA,SAAA,IAAA,OAAA,mBAAA,KAAA,SAAA,GAAA,OAAA,OAAA,EAAA,KAAA,EAAA,MAAA,KAAA,EAkIe,OAlIf,EAAA,KAAA,EAkIe,KAAK,IAAI,EAAO,SAAiB,OAAA,OAAA,EAAQ,KAAA,OAAA,IAlIxD,KAAA,EAAA,OAAA,EAAA,OAAA,SAAA,EAAA,MAAA,KAAA,EAAA,IAAA,MAAA,OAAA,EAAA,SAAA,EAAA,WAAA,CAAA,IAAA,QAqIa,MAAA,SAAA,EAAe,EAAc,GArI1C,OAAA,EAAA,UAAA,OAAA,EAAA,mBAAA,KAAA,SAAA,IAAA,OAAA,mBAAA,KAAA,SAAA,GAAA,OAAA,OAAA,EAAA,KAAA,EAAA,MAAA,KAAA,EAsIe,OAtIf,EAAA,KAAA,EAsIe,KAAK,IAAI,EAAO,OAAqB,aAAA,OAAA,GAAQ,GAtI5D,KAAA,EAAA,OAAA,EAAA,OAAA,SAAA,EAAA,MAAA,KAAA,EAAA,IAAA,MAAA,OAAA,EAAA,SAAA,EAAA,WAAA,CAAA,IAAA,YAyIiB,MAAA,SAAA,EAAe,GAzIhC,OAAA,EAAA,UAAA,OAAA,EAAA,mBAAA,KAAA,SAAA,IAAA,IAAA,EAAA,OAAA,mBAAA,KAAA,SAAA,GAAA,OAAA,OAAA,EAAA,KAAA,EAAA,MAAA,KAAA,EA2Ie,OADT,EAAK,IAAI,SAAS,GA1IxB,EAAA,KAAA,EA2Ie,KAAK,OAAO,GAAI,EAAO,OAAQ,kBAAmB,GA3IjE,KAAA,EAAA,OAAA,EAAA,OAAA,SAAA,EAAA,MAAA,KAAA,EAAA,IAAA,MAAA,OAAA,EAAA,SAAA,EAAA,WAAA,CAAA,IAAA,cA8ImB,MAAA,SAAA,EAAe,EAAkB,GA9IpD,OAAA,EAAA,UAAA,OAAA,EAAA,mBAAA,KAAA,SAAA,IAAA,IAAA,EAAA,OAAA,mBAAA,KAAA,SAAA,GAAA,OAAA,OAAA,EAAA,KAAA,EAAA,MAAA,KAAA,EAiJe,OAFT,EAAK,IAAI,SAAS,IACnB,OAAO,QAAS,EAAS,YAhJ9B,EAAA,KAAA,EAiJe,KAAK,OAAO,GAAI,EAAO,OAAQ,mBAAoB,GAjJlE,KAAA,EAAA,OAAA,EAAA,OAAA,SAAA,EAAA,MAAA,KAAA,EAAA,IAAA,MAAA,OAAA,EAAA,SAAA,EAAA,WAAA,CAAA,IAAA,gBAoJqB,MAAA,SAAA,EAAe,GApJpC,OAAA,EAAA,UAAA,OAAA,EAAA,mBAAA,KAAA,SAAA,IAAA,OAAA,mBAAA,KAAA,SAAA,GAAA,OAAA,OAAA,EAAA,KAAA,EAAA,MAAA,KAAA,EAqJe,OArJf,EAAA,KAAA,EAqJe,KAAK,IAAI,EAAO,OAAQ,iBAAkB,GArJzD,KAAA,EAAA,OAAA,EAAA,OAAA,SAAA,EAAA,MAAA,KAAA,EAAA,IAAA,MAAA,OAAA,EAAA,SAAA,EAAA,WAAA,CAAA,IAAA,YAwJW,MAAA,SAAA,EAAe,EAA+B,GAAgC,IAAA,EAAA,KAClF,KAAA,GAAK,IAAI,UAAU,KAAK,MAAQ,OAEhC,KAAA,GAAG,QAAU,SAAC,GAAQ,QAAQ,MAAM,IACpC,KAAA,GAAG,UAAY,SAAC,GAChB,IACC,IAAA,EAAc,KAAK,MAAM,EAAE,MAE3B,EAAG,MAAQ,EAAK,MAAM,MACzB,EAAK,KAAO,EAAG,KACf,EAAK,KAAK,EAAK,MAAM,KAAM,IACjB,EAAG,MAAQ,EAAK,MAAM,OAChC,EAAK,QAAU,EAAG,KAClB,EAAO,EAAG,OAEV,EAAU,GAEV,MAAO,GACR,QAAQ,MAAM,OA1KlB,CAAA,IAAA,SA+KQ,MAAA,SAAA,EAAW,EAAc,GAC3B,GAAW,MAAX,KAAK,GACD,OAAA,EAGJ,IAAA,EAAc,CACjB,IAAK,KAAK,KACV,MAAO,KAAK,QACZ,KAAM,EACN,KAAM,EACN,QAAS,GAGH,OADF,KAAA,GAAG,KAAK,KAAK,UAAU,KACrB,IA5LT,CAAA,IAAA,UA+LS,MAAA,SAAA,EAAe,EAA+B,GAAgC,IAAA,EAAA,KAChF,KAAA,UAAY,IAAI,YAAY,KAAK,QAA+B,qBAAA,OAAA,KAAK,SAIrE,KAAA,UAAU,QAAU,SAAC,GAAQ,QAAQ,MAAM,IAC3C,KAAA,UAAU,UAAY,SAAC,GACvB,IACC,IAAA,EAAc,KAAK,MAAM,EAAE,MAE3B,EAAG,MAAQ,EAAK,MAAM,MACzB,EAAK,KAAO,EAAG,KACf,EAAK,QAAU,EACf,EAAK,KAAK,EAAK,MAAM,KAAM,IACjB,EAAG,MAAQ,EAAK,MAAM,MAEhC,EAAO,EAAK,SAEZ,EAAU,GAEV,MAAO,GACR,QAAQ,MAAM,OApNlB,CAAA,IAAA,OAyNM,MAAA,SAAA,EAAW,EAAc,GAAgB,IAAA,EAAA,KACzC,GAAkB,MAAlB,KAAK,WAAkD,GAA7B,KAAK,UAAU,WACrC,OAAA,EAGJ,IAAA,EAAc,CACjB,IAAK,KAAK,KACV,MAAO,KAAK,QACZ,KAAM,EACN,KAAM,EACN,QAAS,GAOH,OAJK,EAAA,OAAA,OAAA,EAAA,mBAAA,KAAA,SAAA,IAAA,OAAA,mBAAA,KAAA,SAAA,GAAA,OAAA,OAAA,EAAA,KAAA,EAAA,MAAA,KAAA,EACE,OADF,EAAA,KAAA,EACE,KAAK,IAAI,KAAK,QAAS,OAAQ,WAAY,GAD7C,KAAA,EAAA,OAAA,EAAA,OAAA,SAAA,EAAA,MAAA,KAAA,EAAA,IAAA,MAAA,OAAA,EAAA,SAAA,EAAA,UAIL,IA1OT,CAAA,IAAA,aA6OmB,MAAA,WACb,IAAA,GAAK,IAAI,MAAO,UAMb,MAAA,IALI,uCAAuC,QAAQ,QAAS,SAAU,GACxE,IAAA,GAAK,EAAqB,GAAhB,KAAK,UAAiB,GAAK,EAElC,OADP,EAAK,KAAK,MAAM,EAAK,KACR,KAAL,EAAW,EAAS,EAAJ,EAAU,GAAM,SAAS,QAlPpD,CAAA,IAAA,cAwPmB,MAAA,SAAA,GAxPnB,OAAA,EAAA,UAAA,OAAA,EAAA,mBAAA,KAAA,SAAA,IAAA,IAAA,EAAA,EAAA,OAAA,mBAAA,KAAA,SAAA,GAAA,OAAA,OAAA,EAAA,KAAA,EAAA,MAAA,KAAA,EA8Pe,OALP,EAAQ,KAAK,aAEb,EAAS,GAAA,OAAA,KAAK,QAAgC,0BAAA,OAAA,EAAkB,WAAA,OAAA,EAAc,UAAA,OAAA,KAAK,QACzF,OAAO,KAAK,EAAK,UA5PnB,EAAA,KAAA,EA8Pe,KAAK,kBAAkB,EAAG,GA9PzC,KAAA,EAAA,OAAA,EAAA,OAAA,SAAA,EAAA,MAAA,KAAA,EAAA,IAAA,MAAA,OAAA,EAAA,SAAA,EAAA,WAAA,CAAA,IAAA,oBAmQiC,MAAA,SAAA,EAAe,GAnQhD,OAAA,EAAA,UAAA,OAAA,EAAA,mBAAA,KAAA,SAAA,IAAA,IAAA,EAAA,EAAA,OAAA,mBAAA,KAAA,SAAA,GAAA,OAAA,OAAA,EAAA,KAAA,EAAA,MAAA,KAAA,EAoQM,KAAA,GAAS,KAAA,CApQf,EAAA,KAAA,EAAA,MAqQU,OAAA,EAAA,OAAA,SAAA,CAAC,MAAO,GAAI,MAAO,GAAI,KAAM,GAAI,MAAO,GAAI,KAAM,GAAI,UAAW,KArQ3E,KAAA,EAwQoB,OAxQpB,EAAA,KAAA,EAwQoB,KAAK,IAAI,GAAI,MAAgC,yBAAA,OAAA,IAxQjE,KAAA,EA6QM,IALE,EAAA,EAAA,MAKG,IAAO,EAAI,QAAA,CA7QtB,EAAA,KAAA,GAAA,MA+QS,OADN,IA9QH,EAAA,KAAA,EA+QS,KAAK,QAAQ,MA/QtB,KAAA,EAgRgB,OAhRhB,EAAA,KAAA,GAgRgB,KAAK,kBAAkB,EAAO,GAhR9C,KAAA,GAAA,OAAA,EAAA,OAAA,SAAA,EAAA,MAAA,KAAA,GAoRS,OADD,EAAO,EAAI,QACV,EAAA,OAAA,SAAA,GApRT,KAAA,GAAA,IAAA,MAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAa,GAAb,QAAA,QAAA;;AC5BS,aAAA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IAAA,QAAA,aAAA,EAAT,IAAA,EAAA,QAAA,aAAS,OAAA,eAAA,QAAA,UAAA,CAAA,YAAA,EAAA,IAAA,WAAA,OAAA,EAAA","file":"index.js","sourceRoot":"../src","sourcesContent":["export interface Payload {\n\tsid: string;\n\ttype: string;\n\tdata: string;\n\tchannel: string;\n\ttoken: string;\n}\n\nexport interface ConvertData {\n\ttoPDF: boolean;\n\turl: string;\n\tfullpage: boolean;\n}\n\nexport interface ExternalUser {\n\ttoken: string;\n\temail: string;\n\tname: string;\n\tfirst: string;\n\tlast: string;\n\tavatarUrl: string;\n}\n\nexport interface BulkUpdate {\n\tupdate: any;\n\tclauses: Array<Array<any>>;\n}\n\nexport class Backend {\n\tprivate baseURL: string = \"https://na1.staticbackend.com\";\n\tprivate wsURL: string = \"wss://na1.staticbackend.com\";\n\tprivate ws: WebSocket = null;\n\tprivate wsId: string = null;\n\tprivate wsToken: string = null;\n\tprivate sseClient = null;\n\tprivate pubKey: string = \"\";\n\n\ttypes = {\n\t\tok: \"ok\",\n\t\terror: \"error\",\n\t\tinit: \"init\",\n\t\ttoken: \"token\",\n\t\tjoined: \"joined\",\n\t\tchanOut: \"chan_out\",\n\t\tdbCreated: \"db_created\",\n\t\tdbUpdated: \"db_updated\",\n\t\tdbDeleted: \"db_deleted\",\n\t\techo: \"echo\",\n\t\tauth: \"auth\",\n\t\tjoin: \"join\",\n\t\tchanIn: \"chan_in\",\n\t\tpresence: \"presence\"\n\t}\n\n\tconstructor(key: string, region: string) {\n\t\tthis.pubKey = key;\n\n\t\tif (region) {\n\t\t\tif (region == \"dev\") {\n\t\t\t\tthis.baseURL = \"http://localhost:8099\";\n\t\t\t\tthis.wsURL = \"ws://localhost:8099\";\n\t\t\t} else if (region.length < 10) {\n\t\t\t\tthis.baseURL = `https://${region}.staticbackend.com`;\n\t\t\t\tthis.wsURL = `wss://${region}.staticbackend.com`;\n\t\t\t} else {\n\t\t\t\t// custom base URL\n\t\t\t\tthis.baseURL = region;\n\t\t\t\tthis.wsURL = region.replace(\"https\", \"wss\");\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async rawreq(ct: string, token: string, method: string, path: string, body?: any) {\n\t\ttry {\n\t\t\tlet rawBody = null;\n\t\t\tif (body) {\n\t\t\t\trawBody = ct == \"application/json\" ? JSON.stringify(body) : body;\n\t\t\t}\n\n\t\t\tlet headers = {\n\t\t\t\t\"SB-PUBLIC-KEY\": this.pubKey\n\t\t\t};\n\n\t\t\tif (ct && ct.length) {\n\t\t\t\theaders[\"Content-Type\"] = ct;\n\t\t\t}\n\n\t\t\tif (token) {\n\t\t\t\theaders[\"Authorization\"] = `Bearer ${token}`;\n\t\t\t}\n\n\t\t\tconst resp = await fetch(`${this.baseURL}${path}`, {\n\t\t\t\tmethod: method,\n\t\t\t\theaders: headers,\n\t\t\t\tbody: rawBody\n\t\t\t});\n\n\t\t\tvar content: any = null;\n\t\t\tif (resp.status > 299) {\n\t\t\t\tcontent = await resp.text();\n\t\t\t\treturn { ok: false, content: content };\n\t\t\t}\n\n\t\t\tcontent = await resp.json();\n\t\t\treturn { ok: true, content: content };\n\t\t} catch (err) {\n\t\t\tconsole.error(err);\n\t\t\treturn { ok: false, content: err };\n\t\t}\n\t}\n\n\tprivate async req(token: string, method: string, path: string, body?: any) {\n\t\treturn await this.rawreq(\"application/json\", token, method, path, body);\n\t}\n\n\tasync register(email: string, pw: string) {\n\t\tconst body = { email: email, password: pw };\n\t\treturn await this.req(\"\", \"POST\", \"/register\", body);\n\t}\n\n\tasync login(email: string, pw: string) {\n\t\tconst body = { email: email, password: pw };\n\t\treturn await this.req(\"\", \"POST\", \"/login\", body);\n\t}\n\n\tasync me(token) {\n\t\treturn await this.req(token, \"GET\", \"/me\");\n\t}\n\n\tasync create(token: string, repo: string, doc) {\n\t\treturn await this.req(token, \"POST\", `/db/${repo}`, doc)\n\t}\n\n\tasync createBulk(token: string, repo: string, docs: Array<any>) {\n\t\treturn await this.req(token, \"POST\", `/db/${repo}?bulk=1`, docs)\n\t}\n\n\tasync list(token: string, repo: string) {\n\t\treturn await this.req(token, \"GET\", `/db/${repo}`);\n\t}\n\n\tasync getById(token: string, repo: string, id: string) {\n\t\treturn await this.req(token, \"GET\", `/db/${repo}/${id}`);\n\t}\n\n\tasync query(token: string, repo: string, filters) {\n\t\treturn await this.req(token, \"POST\", `/query/${repo}`, filters);\n\t}\n\n\tasync update(token: string, repo: string, id: string, doc) {\n\t\treturn await this.req(token, \"PUT\", `/db/${repo}/${id}`, doc)\n\t}\n\n\tasync updateBulk(token: string, repo: string, data: BulkUpdate) {\n\t\treturn await this.req(token, \"PUT\", `/db/${repo}?bulk=1`, data);\n\t}\n\n\tasync delete(token: string, repo: string, id: string) {\n\t\treturn await this.req(token, \"DELETE\", `/db/${repo}/${id}`);\n\t}\n\n\tasync count(token: string, repo: string, filters) {\n\t\treturn await this.req(token, \"POST\", `/db/count/${repo}`, filters);\n\t}\n\n\tasync storeFile(token: string, form: HTMLFormElement) {\n\t\tlet fd = new FormData(form);\n\t\treturn await this.rawreq(\"\", token, \"POST\", \"/storage/upload\", fd);\n\t}\n\n\tasync resizeImage(token: string, maxWidth: number, form: HTMLFormElement) {\n\t\tlet fd = new FormData(form);\n\t\tfd.append(\"width\", maxWidth.toString());\n\t\treturn await this.rawreq(\"\", token, \"POST\", \"/extra/resizeimg\", fd);\n\t}\n\n\tasync convertURLToX(token: string, data: ConvertData) {\n\t\treturn await this.req(token, \"POST\", \"/extra/htmltox\", data);\n\t}\n\n\tconnectWS(token: string, onAuth: (tok: string) => void, onMessage: (pl: Payload) => void) {\n\t\tthis.ws = new WebSocket(this.wsURL + \"/ws\");\n\n\t\tthis.ws.onerror = (e) => { console.error(e); }\n\t\tthis.ws.onmessage = (e) => {\n\t\t\ttry {\n\t\t\t\tlet pl: Payload = JSON.parse(e.data);\n\t\t\t\t// for the init msg we authenticate the connection\n\t\t\t\tif (pl.type == this.types.init) {\n\t\t\t\t\tthis.wsId = pl.data;\n\t\t\t\t\tthis.send(this.types.auth, token);\n\t\t\t\t} else if (pl.type == this.types.token) {\n\t\t\t\t\tthis.wsToken = pl.data;\n\t\t\t\t\tonAuth(pl.data);\n\t\t\t\t} else {\n\t\t\t\t\tonMessage(pl);\n\t\t\t\t}\n\t\t\t} catch (ex) {\n\t\t\t\tconsole.error(ex);\n\t\t\t}\n\t\t}\n\t}\n\n\tsendWS(t: string, data: string, channel?: string): boolean {\n\t\tif (this.ws == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet pl: Payload = {\n\t\t\tsid: this.wsId,\n\t\t\ttoken: this.wsToken,\n\t\t\ttype: t,\n\t\t\tdata: data,\n\t\t\tchannel: channel\n\t\t}\n\t\tthis.ws.send(JSON.stringify(pl));\n\t\treturn true;\n\t}\n\n\tconnect(token: string, onAuth: (tok: string) => void, onMessage: (pl: Payload) => void) {\n\t\tthis.sseClient = new EventSource(this.baseURL + `/sse/connect?sbpk=${this.pubKey}`);\n\n\n\n\t\tthis.sseClient.onerror = (e) => { console.error(e); }\n\t\tthis.sseClient.onmessage = (e) => {\n\t\t\ttry {\n\t\t\t\tlet pl: Payload = JSON.parse(e.data);\n\t\t\t\t// for the init msg we authenticate the connection\n\t\t\t\tif (pl.type == this.types.init) {\n\t\t\t\t\tthis.wsId = pl.data;\n\t\t\t\t\tthis.wsToken = token;\n\t\t\t\t\tthis.send(this.types.auth, token);\n\t\t\t\t} else if (pl.type == this.types.token) {\n\t\t\t\t\t//this.wsToken = pl.data;\n\t\t\t\t\tonAuth(this.wsToken);\n\t\t\t\t} else {\n\t\t\t\t\tonMessage(pl);\n\t\t\t\t}\n\t\t\t} catch (ex) {\n\t\t\t\tconsole.error(ex);\n\t\t\t}\n\t\t}\n\t}\n\n\tsend(t: string, data: string, channel?: string): boolean {\n\t\tif (this.sseClient == null || this.sseClient.readyState == 2) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet pl: Payload = {\n\t\t\tsid: this.wsId,\n\t\t\ttoken: this.wsToken,\n\t\t\ttype: t,\n\t\t\tdata: data,\n\t\t\tchannel: channel\n\t\t};\n\n\t\t(async () => {\n\t\t\treturn await this.req(this.wsToken, \"POST\", \"/sse/msg\", pl);\n\t\t})();\n\n\t\treturn true;\n\t}\n\n\tprivate generateId(): string {\n\t\tlet dt = new Date().getTime();\n\t\tlet uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n\t\t\tlet r = (dt + Math.random() * 16) % 16 | 0;\n\t\t\tdt = Math.floor(dt / 16);\n\t\t\treturn (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);\n\t\t});\n\t\treturn \"R\" + uuid;\n\t}\n\n\n\tasync socialLogin(provider: \"twitter\" | \"google\" | \"facebook\"): Promise<ExternalUser> {\n\t\tconst reqId = this.generateId();\n\t\n\t\tconst url = `${this.baseURL}/oauth/login?provider=${provider}&reqid=${reqId}&sbpk=${this.pubKey}`;\n\t\twindow.open(url, \"_blank\");\n\n\t\treturn await this.checkExternalUser(1, reqId);\n\t}\n\n\tprivate timeout = (ms) => new Promise(resolve => setTimeout(resolve, ms));\n\n\tprivate async checkExternalUser(count: number, reqId: string): Promise<ExternalUser> {\n\t\tif (count >= 950) { \n\t\t\treturn {token: \"\", email: \"\", name: \"\", first: \"\", last: \"\", avatarUrl: \"\"};\n\t\t}\n\n\t\tconst res = await this.req(\"\", \"GET\", `/oauth/get-user?reqid=${reqId}`);\n\t\t// the API will return: false as content if user hasn't completed the\n\t\t// process yet.\n\t\t// TODO: when a real error occur !res.ok, might be better to stop and \n\t\t// notify the caller.\n\t\tif (!res.ok || !res.content) {\n\t\t\tcount++;\n\t\t\tawait this.timeout(1750);\n\t\t\treturn await this.checkExternalUser(count, reqId);\n\t\t}\n\n\t\tconst user = res.content as ExternalUser;\n\t\treturn user;\n\t}\n}","export { Backend } from \"./backend\";"]}
|