@automata-network/pom-js-sdk
Advanced tools
Comparing version 0.0.41 to 0.0.42
@@ -1,2 +0,2 @@ | ||
"use strict";var e,r,o,t,a=require("@automata-network/pom-socket"),s=require("qs"),i=require("qrcode"),n=require("./util.js");exports.ChainId=void 0,(e=exports.ChainId||(exports.ChainId={})).LineaSepolia="0xe705",e.AutomataTestnet="0x1555e3",e.AutomataMainnet="0x10000",exports.POMPlatform=void 0,(r=exports.POMPlatform||(exports.POMPlatform={})).Android="android",r.iOS="iOS",r.macOS="macOS",exports.IdentityStatus=void 0,(o=exports.IdentityStatus||(exports.IdentityStatus={})).None="none",o.Generated="generated",o.Registered="registered",exports.CallbackBrowser=void 0,(t=exports.CallbackBrowser||(exports.CallbackBrowser={})).iOSChrome="iOSChrome",t.iOSSafari="iOSSafari",t.iOSEdge="iOSEdge",t.iOSFirefox="iOSFirefox",t.iOSOpera="iOSOpera",t.iOSBrave="iOSBrave",t.iOSAloha="iOSAloha",t.androidChrome="androidChrome",t.androidEdge="androidEdge",t.androidFirefox="androidFirefox",t.androidOpera="androidOpera",t.androidBrave="androidBrave",t.androidAloha="androidAloha",t.macOSChrome="macOSChrome",t.macOSSafari="macOSSafari",t.macOSEdge="macOSEdge",t.macOSFirefox="macOSFirefox",t.macOSOpera="macOSOpera",t.macOSBrave="macOSBrave",t.macOSAloha="macOSAloha";const c={macOS:{[exports.CallbackBrowser.macOSChrome]:"com.google.Chrome",[exports.CallbackBrowser.macOSSafari]:"com.apple.safari",[exports.CallbackBrowser.macOSFirefox]:"org.mozilla.firefox",[exports.CallbackBrowser.macOSEdge]:"com.microsoft.edgemac",[exports.CallbackBrowser.macOSBrave]:"com.brave.Browser",[exports.CallbackBrowser.macOSOpera]:"com.operasoftware.Opera",[exports.CallbackBrowser.macOSAloha]:"com.alohabrowser.alohabrowser"},iOS:{[exports.CallbackBrowser.iOSChrome]:"com.google.chrome.ios",[exports.CallbackBrowser.iOSSafari]:"com.apple.mobilesafari",[exports.CallbackBrowser.iOSFirefox]:"org.mozilla.ios.Firefox",[exports.CallbackBrowser.iOSEdge]:"com.microsoft.msedge",[exports.CallbackBrowser.iOSBrave]:"com.brave.ios.browser",[exports.CallbackBrowser.iOSOpera]:"com.opera.OperaTouch",[exports.CallbackBrowser.iOSAloha]:"com.alohabrowser.alohabrowser"},android:{[exports.CallbackBrowser.androidChrome]:"com.android.chrome",[exports.CallbackBrowser.androidFirefox]:"org.mozilla.firefox",[exports.CallbackBrowser.androidEdge]:"com.microsoft.emmx",[exports.CallbackBrowser.androidBrave]:"com.brave.browser",[exports.CallbackBrowser.androidOpera]:"com.opera.browser",[exports.CallbackBrowser.androidAloha]:"com.aloha.browser"}},d="pom://pomrn.ata.network/connect",l=new Error("deep link is invalid"),p=new Error("deep link parameters is invalid"),m=new Error("socket is connecting"),S=new Error("get identity status timeout"),O=new Error("identity is empty");class h{pomSocket;constructor(...[e,r]){this.pomSocket=a.getSocket(e,r)}static generateDeepLink(e){const{sessionId:r,dhSharedPublicNumber:o,hkdfSalt:t,callbackBrowser:a,callbackDeepLinkUrl:i}=e,n={id:r,dh:o,s:t,cb:a,cu:i};return`${d}?${s.stringify({q:n})}`}static parseDeepLinkQuery(e){const[r,o]=e.split("?");if(r!==d)throw l;const t=s.parse(o);if(null!=t.id&&"string"!=typeof t.id||null!=t.dh&&"string"!=typeof t.dh||null!=t.s&&"string"!=typeof t.s||null!=t.cu&&"string"!=typeof t.cu||null!=t.cb&&"string"!=typeof t.cb)throw p;return t}static async generateQrcode(e,r){const{sessionId:o,dhSharedPublicNumber:t,hkdfSalt:a}=e,s=[t?{data:t,mode:"alphanumeric"}:void 0,a?{data:a,mode:"alphanumeric"}:void 0,o?{data:o}:void 0];return await i.toDataURL(s.filter((e=>null!=e)),{errorCorrectionLevel:r?.level||"L"})}static parseQrcode(e){const r=e.slice(0,462),o=e.slice(462,494);return{id:e.slice(494),dh:r,s:o}}async sign(e){const{chainId:r,caller:o,message:t,qrcodeLevel:s,onRenderQrcode:i,onGetIdentityOnChain:c,onRegisterIdentity:d}=e;let l=this.pomSocket.getSocketStatus();if(l===a.SocketStatus.Connecting)throw m;l===a.SocketStatus.Disconnected&&await this.connectSocketAndWait({qrcodeLevel:s,onRenderQrcode:i});const p=await this.getIdentityStatus({chainId:r}).promise;let S;if(p.status!==exports.IdentityStatus.None&&p.status!==exports.IdentityStatus.Generated||(S=await this.attestDevice({chainId:r,caller:o}).promise),p.status===exports.IdentityStatus.None||p.status===exports.IdentityStatus.Generated){if(null==S)throw O;await d(S),await n.runWithErrorRetry((()=>{const e=c({chainId:r,identity:S.identity});if(!e)throw n.ERR_NEED_RETRY;return e}))}return await this.signMessage({chainId:r,caller:o,message:t}).promise}async connectSocketAndWait(e){try{const{qrcodeLevel:r,onRenderQrcode:o}=e,t=await this.connectSocket(),a=h.generateDeepLink(t);o({deepLink:a,imageBase64:await h.generateQrcode(t,r?{level:r}:void 0)}),await this.waitForConnectedEvent(),await this.waitForKeyExchangeEvent()}catch(r){if(r!==a.ERR_SESSION_IS_EXPIRED)throw r;this.connectSocketAndWait(e)}}async connectSocket(){return this.pomSocket.connect()}async waitForConnectedEvent(){return this.pomSocket.waitForConnectedEvent()}async waitForKeyExchangeEvent(){return this.pomSocket.waitForKeyExchangeEvent()}getIdentityStatus(e){const{chainId:r}=e;let o;return{promise:new Promise(((e,t)=>{o=n.sendMessageAndWaitForResponse({socket:this.pomSocket,op:n.POMOperation.GetIdentityStatus,data:{chainId:r},resolver:e,rejecter:t})})),cancel:o}}attestDevice(e){let r;return{promise:new Promise(((o,t)=>{r=n.sendMessageAndWaitForResponse({socket:this.pomSocket,op:n.POMOperation.AttestDevice,data:e,resolver:o,rejecter:t})})),cancel:r}}signMessage(e){let r;return{promise:new Promise(((o,t)=>{r=n.sendMessageAndWaitForResponse({socket:this.pomSocket,op:n.POMOperation.SignMessage,data:e,resolver:o,rejecter:t})})),cancel:r}}}exports.ERR_OPERATION_CANCELLED=n.ERR_OPERATION_CANCELLED,Object.defineProperty(exports,"POMOperation",{enumerable:!0,get:function(){return n.POMOperation}}),exports.decodeMessageData=n.decodeMessageData,exports.encodeMessageData=n.encodeMessageData,exports.getCallbackBrowser=n.getCallbackBrowser,exports.ERR_GET_IDENTITY_STATUS_TIMEOUT=S,exports.ERR_IDENTITY_IS_EMPTY=O,exports.ERR_INVALID_DEEP_LINK=l,exports.ERR_INVALID_DEEP_LINK_PARAMETERS=p,exports.ERR_SOCKET_IS_CONNECTING=m,exports.POMClinet=h,exports.bundleIds=c,exports.pomAppBasePath=d; | ||
"use strict";var e,r,o,t,a=require("@automata-network/pom-socket"),s=require("qs"),i=require("qrcode"),n=require("./util.js");exports.ChainId=void 0,(e=exports.ChainId||(exports.ChainId={})).LineaSepolia="0xe705",e.AutomataTestnet="0x1555e3",e.AutomataMainnet="0x10000",exports.POMPlatform=void 0,(r=exports.POMPlatform||(exports.POMPlatform={})).Android="android",r.iOS="iOS",r.macOS="macOS",exports.IdentityStatus=void 0,(o=exports.IdentityStatus||(exports.IdentityStatus={})).None="none",o.Generated="generated",o.Registered="registered",exports.CallbackBrowser=void 0,(t=exports.CallbackBrowser||(exports.CallbackBrowser={})).iOSChrome="iOSChrome",t.iOSSafari="iOSSafari",t.iOSEdge="iOSEdge",t.iOSFirefox="iOSFirefox",t.iOSOpera="iOSOpera",t.iOSBrave="iOSBrave",t.iOSAloha="iOSAloha",t.androidChrome="androidChrome",t.androidEdge="androidEdge",t.androidFirefox="androidFirefox",t.androidOpera="androidOpera",t.androidBrave="androidBrave",t.androidAloha="androidAloha",t.macOSChrome="macOSChrome",t.macOSSafari="macOSSafari",t.macOSEdge="macOSEdge",t.macOSFirefox="macOSFirefox",t.macOSOpera="macOSOpera",t.macOSBrave="macOSBrave",t.macOSAloha="macOSAloha";const c={macOS:{[exports.CallbackBrowser.macOSChrome]:"com.google.Chrome",[exports.CallbackBrowser.macOSSafari]:"com.apple.safari",[exports.CallbackBrowser.macOSFirefox]:"org.mozilla.firefox",[exports.CallbackBrowser.macOSEdge]:"com.microsoft.edgemac",[exports.CallbackBrowser.macOSBrave]:"com.brave.Browser",[exports.CallbackBrowser.macOSOpera]:"com.operasoftware.Opera",[exports.CallbackBrowser.macOSAloha]:"com.alohabrowser.alohabrowser"},iOS:{[exports.CallbackBrowser.iOSChrome]:"com.google.chrome.ios",[exports.CallbackBrowser.iOSSafari]:"com.apple.mobilesafari",[exports.CallbackBrowser.iOSFirefox]:"org.mozilla.ios.Firefox",[exports.CallbackBrowser.iOSEdge]:"com.microsoft.msedge",[exports.CallbackBrowser.iOSBrave]:"com.brave.ios.browser",[exports.CallbackBrowser.iOSOpera]:"com.opera.OperaTouch",[exports.CallbackBrowser.iOSAloha]:"com.alohabrowser.alohabrowser"},android:{[exports.CallbackBrowser.androidChrome]:"com.android.chrome",[exports.CallbackBrowser.androidFirefox]:"org.mozilla.firefox",[exports.CallbackBrowser.androidEdge]:"com.microsoft.emmx",[exports.CallbackBrowser.androidBrave]:"com.brave.browser",[exports.CallbackBrowser.androidOpera]:"com.opera.browser",[exports.CallbackBrowser.androidAloha]:"com.aloha.browser"}},d="pom://pomrn.ata.network/connect",l=new Error("deep link is invalid"),p=new Error("deep link parameters is invalid"),m=new Error("socket is connecting"),S=new Error("get identity status timeout"),O=new Error("identity is empty");class h{pomSocket;constructor(...[e,r]){this.pomSocket=a.getSocket(e,r)}static generateDeepLink(e){const{sessionId:r,dhSharedPublicNumber:o,hkdfSalt:t,callbackBrowser:a,callbackDeepLinkUrl:i}=e,n={id:r,dh:o,s:t,cb:a,cu:i};return`${d}?${s.stringify({q:n})}`}static parseDeepLinkQuery(e){const[r,o]=e.split("?");if(r!==d)throw l;const t=s.parse(o);if(null!=t.id&&"string"!=typeof t.id||null!=t.dh&&"string"!=typeof t.dh||null!=t.s&&"string"!=typeof t.s||null!=t.cu&&"string"!=typeof t.cu||null!=t.cb&&"string"!=typeof t.cb)throw p;return t}static async generateQrcode(e,r){const{sessionId:o,dhSharedPublicNumber:t,hkdfSalt:a}=e,s=[t?{data:t.toUpperCase(),mode:"alphanumeric"}:void 0,a?{data:a,mode:"alphanumeric"}:void 0,o?{data:o}:void 0];return await i.toDataURL(s.filter((e=>null!=e)),{errorCorrectionLevel:r?.level||"L"})}static parseQrcode(e){const r=e.slice(0,462),o=e.slice(462,494);return{id:e.slice(494),dh:r,s:o}}async sign(e){const{chainId:r,caller:o,message:t,qrcodeLevel:s,onRenderQrcode:i,onGetIdentityOnChain:c,onRegisterIdentity:d}=e;let l=this.pomSocket.getSocketStatus();if(l===a.SocketStatus.Connecting)throw m;l===a.SocketStatus.Disconnected&&await this.connectSocketAndWait({qrcodeLevel:s,onRenderQrcode:i});const p=await this.getIdentityStatus({chainId:r}).promise;let S;if(p.status!==exports.IdentityStatus.None&&p.status!==exports.IdentityStatus.Generated||(S=await this.attestDevice({chainId:r,caller:o}).promise),p.status===exports.IdentityStatus.None||p.status===exports.IdentityStatus.Generated){if(null==S)throw O;await d(S),await n.runWithErrorRetry((()=>{const e=c({chainId:r,identity:S.identity});if(!e)throw n.ERR_NEED_RETRY;return e}))}return await this.signMessage({chainId:r,caller:o,message:t}).promise}async connectSocketAndWait(e){try{const{qrcodeLevel:r,onRenderQrcode:o}=e,t=await this.connectSocket(),a=h.generateDeepLink(t);o({deepLink:a,imageBase64:await h.generateQrcode(t,r?{level:r}:void 0)}),await this.waitForConnectedEvent(),await this.waitForKeyExchangeEvent()}catch(r){if(r!==a.ERR_SESSION_IS_EXPIRED)throw r;this.connectSocketAndWait(e)}}async connectSocket(){return this.pomSocket.connect()}async waitForConnectedEvent(){return this.pomSocket.waitForConnectedEvent()}async waitForKeyExchangeEvent(){return this.pomSocket.waitForKeyExchangeEvent()}getIdentityStatus(e){const{chainId:r}=e;let o;return{promise:new Promise(((e,t)=>{o=n.sendMessageAndWaitForResponse({socket:this.pomSocket,op:n.POMOperation.GetIdentityStatus,data:{chainId:r},resolver:e,rejecter:t})})),cancel:o}}attestDevice(e){let r;return{promise:new Promise(((o,t)=>{r=n.sendMessageAndWaitForResponse({socket:this.pomSocket,op:n.POMOperation.AttestDevice,data:e,resolver:o,rejecter:t})})),cancel:r}}signMessage(e){let r;return{promise:new Promise(((o,t)=>{r=n.sendMessageAndWaitForResponse({socket:this.pomSocket,op:n.POMOperation.SignMessage,data:e,resolver:o,rejecter:t})})),cancel:r}}}exports.ERR_OPERATION_CANCELLED=n.ERR_OPERATION_CANCELLED,Object.defineProperty(exports,"POMOperation",{enumerable:!0,get:function(){return n.POMOperation}}),exports.decodeMessageData=n.decodeMessageData,exports.encodeMessageData=n.encodeMessageData,exports.getCallbackBrowser=n.getCallbackBrowser,exports.ERR_GET_IDENTITY_STATUS_TIMEOUT=S,exports.ERR_IDENTITY_IS_EMPTY=O,exports.ERR_INVALID_DEEP_LINK=l,exports.ERR_INVALID_DEEP_LINK_PARAMETERS=p,exports.ERR_SOCKET_IS_CONNECTING=m,exports.POMClinet=h,exports.bundleIds=c,exports.pomAppBasePath=d; | ||
//# sourceMappingURL=index.js.map |
{ | ||
"name": "@automata-network/pom-js-sdk", | ||
"version": "0.0.41", | ||
"version": "0.0.42", | ||
"description": "A socket clinet for automata's Proof Of Machinehood", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
@@ -267,3 +267,3 @@ import { | ||
dhSharedPublicNumber | ||
? {data: dhSharedPublicNumber, mode: 'alphanumeric'} | ||
? {data: dhSharedPublicNumber.toUpperCase(), mode: 'alphanumeric'} | ||
: undefined, | ||
@@ -270,0 +270,0 @@ hkdfSalt ? {data: hkdfSalt, mode: 'alphanumeric'} : undefined, |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
65738