stylus/vendor/db-to-cloud/db-to-cloud.min.js
2019-09-26 23:41:48 +08:00

2 lines
34 KiB
JavaScript

var dbToCloud=function(e){"use strict";function t(e,t,r,n,a,o,c){try{var u=e[o](c),s=u.value}catch(e){return void r(e)}u.done?t(s):Promise.resolve(s).then(n,a)}function r(e){return function(){var r=this,n=arguments;return new Promise((function(a,o){var c=e.apply(r,n);function u(e){t(c,a,o,u,s,"next",e)}function s(e){t(c,a,o,u,s,"throw",e)}u(void 0)}))}}function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(r,!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(r).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)))return;var r=[],n=!0,a=!1,o=void 0;try{for(var c,u=e[Symbol.iterator]();!(n=(c=u.next()).done)&&(r.push(c.value),!t||r.length!==t);n=!0);}catch(e){a=!0,o=e}finally{try{n||null==u.return||u.return()}finally{if(a)throw o}}return r}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function s({maxActiveReader:e=1/0}={}){let t,r,n=0;const a={read:e=>o(e,!1),write:e=>o(e,!0),length:0};return a;function o(o,u){const s=function({fn:e,block:t=!1,prev:r,next:n,q:a=c(),q2:o=(e.length?c():null)}){return{fn:e,block:t,prev:r,next:n,q:a,q2:o}}({fn:o,block:u});return r?(r.next=s,s.prev=r,r=s,t||(t=r)):t=r=s,a.length++,function o(){const c=t;if(!c||c.block&&c.prev||c.prev&&c.prev.block||n>=e)return;c.block||n++;t=c.next;let u;try{u=c.fn(c.q2&&c.q2.resolve)}catch(e){return c.q.reject(e),void s()}c.q2&&c.q2.promise.then(i);if(u&&u.then){const e=u.then(c.q.resolve,c.q.reject);c.q2||e.then(s)}else if(c.q.resolve(u),!c.q2)return void s();o();function s(){i()}function i(e){c.prev&&(c.prev.next=c.next),c.next&&(c.next.prev=c.prev),r===c&&(r=c.prev),c.block||n--,a.length--,e&&e(),o()}}(),s.q.promise}function c(){const e={};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e}}const i={};function p(e){return String.fromCharCode(parseInt(e.slice(1),16))}function f(e){return"%".concat("00".concat(e.charCodeAt(0).toString(16)).slice(-2))}Object.defineProperty(i,"__esModule",{value:!0}),i.encode=function(e){return btoa(encodeURIComponent(e).replace(/%[0-9A-F]{2}/g,p))},i.decode=function(e){return decodeURIComponent(Array.from(atob(e),f).join(""))};class l extends Error{constructor(e,t,r=t.message||"An error occured in db-to-cloud"){super(r),t.name&&(this.name=t.name),this.code=e,this.origin=t,Error.captureStackTrace&&Error.captureStackTrace(this,l)}}function h(e){return new Promise((t,r)=>{const n=new FileReader;n.onload=()=>{t(n.result)},n.onerror=()=>{r(new Error("Failed to convert blob object to text"))},n.readAsText(e)})}function d(e,t){const r=e.error;return"string"==typeof r?r.includes(t):r.error_summary&&r.error_summary.includes(t)}var m=Object.freeze({fsDrive:()=>{},github:function({owner:e,repo:t,getAccessToken:n,getOctokit:a=r(regeneratorRuntime.mark((function e(){var t,r,n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Promise.resolve(r);case 2:return t=e.sent,r=t.Octokit||t.default&&t.default.Octokit||t,e.next=6,Promise.resolve(octokitPluginThrottling);case 6:return n=e.sent,e.abrupt("return",r.plugin(n.default||n));case 8:case"end":return e.stop()}}),e)})))}){let o;const c=new Map,s={name:"github",init:function(){return h.apply(this,arguments)},get:m,put:v,post:function(e,t){return w.apply(this,arguments)},delete:function(e){return b.apply(this,arguments)},list:function(e){return d.apply(this,arguments)},shaCache:c};for(var p=0,f=Object.entries(s);p<f.length;p++){const e=u(f[p],2),t=e[0],n=e[1];"function"==typeof n&&(s[t]=function(){var e=r(regeneratorRuntime.mark((function e(...t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,n(...t);case 3:return e.abrupt("return",e.sent);case 6:if(e.prev=6,e.t0=e.catch(0),404!==e.t0.status){e.next=10;break}throw new l("ENOENT",e.t0);case 10:throw e.t0;case 11:case"end":return e.stop()}}),e,null,[[0,6]])})));return function(){return e.apply(this,arguments)}}())}return s;function h(){return(h=r(regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a();case 2:t=e.sent,e.t0=t,e.t1={onAbuseLimit:(e,t)=>(console.warn("Abuse detected for request ".concat(t.method," ").concat(t.url)),!1),onRateLimit:(e,t)=>(console.warn("Request quota exhausted for request ".concat(t.method," ").concat(t.url)),!1)},e.t2={auth:()=>r(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0="token ",e.next=3,n();case 3:return e.t1=e.sent,e.abrupt("return",e.t0.concat.call(e.t0,e.t1));case 5:case"end":return e.stop()}}),e)})))(),throttle:e.t1},o=new e.t0(e.t2);case 7:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function d(){return(d=r(regeneratorRuntime.mark((function r(n){var a,u,s,i,p,f,l,h;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,o.repos.getContents({owner:e,repo:t,path:n});case 2:for(a=r.sent,u=[],s=!0,i=!1,p=void 0,r.prev=7,f=a.data[Symbol.iterator]();!(s=(l=f.next()).done);s=!0)h=l.value,u.push(h.name),c.set(h.path,h.sha);r.next=15;break;case 11:r.prev=11,r.t0=r.catch(7),i=!0,p=r.t0;case 15:r.prev=15,r.prev=16,s||null==f.return||f.return();case 18:if(r.prev=18,!i){r.next=21;break}throw p;case 21:return r.finish(18);case 22:return r.finish(15);case 23:return r.abrupt("return",u);case 24:case"end":return r.stop()}}),r,null,[[7,11,15,23],[16,,18,22]])})))).apply(this,arguments)}function m(e){return x.apply(this,arguments)}function x(){return(x=r(regeneratorRuntime.mark((function r(n){var a;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,o.repos.getContents({owner:e,repo:t,path:n});case 2:return a=r.sent,c.set(a.data.path,a.data.sha),r.abrupt("return",i.decode(a.data.content));case 5:case"end":return r.stop()}}),r)})))).apply(this,arguments)}function v(e,t){return g.apply(this,arguments)}function g(){return(g=r(regeneratorRuntime.mark((function r(n,a){var u,s;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return u={owner:e,repo:t,path:n,message:"",content:i.encode(a)},c.has(n)&&(u.sha=c.get(n)),r.prev=2,r.next=5,o.repos.createOrUpdateFile(u);case 5:s=r.sent,r.next=17;break;case 8:if(r.prev=8,r.t0=r.catch(2),422!==r.t0.status||u.sha){r.next=16;break}return r.next=13,m(n);case 13:return r.next=15,v(n,a);case 15:return r.abrupt("return",r.sent);case 16:throw r.t0;case 17:c.set(n,s.data.content.sha);case 18:case"end":return r.stop()}}),r,null,[[2,8]])})))).apply(this,arguments)}function w(){return(w=r(regeneratorRuntime.mark((function r(n,a){var u;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,o.repos.createOrUpdateFile({owner:e,repo:t,path:n,message:"",content:i.encode(a)});case 3:u=r.sent,r.next=11;break;case 6:if(r.prev=6,r.t0=r.catch(0),422!==r.t0.status){r.next=10;break}throw new l("EEXIST",r.t0);case 10:throw r.t0;case 11:c.set(n,u.data.content.sha);case 12:case"end":return r.stop()}}),r,null,[[0,6]])})))).apply(this,arguments)}function b(){return(b=r(regeneratorRuntime.mark((function r(n){return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(c.has(n)){r.next=4;break}return r.next=4,m(n);case 4:return r.prev=4,r.next=7,o.repos.deleteFile({owner:e,repo:t,path:n,message:"",sha:c.get(n)});case 7:r.next=14;break;case 9:if(r.prev=9,r.t0=r.catch(4),404!==r.t0.status){r.next=13;break}return r.abrupt("return");case 13:throw r.t0;case 14:case"end":return r.stop()}}),r,null,[[4,9]])})))).apply(this,arguments)}},dropbox:function({getAccessToken:e,clientId:t,fetch:n=fetch,getDropbox:a=r(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.resolve(o).then(e=>e.Dropbox||e.default.Dropbox));case 1:case"end":return e.stop()}}),e)})))}){let o;return{name:"dropbox",init:function(){return c.apply(this,arguments)},get:function(e){return s.apply(this,arguments)},put:function(e,t){return i.apply(this,arguments)},post:function(e,t){return p.apply(this,arguments)},delete:function(e){return f.apply(this,arguments)},list:function(e){return u.apply(this,arguments)}};function c(){return(c=r(regeneratorRuntime.mark((function r(){var c;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,a();case 2:return c=r.sent,o=new c({fetch:n,clientId:t}),r.t0=o,r.next=7,e(o);case 7:r.t1=r.sent,r.t0.setAccessToken.call(r.t0,r.t1);case 9:case"end":return r.stop()}}),r)})))).apply(this,arguments)}function u(){return(u=r(regeneratorRuntime.mark((function e(t){var r,n,a,c,u,s,i,p,f,l,h,d,m,x;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=[],e.next=3,o.filesListFolder({path:"/".concat(t)});case 3:for(n=e.sent,a=!0,c=!1,u=void 0,e.prev=7,s=n.entries[Symbol.iterator]();!(a=(i=s.next()).done);a=!0)p=i.value,r.push(p.name);e.next=15;break;case 11:e.prev=11,e.t0=e.catch(7),c=!0,u=e.t0;case 15:e.prev=15,e.prev=16,a||null==s.return||s.return();case 18:if(e.prev=18,!c){e.next=21;break}throw u;case 21:return e.finish(18);case 22:return e.finish(15);case 23:if(n.has_more){e.next=25;break}return e.abrupt("return",r);case 25:f=n.cursor;case 26:if(!n.has_more){e.next=52;break}return e.next=29,o.filesListFolderContinue({cursor:f});case 29:for(n=e.sent,f=n.cursor,l=!0,h=!1,d=void 0,e.prev=34,m=n.entries[Symbol.iterator]();!(l=(x=m.next()).done);l=!0)p=x.value,r.push(p.name);e.next=42;break;case 38:e.prev=38,e.t1=e.catch(34),h=!0,d=e.t1;case 42:e.prev=42,e.prev=43,l||null==m.return||m.return();case 45:if(e.prev=45,!h){e.next=48;break}throw d;case 48:return e.finish(45);case 49:return e.finish(42);case 50:e.next=26;break;case 52:return e.abrupt("return",r);case 53:case"end":return e.stop()}}),e,null,[[7,11,15,23],[16,,18,22],[34,38,42,50],[43,,45,49]])})))).apply(this,arguments)}function s(){return(s=r(regeneratorRuntime.mark((function e(t){var r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,o.filesDownload({path:"/".concat(t)});case 3:r=e.sent,e.next=11;break;case 6:if(e.prev=6,e.t0=e.catch(0),!d(e.t0,"not_found")){e.next=10;break}throw new l("ENOENT",e.t0);case 10:throw e.t0;case 11:if(!r.fileBinary){e.next=13;break}return e.abrupt("return",r.fileBinary.toString());case 13:return e.next=15,h(r.fileBlob);case 15:return e.abrupt("return",e.sent);case 16:case"end":return e.stop()}}),e,null,[[0,6]])})))).apply(this,arguments)}function i(){return(i=r(regeneratorRuntime.mark((function e(t,r){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,o.filesUpload({contents:r,path:"/".concat(t),mode:"overwrite",autorename:!1});case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function p(){return(p=r(regeneratorRuntime.mark((function e(t,r){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,o.filesUpload({contents:r,path:"/".concat(t),mode:"add",autorename:!1});case 3:e.next=10;break;case 5:if(e.prev=5,e.t0=e.catch(0),!d(e.t0,"conflict")){e.next=9;break}throw new l("EEXIST",e.t0);case 9:throw e.t0;case 10:case"end":return e.stop()}}),e,null,[[0,5]])})))).apply(this,arguments)}function f(){return(f=r(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,o.filesDelete({path:"/".concat(t)});case 3:e.next=10;break;case 5:if(e.prev=5,e.t0=e.catch(0),!d(e.t0,"not_found")){e.next=9;break}return e.abrupt("return");case 9:throw e.t0;case 10:case"end":return e.stop()}}),e,null,[[0,5]])})))).apply(this,arguments)}},onedrive:function({getAccessToken:e,fetch:t=fetch}){return{name:"onedrive",get:function(e){return s.apply(this,arguments)},put:function(e,t){return i.apply(this,arguments)},post:function(e,t){return p.apply(this,arguments)},delete:function(e){return f.apply(this,arguments)},list:function(e){return u.apply(this,arguments)}};function n(e){return a.apply(this,arguments)}function a(){return(a=r(regeneratorRuntime.mark((function r(n){var a,u,s,i,p,f,h,d,m,x;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return a=n.method,u=void 0===a?"GET":a,s=n.path,i=n.headers,p=n.format,f=void 0===p?"json":p,h=c(n,["method","path","headers","format"]),r.t0=t,r.t1="https://graph.microsoft.com/v1.0/me/drive/special/approot".concat(s),r.t2=o,r.t3=u,r.t4=o,r.t5="bearer ",r.next=9,e();case 9:return r.t6=r.sent,r.t7=r.t5.concat.call(r.t5,r.t6),r.t8={Authorization:r.t7},r.t9=i,r.t10=(0,r.t4)(r.t8,r.t9),r.t11={method:r.t3,headers:r.t10},r.t12=h,r.t13=(0,r.t2)(r.t11,r.t12),r.next=19,(0,r.t0)(r.t1,r.t13);case 19:if((d=r.sent).ok){r.next=26;break}return r.next=23,d.json();case 23:throw m=r.sent,x=m.error,new l(x.code,x);case 26:if(!f){r.next=30;break}return r.next=29,d[f]();case 29:return r.abrupt("return",r.sent);case 30:case"end":return r.stop()}}),r)})))).apply(this,arguments)}function u(){return(u=r(regeneratorRuntime.mark((function e(t){var r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t&&(t=":/".concat(t,":")),e.next=3,n({path:"".concat(t,"/children?select=name")});case 3:return r=e.sent,e.abrupt("return",r.value.map(e=>e.name));case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function s(){return(s=r(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,n({path:":/".concat(t,":/content"),format:"text"});case 3:return e.abrupt("return",e.sent);case 6:throw e.prev=6,e.t0=e.catch(0),"itemNotFound"===e.t0.code&&(e.t0.code="ENOENT"),e.t0;case 10:case"end":return e.stop()}}),e,null,[[0,6]])})))).apply(this,arguments)}function i(){return(i=r(regeneratorRuntime.mark((function e(t,r){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n({method:"PUT",path:":/".concat(t,":/content"),headers:{"Content-Type":"text/plain"},body:r});case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function p(){return(p=r(regeneratorRuntime.mark((function e(t,r){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,n({method:"PUT",path:":/".concat(t,":/content?@microsoft.graph.conflictBehavior=fail"),headers:{"Content-Type":"text/plain"},body:r});case 3:e.next=9;break;case 5:throw e.prev=5,e.t0=e.catch(0),"nameAlreadyExists"===e.t0.code&&(e.t0.code="EEXIST"),e.t0;case 9:case"end":return e.stop()}}),e,null,[[0,5]])})))).apply(this,arguments)}function f(){return(f=r(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,n({method:"DELETE",path:":/".concat(t,":"),format:null});case 3:e.next=10;break;case 5:if(e.prev=5,e.t0=e.catch(0),"itemNotFound"!==e.t0.code){e.next=9;break}return e.abrupt("return");case 9:throw e.t0;case 10:case"end":return e.stop()}}),e,null,[[0,5]])})))).apply(this,arguments)}},google:function({getAccessToken:e,fetch:t=fetch,FormData:n=FormData,Blob:a=Blob}){const u=new Map;let s;return{name:"google",get:function(e){return j.apply(this,arguments)},put:function(e,t){return E.apply(this,arguments)},post:O,delete:function(e){return C.apply(this,arguments)},list:function(e){return R.apply(this,arguments)},init:function(){return b.apply(this,arguments)},acquireLock:function(e){return f.apply(this,arguments)},releaseLock:function(){return h.apply(this,arguments)},fileMetaCache:u};function i(e,t){return p.apply(this,arguments)}function p(){return(p=r(regeneratorRuntime.mark((function e(t,r){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,k({method:"DELETE",path:"https://www.googleapis.com/drive/v3/files/".concat(t,"/revisions/").concat(r),format:null});case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function f(){return(f=r(regeneratorRuntime.mark((function e(t){var r,n,a,o,c,p;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=u.get("lock.json"),e.next=3,x(r.id,JSON.stringify({expire:Date.now()+60*t*1e3}));case 3:return n=e.sent,a=n.headRevisionId,e.next=7,k({path:"https://www.googleapis.com/drive/v3/files/".concat(r.id,"/revisions?fields=revisions(id)")});case 7:o=e.sent,c=1;case 9:if(!(c<o.revisions.length)){e.next=26;break}if((p=o.revisions[c].id)!==a){e.next=14;break}return s=a,e.abrupt("return");case 14:return e.next=16,k({path:"https://www.googleapis.com/drive/v3/files/".concat(r.id,"/revisions/").concat(p,"?alt=media")});case 16:if(!(e.sent.expire>Date.now())){e.next=21;break}return e.next=20,i(r.id,a);case 20:throw new l("EEXIST",new Error("failed to acquire lock"));case 21:return e.next=23,i(r.id,p);case 23:c++,e.next=9;break;case 26:throw new Error("cannot find lock revision");case 27:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function h(){return(h=r(regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=u.get("lock.json"),e.next=3,i(t.id,s);case 3:s=null;case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function d(e,t){return m.apply(this,arguments)}function m(){return(m=r(regeneratorRuntime.mark((function e(t,r){var n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t="https://www.googleapis.com/drive/v3/files?spaces=appDataFolder&fields=nextPageToken,files(id,name,headRevisionId)"+(t?"&"+t:""),e.next=3,k({path:t});case 3:n=e.sent,r(n);case 5:if(!n.nextPageToken){e.next=12;break}return e.next=8,k({path:"".concat(t,"&pageToken=").concat(n.nextPageToken)});case 8:n=e.sent,r(n),e.next=5;break;case 12:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function x(e,t){return v.apply(this,arguments)}function v(){return(v=r(regeneratorRuntime.mark((function e(t,r){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,k({method:"PATCH",path:"https://www.googleapis.com/upload/drive/v3/files/".concat(t,"?uploadType=media&fields=headRevisionId"),headers:{"Content-Type":"text/plain"},body:r});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function g(e){return w.apply(this,arguments)}function w(){return(w=r(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t&&(t="q=".concat(encodeURIComponent(t))),e.next=3,d(t,e=>{var t=!0,r=!1,n=void 0;try{for(var a,o=e.files[Symbol.iterator]();!(t=(a=o.next()).done);t=!0){const e=a.value;u.set(e.name,e)}}catch(e){r=!0,n=e}finally{try{t||null==o.return||o.return()}finally{if(r)throw n}}});case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function b(){return(b=r(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,g();case 2:if(u.has("lock.json")){e.next=5;break}return e.next=5,O("lock.json","{}");case 5:if(u.has("meta.json")){e.next=8;break}return e.next=8,O("meta.json","{}");case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function k(e){return y.apply(this,arguments)}function y(){return(y=r(regeneratorRuntime.mark((function r(n){var a,u,s,i,p,f,h,d,m,x;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return a=n.method,u=void 0===a?"GET":a,s=n.path,i=n.headers,p=n.format,f=void 0===p?"json":p,h=c(n,["method","path","headers","format"]),r.t0=t,r.t1=s,r.t2=o,r.t3=u,r.t4=o,r.t5="Bearer ",r.next=9,e();case 9:return r.t6=r.sent,r.t7=r.t5.concat.call(r.t5,r.t6),r.t8={Authorization:r.t7},r.t9=i,r.t10=(0,r.t4)(r.t8,r.t9),r.t11={method:r.t3,headers:r.t10},r.t12=h,r.t13=(0,r.t2)(r.t11,r.t12),r.next=19,(0,r.t0)(r.t1,r.t13);case 19:if((d=r.sent).ok){r.next=26;break}return r.next=23,d.json();case 23:throw m=r.sent,x=m.error,new l(x.code,x);case 26:if(!f){r.next=30;break}return r.next=29,d[f]();case 29:return r.abrupt("return",r.sent);case 30:case"end":return r.stop()}}),r)})))).apply(this,arguments)}function R(){return(R=r(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",[...u.values()].filter(e=>e.name.startsWith(t+"/")).map(e=>e.name.split("/")[1]));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function j(){return(j=r(regeneratorRuntime.mark((function e(t){var r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=u.get(t)){e.next=7;break}return e.next=4,g("name = '".concat(t,"'"));case 4:if(r=u.get(t)){e.next=7;break}throw new l("ENOENT",new Error("metaCache doesn't contain ".concat(t)));case 7:return e.prev=7,e.next=10,k({path:"https://www.googleapis.com/drive/v3/files/".concat(r.id,"?alt=media"),format:"text"});case 10:return e.abrupt("return",e.sent);case 13:throw e.prev=13,e.t0=e.catch(7),404===e.t0.code&&(e.t0.code="ENOENT"),e.t0;case 17:case"end":return e.stop()}}),e,null,[[7,13]])})))).apply(this,arguments)}function E(){return(E=r(regeneratorRuntime.mark((function e(t,r){var n,a;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(u.has(t)){e.next=4;break}return e.next=3,O(t,r);case 3:return e.abrupt("return",e.sent);case 4:return n=u.get(t),e.next=7,x(n.id,r);case 7:a=e.sent,n.headRevisionId=a.headRevisionId;case 9:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function O(e,t){return T.apply(this,arguments)}function T(){return(T=r(regeneratorRuntime.mark((function e(t,r){var o,c,s;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=new n,c={name:t,parents:["appDataFolder"]},o.append("metadata",new a([JSON.stringify(c)],{type:"application/json; charset=UTF-8"})),o.append("media",new a([r],{type:"text/plain"})),e.next=6,k({method:"POST",path:"https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart&fields=id,name,headRevisionId",body:o});case 6:s=e.sent,u.set(s.name,s);case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function C(){return(C=r(regeneratorRuntime.mark((function e(t){var r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=u.get(t)){e.next=3;break}return e.abrupt("return");case 3:return e.prev=3,e.next=6,k({method:"DELETE",path:"https://www.googleapis.com/drive/v3/files/".concat(r.id),format:null});case 6:e.next=13;break;case 8:if(e.prev=8,e.t0=e.catch(3),404!==e.t0.code){e.next=12;break}return e.abrupt("return");case 12:throw e.t0;case 13:case"end":return e.stop()}}),e,null,[[3,8]])})))).apply(this,arguments)}}});function x(e){let t,r=0;return()=>(r&&clearTimeout(r),r=setTimeout(n),t||(t=function(){const e={};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e}()),t.promise);function n(){Promise.resolve(e()).then(t.resolve,t.reject),r=0,t=null}}return e.dbToCloud=function({onGet:e,onPut:t,onDelete:n,onFirstSync:a,onWarn:o=console.error,compareRevision:c,getState:i,setState:p,lockExpire:f=60}){let l,h,d;const m=new Map,v=x(()=>p(l,h)),g=new Map,w=s();return{use:function(e){l=function(e){const t=Object.create(e);return t.get=function(){var t=r(regeneratorRuntime.mark((function t(r){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.t0=JSON,t.next=3,e.get(r);case 3:return t.t1=t.sent,t.abrupt("return",t.t0.parse.call(t.t0,t.t1));case 5:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),t.put=function(){var t=r(regeneratorRuntime.mark((function t(r,n){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.put(r,JSON.stringify(n));case 2:return t.abrupt("return",t.sent);case 3:case"end":return t.stop()}}),t)})));return function(e,r){return t.apply(this,arguments)}}(),t.post=function(){var t=r(regeneratorRuntime.mark((function t(r,n){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.post(r,JSON.stringify(n));case 2:return t.abrupt("return",t.sent);case 3:case"end":return t.stop()}}),t)})));return function(e,r){return t.apply(this,arguments)}}(),t.acquireLock||(t.acquireLock=function(e){return n.apply(this,arguments)},t.releaseLock=function(){return a.apply(this,arguments)}),t.getMeta||(t.getMeta=function(){return o.apply(this,arguments)},t.putMeta=function(e){return c.apply(this,arguments)}),t.peekChanges||(t.peekChanges=function(e){return u.apply(this,arguments)}),t;function n(){return(n=r(regeneratorRuntime.mark((function e(t){var r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this.post("lock.json",{expire:Date.now()+60*t*1e3});case 3:e.next=15;break;case 5:if(e.prev=5,e.t0=e.catch(0),"EEXIST"!==e.t0.code){e.next=14;break}return e.next=10,this.get("lock.json");case 10:if(r=e.sent,!(Date.now()>r.expire)){e.next=14;break}return e.next=14,this.delete("lock.json");case 14:throw e.t0;case 15:case"end":return e.stop()}}),e,this,[[0,5]])})))).apply(this,arguments)}function a(){return(a=r(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.delete("lock.json");case 2:case"end":return e.stop()}}),e,this)})))).apply(this,arguments)}function o(){return(o=r(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this.get("meta.json");case 3:return e.abrupt("return",e.sent);case 6:if(e.prev=6,e.t0=e.catch(0),"ENOENT"!==e.t0.code){e.next=10;break}return e.abrupt("return",{});case 10:throw e.t0;case 11:case"end":return e.stop()}}),e,this,[[0,6]])})))).apply(this,arguments)}function c(){return(c=r(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.put("meta.json",t);case 2:case"end":return e.stop()}}),e,this)})))).apply(this,arguments)}function u(){return(u=r(regeneratorRuntime.mark((function e(t){var r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getMeta();case 2:return r=e.sent,e.abrupt("return",r.lastChange!==t.lastChange);case 4:case"end":return e.stop()}}),e,this)})))).apply(this,arguments)}}(e)},start:function(){return b.apply(this,arguments)},stop:function(){return k.apply(this,arguments)},put:function(e,t){if(!h||!h.enabled)return;h.queue.push({_id:e,_rev:t,action:"put"}),v()},delete:function(e,t){if(!h||!h.enabled)return;h.queue.push({_id:e,_rev:t,action:"delete"}),v()},syncNow:C,drive:()=>l};function b(){return(b=r(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(l){e.next=2;break}throw new Error("cloud drive is undefined");case 2:if(!l.init){e.next=5;break}return e.next=5,l.init();case 5:return e.next=7,i(l);case 7:if(e.t0=e.sent,e.t0){e.next=10;break}e.t0={};case 10:if((h=e.t0).enabled=!0,h.queue||(h.queue=[]),null!=h.lastChange){e.next=16;break}return e.next=16,a();case 16:return e.next=18,C();case 18:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function k(){return(k=r(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return h.enabled=!1,e.next=3,w.write(r(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!l.uninit){e.next=3;break}return e.next=3,l.uninit();case 3:return e.next=5,v();case 5:case"end":return e.stop()}}),e)}))));case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function y(){return R.apply(this,arguments)}function R(){return(R=r(regeneratorRuntime.mark((function e(){var r,a,c,s,i,p,f,x,w,b,k,y,R,j,E,O,T,C,q;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,l.getMeta();case 2:if((d=e.sent).lastChange&&d.lastChange!==h.lastChange){e.next=5;break}return e.abrupt("return");case 5:if(r=[],h.lastChange){e.next=13;break}return e.next=9,l.list("docs");case 9:e.t0=e=>({action:"put",_id:e.slice(0,-5)}),r=e.sent.map(e.t0),e.next=25;break;case 13:a=Math.floor((d.lastChange-1)/100),c=Math.floor(h.lastChange/100);case 15:if(!(c<=a)){e.next=24;break}return e.next=18,l.get("changes/".concat(c,".json"));case 18:s=e.sent,m.set(c,s),r=r.concat(s),c++,e.next=15;break;case 24:r=r.slice(h.lastChange%100);case 25:for(i=new Map,p=!0,f=!1,x=void 0,e.prev=29,w=r[Symbol.iterator]();!(p=(b=w.next()).done);p=!0)k=b.value,i.set(k._id,k);e.next=37;break;case 33:e.prev=33,e.t1=e.catch(29),f=!0,x=e.t1;case 37:e.prev=37,e.prev=38,p||null==w.return||w.return();case 40:if(e.prev=40,!f){e.next=43;break}throw x;case 43:return e.finish(40);case 44:return e.finish(37);case 45:y=!0,R=!1,j=void 0,e.prev=48,E=i[Symbol.iterator]();case 50:if(y=(O=E.next()).done){e.next=76;break}if(T=u(O.value,2),C=T[0],"delete"!==(k=T[1]).action){e.next=57;break}return e.next=55,n(C,k._rev);case 55:e.next=72;break;case 57:if("put"!==k.action){e.next=72;break}return e.prev=58,e.next=61,l.get("docs/".concat(C,".json"));case 61:q=e.sent,e.next=70;break;case 64:if(e.prev=64,e.t2=e.catch(58),"ENOENT"!==e.t2.code){e.next=69;break}return o("Cannot find ".concat(C,". Is it deleted without updating the history?")),e.abrupt("continue",73);case 69:throw e.t2;case 70:return e.next=72,t(q);case 72:k._rev&&g.set(C,k._rev);case 73:y=!0,e.next=50;break;case 76:e.next=82;break;case 78:e.prev=78,e.t3=e.catch(48),R=!0,j=e.t3;case 82:e.prev=82,e.prev=83,y||null==E.return||E.return();case 85:if(e.prev=85,!R){e.next=88;break}throw j;case 88:return e.finish(85);case 89:return e.finish(82);case 90:return h.lastChange=d.lastChange,e.next=93,v();case 93:case"end":return e.stop()}}),e,null,[[29,33,37,45],[38,,40,44],[48,78,82,90],[58,64],[83,,85,89]])})))).apply(this,arguments)}function j(){return E.apply(this,arguments)}function E(){return(E=r(regeneratorRuntime.mark((function t(){var r,n,a,o,s,i,p,f,x,w,b,k,y,R,j,E,O,T,C,q,S,P;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(h.queue.length){t.next=2;break}return t.abrupt("return");case 2:for(r=h.queue.slice(),n=new Map,a=!0,o=!1,s=void 0,t.prev=7,i=r[Symbol.iterator]();!(a=(p=i.next()).done);a=!0)f=p.value,n.set(f._id,f);t.next=15;break;case 11:t.prev=11,t.t0=t.catch(7),o=!0,s=t.t0;case 15:t.prev=15,t.prev=16,a||null==i.return||i.return();case 18:if(t.prev=18,!o){t.next=21;break}throw s;case 21:return t.finish(18);case 22:return t.finish(15);case 23:x=[],w=!0,b=!1,k=void 0,t.prev=27,y=n.entries()[Symbol.iterator]();case 29:if(w=(R=y.next()).done){t.next=52;break}if(j=u(R.value,2),E=j[0],f=j[1],!(void 0!==(O=g.get(f._id))&&c(f._rev,O)<=0)){t.next=34;break}return t.abrupt("continue",49);case 34:if("delete"!==f.action){t.next=39;break}return t.next=37,l.delete("docs/".concat(E,".json"));case 37:t.next=47;break;case 39:if("put"!==f.action){t.next=47;break}return t.t1=l,t.t2="docs/".concat(E,".json"),t.next=44,e(E,f._rev);case 44:return t.t3=t.sent,t.next=47,t.t1.put.call(t.t1,t.t2,t.t3);case 47:g.set(E,f._rev),x.push(f);case 49:w=!0,t.next=29;break;case 52:t.next=58;break;case 54:t.prev=54,t.t4=t.catch(27),b=!0,k=t.t4;case 58:t.prev=58,t.prev=59,w||null==y.return||y.return();case 61:if(t.prev=61,!b){t.next=64;break}throw k;case 64:return t.finish(61);case 65:return t.finish(58);case 66:if(!d.lastChange){t.next=83;break}if(C=Math.floor(d.lastChange/100),!(q=d.lastChange%100)){t.next=78;break}if(t.t6=m.get(C),t.t6){t.next=75;break}return t.next=74,l.get("changes/".concat(C,".json"));case 74:t.t6=t.sent;case 75:t.t5=t.t6,t.next=79;break;case 78:t.t5=[];case 79:T=(T=t.t5).slice(0,q).concat(x),t.next=85;break;case 83:C=0,T=x;case 85:S=0;case 86:if(!(100*S<T.length)){t.next=94;break}return P=T.slice(100*S,100*(S+1)),t.next=90,l.put("changes/".concat(C+S,".json"),P);case 90:m.set(C+S,P);case 91:S++,t.next=86;break;case 94:return d.lastChange=(d.lastChange||0)+x.length,t.next=97,l.putMeta(d);case 97:return h.queue=h.queue.slice(r.length),h.lastChange=d.lastChange,t.next=101,v();case 101:case"end":return t.stop()}}),t,null,[[7,11,15,23],[16,,18,22],[27,54,58,66],[59,,61,65]])})))).apply(this,arguments)}function O(){return T.apply(this,arguments)}function T(){return(T=r(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,l.acquireLock(f);case 2:return e.prev=2,e.next=5,y();case 5:return e.next=7,j();case 7:return e.prev=7,e.next=10,l.releaseLock();case 10:return e.finish(7);case 11:case"end":return e.stop()}}),e,null,[[2,,7,11]])})))).apply(this,arguments)}function C(){return q.apply(this,arguments)}function q(){return(q=r(regeneratorRuntime.mark((function e(t=!0){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(h.enabled){e.next=2;break}throw new Error("Cannot sync now, the sync is not enabled");case 2:return e.next=4,w.write(r(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(h.queue.length||!t||!d){e.next=6;break}return e.next=3,l.peekChanges(d);case 3:if(e.sent){e.next=6;break}return e.abrupt("return");case 6:return e.next=8,O();case 8:case"end":return e.stop()}}),e)}))));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}},e.drive=m,e}({});