@notabene/javascript-sdk 2.8.0 → 2.9.0-next.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.
Files changed (130) hide show
  1. package/dist/cjs/notabene.cjs +1 -1
  2. package/dist/cjs/notabene.d.ts +19 -3
  3. package/dist/cjs/package.json +1 -1
  4. package/dist/esm/notabene.d.ts +19 -3
  5. package/dist/esm/notabene.js +114 -88
  6. package/dist/esm/package.json +1 -1
  7. package/dist/notabene.d.ts +19 -3
  8. package/dist/notabene.js +114 -88
  9. package/docs/README.md +4 -4
  10. package/docs/_media/TransactionOptions.md +6 -6
  11. package/docs/ivms/types/enumerations/PayloadVersionCode.md +2 -2
  12. package/docs/ivms/types/interfaces/PayloadMetadata.md +2 -2
  13. package/docs/ivms/types/type-aliases/Address.md +1 -1
  14. package/docs/ivms/types/type-aliases/AddressTypeCode.md +1 -1
  15. package/docs/ivms/types/type-aliases/Beneficiary.md +1 -1
  16. package/docs/ivms/types/type-aliases/BeneficiaryVASP.md +1 -1
  17. package/docs/ivms/types/type-aliases/DateAndPlaceOfBirth.md +1 -1
  18. package/docs/ivms/types/type-aliases/ISOCountryCode.md +1 -1
  19. package/docs/ivms/types/type-aliases/ISODate.md +1 -1
  20. package/docs/ivms/types/type-aliases/IVMS101.md +1 -1
  21. package/docs/ivms/types/type-aliases/IntermediaryVASP.md +1 -1
  22. package/docs/ivms/types/type-aliases/LegalPerson.md +1 -1
  23. package/docs/ivms/types/type-aliases/LegalPersonName.md +1 -1
  24. package/docs/ivms/types/type-aliases/LegalPersonNameID.md +1 -1
  25. package/docs/ivms/types/type-aliases/LegalPersonNameTypeCode.md +1 -1
  26. package/docs/ivms/types/type-aliases/LocalLegalPersonNameID.md +1 -1
  27. package/docs/ivms/types/type-aliases/LocalNaturalPersonNameID.md +1 -1
  28. package/docs/ivms/types/type-aliases/NationalIdentification.md +1 -1
  29. package/docs/ivms/types/type-aliases/NationalIdentifierTypeCode.md +1 -1
  30. package/docs/ivms/types/type-aliases/NaturalPerson.md +1 -1
  31. package/docs/ivms/types/type-aliases/NaturalPersonName.md +1 -1
  32. package/docs/ivms/types/type-aliases/NaturalPersonNameID.md +1 -1
  33. package/docs/ivms/types/type-aliases/NaturalPersonNameTypeCode.md +1 -1
  34. package/docs/ivms/types/type-aliases/OriginatingVASP.md +1 -1
  35. package/docs/ivms/types/type-aliases/Originator.md +1 -1
  36. package/docs/ivms/types/type-aliases/Person.md +1 -1
  37. package/docs/ivms/types/type-aliases/TransferPath.md +1 -1
  38. package/docs/ivms/types/type-aliases/TransliterationMethodCode.md +1 -1
  39. package/docs/notabene/classes/ConnectionManager.md +5 -5
  40. package/docs/notabene/classes/EmbeddedComponent.md +17 -17
  41. package/docs/notabene/classes/default.md +7 -7
  42. package/docs/notabene/functions/decodeFragmentToObject.md +1 -1
  43. package/docs/notabene/interfaces/ConnectionData.md +3 -3
  44. package/docs/notabene/interfaces/ConnectionMetadata.md +3 -3
  45. package/docs/notabene/interfaces/ConnectionResponse.md +5 -5
  46. package/docs/notabene/interfaces/NotabeneConfig.md +5 -5
  47. package/docs/notabene/type-aliases/MessageCallback.md +1 -1
  48. package/docs/notabene/type-aliases/TransactionType.md +1 -1
  49. package/docs/types/enumerations/AgentType.md +2 -2
  50. package/docs/types/enumerations/CMType.md +7 -7
  51. package/docs/types/enumerations/ErrorIdentifierCode.md +4 -4
  52. package/docs/types/enumerations/HMType.md +2 -2
  53. package/docs/types/enumerations/PersonType.md +3 -3
  54. package/docs/types/enumerations/ProofStatus.md +4 -4
  55. package/docs/types/enumerations/ProofTypes.md +27 -16
  56. package/docs/types/enumerations/Status.md +5 -5
  57. package/docs/types/enumerations/VASPSearchControl.md +2 -2
  58. package/docs/types/enumerations/ValidationSections.md +4 -4
  59. package/docs/types/interfaces/Agent.md +6 -6
  60. package/docs/types/interfaces/CallbackOptions.md +2 -2
  61. package/docs/types/interfaces/ComponentRequest.md +2 -2
  62. package/docs/types/interfaces/ComponentResponse.md +4 -4
  63. package/docs/types/interfaces/ConnectionRecord.md +7 -7
  64. package/docs/types/interfaces/ConnectionRequest.md +3 -3
  65. package/docs/types/interfaces/Counterparty.md +10 -10
  66. package/docs/types/interfaces/DeclarationProof.md +6 -6
  67. package/docs/types/interfaces/Deposit.md +11 -11
  68. package/docs/types/interfaces/DepositRequest.md +7 -7
  69. package/docs/types/interfaces/DepositRequestOptions.md +1 -1
  70. package/docs/types/interfaces/DepositTransaction.md +9 -9
  71. package/docs/types/interfaces/LegalPerson.md +13 -13
  72. package/docs/types/interfaces/MicroTransferProof.md +9 -9
  73. package/docs/types/interfaces/NaturalPerson.md +13 -13
  74. package/docs/types/interfaces/OwnershipProof.md +4 -4
  75. package/docs/types/interfaces/RefreshSource.md +2 -2
  76. package/docs/types/interfaces/Refreshable.md +1 -1
  77. package/docs/types/interfaces/ScreenshotProof.md +5 -5
  78. package/docs/types/interfaces/SignatureProof.md +10 -10
  79. package/docs/types/interfaces/ThresholdOptions.md +3 -3
  80. package/docs/types/interfaces/Transaction.md +8 -8
  81. package/docs/types/interfaces/TransactionOptions.md +6 -6
  82. package/docs/types/interfaces/TransactionResponse.md +9 -9
  83. package/docs/types/interfaces/VASP.md +9 -9
  84. package/docs/types/interfaces/Wallet.md +8 -8
  85. package/docs/types/interfaces/Withdrawal.md +10 -10
  86. package/docs/types/type-aliases/BlockchainAddress.md +1 -1
  87. package/docs/types/type-aliases/CAIP10.md +1 -1
  88. package/docs/types/type-aliases/CAIP19.md +1 -1
  89. package/docs/types/type-aliases/CAIP2.md +1 -1
  90. package/docs/types/type-aliases/CAIP220.md +1 -1
  91. package/docs/types/type-aliases/Cancel.md +1 -1
  92. package/docs/types/type-aliases/Completed.md +1 -1
  93. package/docs/types/type-aliases/ComponentMessage.md +1 -1
  94. package/docs/types/type-aliases/ConnectionOptions.md +1 -1
  95. package/docs/types/type-aliases/CryptoCredential.md +1 -1
  96. package/docs/types/type-aliases/DID.md +1 -1
  97. package/docs/types/type-aliases/DTI.md +1 -1
  98. package/docs/types/type-aliases/Destination.md +1 -1
  99. package/docs/types/type-aliases/Error.md +1 -1
  100. package/docs/types/type-aliases/FieldOptions.md +1 -1
  101. package/docs/types/type-aliases/FieldTypes.md +1 -1
  102. package/docs/types/type-aliases/HostMessage.md +1 -1
  103. package/docs/types/type-aliases/ISOCurrency.md +1 -1
  104. package/docs/types/type-aliases/InvalidValue.md +1 -1
  105. package/docs/types/type-aliases/LEI.md +1 -1
  106. package/docs/types/type-aliases/LegalPersonFieldName.md +1 -1
  107. package/docs/types/type-aliases/LegalPersonFields.md +1 -1
  108. package/docs/types/type-aliases/NationalIdentifierTypeFieldOptions.md +1 -1
  109. package/docs/types/type-aliases/NaturalPersonFieldName.md +1 -1
  110. package/docs/types/type-aliases/NaturalPersonFields.md +1 -1
  111. package/docs/types/type-aliases/NotabeneAsset.md +1 -1
  112. package/docs/types/type-aliases/Ready.md +1 -1
  113. package/docs/types/type-aliases/ResizeRequest.md +1 -1
  114. package/docs/types/type-aliases/Source.md +1 -1
  115. package/docs/types/type-aliases/Theme.md +1 -1
  116. package/docs/types/type-aliases/TransactionAsset.md +1 -1
  117. package/docs/types/type-aliases/TravelAddress.md +1 -1
  118. package/docs/types/type-aliases/URI.md +1 -1
  119. package/docs/types/type-aliases/UUID.md +1 -1
  120. package/docs/types/type-aliases/UpdateValue.md +1 -1
  121. package/docs/types/type-aliases/V1Asset.md +1 -1
  122. package/docs/types/type-aliases/V1Transaction.md +1 -1
  123. package/docs/types/type-aliases/VASPOptions.md +1 -1
  124. package/docs/types/type-aliases/ValidationError.md +1 -1
  125. package/package.json +1 -1
  126. package/src/notabene.ts +5 -0
  127. package/src/types.ts +4 -1
  128. package/src/utils/__tests__/connections.test.ts +24 -7
  129. package/src/utils/connections.ts +60 -2
  130. package/src/utils/encryption.ts +5 -3
