@notabene/javascript-sdk 2.10.0 → 2.11.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 (139) hide show
  1. package/dist/cjs/notabene.cjs +1 -1
  2. package/dist/cjs/notabene.d.ts +77 -2
  3. package/dist/cjs/package.json +1 -1
  4. package/dist/esm/notabene.d.ts +77 -2
  5. package/dist/esm/notabene.js +19 -19
  6. package/dist/esm/package.json +1 -1
  7. package/dist/notabene.d.ts +77 -2
  8. package/dist/notabene.js +19 -19
  9. package/docs/README.md +227 -51
  10. package/docs/_media/TransactionOptions.md +19 -9
  11. package/docs/_media/getRefreshResult.md +35 -0
  12. package/docs/ivms/types/enumerations/PayloadVersionCode.md +2 -2
  13. package/docs/ivms/types/interfaces/PayloadMetadata.md +2 -2
  14. package/docs/ivms/types/type-aliases/Address.md +1 -1
  15. package/docs/ivms/types/type-aliases/AddressTypeCode.md +1 -1
  16. package/docs/ivms/types/type-aliases/Beneficiary.md +1 -1
  17. package/docs/ivms/types/type-aliases/BeneficiaryVASP.md +1 -1
  18. package/docs/ivms/types/type-aliases/DateAndPlaceOfBirth.md +1 -1
  19. package/docs/ivms/types/type-aliases/ISOCountryCode.md +1 -1
  20. package/docs/ivms/types/type-aliases/ISODate.md +1 -1
  21. package/docs/ivms/types/type-aliases/IVMS101.md +1 -1
  22. package/docs/ivms/types/type-aliases/IntermediaryVASP.md +1 -1
  23. package/docs/ivms/types/type-aliases/LegalPerson.md +1 -1
  24. package/docs/ivms/types/type-aliases/LegalPersonName.md +1 -1
  25. package/docs/ivms/types/type-aliases/LegalPersonNameID.md +1 -1
  26. package/docs/ivms/types/type-aliases/LegalPersonNameTypeCode.md +1 -1
  27. package/docs/ivms/types/type-aliases/LocalLegalPersonNameID.md +1 -1
  28. package/docs/ivms/types/type-aliases/LocalNaturalPersonNameID.md +1 -1
  29. package/docs/ivms/types/type-aliases/NationalIdentification.md +1 -1
  30. package/docs/ivms/types/type-aliases/NationalIdentifierTypeCode.md +1 -1
  31. package/docs/ivms/types/type-aliases/NaturalPerson.md +1 -1
  32. package/docs/ivms/types/type-aliases/NaturalPersonName.md +1 -1
  33. package/docs/ivms/types/type-aliases/NaturalPersonNameID.md +1 -1
  34. package/docs/ivms/types/type-aliases/NaturalPersonNameTypeCode.md +1 -1
  35. package/docs/ivms/types/type-aliases/OriginatingVASP.md +1 -1
  36. package/docs/ivms/types/type-aliases/Originator.md +1 -1
  37. package/docs/ivms/types/type-aliases/Person.md +1 -1
  38. package/docs/ivms/types/type-aliases/TransferPath.md +1 -1
  39. package/docs/ivms/types/type-aliases/TransliterationMethodCode.md +1 -1
  40. package/docs/notabene/README.md +7 -1
  41. package/docs/notabene/classes/ConnectionManager.md +19 -5
  42. package/docs/notabene/classes/EmbeddedComponent.md +17 -17
  43. package/docs/notabene/classes/default.md +7 -7
  44. package/docs/notabene/functions/decodeFragmentToObject.md +1 -1
  45. package/docs/notabene/functions/getRefreshResult.md +11 -3
  46. package/docs/notabene/interfaces/ConnectionData.md +8 -8
  47. package/docs/notabene/interfaces/ConnectionMetadata.md +6 -6
  48. package/docs/notabene/interfaces/ConnectionResponse.md +12 -12
  49. package/docs/notabene/interfaces/NotabeneConfig.md +5 -5
  50. package/docs/notabene/type-aliases/ConnectionResult.md +17 -0
  51. package/docs/notabene/type-aliases/ConnectionStatus.md +1 -1
  52. package/docs/notabene/type-aliases/MessageCallback.md +1 -1
  53. package/docs/notabene/type-aliases/TransactionType.md +1 -1
  54. package/docs/types/README.md +3 -0
  55. package/docs/types/enumerations/AgentType.md +2 -2
  56. package/docs/types/enumerations/CMType.md +27 -7
  57. package/docs/types/enumerations/ErrorIdentifierCode.md +4 -4
  58. package/docs/types/enumerations/HMType.md +2 -2
  59. package/docs/types/enumerations/PersonType.md +3 -3
  60. package/docs/types/enumerations/ProofStatus.md +4 -4
  61. package/docs/types/enumerations/ProofTypes.md +39 -17
  62. package/docs/types/enumerations/Status.md +5 -5
  63. package/docs/types/enumerations/VASPSearchControl.md +2 -2
  64. package/docs/types/enumerations/ValidationSections.md +4 -4
  65. package/docs/types/interfaces/Account.md +59 -0
  66. package/docs/types/interfaces/Agent.md +6 -6
  67. package/docs/types/interfaces/CallbackOptions.md +2 -2
  68. package/docs/types/interfaces/ComponentRequest.md +2 -2
  69. package/docs/types/interfaces/ComponentResponse.md +4 -4
  70. package/docs/types/interfaces/ConnectionRecord.md +7 -7
  71. package/docs/types/interfaces/ConnectionRequest.md +3 -3
  72. package/docs/types/interfaces/Counterparty.md +10 -10
  73. package/docs/types/interfaces/DeclarationProof.md +6 -6
  74. package/docs/types/interfaces/Deposit.md +25 -11
  75. package/docs/types/interfaces/DepositRequest.md +9 -9
  76. package/docs/types/interfaces/DepositRequestOptions.md +1 -1
  77. package/docs/types/interfaces/DepositTransaction.md +23 -9
  78. package/docs/types/interfaces/LegalPerson.md +13 -13
  79. package/docs/types/interfaces/MicroTransferProof.md +9 -9
  80. package/docs/types/interfaces/NaturalPerson.md +13 -13
  81. package/docs/types/interfaces/OwnershipProof.md +4 -4
  82. package/docs/types/interfaces/RefreshSource.md +2 -2
  83. package/docs/types/interfaces/Refreshable.md +1 -1
  84. package/docs/types/interfaces/ScreenshotProof.md +5 -5
  85. package/docs/types/interfaces/SignatureProof.md +14 -12
  86. package/docs/types/interfaces/ThresholdOptions.md +3 -3
  87. package/docs/types/interfaces/Transaction.md +18 -8
  88. package/docs/types/interfaces/TransactionOptions.md +19 -9
  89. package/docs/types/interfaces/TransactionResponse.md +9 -9
  90. package/docs/types/interfaces/VASP.md +19 -9
  91. package/docs/types/interfaces/Wallet.md +8 -8
  92. package/docs/types/interfaces/Withdrawal.md +24 -10
  93. package/docs/types/type-aliases/BlockchainAddress.md +1 -1
  94. package/docs/types/type-aliases/CAIP10.md +1 -1
  95. package/docs/types/type-aliases/CAIP19.md +1 -1
  96. package/docs/types/type-aliases/CAIP2.md +1 -1
  97. package/docs/types/type-aliases/CAIP220.md +1 -1
  98. package/docs/types/type-aliases/Cancel.md +1 -1
  99. package/docs/types/type-aliases/Completed.md +1 -1
  100. package/docs/types/type-aliases/ComponentMessage.md +5 -2
  101. package/docs/types/type-aliases/ConnectionOptions.md +1 -1
  102. package/docs/types/type-aliases/CounterpartyAssistConfig.md +2 -2
  103. package/docs/types/type-aliases/CryptoCredential.md +1 -1
  104. package/docs/types/type-aliases/DID.md +1 -1
  105. package/docs/types/type-aliases/DTI.md +1 -1
  106. package/docs/types/type-aliases/Destination.md +1 -1
  107. package/docs/types/type-aliases/Error.md +1 -1
  108. package/docs/types/type-aliases/FieldOptions.md +2 -2
  109. package/docs/types/type-aliases/FieldTypes.md +1 -1
  110. package/docs/types/type-aliases/HostMessage.md +1 -1
  111. package/docs/types/type-aliases/ISOCurrency.md +1 -1
  112. package/docs/types/type-aliases/Info.md +37 -0
  113. package/docs/types/type-aliases/InvalidValue.md +1 -1
  114. package/docs/types/type-aliases/LEI.md +1 -1
  115. package/docs/types/type-aliases/LegalPersonFieldName.md +1 -1
  116. package/docs/types/type-aliases/LegalPersonFields.md +1 -1
  117. package/docs/types/type-aliases/NationalIdentifierTypeFieldOptions.md +1 -1
  118. package/docs/types/type-aliases/NaturalPersonFieldName.md +1 -1
  119. package/docs/types/type-aliases/NaturalPersonFields.md +1 -1
  120. package/docs/types/type-aliases/NotabeneAsset.md +1 -1
  121. package/docs/types/type-aliases/Ready.md +1 -1
  122. package/docs/types/type-aliases/ResizeRequest.md +1 -1
  123. package/docs/types/type-aliases/Source.md +1 -1
  124. package/docs/types/type-aliases/Theme.md +1 -1
  125. package/docs/types/type-aliases/TransactionAsset.md +1 -1
  126. package/docs/types/type-aliases/TravelAddress.md +1 -1
  127. package/docs/types/type-aliases/URI.md +1 -1
  128. package/docs/types/type-aliases/UUID.md +1 -1
  129. package/docs/types/type-aliases/UpdateValue.md +1 -1
  130. package/docs/types/type-aliases/V1Asset.md +1 -1
  131. package/docs/types/type-aliases/V1Transaction.md +1 -1
  132. package/docs/types/type-aliases/VASPOptions.md +1 -1
  133. package/docs/types/type-aliases/ValidationError.md +1 -1
  134. package/docs/types/type-aliases/Warning.md +37 -0
  135. package/package.json +1 -1
  136. package/src/notabene.ts +6 -0
  137. package/src/types.ts +81 -4
  138. package/src/utils/connections.ts +1 -0
  139. package/docs/notabene/interfaces/ConnectionResult.md +0 -61
