@notabene/javascript-sdk 2.1.0 → 2.2.1

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 (113) hide show
  1. package/README.md +24 -0
  2. package/dist/notabene.cjs +1 -1
  3. package/dist/notabene.d.ts +10 -3
  4. package/dist/notabene.js +101 -70
  5. package/docs/README.md +24 -0
  6. package/docs/_media/TransactionOptions.md +6 -6
  7. package/docs/ivms/types/enumerations/PayloadVersionCode.md +2 -2
  8. package/docs/ivms/types/interfaces/PayloadMetadata.md +2 -2
  9. package/docs/ivms/types/type-aliases/Address.md +1 -1
  10. package/docs/ivms/types/type-aliases/AddressTypeCode.md +1 -1
  11. package/docs/ivms/types/type-aliases/Beneficiary.md +1 -1
  12. package/docs/ivms/types/type-aliases/BeneficiaryVASP.md +1 -1
  13. package/docs/ivms/types/type-aliases/DateAndPlaceOfBirth.md +1 -1
  14. package/docs/ivms/types/type-aliases/ISOCountryCode.md +1 -1
  15. package/docs/ivms/types/type-aliases/ISODate.md +1 -1
  16. package/docs/ivms/types/type-aliases/IVMS101.md +1 -1
  17. package/docs/ivms/types/type-aliases/IntermediaryVASP.md +1 -1
  18. package/docs/ivms/types/type-aliases/LegalPerson.md +1 -1
  19. package/docs/ivms/types/type-aliases/LegalPersonName.md +1 -1
  20. package/docs/ivms/types/type-aliases/LegalPersonNameID.md +1 -1
  21. package/docs/ivms/types/type-aliases/LegalPersonNameTypeCode.md +1 -1
  22. package/docs/ivms/types/type-aliases/LocalLegalPersonNameID.md +1 -1
  23. package/docs/ivms/types/type-aliases/LocalNaturalPersonNameID.md +1 -1
  24. package/docs/ivms/types/type-aliases/NationalIdentification.md +1 -1
  25. package/docs/ivms/types/type-aliases/NationalIdentifierTypeCode.md +1 -1
  26. package/docs/ivms/types/type-aliases/NaturalPerson.md +1 -1
  27. package/docs/ivms/types/type-aliases/NaturalPersonName.md +1 -1
  28. package/docs/ivms/types/type-aliases/NaturalPersonNameID.md +1 -1
  29. package/docs/ivms/types/type-aliases/NaturalPersonNameTypeCode.md +1 -1
  30. package/docs/ivms/types/type-aliases/OriginatingVASP.md +1 -1
  31. package/docs/ivms/types/type-aliases/Originator.md +1 -1
  32. package/docs/ivms/types/type-aliases/Person.md +1 -1
  33. package/docs/ivms/types/type-aliases/TransferPath.md +1 -1
  34. package/docs/ivms/types/type-aliases/TransliterationMethodCode.md +1 -1
  35. package/docs/notabene/classes/EmbeddedComponent.md +39 -16
  36. package/docs/notabene/classes/default.md +6 -6
  37. package/docs/notabene/functions/decodeFragmentToObject.md +1 -1
  38. package/docs/notabene/interfaces/NotabeneConfig.md +5 -5
  39. package/docs/notabene/type-aliases/MessageCallback.md +1 -1
  40. package/docs/types/enumerations/AgentType.md +2 -2
  41. package/docs/types/enumerations/CMType.md +6 -6
  42. package/docs/types/enumerations/HMType.md +2 -2
  43. package/docs/types/enumerations/PersonType.md +3 -3
  44. package/docs/types/enumerations/ProofStatus.md +4 -4
  45. package/docs/types/enumerations/ProofTypes.md +12 -12
  46. package/docs/types/enumerations/Status.md +5 -5
  47. package/docs/types/enumerations/VASPSearchControl.md +2 -2
  48. package/docs/types/enumerations/ValidationSections.md +4 -4
  49. package/docs/types/interfaces/Agent.md +6 -6
  50. package/docs/types/interfaces/CallbackOptions.md +2 -2
  51. package/docs/types/interfaces/ComponentRequest.md +2 -2
  52. package/docs/types/interfaces/ComponentResponse.md +4 -4
  53. package/docs/types/interfaces/ConnectionRecord.md +7 -7
  54. package/docs/types/interfaces/ConnectionRequest.md +3 -3
  55. package/docs/types/interfaces/Counterparty.md +10 -10
  56. package/docs/types/interfaces/DeclarationProof.md +6 -6
  57. package/docs/types/interfaces/Deposit.md +9 -9
  58. package/docs/types/interfaces/DepositRequest.md +7 -7
  59. package/docs/types/interfaces/DepositRequestOptions.md +1 -1
  60. package/docs/types/interfaces/LegalPerson.md +13 -13
  61. package/docs/types/interfaces/MicroTransferProof.md +9 -9
  62. package/docs/types/interfaces/NaturalPerson.md +13 -13
  63. package/docs/types/interfaces/OwnershipProof.md +4 -4
  64. package/docs/types/interfaces/ScreenshotProof.md +5 -5
  65. package/docs/types/interfaces/SignatureProof.md +7 -7
  66. package/docs/types/interfaces/ThresholdOptions.md +3 -3
  67. package/docs/types/interfaces/Transaction.md +8 -8
  68. package/docs/types/interfaces/TransactionOptions.md +6 -6
  69. package/docs/types/interfaces/TransactionResponse.md +8 -8
  70. package/docs/types/interfaces/VASP.md +9 -9
  71. package/docs/types/interfaces/Wallet.md +8 -8
  72. package/docs/types/interfaces/Withdrawal.md +9 -9
  73. package/docs/types/type-aliases/BlockchainAddress.md +1 -1
  74. package/docs/types/type-aliases/CAIP10.md +1 -1
  75. package/docs/types/type-aliases/CAIP19.md +1 -1
  76. package/docs/types/type-aliases/CAIP2.md +1 -1
  77. package/docs/types/type-aliases/CAIP220.md +1 -1
  78. package/docs/types/type-aliases/Cancel.md +1 -1
  79. package/docs/types/type-aliases/Completed.md +1 -1
  80. package/docs/types/type-aliases/ComponentMessage.md +1 -1
  81. package/docs/types/type-aliases/ConnectionOptions.md +1 -1
  82. package/docs/types/type-aliases/CryptoCredential.md +1 -1
  83. package/docs/types/type-aliases/DID.md +1 -1
  84. package/docs/types/type-aliases/DTI.md +1 -1
  85. package/docs/types/type-aliases/Destination.md +1 -1
  86. package/docs/types/type-aliases/Error.md +1 -1
  87. package/docs/types/type-aliases/FieldOptions.md +1 -1
  88. package/docs/types/type-aliases/FieldTypes.md +1 -1
  89. package/docs/types/type-aliases/HostMessage.md +1 -1
  90. package/docs/types/type-aliases/ISOCurrency.md +1 -1
  91. package/docs/types/type-aliases/InvalidValue.md +1 -1
  92. package/docs/types/type-aliases/LEI.md +1 -1
  93. package/docs/types/type-aliases/LegalPersonFieldName.md +1 -1
  94. package/docs/types/type-aliases/LegalPersonFields.md +1 -1
  95. package/docs/types/type-aliases/NaturalPersonFieldName.md +1 -1
  96. package/docs/types/type-aliases/NaturalPersonFields.md +1 -1
  97. package/docs/types/type-aliases/NotabeneAsset.md +1 -1
  98. package/docs/types/type-aliases/ResizeRequest.md +1 -1
  99. package/docs/types/type-aliases/Source.md +1 -1
  100. package/docs/types/type-aliases/Theme.md +1 -1
  101. package/docs/types/type-aliases/TransactionAsset.md +1 -1
  102. package/docs/types/type-aliases/TravelAddress.md +1 -1
  103. package/docs/types/type-aliases/URI.md +1 -1
  104. package/docs/types/type-aliases/UUID.md +1 -1
  105. package/docs/types/type-aliases/UpdateValue.md +1 -1
  106. package/docs/types/type-aliases/V1Asset.md +1 -1
  107. package/docs/types/type-aliases/V1Transaction.md +1 -1
  108. package/docs/types/type-aliases/VASPOptions.md +1 -1
  109. package/docs/types/type-aliases/ValidationError.md +1 -1
  110. package/package.json +7 -5
  111. package/src/components/EmbeddedComponent.ts +49 -5
  112. package/src/types.ts +3 -3
  113. package/src/components/__tests__/EmbeddedComponent.test.ts +0 -530
