@rechargeapps/storefront-client 1.70.1 → 1.70.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/api/auth.js +1 -1
- package/dist/cjs/api/bundleData.js +1 -1
- package/dist/cjs/api/paymentMethodForm.js +4 -4
- package/dist/cjs/api/paymentMethodForm.js.map +1 -1
- package/dist/cjs/utils/request.js +1 -1
- package/dist/esm/api/auth.js +1 -1
- package/dist/esm/api/bundleData.js +1 -1
- package/dist/esm/api/paymentMethodForm.js +4 -4
- package/dist/esm/api/paymentMethodForm.js.map +1 -1
- package/dist/esm/utils/request.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/umd/recharge-client.min.js +10 -10
- package/package.json +1 -1
package/dist/cjs/api/auth.js
CHANGED
|
@@ -181,7 +181,7 @@ async function rechargeAdminRequest(method, url, { id, query, data, headers } =
|
|
|
181
181
|
...storefrontAccessToken ? { "X-Recharge-Storefront-Access-Token": storefrontAccessToken } : {},
|
|
182
182
|
...appName ? { "X-Recharge-Sdk-App-Name": appName } : {},
|
|
183
183
|
...appVersion ? { "X-Recharge-Sdk-App-Version": appVersion } : {},
|
|
184
|
-
"X-Recharge-Sdk-Version": "1.70.
|
|
184
|
+
"X-Recharge-Sdk-Version": "1.70.2",
|
|
185
185
|
...headers ? headers : {}
|
|
186
186
|
};
|
|
187
187
|
return request.request(method, `${rechargeBaseUrl}${url}`, { id, query, data, headers: reqHeaders });
|
|
@@ -15,7 +15,7 @@ async function loadFromOnlineStore(id, country_code) {
|
|
|
15
15
|
const { appName, appVersion } = options.getOptions();
|
|
16
16
|
const headers = {
|
|
17
17
|
"X-Recharge-Sdk-Fn": "loadFromOnlineStore",
|
|
18
|
-
"X-Recharge-Sdk-Version": "1.70.
|
|
18
|
+
"X-Recharge-Sdk-Version": "1.70.2",
|
|
19
19
|
...appName ? { "X-Recharge-Sdk-App-Name": appName } : {},
|
|
20
20
|
...appVersion ? { "X-Recharge-Sdk-App-Version": appVersion } : {}
|
|
21
21
|
};
|
|
@@ -4,8 +4,8 @@ var request = require('../utils/request.js');
|
|
|
4
4
|
var paymentMethod = require('./paymentMethod.js');
|
|
5
5
|
|
|
6
6
|
async function loadScript(scriptSrc, integrity) {
|
|
7
|
-
if (typeof window !== "undefined" && window.Spreedly
|
|
8
|
-
return;
|
|
7
|
+
if (typeof window !== "undefined" && window.Spreedly) {
|
|
8
|
+
return Promise.resolve();
|
|
9
9
|
}
|
|
10
10
|
return new Promise((resolve, reject) => {
|
|
11
11
|
if (typeof document === "undefined") {
|
|
@@ -15,10 +15,10 @@ async function loadScript(scriptSrc, integrity) {
|
|
|
15
15
|
const existingScript = document.querySelector(`script[src="${scriptSrc}"]`);
|
|
16
16
|
if (existingScript) {
|
|
17
17
|
const checkLoaded = () => {
|
|
18
|
-
if (window.Spreedly
|
|
18
|
+
if (window.Spreedly) {
|
|
19
19
|
resolve();
|
|
20
20
|
} else {
|
|
21
|
-
setTimeout(checkLoaded,
|
|
21
|
+
setTimeout(checkLoaded, 50);
|
|
22
22
|
}
|
|
23
23
|
};
|
|
24
24
|
checkLoaded();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paymentMethodForm.js","sources":["../../../src/api/paymentMethodForm.ts"],"sourcesContent":["import {\n CardDetailsFirstNameLastName,\n CardDetailsFullName,\n IsoDateString,\n PaymentFormConfig,\n PaymentFormController,\n PaymentFormEventHandlers,\n PaymentMethod,\n PaymentMethodFormOptions,\n Session,\n} from '../types';\nimport { getInternalSession, rechargeApiRequest } from '../utils/request';\nimport { createPaymentMethod } from './paymentMethod';\n\nasync function loadScript(scriptSrc: string, integrity: string): Promise<void> {\n // Check if already loaded\n if (typeof window !== 'undefined' && window.Spreedly && (window.Spreedly as any).isLoaded()) {\n return;\n }\n\n return new Promise((resolve, reject) => {\n if (typeof document === 'undefined') {\n reject(new Error('Document is not available. This function must be called in a browser environment.'));\n return;\n }\n\n // Check if script is already in the DOM\n const existingScript = document.querySelector(`script[src=\"${scriptSrc}\"]`);\n if (existingScript) {\n // Wait for it to load\n const checkLoaded = () => {\n if (window.Spreedly && (window.Spreedly as any).isLoaded()) {\n resolve();\n } else {\n setTimeout(checkLoaded, 100);\n }\n };\n checkLoaded();\n return;\n }\n\n const script = document.createElement('script');\n script.src = scriptSrc;\n script.integrity = integrity;\n script.crossOrigin = 'anonymous';\n\n script.addEventListener('load', () => {\n // Wait for payment script to be fully initialized\n const checkLoaded = () => {\n if (window.Spreedly) {\n resolve();\n } else {\n setTimeout(checkLoaded, 50);\n }\n };\n checkLoaded();\n });\n\n script.addEventListener('error', () => {\n reject(new Error('Failed to load payment iFrame script'));\n });\n\n document.head.appendChild(script);\n });\n}\n\n/** @internal */\nexport async function createPaymentFormV1(\n session: Session,\n rechargePaymentMethodId?: string\n): Promise<PaymentFormController> {\n // Initialize and get environment key\n const initResponse = await initPaymentFormV1(session, rechargePaymentMethodId);\n\n const environmentKey = initResponse.external.environment_key;\n const paymentMethodIntentId = initResponse.payment_method_intent_id;\n const externalCustomerId = initResponse.external_customer_id.ecommerce;\n const resourceUrl = initResponse.external.resource_url;\n const integrityHash = initResponse.external.integrity_hash;\n const externalPaymentMethodId = initResponse.payment_method?.processor_payment_method_token;\n\n // Load script\n await loadScript(resourceUrl, integrityHash);\n\n let isInitialized = false;\n let currentToken: string | null = null;\n let tokenCallback: ((token: string) => void) | null = null;\n let pendingSubmitOptions: PaymentMethodFormOptions | null = null;\n\n const controller: PaymentFormController = {\n mount(config: PaymentFormConfig, handlers?: PaymentFormEventHandlers): void {\n if (typeof window === 'undefined' || !window.Spreedly) {\n throw new Error('Payment script failed to load');\n }\n\n // Initialize Spreedly with element IDs\n window.Spreedly!.init(environmentKey, {\n numberEl: config.numberElementId,\n cvvEl: config.cvvElementId,\n });\n\n // Set up ready handler\n window.Spreedly!.on('ready', () => {\n isInitialized = true;\n\n // Apply styles\n if (config.styles) {\n window.Spreedly!.setStyle('number', config.styles);\n window.Spreedly!.setStyle('cvv', config.styles);\n }\n\n // Apply labels\n if (config.numberLabel) {\n window.Spreedly!.setLabel('number', config.numberLabel);\n }\n if (config.cvvLabel) {\n window.Spreedly!.setLabel('cvv', config.cvvLabel);\n }\n\n // Apply placeholders\n if (config.numberPlaceholder) {\n window.Spreedly!.setPlaceholder('number', config.numberPlaceholder);\n }\n if (config.cvvPlaceholder) {\n window.Spreedly!.setPlaceholder('cvv', config.cvvPlaceholder);\n }\n\n // Apply number format\n if (config.numberFormat === 'plainFormat') {\n // Apply field types\n if (config.numberFieldType) {\n window.Spreedly!.setFieldType('number', config.numberFieldType);\n }\n if (config.cvvFieldType) {\n window.Spreedly!.setFieldType('cvv', config.cvvFieldType);\n }\n // @ts-expect-error - SpreedlyNumberFormat doesn't match\n window.Spreedly!.setNumberFormat('plainFormat');\n } else if (config.numberFormat === 'maskedFormat') {\n window.Spreedly!.setFieldType('cvv', 'text');\n window.Spreedly!.setFieldType('number', 'text');\n window.Spreedly!.setNumberFormat('maskedFormat');\n } else if (config.numberFormat === 'prettyFormat') {\n // Apply field types\n if (config.numberFieldType === 'text' || config.numberFieldType === 'tel') {\n window.Spreedly!.setFieldType('number', config.numberFieldType);\n } else {\n window.Spreedly!.setFieldType('number', 'tel');\n }\n if (config.cvvFieldType === 'text' || config.cvvFieldType === 'tel') {\n window.Spreedly!.setFieldType('cvv', config.cvvFieldType);\n } else {\n window.Spreedly!.setFieldType('cvv', 'tel');\n }\n window.Spreedly!.setNumberFormat('prettyFormat');\n } else {\n // Apply field types\n if (config.numberFieldType) {\n window.Spreedly!.setFieldType('number', config.numberFieldType);\n }\n if (config.cvvFieldType) {\n window.Spreedly!.setFieldType('cvv', config.cvvFieldType);\n }\n }\n\n handlers?.onReady?.();\n });\n\n // Set up field event handler\n window.Spreedly!.on('fieldEvent', (name, eventType, activeElement, inputProperties) => {\n handlers?.onFieldEvent?.(name, eventType, activeElement, inputProperties);\n });\n\n // Set up error handler\n window.Spreedly!.on('errors', errors => {\n handlers?.onErrors?.(errors);\n });\n\n // Set up payment method handler\n window.Spreedly!.on('paymentMethod', (token, paymentMethod) => {\n currentToken = token;\n\n handlers?.onPaymentMethod?.(token, paymentMethod);\n\n // If there's a pending submit, execute it\n if (tokenCallback) {\n tokenCallback(token);\n tokenCallback = null;\n }\n });\n },\n\n tokenize(cardDetails: CardDetailsFirstNameLastName | CardDetailsFullName): void {\n if (!isInitialized || !window.Spreedly) {\n throw new Error('Payment form is not initialized');\n }\n\n // Normalize year to YYYY format\n let year = String(cardDetails.year);\n if (year.length === 2) {\n year = `20${year}`;\n }\n const month = String(cardDetails.month).padStart(2, '0');\n\n if ('full_name' in cardDetails) {\n window.Spreedly.tokenizeCreditCard({\n full_name: cardDetails.full_name,\n month,\n year,\n });\n } else {\n window.Spreedly.tokenizeCreditCard({\n first_name: cardDetails.first_name,\n last_name: cardDetails.last_name,\n month,\n year,\n });\n }\n },\n\n async submit(options: PaymentMethodFormOptions): Promise<PaymentMethod> {\n if (!isInitialized) {\n throw new Error('Payment form is not initialized');\n }\n\n // Check if we already have a token\n if (currentToken) {\n const token = currentToken;\n currentToken = null; // Clear the token after use\n return submitPaymentMethodV1(session, token, options, {\n external_payment_method_id: externalPaymentMethodId,\n payment_method_intent_id: paymentMethodIntentId,\n external_customer_id: externalCustomerId,\n });\n }\n\n // Need to tokenize first, then submit\n return new Promise(resolve => {\n pendingSubmitOptions = options;\n\n tokenCallback = async (token: string) => {\n const result = await submitPaymentMethodV1(session, token, pendingSubmitOptions!, {\n external_payment_method_id: externalPaymentMethodId,\n payment_method_intent_id: paymentMethodIntentId,\n external_customer_id: externalCustomerId,\n });\n pendingSubmitOptions = null;\n resolve(result);\n };\n\n // Trigger tokenization\n this.tokenize(options.card_details);\n });\n },\n\n reset(): void {\n if (window.Spreedly) {\n window.Spreedly.reload();\n }\n currentToken = null;\n tokenCallback = null;\n pendingSubmitOptions = null;\n },\n\n unmount(): void {\n if (window.Spreedly) {\n window.Spreedly.removeHandlers();\n }\n isInitialized = false;\n currentToken = null;\n tokenCallback = null;\n pendingSubmitOptions = null;\n },\n\n addEventHandlers(handlers: PaymentFormEventHandlers): void {\n if (handlers.onReady) {\n window.Spreedly!.on('ready', handlers.onReady);\n }\n if (handlers.onFieldEvent) {\n window.Spreedly!.on('fieldEvent', handlers.onFieldEvent);\n }\n if (handlers.onErrors) {\n window.Spreedly!.on('errors', handlers.onErrors);\n }\n if (handlers.onPaymentMethod) {\n window.Spreedly!.on('paymentMethod', handlers.onPaymentMethod);\n }\n },\n\n removeHandlers(): void {\n if (window.Spreedly) {\n window.Spreedly.removeHandlers();\n }\n },\n\n setFieldType(name: spreedly.SpreedlyField, type: spreedly.SpreedlyFieldType): void {\n window.Spreedly!.setFieldType(name, type);\n },\n\n setLabel(name: spreedly.SpreedlyField, label: string): void {\n window.Spreedly!.setLabel(name, label);\n },\n\n setNumberFormat(format: 'plainFormat' | 'prettyFormat' | 'maskedFormat'): void {\n // @ts-expect-error - SpreedlyNumberFormat doesn't match allowed values\n window.Spreedly!.setNumberFormat(format);\n },\n\n setPlaceholder(name: spreedly.SpreedlyField, placeholder: string): void {\n window.Spreedly!.setPlaceholder(name, placeholder);\n },\n\n setStyle(name: spreedly.SpreedlyField, style: string): void {\n window.Spreedly!.setStyle(name, style);\n },\n };\n\n return controller;\n}\n\n// defined here since this is only for internal use\ninterface PaymentMethodIntentResponse {\n payment_method_intent_id: string;\n customer_id: number;\n external_customer_id: {\n ecommerce: number;\n };\n external: {\n environment_key: string;\n resource_url: string;\n integrity_hash: string;\n };\n created_at: IsoDateString;\n expires_at: IsoDateString;\n payment_method?: PaymentMethod;\n}\n\nasync function initPaymentFormV1(\n session: Session,\n rechargePaymentMethodId?: string\n): Promise<PaymentMethodIntentResponse> {\n const id = session.customerId;\n if (!id) {\n throw new Error('Not logged in.');\n }\n const response = await rechargeApiRequest<PaymentMethodIntentResponse>(\n 'post',\n '/payment_method_intents',\n { data: { customer_id: id, payment_method_id: rechargePaymentMethodId } },\n getInternalSession(session, 'initPaymentForm')\n );\n return response;\n}\n\n// defined here since this is only for internal use\ninterface PaymentMethodV1Request {\n /** ID of the payment method to update */\n external_payment_method_id?: string;\n payment_method_intent_id: string;\n external_customer_id: number;\n}\n\nasync function submitPaymentMethodV1(\n session: Session,\n token: string,\n { billing_address, default_payment_method, address_ids }: PaymentMethodFormOptions,\n { external_payment_method_id, payment_method_intent_id, external_customer_id }: PaymentMethodV1Request\n): Promise<PaymentMethod> {\n const paymentMethod = await createPaymentMethod(getInternalSession(session, 'submitPaymentMethodV1'), {\n default: default_payment_method ?? false,\n payment_type: 'CREDIT_CARD',\n processor_customer_token: external_customer_id.toString(),\n processor_name: 'frictionless',\n processor_payment_method_token: token,\n billing_address,\n payment_method_intent_id,\n address_ids,\n external_payment_method_id,\n });\n return paymentMethod;\n}\n"],"names":["rechargeApiRequest","getInternalSession","paymentMethod","createPaymentMethod"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"paymentMethodForm.js","sources":["../../../src/api/paymentMethodForm.ts"],"sourcesContent":["import {\n CardDetailsFirstNameLastName,\n CardDetailsFullName,\n IsoDateString,\n PaymentFormConfig,\n PaymentFormController,\n PaymentFormEventHandlers,\n PaymentMethod,\n PaymentMethodFormOptions,\n Session,\n} from '../types';\nimport { getInternalSession, rechargeApiRequest } from '../utils/request';\nimport { createPaymentMethod } from './paymentMethod';\n\nasync function loadScript(scriptSrc: string, integrity: string): Promise<void> {\n // Check if already loaded\n if (typeof window !== 'undefined' && window.Spreedly) {\n return Promise.resolve();\n }\n\n return new Promise((resolve, reject) => {\n if (typeof document === 'undefined') {\n reject(new Error('Document is not available. This function must be called in a browser environment.'));\n return;\n }\n\n // Check if script is already in the DOM\n const existingScript = document.querySelector(`script[src=\"${scriptSrc}\"]`);\n if (existingScript) {\n // Wait for it to load\n const checkLoaded = () => {\n if (window.Spreedly) {\n resolve();\n } else {\n setTimeout(checkLoaded, 50);\n }\n };\n checkLoaded();\n return;\n }\n\n const script = document.createElement('script');\n script.src = scriptSrc;\n script.integrity = integrity;\n script.crossOrigin = 'anonymous';\n\n script.addEventListener('load', () => {\n // Wait for payment script to be fully initialized\n const checkLoaded = () => {\n if (window.Spreedly) {\n resolve();\n } else {\n setTimeout(checkLoaded, 50);\n }\n };\n checkLoaded();\n });\n\n script.addEventListener('error', () => {\n reject(new Error('Failed to load payment iFrame script'));\n });\n\n document.head.appendChild(script);\n });\n}\n\n/** @internal */\nexport async function createPaymentFormV1(\n session: Session,\n rechargePaymentMethodId?: string\n): Promise<PaymentFormController> {\n // Initialize and get environment key\n const initResponse = await initPaymentFormV1(session, rechargePaymentMethodId);\n\n const environmentKey = initResponse.external.environment_key;\n const paymentMethodIntentId = initResponse.payment_method_intent_id;\n const externalCustomerId = initResponse.external_customer_id.ecommerce;\n const resourceUrl = initResponse.external.resource_url;\n const integrityHash = initResponse.external.integrity_hash;\n const externalPaymentMethodId = initResponse.payment_method?.processor_payment_method_token;\n\n // Load script\n await loadScript(resourceUrl, integrityHash);\n\n let isInitialized = false;\n let currentToken: string | null = null;\n let tokenCallback: ((token: string) => void) | null = null;\n let pendingSubmitOptions: PaymentMethodFormOptions | null = null;\n\n const controller: PaymentFormController = {\n mount(config: PaymentFormConfig, handlers?: PaymentFormEventHandlers): void {\n if (typeof window === 'undefined' || !window.Spreedly) {\n throw new Error('Payment script failed to load');\n }\n\n // Initialize Spreedly with element IDs\n window.Spreedly!.init(environmentKey, {\n numberEl: config.numberElementId,\n cvvEl: config.cvvElementId,\n });\n\n // Set up ready handler\n window.Spreedly!.on('ready', () => {\n isInitialized = true;\n\n // Apply styles\n if (config.styles) {\n window.Spreedly!.setStyle('number', config.styles);\n window.Spreedly!.setStyle('cvv', config.styles);\n }\n\n // Apply labels\n if (config.numberLabel) {\n window.Spreedly!.setLabel('number', config.numberLabel);\n }\n if (config.cvvLabel) {\n window.Spreedly!.setLabel('cvv', config.cvvLabel);\n }\n\n // Apply placeholders\n if (config.numberPlaceholder) {\n window.Spreedly!.setPlaceholder('number', config.numberPlaceholder);\n }\n if (config.cvvPlaceholder) {\n window.Spreedly!.setPlaceholder('cvv', config.cvvPlaceholder);\n }\n\n // Apply number format\n if (config.numberFormat === 'plainFormat') {\n // Apply field types\n if (config.numberFieldType) {\n window.Spreedly!.setFieldType('number', config.numberFieldType);\n }\n if (config.cvvFieldType) {\n window.Spreedly!.setFieldType('cvv', config.cvvFieldType);\n }\n // @ts-expect-error - SpreedlyNumberFormat doesn't match\n window.Spreedly!.setNumberFormat('plainFormat');\n } else if (config.numberFormat === 'maskedFormat') {\n window.Spreedly!.setFieldType('cvv', 'text');\n window.Spreedly!.setFieldType('number', 'text');\n window.Spreedly!.setNumberFormat('maskedFormat');\n } else if (config.numberFormat === 'prettyFormat') {\n // Apply field types\n if (config.numberFieldType === 'text' || config.numberFieldType === 'tel') {\n window.Spreedly!.setFieldType('number', config.numberFieldType);\n } else {\n window.Spreedly!.setFieldType('number', 'tel');\n }\n if (config.cvvFieldType === 'text' || config.cvvFieldType === 'tel') {\n window.Spreedly!.setFieldType('cvv', config.cvvFieldType);\n } else {\n window.Spreedly!.setFieldType('cvv', 'tel');\n }\n window.Spreedly!.setNumberFormat('prettyFormat');\n } else {\n // Apply field types\n if (config.numberFieldType) {\n window.Spreedly!.setFieldType('number', config.numberFieldType);\n }\n if (config.cvvFieldType) {\n window.Spreedly!.setFieldType('cvv', config.cvvFieldType);\n }\n }\n\n handlers?.onReady?.();\n });\n\n // Set up field event handler\n window.Spreedly!.on('fieldEvent', (name, eventType, activeElement, inputProperties) => {\n handlers?.onFieldEvent?.(name, eventType, activeElement, inputProperties);\n });\n\n // Set up error handler\n window.Spreedly!.on('errors', errors => {\n handlers?.onErrors?.(errors);\n });\n\n // Set up payment method handler\n window.Spreedly!.on('paymentMethod', (token, paymentMethod) => {\n currentToken = token;\n\n handlers?.onPaymentMethod?.(token, paymentMethod);\n\n // If there's a pending submit, execute it\n if (tokenCallback) {\n tokenCallback(token);\n tokenCallback = null;\n }\n });\n },\n\n tokenize(cardDetails: CardDetailsFirstNameLastName | CardDetailsFullName): void {\n if (!isInitialized || !window.Spreedly) {\n throw new Error('Payment form is not initialized');\n }\n\n // Normalize year to YYYY format\n let year = String(cardDetails.year);\n if (year.length === 2) {\n year = `20${year}`;\n }\n const month = String(cardDetails.month).padStart(2, '0');\n\n if ('full_name' in cardDetails) {\n window.Spreedly.tokenizeCreditCard({\n full_name: cardDetails.full_name,\n month,\n year,\n });\n } else {\n window.Spreedly.tokenizeCreditCard({\n first_name: cardDetails.first_name,\n last_name: cardDetails.last_name,\n month,\n year,\n });\n }\n },\n\n async submit(options: PaymentMethodFormOptions): Promise<PaymentMethod> {\n if (!isInitialized) {\n throw new Error('Payment form is not initialized');\n }\n\n // Check if we already have a token\n if (currentToken) {\n const token = currentToken;\n currentToken = null; // Clear the token after use\n return submitPaymentMethodV1(session, token, options, {\n external_payment_method_id: externalPaymentMethodId,\n payment_method_intent_id: paymentMethodIntentId,\n external_customer_id: externalCustomerId,\n });\n }\n\n // Need to tokenize first, then submit\n return new Promise(resolve => {\n pendingSubmitOptions = options;\n\n tokenCallback = async (token: string) => {\n const result = await submitPaymentMethodV1(session, token, pendingSubmitOptions!, {\n external_payment_method_id: externalPaymentMethodId,\n payment_method_intent_id: paymentMethodIntentId,\n external_customer_id: externalCustomerId,\n });\n pendingSubmitOptions = null;\n resolve(result);\n };\n\n // Trigger tokenization\n this.tokenize(options.card_details);\n });\n },\n\n reset(): void {\n if (window.Spreedly) {\n window.Spreedly.reload();\n }\n currentToken = null;\n tokenCallback = null;\n pendingSubmitOptions = null;\n },\n\n unmount(): void {\n if (window.Spreedly) {\n window.Spreedly.removeHandlers();\n }\n isInitialized = false;\n currentToken = null;\n tokenCallback = null;\n pendingSubmitOptions = null;\n },\n\n addEventHandlers(handlers: PaymentFormEventHandlers): void {\n if (handlers.onReady) {\n window.Spreedly!.on('ready', handlers.onReady);\n }\n if (handlers.onFieldEvent) {\n window.Spreedly!.on('fieldEvent', handlers.onFieldEvent);\n }\n if (handlers.onErrors) {\n window.Spreedly!.on('errors', handlers.onErrors);\n }\n if (handlers.onPaymentMethod) {\n window.Spreedly!.on('paymentMethod', handlers.onPaymentMethod);\n }\n },\n\n removeHandlers(): void {\n if (window.Spreedly) {\n window.Spreedly.removeHandlers();\n }\n },\n\n setFieldType(name: spreedly.SpreedlyField, type: spreedly.SpreedlyFieldType): void {\n window.Spreedly!.setFieldType(name, type);\n },\n\n setLabel(name: spreedly.SpreedlyField, label: string): void {\n window.Spreedly!.setLabel(name, label);\n },\n\n setNumberFormat(format: 'plainFormat' | 'prettyFormat' | 'maskedFormat'): void {\n // @ts-expect-error - SpreedlyNumberFormat doesn't match allowed values\n window.Spreedly!.setNumberFormat(format);\n },\n\n setPlaceholder(name: spreedly.SpreedlyField, placeholder: string): void {\n window.Spreedly!.setPlaceholder(name, placeholder);\n },\n\n setStyle(name: spreedly.SpreedlyField, style: string): void {\n window.Spreedly!.setStyle(name, style);\n },\n };\n\n return controller;\n}\n\n// defined here since this is only for internal use\ninterface PaymentMethodIntentResponse {\n payment_method_intent_id: string;\n customer_id: number;\n external_customer_id: {\n ecommerce: number;\n };\n external: {\n environment_key: string;\n resource_url: string;\n integrity_hash: string;\n };\n created_at: IsoDateString;\n expires_at: IsoDateString;\n payment_method?: PaymentMethod;\n}\n\nasync function initPaymentFormV1(\n session: Session,\n rechargePaymentMethodId?: string\n): Promise<PaymentMethodIntentResponse> {\n const id = session.customerId;\n if (!id) {\n throw new Error('Not logged in.');\n }\n const response = await rechargeApiRequest<PaymentMethodIntentResponse>(\n 'post',\n '/payment_method_intents',\n { data: { customer_id: id, payment_method_id: rechargePaymentMethodId } },\n getInternalSession(session, 'initPaymentForm')\n );\n return response;\n}\n\n// defined here since this is only for internal use\ninterface PaymentMethodV1Request {\n /** ID of the payment method to update */\n external_payment_method_id?: string;\n payment_method_intent_id: string;\n external_customer_id: number;\n}\n\nasync function submitPaymentMethodV1(\n session: Session,\n token: string,\n { billing_address, default_payment_method, address_ids }: PaymentMethodFormOptions,\n { external_payment_method_id, payment_method_intent_id, external_customer_id }: PaymentMethodV1Request\n): Promise<PaymentMethod> {\n const paymentMethod = await createPaymentMethod(getInternalSession(session, 'submitPaymentMethodV1'), {\n default: default_payment_method ?? false,\n payment_type: 'CREDIT_CARD',\n processor_customer_token: external_customer_id.toString(),\n processor_name: 'frictionless',\n processor_payment_method_token: token,\n billing_address,\n payment_method_intent_id,\n address_ids,\n external_payment_method_id,\n });\n return paymentMethod;\n}\n"],"names":["rechargeApiRequest","getInternalSession","paymentMethod","createPaymentMethod"],"mappings":"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"}
|
|
@@ -49,7 +49,7 @@ async function rechargeApiRequest(method, url, { id, query, data, headers } = {}
|
|
|
49
49
|
"X-Recharge-Sdk-Fn": session.internalFnCall,
|
|
50
50
|
...appName ? { "X-Recharge-Sdk-App-Name": appName } : {},
|
|
51
51
|
...appVersion ? { "X-Recharge-Sdk-App-Version": appVersion } : {},
|
|
52
|
-
"X-Recharge-Sdk-Version": "1.70.
|
|
52
|
+
"X-Recharge-Sdk-Version": "1.70.2",
|
|
53
53
|
"X-Request-Id": session.internalRequestId,
|
|
54
54
|
...session.tmp_fn_identifier ? { "X-Recharge-Sdk-Fn-Identifier": session.tmp_fn_identifier } : {},
|
|
55
55
|
...headers ? headers : {}
|
package/dist/esm/api/auth.js
CHANGED
|
@@ -179,7 +179,7 @@ async function rechargeAdminRequest(method, url, { id, query, data, headers } =
|
|
|
179
179
|
...storefrontAccessToken ? { "X-Recharge-Storefront-Access-Token": storefrontAccessToken } : {},
|
|
180
180
|
...appName ? { "X-Recharge-Sdk-App-Name": appName } : {},
|
|
181
181
|
...appVersion ? { "X-Recharge-Sdk-App-Version": appVersion } : {},
|
|
182
|
-
"X-Recharge-Sdk-Version": "1.70.
|
|
182
|
+
"X-Recharge-Sdk-Version": "1.70.2",
|
|
183
183
|
...headers ? headers : {}
|
|
184
184
|
};
|
|
185
185
|
return request(method, `${rechargeBaseUrl}${url}`, { id, query, data, headers: reqHeaders });
|
|
@@ -13,7 +13,7 @@ async function loadFromOnlineStore(id, country_code) {
|
|
|
13
13
|
const { appName, appVersion } = getOptions();
|
|
14
14
|
const headers = {
|
|
15
15
|
"X-Recharge-Sdk-Fn": "loadFromOnlineStore",
|
|
16
|
-
"X-Recharge-Sdk-Version": "1.70.
|
|
16
|
+
"X-Recharge-Sdk-Version": "1.70.2",
|
|
17
17
|
...appName ? { "X-Recharge-Sdk-App-Name": appName } : {},
|
|
18
18
|
...appVersion ? { "X-Recharge-Sdk-App-Version": appVersion } : {}
|
|
19
19
|
};
|
|
@@ -2,8 +2,8 @@ import { rechargeApiRequest, getInternalSession } from '../utils/request.js';
|
|
|
2
2
|
import { createPaymentMethod } from './paymentMethod.js';
|
|
3
3
|
|
|
4
4
|
async function loadScript(scriptSrc, integrity) {
|
|
5
|
-
if (typeof window !== "undefined" && window.Spreedly
|
|
6
|
-
return;
|
|
5
|
+
if (typeof window !== "undefined" && window.Spreedly) {
|
|
6
|
+
return Promise.resolve();
|
|
7
7
|
}
|
|
8
8
|
return new Promise((resolve, reject) => {
|
|
9
9
|
if (typeof document === "undefined") {
|
|
@@ -13,10 +13,10 @@ async function loadScript(scriptSrc, integrity) {
|
|
|
13
13
|
const existingScript = document.querySelector(`script[src="${scriptSrc}"]`);
|
|
14
14
|
if (existingScript) {
|
|
15
15
|
const checkLoaded = () => {
|
|
16
|
-
if (window.Spreedly
|
|
16
|
+
if (window.Spreedly) {
|
|
17
17
|
resolve();
|
|
18
18
|
} else {
|
|
19
|
-
setTimeout(checkLoaded,
|
|
19
|
+
setTimeout(checkLoaded, 50);
|
|
20
20
|
}
|
|
21
21
|
};
|
|
22
22
|
checkLoaded();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paymentMethodForm.js","sources":["../../../src/api/paymentMethodForm.ts"],"sourcesContent":["import {\n CardDetailsFirstNameLastName,\n CardDetailsFullName,\n IsoDateString,\n PaymentFormConfig,\n PaymentFormController,\n PaymentFormEventHandlers,\n PaymentMethod,\n PaymentMethodFormOptions,\n Session,\n} from '../types';\nimport { getInternalSession, rechargeApiRequest } from '../utils/request';\nimport { createPaymentMethod } from './paymentMethod';\n\nasync function loadScript(scriptSrc: string, integrity: string): Promise<void> {\n // Check if already loaded\n if (typeof window !== 'undefined' && window.Spreedly && (window.Spreedly as any).isLoaded()) {\n return;\n }\n\n return new Promise((resolve, reject) => {\n if (typeof document === 'undefined') {\n reject(new Error('Document is not available. This function must be called in a browser environment.'));\n return;\n }\n\n // Check if script is already in the DOM\n const existingScript = document.querySelector(`script[src=\"${scriptSrc}\"]`);\n if (existingScript) {\n // Wait for it to load\n const checkLoaded = () => {\n if (window.Spreedly && (window.Spreedly as any).isLoaded()) {\n resolve();\n } else {\n setTimeout(checkLoaded, 100);\n }\n };\n checkLoaded();\n return;\n }\n\n const script = document.createElement('script');\n script.src = scriptSrc;\n script.integrity = integrity;\n script.crossOrigin = 'anonymous';\n\n script.addEventListener('load', () => {\n // Wait for payment script to be fully initialized\n const checkLoaded = () => {\n if (window.Spreedly) {\n resolve();\n } else {\n setTimeout(checkLoaded, 50);\n }\n };\n checkLoaded();\n });\n\n script.addEventListener('error', () => {\n reject(new Error('Failed to load payment iFrame script'));\n });\n\n document.head.appendChild(script);\n });\n}\n\n/** @internal */\nexport async function createPaymentFormV1(\n session: Session,\n rechargePaymentMethodId?: string\n): Promise<PaymentFormController> {\n // Initialize and get environment key\n const initResponse = await initPaymentFormV1(session, rechargePaymentMethodId);\n\n const environmentKey = initResponse.external.environment_key;\n const paymentMethodIntentId = initResponse.payment_method_intent_id;\n const externalCustomerId = initResponse.external_customer_id.ecommerce;\n const resourceUrl = initResponse.external.resource_url;\n const integrityHash = initResponse.external.integrity_hash;\n const externalPaymentMethodId = initResponse.payment_method?.processor_payment_method_token;\n\n // Load script\n await loadScript(resourceUrl, integrityHash);\n\n let isInitialized = false;\n let currentToken: string | null = null;\n let tokenCallback: ((token: string) => void) | null = null;\n let pendingSubmitOptions: PaymentMethodFormOptions | null = null;\n\n const controller: PaymentFormController = {\n mount(config: PaymentFormConfig, handlers?: PaymentFormEventHandlers): void {\n if (typeof window === 'undefined' || !window.Spreedly) {\n throw new Error('Payment script failed to load');\n }\n\n // Initialize Spreedly with element IDs\n window.Spreedly!.init(environmentKey, {\n numberEl: config.numberElementId,\n cvvEl: config.cvvElementId,\n });\n\n // Set up ready handler\n window.Spreedly!.on('ready', () => {\n isInitialized = true;\n\n // Apply styles\n if (config.styles) {\n window.Spreedly!.setStyle('number', config.styles);\n window.Spreedly!.setStyle('cvv', config.styles);\n }\n\n // Apply labels\n if (config.numberLabel) {\n window.Spreedly!.setLabel('number', config.numberLabel);\n }\n if (config.cvvLabel) {\n window.Spreedly!.setLabel('cvv', config.cvvLabel);\n }\n\n // Apply placeholders\n if (config.numberPlaceholder) {\n window.Spreedly!.setPlaceholder('number', config.numberPlaceholder);\n }\n if (config.cvvPlaceholder) {\n window.Spreedly!.setPlaceholder('cvv', config.cvvPlaceholder);\n }\n\n // Apply number format\n if (config.numberFormat === 'plainFormat') {\n // Apply field types\n if (config.numberFieldType) {\n window.Spreedly!.setFieldType('number', config.numberFieldType);\n }\n if (config.cvvFieldType) {\n window.Spreedly!.setFieldType('cvv', config.cvvFieldType);\n }\n // @ts-expect-error - SpreedlyNumberFormat doesn't match\n window.Spreedly!.setNumberFormat('plainFormat');\n } else if (config.numberFormat === 'maskedFormat') {\n window.Spreedly!.setFieldType('cvv', 'text');\n window.Spreedly!.setFieldType('number', 'text');\n window.Spreedly!.setNumberFormat('maskedFormat');\n } else if (config.numberFormat === 'prettyFormat') {\n // Apply field types\n if (config.numberFieldType === 'text' || config.numberFieldType === 'tel') {\n window.Spreedly!.setFieldType('number', config.numberFieldType);\n } else {\n window.Spreedly!.setFieldType('number', 'tel');\n }\n if (config.cvvFieldType === 'text' || config.cvvFieldType === 'tel') {\n window.Spreedly!.setFieldType('cvv', config.cvvFieldType);\n } else {\n window.Spreedly!.setFieldType('cvv', 'tel');\n }\n window.Spreedly!.setNumberFormat('prettyFormat');\n } else {\n // Apply field types\n if (config.numberFieldType) {\n window.Spreedly!.setFieldType('number', config.numberFieldType);\n }\n if (config.cvvFieldType) {\n window.Spreedly!.setFieldType('cvv', config.cvvFieldType);\n }\n }\n\n handlers?.onReady?.();\n });\n\n // Set up field event handler\n window.Spreedly!.on('fieldEvent', (name, eventType, activeElement, inputProperties) => {\n handlers?.onFieldEvent?.(name, eventType, activeElement, inputProperties);\n });\n\n // Set up error handler\n window.Spreedly!.on('errors', errors => {\n handlers?.onErrors?.(errors);\n });\n\n // Set up payment method handler\n window.Spreedly!.on('paymentMethod', (token, paymentMethod) => {\n currentToken = token;\n\n handlers?.onPaymentMethod?.(token, paymentMethod);\n\n // If there's a pending submit, execute it\n if (tokenCallback) {\n tokenCallback(token);\n tokenCallback = null;\n }\n });\n },\n\n tokenize(cardDetails: CardDetailsFirstNameLastName | CardDetailsFullName): void {\n if (!isInitialized || !window.Spreedly) {\n throw new Error('Payment form is not initialized');\n }\n\n // Normalize year to YYYY format\n let year = String(cardDetails.year);\n if (year.length === 2) {\n year = `20${year}`;\n }\n const month = String(cardDetails.month).padStart(2, '0');\n\n if ('full_name' in cardDetails) {\n window.Spreedly.tokenizeCreditCard({\n full_name: cardDetails.full_name,\n month,\n year,\n });\n } else {\n window.Spreedly.tokenizeCreditCard({\n first_name: cardDetails.first_name,\n last_name: cardDetails.last_name,\n month,\n year,\n });\n }\n },\n\n async submit(options: PaymentMethodFormOptions): Promise<PaymentMethod> {\n if (!isInitialized) {\n throw new Error('Payment form is not initialized');\n }\n\n // Check if we already have a token\n if (currentToken) {\n const token = currentToken;\n currentToken = null; // Clear the token after use\n return submitPaymentMethodV1(session, token, options, {\n external_payment_method_id: externalPaymentMethodId,\n payment_method_intent_id: paymentMethodIntentId,\n external_customer_id: externalCustomerId,\n });\n }\n\n // Need to tokenize first, then submit\n return new Promise(resolve => {\n pendingSubmitOptions = options;\n\n tokenCallback = async (token: string) => {\n const result = await submitPaymentMethodV1(session, token, pendingSubmitOptions!, {\n external_payment_method_id: externalPaymentMethodId,\n payment_method_intent_id: paymentMethodIntentId,\n external_customer_id: externalCustomerId,\n });\n pendingSubmitOptions = null;\n resolve(result);\n };\n\n // Trigger tokenization\n this.tokenize(options.card_details);\n });\n },\n\n reset(): void {\n if (window.Spreedly) {\n window.Spreedly.reload();\n }\n currentToken = null;\n tokenCallback = null;\n pendingSubmitOptions = null;\n },\n\n unmount(): void {\n if (window.Spreedly) {\n window.Spreedly.removeHandlers();\n }\n isInitialized = false;\n currentToken = null;\n tokenCallback = null;\n pendingSubmitOptions = null;\n },\n\n addEventHandlers(handlers: PaymentFormEventHandlers): void {\n if (handlers.onReady) {\n window.Spreedly!.on('ready', handlers.onReady);\n }\n if (handlers.onFieldEvent) {\n window.Spreedly!.on('fieldEvent', handlers.onFieldEvent);\n }\n if (handlers.onErrors) {\n window.Spreedly!.on('errors', handlers.onErrors);\n }\n if (handlers.onPaymentMethod) {\n window.Spreedly!.on('paymentMethod', handlers.onPaymentMethod);\n }\n },\n\n removeHandlers(): void {\n if (window.Spreedly) {\n window.Spreedly.removeHandlers();\n }\n },\n\n setFieldType(name: spreedly.SpreedlyField, type: spreedly.SpreedlyFieldType): void {\n window.Spreedly!.setFieldType(name, type);\n },\n\n setLabel(name: spreedly.SpreedlyField, label: string): void {\n window.Spreedly!.setLabel(name, label);\n },\n\n setNumberFormat(format: 'plainFormat' | 'prettyFormat' | 'maskedFormat'): void {\n // @ts-expect-error - SpreedlyNumberFormat doesn't match allowed values\n window.Spreedly!.setNumberFormat(format);\n },\n\n setPlaceholder(name: spreedly.SpreedlyField, placeholder: string): void {\n window.Spreedly!.setPlaceholder(name, placeholder);\n },\n\n setStyle(name: spreedly.SpreedlyField, style: string): void {\n window.Spreedly!.setStyle(name, style);\n },\n };\n\n return controller;\n}\n\n// defined here since this is only for internal use\ninterface PaymentMethodIntentResponse {\n payment_method_intent_id: string;\n customer_id: number;\n external_customer_id: {\n ecommerce: number;\n };\n external: {\n environment_key: string;\n resource_url: string;\n integrity_hash: string;\n };\n created_at: IsoDateString;\n expires_at: IsoDateString;\n payment_method?: PaymentMethod;\n}\n\nasync function initPaymentFormV1(\n session: Session,\n rechargePaymentMethodId?: string\n): Promise<PaymentMethodIntentResponse> {\n const id = session.customerId;\n if (!id) {\n throw new Error('Not logged in.');\n }\n const response = await rechargeApiRequest<PaymentMethodIntentResponse>(\n 'post',\n '/payment_method_intents',\n { data: { customer_id: id, payment_method_id: rechargePaymentMethodId } },\n getInternalSession(session, 'initPaymentForm')\n );\n return response;\n}\n\n// defined here since this is only for internal use\ninterface PaymentMethodV1Request {\n /** ID of the payment method to update */\n external_payment_method_id?: string;\n payment_method_intent_id: string;\n external_customer_id: number;\n}\n\nasync function submitPaymentMethodV1(\n session: Session,\n token: string,\n { billing_address, default_payment_method, address_ids }: PaymentMethodFormOptions,\n { external_payment_method_id, payment_method_intent_id, external_customer_id }: PaymentMethodV1Request\n): Promise<PaymentMethod> {\n const paymentMethod = await createPaymentMethod(getInternalSession(session, 'submitPaymentMethodV1'), {\n default: default_payment_method ?? false,\n payment_type: 'CREDIT_CARD',\n processor_customer_token: external_customer_id.toString(),\n processor_name: 'frictionless',\n processor_payment_method_token: token,\n billing_address,\n payment_method_intent_id,\n address_ids,\n external_payment_method_id,\n });\n return paymentMethod;\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"paymentMethodForm.js","sources":["../../../src/api/paymentMethodForm.ts"],"sourcesContent":["import {\n CardDetailsFirstNameLastName,\n CardDetailsFullName,\n IsoDateString,\n PaymentFormConfig,\n PaymentFormController,\n PaymentFormEventHandlers,\n PaymentMethod,\n PaymentMethodFormOptions,\n Session,\n} from '../types';\nimport { getInternalSession, rechargeApiRequest } from '../utils/request';\nimport { createPaymentMethod } from './paymentMethod';\n\nasync function loadScript(scriptSrc: string, integrity: string): Promise<void> {\n // Check if already loaded\n if (typeof window !== 'undefined' && window.Spreedly) {\n return Promise.resolve();\n }\n\n return new Promise((resolve, reject) => {\n if (typeof document === 'undefined') {\n reject(new Error('Document is not available. This function must be called in a browser environment.'));\n return;\n }\n\n // Check if script is already in the DOM\n const existingScript = document.querySelector(`script[src=\"${scriptSrc}\"]`);\n if (existingScript) {\n // Wait for it to load\n const checkLoaded = () => {\n if (window.Spreedly) {\n resolve();\n } else {\n setTimeout(checkLoaded, 50);\n }\n };\n checkLoaded();\n return;\n }\n\n const script = document.createElement('script');\n script.src = scriptSrc;\n script.integrity = integrity;\n script.crossOrigin = 'anonymous';\n\n script.addEventListener('load', () => {\n // Wait for payment script to be fully initialized\n const checkLoaded = () => {\n if (window.Spreedly) {\n resolve();\n } else {\n setTimeout(checkLoaded, 50);\n }\n };\n checkLoaded();\n });\n\n script.addEventListener('error', () => {\n reject(new Error('Failed to load payment iFrame script'));\n });\n\n document.head.appendChild(script);\n });\n}\n\n/** @internal */\nexport async function createPaymentFormV1(\n session: Session,\n rechargePaymentMethodId?: string\n): Promise<PaymentFormController> {\n // Initialize and get environment key\n const initResponse = await initPaymentFormV1(session, rechargePaymentMethodId);\n\n const environmentKey = initResponse.external.environment_key;\n const paymentMethodIntentId = initResponse.payment_method_intent_id;\n const externalCustomerId = initResponse.external_customer_id.ecommerce;\n const resourceUrl = initResponse.external.resource_url;\n const integrityHash = initResponse.external.integrity_hash;\n const externalPaymentMethodId = initResponse.payment_method?.processor_payment_method_token;\n\n // Load script\n await loadScript(resourceUrl, integrityHash);\n\n let isInitialized = false;\n let currentToken: string | null = null;\n let tokenCallback: ((token: string) => void) | null = null;\n let pendingSubmitOptions: PaymentMethodFormOptions | null = null;\n\n const controller: PaymentFormController = {\n mount(config: PaymentFormConfig, handlers?: PaymentFormEventHandlers): void {\n if (typeof window === 'undefined' || !window.Spreedly) {\n throw new Error('Payment script failed to load');\n }\n\n // Initialize Spreedly with element IDs\n window.Spreedly!.init(environmentKey, {\n numberEl: config.numberElementId,\n cvvEl: config.cvvElementId,\n });\n\n // Set up ready handler\n window.Spreedly!.on('ready', () => {\n isInitialized = true;\n\n // Apply styles\n if (config.styles) {\n window.Spreedly!.setStyle('number', config.styles);\n window.Spreedly!.setStyle('cvv', config.styles);\n }\n\n // Apply labels\n if (config.numberLabel) {\n window.Spreedly!.setLabel('number', config.numberLabel);\n }\n if (config.cvvLabel) {\n window.Spreedly!.setLabel('cvv', config.cvvLabel);\n }\n\n // Apply placeholders\n if (config.numberPlaceholder) {\n window.Spreedly!.setPlaceholder('number', config.numberPlaceholder);\n }\n if (config.cvvPlaceholder) {\n window.Spreedly!.setPlaceholder('cvv', config.cvvPlaceholder);\n }\n\n // Apply number format\n if (config.numberFormat === 'plainFormat') {\n // Apply field types\n if (config.numberFieldType) {\n window.Spreedly!.setFieldType('number', config.numberFieldType);\n }\n if (config.cvvFieldType) {\n window.Spreedly!.setFieldType('cvv', config.cvvFieldType);\n }\n // @ts-expect-error - SpreedlyNumberFormat doesn't match\n window.Spreedly!.setNumberFormat('plainFormat');\n } else if (config.numberFormat === 'maskedFormat') {\n window.Spreedly!.setFieldType('cvv', 'text');\n window.Spreedly!.setFieldType('number', 'text');\n window.Spreedly!.setNumberFormat('maskedFormat');\n } else if (config.numberFormat === 'prettyFormat') {\n // Apply field types\n if (config.numberFieldType === 'text' || config.numberFieldType === 'tel') {\n window.Spreedly!.setFieldType('number', config.numberFieldType);\n } else {\n window.Spreedly!.setFieldType('number', 'tel');\n }\n if (config.cvvFieldType === 'text' || config.cvvFieldType === 'tel') {\n window.Spreedly!.setFieldType('cvv', config.cvvFieldType);\n } else {\n window.Spreedly!.setFieldType('cvv', 'tel');\n }\n window.Spreedly!.setNumberFormat('prettyFormat');\n } else {\n // Apply field types\n if (config.numberFieldType) {\n window.Spreedly!.setFieldType('number', config.numberFieldType);\n }\n if (config.cvvFieldType) {\n window.Spreedly!.setFieldType('cvv', config.cvvFieldType);\n }\n }\n\n handlers?.onReady?.();\n });\n\n // Set up field event handler\n window.Spreedly!.on('fieldEvent', (name, eventType, activeElement, inputProperties) => {\n handlers?.onFieldEvent?.(name, eventType, activeElement, inputProperties);\n });\n\n // Set up error handler\n window.Spreedly!.on('errors', errors => {\n handlers?.onErrors?.(errors);\n });\n\n // Set up payment method handler\n window.Spreedly!.on('paymentMethod', (token, paymentMethod) => {\n currentToken = token;\n\n handlers?.onPaymentMethod?.(token, paymentMethod);\n\n // If there's a pending submit, execute it\n if (tokenCallback) {\n tokenCallback(token);\n tokenCallback = null;\n }\n });\n },\n\n tokenize(cardDetails: CardDetailsFirstNameLastName | CardDetailsFullName): void {\n if (!isInitialized || !window.Spreedly) {\n throw new Error('Payment form is not initialized');\n }\n\n // Normalize year to YYYY format\n let year = String(cardDetails.year);\n if (year.length === 2) {\n year = `20${year}`;\n }\n const month = String(cardDetails.month).padStart(2, '0');\n\n if ('full_name' in cardDetails) {\n window.Spreedly.tokenizeCreditCard({\n full_name: cardDetails.full_name,\n month,\n year,\n });\n } else {\n window.Spreedly.tokenizeCreditCard({\n first_name: cardDetails.first_name,\n last_name: cardDetails.last_name,\n month,\n year,\n });\n }\n },\n\n async submit(options: PaymentMethodFormOptions): Promise<PaymentMethod> {\n if (!isInitialized) {\n throw new Error('Payment form is not initialized');\n }\n\n // Check if we already have a token\n if (currentToken) {\n const token = currentToken;\n currentToken = null; // Clear the token after use\n return submitPaymentMethodV1(session, token, options, {\n external_payment_method_id: externalPaymentMethodId,\n payment_method_intent_id: paymentMethodIntentId,\n external_customer_id: externalCustomerId,\n });\n }\n\n // Need to tokenize first, then submit\n return new Promise(resolve => {\n pendingSubmitOptions = options;\n\n tokenCallback = async (token: string) => {\n const result = await submitPaymentMethodV1(session, token, pendingSubmitOptions!, {\n external_payment_method_id: externalPaymentMethodId,\n payment_method_intent_id: paymentMethodIntentId,\n external_customer_id: externalCustomerId,\n });\n pendingSubmitOptions = null;\n resolve(result);\n };\n\n // Trigger tokenization\n this.tokenize(options.card_details);\n });\n },\n\n reset(): void {\n if (window.Spreedly) {\n window.Spreedly.reload();\n }\n currentToken = null;\n tokenCallback = null;\n pendingSubmitOptions = null;\n },\n\n unmount(): void {\n if (window.Spreedly) {\n window.Spreedly.removeHandlers();\n }\n isInitialized = false;\n currentToken = null;\n tokenCallback = null;\n pendingSubmitOptions = null;\n },\n\n addEventHandlers(handlers: PaymentFormEventHandlers): void {\n if (handlers.onReady) {\n window.Spreedly!.on('ready', handlers.onReady);\n }\n if (handlers.onFieldEvent) {\n window.Spreedly!.on('fieldEvent', handlers.onFieldEvent);\n }\n if (handlers.onErrors) {\n window.Spreedly!.on('errors', handlers.onErrors);\n }\n if (handlers.onPaymentMethod) {\n window.Spreedly!.on('paymentMethod', handlers.onPaymentMethod);\n }\n },\n\n removeHandlers(): void {\n if (window.Spreedly) {\n window.Spreedly.removeHandlers();\n }\n },\n\n setFieldType(name: spreedly.SpreedlyField, type: spreedly.SpreedlyFieldType): void {\n window.Spreedly!.setFieldType(name, type);\n },\n\n setLabel(name: spreedly.SpreedlyField, label: string): void {\n window.Spreedly!.setLabel(name, label);\n },\n\n setNumberFormat(format: 'plainFormat' | 'prettyFormat' | 'maskedFormat'): void {\n // @ts-expect-error - SpreedlyNumberFormat doesn't match allowed values\n window.Spreedly!.setNumberFormat(format);\n },\n\n setPlaceholder(name: spreedly.SpreedlyField, placeholder: string): void {\n window.Spreedly!.setPlaceholder(name, placeholder);\n },\n\n setStyle(name: spreedly.SpreedlyField, style: string): void {\n window.Spreedly!.setStyle(name, style);\n },\n };\n\n return controller;\n}\n\n// defined here since this is only for internal use\ninterface PaymentMethodIntentResponse {\n payment_method_intent_id: string;\n customer_id: number;\n external_customer_id: {\n ecommerce: number;\n };\n external: {\n environment_key: string;\n resource_url: string;\n integrity_hash: string;\n };\n created_at: IsoDateString;\n expires_at: IsoDateString;\n payment_method?: PaymentMethod;\n}\n\nasync function initPaymentFormV1(\n session: Session,\n rechargePaymentMethodId?: string\n): Promise<PaymentMethodIntentResponse> {\n const id = session.customerId;\n if (!id) {\n throw new Error('Not logged in.');\n }\n const response = await rechargeApiRequest<PaymentMethodIntentResponse>(\n 'post',\n '/payment_method_intents',\n { data: { customer_id: id, payment_method_id: rechargePaymentMethodId } },\n getInternalSession(session, 'initPaymentForm')\n );\n return response;\n}\n\n// defined here since this is only for internal use\ninterface PaymentMethodV1Request {\n /** ID of the payment method to update */\n external_payment_method_id?: string;\n payment_method_intent_id: string;\n external_customer_id: number;\n}\n\nasync function submitPaymentMethodV1(\n session: Session,\n token: string,\n { billing_address, default_payment_method, address_ids }: PaymentMethodFormOptions,\n { external_payment_method_id, payment_method_intent_id, external_customer_id }: PaymentMethodV1Request\n): Promise<PaymentMethod> {\n const paymentMethod = await createPaymentMethod(getInternalSession(session, 'submitPaymentMethodV1'), {\n default: default_payment_method ?? false,\n payment_type: 'CREDIT_CARD',\n processor_customer_token: external_customer_id.toString(),\n processor_name: 'frictionless',\n processor_payment_method_token: token,\n billing_address,\n payment_method_intent_id,\n address_ids,\n external_payment_method_id,\n });\n return paymentMethod;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -47,7 +47,7 @@ async function rechargeApiRequest(method, url, { id, query, data, headers } = {}
|
|
|
47
47
|
"X-Recharge-Sdk-Fn": session.internalFnCall,
|
|
48
48
|
...appName ? { "X-Recharge-Sdk-App-Name": appName } : {},
|
|
49
49
|
...appVersion ? { "X-Recharge-Sdk-App-Version": appVersion } : {},
|
|
50
|
-
"X-Recharge-Sdk-Version": "1.70.
|
|
50
|
+
"X-Recharge-Sdk-Version": "1.70.2",
|
|
51
51
|
"X-Request-Id": session.internalRequestId,
|
|
52
52
|
...session.tmp_fn_identifier ? { "X-Recharge-Sdk-Fn-Identifier": session.tmp_fn_identifier } : {},
|
|
53
53
|
...headers ? headers : {}
|
package/dist/index.d.ts
CHANGED
|
@@ -3322,7 +3322,7 @@ interface PaymentMethodFormOptions {
|
|
|
3322
3322
|
billing_address: AssociatedAddress;
|
|
3323
3323
|
/** Whether to set this payment method as the default */
|
|
3324
3324
|
default_payment_method?: boolean;
|
|
3325
|
-
/**
|
|
3325
|
+
/** Recharge address IDs to associate with this payment method */
|
|
3326
3326
|
address_ids?: number[];
|
|
3327
3327
|
}
|
|
3328
3328
|
/** @internal */
|