@@ -1 +1 @@
1
- "use strict";var N=Object.defineProperty;var U=(t,e,n)=>e in t?N(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var a=(t,e,n)=>U(t,typeof e!="symbol"?e+"":e,n);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var p=(t=>(t.PRIVATE="WALLET",t.VASP="VASP",t))(p||{}),E=(t=>(t.NATURAL="natural",t.LEGAL="legal",t.SELF="self",t))(E||{}),f=(t=>(t.EMPTY="empty",t.VERIFY="verify",t.PENDING="pending",t.VERIFIED="verified",t.BANNED="banned",t))(f||{}),w=(t=>(t.ALLOWED="allowed",t.PENDING="pending",t))(w||{}),v=(t=>(t.ASSET="asset",t.DESTINATION="destination",t.COUNTERPARTY="counterparty",t.AGENT="agent",t))(v||{}),l=(t=>(t.COMPLETE="complete",t.RESIZE="resize",t.RESULT="result",t.READY="ready",t.INVALID="invalid",t.ERROR="error",t.CANCEL="cancel",t))(l||{}),g=(t=>(t.SERVICE_UNAVAILABLE="SERVICE_UNAVAILABLE",t.WALLET_CONNECTION_FAILED="WALLET_CONNECTION_FAILED",t.WALLET_NOT_SUPPORTED="WALLET_NOT_SUPPORTED",t.TOKEN_INVALID="TOKEN_INVALID",t))(g||{}),d=(t=>(t.UPDATE="update",t.REQUEST_RESPONSE="requestResponse",t))(d||{}),y=(t=>(t.PENDING="pending",t.FAILED="rejected",t.FLAGGED="flagged",t.VERIFIED="verified",t))(y||{}),A=(t=>(t.SelfDeclaration="self-declaration",t.SIWE="siwe",t.SIWX="siwx",t.EIP191="eip-191",t.EIP712="eip-712",t.EIP1271="eip-1271",t.BIP137="bip-137",t.BIP322="bip-322",t.BIP137_XPUB="xpub",t.TIP191="tip-191",t.ED25519="ed25519",t.XRP_ED25519="xrp-ed25519",t.CIP8="cip-8",t.MicroTransfer="microtransfer",t.Screenshot="screenshot",t.Connect="connect",t))(A||{});class _{constructor(){a(this,"listeners",new Map);a(this,"port");this.handleMessage=this.handleMessage.bind(this)}setPort(e){this.port=e,this.port.onmessage=this.handleMessage,this.port.start()}on(e,n){return this.listeners.has(e)||this.listeners.set(e,new Set),this.listeners.get(e).add(n),()=>this.off(e,n)}off(e,n){const r=this.listeners.get(e);r&&(r.delete(n),r.size===0&&this.listeners.delete(e))}handleMessage(e){const n=e.data;if(typeof n=="object"&&n!==null&&"type"in n){const r=n.type,i=this.listeners.get(r);i&&i.forEach(s=>s(n))}}send(e){this.port&&this.port.postMessage(e)}}class C{constructor(e,n,r){a(this,"_url");a(this,"_value");a(this,"_options");a(this,"_errors",[]);a(this,"iframe");a(this,"eventManager");a(this,"modal");this._url=e,this._value=n,this._options=r,this.eventManager=new _,this.on(l.INVALID,i=>{i.type===l.INVALID&&(this._errors=i.errors,this._value=i.value)}),this.on(l.RESIZE,i=>{i.type===l.RESIZE&&this.iframe&&(this.iframe.style.height=`${i.height}px`)})}get url(){return this._url}get value(){return this._value}get options(){return this._options}get errors(){return this._errors}open(){document.location.href=this.url}mount(e){const n=document.querySelector(e);if(!n)throw new Error(`parentID ${e} not found`);this.embed(n)}embed(e,n=!1){var r,i;this.removeEmbed(),this.iframe=document.createElement("iframe"),this.iframe.src=this.url+(n?"":"&embedded=true"),this.iframe.allow="web-share; clipboard-write; hid; bluetooth;",this.iframe.style.width="100%",this.iframe.style.height="0px",this.iframe.style.border="none",this.iframe.style.overflow="hidden",this.iframe.scrolling="no",e.appendChild(this.iframe),window.addEventListener("message",s=>{var o,c;s.source===((o=this.iframe)==null?void 0:o.contentWindow)&&((c=this.eventManager)==null||c.setPort(s.ports[0]))}),(i=(r=this.iframe)==null?void 0:r.contentWindow)==null||i.focus()}removeEmbed(){this.iframe&&this.iframe.remove()}send(e){this.eventManager.send(e)}on(e,n){return this.eventManager.on(e,n)}off(e,n){this.eventManager.off(e,n)}update(e,n){this._value=e,n&&(this._options=n),this.send({type:d.UPDATE,value:e,options:this._options})}completion(){return new Promise((e,n)=>{let r,i,s;function o(){r&&r(),i&&i(),s&&s()}r=this.on(l.COMPLETE,c=>{e(c.response),o()}),i=this.on(l.CANCEL,()=>{n(new Error("User cancelled")),o()}),s=this.on("error",c=>{n(new Error(c.message)),o()})})}async openModal(){this.modal&&this.closeModal(),this.modal=document.createElement("dialog"),this.modal.style.border="none",this.modal.style.backgroundColor="white",this.modal.style.maxWidth="100vw",this.modal.style.maxHeight="100vh",this.modal.style.width="600px",this.modal.style.height="600px",document.body.appendChild(this.modal),this.embed(this.modal,!0);const e=this.on(l.CANCEL,()=>{this.closeModal()}),n=this.on(l.COMPLETE,()=>{this.closeModal()});return this.modal.showModal(),this.modal.addEventListener("click",()=>{this.closeModal()}),this.completion().finally(()=>{e(),n()})}closeModal(){var e;this.modal&&((e=this.modal)==null||e.close(),this.modal.remove(),this.modal=void 0)}async popup(){const e=window.open(this.url,"_blank","popup=true,width=600,height=600");window.addEventListener("message",i=>{var s;i.source===e&&(console.log("received message from popup",i.data),(s=this.eventManager)==null||s.setPort(i.ports[0]))});const n=this.on(l.CANCEL,()=>{e==null||e.close()}),r=this.on(l.COMPLETE,()=>{e==null||e.close()});return this.completion().finally(()=>{n(),r()})}}function S(t){return Object.entries(t).map(([e,n])=>{if(n==null)return;const r=encodeURIComponent(e),i=encodeURIComponent(typeof n=="object"?JSON.stringify(n):String(n));return`${r}=${i}`}).filter(e=>e!==void 0).join("&")}function O(t){const e=t.slice(1);return e?e.split("&").filter(Boolean).reduce((r,i)=>{const[s,o]=i.split("=");return s&&(r[decodeURIComponent(s)]=o?decodeURIComponent(o):""),r},{}):{}}async function u(t){const e=JSON.stringify(t),n=new TextEncoder,r=crypto.getRandomValues(new Uint8Array(32)),i=await crypto.subtle.importKey("raw",r,{name:"AES-GCM"},!1,["encrypt"]),s=crypto.getRandomValues(new Uint8Array(12)),o=await crypto.subtle.encrypt({name:"AES-GCM",iv:s},i,n.encode(e));return{ciphertext:`${h(s)}-${h(o)}`,key:h(r)}}async function M({ciphertext:t,key:e}){const[n,r]=t.split("-"),i=new Uint8Array(atob(e).split("").map(L=>L.charCodeAt(0))),s=m(n),o=m(r),c=await crypto.subtle.importKey("raw",i,{name:"AES-GCM"},!1,["decrypt"]),b=new TextDecoder,I=await crypto.subtle.decrypt({name:"AES-GCM",iv:new Uint8Array(s)},c,o);return JSON.parse(b.decode(I))}function h(t){const e=new Uint8Array(t);let n="";for(let r=0;r<e.length;r++)n+=String.fromCharCode(e[r]);return btoa(n)}function m(t){const e=atob(t),n=new Uint8Array(e.length);for(let r=0;r<e.length;r++)n[r]=e.charCodeAt(r);return n}class R{constructor(e){a(this,"endpoint");this.endpoint=e}async create(e,n){const r=await u(e),i={metadata:n,sealed:r.ciphertext},s=await fetch(this.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)});if(!s.ok)throw new Error(`Failed to create connection: ${await s.text()}`);const o=await s.json();return{id:o.id,version:o.version,metadata:n,data:e,key:r.key}}async update(e,n,r){const i=await u(n),s={sealed:i.ciphertext,version:r},o=await fetch(`${this.endpoint}/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});if(!o.ok)throw new Error(`Failed to update connection: ${await o.text()}`);const c=await o.json();return{id:c.id,metadata:c.metadata,version:c.version,data:n,key:i.key}}async get(e,n){const r=await fetch(`${this.endpoint}/${e}`,{method:"GET"});if(!r.ok)throw new Error(`Failed to get connection: ${await r.text()}`);const i=await r.json(),s=i.sealed[i.sealed.length-1],o=await M({ciphertext:s,key:n});return{id:i.id,version:i.version,metadata:i.metadata,data:o,key:n}}async close(e){const n=await fetch(`${this.endpoint}/${e}`,{method:"DELETE"});if(!n.ok)throw new Error(`Failed to close connection: ${await n.text()}`)}}class D{constructor(e){a(this,"nodeUrl");a(this,"authToken");a(this,"uxUrl");a(this,"theme");a(this,"locale");this.uxUrl=e.uxUrl||"https://connect.notabene.id",this.nodeUrl=e.nodeUrl,this.authToken=e.authToken,this.theme=e.theme,this.locale=e.locale}componentUrl(e,n,r,i){const s=new URL(this.uxUrl);s.pathname=e;const o=S({authToken:this.authToken,value:n,configuration:r});return s.hash=o,this.nodeUrl&&s.searchParams.set("nodeUrl",this.nodeUrl),this.theme&&s.searchParams.set("theme",JSON.stringify(this.theme)),this.locale&&s.searchParams.set("locale",this.locale),i&&(i.callback&&s.searchParams.set("callback_url",i.callback),i.redirectUri&&s.searchParams.set("redirect_uri",i.redirectUri)),s.toString()}createComponent(e,n,r,i){return new C(this.componentUrl(e,n,r,i),n,r)}createWithdrawalAssist(e,n,r){return this.createComponent("withdrawal-assist",e,n,r)}createConnectWallet(e,n,r){return this.createComponent("connect",e,n,r)}createDepositRequest(e,n,r){return this.createComponent("deposit-request",e,n,r)}createDepositAssist(e,n,r){return this.createComponent("deposit-assist",e,n,r)}}exports.AgentType=p;exports.CMType=l;exports.ConnectionManager=R;exports.EmbeddedComponent=C;exports.ErrorIdentifierCode=g;exports.HMType=d;exports.PersonType=E;exports.ProofStatus=y;exports.ProofTypes=A;exports.Status=f;exports.VASPSearchControl=w;exports.ValidationSections=v;exports.decodeFragmentToObject=O;exports.default=D;
1
+ "use strict";var U=Object.defineProperty;var _=(t,e,n)=>e in t?U(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var a=(t,e,n)=>_(t,typeof e!="symbol"?e+"":e,n);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var f=(t=>(t.PRIVATE="WALLET",t.VASP="VASP",t))(f||{}),w=(t=>(t.NATURAL="natural",t.LEGAL="legal",t.SELF="self",t))(w||{}),g=(t=>(t.EMPTY="empty",t.VERIFY="verify",t.PENDING="pending",t.VERIFIED="verified",t.BANNED="banned",t))(g||{}),v=(t=>(t.ALLOWED="allowed",t.PENDING="pending",t))(v||{}),y=(t=>(t.ASSET="asset",t.DESTINATION="destination",t.COUNTERPARTY="counterparty",t.AGENT="agent",t))(y||{}),l=(t=>(t.COMPLETE="complete",t.RESIZE="resize",t.RESULT="result",t.READY="ready",t.INVALID="invalid",t.ERROR="error",t.CANCEL="cancel",t))(l||{}),A=(t=>(t.SERVICE_UNAVAILABLE="SERVICE_UNAVAILABLE",t.WALLET_CONNECTION_FAILED="WALLET_CONNECTION_FAILED",t.WALLET_NOT_SUPPORTED="WALLET_NOT_SUPPORTED",t.TOKEN_INVALID="TOKEN_INVALID",t))(A||{}),p=(t=>(t.UPDATE="update",t.REQUEST_RESPONSE="requestResponse",t))(p||{}),C=(t=>(t.PENDING="pending",t.FAILED="rejected",t.FLAGGED="flagged",t.VERIFIED="verified",t))(C||{}),b=(t=>(t.SelfDeclaration="self-declaration",t.SIWE="siwe",t.SIWX="siwx",t.EIP191="eip-191",t.EIP712="eip-712",t.EIP1271="eip-1271",t.BIP137="bip-137",t.BIP322="bip-322",t.BIP137_XPUB="xpub",t.TIP191="tip-191",t.ED25519="ed25519",t.XRP_ED25519="xrp-ed25519",t.XLM_ED25519="xlm-ed25519",t.CIP8="cip-8",t.MicroTransfer="microtransfer",t.Screenshot="screenshot",t.Connect="connect",t))(b||{});class R{constructor(){a(this,"listeners",new Map);a(this,"port");this.handleMessage=this.handleMessage.bind(this)}setPort(e){this.port=e,this.port.onmessage=this.handleMessage,this.port.start()}on(e,n){return this.listeners.has(e)||this.listeners.set(e,new Set),this.listeners.get(e).add(n),()=>this.off(e,n)}off(e,n){const r=this.listeners.get(e);r&&(r.delete(n),r.size===0&&this.listeners.delete(e))}handleMessage(e){const n=e.data;if(typeof n=="object"&&n!==null&&"type"in n){const r=n.type,s=this.listeners.get(r);s&&s.forEach(o=>o(n))}}send(e){this.port&&this.port.postMessage(e)}}class I{constructor(e,n,r){a(this,"_url");a(this,"_value");a(this,"_options");a(this,"_errors",[]);a(this,"iframe");a(this,"eventManager");a(this,"modal");this._url=e,this._value=n,this._options=r,this.eventManager=new R,this.on(l.INVALID,s=>{s.type===l.INVALID&&(this._errors=s.errors,this._value=s.value)}),this.on(l.RESIZE,s=>{s.type===l.RESIZE&&this.iframe&&(this.iframe.style.height=`${s.height}px`)})}get url(){return this._url}get value(){return this._value}get options(){return this._options}get errors(){return this._errors}open(){document.location.href=this.url}mount(e){const n=document.querySelector(e);if(!n)throw new Error(`parentID ${e} not found`);this.embed(n)}embed(e,n=!1){var r,s;this.removeEmbed(),this.iframe=document.createElement("iframe"),this.iframe.src=this.url+(n?"":"&embedded=true"),this.iframe.allow="web-share; clipboard-write; hid; bluetooth;",this.iframe.style.width="100%",this.iframe.style.height="0px",this.iframe.style.border="none",this.iframe.style.overflow="hidden",this.iframe.scrolling="no",e.appendChild(this.iframe),window.addEventListener("message",o=>{var i,c;o.source===((i=this.iframe)==null?void 0:i.contentWindow)&&((c=this.eventManager)==null||c.setPort(o.ports[0]))}),(s=(r=this.iframe)==null?void 0:r.contentWindow)==null||s.focus()}removeEmbed(){this.iframe&&this.iframe.remove()}send(e){this.eventManager.send(e)}on(e,n){return this.eventManager.on(e,n)}off(e,n){this.eventManager.off(e,n)}update(e,n){this._value=e,n&&(this._options=n),this.send({type:p.UPDATE,value:e,options:this._options})}completion(){return new Promise((e,n)=>{let r,s,o;function i(){r&&r(),s&&s(),o&&o()}r=this.on(l.COMPLETE,c=>{e(c.response),i()}),s=this.on(l.CANCEL,()=>{n(new Error("User cancelled")),i()}),o=this.on("error",c=>{n(new Error(c.message)),i()})})}async openModal(){this.modal&&this.closeModal(),this.modal=document.createElement("dialog"),this.modal.style.border="none",this.modal.style.backgroundColor="white",this.modal.style.maxWidth="100vw",this.modal.style.maxHeight="100vh",this.modal.style.width="600px",this.modal.style.height="600px",document.body.appendChild(this.modal),this.embed(this.modal,!0);const e=this.on(l.CANCEL,()=>{this.closeModal()}),n=this.on(l.COMPLETE,()=>{this.closeModal()});return this.modal.showModal(),this.modal.addEventListener("click",()=>{this.closeModal()}),this.completion().finally(()=>{e(),n()})}closeModal(){var e;this.modal&&((e=this.modal)==null||e.close(),this.modal.remove(),this.modal=void 0)}async popup(){const e=window.open(this.url,"_blank","popup=true,width=600,height=600");window.addEventListener("message",s=>{var o;s.source===e&&(console.log("received message from popup",s.data),(o=this.eventManager)==null||o.setPort(s.ports[0]))});const n=this.on(l.CANCEL,()=>{e==null||e.close()}),r=this.on(l.COMPLETE,()=>{e==null||e.close()});return this.completion().finally(()=>{n(),r()})}}function x(t){return Object.entries(t).map(([e,n])=>{if(n==null)return;const r=encodeURIComponent(e),s=encodeURIComponent(typeof n=="object"?JSON.stringify(n):String(n));return`${r}=${s}`}).filter(e=>e!==void 0).join("&")}function S(t){const e=t.slice(1);return e?e.split("&").filter(Boolean).reduce((r,s)=>{const[o,i]=s.split("=");return o&&(r[decodeURIComponent(o)]=i?decodeURIComponent(i):""),r},{}):{}}async function E(t,e){const n=JSON.stringify(t),r=new TextEncoder,s=e?m(e):crypto.getRandomValues(new Uint8Array(32)),o=await crypto.subtle.importKey("raw",s,{name:"AES-GCM"},!1,["encrypt"]),i=crypto.getRandomValues(new Uint8Array(12)),c=await crypto.subtle.encrypt({name:"AES-GCM",iv:i},o,r.encode(n));return{ciphertext:`${u(i)}-${u(c)}`,key:u(s)}}async function L({ciphertext:t,key:e}){const[n,r]=t.split("-"),s=new Uint8Array(atob(e).split("").map(N=>N.charCodeAt(0))),o=m(n),i=m(r),c=await crypto.subtle.importKey("raw",s,{name:"AES-GCM"},!1,["decrypt"]),d=new TextDecoder,h=await crypto.subtle.decrypt({name:"AES-GCM",iv:new Uint8Array(o)},c,i);return JSON.parse(d.decode(h))}function u(t){const e=new Uint8Array(t);let n="";for(let r=0;r<e.length;r++)n+=String.fromCharCode(e[r]);return btoa(n)}function m(t){const e=atob(t),n=new Uint8Array(e.length);for(let r=0;r<e.length;r++)n[r]=e.charCodeAt(r);return n}async function M(t){const e=await fetch(t.url,{method:"GET"});if(!e.ok)throw new Error(`Failed to get connection: ${await e.text()}`);const n=await e.json();if(!n.sealed)throw new Error("No data found");const r=n.sealed[n.sealed.length-1],s=await L({ciphertext:r,key:t.key});return{id:n.id,metadata:n.metadata,status:n.status,tx:s.tx,result:s.result}}class O{constructor(e){a(this,"endpoint");this.endpoint=e}async create(e,n){const r=await E(e),s={metadata:n,sealed:r.ciphertext},o=await fetch(this.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});if(!o.ok)throw new Error(`Failed to create connection: ${await o.text()}`);const i=await o.json();return{id:i.id,version:i.version,status:i.status,metadata:n,data:e,key:r.key}}async update(e,n,r,s,o){const i=await E(n,o),c={sealed:i.ciphertext,version:r,status:s},d=await fetch(`${this.endpoint}/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)});if(!d.ok)throw new Error(`Failed to update connection: ${await d.text()}`);const h=await d.json();return{id:h.id,metadata:h.metadata,version:h.version,status:h.status,data:n,key:i.key}}async get(e,n){const r=await fetch(`${this.endpoint}/${e}`,{method:"GET"});if(!r.ok)throw new Error(`Failed to get connection: ${await r.text()}`);const s=await r.json(),o=s.sealed[s.sealed.length-1],i=await L({ciphertext:o,key:n});return{id:s.id,status:s.status,version:s.version,metadata:s.metadata,data:i,key:n}}async close(e){const n=await fetch(`${this.endpoint}/${e}`,{method:"DELETE"});if(!n.ok)throw new Error(`Failed to close connection: ${await n.text()}`)}}class D{constructor(e){a(this,"nodeUrl");a(this,"authToken");a(this,"uxUrl");a(this,"theme");a(this,"locale");this.uxUrl=e.uxUrl||"https://connect.notabene.id",this.nodeUrl=e.nodeUrl,this.authToken=e.authToken,this.theme=e.theme,this.locale=e.locale}componentUrl(e,n,r,s){const o=new URL(this.uxUrl);o.pathname=e;const i=x({authToken:this.authToken,value:n,configuration:r});return o.hash=i,this.nodeUrl&&o.searchParams.set("nodeUrl",this.nodeUrl),this.theme&&o.searchParams.set("theme",JSON.stringify(this.theme)),this.locale&&o.searchParams.set("locale",this.locale),s&&(s.callback&&o.searchParams.set("callback_url",s.callback),s.redirectUri&&o.searchParams.set("redirect_uri",s.redirectUri)),o.toString()}createComponent(e,n,r,s){return new I(this.componentUrl(e,n,r,s),n,r)}createWithdrawalAssist(e,n,r){return this.createComponent("withdrawal-assist",e,n,r)}createConnectWallet(e,n,r){return this.createComponent("connect",e,n,r)}createDepositRequest(e,n,r){return this.createComponent("deposit-request",e,n,r)}createDepositAssist(e,n,r){return this.createComponent("deposit-assist",e,n,r)}}exports.AgentType=f;exports.CMType=l;exports.ConnectionManager=O;exports.EmbeddedComponent=I;exports.ErrorIdentifierCode=A;exports.HMType=p;exports.PersonType=w;exports.ProofStatus=C;exports.ProofTypes=b;exports.Status=g;exports.VASPSearchControl=v;exports.ValidationSections=y;exports.decodeFragmentToObject=S;exports.default=D;exports.getRefreshResult=M;
@@ -294,6 +294,7 @@ export declare interface ConnectionData<T extends ComponentRequest> {
294
294
  tx: T;
295
295
  authToken?: string;
296
296
  txOptions?: TransactionOptions;
297
+ result?: TransactionResponse<T>;
297
298
  }
