@adyen/adyen-web
Version:
[](https://www.npmjs.com/package/@adyen/adyen-web)
3 lines (2 loc) • 7.58 kB
JavaScript
import{createElement as e}from"../../external/preact/dist/preact.js";import{CoreProvider as t}from"../../core/Context/CoreProvider.js";import{TxVariants as r}from"../tx-variants.js";import{UIElement as n}from"../internal/UIElement/UIElement.js";import o from"../../core/Errors/SRPanelProvider.js";import i from"../internal/RedirectButton/RedirectButton.js";import s,{ERROR as a}from"../../core/Errors/AdyenCheckoutError.js";import{PasskeyService as p}from"./services/PasskeyService.js";import{authorizeEnrollment as d}from"./services/authorizeEnrollment.js";import{authorizePayment as l}from"./services/authorizePayment.js";import h from"./components/StoredPayment/StoredPayment.js";import c from"./components/Enrollment/Enrollment.js";function y(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function m(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){y(e,t,r[t])})}return e}function u(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function v(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}class f extends n{get isValid(){var e;return!(this.props._isAdyenHosted&&!this.props.storedPaymentMethodId)||!!(null===(e=this.state)||void 0===e?void 0:e.isValid)}get additionalInfo(){var e,t;return this.props.storedPaymentMethodId?this.props.i18n.get("paybybankpix.storedPayment.additionalLabel",{values:{receiver:null===(t=this.props)||void 0===t||null===(e=t.payByBankPixDetails)||void 0===e?void 0:e.receiver}}):""}get icon(){var e,t;return this.props.storedPaymentMethodId?this.resources.getImage({parentFolder:`${f.type}/`})(null===(t=this.props)||void 0===t||null===(e=t.payByBankPixDetails)||void 0===e?void 0:e.ispb):super.icon}async isAvailable(){const e=await this.passkeyService.getWebAuthnUnsupportedReason();if(e)return Promise.reject(new s(a,e));if(!this.props._isAdyenHosted)return Promise.resolve();try{if(await this.passkeyService.initialize(),this.props.storedPaymentMethodId){return await this.passkeyService.canUseStoredCredential()?Promise.resolve():Promise.reject(new s("ERROR","The stored payment method is not available on this device"))}return Promise.resolve()}catch(e){return Promise.reject(e instanceof Error?null==e?void 0:e.message:"Unknown error")}}handleAction(e,t={}){const r=this.core.createFromAction(e,u(m({},this.elementRef.props,t),{onAdditionalDetails:this.handleAdditionalDetails}));return r?(this.unmount(),r.isAvailable().then(()=>{r.mount(this._node)}),r):null}formatData(){if(!this.props._isAdyenHosted)return{paymentMethod:{type:r.paybybank_pix}};const e=null==this.props.storedPaymentMethodId;return m({paymentMethod:m({type:r.paybybank_pix},this.state.data)},e?{storePaymentMethod:!0}:{})}render(){var r,n,s;return this.props._isAdyenHosted?e(t,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},e(o,{srPanel:this.props.modules.srPanel},null!=this.props.storedPaymentMethodId?e(h,{txVariant:f.type,type:this.props.type,clientKey:this.props.clientKey,amount:this.props.amount,enrollmentId:null===(r=this.props.paymentMethodData)||void 0===r?void 0:r.enrollmentId,initiationId:null===(n=this.props.paymentMethodData)||void 0===n?void 0:n.initiationId,setComponentRef:this.setComponentRef,onPay:this.payWithStoredPayment,onAuthorize:this.authorizePayment}):e(c,{onError:this.handleError,txVariant:f.type,type:this.props.type,clientKey:this.props.clientKey,enrollmentId:null===(s=this.props.paymentMethodData)||void 0===s?void 0:s.enrollmentId,countdownTime:this.props.countdownTime,onEnroll:this.authorizeEnrollment,issuers:this.props.issuers,payButton:this.payButton,onChange:this.onIssuerSelected,onSubmitAnalytics:this.submitAnalytics,setComponentRef:this.setComponentRef}))):e(t,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},e(o,{srPanel:this.props.modules.srPanel},e(i,{showPayButton:this.props.showPayButton,name:this.displayName,label:this.props.i18n.get("paybybankpix.redirectBtn.label"),amount:this.props.amount,payButton:this.payButton,onSubmit:this.submit,ref:e=>{this.componentRef=e}})))}constructor(e,t){var r,n;super(e,t),y(this,"passkeyService",void 0),y(this,"onIssuerSelected",async e=>{try{const{data:t={}}=e;if(!t.issuer)return;const r=await this.passkeyService.captureRiskSignalsEnrollment(),{deviceId:n}=r,o=v(r,["deviceId"]);this.setState(u(m({},e),{data:u(m({},t),{riskSignals:o,deviceId:n})}))}catch(e){const t=e instanceof Error?e.message:"Unknown error in the onIssuerSelected";this.handleError(e instanceof s?e:new s(a,t))}}),y(this,"authorizeEnrollment",async e=>{try{var t;const r=await this.passkeyService.createCredentialForEnrollment(e),n={enrollmentId:null===(t=this.props.paymentMethodData)||void 0===t?void 0:t.enrollmentId,fidoAssertion:r},{redirectResult:o}=await d({enrollment:n,clientKey:this.props.clientKey,loadingContext:this.props.loadingContext});this.handleAdditionalDetails({data:{details:{redirectResult:o}}})}catch(e){const t=e instanceof Error?e.message:"Unknown error in the authorizeEnrollment";this.handleError(e instanceof s?e:new s(a,t))}}),y(this,"payWithStoredPayment",async()=>{try{const e=await this.passkeyService.captureRiskSignalsAuthentication(),{deviceId:t}=e,r=v(e,["deviceId"]);this.state=m({},this.state,{data:{storedPaymentMethodId:this.props.storedPaymentMethodId,riskSignals:r,deviceId:t}}),super.submit()}catch(e){const t=e instanceof Error?e.message:"Unknown error in the payWithStoredPayment";this.handleError(e instanceof s?e:new s(a,t))}}),y(this,"authorizePayment",async e=>{try{var t,r;const n=await this.passkeyService.authenticateWithCredential(e),o={enrollmentId:null===(t=this.props.paymentMethodData)||void 0===t?void 0:t.enrollmentId,initiationId:null===(r=this.props.paymentMethodData)||void 0===r?void 0:r.initiationId,fidoAssertion:n},{redirectResult:i}=await l({payment:o,clientKey:this.props.clientKey,loadingContext:this.props.loadingContext});this.handleAdditionalDetails({data:{details:{redirectResult:i}}})}catch(e){const t=e instanceof Error?e.message:"Unknown error in the authorizePayment";this.handleError(e instanceof s?e:new s(a,t))}});const o=this.props.storedPaymentMethodId?null===(n=this.props)||void 0===n||null===(r=n.payByBankPixDetails)||void 0===r?void 0:r.deviceId:this.props.deviceId;this.passkeyService=new p({environment:this.props.environment,deviceId:o}),this.props._isAdyenHosted&&this.passkeyService.initialize()}}y(f,"type",r.paybybank_pix),y(f,"TIMEOUT_MINUTES",1),y(f,"defaultProps",{showPayButton:!0,_isAdyenHosted:(()=>{try{return new URL(window.location.href).hostname.endsWith(".adyen.com")}catch(e){return!1}})(),countdownTime:f.TIMEOUT_MINUTES});export{f as default};
//# sourceMappingURL=PayByBankPix.js.map