insite-subscriptions-client
Version:
Client-side subscriptions/publications for inSite
3 lines (2 loc) • 19.6 kB
JavaScript
var Mt=Object.defineProperty;var ft=o=>{throw TypeError(o)};var Nt=(o,s,t)=>s in o?Mt(o,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[s]=t;var i=(o,s,t)=>Nt(o,typeof s!="symbol"?s+"":s,t),dt=(o,s,t)=>s.has(o)||ft("Cannot "+t);var n=(o,s,t)=>(dt(o,s,"read from private field"),t?t.call(o):s.get(o)),c=(o,s,t)=>s.has(o)?ft("Cannot add the same private member more than once"):s instanceof WeakSet?s.add(o):s.set(o,t),l=(o,s,t,e)=>(dt(o,s,"write to private field"),e?e.call(o,t):s.set(o,t),t),S=(o,s,t)=>(dt(o,s,"access private method"),t);var St,Q,P,R=class{constructor(s,t,e=[],r,a=!0){i(this,"i");i(this,"type");i(this,"publicationName");i(this,"args");i(this,"handler");i(this,"immediately");i(this,"isActive");i(this,"start",()=>{P.sendMessage("s-s",this.type,this.publicationName,this.i,this.args,this.immediately),this.immediately=!0});if(!P)throw new Error("Subscription is not binded to WS. Do Subscription.bindTo(ws) first");this.i=St++,this.type=s,this.publicationName=t,this.args=e,this.handler=r,this.immediately=a&&!globalThis.__initials,Q.set(this.i,this),P.on("open",this.start),P.isOpen&&this.start(),globalThis.__initials?(this.isActive=!0,this.handler(globalThis.__initials.splice(0,1)[0])):this.isActive=!1}cancel(){Q.delete(this.i),P.off("open",this.start),P.sendMessage("s-u",this.i)}static bindTo(s){P=s,St=0,Q=new Map,P.on("message:s-c",(t,e)=>{let r=Q.get(t);r&&(r.isActive=!0,r.handler(e))}),P.on("close",()=>{for(let t of Q.values())t.isActive=!1}),P.on("server-change",()=>{for(let t of Q.values())t.handler(null)})}};import{removeOne as $t}from"@nesvet/n";var x=Symbol("update"),D=Symbol("getHandleUpdate"),y=Symbol("setHandleUpdate"),H=Symbol("getAsUpdates"),A=Symbol("getAsInitialUpdated"),G=Symbol("clear"),f=Symbol("subscribe"),g=Symbol("unsubscribe"),L=Symbol("renew"),j=Symbol("getSubscription"),Wt=Symbol("getHandleSubscription"),Ct=Symbol("setHandleSubscription");var Vt=(o,s)=>o>s?1:o<s?-1:0,Et=(o,s)=>o>s?-1:o<s?1:0,yt,gt,Ut,It,O=class extends Array{constructor(t,e){super();i(this,"sorted",[]);i(this,"handleUpdate");i(this,"sortDirection",0);i(this,"sortCompareFunction",null);i(this,It,this.update);i(this,Ut,this.getAsUpdates);i(this,gt,this.getAsInitialUpdated);i(this,yt,this.clear);e&&(this.handleUpdate=e),Array.isArray(t)&&this.update(t)}[D](){return this.handleUpdate}[y](t){return this.handleUpdate=t}update(t){let e=Object.assign([],{deleted:[],added:[]});if(t){let r=!1;for(let a of t)switch(a?.[0]){case"i":{let[,u,b]=a;b?(this.sortDirection=b,this.sortCompareFunction=b>0?Vt:Et,r=!0):(this.sortDirection=0,this.sortCompareFunction=null),this.length=0;for(let p of u)this.push(p),e.push(p),e.added.push(p);break}case"a":{let[,u]=a;this.includes(u)||(this.push(u),this.sortDirection&&(r=!0),e.push(u),e.added.push(u));break}case"d":{let[,u]=a;$t(this,u)&&e.deleted.push(u);break}default:this.clear()}r&&this.sortCompareFunction&&this.sort(this.sortCompareFunction)}else this.clear();return this.handleUpdate?.(this,e,t?.[0]?t:null),this}getAsUpdates(){return this.length||this.sortDirection?[["i",[...this],this.sortDirection]]:null}getAsInitialUpdated(){return Object.assign([...this.sorted],{added:[...this.sorted],deleted:[]})}clear(){this.length=0,this.sortDirection=0,this.sortCompareFunction=null}valueOf(){return this}get[(It=x,Ut=H,gt=A,yt=G,Symbol.toStringTag)](){return"SubscriptionArray"}};i(O,"updateSymbol",x),i(O,"getHandleUpdateSymbol",D),i(O,"setHandleUpdateSymbol",y),i(O,"getAsUpdatesSymbol",H),i(O,"getAsInitialUpdatedSymbol",A),i(O,"clearSymbol",G),i(O,"WithSubscription");var k=class extends O{constructor(t,e,r,a=!0){super(null,r);i(this,"publicationName");i(this,"params");i(this,"subscription",null);this.publicationName=t,this.params=e,a&&this.subscribe()}subscribe(){this.subscription||(this.subscription=new R("array",this.publicationName,this.params,t=>this.update(t)))}get[f](){return this.subscribe}unsubscribe(){this.subscription&&(this.subscription.cancel(),this.subscription=null)}get[g](){return this.unsubscribe}renew(t,e){this.subscription&&(this.unsubscribe(),t&&(Array.isArray(t)?e=t:this.publicationName=t),e&&(this.params=e),this.subscribe())}get[L](){return this.renew}[j](){return this.subscription}get[Symbol.toStringTag](){return"SubscriptionArrayWithSubscription"}};i(k,"subscribeSymbol",f),i(k,"unsubscribeSymbol",g),i(k,"renewSymbol",L),i(k,"getSubscriptionSymbol",j);O.WithSubscription=k;import Qt from"eventemitter3";import{debounce as Xt,StatefulPromise as ot}from"@nesvet/n";var U={};import qt from"eventemitter3";import{debounce as Kt,removeOne as At,StatefulPromise as nt}from"@nesvet/n";import{removeOne as Rt,unique as zt}from"@nesvet/n";function Jt(o){let s=document.createElement("script");s.textContent=`window.__insite_subscription_map_sort_function = function sort(a, b) { return ${Object.entries(o).map(([e,r])=>(e.includes(".")&&(e=e.replaceAll(".","?.")),r>0?`a.${e} > b.${e} ? 1 : a.${e} < b.${e} ? -1 :`:`a.${e} < b.${e} ? 1 : a.${e} > b.${e} ? -1 :`)).concat("0").join(" ")};}`,document.head.append(s);let t=globalThis.__insite_subscription_map_sort_function;return s.remove(),delete globalThis.__insite_subscription_map_sort_function,t}var vt,Tt,wt,xt,X,q,Y,I=class extends Map{constructor(t,e){super();i(this,"handleUpdate");c(this,X,new Map);i(this,"sortList",null);i(this,"sortCompareFunction",null);c(this,q,[]);i(this,"sorted",[]);c(this,Y);i(this,xt,this.update);i(this,wt,this.getAsUpdates);i(this,Tt,this.getAsInitialUpdated);i(this,vt,this.clear);e&&(this.handleUpdate=e),t&&this.update(t)}sort(){this.sortCompareFunction&&this.sorted.sort(this.sortCompareFunction)}[D](){return this.handleUpdate}[y](t){return this.handleUpdate=t}set Item(t){if(l(this,Y,t),this.size)for(let[e,r]of this)this.set(e,new t(this,r))}get Item(){return n(this,Y)}update(t){let e=Object.assign([],{added:[],deleted:[]});if(t){let r=!1,a=n(this,Y),u=n(this,X);for(let b of t)switch(b?.[0]){case"i":{let[,p,h]=b;if(h?(this.sortList=h,this.sortCompareFunction=Jt(h),l(this,q,zt(Object.keys(h).map(m=>m.replace(/\..+/,"")))),r=!0):(this.sortList=null,this.sortCompareFunction=null,l(this,q,[])),this.size){let m=new Map;for(let d of p)m.set(d._id,d);for(let[d,T]of this){let w=m.get(d);if(w){let Bt=u.get(d);if(a)T.update(w);else{for(let Ft in Bt)delete T[Ft];Object.assign(T,w)}u.set(d,w),e.push(T),m.delete(d)}else a?T.delete():this.delete(d),u.delete(d),e.deleted.push(d)}for(let[d,T]of m){let w=a?new a(this,T):{...T};this.set(d,w),u.set(d,T),e.push(w),e.added.push(w)}this.sortList&&(this.sorted=p.map(d=>this.get(d._id)))}else for(let m of p){let d=a?new a(this,m):{...m};this.set(d._id,d),this.sorted.push(d),u.set(d._id,m),e.push(d),e.added.push(d)}break}case"c":case"u":{let[,p]=b,h=this.get(p._id);if(h){let m=b[2]===!0,d=m?Object.keys(p):b[2],T=u.get(h._id);if(a)h.update(p);else{if(!m)for(let w in T)delete h[w];Object.assign(h,p)}m&&(p=Object.assign(T,p)),this.sortList&&!r&&(!d||d.some(w=>n(this,q).includes(w)))&&(r=!0)}else h=a?new a(this,p):{...p},this.set(h._id,h),this.sorted.push(h),this.sortList&&(r=!0),e.added.push(h);u.set(h._id,p),e.push(h);break}case"d":{let[,p]=b,h=this.get(p);h&&(a?h.delete():this.delete(p),u.delete(p),Rt(this.sorted,h),e.deleted.push(p));break}default:this.clear()}r&&this.sort()}else this.clear();return this.handleUpdate?.(this,e,t?.[0]?t:null),this}getAsUpdates(){return this.size||this.sortList?[["i",[...n(this,X).values()],this.sortList]]:null}getAsInitialUpdated(){return Object.assign([...this.sorted],{added:[...this.sorted],deleted:[]})}clear(){super.clear(),n(this,X).clear(),this.sorted=[],this.sortList=null,this.sortCompareFunction=null,l(this,q,[])}valueOf(){return this.sorted}get[(xt=x,wt=H,Tt=A,vt=G,Symbol.toStringTag)](){return"SubscriptionMap"}};X=new WeakMap,q=new WeakMap,Y=new WeakMap,i(I,"updateSymbol",x),i(I,"getHandleUpdateSymbol",D),i(I,"setHandleUpdateSymbol",y),i(I,"getAsUpdatesSymbol",H),i(I,"getAsInitialUpdatedSymbol",A),i(I,"clearSymbol",G),i(I,"WithSubscription"),i(I,"Item");var B=class extends I{constructor(t,e,r,a=!0){super(null,r);i(this,"publicationName");i(this,"params");i(this,"subscription",null);this.publicationName=t,this.params=e,a&&this.subscribe()}subscribe(){this.subscription||(this.subscription=new R("map",this.publicationName,this.params,t=>this.update(t)))}get[f](){return this.subscribe}unsubscribe(){this.subscription&&(this.subscription.cancel(),this.subscription=null)}get[g](){return this.unsubscribe}renew(t,e){this.subscription&&(this.unsubscribe(),t&&(Array.isArray(t)?e=t:this.publicationName=t),e&&(this.params=e),this.subscribe())}get[L](){return this.renew}[j](){return this.subscription}get[Symbol.toStringTag](){return"SubscriptionMapWithSubscription"}};i(B,"subscribeSymbol",f),i(B,"unsubscribeSymbol",g),i(B,"renewSymbol",L),i(B,"getSubscriptionSymbol",j);I.WithSubscription=B;var st,lt=class{constructor(s,t){i(this,"_id");c(this,st);l(this,st,s),this.update(t)}update(s){Object.assign(this,s)}delete(){n(this,st).delete(this._id)}};st=new WeakMap;I.Item=lt;var rt=Symbol("handleUpdate"),z=Symbol("updates"),Dt,Ht,_=class{constructor(s,t){i(this,Ht);i(this,Dt,null);t&&(this[rt]=t),s&&this[x](s)}[(Ht=rt,Dt=z,D)](){return this[rt]}[y](s){return this[rt]=s}[x](s){if(s){for(let t in this[z])delete this[t];for(let t in s)this[t]=s[t];this[z]=s}else this[G]();return this[rt]?.(this,this,this[z]),this}[H](){return this[z]&&{...this[z]}}[A](){return this.valueOf()}[G](){for(let s in this)delete this[s];this[z]=null}valueOf(){return this[z]&&this}get[Symbol.toStringTag](){return"SubscriptionObject"}};i(_,"updateSymbol",x),i(_,"getHandleUpdateSymbol",D),i(_,"setHandleUpdateSymbol",y),i(_,"getAsUpdatesSymbol",H),i(_,"getAsInitialUpdatedSymbol",A),i(_,"clearSymbol",G),i(_,"WithSubscription");var Z,tt,F,M=class extends _{constructor(t,e,r,a=!0){super(null,r);c(this,Z);c(this,tt);c(this,F,null);l(this,Z,t),l(this,tt,e),a&&this[f]()}[f](){n(this,F)||l(this,F,new R("object",n(this,Z),n(this,tt),t=>this[x](t)))}[g](){n(this,F)&&(n(this,F).cancel(),l(this,F,null))}[L](t,e){n(this,F)&&(this[g](),t&&(Array.isArray(t)?e=t:l(this,Z,t)),e&&l(this,tt,e),this[f]())}[j](){return n(this,F)}get[Symbol.toStringTag](){return"SubscriptionObjectWithSubscription"}};Z=new WeakMap,tt=new WeakMap,F=new WeakMap,i(M,"subscribeSymbol",f),i(M,"unsubscribeSymbol",g),i(M,"renewSymbol",L),i(M,"getSubscriptionSymbol",j);_.WithSubscription=M;function Lt(o){return Array.isArray(o)}var N,J,W,v,ht,Ot,E,et,_t,Gt,ct,pt=class pt extends qt{constructor(t,e){super();c(this,v);i(this,"name");i(this,"group");i(this,"value");i(this,"type");i(this,"publicationName");i(this,"params");i(this,"handle");i(this,"onBeforeInit");i(this,"preventBind");i(this,"emitUpdate");i(this,"isLoaded",!1);i(this,"isInited",!1);c(this,N);c(this,J);c(this,W);c(this,E,null);c(this,et,(t,e,r)=>{if(r)if(this.group.isLoaded){if(this.handle)switch(this.type){case"array":this.handle.call(this.group,e,this.group);break;case"map":this.handle.call(this.group,e,this.group);break;default:this.handle.call(this.group,e,this.group)}this.emitUpdate(e)}else l(this,E,e),this.isLoaded=!0,U.groupLoad(this.group);else this.isLoaded&&(this.isLoaded=!1,U.groupUnload(this.group));this.isInited||(this.isInited=!0,U.groupInit(this.group))});this.name=t.name,this.define(t,e)}define(t,e=this.group){if(!e)throw new Error("group is undefined");let{value:r,type:a="object",publicationName:u,params:b,handle:p,onBeforeInit:h,debounce:m=pt.debounceLimit,preventBind:d}=t;if(this.group){if((!r||this.value===r)&&this.type===a&&this.publicationName===u&&JSON.stringify(this.params)===JSON.stringify(b)&&this.handle===p&&this.onBeforeInit===h)return S(this,v,ht).call(this,{debounceLimit:m,preventBind:d});this.detach(),delete this.value,delete this.publicationName,delete this.params}this.type=a,this.handle=p,this.onBeforeInit=h,r?this.value=r:(this.publicationName=u??this.name,this.params=b??[]),S(this,v,ht).call(this,{debounceLimit:m,preventBind:d}),S(this,v,Ot).call(this,e)}detach(){this.group&&(this.value?.[g](),this.isLoaded=!1,S(this,v,ct).call(this),delete this.group.values[this.name],At(this.group.values,this.value),delete this.group.items[this.name],At(this.group.items,this),delete this.group)}loaded(){return n(this,N)}inited(){return n(this,J)}unloaded(){return n(this,W)}subscribe(){if(this.value){if(this.value[f])return this.value[f]();{let t=this.value[D]();if(t){let e=this.value[A](),r=this.value[H]();switch(this.type){case"array":return t(this.value,e,r);case"map":return t(this.value,e,r);default:return t(this.value,e,r)}}}}}unsubscribe(){return this.value?.[g]?.()}renew(t,e){return this.value?.[L]?.(t,e)}valueOf(){return this.value}};N=new WeakMap,J=new WeakMap,W=new WeakMap,v=new WeakSet,ht=function({debounceLimit:t,preventBind:e}){let r=a=>{this.emit("update",this.value,a),this.group?.emit(`update.${this.name}`,this.value,a),this.group?.emitUpdate()};if(typeof t=="number"){let a,u,b=Kt(()=>{let p=!this.group;p&&(this.group=u),r(a),p&&delete this.group,a=void 0},t);this.emitUpdate=p=>{if(p!==void 0)if(Lt(p))if(Lt(a))for(let h of p)a.push(h);else a=Object.assign([...p],{added:[...p.added],deleted:[...p.deleted]});else typeof p=="object"?a?Object.assign(a,p):a={...p}:a=p;return u=this.group,b()}}else this.emitUpdate=r;this.preventBind===void 0?delete this.preventBind:this.preventBind=e},Ot=function(t){if(!this.group){switch(this.group=t,this.group.items.push(this),this.group.items[this.name]=this,(!n(this,N)||n(this,N).isFulfilled)&&l(this,N,new nt),(!n(this,J)||n(this,J).isFulfilled)&&l(this,J,new nt),(!n(this,W)||n(this,W).isFulfilled)&&l(this,W,new nt),this.type){case"array":{let e=n(this,et);this.value?this.value[y](e):this.value=new k(this.publicationName,this.params,e,!1);break}case"map":{let e=n(this,et);this.value?this.value[y](e):this.value=new B(this.publicationName,this.params,e,!1);break}default:{let e=n(this,et);this.value?this.value[y](e):this.value=new M(this.publicationName,this.params,e,!1)}}if(this.group.values.push(this.value),this.group.values[this.name]=this.value,this.onBeforeInit)switch(this.type){case"array":this.onBeforeInit.call(this.group,this.value);break;case"map":this.onBeforeInit.call(this.group,this.value);break;default:this.onBeforeInit.call(this.group,this.value)}}},E=new WeakMap,et=new WeakMap,_t=function(){if(n(this,E)){if(this.handle)switch(this.type){case"array":this.handle.call(this.group,n(this,E),this.group);break;case"map":this.handle.call(this.group,n(this,E),this.group);break;default:this.handle.call(this.group,n(this,E),this.group)}l(this,E,null),this.emit("load",this.value),n(this,N).resolve(this),n(this,W).isFulfilled&&l(this,W,new nt)}},Gt=function(){this.emit("init",this.value),n(this,J).resolve(this)},ct=function(){if(this.handle)switch(this.type){case"array":this.handle.call(this.group,null,this.group);break;case"map":this.handle.call(this.group,null,this.group);break;default:this.handle.call(this.group,null,this.group)}this.emit("unload",this.value),n(this,W).resolve(this),n(this,N).isFulfilled&&l(this,N,new nt)},i(pt,"debounceLimit",4),U.itemLoad=t=>{var e;return S(e=t,v,_t).call(e)},U.itemInit=t=>{var e;return S(e=t,v,Gt).call(e)},U.itemUnload=t=>{var e;return S(e=t,v,ct).call(e)};var at=pt;function Yt(o){return Array.isArray(o)}function Pt(o){if(Yt(o)){let s=o.slice(),t={};if(t.name=s.shift(),typeof s[0]=="object"&&!Array.isArray(s[0])){if(t.value=s.shift(),t.type=t.value.toString().match(/Subscription(Object|Array|Map)/)?.[1].toLowerCase(),!t.type)throw new Error("Unknown value type")}else typeof s[0]=="string"&&(t.type=s.shift()),typeof s[0]=="string"&&(t.publicationName=s.shift()),Array.isArray(s[0])&&(t.params=s.shift());return typeof s[0]=="function"&&(t.handle=s.shift()),typeof s[0]=="function"&&(t.onBeforeInit=s.shift()),typeof s[0]=="number"&&(t.debounce=s.shift()),typeof s[0]=="boolean"&&(t.preventBind=s.shift()),t}return o.type??(o.type="object"),o}var C,it,$,K,V,bt,kt,mt,ut=class ut extends Qt{constructor(t,{target:e,debounce:r=ut.debounceLimit,immediately:a}={}){super();c(this,V);i(this,"target");i(this,"emitUpdate");i(this,"items",[]);i(this,"values",[]);i(this,"isLoaded",!1);i(this,"isInited",!1);c(this,C);c(this,it);c(this,$);c(this,K,null);this.applyOptions({target:e,debounceLimit:r}),l(this,it,new ot),this.attach(t,!1,a)}applyOptions({target:t,debounceLimit:e}){if(this.target!==t){if(this.target)for(let r of this.items)r.isLoaded&&!r.preventBind&&delete this.target[r.name];if(this.target=t,this.target)for(let r of this.items)r.isLoaded&&!r.preventBind&&(this.target[r.name]=r.value)}if(n(this,K)!==e)if(l(this,K,e),typeof n(this,K)=="number"){let r=Xt(()=>this.emit("update",this.values),n(this,K));this.emitUpdate=()=>r()}else this.emitUpdate=()=>this.emit("update",this.values)}attach(t,e=this.isLoaded,r=!0){return e&&(this.isLoaded=!1),(!n(this,C)||n(this,C).isFulfilled)&&l(this,C,new ot),(!n(this,$)||n(this,$).isFulfilled)&&l(this,$,new ot),Promise.all(t.map(a=>new at(Pt(a),this)).map(a=>(r&&a.subscribe(),a.loaded())))}detach(t,e=!0){for(let r of t)this.items[r]?.detach();e&&(S(this,V,mt).call(this),S(this,V,bt).call(this))}redefine(t){let e=new Map(this.items.map(u=>[u.name,u])),r=[],a=[];for(let u of t)u=Pt(u),e.delete(u.name)?r.push(u):a.push(u);return this.isLoaded=!1,this.detach([...e.keys()],!1),Promise.all([...r.map(u=>{let b=this.items[u.name];return b.define(u),b.subscribe(),b.loaded()}),...a.length?[this.attach(a,!1)]:[]])}subscribe(){return this.items.map(t=>t.subscribe())}unsubscribe(){return this.items.map(t=>t.unsubscribe())}loaded(){return n(this,C)}inited(){return n(this,it)}unloaded(){return n(this,$)}valueOf(){return this.values}[Symbol.iterator](){return this.values[Symbol.iterator]()}};C=new WeakMap,it=new WeakMap,$=new WeakMap,K=new WeakMap,V=new WeakSet,bt=function(){if(!this.isLoaded&&this.items.every(t=>t.isLoaded)){if(this.target)for(let t of this.items)t.preventBind||(this.target[t.name]=t.value);this.isLoaded=!0;for(let t of this.items)U.itemLoad(t);if(this.emit("load",this.values),this.isInited)if(this.items.length)for(let t of this.items)t.emitUpdate();else this.emitUpdate();n(this,C).resolve(this),n(this,$).isFulfilled&&l(this,$,new ot)}},kt=function(){if(!this.isInited&&this.items.every(t=>t.isInited)){if(this.isInited=!0,this.isLoaded)if(this.items.length)for(let t of this.items)t.emitUpdate();else this.emitUpdate();for(let t of this.items)U.itemInit(t);this.emit("init",this.values),n(this,it).resolve(this)}},mt=function(){if(this.isLoaded&&this.items.every(t=>!t.isLoaded)){if(this.target)for(let t of this.items)t.preventBind||delete this.target[t.name];this.isLoaded=!1;for(let t of this.items)U.itemUnload(t);if(this.emit("unload",this.values),this.items.length)for(let t of this.items)t.emitUpdate();else this.emitUpdate();n(this,$).resolve(this),n(this,C).isFulfilled&&l(this,C,new ot)}},i(ut,"debounceLimit",8),U.groupLoad=t=>{var e;return S(e=t,V,bt).call(e)},U.groupInit=t=>{var e;return S(e=t,V,kt).call(e)},U.groupUnload=t=>{var e;return S(e=t,V,mt).call(e)};var jt=ut;export{R as Subscription,O as SubscriptionArray,k as SubscriptionArrayWithSubscription,jt as SubscriptionGroup,I as SubscriptionMap,B as SubscriptionMapWithSubscription,_ as SubscriptionObject,M as SubscriptionObjectWithSubscription,G as clearSymbol,A as getAsInitialUpdatedSymbol,H as getAsUpdatesSymbol,Wt as getHandleSubscriptionSymbol,D as getHandleUpdateSymbol,j as getSubscriptionSymbol,L as renewSymbol,Ct as setHandleSubscriptionSymbol,y as setHandleUpdateSymbol,f as subscribeSymbol,g as unsubscribeSymbol,x as updateSymbol};
//# sourceMappingURL=index.js.map