298
299
 
299
300
  /**
@@ -316,7 +317,7 @@ export declare class ConnectionManager {
316
317
  * @param version Current version number
317
318
  * @returns Promise resolving to updated connection details including new encryption key
318
319
  */
319
- update<T extends ComponentRequest>(id: UUID, data: ConnectionData<T>, version: number): Promise<ConnectionResponse<T>>;
320
+ update<T extends ComponentRequest>(id: UUID, data: ConnectionData<T>, version: number, status: ConnectionStatus, key: string): Promise<ConnectionResponse<T>>;
320
321
  /**
321
322
  * Retrieves and decrypts connection data
322
323
  * @param id Connection ID
@@ -354,11 +355,22 @@ export declare interface ConnectionRequest extends ComponentRequest {
354
355
  export declare interface ConnectionResponse<T extends ComponentRequest> {
355
356
  id: UUID;
356
357
  version: number;
358
+ status: ConnectionStatus;
357
359
  metadata: ConnectionMetadata;
358
360
  data: ConnectionData<T>;
359
361
  key: string;
360
362
  }
361
363
 
364
+ export declare interface ConnectionResult<T extends ComponentRequest> {
365
+ id: UUID;
366
+ metadata: ConnectionMetadata;
367
+ status: ConnectionStatus;
368
+ tx: T;
369
+ result?: TransactionResponse<T>;
370
+ }
371
+
372
+ export declare type ConnectionStatus = 'active' | 'completed' | 'closed';
373
+
362
374
  /**
363
375
  * The counterparty of a transaction.
364
376
  * @public
@@ -642,6 +654,8 @@ export declare type FieldTypes = {
642
654
  legalPerson?: LegalPersonFields;
643
655
  };
644
656
 
657
+ export declare function getRefreshResult<T extends ComponentRequest>(refreshSource: RefreshSource): Promise<ConnectionResult<T>>;
658
+
645
659
  /**
646
660
  * Host Message Type enum representing different message types that can be sent
647
661
  * from the host application.
@@ -1308,6 +1322,7 @@ export declare enum ProofStatus {
1308
1322
  * - TIP191: Tron message signing
1309
1323
  * - ED25519: Ed25519 signature (used in Solana)
1310
1324
  * - XRP_ED25519: Ed25519 signature (used in XRP)
1325
+ * - XLM_ED25519: Ed25519 signature (used in Stellar)
1311
1326
  * - XPUB: Extended public key signature for HD wallets
1312
1327
  * - MicroTransfer: Proof via small blockchain transaction
1313
1328
  * - Screenshot: Image proof of ownership/access
@@ -1332,6 +1347,7 @@ export declare enum ProofTypes {
1332
1347
  TIP191 = "tip-191",
1333
1348
  ED25519 = "ed25519",
1334
1349
  XRP_ED25519 = "xrp-ed25519",
1350
+ XLM_ED25519 = "xlm-ed25519",
1335
1351
  CIP8 = "cip-8",
1336
1352
  MicroTransfer = "microtransfer",
1337
1353
  Screenshot = "screenshot",
@@ -1350,7 +1366,7 @@ declare interface Refreshable {
1350
1366
  refreshSource?: RefreshSource;
1351
1367
  }
1352
1368
 
1353
- declare interface RefreshSource {
1369
+ export declare interface RefreshSource {
1354
1370
  url: URI;
1355
1371
  key: string;
1356
1372
  }
@@ -1393,7 +1409,7 @@ export declare interface ScreenshotProof extends OwnershipProof {
1393
1409
  * @public
1394
1410
  */