@@ -1 +1 @@
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||{}),A=(t=>(t.ASSET="asset",t.DESTINATION="destination",t.COUNTERPARTY="counterparty",t.AGENT="agent",t))(A||{}),l=(t=>(t.COMPLETE="complete",t.RESIZE="resize",t.RESULT="result",t.READY="ready",t.INVALID="invalid",t.ERROR="error",t.CANCEL="cancel",t.WARNING="warning",t.INFO="info",t))(l||{}),y=(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))(y||{}),p=(t=>(t.UPDATE="update",t.REQUEST_RESPONSE="requestResponse",t))(p||{}),b=(t=>(t.PENDING="pending",t.FAILED="rejected",t.FLAGGED="flagged",t.VERIFIED="verified",t))(b||{}),I=(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))(I||{});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(i=>i(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 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",i=>{var o,c;i.source===((o=this.iframe)==null?void 0:o.contentWindow)&&((c=this.eventManager)==null||c.setPort(i.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,i;function o(){r&&r(),s&&s(),i&&i()}r=this.on(l.COMPLETE,c=>{e(c.response),o()}),s=this.on(l.CANCEL,()=>{n(new Error("User cancelled")),o()}),i=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",s=>{var i;s.source===e&&(console.log("received message from popup",s.data),(i=this.eventManager)==null||i.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 D(t){const e=t.slice(1);return e?e.split("&").filter(Boolean).reduce((r,s)=>{const[i,o]=s.split("=");return i&&(r[decodeURIComponent(i)]=o?decodeURIComponent(o):""),r},{}):{}}async function E(t,e){const n=JSON.stringify(t),r=new TextEncoder,s=e?m(e):crypto.getRandomValues(new Uint8Array(32)),i=await crypto.subtle.importKey("raw",s,{name:"AES-GCM"},!1,["encrypt"]),o=crypto.getRandomValues(new Uint8Array(12)),c=await crypto.subtle.encrypt({name:"AES-GCM",iv:o},i,r.encode(n));return{ciphertext:`${u(o)}-${u(c)}`,key:u(s)}}async function N({ciphertext:t,key:e}){const[n,r]=t.split("-"),s=new Uint8Array(atob(e).split("").map(L=>L.charCodeAt(0))),i=m(n),o=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(i)},c,o);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 O(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.id||!n.metadata||!n.status||!n.sealed)throw new Error("Data missing from server response");const r={id:n.id,metadata:n.metadata,status:n.status};if(n.status==="closed")return r;const s=n.sealed[n.sealed.length-1],i=await N({ciphertext:s,key:t.key});return n.status==="completed"?{...r,result:i.result}:{...r,tx:i.tx}}class S{constructor(e){a(this,"endpoint");this.endpoint=e}async create(e,n){const r=await E(e),s={metadata:n,sealed:r.ciphertext},i=await fetch(this.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});if(!i.ok)throw new Error(`Failed to create connection: ${await i.text()}`);const o=await i.json();return{id:o.id,version:o.version,status:o.status,metadata:n,data:e,key:r.key}}async update(e,n,r,s,i){const o=await E(n,i),c={sealed:o.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:o.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(),i=s.sealed[s.sealed.length-1],o=await N({ciphertext:i,key:n});return{id:s.id,status:s.status,version:s.version,metadata:s.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 M{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 i=new URL(this.uxUrl);i.pathname=e;const o=x({authToken:this.authToken,value:n,configuration:r});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()}createComponent(e,n,r,s){return new C(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=S;exports.EmbeddedComponent=C;exports.ErrorIdentifierCode=y;exports.HMType=p;exports.PersonType=w;exports.ProofStatus=b;exports.ProofTypes=I;exports.Status=g;exports.VASPSearchControl=v;exports.ValidationSections=A;exports.decodeFragmentToObject=D;exports.default=M;exports.getRefreshResult=O;
1
+ "use strict";var U=Object.defineProperty;var O=(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)=>O(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||{}),A=(t=>(t.ASSET="asset",t.DESTINATION="destination",t.COUNTERPARTY="counterparty",t.AGENT="agent",t))(A||{}),l=(t=>(t.COMPLETE="complete",t.RESIZE="resize",t.RESULT="result",t.READY="ready",t.INVALID="invalid",t.ERROR="error",t.CANCEL="cancel",t.WARNING="warning",t.INFO="info",t))(l||{}),y=(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))(y||{}),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||{}),I=(t=>(t.SelfDeclaration="self-declaration",t.SIWE="siwe",t.SIWX="siwx",t.SOL_SIWX="sol-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.COSMOS="cosmos-ecdsa",t.MicroTransfer="microtransfer",t.Screenshot="screenshot",t.Connect="connect",t.CONCORDIUM="concordium",t))(I||{});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,s=this.listeners.get(r);s&&s.forEach(i=>i(n))}}send(e){this.port&&this.port.postMessage(e)}}class b{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,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",i=>{var o,c;i.source===((o=this.iframe)==null?void 0:o.contentWindow)&&((c=this.eventManager)==null||c.setPort(i.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,i;function o(){r&&r(),s&&s(),i&&i()}r=this.on(l.COMPLETE,c=>{e(c.response),o()}),s=this.on(l.CANCEL,()=>{n(new Error("User cancelled")),o()}),i=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",s=>{var i;s.source===e&&(console.log("received message from popup",s.data),(i=this.eventManager)==null||i.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 R(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[i,o]=s.split("=");return i&&(r[decodeURIComponent(i)]=o?decodeURIComponent(o):""),r},{}):{}}async function E(t,e){const n=JSON.stringify(t),r=new TextEncoder,s=e?m(e):crypto.getRandomValues(new Uint8Array(32)),i=await crypto.subtle.importKey("raw",s,{name:"AES-GCM"},!1,["encrypt"]),o=crypto.getRandomValues(new Uint8Array(12)),c=await crypto.subtle.encrypt({name:"AES-GCM",iv:o},i,r.encode(n));return{ciphertext:`${u(o)}-${u(c)}`,key:u(s)}}async function N({ciphertext:t,key:e}){const[n,r]=t.split("-"),s=new Uint8Array(atob(e).split("").map(L=>L.charCodeAt(0))),i=m(n),o=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(i)},c,o);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 x(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.id||!n.metadata||!n.status||!n.sealed)throw new Error("Data missing from server response");const r={id:n.id,metadata:n.metadata,status:n.status};if(n.status==="closed")return r;const s=n.sealed[n.sealed.length-1],i=await N({ciphertext:s,key:t.key});return n.status==="completed"?{...r,result:i.result}:{...r,tx:i.tx}}class D{constructor(e){a(this,"endpoint");this.endpoint=e}async create(e,n){const r=await E(e),s={metadata:n,sealed:r.ciphertext},i=await fetch(this.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});if(!i.ok)throw new Error(`Failed to create connection: ${await i.text()}`);const o=await i.json();return{id:o.id,version:o.version,status:o.status,metadata:n,data:e,key:r.key}}async update(e,n,r,s,i){const o=await E(n,i),c={sealed:o.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:o.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(),i=s.sealed[s.sealed.length-1],o=await N({ciphertext:i,key:n});return{id:s.id,status:s.status,version:s.version,metadata:s.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 M{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 i=new URL(this.uxUrl);i.pathname=e;const o=R({authToken:this.authToken,value:n,configuration:r});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()}createComponent(e,n,r,s){return new b(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=D;exports.EmbeddedComponent=b;exports.ErrorIdentifierCode=y;exports.HMType=p;exports.PersonType=w;exports.ProofStatus=C;exports.ProofTypes=I;exports.Status=g;exports.VASPSearchControl=v;exports.ValidationSections=A;exports.decodeFragmentToObject=S;exports.default=M;exports.getRefreshResult=x;
@@ -359,6 +359,7 @@ export declare interface ConnectionMetadata {
359
359
  readonly nodeUrl?: string;
360
360
  readonly participants: readonly string[];
361
361
  readonly transactionType: TransactionType;
362
+ readonly locale?: string;
362
363
  }
363
364
 
364
365
  /**
@@ -402,6 +403,19 @@ export declare type ConnectionResult<T extends ComponentRequest> = {
402
403
 
403
404
  export declare type ConnectionStatus = 'active' | 'completed' | 'closed';
404
405
 
406
+ /**
407
+ * Metadata for Cosmos ownership proofs
408
+ * @remarks
409
+ * - Includes the public key
410
+ * @public
411
+ */
412
+ export declare interface CosmosMetadata {
413
+ pub_key: {
414
+ type: string;
415
+ value: string;
416
+ };
417
+ }
418
+
405
419
  /**
406
420
  * The counterparty of a transaction.
407
421
  * @public
@@ -1376,6 +1390,8 @@ export declare enum ProofStatus {
1376
1390
  * - SelfDeclaration: User self-declares ownership without cryptographic proof
1377
1391
  * - EIP191: Ethereum personal signature following EIP-191 standard
1378
1392
  * - SIWE: Sign-In with Ethereum message signature (EIP-4361)
1393
+ * - SIWX: Sign-In with X message signature
1394
+ * - SOL_SIWX: Sign-In with Solana message signature (SIWE for Solana)
1379
1395
  * - EIP712: Ethereum typed data signature following EIP-712 standard
1380
1396
  * - BIP137: Bitcoin message signature following BIP-137
1381
1397
  * - BIP322: Bitcoin message signature following BIP-322
@@ -1398,6 +1414,7 @@ export declare enum ProofTypes {
1398
1414
  SelfDeclaration = "self-declaration",
1399
1415
  SIWE = "siwe",
1400
1416
  SIWX = "siwx",
1417
+ SOL_SIWX = "sol-siwx",
1401
1418
  EIP191 = "eip-191",
1402
1419
  EIP712 = "eip-712",
1403
1420
  EIP1271 = "eip-1271",
@@ -1409,9 +1426,11 @@ export declare enum ProofTypes {
1409
1426
  XRP_ED25519 = "xrp-ed25519",
1410
1427
  XLM_ED25519 = "xlm-ed25519",
1411
1428
  CIP8 = "cip-8",
1429
+ COSMOS = "cosmos-ecdsa",
1412
1430
  MicroTransfer = "microtransfer",
1413
1431
  Screenshot = "screenshot",
1414
- Connect = "connect"
1432
+ Connect = "connect",
1433
+ CONCORDIUM = "concordium"
1415
1434
  }
1416
1435
 
1417
1436
  /**
@@ -1469,14 +1488,70 @@ export declare interface ScreenshotProof extends OwnershipProof {
1469
1488
  * @public
1470
1489
  */
1471
1490
  export declare interface SignatureProof extends OwnershipProof {
1472
- 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;
1491
+ type: ProofTypes.EIP191 | ProofTypes.EIP712 | ProofTypes.EIP1271 | ProofTypes.BIP137 | ProofTypes.BIP322 | ProofTypes.BIP137_XPUB | ProofTypes.ED25519 | ProofTypes.TIP191 | ProofTypes.SIWX | ProofTypes.SOL_SIWX | ProofTypes.SIWE | ProofTypes.CIP8 | ProofTypes.XRP_ED25519 | ProofTypes.CONCORDIUM | ProofTypes.XLM_ED25519 | ProofTypes.COSMOS;
1473
1492
  proof: string;
1474
1493
  attestation: string;
1475
1494
  wallet_provider: string;
1476
1495
  xpub?: string;
1477
1496
  chainSpecificData?: {
1478
1497
  cardanoCoseKey?: string;
1498
+ } | SolanaMetadata | CosmosMetadata;
1499
+ }
1500
+
1501
+ /**
1502
+ * Input for SIWX message signing
1503
+ * Every SIWX message must include the following fields:
1504
+ * - domain
1505
+ * - address
1506
+ * - statement
1507
+ * - uri
1508
+ * - version
1509
+ * - chainId
1510
+ *
1511
+ * Optional fields:
1512
+ * - nonce
1513
+ * - issuedAt
1514
+ * - expirationTime
1515
+ * - notBefore
1516
+ * - requestId
1517
+ * - resources
1518
+ *
1519
+ * @public
1520
+ */
1521
+ export declare interface SIWXInput {
1522
+ domain: string;
1523
+ address: string;
1524
+ statement?: string;
1525
+ uri?: string;
1526
+ version?: string;
1527
+ chainId?: string;
1528
+ nonce?: string;
1529
+ issuedAt?: string;
1530
+ expirationTime?: string;
1531
+ notBefore?: string;
1532
+ requestId?: string;
1533
+ resources?: readonly string[];
1534
+ }
1535
+
1536
+ /**
1537
+ * Metadata for Solana SIWX ownership proofs
1538
+ * @remarks
1539
+ * - Includes the account public key and address
1540
+ * - Includes the signed message
1541
+ * - Includes the signature
1542
+ * - Includes the message
1543
+ *
1544
+ * @see {@link SignatureProof} For signature-based proofs
1545
+ * @public
1546
+ */
1547
+ export declare interface SolanaMetadata {
1548
+ account: {
1549
+ address: string;
1550
+ publicKey: Uint8Array;
1479
1551
  };
1552
+ signedMessage: Uint8Array;
1553
+ signature: Uint8Array;
1554
+ message: SIWXInput;
1480
1555
  }
1481
1556
 
1482
1557
  /**
@@ -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.10.0",
13
+ "version": "2.11.0-next.2",
14
14
  "source": "src/notabene.ts",
15
15
  "main": "dist/cjs/notabene.cjs",
16
16
  "module": "dist/esm/notabene.js",
@@ -359,6 +359,7 @@ export declare interface ConnectionMetadata {
359
359
  readonly nodeUrl?: string;
360
360
  readonly participants: readonly string[];
361
361
  readonly transactionType: TransactionType;
362
+ readonly locale?: string;
362
363
  }
363
364
 
364
365
  /**
@@ -402,6 +403,19 @@ export declare type ConnectionResult<T extends ComponentRequest> = {
402
403
 
403
404
  export declare type ConnectionStatus = 'active' | 'completed' | 'closed';
404
405
 
406
+ /**
407
+ * Metadata for Cosmos ownership proofs
408
+ * @remarks
409
+ * - Includes the public key
410
+ * @public
411
+ */
412
+ export declare interface CosmosMetadata {
413
+ pub_key: {
414
+ type: string;
415
+ value: string;
416
+ };
417
+ }
418
+
405
419
  /**
406
420
  * The counterparty of a transaction.
407
421
  * @public
@@ -1376,6 +1390,8 @@ export declare enum ProofStatus {
1376
1390
  * - SelfDeclaration: User self-declares ownership without cryptographic proof
1377
1391
  * - EIP191: Ethereum personal signature following EIP-191 standard
1378
1392
  * - SIWE: Sign-In with Ethereum message signature (EIP-4361)
1393
+ * - SIWX: Sign-In with X message signature
1394
+ * - SOL_SIWX: Sign-In with Solana message signature (SIWE for Solana)
1379
1395
  * - EIP712: Ethereum typed data signature following EIP-712 standard
1380
1396
  * - BIP137: Bitcoin message signature following BIP-137
1381
1397
  * - BIP322: Bitcoin message signature following BIP-322
@@ -1398,6 +1414,7 @@ export declare enum ProofTypes {
1398
1414
  SelfDeclaration = "self-declaration",
1399
1415
  SIWE = "siwe",
1400
1416
  SIWX = "siwx",
1417
+ SOL_SIWX = "sol-siwx",
1401
1418
  EIP191 = "eip-191",
1402
1419
  EIP712 = "eip-712",
1403
1420
  EIP1271 = "eip-1271",
@@ -1409,9 +1426,11 @@ export declare enum ProofTypes {
1409
1426
  XRP_ED25519 = "xrp-ed25519",
1410
1427
  XLM_ED25519 = "xlm-ed25519",
1411
1428
  CIP8 = "cip-8",
1429
+ COSMOS = "cosmos-ecdsa",
1412
1430
  MicroTransfer = "microtransfer",
1413
1431
  Screenshot = "screenshot",
1414
- Connect = "connect"
1432
+ Connect = "connect",
1433
+ CONCORDIUM = "concordium"
1415
1434
  }
1416
1435
 
1417
1436
  /**
@@ -1469,14 +1488,70 @@ export declare interface ScreenshotProof extends OwnershipProof {
1469
1488
  * @public
1470
1489
  */
1471
1490
  export declare interface SignatureProof extends OwnershipProof {
1472
- 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;
1491
+ type: ProofTypes.EIP191 | ProofTypes.EIP712 | ProofTypes.EIP1271 | ProofTypes.BIP137 | ProofTypes.BIP322 | ProofTypes.BIP137_XPUB | ProofTypes.ED25519 | ProofTypes.TIP191 | ProofTypes.SIWX | ProofTypes.SOL_SIWX | ProofTypes.SIWE | ProofTypes.CIP8 | ProofTypes.XRP_ED25519 | ProofTypes.CONCORDIUM | ProofTypes.XLM_ED25519 | ProofTypes.COSMOS;
1473
1492
  proof: string;
1474
1493
  attestation: string;
1475
1494
  wallet_provider: string;
1476
1495
  xpub?: string;
1477
1496
  chainSpecificData?: {
1478
1497
  cardanoCoseKey?: string;
1498
+ } | SolanaMetadata | CosmosMetadata;
1499
+ }
1500
+
1501
+ /**
1502
+ * Input for SIWX message signing
1503
+ * Every SIWX message must include the following fields:
1504
+ * - domain
1505
+ * - address
1506
+ * - statement
1507
+ * - uri
1508
+ * - version
1509
+ * - chainId
1510
+ *
1511
+ * Optional fields:
1512
+ * - nonce
1513
+ * - issuedAt
1514
+ * - expirationTime
1515
+ * - notBefore
1516
+ * - requestId
1517
+ * - resources
1518
+ *
1519
+ * @public
1520
+ */
1521
+ export declare interface SIWXInput {
1522
+ domain: string;
1523
+ address: string;
1524
+ statement?: string;
1525
+ uri?: string;
1526
+ version?: string;
1527
+ chainId?: string;
1528
+ nonce?: string;
1529
+ issuedAt?: string;
1530
+ expirationTime?: string;
1531
+ notBefore?: string;
1532
+ requestId?: string;
1533
+ resources?: readonly string[];
1534
+ }
1535
+
1536
+ /**
1537
+ * Metadata for Solana SIWX ownership proofs
1538
+ * @remarks
1539
+ * - Includes the account public key and address
1540
+ * - Includes the signed message
1541
+ * - Includes the signature
1542
+ * - Includes the message
1543
+ *
1544
+ * @see {@link SignatureProof} For signature-based proofs
1545
+ * @public
1546
+ */
1547
+ export declare interface SolanaMetadata {
1548
+ account: {
1549
+ address: string;
1550
+ publicKey: Uint8Array;
1479
1551
  };
1552
+ signedMessage: Uint8Array;
1553
+ signature: Uint8Array;
1554
+ message: SIWXInput;
1480
1555
  }
1481
1556
 
1482
1557
  /**
@@ -1,8 +1,8 @@
1
1
  var v = Object.defineProperty;
2
2
  var g = (t, e, n) => e in t ? v(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
3
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 || {}), N = /* @__PURE__ */ ((t) => (t.ALLOWED = "allowed", t.PENDING = "pending", t))(N || {}), L = /* @__PURE__ */ ((t) => (t.ASSET = "asset", t.DESTINATION = "destination", t.COUNTERPARTY = "counterparty", t.AGENT = "agent", t))(L || {}), 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.WARNING = "warning", t.INFO = "info", t))(l || {}), b = /* @__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))(b || {}), E = /* @__PURE__ */ ((t) => (t.UPDATE = "update", t.REQUEST_RESPONSE = "requestResponse", t))(E || {}), C = /* @__PURE__ */ ((t) => (t.PENDING = "pending", t.FAILED = "rejected", t.FLAGGED = "flagged", t.VERIFIED = "verified", t))(C || {}), 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 _ {
4
+ var A = /* @__PURE__ */ ((t) => (t.PRIVATE = "WALLET", t.VASP = "VASP", t))(A || {}), I = /* @__PURE__ */ ((t) => (t.NATURAL = "natural", t.LEGAL = "legal", t.SELF = "self", t))(I || {}), y = /* @__PURE__ */ ((t) => (t.EMPTY = "empty", t.VERIFY = "verify", t.PENDING = "pending", t.VERIFIED = "verified", t.BANNED = "banned", t))(y || {}), N = /* @__PURE__ */ ((t) => (t.ALLOWED = "allowed", t.PENDING = "pending", t))(N || {}), L = /* @__PURE__ */ ((t) => (t.ASSET = "asset", t.DESTINATION = "destination", t.COUNTERPARTY = "counterparty", t.AGENT = "agent", t))(L || {}), 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.WARNING = "warning", t.INFO = "info", t))(l || {}), C = /* @__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))(C || {}), p = /* @__PURE__ */ ((t) => (t.UPDATE = "update", t.REQUEST_RESPONSE = "requestResponse", t))(p || {}), 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.SOL_SIWX = "sol-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.COSMOS = "cosmos-ecdsa", t.MicroTransfer = "microtransfer", t.Screenshot = "screenshot", t.Connect = "connect", t.CONCORDIUM = "concordium", t))(U || {});
5
+ class O {
6
6
  constructor() {
7
7
  a(this, "listeners", /* @__PURE__ */ new Map());
8
8
  a(this, "port");
@@ -68,7 +68,7 @@ class _ {
68
68
  this.port && this.port.postMessage(e);
69
69
  }
70
70
  }
71
- class x {
71
+ class _ {
72
72
  /**
73
73
  * Creates an instance of EmbeddedComponent.
74
74
  * @param url - The URL of the embedded component
@@ -82,7 +82,7 @@ class x {
82
82
  a(this, "iframe");
83
83
  a(this, "eventManager");
84
84
  a(this, "modal");
85
- this._url = e, this._value = n, this._options = s, this.eventManager = new _(), this.on(l.INVALID, (r) => {
85
+ this._url = e, this._value = n, this._options = s, this.eventManager = new O(), this.on(l.INVALID, (r) => {
86
86
  r.type === l.INVALID && (this._errors = r.errors, this._value = r.value);
87
87
  }), this.on(l.RESIZE, (r) => {
88
88
  r.type === l.RESIZE && this.iframe && (this.iframe.style.height = `${r.height}px`);
@@ -166,7 +166,7 @@ class x {
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: E.UPDATE, value: e, options: this._options });
169
+ this._value = e, n && (this._options = n), this.send({ type: p.UPDATE, value: e, options: this._options });
170
170
  }
171
171
  /**
172
172
  * Waits for the component to complete and returns the transaction response
@@ -237,7 +237,7 @@ class x {
237
237
  });
238
238
  }
239
239
  }
240
- function R(t) {
240
+ function x(t) {
241
241
  return Object.entries(t).map(([e, n]) => {
242
242
  if (n == null) return;
243
243
  const s = encodeURIComponent(e), r = encodeURIComponent(
@@ -247,7 +247,7 @@ function R(t) {
247
247
  return `${s}=${r}`;
248
248
  }).filter((e) => e !== void 0).join("&");
249
249
  }
250
- function O(t) {
250
+ function D(t) {
251
251
  const e = t.slice(1);
252
252
  return e ? e.split("&").filter(Boolean).reduce(
253
253
  (s, r) => {
@@ -257,7 +257,7 @@ function O(t) {
257
257
  {}
258
258
  ) : {};
259
259
  }
260
- async function p(t, e) {
260
+ async function E(t, e) {
261
261
  const n = JSON.stringify(t), s = new TextEncoder(), r = e ? m(e) : crypto.getRandomValues(new Uint8Array(32)), i = await crypto.subtle.importKey(
262
262
  "raw",
263
263
  r,
@@ -344,7 +344,7 @@ class M {
344
344
  * @returns Promise resolving to connection details including ID, version, and encryption key
345
345
  */
346
346
  async create(e, n) {
347
- const s = await p(e), r = {
347
+ const s = await E(e), r = {
348
348
  metadata: n,
349
349
  sealed: s.ciphertext
350
350
  }, i = await fetch(this.endpoint, {
@@ -377,7 +377,7 @@ class M {
377
377
  * @returns Promise resolving to updated connection details including new encryption key
378
378
  */
379
379
  async update(e, n, s, r, i) {
380
- const o = await p(n, i), c = {
380
+ const o = await E(n, i), c = {
381
381
  sealed: o.ciphertext,
382
382
  version: s,
383
383
  status: r
@@ -466,7 +466,7 @@ class k {
466
466
  componentUrl(e, n, s, r) {
467
467
  const i = new URL(this.uxUrl);
468
468
  i.pathname = e;
469
- const o = R({
469
+ const o = x({
470
470
  authToken: this.authToken,
471
471
  value: n,
472
472
  configuration: s
@@ -484,7 +484,7 @@ class k {
484
484
  * @internal
485
485
  */
486
486
  createComponent(e, n, s, r) {
487
- return new x(
487
+ return new _(
488
488
  this.componentUrl(e, n, s, r),
489
489
  n,
490
490
  s
@@ -562,16 +562,16 @@ export {
562
562
  A as AgentType,
563
563
  l as CMType,
564
564
  M as ConnectionManager,
565
- x as EmbeddedComponent,
566
- b as ErrorIdentifierCode,
567
- E as HMType,
568
- y as PersonType,
569
- C as ProofStatus,
565
+ _ as EmbeddedComponent,
566
+ C as ErrorIdentifierCode,
567
+ p as HMType,
568
+ I as PersonType,
569
+ b as ProofStatus,
570
570
  U as ProofTypes,
571
- I as Status,
571
+ y as Status,
572
572
  N as VASPSearchControl,
573
573
  L as ValidationSections,
574
- O as decodeFragmentToObject,
574
+ D as decodeFragmentToObject,
575
575
  k as default,
576
576
  S as getRefreshResult
577
577
  };
@@ -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.10.0",
13
+ "version": "2.11.0-next.2",
14
14
  "source": "src/notabene.ts",
15
15
  "main": "dist/cjs/notabene.cjs",
16
16
  "module": "dist/esm/notabene.js",
@@ -359,6 +359,7 @@ export declare interface ConnectionMetadata {
359
359
  readonly nodeUrl?: string;
360
360
  readonly participants: readonly string[];
361
361
  readonly transactionType: TransactionType;
362
+ readonly locale?: string;
362
363
  }
363
364
 
364
365
  /**
@@ -402,6 +403,19 @@ export declare type ConnectionResult<T extends ComponentRequest> = {
402
403
 
403
404
  export declare type ConnectionStatus = 'active' | 'completed' | 'closed';
404
405
 
406
+ /**
407
+ * Metadata for Cosmos ownership proofs
408
+ * @remarks
409
+ * - Includes the public key
410
+ * @public
411
+ */
412
+ export declare interface CosmosMetadata {
413
+ pub_key: {
414
+ type: string;
415
+ value: string;
416
+ };
417
+ }
418
+
405
419
  /**
406
420
  * The counterparty of a transaction.
407
421
  * @public
@@ -1376,6 +1390,8 @@ export declare enum ProofStatus {
1376
1390
  * - SelfDeclaration: User self-declares ownership without cryptographic proof
1377
1391
  * - EIP191: Ethereum personal signature following EIP-191 standard
1378
1392
  * - SIWE: Sign-In with Ethereum message signature (EIP-4361)
1393
+ * - SIWX: Sign-In with X message signature
1394
+ * - SOL_SIWX: Sign-In with Solana message signature (SIWE for Solana)
1379
1395
  * - EIP712: Ethereum typed data signature following EIP-712 standard
1380
1396
  * - BIP137: Bitcoin message signature following BIP-137
1381
1397
  * - BIP322: Bitcoin message signature following BIP-322
@@ -1398,6 +1414,7 @@ export declare enum ProofTypes {
1398
1414
  SelfDeclaration = "self-declaration",
1399
1415
  SIWE = "siwe",
1400
1416
  SIWX = "siwx",
1417
+ SOL_SIWX = "sol-siwx",
1401
1418
  EIP191 = "eip-191",
1402
1419
  EIP712 = "eip-712",
1403
1420
  EIP1271 = "eip-1271",
@@ -1409,9 +1426,11 @@ export declare enum ProofTypes {
1409
1426
  XRP_ED25519 = "xrp-ed25519",
1410
1427
  XLM_ED25519 = "xlm-ed25519",
1411
1428
  CIP8 = "cip-8",
1429
+ COSMOS = "cosmos-ecdsa",
1412
1430
  MicroTransfer = "microtransfer",
1413
1431
  Screenshot = "screenshot",
1414
- Connect = "connect"
1432
+ Connect = "connect",
1433
+ CONCORDIUM = "concordium"
1415
1434
  }
1416
1435
 
1417
1436
  /**
@@ -1469,14 +1488,70 @@ export declare interface ScreenshotProof extends OwnershipProof {
1469
1488
  * @public
1470
1489
  */
1471
1490
  export declare interface SignatureProof extends OwnershipProof {
1472
- 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;
1491
+ type: ProofTypes.EIP191 | ProofTypes.EIP712 | ProofTypes.EIP1271 | ProofTypes.BIP137 | ProofTypes.BIP322 | ProofTypes.BIP137_XPUB | ProofTypes.ED25519 | ProofTypes.TIP191 | ProofTypes.SIWX | ProofTypes.SOL_SIWX | ProofTypes.SIWE | ProofTypes.CIP8 | ProofTypes.XRP_ED25519 | ProofTypes.CONCORDIUM | ProofTypes.XLM_ED25519 | ProofTypes.COSMOS;
1473
1492
  proof: string;
1474
1493
  attestation: string;
1475
1494
  wallet_provider: string;
1476
1495
  xpub?: string;
1477
1496
  chainSpecificData?: {
1478
1497
  cardanoCoseKey?: string;
1498
+ } | SolanaMetadata | CosmosMetadata;
1499
+ }
1500
+
1501
+ /**
1502
+ * Input for SIWX message signing
1503
+ * Every SIWX message must include the following fields:
1504
+ * - domain
1505
+ * - address
1506
+ * - statement
1507
+ * - uri
1508
+ * - version
1509
+ * - chainId
1510
+ *
1511
+ * Optional fields:
1512
+ * - nonce
1513
+ * - issuedAt
1514
+ * - expirationTime
1515
+ * - notBefore
1516
+ * - requestId
1517
+ * - resources
1518
+ *
1519
+ * @public
1520
+ */
1521
+ export declare interface SIWXInput {
1522
+ domain: string;
1523
+ address: string;
1524
+ statement?: string;
1525
+ uri?: string;
1526
+ version?: string;
1527
+ chainId?: string;
1528
+ nonce?: string;
1529
+ issuedAt?: string;
1530
+ expirationTime?: string;
1531
+ notBefore?: string;
1532
+ requestId?: string;
1533
+ resources?: readonly string[];
1534
+ }
1535
+
1536
+ /**
1537
+ * Metadata for Solana SIWX ownership proofs
1538
+ * @remarks
1539
+ * - Includes the account public key and address
1540
+ * - Includes the signed message
1541
+ * - Includes the signature
1542
+ * - Includes the message
1543
+ *
1544
+ * @see {@link SignatureProof} For signature-based proofs
1545
+ * @public
1546
+ */
1547
+ export declare interface SolanaMetadata {
1548
+ account: {
1549
+ address: string;
1550
+ publicKey: Uint8Array;
1479
1551
  };
1552
+ signedMessage: Uint8Array;
1553
+ signature: Uint8Array;
1554
+ message: SIWXInput;
1480
1555
  }
1481
1556
 
1482
1557
  /**