@rechargeapps/storefront-client 1.70.3 → 1.70.4

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.
@@ -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.3",
184
+ "X-Recharge-Sdk-Version": "1.70.4",
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.3",
18
+ "X-Recharge-Sdk-Version": "1.70.4",
19
19
  ...appName ? { "X-Recharge-Sdk-App-Name": appName } : {},
20
20
  ...appVersion ? { "X-Recharge-Sdk-App-Version": appVersion } : {}
21
21
  };
@@ -299,7 +299,12 @@ async function createFrictionlessPaymentIntentV1(session, rechargePaymentMethodI
299
299
  );
300
300
  return response;
301
301
  }
302
- async function submitFrictionlessPaymentMethodV1(session, token, { billing_address, default_payment_method, address_ids }, { external_payment_method_id, payment_method_intent_id, external_customer_id }) {
302
+ async function submitFrictionlessPaymentMethodV1(session, token, {
303
+ billing_address,
304
+ default_payment_method,
305
+ address_ids,
306
+ apply_to_all_subscription_addresses
307
+ }, { external_payment_method_id, payment_method_intent_id, external_customer_id }) {
303
308
  const paymentMethod = await createPaymentMethod(request.getInternalSession(session, "submitFrictionlessPaymentMethodV1"), {
304
309
  default: default_payment_method ?? false,
305
310
  payment_type: "CREDIT_CARD",
@@ -309,7 +314,8 @@ async function submitFrictionlessPaymentMethodV1(session, token, { billing_addre
309
314
  billing_address,
310
315
  payment_method_intent_id,
311
316
  address_ids,
312
- external_payment_method_id
317
+ external_payment_method_id,
318
+ apply_to_all_subscription_addresses
313
319
  });
314
320
  return paymentMethod;
315
321
  }
@@ -1 +1 @@
1
- {"version":3,"file":"paymentMethod.js","sources":["../../../src/api/paymentMethod.ts"],"sourcesContent":["import {\n CardDetailsFirstNameLastName,\n CardDetailsFullName,\n CreatePaymentMethodRequest,\n GetPaymentMethodOptions,\n IsoDateString,\n PaymentFormConfig,\n PaymentFormController,\n PaymentFormEventHandlers,\n PaymentMethod,\n PaymentMethodFormOptions,\n PaymentMethodListParams,\n PaymentMethodsResponse,\n UpdatePaymentMethodRequest,\n Session,\n} from '../types';\nimport { getInternalSession, rechargeApiRequest } from '../utils/request';\n\nexport async function getPaymentMethod(\n session: Session,\n id: string | number,\n options?: GetPaymentMethodOptions\n): Promise<PaymentMethod> {\n if (id === undefined || id === '') {\n throw new Error('ID is required');\n }\n const { payment_method } = await rechargeApiRequest<{ payment_method: PaymentMethod }>(\n 'get',\n `/payment_methods`,\n {\n id,\n query: { include: options?.include },\n },\n getInternalSession(session, 'getPaymentMethod')\n );\n return payment_method;\n}\n\n/**\n * Create a Payment Method\n *\n * Currently, `shopify_payments` is in read-only mode and can only be managed by Shopify.\n */\nexport async function createPaymentMethod(\n session: Session,\n createRequest: CreatePaymentMethodRequest\n): Promise<PaymentMethod> {\n const { payment_method } = await rechargeApiRequest<{ payment_method: PaymentMethod }>(\n 'post',\n `/payment_methods`,\n {\n data: { ...createRequest, customer_id: session.customerId },\n },\n getInternalSession(session, 'createPaymentMethod')\n );\n return payment_method;\n}\n\n/**\n * Modify an existing Payment Method\n *\n * Currently, `shopify_payments` is in read-only mode and can only be managed by Shopify.\n */\nexport async function updatePaymentMethod(\n session: Session,\n id: string | number,\n updateRequest: UpdatePaymentMethodRequest\n): Promise<PaymentMethod> {\n if (id === undefined || id === '') {\n throw new Error('ID is required');\n }\n const { payment_method } = await rechargeApiRequest<{ payment_method: PaymentMethod }>(\n 'put',\n `/payment_methods`,\n {\n id,\n data: updateRequest,\n },\n getInternalSession(session, 'updatePaymentMethod')\n );\n return payment_method;\n}\n\nexport function listPaymentMethods(session: Session, query?: PaymentMethodListParams): Promise<PaymentMethodsResponse> {\n return rechargeApiRequest<PaymentMethodsResponse>(\n 'get',\n `/payment_methods`,\n { query },\n getInternalSession(session, 'listPaymentMethods')\n );\n}\n\n/** @internal */\nexport async function initFrictionlessPaymentV1(\n session: Session,\n rechargePaymentMethodId?: string\n): Promise<PaymentFormController> {\n // Initialize and get environment key\n const intentResponse = await createFrictionlessPaymentIntentV1(session, rechargePaymentMethodId);\n\n const environmentKey = intentResponse.external.environment_key;\n const paymentMethodIntentId = intentResponse.payment_method_intent_id;\n const externalCustomerId = intentResponse.external_customer_id.ecommerce;\n const resourceUrl = intentResponse.external.resource_url;\n const integrityHash = intentResponse.external.integrity_hash;\n const externalPaymentMethodId = intentResponse.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 submitFrictionlessPaymentMethodV1(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 submitFrictionlessPaymentMethodV1(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\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// 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 createFrictionlessPaymentIntentV1(\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, 'createFrictionlessPaymentIntentV1')\n );\n return response;\n}\n\n// defined here since this is only for internal use\ninterface FrictionlessPaymentMethodRequest {\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 submitFrictionlessPaymentMethodV1(\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 }: FrictionlessPaymentMethodRequest\n): Promise<PaymentMethod> {\n const paymentMethod = await createPaymentMethod(getInternalSession(session, 'submitFrictionlessPaymentMethodV1'), {\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"],"mappings":"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"}
1
+ {"version":3,"file":"paymentMethod.js","sources":["../../../src/api/paymentMethod.ts"],"sourcesContent":["import {\n CardDetailsFirstNameLastName,\n CardDetailsFullName,\n CreatePaymentMethodRequest,\n GetPaymentMethodOptions,\n IsoDateString,\n PaymentFormConfig,\n PaymentFormController,\n PaymentFormEventHandlers,\n PaymentMethod,\n PaymentMethodFormOptions,\n PaymentMethodListParams,\n PaymentMethodsResponse,\n UpdatePaymentMethodRequest,\n Session,\n} from '../types';\nimport { getInternalSession, rechargeApiRequest } from '../utils/request';\n\nexport async function getPaymentMethod(\n session: Session,\n id: string | number,\n options?: GetPaymentMethodOptions\n): Promise<PaymentMethod> {\n if (id === undefined || id === '') {\n throw new Error('ID is required');\n }\n const { payment_method } = await rechargeApiRequest<{ payment_method: PaymentMethod }>(\n 'get',\n `/payment_methods`,\n {\n id,\n query: { include: options?.include },\n },\n getInternalSession(session, 'getPaymentMethod')\n );\n return payment_method;\n}\n\n/**\n * Create a Payment Method\n *\n * Currently, `shopify_payments` is in read-only mode and can only be managed by Shopify.\n */\nexport async function createPaymentMethod(\n session: Session,\n createRequest: CreatePaymentMethodRequest\n): Promise<PaymentMethod> {\n const { payment_method } = await rechargeApiRequest<{ payment_method: PaymentMethod }>(\n 'post',\n `/payment_methods`,\n {\n data: { ...createRequest, customer_id: session.customerId },\n },\n getInternalSession(session, 'createPaymentMethod')\n );\n return payment_method;\n}\n\n/**\n * Modify an existing Payment Method\n *\n * Currently, `shopify_payments` is in read-only mode and can only be managed by Shopify.\n */\nexport async function updatePaymentMethod(\n session: Session,\n id: string | number,\n updateRequest: UpdatePaymentMethodRequest\n): Promise<PaymentMethod> {\n if (id === undefined || id === '') {\n throw new Error('ID is required');\n }\n const { payment_method } = await rechargeApiRequest<{ payment_method: PaymentMethod }>(\n 'put',\n `/payment_methods`,\n {\n id,\n data: updateRequest,\n },\n getInternalSession(session, 'updatePaymentMethod')\n );\n return payment_method;\n}\n\nexport function listPaymentMethods(session: Session, query?: PaymentMethodListParams): Promise<PaymentMethodsResponse> {\n return rechargeApiRequest<PaymentMethodsResponse>(\n 'get',\n `/payment_methods`,\n { query },\n getInternalSession(session, 'listPaymentMethods')\n );\n}\n\n/** @internal */\nexport async function initFrictionlessPaymentV1(\n session: Session,\n rechargePaymentMethodId?: string\n): Promise<PaymentFormController> {\n // Initialize and get environment key\n const intentResponse = await createFrictionlessPaymentIntentV1(session, rechargePaymentMethodId);\n\n const environmentKey = intentResponse.external.environment_key;\n const paymentMethodIntentId = intentResponse.payment_method_intent_id;\n const externalCustomerId = intentResponse.external_customer_id.ecommerce;\n const resourceUrl = intentResponse.external.resource_url;\n const integrityHash = intentResponse.external.integrity_hash;\n const externalPaymentMethodId = intentResponse.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 submitFrictionlessPaymentMethodV1(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 submitFrictionlessPaymentMethodV1(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\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// 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 createFrictionlessPaymentIntentV1(\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, 'createFrictionlessPaymentIntentV1')\n );\n return response;\n}\n\n// defined here since this is only for internal use\ninterface FrictionlessPaymentMethodRequest {\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 submitFrictionlessPaymentMethodV1(\n session: Session,\n token: string,\n {\n billing_address,\n default_payment_method,\n address_ids,\n apply_to_all_subscription_addresses,\n }: PaymentMethodFormOptions,\n { external_payment_method_id, payment_method_intent_id, external_customer_id }: FrictionlessPaymentMethodRequest\n): Promise<PaymentMethod> {\n const paymentMethod = await createPaymentMethod(getInternalSession(session, 'submitFrictionlessPaymentMethodV1'), {\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 apply_to_all_subscription_addresses,\n });\n return paymentMethod;\n}\n"],"names":["rechargeApiRequest","getInternalSession"],"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.3",
52
+ "X-Recharge-Sdk-Version": "1.70.4",
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 : {}
@@ -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.3",
182
+ "X-Recharge-Sdk-Version": "1.70.4",
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.3",
16
+ "X-Recharge-Sdk-Version": "1.70.4",
17
17
  ...appName ? { "X-Recharge-Sdk-App-Name": appName } : {},
18
18
  ...appVersion ? { "X-Recharge-Sdk-App-Version": appVersion } : {}
19
19
  };
@@ -297,7 +297,12 @@ async function createFrictionlessPaymentIntentV1(session, rechargePaymentMethodI
297
297
  );
298
298
  return response;
299
299
  }
300
- async function submitFrictionlessPaymentMethodV1(session, token, { billing_address, default_payment_method, address_ids }, { external_payment_method_id, payment_method_intent_id, external_customer_id }) {
300
+ async function submitFrictionlessPaymentMethodV1(session, token, {
301
+ billing_address,
302
+ default_payment_method,
303
+ address_ids,
304
+ apply_to_all_subscription_addresses
305
+ }, { external_payment_method_id, payment_method_intent_id, external_customer_id }) {
301
306
  const paymentMethod = await createPaymentMethod(getInternalSession(session, "submitFrictionlessPaymentMethodV1"), {
302
307
  default: default_payment_method ?? false,
303
308
  payment_type: "CREDIT_CARD",
@@ -307,7 +312,8 @@ async function submitFrictionlessPaymentMethodV1(session, token, { billing_addre
307
312
  billing_address,
308
313
  payment_method_intent_id,
309
314
  address_ids,
310
- external_payment_method_id
315
+ external_payment_method_id,
316
+ apply_to_all_subscription_addresses
311
317
  });
312
318
  return paymentMethod;
313
319
  }
@@ -1 +1 @@
1
- {"version":3,"file":"paymentMethod.js","sources":["../../../src/api/paymentMethod.ts"],"sourcesContent":["import {\n CardDetailsFirstNameLastName,\n CardDetailsFullName,\n CreatePaymentMethodRequest,\n GetPaymentMethodOptions,\n IsoDateString,\n PaymentFormConfig,\n PaymentFormController,\n PaymentFormEventHandlers,\n PaymentMethod,\n PaymentMethodFormOptions,\n PaymentMethodListParams,\n PaymentMethodsResponse,\n UpdatePaymentMethodRequest,\n Session,\n} from '../types';\nimport { getInternalSession, rechargeApiRequest } from '../utils/request';\n\nexport async function getPaymentMethod(\n session: Session,\n id: string | number,\n options?: GetPaymentMethodOptions\n): Promise<PaymentMethod> {\n if (id === undefined || id === '') {\n throw new Error('ID is required');\n }\n const { payment_method } = await rechargeApiRequest<{ payment_method: PaymentMethod }>(\n 'get',\n `/payment_methods`,\n {\n id,\n query: { include: options?.include },\n },\n getInternalSession(session, 'getPaymentMethod')\n );\n return payment_method;\n}\n\n/**\n * Create a Payment Method\n *\n * Currently, `shopify_payments` is in read-only mode and can only be managed by Shopify.\n */\nexport async function createPaymentMethod(\n session: Session,\n createRequest: CreatePaymentMethodRequest\n): Promise<PaymentMethod> {\n const { payment_method } = await rechargeApiRequest<{ payment_method: PaymentMethod }>(\n 'post',\n `/payment_methods`,\n {\n data: { ...createRequest, customer_id: session.customerId },\n },\n getInternalSession(session, 'createPaymentMethod')\n );\n return payment_method;\n}\n\n/**\n * Modify an existing Payment Method\n *\n * Currently, `shopify_payments` is in read-only mode and can only be managed by Shopify.\n */\nexport async function updatePaymentMethod(\n session: Session,\n id: string | number,\n updateRequest: UpdatePaymentMethodRequest\n): Promise<PaymentMethod> {\n if (id === undefined || id === '') {\n throw new Error('ID is required');\n }\n const { payment_method } = await rechargeApiRequest<{ payment_method: PaymentMethod }>(\n 'put',\n `/payment_methods`,\n {\n id,\n data: updateRequest,\n },\n getInternalSession(session, 'updatePaymentMethod')\n );\n return payment_method;\n}\n\nexport function listPaymentMethods(session: Session, query?: PaymentMethodListParams): Promise<PaymentMethodsResponse> {\n return rechargeApiRequest<PaymentMethodsResponse>(\n 'get',\n `/payment_methods`,\n { query },\n getInternalSession(session, 'listPaymentMethods')\n );\n}\n\n/** @internal */\nexport async function initFrictionlessPaymentV1(\n session: Session,\n rechargePaymentMethodId?: string\n): Promise<PaymentFormController> {\n // Initialize and get environment key\n const intentResponse = await createFrictionlessPaymentIntentV1(session, rechargePaymentMethodId);\n\n const environmentKey = intentResponse.external.environment_key;\n const paymentMethodIntentId = intentResponse.payment_method_intent_id;\n const externalCustomerId = intentResponse.external_customer_id.ecommerce;\n const resourceUrl = intentResponse.external.resource_url;\n const integrityHash = intentResponse.external.integrity_hash;\n const externalPaymentMethodId = intentResponse.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 submitFrictionlessPaymentMethodV1(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 submitFrictionlessPaymentMethodV1(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\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// 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 createFrictionlessPaymentIntentV1(\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, 'createFrictionlessPaymentIntentV1')\n );\n return response;\n}\n\n// defined here since this is only for internal use\ninterface FrictionlessPaymentMethodRequest {\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 submitFrictionlessPaymentMethodV1(\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 }: FrictionlessPaymentMethodRequest\n): Promise<PaymentMethod> {\n const paymentMethod = await createPaymentMethod(getInternalSession(session, 'submitFrictionlessPaymentMethodV1'), {\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":"paymentMethod.js","sources":["../../../src/api/paymentMethod.ts"],"sourcesContent":["import {\n CardDetailsFirstNameLastName,\n CardDetailsFullName,\n CreatePaymentMethodRequest,\n GetPaymentMethodOptions,\n IsoDateString,\n PaymentFormConfig,\n PaymentFormController,\n PaymentFormEventHandlers,\n PaymentMethod,\n PaymentMethodFormOptions,\n PaymentMethodListParams,\n PaymentMethodsResponse,\n UpdatePaymentMethodRequest,\n Session,\n} from '../types';\nimport { getInternalSession, rechargeApiRequest } from '../utils/request';\n\nexport async function getPaymentMethod(\n session: Session,\n id: string | number,\n options?: GetPaymentMethodOptions\n): Promise<PaymentMethod> {\n if (id === undefined || id === '') {\n throw new Error('ID is required');\n }\n const { payment_method } = await rechargeApiRequest<{ payment_method: PaymentMethod }>(\n 'get',\n `/payment_methods`,\n {\n id,\n query: { include: options?.include },\n },\n getInternalSession(session, 'getPaymentMethod')\n );\n return payment_method;\n}\n\n/**\n * Create a Payment Method\n *\n * Currently, `shopify_payments` is in read-only mode and can only be managed by Shopify.\n */\nexport async function createPaymentMethod(\n session: Session,\n createRequest: CreatePaymentMethodRequest\n): Promise<PaymentMethod> {\n const { payment_method } = await rechargeApiRequest<{ payment_method: PaymentMethod }>(\n 'post',\n `/payment_methods`,\n {\n data: { ...createRequest, customer_id: session.customerId },\n },\n getInternalSession(session, 'createPaymentMethod')\n );\n return payment_method;\n}\n\n/**\n * Modify an existing Payment Method\n *\n * Currently, `shopify_payments` is in read-only mode and can only be managed by Shopify.\n */\nexport async function updatePaymentMethod(\n session: Session,\n id: string | number,\n updateRequest: UpdatePaymentMethodRequest\n): Promise<PaymentMethod> {\n if (id === undefined || id === '') {\n throw new Error('ID is required');\n }\n const { payment_method } = await rechargeApiRequest<{ payment_method: PaymentMethod }>(\n 'put',\n `/payment_methods`,\n {\n id,\n data: updateRequest,\n },\n getInternalSession(session, 'updatePaymentMethod')\n );\n return payment_method;\n}\n\nexport function listPaymentMethods(session: Session, query?: PaymentMethodListParams): Promise<PaymentMethodsResponse> {\n return rechargeApiRequest<PaymentMethodsResponse>(\n 'get',\n `/payment_methods`,\n { query },\n getInternalSession(session, 'listPaymentMethods')\n );\n}\n\n/** @internal */\nexport async function initFrictionlessPaymentV1(\n session: Session,\n rechargePaymentMethodId?: string\n): Promise<PaymentFormController> {\n // Initialize and get environment key\n const intentResponse = await createFrictionlessPaymentIntentV1(session, rechargePaymentMethodId);\n\n const environmentKey = intentResponse.external.environment_key;\n const paymentMethodIntentId = intentResponse.payment_method_intent_id;\n const externalCustomerId = intentResponse.external_customer_id.ecommerce;\n const resourceUrl = intentResponse.external.resource_url;\n const integrityHash = intentResponse.external.integrity_hash;\n const externalPaymentMethodId = intentResponse.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 submitFrictionlessPaymentMethodV1(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 submitFrictionlessPaymentMethodV1(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\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// 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 createFrictionlessPaymentIntentV1(\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, 'createFrictionlessPaymentIntentV1')\n );\n return response;\n}\n\n// defined here since this is only for internal use\ninterface FrictionlessPaymentMethodRequest {\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 submitFrictionlessPaymentMethodV1(\n session: Session,\n token: string,\n {\n billing_address,\n default_payment_method,\n address_ids,\n apply_to_all_subscription_addresses,\n }: PaymentMethodFormOptions,\n { external_payment_method_id, payment_method_intent_id, external_customer_id }: FrictionlessPaymentMethodRequest\n): Promise<PaymentMethod> {\n const paymentMethod = await createPaymentMethod(getInternalSession(session, 'submitFrictionlessPaymentMethodV1'), {\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 apply_to_all_subscription_addresses,\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.3",
50
+ "X-Recharge-Sdk-Version": "1.70.4",
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
@@ -513,8 +513,12 @@ interface CreatePaymentMethodRequest extends SubType<PaymentMethod, PaymentMetho
513
513
  payment_method_intent_id?: string;
514
514
  /** The external payment method id */
515
515
  external_payment_method_id?: string;
516
+ /** Whether to apply the payment method to all existing subscription addresses */
517
+ apply_to_all_subscription_addresses?: boolean;
516
518
  }
517
519
  interface UpdatePaymentMethodRequest extends Partial<Pick<PaymentMethod, 'billing_address' | 'default'>> {
520
+ /** Whether to apply the payment method to all existing subscription addresses */
521
+ apply_to_all_subscription_addresses?: boolean;
518
522
  }
519
523
  type PaymentMethodIncludes = 'addresses';
520
524
  interface GetPaymentMethodOptions {
@@ -563,6 +567,8 @@ interface PaymentMethodFormOptions {
563
567
  default_payment_method?: boolean;
564
568
  /** Recharge address IDs to associate with this payment method */
565
569
  address_ids?: number[];
570
+ /** Whether to apply the payment method to all existing subscription addresses */
571
+ apply_to_all_subscription_addresses?: boolean;
566
572
  }
567
573
  /** @internal */
568
574
  interface PaymentFormConfig {