1395
1411
  export declare interface SignatureProof extends OwnershipProof {
1396
- type: ProofTypes.EIP191 | ProofTypes.EIP712 | ProofTypes.EIP1271 | ProofTypes.BIP137 | ProofTypes.BIP322 | ProofTypes.BIP137_XPUB | ProofTypes.ED25519 | ProofTypes.TIP191 | ProofTypes.SIWX | ProofTypes.SIWE | ProofTypes.CIP8 | ProofTypes.XRP_ED25519;
1412
+ type: ProofTypes.EIP191 | ProofTypes.EIP712 | ProofTypes.EIP1271 | ProofTypes.BIP137 | ProofTypes.BIP322 | ProofTypes.BIP137_XPUB | ProofTypes.ED25519 | ProofTypes.TIP191 | ProofTypes.SIWX | ProofTypes.SIWE | ProofTypes.CIP8 | ProofTypes.XRP_ED25519 | ProofTypes.XLM_ED25519;
1397
1413
  proof: string;
1398
1414
  attestation: string;
1399
1415
  wallet_provider: string;
@@ -10,7 +10,7 @@
10
10
  "author": "Notabene <developers@notabene.id>",
11
11
  "license": "MIT",
12
12
  "packageManager": "yarn@4.5.1",
13
- "version": "2.8.0",
13
+ "version": "2.9.0-next.2",
14
14
  "source": "src/notabene.ts",
15
15
  "main": "dist/cjs/notabene.cjs",
16
16
  "module": "dist/esm/notabene.js",
@@ -294,6 +294,7 @@ export declare interface ConnectionData<T extends ComponentRequest> {
294
294
  tx: T;
295
295
  authToken?: string;
296
296
  txOptions?: TransactionOptions;
297
+ result?: TransactionResponse<T>;
297
298
  }
298
299
 
299
300
  /**
@@ -316,7 +317,7 @@ export declare class ConnectionManager {
316
317
  * @param version Current version number
317
318
  * @returns Promise resolving to updated connection details including new encryption key
318
319
  */
319
- update<T extends ComponentRequest>(id: UUID, data: ConnectionData<T>, version: number): Promise<ConnectionResponse<T>>;
320
+ update<T extends ComponentRequest>(id: UUID, data: ConnectionData<T>, version: number, status: ConnectionStatus, key: string): Promise<ConnectionResponse<T>>;
320
321
  /**
321
322
  * Retrieves and decrypts connection data
322
323
  * @param id Connection ID
@@ -354,11 +355,22 @@ export declare interface ConnectionRequest extends ComponentRequest {
354
355
  export declare interface ConnectionResponse<T extends ComponentRequest> {
355
356
  id: UUID;
356
357
  version: number;
358
+ status: ConnectionStatus;
357
359
  metadata: ConnectionMetadata;
358
360
  data: ConnectionData<T>;
359
361
  key: string;
360
362
  }
361
363
 
364
+ export declare interface ConnectionResult<T extends ComponentRequest> {
365
+ id: UUID;
366
+ metadata: ConnectionMetadata;
367
+ status: ConnectionStatus;
368
+ tx: T;
369
+ result?: TransactionResponse<T>;
370
+ }
371
+
372
+ export declare type ConnectionStatus = 'active' | 'completed' | 'closed';
373
+
362
374
  /**
363
375
  * The counterparty of a transaction.
364
376
  * @public
@@ -642,6 +654,8 @@ export declare type FieldTypes = {
642
654
  legalPerson?: LegalPersonFields;
643
655
  };
644
656
 
657
+ export declare function getRefreshResult<T extends ComponentRequest>(refreshSource: RefreshSource): Promise<ConnectionResult<T>>;
658
+
645
659
  /**
646
660
  * Host Message Type enum representing different message types that can be sent
647
661
  * from the host application.
@@ -1308,6 +1322,7 @@ export declare enum ProofStatus {
1308
1322
  * - TIP191: Tron message signing
1309
1323
  * - ED25519: Ed25519 signature (used in Solana)
1310
1324
  * - XRP_ED25519: Ed25519 signature (used in XRP)
1325
+ * - XLM_ED25519: Ed25519 signature (used in Stellar)
1311
1326
  * - XPUB: Extended public key signature for HD wallets
1312
1327
  * - MicroTransfer: Proof via small blockchain transaction
1313
1328
  * - Screenshot: Image proof of ownership/access
@@ -1332,6 +1347,7 @@ export declare enum ProofTypes {
1332
1347
  TIP191 = "tip-191",
1333
1348
  ED25519 = "ed25519",
1334
1349
  XRP_ED25519 = "xrp-ed25519",
1350
+ XLM_ED25519 = "xlm-ed25519",
1335
1351
  CIP8 = "cip-8",
1336
1352
  MicroTransfer = "microtransfer",
1337
1353
  Screenshot = "screenshot",
@@ -1350,7 +1366,7 @@ declare interface Refreshable {
1350
1366
  refreshSource?: RefreshSource;
1351
1367
  }
1352
1368
 
1353
- declare interface RefreshSource {
1369
+ export declare interface RefreshSource {
1354
1370
  url: URI;
1355
1371
  key: string;
1356
1372
  }
@@ -1393,7 +1409,7 @@ export declare interface ScreenshotProof extends OwnershipProof {
1393
1409
  * @public
1394
1410
  */
1395
1411
  export declare interface SignatureProof extends OwnershipProof {
1396
- type: ProofTypes.EIP191 | ProofTypes.EIP712 | ProofTypes.EIP1271 | ProofTypes.BIP137 | ProofTypes.BIP322 | ProofTypes.BIP137_XPUB | ProofTypes.ED25519 | ProofTypes.TIP191 | ProofTypes.SIWX | ProofTypes.SIWE | ProofTypes.CIP8 | ProofTypes.XRP_ED25519;
1412
+ type: ProofTypes.EIP191 | ProofTypes.EIP712 | ProofTypes.EIP1271 | ProofTypes.BIP137 | ProofTypes.BIP322 | ProofTypes.BIP137_XPUB | ProofTypes.ED25519 | ProofTypes.TIP191 | ProofTypes.SIWX | ProofTypes.SIWE | ProofTypes.CIP8 | ProofTypes.XRP_ED25519 | ProofTypes.XLM_ED25519;
1397
1413
  proof: string;
1398
1414
  attestation: string;
1399
1415
  wallet_provider: string;
@@ -1,8 +1,8 @@
1
- var w = Object.defineProperty;
2
- var v = (t, e, n) => e in t ? w(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
3
- var a = (t, e, n) => v(t, typeof e != "symbol" ? e + "" : e, n);
4
- var A = /* @__PURE__ */ ((t) => (t.PRIVATE = "WALLET", t.VASP = "VASP", t))(A || {}), g = /* @__PURE__ */ ((t) => (t.NATURAL = "natural", t.LEGAL = "legal", t.SELF = "self", t))(g || {}), y = /* @__PURE__ */ ((t) => (t.EMPTY = "empty", t.VERIFY = "verify", t.PENDING = "pending", t.VERIFIED = "verified", t.BANNED = "banned", t))(y || {}), I = /* @__PURE__ */ ((t) => (t.ALLOWED = "allowed", t.PENDING = "pending", t))(I || {}), C = /* @__PURE__ */ ((t) => (t.ASSET = "asset", t.DESTINATION = "destination", t.COUNTERPARTY = "counterparty", t.AGENT = "agent", t))(C || {}), l = /* @__PURE__ */ ((t) => (t.COMPLETE = "complete", t.RESIZE = "resize", t.RESULT = "result", t.READY = "ready", t.INVALID = "invalid", t.ERROR = "error", t.CANCEL = "cancel", t))(l || {}), L = /* @__PURE__ */ ((t) => (t.SERVICE_UNAVAILABLE = "SERVICE_UNAVAILABLE", t.WALLET_CONNECTION_FAILED = "WALLET_CONNECTION_FAILED", t.WALLET_NOT_SUPPORTED = "WALLET_NOT_SUPPORTED", t.TOKEN_INVALID = "TOKEN_INVALID", t))(L || {}), u = /* @__PURE__ */ ((t) => (t.UPDATE = "update", t.REQUEST_RESPONSE = "requestResponse", t))(u || {}), b = /* @__PURE__ */ ((t) => (t.PENDING = "pending", t.FAILED = "rejected", t.FLAGGED = "flagged", t.VERIFIED = "verified", t))(b || {}), N = /* @__PURE__ */ ((t) => (t.SelfDeclaration = "self-declaration", t.SIWE = "siwe", t.SIWX = "siwx", t.EIP191 = "eip-191", t.EIP712 = "eip-712", t.EIP1271 = "eip-1271", t.BIP137 = "bip-137", t.BIP322 = "bip-322", t.BIP137_XPUB = "xpub", t.TIP191 = "tip-191", t.ED25519 = "ed25519", t.XRP_ED25519 = "xrp-ed25519", t.CIP8 = "cip-8", t.MicroTransfer = "microtransfer", t.Screenshot = "screenshot", t.Connect = "connect", t))(N || {});
5
- class U {
1
+ var v = Object.defineProperty;
2
+ var g = (t, e, n) => e in t ? v(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
3
+ var a = (t, e, n) => g(t, typeof e != "symbol" ? e + "" : e, n);
4
+ var A = /* @__PURE__ */ ((t) => (t.PRIVATE = "WALLET", t.VASP = "VASP", t))(A || {}), y = /* @__PURE__ */ ((t) => (t.NATURAL = "natural", t.LEGAL = "legal", t.SELF = "self", t))(y || {}), I = /* @__PURE__ */ ((t) => (t.EMPTY = "empty", t.VERIFY = "verify", t.PENDING = "pending", t.VERIFIED = "verified", t.BANNED = "banned", t))(I || {}), L = /* @__PURE__ */ ((t) => (t.ALLOWED = "allowed", t.PENDING = "pending", t))(L || {}), C = /* @__PURE__ */ ((t) => (t.ASSET = "asset", t.DESTINATION = "destination", t.COUNTERPARTY = "counterparty", t.AGENT = "agent", t))(C || {}), l = /* @__PURE__ */ ((t) => (t.COMPLETE = "complete", t.RESIZE = "resize", t.RESULT = "result", t.READY = "ready", t.INVALID = "invalid", t.ERROR = "error", t.CANCEL = "cancel", t))(l || {}), N = /* @__PURE__ */ ((t) => (t.SERVICE_UNAVAILABLE = "SERVICE_UNAVAILABLE", t.WALLET_CONNECTION_FAILED = "WALLET_CONNECTION_FAILED", t.WALLET_NOT_SUPPORTED = "WALLET_NOT_SUPPORTED", t.TOKEN_INVALID = "TOKEN_INVALID", t))(N || {}), E = /* @__PURE__ */ ((t) => (t.UPDATE = "update", t.REQUEST_RESPONSE = "requestResponse", t))(E || {}), b = /* @__PURE__ */ ((t) => (t.PENDING = "pending", t.FAILED = "rejected", t.FLAGGED = "flagged", t.VERIFIED = "verified", t))(b || {}), U = /* @__PURE__ */ ((t) => (t.SelfDeclaration = "self-declaration", t.SIWE = "siwe", t.SIWX = "siwx", t.EIP191 = "eip-191", t.EIP712 = "eip-712", t.EIP1271 = "eip-1271", t.BIP137 = "bip-137", t.BIP322 = "bip-322", t.BIP137_XPUB = "xpub", t.TIP191 = "tip-191", t.ED25519 = "ed25519", t.XRP_ED25519 = "xrp-ed25519", t.XLM_ED25519 = "xlm-ed25519", t.CIP8 = "cip-8", t.MicroTransfer = "microtransfer", t.Screenshot = "screenshot", t.Connect = "connect", t))(U || {});
5
+ class _ {
6
6
  constructor() {
7
7
  a(this, "listeners", /* @__PURE__ */ new Map());
8
8
  a(this, "port");
@@ -56,8 +56,8 @@ class U {
56
56
  handleMessage(e) {
57
57
  const n = e.data;
58
58
  if (typeof n == "object" && n !== null && "type" in n) {
59
- const r = n.type, i = this.listeners.get(r);
60
- i && i.forEach((s) => s(n));
59
+ const r = n.type, s = this.listeners.get(r);
60
+ s && s.forEach((i) => i(n));
61
61
  }
62
62
  }
63
63
  /**
@@ -68,7 +68,7 @@ class U {
68
68
  this.port && this.port.postMessage(e);
69
69
  }
70
70
  }
71
- class _ {
71
+ class x {
72
72
  /**
73
73
  * Creates an instance of EmbeddedComponent.
74
74
  * @param url - The URL of the embedded component
@@ -82,10 +82,10 @@ class _ {
82
82
  a(this, "iframe");
83
83
  a(this, "eventManager");
84
84
  a(this, "modal");
85
- this._url = e, this._value = n, this._options = r, this.eventManager = new U(), this.on(l.INVALID, (i) => {
86
- i.type === l.INVALID && (this._errors = i.errors, this._value = i.value);
87
- }), this.on(l.RESIZE, (i) => {
88
- i.type === l.RESIZE && this.iframe && (this.iframe.style.height = `${i.height}px`);
85
+ this._url = e, this._value = n, this._options = r, this.eventManager = new _(), this.on(l.INVALID, (s) => {
86
+ s.type === l.INVALID && (this._errors = s.errors, this._value = s.value);
87
+ }), this.on(l.RESIZE, (s) => {
88
+ s.type === l.RESIZE && this.iframe && (this.iframe.style.height = `${s.height}px`);
89
89
  });
90
90
  }
91
91
  /**
@@ -129,11 +129,11 @@ class _ {
129
129
  * @param parent - The parent element to embed the component into
130
130
  */
131
131
  embed(e, n = !1) {
132
- var r, i;
133
- this.removeEmbed(), this.iframe = document.createElement("iframe"), this.iframe.src = this.url + (n ? "" : "&embedded=true"), this.iframe.allow = "web-share; clipboard-write; hid; bluetooth;", this.iframe.style.width = "100%", this.iframe.style.height = "0px", this.iframe.style.border = "none", this.iframe.style.overflow = "hidden", this.iframe.scrolling = "no", e.appendChild(this.iframe), window.addEventListener("message", (s) => {
132
+ var r, s;
133
+ this.removeEmbed(), this.iframe = document.createElement("iframe"), this.iframe.src = this.url + (n ? "" : "&embedded=true"), this.iframe.allow = "web-share; clipboard-write; hid; bluetooth;", this.iframe.style.width = "100%", this.iframe.style.height = "0px", this.iframe.style.border = "none", this.iframe.style.overflow = "hidden", this.iframe.scrolling = "no", e.appendChild(this.iframe), window.addEventListener("message", (i) => {
134
134
  var o, c;
135
- s.source === ((o = this.iframe) == null ? void 0 : o.contentWindow) && ((c = this.eventManager) == null || c.setPort(s.ports[0]));
136
- }), (i = (r = this.iframe) == null ? void 0 : r.contentWindow) == null || i.focus();
135
+ i.source === ((o = this.iframe) == null ? void 0 : o.contentWindow) && ((c = this.eventManager) == null || c.setPort(i.ports[0]));
136
+ }), (s = (r = this.iframe) == null ? void 0 : r.contentWindow) == null || s.focus();
137
137
  }
138
138
  removeEmbed() {
139
139
  this.iframe && this.iframe.remove();
@@ -166,7 +166,7 @@ class _ {
166
166
  * @param value - The new transaction value
167
167
  */
168
168
  update(e, n) {
169
- this._value = e, n && (this._options = n), this.send({ type: u.UPDATE, value: e, options: this._options });
169
+ this._value = e, n && (this._options = n), this.send({ type: E.UPDATE, value: e, options: this._options });
170
170
  }
171
171
  /**
172
172
  * Waits for the component to complete and returns the transaction response
@@ -174,15 +174,15 @@ class _ {
174
174
  */
175
175
  completion() {
176
176
  return new Promise((e, n) => {
177
- let r, i, s;
177
+ let r, s, i;
178
178
  function o() {
179
- r && r(), i && i(), s && s();
179
+ r && r(), s && s(), i && i();
180
180
  }
181
181
  r = this.on(l.COMPLETE, (c) => {
182
182
  e(c.response), o();
183
- }), i = this.on(l.CANCEL, () => {
183
+ }), s = this.on(l.CANCEL, () => {
184
184
  n(new Error("User cancelled")), o();
185
- }), s = this.on("error", (c) => {
185
+ }), i = this.on("error", (c) => {
186
186
  n(new Error(c.message)), o();
187
187
  });
188
188
  });
@@ -223,9 +223,9 @@ class _ {
223
223
  "_blank",
224
224
  "popup=true,width=600,height=600"
225
225
  );
226
- window.addEventListener("message", (i) => {
227
- var s;
228
- i.source === e && (console.log("received message from popup", i.data), (s = this.eventManager) == null || s.setPort(i.ports[0]));
226
+ window.addEventListener("message", (s) => {
227
+ var i;
228
+ s.source === e && (console.log("received message from popup", s.data), (i = this.eventManager) == null || i.setPort(s.ports[0]));
229
229
  });
230
230
  const n = this.on(l.CANCEL, () => {
231
231
  e == null || e.close();
@@ -240,57 +240,57 @@ class _ {
240
240
  function R(t) {
241
241
  return Object.entries(t).map(([e, n]) => {
242
242
  if (n == null) return;
243
- const r = encodeURIComponent(e), i = encodeURIComponent(
243
+ const r = encodeURIComponent(e), s = encodeURIComponent(
244
244
  typeof n == "object" ? JSON.stringify(n) : String(n)
245
245
  // Use String() to handle all primitive types
246
246
  );
247
- return `${r}=${i}`;
247
+ return `${r}=${s}`;
248
248
  }).filter((e) => e !== void 0).join("&");
249
249
  }
250
250
  function O(t) {
251
251
  const e = t.slice(1);
252
252
  return e ? e.split("&").filter(Boolean).reduce(
253
- (r, i) => {
254
- const [s, o] = i.split("=");
255
- return s && (r[decodeURIComponent(s)] = o ? decodeURIComponent(o) : ""), r;
253
+ (r, s) => {
254
+ const [i, o] = s.split("=");
255
+ return i && (r[decodeURIComponent(i)] = o ? decodeURIComponent(o) : ""), r;
256
256
  },
257
257
  {}
258
258
  ) : {};
259
259
  }
260
- async function d(t) {
261
- const e = JSON.stringify(t), n = new TextEncoder(), r = crypto.getRandomValues(new Uint8Array(32)), i = await crypto.subtle.importKey(
260
+ async function p(t, e) {
261
+ const n = JSON.stringify(t), r = new TextEncoder(), s = e ? m(e) : crypto.getRandomValues(new Uint8Array(32)), i = await crypto.subtle.importKey(
262
262
  "raw",
263
- r,
263
+ s,
264
264
  { name: "AES-GCM" },
265
265
  !1,
266
266
  ["encrypt"]
267
- ), s = crypto.getRandomValues(new Uint8Array(12)), o = await crypto.subtle.encrypt(
268
- { name: "AES-GCM", iv: s },
267
+ ), o = crypto.getRandomValues(new Uint8Array(12)), c = await crypto.subtle.encrypt(
268
+ { name: "AES-GCM", iv: o },
269
269
  i,
270
- n.encode(e)
270
+ r.encode(n)
271
271
  );
272
272
  return {
273
- ciphertext: `${h(s)}-${h(o)}`,
274
- key: h(r)
273
+ ciphertext: `${u(o)}-${u(c)}`,
274
+ key: u(s)
275
275
  };
276
276
  }
277
- async function x({ ciphertext: t, key: e }) {
278
- const [n, r] = t.split("-"), i = new Uint8Array(
279
- atob(e).split("").map((f) => f.charCodeAt(0))
280
- ), s = m(n), o = m(r), c = await crypto.subtle.importKey(
277
+ async function f({ ciphertext: t, key: e }) {
278
+ const [n, r] = t.split("-"), s = new Uint8Array(
279
+ atob(e).split("").map((w) => w.charCodeAt(0))
280
+ ), i = m(n), o = m(r), c = await crypto.subtle.importKey(
281
281
  "raw",
282
- i,
282
+ s,
283
283
  { name: "AES-GCM" },
284
284
  !1,
285
285
  ["decrypt"]
286
- ), p = new TextDecoder(), E = await crypto.subtle.decrypt(
287
- { name: "AES-GCM", iv: new Uint8Array(s) },
286
+ ), h = new TextDecoder(), d = await crypto.subtle.decrypt(
287
+ { name: "AES-GCM", iv: new Uint8Array(i) },
288
288
  c,
289
289
  o
290
290
  );
291
- return JSON.parse(p.decode(E));
291
+ return JSON.parse(h.decode(d));
292
292
  }
293
- function h(t) {
293
+ function u(t) {
294
294
  const e = new Uint8Array(t);
295
295
  let n = "";
296
296
  for (let r = 0; r < e.length; r++)
@@ -303,7 +303,28 @@ function m(t) {
303
303
  n[r] = e.charCodeAt(r);
304
304
  return n;
305
305
  }
306
- class M {
306
+ async function M(t) {
307
+ const e = await fetch(t.url, {
308
+ method: "GET"
309
+ });
310
+ if (!e.ok)
311
+ throw new Error(`Failed to get connection: ${await e.text()}`);
312
+ const n = await e.json();
313
+ if (!n.sealed)
314
+ throw new Error("No data found");
315
+ const r = n.sealed[n.sealed.length - 1], s = await f({
316
+ ciphertext: r,
317
+ key: t.key
318
+ });
319
+ return {
320
+ id: n.id,
321
+ metadata: n.metadata,
322
+ status: n.status,
323
+ tx: s.tx,
324
+ result: s.result
325
+ };
326
+ }
327
+ class S {
307
328
  constructor(e) {
308
329
  a(this, "endpoint");
309
330
  this.endpoint = e;
@@ -315,22 +336,23 @@ class M {
315
336
  * @returns Promise resolving to connection details including ID, version, and encryption key
316
337
  */
317
338
  async create(e, n) {
318
- const r = await d(e), i = {
339
+ const r = await p(e), s = {
319
340
  metadata: n,
320
341
  sealed: r.ciphertext
321
- }, s = await fetch(this.endpoint, {
342
+ }, i = await fetch(this.endpoint, {
322
343
  method: "POST",
323
344
  headers: {
324
345
  "Content-Type": "application/json"
325
346
  },
326
- body: JSON.stringify(i)
347
+ body: JSON.stringify(s)
327
348
  });
328
- if (!s.ok)
329
- throw new Error(`Failed to create connection: ${await s.text()}`);
330
- const o = await s.json();
349
+ if (!i.ok)
350
+ throw new Error(`Failed to create connection: ${await i.text()}`);
351
+ const o = await i.json();
331
352
  return {
332
353
  id: o.id,
333
354
  version: o.version,
355
+ status: o.status,
334
356
  metadata: n,
335
357
  data: e,
336
358
  key: r.key
@@ -343,26 +365,28 @@ class M {
343
365
  * @param version Current version number
344
366
  * @returns Promise resolving to updated connection details including new encryption key
345
367
  */
346
- async update(e, n, r) {
347
- const i = await d(n), s = {
348
- sealed: i.ciphertext,
349
- version: r
350
- }, o = await fetch(`${this.endpoint}/${e}`, {
368
+ async update(e, n, r, s, i) {
369
+ const o = await p(n, i), c = {
370
+ sealed: o.ciphertext,
371
+ version: r,
372
+ status: s
373
+ }, h = await fetch(`${this.endpoint}/${e}`, {
351
374
  method: "PATCH",
352
375
  headers: {
353
376
  "Content-Type": "application/json"
354
377
  },
355
- body: JSON.stringify(s)
378
+ body: JSON.stringify(c)
356
379
  });
357
- if (!o.ok)
358
- throw new Error(`Failed to update connection: ${await o.text()}`);
359
- const c = await o.json();
380
+ if (!h.ok)
381
+ throw new Error(`Failed to update connection: ${await h.text()}`);
382
+ const d = await h.json();
360
383
  return {
361
- id: c.id,
362
- metadata: c.metadata,
363
- version: c.version,
384
+ id: d.id,
385
+ metadata: d.metadata,
386
+ version: d.version,
387
+ status: d.status,
364
388
  data: n,
365
- key: i.key
389
+ key: o.key
366
390
  };
367
391
  }
368
392
  /**
@@ -377,14 +401,15 @@ class M {
377
401
  });
378
402
  if (!r.ok)
379
403
  throw new Error(`Failed to get connection: ${await r.text()}`);
380
- const i = await r.json(), s = i.sealed[i.sealed.length - 1], o = await x({
381
- ciphertext: s,
404
+ const s = await r.json(), i = s.sealed[s.sealed.length - 1], o = await f({
405
+ ciphertext: i,
382
406
  key: n
383
407
  });
384
408
  return {
385
- id: i.id,
386
- version: i.version,
387
- metadata: i.metadata,
409
+ id: s.id,
410
+ status: s.status,
411
+ version: s.version,
412
+ metadata: s.metadata,
388
413
  data: o,
389
414
  key: n
390
415
  };
@@ -401,7 +426,7 @@ class M {
401
426
  throw new Error(`Failed to close connection: ${await n.text()}`);
402
427
  }
403
428
  }
404
- class S {
429
+ class k {
405
430
  /**
406
431
  * Creates a new instance of the Notabene SDK
407
432
  *
@@ -425,15 +450,15 @@ class S {
425
450
  * @returns component URL
426
451
  * @internal
427
452
  */
428
- componentUrl(e, n, r, i) {
429
- const s = new URL(this.uxUrl);
430
- s.pathname = e;
453
+ componentUrl(e, n, r, s) {
454
+ const i = new URL(this.uxUrl);
455
+ i.pathname = e;
431
456
  const o = R({
432
457
  authToken: this.authToken,
433
458
  value: n,
434
459
  configuration: r
435
460
  });
436
- return s.hash = o, this.nodeUrl && s.searchParams.set("nodeUrl", this.nodeUrl), this.theme && s.searchParams.set("theme", JSON.stringify(this.theme)), this.locale && s.searchParams.set("locale", this.locale), i && (i.callback && s.searchParams.set("callback_url", i.callback), i.redirectUri && s.searchParams.set("redirect_uri", i.redirectUri)), s.toString();
461
+ return i.hash = o, this.nodeUrl && i.searchParams.set("nodeUrl", this.nodeUrl), this.theme && i.searchParams.set("theme", JSON.stringify(this.theme)), this.locale && i.searchParams.set("locale", this.locale), s && (s.callback && i.searchParams.set("callback_url", s.callback), s.redirectUri && i.searchParams.set("redirect_uri", s.redirectUri)), i.toString();
437
462
  }
438
463
  /**
439
464
  * Creates a new embedded component
@@ -445,9 +470,9 @@ class S {
445
470
  * @returns A new EmbeddedComponent instance
446
471
  * @internal
447
472
  */
448
- createComponent(e, n, r, i) {
449
- return new _(
450
- this.componentUrl(e, n, r, i),
473
+ createComponent(e, n, r, s) {
474
+ return new x(
475
+ this.componentUrl(e, n, r, s),
451
476
  n,
452
477
  r
453
478
  );
@@ -523,16 +548,17 @@ class S {
523
548
  export {
524
549
  A as AgentType,
525
550
  l as CMType,
526
- M as ConnectionManager,
527
- _ as EmbeddedComponent,
528
- L as ErrorIdentifierCode,
529
- u as HMType,
530
- g as PersonType,
551
+ S as ConnectionManager,
552
+ x as EmbeddedComponent,
553
+ N as ErrorIdentifierCode,
554
+ E as HMType,
555
+ y as PersonType,
531
556
  b as ProofStatus,
532
- N as ProofTypes,
533
- y as Status,
534
- I as VASPSearchControl,
557
+ U as ProofTypes,
558
+ I as Status,
559
+ L as VASPSearchControl,
535
560
  C as ValidationSections,
536
561
  O as decodeFragmentToObject,
537
- S as default
562
+ k as default,
563
+ M as getRefreshResult
538
564
  };
@@ -10,7 +10,7 @@
10
10
  "author": "Notabene <developers@notabene.id>",
11
11
  "license": "MIT",
12
12
  "packageManager": "yarn@4.5.1",
13
- "version": "2.8.0",
13
+ "version": "2.9.0-next.2",
14
14
  "source": "src/notabene.ts",
15
15
  "main": "dist/cjs/notabene.cjs",
16
16
  "module": "dist/esm/notabene.js",