@coasys/ad4m-connect 0.10.0-rc1 → 0.10.0-rc2

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.
@@ -0,0 +1 @@
1
+ export default function AppLogo(): import("lit").TemplateResult<1>;
@@ -1,4 +1,4 @@
1
- export default function Hosting({ step, email, changeEmail, changeState, password, changePassword, login, checkEmail, passwordError, setHostingStep }: {
1
+ export default function Hosting({ step, email, changeEmail, changeState, password, changePassword, login, checkEmail, passwordError, setHostingStep, isHostingRunning, setIsHostingRunning }: {
2
2
  step: any;
3
3
  email: any;
4
4
  changeEmail: any;
@@ -9,4 +9,6 @@ export default function Hosting({ step, email, changeEmail, changeState, passwor
9
9
  checkEmail: any;
10
10
  passwordError: any;
11
11
  setHostingStep: any;
12
+ isHostingRunning: any;
13
+ setIsHostingRunning: any;
12
14
  }): import("lit").TemplateResult<1>;
@@ -1,6 +1,8 @@
1
- export default function Request({ code, changeState, verifyCode, changeCode }: {
1
+ export default function Request({ code, changeState, verifyCode, changeCode, isHosting, verifyCodeError }: {
2
2
  code: any;
3
3
  changeState: any;
4
4
  verifyCode: any;
5
5
  changeCode: any;
6
+ isHosting: any;
7
+ verifyCodeError: any;
6
8
  }): import("lit").TemplateResult<1>;
package/dist/core.d.ts CHANGED
@@ -36,6 +36,7 @@ export default class Ad4mConnect {
36
36
  appDomain: string;
37
37
  appIconPath: string;
38
38
  appUrl?: string;
39
+ isHosting: boolean;
39
40
  listeners: Record<Event, Function[]>;
40
41
  constructor({ appName, appDesc, appIconPath, appUrl, appDomain, capabilities, port, token, url, }: Ad4mConnectOptions);
41
42
  private notifyConfigChange;
package/dist/core.js CHANGED
@@ -1084,5 +1084,5 @@ type TriggeredNotification {
1084
1084
  perspectiveId: String!
1085
1085
  triggerMatch: String!
1086
1086
  }
1087
- `;function xu(t){return t?.length?t.length===1?t.toString():t.length===2?t.join(" and "):t.slice(0,-1).join(", ")+", and "+t.slice(-1):""}function kw(t){let e=t.can.includes("*")?["READ","WRITE","UPDATE"]:t.can,r=t.with.domain==="*"?"":t.with.domain,n=t.with.pointers.includes("*")?["all AD4M data"]:t.with.pointers;return`${xu(e)} your ${r} actions, with access to ${xu(n)}`}var lr=function(t,e,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r},U=function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},Fe,ct,ea,fe,Iu=class{constructor(t,e,r){Fe.set(this,void 0),ct.set(this,void 0),ea.set(this,void 0),fe.set(this,void 0),lr(this,Fe,e||ut.from(Gu(24)).toUrl(),"f"),lr(this,fe,t,"f"),lr(this,ea,r||"ad4m://self","f")}get baseExpression(){return U(this,Fe,"f")}async getData(t){let e=t??U(this,Fe,"f"),r=await U(this,fe,"f").getSubjectData(U(this,ct,"f"),e);return Object.assign(this,r),lr(this,Fe,e,"f"),this}async setProperty(key,value){let setters=await U(this,fe,"f").infer(`subject_class("${U(this,ct,"f")}", C), property_setter(C, "${key}", Setter)`);if(setters&&setters.length>0){let actions=eval(setters[0].Setter),resolveLanguageResults=await U(this,fe,"f").infer(`subject_class("${U(this,ct,"f")}", C), property_resolve_language(C, "${key}", Language)`),resolveLanguage;resolveLanguageResults&&resolveLanguageResults.length>0&&(resolveLanguage=resolveLanguageResults[0].Language),resolveLanguage&&(value=await U(this,fe,"f").createExpression(value,resolveLanguage)),await U(this,fe,"f").executeAction(actions,U(this,Fe,"f"),[{name:"value",value}])}}async setCollectionSetter(key,value){let collectionSetters=await U(this,fe,"f").infer(`subject_class("${U(this,ct,"f")}", C), collection_setter(C, "${Dt(key)}", Setter)`);if(collectionSetters||(collectionSetters=[]),collectionSetters.length>0){let actions=eval(collectionSetters[0].Setter);value&&(Array.isArray(value)?await U(this,fe,"f").executeAction(actions,U(this,Fe,"f"),value.map(t=>({name:"value",value:t}))):await U(this,fe,"f").executeAction(actions,U(this,Fe,"f"),[{name:"value",value}]))}}async setCollectionAdder(key,value){let adders=await U(this,fe,"f").infer(`subject_class("${U(this,ct,"f")}", C), collection_adder(C, "${Dt(key)}", Adder)`);if(adders||(adders=[]),adders.length>0){let actions=eval(adders[0].Adder);value&&(Array.isArray(value)?await Promise.all(value.map(t=>U(this,fe,"f").executeAction(actions,U(this,Fe,"f"),[{name:"value",value:t}]))):await U(this,fe,"f").executeAction(actions,U(this,Fe,"f"),[{name:"value",value}]))}}async setCollectionRemover(key,value){let removers=await U(this,fe,"f").infer(`subject_class("${U(this,ct,"f")}", C), collection_remover(C, "${Dt(key)}", Remover)`);if(removers||(removers=[]),removers.length>0){let actions=eval(removers[0].Remover);value&&(Array.isArray(value)?await Promise.all(value.map(t=>U(this,fe,"f").executeAction(actions,U(this,Fe,"f"),[{name:"value",value:t}]))):await U(this,fe,"f").executeAction(actions,U(this,Fe,"f"),[{name:"value",value}]))}}async save(){lr(this,ct,await U(this,fe,"f").stringOrTemplateObjectToSubjectClass(this),"f"),await U(this,fe,"f").createSubject(this,U(this,Fe,"f")),await U(this,fe,"f").add(new wr({source:U(this,ea,"f"),predicate:"ad4m://has_child",target:this.baseExpression})),await this.update()}async update(){lr(this,ct,await U(this,fe,"f").stringOrTemplateObjectToSubjectClass(this),"f");let t=Object.entries(this);for(let[e,r]of t)if(r!=null)if(r?.action)switch(r.action){case"setter":await this.setCollectionSetter(e,r.value);break;case"adder":await this.setCollectionAdder(e,r.value);break;case"remover":await this.setCollectionRemover(e,r.value);default:await this.setCollectionSetter(e,r.value);break}else Array.isArray(r)&&r.length>0?await this.setCollectionSetter(e,r):r!=null&&r!==""&&await this.setProperty(e,r);await this.getData()}async get(){return lr(this,ct,await U(this,fe,"f").stringOrTemplateObjectToSubjectClass(this),"f"),await this.getData()}async delete(){await U(this,fe,"f").removeSubject(this,U(this,Fe,"f"))}static async all(t){let e=await t.stringOrTemplateObjectToSubjectClass(this),r=await t.getAllSubjectProxies(e),n=[];if(r){for(let i of r){let a=new this(t,i.X);n.push(await a.get())}return n}return[]}static async query(t,e){let r=e?.source||"ad4m://self",n=await t.stringOrTemplateObjectToSubjectClass(this),i=[];if(e)try{if((await t.infer(`findall([Timestamp, Base], (subject_class("${n}", C), instance(C, Base), link("${r}", Predicate, Base, Timestamp, Author)), AllData), sort(AllData, SortedData), length(SortedData, DataLength).`))[0].DataLength>=e.size){let s=`findall([Timestamp, Base], (subject_class("${n}", C), instance(C, Base), link("${r}", Predicate, Base, Timestamp, Author)), AllData), sort(AllData, SortedData), reverse(SortedData, ReverseSortedData), paginate(ReverseSortedData, ${e.page}, ${e.size}, PageData).`;i=await t.infer(s),i=i[0].PageData.map(c=>({Base:c[1],Timestamp:c[0]}))}else i=await t.infer(`subject_class("${n}", C), instance(C, Base), triple("${r}", Predicate, Base).`)}catch(o){console.log("Query failed",o)}else i=await t.infer(`subject_class("${n}", C), instance(C, Base), triple("${r}", Predicate, Base).`);return i?await Promise.all(i.map(async o=>await new this(t,o.Base).get())):[]}};Fe=new WeakMap,ct=new WeakMap,ea=new WeakMap,fe=new WeakMap;function Hp(){let t=new AbortController;return setTimeout(()=>t.abort(),20),t}function os(t,e=1e4){return Ae(this,null,function*(){return Promise.race([new Promise((r,n)=>{t.includes("localhost")||r(new WebSocket(t));let i=new WebSocket(t);i.onopen=()=>{r(i)},i.onerror=a=>{n(a)}}),new Promise((r,n)=>{setTimeout(()=>{n(new Error("WebSocket connection timed out"))},e)})])})}function ss(t){return Ae(this,null,function*(){try{let e=yield fetch(`http://localhost:${t}/graphql/`,{signal:Hp().signal,mode:"no-cors"});if(e.status===400||e.status===0)return t;throw new Error(`Could not connect to port ${t}`)}catch(e){throw new Error(`Could not connect to port ${t}`)}})}var Yp=t=>{let e=new Set;do for(let r of Reflect.ownKeys(t))e.add([t,r]);while((t=Reflect.getPrototypeOf(t))&&t!==Object.prototype);return e};function cs(t,{include:e,exclude:r}={}){let n=i=>{let a=o=>typeof o=="string"?i===o:o.test(i);return e?e.some(a):r?!r.some(a):!0};for(let[i,a]of Yp(t.constructor.prototype)){if(a==="constructor"||!n(a))continue;let o=Reflect.getOwnPropertyDescriptor(i,a);o&&typeof o.value=="function"&&(t[a]=t[a].bind(t))}return t}var us=class{constructor({appName:e,appDesc:r,appIconPath:n,appUrl:i,appDomain:a,capabilities:o,port:s,token:c,url:u}){this.activeSocket=null;this.requestedRestart=!1;this.authState="unauthenticated";this.connectionState="not_connected";this.port=12e3;this.capabilities=[];this.listeners={authstatechange:[],configstatechange:[],connectionstatechange:[]};cs(this);this.appName=e,this.appDesc=r,this.appDomain=a,this.appUrl=i,this.appIconPath=n,this.capabilities=o,this.port=s||this.port,this.url=u||`ws://localhost:${this.port}/graphql`,this.token=c||this.token,this.buildClient()}notifyConfigChange(e,r){this.listeners.configstatechange.forEach(n=>{n(e,r)})}notifyConnectionChange(e){this.connectionState!==e&&(this.connectionState=e,this.listeners.connectionstatechange.forEach(r=>{r(e)}))}notifyAuthChange(e){this.authState!==e&&(this.authState=e,this.listeners.authstatechange.forEach(r=>{r(e)}))}setPort(e){this.port!==e&&(this.port=e,this.setUrl(`ws://localhost:${this.port}/graphql`),this.notifyConfigChange("port",e))}setUrl(e){this.url!==e&&(this.url=e,this.notifyConfigChange("url",e))}setToken(e){this.token!==e&&(this.token=e,this.notifyConfigChange("token",e))}on(e,r){this.listeners[e].push(r)}connect(e){return Ae(this,null,function*(){try{if(e){yield os(e,1e4),this.setUrl(e);let r=this.buildClient();return yield this.checkAuth(),r}else{let r=yield this.ensureConnection();return yield this.checkAuth(),r}}catch(r){this.notifyConnectionChange("not_connected"),this.notifyAuthChange("unauthenticated")}})}loginToHosting(e,r){return Ae(this,null,function*(){try{let n=yield fetch("https://hosting.ad4m.dev/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e,password:r})});if(n.status===200){let i=yield n.json();localStorage.setItem("hosting_token",i.token);let a=localStorage.getItem("hosting_token"),o=yield fetch("https://hosting.ad4m.dev/api/service/info",{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+a}});if(o.status===200){let s=yield o.json();s.serviceId&&(this.setPort(s.port),this.setUrl(s.url),this.connect())}}else if((yield n.json()).message==="Passwords did not match")throw new Error("Passwords did not match")}catch(n){throw console.log(n),new Error(`Error logging in ${n}`)}})}checkEmail(e){return Ae(this,null,function*(){try{return(yield fetch(`https://hosting.ad4m.dev/api/auth/check-email?email=${e}`,{method:"GET",headers:{"Content-Type":"application/json"}})).status===200}catch(r){console.log(r)}})}connectToPort(e){return Ae(this,null,function*(){try{if(e){let r=yield ss(e);this.setPort(r)}else{let r=yield this.findPort();this.setPort(r)}return this.buildClient()}catch(r){this.notifyConnectionChange("not_connected"),this.notifyAuthChange("unauthenticated")}})}ensureConnection(){return Ae(this,null,function*(){var r,n;if(((r=this.activeSocket)==null?void 0:r.readyState)===WebSocket.OPEN&&((n=this.activeSocket)==null?void 0:n.url)===this.url&&this.ad4mClient)return this.ad4mClient;try{return yield os(this.url,1e4),this.buildClient()}catch(i){return this.connectToPort()}})}findPort(){return Ae(this,null,function*(){let e=[...Array(10).keys()].map((i,a)=>ss(12e3+a)),n=(yield Promise.allSettled(e)).find(i=>i.status==="fulfilled");if(n)return n.value;throw Error("Couldn't find an open port")})}buildClient(){this.notifyConnectionChange("connecting");try{new WebSocket(this.url)}catch(e){this.notifyConnectionChange("not_connected")}return this.apolloClient&&this.wsClient&&(this.requestedRestart=!0,this.wsClient.dispose(),this.apolloClient.stop()),this.wsClient=iu({url:this.url,connectionParams:()=>Ae(this,null,function*(){return{headers:{authorization:this.token}}}),on:{connecting:()=>{this.requestedRestart||this.notifyConnectionChange("connecting")},opened:e=>{this.activeSocket=e},error:e=>{this.notifyConnectionChange("not_connected"),this.notifyAuthChange("unauthenticated")},connected:()=>{this.notifyConnectionChange("connected")},closed:()=>Ae(this,null,function*(){if(!this.requestedRestart)if(!this.token)this.notifyConnectionChange(this.token?"disconnected":"not_connected"),this.notifyAuthChange("unauthenticated"),this.requestedRestart=!1;else{let e=yield this.connect();e?this.ad4mClient=e:(this.notifyConnectionChange(this.token?"disconnected":"not_connected"),this.notifyAuthChange("unauthenticated"),this.requestedRestart=!1)}})}}),this.apolloClient=new No({link:new au(this.wsClient),cache:new Ni({resultCaching:!1,addTypename:!1}),defaultOptions:{watchQuery:{fetchPolicy:"no-cache"},query:{fetchPolicy:"no-cache"},mutate:{fetchPolicy:"no-cache"}}}),this.ad4mClient=new pa(this.apolloClient),this.ad4mClient}checkAuth(){return Ae(this,null,function*(){try{return(yield this.ad4mClient.agent.isLocked())?this.notifyAuthChange("locked"):(yield this.ad4mClient.agent.status(),this.notifyAuthChange("authenticated")),!0}catch(e){return e.message==="Socket closed with event 4500 Cannot extractByTags from a ciphered wallet. You must unlock first."?(this.notifyAuthChange("locked"),!0):(this.notifyAuthChange("unauthenticated"),!1)}})}requestCapability(e=!1){return Ae(this,null,function*(){var r;return e&&this.setToken(null),this.requestId=yield(r=this.ad4mClient)==null?void 0:r.agent.requestCapability({appName:this.appName,appDesc:this.appDesc,appUrl:this.appUrl,appIconPath:this.appIconPath,appDomain:this.appDomain,capabilities:this.capabilities}),this.requestId})}verifyCode(e){return Ae(this,null,function*(){var n;let r=yield(n=this.ad4mClient)==null?void 0:n.agent.generateJwt(this.requestId,e);return this.setToken(r),yield this.buildClient(),yield this.checkAuth(),this.token})}};export{us as default};
1087
+ `;function xu(t){return t?.length?t.length===1?t.toString():t.length===2?t.join(" and "):t.slice(0,-1).join(", ")+", and "+t.slice(-1):""}function kw(t){let e=t.can.includes("*")?["READ","WRITE","UPDATE"]:t.can,r=t.with.domain==="*"?"":t.with.domain,n=t.with.pointers.includes("*")?["all AD4M data"]:t.with.pointers;return`${xu(e)} your ${r} actions, with access to ${xu(n)}`}var lr=function(t,e,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r},U=function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},Fe,ct,ea,fe,Iu=class{constructor(t,e,r){Fe.set(this,void 0),ct.set(this,void 0),ea.set(this,void 0),fe.set(this,void 0),lr(this,Fe,e||ut.from(Gu(24)).toUrl(),"f"),lr(this,fe,t,"f"),lr(this,ea,r||"ad4m://self","f")}get baseExpression(){return U(this,Fe,"f")}async getData(t){let e=t??U(this,Fe,"f"),r=await U(this,fe,"f").getSubjectData(U(this,ct,"f"),e);return Object.assign(this,r),lr(this,Fe,e,"f"),this}async setProperty(key,value){let setters=await U(this,fe,"f").infer(`subject_class("${U(this,ct,"f")}", C), property_setter(C, "${key}", Setter)`);if(setters&&setters.length>0){let actions=eval(setters[0].Setter),resolveLanguageResults=await U(this,fe,"f").infer(`subject_class("${U(this,ct,"f")}", C), property_resolve_language(C, "${key}", Language)`),resolveLanguage;resolveLanguageResults&&resolveLanguageResults.length>0&&(resolveLanguage=resolveLanguageResults[0].Language),resolveLanguage&&(value=await U(this,fe,"f").createExpression(value,resolveLanguage)),await U(this,fe,"f").executeAction(actions,U(this,Fe,"f"),[{name:"value",value}])}}async setCollectionSetter(key,value){let collectionSetters=await U(this,fe,"f").infer(`subject_class("${U(this,ct,"f")}", C), collection_setter(C, "${Dt(key)}", Setter)`);if(collectionSetters||(collectionSetters=[]),collectionSetters.length>0){let actions=eval(collectionSetters[0].Setter);value&&(Array.isArray(value)?await U(this,fe,"f").executeAction(actions,U(this,Fe,"f"),value.map(t=>({name:"value",value:t}))):await U(this,fe,"f").executeAction(actions,U(this,Fe,"f"),[{name:"value",value}]))}}async setCollectionAdder(key,value){let adders=await U(this,fe,"f").infer(`subject_class("${U(this,ct,"f")}", C), collection_adder(C, "${Dt(key)}", Adder)`);if(adders||(adders=[]),adders.length>0){let actions=eval(adders[0].Adder);value&&(Array.isArray(value)?await Promise.all(value.map(t=>U(this,fe,"f").executeAction(actions,U(this,Fe,"f"),[{name:"value",value:t}]))):await U(this,fe,"f").executeAction(actions,U(this,Fe,"f"),[{name:"value",value}]))}}async setCollectionRemover(key,value){let removers=await U(this,fe,"f").infer(`subject_class("${U(this,ct,"f")}", C), collection_remover(C, "${Dt(key)}", Remover)`);if(removers||(removers=[]),removers.length>0){let actions=eval(removers[0].Remover);value&&(Array.isArray(value)?await Promise.all(value.map(t=>U(this,fe,"f").executeAction(actions,U(this,Fe,"f"),[{name:"value",value:t}]))):await U(this,fe,"f").executeAction(actions,U(this,Fe,"f"),[{name:"value",value}]))}}async save(){lr(this,ct,await U(this,fe,"f").stringOrTemplateObjectToSubjectClass(this),"f"),await U(this,fe,"f").createSubject(this,U(this,Fe,"f")),await U(this,fe,"f").add(new wr({source:U(this,ea,"f"),predicate:"ad4m://has_child",target:this.baseExpression})),await this.update()}async update(){lr(this,ct,await U(this,fe,"f").stringOrTemplateObjectToSubjectClass(this),"f");let t=Object.entries(this);for(let[e,r]of t)if(r!=null)if(r?.action)switch(r.action){case"setter":await this.setCollectionSetter(e,r.value);break;case"adder":await this.setCollectionAdder(e,r.value);break;case"remover":await this.setCollectionRemover(e,r.value);default:await this.setCollectionSetter(e,r.value);break}else Array.isArray(r)&&r.length>0?await this.setCollectionSetter(e,r):r!=null&&r!==""&&await this.setProperty(e,r);await this.getData()}async get(){return lr(this,ct,await U(this,fe,"f").stringOrTemplateObjectToSubjectClass(this),"f"),await this.getData()}async delete(){await U(this,fe,"f").removeSubject(this,U(this,Fe,"f"))}static async all(t){let e=await t.stringOrTemplateObjectToSubjectClass(this),r=await t.getAllSubjectProxies(e),n=[];if(r){for(let i of r){let a=new this(t,i.X);n.push(await a.get())}return n}return[]}static async query(t,e){let r=e?.source||"ad4m://self",n=await t.stringOrTemplateObjectToSubjectClass(this),i=[];if(e)try{if((await t.infer(`findall([Timestamp, Base], (subject_class("${n}", C), instance(C, Base), link("${r}", Predicate, Base, Timestamp, Author)), AllData), sort(AllData, SortedData), length(SortedData, DataLength).`))[0].DataLength>=e.size){let s=`findall([Timestamp, Base], (subject_class("${n}", C), instance(C, Base), link("${r}", Predicate, Base, Timestamp, Author)), AllData), sort(AllData, SortedData), reverse(SortedData, ReverseSortedData), paginate(ReverseSortedData, ${e.page}, ${e.size}, PageData).`;i=await t.infer(s),i=i[0].PageData.map(c=>({Base:c[1],Timestamp:c[0]}))}else i=await t.infer(`subject_class("${n}", C), instance(C, Base), triple("${r}", Predicate, Base).`)}catch(o){console.log("Query failed",o)}else i=await t.infer(`subject_class("${n}", C), instance(C, Base), triple("${r}", Predicate, Base).`);return i?await Promise.all(i.map(async o=>await new this(t,o.Base).get())):[]}};Fe=new WeakMap,ct=new WeakMap,ea=new WeakMap,fe=new WeakMap;function Hp(){let t=new AbortController;return setTimeout(()=>t.abort(),20),t}function os(t,e=1e4){return Ae(this,null,function*(){return Promise.race([new Promise((r,n)=>{t.includes("localhost")||r(new WebSocket(t));let i=new WebSocket(t);i.onopen=()=>{r(i)},i.onerror=a=>{n(a)}}),new Promise((r,n)=>{setTimeout(()=>{n(new Error("WebSocket connection timed out"))},e)})])})}function ss(t){return Ae(this,null,function*(){try{let e=yield fetch(`http://localhost:${t}/graphql/`,{signal:Hp().signal,mode:"no-cors"});if(e.status===400||e.status===0)return t;throw new Error(`Could not connect to port ${t}`)}catch(e){throw new Error(`Could not connect to port ${t}`)}})}var Yp=t=>{let e=new Set;do for(let r of Reflect.ownKeys(t))e.add([t,r]);while((t=Reflect.getPrototypeOf(t))&&t!==Object.prototype);return e};function cs(t,{include:e,exclude:r}={}){let n=i=>{let a=o=>typeof o=="string"?i===o:o.test(i);return e?e.some(a):r?!r.some(a):!0};for(let[i,a]of Yp(t.constructor.prototype)){if(a==="constructor"||!n(a))continue;let o=Reflect.getOwnPropertyDescriptor(i,a);o&&typeof o.value=="function"&&(t[a]=t[a].bind(t))}return t}var us=class{constructor({appName:e,appDesc:r,appIconPath:n,appUrl:i,appDomain:a,capabilities:o,port:s,token:c,url:u}){this.activeSocket=null;this.requestedRestart=!1;this.authState="unauthenticated";this.connectionState="not_connected";this.port=12e3;this.capabilities=[];this.isHosting=!1;this.listeners={authstatechange:[],configstatechange:[],connectionstatechange:[]};cs(this);this.appName=e,this.appDesc=r,this.appDomain=a,this.appUrl=i,this.appIconPath=n,this.capabilities=o,this.port=s||this.port,this.url=u||`ws://localhost:${this.port}/graphql`,this.token=c||this.token,this.buildClient()}notifyConfigChange(e,r){this.listeners.configstatechange.forEach(n=>{n(e,r)})}notifyConnectionChange(e){this.connectionState!==e&&(this.connectionState=e,this.listeners.connectionstatechange.forEach(r=>{r(e)}))}notifyAuthChange(e){this.authState!==e&&(this.authState=e,this.listeners.authstatechange.forEach(r=>{r(e)}))}setPort(e){this.port!==e&&(this.port=e,this.setUrl(`ws://localhost:${this.port}/graphql`),this.notifyConfigChange("port",e))}setUrl(e){this.url!==e&&(this.url=e,this.notifyConfigChange("url",e))}setToken(e){this.token!==e&&(this.token=e,this.notifyConfigChange("token",e))}on(e,r){this.listeners[e].push(r)}connect(e){return Ae(this,null,function*(){try{if(e){yield os(e,1e4),this.setUrl(e);let r=this.buildClient();return yield this.checkAuth(),r}else{let r=yield this.ensureConnection();return yield this.checkAuth(),r}}catch(r){this.notifyConnectionChange("not_connected"),this.notifyAuthChange("unauthenticated")}})}loginToHosting(e,r){return Ae(this,null,function*(){try{let n=yield fetch("https://hosting.ad4m.dev/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e,password:r})});if(n.status===200){let i=yield n.json();localStorage.setItem("hosting_token",i.token);let a=localStorage.getItem("hosting_token"),o=yield fetch("https://hosting.ad4m.dev/api/service/info",{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+a}});if(o.status===200){let s=yield o.json();if(s.serviceId)if(this.setPort(s.port),this.setUrl(s.url),this.isHosting=!0,!s.paused)this.connect();else throw new Error("Hosting is not running")}}else if((yield n.json()).message==="Passwords did not match")throw new Error("Passwords did not match")}catch(n){throw console.log(n),new Error(`Error logging in ${n}`)}})}checkEmail(e){return Ae(this,null,function*(){try{return(yield fetch(`https://hosting.ad4m.dev/api/auth/check-email?email=${e}`,{method:"GET",headers:{"Content-Type":"application/json"}})).status===200}catch(r){console.log(r)}})}connectToPort(e){return Ae(this,null,function*(){try{if(e){let r=yield ss(e);this.setPort(r)}else{let r=yield this.findPort();this.setPort(r)}return this.buildClient()}catch(r){this.notifyConnectionChange("not_connected"),this.notifyAuthChange("unauthenticated")}})}ensureConnection(){return Ae(this,null,function*(){var r,n;if(((r=this.activeSocket)==null?void 0:r.readyState)===WebSocket.OPEN&&((n=this.activeSocket)==null?void 0:n.url)===this.url&&this.ad4mClient)return this.ad4mClient;try{return yield os(this.url,1e4),this.buildClient()}catch(i){return this.connectToPort()}})}findPort(){return Ae(this,null,function*(){let e=[...Array(10).keys()].map((i,a)=>ss(12e3+a)),n=(yield Promise.allSettled(e)).find(i=>i.status==="fulfilled");if(n)return n.value;throw Error("Couldn't find an open port")})}buildClient(){this.notifyConnectionChange("connecting");try{new WebSocket(this.url)}catch(e){this.notifyConnectionChange("not_connected")}return this.apolloClient&&this.wsClient&&(this.requestedRestart=!0,this.wsClient.dispose(),this.apolloClient.stop()),this.wsClient=iu({url:this.url,connectionParams:()=>Ae(this,null,function*(){return{headers:{authorization:this.token}}}),on:{connecting:()=>{this.requestedRestart||this.notifyConnectionChange("connecting")},opened:e=>{this.activeSocket=e},error:e=>{this.notifyConnectionChange("not_connected"),this.notifyAuthChange("unauthenticated")},connected:()=>{this.notifyConnectionChange("connected")},closed:()=>Ae(this,null,function*(){if(!this.requestedRestart)if(!this.token)this.notifyConnectionChange(this.token?"disconnected":"not_connected"),this.notifyAuthChange("unauthenticated"),this.requestedRestart=!1;else{let e=yield this.connect();e?this.ad4mClient=e:(this.notifyConnectionChange(this.token?"disconnected":"not_connected"),this.notifyAuthChange("unauthenticated"),this.requestedRestart=!1)}})}}),this.apolloClient=new No({link:new au(this.wsClient),cache:new Ni({resultCaching:!1,addTypename:!1}),defaultOptions:{watchQuery:{fetchPolicy:"no-cache"},query:{fetchPolicy:"no-cache"},mutate:{fetchPolicy:"no-cache"}}}),this.ad4mClient=new pa(this.apolloClient),this.ad4mClient}checkAuth(){return Ae(this,null,function*(){try{return(yield this.ad4mClient.agent.isLocked())?this.notifyAuthChange("locked"):(yield this.ad4mClient.agent.status(),this.notifyAuthChange("authenticated")),!0}catch(e){return e.message==="Socket closed with event 4500 Cannot extractByTags from a ciphered wallet. You must unlock first."?(this.notifyAuthChange("locked"),!0):(this.notifyAuthChange("unauthenticated"),!1)}})}requestCapability(e=!1){return Ae(this,null,function*(){var r;return e&&this.setToken(null),this.requestId=yield(r=this.ad4mClient)==null?void 0:r.agent.requestCapability({appName:this.appName,appDesc:this.appDesc,appUrl:this.appUrl,appIconPath:this.appIconPath,appDomain:this.appDomain,capabilities:this.capabilities}),this.requestId})}verifyCode(e){return Ae(this,null,function*(){var r;try{let n=yield(r=this.ad4mClient)==null?void 0:r.agent.generateJwt(this.requestId,e);return this.setToken(n),yield this.buildClient(),yield this.checkAuth(),this.token}catch(n){throw new Error("Invalid code")}})}};export{us as default};
1088
1088
  //! @fayeed - make it support node.js
package/dist/utils.js CHANGED
@@ -1 +1 @@
1
- var u=(e,t,o)=>new Promise((n,s)=>{var c=r=>{try{l(o.next(r))}catch(a){s(a)}},p=r=>{try{l(o.throw(r))}catch(a){s(a)}},l=r=>r.done?n(r.value):Promise.resolve(r.value).then(c,p);l((o=o.apply(e,t)).next())});var i="0.10.0-rc1";function b(){let e=new AbortController;return setTimeout(()=>e.abort(),20),e}function w(e,t=1e4){return u(this,null,function*(){return Promise.race([new Promise((o,n)=>{e.includes("localhost")||o(new WebSocket(e));let s=new WebSocket(e);s.onopen=()=>{o(s)},s.onerror=c=>{n(c)}}),new Promise((o,n)=>{setTimeout(()=>{n(new Error("WebSocket connection timed out"))},t)})])})}function j(e){return u(this,null,function*(){try{let t=yield fetch(`http://localhost:${e}/graphql/`,{signal:b().signal,mode:"no-cors"});if(t.status===400||t.status===0)return e;throw new Error(`Could not connect to port ${e}`)}catch(t){throw new Error(`Could not connect to port ${e}`)}})}function y(){return new Promise((e,t)=>{let o=document.querySelector("ad4m-connect"),n=o==null?void 0:o.getAd4mClient();n?e(n):t("No Ad4mClient found")})}function v(e){let t=document.querySelector("ad4m-connect");t==null||t.addEventListener("authstatechange",o=>{e(o.detail)})}function S(){let e=navigator.userAgent,t="";return e.search("Windows")!==-1?t="Windows":e.search("Mac")!==-1?t="MacOS":e.search("X11")!==-1&&e.search("Linux")===-1?t="UNIX":e.search("Linux")!==-1&&e.search("X11")!==-1&&(t="Linux"),t}function d(){try{localStorage.setItem("test",""),localStorage.removeItem("test")}catch(e){return!1}return!0}function x(e,t){d()&&localStorage.setItem(`${i}/${e}`,t)}function A(e){return d()?localStorage.getItem(`${i}/${e}`):null}function C(e){d()&&localStorage.removeItem(`${i}/${e}`)}export{j as checkPort,w as connectWebSocket,S as detectOS,y as getAd4mClient,A as getForVersion,v as onAuthStateChanged,C as removeForVersion,x as setForVersion};
1
+ var a=(e,t,o)=>new Promise((n,r)=>{var c=s=>{try{l(o.next(s))}catch(u){r(u)}},p=s=>{try{l(o.throw(s))}catch(u){r(u)}},l=s=>s.done?n(s.value):Promise.resolve(s.value).then(c,p);l((o=o.apply(e,t)).next())});var i="0.10.0-rc2";function b(){let e=new AbortController;return setTimeout(()=>e.abort(),20),e}function w(e,t=1e4){return a(this,null,function*(){return Promise.race([new Promise((o,n)=>{e.includes("localhost")||o(new WebSocket(e));let r=new WebSocket(e);r.onopen=()=>{o(r)},r.onerror=c=>{n(c)}}),new Promise((o,n)=>{setTimeout(()=>{n(new Error("WebSocket connection timed out"))},t)})])})}function j(e){return a(this,null,function*(){try{let t=yield fetch(`http://localhost:${e}/graphql/`,{signal:b().signal,mode:"no-cors"});if(t.status===400||t.status===0)return e;throw new Error(`Could not connect to port ${e}`)}catch(t){throw new Error(`Could not connect to port ${e}`)}})}function v(){return new Promise((e,t)=>{let o=document.querySelector("ad4m-connect"),n=o==null?void 0:o.getAd4mClient();n?e(n):t("No Ad4mClient found")})}function y(e){let t=document.querySelector("ad4m-connect");t==null||t.addEventListener("authstatechange",o=>{e(o.detail)})}function S(){let e=navigator.userAgent,t="";return e.search("Windows")!==-1?t="Windows":e.search("Mac")!==-1?t="MacOS":e.search("X11")!==-1&&e.search("Linux")===-1?t="UNIX":e.search("Linux")!==-1&&e.search("X11")!==-1&&(t="Linux"),t}function d(){try{localStorage.setItem("test",""),localStorage.removeItem("test")}catch(e){return!1}return!0}function x(e,t){d()&&localStorage.setItem(`${i}/${e}`,t)}function A(e){return d()?localStorage.getItem(`${i}/${e}`):null}function C(e){d()&&localStorage.removeItem(`${i}/${e}`)}export{j as checkPort,w as connectWebSocket,S as detectOS,v as getAd4mClient,A as getForVersion,y as onAuthStateChanged,C as removeForVersion,x as setForVersion};
package/dist/web.d.ts CHANGED
@@ -13,6 +13,8 @@ export declare class Ad4mConnectElement extends LitElement {
13
13
  private _email;
14
14
  private _passowrd;
15
15
  private _passwordError;
16
+ private _hostingNotRunningError;
17
+ private _verifyCodeError;
16
18
  private _isHostingLoading;
17
19
  private uiState;
18
20
  appName: any;
@@ -26,6 +28,7 @@ export declare class Ad4mConnectElement extends LitElement {
26
28
  url: string;
27
29
  get authState(): AuthStates;
28
30
  get connectionState(): ConnectionStates;
31
+ private injectFont;
29
32
  connectedCallback(): void;
30
33
  private checkEmail;
31
34
  private loginToHosting;
@@ -36,6 +39,7 @@ export declare class Ad4mConnectElement extends LitElement {
36
39
  private changeUrl;
37
40
  private changePort;
38
41
  private changeUIState;
42
+ private setIsHostingRunning;
39
43
  private changeIsRemote;
40
44
  private changeCode;
41
45
  private onDownloaded;