@flopay/shared 1.4.16 → 1.4.18
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.
- package/README.md +34 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +88 -5
- package/dist/index.d.ts +88 -5
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -148,6 +148,15 @@ only allowlisted enum/numeric/opaque fields; arbitrary messages, stacks,
|
|
|
148
148
|
payloads, URLs, credentials, customer data, and unknown nested fields cannot
|
|
149
149
|
enter serialized events.
|
|
150
150
|
|
|
151
|
+
Detached session creation (TeamFloPay/backend#1099) is measured as two stages
|
|
152
|
+
so each phase can be tracked on its own: `session_shell` is create →
|
|
153
|
+
mountable card form, and `session_claim` is the background attach of buyer and
|
|
154
|
+
catalog data (request category `session_claim`, log names
|
|
155
|
+
`session.shell.ready`, `session.claim.started`, `session.claim.completed`).
|
|
156
|
+
`session_create` continues to span the whole logical create — shell *and* claim
|
|
157
|
+
— so existing end-to-end dashboards keep measuring the same thing, and reports
|
|
158
|
+
the create's attempt count rather than the claim's.
|
|
159
|
+
|
|
151
160
|
`TELEMETRY_LOG_NAMES` is the complete SDK-authored lifecycle catalog. The
|
|
152
161
|
`TELEMETRY_FAILURE_CATEGORIES` export is the complete technical-failure
|
|
153
162
|
catalog: `server_error`, `transport_error`, `invalid_response`, and
|
|
@@ -162,6 +171,31 @@ package identity (`@flopay/shared`, `@flopay/js`, or
|
|
|
162
171
|
[`docs/TELEMETRY.md`](../../docs/TELEMETRY.md) for the privacy and operational
|
|
163
172
|
policy.
|
|
164
173
|
|
|
174
|
+
### Host-owned Sentry filtering
|
|
175
|
+
|
|
176
|
+
Hosts that already use Sentry can install the dependency-free predicate as
|
|
177
|
+
their `beforeSend` callback:
|
|
178
|
+
|
|
179
|
+
```ts
|
|
180
|
+
import * as Sentry from '@sentry/browser';
|
|
181
|
+
import { dropThirdPartyOnlyError } from '@flopay/shared';
|
|
182
|
+
|
|
183
|
+
Sentry.init({ beforeSend: dropThirdPartyOnlyError });
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
It returns `null` only when every exception value has a non-empty stack, no
|
|
187
|
+
frame resolves to app code or an `@flopay/*` module, and at least one frame
|
|
188
|
+
resolves to a browser-extension URL or Stripe's hosted `dahlia/stripe.js`
|
|
189
|
+
controller. Other frames in a dropped stack may be anonymous or pathless.
|
|
190
|
+
Mixed, unrelated-CDN, incomplete, anonymous-only, and genuine app errors are
|
|
191
|
+
returned unchanged by identity. Frame provenance comes from paths and module
|
|
192
|
+
names; Sentry's `in_app` value is deliberately ignored because host source-map
|
|
193
|
+
rewriting can mark third-party frames as app-owned.
|
|
194
|
+
|
|
195
|
+
The helper is pure and structurally typed (`SentryEventLike` /
|
|
196
|
+
`SentryStackFrameLike`); it does not add an `@sentry/*` dependency, inspect
|
|
197
|
+
messages, or bundle Sentry configuration.
|
|
198
|
+
|
|
165
199
|
### Constants
|
|
166
200
|
|
|
167
201
|
| Export | Description |
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var Ut=Object.create;var b=Object.defineProperty;var wt=Object.getOwnPropertyDescriptor;var Gt=Object.getOwnPropertyNames;var Kt=Object.getPrototypeOf,Vt=Object.prototype.hasOwnProperty;var Yt=(e,t)=>{for(var r in t)b(e,r,{get:t[r],enumerable:!0})},Fe=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Gt(t))!Vt.call(e,n)&&n!==r&&b(e,n,{get:()=>t[n],enumerable:!(o=wt(t,n))||o.enumerable});return e};var Ht=(e,t,r)=>(r=e!=null?Ut(Kt(e)):{},Fe(t||!e||!e.__esModule?b(r,"default",{value:e,enumerable:!0}):r,e)),zt=e=>Fe(b({},"__esModule",{value:!0}),e);var Mr={};Yt(Mr,{BILLING_API_URL:()=>Ge,BILLING_API_URL_PRODUCTION:()=>W,BILLING_API_URL_STAGING:()=>C,BOLD_DARK_APPEARANCE:()=>J,BOLD_LIGHT_APPEARANCE:()=>$,BUTTONS_LAYOUT_BOLD_DARK:()=>_,BUTTONS_LAYOUT_BOLD_LIGHT:()=>R,BUTTONS_LAYOUT_DARK:()=>ne,BUTTONS_LAYOUT_DEFAULT:()=>te,BUTTONS_LAYOUT_GLASS_DARK:()=>k,BUTTONS_LAYOUT_GLASS_LIGHT:()=>P,BUTTONS_LAYOUT_MINIMAL:()=>re,BUTTONS_LAYOUT_MODERN_DARK:()=>I,BUTTONS_LAYOUT_MODERN_LIGHT:()=>h,BUTTONS_LAYOUT_ROUNDED:()=>oe,CA_PROVINCES:()=>me,COUNTRY_OPTIONS:()=>ue,CURRENCY_MAP:()=>B,DEFAULT_API_BASE_URL:()=>we,DEFAULT_API_VERSION:()=>Ve,DEFAULT_APPEARANCE:()=>Z,DEFAULT_CURRENCY:()=>N,ELEMENT_TYPES:()=>ot,FLAT_APPEARANCE:()=>Ye,FLO_SDK_VERSION_HEADER:()=>Ue,FloPayError:()=>c,GLASS_DARK_APPEARANCE:()=>ee,GLASS_LIGHT_APPEARANCE:()=>Q,IDEMPOTENCY_IN_PROGRESS_CODE:()=>_t,IDEMPOTENCY_KEY_HEADER:()=>Rt,MAX_IDEMPOTENCY_KEY_LENGTH:()=>L,MODERN_DARK_APPEARANCE:()=>X,MODERN_LIGHT_APPEARANCE:()=>j,NIGHT_APPEARANCE:()=>He,SDK_VERSION:()=>Oe,STRIPE_EXPRESS_METHODS:()=>ie,STRIPE_METHOD_AMOUNT_LIMITS:()=>ce,STRIPE_METHOD_COUNTRIES:()=>de,STRIPE_METHOD_CURRENCIES:()=>se,STRIPE_METHOD_MATRIX:()=>g,SUPPORTED_CARD_BRANDS:()=>nt,TELEMETRY_ERROR_CODES:()=>w,TELEMETRY_FAILURE_CATEGORIES:()=>G,TELEMETRY_LOG_NAMES:()=>K,TELEMETRY_MAX_BATCH_BYTES:()=>Ie,TELEMETRY_MAX_BATCH_EVENTS:()=>Re,TELEMETRY_SCHEMA_VERSION:()=>he,TELEMETRY_SDK_PACKAGES:()=>U,THEMES:()=>ae,US_STATES:()=>pe,UUID_V4:()=>M,apiError:()=>xe,authenticationError:()=>Te,buildCheckoutDisplayData:()=>Tt,buildItemPayload:()=>ft,buildProductPayload:()=>bt,buildSubscriptionPayload:()=>xt,buildTelemetryErrorEvent:()=>V,buildTelemetryLogEvent:()=>Y,buildTelemetryPerformanceEvent:()=>z,buildTelemetryTerminalEvent:()=>H,classifyTelemetryFailure:()=>Be,configureFlopay:()=>Ne,filterStripeMethodsByAmount:()=>tt,filterStripeMethodsByCountry:()=>et,filterStripeMethodsByCurrency:()=>Qe,foldIntoProducts:()=>Ft,generateIdempotencyKey:()=>ye,getConfiguredBillingApiUrl:()=>A,getCountryByCode:()=>st,getCurrencyByCountry:()=>St,getFloPayEnvironment:()=>ve,getPostalCodeExample:()=>Et,getPostalCodeLabel:()=>at,getStateFromPostalCode:()=>pt,getStateLabel:()=>lt,getStateOptions:()=>ut,getStripeMethodDisplayName:()=>Xe,hasVendoredStripeMethodLogo:()=>je,isAVSEnabled:()=>ct,isAVSFieldVisible:()=>dt,isPostalCodeSupported:()=>yt,isSetupIntentClientSecret:()=>It,isUuidV4:()=>kt,isValidPostalCode:()=>Ct,isValidPublishableKey:()=>At,isValidSecretKey:()=>ht,needsStripeMethodExplicitConfirm:()=>$e,networkError:()=>Ae,normalizeGatewayEnvironment:()=>be,partitionStripeMethods:()=>rt,randomUuidV4:()=>Bt,rateLimitError:()=>Se,resolveAVSConfig:()=>le,resolveBillingApiUrl:()=>Ke,resolveButtonsLayoutTheme:()=>ze,resolveIdempotencyKey:()=>Pt,resolveSessionCurrency:()=>D,resolveStripeMethodBrandVariant:()=>Je,resolveTheme:()=>qe,serializeTelemetryBatch:()=>ke,stripeExpressMethodToOptionKey:()=>We,telemetryStatusClass:()=>S,validationError:()=>fe});module.exports=zt(Mr);function be(e){if(e!=null)switch(e){case"sandbox":case"stage":return"sandbox";case"live":case"production":return"live";default:console.warn(`[FloPay] Unrecognized gateway environment "${e}". Expected one of: sandbox, live, stage, production. Falling back to undefined.`);return}}var c=class extends Error{constructor(t,r,o){super(t),this.name="FloPayError",this.type=r,this.code=o?.code,this.declineCode=o?.declineCode,this.param=o?.param,this.statusCode=o?.statusCode,Object.setPrototypeOf(this,new.target.prototype)}};function fe(e,t){return new c(e,"validation_error",{param:t})}function xe(e,t,r){return new c(e,"api_error",{code:t,statusCode:r})}function Te(e){return new c(e,"authentication_error")}function Se(e){return new c(e,"rate_limit_error")}function Ae(e){return new c(e,"network_error")}var he=1,U=["@flopay/shared","@flopay/js","@flopay/react"],Ie=32768,Re=20,qt=["stripe","paypal"],Wt=["card","wallet","paypal","apm","saved","unknown"],Zt=["callback","sdk_initialize","checkout_mount","session_create","session_read","session_first_byte","session_complete","checkout_data_ready","checkout_render","checkout_interactive","provider_load","provider_ready","overlay_open","overlay_return","redirect","redirect_resume","vault_request","vault_mount","vault_ready","vault_submit","tokenization","three_ds_handoff","three_ds_return","processing","recovery","completion","unmount","total_journey"],w=["CALLBACK_FAILED","CHECKOUT_SESSION_CREATE_FAILED","CONFIGURATION_INVALID","INTERNAL_SDK_ERROR","NETWORK_REQUEST_FAILED","PAYMENT_PROCESSING_FAILED","POPUP_BLOCKED","PROVIDER_LOAD_FAILED","PROVIDER_RUNTIME_FAILED","RECOVERY_FAILED","REDIRECT_RESUME_FAILED","REQUEST_TIMEOUT","SDK_INITIALIZATION_FAILED","THREE_DS_FAILED","TOKENIZATION_FAILED","VAULT_LOAD_FAILED","VAULT_SUBMIT_FAILED"],G=["server_error","transport_error","invalid_response","provider_runtime"],K=["sdk.initialize.started","sdk.initialize.ready","sdk.cache.hit","sdk.cache.miss","checkout.mount","session.create.started","session.read.started","session.request.first_byte","session.request.completed","checkout.data.ready","checkout.rendered","checkout.interactive","checkout.recovery.started","checkout.recovery.completed","checkout.unmount","provider.load.started","provider.eligibility.checked","provider.availability.checked","provider.ready","provider.popup.opened","provider.overlay.opened","provider.overlay.returned","provider.redirect.started","provider.redirect.resumed","vault.capture.requested","vault.widget.mounted","vault.widget.ready","vault.submission.started","vault.action.required","vault.three_ds.handoff","vault.three_ds.returned","vault.terminal","payment.method.selected","payment.intent.started","payment.intent.completed","payment.tokenization.started","payment.tokenization.completed","payment.processing.started","payment.processing.completed","payment.three_ds.handoff","payment.three_ds.returned","operation.retry","operation.deduplicated","operation.fallback","operation.cache.hit","operation.cache.miss","operation.recovery.started","operation.recovery.completed","operation.state_transition"],jt=["session_create","session_read","intent_create","process_payment","vault_capture","account_snapshot","provider_sdk","other"],Xt=["2xx","3xx","4xx","5xx","network_error","timeout","unknown"],$t=["full","auto","confirm","unknown"],Jt=["embedded","buttons","automatic","unknown"],Qt=["machine","buyer","total"],er=["action_required","customer_abandoned","payment_cancelled","payment_declined","payment_succeeded","validation_rejected"],_e=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,tr=/^\d{1,4}\.\d{1,4}\.\d{1,4}(?:-[0-9A-Za-z.-]{1,32})?$/,rr=new Set(w),or=new Set(G),f=new Set(Zt),nr=new Set(qt),ar=new Set(Wt),ir=new Set(K),sr=new Set($t),dr=new Set(Jt),cr=new Set(jt),ur=new Set(Xt),lr=new Set(Qt),pr=new Set(er),mr=new Set(U),Pe=12e4;function l(e,t,r){return typeof e=="string"&&t.has(e)?e:r}function gr(){try{let r=globalThis.crypto.randomUUID();if(_e.test(r))return r}catch{}let e=new Uint8Array(16);try{globalThis.crypto.getRandomValues(e)}catch{for(let r=0;r<e.length;r+=1)e[r]=Math.floor(Math.random()*256)}e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function y(e){return typeof e=="string"&&_e.test(e)?e:gr()}function yr(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=100?e:void 0}function x(e){return Number.isSafeInteger(e)&&e>=0?Math.min(e,1e6):0}function Cr(e){return!Number.isFinite(e)||e<0?0:Math.min(Math.round(e),Pe)}function Er(e){return Number.isFinite(e)&&e>Pe}function T(e,t){let r=yr(t.attempt);return t.provider&&nr.has(t.provider)&&(e.provider=t.provider),r!==void 0&&(e.attempt=r),t.statusClass&&(e.statusClass=l(t.statusClass,ur,"unknown")),t.requestCategory&&(e.requestCategory=l(t.requestCategory,cr,"other")),t.paymentMethodCategory&&(e.paymentMethodCategory=l(t.paymentMethodCategory,ar,"unknown")),t.checkoutMode&&(e.checkoutMode=l(t.checkoutMode,sr,"unknown")),t.layout&&(e.layout=l(t.layout,dr,"unknown")),e}function V(e){let t=T({eventId:y(e.eventId),class:"technical_error",code:l(e.errorCode,rr,"INTERNAL_SDK_ERROR"),stage:l(e.stage,f,"sdk_initialize"),sequence:x(e.sequence)},e);return e.failureCategory&&or.has(e.failureCategory)&&(t.failureCategory=e.failureCategory),t}function Y(e){return T({eventId:y(e.eventId),class:"lifecycle",name:l(e.name,ir,"operation.retry"),stage:l(e.stage,f,"sdk_initialize"),sequence:x(e.sequence)},e)}function H(e){let t={...e,stage:e.stage??"completion"};return T({eventId:y(e.eventId),class:"expected_outcome",outcome:l(e.outcome,pr,"customer_abandoned"),stage:l(e.stage,f,"completion"),sequence:x(e.sequence)},t)}function z(e){let t=T({eventId:y(e.eventId),class:"performance",stage:l(e.stage,f,"sdk_initialize"),sequence:x(e.sequence),durationMs:Cr(e.durationMs),durationMode:l(e.durationMode,lr,"machine")},e);return(e.durationTruncated===!0||Er(e.durationMs))&&(t.durationTruncated=!0),t}function ke(e,t){let r=e.slice(0,20).flatMap(n=>n.class==="technical_error"?[V({...n,errorCode:n.code})]:n.class==="lifecycle"?[Y(n)]:n.class==="expected_outcome"?[H(n)]:n.class==="performance"?[z(n)]:[]),o={schemaVersion:1,batchId:y(t.batchId),correlationId:y(t.correlationId),sdk:{package:l(t.sdkPackage,mr,"@flopay/shared"),version:tr.test(t.sdkVersion)?t.sdkVersion:"0.0.0"},events:r};return JSON.stringify(o)}var Fr=new Set(["InvalidCheckoutSessionResponse","InvalidSessionIntentResponse"]);function Be(e,t,r="network_error"){if(e instanceof c&&e.code!==void 0&&Fr.has(e.code))return{errorCode:t,statusClass:S(e.statusCode,"unknown"),failureCategory:"invalid_response"};if(e instanceof Error&&(e.name==="AbortError"||e instanceof c&&e.code==="checkout_processing_timeout"))return{errorCode:"REQUEST_TIMEOUT",statusClass:"timeout",failureCategory:"transport_error"};if(e instanceof TypeError||e instanceof c&&e.type==="network_error")return{errorCode:"NETWORK_REQUEST_FAILED",statusClass:"network_error",failureCategory:"transport_error"};let o=S(e instanceof c?e.statusCode:void 0,r);return{errorCode:t,statusClass:o,...o==="5xx"?{failureCategory:"server_error"}:{}}}function S(e,t="network_error"){if(e===void 0)return t;let r=`${Math.floor(e/100)}xx`;return r==="2xx"||r==="3xx"||r==="4xx"||r==="5xx"?r:"unknown"}var br={local:"https://flo.ngrok.pro",staging:"https://api.stage.flopay.com",production:"https://api.flopay.com"},q="staging";function Ne(e){q=e.environment}function A(){return br[q]}function ve(){return q}var De=["alipay","bancontact","blik","eps","giropay","ideal","klarna","p24","sepa_debit","wechat_pay"];var Oe="1.4.16",Ue="x-flo-sdk-version",C="https://api.stage.flopay.com",W="https://api.flopay.com",we=C,Ge=C;function Ke(e){return e||(typeof process<"u"&&process.env?.NEXT_PUBLIC_FLOPAY_ENV?process.env.NEXT_PUBLIC_FLOPAY_ENV==="production"?W:C:A())}var Ve="2024-01-01",Z={theme:"default",variables:{colorPrimary:"#4A49FF",colorBackground:"#FFFFFF",colorText:"#262833",colorDanger:"#DF1B41",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},Ye={theme:"flat",variables:{...Z.variables,borderRadius:"4px"}},He={theme:"night",variables:{colorPrimary:"#7B7BFF",colorBackground:"#1A1A2E",colorText:"#E0E0E0",colorDanger:"#FF6B6B",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},j={theme:"default",variables:{colorPrimary:"#1785E0",colorBackground:"#FFFFFF",colorText:"#0F172A",colorDanger:"#EF4444",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{padding:"14px 16px",border:"1.5px solid #E5E7EB",boxShadow:"0 1px 2px rgba(15,23,42,0.04)"},".Input:focus":{borderColor:"#1785E0",boxShadow:"0 0 0 4px rgba(23,133,224,0.12)"},".Label":{fontWeight:"500",color:"#475569",marginBottom:"6px"},".Tab":{padding:"12px 16px",borderRadius:"12px",border:"1.5px solid #E5E7EB"},".Tab:hover":{borderColor:"#CBD5E1"},".Tab--selected":{borderColor:"#1785E0",boxShadow:"0 0 0 1px #1785E0"}}},X={theme:"night",variables:{colorPrimary:"#60A5FA",colorBackground:"#0B1220",colorText:"#F1F5F9",colorDanger:"#F87171",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"#111827",padding:"14px 16px",border:"1.5px solid #1F2937",color:"#F1F5F9",boxShadow:"none"},".Input:focus":{borderColor:"#60A5FA",boxShadow:"0 0 0 4px rgba(96,165,250,0.18)"},".Label":{fontWeight:"500",color:"#94A3B8",marginBottom:"6px"},".Tab":{padding:"12px 16px",borderRadius:"12px",border:"1.5px solid #1F2937",backgroundColor:"#111827",color:"#F1F5F9"},".Tab:hover":{borderColor:"#374151"},".Tab--selected":{borderColor:"#60A5FA",boxShadow:"0 0 0 1px #60A5FA"}}},$={theme:"default",variables:{colorPrimary:"#1785E0",colorBackground:"#FFFFFF",colorText:"#0C2B4D",colorDanger:"#DC2626",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"5px"},rules:{".Input":{padding:"14px 16px",border:"2px solid #E5E7EB"},".Input:focus":{borderColor:"#1785E0",boxShadow:"0 0 0 3px rgba(23,133,224,0.2)"},".Label":{fontWeight:"600",color:"#0C2B4D"},".Tab":{padding:"14px 18px",border:"2px solid #E5E7EB",fontWeight:"600"},".Tab--selected":{borderColor:"#1785E0",boxShadow:"0 0 0 1px #1785E0"}}},J={theme:"night",variables:{colorPrimary:"#60A5FA",colorBackground:"#0C2B4D",colorText:"#FFFFFF",colorDanger:"#F87171",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"#1E3A8A",padding:"14px 16px",border:"2px solid #1E40AF",color:"#FFFFFF"},".Input:focus":{borderColor:"#60A5FA",boxShadow:"0 0 0 3px rgba(96,165,250,0.25)"},".Label":{fontWeight:"600",color:"#DBEAFE"},".Tab":{padding:"14px 18px",border:"2px solid #1E40AF",backgroundColor:"#1E3A8A",color:"#FFFFFF",fontWeight:"600"},".Tab--selected":{borderColor:"#60A5FA",boxShadow:"0 0 0 1px #60A5FA"}}},Q={theme:"default",variables:{colorPrimary:"#1785E0",colorBackground:"#FFFFFF",colorText:"#1E293B",colorDanger:"#EF4444",borderRadius:"16px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"rgba(255,255,255,0.6)",backdropFilter:"blur(10px)",padding:"14px 16px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.5), 0 1px 3px rgba(23,133,224,0.08)"},".Input:focus":{borderColor:"rgba(23,133,224,0.5)",boxShadow:"0 0 0 3px rgba(23,133,224,0.15)"},".Label":{fontWeight:"500",color:"#475569"},".Tab":{padding:"12px 16px",backgroundColor:"rgba(255,255,255,0.5)",border:"1px solid rgba(255,255,255,0.6)",borderRadius:"14px"},".Tab--selected":{borderColor:"rgba(23,133,224,0.6)",boxShadow:"0 0 0 1px rgba(23,133,224,0.6)"}}},ee={theme:"night",variables:{colorPrimary:"#60A5FA",colorBackground:"#0F172A",colorText:"#F1F5F9",colorDanger:"#F87171",borderRadius:"16px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(10px)",padding:"14px 16px",border:"1px solid rgba(255,255,255,0.08)",color:"#F1F5F9"},".Input:focus":{borderColor:"rgba(96,165,250,0.5)",boxShadow:"0 0 0 3px rgba(96,165,250,0.2)"},".Label":{fontWeight:"500",color:"#94A3B8"},".Tab":{padding:"12px 16px",backgroundColor:"rgba(15,23,42,0.6)",border:"1px solid rgba(255,255,255,0.08)",borderRadius:"14px",color:"#F1F5F9"},".Tab--selected":{borderColor:"rgba(96,165,250,0.6)",boxShadow:"0 0 0 1px rgba(96,165,250,0.6)"}}},te={},re={cardButton:{border:"none",backgroundColor:"#f9fafb",boxShadow:"none"},cardFormContainer:{backgroundColor:"#f9fafb",border:"none"},cardInputBorder:"#e5e7eb",backButtonIcon:{backgroundColor:"#e5e7eb"},submitButton:{borderRadius:"6px"}},oe={cardButton:{borderRadius:"9999px",border:"1px solid #e5e7eb",boxShadow:"0 1px 3px rgba(0,0,0,0.06)"},cardFormContainer:{borderRadius:"16px",border:"1px solid #e5e7eb",boxShadow:"0 2px 8px rgba(0,0,0,0.06)"},cardInputBorder:"#d1d5db",submitButton:{borderRadius:"9999px"},backButtonIcon:{backgroundColor:"#f3f4f6"}},ne={cardButton:{backgroundColor:"#1f2937",color:"#f9fafb",border:"1px solid #374151",boxShadow:"none"},cardFormContainer:{backgroundColor:"#111827",border:"1px solid #374151"},cardInputBorder:"#4b5563",cardInputColor:"#f9fafb",cardInputPlaceholderColor:"#6b7280",cardInputBackground:"#1f2937",nameInput:{backgroundColor:"#1f2937",color:"#f9fafb"},backButton:{color:"#9ca3af"},backButtonIcon:{backgroundColor:"#374151"},submitButton:{backgroundColor:"#6366f1"},title:{color:"#f9fafb"},countrySelect:{backgroundColor:"#1f2937",color:"#f9fafb"},zipInput:{backgroundColor:"#1f2937",color:"#f9fafb"}},h={cardFormContainer:{backgroundColor:"#FAFAFA",borderRadius:"20px",border:"1px solid #E5E7EB",boxShadow:"0 8px 24px rgba(15,23,42,0.04)",padding:"24px"},cardButton:{backgroundColor:"#FFFFFF",borderRadius:"14px",border:"1.5px solid #E5E7EB",boxShadow:"0 1px 2px rgba(15,23,42,0.04)",padding:"14px 18px"},cardInputBorder:"#E5E7EB",nameInput:{backgroundColor:"#FFFFFF",border:"1.5px solid #E5E7EB",borderRadius:"14px",padding:"14px 16px"},submitButton:{backgroundColor:"#1785E0",borderRadius:"14px",padding:"16px 24px",boxShadow:"0 4px 14px rgba(23,133,224,0.25)",fontWeight:"600"},title:{color:"#0F172A",fontWeight:"600"},titleFontSize:"20px",backButton:{color:"#64748B"},backButtonIcon:{backgroundColor:"#F1F5F9"}},I={cardFormContainer:{backgroundColor:"#111827",borderRadius:"20px",border:"1px solid #1F2937",boxShadow:"0 8px 24px rgba(0,0,0,0.2)",padding:"24px"},cardButton:{backgroundColor:"#0B1220",borderRadius:"14px",border:"1.5px solid #1F2937",color:"#F1F5F9",padding:"14px 18px"},cardInputBorder:"#1F2937",cardInputBackground:"#111827",cardInputColor:"#F1F5F9",cardInputPlaceholderColor:"#64748B",nameInput:{backgroundColor:"#111827",border:"1.5px solid #1F2937",borderRadius:"14px",padding:"14px 16px",color:"#F1F5F9"},submitButton:{backgroundColor:"#60A5FA",borderRadius:"14px",padding:"16px 24px",boxShadow:"0 4px 14px rgba(96,165,250,0.3)",fontWeight:"600",color:"#0B1220"},title:{color:"#F1F5F9",fontWeight:"600"},titleFontSize:"20px",backButton:{color:"#94A3B8"},backButtonIcon:{backgroundColor:"#1F2937"},countrySelect:{backgroundColor:"#111827",color:"#F1F5F9"},zipInput:{backgroundColor:"#111827",color:"#F1F5F9"}},R={cardFormContainer:{backgroundColor:"#EFF6FF",borderRadius:"20px",border:"2px solid #1785E0",padding:"24px"},cardButton:{backgroundColor:"#FFFFFF",borderRadius:"12px",border:"2px solid #1785E0",color:"#1785E0",fontWeight:"700",padding:"14px 18px"},cardInputBorder:"#E5E7EB",nameInput:{backgroundColor:"#FFFFFF",border:"2px solid #E5E7EB",borderRadius:"12px",padding:"14px 16px",fontWeight:"500"},submitButton:{background:"linear-gradient(135deg, #1785E0 0%, #0EA5E9 100%)",borderRadius:"9999px",padding:"16px 24px",boxShadow:"0 10px 25px rgba(23,133,224,0.35)",fontWeight:"700",color:"#FFFFFF",border:"none"},submitButtonFontSize:"17px",title:{color:"#0C2B4D",fontWeight:"800",letterSpacing:"-0.02em"},titleFontSize:"22px",backButton:{color:"#1785E0",fontWeight:"600"},backButtonIcon:{backgroundColor:"#DBEAFE"}},_={cardFormContainer:{backgroundColor:"#1E3A8A",borderRadius:"20px",border:"2px solid #60A5FA",padding:"24px"},cardButton:{backgroundColor:"#0C2B4D",borderRadius:"12px",border:"2px solid #60A5FA",color:"#60A5FA",fontWeight:"700",padding:"14px 18px"},cardInputBorder:"#1E40AF",cardInputBackground:"#1E3A8A",cardInputColor:"#FFFFFF",cardInputPlaceholderColor:"#60A5FA",nameInput:{backgroundColor:"#1E3A8A",border:"2px solid #1E40AF",borderRadius:"12px",padding:"14px 16px",fontWeight:"500",color:"#FFFFFF"},submitButton:{background:"linear-gradient(135deg, #60A5FA 0%, #38BDF8 100%)",borderRadius:"9999px",padding:"16px 24px",boxShadow:"0 10px 25px rgba(96,165,250,0.35)",fontWeight:"700",color:"#FFFFFF",border:"none"},submitButtonFontSize:"17px",title:{color:"#FFFFFF",fontWeight:"800",letterSpacing:"-0.02em"},titleFontSize:"22px",backButton:{color:"#DBEAFE",fontWeight:"600"},backButtonIcon:{backgroundColor:"#1E40AF"},countrySelect:{backgroundColor:"#1E3A8A",color:"#FFFFFF"},zipInput:{backgroundColor:"#1E3A8A",color:"#FFFFFF"}},P={cardFormContainer:{background:"linear-gradient(135deg, #DBEAFE 0%, #BFDBFE 100%)",borderRadius:"24px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.6), 0 12px 40px rgba(23,133,224,0.15)",padding:"28px"},cardButton:{backgroundColor:"rgba(255,255,255,0.7)",backdropFilter:"blur(20px)",borderRadius:"16px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.5), 0 4px 16px rgba(23,133,224,0.1)",padding:"14px 18px"},cardInputBorder:"rgba(255,255,255,0.6)",nameInput:{backgroundColor:"rgba(255,255,255,0.6)",backdropFilter:"blur(10px)",border:"1px solid rgba(255,255,255,0.6)",borderRadius:"14px",padding:"14px 16px"},submitButton:{backgroundColor:"rgba(23,133,224,0.95)",backdropFilter:"blur(10px)",borderRadius:"16px",padding:"16px 24px",boxShadow:"0 10px 30px rgba(23,133,224,0.3), inset 0 1px 0 rgba(255,255,255,0.2)",fontWeight:"600",color:"#FFFFFF"},title:{color:"#1E293B",fontWeight:"600",letterSpacing:"-0.01em"},titleFontSize:"20px",backButton:{color:"#1785E0",fontWeight:"500"},backButtonIcon:{backgroundColor:"rgba(255,255,255,0.7)"}},k={cardFormContainer:{background:"linear-gradient(135deg, #0C2B4D 0%, #0F172A 100%)",borderRadius:"24px",border:"1px solid rgba(255,255,255,0.08)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.06), 0 20px 50px rgba(0,0,0,0.4)",padding:"28px"},cardButton:{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(20px)",borderRadius:"16px",border:"1px solid rgba(255,255,255,0.08)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.05), 0 4px 16px rgba(0,0,0,0.3)",padding:"14px 18px",color:"#F1F5F9"},cardInputBorder:"rgba(255,255,255,0.08)",cardInputBackground:"rgba(15,23,42,0.6)",cardInputColor:"#F1F5F9",cardInputPlaceholderColor:"#64748B",nameInput:{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(10px)",border:"1px solid rgba(255,255,255,0.08)",borderRadius:"14px",padding:"14px 16px",color:"#F1F5F9"},submitButton:{backgroundColor:"rgba(96,165,250,0.9)",backdropFilter:"blur(10px)",borderRadius:"16px",padding:"16px 24px",boxShadow:"0 10px 30px rgba(96,165,250,0.35), inset 0 1px 0 rgba(255,255,255,0.15)",fontWeight:"600",color:"#0F172A"},title:{color:"#F1F5F9",fontWeight:"600",letterSpacing:"-0.01em"},titleFontSize:"20px",backButton:{color:"#60A5FA",fontWeight:"500"},backButtonIcon:{backgroundColor:"rgba(255,255,255,0.08)"},countrySelect:{backgroundColor:"rgba(15,23,42,0.6)",color:"#F1F5F9"},zipInput:{backgroundColor:"rgba(15,23,42,0.6)",color:"#F1F5F9"}};function ze(e){switch(e){case"minimal":return re;case"rounded":return oe;case"dark":return ne;case"modern-light":return h;case"modern-dark":return I;case"bold-light":return R;case"bold-dark":return _;case"glass-light":return P;case"glass-dark":return k;default:return te}}var ae={"modern-light":{appearance:j,buttonsLayout:h},"modern-dark":{appearance:X,buttonsLayout:I},"bold-light":{appearance:$,buttonsLayout:R},"bold-dark":{appearance:J,buttonsLayout:_},"glass-light":{appearance:Q,buttonsLayout:P},"glass-dark":{appearance:ee,buttonsLayout:k}};function qe(e){if(!(!e||e==="classic"))return ae[e]}function We(e){switch(e){case"apple_pay":return"applePay";case"google_pay":return"googlePay";case"amazon_pay":return"amazonPay";default:return e}}function i(e,t,r){return`<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><circle cx="11" cy="11" r="11" fill="${t}"/><text x="11" y="15.5" text-anchor="middle" font-size="13" font-weight="700" font-family="-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif" fill="${r}">${e}</text></svg>`}function Le(e,t){return`<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><circle cx="11" cy="11" r="11" fill="${e}"/><g fill="${t}"><path d="M11 4 L17.5 8 L4.5 8 Z"/><rect x="5" y="8.4" width="12" height="1.2" rx="0.3"/><rect x="5.9" y="10" width="1.5" height="5"/><rect x="8.55" y="10" width="1.5" height="5"/><rect x="11.95" y="10" width="1.5" height="5"/><rect x="14.6" y="10" width="1.5" height="5"/><rect x="4.6" y="15.4" width="12.8" height="1.5" rx="0.3"/></g></svg>`}var Ze=["AT","BE","BG","CY","CZ","DE","DK","EE","ES","FI","FR","GR","HR","HU","IE","IT","LT","LU","LV","MT","NL","PL","PT","RO","SE","SI","SK","IS","LI","NO","CH","GB","MC","SM","AD","VA"],fr=[...Ze,"JP","MX","US"],g={apple_pay:{displayName:"Apple Pay",currencies:["*"],express:!0,needsExplicitConfirm:!1},google_pay:{displayName:"Google Pay",currencies:["*"],express:!0,needsExplicitConfirm:!1},paypal:{displayName:"PayPal",currencies:["eur","gbp","usd","cad","aud","nzd","chf","jpy","pln","sek","nok","dkk","czk","huf"],express:!0,needsExplicitConfirm:!1},link:{displayName:"Link",currencies:["usd","eur"],express:!0,needsExplicitConfirm:!1},amazon_pay:{displayName:"Amazon Pay",currencies:["usd","eur","gbp"],express:!0,needsExplicitConfirm:!1},klarna:{displayName:"Klarna",currencies:["usd","eur","gbp","aud","nzd","cad","chf","sek","nok","dkk","pln","czk","ron"],amounts:{usd:{min:100},eur:{min:100},gbp:{min:100}},theme:{light:{backgroundColor:"#FFB3C7",textColor:"#0A0B09",borderColor:"#FFB3C7",logoSvg:i("K","#0A0B09","#FFB3C7")},dark:{backgroundColor:"#FFB3C7",textColor:"#0A0B09",borderColor:"#FFB3C7",logoSvg:i("K","#0A0B09","#FFB3C7")}}},affirm:{displayName:"Affirm",currencies:["usd"],countries:["US","CA"],amounts:{usd:{min:3500,max:3e6}},needsExplicitConfirm:!1,theme:{light:{backgroundColor:"#060F33",textColor:"#FFFFFF",borderColor:"#060F33",logoSvg:i("a","#FFFFFF","#060F33")},dark:{backgroundColor:"#0FA0EA",textColor:"#060F33",borderColor:"#0FA0EA",logoSvg:i("a","#060F33","#FFFFFF")}}},cashapp:{displayName:"Cash App Pay",currencies:["usd"],countries:["US"],amounts:{usd:{min:50,max:99999999}},needsExplicitConfirm:!1,theme:{light:{backgroundColor:"#00D54B",textColor:"#0A1F0E",borderColor:"#00D54B",logoSvg:i("$","#0A1F0E","#00D54B")},dark:{backgroundColor:"#00D54B",textColor:"#0A1F0E",borderColor:"#00D54B",logoSvg:i("$","#0A1F0E","#00D54B")}}},afterpay_clearpay:{displayName:"Afterpay",currencies:["usd","aud","cad","gbp","nzd"],countries:["US","CA","GB","AU","NZ"],amounts:{usd:{min:100,max:2e5},cad:{min:100,max:2e5},gbp:{min:100,max:12e4},aud:{min:100,max:2e5},nzd:{min:100,max:2e5}},theme:{light:{backgroundColor:"#B2FCE4",textColor:"#0A0B09",borderColor:"#B2FCE4",logoSvg:i("A","#0A0B09","#B2FCE4")},dark:{backgroundColor:"#B2FCE4",textColor:"#0A0B09",borderColor:"#B2FCE4",logoSvg:i("A","#0A0B09","#B2FCE4")}}},alipay:{displayName:"Alipay",currencies:["usd","cny"],theme:{light:{backgroundColor:"#1677FF",textColor:"#FFFFFF",borderColor:"#1677FF",logoSvg:i("A","#FFFFFF","#1677FF")},dark:{backgroundColor:"#1677FF",textColor:"#FFFFFF",borderColor:"#1677FF",logoSvg:i("A","#FFFFFF","#1677FF")}}},au_becs_debit:{displayName:"BECS Direct Debit",currencies:["aud"],countries:["AU"]},bacs_debit:{displayName:"Bacs Debit",currencies:["gbp"],countries:["GB"]},bancontact:{displayName:"Bancontact",currencies:["eur"],countries:["BE"],theme:{light:{backgroundColor:"#FFDD55",textColor:"#1E3791",borderColor:"#FFDD55",logoSvg:i("B","#1E3791","#FFDD55")},dark:{backgroundColor:"#1E3791",textColor:"#FFDD55",borderColor:"#1E3791",logoSvg:i("B","#FFDD55","#1E3791")}}},bizum:{displayName:"Bizum",currencies:["eur"],countries:["ES"],theme:{light:{backgroundColor:"#00BFB3",textColor:"#FFFFFF",borderColor:"#00BFB3",logoSvg:i("B","#FFFFFF","#00BFB3")},dark:{backgroundColor:"#00BFB3",textColor:"#FFFFFF",borderColor:"#00BFB3",logoSvg:i("B","#FFFFFF","#00BFB3")}}},blik:{displayName:"BLIK",currencies:["pln"],countries:["PL"],theme:{light:{backgroundColor:"#000000",textColor:"#FFFFFF",borderColor:"#000000",logoSvg:i("B","#FFFFFF","#000000")},dark:{backgroundColor:"#FFFFFF",textColor:"#000000",borderColor:"#FFFFFF",logoSvg:i("B","#000000","#FFFFFF")}}},boleto:{displayName:"Boleto",currencies:["brl"],countries:["BR"]},customer_balance:{displayName:"Bank Transfer",currencies:["eur","usd"],countries:fr,theme:{light:{backgroundColor:"#1F2937",textColor:"#FFFFFF",borderColor:"#1F2937",logoSvg:Le("#1F2937","#FFFFFF")},dark:{backgroundColor:"#374151",textColor:"#FFFFFF",borderColor:"#374151",logoSvg:Le("#374151","#FFFFFF")}}},eps:{displayName:"EPS",currencies:["eur"],countries:["AT"],theme:{light:{backgroundColor:"#C8102E",textColor:"#FFFFFF",borderColor:"#C8102E",logoSvg:i("E","#FFFFFF","#C8102E")},dark:{backgroundColor:"#C8102E",textColor:"#FFFFFF",borderColor:"#C8102E",logoSvg:i("E","#FFFFFF","#C8102E")}}},giropay:{displayName:"Giropay",currencies:["eur"],countries:["DE"],theme:{light:{backgroundColor:"#0F4197",textColor:"#FFFFFF",borderColor:"#0F4197",logoSvg:i("G","#FFFFFF","#0F4197")},dark:{backgroundColor:"#0F4197",textColor:"#FFFFFF",borderColor:"#0F4197",logoSvg:i("G","#FFFFFF","#0F4197")}}},ideal:{displayName:"iDEAL",currencies:["eur"],countries:["NL"],theme:{light:{backgroundColor:"#CC0066",textColor:"#FFFFFF",borderColor:"#CC0066",logoSvg:i("i","#FFFFFF","#CC0066")},dark:{backgroundColor:"#CC0066",textColor:"#FFFFFF",borderColor:"#CC0066",logoSvg:i("i","#FFFFFF","#CC0066")}}},konbini:{displayName:"Konbini",currencies:["jpy"],countries:["JP"]},kr_card:{displayName:"Korean Card",currencies:["krw"],countries:["KR"],theme:{light:{backgroundColor:"#0B3D91",textColor:"#FFFFFF",borderColor:"#0B3D91",logoSvg:i("K","#FFFFFF","#0B3D91")},dark:{backgroundColor:"#0B3D91",textColor:"#FFFFFF",borderColor:"#0B3D91",logoSvg:i("K","#FFFFFF","#0B3D91")}}},multibanco:{displayName:"Multibanco",currencies:["eur"],countries:["PT"]},oxxo:{displayName:"OXXO",currencies:["mxn"],countries:["MX"]},p24:{displayName:"Przelewy24",currencies:["eur","pln"],countries:["PL"],theme:{light:{backgroundColor:"#D90F1B",textColor:"#FFFFFF",borderColor:"#D90F1B",logoSvg:i("P","#FFFFFF","#D90F1B")},dark:{backgroundColor:"#D90F1B",textColor:"#FFFFFF",borderColor:"#D90F1B",logoSvg:i("P","#FFFFFF","#D90F1B")}}},paynow:{displayName:"PayNow",currencies:["sgd"],countries:["SG"]},pix:{displayName:"Pix",currencies:["brl"],countries:["BR"]},promptpay:{displayName:"PromptPay",currencies:["thb"],countries:["TH"]},sepa_debit:{displayName:"SEPA Debit",currencies:["eur"],countries:Ze,theme:{light:{backgroundColor:"#10298E",textColor:"#FFFFFF",borderColor:"#10298E",logoSvg:i("\u20AC","#FFFFFF","#10298E")},dark:{backgroundColor:"#3056D3",textColor:"#FFFFFF",borderColor:"#3056D3",logoSvg:i("\u20AC","#FFFFFF","#3056D3")}}},sofort:{displayName:"Sofort",currencies:["eur"],countries:["AT","BE","DE","ES","IT","NL"],theme:{light:{backgroundColor:"#EF809F",textColor:"#FFFFFF",borderColor:"#EF809F",logoSvg:i("S","#FFFFFF","#EF809F")},dark:{backgroundColor:"#EF809F",textColor:"#FFFFFF",borderColor:"#EF809F",logoSvg:i("S","#FFFFFF","#EF809F")}}},upi:{displayName:"UPI",currencies:["inr"],countries:["IN"],theme:{light:{backgroundColor:"#FF7909",textColor:"#FFFFFF",borderColor:"#FF7909",logoSvg:i("U","#FFFFFF","#FF7909")},dark:{backgroundColor:"#FF7909",textColor:"#FFFFFF",borderColor:"#FF7909",logoSvg:i("U","#FFFFFF","#FF7909")}}},us_bank_account:{displayName:"US Bank Account",currencies:["usd"],countries:["US"]},wechat_pay:{displayName:"WeChat Pay",currencies:["usd","cny"],theme:{light:{backgroundColor:"#07C160",textColor:"#FFFFFF",borderColor:"#07C160",logoSvg:i("W","#FFFFFF","#07C160")},dark:{backgroundColor:"#07C160",textColor:"#FFFFFF",borderColor:"#07C160",logoSvg:i("W","#FFFFFF","#07C160")}}},zip:{displayName:"Zip",currencies:["aud"],countries:["AU","NZ"]}};function je(e){return e?De.includes(e):!1}var ie=Object.entries(g).filter(([,e])=>e.express).map(([e])=>e),xr=new Set(ie),se=Object.fromEntries(Object.entries(g).map(([e,t])=>[e,t.currencies])),de=Object.fromEntries(Object.entries(g).filter(([,e])=>e.countries).map(([e,t])=>[e,t.countries]));function Xe(e){if(!e)return"this method";let t=g[e];return t?t.displayName:e.split("_").filter(Boolean).map(r=>r.charAt(0).toUpperCase()+r.slice(1)).join(" ")}function $e(e){if(!e)return!0;let t=g[e];return t?t.needsExplicitConfirm!==!1:!0}function Je(e,t){if(!e)return null;let r=g[e];return r?.theme?(typeof t=="string"&&t.endsWith("-dark")?r.theme.dark:r.theme.light)??r.theme.light??null:null}function Qe(e,t){if(!e?.length)return[];if(!t)return[...e];let r=t.trim().toLowerCase();return r?e.filter(o=>{let n=se[o];return n?n.includes("*")||n.includes(r):!0}):[...e]}function et(e,t){if(!e?.length)return[];if(!t)return[...e];let r=t.trim().toUpperCase();return r?e.filter(o=>{let n=de[o];return n?n.includes("*")||n.includes(r):!0}):[...e]}var ce=Object.fromEntries(Object.entries(g).filter(([,e])=>e.amounts).map(([e,t])=>[e,t.amounts]));function tt(e,t,r){if(!e?.length)return[];if(!t||typeof r!="number"||!Number.isFinite(r))return[...e];let o=t.trim().toLowerCase();return o?e.filter(n=>{let u=ce[n];if(!u)return!0;let d=u[o];return d?!(typeof d.min=="number"&&r<d.min||typeof d.max=="number"&&r>d.max):!0}):[...e]}function rt(e,t){if(!e?.length)return{expressMethods:[],paymentElementMethods:[]};let r=[],o=[],n=new Set,u=new Set;for(let d of e){if(typeof d!="string")continue;let p=d.trim();if(!(!p||p==="card")&&!(t?.excludePaypal&&p==="paypal"))if(xr.has(p)){if(n.has(p))continue;n.add(p),r.push(p)}else{if(u.has(p))continue;u.add(p),o.push(p)}}return{expressMethods:r,paymentElementMethods:o}}var ot=["payment","address"],nt=["visa","mastercard","mastercard_debit","amex","discover"],B={AT:{currency:"EUR",symbol:"\u20AC",country:"Austria",countryCode:"AT",tax:1},BE:{currency:"EUR",symbol:"\u20AC",country:"Belgium",countryCode:"BE",tax:1},CY:{currency:"EUR",symbol:"\u20AC",country:"Cyprus",countryCode:"CY",tax:1},DE:{currency:"EUR",symbol:"\u20AC",country:"Germany",countryCode:"DE",tax:1},EE:{currency:"EUR",symbol:"\u20AC",country:"Estonia",countryCode:"EE",tax:1},ES:{currency:"EUR",symbol:"\u20AC",country:"Spain",countryCode:"ES",tax:1},FI:{currency:"EUR",symbol:"\u20AC",country:"Finland",countryCode:"FI",tax:1},FR:{currency:"EUR",symbol:"\u20AC",country:"France",countryCode:"FR",tax:1},GR:{currency:"EUR",symbol:"\u20AC",country:"Greece",countryCode:"GR",tax:1},HR:{currency:"EUR",symbol:"\u20AC",country:"Croatia",countryCode:"HR",tax:1},IE:{currency:"EUR",symbol:"\u20AC",country:"Ireland",countryCode:"IE",tax:1},IT:{currency:"EUR",symbol:"\u20AC",country:"Italy",countryCode:"IT",tax:1},LT:{currency:"EUR",symbol:"\u20AC",country:"Lithuania",countryCode:"LT",tax:1},LU:{currency:"EUR",symbol:"\u20AC",country:"Luxembourg",countryCode:"LU",tax:1},LV:{currency:"EUR",symbol:"\u20AC",country:"Latvia",countryCode:"LV",tax:1},MT:{currency:"EUR",symbol:"\u20AC",country:"Malta",countryCode:"MT",tax:1},NL:{currency:"EUR",symbol:"\u20AC",country:"Netherlands",countryCode:"NL",tax:1},PT:{currency:"EUR",symbol:"\u20AC",country:"Portugal",countryCode:"PT",tax:1},SI:{currency:"EUR",symbol:"\u20AC",country:"Slovenia",countryCode:"SI",tax:1},SK:{currency:"EUR",symbol:"\u20AC",country:"Slovakia",countryCode:"SK",tax:1},BG:{currency:"EUR",symbol:"\u20AC",country:"Bulgaria",countryCode:"BG",tax:1},RO:{currency:"EUR",symbol:"\u20AC",country:"Romania",countryCode:"RO",tax:1},CZ:{currency:"EUR",symbol:"\u20AC",country:"Czech Republic",countryCode:"CZ",tax:1},SE:{currency:"EUR",symbol:"\u20AC",country:"Sweden",countryCode:"SE",tax:1},DK:{currency:"EUR",symbol:"\u20AC",country:"Denmark",countryCode:"DK",tax:1},PL:{currency:"EUR",symbol:"\u20AC",country:"Poland",countryCode:"PL",tax:1},HU:{currency:"EUR",symbol:"\u20AC",country:"Hungary",countryCode:"HU",tax:1},GB:{currency:"GBP",symbol:"\xA3",country:"United Kingdom",countryCode:"GB",tax:1},US:{currency:"USD",symbol:"$",country:"United States",countryCode:"US",tax:0},CA:{currency:"CAD",symbol:"CA$",country:"Canada",countryCode:"CA",tax:0},NZ:{currency:"NZD",symbol:"NZ$",country:"New Zealand",countryCode:"NZ",tax:0},AU:{currency:"AUD",symbol:"AU$",country:"Australia",countryCode:"AU",tax:0}},N={currency:"USD",symbol:"$",country:"United States",countryCode:"US",tax:0};function at(e){switch(e.toUpperCase()){case"US":return"ZIP Code";case"GB":return"Postcode";case"CA":return"Postal Code";case"AU":case"NZ":return"Postcode";case"IE":return"Eircode";default:return"Postal Code"}}var Tr=new Intl.DisplayNames(["en"],{type:"region"});function Sr(e){return[...e.toUpperCase()].map(t=>String.fromCodePoint(127397+t.charCodeAt(0))).join("")}var it=["US","GB","CA","AU","NZ","IE","DE","FR"],Ar=["AD","AE","AF","AG","AL","AM","AO","AR","AT","AU","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BN","BO","BR","BS","BT","BW","BY","BZ","CA","CD","CF","CG","CH","CI","CL","CM","CN","CO","CR","CU","CV","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","ER","ES","ET","FI","FJ","FM","FR","GA","GB","GD","GE","GH","GM","GN","GQ","GR","GT","GW","GY","HN","HR","HT","HU","ID","IE","IL","IN","IQ","IR","IS","IT","JM","JO","JP","KE","KG","KH","KI","KM","KN","KR","KW","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MG","MH","MK","ML","MM","MN","MR","MT","MU","MV","MW","MX","MY","MZ","NA","NE","NG","NI","NL","NO","NP","NR","NZ","OM","PA","PE","PG","PH","PK","PL","PT","PW","PY","QA","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SI","SK","SL","SM","SN","SO","SR","SS","ST","SV","SY","SZ","TD","TG","TH","TJ","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","UZ","VA","VC","VE","VN","VU","WS","XK","YE","ZA","ZM","ZW"];function Me(e){return{code:e,name:Tr.of(e)??e,flag:Sr(e)}}var hr=new Set(it),Ir=Ar.filter(e=>!hr.has(e)),ue=[...it.map(Me),...Ir.map(Me)];function st(e){return ue.find(t=>t.code===e)}var Rr={country:!0,postal_code:!0};function le(e){return e?e===!0?Rr:e:null}function dt(e,t){if(e===void 0||e===!1)return!1;if(e===!0)return!0;let r=t.trim().toUpperCase();return e.some(o=>o.trim().toUpperCase()===r)}function ct(e){let t=le(e);return t?Object.values(t).some(r=>r===!0||Array.isArray(r)&&r.length>0):!1}var pe=[{code:"AL",name:"Alabama"},{code:"AK",name:"Alaska"},{code:"AZ",name:"Arizona"},{code:"AR",name:"Arkansas"},{code:"CA",name:"California"},{code:"CO",name:"Colorado"},{code:"CT",name:"Connecticut"},{code:"DE",name:"Delaware"},{code:"DC",name:"District of Columbia"},{code:"FL",name:"Florida"},{code:"GA",name:"Georgia"},{code:"HI",name:"Hawaii"},{code:"ID",name:"Idaho"},{code:"IL",name:"Illinois"},{code:"IN",name:"Indiana"},{code:"IA",name:"Iowa"},{code:"KS",name:"Kansas"},{code:"KY",name:"Kentucky"},{code:"LA",name:"Louisiana"},{code:"ME",name:"Maine"},{code:"MD",name:"Maryland"},{code:"MA",name:"Massachusetts"},{code:"MI",name:"Michigan"},{code:"MN",name:"Minnesota"},{code:"MS",name:"Mississippi"},{code:"MO",name:"Missouri"},{code:"MT",name:"Montana"},{code:"NE",name:"Nebraska"},{code:"NV",name:"Nevada"},{code:"NH",name:"New Hampshire"},{code:"NJ",name:"New Jersey"},{code:"NM",name:"New Mexico"},{code:"NY",name:"New York"},{code:"NC",name:"North Carolina"},{code:"ND",name:"North Dakota"},{code:"OH",name:"Ohio"},{code:"OK",name:"Oklahoma"},{code:"OR",name:"Oregon"},{code:"PA",name:"Pennsylvania"},{code:"RI",name:"Rhode Island"},{code:"SC",name:"South Carolina"},{code:"SD",name:"South Dakota"},{code:"TN",name:"Tennessee"},{code:"TX",name:"Texas"},{code:"UT",name:"Utah"},{code:"VT",name:"Vermont"},{code:"VA",name:"Virginia"},{code:"WA",name:"Washington"},{code:"WV",name:"West Virginia"},{code:"WI",name:"Wisconsin"},{code:"WY",name:"Wyoming"}],me=[{code:"AB",name:"Alberta"},{code:"BC",name:"British Columbia"},{code:"MB",name:"Manitoba"},{code:"NB",name:"New Brunswick"},{code:"NL",name:"Newfoundland and Labrador"},{code:"NS",name:"Nova Scotia"},{code:"NT",name:"Northwest Territories"},{code:"NU",name:"Nunavut"},{code:"ON",name:"Ontario"},{code:"PE",name:"Prince Edward Island"},{code:"QC",name:"Quebec"},{code:"SK",name:"Saskatchewan"},{code:"YT",name:"Yukon"}];function ut(e){switch(e.toUpperCase()){case"US":return pe;case"CA":return me;default:return null}}function lt(e){switch(e.toUpperCase()){case"US":return"State";case"CA":return"Province";case"GB":return"County";case"AU":return"State / Territory";default:return"State / Province / Region"}}var _r=[[5,5,"NY"],[10,27,"MA"],[28,29,"RI"],[30,38,"NH"],[39,49,"ME"],[50,59,"VT"],[60,69,"CT"],[70,89,"NJ"],[100,149,"NY"],[150,196,"PA"],[197,199,"DE"],[200,205,"DC"],[206,219,"MD"],[220,246,"VA"],[247,268,"WV"],[270,289,"NC"],[290,299,"SC"],[300,319,"GA"],[320,349,"FL"],[350,369,"AL"],[370,385,"TN"],[386,397,"MS"],[398,399,"GA"],[400,427,"KY"],[430,459,"OH"],[460,479,"IN"],[480,499,"MI"],[500,528,"IA"],[530,549,"WI"],[550,567,"MN"],[570,577,"SD"],[580,588,"ND"],[590,599,"MT"],[600,629,"IL"],[630,658,"MO"],[660,679,"KS"],[680,693,"NE"],[700,714,"LA"],[716,729,"AR"],[730,749,"OK"],[750,799,"TX"],[800,816,"CO"],[820,831,"WY"],[832,838,"ID"],[840,847,"UT"],[850,865,"AZ"],[870,884,"NM"],[889,898,"NV"],[900,961,"CA"],[967,968,"HI"],[970,979,"OR"],[980,994,"WA"],[995,999,"AK"]],Pr={A:"NL",B:"NS",C:"PE",E:"NB",G:"QC",H:"QC",J:"QC",K:"ON",L:"ON",M:"ON",N:"ON",P:"ON",R:"MB",S:"SK",T:"AB",V:"BC",X:"NT",Y:"YT"};function kr(e){let t=e.replace(/\D/g,"");if(t.length<5)return null;let r=Number.parseInt(t.slice(0,3),10);if(!Number.isFinite(r))return null;for(let[o,n,u]of _r)if(r>=o&&r<=n)return u;return null}function Br(e){let t=e.replace(/\s+/g,"").toUpperCase();if(!/^[A-Z]\d[A-Z]\d[A-Z]\d$/.test(t))return null;let r=t[0]??"";return Pr[r]??null}function pt(e,t){if(!e||!t)return null;let r=e.trim().toUpperCase(),o=t.trim();if(!o)return null;switch(r){case"US":return kr(o);case"CA":return Br(o);default:return null}}var Nr=Ht(require("validator/lib/isPostalCode.js"),1),v=Nr,mt=typeof v.default=="function"?v.default:v.default?.default;if(typeof mt!="function")throw new Error("validator/lib/isPostalCode.js interop failed: unexpected module shape. This likely means the bundler's CJS/ESM interop changed.");var gt=new Set(v.locales.map(e=>e.toUpperCase())),vr={AUSTRALIA:"AU",BRAZIL:"BR",CANADA:"CA",CH:"CH",DENMARK:"DK",DE:"DE",DEUTSCHLAND:"DE",FRANCE:"FR",GB:"GB",GERMANY:"DE",GREATBRITAIN:"GB",GREAT_BRITAIN:"GB",INDIA:"IN",IRELAND:"IE",ITALY:"IT",JAPAN:"JP",MEXICO:"MX",NETHERLANDS:"NL",NEWZEALAND:"NZ",NORWAY:"NO",POLAND:"PL",PORTUGAL:"PT",SINGAPORE:"SG",SOUTHAFRICA:"ZA",SPAIN:"ES",SWEDEN:"SE",SWITZERLAND:"CH",UK:"GB",UNITEDKINGDOM:"GB",UNITEDSTATES:"US",US:"US",USA:"US","UNITED STATES":"US","UNITED KINGDOM":"GB","GREAT BRITAIN":"GB",ENGLAND:"GB"};function ge(e){let t=(e??"").trim().toUpperCase();return t?t.length===2?t:vr[t]??null:null}var Dr={AU:"2000",BR:"01000-000",CA:"A1A 1A1",CH:"8001",DE:"10115",DK:"1050",ES:"28001",FR:"75008",GB:"SW1A 1AA",IE:"D02 X285",IN:"110001",IT:"00118",JP:"100-0001",MX:"06500",NL:"1012 JS",NO:"0150",NZ:"6011",PL:"00-001",PT:"1100-148",SE:"111 22",SG:"018989",US:"12345 or 12345-6789",ZA:"8001"};function yt(e){let t=ge(e);return t!==null&>.has(t)}function Ct(e,t){let r=(t??"").trim();if(!r)return!0;let o=ge(e);if(o===null||!gt.has(o))return!0;try{return mt(r,o)}catch{return!0}}function Et(e){let t=ge(e);return t?Dr[t]:void 0}function a(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function D(e,t,r,o){let n=a(e);if(n)return n;for(let u of t??[]){let d=a(u.currency);if(d)return d}for(let u of r??[]){let d=a(u.currency);if(d)return d}for(let u of o??[]){let d=a(u.currency);if(d)return d}return null}function Ft(e,t){let r=[];for(let o of t??[])r.push({type:"subscription",code:a(o.code)??a(o.providerPlanId),providerPlanId:o.providerPlanId,name:a(o.subscriptionName)??a(o.providerPlanName)??null,subscriptionName:o.subscriptionName??null,providerPlanName:o.providerPlanName??null,quantity:o.quantity,totalAmount:o.totalAmount,overrideAmount:o.overrideAmount,currency:o.currency,metadata:o.metadata});for(let o of e??[])r.push({type:"item",code:a(o.code)??a(o.providerItemId),providerItemId:o.providerItemId,name:a(o.itemName)??a(o.providerItemName)??null,itemName:o.itemName??null,providerItemName:o.providerItemName??null,quantity:o.quantity,totalAmount:o.totalAmount,overrideAmount:o.overrideAmount,currency:o.currency,metadata:o.metadata});return r}function bt(e,t){let r=a(e.code)??a(e.providerItemId)??a(e.providerPlanId);if(!r)throw new Error("CheckoutProduct requires `code` (or the deprecated `providerItemId` / `providerPlanId`).");let o=a(e.name)??a(e.itemName)??a(e.providerItemName)??a(e.subscriptionName)??a(e.providerPlanName)??null,n={type:e.type,code:r,name:o,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(n.metadata=e.metadata),n}function ft(e,t){let r=a(e.code)??a(e.providerItemId);if(!r)throw new Error("CheckoutItem requires either `code` or the deprecated `providerItemId`.");let o=a(e.itemName)??a(e.providerItemName)??null,n={code:r,providerItemId:a(e.providerItemId)??r,itemName:o,providerItemName:a(e.providerItemName)??o,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(n.metadata=e.metadata),n}function xt(e,t){let r=a(e.code)??a(e.providerPlanId);if(!r)throw new Error("CheckoutSubscription requires either `code` or the deprecated `providerPlanId`.");let o=a(e.subscriptionName)??a(e.providerPlanName)??null,n={code:r,providerPlanId:a(e.providerPlanId)??r,subscriptionName:o,providerPlanName:a(e.providerPlanName)??o,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(n.metadata=e.metadata),n}function Tt(e,t={}){let r=[],o=e.products??[],n=o.filter(s=>s.type==="subscription"),u=o.filter(s=>s.type!=="subscription"),p=(D(e.currency,void 0,void 0,o)??"USD").toUpperCase();for(let s of n){let m=s.totalAmount??0,F=s.overrideAmount??m,O=s.name||s.code||"Subscription";O==="4-WEEK PLAN"&&F<=1&&(O="7-DAY TRIAL: FULL ACCESS"),r.push({name:O,quantity:s.quantity,price:F,originalPrice:m})}if(!(t.hideBundledItems===!0&&n.length>0&&u.length>0))for(let s of u){let m=s.totalAmount??0,F=s.overrideAmount??m;r.push({name:s.name||s.code||"Item",quantity:s.quantity,price:F,originalPrice:m})}r.length===0&&r.push({name:"Purchase",quantity:1,price:e.amount/100,originalPrice:e.amount/100});let Nt=r.reduce((s,m)=>s+m.originalPrice*m.quantity,0),vt=r.reduce((s,m)=>s+m.price*m.quantity,0),Dt=typeof e.totalAmount=="number"&&Number.isFinite(e.totalAmount),Lt=typeof e.subtotalAmount=="number"&&Number.isFinite(e.subtotalAmount),Mt=typeof e.discountAmount=="number"&&Number.isFinite(e.discountAmount),Ce=Dt?e.totalAmount:vt,E=Lt?e.subtotalAmount:Nt,Ee=Math.max(0,E-Ce),Ot=E>0?Math.round(Ee/E*100):0;return{items:r,currency:p,total:Ce,originalTotal:E,totalSave:Ee,discountPercent:Ot,...Mt?{couponDiscount:e.discountAmount}:{}}}function St(e){return B[e.toUpperCase()]??N}function At(e){return/^pk_(test|live)_[A-Za-z0-9]+$/.test(e)}function ht(e){return/^sk_(test|live)_[A-Za-z0-9]+$/.test(e)}function It(e){return typeof e=="string"&&e.startsWith("seti_")}var Rt="Idempotency-Key",L=255,_t="IdempotencyKeyInProgress";function Lr(){let e=globalThis.crypto;if(e&&(typeof e.randomUUID=="function"||typeof e.getRandomValues=="function"))return e}function ye(){let e=Lr();if(!e)return;if(typeof e.randomUUID=="function")return e.randomUUID();let t=new Uint8Array(16);return e.getRandomValues(t),Array.from(t,r=>r.toString(16).padStart(2,"0")).join("")}function Pt(e){if(e===void 0)return ye();if(typeof e!="string"||e.trim()==="")throw new c("idempotencyKey must be a non-empty string identifying exactly one checkout creation.","validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});if(e.length>L)throw new c(`idempotencyKey must be at most ${L} characters.`,"validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});return e}var M=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function kt(e){return typeof e=="string"&&M.test(e)}function Bt(){try{let r=globalThis.crypto.randomUUID();if(M.test(r))return r}catch{}let e=new Uint8Array(16);try{globalThis.crypto.getRandomValues(e)}catch{for(let r=0;r<e.length;r+=1)e[r]=Math.floor(Math.random()*256)}e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}0&&(module.exports={BILLING_API_URL,BILLING_API_URL_PRODUCTION,BILLING_API_URL_STAGING,BOLD_DARK_APPEARANCE,BOLD_LIGHT_APPEARANCE,BUTTONS_LAYOUT_BOLD_DARK,BUTTONS_LAYOUT_BOLD_LIGHT,BUTTONS_LAYOUT_DARK,BUTTONS_LAYOUT_DEFAULT,BUTTONS_LAYOUT_GLASS_DARK,BUTTONS_LAYOUT_GLASS_LIGHT,BUTTONS_LAYOUT_MINIMAL,BUTTONS_LAYOUT_MODERN_DARK,BUTTONS_LAYOUT_MODERN_LIGHT,BUTTONS_LAYOUT_ROUNDED,CA_PROVINCES,COUNTRY_OPTIONS,CURRENCY_MAP,DEFAULT_API_BASE_URL,DEFAULT_API_VERSION,DEFAULT_APPEARANCE,DEFAULT_CURRENCY,ELEMENT_TYPES,FLAT_APPEARANCE,FLO_SDK_VERSION_HEADER,FloPayError,GLASS_DARK_APPEARANCE,GLASS_LIGHT_APPEARANCE,IDEMPOTENCY_IN_PROGRESS_CODE,IDEMPOTENCY_KEY_HEADER,MAX_IDEMPOTENCY_KEY_LENGTH,MODERN_DARK_APPEARANCE,MODERN_LIGHT_APPEARANCE,NIGHT_APPEARANCE,SDK_VERSION,STRIPE_EXPRESS_METHODS,STRIPE_METHOD_AMOUNT_LIMITS,STRIPE_METHOD_COUNTRIES,STRIPE_METHOD_CURRENCIES,STRIPE_METHOD_MATRIX,SUPPORTED_CARD_BRANDS,TELEMETRY_ERROR_CODES,TELEMETRY_FAILURE_CATEGORIES,TELEMETRY_LOG_NAMES,TELEMETRY_MAX_BATCH_BYTES,TELEMETRY_MAX_BATCH_EVENTS,TELEMETRY_SCHEMA_VERSION,TELEMETRY_SDK_PACKAGES,THEMES,US_STATES,UUID_V4,apiError,authenticationError,buildCheckoutDisplayData,buildItemPayload,buildProductPayload,buildSubscriptionPayload,buildTelemetryErrorEvent,buildTelemetryLogEvent,buildTelemetryPerformanceEvent,buildTelemetryTerminalEvent,classifyTelemetryFailure,configureFlopay,filterStripeMethodsByAmount,filterStripeMethodsByCountry,filterStripeMethodsByCurrency,foldIntoProducts,generateIdempotencyKey,getConfiguredBillingApiUrl,getCountryByCode,getCurrencyByCountry,getFloPayEnvironment,getPostalCodeExample,getPostalCodeLabel,getStateFromPostalCode,getStateLabel,getStateOptions,getStripeMethodDisplayName,hasVendoredStripeMethodLogo,isAVSEnabled,isAVSFieldVisible,isPostalCodeSupported,isSetupIntentClientSecret,isUuidV4,isValidPostalCode,isValidPublishableKey,isValidSecretKey,needsStripeMethodExplicitConfirm,networkError,normalizeGatewayEnvironment,partitionStripeMethods,randomUuidV4,rateLimitError,resolveAVSConfig,resolveBillingApiUrl,resolveButtonsLayoutTheme,resolveIdempotencyKey,resolveSessionCurrency,resolveStripeMethodBrandVariant,resolveTheme,serializeTelemetryBatch,stripeExpressMethodToOptionKey,telemetryStatusClass,validationError});
|
|
1
|
+
"use strict";var Kt=Object.create;var b=Object.defineProperty;var Vt=Object.getOwnPropertyDescriptor;var Yt=Object.getOwnPropertyNames;var Ht=Object.getPrototypeOf,zt=Object.prototype.hasOwnProperty;var qt=(e,t)=>{for(var r in t)b(e,r,{get:t[r],enumerable:!0})},Fe=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Yt(t))!zt.call(e,n)&&n!==r&&b(e,n,{get:()=>t[n],enumerable:!(o=Vt(t,n))||o.enumerable});return e};var Wt=(e,t,r)=>(r=e!=null?Kt(Ht(e)):{},Fe(t||!e||!e.__esModule?b(r,"default",{value:e,enumerable:!0}):r,e)),Zt=e=>Fe(b({},"__esModule",{value:!0}),e);var Hr={};qt(Hr,{BILLING_API_URL:()=>Ve,BILLING_API_URL_PRODUCTION:()=>W,BILLING_API_URL_STAGING:()=>E,BOLD_DARK_APPEARANCE:()=>J,BOLD_LIGHT_APPEARANCE:()=>$,BUTTONS_LAYOUT_BOLD_DARK:()=>_,BUTTONS_LAYOUT_BOLD_LIGHT:()=>R,BUTTONS_LAYOUT_DARK:()=>ne,BUTTONS_LAYOUT_DEFAULT:()=>te,BUTTONS_LAYOUT_GLASS_DARK:()=>k,BUTTONS_LAYOUT_GLASS_LIGHT:()=>P,BUTTONS_LAYOUT_MINIMAL:()=>re,BUTTONS_LAYOUT_MODERN_DARK:()=>I,BUTTONS_LAYOUT_MODERN_LIGHT:()=>h,BUTTONS_LAYOUT_ROUNDED:()=>oe,CA_PROVINCES:()=>me,COUNTRY_OPTIONS:()=>ue,CURRENCY_MAP:()=>B,DEFAULT_API_BASE_URL:()=>Ke,DEFAULT_API_VERSION:()=>He,DEFAULT_APPEARANCE:()=>Z,DEFAULT_CURRENCY:()=>N,ELEMENT_TYPES:()=>at,FLAT_APPEARANCE:()=>ze,FLO_SDK_VERSION_HEADER:()=>Ge,FloPayError:()=>u,GLASS_DARK_APPEARANCE:()=>ee,GLASS_LIGHT_APPEARANCE:()=>Q,IDEMPOTENCY_IN_PROGRESS_CODE:()=>Bt,IDEMPOTENCY_KEY_HEADER:()=>kt,MAX_IDEMPOTENCY_KEY_LENGTH:()=>L,MODERN_DARK_APPEARANCE:()=>X,MODERN_LIGHT_APPEARANCE:()=>j,NIGHT_APPEARANCE:()=>qe,SDK_VERSION:()=>we,STRIPE_EXPRESS_METHODS:()=>ie,STRIPE_METHOD_AMOUNT_LIMITS:()=>de,STRIPE_METHOD_COUNTRIES:()=>ce,STRIPE_METHOD_CURRENCIES:()=>se,STRIPE_METHOD_MATRIX:()=>g,SUPPORTED_CARD_BRANDS:()=>it,TELEMETRY_ERROR_CODES:()=>w,TELEMETRY_FAILURE_CATEGORIES:()=>G,TELEMETRY_LOG_NAMES:()=>K,TELEMETRY_MAX_BATCH_BYTES:()=>_e,TELEMETRY_MAX_BATCH_EVENTS:()=>Pe,TELEMETRY_SCHEMA_VERSION:()=>Re,TELEMETRY_SDK_PACKAGES:()=>U,THEMES:()=>ae,US_STATES:()=>pe,UUID_V4:()=>M,apiError:()=>xe,authenticationError:()=>Te,buildCheckoutDisplayData:()=>ht,buildItemPayload:()=>St,buildProductPayload:()=>Tt,buildSubscriptionPayload:()=>At,buildTelemetryErrorEvent:()=>V,buildTelemetryLogEvent:()=>Y,buildTelemetryPerformanceEvent:()=>z,buildTelemetryTerminalEvent:()=>H,classifyTelemetryFailure:()=>ve,configureFlopay:()=>De,dropThirdPartyOnlyError:()=>Ie,filterStripeMethodsByAmount:()=>ot,filterStripeMethodsByCountry:()=>rt,filterStripeMethodsByCurrency:()=>tt,foldIntoProducts:()=>xt,generateIdempotencyKey:()=>ye,getConfiguredBillingApiUrl:()=>A,getCountryByCode:()=>dt,getCurrencyByCountry:()=>It,getFloPayEnvironment:()=>Le,getPostalCodeExample:()=>bt,getPostalCodeLabel:()=>st,getStateFromPostalCode:()=>gt,getStateLabel:()=>mt,getStateOptions:()=>pt,getStripeMethodDisplayName:()=>Je,hasVendoredStripeMethodLogo:()=>$e,isAVSEnabled:()=>lt,isAVSFieldVisible:()=>ut,isDetachedSessionEligible:()=>ft,isPostalCodeSupported:()=>Ct,isSetupIntentClientSecret:()=>Pt,isUuidV4:()=>vt,isValidPostalCode:()=>Ft,isValidPublishableKey:()=>Rt,isValidSecretKey:()=>_t,needsStripeMethodExplicitConfirm:()=>Qe,networkError:()=>Ae,normalizeGatewayEnvironment:()=>be,partitionStripeMethods:()=>nt,randomUuidV4:()=>Dt,rateLimitError:()=>Se,resolveAVSConfig:()=>le,resolveBillingApiUrl:()=>Ye,resolveButtonsLayoutTheme:()=>We,resolveIdempotencyKey:()=>Nt,resolveSessionCurrency:()=>D,resolveStripeMethodBrandVariant:()=>et,resolveTheme:()=>Ze,serializeTelemetryBatch:()=>Ne,stripeExpressMethodToOptionKey:()=>je,telemetryStatusClass:()=>S,validationError:()=>fe});module.exports=Zt(Hr);function be(e){if(e!=null)switch(e){case"sandbox":case"stage":return"sandbox";case"live":case"production":return"live";default:console.warn(`[FloPay] Unrecognized gateway environment "${e}". Expected one of: sandbox, live, stage, production. Falling back to undefined.`);return}}var u=class extends Error{constructor(t,r,o){super(t),this.name="FloPayError",this.type=r,this.code=o?.code,this.declineCode=o?.declineCode,this.param=o?.param,this.statusCode=o?.statusCode,Object.setPrototypeOf(this,new.target.prototype)}};function fe(e,t){return new u(e,"validation_error",{param:t})}function xe(e,t,r){return new u(e,"api_error",{code:t,statusCode:r})}function Te(e){return new u(e,"authentication_error")}function Se(e){return new u(e,"rate_limit_error")}function Ae(e){return new u(e,"network_error")}var jt=/(?:^|\/)dahlia\/stripe\.js(?:$|[?#])/i,Xt=/^dahlia\/stripe$/i,$t=/^(?:chrome|moz|safari-web)-extension:\/\//i,Jt=/^@flopay(?:\/|$)/i;function he(e){return jt.test(e)||$t.test(e)}function Qt(e){let t=[e.filename,e.abs_path].filter(r=>r!==void 0&&r!=="<anonymous>");return e.module!==void 0&&Jt.test(e.module)||t.some(r=>!he(r))?"first-party":e.module!==void 0&&Xt.test(e.module)||t.some(he)?"third-party-hosted":t.length===0?"injected":"first-party"}function Ie(e){let t=e.exception?.values;if(!t?.length)return e;let r=[];for(let n of t){let s=n.stacktrace?.frames;if(!s?.length)return e;r.push(...s)}let o=r.map(Qt);return!o.includes("first-party")&&o.includes("third-party-hosted")?null:e}var Re=1,U=["@flopay/shared","@flopay/js","@flopay/react"],_e=32768,Pe=20,er=["stripe","paypal"],tr=["card","wallet","paypal","apm","saved","unknown"],rr=["callback","sdk_initialize","checkout_mount","session_create","session_shell","session_claim","session_read","session_first_byte","session_complete","checkout_data_ready","checkout_render","checkout_interactive","provider_load","provider_ready","overlay_open","overlay_return","redirect","redirect_resume","vault_request","vault_mount","vault_ready","vault_submit","tokenization","three_ds_handoff","three_ds_return","processing","recovery","completion","unmount","total_journey"],w=["CALLBACK_FAILED","CHECKOUT_SESSION_CREATE_FAILED","CONFIGURATION_INVALID","INTERNAL_SDK_ERROR","NETWORK_REQUEST_FAILED","PAYMENT_PROCESSING_FAILED","POPUP_BLOCKED","PROVIDER_LOAD_FAILED","PROVIDER_RUNTIME_FAILED","RECOVERY_FAILED","REDIRECT_RESUME_FAILED","REQUEST_TIMEOUT","SDK_INITIALIZATION_FAILED","THREE_DS_FAILED","TOKENIZATION_FAILED","VAULT_LOAD_FAILED","VAULT_SUBMIT_FAILED"],G=["server_error","transport_error","invalid_response","provider_runtime"],K=["sdk.initialize.started","sdk.initialize.ready","sdk.cache.hit","sdk.cache.miss","checkout.mount","session.create.started","session.shell.ready","session.claim.started","session.claim.completed","session.read.started","session.request.first_byte","session.request.completed","checkout.data.ready","checkout.rendered","checkout.interactive","checkout.recovery.started","checkout.recovery.completed","checkout.unmount","provider.load.started","provider.eligibility.checked","provider.availability.checked","provider.ready","provider.popup.opened","provider.overlay.opened","provider.overlay.returned","provider.redirect.started","provider.redirect.resumed","vault.capture.requested","vault.widget.mounted","vault.widget.ready","vault.submission.started","vault.action.required","vault.three_ds.handoff","vault.three_ds.returned","vault.terminal","payment.method.selected","payment.intent.started","payment.intent.completed","payment.tokenization.started","payment.tokenization.completed","payment.processing.started","payment.processing.completed","payment.three_ds.handoff","payment.three_ds.returned","operation.retry","operation.deduplicated","operation.fallback","operation.cache.hit","operation.cache.miss","operation.recovery.started","operation.recovery.completed","operation.state_transition"],or=["session_create","session_claim","session_read","intent_create","process_payment","vault_capture","account_snapshot","provider_sdk","other"],nr=["2xx","3xx","4xx","5xx","network_error","timeout","unknown"],ar=["full","auto","confirm","unknown"],ir=["embedded","buttons","automatic","unknown"],sr=["machine","buyer","total"],cr=["action_required","customer_abandoned","payment_cancelled","payment_declined","payment_succeeded","validation_rejected"],ke=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,dr=/^\d{1,4}\.\d{1,4}\.\d{1,4}(?:-[0-9A-Za-z.-]{1,32})?$/,ur=new Set(w),lr=new Set(G),f=new Set(rr),pr=new Set(er),mr=new Set(tr),gr=new Set(K),yr=new Set(ar),Er=new Set(ir),Cr=new Set(or),Fr=new Set(nr),br=new Set(sr),fr=new Set(cr),xr=new Set(U),Be=12e4;function l(e,t,r){return typeof e=="string"&&t.has(e)?e:r}function Tr(){try{let r=globalThis.crypto.randomUUID();if(ke.test(r))return r}catch{}let e=new Uint8Array(16);try{globalThis.crypto.getRandomValues(e)}catch{for(let r=0;r<e.length;r+=1)e[r]=Math.floor(Math.random()*256)}e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function y(e){return typeof e=="string"&&ke.test(e)?e:Tr()}function Sr(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=100?e:void 0}function x(e){return Number.isSafeInteger(e)&&e>=0?Math.min(e,1e6):0}function Ar(e){return!Number.isFinite(e)||e<0?0:Math.min(Math.round(e),Be)}function hr(e){return Number.isFinite(e)&&e>Be}function T(e,t){let r=Sr(t.attempt);return t.provider&&pr.has(t.provider)&&(e.provider=t.provider),r!==void 0&&(e.attempt=r),t.statusClass&&(e.statusClass=l(t.statusClass,Fr,"unknown")),t.requestCategory&&(e.requestCategory=l(t.requestCategory,Cr,"other")),t.paymentMethodCategory&&(e.paymentMethodCategory=l(t.paymentMethodCategory,mr,"unknown")),t.checkoutMode&&(e.checkoutMode=l(t.checkoutMode,yr,"unknown")),t.layout&&(e.layout=l(t.layout,Er,"unknown")),e}function V(e){let t=T({eventId:y(e.eventId),class:"technical_error",code:l(e.errorCode,ur,"INTERNAL_SDK_ERROR"),stage:l(e.stage,f,"sdk_initialize"),sequence:x(e.sequence)},e);return e.failureCategory&&lr.has(e.failureCategory)&&(t.failureCategory=e.failureCategory),t}function Y(e){return T({eventId:y(e.eventId),class:"lifecycle",name:l(e.name,gr,"operation.retry"),stage:l(e.stage,f,"sdk_initialize"),sequence:x(e.sequence)},e)}function H(e){let t={...e,stage:e.stage??"completion"};return T({eventId:y(e.eventId),class:"expected_outcome",outcome:l(e.outcome,fr,"customer_abandoned"),stage:l(e.stage,f,"completion"),sequence:x(e.sequence)},t)}function z(e){let t=T({eventId:y(e.eventId),class:"performance",stage:l(e.stage,f,"sdk_initialize"),sequence:x(e.sequence),durationMs:Ar(e.durationMs),durationMode:l(e.durationMode,br,"machine")},e);return(e.durationTruncated===!0||hr(e.durationMs))&&(t.durationTruncated=!0),t}function Ne(e,t){let r=e.slice(0,20).flatMap(n=>n.class==="technical_error"?[V({...n,errorCode:n.code})]:n.class==="lifecycle"?[Y(n)]:n.class==="expected_outcome"?[H(n)]:n.class==="performance"?[z(n)]:[]),o={schemaVersion:1,batchId:y(t.batchId),correlationId:y(t.correlationId),sdk:{package:l(t.sdkPackage,xr,"@flopay/shared"),version:dr.test(t.sdkVersion)?t.sdkVersion:"0.0.0"},events:r};return JSON.stringify(o)}var Ir=new Set(["InvalidCheckoutSessionResponse","InvalidSessionIntentResponse"]);function ve(e,t,r="network_error"){if(e instanceof u&&e.code!==void 0&&Ir.has(e.code))return{errorCode:t,statusClass:S(e.statusCode,"unknown"),failureCategory:"invalid_response"};if(e instanceof Error&&(e.name==="AbortError"||e instanceof u&&e.code==="checkout_processing_timeout"))return{errorCode:"REQUEST_TIMEOUT",statusClass:"timeout",failureCategory:"transport_error"};if(e instanceof TypeError||e instanceof u&&e.type==="network_error")return{errorCode:"NETWORK_REQUEST_FAILED",statusClass:"network_error",failureCategory:"transport_error"};let o=S(e instanceof u?e.statusCode:void 0,r);return{errorCode:t,statusClass:o,...o==="5xx"?{failureCategory:"server_error"}:{}}}function S(e,t="network_error"){if(e===void 0)return t;let r=`${Math.floor(e/100)}xx`;return r==="2xx"||r==="3xx"||r==="4xx"||r==="5xx"?r:"unknown"}var Rr={local:"https://flo.ngrok.pro",staging:"https://api.stage.flopay.com",production:"https://api.flopay.com"},q="staging";function De(e){q=e.environment}function A(){return Rr[q]}function Le(){return q}var Me=["alipay","bancontact","blik","eps","giropay","ideal","klarna","p24","sepa_debit","wechat_pay"];var we="1.4.18",Ge="x-flo-sdk-version",E="https://api.stage.flopay.com",W="https://api.flopay.com",Ke=E,Ve=E;function Ye(e){return e||(typeof process<"u"&&process.env?.NEXT_PUBLIC_FLOPAY_ENV?process.env.NEXT_PUBLIC_FLOPAY_ENV==="production"?W:E:A())}var He="2024-01-01",Z={theme:"default",variables:{colorPrimary:"#4A49FF",colorBackground:"#FFFFFF",colorText:"#262833",colorDanger:"#DF1B41",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},ze={theme:"flat",variables:{...Z.variables,borderRadius:"4px"}},qe={theme:"night",variables:{colorPrimary:"#7B7BFF",colorBackground:"#1A1A2E",colorText:"#E0E0E0",colorDanger:"#FF6B6B",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},j={theme:"default",variables:{colorPrimary:"#1785E0",colorBackground:"#FFFFFF",colorText:"#0F172A",colorDanger:"#EF4444",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{padding:"14px 16px",border:"1.5px solid #E5E7EB",boxShadow:"0 1px 2px rgba(15,23,42,0.04)"},".Input:focus":{borderColor:"#1785E0",boxShadow:"0 0 0 4px rgba(23,133,224,0.12)"},".Label":{fontWeight:"500",color:"#475569",marginBottom:"6px"},".Tab":{padding:"12px 16px",borderRadius:"12px",border:"1.5px solid #E5E7EB"},".Tab:hover":{borderColor:"#CBD5E1"},".Tab--selected":{borderColor:"#1785E0",boxShadow:"0 0 0 1px #1785E0"}}},X={theme:"night",variables:{colorPrimary:"#60A5FA",colorBackground:"#0B1220",colorText:"#F1F5F9",colorDanger:"#F87171",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"#111827",padding:"14px 16px",border:"1.5px solid #1F2937",color:"#F1F5F9",boxShadow:"none"},".Input:focus":{borderColor:"#60A5FA",boxShadow:"0 0 0 4px rgba(96,165,250,0.18)"},".Label":{fontWeight:"500",color:"#94A3B8",marginBottom:"6px"},".Tab":{padding:"12px 16px",borderRadius:"12px",border:"1.5px solid #1F2937",backgroundColor:"#111827",color:"#F1F5F9"},".Tab:hover":{borderColor:"#374151"},".Tab--selected":{borderColor:"#60A5FA",boxShadow:"0 0 0 1px #60A5FA"}}},$={theme:"default",variables:{colorPrimary:"#1785E0",colorBackground:"#FFFFFF",colorText:"#0C2B4D",colorDanger:"#DC2626",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"5px"},rules:{".Input":{padding:"14px 16px",border:"2px solid #E5E7EB"},".Input:focus":{borderColor:"#1785E0",boxShadow:"0 0 0 3px rgba(23,133,224,0.2)"},".Label":{fontWeight:"600",color:"#0C2B4D"},".Tab":{padding:"14px 18px",border:"2px solid #E5E7EB",fontWeight:"600"},".Tab--selected":{borderColor:"#1785E0",boxShadow:"0 0 0 1px #1785E0"}}},J={theme:"night",variables:{colorPrimary:"#60A5FA",colorBackground:"#0C2B4D",colorText:"#FFFFFF",colorDanger:"#F87171",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"#1E3A8A",padding:"14px 16px",border:"2px solid #1E40AF",color:"#FFFFFF"},".Input:focus":{borderColor:"#60A5FA",boxShadow:"0 0 0 3px rgba(96,165,250,0.25)"},".Label":{fontWeight:"600",color:"#DBEAFE"},".Tab":{padding:"14px 18px",border:"2px solid #1E40AF",backgroundColor:"#1E3A8A",color:"#FFFFFF",fontWeight:"600"},".Tab--selected":{borderColor:"#60A5FA",boxShadow:"0 0 0 1px #60A5FA"}}},Q={theme:"default",variables:{colorPrimary:"#1785E0",colorBackground:"#FFFFFF",colorText:"#1E293B",colorDanger:"#EF4444",borderRadius:"16px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"rgba(255,255,255,0.6)",backdropFilter:"blur(10px)",padding:"14px 16px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.5), 0 1px 3px rgba(23,133,224,0.08)"},".Input:focus":{borderColor:"rgba(23,133,224,0.5)",boxShadow:"0 0 0 3px rgba(23,133,224,0.15)"},".Label":{fontWeight:"500",color:"#475569"},".Tab":{padding:"12px 16px",backgroundColor:"rgba(255,255,255,0.5)",border:"1px solid rgba(255,255,255,0.6)",borderRadius:"14px"},".Tab--selected":{borderColor:"rgba(23,133,224,0.6)",boxShadow:"0 0 0 1px rgba(23,133,224,0.6)"}}},ee={theme:"night",variables:{colorPrimary:"#60A5FA",colorBackground:"#0F172A",colorText:"#F1F5F9",colorDanger:"#F87171",borderRadius:"16px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(10px)",padding:"14px 16px",border:"1px solid rgba(255,255,255,0.08)",color:"#F1F5F9"},".Input:focus":{borderColor:"rgba(96,165,250,0.5)",boxShadow:"0 0 0 3px rgba(96,165,250,0.2)"},".Label":{fontWeight:"500",color:"#94A3B8"},".Tab":{padding:"12px 16px",backgroundColor:"rgba(15,23,42,0.6)",border:"1px solid rgba(255,255,255,0.08)",borderRadius:"14px",color:"#F1F5F9"},".Tab--selected":{borderColor:"rgba(96,165,250,0.6)",boxShadow:"0 0 0 1px rgba(96,165,250,0.6)"}}},te={},re={cardButton:{border:"none",backgroundColor:"#f9fafb",boxShadow:"none"},cardFormContainer:{backgroundColor:"#f9fafb",border:"none"},cardInputBorder:"#e5e7eb",backButtonIcon:{backgroundColor:"#e5e7eb"},submitButton:{borderRadius:"6px"}},oe={cardButton:{borderRadius:"9999px",border:"1px solid #e5e7eb",boxShadow:"0 1px 3px rgba(0,0,0,0.06)"},cardFormContainer:{borderRadius:"16px",border:"1px solid #e5e7eb",boxShadow:"0 2px 8px rgba(0,0,0,0.06)"},cardInputBorder:"#d1d5db",submitButton:{borderRadius:"9999px"},backButtonIcon:{backgroundColor:"#f3f4f6"}},ne={cardButton:{backgroundColor:"#1f2937",color:"#f9fafb",border:"1px solid #374151",boxShadow:"none"},cardFormContainer:{backgroundColor:"#111827",border:"1px solid #374151"},cardInputBorder:"#4b5563",cardInputColor:"#f9fafb",cardInputPlaceholderColor:"#6b7280",cardInputBackground:"#1f2937",nameInput:{backgroundColor:"#1f2937",color:"#f9fafb"},backButton:{color:"#9ca3af"},backButtonIcon:{backgroundColor:"#374151"},submitButton:{backgroundColor:"#6366f1"},title:{color:"#f9fafb"},countrySelect:{backgroundColor:"#1f2937",color:"#f9fafb"},zipInput:{backgroundColor:"#1f2937",color:"#f9fafb"}},h={cardFormContainer:{backgroundColor:"#FAFAFA",borderRadius:"20px",border:"1px solid #E5E7EB",boxShadow:"0 8px 24px rgba(15,23,42,0.04)",padding:"24px"},cardButton:{backgroundColor:"#FFFFFF",borderRadius:"14px",border:"1.5px solid #E5E7EB",boxShadow:"0 1px 2px rgba(15,23,42,0.04)",padding:"14px 18px"},cardInputBorder:"#E5E7EB",nameInput:{backgroundColor:"#FFFFFF",border:"1.5px solid #E5E7EB",borderRadius:"14px",padding:"14px 16px"},submitButton:{backgroundColor:"#1785E0",borderRadius:"14px",padding:"16px 24px",boxShadow:"0 4px 14px rgba(23,133,224,0.25)",fontWeight:"600"},title:{color:"#0F172A",fontWeight:"600"},titleFontSize:"20px",backButton:{color:"#64748B"},backButtonIcon:{backgroundColor:"#F1F5F9"}},I={cardFormContainer:{backgroundColor:"#111827",borderRadius:"20px",border:"1px solid #1F2937",boxShadow:"0 8px 24px rgba(0,0,0,0.2)",padding:"24px"},cardButton:{backgroundColor:"#0B1220",borderRadius:"14px",border:"1.5px solid #1F2937",color:"#F1F5F9",padding:"14px 18px"},cardInputBorder:"#1F2937",cardInputBackground:"#111827",cardInputColor:"#F1F5F9",cardInputPlaceholderColor:"#64748B",nameInput:{backgroundColor:"#111827",border:"1.5px solid #1F2937",borderRadius:"14px",padding:"14px 16px",color:"#F1F5F9"},submitButton:{backgroundColor:"#60A5FA",borderRadius:"14px",padding:"16px 24px",boxShadow:"0 4px 14px rgba(96,165,250,0.3)",fontWeight:"600",color:"#0B1220"},title:{color:"#F1F5F9",fontWeight:"600"},titleFontSize:"20px",backButton:{color:"#94A3B8"},backButtonIcon:{backgroundColor:"#1F2937"},countrySelect:{backgroundColor:"#111827",color:"#F1F5F9"},zipInput:{backgroundColor:"#111827",color:"#F1F5F9"}},R={cardFormContainer:{backgroundColor:"#EFF6FF",borderRadius:"20px",border:"2px solid #1785E0",padding:"24px"},cardButton:{backgroundColor:"#FFFFFF",borderRadius:"12px",border:"2px solid #1785E0",color:"#1785E0",fontWeight:"700",padding:"14px 18px"},cardInputBorder:"#E5E7EB",nameInput:{backgroundColor:"#FFFFFF",border:"2px solid #E5E7EB",borderRadius:"12px",padding:"14px 16px",fontWeight:"500"},submitButton:{background:"linear-gradient(135deg, #1785E0 0%, #0EA5E9 100%)",borderRadius:"9999px",padding:"16px 24px",boxShadow:"0 10px 25px rgba(23,133,224,0.35)",fontWeight:"700",color:"#FFFFFF",border:"none"},submitButtonFontSize:"17px",title:{color:"#0C2B4D",fontWeight:"800",letterSpacing:"-0.02em"},titleFontSize:"22px",backButton:{color:"#1785E0",fontWeight:"600"},backButtonIcon:{backgroundColor:"#DBEAFE"}},_={cardFormContainer:{backgroundColor:"#1E3A8A",borderRadius:"20px",border:"2px solid #60A5FA",padding:"24px"},cardButton:{backgroundColor:"#0C2B4D",borderRadius:"12px",border:"2px solid #60A5FA",color:"#60A5FA",fontWeight:"700",padding:"14px 18px"},cardInputBorder:"#1E40AF",cardInputBackground:"#1E3A8A",cardInputColor:"#FFFFFF",cardInputPlaceholderColor:"#60A5FA",nameInput:{backgroundColor:"#1E3A8A",border:"2px solid #1E40AF",borderRadius:"12px",padding:"14px 16px",fontWeight:"500",color:"#FFFFFF"},submitButton:{background:"linear-gradient(135deg, #60A5FA 0%, #38BDF8 100%)",borderRadius:"9999px",padding:"16px 24px",boxShadow:"0 10px 25px rgba(96,165,250,0.35)",fontWeight:"700",color:"#FFFFFF",border:"none"},submitButtonFontSize:"17px",title:{color:"#FFFFFF",fontWeight:"800",letterSpacing:"-0.02em"},titleFontSize:"22px",backButton:{color:"#DBEAFE",fontWeight:"600"},backButtonIcon:{backgroundColor:"#1E40AF"},countrySelect:{backgroundColor:"#1E3A8A",color:"#FFFFFF"},zipInput:{backgroundColor:"#1E3A8A",color:"#FFFFFF"}},P={cardFormContainer:{background:"linear-gradient(135deg, #DBEAFE 0%, #BFDBFE 100%)",borderRadius:"24px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.6), 0 12px 40px rgba(23,133,224,0.15)",padding:"28px"},cardButton:{backgroundColor:"rgba(255,255,255,0.7)",backdropFilter:"blur(20px)",borderRadius:"16px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.5), 0 4px 16px rgba(23,133,224,0.1)",padding:"14px 18px"},cardInputBorder:"rgba(255,255,255,0.6)",nameInput:{backgroundColor:"rgba(255,255,255,0.6)",backdropFilter:"blur(10px)",border:"1px solid rgba(255,255,255,0.6)",borderRadius:"14px",padding:"14px 16px"},submitButton:{backgroundColor:"rgba(23,133,224,0.95)",backdropFilter:"blur(10px)",borderRadius:"16px",padding:"16px 24px",boxShadow:"0 10px 30px rgba(23,133,224,0.3), inset 0 1px 0 rgba(255,255,255,0.2)",fontWeight:"600",color:"#FFFFFF"},title:{color:"#1E293B",fontWeight:"600",letterSpacing:"-0.01em"},titleFontSize:"20px",backButton:{color:"#1785E0",fontWeight:"500"},backButtonIcon:{backgroundColor:"rgba(255,255,255,0.7)"}},k={cardFormContainer:{background:"linear-gradient(135deg, #0C2B4D 0%, #0F172A 100%)",borderRadius:"24px",border:"1px solid rgba(255,255,255,0.08)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.06), 0 20px 50px rgba(0,0,0,0.4)",padding:"28px"},cardButton:{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(20px)",borderRadius:"16px",border:"1px solid rgba(255,255,255,0.08)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.05), 0 4px 16px rgba(0,0,0,0.3)",padding:"14px 18px",color:"#F1F5F9"},cardInputBorder:"rgba(255,255,255,0.08)",cardInputBackground:"rgba(15,23,42,0.6)",cardInputColor:"#F1F5F9",cardInputPlaceholderColor:"#64748B",nameInput:{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(10px)",border:"1px solid rgba(255,255,255,0.08)",borderRadius:"14px",padding:"14px 16px",color:"#F1F5F9"},submitButton:{backgroundColor:"rgba(96,165,250,0.9)",backdropFilter:"blur(10px)",borderRadius:"16px",padding:"16px 24px",boxShadow:"0 10px 30px rgba(96,165,250,0.35), inset 0 1px 0 rgba(255,255,255,0.15)",fontWeight:"600",color:"#0F172A"},title:{color:"#F1F5F9",fontWeight:"600",letterSpacing:"-0.01em"},titleFontSize:"20px",backButton:{color:"#60A5FA",fontWeight:"500"},backButtonIcon:{backgroundColor:"rgba(255,255,255,0.08)"},countrySelect:{backgroundColor:"rgba(15,23,42,0.6)",color:"#F1F5F9"},zipInput:{backgroundColor:"rgba(15,23,42,0.6)",color:"#F1F5F9"}};function We(e){switch(e){case"minimal":return re;case"rounded":return oe;case"dark":return ne;case"modern-light":return h;case"modern-dark":return I;case"bold-light":return R;case"bold-dark":return _;case"glass-light":return P;case"glass-dark":return k;default:return te}}var ae={"modern-light":{appearance:j,buttonsLayout:h},"modern-dark":{appearance:X,buttonsLayout:I},"bold-light":{appearance:$,buttonsLayout:R},"bold-dark":{appearance:J,buttonsLayout:_},"glass-light":{appearance:Q,buttonsLayout:P},"glass-dark":{appearance:ee,buttonsLayout:k}};function Ze(e){if(!(!e||e==="classic"))return ae[e]}function je(e){switch(e){case"apple_pay":return"applePay";case"google_pay":return"googlePay";case"amazon_pay":return"amazonPay";default:return e}}function i(e,t,r){return`<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><circle cx="11" cy="11" r="11" fill="${t}"/><text x="11" y="15.5" text-anchor="middle" font-size="13" font-weight="700" font-family="-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif" fill="${r}">${e}</text></svg>`}function Oe(e,t){return`<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><circle cx="11" cy="11" r="11" fill="${e}"/><g fill="${t}"><path d="M11 4 L17.5 8 L4.5 8 Z"/><rect x="5" y="8.4" width="12" height="1.2" rx="0.3"/><rect x="5.9" y="10" width="1.5" height="5"/><rect x="8.55" y="10" width="1.5" height="5"/><rect x="11.95" y="10" width="1.5" height="5"/><rect x="14.6" y="10" width="1.5" height="5"/><rect x="4.6" y="15.4" width="12.8" height="1.5" rx="0.3"/></g></svg>`}var Xe=["AT","BE","BG","CY","CZ","DE","DK","EE","ES","FI","FR","GR","HR","HU","IE","IT","LT","LU","LV","MT","NL","PL","PT","RO","SE","SI","SK","IS","LI","NO","CH","GB","MC","SM","AD","VA"],_r=[...Xe,"JP","MX","US"],g={apple_pay:{displayName:"Apple Pay",currencies:["*"],express:!0,needsExplicitConfirm:!1},google_pay:{displayName:"Google Pay",currencies:["*"],express:!0,needsExplicitConfirm:!1},paypal:{displayName:"PayPal",currencies:["eur","gbp","usd","cad","aud","nzd","chf","jpy","pln","sek","nok","dkk","czk","huf"],express:!0,needsExplicitConfirm:!1},link:{displayName:"Link",currencies:["usd","eur"],express:!0,needsExplicitConfirm:!1},amazon_pay:{displayName:"Amazon Pay",currencies:["usd","eur","gbp"],express:!0,needsExplicitConfirm:!1},klarna:{displayName:"Klarna",currencies:["usd","eur","gbp","aud","nzd","cad","chf","sek","nok","dkk","pln","czk","ron"],amounts:{usd:{min:100},eur:{min:100},gbp:{min:100}},theme:{light:{backgroundColor:"#FFB3C7",textColor:"#0A0B09",borderColor:"#FFB3C7",logoSvg:i("K","#0A0B09","#FFB3C7")},dark:{backgroundColor:"#FFB3C7",textColor:"#0A0B09",borderColor:"#FFB3C7",logoSvg:i("K","#0A0B09","#FFB3C7")}}},affirm:{displayName:"Affirm",currencies:["usd"],countries:["US","CA"],amounts:{usd:{min:3500,max:3e6}},needsExplicitConfirm:!1,theme:{light:{backgroundColor:"#060F33",textColor:"#FFFFFF",borderColor:"#060F33",logoSvg:i("a","#FFFFFF","#060F33")},dark:{backgroundColor:"#0FA0EA",textColor:"#060F33",borderColor:"#0FA0EA",logoSvg:i("a","#060F33","#FFFFFF")}}},cashapp:{displayName:"Cash App Pay",currencies:["usd"],countries:["US"],amounts:{usd:{min:50,max:99999999}},needsExplicitConfirm:!1,theme:{light:{backgroundColor:"#00D54B",textColor:"#0A1F0E",borderColor:"#00D54B",logoSvg:i("$","#0A1F0E","#00D54B")},dark:{backgroundColor:"#00D54B",textColor:"#0A1F0E",borderColor:"#00D54B",logoSvg:i("$","#0A1F0E","#00D54B")}}},afterpay_clearpay:{displayName:"Afterpay",currencies:["usd","aud","cad","gbp","nzd"],countries:["US","CA","GB","AU","NZ"],amounts:{usd:{min:100,max:2e5},cad:{min:100,max:2e5},gbp:{min:100,max:12e4},aud:{min:100,max:2e5},nzd:{min:100,max:2e5}},theme:{light:{backgroundColor:"#B2FCE4",textColor:"#0A0B09",borderColor:"#B2FCE4",logoSvg:i("A","#0A0B09","#B2FCE4")},dark:{backgroundColor:"#B2FCE4",textColor:"#0A0B09",borderColor:"#B2FCE4",logoSvg:i("A","#0A0B09","#B2FCE4")}}},alipay:{displayName:"Alipay",currencies:["usd","cny"],theme:{light:{backgroundColor:"#1677FF",textColor:"#FFFFFF",borderColor:"#1677FF",logoSvg:i("A","#FFFFFF","#1677FF")},dark:{backgroundColor:"#1677FF",textColor:"#FFFFFF",borderColor:"#1677FF",logoSvg:i("A","#FFFFFF","#1677FF")}}},au_becs_debit:{displayName:"BECS Direct Debit",currencies:["aud"],countries:["AU"]},bacs_debit:{displayName:"Bacs Debit",currencies:["gbp"],countries:["GB"]},bancontact:{displayName:"Bancontact",currencies:["eur"],countries:["BE"],theme:{light:{backgroundColor:"#FFDD55",textColor:"#1E3791",borderColor:"#FFDD55",logoSvg:i("B","#1E3791","#FFDD55")},dark:{backgroundColor:"#1E3791",textColor:"#FFDD55",borderColor:"#1E3791",logoSvg:i("B","#FFDD55","#1E3791")}}},bizum:{displayName:"Bizum",currencies:["eur"],countries:["ES"],theme:{light:{backgroundColor:"#00BFB3",textColor:"#FFFFFF",borderColor:"#00BFB3",logoSvg:i("B","#FFFFFF","#00BFB3")},dark:{backgroundColor:"#00BFB3",textColor:"#FFFFFF",borderColor:"#00BFB3",logoSvg:i("B","#FFFFFF","#00BFB3")}}},blik:{displayName:"BLIK",currencies:["pln"],countries:["PL"],theme:{light:{backgroundColor:"#000000",textColor:"#FFFFFF",borderColor:"#000000",logoSvg:i("B","#FFFFFF","#000000")},dark:{backgroundColor:"#FFFFFF",textColor:"#000000",borderColor:"#FFFFFF",logoSvg:i("B","#000000","#FFFFFF")}}},boleto:{displayName:"Boleto",currencies:["brl"],countries:["BR"]},customer_balance:{displayName:"Bank Transfer",currencies:["eur","usd"],countries:_r,theme:{light:{backgroundColor:"#1F2937",textColor:"#FFFFFF",borderColor:"#1F2937",logoSvg:Oe("#1F2937","#FFFFFF")},dark:{backgroundColor:"#374151",textColor:"#FFFFFF",borderColor:"#374151",logoSvg:Oe("#374151","#FFFFFF")}}},eps:{displayName:"EPS",currencies:["eur"],countries:["AT"],theme:{light:{backgroundColor:"#C8102E",textColor:"#FFFFFF",borderColor:"#C8102E",logoSvg:i("E","#FFFFFF","#C8102E")},dark:{backgroundColor:"#C8102E",textColor:"#FFFFFF",borderColor:"#C8102E",logoSvg:i("E","#FFFFFF","#C8102E")}}},giropay:{displayName:"Giropay",currencies:["eur"],countries:["DE"],theme:{light:{backgroundColor:"#0F4197",textColor:"#FFFFFF",borderColor:"#0F4197",logoSvg:i("G","#FFFFFF","#0F4197")},dark:{backgroundColor:"#0F4197",textColor:"#FFFFFF",borderColor:"#0F4197",logoSvg:i("G","#FFFFFF","#0F4197")}}},ideal:{displayName:"iDEAL",currencies:["eur"],countries:["NL"],theme:{light:{backgroundColor:"#CC0066",textColor:"#FFFFFF",borderColor:"#CC0066",logoSvg:i("i","#FFFFFF","#CC0066")},dark:{backgroundColor:"#CC0066",textColor:"#FFFFFF",borderColor:"#CC0066",logoSvg:i("i","#FFFFFF","#CC0066")}}},konbini:{displayName:"Konbini",currencies:["jpy"],countries:["JP"]},kr_card:{displayName:"Korean Card",currencies:["krw"],countries:["KR"],theme:{light:{backgroundColor:"#0B3D91",textColor:"#FFFFFF",borderColor:"#0B3D91",logoSvg:i("K","#FFFFFF","#0B3D91")},dark:{backgroundColor:"#0B3D91",textColor:"#FFFFFF",borderColor:"#0B3D91",logoSvg:i("K","#FFFFFF","#0B3D91")}}},multibanco:{displayName:"Multibanco",currencies:["eur"],countries:["PT"]},oxxo:{displayName:"OXXO",currencies:["mxn"],countries:["MX"]},p24:{displayName:"Przelewy24",currencies:["eur","pln"],countries:["PL"],theme:{light:{backgroundColor:"#D90F1B",textColor:"#FFFFFF",borderColor:"#D90F1B",logoSvg:i("P","#FFFFFF","#D90F1B")},dark:{backgroundColor:"#D90F1B",textColor:"#FFFFFF",borderColor:"#D90F1B",logoSvg:i("P","#FFFFFF","#D90F1B")}}},paynow:{displayName:"PayNow",currencies:["sgd"],countries:["SG"]},pix:{displayName:"Pix",currencies:["brl"],countries:["BR"]},promptpay:{displayName:"PromptPay",currencies:["thb"],countries:["TH"]},sepa_debit:{displayName:"SEPA Debit",currencies:["eur"],countries:Xe,theme:{light:{backgroundColor:"#10298E",textColor:"#FFFFFF",borderColor:"#10298E",logoSvg:i("\u20AC","#FFFFFF","#10298E")},dark:{backgroundColor:"#3056D3",textColor:"#FFFFFF",borderColor:"#3056D3",logoSvg:i("\u20AC","#FFFFFF","#3056D3")}}},sofort:{displayName:"Sofort",currencies:["eur"],countries:["AT","BE","DE","ES","IT","NL"],theme:{light:{backgroundColor:"#EF809F",textColor:"#FFFFFF",borderColor:"#EF809F",logoSvg:i("S","#FFFFFF","#EF809F")},dark:{backgroundColor:"#EF809F",textColor:"#FFFFFF",borderColor:"#EF809F",logoSvg:i("S","#FFFFFF","#EF809F")}}},upi:{displayName:"UPI",currencies:["inr"],countries:["IN"],theme:{light:{backgroundColor:"#FF7909",textColor:"#FFFFFF",borderColor:"#FF7909",logoSvg:i("U","#FFFFFF","#FF7909")},dark:{backgroundColor:"#FF7909",textColor:"#FFFFFF",borderColor:"#FF7909",logoSvg:i("U","#FFFFFF","#FF7909")}}},us_bank_account:{displayName:"US Bank Account",currencies:["usd"],countries:["US"]},wechat_pay:{displayName:"WeChat Pay",currencies:["usd","cny"],theme:{light:{backgroundColor:"#07C160",textColor:"#FFFFFF",borderColor:"#07C160",logoSvg:i("W","#FFFFFF","#07C160")},dark:{backgroundColor:"#07C160",textColor:"#FFFFFF",borderColor:"#07C160",logoSvg:i("W","#FFFFFF","#07C160")}}},zip:{displayName:"Zip",currencies:["aud"],countries:["AU","NZ"]}};function $e(e){return e?Me.includes(e):!1}var ie=Object.entries(g).filter(([,e])=>e.express).map(([e])=>e),Pr=new Set(ie),se=Object.fromEntries(Object.entries(g).map(([e,t])=>[e,t.currencies])),ce=Object.fromEntries(Object.entries(g).filter(([,e])=>e.countries).map(([e,t])=>[e,t.countries]));function Je(e){if(!e)return"this method";let t=g[e];return t?t.displayName:e.split("_").filter(Boolean).map(r=>r.charAt(0).toUpperCase()+r.slice(1)).join(" ")}function Qe(e){if(!e)return!0;let t=g[e];return t?t.needsExplicitConfirm!==!1:!0}function et(e,t){if(!e)return null;let r=g[e];return r?.theme?(typeof t=="string"&&t.endsWith("-dark")?r.theme.dark:r.theme.light)??r.theme.light??null:null}function tt(e,t){if(!e?.length)return[];if(!t)return[...e];let r=t.trim().toLowerCase();return r?e.filter(o=>{let n=se[o];return n?n.includes("*")||n.includes(r):!0}):[...e]}function rt(e,t){if(!e?.length)return[];if(!t)return[...e];let r=t.trim().toUpperCase();return r?e.filter(o=>{let n=ce[o];return n?n.includes("*")||n.includes(r):!0}):[...e]}var de=Object.fromEntries(Object.entries(g).filter(([,e])=>e.amounts).map(([e,t])=>[e,t.amounts]));function ot(e,t,r){if(!e?.length)return[];if(!t||typeof r!="number"||!Number.isFinite(r))return[...e];let o=t.trim().toLowerCase();return o?e.filter(n=>{let s=de[n];if(!s)return!0;let d=s[o];return d?!(typeof d.min=="number"&&r<d.min||typeof d.max=="number"&&r>d.max):!0}):[...e]}function nt(e,t){if(!e?.length)return{expressMethods:[],paymentElementMethods:[]};let r=[],o=[],n=new Set,s=new Set;for(let d of e){if(typeof d!="string")continue;let p=d.trim();if(!(!p||p==="card")&&!(t?.excludePaypal&&p==="paypal"))if(Pr.has(p)){if(n.has(p))continue;n.add(p),r.push(p)}else{if(s.has(p))continue;s.add(p),o.push(p)}}return{expressMethods:r,paymentElementMethods:o}}var at=["payment","address"],it=["visa","mastercard","mastercard_debit","amex","discover"],B={AT:{currency:"EUR",symbol:"\u20AC",country:"Austria",countryCode:"AT",tax:1},BE:{currency:"EUR",symbol:"\u20AC",country:"Belgium",countryCode:"BE",tax:1},CY:{currency:"EUR",symbol:"\u20AC",country:"Cyprus",countryCode:"CY",tax:1},DE:{currency:"EUR",symbol:"\u20AC",country:"Germany",countryCode:"DE",tax:1},EE:{currency:"EUR",symbol:"\u20AC",country:"Estonia",countryCode:"EE",tax:1},ES:{currency:"EUR",symbol:"\u20AC",country:"Spain",countryCode:"ES",tax:1},FI:{currency:"EUR",symbol:"\u20AC",country:"Finland",countryCode:"FI",tax:1},FR:{currency:"EUR",symbol:"\u20AC",country:"France",countryCode:"FR",tax:1},GR:{currency:"EUR",symbol:"\u20AC",country:"Greece",countryCode:"GR",tax:1},HR:{currency:"EUR",symbol:"\u20AC",country:"Croatia",countryCode:"HR",tax:1},IE:{currency:"EUR",symbol:"\u20AC",country:"Ireland",countryCode:"IE",tax:1},IT:{currency:"EUR",symbol:"\u20AC",country:"Italy",countryCode:"IT",tax:1},LT:{currency:"EUR",symbol:"\u20AC",country:"Lithuania",countryCode:"LT",tax:1},LU:{currency:"EUR",symbol:"\u20AC",country:"Luxembourg",countryCode:"LU",tax:1},LV:{currency:"EUR",symbol:"\u20AC",country:"Latvia",countryCode:"LV",tax:1},MT:{currency:"EUR",symbol:"\u20AC",country:"Malta",countryCode:"MT",tax:1},NL:{currency:"EUR",symbol:"\u20AC",country:"Netherlands",countryCode:"NL",tax:1},PT:{currency:"EUR",symbol:"\u20AC",country:"Portugal",countryCode:"PT",tax:1},SI:{currency:"EUR",symbol:"\u20AC",country:"Slovenia",countryCode:"SI",tax:1},SK:{currency:"EUR",symbol:"\u20AC",country:"Slovakia",countryCode:"SK",tax:1},BG:{currency:"EUR",symbol:"\u20AC",country:"Bulgaria",countryCode:"BG",tax:1},RO:{currency:"EUR",symbol:"\u20AC",country:"Romania",countryCode:"RO",tax:1},CZ:{currency:"EUR",symbol:"\u20AC",country:"Czech Republic",countryCode:"CZ",tax:1},SE:{currency:"EUR",symbol:"\u20AC",country:"Sweden",countryCode:"SE",tax:1},DK:{currency:"EUR",symbol:"\u20AC",country:"Denmark",countryCode:"DK",tax:1},PL:{currency:"EUR",symbol:"\u20AC",country:"Poland",countryCode:"PL",tax:1},HU:{currency:"EUR",symbol:"\u20AC",country:"Hungary",countryCode:"HU",tax:1},GB:{currency:"GBP",symbol:"\xA3",country:"United Kingdom",countryCode:"GB",tax:1},US:{currency:"USD",symbol:"$",country:"United States",countryCode:"US",tax:0},CA:{currency:"CAD",symbol:"CA$",country:"Canada",countryCode:"CA",tax:0},NZ:{currency:"NZD",symbol:"NZ$",country:"New Zealand",countryCode:"NZ",tax:0},AU:{currency:"AUD",symbol:"AU$",country:"Australia",countryCode:"AU",tax:0}},N={currency:"USD",symbol:"$",country:"United States",countryCode:"US",tax:0};function st(e){switch(e.toUpperCase()){case"US":return"ZIP Code";case"GB":return"Postcode";case"CA":return"Postal Code";case"AU":case"NZ":return"Postcode";case"IE":return"Eircode";default:return"Postal Code"}}var kr=new Intl.DisplayNames(["en"],{type:"region"});function Br(e){return[...e.toUpperCase()].map(t=>String.fromCodePoint(127397+t.charCodeAt(0))).join("")}var ct=["US","GB","CA","AU","NZ","IE","DE","FR"],Nr=["AD","AE","AF","AG","AL","AM","AO","AR","AT","AU","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BN","BO","BR","BS","BT","BW","BY","BZ","CA","CD","CF","CG","CH","CI","CL","CM","CN","CO","CR","CU","CV","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","ER","ES","ET","FI","FJ","FM","FR","GA","GB","GD","GE","GH","GM","GN","GQ","GR","GT","GW","GY","HN","HR","HT","HU","ID","IE","IL","IN","IQ","IR","IS","IT","JM","JO","JP","KE","KG","KH","KI","KM","KN","KR","KW","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MG","MH","MK","ML","MM","MN","MR","MT","MU","MV","MW","MX","MY","MZ","NA","NE","NG","NI","NL","NO","NP","NR","NZ","OM","PA","PE","PG","PH","PK","PL","PT","PW","PY","QA","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SI","SK","SL","SM","SN","SO","SR","SS","ST","SV","SY","SZ","TD","TG","TH","TJ","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","UZ","VA","VC","VE","VN","VU","WS","XK","YE","ZA","ZM","ZW"];function Ue(e){return{code:e,name:kr.of(e)??e,flag:Br(e)}}var vr=new Set(ct),Dr=Nr.filter(e=>!vr.has(e)),ue=[...ct.map(Ue),...Dr.map(Ue)];function dt(e){return ue.find(t=>t.code===e)}var Lr={country:!0,postal_code:!0};function le(e){return e?e===!0?Lr:e:null}function ut(e,t){if(e===void 0||e===!1)return!1;if(e===!0)return!0;let r=t.trim().toUpperCase();return e.some(o=>o.trim().toUpperCase()===r)}function lt(e){let t=le(e);return t?Object.values(t).some(r=>r===!0||Array.isArray(r)&&r.length>0):!1}var pe=[{code:"AL",name:"Alabama"},{code:"AK",name:"Alaska"},{code:"AZ",name:"Arizona"},{code:"AR",name:"Arkansas"},{code:"CA",name:"California"},{code:"CO",name:"Colorado"},{code:"CT",name:"Connecticut"},{code:"DE",name:"Delaware"},{code:"DC",name:"District of Columbia"},{code:"FL",name:"Florida"},{code:"GA",name:"Georgia"},{code:"HI",name:"Hawaii"},{code:"ID",name:"Idaho"},{code:"IL",name:"Illinois"},{code:"IN",name:"Indiana"},{code:"IA",name:"Iowa"},{code:"KS",name:"Kansas"},{code:"KY",name:"Kentucky"},{code:"LA",name:"Louisiana"},{code:"ME",name:"Maine"},{code:"MD",name:"Maryland"},{code:"MA",name:"Massachusetts"},{code:"MI",name:"Michigan"},{code:"MN",name:"Minnesota"},{code:"MS",name:"Mississippi"},{code:"MO",name:"Missouri"},{code:"MT",name:"Montana"},{code:"NE",name:"Nebraska"},{code:"NV",name:"Nevada"},{code:"NH",name:"New Hampshire"},{code:"NJ",name:"New Jersey"},{code:"NM",name:"New Mexico"},{code:"NY",name:"New York"},{code:"NC",name:"North Carolina"},{code:"ND",name:"North Dakota"},{code:"OH",name:"Ohio"},{code:"OK",name:"Oklahoma"},{code:"OR",name:"Oregon"},{code:"PA",name:"Pennsylvania"},{code:"RI",name:"Rhode Island"},{code:"SC",name:"South Carolina"},{code:"SD",name:"South Dakota"},{code:"TN",name:"Tennessee"},{code:"TX",name:"Texas"},{code:"UT",name:"Utah"},{code:"VT",name:"Vermont"},{code:"VA",name:"Virginia"},{code:"WA",name:"Washington"},{code:"WV",name:"West Virginia"},{code:"WI",name:"Wisconsin"},{code:"WY",name:"Wyoming"}],me=[{code:"AB",name:"Alberta"},{code:"BC",name:"British Columbia"},{code:"MB",name:"Manitoba"},{code:"NB",name:"New Brunswick"},{code:"NL",name:"Newfoundland and Labrador"},{code:"NS",name:"Nova Scotia"},{code:"NT",name:"Northwest Territories"},{code:"NU",name:"Nunavut"},{code:"ON",name:"Ontario"},{code:"PE",name:"Prince Edward Island"},{code:"QC",name:"Quebec"},{code:"SK",name:"Saskatchewan"},{code:"YT",name:"Yukon"}];function pt(e){switch(e.toUpperCase()){case"US":return pe;case"CA":return me;default:return null}}function mt(e){switch(e.toUpperCase()){case"US":return"State";case"CA":return"Province";case"GB":return"County";case"AU":return"State / Territory";default:return"State / Province / Region"}}var Mr=[[5,5,"NY"],[10,27,"MA"],[28,29,"RI"],[30,38,"NH"],[39,49,"ME"],[50,59,"VT"],[60,69,"CT"],[70,89,"NJ"],[100,149,"NY"],[150,196,"PA"],[197,199,"DE"],[200,205,"DC"],[206,219,"MD"],[220,246,"VA"],[247,268,"WV"],[270,289,"NC"],[290,299,"SC"],[300,319,"GA"],[320,349,"FL"],[350,369,"AL"],[370,385,"TN"],[386,397,"MS"],[398,399,"GA"],[400,427,"KY"],[430,459,"OH"],[460,479,"IN"],[480,499,"MI"],[500,528,"IA"],[530,549,"WI"],[550,567,"MN"],[570,577,"SD"],[580,588,"ND"],[590,599,"MT"],[600,629,"IL"],[630,658,"MO"],[660,679,"KS"],[680,693,"NE"],[700,714,"LA"],[716,729,"AR"],[730,749,"OK"],[750,799,"TX"],[800,816,"CO"],[820,831,"WY"],[832,838,"ID"],[840,847,"UT"],[850,865,"AZ"],[870,884,"NM"],[889,898,"NV"],[900,961,"CA"],[967,968,"HI"],[970,979,"OR"],[980,994,"WA"],[995,999,"AK"]],Or={A:"NL",B:"NS",C:"PE",E:"NB",G:"QC",H:"QC",J:"QC",K:"ON",L:"ON",M:"ON",N:"ON",P:"ON",R:"MB",S:"SK",T:"AB",V:"BC",X:"NT",Y:"YT"};function Ur(e){let t=e.replace(/\D/g,"");if(t.length<5)return null;let r=Number.parseInt(t.slice(0,3),10);if(!Number.isFinite(r))return null;for(let[o,n,s]of Mr)if(r>=o&&r<=n)return s;return null}function wr(e){let t=e.replace(/\s+/g,"").toUpperCase();if(!/^[A-Z]\d[A-Z]\d[A-Z]\d$/.test(t))return null;let r=t[0]??"";return Or[r]??null}function gt(e,t){if(!e||!t)return null;let r=e.trim().toUpperCase(),o=t.trim();if(!o)return null;switch(r){case"US":return Ur(o);case"CA":return wr(o);default:return null}}var Gr=Wt(require("validator/lib/isPostalCode.js"),1),v=Gr,yt=typeof v.default=="function"?v.default:v.default?.default;if(typeof yt!="function")throw new Error("validator/lib/isPostalCode.js interop failed: unexpected module shape. This likely means the bundler's CJS/ESM interop changed.");var Et=new Set(v.locales.map(e=>e.toUpperCase())),Kr={AUSTRALIA:"AU",BRAZIL:"BR",CANADA:"CA",CH:"CH",DENMARK:"DK",DE:"DE",DEUTSCHLAND:"DE",FRANCE:"FR",GB:"GB",GERMANY:"DE",GREATBRITAIN:"GB",GREAT_BRITAIN:"GB",INDIA:"IN",IRELAND:"IE",ITALY:"IT",JAPAN:"JP",MEXICO:"MX",NETHERLANDS:"NL",NEWZEALAND:"NZ",NORWAY:"NO",POLAND:"PL",PORTUGAL:"PT",SINGAPORE:"SG",SOUTHAFRICA:"ZA",SPAIN:"ES",SWEDEN:"SE",SWITZERLAND:"CH",UK:"GB",UNITEDKINGDOM:"GB",UNITEDSTATES:"US",US:"US",USA:"US","UNITED STATES":"US","UNITED KINGDOM":"GB","GREAT BRITAIN":"GB",ENGLAND:"GB"};function ge(e){let t=(e??"").trim().toUpperCase();return t?t.length===2?t:Kr[t]??null:null}var Vr={AU:"2000",BR:"01000-000",CA:"A1A 1A1",CH:"8001",DE:"10115",DK:"1050",ES:"28001",FR:"75008",GB:"SW1A 1AA",IE:"D02 X285",IN:"110001",IT:"00118",JP:"100-0001",MX:"06500",NL:"1012 JS",NO:"0150",NZ:"6011",PL:"00-001",PT:"1100-148",SE:"111 22",SG:"018989",US:"12345 or 12345-6789",ZA:"8001"};function Ct(e){let t=ge(e);return t!==null&&Et.has(t)}function Ft(e,t){let r=(t??"").trim();if(!r)return!0;let o=ge(e);if(o===null||!Et.has(o))return!0;try{return yt(r,o)}catch{return!0}}function bt(e){let t=ge(e);return t?Vr[t]:void 0}function ft(e){return e.deferDataAttachment!==!1&&(e.checkoutMode??"full")==="full"&&!e.tokenizedData}function a(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function D(e,t,r,o){let n=a(e);if(n)return n;for(let s of t??[]){let d=a(s.currency);if(d)return d}for(let s of r??[]){let d=a(s.currency);if(d)return d}for(let s of o??[]){let d=a(s.currency);if(d)return d}return null}function xt(e,t){let r=[];for(let o of t??[])r.push({type:"subscription",code:a(o.code)??a(o.providerPlanId),providerPlanId:o.providerPlanId,name:a(o.subscriptionName)??a(o.providerPlanName)??null,subscriptionName:o.subscriptionName??null,providerPlanName:o.providerPlanName??null,quantity:o.quantity,totalAmount:o.totalAmount,overrideAmount:o.overrideAmount,currency:o.currency,metadata:o.metadata});for(let o of e??[])r.push({type:"item",code:a(o.code)??a(o.providerItemId),providerItemId:o.providerItemId,name:a(o.itemName)??a(o.providerItemName)??null,itemName:o.itemName??null,providerItemName:o.providerItemName??null,quantity:o.quantity,totalAmount:o.totalAmount,overrideAmount:o.overrideAmount,currency:o.currency,metadata:o.metadata});return r}function Tt(e,t){let r=a(e.code)??a(e.providerItemId)??a(e.providerPlanId);if(!r)throw new Error("CheckoutProduct requires `code` (or the deprecated `providerItemId` / `providerPlanId`).");let o=a(e.name)??a(e.itemName)??a(e.providerItemName)??a(e.subscriptionName)??a(e.providerPlanName)??null,n={type:e.type,code:r,name:o,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(n.metadata=e.metadata),n}function St(e,t){let r=a(e.code)??a(e.providerItemId);if(!r)throw new Error("CheckoutItem requires either `code` or the deprecated `providerItemId`.");let o=a(e.itemName)??a(e.providerItemName)??null,n={code:r,providerItemId:a(e.providerItemId)??r,itemName:o,providerItemName:a(e.providerItemName)??o,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(n.metadata=e.metadata),n}function At(e,t){let r=a(e.code)??a(e.providerPlanId);if(!r)throw new Error("CheckoutSubscription requires either `code` or the deprecated `providerPlanId`.");let o=a(e.subscriptionName)??a(e.providerPlanName)??null,n={code:r,providerPlanId:a(e.providerPlanId)??r,subscriptionName:o,providerPlanName:a(e.providerPlanName)??o,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(n.metadata=e.metadata),n}function ht(e,t={}){let r=[],o=e.products??[],n=o.filter(c=>c.type==="subscription"),s=o.filter(c=>c.type!=="subscription"),p=(D(e.currency,void 0,void 0,o)??"USD").toUpperCase();for(let c of n){let m=c.totalAmount??0,F=c.overrideAmount??m,O=c.name||c.code||"Subscription";O==="4-WEEK PLAN"&&F<=1&&(O="7-DAY TRIAL: FULL ACCESS"),r.push({name:O,quantity:c.quantity,price:F,originalPrice:m})}if(!(t.hideBundledItems===!0&&n.length>0&&s.length>0))for(let c of s){let m=c.totalAmount??0,F=c.overrideAmount??m;r.push({name:c.name||c.code||"Item",quantity:c.quantity,price:F,originalPrice:m})}r.length===0&&r.push({name:"Purchase",quantity:1,price:e.amount/100,originalPrice:e.amount/100});let Lt=r.reduce((c,m)=>c+m.originalPrice*m.quantity,0),Mt=r.reduce((c,m)=>c+m.price*m.quantity,0),Ot=typeof e.totalAmount=="number"&&Number.isFinite(e.totalAmount),Ut=typeof e.subtotalAmount=="number"&&Number.isFinite(e.subtotalAmount),wt=typeof e.discountAmount=="number"&&Number.isFinite(e.discountAmount),Ee=Ot?e.totalAmount:Mt,C=Ut?e.subtotalAmount:Lt,Ce=Math.max(0,C-Ee),Gt=C>0?Math.round(Ce/C*100):0;return{items:r,currency:p,total:Ee,originalTotal:C,totalSave:Ce,discountPercent:Gt,...wt?{couponDiscount:e.discountAmount}:{}}}function It(e){return B[e.toUpperCase()]??N}function Rt(e){return/^pk_(test|live)_[A-Za-z0-9]+$/.test(e)}function _t(e){return/^sk_(test|live)_[A-Za-z0-9]+$/.test(e)}function Pt(e){return typeof e=="string"&&e.startsWith("seti_")}var kt="Idempotency-Key",L=255,Bt="IdempotencyKeyInProgress";function Yr(){let e=globalThis.crypto;if(e&&(typeof e.randomUUID=="function"||typeof e.getRandomValues=="function"))return e}function ye(){let e=Yr();if(!e)return;if(typeof e.randomUUID=="function")return e.randomUUID();let t=new Uint8Array(16);return e.getRandomValues(t),Array.from(t,r=>r.toString(16).padStart(2,"0")).join("")}function Nt(e){if(e===void 0)return ye();if(typeof e!="string"||e.trim()==="")throw new u("idempotencyKey must be a non-empty string identifying exactly one checkout creation.","validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});if(e.length>L)throw new u(`idempotencyKey must be at most ${L} characters.`,"validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});return e}var M=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function vt(e){return typeof e=="string"&&M.test(e)}function Dt(){try{let r=globalThis.crypto.randomUUID();if(M.test(r))return r}catch{}let e=new Uint8Array(16);try{globalThis.crypto.getRandomValues(e)}catch{for(let r=0;r<e.length;r+=1)e[r]=Math.floor(Math.random()*256)}e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}0&&(module.exports={BILLING_API_URL,BILLING_API_URL_PRODUCTION,BILLING_API_URL_STAGING,BOLD_DARK_APPEARANCE,BOLD_LIGHT_APPEARANCE,BUTTONS_LAYOUT_BOLD_DARK,BUTTONS_LAYOUT_BOLD_LIGHT,BUTTONS_LAYOUT_DARK,BUTTONS_LAYOUT_DEFAULT,BUTTONS_LAYOUT_GLASS_DARK,BUTTONS_LAYOUT_GLASS_LIGHT,BUTTONS_LAYOUT_MINIMAL,BUTTONS_LAYOUT_MODERN_DARK,BUTTONS_LAYOUT_MODERN_LIGHT,BUTTONS_LAYOUT_ROUNDED,CA_PROVINCES,COUNTRY_OPTIONS,CURRENCY_MAP,DEFAULT_API_BASE_URL,DEFAULT_API_VERSION,DEFAULT_APPEARANCE,DEFAULT_CURRENCY,ELEMENT_TYPES,FLAT_APPEARANCE,FLO_SDK_VERSION_HEADER,FloPayError,GLASS_DARK_APPEARANCE,GLASS_LIGHT_APPEARANCE,IDEMPOTENCY_IN_PROGRESS_CODE,IDEMPOTENCY_KEY_HEADER,MAX_IDEMPOTENCY_KEY_LENGTH,MODERN_DARK_APPEARANCE,MODERN_LIGHT_APPEARANCE,NIGHT_APPEARANCE,SDK_VERSION,STRIPE_EXPRESS_METHODS,STRIPE_METHOD_AMOUNT_LIMITS,STRIPE_METHOD_COUNTRIES,STRIPE_METHOD_CURRENCIES,STRIPE_METHOD_MATRIX,SUPPORTED_CARD_BRANDS,TELEMETRY_ERROR_CODES,TELEMETRY_FAILURE_CATEGORIES,TELEMETRY_LOG_NAMES,TELEMETRY_MAX_BATCH_BYTES,TELEMETRY_MAX_BATCH_EVENTS,TELEMETRY_SCHEMA_VERSION,TELEMETRY_SDK_PACKAGES,THEMES,US_STATES,UUID_V4,apiError,authenticationError,buildCheckoutDisplayData,buildItemPayload,buildProductPayload,buildSubscriptionPayload,buildTelemetryErrorEvent,buildTelemetryLogEvent,buildTelemetryPerformanceEvent,buildTelemetryTerminalEvent,classifyTelemetryFailure,configureFlopay,dropThirdPartyOnlyError,filterStripeMethodsByAmount,filterStripeMethodsByCountry,filterStripeMethodsByCurrency,foldIntoProducts,generateIdempotencyKey,getConfiguredBillingApiUrl,getCountryByCode,getCurrencyByCountry,getFloPayEnvironment,getPostalCodeExample,getPostalCodeLabel,getStateFromPostalCode,getStateLabel,getStateOptions,getStripeMethodDisplayName,hasVendoredStripeMethodLogo,isAVSEnabled,isAVSFieldVisible,isDetachedSessionEligible,isPostalCodeSupported,isSetupIntentClientSecret,isUuidV4,isValidPostalCode,isValidPublishableKey,isValidSecretKey,needsStripeMethodExplicitConfirm,networkError,normalizeGatewayEnvironment,partitionStripeMethods,randomUuidV4,rateLimitError,resolveAVSConfig,resolveBillingApiUrl,resolveButtonsLayoutTheme,resolveIdempotencyKey,resolveSessionCurrency,resolveStripeMethodBrandVariant,resolveTheme,serializeTelemetryBatch,stripeExpressMethodToOptionKey,telemetryStatusClass,validationError});
|
package/dist/index.d.cts
CHANGED
|
@@ -970,6 +970,33 @@ interface NormalizedCheckoutSession {
|
|
|
970
970
|
};
|
|
971
971
|
raw?: unknown;
|
|
972
972
|
}
|
|
973
|
+
/**
|
|
974
|
+
* Two-phase result of a **detached** checkout-session create
|
|
975
|
+
* (TeamFloPay/backend#1099).
|
|
976
|
+
*
|
|
977
|
+
* `shell` resolves first, from a create that ran no catalog validation and took
|
|
978
|
+
* no buyer-identity advisory locks. It already carries the session id, nonce,
|
|
979
|
+
* routed `gateways` and the hosted `vault` block, so the card form can mount
|
|
980
|
+
* from it. It does **not** carry products, coupons, buyer identity or cart
|
|
981
|
+
* totals — those arrive with `claimed`.
|
|
982
|
+
*
|
|
983
|
+
* `claimed` resolves when the background
|
|
984
|
+
* `PATCH /v1/checkouts/sessions/{id}/claim` attaches that data and returns the
|
|
985
|
+
* fully-populated session. Nothing may be charged until it settles: the billing
|
|
986
|
+
* API rejects process / intent / decline calls on an unclaimed session with
|
|
987
|
+
* `409 checkout_session_data_attachment_required`, and its vault webhook holds
|
|
988
|
+
* an unclaimed charge with a `503` until the claim lands.
|
|
989
|
+
*/
|
|
990
|
+
interface DetachedCheckoutSession {
|
|
991
|
+
/** Lightweight shell — mountable card form, no cart or buyer data yet. */
|
|
992
|
+
shell: NormalizedCheckoutSession;
|
|
993
|
+
/** Session id of the shell, available before `claimed` settles. */
|
|
994
|
+
sessionId: string;
|
|
995
|
+
/** Session-bound checkout token, required by the claim and every later call. */
|
|
996
|
+
nonce: string;
|
|
997
|
+
/** Resolves with the fully-attached session once the background claim lands. */
|
|
998
|
+
claimed: Promise<NormalizedCheckoutSession>;
|
|
999
|
+
}
|
|
973
1000
|
/** A one-time purchase item for checkout session creation. */
|
|
974
1001
|
interface CheckoutItem {
|
|
975
1002
|
/**
|
|
@@ -1219,6 +1246,27 @@ interface InlineSessionParams {
|
|
|
1219
1246
|
* random key per create. Must be non-empty and at most 255 characters.
|
|
1220
1247
|
*/
|
|
1221
1248
|
idempotencyKey?: string;
|
|
1249
|
+
/**
|
|
1250
|
+
* Opt out of **detached** session creation (TeamFloPay/backend#1099).
|
|
1251
|
+
*
|
|
1252
|
+
* Defaults to `true`: the SDK creates a lightweight session *shell* first
|
|
1253
|
+
* (`POST /v1/checkouts/sessions` with `deferDataAttachment: true`), mounts the
|
|
1254
|
+
* hosted card form from that response, then attaches buyer identity, address,
|
|
1255
|
+
* products and coupons in the background via
|
|
1256
|
+
* `PATCH /v1/checkouts/sessions/{id}/claim`. The shell create takes no
|
|
1257
|
+
* buyer-identity advisory locks and runs no catalog validation, so the card
|
|
1258
|
+
* form becomes interactive without waiting for either.
|
|
1259
|
+
*
|
|
1260
|
+
* Set to `false` to use the original one-shot create, which sends buyer and
|
|
1261
|
+
* catalog data in the single `POST` and returns the fully-populated session.
|
|
1262
|
+
* Behaviour is otherwise identical — the same session, callbacks and results.
|
|
1263
|
+
*
|
|
1264
|
+
* Detached creation requires `checkoutMode: 'full'` (the billing API rejects
|
|
1265
|
+
* `deferDataAttachment` for `auto` / `confirm`) and is skipped automatically
|
|
1266
|
+
* when {@link InlineSessionParams.tokenizedData} is supplied, since a
|
|
1267
|
+
* saved-payment session must carry its cart from the start.
|
|
1268
|
+
*/
|
|
1269
|
+
deferDataAttachment?: boolean;
|
|
1222
1270
|
/** Whether AVS is enabled for this checkout. */
|
|
1223
1271
|
avsCheck?: boolean;
|
|
1224
1272
|
/** Checkout type: 'standard_checkout' or 'embedded_checkout'. */
|
|
@@ -1359,6 +1407,28 @@ interface CountryOption {
|
|
|
1359
1407
|
flag: string;
|
|
1360
1408
|
}
|
|
1361
1409
|
|
|
1410
|
+
interface SentryStackFrameLike {
|
|
1411
|
+
in_app?: boolean;
|
|
1412
|
+
filename?: string;
|
|
1413
|
+
abs_path?: string;
|
|
1414
|
+
module?: string;
|
|
1415
|
+
}
|
|
1416
|
+
interface SentryEventLike {
|
|
1417
|
+
exception?: {
|
|
1418
|
+
values?: Array<{
|
|
1419
|
+
stacktrace?: {
|
|
1420
|
+
frames?: SentryStackFrameLike[];
|
|
1421
|
+
};
|
|
1422
|
+
}>;
|
|
1423
|
+
};
|
|
1424
|
+
}
|
|
1425
|
+
/**
|
|
1426
|
+
* Drops errors whose complete exception stack contains recognized hosted
|
|
1427
|
+
* third-party code and no resolvable first-party frame. All other events are
|
|
1428
|
+
* returned by identity.
|
|
1429
|
+
*/
|
|
1430
|
+
declare function dropThirdPartyOnlyError<T extends SentryEventLike>(event: T): T | null;
|
|
1431
|
+
|
|
1362
1432
|
/** Wire schema version shared with the Flo telemetry ingestion service. */
|
|
1363
1433
|
declare const TELEMETRY_SCHEMA_VERSION: 1;
|
|
1364
1434
|
declare const TELEMETRY_SDK_PACKAGES: readonly ["@flopay/shared", "@flopay/js", "@flopay/react"];
|
|
@@ -1371,16 +1441,16 @@ type TelemetryProvider = (typeof TELEMETRY_PROVIDERS)[number];
|
|
|
1371
1441
|
type TelemetryProviderInput = TelemetryProvider | 'flo' | 'pcivault' | 'other' | 'unknown';
|
|
1372
1442
|
declare const TELEMETRY_PAYMENT_METHOD_CATEGORIES: readonly ["card", "wallet", "paypal", "apm", "saved", "unknown"];
|
|
1373
1443
|
type TelemetryPaymentMethodCategory = (typeof TELEMETRY_PAYMENT_METHOD_CATEGORIES)[number];
|
|
1374
|
-
declare const TELEMETRY_STAGES: readonly ["callback", "sdk_initialize", "checkout_mount", "session_create", "session_read", "session_first_byte", "session_complete", "checkout_data_ready", "checkout_render", "checkout_interactive", "provider_load", "provider_ready", "overlay_open", "overlay_return", "redirect", "redirect_resume", "vault_request", "vault_mount", "vault_ready", "vault_submit", "tokenization", "three_ds_handoff", "three_ds_return", "processing", "recovery", "completion", "unmount", "total_journey"];
|
|
1444
|
+
declare const TELEMETRY_STAGES: readonly ["callback", "sdk_initialize", "checkout_mount", "session_create", "session_shell", "session_claim", "session_read", "session_first_byte", "session_complete", "checkout_data_ready", "checkout_render", "checkout_interactive", "provider_load", "provider_ready", "overlay_open", "overlay_return", "redirect", "redirect_resume", "vault_request", "vault_mount", "vault_ready", "vault_submit", "tokenization", "three_ds_handoff", "three_ds_return", "processing", "recovery", "completion", "unmount", "total_journey"];
|
|
1375
1445
|
type TelemetryStage = (typeof TELEMETRY_STAGES)[number];
|
|
1376
1446
|
declare const TELEMETRY_ERROR_CODES: readonly ["CALLBACK_FAILED", "CHECKOUT_SESSION_CREATE_FAILED", "CONFIGURATION_INVALID", "INTERNAL_SDK_ERROR", "NETWORK_REQUEST_FAILED", "PAYMENT_PROCESSING_FAILED", "POPUP_BLOCKED", "PROVIDER_LOAD_FAILED", "PROVIDER_RUNTIME_FAILED", "RECOVERY_FAILED", "REDIRECT_RESUME_FAILED", "REQUEST_TIMEOUT", "SDK_INITIALIZATION_FAILED", "THREE_DS_FAILED", "TOKENIZATION_FAILED", "VAULT_LOAD_FAILED", "VAULT_SUBMIT_FAILED"];
|
|
1377
1447
|
type TelemetryErrorCode = (typeof TELEMETRY_ERROR_CODES)[number];
|
|
1378
1448
|
declare const TELEMETRY_FAILURE_CATEGORIES: readonly ["server_error", "transport_error", "invalid_response", "provider_runtime"];
|
|
1379
1449
|
type TelemetryFailureCategory = (typeof TELEMETRY_FAILURE_CATEGORIES)[number];
|
|
1380
1450
|
/** Closed catalog of SDK-authored lifecycle and operational log names. */
|
|
1381
|
-
declare const TELEMETRY_LOG_NAMES: readonly ["sdk.initialize.started", "sdk.initialize.ready", "sdk.cache.hit", "sdk.cache.miss", "checkout.mount", "session.create.started", "session.read.started", "session.request.first_byte", "session.request.completed", "checkout.data.ready", "checkout.rendered", "checkout.interactive", "checkout.recovery.started", "checkout.recovery.completed", "checkout.unmount", "provider.load.started", "provider.eligibility.checked", "provider.availability.checked", "provider.ready", "provider.popup.opened", "provider.overlay.opened", "provider.overlay.returned", "provider.redirect.started", "provider.redirect.resumed", "vault.capture.requested", "vault.widget.mounted", "vault.widget.ready", "vault.submission.started", "vault.action.required", "vault.three_ds.handoff", "vault.three_ds.returned", "vault.terminal", "payment.method.selected", "payment.intent.started", "payment.intent.completed", "payment.tokenization.started", "payment.tokenization.completed", "payment.processing.started", "payment.processing.completed", "payment.three_ds.handoff", "payment.three_ds.returned", "operation.retry", "operation.deduplicated", "operation.fallback", "operation.cache.hit", "operation.cache.miss", "operation.recovery.started", "operation.recovery.completed", "operation.state_transition"];
|
|
1451
|
+
declare const TELEMETRY_LOG_NAMES: readonly ["sdk.initialize.started", "sdk.initialize.ready", "sdk.cache.hit", "sdk.cache.miss", "checkout.mount", "session.create.started", "session.shell.ready", "session.claim.started", "session.claim.completed", "session.read.started", "session.request.first_byte", "session.request.completed", "checkout.data.ready", "checkout.rendered", "checkout.interactive", "checkout.recovery.started", "checkout.recovery.completed", "checkout.unmount", "provider.load.started", "provider.eligibility.checked", "provider.availability.checked", "provider.ready", "provider.popup.opened", "provider.overlay.opened", "provider.overlay.returned", "provider.redirect.started", "provider.redirect.resumed", "vault.capture.requested", "vault.widget.mounted", "vault.widget.ready", "vault.submission.started", "vault.action.required", "vault.three_ds.handoff", "vault.three_ds.returned", "vault.terminal", "payment.method.selected", "payment.intent.started", "payment.intent.completed", "payment.tokenization.started", "payment.tokenization.completed", "payment.processing.started", "payment.processing.completed", "payment.three_ds.handoff", "payment.three_ds.returned", "operation.retry", "operation.deduplicated", "operation.fallback", "operation.cache.hit", "operation.cache.miss", "operation.recovery.started", "operation.recovery.completed", "operation.state_transition"];
|
|
1382
1452
|
type TelemetryLogName = (typeof TELEMETRY_LOG_NAMES)[number];
|
|
1383
|
-
declare const TELEMETRY_REQUEST_CATEGORIES: readonly ["session_create", "session_read", "intent_create", "process_payment", "vault_capture", "account_snapshot", "provider_sdk", "other"];
|
|
1453
|
+
declare const TELEMETRY_REQUEST_CATEGORIES: readonly ["session_create", "session_claim", "session_read", "intent_create", "process_payment", "vault_capture", "account_snapshot", "provider_sdk", "other"];
|
|
1384
1454
|
type TelemetryRequestCategory = (typeof TELEMETRY_REQUEST_CATEGORIES)[number];
|
|
1385
1455
|
declare const TELEMETRY_STATUS_CLASSES: readonly ["2xx", "3xx", "4xx", "5xx", "network_error", "timeout", "unknown"];
|
|
1386
1456
|
type TelemetryStatusClass = (typeof TELEMETRY_STATUS_CLASSES)[number];
|
|
@@ -1521,7 +1591,7 @@ declare function getConfiguredBillingApiUrl(): string;
|
|
|
1521
1591
|
declare function getFloPayEnvironment(): FloPayEnvironment;
|
|
1522
1592
|
|
|
1523
1593
|
/** Current SDK version. */
|
|
1524
|
-
declare const SDK_VERSION = "1.4.
|
|
1594
|
+
declare const SDK_VERSION = "1.4.18";
|
|
1525
1595
|
/**
|
|
1526
1596
|
* HTTP header the SDK sends on checkout-session create/read requests so the
|
|
1527
1597
|
* backend can observe compatibility. Version 1.4.9 is the first release that
|
|
@@ -2048,6 +2118,19 @@ interface BuildCheckoutDisplayDataOptions {
|
|
|
2048
2118
|
*/
|
|
2049
2119
|
declare function buildCheckoutDisplayData(session: CheckoutSession, options?: BuildCheckoutDisplayDataOptions): CheckoutDisplayData;
|
|
2050
2120
|
|
|
2121
|
+
/**
|
|
2122
|
+
* Whether a session may be created through the **detached** shell + claim flow
|
|
2123
|
+
* (TeamFloPay/backend#1099).
|
|
2124
|
+
*
|
|
2125
|
+
* Detached creation is the default, but it is not universally available:
|
|
2126
|
+
*
|
|
2127
|
+
* - The billing API accepts `deferDataAttachment` only for Full checkouts
|
|
2128
|
+
* (`IsDeferredCheckoutMode`), so `auto` and `confirm` are excluded.
|
|
2129
|
+
* - A saved-payment session (`tokenizedData`) can be charged the moment it
|
|
2130
|
+
* exists, so it must carry its cart from the start.
|
|
2131
|
+
* - `deferDataAttachment: false` is the caller's explicit opt-out.
|
|
2132
|
+
*/
|
|
2133
|
+
declare function isDetachedSessionEligible(params: InlineSessionDraft): boolean;
|
|
2051
2134
|
/**
|
|
2052
2135
|
* Resolve the session-level currency, honoring the documented fallback:
|
|
2053
2136
|
* `session.currency ?? items[*].currency ?? subscriptions[*].currency ?? products[*].currency`.
|
|
@@ -2191,4 +2274,4 @@ declare function isUuidV4(value: unknown): value is string;
|
|
|
2191
2274
|
*/
|
|
2192
2275
|
declare function randomUuidV4(): string;
|
|
2193
2276
|
|
|
2194
|
-
export { type AVSFieldConfig, BILLING_API_URL, BILLING_API_URL_PRODUCTION, BILLING_API_URL_STAGING, BOLD_DARK_APPEARANCE, BOLD_LIGHT_APPEARANCE, BUTTONS_LAYOUT_BOLD_DARK, BUTTONS_LAYOUT_BOLD_LIGHT, BUTTONS_LAYOUT_DARK, BUTTONS_LAYOUT_DEFAULT, BUTTONS_LAYOUT_GLASS_DARK, BUTTONS_LAYOUT_GLASS_LIGHT, BUTTONS_LAYOUT_MINIMAL, BUTTONS_LAYOUT_MODERN_DARK, BUTTONS_LAYOUT_MODERN_LIGHT, BUTTONS_LAYOUT_ROUNDED, type BeforeButtonClickEvent, type BillingDetails, type BillingProvider, type BuildCheckoutDisplayDataOptions, type BuildTelemetryErrorEventInput, type BuildTelemetryLogEventInput, type BuildTelemetryPerformanceEventInput, type BuildTelemetryTerminalEventInput, type ButtonsLayoutStyles, type ButtonsLayoutTheme, CA_PROVINCES, COUNTRY_OPTIONS, CURRENCY_MAP, type CardCaptureAdapter, type CardCaptureEventType, type CardCaptureMountOptions, type CardCaptureOutcomeEvent, type CardCaptureProviderId, type CheckoutAccount, type CheckoutButtonMethod, type CheckoutDisplayData, type CheckoutGateway, type CheckoutGateways, type CheckoutItem, type CheckoutMode, type CheckoutModeKind, type CheckoutProcessError, type CheckoutProcessingPending, type CheckoutProduct, type CheckoutProductType, type CheckoutSession, type CheckoutSessionProduct, type CheckoutSessionResult, type CheckoutSubscription, type ClassifiedTelemetryFailure, type ConfirmPaymentParams, type CountryOption, type CreateCustomerParams, type CreateSessionIntentRequest, type CreateSessionParams, type CurrencyInfo, type Customer, DEFAULT_API_BASE_URL, DEFAULT_API_VERSION, DEFAULT_APPEARANCE, DEFAULT_CURRENCY, type DeclineEvent, type DisplayLineItem, ELEMENT_TYPES, type ElementChangeEvent, type ElementOptions, type ElementType, FLAT_APPEARANCE, FLO_SDK_VERSION_HEADER, type FloPayAppearance, type FloPayConfig, type FloPayEnvironment, FloPayError, type FloPayErrorType, type FloPayThemeVariables, GLASS_DARK_APPEARANCE, GLASS_LIGHT_APPEARANCE, type GatewayEnvironment, IDEMPOTENCY_IN_PROGRESS_CODE, IDEMPOTENCY_KEY_HEADER, type InlineSessionDraft, type InlineSessionParams, type InlineSessionPatch, type LineItem, MAX_IDEMPOTENCY_KEY_LENGTH, MODERN_DARK_APPEARANCE, MODERN_LIGHT_APPEARANCE, type MountedElement, NIGHT_APPEARANCE, type NonCardPaymentMethodCategory, type NormalizedCheckoutSession, type NormalizedGatewayEnvironment, type PayPalPaymentResult, type PayPalSessionIntent, type PayPalSessionIntentRequest, type PaymentProviderAdapter, type PaymentResult, type PriceData, type ProcessPaymentParams, type RecurringInterval, SDK_VERSION, STRIPE_EXPRESS_METHODS, STRIPE_METHOD_AMOUNT_LIMITS, STRIPE_METHOD_COUNTRIES, STRIPE_METHOD_CURRENCIES, STRIPE_METHOD_MATRIX, SUPPORTED_CARD_BRANDS, type SerializeTelemetryBatchOptions, type SessionIntent, type SessionIntentDeclineRequest, type StateOption, type StripeMethodEntry, type StripeMethodThemeVariant, type StripeSessionIntent, type StripeSessionIntentRequest, TELEMETRY_ERROR_CODES, TELEMETRY_FAILURE_CATEGORIES, TELEMETRY_LOG_NAMES, TELEMETRY_MAX_BATCH_BYTES, TELEMETRY_MAX_BATCH_EVENTS, TELEMETRY_SCHEMA_VERSION, TELEMETRY_SDK_PACKAGES, THEMES, type TagsData, type TelemetryBatchEnvelope, type TelemetryCheckoutMode, type TelemetryDurationMode, type TelemetryErrorCode, type TelemetryErrorEvent, type TelemetryEvent, type TelemetryEventClass, type TelemetryExpectedOutcome, type TelemetryExpectedOutcomeEvent, type TelemetryFailureCategory, type TelemetryLayout, type TelemetryLogEvent, type TelemetryLogName, type TelemetryPaymentMethodCategory, type TelemetryPerformanceEvent, type TelemetryProvider, type TelemetryProviderInput, type TelemetryRequestCategory, type TelemetrySdkPackage, type TelemetryStage, type TelemetryStatusClass, type ThemeBundle, type ThemeBundleId, type ThemeId, type TokenizedBody, US_STATES, UUID_V4, type UpdateCustomerParams, type VaultCaptureBlock, type VaultCaptureResultMessage, type VaultCardFieldKey, type VaultCardThemeColors, type WebhookEvent, apiError, authenticationError, buildCheckoutDisplayData, buildItemPayload, buildProductPayload, buildSubscriptionPayload, buildTelemetryErrorEvent, buildTelemetryLogEvent, buildTelemetryPerformanceEvent, buildTelemetryTerminalEvent, classifyTelemetryFailure, configureFlopay, filterStripeMethodsByAmount, filterStripeMethodsByCountry, filterStripeMethodsByCurrency, foldIntoProducts, generateIdempotencyKey, getConfiguredBillingApiUrl, getCountryByCode, getCurrencyByCountry, getFloPayEnvironment, getPostalCodeExample, getPostalCodeLabel, getStateFromPostalCode, getStateLabel, getStateOptions, getStripeMethodDisplayName, hasVendoredStripeMethodLogo, isAVSEnabled, isAVSFieldVisible, isPostalCodeSupported, isSetupIntentClientSecret, isUuidV4, isValidPostalCode, isValidPublishableKey, isValidSecretKey, needsStripeMethodExplicitConfirm, networkError, normalizeGatewayEnvironment, partitionStripeMethods, randomUuidV4, rateLimitError, resolveAVSConfig, resolveBillingApiUrl, resolveButtonsLayoutTheme, resolveIdempotencyKey, resolveSessionCurrency, resolveStripeMethodBrandVariant, resolveTheme, serializeTelemetryBatch, stripeExpressMethodToOptionKey, telemetryStatusClass, validationError };
|
|
2277
|
+
export { type AVSFieldConfig, BILLING_API_URL, BILLING_API_URL_PRODUCTION, BILLING_API_URL_STAGING, BOLD_DARK_APPEARANCE, BOLD_LIGHT_APPEARANCE, BUTTONS_LAYOUT_BOLD_DARK, BUTTONS_LAYOUT_BOLD_LIGHT, BUTTONS_LAYOUT_DARK, BUTTONS_LAYOUT_DEFAULT, BUTTONS_LAYOUT_GLASS_DARK, BUTTONS_LAYOUT_GLASS_LIGHT, BUTTONS_LAYOUT_MINIMAL, BUTTONS_LAYOUT_MODERN_DARK, BUTTONS_LAYOUT_MODERN_LIGHT, BUTTONS_LAYOUT_ROUNDED, type BeforeButtonClickEvent, type BillingDetails, type BillingProvider, type BuildCheckoutDisplayDataOptions, type BuildTelemetryErrorEventInput, type BuildTelemetryLogEventInput, type BuildTelemetryPerformanceEventInput, type BuildTelemetryTerminalEventInput, type ButtonsLayoutStyles, type ButtonsLayoutTheme, CA_PROVINCES, COUNTRY_OPTIONS, CURRENCY_MAP, type CardCaptureAdapter, type CardCaptureEventType, type CardCaptureMountOptions, type CardCaptureOutcomeEvent, type CardCaptureProviderId, type CheckoutAccount, type CheckoutButtonMethod, type CheckoutDisplayData, type CheckoutGateway, type CheckoutGateways, type CheckoutItem, type CheckoutMode, type CheckoutModeKind, type CheckoutProcessError, type CheckoutProcessingPending, type CheckoutProduct, type CheckoutProductType, type CheckoutSession, type CheckoutSessionProduct, type CheckoutSessionResult, type CheckoutSubscription, type ClassifiedTelemetryFailure, type ConfirmPaymentParams, type CountryOption, type CreateCustomerParams, type CreateSessionIntentRequest, type CreateSessionParams, type CurrencyInfo, type Customer, DEFAULT_API_BASE_URL, DEFAULT_API_VERSION, DEFAULT_APPEARANCE, DEFAULT_CURRENCY, type DeclineEvent, type DetachedCheckoutSession, type DisplayLineItem, ELEMENT_TYPES, type ElementChangeEvent, type ElementOptions, type ElementType, FLAT_APPEARANCE, FLO_SDK_VERSION_HEADER, type FloPayAppearance, type FloPayConfig, type FloPayEnvironment, FloPayError, type FloPayErrorType, type FloPayThemeVariables, GLASS_DARK_APPEARANCE, GLASS_LIGHT_APPEARANCE, type GatewayEnvironment, IDEMPOTENCY_IN_PROGRESS_CODE, IDEMPOTENCY_KEY_HEADER, type InlineSessionDraft, type InlineSessionParams, type InlineSessionPatch, type LineItem, MAX_IDEMPOTENCY_KEY_LENGTH, MODERN_DARK_APPEARANCE, MODERN_LIGHT_APPEARANCE, type MountedElement, NIGHT_APPEARANCE, type NonCardPaymentMethodCategory, type NormalizedCheckoutSession, type NormalizedGatewayEnvironment, type PayPalPaymentResult, type PayPalSessionIntent, type PayPalSessionIntentRequest, type PaymentProviderAdapter, type PaymentResult, type PriceData, type ProcessPaymentParams, type RecurringInterval, SDK_VERSION, STRIPE_EXPRESS_METHODS, STRIPE_METHOD_AMOUNT_LIMITS, STRIPE_METHOD_COUNTRIES, STRIPE_METHOD_CURRENCIES, STRIPE_METHOD_MATRIX, SUPPORTED_CARD_BRANDS, type SentryEventLike, type SentryStackFrameLike, type SerializeTelemetryBatchOptions, type SessionIntent, type SessionIntentDeclineRequest, type StateOption, type StripeMethodEntry, type StripeMethodThemeVariant, type StripeSessionIntent, type StripeSessionIntentRequest, TELEMETRY_ERROR_CODES, TELEMETRY_FAILURE_CATEGORIES, TELEMETRY_LOG_NAMES, TELEMETRY_MAX_BATCH_BYTES, TELEMETRY_MAX_BATCH_EVENTS, TELEMETRY_SCHEMA_VERSION, TELEMETRY_SDK_PACKAGES, THEMES, type TagsData, type TelemetryBatchEnvelope, type TelemetryCheckoutMode, type TelemetryDurationMode, type TelemetryErrorCode, type TelemetryErrorEvent, type TelemetryEvent, type TelemetryEventClass, type TelemetryExpectedOutcome, type TelemetryExpectedOutcomeEvent, type TelemetryFailureCategory, type TelemetryLayout, type TelemetryLogEvent, type TelemetryLogName, type TelemetryPaymentMethodCategory, type TelemetryPerformanceEvent, type TelemetryProvider, type TelemetryProviderInput, type TelemetryRequestCategory, type TelemetrySdkPackage, type TelemetryStage, type TelemetryStatusClass, type ThemeBundle, type ThemeBundleId, type ThemeId, type TokenizedBody, US_STATES, UUID_V4, type UpdateCustomerParams, type VaultCaptureBlock, type VaultCaptureResultMessage, type VaultCardFieldKey, type VaultCardThemeColors, type WebhookEvent, apiError, authenticationError, buildCheckoutDisplayData, buildItemPayload, buildProductPayload, buildSubscriptionPayload, buildTelemetryErrorEvent, buildTelemetryLogEvent, buildTelemetryPerformanceEvent, buildTelemetryTerminalEvent, classifyTelemetryFailure, configureFlopay, dropThirdPartyOnlyError, filterStripeMethodsByAmount, filterStripeMethodsByCountry, filterStripeMethodsByCurrency, foldIntoProducts, generateIdempotencyKey, getConfiguredBillingApiUrl, getCountryByCode, getCurrencyByCountry, getFloPayEnvironment, getPostalCodeExample, getPostalCodeLabel, getStateFromPostalCode, getStateLabel, getStateOptions, getStripeMethodDisplayName, hasVendoredStripeMethodLogo, isAVSEnabled, isAVSFieldVisible, isDetachedSessionEligible, isPostalCodeSupported, isSetupIntentClientSecret, isUuidV4, isValidPostalCode, isValidPublishableKey, isValidSecretKey, needsStripeMethodExplicitConfirm, networkError, normalizeGatewayEnvironment, partitionStripeMethods, randomUuidV4, rateLimitError, resolveAVSConfig, resolveBillingApiUrl, resolveButtonsLayoutTheme, resolveIdempotencyKey, resolveSessionCurrency, resolveStripeMethodBrandVariant, resolveTheme, serializeTelemetryBatch, stripeExpressMethodToOptionKey, telemetryStatusClass, validationError };
|
package/dist/index.d.ts
CHANGED
|
@@ -970,6 +970,33 @@ interface NormalizedCheckoutSession {
|
|
|
970
970
|
};
|
|
971
971
|
raw?: unknown;
|
|
972
972
|
}
|
|
973
|
+
/**
|
|
974
|
+
* Two-phase result of a **detached** checkout-session create
|
|
975
|
+
* (TeamFloPay/backend#1099).
|
|
976
|
+
*
|
|
977
|
+
* `shell` resolves first, from a create that ran no catalog validation and took
|
|
978
|
+
* no buyer-identity advisory locks. It already carries the session id, nonce,
|
|
979
|
+
* routed `gateways` and the hosted `vault` block, so the card form can mount
|
|
980
|
+
* from it. It does **not** carry products, coupons, buyer identity or cart
|
|
981
|
+
* totals — those arrive with `claimed`.
|
|
982
|
+
*
|
|
983
|
+
* `claimed` resolves when the background
|
|
984
|
+
* `PATCH /v1/checkouts/sessions/{id}/claim` attaches that data and returns the
|
|
985
|
+
* fully-populated session. Nothing may be charged until it settles: the billing
|
|
986
|
+
* API rejects process / intent / decline calls on an unclaimed session with
|
|
987
|
+
* `409 checkout_session_data_attachment_required`, and its vault webhook holds
|
|
988
|
+
* an unclaimed charge with a `503` until the claim lands.
|
|
989
|
+
*/
|
|
990
|
+
interface DetachedCheckoutSession {
|
|
991
|
+
/** Lightweight shell — mountable card form, no cart or buyer data yet. */
|
|
992
|
+
shell: NormalizedCheckoutSession;
|
|
993
|
+
/** Session id of the shell, available before `claimed` settles. */
|
|
994
|
+
sessionId: string;
|
|
995
|
+
/** Session-bound checkout token, required by the claim and every later call. */
|
|
996
|
+
nonce: string;
|
|
997
|
+
/** Resolves with the fully-attached session once the background claim lands. */
|
|
998
|
+
claimed: Promise<NormalizedCheckoutSession>;
|
|
999
|
+
}
|
|
973
1000
|
/** A one-time purchase item for checkout session creation. */
|
|
974
1001
|
interface CheckoutItem {
|
|
975
1002
|
/**
|
|
@@ -1219,6 +1246,27 @@ interface InlineSessionParams {
|
|
|
1219
1246
|
* random key per create. Must be non-empty and at most 255 characters.
|
|
1220
1247
|
*/
|
|
1221
1248
|
idempotencyKey?: string;
|
|
1249
|
+
/**
|
|
1250
|
+
* Opt out of **detached** session creation (TeamFloPay/backend#1099).
|
|
1251
|
+
*
|
|
1252
|
+
* Defaults to `true`: the SDK creates a lightweight session *shell* first
|
|
1253
|
+
* (`POST /v1/checkouts/sessions` with `deferDataAttachment: true`), mounts the
|
|
1254
|
+
* hosted card form from that response, then attaches buyer identity, address,
|
|
1255
|
+
* products and coupons in the background via
|
|
1256
|
+
* `PATCH /v1/checkouts/sessions/{id}/claim`. The shell create takes no
|
|
1257
|
+
* buyer-identity advisory locks and runs no catalog validation, so the card
|
|
1258
|
+
* form becomes interactive without waiting for either.
|
|
1259
|
+
*
|
|
1260
|
+
* Set to `false` to use the original one-shot create, which sends buyer and
|
|
1261
|
+
* catalog data in the single `POST` and returns the fully-populated session.
|
|
1262
|
+
* Behaviour is otherwise identical — the same session, callbacks and results.
|
|
1263
|
+
*
|
|
1264
|
+
* Detached creation requires `checkoutMode: 'full'` (the billing API rejects
|
|
1265
|
+
* `deferDataAttachment` for `auto` / `confirm`) and is skipped automatically
|
|
1266
|
+
* when {@link InlineSessionParams.tokenizedData} is supplied, since a
|
|
1267
|
+
* saved-payment session must carry its cart from the start.
|
|
1268
|
+
*/
|
|
1269
|
+
deferDataAttachment?: boolean;
|
|
1222
1270
|
/** Whether AVS is enabled for this checkout. */
|
|
1223
1271
|
avsCheck?: boolean;
|
|
1224
1272
|
/** Checkout type: 'standard_checkout' or 'embedded_checkout'. */
|
|
@@ -1359,6 +1407,28 @@ interface CountryOption {
|
|
|
1359
1407
|
flag: string;
|
|
1360
1408
|
}
|
|
1361
1409
|
|
|
1410
|
+
interface SentryStackFrameLike {
|
|
1411
|
+
in_app?: boolean;
|
|
1412
|
+
filename?: string;
|
|
1413
|
+
abs_path?: string;
|
|
1414
|
+
module?: string;
|
|
1415
|
+
}
|
|
1416
|
+
interface SentryEventLike {
|
|
1417
|
+
exception?: {
|
|
1418
|
+
values?: Array<{
|
|
1419
|
+
stacktrace?: {
|
|
1420
|
+
frames?: SentryStackFrameLike[];
|
|
1421
|
+
};
|
|
1422
|
+
}>;
|
|
1423
|
+
};
|
|
1424
|
+
}
|
|
1425
|
+
/**
|
|
1426
|
+
* Drops errors whose complete exception stack contains recognized hosted
|
|
1427
|
+
* third-party code and no resolvable first-party frame. All other events are
|
|
1428
|
+
* returned by identity.
|
|
1429
|
+
*/
|
|
1430
|
+
declare function dropThirdPartyOnlyError<T extends SentryEventLike>(event: T): T | null;
|
|
1431
|
+
|
|
1362
1432
|
/** Wire schema version shared with the Flo telemetry ingestion service. */
|
|
1363
1433
|
declare const TELEMETRY_SCHEMA_VERSION: 1;
|
|
1364
1434
|
declare const TELEMETRY_SDK_PACKAGES: readonly ["@flopay/shared", "@flopay/js", "@flopay/react"];
|
|
@@ -1371,16 +1441,16 @@ type TelemetryProvider = (typeof TELEMETRY_PROVIDERS)[number];
|
|
|
1371
1441
|
type TelemetryProviderInput = TelemetryProvider | 'flo' | 'pcivault' | 'other' | 'unknown';
|
|
1372
1442
|
declare const TELEMETRY_PAYMENT_METHOD_CATEGORIES: readonly ["card", "wallet", "paypal", "apm", "saved", "unknown"];
|
|
1373
1443
|
type TelemetryPaymentMethodCategory = (typeof TELEMETRY_PAYMENT_METHOD_CATEGORIES)[number];
|
|
1374
|
-
declare const TELEMETRY_STAGES: readonly ["callback", "sdk_initialize", "checkout_mount", "session_create", "session_read", "session_first_byte", "session_complete", "checkout_data_ready", "checkout_render", "checkout_interactive", "provider_load", "provider_ready", "overlay_open", "overlay_return", "redirect", "redirect_resume", "vault_request", "vault_mount", "vault_ready", "vault_submit", "tokenization", "three_ds_handoff", "three_ds_return", "processing", "recovery", "completion", "unmount", "total_journey"];
|
|
1444
|
+
declare const TELEMETRY_STAGES: readonly ["callback", "sdk_initialize", "checkout_mount", "session_create", "session_shell", "session_claim", "session_read", "session_first_byte", "session_complete", "checkout_data_ready", "checkout_render", "checkout_interactive", "provider_load", "provider_ready", "overlay_open", "overlay_return", "redirect", "redirect_resume", "vault_request", "vault_mount", "vault_ready", "vault_submit", "tokenization", "three_ds_handoff", "three_ds_return", "processing", "recovery", "completion", "unmount", "total_journey"];
|
|
1375
1445
|
type TelemetryStage = (typeof TELEMETRY_STAGES)[number];
|
|
1376
1446
|
declare const TELEMETRY_ERROR_CODES: readonly ["CALLBACK_FAILED", "CHECKOUT_SESSION_CREATE_FAILED", "CONFIGURATION_INVALID", "INTERNAL_SDK_ERROR", "NETWORK_REQUEST_FAILED", "PAYMENT_PROCESSING_FAILED", "POPUP_BLOCKED", "PROVIDER_LOAD_FAILED", "PROVIDER_RUNTIME_FAILED", "RECOVERY_FAILED", "REDIRECT_RESUME_FAILED", "REQUEST_TIMEOUT", "SDK_INITIALIZATION_FAILED", "THREE_DS_FAILED", "TOKENIZATION_FAILED", "VAULT_LOAD_FAILED", "VAULT_SUBMIT_FAILED"];
|
|
1377
1447
|
type TelemetryErrorCode = (typeof TELEMETRY_ERROR_CODES)[number];
|
|
1378
1448
|
declare const TELEMETRY_FAILURE_CATEGORIES: readonly ["server_error", "transport_error", "invalid_response", "provider_runtime"];
|
|
1379
1449
|
type TelemetryFailureCategory = (typeof TELEMETRY_FAILURE_CATEGORIES)[number];
|
|
1380
1450
|
/** Closed catalog of SDK-authored lifecycle and operational log names. */
|
|
1381
|
-
declare const TELEMETRY_LOG_NAMES: readonly ["sdk.initialize.started", "sdk.initialize.ready", "sdk.cache.hit", "sdk.cache.miss", "checkout.mount", "session.create.started", "session.read.started", "session.request.first_byte", "session.request.completed", "checkout.data.ready", "checkout.rendered", "checkout.interactive", "checkout.recovery.started", "checkout.recovery.completed", "checkout.unmount", "provider.load.started", "provider.eligibility.checked", "provider.availability.checked", "provider.ready", "provider.popup.opened", "provider.overlay.opened", "provider.overlay.returned", "provider.redirect.started", "provider.redirect.resumed", "vault.capture.requested", "vault.widget.mounted", "vault.widget.ready", "vault.submission.started", "vault.action.required", "vault.three_ds.handoff", "vault.three_ds.returned", "vault.terminal", "payment.method.selected", "payment.intent.started", "payment.intent.completed", "payment.tokenization.started", "payment.tokenization.completed", "payment.processing.started", "payment.processing.completed", "payment.three_ds.handoff", "payment.three_ds.returned", "operation.retry", "operation.deduplicated", "operation.fallback", "operation.cache.hit", "operation.cache.miss", "operation.recovery.started", "operation.recovery.completed", "operation.state_transition"];
|
|
1451
|
+
declare const TELEMETRY_LOG_NAMES: readonly ["sdk.initialize.started", "sdk.initialize.ready", "sdk.cache.hit", "sdk.cache.miss", "checkout.mount", "session.create.started", "session.shell.ready", "session.claim.started", "session.claim.completed", "session.read.started", "session.request.first_byte", "session.request.completed", "checkout.data.ready", "checkout.rendered", "checkout.interactive", "checkout.recovery.started", "checkout.recovery.completed", "checkout.unmount", "provider.load.started", "provider.eligibility.checked", "provider.availability.checked", "provider.ready", "provider.popup.opened", "provider.overlay.opened", "provider.overlay.returned", "provider.redirect.started", "provider.redirect.resumed", "vault.capture.requested", "vault.widget.mounted", "vault.widget.ready", "vault.submission.started", "vault.action.required", "vault.three_ds.handoff", "vault.three_ds.returned", "vault.terminal", "payment.method.selected", "payment.intent.started", "payment.intent.completed", "payment.tokenization.started", "payment.tokenization.completed", "payment.processing.started", "payment.processing.completed", "payment.three_ds.handoff", "payment.three_ds.returned", "operation.retry", "operation.deduplicated", "operation.fallback", "operation.cache.hit", "operation.cache.miss", "operation.recovery.started", "operation.recovery.completed", "operation.state_transition"];
|
|
1382
1452
|
type TelemetryLogName = (typeof TELEMETRY_LOG_NAMES)[number];
|
|
1383
|
-
declare const TELEMETRY_REQUEST_CATEGORIES: readonly ["session_create", "session_read", "intent_create", "process_payment", "vault_capture", "account_snapshot", "provider_sdk", "other"];
|
|
1453
|
+
declare const TELEMETRY_REQUEST_CATEGORIES: readonly ["session_create", "session_claim", "session_read", "intent_create", "process_payment", "vault_capture", "account_snapshot", "provider_sdk", "other"];
|
|
1384
1454
|
type TelemetryRequestCategory = (typeof TELEMETRY_REQUEST_CATEGORIES)[number];
|
|
1385
1455
|
declare const TELEMETRY_STATUS_CLASSES: readonly ["2xx", "3xx", "4xx", "5xx", "network_error", "timeout", "unknown"];
|
|
1386
1456
|
type TelemetryStatusClass = (typeof TELEMETRY_STATUS_CLASSES)[number];
|
|
@@ -1521,7 +1591,7 @@ declare function getConfiguredBillingApiUrl(): string;
|
|
|
1521
1591
|
declare function getFloPayEnvironment(): FloPayEnvironment;
|
|
1522
1592
|
|
|
1523
1593
|
/** Current SDK version. */
|
|
1524
|
-
declare const SDK_VERSION = "1.4.
|
|
1594
|
+
declare const SDK_VERSION = "1.4.18";
|
|
1525
1595
|
/**
|
|
1526
1596
|
* HTTP header the SDK sends on checkout-session create/read requests so the
|
|
1527
1597
|
* backend can observe compatibility. Version 1.4.9 is the first release that
|
|
@@ -2048,6 +2118,19 @@ interface BuildCheckoutDisplayDataOptions {
|
|
|
2048
2118
|
*/
|
|
2049
2119
|
declare function buildCheckoutDisplayData(session: CheckoutSession, options?: BuildCheckoutDisplayDataOptions): CheckoutDisplayData;
|
|
2050
2120
|
|
|
2121
|
+
/**
|
|
2122
|
+
* Whether a session may be created through the **detached** shell + claim flow
|
|
2123
|
+
* (TeamFloPay/backend#1099).
|
|
2124
|
+
*
|
|
2125
|
+
* Detached creation is the default, but it is not universally available:
|
|
2126
|
+
*
|
|
2127
|
+
* - The billing API accepts `deferDataAttachment` only for Full checkouts
|
|
2128
|
+
* (`IsDeferredCheckoutMode`), so `auto` and `confirm` are excluded.
|
|
2129
|
+
* - A saved-payment session (`tokenizedData`) can be charged the moment it
|
|
2130
|
+
* exists, so it must carry its cart from the start.
|
|
2131
|
+
* - `deferDataAttachment: false` is the caller's explicit opt-out.
|
|
2132
|
+
*/
|
|
2133
|
+
declare function isDetachedSessionEligible(params: InlineSessionDraft): boolean;
|
|
2051
2134
|
/**
|
|
2052
2135
|
* Resolve the session-level currency, honoring the documented fallback:
|
|
2053
2136
|
* `session.currency ?? items[*].currency ?? subscriptions[*].currency ?? products[*].currency`.
|
|
@@ -2191,4 +2274,4 @@ declare function isUuidV4(value: unknown): value is string;
|
|
|
2191
2274
|
*/
|
|
2192
2275
|
declare function randomUuidV4(): string;
|
|
2193
2276
|
|
|
2194
|
-
export { type AVSFieldConfig, BILLING_API_URL, BILLING_API_URL_PRODUCTION, BILLING_API_URL_STAGING, BOLD_DARK_APPEARANCE, BOLD_LIGHT_APPEARANCE, BUTTONS_LAYOUT_BOLD_DARK, BUTTONS_LAYOUT_BOLD_LIGHT, BUTTONS_LAYOUT_DARK, BUTTONS_LAYOUT_DEFAULT, BUTTONS_LAYOUT_GLASS_DARK, BUTTONS_LAYOUT_GLASS_LIGHT, BUTTONS_LAYOUT_MINIMAL, BUTTONS_LAYOUT_MODERN_DARK, BUTTONS_LAYOUT_MODERN_LIGHT, BUTTONS_LAYOUT_ROUNDED, type BeforeButtonClickEvent, type BillingDetails, type BillingProvider, type BuildCheckoutDisplayDataOptions, type BuildTelemetryErrorEventInput, type BuildTelemetryLogEventInput, type BuildTelemetryPerformanceEventInput, type BuildTelemetryTerminalEventInput, type ButtonsLayoutStyles, type ButtonsLayoutTheme, CA_PROVINCES, COUNTRY_OPTIONS, CURRENCY_MAP, type CardCaptureAdapter, type CardCaptureEventType, type CardCaptureMountOptions, type CardCaptureOutcomeEvent, type CardCaptureProviderId, type CheckoutAccount, type CheckoutButtonMethod, type CheckoutDisplayData, type CheckoutGateway, type CheckoutGateways, type CheckoutItem, type CheckoutMode, type CheckoutModeKind, type CheckoutProcessError, type CheckoutProcessingPending, type CheckoutProduct, type CheckoutProductType, type CheckoutSession, type CheckoutSessionProduct, type CheckoutSessionResult, type CheckoutSubscription, type ClassifiedTelemetryFailure, type ConfirmPaymentParams, type CountryOption, type CreateCustomerParams, type CreateSessionIntentRequest, type CreateSessionParams, type CurrencyInfo, type Customer, DEFAULT_API_BASE_URL, DEFAULT_API_VERSION, DEFAULT_APPEARANCE, DEFAULT_CURRENCY, type DeclineEvent, type DisplayLineItem, ELEMENT_TYPES, type ElementChangeEvent, type ElementOptions, type ElementType, FLAT_APPEARANCE, FLO_SDK_VERSION_HEADER, type FloPayAppearance, type FloPayConfig, type FloPayEnvironment, FloPayError, type FloPayErrorType, type FloPayThemeVariables, GLASS_DARK_APPEARANCE, GLASS_LIGHT_APPEARANCE, type GatewayEnvironment, IDEMPOTENCY_IN_PROGRESS_CODE, IDEMPOTENCY_KEY_HEADER, type InlineSessionDraft, type InlineSessionParams, type InlineSessionPatch, type LineItem, MAX_IDEMPOTENCY_KEY_LENGTH, MODERN_DARK_APPEARANCE, MODERN_LIGHT_APPEARANCE, type MountedElement, NIGHT_APPEARANCE, type NonCardPaymentMethodCategory, type NormalizedCheckoutSession, type NormalizedGatewayEnvironment, type PayPalPaymentResult, type PayPalSessionIntent, type PayPalSessionIntentRequest, type PaymentProviderAdapter, type PaymentResult, type PriceData, type ProcessPaymentParams, type RecurringInterval, SDK_VERSION, STRIPE_EXPRESS_METHODS, STRIPE_METHOD_AMOUNT_LIMITS, STRIPE_METHOD_COUNTRIES, STRIPE_METHOD_CURRENCIES, STRIPE_METHOD_MATRIX, SUPPORTED_CARD_BRANDS, type SerializeTelemetryBatchOptions, type SessionIntent, type SessionIntentDeclineRequest, type StateOption, type StripeMethodEntry, type StripeMethodThemeVariant, type StripeSessionIntent, type StripeSessionIntentRequest, TELEMETRY_ERROR_CODES, TELEMETRY_FAILURE_CATEGORIES, TELEMETRY_LOG_NAMES, TELEMETRY_MAX_BATCH_BYTES, TELEMETRY_MAX_BATCH_EVENTS, TELEMETRY_SCHEMA_VERSION, TELEMETRY_SDK_PACKAGES, THEMES, type TagsData, type TelemetryBatchEnvelope, type TelemetryCheckoutMode, type TelemetryDurationMode, type TelemetryErrorCode, type TelemetryErrorEvent, type TelemetryEvent, type TelemetryEventClass, type TelemetryExpectedOutcome, type TelemetryExpectedOutcomeEvent, type TelemetryFailureCategory, type TelemetryLayout, type TelemetryLogEvent, type TelemetryLogName, type TelemetryPaymentMethodCategory, type TelemetryPerformanceEvent, type TelemetryProvider, type TelemetryProviderInput, type TelemetryRequestCategory, type TelemetrySdkPackage, type TelemetryStage, type TelemetryStatusClass, type ThemeBundle, type ThemeBundleId, type ThemeId, type TokenizedBody, US_STATES, UUID_V4, type UpdateCustomerParams, type VaultCaptureBlock, type VaultCaptureResultMessage, type VaultCardFieldKey, type VaultCardThemeColors, type WebhookEvent, apiError, authenticationError, buildCheckoutDisplayData, buildItemPayload, buildProductPayload, buildSubscriptionPayload, buildTelemetryErrorEvent, buildTelemetryLogEvent, buildTelemetryPerformanceEvent, buildTelemetryTerminalEvent, classifyTelemetryFailure, configureFlopay, filterStripeMethodsByAmount, filterStripeMethodsByCountry, filterStripeMethodsByCurrency, foldIntoProducts, generateIdempotencyKey, getConfiguredBillingApiUrl, getCountryByCode, getCurrencyByCountry, getFloPayEnvironment, getPostalCodeExample, getPostalCodeLabel, getStateFromPostalCode, getStateLabel, getStateOptions, getStripeMethodDisplayName, hasVendoredStripeMethodLogo, isAVSEnabled, isAVSFieldVisible, isPostalCodeSupported, isSetupIntentClientSecret, isUuidV4, isValidPostalCode, isValidPublishableKey, isValidSecretKey, needsStripeMethodExplicitConfirm, networkError, normalizeGatewayEnvironment, partitionStripeMethods, randomUuidV4, rateLimitError, resolveAVSConfig, resolveBillingApiUrl, resolveButtonsLayoutTheme, resolveIdempotencyKey, resolveSessionCurrency, resolveStripeMethodBrandVariant, resolveTheme, serializeTelemetryBatch, stripeExpressMethodToOptionKey, telemetryStatusClass, validationError };
|
|
2277
|
+
export { type AVSFieldConfig, BILLING_API_URL, BILLING_API_URL_PRODUCTION, BILLING_API_URL_STAGING, BOLD_DARK_APPEARANCE, BOLD_LIGHT_APPEARANCE, BUTTONS_LAYOUT_BOLD_DARK, BUTTONS_LAYOUT_BOLD_LIGHT, BUTTONS_LAYOUT_DARK, BUTTONS_LAYOUT_DEFAULT, BUTTONS_LAYOUT_GLASS_DARK, BUTTONS_LAYOUT_GLASS_LIGHT, BUTTONS_LAYOUT_MINIMAL, BUTTONS_LAYOUT_MODERN_DARK, BUTTONS_LAYOUT_MODERN_LIGHT, BUTTONS_LAYOUT_ROUNDED, type BeforeButtonClickEvent, type BillingDetails, type BillingProvider, type BuildCheckoutDisplayDataOptions, type BuildTelemetryErrorEventInput, type BuildTelemetryLogEventInput, type BuildTelemetryPerformanceEventInput, type BuildTelemetryTerminalEventInput, type ButtonsLayoutStyles, type ButtonsLayoutTheme, CA_PROVINCES, COUNTRY_OPTIONS, CURRENCY_MAP, type CardCaptureAdapter, type CardCaptureEventType, type CardCaptureMountOptions, type CardCaptureOutcomeEvent, type CardCaptureProviderId, type CheckoutAccount, type CheckoutButtonMethod, type CheckoutDisplayData, type CheckoutGateway, type CheckoutGateways, type CheckoutItem, type CheckoutMode, type CheckoutModeKind, type CheckoutProcessError, type CheckoutProcessingPending, type CheckoutProduct, type CheckoutProductType, type CheckoutSession, type CheckoutSessionProduct, type CheckoutSessionResult, type CheckoutSubscription, type ClassifiedTelemetryFailure, type ConfirmPaymentParams, type CountryOption, type CreateCustomerParams, type CreateSessionIntentRequest, type CreateSessionParams, type CurrencyInfo, type Customer, DEFAULT_API_BASE_URL, DEFAULT_API_VERSION, DEFAULT_APPEARANCE, DEFAULT_CURRENCY, type DeclineEvent, type DetachedCheckoutSession, type DisplayLineItem, ELEMENT_TYPES, type ElementChangeEvent, type ElementOptions, type ElementType, FLAT_APPEARANCE, FLO_SDK_VERSION_HEADER, type FloPayAppearance, type FloPayConfig, type FloPayEnvironment, FloPayError, type FloPayErrorType, type FloPayThemeVariables, GLASS_DARK_APPEARANCE, GLASS_LIGHT_APPEARANCE, type GatewayEnvironment, IDEMPOTENCY_IN_PROGRESS_CODE, IDEMPOTENCY_KEY_HEADER, type InlineSessionDraft, type InlineSessionParams, type InlineSessionPatch, type LineItem, MAX_IDEMPOTENCY_KEY_LENGTH, MODERN_DARK_APPEARANCE, MODERN_LIGHT_APPEARANCE, type MountedElement, NIGHT_APPEARANCE, type NonCardPaymentMethodCategory, type NormalizedCheckoutSession, type NormalizedGatewayEnvironment, type PayPalPaymentResult, type PayPalSessionIntent, type PayPalSessionIntentRequest, type PaymentProviderAdapter, type PaymentResult, type PriceData, type ProcessPaymentParams, type RecurringInterval, SDK_VERSION, STRIPE_EXPRESS_METHODS, STRIPE_METHOD_AMOUNT_LIMITS, STRIPE_METHOD_COUNTRIES, STRIPE_METHOD_CURRENCIES, STRIPE_METHOD_MATRIX, SUPPORTED_CARD_BRANDS, type SentryEventLike, type SentryStackFrameLike, type SerializeTelemetryBatchOptions, type SessionIntent, type SessionIntentDeclineRequest, type StateOption, type StripeMethodEntry, type StripeMethodThemeVariant, type StripeSessionIntent, type StripeSessionIntentRequest, TELEMETRY_ERROR_CODES, TELEMETRY_FAILURE_CATEGORIES, TELEMETRY_LOG_NAMES, TELEMETRY_MAX_BATCH_BYTES, TELEMETRY_MAX_BATCH_EVENTS, TELEMETRY_SCHEMA_VERSION, TELEMETRY_SDK_PACKAGES, THEMES, type TagsData, type TelemetryBatchEnvelope, type TelemetryCheckoutMode, type TelemetryDurationMode, type TelemetryErrorCode, type TelemetryErrorEvent, type TelemetryEvent, type TelemetryEventClass, type TelemetryExpectedOutcome, type TelemetryExpectedOutcomeEvent, type TelemetryFailureCategory, type TelemetryLayout, type TelemetryLogEvent, type TelemetryLogName, type TelemetryPaymentMethodCategory, type TelemetryPerformanceEvent, type TelemetryProvider, type TelemetryProviderInput, type TelemetryRequestCategory, type TelemetrySdkPackage, type TelemetryStage, type TelemetryStatusClass, type ThemeBundle, type ThemeBundleId, type ThemeId, type TokenizedBody, US_STATES, UUID_V4, type UpdateCustomerParams, type VaultCaptureBlock, type VaultCaptureResultMessage, type VaultCardFieldKey, type VaultCardThemeColors, type WebhookEvent, apiError, authenticationError, buildCheckoutDisplayData, buildItemPayload, buildProductPayload, buildSubscriptionPayload, buildTelemetryErrorEvent, buildTelemetryLogEvent, buildTelemetryPerformanceEvent, buildTelemetryTerminalEvent, classifyTelemetryFailure, configureFlopay, dropThirdPartyOnlyError, filterStripeMethodsByAmount, filterStripeMethodsByCountry, filterStripeMethodsByCurrency, foldIntoProducts, generateIdempotencyKey, getConfiguredBillingApiUrl, getCountryByCode, getCurrencyByCountry, getFloPayEnvironment, getPostalCodeExample, getPostalCodeLabel, getStateFromPostalCode, getStateLabel, getStateOptions, getStripeMethodDisplayName, hasVendoredStripeMethodLogo, isAVSEnabled, isAVSFieldVisible, isDetachedSessionEligible, isPostalCodeSupported, isSetupIntentClientSecret, isUuidV4, isValidPostalCode, isValidPublishableKey, isValidSecretKey, needsStripeMethodExplicitConfirm, networkError, normalizeGatewayEnvironment, partitionStripeMethods, randomUuidV4, rateLimitError, resolveAVSConfig, resolveBillingApiUrl, resolveButtonsLayoutTheme, resolveIdempotencyKey, resolveSessionCurrency, resolveStripeMethodBrandVariant, resolveTheme, serializeTelemetryBatch, stripeExpressMethodToOptionKey, telemetryStatusClass, validationError };
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function Ne(e){if(e!=null)switch(e){case"sandbox":case"stage":return"sandbox";case"live":case"production":return"live";default:console.warn(`[FloPay] Unrecognized gateway environment "${e}". Expected one of: sandbox, live, stage, production. Falling back to undefined.`);return}}var u=class extends Error{constructor(t,r,o){super(t),this.name="FloPayError",this.type=r,this.code=o?.code,this.declineCode=o?.declineCode,this.param=o?.param,this.statusCode=o?.statusCode,Object.setPrototypeOf(this,new.target.prototype)}};function ve(e,t){return new u(e,"validation_error",{param:t})}function De(e,t,r){return new u(e,"api_error",{code:t,statusCode:r})}function Le(e){return new u(e,"authentication_error")}function Me(e){return new u(e,"rate_limit_error")}function Oe(e){return new u(e,"network_error")}var Ue=1,K=["@flopay/shared","@flopay/js","@flopay/react"],we=32768,Ge=20,Ke=["stripe","paypal"],Ve=["card","wallet","paypal","apm","saved","unknown"],Ye=["callback","sdk_initialize","checkout_mount","session_create","session_read","session_first_byte","session_complete","checkout_data_ready","checkout_render","checkout_interactive","provider_load","provider_ready","overlay_open","overlay_return","redirect","redirect_resume","vault_request","vault_mount","vault_ready","vault_submit","tokenization","three_ds_handoff","three_ds_return","processing","recovery","completion","unmount","total_journey"],V=["CALLBACK_FAILED","CHECKOUT_SESSION_CREATE_FAILED","CONFIGURATION_INVALID","INTERNAL_SDK_ERROR","NETWORK_REQUEST_FAILED","PAYMENT_PROCESSING_FAILED","POPUP_BLOCKED","PROVIDER_LOAD_FAILED","PROVIDER_RUNTIME_FAILED","RECOVERY_FAILED","REDIRECT_RESUME_FAILED","REQUEST_TIMEOUT","SDK_INITIALIZATION_FAILED","THREE_DS_FAILED","TOKENIZATION_FAILED","VAULT_LOAD_FAILED","VAULT_SUBMIT_FAILED"],Y=["server_error","transport_error","invalid_response","provider_runtime"],H=["sdk.initialize.started","sdk.initialize.ready","sdk.cache.hit","sdk.cache.miss","checkout.mount","session.create.started","session.read.started","session.request.first_byte","session.request.completed","checkout.data.ready","checkout.rendered","checkout.interactive","checkout.recovery.started","checkout.recovery.completed","checkout.unmount","provider.load.started","provider.eligibility.checked","provider.availability.checked","provider.ready","provider.popup.opened","provider.overlay.opened","provider.overlay.returned","provider.redirect.started","provider.redirect.resumed","vault.capture.requested","vault.widget.mounted","vault.widget.ready","vault.submission.started","vault.action.required","vault.three_ds.handoff","vault.three_ds.returned","vault.terminal","payment.method.selected","payment.intent.started","payment.intent.completed","payment.tokenization.started","payment.tokenization.completed","payment.processing.started","payment.processing.completed","payment.three_ds.handoff","payment.three_ds.returned","operation.retry","operation.deduplicated","operation.fallback","operation.cache.hit","operation.cache.miss","operation.recovery.started","operation.recovery.completed","operation.state_transition"],He=["session_create","session_read","intent_create","process_payment","vault_capture","account_snapshot","provider_sdk","other"],ze=["2xx","3xx","4xx","5xx","network_error","timeout","unknown"],qe=["full","auto","confirm","unknown"],We=["embedded","buttons","automatic","unknown"],Ze=["machine","buyer","total"],je=["action_required","customer_abandoned","payment_cancelled","payment_declined","payment_succeeded","validation_rejected"],z=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,Xe=/^\d{1,4}\.\d{1,4}\.\d{1,4}(?:-[0-9A-Za-z.-]{1,32})?$/,$e=new Set(V),Je=new Set(Y),F=new Set(Ye),Qe=new Set(Ke),et=new Set(Ve),tt=new Set(H),rt=new Set(qe),ot=new Set(We),nt=new Set(He),at=new Set(ze),it=new Set(Ze),st=new Set(je),dt=new Set(K),q=12e4;function l(e,t,r){return typeof e=="string"&&t.has(e)?e:r}function ct(){try{let r=globalThis.crypto.randomUUID();if(z.test(r))return r}catch{}let e=new Uint8Array(16);try{globalThis.crypto.getRandomValues(e)}catch{for(let r=0;r<e.length;r+=1)e[r]=Math.floor(Math.random()*256)}e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function y(e){return typeof e=="string"&&z.test(e)?e:ct()}function ut(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=100?e:void 0}function b(e){return Number.isSafeInteger(e)&&e>=0?Math.min(e,1e6):0}function lt(e){return!Number.isFinite(e)||e<0?0:Math.min(Math.round(e),q)}function pt(e){return Number.isFinite(e)&&e>q}function f(e,t){let r=ut(t.attempt);return t.provider&&Qe.has(t.provider)&&(e.provider=t.provider),r!==void 0&&(e.attempt=r),t.statusClass&&(e.statusClass=l(t.statusClass,at,"unknown")),t.requestCategory&&(e.requestCategory=l(t.requestCategory,nt,"other")),t.paymentMethodCategory&&(e.paymentMethodCategory=l(t.paymentMethodCategory,et,"unknown")),t.checkoutMode&&(e.checkoutMode=l(t.checkoutMode,rt,"unknown")),t.layout&&(e.layout=l(t.layout,ot,"unknown")),e}function W(e){let t=f({eventId:y(e.eventId),class:"technical_error",code:l(e.errorCode,$e,"INTERNAL_SDK_ERROR"),stage:l(e.stage,F,"sdk_initialize"),sequence:b(e.sequence)},e);return e.failureCategory&&Je.has(e.failureCategory)&&(t.failureCategory=e.failureCategory),t}function Z(e){return f({eventId:y(e.eventId),class:"lifecycle",name:l(e.name,tt,"operation.retry"),stage:l(e.stage,F,"sdk_initialize"),sequence:b(e.sequence)},e)}function j(e){let t={...e,stage:e.stage??"completion"};return f({eventId:y(e.eventId),class:"expected_outcome",outcome:l(e.outcome,st,"customer_abandoned"),stage:l(e.stage,F,"completion"),sequence:b(e.sequence)},t)}function X(e){let t=f({eventId:y(e.eventId),class:"performance",stage:l(e.stage,F,"sdk_initialize"),sequence:b(e.sequence),durationMs:lt(e.durationMs),durationMode:l(e.durationMode,it,"machine")},e);return(e.durationTruncated===!0||pt(e.durationMs))&&(t.durationTruncated=!0),t}function mt(e,t){let r=e.slice(0,20).flatMap(n=>n.class==="technical_error"?[W({...n,errorCode:n.code})]:n.class==="lifecycle"?[Z(n)]:n.class==="expected_outcome"?[j(n)]:n.class==="performance"?[X(n)]:[]),o={schemaVersion:1,batchId:y(t.batchId),correlationId:y(t.correlationId),sdk:{package:l(t.sdkPackage,dt,"@flopay/shared"),version:Xe.test(t.sdkVersion)?t.sdkVersion:"0.0.0"},events:r};return JSON.stringify(o)}var gt=new Set(["InvalidCheckoutSessionResponse","InvalidSessionIntentResponse"]);function yt(e,t,r="network_error"){if(e instanceof u&&e.code!==void 0&>.has(e.code))return{errorCode:t,statusClass:A(e.statusCode,"unknown"),failureCategory:"invalid_response"};if(e instanceof Error&&(e.name==="AbortError"||e instanceof u&&e.code==="checkout_processing_timeout"))return{errorCode:"REQUEST_TIMEOUT",statusClass:"timeout",failureCategory:"transport_error"};if(e instanceof TypeError||e instanceof u&&e.type==="network_error")return{errorCode:"NETWORK_REQUEST_FAILED",statusClass:"network_error",failureCategory:"transport_error"};let o=A(e instanceof u?e.statusCode:void 0,r);return{errorCode:t,statusClass:o,...o==="5xx"?{failureCategory:"server_error"}:{}}}function A(e,t="network_error"){if(e===void 0)return t;let r=`${Math.floor(e/100)}xx`;return r==="2xx"||r==="3xx"||r==="4xx"||r==="5xx"?r:"unknown"}var Ct={local:"https://flo.ngrok.pro",staging:"https://api.stage.flopay.com",production:"https://api.flopay.com"},h="staging";function Et(e){h=e.environment}function I(){return Ct[h]}function Ft(){return h}var $=["alipay","bancontact","blik","eps","giropay","ideal","klarna","p24","sepa_debit","wechat_pay"];var bt="1.4.16",ft="x-flo-sdk-version",x="https://api.stage.flopay.com",ee="https://api.flopay.com",xt=x,Tt=x;function St(e){return e||(typeof process<"u"&&process.env?.NEXT_PUBLIC_FLOPAY_ENV?process.env.NEXT_PUBLIC_FLOPAY_ENV==="production"?ee:x:I())}var At="2024-01-01",te={theme:"default",variables:{colorPrimary:"#4A49FF",colorBackground:"#FFFFFF",colorText:"#262833",colorDanger:"#DF1B41",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},ht={theme:"flat",variables:{...te.variables,borderRadius:"4px"}},It={theme:"night",variables:{colorPrimary:"#7B7BFF",colorBackground:"#1A1A2E",colorText:"#E0E0E0",colorDanger:"#FF6B6B",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},re={theme:"default",variables:{colorPrimary:"#1785E0",colorBackground:"#FFFFFF",colorText:"#0F172A",colorDanger:"#EF4444",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{padding:"14px 16px",border:"1.5px solid #E5E7EB",boxShadow:"0 1px 2px rgba(15,23,42,0.04)"},".Input:focus":{borderColor:"#1785E0",boxShadow:"0 0 0 4px rgba(23,133,224,0.12)"},".Label":{fontWeight:"500",color:"#475569",marginBottom:"6px"},".Tab":{padding:"12px 16px",borderRadius:"12px",border:"1.5px solid #E5E7EB"},".Tab:hover":{borderColor:"#CBD5E1"},".Tab--selected":{borderColor:"#1785E0",boxShadow:"0 0 0 1px #1785E0"}}},oe={theme:"night",variables:{colorPrimary:"#60A5FA",colorBackground:"#0B1220",colorText:"#F1F5F9",colorDanger:"#F87171",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"#111827",padding:"14px 16px",border:"1.5px solid #1F2937",color:"#F1F5F9",boxShadow:"none"},".Input:focus":{borderColor:"#60A5FA",boxShadow:"0 0 0 4px rgba(96,165,250,0.18)"},".Label":{fontWeight:"500",color:"#94A3B8",marginBottom:"6px"},".Tab":{padding:"12px 16px",borderRadius:"12px",border:"1.5px solid #1F2937",backgroundColor:"#111827",color:"#F1F5F9"},".Tab:hover":{borderColor:"#374151"},".Tab--selected":{borderColor:"#60A5FA",boxShadow:"0 0 0 1px #60A5FA"}}},ne={theme:"default",variables:{colorPrimary:"#1785E0",colorBackground:"#FFFFFF",colorText:"#0C2B4D",colorDanger:"#DC2626",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"5px"},rules:{".Input":{padding:"14px 16px",border:"2px solid #E5E7EB"},".Input:focus":{borderColor:"#1785E0",boxShadow:"0 0 0 3px rgba(23,133,224,0.2)"},".Label":{fontWeight:"600",color:"#0C2B4D"},".Tab":{padding:"14px 18px",border:"2px solid #E5E7EB",fontWeight:"600"},".Tab--selected":{borderColor:"#1785E0",boxShadow:"0 0 0 1px #1785E0"}}},ae={theme:"night",variables:{colorPrimary:"#60A5FA",colorBackground:"#0C2B4D",colorText:"#FFFFFF",colorDanger:"#F87171",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"#1E3A8A",padding:"14px 16px",border:"2px solid #1E40AF",color:"#FFFFFF"},".Input:focus":{borderColor:"#60A5FA",boxShadow:"0 0 0 3px rgba(96,165,250,0.25)"},".Label":{fontWeight:"600",color:"#DBEAFE"},".Tab":{padding:"14px 18px",border:"2px solid #1E40AF",backgroundColor:"#1E3A8A",color:"#FFFFFF",fontWeight:"600"},".Tab--selected":{borderColor:"#60A5FA",boxShadow:"0 0 0 1px #60A5FA"}}},ie={theme:"default",variables:{colorPrimary:"#1785E0",colorBackground:"#FFFFFF",colorText:"#1E293B",colorDanger:"#EF4444",borderRadius:"16px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"rgba(255,255,255,0.6)",backdropFilter:"blur(10px)",padding:"14px 16px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.5), 0 1px 3px rgba(23,133,224,0.08)"},".Input:focus":{borderColor:"rgba(23,133,224,0.5)",boxShadow:"0 0 0 3px rgba(23,133,224,0.15)"},".Label":{fontWeight:"500",color:"#475569"},".Tab":{padding:"12px 16px",backgroundColor:"rgba(255,255,255,0.5)",border:"1px solid rgba(255,255,255,0.6)",borderRadius:"14px"},".Tab--selected":{borderColor:"rgba(23,133,224,0.6)",boxShadow:"0 0 0 1px rgba(23,133,224,0.6)"}}},se={theme:"night",variables:{colorPrimary:"#60A5FA",colorBackground:"#0F172A",colorText:"#F1F5F9",colorDanger:"#F87171",borderRadius:"16px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(10px)",padding:"14px 16px",border:"1px solid rgba(255,255,255,0.08)",color:"#F1F5F9"},".Input:focus":{borderColor:"rgba(96,165,250,0.5)",boxShadow:"0 0 0 3px rgba(96,165,250,0.2)"},".Label":{fontWeight:"500",color:"#94A3B8"},".Tab":{padding:"12px 16px",backgroundColor:"rgba(15,23,42,0.6)",border:"1px solid rgba(255,255,255,0.08)",borderRadius:"14px",color:"#F1F5F9"},".Tab--selected":{borderColor:"rgba(96,165,250,0.6)",boxShadow:"0 0 0 1px rgba(96,165,250,0.6)"}}},de={},ce={cardButton:{border:"none",backgroundColor:"#f9fafb",boxShadow:"none"},cardFormContainer:{backgroundColor:"#f9fafb",border:"none"},cardInputBorder:"#e5e7eb",backButtonIcon:{backgroundColor:"#e5e7eb"},submitButton:{borderRadius:"6px"}},ue={cardButton:{borderRadius:"9999px",border:"1px solid #e5e7eb",boxShadow:"0 1px 3px rgba(0,0,0,0.06)"},cardFormContainer:{borderRadius:"16px",border:"1px solid #e5e7eb",boxShadow:"0 2px 8px rgba(0,0,0,0.06)"},cardInputBorder:"#d1d5db",submitButton:{borderRadius:"9999px"},backButtonIcon:{backgroundColor:"#f3f4f6"}},le={cardButton:{backgroundColor:"#1f2937",color:"#f9fafb",border:"1px solid #374151",boxShadow:"none"},cardFormContainer:{backgroundColor:"#111827",border:"1px solid #374151"},cardInputBorder:"#4b5563",cardInputColor:"#f9fafb",cardInputPlaceholderColor:"#6b7280",cardInputBackground:"#1f2937",nameInput:{backgroundColor:"#1f2937",color:"#f9fafb"},backButton:{color:"#9ca3af"},backButtonIcon:{backgroundColor:"#374151"},submitButton:{backgroundColor:"#6366f1"},title:{color:"#f9fafb"},countrySelect:{backgroundColor:"#1f2937",color:"#f9fafb"},zipInput:{backgroundColor:"#1f2937",color:"#f9fafb"}},R={cardFormContainer:{backgroundColor:"#FAFAFA",borderRadius:"20px",border:"1px solid #E5E7EB",boxShadow:"0 8px 24px rgba(15,23,42,0.04)",padding:"24px"},cardButton:{backgroundColor:"#FFFFFF",borderRadius:"14px",border:"1.5px solid #E5E7EB",boxShadow:"0 1px 2px rgba(15,23,42,0.04)",padding:"14px 18px"},cardInputBorder:"#E5E7EB",nameInput:{backgroundColor:"#FFFFFF",border:"1.5px solid #E5E7EB",borderRadius:"14px",padding:"14px 16px"},submitButton:{backgroundColor:"#1785E0",borderRadius:"14px",padding:"16px 24px",boxShadow:"0 4px 14px rgba(23,133,224,0.25)",fontWeight:"600"},title:{color:"#0F172A",fontWeight:"600"},titleFontSize:"20px",backButton:{color:"#64748B"},backButtonIcon:{backgroundColor:"#F1F5F9"}},_={cardFormContainer:{backgroundColor:"#111827",borderRadius:"20px",border:"1px solid #1F2937",boxShadow:"0 8px 24px rgba(0,0,0,0.2)",padding:"24px"},cardButton:{backgroundColor:"#0B1220",borderRadius:"14px",border:"1.5px solid #1F2937",color:"#F1F5F9",padding:"14px 18px"},cardInputBorder:"#1F2937",cardInputBackground:"#111827",cardInputColor:"#F1F5F9",cardInputPlaceholderColor:"#64748B",nameInput:{backgroundColor:"#111827",border:"1.5px solid #1F2937",borderRadius:"14px",padding:"14px 16px",color:"#F1F5F9"},submitButton:{backgroundColor:"#60A5FA",borderRadius:"14px",padding:"16px 24px",boxShadow:"0 4px 14px rgba(96,165,250,0.3)",fontWeight:"600",color:"#0B1220"},title:{color:"#F1F5F9",fontWeight:"600"},titleFontSize:"20px",backButton:{color:"#94A3B8"},backButtonIcon:{backgroundColor:"#1F2937"},countrySelect:{backgroundColor:"#111827",color:"#F1F5F9"},zipInput:{backgroundColor:"#111827",color:"#F1F5F9"}},P={cardFormContainer:{backgroundColor:"#EFF6FF",borderRadius:"20px",border:"2px solid #1785E0",padding:"24px"},cardButton:{backgroundColor:"#FFFFFF",borderRadius:"12px",border:"2px solid #1785E0",color:"#1785E0",fontWeight:"700",padding:"14px 18px"},cardInputBorder:"#E5E7EB",nameInput:{backgroundColor:"#FFFFFF",border:"2px solid #E5E7EB",borderRadius:"12px",padding:"14px 16px",fontWeight:"500"},submitButton:{background:"linear-gradient(135deg, #1785E0 0%, #0EA5E9 100%)",borderRadius:"9999px",padding:"16px 24px",boxShadow:"0 10px 25px rgba(23,133,224,0.35)",fontWeight:"700",color:"#FFFFFF",border:"none"},submitButtonFontSize:"17px",title:{color:"#0C2B4D",fontWeight:"800",letterSpacing:"-0.02em"},titleFontSize:"22px",backButton:{color:"#1785E0",fontWeight:"600"},backButtonIcon:{backgroundColor:"#DBEAFE"}},k={cardFormContainer:{backgroundColor:"#1E3A8A",borderRadius:"20px",border:"2px solid #60A5FA",padding:"24px"},cardButton:{backgroundColor:"#0C2B4D",borderRadius:"12px",border:"2px solid #60A5FA",color:"#60A5FA",fontWeight:"700",padding:"14px 18px"},cardInputBorder:"#1E40AF",cardInputBackground:"#1E3A8A",cardInputColor:"#FFFFFF",cardInputPlaceholderColor:"#60A5FA",nameInput:{backgroundColor:"#1E3A8A",border:"2px solid #1E40AF",borderRadius:"12px",padding:"14px 16px",fontWeight:"500",color:"#FFFFFF"},submitButton:{background:"linear-gradient(135deg, #60A5FA 0%, #38BDF8 100%)",borderRadius:"9999px",padding:"16px 24px",boxShadow:"0 10px 25px rgba(96,165,250,0.35)",fontWeight:"700",color:"#FFFFFF",border:"none"},submitButtonFontSize:"17px",title:{color:"#FFFFFF",fontWeight:"800",letterSpacing:"-0.02em"},titleFontSize:"22px",backButton:{color:"#DBEAFE",fontWeight:"600"},backButtonIcon:{backgroundColor:"#1E40AF"},countrySelect:{backgroundColor:"#1E3A8A",color:"#FFFFFF"},zipInput:{backgroundColor:"#1E3A8A",color:"#FFFFFF"}},B={cardFormContainer:{background:"linear-gradient(135deg, #DBEAFE 0%, #BFDBFE 100%)",borderRadius:"24px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.6), 0 12px 40px rgba(23,133,224,0.15)",padding:"28px"},cardButton:{backgroundColor:"rgba(255,255,255,0.7)",backdropFilter:"blur(20px)",borderRadius:"16px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.5), 0 4px 16px rgba(23,133,224,0.1)",padding:"14px 18px"},cardInputBorder:"rgba(255,255,255,0.6)",nameInput:{backgroundColor:"rgba(255,255,255,0.6)",backdropFilter:"blur(10px)",border:"1px solid rgba(255,255,255,0.6)",borderRadius:"14px",padding:"14px 16px"},submitButton:{backgroundColor:"rgba(23,133,224,0.95)",backdropFilter:"blur(10px)",borderRadius:"16px",padding:"16px 24px",boxShadow:"0 10px 30px rgba(23,133,224,0.3), inset 0 1px 0 rgba(255,255,255,0.2)",fontWeight:"600",color:"#FFFFFF"},title:{color:"#1E293B",fontWeight:"600",letterSpacing:"-0.01em"},titleFontSize:"20px",backButton:{color:"#1785E0",fontWeight:"500"},backButtonIcon:{backgroundColor:"rgba(255,255,255,0.7)"}},N={cardFormContainer:{background:"linear-gradient(135deg, #0C2B4D 0%, #0F172A 100%)",borderRadius:"24px",border:"1px solid rgba(255,255,255,0.08)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.06), 0 20px 50px rgba(0,0,0,0.4)",padding:"28px"},cardButton:{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(20px)",borderRadius:"16px",border:"1px solid rgba(255,255,255,0.08)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.05), 0 4px 16px rgba(0,0,0,0.3)",padding:"14px 18px",color:"#F1F5F9"},cardInputBorder:"rgba(255,255,255,0.08)",cardInputBackground:"rgba(15,23,42,0.6)",cardInputColor:"#F1F5F9",cardInputPlaceholderColor:"#64748B",nameInput:{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(10px)",border:"1px solid rgba(255,255,255,0.08)",borderRadius:"14px",padding:"14px 16px",color:"#F1F5F9"},submitButton:{backgroundColor:"rgba(96,165,250,0.9)",backdropFilter:"blur(10px)",borderRadius:"16px",padding:"16px 24px",boxShadow:"0 10px 30px rgba(96,165,250,0.35), inset 0 1px 0 rgba(255,255,255,0.15)",fontWeight:"600",color:"#0F172A"},title:{color:"#F1F5F9",fontWeight:"600",letterSpacing:"-0.01em"},titleFontSize:"20px",backButton:{color:"#60A5FA",fontWeight:"500"},backButtonIcon:{backgroundColor:"rgba(255,255,255,0.08)"},countrySelect:{backgroundColor:"rgba(15,23,42,0.6)",color:"#F1F5F9"},zipInput:{backgroundColor:"rgba(15,23,42,0.6)",color:"#F1F5F9"}};function Rt(e){switch(e){case"minimal":return ce;case"rounded":return ue;case"dark":return le;case"modern-light":return R;case"modern-dark":return _;case"bold-light":return P;case"bold-dark":return k;case"glass-light":return B;case"glass-dark":return N;default:return de}}var pe={"modern-light":{appearance:re,buttonsLayout:R},"modern-dark":{appearance:oe,buttonsLayout:_},"bold-light":{appearance:ne,buttonsLayout:P},"bold-dark":{appearance:ae,buttonsLayout:k},"glass-light":{appearance:ie,buttonsLayout:B},"glass-dark":{appearance:se,buttonsLayout:N}};function _t(e){if(!(!e||e==="classic"))return pe[e]}function Pt(e){switch(e){case"apple_pay":return"applePay";case"google_pay":return"googlePay";case"amazon_pay":return"amazonPay";default:return e}}function i(e,t,r){return`<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><circle cx="11" cy="11" r="11" fill="${t}"/><text x="11" y="15.5" text-anchor="middle" font-size="13" font-weight="700" font-family="-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif" fill="${r}">${e}</text></svg>`}function J(e,t){return`<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><circle cx="11" cy="11" r="11" fill="${e}"/><g fill="${t}"><path d="M11 4 L17.5 8 L4.5 8 Z"/><rect x="5" y="8.4" width="12" height="1.2" rx="0.3"/><rect x="5.9" y="10" width="1.5" height="5"/><rect x="8.55" y="10" width="1.5" height="5"/><rect x="11.95" y="10" width="1.5" height="5"/><rect x="14.6" y="10" width="1.5" height="5"/><rect x="4.6" y="15.4" width="12.8" height="1.5" rx="0.3"/></g></svg>`}var me=["AT","BE","BG","CY","CZ","DE","DK","EE","ES","FI","FR","GR","HR","HU","IE","IT","LT","LU","LV","MT","NL","PL","PT","RO","SE","SI","SK","IS","LI","NO","CH","GB","MC","SM","AD","VA"],kt=[...me,"JP","MX","US"],g={apple_pay:{displayName:"Apple Pay",currencies:["*"],express:!0,needsExplicitConfirm:!1},google_pay:{displayName:"Google Pay",currencies:["*"],express:!0,needsExplicitConfirm:!1},paypal:{displayName:"PayPal",currencies:["eur","gbp","usd","cad","aud","nzd","chf","jpy","pln","sek","nok","dkk","czk","huf"],express:!0,needsExplicitConfirm:!1},link:{displayName:"Link",currencies:["usd","eur"],express:!0,needsExplicitConfirm:!1},amazon_pay:{displayName:"Amazon Pay",currencies:["usd","eur","gbp"],express:!0,needsExplicitConfirm:!1},klarna:{displayName:"Klarna",currencies:["usd","eur","gbp","aud","nzd","cad","chf","sek","nok","dkk","pln","czk","ron"],amounts:{usd:{min:100},eur:{min:100},gbp:{min:100}},theme:{light:{backgroundColor:"#FFB3C7",textColor:"#0A0B09",borderColor:"#FFB3C7",logoSvg:i("K","#0A0B09","#FFB3C7")},dark:{backgroundColor:"#FFB3C7",textColor:"#0A0B09",borderColor:"#FFB3C7",logoSvg:i("K","#0A0B09","#FFB3C7")}}},affirm:{displayName:"Affirm",currencies:["usd"],countries:["US","CA"],amounts:{usd:{min:3500,max:3e6}},needsExplicitConfirm:!1,theme:{light:{backgroundColor:"#060F33",textColor:"#FFFFFF",borderColor:"#060F33",logoSvg:i("a","#FFFFFF","#060F33")},dark:{backgroundColor:"#0FA0EA",textColor:"#060F33",borderColor:"#0FA0EA",logoSvg:i("a","#060F33","#FFFFFF")}}},cashapp:{displayName:"Cash App Pay",currencies:["usd"],countries:["US"],amounts:{usd:{min:50,max:99999999}},needsExplicitConfirm:!1,theme:{light:{backgroundColor:"#00D54B",textColor:"#0A1F0E",borderColor:"#00D54B",logoSvg:i("$","#0A1F0E","#00D54B")},dark:{backgroundColor:"#00D54B",textColor:"#0A1F0E",borderColor:"#00D54B",logoSvg:i("$","#0A1F0E","#00D54B")}}},afterpay_clearpay:{displayName:"Afterpay",currencies:["usd","aud","cad","gbp","nzd"],countries:["US","CA","GB","AU","NZ"],amounts:{usd:{min:100,max:2e5},cad:{min:100,max:2e5},gbp:{min:100,max:12e4},aud:{min:100,max:2e5},nzd:{min:100,max:2e5}},theme:{light:{backgroundColor:"#B2FCE4",textColor:"#0A0B09",borderColor:"#B2FCE4",logoSvg:i("A","#0A0B09","#B2FCE4")},dark:{backgroundColor:"#B2FCE4",textColor:"#0A0B09",borderColor:"#B2FCE4",logoSvg:i("A","#0A0B09","#B2FCE4")}}},alipay:{displayName:"Alipay",currencies:["usd","cny"],theme:{light:{backgroundColor:"#1677FF",textColor:"#FFFFFF",borderColor:"#1677FF",logoSvg:i("A","#FFFFFF","#1677FF")},dark:{backgroundColor:"#1677FF",textColor:"#FFFFFF",borderColor:"#1677FF",logoSvg:i("A","#FFFFFF","#1677FF")}}},au_becs_debit:{displayName:"BECS Direct Debit",currencies:["aud"],countries:["AU"]},bacs_debit:{displayName:"Bacs Debit",currencies:["gbp"],countries:["GB"]},bancontact:{displayName:"Bancontact",currencies:["eur"],countries:["BE"],theme:{light:{backgroundColor:"#FFDD55",textColor:"#1E3791",borderColor:"#FFDD55",logoSvg:i("B","#1E3791","#FFDD55")},dark:{backgroundColor:"#1E3791",textColor:"#FFDD55",borderColor:"#1E3791",logoSvg:i("B","#FFDD55","#1E3791")}}},bizum:{displayName:"Bizum",currencies:["eur"],countries:["ES"],theme:{light:{backgroundColor:"#00BFB3",textColor:"#FFFFFF",borderColor:"#00BFB3",logoSvg:i("B","#FFFFFF","#00BFB3")},dark:{backgroundColor:"#00BFB3",textColor:"#FFFFFF",borderColor:"#00BFB3",logoSvg:i("B","#FFFFFF","#00BFB3")}}},blik:{displayName:"BLIK",currencies:["pln"],countries:["PL"],theme:{light:{backgroundColor:"#000000",textColor:"#FFFFFF",borderColor:"#000000",logoSvg:i("B","#FFFFFF","#000000")},dark:{backgroundColor:"#FFFFFF",textColor:"#000000",borderColor:"#FFFFFF",logoSvg:i("B","#000000","#FFFFFF")}}},boleto:{displayName:"Boleto",currencies:["brl"],countries:["BR"]},customer_balance:{displayName:"Bank Transfer",currencies:["eur","usd"],countries:kt,theme:{light:{backgroundColor:"#1F2937",textColor:"#FFFFFF",borderColor:"#1F2937",logoSvg:J("#1F2937","#FFFFFF")},dark:{backgroundColor:"#374151",textColor:"#FFFFFF",borderColor:"#374151",logoSvg:J("#374151","#FFFFFF")}}},eps:{displayName:"EPS",currencies:["eur"],countries:["AT"],theme:{light:{backgroundColor:"#C8102E",textColor:"#FFFFFF",borderColor:"#C8102E",logoSvg:i("E","#FFFFFF","#C8102E")},dark:{backgroundColor:"#C8102E",textColor:"#FFFFFF",borderColor:"#C8102E",logoSvg:i("E","#FFFFFF","#C8102E")}}},giropay:{displayName:"Giropay",currencies:["eur"],countries:["DE"],theme:{light:{backgroundColor:"#0F4197",textColor:"#FFFFFF",borderColor:"#0F4197",logoSvg:i("G","#FFFFFF","#0F4197")},dark:{backgroundColor:"#0F4197",textColor:"#FFFFFF",borderColor:"#0F4197",logoSvg:i("G","#FFFFFF","#0F4197")}}},ideal:{displayName:"iDEAL",currencies:["eur"],countries:["NL"],theme:{light:{backgroundColor:"#CC0066",textColor:"#FFFFFF",borderColor:"#CC0066",logoSvg:i("i","#FFFFFF","#CC0066")},dark:{backgroundColor:"#CC0066",textColor:"#FFFFFF",borderColor:"#CC0066",logoSvg:i("i","#FFFFFF","#CC0066")}}},konbini:{displayName:"Konbini",currencies:["jpy"],countries:["JP"]},kr_card:{displayName:"Korean Card",currencies:["krw"],countries:["KR"],theme:{light:{backgroundColor:"#0B3D91",textColor:"#FFFFFF",borderColor:"#0B3D91",logoSvg:i("K","#FFFFFF","#0B3D91")},dark:{backgroundColor:"#0B3D91",textColor:"#FFFFFF",borderColor:"#0B3D91",logoSvg:i("K","#FFFFFF","#0B3D91")}}},multibanco:{displayName:"Multibanco",currencies:["eur"],countries:["PT"]},oxxo:{displayName:"OXXO",currencies:["mxn"],countries:["MX"]},p24:{displayName:"Przelewy24",currencies:["eur","pln"],countries:["PL"],theme:{light:{backgroundColor:"#D90F1B",textColor:"#FFFFFF",borderColor:"#D90F1B",logoSvg:i("P","#FFFFFF","#D90F1B")},dark:{backgroundColor:"#D90F1B",textColor:"#FFFFFF",borderColor:"#D90F1B",logoSvg:i("P","#FFFFFF","#D90F1B")}}},paynow:{displayName:"PayNow",currencies:["sgd"],countries:["SG"]},pix:{displayName:"Pix",currencies:["brl"],countries:["BR"]},promptpay:{displayName:"PromptPay",currencies:["thb"],countries:["TH"]},sepa_debit:{displayName:"SEPA Debit",currencies:["eur"],countries:me,theme:{light:{backgroundColor:"#10298E",textColor:"#FFFFFF",borderColor:"#10298E",logoSvg:i("\u20AC","#FFFFFF","#10298E")},dark:{backgroundColor:"#3056D3",textColor:"#FFFFFF",borderColor:"#3056D3",logoSvg:i("\u20AC","#FFFFFF","#3056D3")}}},sofort:{displayName:"Sofort",currencies:["eur"],countries:["AT","BE","DE","ES","IT","NL"],theme:{light:{backgroundColor:"#EF809F",textColor:"#FFFFFF",borderColor:"#EF809F",logoSvg:i("S","#FFFFFF","#EF809F")},dark:{backgroundColor:"#EF809F",textColor:"#FFFFFF",borderColor:"#EF809F",logoSvg:i("S","#FFFFFF","#EF809F")}}},upi:{displayName:"UPI",currencies:["inr"],countries:["IN"],theme:{light:{backgroundColor:"#FF7909",textColor:"#FFFFFF",borderColor:"#FF7909",logoSvg:i("U","#FFFFFF","#FF7909")},dark:{backgroundColor:"#FF7909",textColor:"#FFFFFF",borderColor:"#FF7909",logoSvg:i("U","#FFFFFF","#FF7909")}}},us_bank_account:{displayName:"US Bank Account",currencies:["usd"],countries:["US"]},wechat_pay:{displayName:"WeChat Pay",currencies:["usd","cny"],theme:{light:{backgroundColor:"#07C160",textColor:"#FFFFFF",borderColor:"#07C160",logoSvg:i("W","#FFFFFF","#07C160")},dark:{backgroundColor:"#07C160",textColor:"#FFFFFF",borderColor:"#07C160",logoSvg:i("W","#FFFFFF","#07C160")}}},zip:{displayName:"Zip",currencies:["aud"],countries:["AU","NZ"]}};function Bt(e){return e?$.includes(e):!1}var ge=Object.entries(g).filter(([,e])=>e.express).map(([e])=>e),Nt=new Set(ge),ye=Object.fromEntries(Object.entries(g).map(([e,t])=>[e,t.currencies])),Ce=Object.fromEntries(Object.entries(g).filter(([,e])=>e.countries).map(([e,t])=>[e,t.countries]));function vt(e){if(!e)return"this method";let t=g[e];return t?t.displayName:e.split("_").filter(Boolean).map(r=>r.charAt(0).toUpperCase()+r.slice(1)).join(" ")}function Dt(e){if(!e)return!0;let t=g[e];return t?t.needsExplicitConfirm!==!1:!0}function Lt(e,t){if(!e)return null;let r=g[e];return r?.theme?(typeof t=="string"&&t.endsWith("-dark")?r.theme.dark:r.theme.light)??r.theme.light??null:null}function Mt(e,t){if(!e?.length)return[];if(!t)return[...e];let r=t.trim().toLowerCase();return r?e.filter(o=>{let n=ye[o];return n?n.includes("*")||n.includes(r):!0}):[...e]}function Ot(e,t){if(!e?.length)return[];if(!t)return[...e];let r=t.trim().toUpperCase();return r?e.filter(o=>{let n=Ce[o];return n?n.includes("*")||n.includes(r):!0}):[...e]}var Ee=Object.fromEntries(Object.entries(g).filter(([,e])=>e.amounts).map(([e,t])=>[e,t.amounts]));function Ut(e,t,r){if(!e?.length)return[];if(!t||typeof r!="number"||!Number.isFinite(r))return[...e];let o=t.trim().toLowerCase();return o?e.filter(n=>{let c=Ee[n];if(!c)return!0;let d=c[o];return d?!(typeof d.min=="number"&&r<d.min||typeof d.max=="number"&&r>d.max):!0}):[...e]}function wt(e,t){if(!e?.length)return{expressMethods:[],paymentElementMethods:[]};let r=[],o=[],n=new Set,c=new Set;for(let d of e){if(typeof d!="string")continue;let p=d.trim();if(!(!p||p==="card")&&!(t?.excludePaypal&&p==="paypal"))if(Nt.has(p)){if(n.has(p))continue;n.add(p),r.push(p)}else{if(c.has(p))continue;c.add(p),o.push(p)}}return{expressMethods:r,paymentElementMethods:o}}var Gt=["payment","address"],Kt=["visa","mastercard","mastercard_debit","amex","discover"],v={AT:{currency:"EUR",symbol:"\u20AC",country:"Austria",countryCode:"AT",tax:1},BE:{currency:"EUR",symbol:"\u20AC",country:"Belgium",countryCode:"BE",tax:1},CY:{currency:"EUR",symbol:"\u20AC",country:"Cyprus",countryCode:"CY",tax:1},DE:{currency:"EUR",symbol:"\u20AC",country:"Germany",countryCode:"DE",tax:1},EE:{currency:"EUR",symbol:"\u20AC",country:"Estonia",countryCode:"EE",tax:1},ES:{currency:"EUR",symbol:"\u20AC",country:"Spain",countryCode:"ES",tax:1},FI:{currency:"EUR",symbol:"\u20AC",country:"Finland",countryCode:"FI",tax:1},FR:{currency:"EUR",symbol:"\u20AC",country:"France",countryCode:"FR",tax:1},GR:{currency:"EUR",symbol:"\u20AC",country:"Greece",countryCode:"GR",tax:1},HR:{currency:"EUR",symbol:"\u20AC",country:"Croatia",countryCode:"HR",tax:1},IE:{currency:"EUR",symbol:"\u20AC",country:"Ireland",countryCode:"IE",tax:1},IT:{currency:"EUR",symbol:"\u20AC",country:"Italy",countryCode:"IT",tax:1},LT:{currency:"EUR",symbol:"\u20AC",country:"Lithuania",countryCode:"LT",tax:1},LU:{currency:"EUR",symbol:"\u20AC",country:"Luxembourg",countryCode:"LU",tax:1},LV:{currency:"EUR",symbol:"\u20AC",country:"Latvia",countryCode:"LV",tax:1},MT:{currency:"EUR",symbol:"\u20AC",country:"Malta",countryCode:"MT",tax:1},NL:{currency:"EUR",symbol:"\u20AC",country:"Netherlands",countryCode:"NL",tax:1},PT:{currency:"EUR",symbol:"\u20AC",country:"Portugal",countryCode:"PT",tax:1},SI:{currency:"EUR",symbol:"\u20AC",country:"Slovenia",countryCode:"SI",tax:1},SK:{currency:"EUR",symbol:"\u20AC",country:"Slovakia",countryCode:"SK",tax:1},BG:{currency:"EUR",symbol:"\u20AC",country:"Bulgaria",countryCode:"BG",tax:1},RO:{currency:"EUR",symbol:"\u20AC",country:"Romania",countryCode:"RO",tax:1},CZ:{currency:"EUR",symbol:"\u20AC",country:"Czech Republic",countryCode:"CZ",tax:1},SE:{currency:"EUR",symbol:"\u20AC",country:"Sweden",countryCode:"SE",tax:1},DK:{currency:"EUR",symbol:"\u20AC",country:"Denmark",countryCode:"DK",tax:1},PL:{currency:"EUR",symbol:"\u20AC",country:"Poland",countryCode:"PL",tax:1},HU:{currency:"EUR",symbol:"\u20AC",country:"Hungary",countryCode:"HU",tax:1},GB:{currency:"GBP",symbol:"\xA3",country:"United Kingdom",countryCode:"GB",tax:1},US:{currency:"USD",symbol:"$",country:"United States",countryCode:"US",tax:0},CA:{currency:"CAD",symbol:"CA$",country:"Canada",countryCode:"CA",tax:0},NZ:{currency:"NZD",symbol:"NZ$",country:"New Zealand",countryCode:"NZ",tax:0},AU:{currency:"AUD",symbol:"AU$",country:"Australia",countryCode:"AU",tax:0}},D={currency:"USD",symbol:"$",country:"United States",countryCode:"US",tax:0};function Vt(e){switch(e.toUpperCase()){case"US":return"ZIP Code";case"GB":return"Postcode";case"CA":return"Postal Code";case"AU":case"NZ":return"Postcode";case"IE":return"Eircode";default:return"Postal Code"}}var Yt=new Intl.DisplayNames(["en"],{type:"region"});function Ht(e){return[...e.toUpperCase()].map(t=>String.fromCodePoint(127397+t.charCodeAt(0))).join("")}var Fe=["US","GB","CA","AU","NZ","IE","DE","FR"],zt=["AD","AE","AF","AG","AL","AM","AO","AR","AT","AU","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BN","BO","BR","BS","BT","BW","BY","BZ","CA","CD","CF","CG","CH","CI","CL","CM","CN","CO","CR","CU","CV","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","ER","ES","ET","FI","FJ","FM","FR","GA","GB","GD","GE","GH","GM","GN","GQ","GR","GT","GW","GY","HN","HR","HT","HU","ID","IE","IL","IN","IQ","IR","IS","IT","JM","JO","JP","KE","KG","KH","KI","KM","KN","KR","KW","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MG","MH","MK","ML","MM","MN","MR","MT","MU","MV","MW","MX","MY","MZ","NA","NE","NG","NI","NL","NO","NP","NR","NZ","OM","PA","PE","PG","PH","PK","PL","PT","PW","PY","QA","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SI","SK","SL","SM","SN","SO","SR","SS","ST","SV","SY","SZ","TD","TG","TH","TJ","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","UZ","VA","VC","VE","VN","VU","WS","XK","YE","ZA","ZM","ZW"];function Q(e){return{code:e,name:Yt.of(e)??e,flag:Ht(e)}}var qt=new Set(Fe),Wt=zt.filter(e=>!qt.has(e)),be=[...Fe.map(Q),...Wt.map(Q)];function Zt(e){return be.find(t=>t.code===e)}var jt={country:!0,postal_code:!0};function fe(e){return e?e===!0?jt:e:null}function Xt(e,t){if(e===void 0||e===!1)return!1;if(e===!0)return!0;let r=t.trim().toUpperCase();return e.some(o=>o.trim().toUpperCase()===r)}function $t(e){let t=fe(e);return t?Object.values(t).some(r=>r===!0||Array.isArray(r)&&r.length>0):!1}var xe=[{code:"AL",name:"Alabama"},{code:"AK",name:"Alaska"},{code:"AZ",name:"Arizona"},{code:"AR",name:"Arkansas"},{code:"CA",name:"California"},{code:"CO",name:"Colorado"},{code:"CT",name:"Connecticut"},{code:"DE",name:"Delaware"},{code:"DC",name:"District of Columbia"},{code:"FL",name:"Florida"},{code:"GA",name:"Georgia"},{code:"HI",name:"Hawaii"},{code:"ID",name:"Idaho"},{code:"IL",name:"Illinois"},{code:"IN",name:"Indiana"},{code:"IA",name:"Iowa"},{code:"KS",name:"Kansas"},{code:"KY",name:"Kentucky"},{code:"LA",name:"Louisiana"},{code:"ME",name:"Maine"},{code:"MD",name:"Maryland"},{code:"MA",name:"Massachusetts"},{code:"MI",name:"Michigan"},{code:"MN",name:"Minnesota"},{code:"MS",name:"Mississippi"},{code:"MO",name:"Missouri"},{code:"MT",name:"Montana"},{code:"NE",name:"Nebraska"},{code:"NV",name:"Nevada"},{code:"NH",name:"New Hampshire"},{code:"NJ",name:"New Jersey"},{code:"NM",name:"New Mexico"},{code:"NY",name:"New York"},{code:"NC",name:"North Carolina"},{code:"ND",name:"North Dakota"},{code:"OH",name:"Ohio"},{code:"OK",name:"Oklahoma"},{code:"OR",name:"Oregon"},{code:"PA",name:"Pennsylvania"},{code:"RI",name:"Rhode Island"},{code:"SC",name:"South Carolina"},{code:"SD",name:"South Dakota"},{code:"TN",name:"Tennessee"},{code:"TX",name:"Texas"},{code:"UT",name:"Utah"},{code:"VT",name:"Vermont"},{code:"VA",name:"Virginia"},{code:"WA",name:"Washington"},{code:"WV",name:"West Virginia"},{code:"WI",name:"Wisconsin"},{code:"WY",name:"Wyoming"}],Te=[{code:"AB",name:"Alberta"},{code:"BC",name:"British Columbia"},{code:"MB",name:"Manitoba"},{code:"NB",name:"New Brunswick"},{code:"NL",name:"Newfoundland and Labrador"},{code:"NS",name:"Nova Scotia"},{code:"NT",name:"Northwest Territories"},{code:"NU",name:"Nunavut"},{code:"ON",name:"Ontario"},{code:"PE",name:"Prince Edward Island"},{code:"QC",name:"Quebec"},{code:"SK",name:"Saskatchewan"},{code:"YT",name:"Yukon"}];function Jt(e){switch(e.toUpperCase()){case"US":return xe;case"CA":return Te;default:return null}}function Qt(e){switch(e.toUpperCase()){case"US":return"State";case"CA":return"Province";case"GB":return"County";case"AU":return"State / Territory";default:return"State / Province / Region"}}var er=[[5,5,"NY"],[10,27,"MA"],[28,29,"RI"],[30,38,"NH"],[39,49,"ME"],[50,59,"VT"],[60,69,"CT"],[70,89,"NJ"],[100,149,"NY"],[150,196,"PA"],[197,199,"DE"],[200,205,"DC"],[206,219,"MD"],[220,246,"VA"],[247,268,"WV"],[270,289,"NC"],[290,299,"SC"],[300,319,"GA"],[320,349,"FL"],[350,369,"AL"],[370,385,"TN"],[386,397,"MS"],[398,399,"GA"],[400,427,"KY"],[430,459,"OH"],[460,479,"IN"],[480,499,"MI"],[500,528,"IA"],[530,549,"WI"],[550,567,"MN"],[570,577,"SD"],[580,588,"ND"],[590,599,"MT"],[600,629,"IL"],[630,658,"MO"],[660,679,"KS"],[680,693,"NE"],[700,714,"LA"],[716,729,"AR"],[730,749,"OK"],[750,799,"TX"],[800,816,"CO"],[820,831,"WY"],[832,838,"ID"],[840,847,"UT"],[850,865,"AZ"],[870,884,"NM"],[889,898,"NV"],[900,961,"CA"],[967,968,"HI"],[970,979,"OR"],[980,994,"WA"],[995,999,"AK"]],tr={A:"NL",B:"NS",C:"PE",E:"NB",G:"QC",H:"QC",J:"QC",K:"ON",L:"ON",M:"ON",N:"ON",P:"ON",R:"MB",S:"SK",T:"AB",V:"BC",X:"NT",Y:"YT"};function rr(e){let t=e.replace(/\D/g,"");if(t.length<5)return null;let r=Number.parseInt(t.slice(0,3),10);if(!Number.isFinite(r))return null;for(let[o,n,c]of er)if(r>=o&&r<=n)return c;return null}function or(e){let t=e.replace(/\s+/g,"").toUpperCase();if(!/^[A-Z]\d[A-Z]\d[A-Z]\d$/.test(t))return null;let r=t[0]??"";return tr[r]??null}function nr(e,t){if(!e||!t)return null;let r=e.trim().toUpperCase(),o=t.trim();if(!o)return null;switch(r){case"US":return rr(o);case"CA":return or(o);default:return null}}import*as ar from"validator/lib/isPostalCode.js";var T=ar,Se=typeof T.default=="function"?T.default:T.default?.default;if(typeof Se!="function")throw new Error("validator/lib/isPostalCode.js interop failed: unexpected module shape. This likely means the bundler's CJS/ESM interop changed.");var Ae=new Set(T.locales.map(e=>e.toUpperCase())),ir={AUSTRALIA:"AU",BRAZIL:"BR",CANADA:"CA",CH:"CH",DENMARK:"DK",DE:"DE",DEUTSCHLAND:"DE",FRANCE:"FR",GB:"GB",GERMANY:"DE",GREATBRITAIN:"GB",GREAT_BRITAIN:"GB",INDIA:"IN",IRELAND:"IE",ITALY:"IT",JAPAN:"JP",MEXICO:"MX",NETHERLANDS:"NL",NEWZEALAND:"NZ",NORWAY:"NO",POLAND:"PL",PORTUGAL:"PT",SINGAPORE:"SG",SOUTHAFRICA:"ZA",SPAIN:"ES",SWEDEN:"SE",SWITZERLAND:"CH",UK:"GB",UNITEDKINGDOM:"GB",UNITEDSTATES:"US",US:"US",USA:"US","UNITED STATES":"US","UNITED KINGDOM":"GB","GREAT BRITAIN":"GB",ENGLAND:"GB"};function L(e){let t=(e??"").trim().toUpperCase();return t?t.length===2?t:ir[t]??null:null}var sr={AU:"2000",BR:"01000-000",CA:"A1A 1A1",CH:"8001",DE:"10115",DK:"1050",ES:"28001",FR:"75008",GB:"SW1A 1AA",IE:"D02 X285",IN:"110001",IT:"00118",JP:"100-0001",MX:"06500",NL:"1012 JS",NO:"0150",NZ:"6011",PL:"00-001",PT:"1100-148",SE:"111 22",SG:"018989",US:"12345 or 12345-6789",ZA:"8001"};function dr(e){let t=L(e);return t!==null&&Ae.has(t)}function cr(e,t){let r=(t??"").trim();if(!r)return!0;let o=L(e);if(o===null||!Ae.has(o))return!0;try{return Se(r,o)}catch{return!0}}function ur(e){let t=L(e);return t?sr[t]:void 0}function a(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function M(e,t,r,o){let n=a(e);if(n)return n;for(let c of t??[]){let d=a(c.currency);if(d)return d}for(let c of r??[]){let d=a(c.currency);if(d)return d}for(let c of o??[]){let d=a(c.currency);if(d)return d}return null}function lr(e,t){let r=[];for(let o of t??[])r.push({type:"subscription",code:a(o.code)??a(o.providerPlanId),providerPlanId:o.providerPlanId,name:a(o.subscriptionName)??a(o.providerPlanName)??null,subscriptionName:o.subscriptionName??null,providerPlanName:o.providerPlanName??null,quantity:o.quantity,totalAmount:o.totalAmount,overrideAmount:o.overrideAmount,currency:o.currency,metadata:o.metadata});for(let o of e??[])r.push({type:"item",code:a(o.code)??a(o.providerItemId),providerItemId:o.providerItemId,name:a(o.itemName)??a(o.providerItemName)??null,itemName:o.itemName??null,providerItemName:o.providerItemName??null,quantity:o.quantity,totalAmount:o.totalAmount,overrideAmount:o.overrideAmount,currency:o.currency,metadata:o.metadata});return r}function pr(e,t){let r=a(e.code)??a(e.providerItemId)??a(e.providerPlanId);if(!r)throw new Error("CheckoutProduct requires `code` (or the deprecated `providerItemId` / `providerPlanId`).");let o=a(e.name)??a(e.itemName)??a(e.providerItemName)??a(e.subscriptionName)??a(e.providerPlanName)??null,n={type:e.type,code:r,name:o,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(n.metadata=e.metadata),n}function mr(e,t){let r=a(e.code)??a(e.providerItemId);if(!r)throw new Error("CheckoutItem requires either `code` or the deprecated `providerItemId`.");let o=a(e.itemName)??a(e.providerItemName)??null,n={code:r,providerItemId:a(e.providerItemId)??r,itemName:o,providerItemName:a(e.providerItemName)??o,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(n.metadata=e.metadata),n}function gr(e,t){let r=a(e.code)??a(e.providerPlanId);if(!r)throw new Error("CheckoutSubscription requires either `code` or the deprecated `providerPlanId`.");let o=a(e.subscriptionName)??a(e.providerPlanName)??null,n={code:r,providerPlanId:a(e.providerPlanId)??r,subscriptionName:o,providerPlanName:a(e.providerPlanName)??o,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(n.metadata=e.metadata),n}function yr(e,t={}){let r=[],o=e.products??[],n=o.filter(s=>s.type==="subscription"),c=o.filter(s=>s.type!=="subscription"),p=(M(e.currency,void 0,void 0,o)??"USD").toUpperCase();for(let s of n){let m=s.totalAmount??0,E=s.overrideAmount??m,S=s.name||s.code||"Subscription";S==="4-WEEK PLAN"&&E<=1&&(S="7-DAY TRIAL: FULL ACCESS"),r.push({name:S,quantity:s.quantity,price:E,originalPrice:m})}if(!(t.hideBundledItems===!0&&n.length>0&&c.length>0))for(let s of c){let m=s.totalAmount??0,E=s.overrideAmount??m;r.push({name:s.name||s.code||"Item",quantity:s.quantity,price:E,originalPrice:m})}r.length===0&&r.push({name:"Purchase",quantity:1,price:e.amount/100,originalPrice:e.amount/100});let Ie=r.reduce((s,m)=>s+m.originalPrice*m.quantity,0),Re=r.reduce((s,m)=>s+m.price*m.quantity,0),_e=typeof e.totalAmount=="number"&&Number.isFinite(e.totalAmount),Pe=typeof e.subtotalAmount=="number"&&Number.isFinite(e.subtotalAmount),ke=typeof e.discountAmount=="number"&&Number.isFinite(e.discountAmount),w=_e?e.totalAmount:Re,C=Pe?e.subtotalAmount:Ie,G=Math.max(0,C-w),Be=C>0?Math.round(G/C*100):0;return{items:r,currency:p,total:w,originalTotal:C,totalSave:G,discountPercent:Be,...ke?{couponDiscount:e.discountAmount}:{}}}function Cr(e){return v[e.toUpperCase()]??D}function Er(e){return/^pk_(test|live)_[A-Za-z0-9]+$/.test(e)}function Fr(e){return/^sk_(test|live)_[A-Za-z0-9]+$/.test(e)}function br(e){return typeof e=="string"&&e.startsWith("seti_")}var fr="Idempotency-Key",O=255,xr="IdempotencyKeyInProgress";function Tr(){let e=globalThis.crypto;if(e&&(typeof e.randomUUID=="function"||typeof e.getRandomValues=="function"))return e}function he(){let e=Tr();if(!e)return;if(typeof e.randomUUID=="function")return e.randomUUID();let t=new Uint8Array(16);return e.getRandomValues(t),Array.from(t,r=>r.toString(16).padStart(2,"0")).join("")}function Sr(e){if(e===void 0)return he();if(typeof e!="string"||e.trim()==="")throw new u("idempotencyKey must be a non-empty string identifying exactly one checkout creation.","validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});if(e.length>O)throw new u(`idempotencyKey must be at most ${O} characters.`,"validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});return e}var U=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function Ar(e){return typeof e=="string"&&U.test(e)}function hr(){try{let r=globalThis.crypto.randomUUID();if(U.test(r))return r}catch{}let e=new Uint8Array(16);try{globalThis.crypto.getRandomValues(e)}catch{for(let r=0;r<e.length;r+=1)e[r]=Math.floor(Math.random()*256)}e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}export{Tt as BILLING_API_URL,ee as BILLING_API_URL_PRODUCTION,x as BILLING_API_URL_STAGING,ae as BOLD_DARK_APPEARANCE,ne as BOLD_LIGHT_APPEARANCE,k as BUTTONS_LAYOUT_BOLD_DARK,P as BUTTONS_LAYOUT_BOLD_LIGHT,le as BUTTONS_LAYOUT_DARK,de as BUTTONS_LAYOUT_DEFAULT,N as BUTTONS_LAYOUT_GLASS_DARK,B as BUTTONS_LAYOUT_GLASS_LIGHT,ce as BUTTONS_LAYOUT_MINIMAL,_ as BUTTONS_LAYOUT_MODERN_DARK,R as BUTTONS_LAYOUT_MODERN_LIGHT,ue as BUTTONS_LAYOUT_ROUNDED,Te as CA_PROVINCES,be as COUNTRY_OPTIONS,v as CURRENCY_MAP,xt as DEFAULT_API_BASE_URL,At as DEFAULT_API_VERSION,te as DEFAULT_APPEARANCE,D as DEFAULT_CURRENCY,Gt as ELEMENT_TYPES,ht as FLAT_APPEARANCE,ft as FLO_SDK_VERSION_HEADER,u as FloPayError,se as GLASS_DARK_APPEARANCE,ie as GLASS_LIGHT_APPEARANCE,xr as IDEMPOTENCY_IN_PROGRESS_CODE,fr as IDEMPOTENCY_KEY_HEADER,O as MAX_IDEMPOTENCY_KEY_LENGTH,oe as MODERN_DARK_APPEARANCE,re as MODERN_LIGHT_APPEARANCE,It as NIGHT_APPEARANCE,bt as SDK_VERSION,ge as STRIPE_EXPRESS_METHODS,Ee as STRIPE_METHOD_AMOUNT_LIMITS,Ce as STRIPE_METHOD_COUNTRIES,ye as STRIPE_METHOD_CURRENCIES,g as STRIPE_METHOD_MATRIX,Kt as SUPPORTED_CARD_BRANDS,V as TELEMETRY_ERROR_CODES,Y as TELEMETRY_FAILURE_CATEGORIES,H as TELEMETRY_LOG_NAMES,we as TELEMETRY_MAX_BATCH_BYTES,Ge as TELEMETRY_MAX_BATCH_EVENTS,Ue as TELEMETRY_SCHEMA_VERSION,K as TELEMETRY_SDK_PACKAGES,pe as THEMES,xe as US_STATES,U as UUID_V4,De as apiError,Le as authenticationError,yr as buildCheckoutDisplayData,mr as buildItemPayload,pr as buildProductPayload,gr as buildSubscriptionPayload,W as buildTelemetryErrorEvent,Z as buildTelemetryLogEvent,X as buildTelemetryPerformanceEvent,j as buildTelemetryTerminalEvent,yt as classifyTelemetryFailure,Et as configureFlopay,Ut as filterStripeMethodsByAmount,Ot as filterStripeMethodsByCountry,Mt as filterStripeMethodsByCurrency,lr as foldIntoProducts,he as generateIdempotencyKey,I as getConfiguredBillingApiUrl,Zt as getCountryByCode,Cr as getCurrencyByCountry,Ft as getFloPayEnvironment,ur as getPostalCodeExample,Vt as getPostalCodeLabel,nr as getStateFromPostalCode,Qt as getStateLabel,Jt as getStateOptions,vt as getStripeMethodDisplayName,Bt as hasVendoredStripeMethodLogo,$t as isAVSEnabled,Xt as isAVSFieldVisible,dr as isPostalCodeSupported,br as isSetupIntentClientSecret,Ar as isUuidV4,cr as isValidPostalCode,Er as isValidPublishableKey,Fr as isValidSecretKey,Dt as needsStripeMethodExplicitConfirm,Oe as networkError,Ne as normalizeGatewayEnvironment,wt as partitionStripeMethods,hr as randomUuidV4,Me as rateLimitError,fe as resolveAVSConfig,St as resolveBillingApiUrl,Rt as resolveButtonsLayoutTheme,Sr as resolveIdempotencyKey,M as resolveSessionCurrency,Lt as resolveStripeMethodBrandVariant,_t as resolveTheme,mt as serializeTelemetryBatch,Pt as stripeExpressMethodToOptionKey,A as telemetryStatusClass,ve as validationError};
|
|
1
|
+
function ve(e){if(e!=null)switch(e){case"sandbox":case"stage":return"sandbox";case"live":case"production":return"live";default:console.warn(`[FloPay] Unrecognized gateway environment "${e}". Expected one of: sandbox, live, stage, production. Falling back to undefined.`);return}}var u=class extends Error{constructor(t,r,o){super(t),this.name="FloPayError",this.type=r,this.code=o?.code,this.declineCode=o?.declineCode,this.param=o?.param,this.statusCode=o?.statusCode,Object.setPrototypeOf(this,new.target.prototype)}};function De(e,t){return new u(e,"validation_error",{param:t})}function Le(e,t,r){return new u(e,"api_error",{code:t,statusCode:r})}function Me(e){return new u(e,"authentication_error")}function Oe(e){return new u(e,"rate_limit_error")}function Ue(e){return new u(e,"network_error")}var we=/(?:^|\/)dahlia\/stripe\.js(?:$|[?#])/i,Ge=/^dahlia\/stripe$/i,Ke=/^(?:chrome|moz|safari-web)-extension:\/\//i,Ve=/^@flopay(?:\/|$)/i;function K(e){return we.test(e)||Ke.test(e)}function Ye(e){let t=[e.filename,e.abs_path].filter(r=>r!==void 0&&r!=="<anonymous>");return e.module!==void 0&&Ve.test(e.module)||t.some(r=>!K(r))?"first-party":e.module!==void 0&&Ge.test(e.module)||t.some(K)?"third-party-hosted":t.length===0?"injected":"first-party"}function He(e){let t=e.exception?.values;if(!t?.length)return e;let r=[];for(let n of t){let s=n.stacktrace?.frames;if(!s?.length)return e;r.push(...s)}let o=r.map(Ye);return!o.includes("first-party")&&o.includes("third-party-hosted")?null:e}var ze=1,V=["@flopay/shared","@flopay/js","@flopay/react"],qe=32768,We=20,Ze=["stripe","paypal"],je=["card","wallet","paypal","apm","saved","unknown"],Xe=["callback","sdk_initialize","checkout_mount","session_create","session_shell","session_claim","session_read","session_first_byte","session_complete","checkout_data_ready","checkout_render","checkout_interactive","provider_load","provider_ready","overlay_open","overlay_return","redirect","redirect_resume","vault_request","vault_mount","vault_ready","vault_submit","tokenization","three_ds_handoff","three_ds_return","processing","recovery","completion","unmount","total_journey"],Y=["CALLBACK_FAILED","CHECKOUT_SESSION_CREATE_FAILED","CONFIGURATION_INVALID","INTERNAL_SDK_ERROR","NETWORK_REQUEST_FAILED","PAYMENT_PROCESSING_FAILED","POPUP_BLOCKED","PROVIDER_LOAD_FAILED","PROVIDER_RUNTIME_FAILED","RECOVERY_FAILED","REDIRECT_RESUME_FAILED","REQUEST_TIMEOUT","SDK_INITIALIZATION_FAILED","THREE_DS_FAILED","TOKENIZATION_FAILED","VAULT_LOAD_FAILED","VAULT_SUBMIT_FAILED"],H=["server_error","transport_error","invalid_response","provider_runtime"],z=["sdk.initialize.started","sdk.initialize.ready","sdk.cache.hit","sdk.cache.miss","checkout.mount","session.create.started","session.shell.ready","session.claim.started","session.claim.completed","session.read.started","session.request.first_byte","session.request.completed","checkout.data.ready","checkout.rendered","checkout.interactive","checkout.recovery.started","checkout.recovery.completed","checkout.unmount","provider.load.started","provider.eligibility.checked","provider.availability.checked","provider.ready","provider.popup.opened","provider.overlay.opened","provider.overlay.returned","provider.redirect.started","provider.redirect.resumed","vault.capture.requested","vault.widget.mounted","vault.widget.ready","vault.submission.started","vault.action.required","vault.three_ds.handoff","vault.three_ds.returned","vault.terminal","payment.method.selected","payment.intent.started","payment.intent.completed","payment.tokenization.started","payment.tokenization.completed","payment.processing.started","payment.processing.completed","payment.three_ds.handoff","payment.three_ds.returned","operation.retry","operation.deduplicated","operation.fallback","operation.cache.hit","operation.cache.miss","operation.recovery.started","operation.recovery.completed","operation.state_transition"],$e=["session_create","session_claim","session_read","intent_create","process_payment","vault_capture","account_snapshot","provider_sdk","other"],Je=["2xx","3xx","4xx","5xx","network_error","timeout","unknown"],Qe=["full","auto","confirm","unknown"],et=["embedded","buttons","automatic","unknown"],tt=["machine","buyer","total"],rt=["action_required","customer_abandoned","payment_cancelled","payment_declined","payment_succeeded","validation_rejected"],q=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,ot=/^\d{1,4}\.\d{1,4}\.\d{1,4}(?:-[0-9A-Za-z.-]{1,32})?$/,nt=new Set(Y),at=new Set(H),F=new Set(Xe),it=new Set(Ze),st=new Set(je),ct=new Set(z),dt=new Set(Qe),ut=new Set(et),lt=new Set($e),pt=new Set(Je),mt=new Set(tt),gt=new Set(rt),yt=new Set(V),W=12e4;function l(e,t,r){return typeof e=="string"&&t.has(e)?e:r}function Et(){try{let r=globalThis.crypto.randomUUID();if(q.test(r))return r}catch{}let e=new Uint8Array(16);try{globalThis.crypto.getRandomValues(e)}catch{for(let r=0;r<e.length;r+=1)e[r]=Math.floor(Math.random()*256)}e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function y(e){return typeof e=="string"&&q.test(e)?e:Et()}function Ct(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=100?e:void 0}function b(e){return Number.isSafeInteger(e)&&e>=0?Math.min(e,1e6):0}function Ft(e){return!Number.isFinite(e)||e<0?0:Math.min(Math.round(e),W)}function bt(e){return Number.isFinite(e)&&e>W}function f(e,t){let r=Ct(t.attempt);return t.provider&&it.has(t.provider)&&(e.provider=t.provider),r!==void 0&&(e.attempt=r),t.statusClass&&(e.statusClass=l(t.statusClass,pt,"unknown")),t.requestCategory&&(e.requestCategory=l(t.requestCategory,lt,"other")),t.paymentMethodCategory&&(e.paymentMethodCategory=l(t.paymentMethodCategory,st,"unknown")),t.checkoutMode&&(e.checkoutMode=l(t.checkoutMode,dt,"unknown")),t.layout&&(e.layout=l(t.layout,ut,"unknown")),e}function Z(e){let t=f({eventId:y(e.eventId),class:"technical_error",code:l(e.errorCode,nt,"INTERNAL_SDK_ERROR"),stage:l(e.stage,F,"sdk_initialize"),sequence:b(e.sequence)},e);return e.failureCategory&&at.has(e.failureCategory)&&(t.failureCategory=e.failureCategory),t}function j(e){return f({eventId:y(e.eventId),class:"lifecycle",name:l(e.name,ct,"operation.retry"),stage:l(e.stage,F,"sdk_initialize"),sequence:b(e.sequence)},e)}function X(e){let t={...e,stage:e.stage??"completion"};return f({eventId:y(e.eventId),class:"expected_outcome",outcome:l(e.outcome,gt,"customer_abandoned"),stage:l(e.stage,F,"completion"),sequence:b(e.sequence)},t)}function $(e){let t=f({eventId:y(e.eventId),class:"performance",stage:l(e.stage,F,"sdk_initialize"),sequence:b(e.sequence),durationMs:Ft(e.durationMs),durationMode:l(e.durationMode,mt,"machine")},e);return(e.durationTruncated===!0||bt(e.durationMs))&&(t.durationTruncated=!0),t}function ft(e,t){let r=e.slice(0,20).flatMap(n=>n.class==="technical_error"?[Z({...n,errorCode:n.code})]:n.class==="lifecycle"?[j(n)]:n.class==="expected_outcome"?[X(n)]:n.class==="performance"?[$(n)]:[]),o={schemaVersion:1,batchId:y(t.batchId),correlationId:y(t.correlationId),sdk:{package:l(t.sdkPackage,yt,"@flopay/shared"),version:ot.test(t.sdkVersion)?t.sdkVersion:"0.0.0"},events:r};return JSON.stringify(o)}var xt=new Set(["InvalidCheckoutSessionResponse","InvalidSessionIntentResponse"]);function Tt(e,t,r="network_error"){if(e instanceof u&&e.code!==void 0&&xt.has(e.code))return{errorCode:t,statusClass:A(e.statusCode,"unknown"),failureCategory:"invalid_response"};if(e instanceof Error&&(e.name==="AbortError"||e instanceof u&&e.code==="checkout_processing_timeout"))return{errorCode:"REQUEST_TIMEOUT",statusClass:"timeout",failureCategory:"transport_error"};if(e instanceof TypeError||e instanceof u&&e.type==="network_error")return{errorCode:"NETWORK_REQUEST_FAILED",statusClass:"network_error",failureCategory:"transport_error"};let o=A(e instanceof u?e.statusCode:void 0,r);return{errorCode:t,statusClass:o,...o==="5xx"?{failureCategory:"server_error"}:{}}}function A(e,t="network_error"){if(e===void 0)return t;let r=`${Math.floor(e/100)}xx`;return r==="2xx"||r==="3xx"||r==="4xx"||r==="5xx"?r:"unknown"}var St={local:"https://flo.ngrok.pro",staging:"https://api.stage.flopay.com",production:"https://api.flopay.com"},h="staging";function At(e){h=e.environment}function I(){return St[h]}function ht(){return h}var J=["alipay","bancontact","blik","eps","giropay","ideal","klarna","p24","sepa_debit","wechat_pay"];var It="1.4.18",Rt="x-flo-sdk-version",x="https://api.stage.flopay.com",te="https://api.flopay.com",_t=x,Pt=x;function kt(e){return e||(typeof process<"u"&&process.env?.NEXT_PUBLIC_FLOPAY_ENV?process.env.NEXT_PUBLIC_FLOPAY_ENV==="production"?te:x:I())}var Bt="2024-01-01",re={theme:"default",variables:{colorPrimary:"#4A49FF",colorBackground:"#FFFFFF",colorText:"#262833",colorDanger:"#DF1B41",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},Nt={theme:"flat",variables:{...re.variables,borderRadius:"4px"}},vt={theme:"night",variables:{colorPrimary:"#7B7BFF",colorBackground:"#1A1A2E",colorText:"#E0E0E0",colorDanger:"#FF6B6B",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},oe={theme:"default",variables:{colorPrimary:"#1785E0",colorBackground:"#FFFFFF",colorText:"#0F172A",colorDanger:"#EF4444",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{padding:"14px 16px",border:"1.5px solid #E5E7EB",boxShadow:"0 1px 2px rgba(15,23,42,0.04)"},".Input:focus":{borderColor:"#1785E0",boxShadow:"0 0 0 4px rgba(23,133,224,0.12)"},".Label":{fontWeight:"500",color:"#475569",marginBottom:"6px"},".Tab":{padding:"12px 16px",borderRadius:"12px",border:"1.5px solid #E5E7EB"},".Tab:hover":{borderColor:"#CBD5E1"},".Tab--selected":{borderColor:"#1785E0",boxShadow:"0 0 0 1px #1785E0"}}},ne={theme:"night",variables:{colorPrimary:"#60A5FA",colorBackground:"#0B1220",colorText:"#F1F5F9",colorDanger:"#F87171",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"#111827",padding:"14px 16px",border:"1.5px solid #1F2937",color:"#F1F5F9",boxShadow:"none"},".Input:focus":{borderColor:"#60A5FA",boxShadow:"0 0 0 4px rgba(96,165,250,0.18)"},".Label":{fontWeight:"500",color:"#94A3B8",marginBottom:"6px"},".Tab":{padding:"12px 16px",borderRadius:"12px",border:"1.5px solid #1F2937",backgroundColor:"#111827",color:"#F1F5F9"},".Tab:hover":{borderColor:"#374151"},".Tab--selected":{borderColor:"#60A5FA",boxShadow:"0 0 0 1px #60A5FA"}}},ae={theme:"default",variables:{colorPrimary:"#1785E0",colorBackground:"#FFFFFF",colorText:"#0C2B4D",colorDanger:"#DC2626",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"5px"},rules:{".Input":{padding:"14px 16px",border:"2px solid #E5E7EB"},".Input:focus":{borderColor:"#1785E0",boxShadow:"0 0 0 3px rgba(23,133,224,0.2)"},".Label":{fontWeight:"600",color:"#0C2B4D"},".Tab":{padding:"14px 18px",border:"2px solid #E5E7EB",fontWeight:"600"},".Tab--selected":{borderColor:"#1785E0",boxShadow:"0 0 0 1px #1785E0"}}},ie={theme:"night",variables:{colorPrimary:"#60A5FA",colorBackground:"#0C2B4D",colorText:"#FFFFFF",colorDanger:"#F87171",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"#1E3A8A",padding:"14px 16px",border:"2px solid #1E40AF",color:"#FFFFFF"},".Input:focus":{borderColor:"#60A5FA",boxShadow:"0 0 0 3px rgba(96,165,250,0.25)"},".Label":{fontWeight:"600",color:"#DBEAFE"},".Tab":{padding:"14px 18px",border:"2px solid #1E40AF",backgroundColor:"#1E3A8A",color:"#FFFFFF",fontWeight:"600"},".Tab--selected":{borderColor:"#60A5FA",boxShadow:"0 0 0 1px #60A5FA"}}},se={theme:"default",variables:{colorPrimary:"#1785E0",colorBackground:"#FFFFFF",colorText:"#1E293B",colorDanger:"#EF4444",borderRadius:"16px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"rgba(255,255,255,0.6)",backdropFilter:"blur(10px)",padding:"14px 16px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.5), 0 1px 3px rgba(23,133,224,0.08)"},".Input:focus":{borderColor:"rgba(23,133,224,0.5)",boxShadow:"0 0 0 3px rgba(23,133,224,0.15)"},".Label":{fontWeight:"500",color:"#475569"},".Tab":{padding:"12px 16px",backgroundColor:"rgba(255,255,255,0.5)",border:"1px solid rgba(255,255,255,0.6)",borderRadius:"14px"},".Tab--selected":{borderColor:"rgba(23,133,224,0.6)",boxShadow:"0 0 0 1px rgba(23,133,224,0.6)"}}},ce={theme:"night",variables:{colorPrimary:"#60A5FA",colorBackground:"#0F172A",colorText:"#F1F5F9",colorDanger:"#F87171",borderRadius:"16px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(10px)",padding:"14px 16px",border:"1px solid rgba(255,255,255,0.08)",color:"#F1F5F9"},".Input:focus":{borderColor:"rgba(96,165,250,0.5)",boxShadow:"0 0 0 3px rgba(96,165,250,0.2)"},".Label":{fontWeight:"500",color:"#94A3B8"},".Tab":{padding:"12px 16px",backgroundColor:"rgba(15,23,42,0.6)",border:"1px solid rgba(255,255,255,0.08)",borderRadius:"14px",color:"#F1F5F9"},".Tab--selected":{borderColor:"rgba(96,165,250,0.6)",boxShadow:"0 0 0 1px rgba(96,165,250,0.6)"}}},de={},ue={cardButton:{border:"none",backgroundColor:"#f9fafb",boxShadow:"none"},cardFormContainer:{backgroundColor:"#f9fafb",border:"none"},cardInputBorder:"#e5e7eb",backButtonIcon:{backgroundColor:"#e5e7eb"},submitButton:{borderRadius:"6px"}},le={cardButton:{borderRadius:"9999px",border:"1px solid #e5e7eb",boxShadow:"0 1px 3px rgba(0,0,0,0.06)"},cardFormContainer:{borderRadius:"16px",border:"1px solid #e5e7eb",boxShadow:"0 2px 8px rgba(0,0,0,0.06)"},cardInputBorder:"#d1d5db",submitButton:{borderRadius:"9999px"},backButtonIcon:{backgroundColor:"#f3f4f6"}},pe={cardButton:{backgroundColor:"#1f2937",color:"#f9fafb",border:"1px solid #374151",boxShadow:"none"},cardFormContainer:{backgroundColor:"#111827",border:"1px solid #374151"},cardInputBorder:"#4b5563",cardInputColor:"#f9fafb",cardInputPlaceholderColor:"#6b7280",cardInputBackground:"#1f2937",nameInput:{backgroundColor:"#1f2937",color:"#f9fafb"},backButton:{color:"#9ca3af"},backButtonIcon:{backgroundColor:"#374151"},submitButton:{backgroundColor:"#6366f1"},title:{color:"#f9fafb"},countrySelect:{backgroundColor:"#1f2937",color:"#f9fafb"},zipInput:{backgroundColor:"#1f2937",color:"#f9fafb"}},R={cardFormContainer:{backgroundColor:"#FAFAFA",borderRadius:"20px",border:"1px solid #E5E7EB",boxShadow:"0 8px 24px rgba(15,23,42,0.04)",padding:"24px"},cardButton:{backgroundColor:"#FFFFFF",borderRadius:"14px",border:"1.5px solid #E5E7EB",boxShadow:"0 1px 2px rgba(15,23,42,0.04)",padding:"14px 18px"},cardInputBorder:"#E5E7EB",nameInput:{backgroundColor:"#FFFFFF",border:"1.5px solid #E5E7EB",borderRadius:"14px",padding:"14px 16px"},submitButton:{backgroundColor:"#1785E0",borderRadius:"14px",padding:"16px 24px",boxShadow:"0 4px 14px rgba(23,133,224,0.25)",fontWeight:"600"},title:{color:"#0F172A",fontWeight:"600"},titleFontSize:"20px",backButton:{color:"#64748B"},backButtonIcon:{backgroundColor:"#F1F5F9"}},_={cardFormContainer:{backgroundColor:"#111827",borderRadius:"20px",border:"1px solid #1F2937",boxShadow:"0 8px 24px rgba(0,0,0,0.2)",padding:"24px"},cardButton:{backgroundColor:"#0B1220",borderRadius:"14px",border:"1.5px solid #1F2937",color:"#F1F5F9",padding:"14px 18px"},cardInputBorder:"#1F2937",cardInputBackground:"#111827",cardInputColor:"#F1F5F9",cardInputPlaceholderColor:"#64748B",nameInput:{backgroundColor:"#111827",border:"1.5px solid #1F2937",borderRadius:"14px",padding:"14px 16px",color:"#F1F5F9"},submitButton:{backgroundColor:"#60A5FA",borderRadius:"14px",padding:"16px 24px",boxShadow:"0 4px 14px rgba(96,165,250,0.3)",fontWeight:"600",color:"#0B1220"},title:{color:"#F1F5F9",fontWeight:"600"},titleFontSize:"20px",backButton:{color:"#94A3B8"},backButtonIcon:{backgroundColor:"#1F2937"},countrySelect:{backgroundColor:"#111827",color:"#F1F5F9"},zipInput:{backgroundColor:"#111827",color:"#F1F5F9"}},P={cardFormContainer:{backgroundColor:"#EFF6FF",borderRadius:"20px",border:"2px solid #1785E0",padding:"24px"},cardButton:{backgroundColor:"#FFFFFF",borderRadius:"12px",border:"2px solid #1785E0",color:"#1785E0",fontWeight:"700",padding:"14px 18px"},cardInputBorder:"#E5E7EB",nameInput:{backgroundColor:"#FFFFFF",border:"2px solid #E5E7EB",borderRadius:"12px",padding:"14px 16px",fontWeight:"500"},submitButton:{background:"linear-gradient(135deg, #1785E0 0%, #0EA5E9 100%)",borderRadius:"9999px",padding:"16px 24px",boxShadow:"0 10px 25px rgba(23,133,224,0.35)",fontWeight:"700",color:"#FFFFFF",border:"none"},submitButtonFontSize:"17px",title:{color:"#0C2B4D",fontWeight:"800",letterSpacing:"-0.02em"},titleFontSize:"22px",backButton:{color:"#1785E0",fontWeight:"600"},backButtonIcon:{backgroundColor:"#DBEAFE"}},k={cardFormContainer:{backgroundColor:"#1E3A8A",borderRadius:"20px",border:"2px solid #60A5FA",padding:"24px"},cardButton:{backgroundColor:"#0C2B4D",borderRadius:"12px",border:"2px solid #60A5FA",color:"#60A5FA",fontWeight:"700",padding:"14px 18px"},cardInputBorder:"#1E40AF",cardInputBackground:"#1E3A8A",cardInputColor:"#FFFFFF",cardInputPlaceholderColor:"#60A5FA",nameInput:{backgroundColor:"#1E3A8A",border:"2px solid #1E40AF",borderRadius:"12px",padding:"14px 16px",fontWeight:"500",color:"#FFFFFF"},submitButton:{background:"linear-gradient(135deg, #60A5FA 0%, #38BDF8 100%)",borderRadius:"9999px",padding:"16px 24px",boxShadow:"0 10px 25px rgba(96,165,250,0.35)",fontWeight:"700",color:"#FFFFFF",border:"none"},submitButtonFontSize:"17px",title:{color:"#FFFFFF",fontWeight:"800",letterSpacing:"-0.02em"},titleFontSize:"22px",backButton:{color:"#DBEAFE",fontWeight:"600"},backButtonIcon:{backgroundColor:"#1E40AF"},countrySelect:{backgroundColor:"#1E3A8A",color:"#FFFFFF"},zipInput:{backgroundColor:"#1E3A8A",color:"#FFFFFF"}},B={cardFormContainer:{background:"linear-gradient(135deg, #DBEAFE 0%, #BFDBFE 100%)",borderRadius:"24px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.6), 0 12px 40px rgba(23,133,224,0.15)",padding:"28px"},cardButton:{backgroundColor:"rgba(255,255,255,0.7)",backdropFilter:"blur(20px)",borderRadius:"16px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.5), 0 4px 16px rgba(23,133,224,0.1)",padding:"14px 18px"},cardInputBorder:"rgba(255,255,255,0.6)",nameInput:{backgroundColor:"rgba(255,255,255,0.6)",backdropFilter:"blur(10px)",border:"1px solid rgba(255,255,255,0.6)",borderRadius:"14px",padding:"14px 16px"},submitButton:{backgroundColor:"rgba(23,133,224,0.95)",backdropFilter:"blur(10px)",borderRadius:"16px",padding:"16px 24px",boxShadow:"0 10px 30px rgba(23,133,224,0.3), inset 0 1px 0 rgba(255,255,255,0.2)",fontWeight:"600",color:"#FFFFFF"},title:{color:"#1E293B",fontWeight:"600",letterSpacing:"-0.01em"},titleFontSize:"20px",backButton:{color:"#1785E0",fontWeight:"500"},backButtonIcon:{backgroundColor:"rgba(255,255,255,0.7)"}},N={cardFormContainer:{background:"linear-gradient(135deg, #0C2B4D 0%, #0F172A 100%)",borderRadius:"24px",border:"1px solid rgba(255,255,255,0.08)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.06), 0 20px 50px rgba(0,0,0,0.4)",padding:"28px"},cardButton:{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(20px)",borderRadius:"16px",border:"1px solid rgba(255,255,255,0.08)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.05), 0 4px 16px rgba(0,0,0,0.3)",padding:"14px 18px",color:"#F1F5F9"},cardInputBorder:"rgba(255,255,255,0.08)",cardInputBackground:"rgba(15,23,42,0.6)",cardInputColor:"#F1F5F9",cardInputPlaceholderColor:"#64748B",nameInput:{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(10px)",border:"1px solid rgba(255,255,255,0.08)",borderRadius:"14px",padding:"14px 16px",color:"#F1F5F9"},submitButton:{backgroundColor:"rgba(96,165,250,0.9)",backdropFilter:"blur(10px)",borderRadius:"16px",padding:"16px 24px",boxShadow:"0 10px 30px rgba(96,165,250,0.35), inset 0 1px 0 rgba(255,255,255,0.15)",fontWeight:"600",color:"#0F172A"},title:{color:"#F1F5F9",fontWeight:"600",letterSpacing:"-0.01em"},titleFontSize:"20px",backButton:{color:"#60A5FA",fontWeight:"500"},backButtonIcon:{backgroundColor:"rgba(255,255,255,0.08)"},countrySelect:{backgroundColor:"rgba(15,23,42,0.6)",color:"#F1F5F9"},zipInput:{backgroundColor:"rgba(15,23,42,0.6)",color:"#F1F5F9"}};function Dt(e){switch(e){case"minimal":return ue;case"rounded":return le;case"dark":return pe;case"modern-light":return R;case"modern-dark":return _;case"bold-light":return P;case"bold-dark":return k;case"glass-light":return B;case"glass-dark":return N;default:return de}}var me={"modern-light":{appearance:oe,buttonsLayout:R},"modern-dark":{appearance:ne,buttonsLayout:_},"bold-light":{appearance:ae,buttonsLayout:P},"bold-dark":{appearance:ie,buttonsLayout:k},"glass-light":{appearance:se,buttonsLayout:B},"glass-dark":{appearance:ce,buttonsLayout:N}};function Lt(e){if(!(!e||e==="classic"))return me[e]}function Mt(e){switch(e){case"apple_pay":return"applePay";case"google_pay":return"googlePay";case"amazon_pay":return"amazonPay";default:return e}}function i(e,t,r){return`<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><circle cx="11" cy="11" r="11" fill="${t}"/><text x="11" y="15.5" text-anchor="middle" font-size="13" font-weight="700" font-family="-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif" fill="${r}">${e}</text></svg>`}function Q(e,t){return`<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><circle cx="11" cy="11" r="11" fill="${e}"/><g fill="${t}"><path d="M11 4 L17.5 8 L4.5 8 Z"/><rect x="5" y="8.4" width="12" height="1.2" rx="0.3"/><rect x="5.9" y="10" width="1.5" height="5"/><rect x="8.55" y="10" width="1.5" height="5"/><rect x="11.95" y="10" width="1.5" height="5"/><rect x="14.6" y="10" width="1.5" height="5"/><rect x="4.6" y="15.4" width="12.8" height="1.5" rx="0.3"/></g></svg>`}var ge=["AT","BE","BG","CY","CZ","DE","DK","EE","ES","FI","FR","GR","HR","HU","IE","IT","LT","LU","LV","MT","NL","PL","PT","RO","SE","SI","SK","IS","LI","NO","CH","GB","MC","SM","AD","VA"],Ot=[...ge,"JP","MX","US"],g={apple_pay:{displayName:"Apple Pay",currencies:["*"],express:!0,needsExplicitConfirm:!1},google_pay:{displayName:"Google Pay",currencies:["*"],express:!0,needsExplicitConfirm:!1},paypal:{displayName:"PayPal",currencies:["eur","gbp","usd","cad","aud","nzd","chf","jpy","pln","sek","nok","dkk","czk","huf"],express:!0,needsExplicitConfirm:!1},link:{displayName:"Link",currencies:["usd","eur"],express:!0,needsExplicitConfirm:!1},amazon_pay:{displayName:"Amazon Pay",currencies:["usd","eur","gbp"],express:!0,needsExplicitConfirm:!1},klarna:{displayName:"Klarna",currencies:["usd","eur","gbp","aud","nzd","cad","chf","sek","nok","dkk","pln","czk","ron"],amounts:{usd:{min:100},eur:{min:100},gbp:{min:100}},theme:{light:{backgroundColor:"#FFB3C7",textColor:"#0A0B09",borderColor:"#FFB3C7",logoSvg:i("K","#0A0B09","#FFB3C7")},dark:{backgroundColor:"#FFB3C7",textColor:"#0A0B09",borderColor:"#FFB3C7",logoSvg:i("K","#0A0B09","#FFB3C7")}}},affirm:{displayName:"Affirm",currencies:["usd"],countries:["US","CA"],amounts:{usd:{min:3500,max:3e6}},needsExplicitConfirm:!1,theme:{light:{backgroundColor:"#060F33",textColor:"#FFFFFF",borderColor:"#060F33",logoSvg:i("a","#FFFFFF","#060F33")},dark:{backgroundColor:"#0FA0EA",textColor:"#060F33",borderColor:"#0FA0EA",logoSvg:i("a","#060F33","#FFFFFF")}}},cashapp:{displayName:"Cash App Pay",currencies:["usd"],countries:["US"],amounts:{usd:{min:50,max:99999999}},needsExplicitConfirm:!1,theme:{light:{backgroundColor:"#00D54B",textColor:"#0A1F0E",borderColor:"#00D54B",logoSvg:i("$","#0A1F0E","#00D54B")},dark:{backgroundColor:"#00D54B",textColor:"#0A1F0E",borderColor:"#00D54B",logoSvg:i("$","#0A1F0E","#00D54B")}}},afterpay_clearpay:{displayName:"Afterpay",currencies:["usd","aud","cad","gbp","nzd"],countries:["US","CA","GB","AU","NZ"],amounts:{usd:{min:100,max:2e5},cad:{min:100,max:2e5},gbp:{min:100,max:12e4},aud:{min:100,max:2e5},nzd:{min:100,max:2e5}},theme:{light:{backgroundColor:"#B2FCE4",textColor:"#0A0B09",borderColor:"#B2FCE4",logoSvg:i("A","#0A0B09","#B2FCE4")},dark:{backgroundColor:"#B2FCE4",textColor:"#0A0B09",borderColor:"#B2FCE4",logoSvg:i("A","#0A0B09","#B2FCE4")}}},alipay:{displayName:"Alipay",currencies:["usd","cny"],theme:{light:{backgroundColor:"#1677FF",textColor:"#FFFFFF",borderColor:"#1677FF",logoSvg:i("A","#FFFFFF","#1677FF")},dark:{backgroundColor:"#1677FF",textColor:"#FFFFFF",borderColor:"#1677FF",logoSvg:i("A","#FFFFFF","#1677FF")}}},au_becs_debit:{displayName:"BECS Direct Debit",currencies:["aud"],countries:["AU"]},bacs_debit:{displayName:"Bacs Debit",currencies:["gbp"],countries:["GB"]},bancontact:{displayName:"Bancontact",currencies:["eur"],countries:["BE"],theme:{light:{backgroundColor:"#FFDD55",textColor:"#1E3791",borderColor:"#FFDD55",logoSvg:i("B","#1E3791","#FFDD55")},dark:{backgroundColor:"#1E3791",textColor:"#FFDD55",borderColor:"#1E3791",logoSvg:i("B","#FFDD55","#1E3791")}}},bizum:{displayName:"Bizum",currencies:["eur"],countries:["ES"],theme:{light:{backgroundColor:"#00BFB3",textColor:"#FFFFFF",borderColor:"#00BFB3",logoSvg:i("B","#FFFFFF","#00BFB3")},dark:{backgroundColor:"#00BFB3",textColor:"#FFFFFF",borderColor:"#00BFB3",logoSvg:i("B","#FFFFFF","#00BFB3")}}},blik:{displayName:"BLIK",currencies:["pln"],countries:["PL"],theme:{light:{backgroundColor:"#000000",textColor:"#FFFFFF",borderColor:"#000000",logoSvg:i("B","#FFFFFF","#000000")},dark:{backgroundColor:"#FFFFFF",textColor:"#000000",borderColor:"#FFFFFF",logoSvg:i("B","#000000","#FFFFFF")}}},boleto:{displayName:"Boleto",currencies:["brl"],countries:["BR"]},customer_balance:{displayName:"Bank Transfer",currencies:["eur","usd"],countries:Ot,theme:{light:{backgroundColor:"#1F2937",textColor:"#FFFFFF",borderColor:"#1F2937",logoSvg:Q("#1F2937","#FFFFFF")},dark:{backgroundColor:"#374151",textColor:"#FFFFFF",borderColor:"#374151",logoSvg:Q("#374151","#FFFFFF")}}},eps:{displayName:"EPS",currencies:["eur"],countries:["AT"],theme:{light:{backgroundColor:"#C8102E",textColor:"#FFFFFF",borderColor:"#C8102E",logoSvg:i("E","#FFFFFF","#C8102E")},dark:{backgroundColor:"#C8102E",textColor:"#FFFFFF",borderColor:"#C8102E",logoSvg:i("E","#FFFFFF","#C8102E")}}},giropay:{displayName:"Giropay",currencies:["eur"],countries:["DE"],theme:{light:{backgroundColor:"#0F4197",textColor:"#FFFFFF",borderColor:"#0F4197",logoSvg:i("G","#FFFFFF","#0F4197")},dark:{backgroundColor:"#0F4197",textColor:"#FFFFFF",borderColor:"#0F4197",logoSvg:i("G","#FFFFFF","#0F4197")}}},ideal:{displayName:"iDEAL",currencies:["eur"],countries:["NL"],theme:{light:{backgroundColor:"#CC0066",textColor:"#FFFFFF",borderColor:"#CC0066",logoSvg:i("i","#FFFFFF","#CC0066")},dark:{backgroundColor:"#CC0066",textColor:"#FFFFFF",borderColor:"#CC0066",logoSvg:i("i","#FFFFFF","#CC0066")}}},konbini:{displayName:"Konbini",currencies:["jpy"],countries:["JP"]},kr_card:{displayName:"Korean Card",currencies:["krw"],countries:["KR"],theme:{light:{backgroundColor:"#0B3D91",textColor:"#FFFFFF",borderColor:"#0B3D91",logoSvg:i("K","#FFFFFF","#0B3D91")},dark:{backgroundColor:"#0B3D91",textColor:"#FFFFFF",borderColor:"#0B3D91",logoSvg:i("K","#FFFFFF","#0B3D91")}}},multibanco:{displayName:"Multibanco",currencies:["eur"],countries:["PT"]},oxxo:{displayName:"OXXO",currencies:["mxn"],countries:["MX"]},p24:{displayName:"Przelewy24",currencies:["eur","pln"],countries:["PL"],theme:{light:{backgroundColor:"#D90F1B",textColor:"#FFFFFF",borderColor:"#D90F1B",logoSvg:i("P","#FFFFFF","#D90F1B")},dark:{backgroundColor:"#D90F1B",textColor:"#FFFFFF",borderColor:"#D90F1B",logoSvg:i("P","#FFFFFF","#D90F1B")}}},paynow:{displayName:"PayNow",currencies:["sgd"],countries:["SG"]},pix:{displayName:"Pix",currencies:["brl"],countries:["BR"]},promptpay:{displayName:"PromptPay",currencies:["thb"],countries:["TH"]},sepa_debit:{displayName:"SEPA Debit",currencies:["eur"],countries:ge,theme:{light:{backgroundColor:"#10298E",textColor:"#FFFFFF",borderColor:"#10298E",logoSvg:i("\u20AC","#FFFFFF","#10298E")},dark:{backgroundColor:"#3056D3",textColor:"#FFFFFF",borderColor:"#3056D3",logoSvg:i("\u20AC","#FFFFFF","#3056D3")}}},sofort:{displayName:"Sofort",currencies:["eur"],countries:["AT","BE","DE","ES","IT","NL"],theme:{light:{backgroundColor:"#EF809F",textColor:"#FFFFFF",borderColor:"#EF809F",logoSvg:i("S","#FFFFFF","#EF809F")},dark:{backgroundColor:"#EF809F",textColor:"#FFFFFF",borderColor:"#EF809F",logoSvg:i("S","#FFFFFF","#EF809F")}}},upi:{displayName:"UPI",currencies:["inr"],countries:["IN"],theme:{light:{backgroundColor:"#FF7909",textColor:"#FFFFFF",borderColor:"#FF7909",logoSvg:i("U","#FFFFFF","#FF7909")},dark:{backgroundColor:"#FF7909",textColor:"#FFFFFF",borderColor:"#FF7909",logoSvg:i("U","#FFFFFF","#FF7909")}}},us_bank_account:{displayName:"US Bank Account",currencies:["usd"],countries:["US"]},wechat_pay:{displayName:"WeChat Pay",currencies:["usd","cny"],theme:{light:{backgroundColor:"#07C160",textColor:"#FFFFFF",borderColor:"#07C160",logoSvg:i("W","#FFFFFF","#07C160")},dark:{backgroundColor:"#07C160",textColor:"#FFFFFF",borderColor:"#07C160",logoSvg:i("W","#FFFFFF","#07C160")}}},zip:{displayName:"Zip",currencies:["aud"],countries:["AU","NZ"]}};function Ut(e){return e?J.includes(e):!1}var ye=Object.entries(g).filter(([,e])=>e.express).map(([e])=>e),wt=new Set(ye),Ee=Object.fromEntries(Object.entries(g).map(([e,t])=>[e,t.currencies])),Ce=Object.fromEntries(Object.entries(g).filter(([,e])=>e.countries).map(([e,t])=>[e,t.countries]));function Gt(e){if(!e)return"this method";let t=g[e];return t?t.displayName:e.split("_").filter(Boolean).map(r=>r.charAt(0).toUpperCase()+r.slice(1)).join(" ")}function Kt(e){if(!e)return!0;let t=g[e];return t?t.needsExplicitConfirm!==!1:!0}function Vt(e,t){if(!e)return null;let r=g[e];return r?.theme?(typeof t=="string"&&t.endsWith("-dark")?r.theme.dark:r.theme.light)??r.theme.light??null:null}function Yt(e,t){if(!e?.length)return[];if(!t)return[...e];let r=t.trim().toLowerCase();return r?e.filter(o=>{let n=Ee[o];return n?n.includes("*")||n.includes(r):!0}):[...e]}function Ht(e,t){if(!e?.length)return[];if(!t)return[...e];let r=t.trim().toUpperCase();return r?e.filter(o=>{let n=Ce[o];return n?n.includes("*")||n.includes(r):!0}):[...e]}var Fe=Object.fromEntries(Object.entries(g).filter(([,e])=>e.amounts).map(([e,t])=>[e,t.amounts]));function zt(e,t,r){if(!e?.length)return[];if(!t||typeof r!="number"||!Number.isFinite(r))return[...e];let o=t.trim().toLowerCase();return o?e.filter(n=>{let s=Fe[n];if(!s)return!0;let d=s[o];return d?!(typeof d.min=="number"&&r<d.min||typeof d.max=="number"&&r>d.max):!0}):[...e]}function qt(e,t){if(!e?.length)return{expressMethods:[],paymentElementMethods:[]};let r=[],o=[],n=new Set,s=new Set;for(let d of e){if(typeof d!="string")continue;let p=d.trim();if(!(!p||p==="card")&&!(t?.excludePaypal&&p==="paypal"))if(wt.has(p)){if(n.has(p))continue;n.add(p),r.push(p)}else{if(s.has(p))continue;s.add(p),o.push(p)}}return{expressMethods:r,paymentElementMethods:o}}var Wt=["payment","address"],Zt=["visa","mastercard","mastercard_debit","amex","discover"],v={AT:{currency:"EUR",symbol:"\u20AC",country:"Austria",countryCode:"AT",tax:1},BE:{currency:"EUR",symbol:"\u20AC",country:"Belgium",countryCode:"BE",tax:1},CY:{currency:"EUR",symbol:"\u20AC",country:"Cyprus",countryCode:"CY",tax:1},DE:{currency:"EUR",symbol:"\u20AC",country:"Germany",countryCode:"DE",tax:1},EE:{currency:"EUR",symbol:"\u20AC",country:"Estonia",countryCode:"EE",tax:1},ES:{currency:"EUR",symbol:"\u20AC",country:"Spain",countryCode:"ES",tax:1},FI:{currency:"EUR",symbol:"\u20AC",country:"Finland",countryCode:"FI",tax:1},FR:{currency:"EUR",symbol:"\u20AC",country:"France",countryCode:"FR",tax:1},GR:{currency:"EUR",symbol:"\u20AC",country:"Greece",countryCode:"GR",tax:1},HR:{currency:"EUR",symbol:"\u20AC",country:"Croatia",countryCode:"HR",tax:1},IE:{currency:"EUR",symbol:"\u20AC",country:"Ireland",countryCode:"IE",tax:1},IT:{currency:"EUR",symbol:"\u20AC",country:"Italy",countryCode:"IT",tax:1},LT:{currency:"EUR",symbol:"\u20AC",country:"Lithuania",countryCode:"LT",tax:1},LU:{currency:"EUR",symbol:"\u20AC",country:"Luxembourg",countryCode:"LU",tax:1},LV:{currency:"EUR",symbol:"\u20AC",country:"Latvia",countryCode:"LV",tax:1},MT:{currency:"EUR",symbol:"\u20AC",country:"Malta",countryCode:"MT",tax:1},NL:{currency:"EUR",symbol:"\u20AC",country:"Netherlands",countryCode:"NL",tax:1},PT:{currency:"EUR",symbol:"\u20AC",country:"Portugal",countryCode:"PT",tax:1},SI:{currency:"EUR",symbol:"\u20AC",country:"Slovenia",countryCode:"SI",tax:1},SK:{currency:"EUR",symbol:"\u20AC",country:"Slovakia",countryCode:"SK",tax:1},BG:{currency:"EUR",symbol:"\u20AC",country:"Bulgaria",countryCode:"BG",tax:1},RO:{currency:"EUR",symbol:"\u20AC",country:"Romania",countryCode:"RO",tax:1},CZ:{currency:"EUR",symbol:"\u20AC",country:"Czech Republic",countryCode:"CZ",tax:1},SE:{currency:"EUR",symbol:"\u20AC",country:"Sweden",countryCode:"SE",tax:1},DK:{currency:"EUR",symbol:"\u20AC",country:"Denmark",countryCode:"DK",tax:1},PL:{currency:"EUR",symbol:"\u20AC",country:"Poland",countryCode:"PL",tax:1},HU:{currency:"EUR",symbol:"\u20AC",country:"Hungary",countryCode:"HU",tax:1},GB:{currency:"GBP",symbol:"\xA3",country:"United Kingdom",countryCode:"GB",tax:1},US:{currency:"USD",symbol:"$",country:"United States",countryCode:"US",tax:0},CA:{currency:"CAD",symbol:"CA$",country:"Canada",countryCode:"CA",tax:0},NZ:{currency:"NZD",symbol:"NZ$",country:"New Zealand",countryCode:"NZ",tax:0},AU:{currency:"AUD",symbol:"AU$",country:"Australia",countryCode:"AU",tax:0}},D={currency:"USD",symbol:"$",country:"United States",countryCode:"US",tax:0};function jt(e){switch(e.toUpperCase()){case"US":return"ZIP Code";case"GB":return"Postcode";case"CA":return"Postal Code";case"AU":case"NZ":return"Postcode";case"IE":return"Eircode";default:return"Postal Code"}}var Xt=new Intl.DisplayNames(["en"],{type:"region"});function $t(e){return[...e.toUpperCase()].map(t=>String.fromCodePoint(127397+t.charCodeAt(0))).join("")}var be=["US","GB","CA","AU","NZ","IE","DE","FR"],Jt=["AD","AE","AF","AG","AL","AM","AO","AR","AT","AU","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BN","BO","BR","BS","BT","BW","BY","BZ","CA","CD","CF","CG","CH","CI","CL","CM","CN","CO","CR","CU","CV","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","ER","ES","ET","FI","FJ","FM","FR","GA","GB","GD","GE","GH","GM","GN","GQ","GR","GT","GW","GY","HN","HR","HT","HU","ID","IE","IL","IN","IQ","IR","IS","IT","JM","JO","JP","KE","KG","KH","KI","KM","KN","KR","KW","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MG","MH","MK","ML","MM","MN","MR","MT","MU","MV","MW","MX","MY","MZ","NA","NE","NG","NI","NL","NO","NP","NR","NZ","OM","PA","PE","PG","PH","PK","PL","PT","PW","PY","QA","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SI","SK","SL","SM","SN","SO","SR","SS","ST","SV","SY","SZ","TD","TG","TH","TJ","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","UZ","VA","VC","VE","VN","VU","WS","XK","YE","ZA","ZM","ZW"];function ee(e){return{code:e,name:Xt.of(e)??e,flag:$t(e)}}var Qt=new Set(be),er=Jt.filter(e=>!Qt.has(e)),fe=[...be.map(ee),...er.map(ee)];function tr(e){return fe.find(t=>t.code===e)}var rr={country:!0,postal_code:!0};function xe(e){return e?e===!0?rr:e:null}function or(e,t){if(e===void 0||e===!1)return!1;if(e===!0)return!0;let r=t.trim().toUpperCase();return e.some(o=>o.trim().toUpperCase()===r)}function nr(e){let t=xe(e);return t?Object.values(t).some(r=>r===!0||Array.isArray(r)&&r.length>0):!1}var Te=[{code:"AL",name:"Alabama"},{code:"AK",name:"Alaska"},{code:"AZ",name:"Arizona"},{code:"AR",name:"Arkansas"},{code:"CA",name:"California"},{code:"CO",name:"Colorado"},{code:"CT",name:"Connecticut"},{code:"DE",name:"Delaware"},{code:"DC",name:"District of Columbia"},{code:"FL",name:"Florida"},{code:"GA",name:"Georgia"},{code:"HI",name:"Hawaii"},{code:"ID",name:"Idaho"},{code:"IL",name:"Illinois"},{code:"IN",name:"Indiana"},{code:"IA",name:"Iowa"},{code:"KS",name:"Kansas"},{code:"KY",name:"Kentucky"},{code:"LA",name:"Louisiana"},{code:"ME",name:"Maine"},{code:"MD",name:"Maryland"},{code:"MA",name:"Massachusetts"},{code:"MI",name:"Michigan"},{code:"MN",name:"Minnesota"},{code:"MS",name:"Mississippi"},{code:"MO",name:"Missouri"},{code:"MT",name:"Montana"},{code:"NE",name:"Nebraska"},{code:"NV",name:"Nevada"},{code:"NH",name:"New Hampshire"},{code:"NJ",name:"New Jersey"},{code:"NM",name:"New Mexico"},{code:"NY",name:"New York"},{code:"NC",name:"North Carolina"},{code:"ND",name:"North Dakota"},{code:"OH",name:"Ohio"},{code:"OK",name:"Oklahoma"},{code:"OR",name:"Oregon"},{code:"PA",name:"Pennsylvania"},{code:"RI",name:"Rhode Island"},{code:"SC",name:"South Carolina"},{code:"SD",name:"South Dakota"},{code:"TN",name:"Tennessee"},{code:"TX",name:"Texas"},{code:"UT",name:"Utah"},{code:"VT",name:"Vermont"},{code:"VA",name:"Virginia"},{code:"WA",name:"Washington"},{code:"WV",name:"West Virginia"},{code:"WI",name:"Wisconsin"},{code:"WY",name:"Wyoming"}],Se=[{code:"AB",name:"Alberta"},{code:"BC",name:"British Columbia"},{code:"MB",name:"Manitoba"},{code:"NB",name:"New Brunswick"},{code:"NL",name:"Newfoundland and Labrador"},{code:"NS",name:"Nova Scotia"},{code:"NT",name:"Northwest Territories"},{code:"NU",name:"Nunavut"},{code:"ON",name:"Ontario"},{code:"PE",name:"Prince Edward Island"},{code:"QC",name:"Quebec"},{code:"SK",name:"Saskatchewan"},{code:"YT",name:"Yukon"}];function ar(e){switch(e.toUpperCase()){case"US":return Te;case"CA":return Se;default:return null}}function ir(e){switch(e.toUpperCase()){case"US":return"State";case"CA":return"Province";case"GB":return"County";case"AU":return"State / Territory";default:return"State / Province / Region"}}var sr=[[5,5,"NY"],[10,27,"MA"],[28,29,"RI"],[30,38,"NH"],[39,49,"ME"],[50,59,"VT"],[60,69,"CT"],[70,89,"NJ"],[100,149,"NY"],[150,196,"PA"],[197,199,"DE"],[200,205,"DC"],[206,219,"MD"],[220,246,"VA"],[247,268,"WV"],[270,289,"NC"],[290,299,"SC"],[300,319,"GA"],[320,349,"FL"],[350,369,"AL"],[370,385,"TN"],[386,397,"MS"],[398,399,"GA"],[400,427,"KY"],[430,459,"OH"],[460,479,"IN"],[480,499,"MI"],[500,528,"IA"],[530,549,"WI"],[550,567,"MN"],[570,577,"SD"],[580,588,"ND"],[590,599,"MT"],[600,629,"IL"],[630,658,"MO"],[660,679,"KS"],[680,693,"NE"],[700,714,"LA"],[716,729,"AR"],[730,749,"OK"],[750,799,"TX"],[800,816,"CO"],[820,831,"WY"],[832,838,"ID"],[840,847,"UT"],[850,865,"AZ"],[870,884,"NM"],[889,898,"NV"],[900,961,"CA"],[967,968,"HI"],[970,979,"OR"],[980,994,"WA"],[995,999,"AK"]],cr={A:"NL",B:"NS",C:"PE",E:"NB",G:"QC",H:"QC",J:"QC",K:"ON",L:"ON",M:"ON",N:"ON",P:"ON",R:"MB",S:"SK",T:"AB",V:"BC",X:"NT",Y:"YT"};function dr(e){let t=e.replace(/\D/g,"");if(t.length<5)return null;let r=Number.parseInt(t.slice(0,3),10);if(!Number.isFinite(r))return null;for(let[o,n,s]of sr)if(r>=o&&r<=n)return s;return null}function ur(e){let t=e.replace(/\s+/g,"").toUpperCase();if(!/^[A-Z]\d[A-Z]\d[A-Z]\d$/.test(t))return null;let r=t[0]??"";return cr[r]??null}function lr(e,t){if(!e||!t)return null;let r=e.trim().toUpperCase(),o=t.trim();if(!o)return null;switch(r){case"US":return dr(o);case"CA":return ur(o);default:return null}}import*as pr from"validator/lib/isPostalCode.js";var T=pr,Ae=typeof T.default=="function"?T.default:T.default?.default;if(typeof Ae!="function")throw new Error("validator/lib/isPostalCode.js interop failed: unexpected module shape. This likely means the bundler's CJS/ESM interop changed.");var he=new Set(T.locales.map(e=>e.toUpperCase())),mr={AUSTRALIA:"AU",BRAZIL:"BR",CANADA:"CA",CH:"CH",DENMARK:"DK",DE:"DE",DEUTSCHLAND:"DE",FRANCE:"FR",GB:"GB",GERMANY:"DE",GREATBRITAIN:"GB",GREAT_BRITAIN:"GB",INDIA:"IN",IRELAND:"IE",ITALY:"IT",JAPAN:"JP",MEXICO:"MX",NETHERLANDS:"NL",NEWZEALAND:"NZ",NORWAY:"NO",POLAND:"PL",PORTUGAL:"PT",SINGAPORE:"SG",SOUTHAFRICA:"ZA",SPAIN:"ES",SWEDEN:"SE",SWITZERLAND:"CH",UK:"GB",UNITEDKINGDOM:"GB",UNITEDSTATES:"US",US:"US",USA:"US","UNITED STATES":"US","UNITED KINGDOM":"GB","GREAT BRITAIN":"GB",ENGLAND:"GB"};function L(e){let t=(e??"").trim().toUpperCase();return t?t.length===2?t:mr[t]??null:null}var gr={AU:"2000",BR:"01000-000",CA:"A1A 1A1",CH:"8001",DE:"10115",DK:"1050",ES:"28001",FR:"75008",GB:"SW1A 1AA",IE:"D02 X285",IN:"110001",IT:"00118",JP:"100-0001",MX:"06500",NL:"1012 JS",NO:"0150",NZ:"6011",PL:"00-001",PT:"1100-148",SE:"111 22",SG:"018989",US:"12345 or 12345-6789",ZA:"8001"};function yr(e){let t=L(e);return t!==null&&he.has(t)}function Er(e,t){let r=(t??"").trim();if(!r)return!0;let o=L(e);if(o===null||!he.has(o))return!0;try{return Ae(r,o)}catch{return!0}}function Cr(e){let t=L(e);return t?gr[t]:void 0}function Fr(e){return e.deferDataAttachment!==!1&&(e.checkoutMode??"full")==="full"&&!e.tokenizedData}function a(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function M(e,t,r,o){let n=a(e);if(n)return n;for(let s of t??[]){let d=a(s.currency);if(d)return d}for(let s of r??[]){let d=a(s.currency);if(d)return d}for(let s of o??[]){let d=a(s.currency);if(d)return d}return null}function br(e,t){let r=[];for(let o of t??[])r.push({type:"subscription",code:a(o.code)??a(o.providerPlanId),providerPlanId:o.providerPlanId,name:a(o.subscriptionName)??a(o.providerPlanName)??null,subscriptionName:o.subscriptionName??null,providerPlanName:o.providerPlanName??null,quantity:o.quantity,totalAmount:o.totalAmount,overrideAmount:o.overrideAmount,currency:o.currency,metadata:o.metadata});for(let o of e??[])r.push({type:"item",code:a(o.code)??a(o.providerItemId),providerItemId:o.providerItemId,name:a(o.itemName)??a(o.providerItemName)??null,itemName:o.itemName??null,providerItemName:o.providerItemName??null,quantity:o.quantity,totalAmount:o.totalAmount,overrideAmount:o.overrideAmount,currency:o.currency,metadata:o.metadata});return r}function fr(e,t){let r=a(e.code)??a(e.providerItemId)??a(e.providerPlanId);if(!r)throw new Error("CheckoutProduct requires `code` (or the deprecated `providerItemId` / `providerPlanId`).");let o=a(e.name)??a(e.itemName)??a(e.providerItemName)??a(e.subscriptionName)??a(e.providerPlanName)??null,n={type:e.type,code:r,name:o,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(n.metadata=e.metadata),n}function xr(e,t){let r=a(e.code)??a(e.providerItemId);if(!r)throw new Error("CheckoutItem requires either `code` or the deprecated `providerItemId`.");let o=a(e.itemName)??a(e.providerItemName)??null,n={code:r,providerItemId:a(e.providerItemId)??r,itemName:o,providerItemName:a(e.providerItemName)??o,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(n.metadata=e.metadata),n}function Tr(e,t){let r=a(e.code)??a(e.providerPlanId);if(!r)throw new Error("CheckoutSubscription requires either `code` or the deprecated `providerPlanId`.");let o=a(e.subscriptionName)??a(e.providerPlanName)??null,n={code:r,providerPlanId:a(e.providerPlanId)??r,subscriptionName:o,providerPlanName:a(e.providerPlanName)??o,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(n.metadata=e.metadata),n}function Sr(e,t={}){let r=[],o=e.products??[],n=o.filter(c=>c.type==="subscription"),s=o.filter(c=>c.type!=="subscription"),p=(M(e.currency,void 0,void 0,o)??"USD").toUpperCase();for(let c of n){let m=c.totalAmount??0,C=c.overrideAmount??m,S=c.name||c.code||"Subscription";S==="4-WEEK PLAN"&&C<=1&&(S="7-DAY TRIAL: FULL ACCESS"),r.push({name:S,quantity:c.quantity,price:C,originalPrice:m})}if(!(t.hideBundledItems===!0&&n.length>0&&s.length>0))for(let c of s){let m=c.totalAmount??0,C=c.overrideAmount??m;r.push({name:c.name||c.code||"Item",quantity:c.quantity,price:C,originalPrice:m})}r.length===0&&r.push({name:"Purchase",quantity:1,price:e.amount/100,originalPrice:e.amount/100});let Re=r.reduce((c,m)=>c+m.originalPrice*m.quantity,0),_e=r.reduce((c,m)=>c+m.price*m.quantity,0),Pe=typeof e.totalAmount=="number"&&Number.isFinite(e.totalAmount),ke=typeof e.subtotalAmount=="number"&&Number.isFinite(e.subtotalAmount),Be=typeof e.discountAmount=="number"&&Number.isFinite(e.discountAmount),w=Pe?e.totalAmount:_e,E=ke?e.subtotalAmount:Re,G=Math.max(0,E-w),Ne=E>0?Math.round(G/E*100):0;return{items:r,currency:p,total:w,originalTotal:E,totalSave:G,discountPercent:Ne,...Be?{couponDiscount:e.discountAmount}:{}}}function Ar(e){return v[e.toUpperCase()]??D}function hr(e){return/^pk_(test|live)_[A-Za-z0-9]+$/.test(e)}function Ir(e){return/^sk_(test|live)_[A-Za-z0-9]+$/.test(e)}function Rr(e){return typeof e=="string"&&e.startsWith("seti_")}var _r="Idempotency-Key",O=255,Pr="IdempotencyKeyInProgress";function kr(){let e=globalThis.crypto;if(e&&(typeof e.randomUUID=="function"||typeof e.getRandomValues=="function"))return e}function Ie(){let e=kr();if(!e)return;if(typeof e.randomUUID=="function")return e.randomUUID();let t=new Uint8Array(16);return e.getRandomValues(t),Array.from(t,r=>r.toString(16).padStart(2,"0")).join("")}function Br(e){if(e===void 0)return Ie();if(typeof e!="string"||e.trim()==="")throw new u("idempotencyKey must be a non-empty string identifying exactly one checkout creation.","validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});if(e.length>O)throw new u(`idempotencyKey must be at most ${O} characters.`,"validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});return e}var U=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function Nr(e){return typeof e=="string"&&U.test(e)}function vr(){try{let r=globalThis.crypto.randomUUID();if(U.test(r))return r}catch{}let e=new Uint8Array(16);try{globalThis.crypto.getRandomValues(e)}catch{for(let r=0;r<e.length;r+=1)e[r]=Math.floor(Math.random()*256)}e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}export{Pt as BILLING_API_URL,te as BILLING_API_URL_PRODUCTION,x as BILLING_API_URL_STAGING,ie as BOLD_DARK_APPEARANCE,ae as BOLD_LIGHT_APPEARANCE,k as BUTTONS_LAYOUT_BOLD_DARK,P as BUTTONS_LAYOUT_BOLD_LIGHT,pe as BUTTONS_LAYOUT_DARK,de as BUTTONS_LAYOUT_DEFAULT,N as BUTTONS_LAYOUT_GLASS_DARK,B as BUTTONS_LAYOUT_GLASS_LIGHT,ue as BUTTONS_LAYOUT_MINIMAL,_ as BUTTONS_LAYOUT_MODERN_DARK,R as BUTTONS_LAYOUT_MODERN_LIGHT,le as BUTTONS_LAYOUT_ROUNDED,Se as CA_PROVINCES,fe as COUNTRY_OPTIONS,v as CURRENCY_MAP,_t as DEFAULT_API_BASE_URL,Bt as DEFAULT_API_VERSION,re as DEFAULT_APPEARANCE,D as DEFAULT_CURRENCY,Wt as ELEMENT_TYPES,Nt as FLAT_APPEARANCE,Rt as FLO_SDK_VERSION_HEADER,u as FloPayError,ce as GLASS_DARK_APPEARANCE,se as GLASS_LIGHT_APPEARANCE,Pr as IDEMPOTENCY_IN_PROGRESS_CODE,_r as IDEMPOTENCY_KEY_HEADER,O as MAX_IDEMPOTENCY_KEY_LENGTH,ne as MODERN_DARK_APPEARANCE,oe as MODERN_LIGHT_APPEARANCE,vt as NIGHT_APPEARANCE,It as SDK_VERSION,ye as STRIPE_EXPRESS_METHODS,Fe as STRIPE_METHOD_AMOUNT_LIMITS,Ce as STRIPE_METHOD_COUNTRIES,Ee as STRIPE_METHOD_CURRENCIES,g as STRIPE_METHOD_MATRIX,Zt as SUPPORTED_CARD_BRANDS,Y as TELEMETRY_ERROR_CODES,H as TELEMETRY_FAILURE_CATEGORIES,z as TELEMETRY_LOG_NAMES,qe as TELEMETRY_MAX_BATCH_BYTES,We as TELEMETRY_MAX_BATCH_EVENTS,ze as TELEMETRY_SCHEMA_VERSION,V as TELEMETRY_SDK_PACKAGES,me as THEMES,Te as US_STATES,U as UUID_V4,Le as apiError,Me as authenticationError,Sr as buildCheckoutDisplayData,xr as buildItemPayload,fr as buildProductPayload,Tr as buildSubscriptionPayload,Z as buildTelemetryErrorEvent,j as buildTelemetryLogEvent,$ as buildTelemetryPerformanceEvent,X as buildTelemetryTerminalEvent,Tt as classifyTelemetryFailure,At as configureFlopay,He as dropThirdPartyOnlyError,zt as filterStripeMethodsByAmount,Ht as filterStripeMethodsByCountry,Yt as filterStripeMethodsByCurrency,br as foldIntoProducts,Ie as generateIdempotencyKey,I as getConfiguredBillingApiUrl,tr as getCountryByCode,Ar as getCurrencyByCountry,ht as getFloPayEnvironment,Cr as getPostalCodeExample,jt as getPostalCodeLabel,lr as getStateFromPostalCode,ir as getStateLabel,ar as getStateOptions,Gt as getStripeMethodDisplayName,Ut as hasVendoredStripeMethodLogo,nr as isAVSEnabled,or as isAVSFieldVisible,Fr as isDetachedSessionEligible,yr as isPostalCodeSupported,Rr as isSetupIntentClientSecret,Nr as isUuidV4,Er as isValidPostalCode,hr as isValidPublishableKey,Ir as isValidSecretKey,Kt as needsStripeMethodExplicitConfirm,Ue as networkError,ve as normalizeGatewayEnvironment,qt as partitionStripeMethods,vr as randomUuidV4,Oe as rateLimitError,xe as resolveAVSConfig,kt as resolveBillingApiUrl,Dt as resolveButtonsLayoutTheme,Br as resolveIdempotencyKey,M as resolveSessionCurrency,Vt as resolveStripeMethodBrandVariant,Lt as resolveTheme,ft as serializeTelemetryBatch,Mt as stripeExpressMethodToOptionKey,A as telemetryStatusClass,De as validationError};
|