package/README.md CHANGED
@@ -207,6 +207,30 @@ try {
207
207
  }
208
208
  ```
209
209
 
210
+ ### Popup
211
+
212
+ All components support being opened in a popup window using `popup()`, which returns a promise.
213
+
214
+ Many embedded wallets refuse to work in an iframe. In this case it is better to use a popup window.
215
+
216
+ Unfortunately there are also some restrictions on popup windows:
217
+
218
+ - [Popup window Restrictions](https://developer.mozilla.org/en-US/docs/Web/API/Window/open#restrictions)
219
+
220
+ * [Cross-Origin-Opener-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Opener-Policy)
221
+
222
+ ```js
223
+ const withdrawal = notabene.createWithdrawalAssist(tx, options);
224
+ try {
225
+ const { valid, value, txCreate, ivms101, proof } = await withdrawal.popup();
226
+ if (valid) {
227
+ // Submit result to your backend
228
+ }
229
+ } catch (e) {
230
+ console.error(e);
231
+ }
232
+ ```
233
+
210
234
  ### Linked Component
211
235
 
212
236
  In some cases, in particular institutional or mobile apps you may prefer to link your customers to the component through an email or redirect the user to it in a mobile app.
package/dist/notabene.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var I=Object.defineProperty;var w=(e,t,r)=>t in e?I(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var o=(e,t,r)=>w(e,typeof t!="symbol"?t+"":t,r);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var c=(e=>(e.PRIVATE="WALLET",e.VASP="VASP",e))(c||{}),m=(e=>(e.NATURAL="natural",e.LEGAL="legal",e.SELF="self",e))(m||{}),u=(e=>(e.EMPTY="empty",e.VERIFY="verify",e.PENDING="pending",e.VERIFIED="verified",e.BANNED="banned",e))(u||{}),f=(e=>(e.ALLOWED="allowed",e.PENDING="pending",e))(f||{}),E=(e=>(e.ASSET="asset",e.DESTINATION="destination",e.COUNTERPARTY="counterparty",e.AGENT="agent",e))(E||{}),h=(e=>(e.COMPLETE="complete",e.RESIZE="resize",e.RESULT="result",e.INVALID="invalid",e.ERROR="error",e.CANCEL="cancel",e))(h||{}),l=(e=>(e.UPDATE="update",e.REQUEST_RESPONSE="requestResponse",e))(l||{}),p=(e=>(e.PENDING="pending",e.FAILED="rejected",e.FLAGGED="flagged",e.VERIFIED="verified",e))(p||{}),v=(e=>(e.SelfDeclaration="self-declaration",e.SIWE="siwe",e.SIWX="siwx",e.EIP191="eip-191",e.EIP712="eip-712",e.EIP1271="eip-1271",e.BIP137="bip-137",e.BIP137_XPUB="xpub",e.ED25519="ed25519",e.MicroTransfer="microtransfer",e.Screenshot="screenshot",e.Connect="connect",e))(v||{});class b{constructor(){o(this,"listeners",new Map);o(this,"port");this.handleMessage=this.handleMessage.bind(this)}setPort(t){this.port=t,this.port.onmessage=this.handleMessage,this.port.start()}on(t,r){return this.listeners.has(t)||this.listeners.set(t,new Set),this.listeners.get(t).add(r),()=>this.off(t,r)}off(t,r){const i=this.listeners.get(t);i&&(i.delete(r),i.size===0&&this.listeners.delete(t))}handleMessage(t){const r=t.data;if(typeof r=="object"&&r!==null&&"type"in r){const i=r.type,s=this.listeners.get(i);s&&s.forEach(n=>n(r))}}send(t){this.port&&this.port.postMessage(t)}}class g{constructor(t,r,i){o(this,"_url");o(this,"_value");o(this,"_options");o(this,"_errors",[]);o(this,"iframe");o(this,"eventManager");o(this,"modal");this._url=t,this._value=r,this._options=i,this.eventManager=new b,this.on(h.INVALID,s=>{s.type===h.INVALID&&(this._errors=s.errors,this._value=s.value)}),this.on(h.RESIZE,s=>{s.type===h.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(t){const r=document.querySelector(t);if(!r)throw new Error(`parentID ${t} not found`);this.embed(r)}embed(t,r=!1){var i,s;this.removeEmbed(),this.iframe=document.createElement("iframe"),this.iframe.src=this.url+(r?"":"&embedded=true"),this.iframe.allow="web-share; clipboard-write",this.iframe.style.width="100%",this.iframe.style.height="0px",this.iframe.style.border="none",this.iframe.style.overflow="hidden",this.iframe.scrolling="no",t.appendChild(this.iframe),window.addEventListener("message",n=>{var a,d;n.source===((a=this.iframe)==null?void 0:a.contentWindow)&&((d=this.eventManager)==null||d.setPort(n.ports[0]))}),(s=(i=this.iframe)==null?void 0:i.contentWindow)==null||s.focus()}removeEmbed(){this.iframe&&this.iframe.remove()}send(t){this.eventManager.send(t)}on(t,r){return this.eventManager.on(t,r)}off(t,r){this.eventManager.off(t,r)}update(t,r){this._value=t,r&&(this._options=r),this.send({type:l.UPDATE,value:t,options:this._options})}completion(){return new Promise((t,r)=>{let i,s;function n(){i&&i(),s&&s()}i=this.on(h.COMPLETE,a=>{t(a.response),n()}),s=this.on("error",a=>{r(new Error(a.message)),n()})})}openModal(){return 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),this.on(h.CANCEL,()=>{this.closeModal()}),this.on(h.COMPLETE,()=>{this.closeModal()}),this.modal.showModal(),this.modal.addEventListener("click",()=>{this.closeModal()}),this.completion()}closeModal(){var t;this.modal&&((t=this.modal)==null||t.close(),this.modal.remove(),this.modal=void 0)}}function U(e){return Object.entries(e).map(([t,r])=>{if(r==null)return;const i=encodeURIComponent(t),s=encodeURIComponent(typeof r=="object"?JSON.stringify(r):String(r));return`${i}=${s}`}).filter(t=>t!==void 0).join("&")}function M(e){const t=e.slice(1);return t?t.split("&").filter(Boolean).reduce((i,s)=>{const[n,a]=s.split("=");return n&&(i[decodeURIComponent(n)]=a?decodeURIComponent(a):""),i},{}):{}}class A{constructor(t){o(this,"nodeUrl");o(this,"authToken");o(this,"uxUrl");o(this,"theme");o(this,"locale");this.uxUrl=t.uxUrl||"https://connect.notabene.id",this.nodeUrl=t.nodeUrl,this.authToken=t.authToken,this.theme=t.theme,this.locale=t.locale}componentUrl(t,r,i,s){const n=new URL(this.uxUrl);n.pathname=t;const a=U({authToken:this.authToken,value:r,configuration:i});return n.hash=a,this.nodeUrl&&n.searchParams.set("nodeUrl",this.nodeUrl),this.theme&&n.searchParams.set("theme",JSON.stringify(this.theme)),this.locale&&n.searchParams.set("locale",this.locale),s&&(s.callback&&n.searchParams.set("callback_url",s.callback),s.redirectUri&&n.searchParams.set("redirect_uri",s.redirectUri)),n.toString()}createComponent(t,r,i,s){return new g(this.componentUrl(t,r,i,s),r,i)}createWithdrawalAssist(t,r,i){return this.createComponent("withdrawal-assist",t,r,i)}createConnectWallet(t,r,i){return this.createComponent("connect",t,r,i)}createDepositRequest(t,r,i){return this.createComponent("deposit-request",t,r,i)}}exports.AgentType=c;exports.CMType=h;exports.EmbeddedComponent=g;exports.HMType=l;exports.PersonType=m;exports.ProofStatus=p;exports.ProofTypes=v;exports.Status=u;exports.VASPSearchControl=f;exports.ValidationSections=E;exports.decodeFragmentToObject=M;exports.default=A;
1
+ "use strict";var w=Object.defineProperty;var I=(t,e,r)=>e in t?w(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var o=(t,e,r)=>I(t,typeof e!="symbol"?e+"":e,r);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var c=(t=>(t.PRIVATE="WALLET",t.VASP="VASP",t))(c||{}),m=(t=>(t.NATURAL="natural",t.LEGAL="legal",t.SELF="self",t))(m||{}),u=(t=>(t.EMPTY="empty",t.VERIFY="verify",t.PENDING="pending",t.VERIFIED="verified",t.BANNED="banned",t))(u||{}),E=(t=>(t.ALLOWED="allowed",t.PENDING="pending",t))(E||{}),f=(t=>(t.ASSET="asset",t.DESTINATION="destination",t.COUNTERPARTY="counterparty",t.AGENT="agent",t))(f||{}),a=(t=>(t.COMPLETE="complete",t.RESIZE="resize",t.RESULT="result",t.INVALID="invalid",t.ERROR="error",t.CANCEL="cancel",t))(a||{}),d=(t=>(t.UPDATE="update",t.REQUEST_RESPONSE="requestResponse",t))(d||{}),p=(t=>(t.PENDING="pending",t.FAILED="rejected",t.FLAGGED="flagged",t.VERIFIED="verified",t))(p||{}),v=(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.BIP137_XPUB="xpub",t.ED25519="ed25519",t.MicroTransfer="microtransfer",t.Screenshot="screenshot",t.Connect="connect",t))(v||{});class C{constructor(){o(this,"listeners",new Map);o(this,"port");this.handleMessage=this.handleMessage.bind(this)}setPort(e){this.port=e,this.port.onmessage=this.handleMessage,this.port.start()}on(e,r){return this.listeners.has(e)||this.listeners.set(e,new Set),this.listeners.get(e).add(r),()=>this.off(e,r)}off(e,r){const i=this.listeners.get(e);i&&(i.delete(r),i.size===0&&this.listeners.delete(e))}handleMessage(e){const r=e.data;if(typeof r=="object"&&r!==null&&"type"in r){const i=r.type,s=this.listeners.get(i);s&&s.forEach(n=>n(r))}}send(e){this.port&&this.port.postMessage(e)}}class g{constructor(e,r,i){o(this,"_url");o(this,"_value");o(this,"_options");o(this,"_errors",[]);o(this,"iframe");o(this,"eventManager");o(this,"modal");this._url=e,this._value=r,this._options=i,this.eventManager=new C,this.on(a.INVALID,s=>{s.type===a.INVALID&&(this._errors=s.errors,this._value=s.value)}),this.on(a.RESIZE,s=>{s.type===a.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 r=document.querySelector(e);if(!r)throw new Error(`parentID ${e} not found`);this.embed(r)}embed(e,r=!1){var i,s;this.removeEmbed(),this.iframe=document.createElement("iframe"),this.iframe.src=this.url+(r?"":"&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",n=>{var l,h;n.source===((l=this.iframe)==null?void 0:l.contentWindow)&&((h=this.eventManager)==null||h.setPort(n.ports[0]))}),(s=(i=this.iframe)==null?void 0:i.contentWindow)==null||s.focus()}removeEmbed(){this.iframe&&this.iframe.remove()}send(e){this.eventManager.send(e)}on(e,r){return this.eventManager.on(e,r)}off(e,r){this.eventManager.off(e,r)}update(e,r){this._value=e,r&&(this._options=r),this.send({type:d.UPDATE,value:e,options:this._options})}completion(){return new Promise((e,r)=>{let i,s,n;function l(){i&&i(),s&&s(),n&&n()}i=this.on(a.COMPLETE,h=>{e(h.response),l()}),s=this.on(a.CANCEL,()=>{r(new Error("User cancelled")),l()}),n=this.on("error",h=>{r(new Error(h.message)),l()})})}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(a.CANCEL,()=>{this.closeModal()}),r=this.on(a.COMPLETE,()=>{this.closeModal()});return this.modal.showModal(),this.modal.addEventListener("click",()=>{this.closeModal()}),this.completion().finally(()=>{e(),r()})}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 n;s.source===e&&(console.log("received message from popup",s.data),(n=this.eventManager)==null||n.setPort(s.ports[0]))});const r=this.on(a.CANCEL,()=>{e==null||e.close()}),i=this.on(a.COMPLETE,()=>{e==null||e.close()});return this.completion().finally(()=>{r(),i()})}}function b(t){return Object.entries(t).map(([e,r])=>{if(r==null)return;const i=encodeURIComponent(e),s=encodeURIComponent(typeof r=="object"?JSON.stringify(r):String(r));return`${i}=${s}`}).filter(e=>e!==void 0).join("&")}function U(t){const e=t.slice(1);return e?e.split("&").filter(Boolean).reduce((i,s)=>{const[n,l]=s.split("=");return n&&(i[decodeURIComponent(n)]=l?decodeURIComponent(l):""),i},{}):{}}class L{constructor(e){o(this,"nodeUrl");o(this,"authToken");o(this,"uxUrl");o(this,"theme");o(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,r,i,s){const n=new URL(this.uxUrl);n.pathname=e;const l=b({authToken:this.authToken,value:r,configuration:i});return n.hash=l,this.nodeUrl&&n.searchParams.set("nodeUrl",this.nodeUrl),this.theme&&n.searchParams.set("theme",JSON.stringify(this.theme)),this.locale&&n.searchParams.set("locale",this.locale),s&&(s.callback&&n.searchParams.set("callback_url",s.callback),s.redirectUri&&n.searchParams.set("redirect_uri",s.redirectUri)),n.toString()}createComponent(e,r,i,s){return new g(this.componentUrl(e,r,i,s),r,i)}createWithdrawalAssist(e,r,i){return this.createComponent("withdrawal-assist",e,r,i)}createConnectWallet(e,r,i){return this.createComponent("connect",e,r,i)}createDepositRequest(e,r,i){return this.createComponent("deposit-request",e,r,i)}}exports.AgentType=c;exports.CMType=a;exports.EmbeddedComponent=g;exports.HMType=d;exports.PersonType=m;exports.ProofStatus=p;exports.ProofTypes=v;exports.Status=u;exports.VASPSearchControl=E;exports.ValidationSections=f;exports.decodeFragmentToObject=U;exports.default=L;
@@ -198,7 +198,7 @@ export declare type Cancel = {
198
198
  * - CANCEL: Operation was cancelled
199
199
  * @public
200
200
  */
201
- export declare const enum CMType {
201
+ export declare enum CMType {
202
202
  COMPLETE = "complete",
203
203
  RESIZE = "resize",
204
204
  RESULT = "result",
@@ -524,6 +524,13 @@ export declare class EmbeddedComponent<V, O> {
524
524
  *
525
525
  */
526
526
  closeModal(): void;
527
+ /**
528
+ * Opens the component in a popup window. This may be needed to support many self-hosted wallets
529
+ * @returns A promise that resolves with the transaction response
530
+ * @see [MDN](https://developer.mozilla.org/en-US/docs/Web/API/Window/open#restrictions)
531
+ * @see [Cross-Origin-Opener-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Opener-Policy)
532
+ */
533
+ popup(): Promise<TransactionResponse<V>>;
527
534
  }
528
535
 
529
536
  /**
@@ -568,7 +575,7 @@ export declare type FieldTypes = {
568
575
  * - REQUEST_RESPONSE: Message requesting a response from component
569
576
  * @public
570
577
  */
571
- export declare const enum HMType {
578
+ export declare enum HMType {
572
579
  UPDATE = "update",
573
580
  REQUEST_RESPONSE = "requestResponse"
574
581
  }
@@ -1547,7 +1554,7 @@ export declare type VASPOptions = {
1547
1554
  * - PENDING: Include VASPs neither allowed nor denied
1548
1555
  * @public
1549
1556
  */
1550
- export declare const enum VASPSearchControl {
1557
+ export declare enum VASPSearchControl {
1551
1558
  ALLOWED = "allowed",
1552
1559
  PENDING = "pending"
1553
1560
  }
package/dist/notabene.js CHANGED
@@ -1,8 +1,8 @@
1
1
  var c = Object.defineProperty;
2
- var m = (e, t, r) => t in e ? c(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r;
3
- var o = (e, t, r) => m(e, typeof t != "symbol" ? t + "" : t, r);
4
- var u = /* @__PURE__ */ ((e) => (e.PRIVATE = "WALLET", e.VASP = "VASP", e))(u || {}), E = /* @__PURE__ */ ((e) => (e.NATURAL = "natural", e.LEGAL = "legal", e.SELF = "self", e))(E || {}), f = /* @__PURE__ */ ((e) => (e.EMPTY = "empty", e.VERIFY = "verify", e.PENDING = "pending", e.VERIFIED = "verified", e.BANNED = "banned", e))(f || {}), p = /* @__PURE__ */ ((e) => (e.ALLOWED = "allowed", e.PENDING = "pending", e))(p || {}), v = /* @__PURE__ */ ((e) => (e.ASSET = "asset", e.DESTINATION = "destination", e.COUNTERPARTY = "counterparty", e.AGENT = "agent", e))(v || {}), h = /* @__PURE__ */ ((e) => (e.COMPLETE = "complete", e.RESIZE = "resize", e.RESULT = "result", e.INVALID = "invalid", e.ERROR = "error", e.CANCEL = "cancel", e))(h || {}), d = /* @__PURE__ */ ((e) => (e.UPDATE = "update", e.REQUEST_RESPONSE = "requestResponse", e))(d || {}), g = /* @__PURE__ */ ((e) => (e.PENDING = "pending", e.FAILED = "rejected", e.FLAGGED = "flagged", e.VERIFIED = "verified", e))(g || {}), I = /* @__PURE__ */ ((e) => (e.SelfDeclaration = "self-declaration", e.SIWE = "siwe", e.SIWX = "siwx", e.EIP191 = "eip-191", e.EIP712 = "eip-712", e.EIP1271 = "eip-1271", e.BIP137 = "bip-137", e.BIP137_XPUB = "xpub", e.ED25519 = "ed25519", e.MicroTransfer = "microtransfer", e.Screenshot = "screenshot", e.Connect = "connect", e))(I || {});
5
- class w {
2
+ var m = (t, e, r) => e in t ? c(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;
3
+ var o = (t, e, r) => m(t, typeof e != "symbol" ? e + "" : e, r);
4
+ var u = /* @__PURE__ */ ((t) => (t.PRIVATE = "WALLET", t.VASP = "VASP", t))(u || {}), E = /* @__PURE__ */ ((t) => (t.NATURAL = "natural", t.LEGAL = "legal", t.SELF = "self", t))(E || {}), f = /* @__PURE__ */ ((t) => (t.EMPTY = "empty", t.VERIFY = "verify", t.PENDING = "pending", t.VERIFIED = "verified", t.BANNED = "banned", t))(f || {}), p = /* @__PURE__ */ ((t) => (t.ALLOWED = "allowed", t.PENDING = "pending", t))(p || {}), v = /* @__PURE__ */ ((t) => (t.ASSET = "asset", t.DESTINATION = "destination", t.COUNTERPARTY = "counterparty", t.AGENT = "agent", t))(v || {}), h = /* @__PURE__ */ ((t) => (t.COMPLETE = "complete", t.RESIZE = "resize", t.RESULT = "result", t.INVALID = "invalid", t.ERROR = "error", t.CANCEL = "cancel", t))(h || {}), d = /* @__PURE__ */ ((t) => (t.UPDATE = "update", t.REQUEST_RESPONSE = "requestResponse", t))(d || {}), g = /* @__PURE__ */ ((t) => (t.PENDING = "pending", t.FAILED = "rejected", t.FLAGGED = "flagged", t.VERIFIED = "verified", t))(g || {}), w = /* @__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.BIP137_XPUB = "xpub", t.ED25519 = "ed25519", t.MicroTransfer = "microtransfer", t.Screenshot = "screenshot", t.Connect = "connect", t))(w || {});
5
+ class I {
6
6
  constructor() {
7
7
  o(this, "listeners", /* @__PURE__ */ new Map());
8
8
  o(this, "port");
@@ -16,8 +16,8 @@ class w {
16
16
  *
17
17
  * @param port - The MessagePort instance to use for communication
18
18
  */
19
- setPort(t) {
20
- this.port = t, this.port.onmessage = this.handleMessage, this.port.start();
19
+ setPort(e) {
20
+ this.port = e, this.port.onmessage = this.handleMessage, this.port.start();
21
21
  }
22
22
  /**
23
23
  * Registers a callback for a specific message type.
@@ -29,8 +29,8 @@ class w {
29
29
  * @param callback - The callback function to execute when matching messages are received
30
30
 
31
31
  */
32
- on(t, r) {
33
- return this.listeners.has(t) || this.listeners.set(t, /* @__PURE__ */ new Set()), this.listeners.get(t).add(r), () => this.off(t, r);
32
+ on(e, r) {
33
+ return this.listeners.has(e) || this.listeners.set(e, /* @__PURE__ */ new Set()), this.listeners.get(e).add(r), () => this.off(e, r);
34
34
  }
35
35
  /**
36
36
  * Removes a callback for a specific message type.
@@ -41,9 +41,9 @@ class w {
41
41
  * @param messageType - The type of message to remove listener from
42
42
  * @param callback - The callback function to remove
43
43
  */
44
- off(t, r) {
45
- const i = this.listeners.get(t);
46
- i && (i.delete(r), i.size === 0 && this.listeners.delete(t));
44
+ off(e, r) {
45
+ const i = this.listeners.get(e);
46
+ i && (i.delete(r), i.size === 0 && this.listeners.delete(e));
47
47
  }
48
48
  /**
49
49
  * Internal message handler for processing received messages.
@@ -53,8 +53,8 @@ class w {
53
53
  *
54
54
  * @param event - The message event containing the component message
55
55
  */
56
- handleMessage(t) {
57
- const r = t.data;
56
+ handleMessage(e) {
57
+ const r = e.data;
58
58
  if (typeof r == "object" && r !== null && "type" in r) {
59
59
  const i = r.type, s = this.listeners.get(i);
60
60
  s && s.forEach((n) => n(r));
@@ -64,17 +64,17 @@ class w {
64
64
  * Sends a message through the message port
65
65
  * @param message The host message to send
66
66
  */
67
- send(t) {
68
- this.port && this.port.postMessage(t);
67
+ send(e) {
68
+ this.port && this.port.postMessage(e);
69
69
  }
70
70
  }
71
- class U {
71
+ class C {
72
72
  /**
73
73
  * Creates an instance of EmbeddedComponent.
74
74
  * @param url - The URL of the embedded component
75
75
  * @param value - The initial transaction value
76
76
  */
77
- constructor(t, r, i) {
77
+ constructor(e, r, i) {
78
78
  o(this, "_url");
79
79
  o(this, "_value");
80
80
  o(this, "_options");
@@ -82,7 +82,7 @@ class U {
82
82
  o(this, "iframe");
83
83
  o(this, "eventManager");
84
84
  o(this, "modal");
85
- this._url = t, this._value = r, this._options = i, this.eventManager = new w(), this.on(h.INVALID, (s) => {
85
+ this._url = e, this._value = r, this._options = i, this.eventManager = new I(), this.on(h.INVALID, (s) => {
86
86
  s.type === h.INVALID && (this._errors = s.errors, this._value = s.value);
87
87
  }), this.on(h.RESIZE, (s) => {
88
88
  s.type === h.RESIZE && this.iframe && (this.iframe.style.height = `${s.height}px`);
@@ -119,18 +119,18 @@ class U {
119
119
  * @param parentId - The ID of the parent element
120
120
  * @throws Will throw an error if the parent element is not found
121
121
  */
122
- mount(t) {
123
- const r = document.querySelector(t);
124
- if (!r) throw new Error(`parentID ${t} not found`);
122
+ mount(e) {
123
+ const r = document.querySelector(e);
124
+ if (!r) throw new Error(`parentID ${e} not found`);
125
125
  this.embed(r);
126
126
  }
127
127
  /**
128
128
  * Embeds the component into a parent element
129
129
  * @param parent - The parent element to embed the component into
130
130
  */
131
- embed(t, r = !1) {
131
+ embed(e, r = !1) {
132
132
  var i, s;
133
- this.removeEmbed(), this.iframe = document.createElement("iframe"), this.iframe.src = this.url + (r ? "" : "&embedded=true"), this.iframe.allow = "web-share; clipboard-write", this.iframe.style.width = "100%", this.iframe.style.height = "0px", this.iframe.style.border = "none", this.iframe.style.overflow = "hidden", this.iframe.scrolling = "no", t.appendChild(this.iframe), window.addEventListener("message", (n) => {
133
+ this.removeEmbed(), this.iframe = document.createElement("iframe"), this.iframe.src = this.url + (r ? "" : "&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", (n) => {
134
134
  var a, l;
135
135
  n.source === ((a = this.iframe) == null ? void 0 : a.contentWindow) && ((l = this.eventManager) == null || l.setPort(n.ports[0]));
136
136
  }), (s = (i = this.iframe) == null ? void 0 : i.contentWindow) == null || s.focus();
@@ -142,83 +142,114 @@ class U {
142
142
  * Sends a message to the embedded component
143
143
  * @param message - The message to send
144
144
  */
145
- send(t) {
146
- this.eventManager.send(t);
145
+ send(e) {
146
+ this.eventManager.send(e);
147
147
  }
148
148
  /**
149
149
  * Adds an event listener for a specific message type
150
150
  * @param messageType - The type of message to listen for
151
151
  * @param callback - The callback function to execute when the message is received
152
152
  */
153
- on(t, r) {
154
- return this.eventManager.on(t, r);
153
+ on(e, r) {
154
+ return this.eventManager.on(e, r);
155
155
  }
156
156
  /**
157
157
  * Removes an event listener for a specific message type
158
158
  * @param messageType - The type of message to stop listening for
159
159
  * @param callback - The callback function to remove
160
160
  */
161
- off(t, r) {
162
- this.eventManager.off(t, r);
161
+ off(e, r) {
162
+ this.eventManager.off(e, r);
163
163
  }
164
164
  /**
165
165
  * Updates the transaction value and sends an update message to the component
166
166
  * @param value - The new transaction value
167
167
  */
168
- update(t, r) {
169
- this._value = t, r && (this._options = r), this.send({ type: d.UPDATE, value: t, options: this._options });
168
+ update(e, r) {
169
+ this._value = e, r && (this._options = r), this.send({ type: d.UPDATE, value: e, options: this._options });
170
170
  }
171
171
  /**
172
172
  * Waits for the component to complete and returns the transaction response
173
173
  * @returns A promise that resolves with the transaction response
174
174
  */
175
175
  completion() {
176
- return new Promise((t, r) => {
177
- let i, s;
178
- function n() {
179
- i && i(), s && s();
176
+ return new Promise((e, r) => {
177
+ let i, s, n;
178
+ function a() {
179
+ i && i(), s && s(), n && n();
180
180
  }
181
- i = this.on(h.COMPLETE, (a) => {
182
- t(a.response), n();
183
- }), s = this.on("error", (a) => {
184
- r(new Error(a.message)), n();
181
+ i = this.on(h.COMPLETE, (l) => {
182
+ e(l.response), a();
183
+ }), s = this.on(h.CANCEL, () => {
184
+ r(new Error("User cancelled")), a();
185
+ }), n = this.on("error", (l) => {
186
+ r(new Error(l.message)), a();
185
187
  });
186
188
  });
187
189
  }
188
190
  /**
189
191
  * Opens the component in a modal dialog
190
192
  */
191
- openModal() {
192
- return 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), this.on(h.CANCEL, () => {
193
+ async openModal() {
194
+ 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);
195
+ const e = this.on(h.CANCEL, () => {
193
196
  this.closeModal();
194
- }), this.on(h.COMPLETE, () => {
197
+ }), r = this.on(h.COMPLETE, () => {
195
198
  this.closeModal();
196
- }), this.modal.showModal(), this.modal.addEventListener("click", () => {
199
+ });
200
+ return this.modal.showModal(), this.modal.addEventListener("click", () => {
197
201
  this.closeModal();
198
- }), this.completion();
202
+ }), this.completion().finally(() => {
203
+ e(), r();
204
+ });
199
205
  }
200
206
  /**
201
207
  * Closes the modal dialog
202
208
  *
203
209
  */
204
210
  closeModal() {
205
- var t;
206
- this.modal && ((t = this.modal) == null || t.close(), this.modal.remove(), this.modal = void 0);
211
+ var e;
212
+ this.modal && ((e = this.modal) == null || e.close(), this.modal.remove(), this.modal = void 0);
213
+ }
214
+ /**
215
+ * Opens the component in a popup window. This may be needed to support many self-hosted wallets
216
+ * @returns A promise that resolves with the transaction response
217
+ * @see [MDN](https://developer.mozilla.org/en-US/docs/Web/API/Window/open#restrictions)
218
+ * @see [Cross-Origin-Opener-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Opener-Policy)
219
+ */
220
+ async popup() {
221
+ const e = window.open(
222
+ this.url,
223
+ "_blank",
224
+ "popup=true,width=600,height=600"
225
+ );
226
+ window.addEventListener("message", (s) => {
227
+ var n;
228
+ s.source === e && (console.log("received message from popup", s.data), (n = this.eventManager) == null || n.setPort(s.ports[0]));
229
+ });
230
+ const r = this.on(h.CANCEL, () => {
231
+ e == null || e.close();
232
+ }), i = this.on(h.COMPLETE, () => {
233
+ e == null || e.close();
234
+ });
235
+ return this.completion().finally(() => {
236
+ r(), i();
237
+ });
207
238
  }
208
239
  }
209
- function b(e) {
210
- return Object.entries(e).map(([t, r]) => {
240
+ function U(t) {
241
+ return Object.entries(t).map(([e, r]) => {
211
242
  if (r == null) return;
212
- const i = encodeURIComponent(t), s = encodeURIComponent(
243
+ const i = encodeURIComponent(e), s = encodeURIComponent(
213
244
  typeof r == "object" ? JSON.stringify(r) : String(r)
214
245
  // Use String() to handle all primitive types
215
246
  );
216
247
  return `${i}=${s}`;
217
- }).filter((t) => t !== void 0).join("&");
248
+ }).filter((e) => e !== void 0).join("&");
218
249
  }
219
- function L(e) {
220
- const t = e.slice(1);
221
- return t ? t.split("&").filter(Boolean).reduce(
250
+ function b(t) {
251
+ const e = t.slice(1);
252
+ return e ? e.split("&").filter(Boolean).reduce(
222
253
  (i, s) => {
223
254
  const [n, a] = s.split("=");
224
255
  return n && (i[decodeURIComponent(n)] = a ? decodeURIComponent(a) : ""), i;
@@ -232,13 +263,13 @@ class N {
232
263
  *
233
264
  * @param config - Configuration options for the Notabene SDK
234
265
  */
235
- constructor(t) {
266
+ constructor(e) {
236
267
  o(this, "nodeUrl");
237
268
  o(this, "authToken");
238
269
  o(this, "uxUrl");
239
270
  o(this, "theme");
240
271
  o(this, "locale");
241
- this.uxUrl = t.uxUrl || "https://connect.notabene.id", this.nodeUrl = t.nodeUrl, this.authToken = t.authToken, this.theme = t.theme, this.locale = t.locale;
272
+ this.uxUrl = e.uxUrl || "https://connect.notabene.id", this.nodeUrl = e.nodeUrl, this.authToken = e.authToken, this.theme = e.theme, this.locale = e.locale;
242
273
  }
243
274
  /**
244
275
  * Generates a URL for a Notabene component
@@ -250,10 +281,10 @@ class N {
250
281
  * @returns component URL
251
282
  * @internal
252
283
  */
253
- componentUrl(t, r, i, s) {
284
+ componentUrl(e, r, i, s) {
254
285
  const n = new URL(this.uxUrl);
255
- n.pathname = t;
256
- const a = b({
286
+ n.pathname = e;
287
+ const a = U({
257
288
  authToken: this.authToken,
258
289
  value: r,
259
290
  configuration: i
@@ -270,9 +301,9 @@ class N {
270
301
  * @returns A new EmbeddedComponent instance
271
302
  * @internal
272
303
  */
273
- createComponent(t, r, i, s) {
274
- return new U(
275
- this.componentUrl(t, r, i, s),
304
+ createComponent(e, r, i, s) {
305
+ return new C(
306
+ this.componentUrl(e, r, i, s),
276
307
  r,
277
308
  i
278
309
  );
@@ -285,10 +316,10 @@ class N {
285
316
  * @param callbacks - Optional callback configuration
286
317
  * @returns A new EmbeddedComponent instance for withdrawal assistance
287
318
  */
288
- createWithdrawalAssist(t, r, i) {
319
+ createWithdrawalAssist(e, r, i) {
289
320
  return this.createComponent(
290
321
  "withdrawal-assist",
291
- t,
322
+ e,
292
323
  r,
293
324
  i
294
325
  );
@@ -302,10 +333,10 @@ class N {
302
333
  * @returns A new EmbeddedComponent instance for connection
303
334
  * @alpha
304
335
  */
305
- createConnectWallet(t, r, i) {
336
+ createConnectWallet(e, r, i) {
306
337
  return this.createComponent(
307
338
  "connect",
308
- t,
339
+ e,
309
340
  r,
310
341
  i
311
342
  );
@@ -319,10 +350,10 @@ class N {
319
350
  * @returns A new EmbeddedComponent instance for deposit requests
320
351
  * @public
321
352
  */
322
- createDepositRequest(t, r, i) {
353
+ createDepositRequest(e, r, i) {
323
354
  return this.createComponent(
324
355
  "deposit-request",
325
- t,
356
+ e,
326
357
  r,
327
358
  i
328
359
  );
@@ -331,14 +362,14 @@ class N {
331
362
  export {
332
363
  u as AgentType,
333
364
  h as CMType,
334
- U as EmbeddedComponent,
365
+ C as EmbeddedComponent,
335
366
  d as HMType,
336
367
  E as PersonType,
337
368
  g as ProofStatus,
338
- I as ProofTypes,
369
+ w as ProofTypes,
339
370
  f as Status,
340
371
  p as VASPSearchControl,
341
372
  v as ValidationSections,
342
- L as decodeFragmentToObject,
373
+ b as decodeFragmentToObject,
343
374
  N as default
344
375
  };
package/docs/README.md CHANGED
@@ -211,6 +211,30 @@ try {
211
211
  }
212
212
  ```
