@based/client 3.1.1 → 3.2.2
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/README.md +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/docs/auth-based-ui-howto.md +74 -0
- package/docs/auth.md +3 -1
- package/package.json +8 -10
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
- [Upload files](#upload-files)
|
|
8
8
|
- [Schema](#schema)
|
|
9
9
|
- [Analytics](#analytics)
|
|
10
|
-
- [Auth
|
|
10
|
+
- [Auth System](https://github.com/atelier-saulx/based/blob/main/packages/client/docs/auth.md)
|
|
11
11
|
|
|
12
12
|
---
|
|
13
13
|
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var nt=Object.create;var D=Object.defineProperty,ot=Object.defineProperties,at=Object.getOwnPropertyDescriptor,ct=Object.getOwnPropertyDescriptors,ut=Object.getOwnPropertyNames,_=Object.getOwnPropertySymbols,lt=Object.getPrototypeOf,ae=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable;var Ce=(t,s,e)=>s in t?D(t,s,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[s]=e,G=(t,s)=>{for(var e in s||(s={}))ae.call(s,e)&&Ce(t,e,s[e]);if(_)for(var e of _(s))Pe.call(s,e)&&Ce(t,e,s[e]);return t},J=(t,s)=>ot(t,ct(s));var qe=(t,s)=>{var e={};for(var r in t)ae.call(t,r)&&s.indexOf(r)<0&&(e[r]=t[r]);if(t!=null&&_)for(var r of _(t))s.indexOf(r)<0&&Pe.call(t,r)&&(e[r]=t[r]);return e};var Be=(t,s)=>{for(var e in s)D(t,e,{get:s[e],enumerable:!0})},z=(t,s,e,r)=>{if(s&&typeof s=="object"||typeof s=="function")for(let i of ut(s))!ae.call(t,i)&&i!==e&&D(t,i,{get:()=>s[i],enumerable:!(r=at(s,i))||r.enumerable});return t},p=(t,s,e)=>(z(t,s,"default"),e&&z(e,s,"default")),K=(t,s,e)=>(e=t!=null?nt(lt(t)):{},z(s||!t||!t.__esModule?D(e,"default",{value:t,enumerable:!0}):e,t)),dt=t=>z(D({},"__esModule",{value:!0}),t);var m={};Be(m,{Based:()=>ne,BasedClient:()=>x,BasedGraphQL:()=>T.BasedGraphQL,Observable:()=>C,addGetSubscriber:()=>V,addRequest:()=>y,addSubscriber:()=>I,createGraphqlOperations:()=>T.createOperations,default:()=>wt,generateSubscriptionId:()=>P,generateTrackingKey:()=>ye,handleGraphqlVariables:()=>T.handleGraphqlVariables,parseGraphql:()=>T.parseGraphql,removeSubscriber:()=>
|
|
1
|
+
var nt=Object.create;var D=Object.defineProperty,ot=Object.defineProperties,at=Object.getOwnPropertyDescriptor,ct=Object.getOwnPropertyDescriptors,ut=Object.getOwnPropertyNames,_=Object.getOwnPropertySymbols,lt=Object.getPrototypeOf,ae=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable;var Ce=(t,s,e)=>s in t?D(t,s,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[s]=e,G=(t,s)=>{for(var e in s||(s={}))ae.call(s,e)&&Ce(t,e,s[e]);if(_)for(var e of _(s))Pe.call(s,e)&&Ce(t,e,s[e]);return t},J=(t,s)=>ot(t,ct(s));var qe=(t,s)=>{var e={};for(var r in t)ae.call(t,r)&&s.indexOf(r)<0&&(e[r]=t[r]);if(t!=null&&_)for(var r of _(t))s.indexOf(r)<0&&Pe.call(t,r)&&(e[r]=t[r]);return e};var Be=(t,s)=>{for(var e in s)D(t,e,{get:s[e],enumerable:!0})},z=(t,s,e,r)=>{if(s&&typeof s=="object"||typeof s=="function")for(let i of ut(s))!ae.call(t,i)&&i!==e&&D(t,i,{get:()=>s[i],enumerable:!(r=at(s,i))||r.enumerable});return t},p=(t,s,e)=>(z(t,s,"default"),e&&z(e,s,"default")),K=(t,s,e)=>(e=t!=null?nt(lt(t)):{},z(s||!t||!t.__esModule?D(e,"default",{value:t,enumerable:!0}):e,t)),dt=t=>z(D({},"__esModule",{value:!0}),t);var m={};Be(m,{Based:()=>ne,BasedClient:()=>x,BasedGraphQL:()=>T.BasedGraphQL,Observable:()=>C,addGetSubscriber:()=>V,addRequest:()=>y,addSubscriber:()=>I,createGraphqlOperations:()=>T.createOperations,default:()=>wt,generateSubscriptionId:()=>P,generateTrackingKey:()=>ye,handleGraphqlVariables:()=>T.handleGraphqlVariables,parseGraphql:()=>T.parseGraphql,removeSubscriber:()=>S});module.exports=dt(m);var ce=class{constructor(){this.listeners={};Object.defineProperty(this,"listeners",{enumerable:!1,writable:!0})}emit(s,e){this.listeners[s]&&this.listeners[s].forEach(r=>r(e))}on(s,e){this.listeners[s]||(this.listeners[s]=[]),this.listeners[s].push(e)}removeAllListeners(){this.listeners={}}once(s,e){this.on(s,r=>{e(r),this.removeListener(s,e)})}removeListener(s,e){let r=this.listeners[s];if(r){if(!e)delete this.listeners[s];else for(let i=0,n=r.length;i<n;i++)if(r[i]===e){r.splice(i,1);break}}}},Re=ce;var Ie=(t,s)=>{typeof t=="function"?t().then(e=>{s(e)}):s(t)};var Ue=K(require("isomorphic-ws")),j=new Map,Ee;typeof window!="undefined"&&document.addEventListener("visibilitychange",function(){clearTimeout(Ee),document.hidden?Ee=setTimeout(()=>{j.forEach(t=>{t(!1)})},3e4):j.forEach(t=>{t(!0)})});var ue=(t,s,e={destroy:()=>{j.delete(e)}},r=0,i=!1)=>(Ie(s,n=>{setTimeout(()=>{if(e.disconnected)return;let o=!0;j.set(e,a=>{e.disconnected||(!a&&o?(console.warn("Send to background - close connection"),o=!1,t.onClose(),c.close()):!o&&a&&(j.delete(e),ue(t,s,e,0,!0)))});let c=e.ws=new Ue.default(n);c.onerror=()=>{},c.onmessage=a=>t.onData(a),c.onopen=()=>{if(o){if(e.disconnected)return;r=100,i&&t.onReconnect(),t.onOpen()}},c.onclose=()=>{if(o){if(e.disconnected)return;t.onClose(),ue(t,s,e,Math.min(1250,Math.min(r+500)),!0)}}},r)}),e),le=ue;var v=require("@based/types");var U=require("@based/types");var $=require("@based/types");var pt=t=>{clearTimeout(t.idlePing),t.idlePing=setTimeout(()=>{t.connection&&t.connected&&!t.connection.disconnected&&t.connection.ws.send("1")},6e4)},W=pt;var b=(t,s)=>{s[0]===$.RequestTypes.Unsubscribe||s[0]===$.RequestTypes.Subscription||s[0]===$.RequestTypes.SendSubscriptionData||s[0]===$.RequestTypes.GetSubscription?t.subscriptionQueue.push(s):t.queue.push(s),t.connected&&!t.drainInProgress&&de(t)},de=t=>{t.connected&&!t.drainInProgress&&(t.queue.length||t.subscriptionQueue.length)&&!t.isLogginIn&&(t.drainInProgress=!0,t.drainTimeout=setTimeout(()=>{if(t.drainInProgress=!1,t.queue.length||t.subscriptionQueue.length){let s=[...t.queue,...t.subscriptionQueue];t.queue=[],t.subscriptionQueue=[],t.debugInternal&&t.debugInternal(s,"outgoing"),t.connection.ws.send(JSON.stringify(s)),W(t)}},0))},Fe=t=>{t.drainInProgress&&(clearTimeout(t.drainTimeout),t.drainInProgress=!1)};var pe=require("@saulx/hash"),P=(t,s)=>s?(0,pe.hashObjectIgnoreKeyOrder)([s,t]):(0,pe.hashObjectIgnoreKeyOrder)(t);var V=(t,s,e,r,i)=>{r||(r=P(s,i));let n=t.subscriptions[r],o=t.cache[r];if(n)if(n.authError)if(!t.beingAuth)e(n.authError.error,r,0);else{let c=++n.cnt;n.subscribers[c]={onInitial:e}}else if(o)e(null,r,0,o.value);else{let c=++n.cnt;n.subscribers[c]={onInitial:e}}else{n=t.subscriptions[r]={query:s,cnt:1,name:i,subscribers:{1:{onInitial:e}}};let c;for(let a=0;a<t.subscriptionQueue.length;a++){let[u,l,,d]=t.subscriptionQueue[a];(u===U.RequestTypes.Unsubscribe||u===U.RequestTypes.SendSubscriptionData)&&l===r?(t.subscriptionQueue.splice(a,1),a--):(u===U.RequestTypes.Subscription||u===U.RequestTypes.GetSubscription)&&l===r&&(c=!0,u===U.RequestTypes.Subscription&&(d!==o.checksum&&(t.subscriptionQueue[a][3]=o.checksum),t.subscriptionQueue[a][4]=2))}if(!c){let a=[U.RequestTypes.GetSubscription,r,s];o&&a.push(o.checksum),i&&(o||a.push(0),a.push(i)),b(t,a)}}};var q=require("@based/types");var I=(t,s,e,r,i,n,o)=>{n||(n=P(s,o));let c=t.subscriptions[n],a=t.cache[n],u;if(c){u=++c.cnt;let l=!0;for(let d in c.subscribers)if(c.subscribers[d].onData){l=!1;break}if(c.subscribers[u]={onError:i,onData:e,onInitial:r},l){for(let f=0;f<t.subscriptionQueue.length;f++){let[h,O]=t.subscriptionQueue[f];h===q.RequestTypes.GetSubscription&&O===n&&(t.subscriptionQueue.splice(f,1),f--)}let d=[q.RequestTypes.Subscription,n,s];a&&(d.push(a.checksum),d.push(2)),o&&(a||d.push(0,2),d.push(o)),b(t,d)}}else{u=1,c=t.subscriptions[n]={query:s,cnt:1,name:o,subscribers:{1:{onError:i,onData:e,onInitial:r}}};let l=!1,d=!1,f;for(let h=0;h<t.subscriptionQueue.length;h++){let[O,R,,Q]=t.subscriptionQueue[h];(O===q.RequestTypes.Unsubscribe||O===q.RequestTypes.SendSubscriptionData||O===q.RequestTypes.GetSubscription)&&R===n?(O===q.RequestTypes.GetSubscription&&(d=!0),f&&(f[4]=2),t.subscriptionQueue.splice(h,1),h--):O===q.RequestTypes.Subscription&&R===n&&(l=!0,f=t.subscriptionQueue[h],Q!==a.checksum&&(f[3]=a.checksum),!f[4]&&d&&(f[4]=2))}if(!l){let h=[q.RequestTypes.Subscription,n,s];a&&(h.push(a.checksum),d&&h.push(2)),o&&(a?!d&&a&&h.push(2):h.push(0,0),h.push(o)),b(t,h)}}return a&&(r&&(r(null,n,u),delete c.subscribers[u].onInitial),e&&e(a.value,a.checksum)),[n,u]};var L=require("@based/types");var S=(t,s,e)=>{let r=t.subscriptions[s];if(r){let i=!1;if(e?r.subscribers[e]&&(delete r.subscribers[e],r.cnt--,r.cnt===0&&(i=!0)):i=!0,i){delete t.subscriptions[s];let n=!1;for(let o=0;o<t.subscriptionQueue.length;o++){let[c,a]=t.subscriptionQueue[o];c===L.RequestTypes.Unsubscribe&&a===s?n=!0:(c===L.RequestTypes.Subscription||c===L.RequestTypes.SendSubscriptionData)&&a===s&&(t.subscriptionQueue.splice(o,1),o--)}n||b(t,[L.RequestTypes.Unsubscribe,s])}}};var Qe=require("@based/types"),xe=t=>{for(let s=0;s<t.subscriptionQueue.length;s++)t.subscriptionQueue[s][0]===Qe.RequestTypes.Unsubscribe&&(t.subscriptionQueue.splice(s,1),s--)};var Ae=require("@based/types"),De=t=>{for(let s=0;s<t.subscriptionQueue.length;s++)t.subscriptionQueue[s][0]===Ae.RequestTypes.SendSubscriptionData&&(t.subscriptionQueue.splice(s,1),s--)};var F=require("@based/types");var M=(t,s=!1)=>{for(let e in t.subscriptions){let r=Number(e),i=t.subscriptions[e];if(s&&!i.authError)continue;let n,o,c;for(let l=0;l<t.subscriptionQueue.length;l++){let[d,f]=t.subscriptionQueue[l];f===r&&(d===F.RequestTypes.GetSubscription?(c=l,n=t.subscriptionQueue[l]):d===F.RequestTypes.Subscription&&(o=t.subscriptionQueue[l]))}n&&o&&console.error("GET IN Q AND SUB IN Q SHOULD BE IMPOSSIBLE");let a=t.cache[r],u=!1;if(n){let l=!0;for(let d in i.subscribers)if(i.subscribers[d].onData){l=!1;break}l?u=!0:(console.info("not only gets remove get"),t.subscriptionQueue.splice(c,1)),a&&n[3]!==a.checksum&&(n[3]=a.checksum)}if(!u)if(o)a&&o[3]!==a.checksum&&(o[3]=a.checksum,n&&(o[4]=2));else{let{name:l,query:d}=t.subscriptions[r];l?a?b(t,[F.RequestTypes.Subscription,r,d,a.checksum,n?2:0,l]):b(t,[F.RequestTypes.Subscription,r,d,0,n?2:0,l]):a?b(t,[F.RequestTypes.Subscription,r,d,a.checksum,n?2:0]):b(t,[F.RequestTypes.Subscription,r,d,0,n?2:0])}}};var Ge=require("@based/types");var X=(t,s)=>{if(typeof window!="undefined")return t;let e={white:"\x1B[37;1m",reset:"\x1B[0m",blue:"\x1B[34m",red:"\x1B[31m",green:"\x1B[32m",brightBlue:"\x1B[34;1m",brightRed:"\x1B[31;1m"};return`${e[s]}${t}${e.reset}`},fe=(t,s=0,e=!1,r="",i=!1)=>{let n="";for(let a=0;a<s;a++)n+=" ";let o=e?[]:r?[n+`${X(r,i?"brightRed":"white")} {`]:[n+"{"],c=!1;e||(n+=" ",s+=1);for(let a in t){let u=t[a],l=a[0]==="$"?X(a,"white"):a;if(c&&(o[o.length-1]+=","),Array.isArray(u)){o.push(`${n} ${l}: [`);for(let d=0;d<u.length;d++){let f=u[d];o.push(...f&&typeof f=="object"?fe(f,s+4):[`${n} ${f}`]),d!==u.length-1&&(o[o.length-1]+=",")}o.push(`${n} ]`)}else u&&typeof u=="object"?(o.push(`${n} ${l}: {`),o.push(...fe(u,s+2,!0)),o.push(`${n} }`)):o.push(`${n} ${l}: ${u}`);c=!0}return e||o.push(n.slice(0,-1)+"}"),o},Y=fe;var w=t=>{let s=new Ge.BasedError(t.message);if(s.name=t.name?`${t.type} from ${t.name}`:t.type,s.stack=null,t.query||t.payload){let e=s.message.split(`
|
|
2
2
|
`),r=0;e[0]===""&&e.shift();let i=e[0];for(let n=0;n<i.length;n++)if(i[n]!==" "){r=n-2;break}r>0?e=e.map(n=>n.slice(r)):e=e.map(n=>" "+n),t.code&&(s.code=t.code),s.message=`
|
|
3
3
|
|
|
4
4
|
`+(t.payload&&typeof t.payload!="object"?` ${X("Payload","brightRed")} ${t.payload}`:Y(t.payload||t.query,0,!1,t.payload?"Payload":"Query",!0).map(n=>" "+n).join(`
|
|
@@ -7,9 +7,9 @@ var nt=Object.create;var D=Object.defineProperty,ot=Object.defineProperties,at=O
|
|
|
7
7
|
`+e.join(`
|
|
8
8
|
`)+`
|
|
9
9
|
|
|
10
|
-
`}return s};var je=(t,s)=>{let[,e,r,i,n]=s,o=t.subscriptions[e];if(o){let c=t.cache[e]&&t.cache[e].checksum;if(n){let a=w(n);n.auth&&(o.authError={token:t.token,error:a});for(let u in o.subscribers){let l=o.subscribers[u];l.onInitial?n.auth?(l.onError&&l.onError(a),l.onInitial(a,Number(e),Number(u),void 0,!0),delete l.onInitial):(l.onInitial(a,Number(e),Number(u)),delete l.onInitial,
|
|
10
|
+
`}return s};var je=(t,s)=>{let[,e,r,i,n]=s,o=t.subscriptions[e];if(o){let c=t.cache[e]&&t.cache[e].checksum;if(n){let a=w(n);n.auth&&(o.authError={token:t.token,error:a});for(let u in o.subscribers){let l=o.subscribers[u];l.onInitial?n.auth?(l.onError&&l.onError(a),l.onInitial(a,Number(e),Number(u),void 0,!0),delete l.onInitial):(l.onInitial(a,Number(e),Number(u)),delete l.onInitial,S(t,e,Number(u))):l.onError&&l.onError(a)}}else if(c===i){o.authError&&delete o.authError;for(let a in o.subscribers){let u=o.subscribers[a];u.onInitial&&(u.onInitial(null,Number(e),Number(a),t.cache[e].value),delete u.onInitial,u.onData||S(t,e,Number(a)))}}else{o.authError&&delete o.authError,t.cache[e]={value:r,checksum:i};for(let a in o.subscribers){let u=o.subscribers[a];u.onInitial&&(u.onInitial(null,Number(e),Number(a),r),delete u.onInitial,u.onData||S(t,e,Number(a))),u.onData&&u.onData(r,i)}}}};var $e=require("@saulx/diff"),Z=require("@based/types");var Le=(t,s)=>{let[,e,r,[i,n]]=s,o=t.subscriptions[e];if(o){let c=t.cache[e];if(!c||c.checksum!==i)if(c)if(c.checksum===n)for(let a in o.subscribers){let u=o.subscribers[a];u.onInitial&&(u.onInitial(null,Number(e),Number(a),c.value),delete u.onInitial,u.onData||S(t,e,Number(a)))}else b(t,[Z.RequestTypes.SendSubscriptionData,e]);else b(t,[Z.RequestTypes.SendSubscriptionData,e]);else{let a=!1;try{c.value=(0,$e.applyPatch)(c.value,r),c.value===null&&(a=!0)}catch(u){a=!0}if(a)console.warn(`
|
|
11
11
|
Found corrupt data while applying diff to subscription need to re-fetch
|
|
12
12
|
`),console.warn(Y(o.query,2,!1,"Query").join(`
|
|
13
13
|
`)+`
|
|
14
14
|
|
|
15
|
-
`),delete t.cache[e],b(t,[Z.RequestTypes.SendSubscriptionData,e]);else{c.checksum=n;for(let u in o.subscribers){let l=o.subscribers[u];l.onInitial&&(l.onInitial(null,Number(e),Number(u),c.value),delete l.onInitial,l.onData||k(t,e,Number(u))),l.onData&&l.onData(c.value,c.checksum)}}}}};var Me=(t,s)=>{for(let e of s[1]){delete t.cache[e];let r=t.subscriptions[e];if(r){let i={type:"AuthorizationError",name:r.name?`observe "${r.name}"`:"observe",message:"Unauthorized request",payload:r.query,auth:!0},n=w(i);r.authError={token:t.token,error:n};for(let o in r.subscribers){let c=r.subscribers[o];c.onError&&c.onError(n)}}}};var Ne=require("@based/types");var ft=0,y=(t,s,e,r,i,n,o)=>{let c=++ft;t.requestCallbacks[c]={resolve:r,reject:i,type:s,payload:e,name:n,isRetry:o},s===Ne.RequestTypes.Call?b(t,[s,n,c,e]):b(t,[s,c,e])};var He=(t,s)=>{let[,e,r,i]=s,n=t.requestCallbacks[e];n&&(delete t.requestCallbacks[e],i?n.reject(w(i)):n.resolve(r))};var S={};Be(S,{BasedClient:()=>x});var g=require("@based/types");var be=require("@based/types");var bt=t=>typeof t!="undefined"&&t!==null,mt=(t,s,e)=>{if(t.beingAuth=!0,s)t.token=s,t.sendTokenOptions=e;else{for(let r in t.cache)t.subscriptions[r]||delete t.cache[r];delete t.token,delete t.sendTokenOptions}if(t.connected){let r=s?[be.RequestTypes.Token,s,e].filter(bt):[be.RequestTypes.Token];t.connection.ws.send(JSON.stringify(r)),W(t),M(t,!0)}},E=mt;var B=require("@based/types");var me=0,_e=(t,s)=>{let e=++me;return b(t,[B.RequestTypes.Auth,B.AuthRequestTypes.Login,e,s]),new Promise((r,i)=>{t.authCallbacks[e]={resolve:n=>{n.id&&n.token?t.updateUserState(n.id,n.token,n.refreshToken):t.updateUserState(!1),r(n)},reject:i}})},ze=(t,s)=>new Promise((e,r)=>{y(t,B.RequestTypes.Call,s,i=>{i.id&&i.token?t.updateUserState(i.id,i.token,i.refreshToken):t.updateUserState(!1),e(i)},r,"registerUser")}),Je=(t,s)=>{let e=++me;return b(t,[B.RequestTypes.Auth,B.AuthRequestTypes.RenewToken,e,s]),new Promise((r,i)=>{t.authCallbacks[e]={resolve:r,reject:i}})},Ke=(t,s)=>{let[,e,r,i]=s,n=t.authCallbacks[e];n&&(delete t.authCallbacks[e],i?n.reject(w(i)):n.resolve(r))},We=t=>{let s=++me;return b(t,[B.RequestTypes.Auth,B.AuthRequestTypes.Logout,s]),new Promise((e,r)=>{t.authCallbacks[s]={resolve:i=>{t.updateUserState(!1),e(i)},reject:r}})};var Ve=(t,s)=>{let e=new Date,r=e.getHours()+":"+e.getMinutes()+":"+e.getSeconds()+":"+e.getMilliseconds();if(s==="incoming"){let i=`\u25BC ${r} -- `;console.info(i,t)}else{let i=`\u25B2 ${r} -- `;console.info(i,t)}};var he=require("@saulx/hash");p(S,require("@based/types"));var x=class{constructor(s){this.tokenToLocalStorage=!1;this.auth=[];this.subscriptions={};this.cache={};this.requestCallbacks={};this.authCallbacks={};this.connected=!1;this.subscriptionQueue=[];this.queue=[];this.drainInProgress=!1;this.based=s}get debug(){return this.debugInternal}set debug(s){s===!0?this.debugInternal=Ve:this.debugInternal=s}initUserState(){if(typeof window!="undefined"){if(this.based.opts){let s=(0,he.hash)({cluster:this.based.opts.cluster,project:this.based.opts.project,env:this.based.opts.project,org:this.based.opts.org});this.optsId=s}else this.optsId=(0,he.hash)("un-specified-env");try{let s=global.localStorage.getItem("based-"+this.optsId+"-uid");if(s){this.tokenToLocalStorage=!0;try{let[e,r,i]=JSON.parse(s);r&&e&&this.updateUserState(e,r,i)}catch(e){global.localStorage.removeItem("based-"+this.optsId+"-uid")}}}catch(s){}}}updateUserState(s,e,r){if(this.user=s,!this.tokenToLocalStorage&&typeof window!="undefined")try{global.localStorage.removeItem("based-"+this.optsId+"-uid")}catch(i){}if(e)r&&(this.renewOptions={refreshToken:r}),r&&(this.renewOptions=J(G({},this.renewOptions),{refreshToken:r})),E(this,e,{refreshToken:r}),this.auth.push(i=>{if(i){if(typeof window!="undefined")try{this.tokenToLocalStorage&&global.localStorage.setItem("based-"+this.optsId+"-uid",JSON.stringify([s,e,r]))}catch(n){}this.based.emit("auth",e)}else{if(typeof window!="undefined")try{this.tokenToLocalStorage&&global.localStorage.removeItem("based-"+this.optsId+"-uid")}catch(n){}this.based.emit("auth",!1)}});else{if(typeof window!="undefined"){this.user=!1;try{this.tokenToLocalStorage&&global.localStorage.removeItem("based-"+this.optsId+"-uid")}catch(i){}}E(this),this.based.emit("auth",!1)}}onClose(){this.connected=!1,Ue(this),xe(this),De(this),this.based.listeners.disconnect&&this.based.listeners.disconnect.forEach(s=>s())}onReconnect(){if(this.based.listeners.reconnect&&this.based.listeners.reconnect.forEach(s=>s()),this.tracking)for(let s of this.tracking)b(this,[g.RequestTypes.Track,{t:s}])}onOpen(){this.connected=!0,this.based.listeners.connect&&this.based.listeners.connect.forEach(s=>s()),this.token&&E(this,this.token,this.sendTokenOptions),M(this),de(this)}onData(s){var e,r;try{let i=JSON.parse(s.data);this.debugInternal&&this.debugInternal(i,"incoming");let[n,o,c,a,u]=i;if(n===g.RequestTypes.Token){this.retryingRenewToken=!1,o.length&&Me(this,i),!c&&typeof a=="string"&&this.user&&this.renewOptions.refreshToken&&(this.token=a);for(let l of this.auth)l(!c);this.beingAuth=!1,this.auth=[]}else if(n===g.RequestTypes.Auth)Ke(this,i);else if((((e=u||a)==null?void 0:e.code)===g.BasedErrorCodes.TokenExpired||((r=u||a)==null?void 0:r.message)==="Token expired")&&!this.retryingRenewToken){this.retryingRenewToken=!0;let l=this.user;Je(this,this.renewOptions).then(d=>{E(this,d.token,this.sendTokenOptions),n===g.RequestTypes.Subscription||n===g.RequestTypes.SubscriptionDiff?M(this):y(this,n,a==null?void 0:a.payload,this.requestCallbacks[o].resolve,this.requestCallbacks[o].reject),this.based.emit("renewToken",d),d&&this.updateUserState(l,d.token,this.renewOptions.refreshToken)}).catch(d=>{var f;(f=this.requestCallbacks[o])==null||f.reject(d)})}else n===g.RequestTypes.Set||n===g.RequestTypes.Get||n===g.RequestTypes.Configuration||n===g.RequestTypes.GetConfiguration||n===g.RequestTypes.Call||n===g.RequestTypes.Delete||n===g.RequestTypes.Copy||n===g.RequestTypes.Digest||n===g.RequestTypes.RemoveType||n===g.RequestTypes.RemoveField||n===g.RequestTypes.BulkUpdate?He(this,i):n===g.RequestTypes.Subscription?je(this,i):n===g.RequestTypes.SubscriptionDiff&&Le(this,i)}catch(i){console.error("Received incorrect data ",s.data)}}};var ge=(t,s)=>{let e;if(t.configuration&&t.configuration.schema)for(let r in t.configuration.schema){let i=t.configuration.schema[r];if(i.prefixToTypeMapping){for(let n in i.prefixToTypeMapping)if(i.prefixToTypeMapping[n]===s){e=n;break}}}return e};var Te=require("@saulx/hash");var Ye=require("@based/types"),Ze=require("@saulx/hash"),Xe=new Set,ht=t=>{if(typeof window!="undefined"){if(Xe.has(t))return!1;Xe.add(t);try{let s="_ba:"+(0,Ze.hashCompact)(t);return localStorage.getItem(s)?!1:(localStorage.setItem(s,"1"),!0)}catch(s){return!1}}return!1},ye=(t,s)=>{if(s){let e=`${t}`,r=Object.keys(s).sort();for(let i of r)e+="_"+i+"_"+s[i];return e}else return t},N=(t,s,e,r,i,n,o)=>{let c=ye(s,e),a={t:c};o&&(a.r=1),i&&(a.e=1,n&&(a.o=n)),r?(a.s=1,t.tracking.delete(c)):o||(i||(t.tracking||(t.tracking=new Set),t.tracking.add(c)),ht(c)&&(a.u=1)),b(t,[Ye.RequestTypes.Track,a])};var ve=class{constructor(s,e,r){this.closed=!1;this.client=s,this.subId=r,this.subscriberId=e}unsubscribe(){this.closed=!0,k(this.client,this.subId,this.subscriberId)}},ke=class{constructor(s,e){this.closed=!1;this.client=s,this.subs=e}unsubscribe(){if(!this.closed){this.closed=!0;for(let s of this.subs)s.unsubscribe()}}},ee=class{constructor(s,e){this.client=s,this.components=e}subscribe(s,e,r){let i={data:{}},n=[];for(let{key:o,obs:c}of this.components){let a=c.subscribe(u=>{if(o===""){Object.assign(i.data,u),s(i);return}i.data[o]=u,s(i)},e);n.push(a)}return new ke(this.client,n)}},C=class{constructor(s,e,r){this.client=s,this.subId=typeof e=="string"?P(r,e):P(e),this.name=typeof e=="string"?e:null,this.payload=typeof e=="string"?r:e}subscribe(s,e,r){let[,i]=I(this.client,this.payload,s,n=>{n&&(console.error(n),e&&e(n))},e,this.subId,this.name);return new ve(this.client,i,this.subId)}};var Se={},H={},gt=(t,s)=>{Se[t]||(Se[t]=!0,setTimeout(()=>{console.info("Drain file q"),Se[t]=!1;let e=H[t];H[t]=[];let r=new global.FormData;for(let i of e){let{raw:n,name:o,id:c,file:a,functionName:u}=i,l=`${u||""}|${n?1:0}|${c}|${a.size}${o?`|${o}`:""}`;r.append(l,a)}try{let i=new global.XMLHttpRequest;i.upload.onprogress=n=>{let o=100*(n.loaded||n.position)/(n.totalSize||n.total);console.info(o,"upload...")},i.onerror=n=>{console.error("error!",n,"flap",i.responseText)},i.timeout=1e3*60*60*24,i.onabort=n=>{console.error("abort",n)},i.ontimeout=n=>{console.error("on timeout",n)},i.onload=()=>{try{JSON.parse(i.response)}catch(n){console.error("something wrong with file upload",n)}},i.open("POST",t+"/file"),i.setRequestHeader("Content-Type","multipart/form-data"),i.setRequestHeader("Authorization",s),i.send(r)}catch(i){console.error("Something wrong with xhr upload",i)}},500))},et=async(t,s,e,r,i,n,o)=>{H[e]||(H[e]=[]),H[e].push({file:s,id:r,url:e,raw:i,name:n,functionName:o}),gt(e,t.getToken())};var tt=K(require("@based/get-service")),te={},se={},yt=async(t,s)=>{if(s.url)return typeof s.url=="string"?s.url:await s.url();if(!t.opts.env&&t.opts.url)return typeof t.opts.url=="string"?t.opts.url:await t.opts.url();let{env:e,project:r,org:i}=t.opts,n=e+"/"+r+"/"+i+"/"+t.opts.cluster;if(te[n])return te[n];if(se[n])return(await se[n]).url;let o=await(se[n]=(0,tt.default)({env:e,project:r,org:i,name:"@based/hub",key:"file-upload",optionalKey:!0},0,t.opts.cluster));return delete se[n],setTimeout(()=>{delete te[n]},2e3),te[n]=o.url},st=yt;var it=K(require("cross-fetch")),ie=(t,s,e)=>((0,it.default)(s,{method:"POST",cache:"no-cache",headers:{"Content-Type":e.mimeType||"text/plain","File-Id":e.id,"File-Is-Raw":e.raw?"1":"0","File-Name":e.name||"","Function-Name":e.functionName||"",Authorization:t.getToken()},body:e.contents}).then(r=>{}).catch(r=>{console.error("Error while uploading file",r)}),{id:e.id});var A=require("./file/stream"),re=typeof window!="undefined",vt=t=>"src"in t&&typeof t.src=="string",kt=t=>"path"in t&&typeof t.path=="string",St=t=>"contents"in t&&(0,A.isStream)(t.contents),rt=async(t,s)=>{if(vt(s)){let i=s.id?{$id:s.id}:{type:"file"};return s.src?(i.src=s.src,i.origin=s.src,s.size&&(i.size=s.size),s.name&&(i.name=s.name),s.parents&&(i.parents=s.parents),await t.set(i)):void 0}let e=s.id;if(!e){let i={type:"file",progress:0};s.name?i.name=s.name:global.File&&"contents"in s&&s.contents instanceof global.File&&(i.name=s.contents.name),s.parents&&(i.parents=s.parents),e=(await t.set(i)).id}s.id=e;let r=(await st(t,s)).replace(/^ws/,"http");if(kt(s))return(0,A.uploadFilePath)(t,r,s),{id:e};if(St(s))return(0,A.uploadFileStream)(t,r,s),{id:e};if(s.contents instanceof ArrayBuffer)return s.contents=re?new global.Blob([s.contents],{type:s.mimeType||"text/plain"}):global.Buffer.from(s.contents),ie(t,r+"/file",s);if(re&&s.contents instanceof global.Blob)return s.mimeType||(s.mimeType=s.contents.type),ie(t,r+"/file",s);if(typeof s.contents=="string"||!re&&s.contents instanceof global.Buffer)return ie(t,r+"/file",s);if(re&&s.contents instanceof File)return et(t,s.contents,r,s.id,s.raw||!1,s.name,s.functionName),{id:e};throw s.id||await t.delete({$id:e}),new Error(`Invalid contents for file api ${JSON.stringify(s,null,2)}`)};var oe=K(require("@based/get-service")),Oe=require("@saulx/utils"),T=require("@based/graphql");p(m,require("@based/types"),module.exports);var ne=class extends Re{constructor(e){super();this.client=new x(this),Object.defineProperty(this,"client",{enumerable:!1,writable:!0}),e&&e.url&&this.connect(e.url),this.graphql={query:this.gqlQuery.bind(this),live:this.gqlLive.bind(this)}}connect(e){!e&&this._url?this.client.connection||(this.client.connection=le(this.client,this._url)):(this._url=e,this.client.connection=le(this.client,e))}disconnect(){this.client.connection&&(this.client.connection.disconnected=!0,this.client.connection.destroy(),this.client.connection.ws&&this.client.connection.ws.close(),this.client.connected&&this.client.onClose(),delete this.client.connection),this.client.connected=!1}observeUntil(e,r,i){return new Promise((n,o)=>{let c,a=!1;this.observe(e,(u,l)=>{i&&i(u,l),r(u,l)&&(a=!0,c&&c(),n(u))}).then(u=>{a?c():c=u}).catch(u=>{o(u)})})}gql(e,...r){typeof e=="string"&&(e=[e]);let i=e[0];return r.forEach((n,o)=>{n&&n.kind==="Document"?i+=n.loc.source.body:i+=n,i+=e[o+1]}),(0,T.createOperations)({schemas:this.client.configuration.schema},(0,T.parseGraphql)(i))}gqlDb(e="default"){return(r,...i)=>{typeof r=="string"&&(r=[r]);let n=r[0];return i.forEach((o,c)=>{o&&o.kind==="Document"?n+=o.loc.source.body:n+=o,n+=r[c+1]}),(0,T.createOperations)({schemas:this.client.configuration.schema,db:e},(0,T.parseGraphql)(n))}}observe(e,r,i,n){return typeof e=="string"?new Promise((o,c)=>{let a=typeof r=="function",u=a?r:i,l=a?i:n;I(this.client,a?void 0:r,u,(d,f,h,O,R)=>{d&&!R?c(d):o(()=>{k(this.client,f,h)})},l,void 0,e)}):new Promise((o,c)=>{I(this.client,e,r,(a,u,l,d,f)=>{a&&!f?c(a):o(()=>{k(this.client,u,l)})},i)})}createObservable(e,r){return typeof e=="string"?new C(this.client,e,r):new C(this.client,e)}observeSchema(e,r,i){return new Promise((n,o)=>{let c=typeof e=="string"?e:"default",a=typeof e=="string"?r:e,u=typeof e=="string"?i:r;I(this.client,{$subscribe_schema:c},(l,d)=>{this.client.configuration||(this.client.configuration={dbs:[],schema:{},functions:{}}),this.client.configuration.schema[c]=l,a(l,d)},(l,d,f,h,O)=>{l&&!O?o(l):n(()=>{k(this.client,d,f)})},u)})}get(e,r){return typeof e=="string"?new Promise((i,n)=>{V(this.client,r,(o,c,a,u)=>{o?n(o):i(u)},0,e)}):new Promise((i,n)=>{y(this.client,v.RequestTypes.Get,e,i,n)})}file(e){return global.File&&e instanceof File&&(e={contents:e}),rt(this,e)}call(e,r){return new Promise((i,n)=>{y(this.client,v.RequestTypes.Call,r,i,n,e)})}async id(e,r){let i=ge(this.client,e);if(i||(await this.schema(),i=ge(this.client,e)),!i)throw w({message:`Type does not exist ${e}`,type:"Invalid type",payload:r?{type:e,opts:r}:{type:e}});if(r){let n=(0,Te.hashCompact)(r,8,!0);return i+n}else return i+(0,Te.hashCompact)(Math.floor(Math.random()*99999999999)+""+Date.now())}digest(e){return new Promise((r,i)=>{y(this.client,v.RequestTypes.Digest,e,r,i)})}set(e){return new Promise((r,i)=>{y(this.client,v.RequestTypes.Set,e,r,i)})}bulkUpdate(e,r){return new Promise((i,n)=>{y(this.client,v.RequestTypes.BulkUpdate,{payload:e,query:r},i,n)})}copy(e){return new Promise((r,i)=>{y(this.client,v.RequestTypes.Copy,e,r,i)})}async gqlQuery(e,r={}){let i;typeof e=="string"?i=this.gql(e):i=e;try{if(i=(0,T.handleGraphqlVariables)(i,i,r),i.opType==="GET"){let o={$db:i.db},c=[];for(let u in i.ops){if(i.ops[u].fnObserve){let l=await this.get(i.ops[u].fnObserve.name,i.ops[u].fnObserve.payload);c.push({key:u,reply:l});continue}i.ops[u].get&&(o[u]=i.ops[u].get)}let a=await this.get(o);for(let{key:u,reply:l}of c)a[u]=l;return{data:a}}let n={};return await Promise.all(Object.entries(i.ops).map(async([o,c])=>{var d,f,h,O,R;if(c.delete){n[o]=await this.delete(c.delete);return}else if(c.fnCall){n[o]=await this.call(c.fnCall.name,c.fnCall.payload);return}let{id:a}=await this.set(c.set);if(!c.get){let Q={};Q.id=a;let we=(R=(O=(h=(f=(d=this.client)==null?void 0:d.configuration)==null?void 0:f.schema)==null?void 0:h[i.db])==null?void 0:O.prefixToTypeMapping)==null?void 0:R[a.slice(0,2)];we&&(Q.type=we),n[o]=Q;return}let u=(0,Oe.deepCopy)(c.get);u.$id=a;let l=await this.get(u);n[o]=l})),{data:n}}catch(n){return{errors:[{message:n.message,locations:n.locations}]}}}async gqlLive(e,r={}){let i;if(typeof e=="string"?i=this.gql(e):i=e,i=(0,T.handleGraphqlVariables)(i,i,r),i.opType==="GET"){let o=[],c={};for(let a in i.ops){if(i.ops[a].fnObserve){let{name:u,payload:l}=i.ops[a].fnObserve;o.push({key:a,fn:{name:u,payload:l}});continue}c[a]=i.ops[a].get}if(o!=null&&o.length){let a=o.map(l=>({obs:new C(this.client,l.fn.name,l.fn.payload),key:l.key})),u=new C(this.client,G({$db:i.db},c));return a.push({key:"",obs:u}),new ee(this.client,a)}return new C(this.client,{$db:i.db,data:c})}let n={};return await Promise.all(Object.entries(i.ops).map(async([o,c])=>{if(c.delete){n[o]=await this.delete(c.delete);return}else if(c.fnCall){n[o]=await this.call(c.fnCall.name,c.fnCall.payload);return}let{id:a}=await this.set(c.set),u=(0,Oe.deepCopy)(c.get);u.$id=a,n[o]=u})),new C(this.client,{$db:i.db,data:n})}analytics(e,r){return new Promise((i,n)=>{r?I(this.client,e,r,(o,c,a,u,l)=>{o&&!l?n(o):i(()=>{k(this.client,c,a)})},o=>console.error(o),void 0,"analytics"):V(this.client,e,(o,c,a,u)=>{o?n(o):((0,v.isAnalyticsHistoryOpts)(e)||(0,v.isAnalyticsTypesOpts)(e),i(u))},0,"analytics")})}track(e,r){N(this.client,e,r)}clearAnalytics(e,r){N(this.client,e,r,!1,!1,void 0,!0)}untrack(e,r){N(this.client,e,r,!0)}event(e,r,i){N(this.client,e,r,!1,!0,i)}delete(e){return new Promise((r,i)=>{y(this.client,v.RequestTypes.Delete,e,r,i)})}schema(){return new Promise((e,r)=>{let i=n=>{this.client.configuration=n,e(n)};y(this.client,v.RequestTypes.GetConfiguration,0,i,r)})}removeType(e,r="default"){return new Promise((i,n)=>{y(this.client,v.RequestTypes.RemoveType,{type:e,db:r},i,n)})}removeField(e,r,i="default"){return new Promise((n,o)=>{!r||r.length===0?o(new Error("Path cannot be empty")):(Array.isArray(r)||(r=[r]),y(this.client,v.RequestTypes.RemoveField,{type:e,db:i,path:r},n,o))})}updateSchema(e){return new Promise((r,i)=>{y(this.client,v.RequestTypes.Configuration,e,r,i)})}getToken(){return this.client.token}auth(e,r){return new Promise(i=>{if(e&&e===this.client.token)this.client.beingAuth?this.client.auth.push(o=>{i(o?e:!1)}):i(e);else if(this.client.auth.push(i),e&&e!==this.client.token||e===!1&&this.client.token){if(typeof e=="string"){let n=r||{},{renewOptions:o,refreshToken:c}=n,a=qe(n,["renewOptions","refreshToken"]);o&&(this.client.renewOptions=o),c&&(this.client.renewOptions=J(G({},this.client.renewOptions),{refreshToken:c})),E(this.client,e,a)}else E(this.client);this.emit("auth",e)}})}async login(e){return e.localStorage===!1?this.client.tokenToLocalStorage=!1:this.client.tokenToLocalStorage=!0,_e(this.client,e)}async register(e){return e.localStorage===!1?this.client.tokenToLocalStorage=!1:this.client.tokenToLocalStorage=!0,ze(this.client,e)}logout(){return We(this.client)}observeAuth(e){return new Promise(r=>{this.client.user&&this.client.token?e({id:this.client.user,token:this.client.token}):e(!1);let i=n=>{n&&this.client.user&&this.client.token?e({id:this.client.user,token:this.client.token}):e(!1)};this.on("auth",i),r(()=>{this.removeListener("auth",i)})})}},Tt=(t,s)=>{if(s){let e;t+=/\?/.test(t)?"&":"?";for(let r in s){let i=s[r];t+=e?`&${r}=${i}`:`${r}=${i}`,e=!0}}return t},Ot=(t,s=ne)=>{let{env:e,project:r,org:i,url:n,key:o,name:c="@based/hub",cluster:a,params:u}=t;if(n||(a=t.cluster=(0,oe.getClusterUrl)(a),n=async()=>{let{url:l}=await(0,oe.default)({env:e,project:r,org:i,key:o,name:c},0,a);return Tt(l,u)}),n){let l=new s;return l.opts=t,l.client.initUserState(),l.connect(n),l}},wt=Ot;0&&(module.exports={Based,BasedClient,BasedGraphQL,Observable,addGetSubscriber,addRequest,addSubscriber,createGraphqlOperations,generateSubscriptionId,generateTrackingKey,handleGraphqlVariables,parseGraphql,removeSubscriber});
|
|
15
|
+
`),delete t.cache[e],b(t,[Z.RequestTypes.SendSubscriptionData,e]);else{c.checksum=n;for(let u in o.subscribers){let l=o.subscribers[u];l.onInitial&&(l.onInitial(null,Number(e),Number(u),c.value),delete l.onInitial,l.onData||S(t,e,Number(u))),l.onData&&l.onData(c.value,c.checksum)}}}}};var Me=(t,s)=>{for(let e of s[1]){delete t.cache[e];let r=t.subscriptions[e];if(r){let i={type:"AuthorizationError",name:r.name?`observe "${r.name}"`:"observe",message:"Unauthorized request",payload:r.query,auth:!0},n=w(i);r.authError={token:t.token,error:n};for(let o in r.subscribers){let c=r.subscribers[o];c.onError&&c.onError(n)}}}};var Ne=require("@based/types");var ft=0,y=(t,s,e,r,i,n,o)=>{let c=++ft;t.requestCallbacks[c]={resolve:r,reject:i,type:s,payload:e,name:n,isRetry:o},s===Ne.RequestTypes.Call?b(t,[s,n,c,e]):b(t,[s,c,e])};var He=(t,s)=>{let[,e,r,i]=s,n=t.requestCallbacks[e];n&&(delete t.requestCallbacks[e],i?n.reject(w(i)):n.resolve(r))};var k={};Be(k,{BasedClient:()=>x});var g=require("@based/types");var be=require("@based/types");var bt=t=>typeof t!="undefined"&&t!==null,mt=(t,s,e)=>{if(t.beingAuth=!0,s)t.token=s,t.sendTokenOptions=e;else{for(let r in t.cache)t.subscriptions[r]||delete t.cache[r];delete t.token,delete t.sendTokenOptions}if(t.connected){let r=s?[be.RequestTypes.Token,s,e].filter(bt):[be.RequestTypes.Token];t.connection.ws.send(JSON.stringify(r)),W(t),M(t,!0)}},E=mt;var B=require("@based/types");var me=0,_e=(t,s)=>{let e=++me;return b(t,[B.RequestTypes.Auth,B.AuthRequestTypes.Login,e,s]),new Promise((r,i)=>{t.authCallbacks[e]={resolve:n=>{n.id&&n.token?t.updateUserState(n.id,n.token,n.refreshToken):t.updateUserState(!1),r(n)},reject:i}})},ze=(t,s)=>new Promise((e,r)=>{y(t,B.RequestTypes.Call,s,i=>{i.id&&i.token?t.updateUserState(i.id,i.token,i.refreshToken):t.updateUserState(!1),e(i)},r,"registerUser")}),Je=(t,s)=>{let e=++me;return b(t,[B.RequestTypes.Auth,B.AuthRequestTypes.RenewToken,e,s]),new Promise((r,i)=>{t.authCallbacks[e]={resolve:r,reject:i}})},Ke=(t,s)=>{let[,e,r,i]=s,n=t.authCallbacks[e];n&&(delete t.authCallbacks[e],i?n.reject(w(i)):n.resolve(r))},We=t=>{let s=++me;return b(t,[B.RequestTypes.Auth,B.AuthRequestTypes.Logout,s]),new Promise((e,r)=>{t.authCallbacks[s]={resolve:i=>{t.updateUserState(!1),e(i)},reject:r}})};var Ve=(t,s)=>{let e=new Date,r=e.getHours()+":"+e.getMinutes()+":"+e.getSeconds()+":"+e.getMilliseconds();if(s==="incoming"){let i=`\u25BC ${r} -- `;console.info(i,t)}else{let i=`\u25B2 ${r} -- `;console.info(i,t)}};var he=require("@saulx/hash");p(k,require("@based/types"));var x=class{constructor(s){this.tokenToLocalStorage=!1;this.auth=[];this.subscriptions={};this.cache={};this.requestCallbacks={};this.authCallbacks={};this.connected=!1;this.subscriptionQueue=[];this.queue=[];this.drainInProgress=!1;this.based=s}get debug(){return this.debugInternal}set debug(s){s===!0?this.debugInternal=Ve:this.debugInternal=s}initUserState(){if(typeof window!="undefined"){if(this.based.opts){let s=(0,he.hash)({cluster:this.based.opts.cluster,project:this.based.opts.project,env:this.based.opts.project,org:this.based.opts.org});this.optsId=s}else this.optsId=(0,he.hash)("un-specified-env");try{let s=global.localStorage.getItem("based-"+this.optsId+"-uid");if(s){this.tokenToLocalStorage=!0;try{let[e,r,i]=JSON.parse(s);r&&e&&this.updateUserState(e,r,i)}catch(e){global.localStorage.removeItem("based-"+this.optsId+"-uid")}}}catch(s){}}}updateUserState(s,e,r){if(this.user=s,!this.tokenToLocalStorage&&typeof window!="undefined")try{global.localStorage.removeItem("based-"+this.optsId+"-uid")}catch(i){}if(e)r&&(this.renewOptions={refreshToken:r}),r&&(this.renewOptions=J(G({},this.renewOptions),{refreshToken:r})),E(this,e,{refreshToken:r}),this.auth.push(i=>{if(i){if(typeof window!="undefined")try{this.tokenToLocalStorage&&global.localStorage.setItem("based-"+this.optsId+"-uid",JSON.stringify([s,e,r]))}catch(n){}this.based.emit("auth",e)}else{if(typeof window!="undefined")try{this.tokenToLocalStorage&&global.localStorage.removeItem("based-"+this.optsId+"-uid")}catch(n){}this.based.emit("auth",!1)}});else{if(typeof window!="undefined"){this.user=!1;try{this.tokenToLocalStorage&&global.localStorage.removeItem("based-"+this.optsId+"-uid")}catch(i){}}E(this),this.based.emit("auth",!1)}}onClose(){this.connected=!1,Fe(this),xe(this),De(this),this.based.listeners.disconnect&&this.based.listeners.disconnect.forEach(s=>s())}onReconnect(){if(this.based.listeners.reconnect&&this.based.listeners.reconnect.forEach(s=>s()),this.tracking)for(let s of this.tracking)b(this,[g.RequestTypes.Track,{t:s}])}onOpen(){this.connected=!0,this.based.listeners.connect&&this.based.listeners.connect.forEach(s=>s()),this.token&&E(this,this.token,this.sendTokenOptions),M(this),de(this)}onData(s){var e,r;try{let i=JSON.parse(s.data);this.debugInternal&&this.debugInternal(i,"incoming");let[n,o,c,a,u]=i;if(n===g.RequestTypes.Token){this.retryingRenewToken=!1,o.length&&Me(this,i),!c&&typeof a=="string"&&this.user&&this.renewOptions.refreshToken&&(this.token=a);for(let l of this.auth)l(!c);this.beingAuth=!1,this.auth=[]}else if(n===g.RequestTypes.Auth)Ke(this,i);else if((((e=u||a)==null?void 0:e.code)===g.BasedErrorCodes.TokenExpired||((r=u||a)==null?void 0:r.message)==="Token expired")&&!this.retryingRenewToken){this.retryingRenewToken=!0;let l=this.user;Je(this,this.renewOptions).then(d=>{E(this,d.token,this.sendTokenOptions),n===g.RequestTypes.Subscription||n===g.RequestTypes.SubscriptionDiff?M(this):y(this,n,a==null?void 0:a.payload,this.requestCallbacks[o].resolve,this.requestCallbacks[o].reject),this.based.emit("renewToken",d),d&&this.updateUserState(l,d.token,this.renewOptions.refreshToken)}).catch(d=>{var f;(f=this.requestCallbacks[o])==null||f.reject(d)})}else n===g.RequestTypes.Set||n===g.RequestTypes.Get||n===g.RequestTypes.Configuration||n===g.RequestTypes.GetConfiguration||n===g.RequestTypes.Call||n===g.RequestTypes.Delete||n===g.RequestTypes.Copy||n===g.RequestTypes.Digest||n===g.RequestTypes.RemoveType||n===g.RequestTypes.RemoveField||n===g.RequestTypes.BulkUpdate?He(this,i):n===g.RequestTypes.Subscription?je(this,i):n===g.RequestTypes.SubscriptionDiff&&Le(this,i)}catch(i){console.error("Received incorrect data ",s.data)}}};var ge=(t,s)=>{let e;if(t.configuration&&t.configuration.schema)for(let r in t.configuration.schema){let i=t.configuration.schema[r];if(i.prefixToTypeMapping){for(let n in i.prefixToTypeMapping)if(i.prefixToTypeMapping[n]===s){e=n;break}}}return e};var Te=require("@saulx/hash");var Ye=require("@based/types"),Ze=require("@saulx/hash"),Xe=new Set,ht=t=>{if(typeof window!="undefined"){if(Xe.has(t))return!1;Xe.add(t);try{let s="_ba:"+(0,Ze.hashCompact)(t);return localStorage.getItem(s)?!1:(localStorage.setItem(s,"1"),!0)}catch(s){return!1}}return!1},ye=(t,s)=>{if(s){let e=`${t}`,r=Object.keys(s).sort();for(let i of r)e+="_"+i+"_"+s[i];return e}else return t},N=(t,s,e,r,i,n,o)=>{let c=ye(s,e),a={t:c};o&&(a.r=1),i&&(a.e=1,n&&(a.o=n)),r?(a.s=1,t.tracking.delete(c)):o||(i||(t.tracking||(t.tracking=new Set),t.tracking.add(c)),ht(c)&&(a.u=1)),b(t,[Ye.RequestTypes.Track,a])};var ve=class{constructor(s,e,r){this.closed=!1;this.client=s,this.subId=r,this.subscriberId=e}unsubscribe(){this.closed=!0,S(this.client,this.subId,this.subscriberId)}},Se=class{constructor(s,e){this.closed=!1;this.client=s,this.subs=e}unsubscribe(){if(!this.closed){this.closed=!0;for(let s of this.subs)s.unsubscribe()}}},ee=class{constructor(s,e){this.client=s,this.components=e}subscribe(s,e,r){let i={data:{}},n=[];for(let{key:o,obs:c}of this.components){let a=c.subscribe(u=>{if(o===""){Object.assign(i.data,u),s(i);return}i.data[o]=u,s(i)},e);n.push(a)}return new Se(this.client,n)}},C=class{constructor(s,e,r){this.client=s,this.subId=typeof e=="string"?P(r,e):P(e),this.name=typeof e=="string"?e:null,this.payload=typeof e=="string"?r:e}subscribe(s,e,r){let[,i]=I(this.client,this.payload,s,n=>{n&&(console.error(n),e&&e(n))},e,this.subId,this.name);return new ve(this.client,i,this.subId)}};var ke={},H={},gt=(t,s)=>{ke[t]||(ke[t]=!0,setTimeout(()=>{console.info("Drain file q"),ke[t]=!1;let e=H[t];H[t]=[];let r=new global.FormData;for(let i of e){let{raw:n,name:o,id:c,file:a,functionName:u}=i,l=`${u||""}|${n?1:0}|${c}|${a.size}${o?`|${o}`:""}`;r.append(l,a)}try{let i=new global.XMLHttpRequest;i.upload.onprogress=n=>{let o=100*(n.loaded||n.position)/(n.totalSize||n.total);console.info(o,"upload...")},i.onerror=n=>{console.error("error!",n,"flap",i.responseText)},i.timeout=1e3*60*60*24,i.onabort=n=>{console.error("abort",n)},i.ontimeout=n=>{console.error("on timeout",n)},i.onload=()=>{try{JSON.parse(i.response)}catch(n){console.error("something wrong with file upload",n)}},i.open("POST",t+"/file"),i.setRequestHeader("Content-Type","multipart/form-data"),i.setRequestHeader("Authorization",s),i.send(r)}catch(i){console.error("Something wrong with xhr upload",i)}},500))},et=async(t,s,e,r,i,n,o)=>{H[e]||(H[e]=[]),H[e].push({file:s,id:r,url:e,raw:i,name:n,functionName:o}),gt(e,t.getToken())};var tt=K(require("@based/get-service")),te={},se={},yt=async(t,s)=>{if(s.url)return typeof s.url=="string"?s.url:await s.url();if(!t.opts.env&&t.opts.url)return typeof t.opts.url=="string"?t.opts.url:await t.opts.url();let{env:e,project:r,org:i}=t.opts,n=e+"/"+r+"/"+i+"/"+t.opts.cluster;if(te[n])return te[n];if(se[n])return(await se[n]).url;let o=await(se[n]=(0,tt.default)({env:e,project:r,org:i,name:"@based/hub",key:"file-upload",optionalKey:!0},0,t.opts.cluster));return delete se[n],setTimeout(()=>{delete te[n]},2e3),te[n]=o.url},st=yt;var it=K(require("cross-fetch")),ie=(t,s,e)=>((0,it.default)(s,{method:"POST",cache:"no-cache",headers:{"Content-Type":e.mimeType||"text/plain","File-Id":e.id,"File-Is-Raw":e.raw?"1":"0","File-Name":e.name||"","Function-Name":e.functionName||"",Authorization:t.getToken()},body:e.contents}).then(r=>{}).catch(r=>{console.error("Error while uploading file",r)}),{id:e.id});var A=require("./file/stream"),re=typeof window!="undefined",vt=t=>"src"in t&&typeof t.src=="string",St=t=>"path"in t&&typeof t.path=="string",kt=t=>"contents"in t&&(0,A.isStream)(t.contents),rt=async(t,s)=>{if(vt(s)){let i=s.id?{$id:s.id}:{type:"file"};return s.src?(i.src=s.src,i.origin=s.src,s.size&&(i.size=s.size),s.name&&(i.name=s.name),s.parents&&(i.parents=s.parents),await t.set(i)):void 0}let e=s.id;if(!e){let i={type:"file",progress:0};s.name?i.name=s.name:global.File&&"contents"in s&&s.contents instanceof global.File&&(i.name=s.contents.name),s.parents&&(i.parents=s.parents),e=(await t.set(i)).id}s.id=e;let r=(await st(t,s)).replace(/^ws/,"http");if(St(s))return(0,A.uploadFilePath)(t,r,s),{id:e};if(kt(s))return(0,A.uploadFileStream)(t,r,s),{id:e};if(s.contents instanceof ArrayBuffer)return s.contents=re?new global.Blob([s.contents],{type:s.mimeType||"text/plain"}):global.Buffer.from(s.contents),ie(t,r+"/file",s);if(re&&s.contents instanceof global.Blob)return s.mimeType||(s.mimeType=s.contents.type),ie(t,r+"/file",s);if(typeof s.contents=="string"||!re&&s.contents instanceof global.Buffer)return ie(t,r+"/file",s);if(re&&s.contents instanceof File)return et(t,s.contents,r,s.id,s.raw||!1,s.name,s.functionName),{id:e};throw s.id||await t.delete({$id:e}),new Error(`Invalid contents for file api ${JSON.stringify(s,null,2)}`)};var oe=K(require("@based/get-service")),Oe=require("@saulx/utils"),T=require("@based/graphql");p(m,require("@based/types"),module.exports);var ne=class extends Re{constructor(e){super();this.client=new x(this),Object.defineProperty(this,"client",{enumerable:!1,writable:!0}),e&&e.url&&this.connect(e.url),this.graphql={query:this.gqlQuery.bind(this),live:this.gqlLive.bind(this)}}connect(e){!e&&this._url?this.client.connection||(this.client.connection=le(this.client,this._url)):(this._url=e,this.client.connection=le(this.client,e))}disconnect(){this.client.connection&&(this.client.connection.disconnected=!0,this.client.connection.destroy(),this.client.connection.ws&&this.client.connection.ws.close(),this.client.connected&&this.client.onClose(),delete this.client.connection),this.client.connected=!1}observeUntil(e,r,i){return new Promise((n,o)=>{let c,a=!1;this.observe(e,(u,l)=>{i&&i(u,l),r(u,l)&&(a=!0,c&&c(),n(u))}).then(u=>{a?c():c=u}).catch(u=>{o(u)})})}gql(e,...r){typeof e=="string"&&(e=[e]);let i=e[0];return r.forEach((n,o)=>{n&&n.kind==="Document"?i+=n.loc.source.body:i+=n,i+=e[o+1]}),(0,T.createOperations)({schemas:this.client.configuration.schema},(0,T.parseGraphql)(i))}gqlDb(e="default"){return(r,...i)=>{typeof r=="string"&&(r=[r]);let n=r[0];return i.forEach((o,c)=>{o&&o.kind==="Document"?n+=o.loc.source.body:n+=o,n+=r[c+1]}),(0,T.createOperations)({schemas:this.client.configuration.schema,db:e},(0,T.parseGraphql)(n))}}observe(e,r,i,n){return typeof e=="string"?new Promise((o,c)=>{let a=typeof r=="function",u=a?r:i,l=a?i:n;I(this.client,a?void 0:r,u,(d,f,h,O,R)=>{d&&!R?c(d):o(()=>{S(this.client,f,h)})},l,void 0,e)}):new Promise((o,c)=>{I(this.client,e,r,(a,u,l,d,f)=>{a&&!f?c(a):o(()=>{S(this.client,u,l)})},i)})}createObservable(e,r){return typeof e=="string"?new C(this.client,e,r):new C(this.client,e)}observeSchema(e,r,i){return new Promise((n,o)=>{let c=typeof e=="string"?e:"default",a=typeof e=="string"?r:e,u=typeof e=="string"?i:r;I(this.client,{$subscribe_schema:c},(l,d)=>{this.client.configuration||(this.client.configuration={dbs:[],schema:{},functions:{}}),this.client.configuration.schema[c]=l,a(l,d)},(l,d,f,h,O)=>{l&&!O?o(l):n(()=>{S(this.client,d,f)})},u)})}get(e,r){return typeof e=="string"?new Promise((i,n)=>{V(this.client,r,(o,c,a,u)=>{o?n(o):i(u)},0,e)}):new Promise((i,n)=>{y(this.client,v.RequestTypes.Get,e,i,n)})}file(e){return global.File&&e instanceof File&&(e={contents:e}),rt(this,e)}call(e,r){return new Promise((i,n)=>{y(this.client,v.RequestTypes.Call,r,i,n,e)})}async id(e,r){let i=ge(this.client,e);if(i||(await this.schema(),i=ge(this.client,e)),!i)throw w({message:`Type does not exist ${e}`,type:"Invalid type",payload:r?{type:e,opts:r}:{type:e}});if(r){let n=(0,Te.hashCompact)(r,8,!0);return i+n}else return i+(0,Te.hashCompact)(Math.floor(Math.random()*99999999999)+""+Date.now())}digest(e){return new Promise((r,i)=>{y(this.client,v.RequestTypes.Digest,e,r,i)})}set(e){return new Promise((r,i)=>{y(this.client,v.RequestTypes.Set,e,r,i)})}bulkUpdate(e,r){return new Promise((i,n)=>{y(this.client,v.RequestTypes.BulkUpdate,{payload:e,query:r},i,n)})}copy(e){return new Promise((r,i)=>{y(this.client,v.RequestTypes.Copy,e,r,i)})}async gqlQuery(e,r={}){let i;typeof e=="string"?i=this.gql(e):i=e;try{if(i=(0,T.handleGraphqlVariables)(i,i,r),i.opType==="GET"){let o={$db:i.db},c=[];for(let u in i.ops){if(i.ops[u].fnObserve){let l=await this.get(i.ops[u].fnObserve.name,i.ops[u].fnObserve.payload);c.push({key:u,reply:l});continue}i.ops[u].get&&(o[u]=i.ops[u].get)}let a=await this.get(o);for(let{key:u,reply:l}of c)a[u]=l;return{data:a}}let n={};return await Promise.all(Object.entries(i.ops).map(async([o,c])=>{var d,f,h,O,R;if(c.delete){n[o]=await this.delete(c.delete);return}else if(c.fnCall){n[o]=await this.call(c.fnCall.name,c.fnCall.payload);return}let{id:a}=await this.set(c.set);if(!c.get){let Q={};Q.id=a;let we=(R=(O=(h=(f=(d=this.client)==null?void 0:d.configuration)==null?void 0:f.schema)==null?void 0:h[i.db])==null?void 0:O.prefixToTypeMapping)==null?void 0:R[a.slice(0,2)];we&&(Q.type=we),n[o]=Q;return}let u=(0,Oe.deepCopy)(c.get);u.$id=a;let l=await this.get(u);n[o]=l})),{data:n}}catch(n){return{errors:[{message:n.message,locations:n.locations}]}}}async gqlLive(e,r={}){let i;if(typeof e=="string"?i=this.gql(e):i=e,i=(0,T.handleGraphqlVariables)(i,i,r),i.opType==="GET"){let o=[],c={};for(let a in i.ops){if(i.ops[a].fnObserve){let{name:u,payload:l}=i.ops[a].fnObserve;o.push({key:a,fn:{name:u,payload:l}});continue}c[a]=i.ops[a].get}if(o!=null&&o.length){let a=o.map(l=>({obs:new C(this.client,l.fn.name,l.fn.payload),key:l.key})),u=new C(this.client,G({$db:i.db},c));return a.push({key:"",obs:u}),new ee(this.client,a)}return new C(this.client,{$db:i.db,data:c})}let n={};return await Promise.all(Object.entries(i.ops).map(async([o,c])=>{if(c.delete){n[o]=await this.delete(c.delete);return}else if(c.fnCall){n[o]=await this.call(c.fnCall.name,c.fnCall.payload);return}let{id:a}=await this.set(c.set),u=(0,Oe.deepCopy)(c.get);u.$id=a,n[o]=u})),new C(this.client,{$db:i.db,data:n})}analytics(e,r){return new Promise((i,n)=>{r?I(this.client,e,r,(o,c,a,u,l)=>{o&&!l?n(o):i(()=>{S(this.client,c,a)})},o=>console.error(o),void 0,"analytics"):V(this.client,e,(o,c,a,u)=>{o?n(o):((0,v.isAnalyticsHistoryOpts)(e)||(0,v.isAnalyticsTypesOpts)(e),i(u))},0,"analytics")})}track(e,r){N(this.client,e,r)}clearAnalytics(e,r){N(this.client,e,r,!1,!1,void 0,!0)}untrack(e,r){N(this.client,e,r,!0)}event(e,r,i){N(this.client,e,r,!1,!0,i)}delete(e){return new Promise((r,i)=>{y(this.client,v.RequestTypes.Delete,e,r,i)})}schema(){return new Promise((e,r)=>{let i=n=>{this.client.configuration=n,e(n)};y(this.client,v.RequestTypes.GetConfiguration,0,i,r)})}removeType(e,r="default"){return new Promise((i,n)=>{y(this.client,v.RequestTypes.RemoveType,{type:e,db:r},i,n)})}removeField(e,r,i="default"){return new Promise((n,o)=>{!r||r.length===0?o(new Error("Path cannot be empty")):(Array.isArray(r)||(r=[r]),y(this.client,v.RequestTypes.RemoveField,{type:e,db:i,path:r},n,o))})}updateSchema(e){return new Promise((r,i)=>{y(this.client,v.RequestTypes.Configuration,e,r,i)})}getToken(){return this.client.token}auth(e,r){return new Promise(i=>{if(e&&e===this.client.token)this.client.beingAuth?this.client.auth.push(o=>{i(o?e:!1)}):i(e);else if(this.client.auth.push(i),e&&e!==this.client.token||e===!1&&this.client.token)if(typeof e=="string"&&(r==null?void 0:r.id)&&r.refreshToken)r.localStorage===!1?this.client.tokenToLocalStorage=!1:this.client.tokenToLocalStorage=!0,this.client.updateUserState(r.id,e,r.refreshToken);else{if(typeof e=="string"){let n=r||{},{renewOptions:o,refreshToken:c}=n,a=qe(n,["renewOptions","refreshToken"]);o&&(this.client.renewOptions=o),c&&(this.client.renewOptions=J(G({},this.client.renewOptions),{refreshToken:c})),E(this.client,e,a)}else E(this.client);this.emit("auth",e)}})}async login(e){return e.localStorage===!1?this.client.tokenToLocalStorage=!1:this.client.tokenToLocalStorage=!0,_e(this.client,e)}async register(e){return e.localStorage===!1?this.client.tokenToLocalStorage=!1:this.client.tokenToLocalStorage=!0,ze(this.client,e)}logout(){return We(this.client)}observeAuth(e){return new Promise(r=>{this.client.user&&this.client.token?e({id:this.client.user,token:this.client.token}):e(!1);let i=n=>{n&&this.client.user&&this.client.token?e({id:this.client.user,token:this.client.token}):e(!1)};this.on("auth",i),r(()=>{this.removeListener("auth",i)})})}},Tt=(t,s)=>{if(s){let e;t+=/\?/.test(t)?"&":"?";for(let r in s){let i=s[r];t+=e?`&${r}=${i}`:`${r}=${i}`,e=!0}}return t},Ot=(t,s=ne)=>{let{env:e,project:r,org:i,url:n,key:o,name:c="@based/hub",cluster:a,params:u}=t;if(n||(a=t.cluster=(0,oe.getClusterUrl)(a),n=async()=>{let{url:l}=await(0,oe.default)({env:e,project:r,org:i,key:o,name:c,optionalKey:!0},0,a);return Tt(l,u)}),n){let l=new s;return l.opts=t,l.client.initUserState(),l.connect(n),l}},wt=Ot;0&&(module.exports={Based,BasedClient,BasedGraphQL,Observable,addGetSubscriber,addRequest,addSubscriber,createGraphqlOperations,generateSubscriptionId,generateTrackingKey,handleGraphqlVariables,parseGraphql,removeSubscriber});
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wDAA+B;AAC/B,4DAA0C;AAC1C,wCAyBqB;AACrB,mDAKwB;AA4BtB,8FAhCA,6BAAa,OAgCA;AAIb,uGAnCA,sCAAsB,OAmCA;AAHtB,iGA/BA,gCAAgB,OA+BA;AAChB,iGA/BA,gCAAgB,OA+BA;AA7BlB,uCAAsC;AA8BpC,2FA9BO,oBAAU,OA8BP;AA7BZ,qCAAsC;AA+BpC,4FA/BO,oBAAW,OA+BP;AA9Bb,8DAAqC;AACrC,gEAAuC;AACvC,sCAAyC;AACzC,oDAA+B;AAC/B,iDAA8D;AAoB5D,oGApBwB,cAAmB,OAoBxB;AAnBrB,6CAA0E;AA0BxE,2FA1BwC,uBAAU,OA0BxC;AAzBZ,iCAAgD;AAChD,kDAAyB;AACzB,kEAA8D;AAC9D,wCAAuC;AACvC,4CAKuB;AAMD,wGATpB,0BAAgB,OAS2B;AAC3C,6FATA,sBAAY,OASA;AACZ,uGATA,gCAAsB,OASA;AANxB,+CAA4B;AAgC5B,MAAa,KAAM,SAAQ,iBAAO;IAchC,YAAY,IAAgD;QAC1D,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,MAAM,GAAG,IAAI,oBAAW,CAAC,IAAI,CAAC,CAAA;QACnC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE;YACpC,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAA;QACF,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE;YACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;SACvB;QAED,IAAI,CAAC,OAAO,GAAG;YACb,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/B,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;SAC9B,CAAA;IACH,CAAC;IAEM,OAAO,CAAC,GAAsC;QACnD,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE;YACrB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAA,mBAAgB,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;aAClE;SACF;aAAM;YACL,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;YACf,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAA,mBAAgB,EAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;SAC5D;IACH,CAAC;IAMM,UAAU;QACf,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YAC1B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAA;YAC1C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,CAAA;YAChC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE;gBAC7B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;aAClC;YACD,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;gBACzB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;aACtB;YACD,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAA;SAC9B;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAA;IAC/B,CAAC;IAEM,YAAY,CACjB,KAAY,EACZ,SAA6D,EAC7D,MAA8C;QAE9C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,KAAK,CAAA;YACT,IAAI,UAAU,GAAG,KAAK,CAAA;YACtB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE;gBAClC,IAAI,MAAM,EAAE;oBACV,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;iBACpB;gBACD,IAAI,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE;oBAC1B,UAAU,GAAG,IAAI,CAAA;oBACjB,IAAI,KAAK,EAAE;wBACT,KAAK,EAAE,CAAA;qBACR;oBACD,OAAO,CAAC,CAAC,CAAC,CAAA;iBACX;YACH,CAAC,CAAC;iBACC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;gBACV,IAAI,UAAU,EAAE;oBACd,KAAK,EAAE,CAAA;iBACR;qBAAM;oBACL,KAAK,GAAG,CAAC,CAAA;iBACV;YACH,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,MAAM,CAAC,GAAG,CAAC,CAAA;YACb,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACJ,CAAC;IAEM,GAAG,CAAC,QAAoC,EAAE,GAAG,IAAW;QAC7D,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAChC,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAA;SACtB;QAED,IAAI,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QAExB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YACtB,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE;gBAClC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAA;aAC9B;iBAAM;gBACL,MAAM,IAAI,GAAG,CAAA;aACd;YACD,MAAM,IAAI,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QAC3B,CAAC,CAAC,CAAA;QAEF,OAAO,IAAA,0BAAgB,EACrB,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,EAC7C,IAAA,sBAAY,EAAC,MAAM,CAAC,CACrB,CAAA;IACH,CAAC;IAEM,KAAK,CACV,KAAa,SAAS;QAEtB,OAAO,CAAC,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE;YAC3B,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;gBAChC,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAA;aACtB;YAED,IAAI,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;YAExB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBACtB,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE;oBAClC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAA;iBAC9B;qBAAM;oBACL,MAAM,IAAI,GAAG,CAAA;iBACd;gBACD,MAAM,IAAI,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YAC3B,CAAC,CAAC,CAAA;YAEF,OAAO,IAAA,0BAAgB,EACrB,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,EAAE,EACjD,IAAA,sBAAY,EAAC,MAAM,CAAC,CACrB,CAAA;QACH,CAAC,CAAA;IACH,CAAC;IAqBM,OAAO,CACZ,CAAiB,EACjB,CAAgD,EAChD,CAAkE,EAClE,CAAwB;QAExB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;YACzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,UAAU,CAAA;gBACzC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBAChC,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC/B,IAAA,6BAAa,EACX,IAAI,CAAC,MAAM,EACX,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,+BAA+B;gBACnB,MAAM,EAC7C,CAAC,GAAG,EAAE,cAAc,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;oBACxD,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;wBACvB,iBAAiB;wBACjB,MAAM,CAAC,GAAG,CAAC,CAAA;qBACZ;yBAAM;wBACL,MAAM,WAAW,GAAG,GAAG,EAAE;4BACvB,IAAA,gCAAgB,EAAC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,YAAY,CAAC,CAAA;wBAC7D,CAAC,CAAA;wBACD,OAAO,CAAC,WAAW,CAAC,CAAA;qBACrB;gBACH,CAAC,EACqB,KAAK,EAC3B,SAAS,EACT,CAAC,CACF,CAAA;YACH,CAAC,CAAC,CAAA;SACH;aAAM;YACL,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,IAAA,6BAAa,EACX,IAAI,CAAC,MAAM,EACX,CAAC,EACsC,CAAC,EACxC,CAAC,GAAG,EAAE,cAAc,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;oBACxD,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;wBACvB,iBAAiB;wBACjB,MAAM,CAAC,GAAG,CAAC,CAAA;qBACZ;yBAAM;wBACL,MAAM,WAAW,GAAG,GAAG,EAAE;4BACvB,IAAA,gCAAgB,EAAC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,YAAY,CAAC,CAAA;wBAC7D,CAAC,CAAA;wBACD,OAAO,CAAC,WAAW,CAAC,CAAA;qBACrB;gBACH,CAAC,EACqB,CAAC,CACxB,CAAA;YACH,CAAC,CAAC,CAAA;SACH;IACH,CAAC;IAMM,gBAAgB,CAAC,CAAiB,EAAE,OAAa;QACtD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;YACzB,OAAO,IAAI,uBAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;SAC/C;aAAM;YACL,OAAO,IAAI,uBAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;SACtC;IACH,CAAC;IAaM,aAAa,CAClB,CAAmD,EACnD,CAAmE,EACnE,CAAwB;QAExB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAChD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC3C,IAAA,6BAAa,EACX,IAAI,CAAC,MAAM,EACX,EAAE,iBAAiB,EAAE,EAAE,EAAE,EACzB,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACjB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;oBAC9B,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG;wBAC1B,GAAG,EAAE,EAAE;wBACP,MAAM,EAAE,EAAE;wBACV,SAAS,EAAE,EAAE;qBACP,CAAA,CAAC,YAAY;iBACtB;gBAED,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;gBAC3C,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;YACxB,CAAC,EACD,CAAC,GAAG,EAAE,cAAc,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;gBACxD,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;oBACvB,iBAAiB;oBACjB,MAAM,CAAC,GAAG,CAAC,CAAA;iBACZ;qBAAM;oBACL,MAAM,WAAW,GAAG,GAAG,EAAE;wBACvB,IAAA,gCAAgB,EAAC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,YAAY,CAAC,CAAA;oBAC7D,CAAC,CAAA;oBACD,OAAO,CAAC,WAAW,CAAC,CAAA;iBACrB;YACH,CAAC,EACqB,KAAK,CAC5B,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAMM,GAAG,CAAC,CAAiB,EAAE,OAAa;QACzC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;YACzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,IAAA,gCAAgB,EACd,IAAI,CAAC,MAAM,EACX,OAAO,EACP,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;oBACjC,IAAI,GAAG,EAAE;wBACP,MAAM,CAAC,GAAG,CAAC,CAAA;qBACZ;yBAAM;wBACL,OAAO,CAAC,IAAI,CAAC,CAAA;qBACd;gBACH,CAAC,EACD,CAAC,EACD,CAAC,CACF,CAAA;YACH,CAAC,CAAC,CAAA;SACH;aAAM;YACL,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,IAAA,oBAAU,EAAC,IAAI,CAAC,MAAM,EAAE,oBAAY,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;YAC/D,CAAC,CAAC,CAAA;SACH;IACH,CAAC;IAEM,IAAI,CACT,IAKoB;QAEpB,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,YAAY,IAAI,EAAE;YACvC,IAAI,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;SAC1B;QACD,aAAa;QACb,OAAO,IAAA,cAAI,EAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACzB,CAAC;IAEM,IAAI,CAAC,IAAY,EAAE,OAAa;QACrC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAA,oBAAU,EAAC,IAAI,CAAC,MAAM,EAAE,oBAAY,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QAC5E,CAAC,CAAC,CAAA;IACJ,CAAC;IAEM,KAAK,CAAC,EAAE,CAAC,IAAY,EAAE,IAAU;QACtC,IAAI,MAAM,GAAG,IAAA,oBAAU,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAC1C,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;YACnB,MAAM,GAAG,IAAA,oBAAU,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;SACvC;QACD,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAA,qBAAW,EAAC;gBAChB,OAAO,EAAE,uBAAuB,IAAI,EAAE;gBACtC,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,IAAI;oBACX,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;oBAChB,CAAC,CAAC;wBACE,IAAI;qBACL;aACN,CAAC,CAAA;SACH;QACD,IAAI,IAAI,EAAE;YACR,MAAM,QAAQ,GAAG,IAAA,kBAAW,EAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;YAC3C,OAAO,MAAM,GAAG,QAAQ,CAAA;SACzB;aAAM;YACL,OAAO,CACL,MAAM;gBACN,IAAA,kBAAW,EAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CACvE,CAAA;SACF;IACH,CAAC;IAEM,MAAM,CAAC,OAAsB;QAClC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAA,oBAAU,EAAC,IAAI,CAAC,MAAM,EAAE,oBAAY,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QACxE,CAAC,CAAC,CAAA;IACJ,CAAC;IAEM,GAAG,CAAC,OAAmB;QAC5B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAA,oBAAU,EAAC,IAAI,CAAC,MAAM,EAAE,oBAAY,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QACrE,CAAC,CAAC,CAAA;IACJ,CAAC;IAEM,UAAU,CAAC,OAAmB,EAAE,KAAU;QAC/C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAA,oBAAU,EACR,IAAI,CAAC,MAAM,EACX,oBAAY,CAAC,UAAU,EACvB,EAAE,OAAO,EAAE,KAAK,EAAE,EAClB,OAAO,EACP,MAAM,CACP,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAEM,IAAI,CAAC,OAAa;QACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAA,oBAAU,EAAC,IAAI,CAAC,MAAM,EAAE,oBAAY,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QACtE,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,QAAQ,CACpB,CAAwB,EACxB,YAAiC,EAAE;QAEnC,IAAI,EAAgB,CAAA;QACpB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;YACzB,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;SACjB;aAAM;YACL,EAAE,GAAG,CAAC,CAAA;SACP;QAED,IAAI;YACF,EAAE,GAAG,IAAA,gCAAsB,EAAC,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,CAAA;YAE9C,IAAI,EAAE,CAAC,MAAM,KAAK,KAAK,EAAE;gBACvB,MAAM,QAAQ,GAAe,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAA;gBAC3C,MAAM,SAAS,GAAkC,EAAE,CAAA;gBACnD,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE;oBACxB,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE;wBACzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CACjB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,EAClC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,CAC9B,CAAA;wBAED,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;wBACpC,SAAQ;qBACT;oBAED,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE;wBACnB,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAA;qBAChC;iBACF;gBAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;gBAC1C,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,SAAS,EAAE;oBACtC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;iBACvB;gBAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;aAC3B;YAED,MAAM,KAAK,GAAG,EAAE,CAAA;YAChB,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;gBAC1C,IAAI,CAAC,CAAC,MAAM,EAAE;oBACZ,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;oBACtC,OAAM;iBACP;qBAAM,IAAI,CAAC,CAAC,MAAM,EAAE;oBACnB,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAS,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;oBACnE,OAAM;iBACP;gBAED,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;gBACpC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE;oBACV,MAAM,GAAG,GAAQ,EAAE,CAAA;oBACnB,GAAG,CAAC,EAAE,GAAG,EAAE,CAAA;oBAEX,MAAM,IAAI,GACR,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;wBACzC,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;oBAC3C,IAAI,IAAI,EAAE;wBACR,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;qBAChB;oBAED,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;oBACd,OAAM;iBACP;gBAED,MAAM,OAAO,GAAe,IAAA,gBAAQ,EAAC,CAAC,CAAC,GAAG,CAAC,CAAA;gBAC3C,OAAO,CAAC,GAAG,GAAG,EAAE,CAAA;gBAEhB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;gBACvC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAA;YACpB,CAAC,CAAC,CACH,CAAA;YAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;SACvB;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,CAAA;SACpE;IACH,CAAC;IAEO,KAAK,CAAC,OAAO,CACnB,CAAwB,EACxB,YAAiC,EAAE;QAEnC,IAAI,EAAgB,CAAA;QACpB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;YACzB,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;SACjB;aAAM;YACL,EAAE,GAAG,CAAC,CAAA;SACP;QAED,EAAE,GAAG,IAAA,gCAAsB,EAAC,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,CAAA;QAE9C,IAAI,EAAE,CAAC,MAAM,KAAK,KAAK,EAAE;YACvB,MAAM,GAAG,GAA0D,EAAE,CAAA;YACrE,MAAM,QAAQ,GAAe,EAAE,CAAA;YAC/B,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE;gBACxB,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE;oBACzB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAA;oBAC/C,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAU,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;oBACtD,SAAQ;iBACT;gBACD,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAA;aAChC;YAED,IAAI,GAAG,EAAE,MAAM,EAAE;gBACf,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;oBAC5B,OAAO;wBACL,GAAG,EAAE,IAAI,uBAAU,CAAC,IAAI,CAAC,MAAM,EAAU,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC;wBACnE,GAAG,EAAE,EAAE,CAAC,GAAG;qBACZ,CAAA;gBACH,CAAC,CAAC,CAAA;gBAEF,MAAM,QAAQ,GAAG,IAAI,uBAAU,CAAC,IAAI,CAAC,MAAM,EAAE;oBAC3C,GAAG,EAAE,EAAE,CAAC,EAAE;oBACV,GAAG,QAAQ;iBACZ,CAAC,CAAA;gBAEF,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAA;gBAEvC,OAAO,IAAI,+BAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;aACnD;YAED,OAAO,IAAI,uBAAU,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;SACnE;QAED,MAAM,QAAQ,GAAG,EAAE,CAAA;QACnB,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;YAC3C,IAAI,EAAE,CAAC,MAAM,EAAE;gBACb,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;gBAC1C,OAAM;aACP;iBAAM,IAAI,EAAE,CAAC,MAAM,EAAE;gBACpB,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CACnB,EAAE,CAAC,MAAM,CAAC,IAAI,EACtB,EAAE,CAAC,MAAM,CAAC,OAAO,CAClB,CAAA;gBACD,OAAM;aACP;YAED,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;YAErC,MAAM,OAAO,GAAe,IAAA,gBAAQ,EAAC,EAAE,CAAC,GAAG,CAAC,CAAA;YAC5C,OAAO,CAAC,GAAG,GAAG,EAAE,CAAA;YAEhB,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAA;QACvB,CAAC,CAAC,CACH,CAAA;QAED,OAAO,IAAI,uBAAU,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IACpE,CAAC;IAwBM,SAAS,CACd,IAA+D,EAC/D,MAG8D;QAI9D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,MAAM,EAAE;gBACV,IAAA,6BAAa,EACX,IAAI,CAAC,MAAM,EACX,IAAI,EACJ,MAAM,EACN,CAAC,GAAG,EAAE,cAAc,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;oBACxD,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;wBACvB,MAAM,CAAC,GAAG,CAAC,CAAA;qBACZ;yBAAM;wBACL,MAAM,WAAW,GAAG,GAAG,EAAE;4BACvB,IAAA,gCAAgB,EAAC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,YAAY,CAAC,CAAA;wBAC7D,CAAC,CAAA;wBACD,OAAO,CAAC,WAAW,CAAC,CAAA;qBACrB;gBACH,CAAC,EACD,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAC3B,SAAS,EACT,WAAW,CACZ,CAAA;aACF;iBAAM;gBACL,IAAA,gCAAgB,EACd,IAAI,CAAC,MAAM,EACX,IAAI,EACJ,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;oBACjC,IAAI,GAAG,EAAE;wBACP,MAAM,CAAC,GAAG,CAAC,CAAA;qBACZ;yBAAM;wBACL,IAAI,IAAA,8BAAsB,EAAC,IAAI,CAAC,EAAE;4BAChC,OAAO,CAAC,IAA8B,CAAC,CAAA;yBACxC;6BAAM,IAAI,IAAA,4BAAoB,EAAC,IAAI,CAAC,EAAE;4BACrC,OAAO,CAAC,IAAsB,CAAC,CAAA;yBAChC;6BAAM;4BACL,OAAO,CAAC,IAAuB,CAAC,CAAA;yBACjC;qBACF;gBACH,CAAC,EACD,CAAC,EACD,WAAW,CACZ,CAAA;aACF;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAEM,KAAK,CACV,IAAY,EACZ,MAAqD;QAErD,IAAA,eAAK,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IAClC,CAAC;IAEM,cAAc,CACnB,IAAY,EACZ,MAAqD;QAErD,IAAA,eAAK,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;IACjE,CAAC;IAEM,OAAO,CACZ,IAAY,EACZ,MAAqD;QAErD,IAAA,eAAK,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IACxC,CAAC;IAEM,KAAK,CACV,IAAY,EACZ,MAAqD,EACrD,IAAgB;QAEhB,IAAA,eAAK,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IACrD,CAAC;IAEM,MAAM,CAAC,OAGb;QACC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAA,oBAAU,EAAC,IAAI,CAAC,MAAM,EAAE,oBAAY,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QACxE,CAAC,CAAC,CAAA;IACJ,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,QAAQ,GAAG,CAAC,MAAqB,EAAE,EAAE;gBACzC,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,MAAM,CAAA;gBAClC,OAAO,CAAC,MAAM,CAAC,CAAA;YACjB,CAAC,CAAA;YACD,IAAA,oBAAU,EACR,IAAI,CAAC,MAAM,EACX,oBAAY,CAAC,gBAAgB,EAC7B,CAAC,EACD,QAAQ,EACR,MAAM,CACP,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAEM,UAAU,CACf,IAAY,EACZ,KAAa,SAAS;QAEtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAA,oBAAU,EACR,IAAI,CAAC,MAAM,EACX,oBAAY,CAAC,UAAU,EACvB,EAAE,IAAI,EAAE,EAAE,EAAE,EACZ,OAAO,EACP,MAAM,CACP,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAEM,WAAW,CAChB,IAAY,EACZ,IAAuB,EACvB,KAAa,SAAS;QAEtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAA;aAC1C;iBAAM;gBACL,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBACxB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAA;iBACd;gBAED,IAAA,oBAAU,EACR,IAAI,CAAC,MAAM,EACX,oBAAY,CAAC,WAAW,EACxB,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAClB,OAAO,EACP,MAAM,CACP,CAAA;aACF;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAEM,YAAY,CACjB,aAQO;QAEP,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAA,oBAAU,EACR,IAAI,CAAC,MAAM,EACX,oBAAY,CAAC,aAAa,EAC1B,aAAa,EACb,OAAO,EACP,MAAM,CACP,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAA;IAC1B,CAAC;IAED,qBAAqB;IACd,IAAI,CACT,KAAqB,EACrB,OAA0B;QAE1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,KAAK,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;gBACxC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;oBAC1B,OAAO,CAAC,KAAK,CAAC,CAAA;iBACf;qBAAM;oBACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;wBAC1B,IAAI,CAAC,EAAE;4BACL,OAAO,CAAC,KAAK,CAAC,CAAA;yBACf;6BAAM;4BACL,OAAO,CAAC,KAAK,CAAC,CAAA;yBACf;oBACH,CAAC,CAAC,CAAA;iBACH;aACF;iBAAM;gBACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBAC9B,IACE,CAAC,KAAK,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;oBACtC,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EACtC;oBACA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;wBAC7B,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,GACtD,OAAO,IAAI,EAAE,CAAA;wBACf,IAAI,YAAY,EAAE;4BAChB,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,YAAY,CAAA;yBACxC;wBACD,IAAI,YAAY,EAAE;4BAChB,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG;gCACzB,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY;gCAC3B,YAAY;6BACb,CAAA;yBACF;wBACD,IAAA,eAAS,EAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,eAAe,CAAC,CAAA;qBAC/C;yBAAM;wBACL,yBAAyB;wBACzB,2DAA2D;wBAC3D,IAAA,eAAS,EAAC,IAAI,CAAC,MAAM,CAAC,CAAA;qBACvB;oBACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;iBACzB;aACF;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,cAAc;IAEP,KAAK,CAAC,KAAK,CAChB,IAA4C;QAE5C,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE;YAC/B,IAAI,CAAC,MAAM,CAAC,mBAAmB,GAAG,KAAK,CAAA;SACxC;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,mBAAmB,GAAG,IAAI,CAAA;SACvC;QACD,OAAO,IAAA,YAAK,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACjC,CAAC;IAEM,KAAK,CAAC,QAAQ,CACnB,IAA+C;QAE/C,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE;YAC/B,IAAI,CAAC,MAAM,CAAC,mBAAmB,GAAG,KAAK,CAAA;SACxC;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,mBAAmB,GAAG,IAAI,CAAA;SACvC;QACD,OAAO,IAAA,eAAQ,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACpC,CAAC;IAEM,MAAM;QACX,OAAO,IAAA,aAAM,EAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC5B,CAAC;IAEM,WAAW,CAChB,gBAOS;QAET,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,iCAAiC;YAEjC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;gBACzC,gBAAgB,CAAC;oBACf,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;oBACpB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;iBACzB,CAAC,CAAA;aACH;iBAAM;gBACL,gBAAgB,CAAC,KAAK,CAAC,CAAA;aACxB;YAED,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,EAAE;gBACzB,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;oBAC9C,gBAAgB,CAAC;wBACf,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;wBACpB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;qBACzB,CAAC,CAAA;iBACH;qBAAM;oBACL,gBAAgB,CAAC,KAAK,CAAC,CAAA;iBACxB;YACH,CAAC,CAAA;YAED,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;YAE7B,OAAO,CAAC,GAAG,EAAE;gBACX,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;YAC3C,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AAj1BD,sBAi1BC;AAED,iCAAiC;AAEjC,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IACrC,IAAI,MAAM,EAAE;QACV,IAAI,YAAY,CAAA;QAChB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;QACjC,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;YACxB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;YACzB,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAA;YAC5D,YAAY,GAAG,IAAI,CAAA;SACpB;KACF;IAED,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAeD,MAAM,KAAK,GAAG,CAAC,IAAe,EAAE,UAAU,GAAG,KAAK,EAAS,EAAE;IAC3D,IAAI,EACF,GAAG,EACH,OAAO,EACP,GAAG,EACH,GAAG,EACH,GAAG,EACH,IAAI,GAAG,YAAY,EACnB,OAAO,EACP,MAAM,GACP,GAAG,IAAI,CAAA;IAER;;;MAGE;IAEF,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAA,2BAAa,EAAC,OAAO,CAAC,CAAA;QAE/C,GAAG,GAAG,KAAK,IAAI,EAAE;YACf,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAA,qBAAU,EAC9B;gBACE,GAAG;gBACH,OAAO;gBACP,GAAG;gBACH,GAAG;gBACH,IAAI;aACL,EACD,CAAC,EACD,OAAO,CACR,CAAA;YACD,OAAO,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QACpC,CAAC,CAAA;KACF;IAED,IAAI,GAAG,EAAE;QACP,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAA;QAC/B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QAClB,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,CAAA;QAC7B,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACnB,OAAO,MAAM,CAAA;KACd;AACH,CAAC,CAAA;AAED,kBAAe,KAAK,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
## JWT Auth Flow HowTo using based/ui
|
|
2
|
+
|
|
3
|
+
This guide shows how to implement authentication using [based/ui](https://github.com/atelier-saulx/ui) UI library and its authentication components.
|
|
4
|
+
The tutorial example files can be found in [this repository](https://github.com/atelier-saulx/auth-demo).
|
|
5
|
+
|
|
6
|
+
### Imports
|
|
7
|
+
|
|
8
|
+
Components can be imported or required from the [`@based/ui`](https://www.npmjs.com/package/@based/ui) npm package.
|
|
9
|
+
```bash
|
|
10
|
+
$ npm install @based/ui
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
```javascript
|
|
14
|
+
import { Provider, Authorize } from '@based/ui'
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### Provider
|
|
18
|
+
|
|
19
|
+
The first step is to wrap the app with a `<Provider />` component. This will set up the app to handle third-party auth provider callbacks and handle overlays and themes from the `based/ui` library.
|
|
20
|
+
The `<Provider />` component expects the main app component as a child and a [based client](https://github.com/atelier-saulx/based/blob/main/packages/client/README.md) as the `client` argument.
|
|
21
|
+
|
|
22
|
+
```javascript
|
|
23
|
+
const client = based(basedConfig)
|
|
24
|
+
render(
|
|
25
|
+
<Provider client={client}>
|
|
26
|
+
<App />
|
|
27
|
+
</Provider>,
|
|
28
|
+
rootEl
|
|
29
|
+
)
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Authorize component
|
|
33
|
+
|
|
34
|
+
The Authorize component renders other components only when a user is authenticated. If the user is not authenticated, it will show a login/register dialog.
|
|
35
|
+
Email, Google, Microsoft, and Github provider handler functions are installed in new environments by default. We encourage you to check these [templates](https://github.com/atelier-saulx/based/tree/main/packages/templates/jwtAuth/functions) and adapt them to your needs by adding the [data functions](https://github.com/atelier-saulx/based/tree/main/packages/templates/jwtAuth/functions) to your project and [deploying](https://github.com/atelier-saulx/based/blob/main/packages/cli/README.md#deploy) them with the [based CLI](https://github.com/atelier-saulx/based/blob/main/packages/cli/README.md).
|
|
36
|
+
|
|
37
|
+
```javascript
|
|
38
|
+
<Authorize
|
|
39
|
+
// googleClientId="<your_google_client_id>"
|
|
40
|
+
// microsoftClientId="<your_microsoft_client_id>"
|
|
41
|
+
// githubClientId="<your_github_client_id>"
|
|
42
|
+
app={LoggedinBody}
|
|
43
|
+
/>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
The protected sections of your site should be wrapped in a component passed to the `app` argument.
|
|
47
|
+
The component is passed as an argument instead of `children`, so the protected components are never rendered if the user is not authenticated.
|
|
48
|
+
|
|
49
|
+
### Email provider
|
|
50
|
+
|
|
51
|
+
New environments came by default, with a `user` type ready to receive email registrations. The [`register` user data function](https://github.com/atelier-saulx/based/blob/main/packages/templates/jwtAuth/functions/registerUser/index.ts) registers new users using the name and email address, sends a confirmation email, and waits for the new user to click the email message he received confirming the email address.
|
|
52
|
+
|
|
53
|
+
### Google provider
|
|
54
|
+
|
|
55
|
+
To enable the Sign In with Google provider and button, you need to configure the google client id and google client secret.
|
|
56
|
+
Follow the instructions in [this](https://developers.google.com/identity/sign-in/web/sign-in) page to the point where you have both.
|
|
57
|
+
The client id is configured in the `<Authorize />` component as the `googleClientId` argument.
|
|
58
|
+
The client secret should be saved as a [secret](https://github.com/atelier-saulx/based/tree/main/packages/cli#secrets) with the name `google-client-secret-<project>-<env>` where `<project>` and `<env>` should be replaced with the name of your project and environment.
|
|
59
|
+
The Google credential should be configured with your domain and `https://<your_domain>/auth-google` as the callback address.
|
|
60
|
+
|
|
61
|
+
### Microsoft provider
|
|
62
|
+
|
|
63
|
+
To enable the Microsoft Identity Platform provider, you need to configure a Microsoft client id.
|
|
64
|
+
Follow the instructions in [this](https://docs.microsoft.com/en-us/azure/active-directory/develop/web-api-quickstart?pivots=devlang-aspnet) page until you have the Microsoft client id.
|
|
65
|
+
The client id is configured in the `<Authorize />` component with the `microsoftClientId` argument.
|
|
66
|
+
The Azure application should be configured with your domain and `https://<your_domain>/auth-microsoft` as the callback address.
|
|
67
|
+
|
|
68
|
+
### GitHub provider
|
|
69
|
+
|
|
70
|
+
To enable the GitHub Oauth provider, your need to configure your GitHub client id and client secret.
|
|
71
|
+
Follow the instructions in [this](https://docs.github.com/en/developers/apps/building-github-apps/creating-a-github-app) page to get both.
|
|
72
|
+
Be sure to de your domain name and user `https://<your_domain>/auth-github` as the callback address.
|
|
73
|
+
The client id should be configured in the `<Authorize />` component using the `githubClientId` argument. The client secret should be saved as a [secret](https://github.com/atelier-saulx/based/tree/main/packages/cli#secrets) with the name `github-client-secret-<project>-<env>` where `<project>` and `<env>` should be replaced with the name of your project and environment.
|
|
74
|
+
|
package/docs/auth.md
CHANGED
|
@@ -88,4 +88,6 @@ This event is called when the renewToken data function is run. It is used to han
|
|
|
88
88
|
|
|
89
89
|
## How to use
|
|
90
90
|
|
|
91
|
-
Check
|
|
91
|
+
Check the guides bellow for examples of how the use:
|
|
92
|
+
- [React](https://github.com/atelier-saulx/based/blob/main/packages/client/docs/auth-howto.md)
|
|
93
|
+
- [React with based/ui library](https://github.com/atelier-saulx/based/blob/main/packages/client/docs/auth-based-ui-howto.md)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@based/client",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"browser": {
|
|
@@ -31,30 +31,28 @@
|
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@based/get-service": "2.4.3",
|
|
33
33
|
"@based/graphql": "^2.4.3",
|
|
34
|
-
"@based/types": "^2.7.3",
|
|
35
34
|
"@saulx/diff": "^1.1.3",
|
|
36
35
|
"@saulx/hash": "^1.1.0",
|
|
37
|
-
"@saulx/utils": "^2.2
|
|
36
|
+
"@saulx/utils": "^2.3.2",
|
|
38
37
|
"cross-fetch": "^3.1.4",
|
|
39
38
|
"isomorphic-ws": "^4.0.1",
|
|
40
39
|
"ws": "^7.5.3"
|
|
41
40
|
},
|
|
42
41
|
"devDependencies": {
|
|
43
|
-
"@based/types": "^2.
|
|
44
|
-
"
|
|
45
|
-
"esbuild": "^0.14.29",
|
|
42
|
+
"@based/types": "^2.8.0",
|
|
43
|
+
"@saulx/aristotle": "^4.0.14",
|
|
46
44
|
"@saulx/hash": "^1.1.0",
|
|
47
45
|
"@saulx/selva": "^14.0.0",
|
|
48
|
-
"@saulx/utils": "^2.2.1",
|
|
49
46
|
"@saulx/selva-server": "^14.0.0",
|
|
50
|
-
"@saulx/aristotle": "^4.0.14",
|
|
51
47
|
"@types/jsonwebtoken": "^8.5.6",
|
|
52
48
|
"@types/node": "^17.0.23",
|
|
53
49
|
"@types/ws": "^7.4.6",
|
|
54
50
|
"ava": "3.15.0",
|
|
51
|
+
"concurrently": "^7.1.0",
|
|
52
|
+
"esbuild": "^0.14.29",
|
|
55
53
|
"jsonwebtoken": "^8.5.1",
|
|
54
|
+
"rimraf": "^3.0.2",
|
|
56
55
|
"ts-node": "^10.1.0",
|
|
57
|
-
"typescript": "^4.3.5"
|
|
58
|
-
"rimraf": "^3.0.2"
|
|
56
|
+
"typescript": "^4.3.5"
|
|
59
57
|
}
|
|
60
58
|
}
|