@coasys/ad4m-connect 0.10.1-rc8 → 0.10.1-rc9-dev
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core.js +16 -8
- package/dist/utils.js +1 -1
- package/dist/web.js +31 -23
- package/package.json +1 -1
package/dist/core.js
CHANGED
|
@@ -791,13 +791,13 @@ triggerMatch
|
|
|
791
791
|
mutation aiEmbed($modelId: String!, $text: String!) {
|
|
792
792
|
aiEmbed(modelId: $modelId, text: $text)
|
|
793
793
|
}
|
|
794
|
-
`,variables:{modelId:t,text:r}})),i=Ko.toByteArray(n);return JSON.parse(Cb.inflate(i,{to:"string"}))}async openTranscriptionStream(t,r){let{aiOpenTranscriptionStream:
|
|
795
|
-
mutation AiOpenTranscriptionStream($modelId: String
|
|
796
|
-
aiOpenTranscriptionStream(modelId: $modelId)
|
|
794
|
+
`,variables:{modelId:t,text:r}})),i=Ko.toByteArray(n);return JSON.parse(Cb.inflate(i,{to:"string"}))}async openTranscriptionStream(t,r,n){let{aiOpenTranscriptionStream:i}=k(await Ne(this,Ae,"f").mutate({mutation:E`
|
|
795
|
+
mutation AiOpenTranscriptionStream($modelId: String!, $params: VoiceActivityParamsInput) {
|
|
796
|
+
aiOpenTranscriptionStream(modelId: $modelId, params: $params)
|
|
797
797
|
}
|
|
798
|
-
`,variables:{modelId:t}})),
|
|
799
|
-
aiTranscriptionText(streamId: "${
|
|
800
|
-
}`}).subscribe({next(
|
|
798
|
+
`,variables:{modelId:t,params:n}})),a=Ne(this,Ae,"f").subscribe({query:E` subscription {
|
|
799
|
+
aiTranscriptionText(streamId: "${i}")
|
|
800
|
+
}`}).subscribe({next(o){return r(o.data.aiTranscriptionText),o.data.aiTranscriptionText},error(o){console.error(o)}});return Ne(this,bo,"f").set(i,a),i}async closeTranscriptionStream(t){let{aiCloseTranscriptionStream:r}=k(await Ne(this,Ae,"f").mutate({mutation:E`
|
|
801
801
|
mutation aiCloseTranscriptionStream($streamId: String!) {
|
|
802
802
|
aiCloseTranscriptionStream(streamId: $streamId)
|
|
803
803
|
}
|
|
@@ -1138,7 +1138,7 @@ type Mutation {
|
|
|
1138
1138
|
aiCloseTranscriptionStream(streamId: String!): String!
|
|
1139
1139
|
aiEmbed(modelId: String!, text: String!): String!
|
|
1140
1140
|
aiFeedTranscriptionStream(audio: [Float!]!, streamId: String!): String!
|
|
1141
|
-
aiOpenTranscriptionStream(modelId: String
|
|
1141
|
+
aiOpenTranscriptionStream(modelId: String!, params: VoiceActivityParamsInput): String!
|
|
1142
1142
|
aiPrompt(prompt: String!, taskId: String!): String!
|
|
1143
1143
|
aiRemoveModel(modelId: String!): Boolean!
|
|
1144
1144
|
aiRemoveTask(taskId: String!): AITask!
|
|
@@ -1353,6 +1353,14 @@ type TriggeredNotification {
|
|
|
1353
1353
|
perspectiveId: String!
|
|
1354
1354
|
triggerMatch: String!
|
|
1355
1355
|
}
|
|
1356
|
-
`;function Ep(e){return e?.length?e.length===1?e.toString():e.length===2?e.join(" and "):e.slice(0,-1).join(", ")+", and "+e.slice(-1):""}function Sk(e){let t=e.can.includes("*")?["READ","WRITE","UPDATE"]:e.can,r=e.with.domain==="*"?"":e.with.domain,n=e.with.pointers.includes("*")?["all AD4M data"]:e.with.pointers;return`${Ep(t)} your ${r} actions, with access to ${Ep(n)}`}var Br=function(e,t,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 t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(e,r):i?i.value=r:t.set(e,r),r},V=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},We,It,Eo,me,xp=class{constructor(e,t,r){We.set(this,void 0),It.set(this,void 0),Eo.set(this,void 0),me.set(this,void 0),Br(this,We,t||kt.from(xd(24)).toUrl(),"f"),Br(this,me,e,"f"),Br(this,Eo,r||"ad4m://self","f")}get baseExpression(){return V(this,We,"f")}get perspective(){return V(this,me,"f")}async getData(e){let t=e??V(this,We,"f"),r=await V(this,me,"f").getSubjectData(V(this,It,"f"),t);return Object.assign(this,r),Br(this,We,t,"f"),this}async setProperty(key,value){let setters=await V(this,me,"f").infer(`subject_class("${V(this,It,"f")}", C), property_setter(C, "${key}", Setter)`);if(setters&&setters.length>0){let actions=eval(setters[0].Setter),resolveLanguageResults=await V(this,me,"f").infer(`subject_class("${V(this,It,"f")}", C), property_resolve_language(C, "${key}", Language)`),resolveLanguage;resolveLanguageResults&&resolveLanguageResults.length>0&&(resolveLanguage=resolveLanguageResults[0].Language),resolveLanguage&&(value=await V(this,me,"f").createExpression(value,resolveLanguage)),await V(this,me,"f").executeAction(actions,V(this,We,"f"),[{name:"value",value}])}}async setCollectionSetter(key,value){let collectionSetters=await V(this,me,"f").infer(`subject_class("${V(this,It,"f")}", C), collection_setter(C, "${Xt(key)}", Setter)`);if(collectionSetters||(collectionSetters=[]),collectionSetters.length>0){let actions=eval(collectionSetters[0].Setter);value&&(Array.isArray(value)?await V(this,me,"f").executeAction(actions,V(this,We,"f"),value.map(e=>({name:"value",value:e}))):await V(this,me,"f").executeAction(actions,V(this,We,"f"),[{name:"value",value}]))}}async setCollectionAdder(key,value){let adders=await V(this,me,"f").infer(`subject_class("${V(this,It,"f")}", C), collection_adder(C, "${Xt(key)}", Adder)`);if(adders||(adders=[]),adders.length>0){let actions=eval(adders[0].Adder);value&&(Array.isArray(value)?await Promise.all(value.map(e=>V(this,me,"f").executeAction(actions,V(this,We,"f"),[{name:"value",value:e}]))):await V(this,me,"f").executeAction(actions,V(this,We,"f"),[{name:"value",value}]))}}async setCollectionRemover(key,value){let removers=await V(this,me,"f").infer(`subject_class("${V(this,It,"f")}", C), collection_remover(C, "${Xt(key)}", Remover)`);if(removers||(removers=[]),removers.length>0){let actions=eval(removers[0].Remover);value&&(Array.isArray(value)?await Promise.all(value.map(e=>V(this,me,"f").executeAction(actions,V(this,We,"f"),[{name:"value",value:e}]))):await V(this,me,"f").executeAction(actions,V(this,We,"f"),[{name:"value",value}]))}}async save(){Br(this,It,await V(this,me,"f").stringOrTemplateObjectToSubjectClass(this),"f"),await V(this,me,"f").createSubject(this,V(this,We,"f")),await V(this,me,"f").add(new nn({source:V(this,Eo,"f"),predicate:"ad4m://has_child",target:this.baseExpression})),await this.update()}async update(){Br(this,It,await V(this,me,"f").stringOrTemplateObjectToSubjectClass(this),"f");let e=Object.entries(this);for(let[t,r]of e)if(r!=null)if(r?.action)switch(r.action){case"setter":await this.setCollectionSetter(t,r.value);break;case"adder":await this.setCollectionAdder(t,r.value);break;case"remover":await this.setCollectionRemover(t,r.value);default:await this.setCollectionSetter(t,r.value);break}else Array.isArray(r)&&r.length>0?await this.setCollectionSetter(t,r):r!=null&&r!==""&&await this.setProperty(t,r);await this.getData()}async get(){return Br(this,It,await V(this,me,"f").stringOrTemplateObjectToSubjectClass(this),"f"),await this.getData()}async delete(){await V(this,me,"f").removeSubject(this,V(this,We,"f"))}static async all(e){let t=await e.stringOrTemplateObjectToSubjectClass(this),r=await e.getAllSubjectProxies(t),n=[];if(r){for(let i of r){let a=new this(e,i.X);n.push(await a.get())}return n}return[]}static async query(e,t){let r=t?.source||"ad4m://self",n=await e.stringOrTemplateObjectToSubjectClass(this),i=[],a=`subject_class("${n}", C), instance(C, Base), link("${r}", Predicate, Base, Timestamp, Author)`;if(t){if(t.where)if(t.where.condition)a+=", "+t.where.condition;else{let s=Object.entries(t.where);for(let u of s){let c=u[0],l=u[1];a+=`, property_getter(C, Base, "${c}", "${l}")`}}try{if((await e.infer(`findall([Timestamp, Base], (${a}), AllData), sort(AllData, SortedData), length(SortedData, DataLength).`))[0].DataLength>=t.size){let u=`findall([Timestamp, Base], (${a}), AllData), sort(AllData, SortedData), reverse(SortedData, ReverseSortedData), paginate(ReverseSortedData, ${t.page}, ${t.size}, PageData).`;i=await e.infer(u),i=i[0].PageData.map(c=>({Base:c[1],Timestamp:c[0]}))}else i=await e.infer(a)}catch(s){console.log("Query failed",s)}}else i=await e.infer(a);return i?await Promise.all(i.map(async s=>await new this(e,s.Base).get())):[]}};We=new WeakMap,It=new WeakMap,Eo=new WeakMap,me=new WeakMap;var Td="0.10.1-rc8";function Mb(){let e=new AbortController;return setTimeout(()=>e.abort(),20),e}function mu(e,t=1e4){return Ve(this,null,function*(){return Promise.race([new Promise((r,n)=>{try{e.includes("localhost")||r(new WebSocket(e));let i=new WebSocket(e);i.onopen=()=>{r(i)},i.onerror=a=>{n(a)}}catch(i){n(i)}}),new Promise((r,n)=>{setTimeout(()=>{n(new Error("WebSocket connection timed out"))},t)})])})}function gu(e){return Ve(this,null,function*(){try{let t=yield fetch(`http://localhost:${e}/graphql/`,{signal:Mb().signal,mode:"cors"});if(t.status===400||t.status===0||t.status===200)return e;throw new Error(`Could not connect to port ${e}`)}catch(t){throw new Error(`Could not connect to port ${e}`)}})}function $b(){try{localStorage.setItem("test",""),localStorage.removeItem("test")}catch(e){return!1}return!0}function Id(e,t){$b()&&localStorage.setItem(`${Td}/${e}`,t)}var jb=e=>{let t=new Set;do for(let r of Reflect.ownKeys(e))t.add([e,r]);while((e=Reflect.getPrototypeOf(e))&&e!==Object.prototype);return t};function yu(e,{include:t,exclude:r}={}){let n=i=>{let a=o=>typeof o=="string"?i===o:o.test(i);return t?t.some(a):r?!r.some(a):!0};for(let[i,a]of jb(e.constructor.prototype)){if(a==="constructor"||!n(a))continue;let o=Reflect.getOwnPropertyDescriptor(i,a);o&&typeof o.value=="function"&&(e[a]=e[a].bind(e))}return e}var vu=class{constructor({appName:t,appDesc:r,appIconPath:n,appUrl:i,appDomain:a,capabilities:o,port:s,token:u,url:c,hosting:l}){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:[]};yu(this);this.appName=t,this.appDesc=r,this.appDomain=a,this.appUrl=i,this.appIconPath=n,this.capabilities=o,this.port=s||this.port,this.url=c||`ws://localhost:${this.port}/graphql`,this.token=u||this.token,this.isHosting=l||!1,this.buildClient()}notifyConfigChange(t,r){this.listeners.configstatechange.forEach(n=>{n(t,r)})}notifyConnectionChange(t){this.connectionState!==t&&(this.connectionState=t,this.listeners.connectionstatechange.forEach(r=>{r(t)}))}notifyAuthChange(t){this.authState!==t&&(this.authState=t,this.listeners.authstatechange.forEach(r=>{r(t)}))}setPort(t){this.port!==t&&(this.port=t,this.setUrl(`ws://localhost:${this.port}/graphql`),this.notifyConfigChange("port",t))}setUrl(t){this.url!==t&&(this.url=t,this.notifyConfigChange("url",t))}setToken(t){this.token!==t&&(this.token=t,this.notifyConfigChange("token",t))}on(t,r){this.listeners[t].push(r)}connect(t){return Ve(this,null,function*(){try{if(t){yield mu(t,1e4),this.setUrl(t);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(t,r){return Ve(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:t,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,Id("ad4mhosting","true"),!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(t){return Ve(this,null,function*(){try{return(yield fetch(`https://hosting.ad4m.dev/api/auth/check-email?email=${t}`,{method:"GET",headers:{"Content-Type":"application/json"}})).status===200}catch(r){console.log(r)}})}connectToPort(t){return Ve(this,null,function*(){try{if(t){let r=yield gu(t);return this.setPort(r),this.buildClient()}else if(this.url.includes("localhost")){let r=yield this.findPort();return this.setPort(r),this.buildClient()}}catch(r){this.notifyConnectionChange("not_connected"),this.notifyAuthChange("unauthenticated")}})}ensureConnection(){return Ve(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 this.notifyConnectionChange("connecting"),yield mu(this.url,1e4),this.buildClient()}catch(i){return this.notifyConnectionChange("not_connected"),this.connectToPort()}})}findPort(){return Ve(this,null,function*(){let t=[...Array(10).keys()].map((i,a)=>gu(12e3+a)),n=(yield Promise.allSettled(t)).find(i=>i.status==="fulfilled");if(n)return n.value;throw Error("Couldn't find an open port")})}buildClient(){this.notifyConnectionChange("connecting");try{let t=new WebSocket(this.url)}catch(t){this.notifyConnectionChange("not_connected");return}return this.apolloClient&&this.wsClient&&(this.requestedRestart=!0,this.wsClient.dispose(),this.apolloClient.stop(),this.wsClient=null,this.apolloClient=null),this.wsClient=hf({url:this.url,connectionParams:()=>Ve(this,null,function*(){return{headers:{authorization:this.token}}}),on:{opened:t=>{this.activeSocket=t},error:t=>{this.notifyConnectionChange("not_connected"),this.notifyAuthChange("unauthenticated")},connected:()=>{this.notifyConnectionChange("connected"),this.checkAuth()},closed:()=>Ve(this,null,function*(){if(!this.requestedRestart)if(!this.token)this.notifyConnectionChange(this.token?"disconnected":"not_connected"),this.notifyAuthChange("unauthenticated"),this.requestedRestart=!1;else{let t=yield this.connect();t?this.ad4mClient=t:(this.notifyConnectionChange(this.token?"disconnected":"not_connected"),this.notifyAuthChange("unauthenticated"),this.requestedRestart=!1)}})}}),this.apolloClient=new sc({link:new mf(this.wsClient),cache:new Qa({resultCaching:!1,addTypename:!1}),defaultOptions:{watchQuery:{fetchPolicy:"no-cache"},query:{fetchPolicy:"no-cache"},mutate:{fetchPolicy:"no-cache"}}}),this.ad4mClient=new Uo(this.apolloClient),this.ad4mClient}checkAuth(){return Ve(this,null,function*(){try{return(yield this.ad4mClient.agent.isLocked())?this.notifyAuthChange("locked"):(yield this.ad4mClient.agent.status(),this.notifyAuthChange("authenticated")),!0}catch(t){return t.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(t=!1){return Ve(this,null,function*(){var r;if(t&&this.setToken(null),this.isHosting){let n=localStorage.getItem("hosting_token");(yield fetch("https://hosting.ad4m.dev/api/service/checkStatus",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+n}})).status!==200&&console.error("Looks like the client is not running you might not recieve the mail with the code, please check your dashboard logs.")}return 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(t){return Ve(this,null,function*(){var r;try{let n=yield(r=this.ad4mClient)==null?void 0:r.agent.generateJwt(this.requestId,t);return this.setToken(n),yield this.buildClient(),yield this.checkAuth(),this.token}catch(n){throw new Error("Invalid code")}})}clearState(){this.setToken(null),this.setPort(12e3),this.notifyConnectionChange("not_connected"),this.notifyAuthChange("unauthenticated")}};export{vu as default};
|
|
1356
|
+
|
|
1357
|
+
input VoiceActivityParamsInput {
|
|
1358
|
+
endThreshold: Float
|
|
1359
|
+
endWindow: Float
|
|
1360
|
+
startThreshold: Float
|
|
1361
|
+
startWindow: Float
|
|
1362
|
+
timeBeforeSpeech: Float
|
|
1363
|
+
}
|
|
1364
|
+
`;function Ep(e){return e?.length?e.length===1?e.toString():e.length===2?e.join(" and "):e.slice(0,-1).join(", ")+", and "+e.slice(-1):""}function Sk(e){let t=e.can.includes("*")?["READ","WRITE","UPDATE"]:e.can,r=e.with.domain==="*"?"":e.with.domain,n=e.with.pointers.includes("*")?["all AD4M data"]:e.with.pointers;return`${Ep(t)} your ${r} actions, with access to ${Ep(n)}`}var Br=function(e,t,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 t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(e,r):i?i.value=r:t.set(e,r),r},V=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},We,It,Eo,me,xp=class{constructor(e,t,r){We.set(this,void 0),It.set(this,void 0),Eo.set(this,void 0),me.set(this,void 0),Br(this,We,t||kt.from(xd(24)).toUrl(),"f"),Br(this,me,e,"f"),Br(this,Eo,r||"ad4m://self","f")}get baseExpression(){return V(this,We,"f")}get perspective(){return V(this,me,"f")}async getData(e){let t=e??V(this,We,"f"),r=await V(this,me,"f").getSubjectData(V(this,It,"f"),t);return Object.assign(this,r),Br(this,We,t,"f"),this}async setProperty(key,value){let setters=await V(this,me,"f").infer(`subject_class("${V(this,It,"f")}", C), property_setter(C, "${key}", Setter)`);if(setters&&setters.length>0){let actions=eval(setters[0].Setter),resolveLanguageResults=await V(this,me,"f").infer(`subject_class("${V(this,It,"f")}", C), property_resolve_language(C, "${key}", Language)`),resolveLanguage;resolveLanguageResults&&resolveLanguageResults.length>0&&(resolveLanguage=resolveLanguageResults[0].Language),resolveLanguage&&(value=await V(this,me,"f").createExpression(value,resolveLanguage)),await V(this,me,"f").executeAction(actions,V(this,We,"f"),[{name:"value",value}])}}async setCollectionSetter(key,value){let collectionSetters=await V(this,me,"f").infer(`subject_class("${V(this,It,"f")}", C), collection_setter(C, "${Xt(key)}", Setter)`);if(collectionSetters||(collectionSetters=[]),collectionSetters.length>0){let actions=eval(collectionSetters[0].Setter);value&&(Array.isArray(value)?await V(this,me,"f").executeAction(actions,V(this,We,"f"),value.map(e=>({name:"value",value:e}))):await V(this,me,"f").executeAction(actions,V(this,We,"f"),[{name:"value",value}]))}}async setCollectionAdder(key,value){let adders=await V(this,me,"f").infer(`subject_class("${V(this,It,"f")}", C), collection_adder(C, "${Xt(key)}", Adder)`);if(adders||(adders=[]),adders.length>0){let actions=eval(adders[0].Adder);value&&(Array.isArray(value)?await Promise.all(value.map(e=>V(this,me,"f").executeAction(actions,V(this,We,"f"),[{name:"value",value:e}]))):await V(this,me,"f").executeAction(actions,V(this,We,"f"),[{name:"value",value}]))}}async setCollectionRemover(key,value){let removers=await V(this,me,"f").infer(`subject_class("${V(this,It,"f")}", C), collection_remover(C, "${Xt(key)}", Remover)`);if(removers||(removers=[]),removers.length>0){let actions=eval(removers[0].Remover);value&&(Array.isArray(value)?await Promise.all(value.map(e=>V(this,me,"f").executeAction(actions,V(this,We,"f"),[{name:"value",value:e}]))):await V(this,me,"f").executeAction(actions,V(this,We,"f"),[{name:"value",value}]))}}async save(){Br(this,It,await V(this,me,"f").stringOrTemplateObjectToSubjectClass(this),"f"),await V(this,me,"f").createSubject(this,V(this,We,"f")),await V(this,me,"f").add(new nn({source:V(this,Eo,"f"),predicate:"ad4m://has_child",target:this.baseExpression})),await this.update()}async update(){Br(this,It,await V(this,me,"f").stringOrTemplateObjectToSubjectClass(this),"f");let e=Object.entries(this);for(let[t,r]of e)if(r!=null)if(r?.action)switch(r.action){case"setter":await this.setCollectionSetter(t,r.value);break;case"adder":await this.setCollectionAdder(t,r.value);break;case"remover":await this.setCollectionRemover(t,r.value);default:await this.setCollectionSetter(t,r.value);break}else Array.isArray(r)&&r.length>0?await this.setCollectionSetter(t,r):r!=null&&r!==""&&await this.setProperty(t,r);await this.getData()}async get(){return Br(this,It,await V(this,me,"f").stringOrTemplateObjectToSubjectClass(this),"f"),await this.getData()}async delete(){await V(this,me,"f").removeSubject(this,V(this,We,"f"))}static async all(e){let t=await e.stringOrTemplateObjectToSubjectClass(this),r=await e.getAllSubjectProxies(t),n=[];if(r){for(let i of r){let a=new this(e,i.X);n.push(await a.get())}return n}return[]}static async query(e,t){let r=t?.source||"ad4m://self",n=await e.stringOrTemplateObjectToSubjectClass(this),i=[],a=`subject_class("${n}", C), instance(C, Base), link("${r}", Predicate, Base, Timestamp, Author)`;if(t){if(t.where)if(t.where.condition)a+=", "+t.where.condition;else{let s=Object.entries(t.where);for(let u of s){let c=u[0],l=u[1];a+=`, property_getter(C, Base, "${c}", "${l}")`}}try{if((await e.infer(`findall([Timestamp, Base], (${a}), AllData), sort(AllData, SortedData), length(SortedData, DataLength).`))[0].DataLength>=t.size){let u=`findall([Timestamp, Base], (${a}), AllData), sort(AllData, SortedData), reverse(SortedData, ReverseSortedData), paginate(ReverseSortedData, ${t.page}, ${t.size}, PageData).`;i=await e.infer(u),i=i[0].PageData.map(c=>({Base:c[1],Timestamp:c[0]}))}else i=await e.infer(a)}catch(s){console.log("Query failed",s)}}else i=await e.infer(a);return i?await Promise.all(i.map(async s=>await new this(e,s.Base).get())):[]}};We=new WeakMap,It=new WeakMap,Eo=new WeakMap,me=new WeakMap;var Td="0.10.1-rc9-dev";function Mb(){let e=new AbortController;return setTimeout(()=>e.abort(),20),e}function mu(e,t=1e4){return Ve(this,null,function*(){return Promise.race([new Promise((r,n)=>{try{e.includes("localhost")||r(new WebSocket(e));let i=new WebSocket(e);i.onopen=()=>{r(i)},i.onerror=a=>{n(a)}}catch(i){n(i)}}),new Promise((r,n)=>{setTimeout(()=>{n(new Error("WebSocket connection timed out"))},t)})])})}function gu(e){return Ve(this,null,function*(){try{let t=yield fetch(`http://localhost:${e}/graphql/`,{signal:Mb().signal,mode:"cors"});if(t.status===400||t.status===0||t.status===200)return e;throw new Error(`Could not connect to port ${e}`)}catch(t){throw new Error(`Could not connect to port ${e}`)}})}function $b(){try{localStorage.setItem("test",""),localStorage.removeItem("test")}catch(e){return!1}return!0}function Id(e,t){$b()&&localStorage.setItem(`${Td}/${e}`,t)}var jb=e=>{let t=new Set;do for(let r of Reflect.ownKeys(e))t.add([e,r]);while((e=Reflect.getPrototypeOf(e))&&e!==Object.prototype);return t};function yu(e,{include:t,exclude:r}={}){let n=i=>{let a=o=>typeof o=="string"?i===o:o.test(i);return t?t.some(a):r?!r.some(a):!0};for(let[i,a]of jb(e.constructor.prototype)){if(a==="constructor"||!n(a))continue;let o=Reflect.getOwnPropertyDescriptor(i,a);o&&typeof o.value=="function"&&(e[a]=e[a].bind(e))}return e}var vu=class{constructor({appName:t,appDesc:r,appIconPath:n,appUrl:i,appDomain:a,capabilities:o,port:s,token:u,url:c,hosting:l}){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:[]};yu(this);this.appName=t,this.appDesc=r,this.appDomain=a,this.appUrl=i,this.appIconPath=n,this.capabilities=o,this.port=s||this.port,this.url=c||`ws://localhost:${this.port}/graphql`,this.token=u||this.token,this.isHosting=l||!1,this.buildClient()}notifyConfigChange(t,r){this.listeners.configstatechange.forEach(n=>{n(t,r)})}notifyConnectionChange(t){this.connectionState!==t&&(this.connectionState=t,this.listeners.connectionstatechange.forEach(r=>{r(t)}))}notifyAuthChange(t){this.authState!==t&&(this.authState=t,this.listeners.authstatechange.forEach(r=>{r(t)}))}setPort(t){this.port!==t&&(this.port=t,this.setUrl(`ws://localhost:${this.port}/graphql`),this.notifyConfigChange("port",t))}setUrl(t){this.url!==t&&(this.url=t,this.notifyConfigChange("url",t))}setToken(t){this.token!==t&&(this.token=t,this.notifyConfigChange("token",t))}on(t,r){this.listeners[t].push(r)}connect(t){return Ve(this,null,function*(){try{if(t){yield mu(t,1e4),this.setUrl(t);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(t,r){return Ve(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:t,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,Id("ad4mhosting","true"),!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(t){return Ve(this,null,function*(){try{return(yield fetch(`https://hosting.ad4m.dev/api/auth/check-email?email=${t}`,{method:"GET",headers:{"Content-Type":"application/json"}})).status===200}catch(r){console.log(r)}})}connectToPort(t){return Ve(this,null,function*(){try{if(t){let r=yield gu(t);return this.setPort(r),this.buildClient()}else if(this.url.includes("localhost")){let r=yield this.findPort();return this.setPort(r),this.buildClient()}}catch(r){this.notifyConnectionChange("not_connected"),this.notifyAuthChange("unauthenticated")}})}ensureConnection(){return Ve(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 this.notifyConnectionChange("connecting"),yield mu(this.url,1e4),this.buildClient()}catch(i){return this.notifyConnectionChange("not_connected"),this.connectToPort()}})}findPort(){return Ve(this,null,function*(){let t=[...Array(10).keys()].map((i,a)=>gu(12e3+a)),n=(yield Promise.allSettled(t)).find(i=>i.status==="fulfilled");if(n)return n.value;throw Error("Couldn't find an open port")})}buildClient(){this.notifyConnectionChange("connecting");try{let t=new WebSocket(this.url)}catch(t){this.notifyConnectionChange("not_connected");return}return this.apolloClient&&this.wsClient&&(this.requestedRestart=!0,this.wsClient.dispose(),this.apolloClient.stop(),this.wsClient=null,this.apolloClient=null),this.wsClient=hf({url:this.url,connectionParams:()=>Ve(this,null,function*(){return{headers:{authorization:this.token}}}),on:{opened:t=>{this.activeSocket=t},error:t=>{this.notifyConnectionChange("not_connected"),this.notifyAuthChange("unauthenticated")},connected:()=>{this.notifyConnectionChange("connected"),this.checkAuth()},closed:()=>Ve(this,null,function*(){if(!this.requestedRestart)if(!this.token)this.notifyConnectionChange(this.token?"disconnected":"not_connected"),this.notifyAuthChange("unauthenticated"),this.requestedRestart=!1;else{let t=yield this.connect();t?this.ad4mClient=t:(this.notifyConnectionChange(this.token?"disconnected":"not_connected"),this.notifyAuthChange("unauthenticated"),this.requestedRestart=!1)}})}}),this.apolloClient=new sc({link:new mf(this.wsClient),cache:new Qa({resultCaching:!1,addTypename:!1}),defaultOptions:{watchQuery:{fetchPolicy:"no-cache"},query:{fetchPolicy:"no-cache"},mutate:{fetchPolicy:"no-cache"}}}),this.ad4mClient=new Uo(this.apolloClient),this.ad4mClient}checkAuth(){return Ve(this,null,function*(){try{return(yield this.ad4mClient.agent.isLocked())?this.notifyAuthChange("locked"):(yield this.ad4mClient.agent.status(),this.notifyAuthChange("authenticated")),!0}catch(t){return t.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(t=!1){return Ve(this,null,function*(){var r;if(t&&this.setToken(null),this.isHosting){let n=localStorage.getItem("hosting_token");(yield fetch("https://hosting.ad4m.dev/api/service/checkStatus",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+n}})).status!==200&&console.error("Looks like the client is not running you might not recieve the mail with the code, please check your dashboard logs.")}return 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(t){return Ve(this,null,function*(){var r;try{let n=yield(r=this.ad4mClient)==null?void 0:r.agent.generateJwt(this.requestId,t);return this.setToken(n),yield this.buildClient(),yield this.checkAuth(),this.token}catch(n){throw new Error("Invalid code")}})}clearState(){this.setToken(null),this.setPort(12e3),this.notifyConnectionChange("not_connected"),this.notifyAuthChange("unauthenticated")}};export{vu as default};
|
|
1357
1365
|
/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */
|
|
1358
1366
|
//! @fayeed - make it support node.js
|
package/dist/utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var a=(e,t,o)=>new Promise((n,s)=>{var c=r=>{try{l(o.next(r))}catch(u){s(u)}},p=r=>{try{l(o.throw(r))}catch(u){s(u)}},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.1-
|
|
1
|
+
var a=(e,t,o)=>new Promise((n,s)=>{var c=r=>{try{l(o.next(r))}catch(u){s(u)}},p=r=>{try{l(o.throw(r))}catch(u){s(u)}},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.1-rc9-dev";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)=>{try{e.includes("localhost")||o(new WebSocket(e));let s=new WebSocket(e);s.onopen=()=>{o(s)},s.onerror=c=>{n(c)}}catch(s){n(s)}}),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:"cors"});if(t.status===400||t.status===0||t.status===200)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};
|