213
213
 
214
+ ### Popup
215
+
216
+ All components support being opened in a popup window using `popup()`, which returns a promise.
217
+
218
+ Many embedded wallets refuse to work in an iframe. In this case it is better to use a popup window.
219
+
220
+ Unfortunately there are also some restrictions on popup windows:
221
+
222
+ - [Popup window Restrictions](https://developer.mozilla.org/en-US/docs/Web/API/Window/open#restrictions)
223
+
224
+ * [Cross-Origin-Opener-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Opener-Policy)
225
+
226
+ ```js
227
+ const withdrawal = notabene.createWithdrawalAssist(tx, options);
228
+ try {
229
+ const { valid, value, txCreate, ivms101, proof } = await withdrawal.popup();
230
+ if (valid) {
231
+ // Submit result to your backend
232
+ }
233
+ } catch (e) {
234
+ console.error(e);
235
+ }
236
+ ```
237
+
214
238
  ### Linked Component
215
239
 
216
240
  In some cases, in particular institutional or mobile apps you may prefer to link your customers to the component through an email or redirect the user to it in a mobile app.
@@ -16,7 +16,7 @@ Configuration options for Transaction components
16
16
 
17
17
  #### Defined in
18
18
 
19
- [types.ts:768](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/9a4530da9029429ae25456217bc5ecba197bd4fc/src/types.ts#L768)
19
+ [types.ts:768](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/e726d89bf77c8ab57b82ac5a02356ef19031620e/src/types.ts#L768)
20
20
 
21
21
  ***
22
22
 
@@ -26,7 +26,7 @@ Configuration options for Transaction components
26
26
 
27
27
  #### Defined in
28
28
 
29
- [types.ts:769](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/9a4530da9029429ae25456217bc5ecba197bd4fc/src/types.ts#L769)
29
+ [types.ts:769](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/e726d89bf77c8ab57b82ac5a02356ef19031620e/src/types.ts#L769)
30
30
 
31
31
  ***
32
32
 
@@ -36,7 +36,7 @@ Configuration options for Transaction components
36
36
 
37
37
  #### Defined in
38
38
 
39
- [types.ts:770](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/9a4530da9029429ae25456217bc5ecba197bd4fc/src/types.ts#L770)
39
+ [types.ts:770](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/e726d89bf77c8ab57b82ac5a02356ef19031620e/src/types.ts#L770)
40
40
 
41
41
  ***
42
42
 
@@ -46,7 +46,7 @@ Configuration options for Transaction components
46
46
 
47
47
  #### Defined in
48
48
 
49
- [types.ts:772](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/9a4530da9029429ae25456217bc5ecba197bd4fc/src/types.ts#L772)
49
+ [types.ts:772](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/e726d89bf77c8ab57b82ac5a02356ef19031620e/src/types.ts#L772)
50
50
 
51
51
  ***
52
52
 
@@ -80,7 +80,7 @@ Configuration options for Transaction components
80
80
 
81
81
  #### Defined in
82
82
 
83
- [types.ts:759](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/9a4530da9029429ae25456217bc5ecba197bd4fc/src/types.ts#L759)
83
+ [types.ts:759](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/e726d89bf77c8ab57b82ac5a02356ef19031620e/src/types.ts#L759)
84
84
 
85
85
  ***
86
86
 
@@ -90,4 +90,4 @@ Configuration options for Transaction components
90
90
 
91
91
  #### Defined in
92
92
 
93
- [types.ts:771](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/9a4530da9029429ae25456217bc5ecba197bd4fc/src/types.ts#L771)
93
+ [types.ts:771](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/e726d89bf77c8ab57b82ac5a02356ef19031620e/src/types.ts#L771)
@@ -18,7 +18,7 @@ Published May 2020
18
18
 
19
19
  #### Defined in
20
20
 
21
- [ivms/types.ts:365](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/9a4530da9029429ae25456217bc5ecba197bd4fc/src/ivms/types.ts#L365)
21
+ [ivms/types.ts:365](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/e726d89bf77c8ab57b82ac5a02356ef19031620e/src/ivms/types.ts#L365)
22
22
 
23
23
  ***
24
24
 
@@ -30,4 +30,4 @@ Published August 2023
30
30
 
31
31
  #### Defined in
32
32
 
33
- [ivms/types.ts:367](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/9a4530da9029429ae25456217bc5ecba197bd4fc/src/ivms/types.ts#L367)
33
+ [ivms/types.ts:367](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/e726d89bf77c8ab57b82ac5a02356ef19031620e/src/ivms/types.ts#L367)
@@ -19,7 +19,7 @@ The version of IVMS 101 to which the payload complies.
19
19
 
20
20
  #### Defined in
21
21
 
22
- [ivms/types.ts:358](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/9a4530da9029429ae25456217bc5ecba197bd4fc/src/ivms/types.ts#L358)
22
+ [ivms/types.ts:358](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/e726d89bf77c8ab57b82ac5a02356ef19031620e/src/ivms/types.ts#L358)
23
23
 
24
24
  ***
25
25
 
@@ -31,4 +31,4 @@ The method used to map from a national system of writing to Latin script.
31
31
 
32
32
  #### Defined in
33
33
 
34
- [ivms/types.ts:356](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/9a4530da9029429ae25456217bc5ecba197bd4fc/src/ivms/types.ts#L356)
34
+ [ivms/types.ts:356](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/e726d89bf77c8ab57b82ac5a02356ef19031620e/src/ivms/types.ts#L356)
@@ -111,4 +111,4 @@ Name of a built-up area, with defined boundaries, and a local government.
111
111
 
112
112
  ## Defined in
113
113
 
114
- [ivms/types.ts:119](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/9a4530da9029429ae25456217bc5ecba197bd4fc/src/ivms/types.ts#L119)
114
+ [ivms/types.ts:119](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/e726d89bf77c8ab57b82ac5a02356ef19031620e/src/ivms/types.ts#L119)
@@ -13,4 +13,4 @@ Specifies the type of address
13
13
 
14
14
  ## Defined in
15
15
 
16
- [ivms/types.ts:44](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/9a4530da9029429ae25456217bc5ecba197bd4fc/src/ivms/types.ts#L44)
16
+ [ivms/types.ts:44](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/e726d89bf77c8ab57b82ac5a02356ef19031620e/src/ivms/types.ts#L44)
@@ -27,4 +27,4 @@ Array of persons associated with the beneficiary
27
27
 
28
28
  ## Defined in
29
29
 
30
- [ivms/types.ts:313](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/9a4530da9029429ae25456217bc5ecba197bd4fc/src/ivms/types.ts#L313)
30
+ [ivms/types.ts:313](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/e726d89bf77c8ab57b82ac5a02356ef19031620e/src/ivms/types.ts#L313)
@@ -21,4 +21,4 @@ The beneficiary VASP information
21
21
 
22
22
  ## Defined in
23
23
 
24
- [ivms/types.ts:335](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/9a4530da9029429ae25456217bc5ecba197bd4fc/src/ivms/types.ts#L335)
24
+ [ivms/types.ts:335](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/e726d89bf77c8ab57b82ac5a02356ef19031620e/src/ivms/types.ts#L335)
@@ -27,4 +27,4 @@ Place of birth (max 70 characters)
27
27
 
28
28
  ## Defined in
29
29
 
30
- [ivms/types.ts:107](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/9a4530da9029429ae25456217bc5ecba197bd4fc/src/ivms/types.ts#L107)
30
+ [ivms/types.ts:107](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/e726d89bf77c8ab57b82ac5a02356ef19031620e/src/ivms/types.ts#L107)
@@ -19,4 +19,4 @@ ISO-3166 Alpha-2 country code
19
19
 
20
20
  ## Defined in
21
21
 
22
- [ivms/types.ts:6](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/9a4530da9029429ae25456217bc5ecba197bd4fc/src/ivms/types.ts#L6)
22
+ [ivms/types.ts:6](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/e726d89bf77c8ab57b82ac5a02356ef19031620e/src/ivms/types.ts#L6)
@@ -20,4 +20,4 @@ Format: YYYY-MM-DD
20
20
 
21
21
  ## Defined in
22
22
 
23
- [ivms/types.ts:14](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/9a4530da9029429ae25456217bc5ecba197bd4fc/src/ivms/types.ts#L14)
23
+ [ivms/types.ts:14](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/e726d89bf77c8ab57b82ac5a02356ef19031620e/src/ivms/types.ts#L14)